@boyernick/standard-ui-react 0.1.1-canary.3 → 0.1.1-canary.34

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 (89) hide show
  1. package/package.json +5 -3
  2. package/src/accordion.tsx +5 -2
  3. package/src/alert-dialog.tsx +1 -1
  4. package/src/attachment.tsx +5 -2
  5. package/src/autocomplete.tsx +12 -9
  6. package/src/badge.tsx +73 -9
  7. package/src/block-editor.tsx +1747 -0
  8. package/src/brand.tsx +2 -2
  9. package/src/breadcrumb.tsx +46 -21
  10. package/src/button.tsx +23 -12
  11. package/src/calendar.tsx +25 -11
  12. package/src/card.tsx +57 -14
  13. package/src/carousel.tsx +339 -15
  14. package/src/checkbox.tsx +36 -13
  15. package/src/code-block.tsx +66 -5
  16. package/src/collapsible.tsx +7 -3
  17. package/src/combobox.tsx +17 -15
  18. package/src/command.tsx +41 -14
  19. package/src/context-menu.tsx +6 -3
  20. package/src/date-picker.tsx +174 -0
  21. package/src/dialog.tsx +33 -10
  22. package/src/empty.tsx +4 -4
  23. package/src/field.tsx +4 -3
  24. package/src/filter-group.tsx +143 -0
  25. package/src/icons.tsx +55 -1
  26. package/src/illustrations.tsx +219 -141
  27. package/src/index.ts +263 -18
  28. package/src/input.tsx +8 -5
  29. package/src/kbd.tsx +49 -0
  30. package/src/lib/focus.ts +41 -0
  31. package/src/lib/motion.ts +16 -1
  32. package/src/lib/popup.ts +45 -0
  33. package/src/lifeline/company-icon.tsx +71 -0
  34. package/src/lifeline/index.ts +42 -0
  35. package/src/lifeline/lifeline-data.ts +97 -0
  36. package/src/lifeline/lifeline-desktop.tsx +204 -0
  37. package/src/lifeline/lifeline-event.tsx +108 -0
  38. package/src/lifeline/lifeline-fireworks.tsx +302 -0
  39. package/src/lifeline/lifeline-hover-image.tsx +269 -0
  40. package/src/lifeline/lifeline-icons.tsx +39 -0
  41. package/src/lifeline/lifeline-intro-timing.ts +105 -0
  42. package/src/lifeline/lifeline-labels.tsx +24 -0
  43. package/src/lifeline/lifeline-layout.ts +1 -0
  44. package/src/lifeline/lifeline-legend.tsx +31 -0
  45. package/src/lifeline/lifeline-lightbox.tsx +309 -0
  46. package/src/lifeline/lifeline-marker.tsx +183 -0
  47. package/src/lifeline/lifeline-people.tsx +99 -0
  48. package/src/lifeline/lifeline-photos.tsx +366 -0
  49. package/src/lifeline/lifeline-shell.tsx +135 -0
  50. package/src/lifeline/lifeline-utils.ts +83 -0
  51. package/src/lifeline/lifeline-vertical.tsx +482 -0
  52. package/src/lifeline/lifeline.tsx +69 -0
  53. package/src/lifeline/types.ts +112 -0
  54. package/src/lifeline/use-lifeline-intro.ts +130 -0
  55. package/src/lifeline/use-lifeline-scroll.ts +1011 -0
  56. package/src/lifeline/use-lifeline-vertical-scroll.ts +271 -0
  57. package/src/menu.tsx +7 -4
  58. package/src/menubar.tsx +9 -2
  59. package/src/minimap.tsx +296 -0
  60. package/src/modal.tsx +608 -0
  61. package/src/navigation-menu.tsx +340 -67
  62. package/src/number-field.tsx +336 -61
  63. package/src/otp-field.tsx +4 -3
  64. package/src/pagination.tsx +262 -42
  65. package/src/password-protection.tsx +345 -0
  66. package/src/popover.tsx +3 -1
  67. package/src/preview-card.tsx +3 -1
  68. package/src/progress.tsx +5 -0
  69. package/src/questionnaire.tsx +284 -0
  70. package/src/radio.tsx +4 -2
  71. package/src/scroll-area.tsx +4 -1
  72. package/src/select.tsx +12 -7
  73. package/src/sidebar.tsx +113 -28
  74. package/src/slider.tsx +66 -6
  75. package/src/sounds.tsx +6 -10
  76. package/src/spinner.tsx +105 -32
  77. package/src/switch.tsx +4 -1
  78. package/src/table.tsx +82 -15
  79. package/src/tabs.tsx +189 -38
  80. package/src/text-animate.tsx +71 -28
  81. package/src/textarea.tsx +6 -1
  82. package/src/timeline.tsx +378 -0
  83. package/src/toast.tsx +214 -35
  84. package/src/toggle.tsx +4 -2
  85. package/src/toolbar.tsx +12 -7
  86. package/src/tooltip.tsx +43 -3
  87. package/src/video-player.tsx +396 -127
  88. package/src/image-modal.tsx +0 -110
  89. package/src/markdown-editor.tsx +0 -302
