@arolariu/components 0.0.10 → 0.0.12

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 (155) hide show
  1. package/dist/cjs/components/ui/alert-dialog.js +1 -1
  2. package/dist/cjs/components/ui/sidebar.js +1 -1
  3. package/dist/cjs/index.js +1 -1
  4. package/dist/types/accordion.d.ts +13 -0
  5. package/dist/types/alert-dialog.d.ts +27 -0
  6. package/dist/types/alert.d.ts +16 -0
  7. package/dist/types/aspect-ratio.d.ts +6 -0
  8. package/dist/types/avatar.d.ts +11 -0
  9. package/dist/types/badge.d.ts +14 -0
  10. package/dist/types/breadcrumb.d.ts +20 -0
  11. package/dist/types/button.d.ts +15 -0
  12. package/dist/types/calendar.d.ts +7 -0
  13. package/dist/types/card.d.ts +16 -0
  14. package/dist/types/carousel.d.ts +42 -0
  15. package/dist/types/chart.d.ts +50 -0
  16. package/dist/types/checkbox.d.ts +7 -0
  17. package/dist/types/collapsible.d.ts +10 -0
  18. package/dist/types/command.d.ts +29 -0
  19. package/dist/types/context-menu.d.ts +42 -0
  20. package/dist/types/dialog.d.ts +25 -0
  21. package/dist/types/drawer.d.ts +25 -0
  22. package/dist/types/dropdown-menu.d.ts +42 -0
  23. package/dist/types/form.d.ts +38 -0
  24. package/dist/types/hover-card.d.ts +11 -0
  25. package/dist/types/index.d.ts +689 -47
  26. package/dist/types/input-otp.d.ts +17 -0
  27. package/dist/types/input.d.ts +6 -0
  28. package/dist/types/label.d.ts +7 -0
  29. package/dist/types/menubar.d.ts +44 -0
  30. package/dist/types/navigation-menu.d.ts +26 -0
  31. package/dist/types/pagination.d.ts +33 -0
  32. package/dist/types/popover.d.ts +13 -0
  33. package/dist/types/progress.d.ts +7 -0
  34. package/dist/types/radio-group.d.ts +9 -0
  35. package/dist/types/resizable.d.ts +13 -0
  36. package/dist/types/scroll-area.d.ts +9 -0
  37. package/dist/types/select.d.ts +25 -0
  38. package/dist/types/separator.d.ts +7 -0
  39. package/dist/types/sheet.d.ts +23 -0
  40. package/dist/types/sidebar.d.ts +113 -0
  41. package/dist/types/skeleton.d.ts +5 -0
  42. package/dist/types/slider.d.ts +7 -0
  43. package/dist/types/sonner.d.ts +6 -0
  44. package/dist/types/switch.d.ts +7 -0
  45. package/dist/types/table.d.ts +20 -0
  46. package/dist/types/tabs.d.ts +13 -0
  47. package/dist/types/textarea.d.ts +6 -0
  48. package/dist/types/toggle-group.d.ts +16 -0
  49. package/dist/types/toggle.d.ts +14 -0
  50. package/dist/types/tooltip.d.ts +13 -0
  51. package/package.json +105 -97
  52. package/readme.md +169 -0
  53. package/dist/types/components/ui/accordion.d.ts.map +0 -1
  54. package/dist/types/components/ui/alert-dialog.d.ts.map +0 -1
  55. package/dist/types/components/ui/alert.d.ts.map +0 -1
  56. package/dist/types/components/ui/aspect-ratio.d.ts.map +0 -1
  57. package/dist/types/components/ui/avatar.d.ts.map +0 -1
  58. package/dist/types/components/ui/badge.d.ts.map +0 -1
  59. package/dist/types/components/ui/breadcrumb.d.ts.map +0 -1
  60. package/dist/types/components/ui/button.d.ts.map +0 -1
  61. package/dist/types/components/ui/calendar.d.ts.map +0 -1
  62. package/dist/types/components/ui/card.d.ts.map +0 -1
  63. package/dist/types/components/ui/carousel.d.ts.map +0 -1
  64. package/dist/types/components/ui/chart.d.ts.map +0 -1
  65. package/dist/types/components/ui/checkbox.d.ts.map +0 -1
  66. package/dist/types/components/ui/collapsible.d.ts.map +0 -1
  67. package/dist/types/components/ui/command.d.ts.map +0 -1
  68. package/dist/types/components/ui/context-menu.d.ts.map +0 -1
  69. package/dist/types/components/ui/dialog.d.ts.map +0 -1
  70. package/dist/types/components/ui/drawer.d.ts.map +0 -1
  71. package/dist/types/components/ui/dropdown-menu.d.ts.map +0 -1
  72. package/dist/types/components/ui/form.d.ts.map +0 -1
  73. package/dist/types/components/ui/hover-card.d.ts.map +0 -1
  74. package/dist/types/components/ui/input-otp.d.ts.map +0 -1
  75. package/dist/types/components/ui/input.d.ts.map +0 -1
  76. package/dist/types/components/ui/label.d.ts.map +0 -1
  77. package/dist/types/components/ui/menubar.d.ts.map +0 -1
  78. package/dist/types/components/ui/navigation-menu.d.ts.map +0 -1
  79. package/dist/types/components/ui/pagination.d.ts.map +0 -1
  80. package/dist/types/components/ui/popover.d.ts.map +0 -1
  81. package/dist/types/components/ui/progress.d.ts.map +0 -1
  82. package/dist/types/components/ui/radio-group.d.ts.map +0 -1
  83. package/dist/types/components/ui/resizable.d.ts.map +0 -1
  84. package/dist/types/components/ui/scroll-area.d.ts.map +0 -1
  85. package/dist/types/components/ui/select.d.ts.map +0 -1
  86. package/dist/types/components/ui/separator.d.ts.map +0 -1
  87. package/dist/types/components/ui/sheet.d.ts.map +0 -1
  88. package/dist/types/components/ui/sidebar.d.ts.map +0 -1
  89. package/dist/types/components/ui/skeleton.d.ts.map +0 -1
  90. package/dist/types/components/ui/slider.d.ts.map +0 -1
  91. package/dist/types/components/ui/sonner.d.ts.map +0 -1
  92. package/dist/types/components/ui/switch.d.ts.map +0 -1
  93. package/dist/types/components/ui/table.d.ts.map +0 -1
  94. package/dist/types/components/ui/tabs.d.ts.map +0 -1
  95. package/dist/types/components/ui/textarea.d.ts.map +0 -1
  96. package/dist/types/components/ui/toggle-group.d.ts.map +0 -1
  97. package/dist/types/components/ui/toggle.d.ts.map +0 -1
  98. package/dist/types/components/ui/tooltip.d.ts.map +0 -1
  99. package/dist/types/hooks/use-mobile.d.ts +0 -2
  100. package/dist/types/hooks/use-mobile.d.ts.map +0 -1
  101. package/dist/types/index.d.ts.map +0 -1
  102. package/dist/types/lib/utils.d.ts +0 -3
  103. package/dist/types/lib/utils.d.ts.map +0 -1
  104. package/dist/umd/arolariu-components.umd.js +0 -7
  105. package/src/components/ui/accordion.tsx +0 -66
  106. package/src/components/ui/alert-dialog.tsx +0 -157
  107. package/src/components/ui/alert.tsx +0 -66
  108. package/src/components/ui/aspect-ratio.tsx +0 -11
  109. package/src/components/ui/avatar.tsx +0 -53
  110. package/src/components/ui/badge.tsx +0 -46
  111. package/src/components/ui/breadcrumb.tsx +0 -109
  112. package/src/components/ui/button.tsx +0 -58
  113. package/src/components/ui/calendar.tsx +0 -75
  114. package/src/components/ui/card.tsx +0 -68
  115. package/src/components/ui/carousel.tsx +0 -241
  116. package/src/components/ui/chart.tsx +0 -353
  117. package/src/components/ui/checkbox.tsx +0 -32
  118. package/src/components/ui/collapsible.tsx +0 -33
  119. package/src/components/ui/command.tsx +0 -177
  120. package/src/components/ui/context-menu.tsx +0 -252
  121. package/src/components/ui/dialog.tsx +0 -135
  122. package/src/components/ui/drawer.tsx +0 -132
  123. package/src/components/ui/dropdown-menu.tsx +0 -257
  124. package/src/components/ui/form.tsx +0 -167
  125. package/src/components/ui/hover-card.tsx +0 -42
  126. package/src/components/ui/input-otp.tsx +0 -78
  127. package/src/components/ui/input.tsx +0 -21
  128. package/src/components/ui/label.tsx +0 -24
  129. package/src/components/ui/menubar.tsx +0 -276
  130. package/src/components/ui/navigation-menu.tsx +0 -170
  131. package/src/components/ui/pagination.tsx +0 -127
  132. package/src/components/ui/popover.tsx +0 -48
  133. package/src/components/ui/progress.tsx +0 -31
  134. package/src/components/ui/radio-group.tsx +0 -45
  135. package/src/components/ui/resizable.tsx +0 -56
  136. package/src/components/ui/scroll-area.tsx +0 -58
  137. package/src/components/ui/select.tsx +0 -181
  138. package/src/components/ui/separator.tsx +0 -28
  139. package/src/components/ui/sheet.tsx +0 -139
  140. package/src/components/ui/sidebar.tsx +0 -723
  141. package/src/components/ui/skeleton.tsx +0 -13
  142. package/src/components/ui/slider.tsx +0 -63
  143. package/src/components/ui/sonner.tsx +0 -29
  144. package/src/components/ui/switch.tsx +0 -31
  145. package/src/components/ui/table.tsx +0 -116
  146. package/src/components/ui/tabs.tsx +0 -66
  147. package/src/components/ui/textarea.tsx +0 -18
  148. package/src/components/ui/toggle-group.tsx +0 -73
  149. package/src/components/ui/toggle.tsx +0 -47
  150. package/src/components/ui/tooltip.tsx +0 -61
  151. package/src/hooks/use-mobile.ts +0 -19
  152. package/src/hooks/use-mobile.tsx +0 -19
  153. package/src/index.css +0 -137
  154. package/src/index.ts +0 -326
  155. package/src/lib/utils.ts +0 -6
