@moontra/moonui-pro 2.20.1 → 2.20.3
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 +691 -261
- package/dist/index.mjs +7418 -4934
- package/package.json +11 -5
- package/plugin/index.d.ts +86 -0
- package/plugin/index.js +308 -0
- package/scripts/postbuild.js +27 -0
- package/scripts/postinstall.js +176 -23
- package/src/__tests__/use-intersection-observer.test.tsx +0 -216
- package/src/__tests__/use-local-storage.test.tsx +0 -174
- package/src/__tests__/use-pro-access.test.tsx +0 -183
- package/src/components/advanced-chart/advanced-chart.test.tsx +0 -281
- package/src/components/advanced-chart/index.tsx +0 -1242
- package/src/components/advanced-forms/index.tsx +0 -426
- package/src/components/animated-button/index.tsx +0 -385
- package/src/components/calendar/event-dialog.tsx +0 -372
- package/src/components/calendar/index.tsx +0 -1073
- package/src/components/calendar-pro/index.tsx +0 -1697
- package/src/components/color-picker/index.tsx +0 -432
- package/src/components/credit-card-input/index.tsx +0 -406
- package/src/components/dashboard/dashboard-grid.tsx +0 -462
- package/src/components/dashboard/demo.tsx +0 -425
- package/src/components/dashboard/index.tsx +0 -1046
- package/src/components/dashboard/time-range-picker.tsx +0 -336
- package/src/components/dashboard/types.ts +0 -222
- package/src/components/dashboard/widgets/activity-feed.tsx +0 -344
- package/src/components/dashboard/widgets/chart-widget.tsx +0 -418
- package/src/components/dashboard/widgets/metric-card.tsx +0 -343
- package/src/components/data-table/data-table-bulk-actions.tsx +0 -204
- package/src/components/data-table/data-table-column-toggle.tsx +0 -169
- package/src/components/data-table/data-table-export.ts +0 -156
- package/src/components/data-table/data-table-filter-drawer.tsx +0 -448
- package/src/components/data-table/data-table.test.tsx +0 -187
- package/src/components/data-table/index.tsx +0 -845
- package/src/components/draggable-list/index.tsx +0 -100
- package/src/components/enhanced/badge.tsx +0 -191
- package/src/components/enhanced/button.tsx +0 -362
- package/src/components/enhanced/card.tsx +0 -266
- package/src/components/enhanced/dialog.tsx +0 -246
- package/src/components/enhanced/index.ts +0 -4
- package/src/components/error-boundary/index.tsx +0 -109
- package/src/components/file-upload/file-upload.test.tsx +0 -243
- package/src/components/file-upload/index.tsx +0 -1660
- package/src/components/floating-action-button/index.tsx +0 -206
- package/src/components/form-wizard/form-wizard-context.tsx +0 -307
- package/src/components/form-wizard/form-wizard-navigation.tsx +0 -118
- package/src/components/form-wizard/form-wizard-progress.tsx +0 -298
- package/src/components/form-wizard/form-wizard-step.tsx +0 -111
- package/src/components/form-wizard/index.tsx +0 -102
- package/src/components/form-wizard/types.ts +0 -76
- package/src/components/gesture-drawer/index.tsx +0 -551
- package/src/components/github-stars/github-api.ts +0 -426
- package/src/components/github-stars/hooks.ts +0 -516
- package/src/components/github-stars/index.tsx +0 -375
- package/src/components/github-stars/types.ts +0 -148
- package/src/components/github-stars/variants.tsx +0 -513
- package/src/components/health-check/index.tsx +0 -439
- package/src/components/hover-card-3d/index.tsx +0 -530
- package/src/components/index.ts +0 -128
- package/src/components/internal/index.ts +0 -78
- package/src/components/kanban/add-card-modal.tsx +0 -502
- package/src/components/kanban/card-detail-modal.tsx +0 -761
- package/src/components/kanban/index.ts +0 -13
- package/src/components/kanban/kanban.tsx +0 -1684
- package/src/components/kanban/types.ts +0 -168
- package/src/components/lazy-component/index.tsx +0 -823
- package/src/components/license-error/index.tsx +0 -29
- package/src/components/magnetic-button/index.tsx +0 -167
- package/src/components/memory-efficient-data/index.tsx +0 -1016
- package/src/components/moonui-quiz-form/index.tsx +0 -817
- package/src/components/optimized-image/index.tsx +0 -425
- package/src/components/performance-debugger/index.tsx +0 -589
- package/src/components/performance-monitor/index.tsx +0 -794
- package/src/components/phone-number-input/index.tsx +0 -338
- package/src/components/pinch-zoom/index.tsx +0 -566
- package/src/components/quiz-form/index.tsx +0 -479
- package/src/components/rich-text-editor/index-old-backup.tsx +0 -437
- package/src/components/rich-text-editor/index.tsx +0 -2324
- package/src/components/rich-text-editor/slash-commands-extension.ts +0 -220
- package/src/components/rich-text-editor/slash-commands.css +0 -35
- package/src/components/rich-text-editor/table-styles.css +0 -65
- package/src/components/sidebar/index.tsx +0 -865
- package/src/components/spotlight-card/index.tsx +0 -191
- package/src/components/swipeable-card/index.tsx +0 -100
- package/src/components/timeline/index.tsx +0 -1148
- package/src/components/ui/accordion.tsx +0 -73
- package/src/components/ui/alert-dialog.tsx +0 -141
- package/src/components/ui/alert.tsx +0 -141
- package/src/components/ui/aspect-ratio.tsx +0 -245
- package/src/components/ui/avatar.tsx +0 -153
- package/src/components/ui/badge.tsx +0 -228
- package/src/components/ui/breadcrumb.tsx +0 -214
- package/src/components/ui/button.tsx +0 -222
- package/src/components/ui/calendar.tsx +0 -387
- package/src/components/ui/card.tsx +0 -214
- package/src/components/ui/checkbox.tsx +0 -259
- package/src/components/ui/collapsible.tsx +0 -135
- package/src/components/ui/color-picker.tsx +0 -97
- package/src/components/ui/command.tsx +0 -225
- package/src/components/ui/dialog.tsx +0 -334
- package/src/components/ui/dropdown-menu.tsx +0 -218
- package/src/components/ui/gesture-drawer.tsx +0 -11
- package/src/components/ui/hover-card.tsx +0 -29
- package/src/components/ui/index.ts +0 -190
- package/src/components/ui/input.tsx +0 -222
- package/src/components/ui/label.tsx +0 -29
- package/src/components/ui/lightbox.tsx +0 -606
- package/src/components/ui/magnetic-button.tsx +0 -129
- package/src/components/ui/media-gallery.tsx +0 -612
- package/src/components/ui/pagination.tsx +0 -123
- package/src/components/ui/popover.tsx +0 -185
- package/src/components/ui/progress.tsx +0 -30
- package/src/components/ui/radio-group.tsx +0 -257
- package/src/components/ui/scroll-area.tsx +0 -47
- package/src/components/ui/select.tsx +0 -374
- package/src/components/ui/separator.tsx +0 -145
- package/src/components/ui/sheet.tsx +0 -139
- package/src/components/ui/skeleton.tsx +0 -20
- package/src/components/ui/slider.tsx +0 -354
- package/src/components/ui/spotlight-card.tsx +0 -119
- package/src/components/ui/switch.tsx +0 -86
- package/src/components/ui/table.tsx +0 -329
- package/src/components/ui/tabs.tsx +0 -198
- package/src/components/ui/textarea.tsx +0 -28
- package/src/components/ui/toast.tsx +0 -317
- package/src/components/ui/toggle.tsx +0 -119
- package/src/components/ui/tooltip.tsx +0 -151
- package/src/components/virtual-list/index.tsx +0 -668
- package/src/hooks/use-chart.ts +0 -205
- package/src/hooks/use-data-table.ts +0 -182
- package/src/hooks/use-docs-pro-access.ts +0 -13
- package/src/hooks/use-license-check.ts +0 -65
- package/src/hooks/use-subscription.ts +0 -19
- package/src/hooks/use-toast.ts +0 -15
- package/src/index.ts +0 -14
- package/src/lib/ai-providers.ts +0 -377
- package/src/lib/component-metadata.ts +0 -18
- package/src/lib/micro-interactions.ts +0 -255
- package/src/lib/paddle.ts +0 -17
- package/src/lib/utils.ts +0 -6
- package/src/patterns/login-form/index.tsx +0 -276
- package/src/patterns/login-form/types.ts +0 -67
- package/src/setupTests.ts +0 -41
- package/src/styles/advanced-chart.css +0 -239
- package/src/styles/calendar.css +0 -35
- package/src/styles/design-system.css +0 -363
- package/src/styles/index.css +0 -85
- package/src/styles/tailwind.css +0 -7
- package/src/styles/tokens.css +0 -455
- package/src/types/moonui.d.ts +0 -22
- package/src/types/next-auth.d.ts +0 -21
- package/src/use-intersection-observer.tsx +0 -154
- package/src/use-local-storage.tsx +0 -71
- package/src/use-paddle.ts +0 -138
- package/src/use-performance-optimizer.ts +0 -389
- package/src/use-pro-access.ts +0 -141
- package/src/use-scroll-animation.ts +0 -219
- package/src/use-subscription.ts +0 -37
- package/src/use-toast.ts +0 -32
- package/src/utils/chart-helpers.ts +0 -357
- package/src/utils/cn.ts +0 -6
- package/src/utils/data-processing.ts +0 -151
- package/src/utils/license-validator.tsx +0 -183
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
import { cn } from '../../lib/utils'
|
|
3
|
-
|
|
4
|
-
interface LicenseErrorProps {
|
|
5
|
-
className?: string
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
export function LicenseError({ className }: LicenseErrorProps) {
|
|
9
|
-
return (
|
|
10
|
-
<div className={cn(
|
|
11
|
-
"flex flex-col items-center justify-center p-8 text-center border-2 border-dashed border-red-500/20 rounded-lg bg-red-50/5",
|
|
12
|
-
className
|
|
13
|
-
)}>
|
|
14
|
-
<div className="text-red-500 mb-4">
|
|
15
|
-
<svg width="48" height="48" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
16
|
-
<path d="M12 2L2 7V12C2 16.5 4.23 20.68 7.62 23.47L12 22L16.38 23.47C19.77 20.68 22 16.5 22 12V7L12 2Z" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"/>
|
|
17
|
-
<path d="M12 9V13" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"/>
|
|
18
|
-
<circle cx="12" cy="17" r="1" fill="currentColor"/>
|
|
19
|
-
</svg>
|
|
20
|
-
</div>
|
|
21
|
-
<h3 className="text-lg font-semibold text-red-600 mb-2">License Required</h3>
|
|
22
|
-
<p className="text-sm text-muted-foreground max-w-md">
|
|
23
|
-
This is a Pro component. Please ensure you have a valid MoonUI Pro license to use this component.
|
|
24
|
-
</p>
|
|
25
|
-
</div>
|
|
26
|
-
)
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export default LicenseError
|
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
"use client"
|
|
2
|
-
|
|
3
|
-
import React, { useRef, useState } from "react"
|
|
4
|
-
import { motion, useMotionValue, useSpring, useTransform } from "framer-motion"
|
|
5
|
-
import { cn } from "../../lib/utils"
|
|
6
|
-
import { Card, CardContent } from "../ui/card"
|
|
7
|
-
import { Button } from "../ui/button"
|
|
8
|
-
import { Lock, Sparkles } from "lucide-react"
|
|
9
|
-
import { useSubscription } from "../../hooks/use-subscription"
|
|
10
|
-
|
|
11
|
-
export interface MagneticButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
12
|
-
strength?: number
|
|
13
|
-
range?: number
|
|
14
|
-
springConfig?: {
|
|
15
|
-
stiffness?: number
|
|
16
|
-
damping?: number
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
const MagneticButtonInternal = React.forwardRef<HTMLButtonElement, MagneticButtonProps>(
|
|
21
|
-
({
|
|
22
|
-
children,
|
|
23
|
-
className,
|
|
24
|
-
strength = 0.3,
|
|
25
|
-
range = 100,
|
|
26
|
-
springConfig = { stiffness: 200, damping: 15 },
|
|
27
|
-
...props
|
|
28
|
-
}, ref) => {
|
|
29
|
-
const buttonRef = useRef<HTMLButtonElement>(null)
|
|
30
|
-
const [isHovered, setIsHovered] = useState(false)
|
|
31
|
-
|
|
32
|
-
const x = useMotionValue(0)
|
|
33
|
-
const y = useMotionValue(0)
|
|
34
|
-
|
|
35
|
-
const springX = useSpring(x, springConfig)
|
|
36
|
-
const springY = useSpring(y, springConfig)
|
|
37
|
-
|
|
38
|
-
const rotateX = useTransform(springY, [-range, range], [5, -5])
|
|
39
|
-
const rotateY = useTransform(springX, [-range, range], [-5, 5])
|
|
40
|
-
|
|
41
|
-
const handleMouseMove = (e: React.MouseEvent) => {
|
|
42
|
-
if (!buttonRef.current) return
|
|
43
|
-
|
|
44
|
-
const rect = buttonRef.current.getBoundingClientRect()
|
|
45
|
-
const centerX = rect.left + rect.width / 2
|
|
46
|
-
const centerY = rect.top + rect.height / 2
|
|
47
|
-
|
|
48
|
-
const deltaX = e.clientX - centerX
|
|
49
|
-
const deltaY = e.clientY - centerY
|
|
50
|
-
|
|
51
|
-
const distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY)
|
|
52
|
-
|
|
53
|
-
if (distance < range) {
|
|
54
|
-
x.set(deltaX * strength)
|
|
55
|
-
y.set(deltaY * strength)
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
const handleMouseLeave = () => {
|
|
60
|
-
setIsHovered(false)
|
|
61
|
-
x.set(0)
|
|
62
|
-
y.set(0)
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
const handleMouseEnter = () => {
|
|
66
|
-
setIsHovered(true)
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
return (
|
|
70
|
-
<motion.button
|
|
71
|
-
ref={(node) => {
|
|
72
|
-
buttonRef.current = node
|
|
73
|
-
if (typeof ref === "function") {
|
|
74
|
-
ref(node)
|
|
75
|
-
} else if (ref) {
|
|
76
|
-
ref.current = node
|
|
77
|
-
}
|
|
78
|
-
}}
|
|
79
|
-
className={cn(
|
|
80
|
-
"relative inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50",
|
|
81
|
-
"bg-primary text-primary-foreground shadow hover:bg-primary/90",
|
|
82
|
-
"h-9 px-4 py-2",
|
|
83
|
-
className
|
|
84
|
-
)}
|
|
85
|
-
onMouseMove={handleMouseMove}
|
|
86
|
-
onMouseLeave={handleMouseLeave}
|
|
87
|
-
onMouseEnter={handleMouseEnter}
|
|
88
|
-
style={{
|
|
89
|
-
x: springX,
|
|
90
|
-
y: springY,
|
|
91
|
-
rotateX,
|
|
92
|
-
rotateY,
|
|
93
|
-
transformPerspective: 1000,
|
|
94
|
-
}}
|
|
95
|
-
whileHover={{ scale: 1.05 }}
|
|
96
|
-
whileTap={{ scale: 0.95 }}
|
|
97
|
-
animate={{
|
|
98
|
-
rotateX: isHovered ? rotateX.get() : 0,
|
|
99
|
-
rotateY: isHovered ? rotateY.get() : 0,
|
|
100
|
-
}}
|
|
101
|
-
transition={{ duration: 0.3 }}
|
|
102
|
-
>
|
|
103
|
-
<motion.div
|
|
104
|
-
className="relative z-10"
|
|
105
|
-
animate={{
|
|
106
|
-
scale: isHovered ? 1.02 : 1,
|
|
107
|
-
}}
|
|
108
|
-
transition={{ duration: 0.2 }}
|
|
109
|
-
>
|
|
110
|
-
{children}
|
|
111
|
-
</motion.div>
|
|
112
|
-
|
|
113
|
-
{/* Glow effect */}
|
|
114
|
-
<motion.div
|
|
115
|
-
className="absolute inset-0 rounded-md bg-primary/20 blur-md"
|
|
116
|
-
animate={{
|
|
117
|
-
opacity: isHovered ? 0.8 : 0,
|
|
118
|
-
scale: isHovered ? 1.1 : 1,
|
|
119
|
-
}}
|
|
120
|
-
transition={{ duration: 0.3 }}
|
|
121
|
-
/>
|
|
122
|
-
</motion.button>
|
|
123
|
-
)
|
|
124
|
-
}
|
|
125
|
-
)
|
|
126
|
-
|
|
127
|
-
MagneticButtonInternal.displayName = "MagneticButtonInternal"
|
|
128
|
-
|
|
129
|
-
export const MagneticButton = React.forwardRef<HTMLButtonElement, MagneticButtonProps>(
|
|
130
|
-
({ className, ...props }, ref) => {
|
|
131
|
-
// Check if we're in docs mode or have pro access
|
|
132
|
-
const { hasProAccess, isLoading } = useSubscription()
|
|
133
|
-
|
|
134
|
-
// In docs mode, always show the component
|
|
135
|
-
|
|
136
|
-
// If not in docs mode and no pro access, show upgrade prompt
|
|
137
|
-
if (!isLoading && !hasProAccess) {
|
|
138
|
-
return (
|
|
139
|
-
<Card className={cn("w-fit", className)}>
|
|
140
|
-
<CardContent className="py-6 text-center">
|
|
141
|
-
<div className="space-y-4">
|
|
142
|
-
<div className="rounded-full bg-purple-100 dark:bg-purple-900/30 p-3 w-fit mx-auto">
|
|
143
|
-
<Lock className="h-6 w-6 text-purple-600 dark:text-purple-400" />
|
|
144
|
-
</div>
|
|
145
|
-
<div>
|
|
146
|
-
<h3 className="font-semibold text-sm mb-2">Pro Feature</h3>
|
|
147
|
-
<p className="text-muted-foreground text-xs mb-4">
|
|
148
|
-
Magnetic Button is available exclusively to MoonUI Pro subscribers.
|
|
149
|
-
</p>
|
|
150
|
-
<a href="/pricing">
|
|
151
|
-
<Button size="sm">
|
|
152
|
-
<Sparkles className="mr-2 h-4 w-4" />
|
|
153
|
-
Upgrade to Pro
|
|
154
|
-
</Button>
|
|
155
|
-
</a>
|
|
156
|
-
</div>
|
|
157
|
-
</div>
|
|
158
|
-
</CardContent>
|
|
159
|
-
</Card>
|
|
160
|
-
)
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
return <MagneticButtonInternal className={className} ref={ref} {...props} />
|
|
164
|
-
}
|
|
165
|
-
)
|
|
166
|
-
|
|
167
|
-
MagneticButton.displayName = "MagneticButton"
|