@@ -1,21 +1,188 @@
1
1
  "use client"
2
2
 
3
3
  import { NavigationMenu as BaseNavigationMenu } from "@base-ui/react/navigation-menu"
4
- import type { ComponentProps } from "react"
4
+ import { cva, type VariantProps } from "class-variance-authority"
5
+ import { createContext, useContext, useMemo, type ComponentProps } from "react"
5
6
  import { IconChevronDownSmall } from "./icons"
6
7
  import { cn } from "./lib/cn"
8
+ import { focusRing, focusRingBorder } from "./lib/focus"
7
9
  import { motion } from "./lib/motion"
10
+ import { popupSurface } from "./lib/popup"
8
11
 
9
- export type NavigationMenuProps = ComponentProps<typeof BaseNavigationMenu.Root>
12
+ export type NavigationMenuVariant = "plain" | "pill" | "underline"
13
+ export type NavigationMenuSize = "sm" | "md" | "lg"
14
+ type NavigationMenuOrientation = "horizontal" | "vertical"
15
+
16
+ type NavigationMenuStyleContextValue = {
17
+ orientation: NavigationMenuOrientation
18
+ size: NavigationMenuSize
19
+ variant: NavigationMenuVariant
20
+ }
21
+
22
+ const NavigationMenuStyleContext =
23
+ createContext<NavigationMenuStyleContextValue>({
24
+ orientation: "horizontal",
25
+ size: "md",
26
+ variant: "plain",
27
+ })
28
+
29
+ const navigationMenuRootVariants = cva("relative isolate z-10 flex", {
30
+ variants: {
31
+ orientation: {
32
+ horizontal: "max-w-max flex-1 items-center justify-center",
33
+ vertical: "w-full max-w-56 flex-col items-stretch",
34
+ },
35
+ },
36
+ defaultVariants: {
37
+ orientation: "horizontal",
38
+ },
39
+ })
40
+
41
+ const navigationMenuListVariants = cva("group list-none", {
42
+ variants: {
43
+ orientation: {
44
+ horizontal: "flex flex-1 items-center justify-center gap-0.5",
45
+ vertical: "flex w-full flex-col items-stretch gap-0.5",
46
+ },
47
+ variant: {
48
+ plain: "",
49
+ pill: "bg-background-secondary p-1",
50
+ underline: "border-border-primary",
51
+ },
52
+ },
53
+ compoundVariants: [
54
+ {
55
+ orientation: "horizontal",
56
+ variant: "pill",
57
+ className: "rounded-full",
58
+ },
59
+ {
60
+ orientation: "vertical",
61
+ variant: "pill",
62
+ className: "rounded-lg",
63
+ },
64
+ {
65
+ orientation: "horizontal",
66
+ variant: "underline",
67
+ className: "border-b",
68
+ },
69
+ {
70
+ orientation: "vertical",
71
+ variant: "underline",
72
+ className: "border-l",
73
+ },
74
+ ],
75
+ defaultVariants: {
76
+ orientation: "horizontal",
77
+ variant: "plain",
78
+ },
79
+ })
80
+
81
+ const navigationMenuBarItemVariants = cva(
82
+ cn(
83
+ "inline-flex cursor-pointer items-center gap-1 border border-transparent text-fg-secondary",
84
+ motion.colors,
85
+ focusRing,
86
+ "hover:text-fg-primary data-active:font-medium data-active:text-fg-primary data-popup-open:text-fg-primary",
87
+ ),
88
+ {
89
+ variants: {
90
+ orientation: {
91
+ horizontal: "justify-center",
92
+ vertical: "w-full justify-between",
93
+ },
94
+ size: {
95
+ sm: "h-8 px-2.5 text-xs",
96
+ md: "h-9 px-3 text-sm",
97
+ lg: "h-10 px-3.5 text-sm",
98
+ },
99
+ variant: {
100
+ plain:
101
+ "rounded-md hover:bg-background-tertiary data-active:bg-background-tertiary data-popup-open:bg-background-tertiary",
102
+ pill: "rounded-full hover:bg-surface data-active:border-brand-primary-border data-active:bg-brand-primary data-active:text-brand-foreground data-popup-open:bg-surface data-popup-open:shadow-sm",
103
+ underline: "rounded-none hover:bg-transparent",
104
+ },
105
+ },
106
+ compoundVariants: [
107
+ {
108
+ orientation: "horizontal",
109
+ variant: "underline",
110
+ className:
111
+ "h-auto border-x-0 border-t-0 border-b-2 border-b-transparent px-2 py-2.5 data-active:border-b-brand-primary data-popup-open:border-b-brand-primary",
112
+ },
113
+ {
114
+ orientation: "vertical",
115
+ variant: "underline",
116
+ className:
117
+ "border-y-0 border-r-0 border-l-2 border-l-transparent data-active:border-l-brand-primary data-popup-open:border-l-brand-primary",
118
+ },
119
+ ],
120
+ defaultVariants: {
121
+ orientation: "horizontal",
122
+ size: "md",
123
+ variant: "plain",
124
+ },
125
+ },
126
+ )
127
+
128
+ const navigationMenuLinkVariants = cva(
129
+ cn(
130
+ "group/navigation-link flex cursor-pointer rounded-md text-fg-primary",
131
+ focusRingBorder,
132
+ motion.colors,
133
+ focusRing,
134
+ "hover:bg-background-tertiary focus-visible:bg-background-tertiary data-active:bg-background-tertiary",
135
+ ),
136
+ {
137
+ variants: {
138
+ variant: {
139
+ default: "flex-col gap-0.5",
140
+ featured:
141
+ "min-h-32 flex-col justify-end gap-1 bg-background-secondary",
142
+ },
143
+ size: {
144
+ sm: "p-2 text-xs",
145
+ md: "p-2.5 text-sm",
146
+ lg: "p-3 text-sm",
147
+ },
148
+ },
149
+ defaultVariants: {
150
+ variant: "default",
151
+ size: "md",
152
+ },
153
+ },
154
+ )
155
+
156
+ type NavigationMenuBarItemVariantProps = Omit<
157
+ VariantProps<typeof navigationMenuBarItemVariants>,
158
+ "orientation"
159
+ >
160
+
161
+ export type NavigationMenuProps = Omit<
162
+ ComponentProps<typeof BaseNavigationMenu.Root>,
163
+ "size"
164
+ > & {
165
+ size?: NavigationMenuSize
166
+ variant?: NavigationMenuVariant
167
+ }
10
168
  export type NavigationMenuListProps = ComponentProps<
