@moontra/moonui-pro 2.6.2 → 2.7.0
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 +85 -4
- package/dist/index.mjs +543 -12
- package/package.json +1 -1
- package/src/components/credit-card-input/index.tsx +406 -0
- package/src/components/form-wizard/index.tsx +2 -2
- package/src/components/index.ts +7 -1
- package/src/components/multi-step-form/index.tsx +3 -3
- package/src/components/phone-number-input/index.tsx +335 -0
- package/src/components/quiz-form/index.tsx +3 -3
package/dist/index.mjs
CHANGED
|
@@ -3,7 +3,7 @@ import { twMerge } from 'tailwind-merge';
|
|
|
3
3
|
import * as t from 'react';
|
|
4
4
|
import t__default, { useState, useRef, useCallback, forwardRef, createContext, useEffect, useContext, useMemo, useLayoutEffect, useDebugValue, Component } from 'react';
|
|
5
5
|
import * as AccordionPrimitive from '@radix-ui/react-accordion';
|
|
6
|
-
import { ChevronDown, Info, AlertCircle, AlertTriangle, Check, X, MoreHorizontal, Loader2, Minus, Search, ChevronRight, Circle, ChevronUp, Lock, Sparkles, Plus, ChevronLeft, Calendar as Calendar$1, Edit, Trash2, Clock, MapPin, User, GripVertical, MessageCircle, Paperclip, Bold as Bold$1, Italic as Italic$1, Underline as Underline$1, Strikethrough, Code as Code$1, Type, Heading1, Heading2, Heading3, AlignLeft, AlignCenter, AlignRight, AlignJustify, List, ListOrdered, CheckSquare, Quote, Palette, Highlighter, Link2, Image as Image$1, Table as Table$1, Settings, Undo, Redo, Eye, RefreshCw, Wand2, Maximize, FileText, Languages, TrendingUp, TrendingDown, ZoomOut, ZoomIn, Download, FileSpreadsheet, FileJson, Maximize2, Move, Menu, Bell, CheckCheck, CheckCircle, Settings2, LogOut, Edit3, LayoutGrid, Upload, Share2, Save, CheckCircle2, Filter, FileDown, ArrowUp, ArrowDown, ArrowUpDown, ChevronsLeft, ChevronsRight, Pin, Sun, Moon, Monitor, XCircle, Trophy, RotateCcw, ExternalLink, CalendarIcon, DollarSign, Users, Github, Star, GitFork, Activity, Server, EyeOff, RotateCw, Zap, Timer, Cpu, MemoryStick, HardDrive, Network, BarChart3, Video, Music, Archive, File as File$1, Columns, Grip, Unlock, Minimize2, Map as Map$1, Target, MoreVertical, BellOff, ArrowDownRight, ArrowUpRight } from 'lucide-react';
|
|
6
|
+
import { ChevronDown, Info, AlertCircle, AlertTriangle, Check, X, MoreHorizontal, Loader2, Minus, Search, ChevronRight, Circle, ChevronUp, Lock, Sparkles, Plus, CreditCard, Globe, ChevronLeft, Calendar as Calendar$1, Edit, Trash2, Clock, MapPin, User, GripVertical, MessageCircle, Paperclip, Bold as Bold$1, Italic as Italic$1, Underline as Underline$1, Strikethrough, Code as Code$1, Type, Heading1, Heading2, Heading3, AlignLeft, AlignCenter, AlignRight, AlignJustify, List, ListOrdered, CheckSquare, Quote, Palette, Highlighter, Link2, Image as Image$1, Table as Table$1, Settings, Undo, Redo, Eye, RefreshCw, Wand2, Maximize, FileText, Languages, TrendingUp, TrendingDown, ZoomOut, ZoomIn, Download, FileSpreadsheet, FileJson, Maximize2, Move, Menu, Bell, CheckCheck, CheckCircle, Settings2, LogOut, Edit3, LayoutGrid, Upload, Share2, Save, CheckCircle2, Filter, FileDown, ArrowUp, ArrowDown, ArrowUpDown, ChevronsLeft, ChevronsRight, Pin, Sun, Moon, Monitor, XCircle, Trophy, RotateCcw, ExternalLink, CalendarIcon, DollarSign, Users, Github, Star, GitFork, Activity, Server, EyeOff, RotateCw, Zap, Timer, Cpu, MemoryStick, HardDrive, Network, BarChart3, Video, Music, Archive, File as File$1, Columns, Grip, Unlock, Minimize2, Map as Map$1, Target, MoreVertical, BellOff, ArrowDownRight, ArrowUpRight } from 'lucide-react';
|
|
7
7
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
8
8
|
import { cva } from 'class-variance-authority';
|
|
9
9
|
import * as AvatarPrimitive from '@radix-ui/react-avatar';
|
|
@@ -4044,7 +4044,7 @@ var me = t.forwardRef((r3, o3) => {
|
|
|
4044
4044
|
var e2;
|
|
4045
4045
|
return Array.from(((e2 = I.current) == null ? void 0 : e2.querySelectorAll(ce)) || []);
|
|
4046
4046
|
}
|
|
4047
|
-
function
|
|
4047
|
+
function X19(e2) {
|
|
4048
4048
|
let s3 = V()[e2];
|
|
4049
4049
|
s3 && E.setState("value", s3.getAttribute(T));
|
|
4050
4050
|
}
|
|
@@ -4059,10 +4059,10 @@ var me = t.forwardRef((r3, o3) => {
|
|
|
4059
4059
|
s3 = e2 > 0 ? we(s3, N) : De(s3, N), i3 = s3 == null ? void 0 : s3.querySelector(ce);
|
|
4060
4060
|
i3 ? E.setState("value", i3.getAttribute(T)) : Q(e2);
|
|
4061
4061
|
}
|
|
4062
|
-
let oe = () =>
|
|
4062
|
+
let oe = () => X19(V().length - 1), ie3 = (e2) => {
|
|
4063
4063
|
e2.preventDefault(), e2.metaKey ? oe() : e2.altKey ? re(1) : Q(1);
|
|
4064
4064
|
}, se = (e2) => {
|
|
4065
|
-
e2.preventDefault(), e2.metaKey ?
|
|
4065
|
+
e2.preventDefault(), e2.metaKey ? X19(0) : e2.altKey ? re(-1) : Q(-1);
|
|
4066
4066
|
};
|
|
4067
4067
|
return t.createElement(Primitive2.div, { ref: o3, tabIndex: -1, ...O, "cmdk-root": "", onKeyDown: (e2) => {
|
|
4068
4068
|
var s3;
|
|
@@ -4089,7 +4089,7 @@ var me = t.forwardRef((r3, o3) => {
|
|
|
4089
4089
|
break;
|
|
4090
4090
|
}
|
|
4091
4091
|
case "Home": {
|
|
4092
|
-
e2.preventDefault(),
|
|
4092
|
+
e2.preventDefault(), X19(0);
|
|
4093
4093
|
break;
|
|
4094
4094
|
}
|
|
4095
4095
|
case "End": {
|
|
@@ -60477,7 +60477,7 @@ var FormWizardNavigation = ({
|
|
|
60477
60477
|
)
|
|
60478
60478
|
] });
|
|
60479
60479
|
};
|
|
60480
|
-
var
|
|
60480
|
+
var MoonUIFormWizardPro = t__default.forwardRef(({
|
|
60481
60481
|
steps,
|
|
60482
60482
|
currentStep = 0,
|
|
60483
60483
|
onStepChange,
|
|
@@ -60559,7 +60559,7 @@ var FormWizardPro = t__default.forwardRef(({
|
|
|
60559
60559
|
}
|
|
60560
60560
|
);
|
|
60561
60561
|
});
|
|
60562
|
-
|
|
60562
|
+
MoonUIFormWizardPro.displayName = "MoonUIFormWizardPro";
|
|
60563
60563
|
var r2 = (t4, r3, o3) => {
|
|
60564
60564
|
if (t4 && "reportValidity" in t4) {
|
|
60565
60565
|
const s3 = get(o3, r3);
|
|
@@ -72111,7 +72111,7 @@ function createStepSchema(fields) {
|
|
|
72111
72111
|
});
|
|
72112
72112
|
return external_exports.object(shape);
|
|
72113
72113
|
}
|
|
72114
|
-
function
|
|
72114
|
+
function MoonUIMultiStepFormPro({
|
|
72115
72115
|
steps,
|
|
72116
72116
|
onSubmit,
|
|
72117
72117
|
defaultValues,
|
|
@@ -72197,7 +72197,7 @@ function MultiStepFormPro({
|
|
|
72197
72197
|
}
|
|
72198
72198
|
};
|
|
72199
72199
|
return /* @__PURE__ */ jsx(
|
|
72200
|
-
|
|
72200
|
+
MoonUIFormWizardPro,
|
|
72201
72201
|
{
|
|
72202
72202
|
...wizardProps,
|
|
72203
72203
|
steps: wizardSteps,
|
|
@@ -72216,7 +72216,7 @@ function shuffleArray(array2) {
|
|
|
72216
72216
|
}
|
|
72217
72217
|
return shuffled;
|
|
72218
72218
|
}
|
|
72219
|
-
var
|
|
72219
|
+
var MoonUIQuizFormPro = ({
|
|
72220
72220
|
title,
|
|
72221
72221
|
description,
|
|
72222
72222
|
questions: initialQuestions,
|
|
@@ -72565,7 +72565,7 @@ var QuizFormPro = ({
|
|
|
72565
72565
|
)
|
|
72566
72566
|
] }),
|
|
72567
72567
|
/* @__PURE__ */ jsx(
|
|
72568
|
-
|
|
72568
|
+
MoonUIFormWizardPro,
|
|
72569
72569
|
{
|
|
72570
72570
|
steps: wizardSteps,
|
|
72571
72571
|
onComplete: handleQuizComplete,
|
|
@@ -72578,6 +72578,537 @@ var QuizFormPro = ({
|
|
|
72578
72578
|
)
|
|
72579
72579
|
] });
|
|
72580
72580
|
};
|
|
72581
|
+
var cardPatterns = {
|
|
72582
|
+
visa: /^4/,
|
|
72583
|
+
mastercard: /^5[1-5]/,
|
|
72584
|
+
amex: /^3[47]/,
|
|
72585
|
+
discover: /^6(?:011|5)/,
|
|
72586
|
+
diners: /^3(?:0[0-5]|[68])/,
|
|
72587
|
+
jcb: /^35/,
|
|
72588
|
+
unionpay: /^62/
|
|
72589
|
+
};
|
|
72590
|
+
function formatCardNumber(value, cardType) {
|
|
72591
|
+
const v = value.replace(/\s+/g, "").replace(/[^0-9]/gi, "");
|
|
72592
|
+
const matches2 = cardType === "amex" ? v.match(/\d{1,4}/g) : v.match(/\d{1,4}/g);
|
|
72593
|
+
return matches2 ? matches2.join(" ") : v;
|
|
72594
|
+
}
|
|
72595
|
+
function formatExpiry(value) {
|
|
72596
|
+
const v = value.replace(/\s+/g, "").replace(/[^0-9]/gi, "");
|
|
72597
|
+
if (v.length >= 2) {
|
|
72598
|
+
return v.slice(0, 2) + (v.length > 2 ? "/" + v.slice(2, 4) : "");
|
|
72599
|
+
}
|
|
72600
|
+
return v;
|
|
72601
|
+
}
|
|
72602
|
+
function detectCardType(number4) {
|
|
72603
|
+
const cleanNumber = number4.replace(/\s+/g, "");
|
|
72604
|
+
for (const [type, pattern] of Object.entries(cardPatterns)) {
|
|
72605
|
+
if (pattern.test(cleanNumber)) {
|
|
72606
|
+
return type;
|
|
72607
|
+
}
|
|
72608
|
+
}
|
|
72609
|
+
return null;
|
|
72610
|
+
}
|
|
72611
|
+
function validateCardNumber(number4) {
|
|
72612
|
+
const cleanNumber = number4.replace(/\s+/g, "");
|
|
72613
|
+
if (!/^\d+$/.test(cleanNumber))
|
|
72614
|
+
return false;
|
|
72615
|
+
let sum = 0;
|
|
72616
|
+
let isEven = false;
|
|
72617
|
+
for (let i3 = cleanNumber.length - 1; i3 >= 0; i3--) {
|
|
72618
|
+
let digit = parseInt(cleanNumber.charAt(i3), 10);
|
|
72619
|
+
if (isEven) {
|
|
72620
|
+
digit *= 2;
|
|
72621
|
+
if (digit > 9) {
|
|
72622
|
+
digit -= 9;
|
|
72623
|
+
}
|
|
72624
|
+
}
|
|
72625
|
+
sum += digit;
|
|
72626
|
+
isEven = !isEven;
|
|
72627
|
+
}
|
|
72628
|
+
return sum % 10 === 0;
|
|
72629
|
+
}
|
|
72630
|
+
function validateExpiry(expiry) {
|
|
72631
|
+
const parts = expiry.split("/");
|
|
72632
|
+
if (parts.length !== 2)
|
|
72633
|
+
return false;
|
|
72634
|
+
const month = parseInt(parts[0], 10);
|
|
72635
|
+
const year = parseInt("20" + parts[1], 10);
|
|
72636
|
+
if (month < 1 || month > 12)
|
|
72637
|
+
return false;
|
|
72638
|
+
const now = /* @__PURE__ */ new Date();
|
|
72639
|
+
const expiryDate = new Date(year, month - 1);
|
|
72640
|
+
return expiryDate > now;
|
|
72641
|
+
}
|
|
72642
|
+
var MoonUICreditCardInputPro = t__default.forwardRef(({
|
|
72643
|
+
value = { number: "", expiry: "", cvc: "", name: "" },
|
|
72644
|
+
onChange,
|
|
72645
|
+
showCardPreview = true,
|
|
72646
|
+
showCardType = true,
|
|
72647
|
+
showSecurityBadge = true,
|
|
72648
|
+
autoFormat = true,
|
|
72649
|
+
validateOnChange = false,
|
|
72650
|
+
labels = {},
|
|
72651
|
+
placeholders = {},
|
|
72652
|
+
errors = {},
|
|
72653
|
+
className,
|
|
72654
|
+
inputClassName,
|
|
72655
|
+
labelClassName,
|
|
72656
|
+
errorClassName,
|
|
72657
|
+
disabled,
|
|
72658
|
+
required: required2,
|
|
72659
|
+
...props
|
|
72660
|
+
}, ref) => {
|
|
72661
|
+
const [cardType, setCardType] = useState(null);
|
|
72662
|
+
const [focused, setFocused] = useState(null);
|
|
72663
|
+
const [localErrors, setLocalErrors] = useState({});
|
|
72664
|
+
const numberRef = useRef(null);
|
|
72665
|
+
const expiryRef = useRef(null);
|
|
72666
|
+
const cvcRef = useRef(null);
|
|
72667
|
+
const nameRef = useRef(null);
|
|
72668
|
+
useEffect(() => {
|
|
72669
|
+
const detectedType = detectCardType(value.number);
|
|
72670
|
+
setCardType(detectedType);
|
|
72671
|
+
}, [value.number]);
|
|
72672
|
+
useEffect(() => {
|
|
72673
|
+
if (!validateOnChange)
|
|
72674
|
+
return;
|
|
72675
|
+
const newErrors = {};
|
|
72676
|
+
if (value.number && !validateCardNumber(value.number)) {
|
|
72677
|
+
newErrors.number = "Invalid card number";
|
|
72678
|
+
}
|
|
72679
|
+
if (value.expiry && !validateExpiry(value.expiry)) {
|
|
72680
|
+
newErrors.expiry = "Invalid expiry date";
|
|
72681
|
+
}
|
|
72682
|
+
if (value.cvc && (value.cvc.length < 3 || value.cvc.length > 4)) {
|
|
72683
|
+
newErrors.cvc = "Invalid CVC";
|
|
72684
|
+
}
|
|
72685
|
+
setLocalErrors(newErrors);
|
|
72686
|
+
}, [value, validateOnChange]);
|
|
72687
|
+
const handleChange = (field, newValue) => {
|
|
72688
|
+
let formattedValue = newValue;
|
|
72689
|
+
if (autoFormat) {
|
|
72690
|
+
if (field === "number") {
|
|
72691
|
+
formattedValue = formatCardNumber(newValue, cardType || void 0);
|
|
72692
|
+
const maxLength = cardType === "amex" ? 18 : 19;
|
|
72693
|
+
if (formattedValue.length > maxLength)
|
|
72694
|
+
return;
|
|
72695
|
+
} else if (field === "expiry") {
|
|
72696
|
+
formattedValue = formatExpiry(newValue);
|
|
72697
|
+
if (formattedValue.length > 5)
|
|
72698
|
+
return;
|
|
72699
|
+
} else if (field === "cvc") {
|
|
72700
|
+
formattedValue = newValue.replace(/\D/g, "");
|
|
72701
|
+
const maxLength = cardType === "amex" ? 4 : 3;
|
|
72702
|
+
if (formattedValue.length > maxLength)
|
|
72703
|
+
return;
|
|
72704
|
+
}
|
|
72705
|
+
}
|
|
72706
|
+
onChange?.({
|
|
72707
|
+
...value,
|
|
72708
|
+
[field]: formattedValue
|
|
72709
|
+
});
|
|
72710
|
+
if (autoFormat) {
|
|
72711
|
+
if (field === "number" && formattedValue.length === (cardType === "amex" ? 18 : 19)) {
|
|
72712
|
+
expiryRef.current?.focus();
|
|
72713
|
+
} else if (field === "expiry" && formattedValue.length === 5) {
|
|
72714
|
+
cvcRef.current?.focus();
|
|
72715
|
+
} else if (field === "cvc" && formattedValue.length === (cardType === "amex" ? 4 : 3)) {
|
|
72716
|
+
nameRef.current?.focus();
|
|
72717
|
+
}
|
|
72718
|
+
}
|
|
72719
|
+
};
|
|
72720
|
+
const displayErrors = { ...localErrors, ...errors };
|
|
72721
|
+
return /* @__PURE__ */ jsxs("div", { ref, className: cn("space-y-4", className), ...props, children: [
|
|
72722
|
+
showCardPreview && /* @__PURE__ */ jsxs(
|
|
72723
|
+
motion.div,
|
|
72724
|
+
{
|
|
72725
|
+
className: "relative w-full max-w-md mx-auto h-48 rounded-xl bg-gradient-to-r from-gray-700 to-gray-900 p-6 text-white shadow-xl",
|
|
72726
|
+
initial: { opacity: 0, y: -20 },
|
|
72727
|
+
animate: { opacity: 1, y: 0 },
|
|
72728
|
+
transition: { duration: 0.3 },
|
|
72729
|
+
children: [
|
|
72730
|
+
/* @__PURE__ */ jsxs("div", { className: "flex justify-between items-start mb-8", children: [
|
|
72731
|
+
/* @__PURE__ */ jsx("div", { className: "text-lg font-semibold", children: cardType ? cardType.toUpperCase() : "CARD" }),
|
|
72732
|
+
/* @__PURE__ */ jsx(CreditCard, { className: "w-8 h-8" })
|
|
72733
|
+
] }),
|
|
72734
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
72735
|
+
/* @__PURE__ */ jsx("div", { className: "text-xl font-mono tracking-wider", children: value.number || "\u2022\u2022\u2022\u2022 \u2022\u2022\u2022\u2022 \u2022\u2022\u2022\u2022 \u2022\u2022\u2022\u2022" }),
|
|
72736
|
+
/* @__PURE__ */ jsxs("div", { className: "flex justify-between", children: [
|
|
72737
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
72738
|
+
/* @__PURE__ */ jsx("div", { className: "text-xs opacity-70", children: "NAME" }),
|
|
72739
|
+
/* @__PURE__ */ jsx("div", { className: "text-sm uppercase", children: value.name || "YOUR NAME" })
|
|
72740
|
+
] }),
|
|
72741
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
72742
|
+
/* @__PURE__ */ jsx("div", { className: "text-xs opacity-70", children: "EXPIRES" }),
|
|
72743
|
+
/* @__PURE__ */ jsx("div", { className: "text-sm", children: value.expiry || "MM/YY" })
|
|
72744
|
+
] })
|
|
72745
|
+
] })
|
|
72746
|
+
] })
|
|
72747
|
+
]
|
|
72748
|
+
}
|
|
72749
|
+
),
|
|
72750
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
72751
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
|
|
72752
|
+
/* @__PURE__ */ jsxs(MoonUILabelPro, { htmlFor: "card-number", className: labelClassName, children: [
|
|
72753
|
+
labels.number || "Card Number",
|
|
72754
|
+
required2 && /* @__PURE__ */ jsx("span", { className: "text-destructive ml-1", children: "*" })
|
|
72755
|
+
] }),
|
|
72756
|
+
/* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
72757
|
+
/* @__PURE__ */ jsx(
|
|
72758
|
+
MoonUIInputPro,
|
|
72759
|
+
{
|
|
72760
|
+
ref: numberRef,
|
|
72761
|
+
id: "card-number",
|
|
72762
|
+
type: "text",
|
|
72763
|
+
inputMode: "numeric",
|
|
72764
|
+
value: value.number,
|
|
72765
|
+
onChange: (e2) => handleChange("number", e2.target.value),
|
|
72766
|
+
onFocus: () => setFocused("number"),
|
|
72767
|
+
onBlur: () => setFocused(null),
|
|
72768
|
+
placeholder: placeholders.number || "1234 5678 9012 3456",
|
|
72769
|
+
className: cn(
|
|
72770
|
+
"pr-20",
|
|
72771
|
+
displayErrors.number && "border-destructive",
|
|
72772
|
+
inputClassName
|
|
72773
|
+
),
|
|
72774
|
+
disabled
|
|
72775
|
+
}
|
|
72776
|
+
),
|
|
72777
|
+
showCardType && cardType && /* @__PURE__ */ jsx("div", { className: "absolute right-3 top-1/2 -translate-y-1/2 text-sm font-medium text-muted-foreground", children: cardType.toUpperCase() })
|
|
72778
|
+
] }),
|
|
72779
|
+
displayErrors.number && /* @__PURE__ */ jsx("p", { className: cn("text-sm text-destructive", errorClassName), children: displayErrors.number })
|
|
72780
|
+
] }),
|
|
72781
|
+
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-4", children: [
|
|
72782
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
|
|
72783
|
+
/* @__PURE__ */ jsxs(MoonUILabelPro, { htmlFor: "card-expiry", className: labelClassName, children: [
|
|
72784
|
+
labels.expiry || "Expiry Date",
|
|
72785
|
+
required2 && /* @__PURE__ */ jsx("span", { className: "text-destructive ml-1", children: "*" })
|
|
72786
|
+
] }),
|
|
72787
|
+
/* @__PURE__ */ jsx(
|
|
72788
|
+
MoonUIInputPro,
|
|
72789
|
+
{
|
|
72790
|
+
ref: expiryRef,
|
|
72791
|
+
id: "card-expiry",
|
|
72792
|
+
type: "text",
|
|
72793
|
+
inputMode: "numeric",
|
|
72794
|
+
value: value.expiry,
|
|
72795
|
+
onChange: (e2) => handleChange("expiry", e2.target.value),
|
|
72796
|
+
onFocus: () => setFocused("expiry"),
|
|
72797
|
+
onBlur: () => setFocused(null),
|
|
72798
|
+
placeholder: placeholders.expiry || "MM/YY",
|
|
72799
|
+
className: cn(
|
|
72800
|
+
displayErrors.expiry && "border-destructive",
|
|
72801
|
+
inputClassName
|
|
72802
|
+
),
|
|
72803
|
+
disabled
|
|
72804
|
+
}
|
|
72805
|
+
),
|
|
72806
|
+
displayErrors.expiry && /* @__PURE__ */ jsx("p", { className: cn("text-sm text-destructive", errorClassName), children: displayErrors.expiry })
|
|
72807
|
+
] }),
|
|
72808
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
|
|
72809
|
+
/* @__PURE__ */ jsxs(MoonUILabelPro, { htmlFor: "card-cvc", className: labelClassName, children: [
|
|
72810
|
+
labels.cvc || "CVC",
|
|
72811
|
+
required2 && /* @__PURE__ */ jsx("span", { className: "text-destructive ml-1", children: "*" })
|
|
72812
|
+
] }),
|
|
72813
|
+
/* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
72814
|
+
/* @__PURE__ */ jsx(
|
|
72815
|
+
MoonUIInputPro,
|
|
72816
|
+
{
|
|
72817
|
+
ref: cvcRef,
|
|
72818
|
+
id: "card-cvc",
|
|
72819
|
+
type: "text",
|
|
72820
|
+
inputMode: "numeric",
|
|
72821
|
+
value: value.cvc,
|
|
72822
|
+
onChange: (e2) => handleChange("cvc", e2.target.value),
|
|
72823
|
+
onFocus: () => setFocused("cvc"),
|
|
72824
|
+
onBlur: () => setFocused(null),
|
|
72825
|
+
placeholder: placeholders.cvc || cardType === "amex" ? "1234" : "123",
|
|
72826
|
+
className: cn(
|
|
72827
|
+
displayErrors.cvc && "border-destructive",
|
|
72828
|
+
inputClassName
|
|
72829
|
+
),
|
|
72830
|
+
disabled
|
|
72831
|
+
}
|
|
72832
|
+
),
|
|
72833
|
+
showSecurityBadge && /* @__PURE__ */ jsx(Lock, { className: "absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground" })
|
|
72834
|
+
] }),
|
|
72835
|
+
displayErrors.cvc && /* @__PURE__ */ jsx("p", { className: cn("text-sm text-destructive", errorClassName), children: displayErrors.cvc })
|
|
72836
|
+
] })
|
|
72837
|
+
] }),
|
|
72838
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
|
|
72839
|
+
/* @__PURE__ */ jsx(MoonUILabelPro, { htmlFor: "card-name", className: labelClassName, children: labels.name || "Cardholder Name" }),
|
|
72840
|
+
/* @__PURE__ */ jsx(
|
|
72841
|
+
MoonUIInputPro,
|
|
72842
|
+
{
|
|
72843
|
+
ref: nameRef,
|
|
72844
|
+
id: "card-name",
|
|
72845
|
+
type: "text",
|
|
72846
|
+
value: value.name,
|
|
72847
|
+
onChange: (e2) => handleChange("name", e2.target.value),
|
|
72848
|
+
onFocus: () => setFocused("name"),
|
|
72849
|
+
onBlur: () => setFocused(null),
|
|
72850
|
+
placeholder: placeholders.name || "John Doe",
|
|
72851
|
+
className: cn(
|
|
72852
|
+
displayErrors.name && "border-destructive",
|
|
72853
|
+
inputClassName
|
|
72854
|
+
),
|
|
72855
|
+
disabled
|
|
72856
|
+
}
|
|
72857
|
+
),
|
|
72858
|
+
displayErrors.name && /* @__PURE__ */ jsx("p", { className: cn("text-sm text-destructive", errorClassName), children: displayErrors.name })
|
|
72859
|
+
] })
|
|
72860
|
+
] }),
|
|
72861
|
+
showSecurityBadge && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-sm text-muted-foreground", children: [
|
|
72862
|
+
/* @__PURE__ */ jsx(Lock, { className: "w-4 h-4" }),
|
|
72863
|
+
/* @__PURE__ */ jsx("span", { children: "Your payment information is secure and encrypted" })
|
|
72864
|
+
] })
|
|
72865
|
+
] });
|
|
72866
|
+
});
|
|
72867
|
+
MoonUICreditCardInputPro.displayName = "MoonUICreditCardInputPro";
|
|
72868
|
+
var countries = [
|
|
72869
|
+
{ code: "US", name: "United States", dialCode: "+1", flag: "\u{1F1FA}\u{1F1F8}", format: "(xxx) xxx-xxxx" },
|
|
72870
|
+
{ code: "GB", name: "United Kingdom", dialCode: "+44", flag: "\u{1F1EC}\u{1F1E7}", format: "xxxx xxxxxx" },
|
|
72871
|
+
{ code: "TR", name: "Turkey", dialCode: "+90", flag: "\u{1F1F9}\u{1F1F7}", format: "(xxx) xxx xx xx" },
|
|
72872
|
+
{ code: "DE", name: "Germany", dialCode: "+49", flag: "\u{1F1E9}\u{1F1EA}", format: "xxx xxxxxxxx" },
|
|
72873
|
+
{ code: "FR", name: "France", dialCode: "+33", flag: "\u{1F1EB}\u{1F1F7}", format: "x xx xx xx xx" },
|
|
72874
|
+
{ code: "IT", name: "Italy", dialCode: "+39", flag: "\u{1F1EE}\u{1F1F9}", format: "xxx xxxxxxx" },
|
|
72875
|
+
{ code: "ES", name: "Spain", dialCode: "+34", flag: "\u{1F1EA}\u{1F1F8}", format: "xxx xxx xxx" },
|
|
72876
|
+
{ code: "CN", name: "China", dialCode: "+86", flag: "\u{1F1E8}\u{1F1F3}", format: "xxx xxxx xxxx" },
|
|
72877
|
+
{ code: "JP", name: "Japan", dialCode: "+81", flag: "\u{1F1EF}\u{1F1F5}", format: "xx xxxx xxxx" },
|
|
72878
|
+
{ code: "KR", name: "South Korea", dialCode: "+82", flag: "\u{1F1F0}\u{1F1F7}", format: "xx xxxx xxxx" },
|
|
72879
|
+
{ code: "IN", name: "India", dialCode: "+91", flag: "\u{1F1EE}\u{1F1F3}", format: "xxxxx xxxxx" },
|
|
72880
|
+
{ code: "BR", name: "Brazil", dialCode: "+55", flag: "\u{1F1E7}\u{1F1F7}", format: "(xx) xxxxx-xxxx" },
|
|
72881
|
+
{ code: "MX", name: "Mexico", dialCode: "+52", flag: "\u{1F1F2}\u{1F1FD}", format: "xxx xxx xxxx" },
|
|
72882
|
+
{ code: "CA", name: "Canada", dialCode: "+1", flag: "\u{1F1E8}\u{1F1E6}", format: "(xxx) xxx-xxxx" },
|
|
72883
|
+
{ code: "AU", name: "Australia", dialCode: "+61", flag: "\u{1F1E6}\u{1F1FA}", format: "xxx xxx xxx" },
|
|
72884
|
+
{ code: "RU", name: "Russia", dialCode: "+7", flag: "\u{1F1F7}\u{1F1FA}", format: "(xxx) xxx-xx-xx" },
|
|
72885
|
+
{ code: "NL", name: "Netherlands", dialCode: "+31", flag: "\u{1F1F3}\u{1F1F1}", format: "x xxxxxxxx" },
|
|
72886
|
+
{ code: "SE", name: "Sweden", dialCode: "+46", flag: "\u{1F1F8}\u{1F1EA}", format: "xx xxx xx xx" },
|
|
72887
|
+
{ code: "NO", name: "Norway", dialCode: "+47", flag: "\u{1F1F3}\u{1F1F4}", format: "xxx xx xxx" },
|
|
72888
|
+
{ code: "FI", name: "Finland", dialCode: "+358", flag: "\u{1F1EB}\u{1F1EE}", format: "xx xxxxxxx" }
|
|
72889
|
+
];
|
|
72890
|
+
function formatPhoneNumber(number4, format3) {
|
|
72891
|
+
const cleaned = number4.replace(/\D/g, "");
|
|
72892
|
+
let formatted = "";
|
|
72893
|
+
let digitIndex = 0;
|
|
72894
|
+
for (let i3 = 0; i3 < format3.length && digitIndex < cleaned.length; i3++) {
|
|
72895
|
+
if (format3[i3] === "x") {
|
|
72896
|
+
formatted += cleaned[digitIndex];
|
|
72897
|
+
digitIndex++;
|
|
72898
|
+
} else {
|
|
72899
|
+
formatted += format3[i3];
|
|
72900
|
+
}
|
|
72901
|
+
}
|
|
72902
|
+
return formatted;
|
|
72903
|
+
}
|
|
72904
|
+
function validatePhoneNumber(number4, countryCode) {
|
|
72905
|
+
const cleaned = number4.replace(/\D/g, "");
|
|
72906
|
+
const country = countries.find((c2) => c2.code === countryCode);
|
|
72907
|
+
if (!country)
|
|
72908
|
+
return false;
|
|
72909
|
+
const expectedLength = country.format.split("").filter((c2) => c2 === "x").length;
|
|
72910
|
+
return cleaned.length === expectedLength;
|
|
72911
|
+
}
|
|
72912
|
+
function toInternationalFormat(countryCode, phoneNumber) {
|
|
72913
|
+
const country = countries.find((c2) => c2.code === countryCode);
|
|
72914
|
+
if (!country)
|
|
72915
|
+
return phoneNumber;
|
|
72916
|
+
const cleaned = phoneNumber.replace(/\D/g, "");
|
|
72917
|
+
return `${country.dialCode}${cleaned}`;
|
|
72918
|
+
}
|
|
72919
|
+
var MoonUIPhoneNumberInputPro = t__default.forwardRef(({
|
|
72920
|
+
value = { country: "US", number: "" },
|
|
72921
|
+
onChange,
|
|
72922
|
+
defaultCountry = "US",
|
|
72923
|
+
countries: customCountries,
|
|
72924
|
+
showFlags = true,
|
|
72925
|
+
showDialCode = true,
|
|
72926
|
+
autoFormat = true,
|
|
72927
|
+
validateOnChange = true,
|
|
72928
|
+
showValidationIcon = true,
|
|
72929
|
+
label,
|
|
72930
|
+
error: error42,
|
|
72931
|
+
helperText,
|
|
72932
|
+
required: required2,
|
|
72933
|
+
className,
|
|
72934
|
+
inputClassName,
|
|
72935
|
+
selectClassName,
|
|
72936
|
+
labelClassName,
|
|
72937
|
+
errorClassName,
|
|
72938
|
+
disabled,
|
|
72939
|
+
allowInternationalFormat = true,
|
|
72940
|
+
...props
|
|
72941
|
+
}, ref) => {
|
|
72942
|
+
const [isValid, setIsValid] = useState(false);
|
|
72943
|
+
const [isFocused, setIsFocused] = useState(false);
|
|
72944
|
+
const inputRef = useRef(null);
|
|
72945
|
+
const countryList = customCountries || countries;
|
|
72946
|
+
const selectedCountry = countryList.find((c2) => c2.code === value.country) || countryList[0];
|
|
72947
|
+
useEffect(() => {
|
|
72948
|
+
if (validateOnChange && value.number) {
|
|
72949
|
+
const valid = validatePhoneNumber(value.number, value.country);
|
|
72950
|
+
setIsValid(valid);
|
|
72951
|
+
}
|
|
72952
|
+
}, [value, validateOnChange]);
|
|
72953
|
+
const handleCountryChange = (countryCode) => {
|
|
72954
|
+
const fullNumber = allowInternationalFormat ? toInternationalFormat(countryCode, value.number) : value.number;
|
|
72955
|
+
onChange?.({
|
|
72956
|
+
country: countryCode,
|
|
72957
|
+
number: value.number,
|
|
72958
|
+
fullNumber,
|
|
72959
|
+
isValid: validatePhoneNumber(value.number, countryCode)
|
|
72960
|
+
});
|
|
72961
|
+
};
|
|
72962
|
+
const handleNumberChange = (e2) => {
|
|
72963
|
+
let newValue = e2.target.value;
|
|
72964
|
+
if (autoFormat) {
|
|
72965
|
+
const cleaned = newValue.replace(/\D/g, "");
|
|
72966
|
+
newValue = formatPhoneNumber(cleaned, selectedCountry.format);
|
|
72967
|
+
}
|
|
72968
|
+
const valid = validatePhoneNumber(newValue, value.country);
|
|
72969
|
+
const fullNumber = allowInternationalFormat ? toInternationalFormat(value.country, newValue) : newValue;
|
|
72970
|
+
onChange?.({
|
|
72971
|
+
country: value.country,
|
|
72972
|
+
number: newValue,
|
|
72973
|
+
fullNumber,
|
|
72974
|
+
isValid: valid
|
|
72975
|
+
});
|
|
72976
|
+
};
|
|
72977
|
+
const handlePaste2 = (e2) => {
|
|
72978
|
+
if (!autoFormat)
|
|
72979
|
+
return;
|
|
72980
|
+
e2.preventDefault();
|
|
72981
|
+
const pastedText = e2.clipboardData.getData("text");
|
|
72982
|
+
const cleaned = pastedText.replace(/\D/g, "");
|
|
72983
|
+
const formatted = formatPhoneNumber(cleaned, selectedCountry.format);
|
|
72984
|
+
const valid = validatePhoneNumber(formatted, value.country);
|
|
72985
|
+
const fullNumber = allowInternationalFormat ? toInternationalFormat(value.country, formatted) : formatted;
|
|
72986
|
+
onChange?.({
|
|
72987
|
+
country: value.country,
|
|
72988
|
+
number: formatted,
|
|
72989
|
+
fullNumber,
|
|
72990
|
+
isValid: valid
|
|
72991
|
+
});
|
|
72992
|
+
};
|
|
72993
|
+
return /* @__PURE__ */ jsxs("div", { ref, className: cn("space-y-2", className), ...props, children: [
|
|
72994
|
+
label && /* @__PURE__ */ jsxs(MoonUILabelPro, { htmlFor: "phone-number", className: labelClassName, children: [
|
|
72995
|
+
label,
|
|
72996
|
+
required2 && /* @__PURE__ */ jsx("span", { className: "text-destructive ml-1", children: "*" })
|
|
72997
|
+
] }),
|
|
72998
|
+
/* @__PURE__ */ jsxs("div", { className: "flex gap-2", children: [
|
|
72999
|
+
/* @__PURE__ */ jsxs(
|
|
73000
|
+
MoonUISelectPro,
|
|
73001
|
+
{
|
|
73002
|
+
value: value.country,
|
|
73003
|
+
onValueChange: handleCountryChange,
|
|
73004
|
+
disabled,
|
|
73005
|
+
children: [
|
|
73006
|
+
/* @__PURE__ */ jsx(
|
|
73007
|
+
MoonUISelectTriggerPro,
|
|
73008
|
+
{
|
|
73009
|
+
className: cn(
|
|
73010
|
+
"w-[140px]",
|
|
73011
|
+
error42 && "border-destructive",
|
|
73012
|
+
selectClassName
|
|
73013
|
+
),
|
|
73014
|
+
children: /* @__PURE__ */ jsx(MoonUISelectValuePro, { children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
73015
|
+
showFlags && /* @__PURE__ */ jsx("span", { className: "text-lg", children: selectedCountry.flag }),
|
|
73016
|
+
showDialCode && /* @__PURE__ */ jsx("span", { className: "text-sm", children: selectedCountry.dialCode }),
|
|
73017
|
+
!showFlags && !showDialCode && /* @__PURE__ */ jsx("span", { className: "text-sm", children: selectedCountry.code })
|
|
73018
|
+
] }) })
|
|
73019
|
+
}
|
|
73020
|
+
),
|
|
73021
|
+
/* @__PURE__ */ jsx(MoonUISelectContentPro, { children: countryList.map((country) => /* @__PURE__ */ jsx(MoonUISelectItemPro, { value: country.code, children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
73022
|
+
showFlags && /* @__PURE__ */ jsx("span", { className: "text-lg", children: country.flag }),
|
|
73023
|
+
/* @__PURE__ */ jsx("span", { className: "text-sm", children: country.name }),
|
|
73024
|
+
showDialCode && /* @__PURE__ */ jsx("span", { className: "text-muted-foreground text-sm", children: country.dialCode })
|
|
73025
|
+
] }) }, country.code)) })
|
|
73026
|
+
]
|
|
73027
|
+
}
|
|
73028
|
+
),
|
|
73029
|
+
/* @__PURE__ */ jsxs("div", { className: "relative flex-1", children: [
|
|
73030
|
+
/* @__PURE__ */ jsx(
|
|
73031
|
+
MoonUIInputPro,
|
|
73032
|
+
{
|
|
73033
|
+
ref: inputRef,
|
|
73034
|
+
id: "phone-number",
|
|
73035
|
+
type: "tel",
|
|
73036
|
+
value: value.number,
|
|
73037
|
+
onChange: handleNumberChange,
|
|
73038
|
+
onPaste: handlePaste2,
|
|
73039
|
+
onFocus: () => setIsFocused(true),
|
|
73040
|
+
onBlur: () => setIsFocused(false),
|
|
73041
|
+
placeholder: selectedCountry.format.replace(/x/g, "\u2022"),
|
|
73042
|
+
className: cn(
|
|
73043
|
+
"pr-10",
|
|
73044
|
+
error42 && "border-destructive",
|
|
73045
|
+
inputClassName
|
|
73046
|
+
),
|
|
73047
|
+
disabled
|
|
73048
|
+
}
|
|
73049
|
+
),
|
|
73050
|
+
showValidationIcon && value.number && /* @__PURE__ */ jsx("div", { className: "absolute right-3 top-1/2 -translate-y-1/2", children: /* @__PURE__ */ jsx(AnimatePresence, { mode: "wait", children: isValid ? /* @__PURE__ */ jsx(
|
|
73051
|
+
motion.div,
|
|
73052
|
+
{
|
|
73053
|
+
initial: { scale: 0, opacity: 0 },
|
|
73054
|
+
animate: { scale: 1, opacity: 1 },
|
|
73055
|
+
exit: { scale: 0, opacity: 0 },
|
|
73056
|
+
transition: { duration: 0.2 },
|
|
73057
|
+
children: /* @__PURE__ */ jsx(Check, { className: "w-4 h-4 text-green-500" })
|
|
73058
|
+
},
|
|
73059
|
+
"valid"
|
|
73060
|
+
) : /* @__PURE__ */ jsx(
|
|
73061
|
+
motion.div,
|
|
73062
|
+
{
|
|
73063
|
+
initial: { scale: 0, opacity: 0 },
|
|
73064
|
+
animate: { scale: 1, opacity: 1 },
|
|
73065
|
+
exit: { scale: 0, opacity: 0 },
|
|
73066
|
+
transition: { duration: 0.2 },
|
|
73067
|
+
children: /* @__PURE__ */ jsx(X, { className: "w-4 h-4 text-destructive" })
|
|
73068
|
+
},
|
|
73069
|
+
"invalid"
|
|
73070
|
+
) }) })
|
|
73071
|
+
] })
|
|
73072
|
+
] }),
|
|
73073
|
+
(error42 || helperText) && /* @__PURE__ */ jsx(AnimatePresence, { mode: "wait", children: error42 ? /* @__PURE__ */ jsx(
|
|
73074
|
+
motion.p,
|
|
73075
|
+
{
|
|
73076
|
+
initial: { opacity: 0, height: 0 },
|
|
73077
|
+
animate: { opacity: 1, height: "auto" },
|
|
73078
|
+
exit: { opacity: 0, height: 0 },
|
|
73079
|
+
className: cn("text-sm text-destructive", errorClassName),
|
|
73080
|
+
children: error42
|
|
73081
|
+
},
|
|
73082
|
+
"error"
|
|
73083
|
+
) : /* @__PURE__ */ jsx(
|
|
73084
|
+
motion.p,
|
|
73085
|
+
{
|
|
73086
|
+
initial: { opacity: 0, height: 0 },
|
|
73087
|
+
animate: { opacity: 1, height: "auto" },
|
|
73088
|
+
exit: { opacity: 0, height: 0 },
|
|
73089
|
+
className: "text-sm text-muted-foreground",
|
|
73090
|
+
children: helperText
|
|
73091
|
+
},
|
|
73092
|
+
"helper"
|
|
73093
|
+
) }),
|
|
73094
|
+
allowInternationalFormat && value.number && isValid && /* @__PURE__ */ jsxs(
|
|
73095
|
+
motion.div,
|
|
73096
|
+
{
|
|
73097
|
+
initial: { opacity: 0, y: -10 },
|
|
73098
|
+
animate: { opacity: 1, y: 0 },
|
|
73099
|
+
className: "flex items-center gap-2 text-sm text-muted-foreground",
|
|
73100
|
+
children: [
|
|
73101
|
+
/* @__PURE__ */ jsx(Globe, { className: "w-4 h-4" }),
|
|
73102
|
+
/* @__PURE__ */ jsxs("span", { children: [
|
|
73103
|
+
"International: ",
|
|
73104
|
+
toInternationalFormat(value.country, value.number)
|
|
73105
|
+
] })
|
|
73106
|
+
]
|
|
73107
|
+
}
|
|
73108
|
+
)
|
|
73109
|
+
] });
|
|
73110
|
+
});
|
|
73111
|
+
MoonUIPhoneNumberInputPro.displayName = "MoonUIPhoneNumberInputPro";
|
|
72581
73112
|
|
|
72582
73113
|
// src/components/enhanced/index.ts
|
|
72583
73114
|
var enhanced_exports = {};
|
|
@@ -73477,4 +74008,4 @@ var BadgePro = t__default.forwardRef(({
|
|
|
73477
74008
|
});
|
|
73478
74009
|
BadgePro.displayName = "BadgePro";
|
|
73479
74010
|
|
|
73480
|
-
export { MoonUIAccordionPro as Accordion, MoonUIAccordionContentPro as AccordionContent, MoonUIAccordionItemPro as AccordionItem, MoonUIAccordionTriggerPro as AccordionTrigger, Calendar3 as AdvancedCalendar, AdvancedChart, AdvancedForms, MoonUIAlertPro as Alert, MoonUIAlertDescriptionPro as AlertDescription, MoonUIAlertTitlePro as AlertTitle, AnimatedButton, MoonUIAspectRatioPro as AspectRatio, MoonUIAvatarPro as Avatar, MoonUIAvatarFallbackPro as AvatarFallback, MoonUIAvatarImagePro as AvatarImage, MoonUIBadgePro as Badge, MoonUIBreadcrumbPro as Breadcrumb, MoonUIBreadcrumbEllipsisPro as BreadcrumbEllipsis, MoonUIBreadcrumbItemPro as BreadcrumbItem, MoonUIBreadcrumbLinkPro as BreadcrumbLink, MoonUIBreadcrumbListPro as BreadcrumbList, MoonUIBreadcrumbPagePro as BreadcrumbPage, MoonUIBreadcrumbSeparatorPro as BreadcrumbSeparator, MoonUIButtonPro as Button, Calendar, MoonUICardPro as Card, MoonUICardContentPro as CardContent, MoonUICardDescriptionPro as CardDescription, MoonUICardFooterPro as CardFooter, MoonUICardHeaderPro as CardHeader, MoonUICardTitlePro as CardTitle, MoonUICheckboxPro as Checkbox, MoonUICollapsiblePro as Collapsible, MoonUICollapsibleContentPro as CollapsibleContent, MoonUICollapsibleTriggerPro as CollapsibleTrigger, MoonUIColorPickerPro as ColorPicker, MoonUICommandPro as Command, MoonUICommandDialogPro as CommandDialog, MoonUICommandEmptyPro as CommandEmpty, MoonUICommandGroupPro as CommandGroup, MoonUICommandInputPro as CommandInput, MoonUICommandItemPro as CommandItem, MoonUICommandListPro as CommandList, MoonUICommandSeparatorPro as CommandSeparator, MoonUICommandShortcutPro as CommandShortcut, Dashboard, DataTable, MoonUIDialogPro as Dialog, MoonUIDialogClosePro as DialogClose, MoonUIDialogContentPro as DialogContent, MoonUIDialogDescriptionPro as DialogDescription, MoonUIDialogFooterPro as DialogFooter, MoonUIDialogHeaderPro as DialogHeader, MoonUIDialogTitlePro as DialogTitle, MoonUIDialogTriggerPro as DialogTrigger, DraggableList, MoonUIDropdownMenuPro as DropdownMenu, MoonUIDropdownMenuCheckboxItemPro as DropdownMenuCheckboxItem, MoonUIDropdownMenuContentPro as DropdownMenuContent, MoonUIDropdownMenuGroupPro as DropdownMenuGroup, MoonUIDropdownMenuItemPro as DropdownMenuItem, MoonUIDropdownMenuLabelPro as DropdownMenuLabel, MoonUIDropdownMenuPortalPro as DropdownMenuPortal, MoonUIDropdownMenuRadioGroupPro as DropdownMenuRadioGroup, MoonUIDropdownMenuRadioItemPro as DropdownMenuRadioItem, MoonUIDropdownMenuSeparatorPro as DropdownMenuSeparator, MoonUIDropdownMenuShortcutPro as DropdownMenuShortcut, MoonUIDropdownMenuSubPro as DropdownMenuSub, MoonUIDropdownMenuSubContentPro as DropdownMenuSubContent, MoonUIDropdownMenuSubTriggerPro as DropdownMenuSubTrigger, MoonUIDropdownMenuTriggerPro as DropdownMenuTrigger, enhanced_exports as Enhanced, ErrorBoundary, FileUpload, FloatingActionButton, FormWizardNavigation,
|
|
74011
|
+
export { MoonUIAccordionPro as Accordion, MoonUIAccordionContentPro as AccordionContent, MoonUIAccordionItemPro as AccordionItem, MoonUIAccordionTriggerPro as AccordionTrigger, Calendar3 as AdvancedCalendar, AdvancedChart, AdvancedForms, MoonUIAlertPro as Alert, MoonUIAlertDescriptionPro as AlertDescription, MoonUIAlertTitlePro as AlertTitle, AnimatedButton, MoonUIAspectRatioPro as AspectRatio, MoonUIAvatarPro as Avatar, MoonUIAvatarFallbackPro as AvatarFallback, MoonUIAvatarImagePro as AvatarImage, MoonUIBadgePro as Badge, MoonUIBreadcrumbPro as Breadcrumb, MoonUIBreadcrumbEllipsisPro as BreadcrumbEllipsis, MoonUIBreadcrumbItemPro as BreadcrumbItem, MoonUIBreadcrumbLinkPro as BreadcrumbLink, MoonUIBreadcrumbListPro as BreadcrumbList, MoonUIBreadcrumbPagePro as BreadcrumbPage, MoonUIBreadcrumbSeparatorPro as BreadcrumbSeparator, MoonUIButtonPro as Button, Calendar, MoonUICardPro as Card, MoonUICardContentPro as CardContent, MoonUICardDescriptionPro as CardDescription, MoonUICardFooterPro as CardFooter, MoonUICardHeaderPro as CardHeader, MoonUICardTitlePro as CardTitle, MoonUICheckboxPro as Checkbox, MoonUICollapsiblePro as Collapsible, MoonUICollapsibleContentPro as CollapsibleContent, MoonUICollapsibleTriggerPro as CollapsibleTrigger, MoonUIColorPickerPro as ColorPicker, MoonUICommandPro as Command, MoonUICommandDialogPro as CommandDialog, MoonUICommandEmptyPro as CommandEmpty, MoonUICommandGroupPro as CommandGroup, MoonUICommandInputPro as CommandInput, MoonUICommandItemPro as CommandItem, MoonUICommandListPro as CommandList, MoonUICommandSeparatorPro as CommandSeparator, MoonUICommandShortcutPro as CommandShortcut, Dashboard, DataTable, MoonUIDialogPro as Dialog, MoonUIDialogClosePro as DialogClose, MoonUIDialogContentPro as DialogContent, MoonUIDialogDescriptionPro as DialogDescription, MoonUIDialogFooterPro as DialogFooter, MoonUIDialogHeaderPro as DialogHeader, MoonUIDialogTitlePro as DialogTitle, MoonUIDialogTriggerPro as DialogTrigger, DraggableList, MoonUIDropdownMenuPro as DropdownMenu, MoonUIDropdownMenuCheckboxItemPro as DropdownMenuCheckboxItem, MoonUIDropdownMenuContentPro as DropdownMenuContent, MoonUIDropdownMenuGroupPro as DropdownMenuGroup, MoonUIDropdownMenuItemPro as DropdownMenuItem, MoonUIDropdownMenuLabelPro as DropdownMenuLabel, MoonUIDropdownMenuPortalPro as DropdownMenuPortal, MoonUIDropdownMenuRadioGroupPro as DropdownMenuRadioGroup, MoonUIDropdownMenuRadioItemPro as DropdownMenuRadioItem, MoonUIDropdownMenuSeparatorPro as DropdownMenuSeparator, MoonUIDropdownMenuShortcutPro as DropdownMenuShortcut, MoonUIDropdownMenuSubPro as DropdownMenuSub, MoonUIDropdownMenuSubContentPro as DropdownMenuSubContent, MoonUIDropdownMenuSubTriggerPro as DropdownMenuSubTrigger, MoonUIDropdownMenuTriggerPro as DropdownMenuTrigger, enhanced_exports as Enhanced, ErrorBoundary, FileUpload, FloatingActionButton, FormWizardNavigation, FormWizardProgress, FormWizardStep, GitHubStars, HealthCheck, HoverCard2 as HoverCard, HoverCard3D, HoverCardContent2 as HoverCardContent, HoverCardTrigger2 as HoverCardTrigger, MoonUIInputPro as Input, Kanban, MoonUILabelPro as Label, LazyComponent, LazyImage, LazyList, MagneticButton, MemoryAnalytics, MemoryEfficientData, MoonUIAccordionContentPro, MoonUIAccordionItemPro, MoonUIAccordionPro, MoonUIAccordionTriggerPro, MoonUIAlertDescriptionPro, MoonUIAlertPro, MoonUIAlertTitlePro, MoonUIAspectRatioPro, MoonUIAvatarFallbackPro, MoonUIAvatarImagePro, MoonUIAvatarPro, MoonUIBadgePro, MoonUIBreadcrumbEllipsisPro, MoonUIBreadcrumbItemPro, MoonUIBreadcrumbLinkPro, MoonUIBreadcrumbListPro, MoonUIBreadcrumbPagePro, MoonUIBreadcrumbPro, MoonUIBreadcrumbSeparatorPro, MoonUIButtonPro, MoonUICardContentPro, MoonUICardDescriptionPro, MoonUICardFooterPro, MoonUICardHeaderPro, MoonUICardPro, MoonUICardTitlePro, MoonUICheckboxPro, MoonUICollapsibleContentPro, MoonUICollapsiblePro, MoonUICollapsibleTriggerPro, MoonUIColorPickerPro, MoonUICommandDialogPro, MoonUICommandEmptyPro, MoonUICommandGroupPro, MoonUICommandInputPro, MoonUICommandItemPro, MoonUICommandListPro, MoonUICommandPro, MoonUICommandSeparatorPro, MoonUICommandShortcutPro, MoonUICreditCardInputPro, MoonUIDialogClosePro, MoonUIDialogContentPro, MoonUIDialogDescriptionPro, MoonUIDialogFooterPro, MoonUIDialogHeaderPro, MoonUIDialogPro, MoonUIDialogTitlePro, MoonUIDialogTriggerPro, MoonUIDropdownMenuCheckboxItemPro, MoonUIDropdownMenuContentPro, MoonUIDropdownMenuGroupPro, MoonUIDropdownMenuItemPro, MoonUIDropdownMenuLabelPro, MoonUIDropdownMenuPortalPro, MoonUIDropdownMenuPro, MoonUIDropdownMenuRadioGroupPro, MoonUIDropdownMenuRadioItemPro, MoonUIDropdownMenuSeparatorPro, MoonUIDropdownMenuShortcutPro, MoonUIDropdownMenuSubContentPro, MoonUIDropdownMenuSubPro, MoonUIDropdownMenuSubTriggerPro, MoonUIDropdownMenuTriggerPro, MoonUIFormWizardPro, MoonUIInputPro, MoonUILabelPro, MoonUIMultiStepFormPro, MoonUIPaginationContentPro, MoonUIPaginationEllipsisPro, MoonUIPaginationItemPro, MoonUIPaginationLinkPro, MoonUIPaginationNextPro, MoonUIPaginationPreviousPro, MoonUIPaginationPro, MoonUIPhoneNumberInputPro, MoonUIPopoverContentPro, MoonUIPopoverPro, MoonUIPopoverTriggerPro, MoonUIProgressPro, MoonUIQuizFormPro, MoonUIRadioGroupContextPro, MoonUIRadioGroupItemPro, MoonUIRadioGroupPro, MoonUIRadioItemWithLabelPro, MoonUIRadioLabelPro, MoonUISelectContentPro, MoonUISelectGroupPro, MoonUISelectItemPro, MoonUISelectLabelPro, MoonUISelectPro, MoonUISelectSeparatorPro, MoonUISelectTriggerPro, MoonUISelectValuePro, MoonUISeparatorPro, MoonUISkeletonPro, MoonUISliderPro, MoonUISwitchPro, MoonUITableBodyPro, MoonUITableCaptionPro, MoonUITableCellPro, MoonUITableFooterPro, MoonUITableHeadPro, MoonUITableHeaderPro, MoonUITablePro, MoonUITableRowPro, MoonUITabsContentPro, MoonUITabsListPro, MoonUITabsPro, MoonUITabsTriggerPro, MoonUITextareaPro, MoonUIToastPro, MoonUITogglePro, MoonUITooltipContentPro, MoonUITooltipPro, MoonUITooltipProviderPro, MoonUITooltipTriggerPro, MoonUIalertVariantsPro, MoonUIaspectRatioVariantsPro, MoonUIbreadcrumbVariantsPro, MoonUIcollapsibleContentVariantsPro, MoonUIcollapsibleTriggerVariantsPro, MoonUIcommandVariantsPro, MoonUIradioGroupItemVariantsPro, MoonUItableVariantsPro, MoonUItoggleVariantsPro, OptimizedImage, MoonUIPaginationPro as Pagination, MoonUIPaginationContentPro as PaginationContent, MoonUIPaginationEllipsisPro as PaginationEllipsis, MoonUIPaginationItemPro as PaginationItem, MoonUIPaginationLinkPro as PaginationLink, MoonUIPaginationNextPro as PaginationNext, MoonUIPaginationPreviousPro as PaginationPrevious, PerformanceDebugger, PerformanceMonitor, PinchZoom, MoonUIPopoverPro as Popover, MoonUIPopoverContentPro as PopoverContent, MoonUIPopoverTriggerPro as PopoverTrigger, MoonUIProgressPro as Progress, MoonUIRadioGroupPro as RadioGroup, MoonUIRadioGroupContextPro as RadioGroupContext, MoonUIRadioGroupItemPro as RadioGroupItem, MoonUIRadioItemWithLabelPro as RadioItemWithLabel, MoonUIRadioLabelPro as RadioLabel, RichTextEditor, ScrollArea, ScrollBar, MoonUISelectPro as Select, MoonUISelectContentPro as SelectContent, MoonUISelectGroupPro as SelectGroup, MoonUISelectItemPro as SelectItem, MoonUISelectLabelPro as SelectLabel, MoonUISelectSeparatorPro as SelectSeparator, MoonUISelectTriggerPro as SelectTrigger, MoonUISelectValuePro as SelectValue, SelectableVirtualList, MoonUISeparatorPro as Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Sidebar, MoonUISkeletonPro as Skeleton, MoonUISliderPro as Slider, SpotlightCard, SwipeableCard, MoonUISwitchPro as Switch, MoonUITablePro as Table, MoonUITableBodyPro as TableBody, MoonUITableCaptionPro as TableCaption, MoonUITableCellPro as TableCell, MoonUITableFooterPro as TableFooter, MoonUITableHeadPro as TableHead, MoonUITableHeaderPro as TableHeader, MoonUITableRowPro as TableRow, MoonUITabsPro as Tabs, MoonUITabsContentPro as TabsContent, MoonUITabsListPro as TabsList, MoonUITabsTriggerPro as TabsTrigger, MoonUITextareaPro as Textarea, Timeline, MoonUIToastPro as Toast, MoonUITogglePro as Toggle, MoonUITooltipPro as Tooltip, MoonUITooltipContentPro as TooltipContent, MoonUITooltipProviderPro as TooltipProvider, MoonUITooltipTriggerPro as TooltipTrigger, VirtualList, MoonUIalertVariantsPro as alertVariants, animatedButtonVariants, MoonUIaspectRatioVariantsPro as aspectRatioVariants, moonUIBadgeVariantsPro as badgeVariants, MoonUIbreadcrumbVariantsPro as breadcrumbVariants, moonUIButtonProVariants as buttonVariants, cn, MoonUIcollapsibleContentVariantsPro as collapsibleContentVariants, MoonUIcollapsibleTriggerVariantsPro as collapsibleTriggerVariants, MoonUIcommandVariantsPro as commandVariants, getExpandableColumn, moonUIBadgeVariantsPro, moonUIButtonProVariants, moonUISeparatorVariantsPro, countries as phoneCountries, MoonUIradioGroupItemVariantsPro as radioGroupItemVariants, moonUISeparatorVariantsPro as separatorVariants, MoonUItableVariantsPro as tableVariants, MoonUItoggleVariantsPro as toggleVariants, useExpandableRows, useFormWizard, useStreamingData, useVirtualList };
|