@moontra/moonui-pro 2.5.14 → 2.6.1
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.
- package/dist/index.d.ts +96 -25
- package/dist/index.mjs +4270 -1237
- package/package.json +1 -1
- package/src/components/dashboard/demo.tsx +116 -2
- package/src/components/dashboard/index.tsx +318 -22
- package/src/components/dashboard/time-range-picker.tsx +317 -261
- package/src/components/sidebar/index.tsx +179 -2
- package/src/components/ui/calendar.tsx +376 -54
- package/src/components/ui/hover-card.tsx +29 -0
- package/src/components/ui/index.ts +4 -0
- package/src/styles/calendar.css +17 -81
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
|
|
3
|
+
import * as React from "react"
|
|
4
|
+
import * as HoverCardPrimitive from "@radix-ui/react-hover-card"
|
|
5
|
+
|
|
6
|
+
import { cn } from "../../lib/utils"
|
|
7
|
+
|
|
8
|
+
const HoverCard = HoverCardPrimitive.Root
|
|
9
|
+
|
|
10
|
+
const HoverCardTrigger = HoverCardPrimitive.Trigger
|
|
11
|
+
|
|
12
|
+
const HoverCardContent = React.forwardRef<
|
|
13
|
+
React.ElementRef<typeof HoverCardPrimitive.Content>,
|
|
14
|
+
React.ComponentPropsWithoutRef<typeof HoverCardPrimitive.Content>
|
|
15
|
+
>(({ className, align = "center", sideOffset = 4, ...props }, ref) => (
|
|
16
|
+
<HoverCardPrimitive.Content
|
|
17
|
+
ref={ref}
|
|
18
|
+
align={align}
|
|
19
|
+
sideOffset={sideOffset}
|
|
20
|
+
className={cn(
|
|
21
|
+
"z-50 w-64 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none 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",
|
|
22
|
+
className
|
|
23
|
+
)}
|
|
24
|
+
{...props}
|
|
25
|
+
/>
|
|
26
|
+
))
|
|
27
|
+
HoverCardContent.displayName = HoverCardPrimitive.Content.displayName
|
|
28
|
+
|
|
29
|
+
export { HoverCard, HoverCardTrigger, HoverCardContent }
|
|
@@ -166,4 +166,8 @@ export {
|
|
|
166
166
|
Tooltip, TooltipTrigger, TooltipContent, TooltipProvider
|
|
167
167
|
} from './tooltip';
|
|
168
168
|
|
|
169
|
+
export {
|
|
170
|
+
HoverCard, HoverCardTrigger, HoverCardContent
|
|
171
|
+
} from './hover-card';
|
|
172
|
+
|
|
169
173
|
// Note: Micro-interaction components are exported from their individual directories
|
package/src/styles/calendar.css
CHANGED
|
@@ -1,99 +1,35 @@
|
|
|
1
|
-
/* Calendar Component Styles */
|
|
1
|
+
/* Calendar Component Styles - Custom Implementation */
|
|
2
2
|
.moonui-calendar {
|
|
3
|
-
|
|
4
|
-
--calendar-cell-size-sm: 2rem; /* 32px on mobile */
|
|
3
|
+
width: 100%;
|
|
5
4
|
}
|
|
6
5
|
|
|
7
|
-
/* Mobile
|
|
6
|
+
/* Mobile adjustments */
|
|
8
7
|
@media (max-width: 640px) {
|
|
9
8
|
.moonui-calendar {
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
/* Stack months vertically on mobile */
|
|
14
|
-
.moonui-calendar .months {
|
|
15
|
-
flex-direction: column !important;
|
|
9
|
+
font-size: 0.875rem;
|
|
16
10
|
}
|
|
17
11
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
.moonui-calendar .rdp-day {
|
|
21
|
-
width: var(--calendar-cell-size) !important;
|
|
22
|
-
height: var(--calendar-cell-size) !important;
|
|
12
|
+
.moonui-calendar button {
|
|
13
|
+
font-size: 0.8125rem;
|
|
23
14
|
}
|
|
24
15
|
}
|
|
25
16
|
|
|
26
|
-
/* Fix day names alignment */
|
|
27
|
-
.moonui-calendar .rdp-head_cell {
|
|
28
|
-
width: var(--calendar-cell-size);
|
|
29
|
-
height: var(--calendar-cell-size);
|
|
30
|
-
display: flex;
|
|
31
|
-
align-items: center;
|
|
32
|
-
justify-content: center;
|
|
33
|
-
font-size: 0.75rem;
|
|
34
|
-
font-weight: 500;
|
|
35
|
-
text-transform: uppercase;
|
|
36
|
-
color: var(--muted-foreground);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
/* Fix calendar grid */
|
|
40
|
-
.moonui-calendar .rdp-tbody {
|
|
41
|
-
display: flex;
|
|
42
|
-
flex-direction: column;
|
|
43
|
-
gap: 0.25rem;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
.moonui-calendar .rdp-row {
|
|
47
|
-
display: flex;
|
|
48
|
-
gap: 0.25rem;
|
|
49
|
-
margin: 0;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
.moonui-calendar .rdp-cell {
|
|
53
|
-
width: var(--calendar-cell-size);
|
|
54
|
-
height: var(--calendar-cell-size);
|
|
55
|
-
padding: 0;
|
|
56
|
-
text-align: center;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
.moonui-calendar .rdp-day {
|
|
60
|
-
width: 100%;
|
|
61
|
-
height: 100%;
|
|
62
|
-
display: flex;
|
|
63
|
-
align-items: center;
|
|
64
|
-
justify-content: center;
|
|
65
|
-
border-radius: 0.375rem;
|
|
66
|
-
font-size: 0.875rem;
|
|
67
|
-
cursor: pointer;
|
|
68
|
-
transition: all 0.2s;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
/* Range selection styles */
|
|
72
|
-
.moonui-calendar .rdp-day_range_middle {
|
|
73
|
-
border-radius: 0 !important;
|
|
74
|
-
background-color: var(--accent);
|
|
75
|
-
color: var(--accent-foreground);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
.moonui-calendar .rdp-day_range_start {
|
|
79
|
-
border-top-right-radius: 0 !important;
|
|
80
|
-
border-bottom-right-radius: 0 !important;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
.moonui-calendar .rdp-day_range_end {
|
|
84
|
-
border-top-left-radius: 0 !important;
|
|
85
|
-
border-bottom-left-radius: 0 !important;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
17
|
/* Popover responsive */
|
|
89
18
|
@media (max-width: 640px) {
|
|
90
19
|
.time-range-popover {
|
|
91
20
|
max-width: calc(100vw - 2rem) !important;
|
|
21
|
+
margin: 0 auto;
|
|
92
22
|
}
|
|
93
23
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
24
|
+
/* Make calendar months stack vertically on mobile */
|
|
25
|
+
.moonui-calendar .grid-cols-7 {
|
|
26
|
+
font-size: 0.75rem;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/* Ensure proper layout on desktop */
|
|
31
|
+
@media (min-width: 641px) {
|
|
32
|
+
.time-range-popover {
|
|
33
|
+
min-width: 640px;
|
|
98
34
|
}
|
|
99
35
|
}
|