11
169
  typeof BaseNavigationMenu.List
12
170
  >
13
171
  export type NavigationMenuItemProps = ComponentProps<
14
172
  typeof BaseNavigationMenu.Item
15
173
  >
16
- export type NavigationMenuTriggerProps = ComponentProps<
17
- typeof BaseNavigationMenu.Trigger
18
- >
174
+ export type NavigationMenuTriggerProps = Omit<
175
+ ComponentProps<typeof BaseNavigationMenu.Trigger>,
176
+ "size"
177
+ > &
178
+ NavigationMenuBarItemVariantProps & {
179
+ showIcon?: boolean
180
+ }
181
+ export type NavigationMenuBarLinkProps = Omit<
182
+ ComponentProps<typeof BaseNavigationMenu.Link>,
183
+ "size"
184
+ > &
185
+ NavigationMenuBarItemVariantProps
19
186
  export type NavigationMenuContentProps = ComponentProps<
20
187
  typeof BaseNavigationMenu.Content
21
188
  >
@@ -37,41 +204,59 @@ export type NavigationMenuPopupProps = ComponentProps<
37
204
  export type NavigationMenuArrowProps = ComponentProps<
38
205
  typeof BaseNavigationMenu.Arrow
39
206
  >
40
- export type NavigationMenuLinkProps = ComponentProps<
41
- typeof BaseNavigationMenu.Link
42
- >
207
+ export type NavigationMenuLinkProps = Omit<
208
+ ComponentProps<typeof BaseNavigationMenu.Link>,
209
+ "size"
210
+ > &
211
+ VariantProps<typeof navigationMenuLinkVariants>
212
+ export type NavigationMenuLinkIconProps = ComponentProps<"span">
213
+ export type NavigationMenuLinkTitleProps = ComponentProps<"span">
214
+ export type NavigationMenuLinkDescriptionProps = ComponentProps<"span">
43
215
  export type NavigationMenuIconProps = ComponentProps<