@@ -1,276 +0,0 @@
1
- "use client"
2
-
3
- import * as React from "react"
4
- import * as MenubarPrimitive from "@radix-ui/react-menubar"
5
- import { CheckIcon, ChevronRightIcon, CircleIcon } from "lucide-react"
6
-
7
- import { cn } from "@/lib/utils"
8
-
9
- function Menubar({
10
- className,
11
- ...props
12
- }: React.ComponentProps<typeof MenubarPrimitive.Root>) {
13
- return (
14
- <MenubarPrimitive.Root
15
- data-slot="menubar"
16
- className={cn(
17
- "bg-white flex h-9 items-center gap-1 rounded-md border border-neutral-200 p-1 shadow-xs dark:bg-neutral-950 dark:border-neutral-800",
18
- className
19
- )}
20
- {...props}
21
- />
22
- )
23
- }
24
-
25
- function MenubarMenu({
26
- ...props
27
- }: React.ComponentProps<typeof MenubarPrimitive.Menu>) {
28
- return <MenubarPrimitive.Menu data-slot="menubar-menu" {...props} />
29
- }
30
-
31
- function MenubarGroup({
32
- ...props
33
- }: React.ComponentProps<typeof MenubarPrimitive.Group>) {
34
- return <MenubarPrimitive.Group data-slot="menubar-group" {...props} />
35
- }
36
-
37
- function MenubarPortal({
38
- ...props
39
- }: React.ComponentProps<typeof MenubarPrimitive.Portal>) {
40
- return <MenubarPrimitive.Portal data-slot="menubar-portal" {...props} />
41
- }
42
-
43
- function MenubarRadioGroup({
44
- ...props
45
- }: React.ComponentProps<typeof MenubarPrimitive.RadioGroup>) {
46
- return (
47
- <MenubarPrimitive.RadioGroup data-slot="menubar-radio-group" {...props} />
48
- )
49
- }
50
-
51
- function MenubarTrigger({
52
- className,
53
- ...props
54
- }: React.ComponentProps<typeof MenubarPrimitive.Trigger>) {
55
- return (
56
- <MenubarPrimitive.Trigger
57
- data-slot="menubar-trigger"
58
- className={cn(
59
- "focus:bg-neutral-100 focus:text-neutral-900 data-[state=open]:bg-neutral-100 data-[state=open]:text-neutral-900 flex items-center rounded-sm px-2 py-1 text-sm font-medium outline-hidden select-none dark:focus:bg-neutral-800 dark:focus:text-neutral-50 dark:data-[state=open]:bg-neutral-800 dark:data-[state=open]:text-neutral-50",
60
- className
61
- )}
62
- {...props}
63
- />
64
- )
65
- }
66
-
67
- function MenubarContent({
68
- className,
69
- align = "start",
70
- alignOffset = -4,
71
- sideOffset = 8,
72
- ...props
73
- }: React.ComponentProps<typeof MenubarPrimitive.Content>) {
74
- return (
75
- <MenubarPortal>
76
- <MenubarPrimitive.Content
77
- data-slot="menubar-content"
78
- align={align}
79
- alignOffset={alignOffset}
80
- sideOffset={sideOffset}
81
- className={cn(
82
- "bg-white text-neutral-950 data-[state=open]:animate-in 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-[12rem] overflow-hidden rounded-md border border-neutral-200 p-1 shadow-md dark:bg-neutral-950 dark:text-neutral-50 dark:border-neutral-800",
83
- className
84
- )}
85
- {...props}
86
- />
87
- </MenubarPortal>
88
- )
89
- }
90
-
91
- function MenubarItem({
92
- className,
93
- inset,
94
- variant = "default",
95
- ...props
96
- }: React.ComponentProps<typeof MenubarPrimitive.Item> & {
97
- inset?: boolean
98
- variant?: "default" | "destructive"
99
- }) {
100
- return (
101
- <MenubarPrimitive.Item
102
- data-slot="menubar-item"
103
- data-inset={inset}
104
- data-variant={variant}
105
- className={cn(
106
- "focus:bg-neutral-100 focus:text-neutral-900 data-[variant=destructive]:text-neutral-50 data-[variant=destructive]:focus:bg-red-500/10 dark:data-[variant=destructive]:focus:bg-red-500/40 data-[variant=destructive]:focus:text-neutral-50 data-[variant=destructive]:*:[svg]:!text-destructive-foreground [&_svg:not([class*='text-'])]:text-neutral-500 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 dark:focus:bg-neutral-800 dark:focus:text-neutral-50 dark:data-[variant=destructive]:text-neutral-50 dark:data-[variant=destructive]:focus:bg-red-900/10 dark:dark:data-[variant=destructive]:focus:bg-red-900/40 dark:data-[variant=destructive]:focus:text-neutral-50 dark:[&_svg:not([class*='text-'])]:text-neutral-400",
107
- className
108
- )}
109
- {...props}
110
- />
111
- )
112
- }
113
-
114
- function MenubarCheckboxItem({
115
- className,
116
- children,
117
- checked,
118
- ...props
119
- }: React.ComponentProps<typeof MenubarPrimitive.CheckboxItem>) {
120
- return (
121
- <MenubarPrimitive.CheckboxItem
122
- data-slot="menubar-checkbox-item"
123
- className={cn(
124
- "focus:bg-neutral-100 focus:text-neutral-900 relative flex cursor-default items-center gap-2 rounded-xs 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 dark:focus:bg-neutral-800 dark:focus:text-neutral-50",
125
- className
126
- )}
127
- checked={checked}
128
- {...props}
129
- >
130
- <span className="pointer-events-none absolute left-2 flex size-3.5 items-center justify-center">
131
- <MenubarPrimitive.ItemIndicator>
132
- <CheckIcon className="size-4" />
133
- </MenubarPrimitive.ItemIndicator>
134
- </span>
135
- {children}
136
- </MenubarPrimitive.CheckboxItem>
137
- )
138
- }
139
-
140
- function MenubarRadioItem({
141
- className,
142
- children,
143
- ...props
144
- }: React.ComponentProps<typeof MenubarPrimitive.RadioItem>) {
145
- return (
146
- <MenubarPrimitive.RadioItem
147
- data-slot="menubar-radio-item"
148
- className={cn(
149
- "focus:bg-neutral-100 focus:text-neutral-900 relative flex cursor-default items-center gap-2 rounded-xs 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 dark:focus:bg-neutral-800 dark:focus:text-neutral-50",
150
- className
151
- )}
152
- {...props}
153
- >
154
- <span className="pointer-events-none absolute left-2 flex size-3.5 items-center justify-center">
155
- <MenubarPrimitive.ItemIndicator>
156
- <CircleIcon className="size-2 fill-current" />
157
- </MenubarPrimitive.ItemIndicator>
158
- </span>
159
- {children}
160
- </MenubarPrimitive.RadioItem>
161
- )
162
- }
163
-
164
- function MenubarLabel({
165
- className,
166
- inset,
167
- ...props
168
- }: React.ComponentProps<typeof MenubarPrimitive.Label> & {
169
- inset?: boolean
170
- }) {
171
- return (
172
- <MenubarPrimitive.Label
173
- data-slot="menubar-label"
174
- data-inset={inset}
175
- className={cn(
176
- "px-2 py-1.5 text-sm font-medium data-[inset]:pl-8",
177
- className
178
- )}
179
- {...props}
180
- />
181
- )
182
- }
183
-
184
- function MenubarSeparator({
185
- className,
186
- ...props
187
- }: React.ComponentProps<typeof MenubarPrimitive.Separator>) {
188
- return (
189
- <MenubarPrimitive.Separator
190
- data-slot="menubar-separator"
191
- className={cn("bg-neutral-200 -mx-1 my-1 h-px dark:bg-neutral-800", className)}
192
- {...props}
193
- />
194
- )
195
- }
196
-
197
- function MenubarShortcut({
198
- className,
199
- ...props
200
- }: React.ComponentProps<"span">) {
201
- return (
202
- <span
203
- data-slot="menubar-shortcut"
204
- className={cn(
205
- "text-neutral-500 ml-auto text-xs tracking-widest dark:text-neutral-400",
206
- className
207
- )}
208
- {...props}
209
- />
210
- )
211
- }
212
-
213
- function MenubarSub({
214
- ...props
215
- }: React.ComponentProps<typeof MenubarPrimitive.Sub>) {
216
- return <MenubarPrimitive.Sub data-slot="menubar-sub" {...props} />
217
- }
218
-
219
- function MenubarSubTrigger({
220
- className,
221
- inset,
222
- children,
223
- ...props
224
- }: React.ComponentProps<typeof MenubarPrimitive.SubTrigger> & {
225
- inset?: boolean
226
- }) {
227
- return (
228
- <MenubarPrimitive.SubTrigger
229
- data-slot="menubar-sub-trigger"
230
- data-inset={inset}
231
- className={cn(
232
- "focus:bg-neutral-100 focus:text-neutral-900 data-[state=open]:bg-neutral-100 data-[state=open]:text-neutral-900 flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-none select-none data-[inset]:pl-8 dark:focus:bg-neutral-800 dark:focus:text-neutral-50 dark:data-[state=open]:bg-neutral-800 dark:data-[state=open]:text-neutral-50",
233
- className
234
- )}
235
- {...props}
236
- >
237
- {children}
238
- <ChevronRightIcon className="ml-auto h-4 w-4" />
239
- </MenubarPrimitive.SubTrigger>
240
- )
241
- }
242
-
243
- function MenubarSubContent({
244
- className,
245
- ...props
246
- }: React.ComponentProps<typeof MenubarPrimitive.SubContent>) {
247
- return (
248
- <MenubarPrimitive.SubContent
249
- data-slot="menubar-sub-content"
250
- className={cn(
251
- "bg-white text-neutral-950 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] overflow-hidden rounded-md border border-neutral-200 p-1 shadow-lg dark:bg-neutral-950 dark:text-neutral-50 dark:border-neutral-800",
252
- className
253
- )}
254
- {...props}
255
- />
256
- )
257
- }
258
-
259
- export {
260
- Menubar,
261
- MenubarPortal,
262
- MenubarMenu,
263
- MenubarTrigger,
264
- MenubarContent,
265
- MenubarGroup,
266
- MenubarSeparator,
267
- MenubarLabel,
268
- MenubarItem,
269
- MenubarShortcut,
270
- MenubarCheckboxItem,
271
- MenubarRadioGroup,
272
- MenubarRadioItem,
273
- MenubarSub,
274
- MenubarSubTrigger,
275
- MenubarSubContent,
276
- }
@@ -1,170 +0,0 @@
1
- "use client"
2
-
3
- import * as React from "react"
4
- import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu"
5
- import { cva } from "class-variance-authority"
6
- import { ChevronDownIcon } from "lucide-react"
7
-
8
- import { cn } from "@/lib/utils"
9
-
10
- function NavigationMenu({
11
- className,
12
- children,
13
- viewport = true,
14
- ...props
15
- }: React.ComponentProps<typeof NavigationMenuPrimitive.Root> & {
16
- viewport?: boolean
17
- }) {
18
- return (
19
- <NavigationMenuPrimitive.Root
20
- data-slot="navigation-menu"
21
- data-viewport={viewport}
22
- className={cn(
23
- "group/navigation-menu relative flex max-w-max flex-1 items-center justify-center",
24
- className
25
- )}
26
- {...props}
27
- >
28
- {children}
29
- {viewport && <NavigationMenuViewport />}
30
- </NavigationMenuPrimitive.Root>
31
- )
32
- }
33
-
34
- function NavigationMenuList({
35
- className,
36
- ...props
37
- }: React.ComponentProps<typeof NavigationMenuPrimitive.List>) {
38
- return (
39
- <NavigationMenuPrimitive.List
40
- data-slot="navigation-menu-list"
41
- className={cn(
42
- "group flex flex-1 list-none items-center justify-center gap-1",
43
- className
44
- )}
45
- {...props}
46
- />
47
- )
48
- }
49
-
50
- function NavigationMenuItem({
51
- className,
52
- ...props
53
- }: React.ComponentProps<typeof NavigationMenuPrimitive.Item>) {
54
- return (
55
- <NavigationMenuPrimitive.Item
56
- data-slot="navigation-menu-item"
57
- className={cn("relative", className)}
58
- {...props}
59
- />
60
- )
61
- }
62
-
63
- const navigationMenuTriggerStyle = cva(
64
- "group inline-flex h-9 w-max items-center justify-center rounded-md bg-white px-4 py-2 text-sm font-medium hover:bg-neutral-100 hover:text-neutral-900 focus:bg-neutral-100 focus:text-neutral-900 disabled:pointer-events-none disabled:opacity-50 data-[active=true]:bg-neutral-100/50 data-[state=open]:bg-neutral-100/50 data-[active=true]:text-neutral-900 ring-neutral-950/10 dark:ring-neutral-950/20 dark:outline-ring/40 outline-ring/50 transition-[color,box-shadow] focus-visible:ring-4 focus-visible:outline-1 dark:bg-neutral-950 dark:hover:bg-neutral-800 dark:hover:text-neutral-50 dark:focus:bg-neutral-800 dark:focus:text-neutral-50 dark:data-[active=true]:bg-neutral-800/50 dark:data-[state=open]:bg-neutral-800/50 dark:data-[active=true]:text-neutral-50 dark:ring-neutral-300/10 dark:dark:ring-neutral-300/20"
65
- )
66
-
67
- function NavigationMenuTrigger({
68
- className,
69
- children,
70
- ...props
71
- }: React.ComponentProps<typeof NavigationMenuPrimitive.Trigger>) {
72
- return (
73
- <NavigationMenuPrimitive.Trigger
74
- data-slot="navigation-menu-trigger"
75
- className={cn(navigationMenuTriggerStyle(), "group", className)}
76
- {...props}
77
- >
78
- {children}{""}
79
- <ChevronDownIcon
80
- className="relative top-[1px] ml-1 size-3 transition duration-300 group-data-[state=open]:rotate-180"
81
- aria-hidden="true"
82
- />
83
- </NavigationMenuPrimitive.Trigger>
84
- )
85
- }
86
-
87
- function NavigationMenuContent({
88
- className,
89
- ...props
90
- }: React.ComponentProps<typeof NavigationMenuPrimitive.Content>) {
91
- return (
92
- <NavigationMenuPrimitive.Content
93
- data-slot="navigation-menu-content"
94
- className={cn(
95
- "data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 top-0 left-0 w-full p-2 pr-2.5 md:absolute md:w-auto",
96
- "group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:data-[state=open]:animate-in group-data-[viewport=false]/navigation-menu:data-[state=closed]:animate-out group-data-[viewport=false]/navigation-menu:data-[state=closed]:zoom-out-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:zoom-in-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:fade-in-0 group-data-[viewport=false]/navigation-menu:data-[state=closed]:fade-out-0 group-data-[viewport=false]/navigation-menu:top-full group-data-[viewport=false]/navigation-menu:mt-1.5 group-data-[viewport=false]/navigation-menu:overflow-hidden group-data-[viewport=false]/navigation-menu:rounded-md group-data-[viewport=false]/navigation-menu:border group-data-[viewport=false]/navigation-menu:shadow group-data-[viewport=false]/navigation-menu:duration-200 **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none",
97
- className
98
- )}
99
- {...props}
100
- />
101
- )
102
- }
103
-
104
- function NavigationMenuViewport({
105
- className,
106
- ...props
107
- }: React.ComponentProps<typeof NavigationMenuPrimitive.Viewport>) {
108
- return (
109
- <div
110
- className={cn(
111
- "absolute top-full left-0 isolate z-50 flex justify-center"
112
- )}
113
- >
114
- <NavigationMenuPrimitive.Viewport
115
- data-slot="navigation-menu-viewport"
116
- className={cn(
117
- "origin-top-center bg-white text-neutral-950 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border border-neutral-200 shadow md:w-[var(--radix-navigation-menu-viewport-width)] dark:bg-neutral-950 dark:text-neutral-50 dark:border-neutral-800",
118
- className
119
- )}
120
- {...props}
121
- />
122
- </div>
123
- )
124
- }
125
-
126
- function NavigationMenuLink({
127
- className,
128
- ...props
129
- }: React.ComponentProps<typeof NavigationMenuPrimitive.Link>) {
130
- return (
131
- <NavigationMenuPrimitive.Link
132
- data-slot="navigation-menu-link"
133
- className={cn(
134
- "hover:bg-neutral-100 hover:text-neutral-900 focus:bg-neutral-100 focus:text-neutral-900 data-[active=true]:bg-neutral-100/50 data-[active=true]:text-neutral-900 ring-neutral-950/10 dark:ring-neutral-950/20 dark:outline-ring/40 outline-ring/50 [&_svg:not([class*='text-'])]:text-neutral-500 flex flex-col gap-1 rounded-sm p-2 text-sm transition-[color,box-shadow] focus-visible:ring-4 focus-visible:outline-1 [&_svg:not([class*='size-'])]:size-4 dark:hover:bg-neutral-800 dark:hover:text-neutral-50 dark:focus:bg-neutral-800 dark:focus:text-neutral-50 dark:data-[active=true]:bg-neutral-800/50 dark:data-[active=true]:text-neutral-50 dark:ring-neutral-300/10 dark:dark:ring-neutral-300/20 dark:[&_svg:not([class*='text-'])]:text-neutral-400",
135
- className
136
- )}
137
- {...props}
138
- />
139
- )
140
- }
141
-
142
- function NavigationMenuIndicator({
143
- className,
144
- ...props
145
- }: React.ComponentProps<typeof NavigationMenuPrimitive.Indicator>) {
146
- return (
147
- <NavigationMenuPrimitive.Indicator
148
- data-slot="navigation-menu-indicator"
149
- className={cn(
150
- "data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden",
151
- className
152
- )}
153
- {...props}
154
- >
155
- <div className="bg-neutral-200 relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm shadow-md dark:bg-neutral-800" />
156
- </NavigationMenuPrimitive.Indicator>
157
- )
158
- }
159
-
160
- export {
161
- NavigationMenu,
162
- NavigationMenuList,
163
- NavigationMenuItem,
164
- NavigationMenuContent,
165
- NavigationMenuTrigger,
166
- NavigationMenuLink,
167
- NavigationMenuIndicator,
168
- NavigationMenuViewport,
169
- navigationMenuTriggerStyle,
170
- }
@@ -1,127 +0,0 @@
1
- import * as React from "react"
2
- import {
3
- ChevronLeftIcon,
4
- ChevronRightIcon,
5
- MoreHorizontalIcon,
6
- } from "lucide-react"
7
-
8
- import { cn } from "@/lib/utils"
9
- import { Button, buttonVariants } from "@/components/ui/button"
10
-
11
- function Pagination({ className, ...props }: React.ComponentProps<"nav">) {
12
- return (
13
- <nav
14
- role="navigation"
15
- aria-label="pagination"
16
- data-slot="pagination"
17
- className={cn("mx-auto flex w-full justify-center", className)}
18
- {...props}
19
- />
20
- )
21
- }
22
-
23
- function PaginationContent({
24
- className,
25
- ...props
26
- }: React.ComponentProps<"ul">) {
27
- return (
28
- <ul
29
- data-slot="pagination-content"
30
- className={cn("flex flex-row items-center gap-1", className)}
31
- {...props}
32
- />
33
- )
34
- }
35
-
36
- function PaginationItem({ ...props }: React.ComponentProps<"li">) {
37
- return <li data-slot="pagination-item" {...props} />
38
- }
39
-
40
- type PaginationLinkProps = {
41
- isActive?: boolean
42
- } & Pick<React.ComponentProps<typeof Button>, "size"> &
43
- React.ComponentProps<"a">
44
-
45
- function PaginationLink({
46
- className,
47
- isActive,
48
- size = "icon",
49
- ...props
50
- }: PaginationLinkProps) {
51
- return (
52
- <a
53
- aria-current={isActive ? "page" : undefined}
54
- data-slot="pagination-link"
55
- data-active={isActive}
56
- className={cn(
57
- buttonVariants({
58
- variant: isActive ? "outline" : "ghost",
59
- size,
60
- }),
61
- className
62
- )}
63
- {...props}
64
- />
65
- )
66
- }
67
-
68
- function PaginationPrevious({
69
- className,
70
- ...props
71
- }: React.ComponentProps<typeof PaginationLink>) {
72
- return (
73
- <PaginationLink
74
- aria-label="Go to previous page"
75
- size="default"
76
- className={cn("gap-1 px-2.5 sm:pl-2.5", className)}
77
- {...props}
78
- >
79
- <ChevronLeftIcon />
80
- <span className="hidden sm:block">Previous</span>
81
- </PaginationLink>
82
- )
83
- }
84
-
85
- function PaginationNext({
86
- className,
87
- ...props
88
- }: React.ComponentProps<typeof PaginationLink>) {
89
- return (
90
- <PaginationLink
91
- aria-label="Go to next page"
92
- size="default"
93
- className={cn("gap-1 px-2.5 sm:pr-2.5", className)}
94
- {...props}
95
- >
96
- <span className="hidden sm:block">Next</span>
97
- <ChevronRightIcon />
98
- </PaginationLink>
99
- )
100
- }
101
-
102
- function PaginationEllipsis({
103
- className,
104
- ...props
105
- }: React.ComponentProps<"span">) {
106
- return (
107
- <span
108
- aria-hidden
109
- data-slot="pagination-ellipsis"
110
- className={cn("flex size-9 items-center justify-center", className)}
111
- {...props}
112
- >
113
- <MoreHorizontalIcon className="size-4" />
114
- <span className="sr-only">More pages</span>
115
- </span>
116
- )
117
- }
118
-
119
- export {
120
- Pagination,
121
- PaginationContent,
122
- PaginationLink,
123
- PaginationItem,
124
- PaginationPrevious,
125
- PaginationNext,
126
- PaginationEllipsis,
127
- }
@@ -1,48 +0,0 @@
1
- "use client"
2
-
3
- import * as React from "react"
4
- import * as PopoverPrimitive from "@radix-ui/react-popover"
5
-
6
- import { cn } from "@/lib/utils"
7
-
8
- function Popover({
9
- ...props
10
- }: React.ComponentProps<typeof PopoverPrimitive.Root>) {
11
- return <PopoverPrimitive.Root data-slot="popover" {...props} />
12
- }
13
-
14
- function PopoverTrigger({
15
- ...props
16
- }: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {
17
- return <PopoverPrimitive.Trigger data-slot="popover-trigger" {...props} />
18
- }
19
-
20
- function PopoverContent({
21
- className,
22
- align = "center",
23
- sideOffset = 4,
24
- ...props
25
- }: React.ComponentProps<typeof PopoverPrimitive.Content>) {
26
- return (
27
- <PopoverPrimitive.Portal>
28
- <PopoverPrimitive.Content
29
- data-slot="popover-content"
30
- align={align}
31
- sideOffset={sideOffset}
32
- className={cn(
33
- "bg-white text-neutral-950 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 rounded-md border border-neutral-200 p-4 shadow-md outline-hidden dark:bg-neutral-950 dark:text-neutral-50 dark:border-neutral-800",
34
- className
35
- )}
36
- {...props}
37
- />
38
- </PopoverPrimitive.Portal>
39
- )
40
- }
41
-
42
- function PopoverAnchor({
43
- ...props
44
- }: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {
45
- return <PopoverPrimitive.Anchor data-slot="popover-anchor" {...props} />
46
- }
47
-
48
- export { Popover, PopoverTrigger, PopoverContent, PopoverAnchor }
@@ -1,31 +0,0 @@
1
- "use client"
2
-
3
- import * as React from "react"
4
- import * as ProgressPrimitive from "@radix-ui/react-progress"
5
-
6
- import { cn } from "@/lib/utils"
7
-
8
- function Progress({
9
- className,
10
- value,
11
- ...props
12
- }: React.ComponentProps<typeof ProgressPrimitive.Root>) {
13
- return (
14
- <ProgressPrimitive.Root
15
- data-slot="progress"
16
- className={cn(
17
- "bg-neutral-900/20 relative h-2 w-full overflow-hidden rounded-full dark:bg-neutral-50/20",
18
- className
19
- )}
20
- {...props}
21
- >
22
- <ProgressPrimitive.Indicator
23
- data-slot="progress-indicator"
24
- className="bg-neutral-900 h-full w-full flex-1 transition-all dark:bg-neutral-50"
25
- style={{ transform: `translateX(-${100 - (value || 0)}%)` }}
26
- />
27
- </ProgressPrimitive.Root>
28
- )
29
- }
30
-
31
- export { Progress }
@@ -1,45 +0,0 @@
1
- "use client"
2
-
3
- import * as React from "react"
4
- import * as RadioGroupPrimitive from "@radix-ui/react-radio-group"
5
- import { CircleIcon } from "lucide-react"
6
-
7
- import { cn } from "@/lib/utils"
8
-
9
- function RadioGroup({
10
- className,
11
- ...props
12
- }: React.ComponentProps<typeof RadioGroupPrimitive.Root>) {
13
- return (
14
- <RadioGroupPrimitive.Root
15
- data-slot="radio-group"
16
- className={cn("grid gap-3", className)}
17
- {...props}
18
- />
19
- )
20
- }
21
-
22
- function RadioGroupItem({
23
- className,
24
- ...props
25
- }: React.ComponentProps<typeof RadioGroupPrimitive.Item>) {
26
- return (
27
- <RadioGroupPrimitive.Item
28
- data-slot="radio-group-item"
29
- className={cn(
30
- "border-neutral-200 text-neutral-900 focus-visible:border-neutral-950 focus-visible:ring-neutral-950/50 aria-invalid:ring-red-500/20 dark:aria-invalid:ring-red-500/40 aria-invalid:border-red-500 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 dark:border-neutral-800 dark:text-neutral-50 dark:focus-visible:border-neutral-300 dark:focus-visible:ring-neutral-300/50 dark:aria-invalid:ring-red-900/20 dark:dark:aria-invalid:ring-red-900/40 dark:aria-invalid:border-red-900",
31
- className
32
- )}
33
- {...props}
34
- >
35
- <RadioGroupPrimitive.Indicator
36
- data-slot="radio-group-indicator"
37
- className="relative flex items-center justify-center"
38
- >
39
- <CircleIcon className="fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2" />
40
- </RadioGroupPrimitive.Indicator>
41
- </RadioGroupPrimitive.Item>
42
- )
43
- }
44
-
45
- export { RadioGroup, RadioGroupItem }