44
216
  typeof BaseNavigationMenu.Icon
45
217
  >
46
218
 
47
- const navigationMenuTriggerClassName = cn(
48
- "inline-flex h-9 cursor-pointer items-center gap-1 rounded-md px-3 text-sm text-fg-secondary outline-none",
49
- motion.colors,
50
- "hover:bg-background-tertiary hover:text-fg-primary focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-offset-1 focus-visible:ring-offset-background-primary focus-visible:ring-ring/20 data-popup-open:bg-background-tertiary data-popup-open:text-fg-primary",
51
- )
52
-
53
219
  export const NavigationMenu = ({
54
220
  className,
221
+ orientation = "horizontal",
222
+ size = "md",
223
+ variant = "plain",
55
224
  ...props
56
- }: NavigationMenuProps) => (
57
- <BaseNavigationMenu.Root
58
- className={cn("relative isolate z-10 flex max-w-max flex-1 items-center justify-center", className)}
59
- {...props}
60
- />
61
- )
225
+ }: NavigationMenuProps) => {
226
+ const styleContext = useMemo(
227
+ () => ({ orientation, size, variant }),
228
+ [orientation, size, variant],
229
+ )
230
+
231
+ return (
232
+ <NavigationMenuStyleContext.Provider value={styleContext}>
233
+ <BaseNavigationMenu.Root
234
+ orientation={orientation}
235
+ data-orientation={orientation}
236
+ data-variant={variant}
237
+ className={cn(navigationMenuRootVariants({ orientation }), className)}
238
+ {...props}
239
+ />
240
+ </NavigationMenuStyleContext.Provider>
241
+ )
242
+ }
62
243
 
63
244
  export const NavigationMenuList = ({
64
245
  className,
65
246
  ...props
66
- }: NavigationMenuListProps) => (
67
- <BaseNavigationMenu.List
68
- className={cn(
69
- "group flex flex-1 list-none items-center justify-center gap-0.5",
70
- className,
71
- )}
72
- {...props}
73
- />
74
- )
247
+ }: NavigationMenuListProps) => {
248
+ const { orientation, variant } = useContext(NavigationMenuStyleContext)
249
+
250
+ return (
251
+ <BaseNavigationMenu.List
252
+ className={cn(
253
+ navigationMenuListVariants({ orientation, variant }),
254
+ className,
255
+ )}
256
+ {...props}
257
+ />
258
+ )
259
+ }
75
260
 
76
261
  export const NavigationMenuItem = ({
77
262
  className,
@@ -83,34 +268,79 @@ export const NavigationMenuItem = ({
83
268
  export const NavigationMenuTrigger = ({
84
269
  className,
85
270
  children,
271
+ showIcon = true,
272
+ size,
273
+ variant,
86
274
  ...props
87
- }: NavigationMenuTriggerProps) => (
88
- <BaseNavigationMenu.Trigger
89
- className={cn(navigationMenuTriggerClassName, className)}
90
- {...props}
91
- >
92
- {children}
93
- <NavigationMenuIcon />
94
- </BaseNavigationMenu.Trigger>
95
- )
275
+ }: NavigationMenuTriggerProps) => {
276
+ const styles = useContext(NavigationMenuStyleContext)
277
+
278
+ return (
279
+ <BaseNavigationMenu.Trigger
280
+ className={cn(
281
+ navigationMenuBarItemVariants({
282
+ orientation: styles.orientation,
283
+ size: size ?? styles.size,
284
+ variant: variant ?? styles.variant,
285
+ }),
286
+ className,
287
+ )}
288
+ {...props}
289
+ >
290
+ {children}
291
+ {showIcon ? <NavigationMenuIcon /> : null}
292
+ </BaseNavigationMenu.Trigger>
293
+ )
294
+ }
295
+
296
+ export const NavigationMenuBarLink = ({
297
+ className,
298
+ size,
299
+ variant,
300
+ ...props
301
+ }: NavigationMenuBarLinkProps) => {
302
+ const styles = useContext(NavigationMenuStyleContext)
303
+
304
+ return (
305
+ <BaseNavigationMenu.Link
306
+ className={cn(
307
+ navigationMenuBarItemVariants({
308
+ orientation: styles.orientation,
309
+ size: size ?? styles.size,
310
+ variant: variant ?? styles.variant,
311
+ }),
312
+ className,
313
+ )}
314
+ {...props}
315
+ />
316
+ )
317
+ }
96
318
 
97
319
  export const NavigationMenuIcon = ({
98
320
  className,
99
321
  children,
100
322
  ...props
101
- }: NavigationMenuIconProps) => (
102
- <BaseNavigationMenu.Icon
103
- className={cn(
104
- "inline-flex text-fg-tertiary transition-transform duration-[var(--duration-sm)] ease-enter motion-reduce:transition-none data-popup-open:rotate-180",
105
- className,
106
- )}
107
- {...props}
108
- >
109
- {children ?? (
110
- <IconChevronDownSmall size={14} className="size-3.5" aria-hidden />
111
- )}
112
- </BaseNavigationMenu.Icon>
113
- )
323
+ }: NavigationMenuIconProps) => {
324
+ const { orientation } = useContext(NavigationMenuStyleContext)
325
+
326
+ return (
327
+ <BaseNavigationMenu.Icon
328
+ className={cn(
329
+ "inline-flex text-fg-tertiary",
330
+ motion.transform,
331
+ orientation === "horizontal"
332
+ ? "data-popup-open:rotate-180"
333
+ : "-rotate-90 data-popup-open:rotate-0",
334
+ className,
335
+ )}
336
+ {...props}
337
+ >
338
+ {children ?? (
339
+ <IconChevronDownSmall size={14} className="size-3.5" aria-hidden />
340
+ )}
341
+ </BaseNavigationMenu.Icon>
342
+ )
343
+ }
114
344
 
115
345
  export const NavigationMenuContent = ({
116
346
  className,
@@ -118,8 +348,7 @@ export const NavigationMenuContent = ({
118
348
  }: NavigationMenuContentProps) => (
119
349
  <BaseNavigationMenu.Content
120
350
  className={cn(
121
- "w-auto p-2 data-ending-style:opacity-0 data-starting-style:opacity-0",
122
- motion.colors,
351
+ "w-auto p-2 transition-[opacity,transform] duration-[var(--duration-sm)] ease-enter motion-reduce:transition-none data-starting-style:translate-y-1 data-starting-style:opacity-0 data-ending-style:translate-y-1 data-ending-style:opacity-0",
123
352
  className,
124
353
  )}
125
354
  {...props}
@@ -128,19 +357,49 @@ export const NavigationMenuContent = ({
128
357
 
129
358
  export const NavigationMenuLink = ({
130
359
  className,
360
+ variant,
361
+ size,
131
362
  ...props
132
363
  }: NavigationMenuLinkProps) => (
133
364
  <BaseNavigationMenu.Link
365
+ className={cn(navigationMenuLinkVariants({ variant, size }), className)}
366
+ {...props}
367
+ />
368
+ )
369
+
370
+ export const NavigationMenuLinkIcon = ({
371
+ className,
372
+ ...props
373
+ }: NavigationMenuLinkIconProps) => (
374
+ <span
134
375
  className={cn(
135
- "flex cursor-pointer flex-col gap-0.5 rounded-md p-2.5 text-sm text-fg-primary outline-none",
136
- motion.colors,
137
- "hover:bg-background-tertiary focus-visible:bg-background-tertiary focus-visible:ring-[3px] focus-visible:ring-offset-1 focus-visible:ring-offset-background-primary focus-visible:ring-ring/20 data-active:bg-background-tertiary",
376
+ "mb-1 flex size-9 shrink-0 items-center justify-center rounded-md border border-border-primary bg-surface text-fg-secondary transition-colors duration-[var(--duration-sm)] ease-enter group-hover/navigation-link:border-border-secondary group-hover/navigation-link:bg-background-quaternary group-hover/navigation-link:text-fg-primary [&_svg]:size-4",
138
377
  className,
139
378
  )}
140
379
  {...props}
141
380
  />
142
381
  )
143
382
 
383
+ export const NavigationMenuLinkTitle = ({
384
+ className,
385
+ ...props
386
+ }: NavigationMenuLinkTitleProps) => (
387
+ <span
388
+ className={cn("text-sm-strong text-fg-primary", className)}
389
+ {...props}
390
+ />
391
+ )
392
+
393
+ export const NavigationMenuLinkDescription = ({
394
+ className,
395
+ ...props
396
+ }: NavigationMenuLinkDescriptionProps) => (
397
+ <span
398
+ className={cn("text-xs leading-relaxed text-fg-tertiary", className)}
399
+ {...props}
400
+ />
401
+ )
402
+
144
403
  export const NavigationMenuPortal = (props: NavigationMenuPortalProps) => (
145
404
  <BaseNavigationMenu.Portal {...props} />
146
405
  )
@@ -161,12 +420,17 @@ export const NavigationMenuBackdrop = ({
161
420
 
162
421
  export const NavigationMenuPositioner = ({
163
422
  sideOffset = 8,
423
+ collisionPadding = 16,
164
424
  className,
165
425
  ...props
166
426
  }: NavigationMenuPositionerProps) => (
167
427
  <BaseNavigationMenu.Positioner
168
428
  sideOffset={sideOffset}
169
- className={cn("z-50 outline-none", className)}
429
+ collisionPadding={collisionPadding}
430
+ className={cn(
431
+ "z-50 h-[var(--positioner-height)] w-[var(--positioner-width)] max-w-[var(--available-width)] outline-none transition-[top,left,right,bottom] duration-[var(--duration-md)] ease-move data-instant:transition-none before:absolute before:content-[''] data-[side=bottom]:before:top-[-8px] data-[side=bottom]:before:right-0 data-[side=bottom]:before:left-0 data-[side=bottom]:before:h-2 data-[side=left]:before:top-0 data-[side=left]:before:right-[-8px] data-[side=left]:before:bottom-0 data-[side=left]:before:w-2 data-[side=right]:before:top-0 data-[side=right]:before:bottom-0 data-[side=right]:before:left-[-8px] data-[side=right]:before:w-2 data-[side=top]:before:right-0 data-[side=top]:before:bottom-[-8px] data-[side=top]:before:left-0 data-[side=top]:before:h-2",
432
+ className,
433
+ )}
170
434
  {...props}
171
435
  />
172
436
  )
@@ -177,9 +441,10 @@ export const NavigationMenuPopup = ({
177
441
  }: NavigationMenuPopupProps) => (
178
442
  <BaseNavigationMenu.Popup
179
443
  className={cn(
180
- "relative z-50 w-[var(--popup-width)] overflow-hidden rounded-xl border border-border-primary bg-surface shadow-md outline-none",
181
- "h-[var(--popup-height)] transition-[width,height,opacity] duration-[var(--duration-md)] ease-enter motion-reduce:transition-none",
182
- "data-starting-style:opacity-0 data-ending-style:opacity-0",
444
+ "relative z-50 h-[var(--popup-height)] w-[var(--popup-width)] max-w-[calc(100vw-2rem)]",
445
+ popupSurface,
446
+ motion.popupAnchor,
447
+ "transition-[width,height,transform,scale,opacity] duration-[var(--duration-md)]",
183
448
  className,
184
449
  )}
185
450
  {...props}
@@ -202,16 +467,24 @@ export const NavigationMenuArrow = ({
202
467
  }: NavigationMenuArrowProps) => (
203
468
  <BaseNavigationMenu.Arrow
204
469
  className={cn(
205
- "data-[side=bottom]:top-[-6px] data-[side=left]:right-[-6px] data-[side=right]:left-[-6px] data-[side=top]:bottom-[-6px]",
206
- "size-2.5 rotate-45 border border-border-primary bg-surface",
207
- "data-[side=bottom]:border-r-0 data-[side=bottom]:border-b-0",
208
- "data-[side=top]:border-t-0 data-[side=top]:border-l-0",
209
- "data-[side=left]:border-b-0 data-[side=left]:border-l-0",
210
- "data-[side=right]:border-t-0 data-[side=right]:border-r-0",
470
+ "relative block h-1.5 w-3 overflow-clip transition-[top,right,bottom,left] duration-[var(--duration-md)] ease-move before:absolute before:bottom-0 before:left-1/2 before:block before:size-[calc(6px*1.414)] before:-translate-x-1/2 before:translate-y-1/2 before:rotate-45 before:border before:border-border-primary before:bg-surface before:content-['']",
471
+ "data-[side=bottom]:top-[-6px] data-[side=left]:right-[-9px] data-[side=left]:rotate-90 data-[side=right]:left-[-9px] data-[side=right]:-rotate-90 data-[side=top]:bottom-[-6px] data-[side=top]:rotate-180",
211
472
  className,
212
473
  )}
213
474
  {...props}
214
475
  />
215
476
  )
216
477
 
217
- export { navigationMenuTriggerClassName }
478
+ const navigationMenuTriggerClassName = navigationMenuBarItemVariants({
479
+ orientation: "horizontal",
480
+ size: "md",
481
+ variant: "plain",
482
+ })
483
+
484
+ export {
485
+ navigationMenuBarItemVariants,
486
+ navigationMenuLinkVariants,
487
+ navigationMenuListVariants,
488
+ navigationMenuRootVariants,
489
+ navigationMenuTriggerClassName,
490
+ }