@moontra/moonui-pro 2.36.7 → 2.37.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/cdn/index.global.js +220 -220
- package/dist/cdn/index.global.js.map +1 -1
- package/dist/index.d.ts +12 -48
- package/dist/index.mjs +256 -1126
- package/dist/server.d.ts +103 -0
- package/dist/server.mjs +3158 -0
- package/package.json +9 -2
- package/templates/api-route.template.ts +157 -0
- package/templates/validate-pro-route.ts +252 -0
package/dist/index.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import * as React68 from 'react';
|
|
3
|
-
import React68__default, { createContext, useState, useMemo, useCallback, useRef, useEffect, forwardRef, useImperativeHandle, useContext, useLayoutEffect, useDebugValue, useId, Children, isValidElement, cloneElement, Component } from 'react';
|
|
4
2
|
import { clsx } from 'clsx';
|
|
5
3
|
import { twMerge } from 'tailwind-merge';
|
|
4
|
+
import * as React68 from 'react';
|
|
5
|
+
import React68__default, { createContext, useState, useMemo, useCallback, useRef, useEffect, forwardRef, useImperativeHandle, useContext, useLayoutEffect, useDebugValue, useId, Children, isValidElement, cloneElement, Component } from 'react';
|
|
6
6
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
7
7
|
import * as AccordionPrimitive from '@radix-ui/react-accordion';
|
|
8
8
|
import { Loader2, Play, ExternalLink, ChevronDown, Info, AlertCircle, AlertTriangle, Check, X, MoreHorizontal, Minus, Clock, ChevronUp, Search, Mic, MicOff, Settings, RefreshCw, Zap, ChevronRight, Crown, Circle, ChevronLeft, Plus, Lock, Sparkles, ZoomOut, ZoomIn, Pause, VolumeX, Volume2, Download, Maximize2, Filter, Image as Image$1, Video, RotateCw, Minimize2, BarChart3, Menu, Bell, CheckCheck, CheckCircle, Palette, User, Settings2, LogOut, Edit3, LayoutGrid, Upload, Share2, Save, Phone, Globe, Eye, CheckCircle2, RotateCcw, Copy, Share, Trash2, CreditCard, XCircle, HelpCircle, Grid, MousePointer, Layers, Waves as Waves$1, Cpu, Focus, Monitor, Activity, Blend, Droplets, CircleDot, GripVertical, 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, Highlighter, Link2, Table as Table$1, Undo, Redo, Edit, Wand2, Maximize, FileText, Briefcase, MessageSquare, Heart, GraduationCap, Languages, Lightbulb, MoreVertical, TrendingUp, BellOff, Target, ArrowUpRight, ArrowDownRight, CalendarIcon, MapPin, Navigation, ArrowUp, ArrowDown, ArrowUpDown, Calendar as Calendar$1, DollarSign, Users, Map as Map$1, Music, Archive, File, FileSpreadsheet, FileJson, FileDown, ChevronsLeft, ChevronsRight, Star, Shield, Award, Gem, Flame, TrendingDown, Wind, Shapes, Move3D, Repeat, Move, EyeOff, Timer, Square, GitBranch, Package, Trash, ArrowRight, MessageCircle, Paperclip, Printer, Grip, Unlock, Github, Server, MemoryStick, HardDrive, Network, Columns, PlusCircle, Pin, Sun, Moon, Home, Send, Tag, Flag, Trophy, ShoppingBag, Wifi, WifiOff, Thermometer, GitFork, PoundSterling, Euro, Database, ShoppingCart } from 'lucide-react';
|
|
@@ -50,16 +50,9 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
50
50
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
51
51
|
var __getProtoOf = Object.getPrototypeOf;
|
|
52
52
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
53
|
-
var __esm = (fn, res) => function __init() {
|
|
54
|
-
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
|
|
55
|
-
};
|
|
56
53
|
var __commonJS = (cb, mod) => function __require() {
|
|
57
54
|
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
58
55
|
};
|
|
59
|
-
var __export = (target, all) => {
|
|
60
|
-
for (var name in all)
|
|
61
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
62
|
-
};
|
|
63
56
|
var __copyProps = (to, from2, except, desc) => {
|
|
64
57
|
if (from2 && typeof from2 === "object" || typeof from2 === "function") {
|
|
65
58
|
for (let key of __getOwnPropNames(from2))
|
|
@@ -77,812 +70,6 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
77
70
|
mod
|
|
78
71
|
));
|
|
79
72
|
|
|
80
|
-
// src/services/cli-token-reader.ts
|
|
81
|
-
var cli_token_reader_exports = {};
|
|
82
|
-
__export(cli_token_reader_exports, {
|
|
83
|
-
CLITokenReader: () => CLITokenReader,
|
|
84
|
-
cliTokenReader: () => cliTokenReader
|
|
85
|
-
});
|
|
86
|
-
var CLITokenReader, cliTokenReader;
|
|
87
|
-
var init_cli_token_reader = __esm({
|
|
88
|
-
"src/services/cli-token-reader.ts"() {
|
|
89
|
-
CLITokenReader = class {
|
|
90
|
-
constructor() {
|
|
91
|
-
this.cachedToken = null;
|
|
92
|
-
this.lastCheck = 0;
|
|
93
|
-
this.CACHE_DURATION = 5 * 60 * 1e3;
|
|
94
|
-
}
|
|
95
|
-
// 5 minutes cache
|
|
96
|
-
static getInstance() {
|
|
97
|
-
if (!this.instance) {
|
|
98
|
-
this.instance = new CLITokenReader();
|
|
99
|
-
}
|
|
100
|
-
return this.instance;
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* Generate TRULY secure browser-specific device fingerprint
|
|
104
|
-
* COMPLETELY INDEPENDENT from environment variables
|
|
105
|
-
* Format: browser-hostname-browser_user_hash-machine_hash
|
|
106
|
-
*
|
|
107
|
-
* SECURITY: Environment copying CANNOT bypass this!
|
|
108
|
-
*/
|
|
109
|
-
async getDeviceFingerprint() {
|
|
110
|
-
try {
|
|
111
|
-
const platform2 = this.detectBrowserPlatform();
|
|
112
|
-
const hostname = typeof window !== "undefined" ? window.location.hostname : "unknown";
|
|
113
|
-
const browserUserHash = await this.generateBrowserSpecificUserHash();
|
|
114
|
-
const browserMachineId = await this.generateBrowserMachineId();
|
|
115
|
-
const fingerprint = `browser-${hostname}-${browserUserHash}-${browserMachineId}`;
|
|
116
|
-
console.log("[MoonUI Pro] Environment-independent browser fingerprint generated:", {
|
|
117
|
-
platform: platform2,
|
|
118
|
-
hostname,
|
|
119
|
-
browserUserHash: browserUserHash.substring(0, 4) + "***",
|
|
120
|
-
browserMachineId: browserMachineId.substring(0, 4) + "***",
|
|
121
|
-
fingerprint: fingerprint.substring(0, 30) + "***",
|
|
122
|
-
security: "environment-independent"
|
|
123
|
-
});
|
|
124
|
-
return fingerprint;
|
|
125
|
-
} catch (error) {
|
|
126
|
-
console.error("[MoonUI Pro] Device fingerprint generation failed:", error);
|
|
127
|
-
return "browser-fallback-device";
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* Generate browser-specific user hash independent of environment
|
|
132
|
-
* Uses browser characteristics to create unique user identifier
|
|
133
|
-
*/
|
|
134
|
-
async generateBrowserSpecificUserHash() {
|
|
135
|
-
try {
|
|
136
|
-
const characteristics = [
|
|
137
|
-
// Browser identity
|
|
138
|
-
navigator.userAgent,
|
|
139
|
-
navigator.language,
|
|
140
|
-
navigator.languages?.join(",") || "",
|
|
141
|
-
// System characteristics
|
|
142
|
-
`${screen.width}x${screen.height}x${screen.colorDepth}`,
|
|
143
|
-
`${window.devicePixelRatio || 1}`,
|
|
144
|
-
// Hardware info
|
|
145
|
-
`${navigator.hardwareConcurrency || 0}`,
|
|
146
|
-
`${navigator.maxTouchPoints || 0}`,
|
|
147
|
-
// Timezone and locale
|
|
148
|
-
Intl.DateTimeFormat().resolvedOptions().timeZone,
|
|
149
|
-
Intl.DateTimeFormat().resolvedOptions().locale,
|
|
150
|
-
// Browser capabilities
|
|
151
|
-
typeof window.WebGL2RenderingContext !== "undefined" ? "webgl2" : "webgl1",
|
|
152
|
-
typeof window.AudioContext !== "undefined" ? "audio" : "no-audio",
|
|
153
|
-
typeof navigator.serviceWorker !== "undefined" ? "sw" : "no-sw"
|
|
154
|
-
];
|
|
155
|
-
const combined = characteristics.join("|");
|
|
156
|
-
const hash = await this.sha256Hash(combined);
|
|
157
|
-
return hash.substring(0, 8);
|
|
158
|
-
} catch (error) {
|
|
159
|
-
console.warn("[MoonUI Pro] Browser user hash generation failed, using fallback");
|
|
160
|
-
const fallback = `${navigator.userAgent.length}-${screen.width}-${Date.now() % 1e4}`;
|
|
161
|
-
return this.fallbackHash(fallback);
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
/**
|
|
165
|
-
* Detect platform in browser environment (CLI compatible)
|
|
166
|
-
*/
|
|
167
|
-
detectBrowserPlatform() {
|
|
168
|
-
if (typeof window === "undefined")
|
|
169
|
-
return "unknown";
|
|
170
|
-
const userAgent = navigator.userAgent.toLowerCase();
|
|
171
|
-
if (userAgent.includes("mac") || userAgent.includes("darwin")) {
|
|
172
|
-
return "darwin";
|
|
173
|
-
} else if (userAgent.includes("win") || userAgent.includes("windows")) {
|
|
174
|
-
return "win32";
|
|
175
|
-
} else if (userAgent.includes("linux") || userAgent.includes("x11")) {
|
|
176
|
-
return "linux";
|
|
177
|
-
}
|
|
178
|
-
return "unknown";
|
|
179
|
-
}
|
|
180
|
-
/**
|
|
181
|
-
* Generate browser-specific machine ID using multiple browser characteristics
|
|
182
|
-
* This prevents token sharing between different browsers/machines
|
|
183
|
-
*/
|
|
184
|
-
async generateBrowserMachineId() {
|
|
185
|
-
if (typeof window === "undefined") {
|
|
186
|
-
return "ssr-fallback";
|
|
187
|
-
}
|
|
188
|
-
try {
|
|
189
|
-
const characteristics = [];
|
|
190
|
-
characteristics.push(`${screen.width}x${screen.height}`);
|
|
191
|
-
characteristics.push(`${screen.colorDepth}`);
|
|
192
|
-
characteristics.push(`${window.devicePixelRatio || 1}`);
|
|
193
|
-
characteristics.push(navigator.userAgent);
|
|
194
|
-
characteristics.push(navigator.language);
|
|
195
|
-
characteristics.push(`${navigator.hardwareConcurrency || 0}`);
|
|
196
|
-
characteristics.push(`${navigator.maxTouchPoints || 0}`);
|
|
197
|
-
characteristics.push(Intl.DateTimeFormat().resolvedOptions().timeZone);
|
|
198
|
-
const canvasFingerprint = await this.generateCanvasFingerprint();
|
|
199
|
-
characteristics.push(canvasFingerprint);
|
|
200
|
-
const webglFingerprint = this.generateWebGLFingerprint();
|
|
201
|
-
characteristics.push(webglFingerprint);
|
|
202
|
-
const audioFingerprint = await this.generateAudioFingerprint();
|
|
203
|
-
characteristics.push(audioFingerprint);
|
|
204
|
-
const combined = characteristics.join("|");
|
|
205
|
-
const machineHash = await this.sha256Hash(combined);
|
|
206
|
-
return machineHash.substring(0, 6);
|
|
207
|
-
} catch (error) {
|
|
208
|
-
console.warn("[MoonUI Pro] Machine ID generation fallback:", error);
|
|
209
|
-
const fallback = `${screen.width}-${navigator.userAgent.length}-${navigator.language}`;
|
|
210
|
-
const fallbackHash = await this.sha256Hash(fallback);
|
|
211
|
-
return fallbackHash.substring(0, 6);
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
/**
|
|
215
|
-
* Generate canvas fingerprint
|
|
216
|
-
*/
|
|
217
|
-
async generateCanvasFingerprint() {
|
|
218
|
-
try {
|
|
219
|
-
const canvas = document.createElement("canvas");
|
|
220
|
-
const ctx = canvas.getContext("2d");
|
|
221
|
-
if (!ctx)
|
|
222
|
-
return "no-canvas";
|
|
223
|
-
ctx.textBaseline = "top";
|
|
224
|
-
ctx.font = "14px Arial";
|
|
225
|
-
ctx.fillStyle = "#f60";
|
|
226
|
-
ctx.fillRect(125, 1, 62, 20);
|
|
227
|
-
ctx.fillStyle = "#069";
|
|
228
|
-
ctx.fillText("MoonUI Browser Fingerprint \u{1F510}", 2, 15);
|
|
229
|
-
ctx.fillStyle = "rgba(102, 204, 0, 0.7)";
|
|
230
|
-
ctx.fillRect(45, 25, 80, 15);
|
|
231
|
-
const dataURL = canvas.toDataURL();
|
|
232
|
-
const hash = await this.sha256Hash(dataURL);
|
|
233
|
-
return hash.substring(0, 8);
|
|
234
|
-
} catch (error) {
|
|
235
|
-
return "canvas-error";
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
/**
|
|
239
|
-
* Generate WebGL fingerprint
|
|
240
|
-
*/
|
|
241
|
-
generateWebGLFingerprint() {
|
|
242
|
-
try {
|
|
243
|
-
const canvas = document.createElement("canvas");
|
|
244
|
-
const gl = canvas.getContext("webgl") || canvas.getContext("experimental-webgl");
|
|
245
|
-
if (!gl)
|
|
246
|
-
return "no-webgl";
|
|
247
|
-
const debugInfo = gl.getExtension("WEBGL_debug_renderer_info");
|
|
248
|
-
const vendor = debugInfo ? gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL) : "unknown";
|
|
249
|
-
const renderer = debugInfo ? gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL) : "unknown";
|
|
250
|
-
return `${vendor}-${renderer}`.replace(/\s+/g, "-").substring(0, 16);
|
|
251
|
-
} catch (error) {
|
|
252
|
-
return "webgl-error";
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
/**
|
|
256
|
-
* Generate audio context fingerprint
|
|
257
|
-
*/
|
|
258
|
-
async generateAudioFingerprint() {
|
|
259
|
-
try {
|
|
260
|
-
const AudioContext = window.AudioContext || window.webkitAudioContext;
|
|
261
|
-
if (!AudioContext)
|
|
262
|
-
return "no-audio";
|
|
263
|
-
const context = new AudioContext();
|
|
264
|
-
const oscillator = context.createOscillator();
|
|
265
|
-
const gain = context.createGain();
|
|
266
|
-
oscillator.type = "triangle";
|
|
267
|
-
oscillator.frequency.setValueAtTime(1e3, context.currentTime);
|
|
268
|
-
gain.gain.setValueAtTime(0.01, context.currentTime);
|
|
269
|
-
oscillator.connect(gain);
|
|
270
|
-
gain.connect(context.destination);
|
|
271
|
-
const audioFingerprint = [
|
|
272
|
-
context.sampleRate.toString(),
|
|
273
|
-
context.destination.maxChannelCount.toString(),
|
|
274
|
-
context.destination.channelCount.toString(),
|
|
275
|
-
context.baseLatency ? context.baseLatency.toString() : "0",
|
|
276
|
-
context.outputLatency ? context.outputLatency.toString() : "0"
|
|
277
|
-
].join("-");
|
|
278
|
-
try {
|
|
279
|
-
context.close();
|
|
280
|
-
} catch {
|
|
281
|
-
}
|
|
282
|
-
return audioFingerprint.substring(0, 8);
|
|
283
|
-
} catch (error) {
|
|
284
|
-
return "audio-error";
|
|
285
|
-
}
|
|
286
|
-
}
|
|
287
|
-
/**
|
|
288
|
-
* Validate device compatibility (CLI vs Browser)
|
|
289
|
-
* CLI: platform-hostname-userHash-macHash
|
|
290
|
-
* Browser: platform-hostname-userHash-browserHash
|
|
291
|
-
* Compatible if first 3 parts match
|
|
292
|
-
*/
|
|
293
|
-
validateDeviceCompatibility(tokenDeviceId, currentDeviceId) {
|
|
294
|
-
const tokenParts = tokenDeviceId.split("-");
|
|
295
|
-
const currentParts = currentDeviceId.split("-");
|
|
296
|
-
if (tokenParts.length < 3 || currentParts.length < 3) {
|
|
297
|
-
return { compatible: false, reason: "Invalid device ID format" };
|
|
298
|
-
}
|
|
299
|
-
const platformMatch = tokenParts[0] === currentParts[0];
|
|
300
|
-
const hostnameMatch = tokenParts[1] === currentParts[1];
|
|
301
|
-
const userHashMatch = tokenParts[2] === currentParts[2];
|
|
302
|
-
if (!platformMatch) {
|
|
303
|
-
return { compatible: false, reason: "Platform mismatch (different OS)" };
|
|
304
|
-
}
|
|
305
|
-
if (!hostnameMatch) {
|
|
306
|
-
return { compatible: false, reason: "Hostname mismatch (different machine)" };
|
|
307
|
-
}
|
|
308
|
-
if (!userHashMatch) {
|
|
309
|
-
return { compatible: false, reason: "User account mismatch" };
|
|
310
|
-
}
|
|
311
|
-
return { compatible: true };
|
|
312
|
-
}
|
|
313
|
-
/**
|
|
314
|
-
* SHA256 hash function for consistency with CLI
|
|
315
|
-
* Returns first 8 characters of SHA256 hex digest
|
|
316
|
-
*/
|
|
317
|
-
async sha256Hash(str) {
|
|
318
|
-
if (typeof crypto !== "undefined" && crypto.subtle) {
|
|
319
|
-
const encoder = new TextEncoder();
|
|
320
|
-
const data = encoder.encode(str);
|
|
321
|
-
const hashBuffer = await crypto.subtle.digest("SHA-256", data);
|
|
322
|
-
const hashArray = Array.from(new Uint8Array(hashBuffer));
|
|
323
|
-
const hashHex = hashArray.map((b) => b.toString(16).padStart(2, "0")).join("");
|
|
324
|
-
return hashHex.substring(0, 8);
|
|
325
|
-
}
|
|
326
|
-
console.warn("[MoonUI Pro] Using fallback hash - install crypto polyfill for production");
|
|
327
|
-
return this.fallbackHash(str);
|
|
328
|
-
}
|
|
329
|
-
/**
|
|
330
|
-
* Fallback hash for environments without Web Crypto API
|
|
331
|
-
*/
|
|
332
|
-
fallbackHash(str) {
|
|
333
|
-
let hash = 0;
|
|
334
|
-
for (let i = 0; i < str.length; i++) {
|
|
335
|
-
const char = str.charCodeAt(i);
|
|
336
|
-
hash = (hash << 5) - hash + char;
|
|
337
|
-
hash = hash & hash;
|
|
338
|
-
}
|
|
339
|
-
return Math.abs(hash).toString(16).padStart(8, "0");
|
|
340
|
-
}
|
|
341
|
-
/**
|
|
342
|
-
* Parse the development token from environment
|
|
343
|
-
*/
|
|
344
|
-
parseToken(encodedToken) {
|
|
345
|
-
try {
|
|
346
|
-
const decoded = atob(encodedToken);
|
|
347
|
-
const tokenData = JSON.parse(decoded);
|
|
348
|
-
if (!tokenData.token || !tokenData.deviceId) {
|
|
349
|
-
console.error("[MoonUI Pro] Invalid token format - missing required fields");
|
|
350
|
-
return null;
|
|
351
|
-
}
|
|
352
|
-
return tokenData;
|
|
353
|
-
} catch (error) {
|
|
354
|
-
console.error("[MoonUI Pro] Failed to parse token:", error);
|
|
355
|
-
return null;
|
|
356
|
-
}
|
|
357
|
-
}
|
|
358
|
-
/**
|
|
359
|
-
* Validate token with backend API using strict dual device validation
|
|
360
|
-
*/
|
|
361
|
-
async validateWithAPI(token, tokenDeviceId, browserDeviceId) {
|
|
362
|
-
try {
|
|
363
|
-
const response = await fetch("https://moonui.dev/api/cli/validate-session", {
|
|
364
|
-
method: "POST",
|
|
365
|
-
headers: {
|
|
366
|
-
"Authorization": `Bearer ${token}`,
|
|
367
|
-
"Content-Type": "application/json"
|
|
368
|
-
},
|
|
369
|
-
body: JSON.stringify({
|
|
370
|
-
deviceId: tokenDeviceId,
|
|
371
|
-
// CLI device ID from token
|
|
372
|
-
browserDeviceId,
|
|
373
|
-
// Current browser device ID
|
|
374
|
-
timestamp: Date.now(),
|
|
375
|
-
validationType: "hybrid-strict"
|
|
376
|
-
// New validation type
|
|
377
|
-
})
|
|
378
|
-
});
|
|
379
|
-
if (!response.ok) {
|
|
380
|
-
const error = await response.json().catch(() => ({}));
|
|
381
|
-
console.error("[MoonUI Pro] Session validation failed:", error.message || "Unknown error");
|
|
382
|
-
return false;
|
|
383
|
-
}
|
|
384
|
-
return true;
|
|
385
|
-
} catch (error) {
|
|
386
|
-
console.error("[MoonUI Pro] API validation error:", error);
|
|
387
|
-
return true;
|
|
388
|
-
}
|
|
389
|
-
}
|
|
390
|
-
/**
|
|
391
|
-
* Get CLI token from environment variable
|
|
392
|
-
* This is called by use-subscription.ts ONLY in development mode
|
|
393
|
-
*/
|
|
394
|
-
async getCLIToken() {
|
|
395
|
-
const now = Date.now();
|
|
396
|
-
if (this.cachedToken && now - this.lastCheck < this.CACHE_DURATION) {
|
|
397
|
-
return this.cachedToken.token;
|
|
398
|
-
}
|
|
399
|
-
const encodedToken = process.env.NEXT_PUBLIC_MOONUI_DEV_TOKEN;
|
|
400
|
-
if (!encodedToken) {
|
|
401
|
-
console.log("[MoonUI Pro] No development token found. Run: moonui init --auth");
|
|
402
|
-
return null;
|
|
403
|
-
}
|
|
404
|
-
const tokenData = this.parseToken(encodedToken);
|
|
405
|
-
if (!tokenData) {
|
|
406
|
-
return null;
|
|
407
|
-
}
|
|
408
|
-
const currentDeviceId = await this.getDeviceFingerprint();
|
|
409
|
-
const tokenDeviceId = tokenData.deviceId;
|
|
410
|
-
console.log("[MoonUI Pro] Hybrid device compatibility check:", {
|
|
411
|
-
currentDevice: currentDeviceId.substring(0, 25) + "***",
|
|
412
|
-
tokenDevice: tokenDeviceId.substring(0, 25) + "***"
|
|
413
|
-
});
|
|
414
|
-
if (tokenDeviceId) {
|
|
415
|
-
const compatibility = this.validateDeviceCompatibility(tokenDeviceId, currentDeviceId);
|
|
416
|
-
if (!compatibility.compatible) {
|
|
417
|
-
console.error("[MoonUI Pro] Device compatibility check failed!");
|
|
418
|
-
console.error("[MoonUI Pro] Reason:", compatibility.reason);
|
|
419
|
-
console.error("[MoonUI Pro] This indicates:");
|
|
420
|
-
console.log(" \u2022 Token was created on a different machine or user account");
|
|
421
|
-
console.log(" \u2022 .env.local file may have been copied from another device");
|
|
422
|
-
console.log(" \u2022 Different hostname or user profile detected");
|
|
423
|
-
console.log("[MoonUI Pro] Solutions:");
|
|
424
|
-
console.log(' \u2022 Run "moonui login" on this device to create a new session');
|
|
425
|
-
console.log(" \u2022 Ensure you are using the correct user account");
|
|
426
|
-
console.log(" \u2022 Verify hostname matches the original login device");
|
|
427
|
-
console.log(" \u2022 Contact support for multi-device licensing options");
|
|
428
|
-
return null;
|
|
429
|
-
}
|
|
430
|
-
console.log("[MoonUI Pro] Device compatibility validated successfully");
|
|
431
|
-
}
|
|
432
|
-
const isValid = await this.validateWithAPI(tokenData.token, tokenDeviceId, currentDeviceId);
|
|
433
|
-
if (!isValid) {
|
|
434
|
-
console.error("[MoonUI Pro] Device session validation failed");
|
|
435
|
-
console.log("[MoonUI Pro] This may happen if:");
|
|
436
|
-
console.log(" \u2022 You logged out from CLI (moonui logout)");
|
|
437
|
-
console.log(" \u2022 Device limit exceeded");
|
|
438
|
-
console.log(" \u2022 Session expired");
|
|
439
|
-
console.log(" \u2022 Device was revoked from dashboard");
|
|
440
|
-
console.log(" \u2022 Token was copied from another device (strict security)");
|
|
441
|
-
console.log(" \u2022 Browser fingerprint doesn't match session");
|
|
442
|
-
console.log(' \u2022 Run "moonui login" to create a new session');
|
|
443
|
-
return null;
|
|
444
|
-
}
|
|
445
|
-
this.cachedToken = tokenData;
|
|
446
|
-
this.lastCheck = now;
|
|
447
|
-
console.log("[MoonUI Pro] CLI authentication validated", {
|
|
448
|
-
user: tokenData.user?.email,
|
|
449
|
-
plan: tokenData.user?.plan || "free",
|
|
450
|
-
deviceId: tokenDeviceId || currentDeviceId,
|
|
451
|
-
deviceValidated: true
|
|
452
|
-
});
|
|
453
|
-
return tokenData.token;
|
|
454
|
-
}
|
|
455
|
-
/**
|
|
456
|
-
* Clear cached token
|
|
457
|
-
*/
|
|
458
|
-
clearCache() {
|
|
459
|
-
this.cachedToken = null;
|
|
460
|
-
this.lastCheck = 0;
|
|
461
|
-
}
|
|
462
|
-
/**
|
|
463
|
-
* Get cached auth info (if available)
|
|
464
|
-
*/
|
|
465
|
-
getCachedAuthInfo() {
|
|
466
|
-
return this.cachedToken;
|
|
467
|
-
}
|
|
468
|
-
};
|
|
469
|
-
cliTokenReader = CLITokenReader.getInstance();
|
|
470
|
-
}
|
|
471
|
-
});
|
|
472
|
-
|
|
473
|
-
// src/hooks/use-subscription.ts
|
|
474
|
-
var use_subscription_exports = {};
|
|
475
|
-
__export(use_subscription_exports, {
|
|
476
|
-
clearCache: () => clearCache,
|
|
477
|
-
forceRefresh: () => forceRefresh,
|
|
478
|
-
useSubscription: () => useSubscription
|
|
479
|
-
});
|
|
480
|
-
function getCacheDuration() {
|
|
481
|
-
if (typeof window !== "undefined") {
|
|
482
|
-
const isDev2 = window.location.hostname === "localhost" || window.location.hostname === "127.0.0.1" || window.location.hostname.includes(".local");
|
|
483
|
-
return isDev2 ? 5 * 60 * 1e3 : 2 * 60 * 60 * 1e3;
|
|
484
|
-
}
|
|
485
|
-
return 2 * 60 * 60 * 1e3;
|
|
486
|
-
}
|
|
487
|
-
function getOfflineGracePeriod() {
|
|
488
|
-
if (typeof window !== "undefined") {
|
|
489
|
-
const isDev2 = window.location.hostname === "localhost" || window.location.hostname === "127.0.0.1" || window.location.hostname.includes(".local");
|
|
490
|
-
return isDev2 ? 10 * 60 * 1e3 : 4 * 60 * 60 * 1e3;
|
|
491
|
-
}
|
|
492
|
-
return 4 * 60 * 60 * 1e3;
|
|
493
|
-
}
|
|
494
|
-
function notifySubscribers() {
|
|
495
|
-
subscribers.forEach((callback) => callback());
|
|
496
|
-
}
|
|
497
|
-
function updateGlobalState(newState) {
|
|
498
|
-
globalAuthState = { ...globalAuthState, ...newState };
|
|
499
|
-
notifySubscribers();
|
|
500
|
-
}
|
|
501
|
-
async function getAuthToken() {
|
|
502
|
-
const isDevelopment = typeof window !== "undefined" && (window.location.hostname === "localhost" || window.location.hostname === "127.0.0.1" || window.location.hostname.includes(".local") || window.location.port === "3000" || window.location.port === "3001");
|
|
503
|
-
const isProduction = !isDevelopment;
|
|
504
|
-
console.log("[MoonUI Pro Auth] Getting auth token...", {
|
|
505
|
-
isDevelopment,
|
|
506
|
-
isProduction,
|
|
507
|
-
hostname: typeof window !== "undefined" ? window.location.hostname : "N/A",
|
|
508
|
-
port: typeof window !== "undefined" ? window.location.port : "N/A"
|
|
509
|
-
});
|
|
510
|
-
if (isDevelopment) {
|
|
511
|
-
console.log("[MoonUI Pro Auth] Development mode - checking CLI authentication...");
|
|
512
|
-
if (typeof window !== "undefined") {
|
|
513
|
-
const cliCached = localStorage.getItem(CLI_AUTH_CACHE_KEY);
|
|
514
|
-
if (cliCached) {
|
|
515
|
-
try {
|
|
516
|
-
const cliCache = JSON.parse(cliCached);
|
|
517
|
-
const now = Date.now();
|
|
518
|
-
if (now - cliCache.timestamp < CLI_AUTH_CACHE_DURATION) {
|
|
519
|
-
console.log("[MoonUI Pro Auth] Using cached CLI auth, plan:", cliCache.plan);
|
|
520
|
-
if (cliCache.valid && (cliCache.plan === "lifetime" || cliCache.plan === "pro_lifetime")) {
|
|
521
|
-
return "cli-authenticated-pro";
|
|
522
|
-
}
|
|
523
|
-
} else {
|
|
524
|
-
console.log("[MoonUI Pro Auth] CLI cache expired, will revalidate");
|
|
525
|
-
}
|
|
526
|
-
} catch (e) {
|
|
527
|
-
console.error("[MoonUI Pro Auth] Error parsing CLI auth cache:", e);
|
|
528
|
-
localStorage.removeItem(CLI_AUTH_CACHE_KEY);
|
|
529
|
-
}
|
|
530
|
-
}
|
|
531
|
-
}
|
|
532
|
-
const cliToken = await cliTokenReader.getCLIToken();
|
|
533
|
-
if (cliToken) {
|
|
534
|
-
console.log("[MoonUI Pro Auth] Using validated CLI token");
|
|
535
|
-
return cliToken;
|
|
536
|
-
}
|
|
537
|
-
console.log("[MoonUI Pro Auth] No valid CLI token available");
|
|
538
|
-
console.log("[MoonUI Pro Auth] This could happen if:");
|
|
539
|
-
console.log(' \u2022 CLI authentication not setup: run "moonui init --auth"');
|
|
540
|
-
console.log(" \u2022 Token expired or session revoked");
|
|
541
|
-
console.log(" \u2022 Device fingerprint mismatch");
|
|
542
|
-
console.log(' \u2022 Login required: run "moonui login"');
|
|
543
|
-
return null;
|
|
544
|
-
}
|
|
545
|
-
if (isProduction) {
|
|
546
|
-
const publicToken = process.env.NEXT_PUBLIC_MOONUI_AUTH_TOKEN || process.env.NEXT_PUBLIC_MOONUI_LICENSE_KEY;
|
|
547
|
-
if (publicToken && publicToken.trim() !== "") {
|
|
548
|
-
console.log("[MoonUI Pro Auth] Found public token in environment");
|
|
549
|
-
return publicToken;
|
|
550
|
-
}
|
|
551
|
-
if (typeof window !== "undefined") {
|
|
552
|
-
const browserToken = localStorage.getItem("moonui_auth_token");
|
|
553
|
-
if (browserToken) {
|
|
554
|
-
console.log("[MoonUI Pro Auth] Found token in localStorage");
|
|
555
|
-
return browserToken;
|
|
556
|
-
}
|
|
557
|
-
}
|
|
558
|
-
console.log("[MoonUI Pro Auth] No token found in production");
|
|
559
|
-
return null;
|
|
560
|
-
}
|
|
561
|
-
return null;
|
|
562
|
-
}
|
|
563
|
-
async function validateLicense() {
|
|
564
|
-
if (typeof window !== "undefined") {
|
|
565
|
-
const hostname = window.location.hostname;
|
|
566
|
-
if (hostname.includes("moonui.dev")) {
|
|
567
|
-
console.log("[MoonUI Pro Auth] Running on moonui.dev domain - auto-granting Pro access");
|
|
568
|
-
updateGlobalState({
|
|
569
|
-
hasProAccess: true,
|
|
570
|
-
isAuthenticated: true,
|
|
571
|
-
subscriptionPlan: "lifetime",
|
|
572
|
-
subscription: {
|
|
573
|
-
status: "active",
|
|
574
|
-
plan: "lifetime"
|
|
575
|
-
},
|
|
576
|
-
isLoading: false,
|
|
577
|
-
isAdmin: true
|
|
578
|
-
// Grant admin access on our own domain
|
|
579
|
-
});
|
|
580
|
-
return;
|
|
581
|
-
}
|
|
582
|
-
}
|
|
583
|
-
const token = await getAuthToken();
|
|
584
|
-
console.log("[MoonUI Pro Auth] Validating license:", {
|
|
585
|
-
hasToken: !!token,
|
|
586
|
-
tokenLength: token ? token.length : 0,
|
|
587
|
-
tokenPreview: token ? `${token.substring(0, 10)}...` : "null"
|
|
588
|
-
});
|
|
589
|
-
if (!token) {
|
|
590
|
-
console.log("[MoonUI Pro Auth] No token found, clearing cache");
|
|
591
|
-
if (typeof window !== "undefined") {
|
|
592
|
-
localStorage.removeItem(CACHE_KEY);
|
|
593
|
-
}
|
|
594
|
-
updateGlobalState({
|
|
595
|
-
hasProAccess: false,
|
|
596
|
-
isAuthenticated: false,
|
|
597
|
-
isLoading: false
|
|
598
|
-
});
|
|
599
|
-
return;
|
|
600
|
-
}
|
|
601
|
-
if (token === "cli-authenticated-pro") {
|
|
602
|
-
console.log("[MoonUI Pro Auth] Using cached CLI authentication");
|
|
603
|
-
const cacheData = {
|
|
604
|
-
valid: true,
|
|
605
|
-
hasLifetimeAccess: true,
|
|
606
|
-
timestamp: Date.now(),
|
|
607
|
-
deviceId: cliTokenReader.getCachedAuthInfo()?.deviceId,
|
|
608
|
-
sessionId: `cli_session_${Date.now()}`
|
|
609
|
-
};
|
|
610
|
-
if (typeof window !== "undefined") {
|
|
611
|
-
localStorage.setItem(CACHE_KEY, JSON.stringify(cacheData));
|
|
612
|
-
console.log("[MoonUI Pro Auth] CLI auth saved to license cache");
|
|
613
|
-
}
|
|
614
|
-
updateGlobalState({
|
|
615
|
-
hasProAccess: true,
|
|
616
|
-
isAuthenticated: true,
|
|
617
|
-
subscriptionPlan: "lifetime",
|
|
618
|
-
subscription: {
|
|
619
|
-
status: "active",
|
|
620
|
-
plan: "lifetime"
|
|
621
|
-
},
|
|
622
|
-
isLoading: false
|
|
623
|
-
});
|
|
624
|
-
return;
|
|
625
|
-
}
|
|
626
|
-
try {
|
|
627
|
-
console.log("[MoonUI Pro Auth] Calling validate API...");
|
|
628
|
-
const response = await fetch("https://www.moonui.dev/api/auth/validate", {
|
|
629
|
-
headers: {
|
|
630
|
-
"Authorization": `Bearer ${token}`
|
|
631
|
-
}
|
|
632
|
-
});
|
|
633
|
-
if (response.ok) {
|
|
634
|
-
const data = await response.json();
|
|
635
|
-
console.log("[MoonUI Pro Auth] API Response:", {
|
|
636
|
-
valid: data.valid,
|
|
637
|
-
hasLifetimeAccess: data.user?.hasLifetimeAccess,
|
|
638
|
-
features: data.user?.features,
|
|
639
|
-
plan: data.user?.plan
|
|
640
|
-
});
|
|
641
|
-
const cacheData = {
|
|
642
|
-
valid: data.valid,
|
|
643
|
-
hasLifetimeAccess: data.user?.hasLifetimeAccess || false,
|
|
644
|
-
timestamp: Date.now(),
|
|
645
|
-
cacheUntil: data.cacheUntil ? new Date(data.cacheUntil).getTime() : void 0,
|
|
646
|
-
deviceId: cliTokenReader.getCachedAuthInfo()?.deviceId,
|
|
647
|
-
// Store device ID in cache
|
|
648
|
-
sessionId: data.sessionId || `session_${Date.now()}`
|
|
649
|
-
};
|
|
650
|
-
if (typeof window !== "undefined") {
|
|
651
|
-
localStorage.setItem(CACHE_KEY, JSON.stringify(cacheData));
|
|
652
|
-
}
|
|
653
|
-
const hasProAccess = data.valid && (data.user?.hasLifetimeAccess || data.user?.features?.includes("pro_components"));
|
|
654
|
-
console.log("[MoonUI Pro Auth] Access result:", {
|
|
655
|
-
hasProAccess,
|
|
656
|
-
isAuthenticated: data.valid
|
|
657
|
-
});
|
|
658
|
-
updateGlobalState({
|
|
659
|
-
hasProAccess,
|
|
660
|
-
isAuthenticated: data.valid,
|
|
661
|
-
subscriptionPlan: hasProAccess ? "lifetime" : "free",
|
|
662
|
-
subscription: {
|
|
663
|
-
status: hasProAccess ? "active" : "inactive",
|
|
664
|
-
plan: hasProAccess ? "lifetime" : "free"
|
|
665
|
-
},
|
|
666
|
-
isLoading: false
|
|
667
|
-
});
|
|
668
|
-
} else {
|
|
669
|
-
console.log("[MoonUI Pro Auth] Invalid response:", response.status);
|
|
670
|
-
if (typeof window !== "undefined") {
|
|
671
|
-
localStorage.removeItem(CACHE_KEY);
|
|
672
|
-
}
|
|
673
|
-
updateGlobalState({
|
|
674
|
-
hasProAccess: false,
|
|
675
|
-
isAuthenticated: false,
|
|
676
|
-
isLoading: false
|
|
677
|
-
});
|
|
678
|
-
}
|
|
679
|
-
} catch (error) {
|
|
680
|
-
const isDev2 = typeof window !== "undefined" && (window.location.hostname === "localhost" || window.location.hostname === "127.0.0.1" || window.location.hostname.includes(".local"));
|
|
681
|
-
if (isDev2 && typeof window !== "undefined") {
|
|
682
|
-
const cached = localStorage.getItem(CACHE_KEY);
|
|
683
|
-
if (cached) {
|
|
684
|
-
const cacheData = JSON.parse(cached);
|
|
685
|
-
const now = Date.now();
|
|
686
|
-
if (now - cacheData.timestamp < getOfflineGracePeriod()) {
|
|
687
|
-
updateGlobalState({
|
|
688
|
-
hasProAccess: cacheData.valid && cacheData.hasLifetimeAccess,
|
|
689
|
-
isAuthenticated: cacheData.valid,
|
|
690
|
-
subscriptionPlan: cacheData.valid && cacheData.hasLifetimeAccess ? "lifetime" : "free",
|
|
691
|
-
subscription: {
|
|
692
|
-
status: cacheData.valid && cacheData.hasLifetimeAccess ? "active" : "inactive",
|
|
693
|
-
plan: cacheData.valid && cacheData.hasLifetimeAccess ? "lifetime" : "free"
|
|
694
|
-
},
|
|
695
|
-
isLoading: false
|
|
696
|
-
});
|
|
697
|
-
return;
|
|
698
|
-
}
|
|
699
|
-
}
|
|
700
|
-
}
|
|
701
|
-
console.log("[MoonUI Pro Auth] No immediate cache, starting validation...");
|
|
702
|
-
}
|
|
703
|
-
}
|
|
704
|
-
async function initializeAuth() {
|
|
705
|
-
if (isInitialized)
|
|
706
|
-
return;
|
|
707
|
-
isInitialized = true;
|
|
708
|
-
try {
|
|
709
|
-
if (typeof window !== "undefined") {
|
|
710
|
-
const cached = localStorage.getItem(CACHE_KEY);
|
|
711
|
-
if (cached) {
|
|
712
|
-
try {
|
|
713
|
-
const cacheData = JSON.parse(cached);
|
|
714
|
-
const now = Date.now();
|
|
715
|
-
if (now - cacheData.timestamp < getCacheDuration()) {
|
|
716
|
-
console.log("[MoonUI Pro Auth] Using cached license data");
|
|
717
|
-
updateGlobalState({
|
|
718
|
-
hasProAccess: cacheData.valid && cacheData.hasLifetimeAccess,
|
|
719
|
-
isAuthenticated: cacheData.valid,
|
|
720
|
-
subscriptionPlan: cacheData.valid && cacheData.hasLifetimeAccess ? "lifetime" : "free",
|
|
721
|
-
subscription: {
|
|
722
|
-
status: cacheData.valid && cacheData.hasLifetimeAccess ? "active" : "inactive",
|
|
723
|
-
plan: cacheData.valid && cacheData.hasLifetimeAccess ? "lifetime" : "free"
|
|
724
|
-
},
|
|
725
|
-
isLoading: false
|
|
726
|
-
});
|
|
727
|
-
if (now - cacheData.timestamp > getCacheDuration() / 2) {
|
|
728
|
-
validateLicense().catch(console.error);
|
|
729
|
-
}
|
|
730
|
-
return;
|
|
731
|
-
}
|
|
732
|
-
} catch (e) {
|
|
733
|
-
console.error("[MoonUI Pro Auth] Error parsing cache:", e);
|
|
734
|
-
localStorage.removeItem(CACHE_KEY);
|
|
735
|
-
}
|
|
736
|
-
}
|
|
737
|
-
const isDev2 = window.location.hostname === "localhost" || window.location.hostname === "127.0.0.1" || window.location.hostname.includes(".local");
|
|
738
|
-
if (isDev2) {
|
|
739
|
-
const cliCached = localStorage.getItem(CLI_AUTH_CACHE_KEY);
|
|
740
|
-
if (cliCached) {
|
|
741
|
-
try {
|
|
742
|
-
const cliCache = JSON.parse(cliCached);
|
|
743
|
-
const now = Date.now();
|
|
744
|
-
if (now - cliCache.timestamp < CLI_AUTH_CACHE_DURATION) {
|
|
745
|
-
console.log("[MoonUI Pro Auth] Using cached CLI auth from init, plan:", cliCache.plan);
|
|
746
|
-
if (cliCache.valid && (cliCache.plan === "lifetime" || cliCache.plan === "pro_lifetime")) {
|
|
747
|
-
const mainCacheData = {
|
|
748
|
-
valid: true,
|
|
749
|
-
hasLifetimeAccess: true,
|
|
750
|
-
timestamp: Date.now(),
|
|
751
|
-
deviceId: cliTokenReader.getCachedAuthInfo()?.deviceId,
|
|
752
|
-
sessionId: `cli_session_${Date.now()}`
|
|
753
|
-
};
|
|
754
|
-
localStorage.setItem(CACHE_KEY, JSON.stringify(mainCacheData));
|
|
755
|
-
console.log("[MoonUI Pro Auth] CLI auth saved to main cache");
|
|
756
|
-
updateGlobalState({
|
|
757
|
-
hasProAccess: true,
|
|
758
|
-
isAuthenticated: true,
|
|
759
|
-
subscriptionPlan: "lifetime",
|
|
760
|
-
subscription: {
|
|
761
|
-
status: "active",
|
|
762
|
-
plan: "lifetime"
|
|
763
|
-
},
|
|
764
|
-
isLoading: false
|
|
765
|
-
});
|
|
766
|
-
return;
|
|
767
|
-
}
|
|
768
|
-
}
|
|
769
|
-
} catch (e) {
|
|
770
|
-
console.error("[MoonUI Pro Auth] Error parsing CLI auth cache:", e);
|
|
771
|
-
localStorage.removeItem(CLI_AUTH_CACHE_KEY);
|
|
772
|
-
}
|
|
773
|
-
}
|
|
774
|
-
}
|
|
775
|
-
}
|
|
776
|
-
await validateLicense();
|
|
777
|
-
} catch (error) {
|
|
778
|
-
console.error("[MoonUI Pro Auth] Error during initialization:", error);
|
|
779
|
-
updateGlobalState({
|
|
780
|
-
hasProAccess: false,
|
|
781
|
-
isAuthenticated: false,
|
|
782
|
-
isLoading: false
|
|
783
|
-
});
|
|
784
|
-
}
|
|
785
|
-
}
|
|
786
|
-
async function forceRefresh() {
|
|
787
|
-
if (typeof window !== "undefined") {
|
|
788
|
-
localStorage.removeItem(CACHE_KEY);
|
|
789
|
-
console.log("[MoonUI Pro] Cache cleared, forcing refresh...");
|
|
790
|
-
}
|
|
791
|
-
isInitialized = false;
|
|
792
|
-
updateGlobalState({
|
|
793
|
-
isLoading: true,
|
|
794
|
-
hasProAccess: false,
|
|
795
|
-
isAuthenticated: false
|
|
796
|
-
});
|
|
797
|
-
await initializeAuth();
|
|
798
|
-
}
|
|
799
|
-
function clearCache() {
|
|
800
|
-
if (typeof window !== "undefined") {
|
|
801
|
-
localStorage.removeItem(CACHE_KEY);
|
|
802
|
-
localStorage.removeItem("moonui_auth_token");
|
|
803
|
-
console.log("[MoonUI Pro] Auth cache cleared");
|
|
804
|
-
}
|
|
805
|
-
cliTokenReader.clearCache();
|
|
806
|
-
}
|
|
807
|
-
function useSubscription() {
|
|
808
|
-
const [, forceUpdate] = useState({});
|
|
809
|
-
useEffect(() => {
|
|
810
|
-
initializeAuth();
|
|
811
|
-
const callback = () => forceUpdate({});
|
|
812
|
-
subscribers.push(callback);
|
|
813
|
-
const handleFocus = async () => {
|
|
814
|
-
if (typeof window !== "undefined") {
|
|
815
|
-
const cached = localStorage.getItem(CACHE_KEY);
|
|
816
|
-
if (cached) {
|
|
817
|
-
const cacheData = JSON.parse(cached);
|
|
818
|
-
const now = Date.now();
|
|
819
|
-
if (now - cacheData.timestamp > getCacheDuration()) {
|
|
820
|
-
console.log("[MoonUI Pro] Cache expired on focus, revalidating...");
|
|
821
|
-
await validateLicense();
|
|
822
|
-
}
|
|
823
|
-
} else {
|
|
824
|
-
console.log("[MoonUI Pro] No cache on focus, validating...");
|
|
825
|
-
await validateLicense();
|
|
826
|
-
}
|
|
827
|
-
}
|
|
828
|
-
};
|
|
829
|
-
const handleStorageChange = async (e) => {
|
|
830
|
-
if (e.key === "moonui_auth_token" || e.key === CACHE_KEY) {
|
|
831
|
-
console.log("[MoonUI Pro] Auth storage changed, revalidating...");
|
|
832
|
-
if (!e.newValue) {
|
|
833
|
-
updateGlobalState({
|
|
834
|
-
hasProAccess: false,
|
|
835
|
-
isAuthenticated: false,
|
|
836
|
-
isLoading: false
|
|
837
|
-
});
|
|
838
|
-
} else {
|
|
839
|
-
await forceRefresh();
|
|
840
|
-
}
|
|
841
|
-
}
|
|
842
|
-
};
|
|
843
|
-
window.addEventListener("focus", handleFocus);
|
|
844
|
-
window.addEventListener("storage", handleStorageChange);
|
|
845
|
-
return () => {
|
|
846
|
-
const index2 = subscribers.indexOf(callback);
|
|
847
|
-
if (index2 > -1) {
|
|
848
|
-
subscribers.splice(index2, 1);
|
|
849
|
-
}
|
|
850
|
-
window.removeEventListener("focus", handleFocus);
|
|
851
|
-
window.removeEventListener("storage", handleStorageChange);
|
|
852
|
-
};
|
|
853
|
-
}, []);
|
|
854
|
-
return {
|
|
855
|
-
...globalAuthState,
|
|
856
|
-
checkAccess: validateLicense,
|
|
857
|
-
forceRefresh,
|
|
858
|
-
clearCache
|
|
859
|
-
};
|
|
860
|
-
}
|
|
861
|
-
var globalAuthState, isInitialized, subscribers, CACHE_KEY, CLI_AUTH_CACHE_KEY, CLI_AUTH_CACHE_DURATION;
|
|
862
|
-
var init_use_subscription = __esm({
|
|
863
|
-
"src/hooks/use-subscription.ts"() {
|
|
864
|
-
init_cli_token_reader();
|
|
865
|
-
globalAuthState = {
|
|
866
|
-
isLoading: true,
|
|
867
|
-
// Keep loading true to prevent component lock initially
|
|
868
|
-
hasProAccess: false,
|
|
869
|
-
// Will be updated after validation
|
|
870
|
-
isAuthenticated: false,
|
|
871
|
-
subscriptionPlan: "free",
|
|
872
|
-
subscription: {
|
|
873
|
-
status: "inactive",
|
|
874
|
-
plan: "free"
|
|
875
|
-
},
|
|
876
|
-
isAdmin: false
|
|
877
|
-
};
|
|
878
|
-
isInitialized = false;
|
|
879
|
-
subscribers = [];
|
|
880
|
-
CACHE_KEY = "moonui_license_cache";
|
|
881
|
-
CLI_AUTH_CACHE_KEY = "moonui_cli_auth_cache";
|
|
882
|
-
CLI_AUTH_CACHE_DURATION = 60 * 60 * 1e3;
|
|
883
|
-
}
|
|
884
|
-
});
|
|
885
|
-
|
|
886
73
|
// ../../node_modules/fast-deep-equal/es6/react.js
|
|
887
74
|
var require_react = __commonJS({
|
|
888
75
|
"../../node_modules/fast-deep-equal/es6/react.js"(exports, module) {
|
|
@@ -2865,8 +2052,218 @@ function createAIProvider(provider, config) {
|
|
|
2865
2052
|
}
|
|
2866
2053
|
}
|
|
2867
2054
|
|
|
2868
|
-
// src/
|
|
2869
|
-
|
|
2055
|
+
// src/lib/auth-config.ts
|
|
2056
|
+
var IS_PRODUCTION = false;
|
|
2057
|
+
var AUTH_CONFIG = {
|
|
2058
|
+
// Internal API endpoint (never external)
|
|
2059
|
+
// Developers will implement this endpoint in their own project
|
|
2060
|
+
internalEndpoint: "/api/moonui/validate-pro",
|
|
2061
|
+
// Cache configuration
|
|
2062
|
+
cache: {
|
|
2063
|
+
// Server-side cache duration
|
|
2064
|
+
serverCacheDuration: 60 * 60 * 1e3,
|
|
2065
|
+
// 1 hour in development
|
|
2066
|
+
// Cookie expiry
|
|
2067
|
+
cookieMaxAge: 24 * 60 * 60,
|
|
2068
|
+
// 1 day in development (seconds)
|
|
2069
|
+
// Validation refresh threshold (when to refresh in background)
|
|
2070
|
+
refreshThreshold: 0.5
|
|
2071
|
+
// Refresh when 50% of cache time passed
|
|
2072
|
+
},
|
|
2073
|
+
// Security configuration
|
|
2074
|
+
security: {
|
|
2075
|
+
// Device fingerprint validation
|
|
2076
|
+
enforceDeviceFingerprint: true,
|
|
2077
|
+
// Maximum devices per license
|
|
2078
|
+
maxDevicesPerLicense: 5,
|
|
2079
|
+
// Session timeout
|
|
2080
|
+
sessionTimeout: 7 * 24 * 60 * 60 * 1e3,
|
|
2081
|
+
// 7 days
|
|
2082
|
+
// Cookie settings
|
|
2083
|
+
cookieOptions: {
|
|
2084
|
+
httpOnly: true,
|
|
2085
|
+
secure: IS_PRODUCTION,
|
|
2086
|
+
sameSite: "lax",
|
|
2087
|
+
path: "/"
|
|
2088
|
+
}
|
|
2089
|
+
},
|
|
2090
|
+
// API configuration for server-to-server calls
|
|
2091
|
+
api: {
|
|
2092
|
+
// MoonUI validation server (only called from server-side)
|
|
2093
|
+
moonuiValidationEndpoint: "https://api.moonui.dev/v1/license/validate",
|
|
2094
|
+
// Timeout for server-to-server calls
|
|
2095
|
+
timeout: 1e4,
|
|
2096
|
+
// 10 seconds
|
|
2097
|
+
// Retry configuration
|
|
2098
|
+
retry: {
|
|
2099
|
+
attempts: 1,
|
|
2100
|
+
delay: 1e3
|
|
2101
|
+
// 1 second between retries
|
|
2102
|
+
}
|
|
2103
|
+
},
|
|
2104
|
+
// Cookie names
|
|
2105
|
+
cookies: {
|
|
2106
|
+
validation: "moonui_pro_validation",
|
|
2107
|
+
session: "moonui_pro_session",
|
|
2108
|
+
device: "moonui_pro_device"
|
|
2109
|
+
},
|
|
2110
|
+
// Header names for server communication
|
|
2111
|
+
headers: {
|
|
2112
|
+
validation: "x-moonui-pro-validation",
|
|
2113
|
+
device: "x-moonui-device-id",
|
|
2114
|
+
session: "x-moonui-session-id"
|
|
2115
|
+
}
|
|
2116
|
+
};
|
|
2117
|
+
|
|
2118
|
+
// src/hooks/use-subscription-v2.ts
|
|
2119
|
+
var INITIAL_STATE = {
|
|
2120
|
+
isLoading: true,
|
|
2121
|
+
hasProAccess: false,
|
|
2122
|
+
isAuthenticated: false,
|
|
2123
|
+
subscriptionPlan: "free",
|
|
2124
|
+
subscription: {
|
|
2125
|
+
status: "inactive",
|
|
2126
|
+
plan: "free"
|
|
2127
|
+
},
|
|
2128
|
+
isAdmin: false
|
|
2129
|
+
};
|
|
2130
|
+
function useSubscription() {
|
|
2131
|
+
const [state, setState] = useState(INITIAL_STATE);
|
|
2132
|
+
const readValidationFromCookie = useCallback(() => {
|
|
2133
|
+
if (typeof document === "undefined")
|
|
2134
|
+
return null;
|
|
2135
|
+
const cookies = document.cookie.split(";");
|
|
2136
|
+
const validationCookie = cookies.find(
|
|
2137
|
+
(c2) => c2.trim().startsWith(`${AUTH_CONFIG.cookies.validation}=`)
|
|
2138
|
+
);
|
|
2139
|
+
if (!validationCookie)
|
|
2140
|
+
return null;
|
|
2141
|
+
try {
|
|
2142
|
+
const statusCookie = cookies.find(
|
|
2143
|
+
(c2) => c2.trim().startsWith("moonui_pro_status=")
|
|
2144
|
+
);
|
|
2145
|
+
if (statusCookie) {
|
|
2146
|
+
const value = statusCookie.split("=")[1];
|
|
2147
|
+
const decoded = decodeURIComponent(value);
|
|
2148
|
+
return JSON.parse(decoded);
|
|
2149
|
+
}
|
|
2150
|
+
} catch (error) {
|
|
2151
|
+
console.error("[Client Auth] Error reading cookie:", error);
|
|
2152
|
+
}
|
|
2153
|
+
return null;
|
|
2154
|
+
}, []);
|
|
2155
|
+
const validateWithInternalAPI = useCallback(async () => {
|
|
2156
|
+
try {
|
|
2157
|
+
console.log("[Client Auth] Validating with internal API...");
|
|
2158
|
+
const response = await fetch(AUTH_CONFIG.internalEndpoint, {
|
|
2159
|
+
method: "GET",
|
|
2160
|
+
credentials: "include",
|
|
2161
|
+
// Include cookies
|
|
2162
|
+
headers: {
|
|
2163
|
+
"Content-Type": "application/json"
|
|
2164
|
+
}
|
|
2165
|
+
});
|
|
2166
|
+
if (!response.ok) {
|
|
2167
|
+
console.error("[Client Auth] Internal API validation failed:", response.status);
|
|
2168
|
+
setState({
|
|
2169
|
+
...INITIAL_STATE,
|
|
2170
|
+
isLoading: false
|
|
2171
|
+
});
|
|
2172
|
+
return;
|
|
2173
|
+
}
|
|
2174
|
+
const data = await response.json();
|
|
2175
|
+
setState({
|
|
2176
|
+
isLoading: false,
|
|
2177
|
+
hasProAccess: data.hasProAccess,
|
|
2178
|
+
isAuthenticated: data.valid,
|
|
2179
|
+
subscriptionPlan: data.hasProAccess ? "lifetime" : "free",
|
|
2180
|
+
subscription: {
|
|
2181
|
+
status: data.hasProAccess ? "active" : "inactive",
|
|
2182
|
+
plan: data.hasProAccess ? "lifetime" : "free"
|
|
2183
|
+
},
|
|
2184
|
+
isAdmin: false
|
|
2185
|
+
});
|
|
2186
|
+
console.log("[Client Auth] Validation complete:", {
|
|
2187
|
+
hasProAccess: data.hasProAccess,
|
|
2188
|
+
cached: data.cached
|
|
2189
|
+
});
|
|
2190
|
+
} catch (error) {
|
|
2191
|
+
console.error("[Client Auth] Validation error:", error);
|
|
2192
|
+
setState({
|
|
2193
|
+
...INITIAL_STATE,
|
|
2194
|
+
isLoading: false
|
|
2195
|
+
});
|
|
2196
|
+
}
|
|
2197
|
+
}, []);
|
|
2198
|
+
useEffect(() => {
|
|
2199
|
+
const cached = readValidationFromCookie();
|
|
2200
|
+
if (cached && cached.valid) {
|
|
2201
|
+
const age = Date.now() - cached.timestamp;
|
|
2202
|
+
const maxAge = AUTH_CONFIG.cache.serverCacheDuration;
|
|
2203
|
+
if (age < maxAge) {
|
|
2204
|
+
console.log("[Client Auth] Using cached validation");
|
|
2205
|
+
setState({
|
|
2206
|
+
isLoading: false,
|
|
2207
|
+
hasProAccess: cached.hasProAccess,
|
|
2208
|
+
isAuthenticated: cached.valid,
|
|
2209
|
+
subscriptionPlan: cached.hasProAccess ? "lifetime" : "free",
|
|
2210
|
+
subscription: {
|
|
2211
|
+
status: cached.hasProAccess ? "active" : "inactive",
|
|
2212
|
+
plan: cached.hasProAccess ? "lifetime" : "free"
|
|
2213
|
+
},
|
|
2214
|
+
isAdmin: false
|
|
2215
|
+
});
|
|
2216
|
+
if (age > maxAge * AUTH_CONFIG.cache.refreshThreshold) {
|
|
2217
|
+
console.log("[Client Auth] Refreshing validation in background...");
|
|
2218
|
+
validateWithInternalAPI();
|
|
2219
|
+
}
|
|
2220
|
+
return;
|
|
2221
|
+
}
|
|
2222
|
+
}
|
|
2223
|
+
validateWithInternalAPI();
|
|
2224
|
+
}, [readValidationFromCookie, validateWithInternalAPI]);
|
|
2225
|
+
useEffect(() => {
|
|
2226
|
+
const handleStorageChange = (e) => {
|
|
2227
|
+
if (e.key === "moonui_pro_refresh") {
|
|
2228
|
+
console.log("[Client Auth] Refresh signal from another tab");
|
|
2229
|
+
validateWithInternalAPI();
|
|
2230
|
+
}
|
|
2231
|
+
};
|
|
2232
|
+
window.addEventListener("storage", handleStorageChange);
|
|
2233
|
+
return () => window.removeEventListener("storage", handleStorageChange);
|
|
2234
|
+
}, [validateWithInternalAPI]);
|
|
2235
|
+
useEffect(() => {
|
|
2236
|
+
let lastCheck = Date.now();
|
|
2237
|
+
const handleFocus = () => {
|
|
2238
|
+
const now = Date.now();
|
|
2239
|
+
const timeSinceLastCheck = now - lastCheck;
|
|
2240
|
+
if (timeSinceLastCheck > 5 * 60 * 1e3) {
|
|
2241
|
+
console.log("[Client Auth] Window focused, checking validation...");
|
|
2242
|
+
lastCheck = now;
|
|
2243
|
+
validateWithInternalAPI();
|
|
2244
|
+
}
|
|
2245
|
+
};
|
|
2246
|
+
window.addEventListener("focus", handleFocus);
|
|
2247
|
+
return () => window.removeEventListener("focus", handleFocus);
|
|
2248
|
+
}, [validateWithInternalAPI]);
|
|
2249
|
+
return state;
|
|
2250
|
+
}
|
|
2251
|
+
function forceRefresh() {
|
|
2252
|
+
if (typeof window !== "undefined") {
|
|
2253
|
+
localStorage.setItem("moonui_pro_refresh", Date.now().toString());
|
|
2254
|
+
window.location.reload();
|
|
2255
|
+
}
|
|
2256
|
+
}
|
|
2257
|
+
function clearAuth() {
|
|
2258
|
+
if (typeof window !== "undefined") {
|
|
2259
|
+
fetch(AUTH_CONFIG.internalEndpoint, {
|
|
2260
|
+
method: "DELETE",
|
|
2261
|
+
credentials: "include"
|
|
2262
|
+
}).then(() => {
|
|
2263
|
+
window.location.reload();
|
|
2264
|
+
});
|
|
2265
|
+
}
|
|
2266
|
+
}
|
|
2870
2267
|
async function sha256(message) {
|
|
2871
2268
|
const msgBuffer = new TextEncoder().encode(message);
|
|
2872
2269
|
const hashBuffer = await crypto.subtle.digest("SHA-256", msgBuffer);
|
|
@@ -2925,10 +2322,10 @@ async function generateStableBrowserFingerprint() {
|
|
|
2925
2322
|
}
|
|
2926
2323
|
return `browser-${components.join("-")}`;
|
|
2927
2324
|
}
|
|
2928
|
-
var
|
|
2929
|
-
var
|
|
2325
|
+
var CACHE_KEY = "moonui_license_cache";
|
|
2326
|
+
var CLI_AUTH_CACHE_KEY = "moonui_cli_auth_cache";
|
|
2930
2327
|
var CACHE_DURATION = !process.env.VERCEL ? 1 * 60 * 1e3 : 24 * 60 * 60 * 1e3;
|
|
2931
|
-
var
|
|
2328
|
+
var CLI_AUTH_CACHE_DURATION = 60 * 60 * 1e3;
|
|
2932
2329
|
var OFFLINE_GRACE_PERIOD = !process.env.VERCEL ? 5 * 60 * 1e3 : 7 * 24 * 60 * 60 * 1e3;
|
|
2933
2330
|
var SubscriptionContext = createContext(void 0);
|
|
2934
2331
|
function SubscriptionProvider({ children }) {
|
|
@@ -2936,7 +2333,7 @@ function SubscriptionProvider({ children }) {
|
|
|
2936
2333
|
const [hasProAccess, setHasProAccess] = useState(false);
|
|
2937
2334
|
const [isAuthenticated, setIsAuthenticated] = useState(false);
|
|
2938
2335
|
const [lastCheckTime, setLastCheckTime] = useState(0);
|
|
2939
|
-
const
|
|
2336
|
+
const getAuthToken = async () => {
|
|
2940
2337
|
if (process.env.VERCEL) {
|
|
2941
2338
|
return process.env.NEXT_PUBLIC_MOONUI_AUTH_TOKEN || process.env.MOONUI_LICENSE_KEY || null;
|
|
2942
2339
|
}
|
|
@@ -2953,12 +2350,12 @@ function SubscriptionProvider({ children }) {
|
|
|
2953
2350
|
console.log("[MoonUI Pro v2.33.20] DeviceId exists:", !!deviceId);
|
|
2954
2351
|
if (devToken && deviceId) {
|
|
2955
2352
|
console.log("[MoonUI Pro v2.33.20] CLI tokens found, proceeding with authentication...");
|
|
2956
|
-
const cachedAuth = localStorage.getItem(
|
|
2353
|
+
const cachedAuth = localStorage.getItem(CLI_AUTH_CACHE_KEY);
|
|
2957
2354
|
if (cachedAuth) {
|
|
2958
2355
|
try {
|
|
2959
2356
|
const cache2 = JSON.parse(cachedAuth);
|
|
2960
2357
|
const now = Date.now();
|
|
2961
|
-
if (now - cache2.timestamp <
|
|
2358
|
+
if (now - cache2.timestamp < CLI_AUTH_CACHE_DURATION) {
|
|
2962
2359
|
console.log("[MoonUI Pro] Using cached CLI auth response");
|
|
2963
2360
|
if (cache2.valid && (cache2.plan === "lifetime" || cache2.plan === "pro_lifetime")) {
|
|
2964
2361
|
return "cli-authenticated-pro";
|
|
@@ -2967,7 +2364,7 @@ function SubscriptionProvider({ children }) {
|
|
|
2967
2364
|
}
|
|
2968
2365
|
} catch (e) {
|
|
2969
2366
|
console.error("[MoonUI Pro] Error parsing CLI auth cache:", e);
|
|
2970
|
-
localStorage.removeItem(
|
|
2367
|
+
localStorage.removeItem(CLI_AUTH_CACHE_KEY);
|
|
2971
2368
|
}
|
|
2972
2369
|
}
|
|
2973
2370
|
try {
|
|
@@ -3004,7 +2401,7 @@ function SubscriptionProvider({ children }) {
|
|
|
3004
2401
|
plan: planValue || "free",
|
|
3005
2402
|
timestamp: Date.now()
|
|
3006
2403
|
};
|
|
3007
|
-
localStorage.setItem(
|
|
2404
|
+
localStorage.setItem(CLI_AUTH_CACHE_KEY, JSON.stringify(cacheData));
|
|
3008
2405
|
console.log("[MoonUI Pro] Cached CLI auth response for 1 hour, plan:", planValue);
|
|
3009
2406
|
if (data.valid && (planValue === "lifetime" || planValue === "pro_lifetime")) {
|
|
3010
2407
|
return "cli-authenticated-pro";
|
|
@@ -3018,7 +2415,7 @@ function SubscriptionProvider({ children }) {
|
|
|
3018
2415
|
const errorObj = JSON.parse(errorData);
|
|
3019
2416
|
if (errorObj.reason === "browser-fingerprint-invalid" || errorObj.reason === "cli-session-missing" || response.status === 401) {
|
|
3020
2417
|
console.error("[MoonUI Pro] Critical auth error");
|
|
3021
|
-
localStorage.removeItem(
|
|
2418
|
+
localStorage.removeItem(CLI_AUTH_CACHE_KEY);
|
|
3022
2419
|
}
|
|
3023
2420
|
} catch (e) {
|
|
3024
2421
|
}
|
|
@@ -3034,12 +2431,12 @@ function SubscriptionProvider({ children }) {
|
|
|
3034
2431
|
}
|
|
3035
2432
|
return process.env.NEXT_PUBLIC_MOONUI_AUTH_TOKEN || process.env.MOONUI_LICENSE_KEY || null;
|
|
3036
2433
|
};
|
|
3037
|
-
const
|
|
3038
|
-
const token = await
|
|
2434
|
+
const validateLicense = async () => {
|
|
2435
|
+
const token = await getAuthToken();
|
|
3039
2436
|
if (!token) {
|
|
3040
2437
|
console.log("[MoonUI Pro] No auth token found - clearing access");
|
|
3041
2438
|
if (typeof window !== "undefined") {
|
|
3042
|
-
localStorage.removeItem(
|
|
2439
|
+
localStorage.removeItem(CACHE_KEY);
|
|
3043
2440
|
}
|
|
3044
2441
|
setHasProAccess(false);
|
|
3045
2442
|
setIsAuthenticated(false);
|
|
@@ -3054,7 +2451,7 @@ function SubscriptionProvider({ children }) {
|
|
|
3054
2451
|
hasLifetimeAccess: true,
|
|
3055
2452
|
timestamp: Date.now()
|
|
3056
2453
|
};
|
|
3057
|
-
localStorage.setItem(
|
|
2454
|
+
localStorage.setItem(CACHE_KEY, JSON.stringify(cacheData));
|
|
3058
2455
|
}
|
|
3059
2456
|
return;
|
|
3060
2457
|
}
|
|
@@ -3072,16 +2469,16 @@ function SubscriptionProvider({ children }) {
|
|
|
3072
2469
|
timestamp: Date.now(),
|
|
3073
2470
|
cacheUntil: data.cacheUntil ? new Date(data.cacheUntil).getTime() : void 0
|
|
3074
2471
|
};
|
|
3075
|
-
localStorage.setItem(
|
|
2472
|
+
localStorage.setItem(CACHE_KEY, JSON.stringify(cacheData));
|
|
3076
2473
|
setHasProAccess(data.valid && (data.user?.hasLifetimeAccess || data.user?.features?.includes("pro_components")));
|
|
3077
2474
|
setIsAuthenticated(data.valid);
|
|
3078
2475
|
} else {
|
|
3079
|
-
localStorage.removeItem(
|
|
2476
|
+
localStorage.removeItem(CACHE_KEY);
|
|
3080
2477
|
setHasProAccess(false);
|
|
3081
2478
|
setIsAuthenticated(false);
|
|
3082
2479
|
}
|
|
3083
2480
|
} catch (error) {
|
|
3084
|
-
const cached = localStorage.getItem(
|
|
2481
|
+
const cached = localStorage.getItem(CACHE_KEY);
|
|
3085
2482
|
if (cached) {
|
|
3086
2483
|
const cacheData = JSON.parse(cached);
|
|
3087
2484
|
const now = Date.now();
|
|
@@ -3103,11 +2500,11 @@ function SubscriptionProvider({ children }) {
|
|
|
3103
2500
|
setLastCheckTime(now);
|
|
3104
2501
|
try {
|
|
3105
2502
|
if (true) {
|
|
3106
|
-
const cliCached = localStorage.getItem(
|
|
2503
|
+
const cliCached = localStorage.getItem(CLI_AUTH_CACHE_KEY);
|
|
3107
2504
|
if (cliCached) {
|
|
3108
2505
|
try {
|
|
3109
2506
|
const cliCache = JSON.parse(cliCached);
|
|
3110
|
-
if (now - cliCache.timestamp <
|
|
2507
|
+
if (now - cliCache.timestamp < CLI_AUTH_CACHE_DURATION) {
|
|
3111
2508
|
console.log("[MoonUI Pro] Using cached CLI auth from checkAccess");
|
|
3112
2509
|
if (cliCache.valid && (cliCache.plan === "lifetime" || cliCache.plan === "pro_lifetime")) {
|
|
3113
2510
|
setHasProAccess(true);
|
|
@@ -3118,11 +2515,11 @@ function SubscriptionProvider({ children }) {
|
|
|
3118
2515
|
}
|
|
3119
2516
|
} catch (e) {
|
|
3120
2517
|
console.error("[MoonUI Pro] Error parsing CLI auth cache:", e);
|
|
3121
|
-
localStorage.removeItem(
|
|
2518
|
+
localStorage.removeItem(CLI_AUTH_CACHE_KEY);
|
|
3122
2519
|
}
|
|
3123
2520
|
}
|
|
3124
2521
|
console.log("[MoonUI Pro] No valid CLI cache, checking CLI auth...");
|
|
3125
|
-
const authToken = await
|
|
2522
|
+
const authToken = await getAuthToken();
|
|
3126
2523
|
if (authToken === "cli-authenticated-pro") {
|
|
3127
2524
|
console.log("[MoonUI Pro] CLI authentication successful");
|
|
3128
2525
|
setHasProAccess(true);
|
|
@@ -3131,7 +2528,7 @@ function SubscriptionProvider({ children }) {
|
|
|
3131
2528
|
return;
|
|
3132
2529
|
}
|
|
3133
2530
|
}
|
|
3134
|
-
const cached = localStorage.getItem(
|
|
2531
|
+
const cached = localStorage.getItem(CACHE_KEY);
|
|
3135
2532
|
if (cached) {
|
|
3136
2533
|
const cacheData = JSON.parse(cached);
|
|
3137
2534
|
if (now - cacheData.timestamp < CACHE_DURATION) {
|
|
@@ -3141,7 +2538,7 @@ function SubscriptionProvider({ children }) {
|
|
|
3141
2538
|
return;
|
|
3142
2539
|
}
|
|
3143
2540
|
if (now - cacheData.timestamp < OFFLINE_GRACE_PERIOD) {
|
|
3144
|
-
|
|
2541
|
+
validateLicense().catch(() => {
|
|
3145
2542
|
setHasProAccess(cacheData.valid && cacheData.hasLifetimeAccess);
|
|
3146
2543
|
setIsAuthenticated(cacheData.valid);
|
|
3147
2544
|
});
|
|
@@ -3149,7 +2546,7 @@ function SubscriptionProvider({ children }) {
|
|
|
3149
2546
|
return;
|
|
3150
2547
|
}
|
|
3151
2548
|
}
|
|
3152
|
-
await
|
|
2549
|
+
await validateLicense();
|
|
3153
2550
|
} catch (error) {
|
|
3154
2551
|
console.error("[MoonUI Pro Context] License check error:", error);
|
|
3155
2552
|
setHasProAccess(false);
|
|
@@ -3179,150 +2576,6 @@ function useSubscriptionContext() {
|
|
|
3179
2576
|
const context = useContext(SubscriptionContext);
|
|
3180
2577
|
return context;
|
|
3181
2578
|
}
|
|
3182
|
-
|
|
3183
|
-
// src/utils/cache-helper.ts
|
|
3184
|
-
var forceRefresh2;
|
|
3185
|
-
var clearCache2;
|
|
3186
|
-
var cliTokenReader2;
|
|
3187
|
-
if (typeof window !== "undefined") {
|
|
3188
|
-
Promise.resolve().then(() => (init_use_subscription(), use_subscription_exports)).then((module) => {
|
|
3189
|
-
forceRefresh2 = module.forceRefresh;
|
|
3190
|
-
clearCache2 = module.clearCache;
|
|
3191
|
-
});
|
|
3192
|
-
Promise.resolve().then(() => (init_cli_token_reader(), cli_token_reader_exports)).then((module) => {
|
|
3193
|
-
cliTokenReader2 = module.cliTokenReader;
|
|
3194
|
-
});
|
|
3195
|
-
}
|
|
3196
|
-
var MoonUICache = {
|
|
3197
|
-
/**
|
|
3198
|
-
* Clear all MoonUI Pro authentication cache
|
|
3199
|
-
*/
|
|
3200
|
-
clear: () => {
|
|
3201
|
-
clearCache2();
|
|
3202
|
-
console.log("\u2705 MoonUI Pro cache cleared");
|
|
3203
|
-
},
|
|
3204
|
-
/**
|
|
3205
|
-
* Force refresh authentication (clear cache and revalidate)
|
|
3206
|
-
*/
|
|
3207
|
-
refresh: async () => {
|
|
3208
|
-
console.log("\u{1F504} Refreshing MoonUI Pro authentication...");
|
|
3209
|
-
await forceRefresh2();
|
|
3210
|
-
console.log("\u2705 Authentication refreshed");
|
|
3211
|
-
},
|
|
3212
|
-
/**
|
|
3213
|
-
* Clear cache and force refresh in one step
|
|
3214
|
-
*/
|
|
3215
|
-
clearAndRefresh: async () => {
|
|
3216
|
-
console.log("\u{1F9F9} Clearing cache and refreshing...");
|
|
3217
|
-
clearCache2();
|
|
3218
|
-
await forceRefresh2();
|
|
3219
|
-
console.log("\u2705 Cache cleared and authentication refreshed");
|
|
3220
|
-
},
|
|
3221
|
-
/**
|
|
3222
|
-
* Check current cache status
|
|
3223
|
-
*/
|
|
3224
|
-
status: () => {
|
|
3225
|
-
const cache2 = localStorage.getItem("moonui_license_cache");
|
|
3226
|
-
const token = localStorage.getItem("moonui_auth_token");
|
|
3227
|
-
if (!cache2 && !token) {
|
|
3228
|
-
console.log("\u274C No authentication cache or token found");
|
|
3229
|
-
return null;
|
|
3230
|
-
}
|
|
3231
|
-
if (cache2) {
|
|
3232
|
-
const cacheData = JSON.parse(cache2);
|
|
3233
|
-
const now = Date.now();
|
|
3234
|
-
const age = now - cacheData.timestamp;
|
|
3235
|
-
const ageMinutes = Math.floor(age / 6e4);
|
|
3236
|
-
console.log("\u{1F4CA} Cache Status:");
|
|
3237
|
-
console.log(` Valid: ${cacheData.valid ? "\u2705" : "\u274C"}`);
|
|
3238
|
-
console.log(` Has Lifetime Access: ${cacheData.hasLifetimeAccess ? "\u2705" : "\u274C"}`);
|
|
3239
|
-
console.log(` Cache Age: ${ageMinutes} minutes`);
|
|
3240
|
-
console.log(` Timestamp: ${new Date(cacheData.timestamp).toLocaleString()}`);
|
|
3241
|
-
return cacheData;
|
|
3242
|
-
}
|
|
3243
|
-
if (token) {
|
|
3244
|
-
console.log("\u{1F511} Auth token found but no cache");
|
|
3245
|
-
return { token };
|
|
3246
|
-
}
|
|
3247
|
-
},
|
|
3248
|
-
/**
|
|
3249
|
-
* Debug info - shows all relevant localStorage keys
|
|
3250
|
-
*/
|
|
3251
|
-
debug: async () => {
|
|
3252
|
-
console.log("\u{1F50D} MoonUI Pro Debug Info:");
|
|
3253
|
-
console.log("----------------------------");
|
|
3254
|
-
const keys2 = [
|
|
3255
|
-
"moonui_license_cache",
|
|
3256
|
-
"moonui_auth_token",
|
|
3257
|
-
"moonui-sidebar-state"
|
|
3258
|
-
];
|
|
3259
|
-
keys2.forEach((key) => {
|
|
3260
|
-
const value = localStorage.getItem(key);
|
|
3261
|
-
if (value) {
|
|
3262
|
-
console.log(`\u{1F4E6} ${key}:`);
|
|
3263
|
-
try {
|
|
3264
|
-
const parsed = JSON.parse(value);
|
|
3265
|
-
console.log(parsed);
|
|
3266
|
-
} catch {
|
|
3267
|
-
console.log(value);
|
|
3268
|
-
}
|
|
3269
|
-
} else {
|
|
3270
|
-
console.log(`\u274C ${key}: Not found`);
|
|
3271
|
-
}
|
|
3272
|
-
});
|
|
3273
|
-
if (cliTokenReader2) {
|
|
3274
|
-
console.log("\n\u{1F510} CLI Authentication:");
|
|
3275
|
-
console.log("----------------------------");
|
|
3276
|
-
try {
|
|
3277
|
-
const cliToken = await cliTokenReader2.getCLIToken();
|
|
3278
|
-
if (cliToken) {
|
|
3279
|
-
console.log("\u2705 CLI token found");
|
|
3280
|
-
console.log(` Token: ${cliToken.substring(0, 20)}...`);
|
|
3281
|
-
} else {
|
|
3282
|
-
console.log("\u274C No CLI token available");
|
|
3283
|
-
console.log(' Run "moonui login" to authenticate');
|
|
3284
|
-
}
|
|
3285
|
-
} catch (error) {
|
|
3286
|
-
console.log("\u274C Failed to check CLI token:", error);
|
|
3287
|
-
}
|
|
3288
|
-
}
|
|
3289
|
-
},
|
|
3290
|
-
/**
|
|
3291
|
-
* Check CLI authentication status
|
|
3292
|
-
*/
|
|
3293
|
-
checkCLIAuth: async () => {
|
|
3294
|
-
if (!cliTokenReader2) {
|
|
3295
|
-
console.log("\u274C CLI auth check only available in development");
|
|
3296
|
-
return false;
|
|
3297
|
-
}
|
|
3298
|
-
try {
|
|
3299
|
-
const token = await cliTokenReader2.getCLIToken();
|
|
3300
|
-
if (token) {
|
|
3301
|
-
console.log("\u2705 CLI authentication active");
|
|
3302
|
-
return true;
|
|
3303
|
-
} else {
|
|
3304
|
-
console.log("\u274C No CLI authentication found");
|
|
3305
|
-
console.log('\u{1F4A1} Run "moonui login" to authenticate');
|
|
3306
|
-
return false;
|
|
3307
|
-
}
|
|
3308
|
-
} catch (error) {
|
|
3309
|
-
console.error("\u274C Failed to check CLI auth:", error);
|
|
3310
|
-
return false;
|
|
3311
|
-
}
|
|
3312
|
-
}
|
|
3313
|
-
};
|
|
3314
|
-
if (typeof window !== "undefined") {
|
|
3315
|
-
window.MoonUICache = MoonUICache;
|
|
3316
|
-
const urlParams = new URLSearchParams(window.location.search);
|
|
3317
|
-
if (urlParams.has("clear-cache")) {
|
|
3318
|
-
console.log("\u{1F504} Auto-clearing cache due to URL parameter...");
|
|
3319
|
-
MoonUICache.clearAndRefresh().then(() => {
|
|
3320
|
-
urlParams.delete("clear-cache");
|
|
3321
|
-
const newUrl = window.location.pathname + (urlParams.toString() ? "?" + urlParams.toString() : "");
|
|
3322
|
-
window.history.replaceState({}, "", newUrl);
|
|
3323
|
-
});
|
|
3324
|
-
}
|
|
3325
|
-
}
|
|
3326
2579
|
var accordionItemVariants = cva(
|
|
3327
2580
|
"group relative overflow-visible transition-all duration-300 ease-out",
|
|
3328
2581
|
{
|
|
@@ -5993,7 +5246,6 @@ var useCollapsibleAnalytics = () => {
|
|
|
5993
5246
|
}, []);
|
|
5994
5247
|
return { analytics, trackOpen, trackClose };
|
|
5995
5248
|
};
|
|
5996
|
-
init_use_subscription();
|
|
5997
5249
|
function ProLockScreen({
|
|
5998
5250
|
componentName = "Pro Component",
|
|
5999
5251
|
className,
|
|
@@ -9398,7 +8650,6 @@ var TabsContent = React68.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
9398
8650
|
}
|
|
9399
8651
|
));
|
|
9400
8652
|
TabsContent.displayName = TabsPrimitive2.Content.displayName;
|
|
9401
|
-
init_use_subscription();
|
|
9402
8653
|
var contentVariants = {
|
|
9403
8654
|
fade: {
|
|
9404
8655
|
initial: { opacity: 0 },
|
|
@@ -14007,7 +13258,6 @@ var NavigationMenuIndicator2 = React68.forwardRef(({ className, ...props }, ref)
|
|
|
14007
13258
|
}
|
|
14008
13259
|
));
|
|
14009
13260
|
NavigationMenuIndicator2.displayName = Indicator3.displayName;
|
|
14010
|
-
init_use_subscription();
|
|
14011
13261
|
var gestureDrawerVariants = cva(
|
|
14012
13262
|
"fixed bg-background shadow-2xl overflow-hidden",
|
|
14013
13263
|
{
|
|
@@ -14393,9 +13643,6 @@ var MoonUIGestureDrawerPro = React68__default.forwardRef((props, ref) => {
|
|
|
14393
13643
|
});
|
|
14394
13644
|
MoonUIGestureDrawerPro.displayName = "MoonUIGestureDrawerPro";
|
|
14395
13645
|
var GestureDrawer = MoonUIGestureDrawerPro;
|
|
14396
|
-
|
|
14397
|
-
// src/components/ui/lightbox.tsx
|
|
14398
|
-
init_use_subscription();
|
|
14399
13646
|
var lightboxVariants = cva(
|
|
14400
13647
|
"fixed inset-0 z-50 flex items-center justify-center",
|
|
14401
13648
|
{
|
|
@@ -14857,9 +14104,6 @@ function SimpleLightbox({
|
|
|
14857
14104
|
/* @__PURE__ */ jsx(LightboxContent, { ...props })
|
|
14858
14105
|
] });
|
|
14859
14106
|
}
|
|
14860
|
-
|
|
14861
|
-
// src/components/ui/media-gallery.tsx
|
|
14862
|
-
init_use_subscription();
|
|
14863
14107
|
var galleryVariants = cva(
|
|
14864
14108
|
"w-full",
|
|
14865
14109
|
{
|
|
@@ -15263,7 +14507,6 @@ var MoonUIGalleryItemPro = React68.forwardRef(({
|
|
|
15263
14507
|
);
|
|
15264
14508
|
});
|
|
15265
14509
|
MoonUIGalleryItemPro.displayName = "MoonUIGalleryItemPro";
|
|
15266
|
-
init_use_subscription();
|
|
15267
14510
|
function DraggableList({
|
|
15268
14511
|
items,
|
|
15269
14512
|
onReorder,
|
|
@@ -15598,7 +14841,6 @@ function DraggableList({
|
|
|
15598
14841
|
}
|
|
15599
14842
|
);
|
|
15600
14843
|
}
|
|
15601
|
-
init_use_subscription();
|
|
15602
14844
|
var glowCardVariants = cva(
|
|
15603
14845
|
"relative transition-all duration-300 ease-out",
|
|
15604
14846
|
{
|
|
@@ -15926,7 +15168,6 @@ var GlowCard = forwardRef((props, ref) => {
|
|
|
15926
15168
|
return /* @__PURE__ */ jsx(GlowCardInternal, { ref, ...props });
|
|
15927
15169
|
});
|
|
15928
15170
|
GlowCard.displayName = "GlowCard";
|
|
15929
|
-
init_use_subscription();
|
|
15930
15171
|
var moonUIAnimatedButtonProVariants = cva(
|
|
15931
15172
|
"relative inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-all duration-200 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 overflow-hidden min-w-fit",
|
|
15932
15173
|
{
|
|
@@ -16216,7 +15457,6 @@ var MoonUIAnimatedButtonPro = React68__default.forwardRef(
|
|
|
16216
15457
|
}
|
|
16217
15458
|
);
|
|
16218
15459
|
MoonUIAnimatedButtonPro.displayName = "MoonUIAnimatedButtonPro";
|
|
16219
|
-
init_use_subscription();
|
|
16220
15460
|
var AnimatedItem = ({ children, delay = 0, index: index2, onMouseEnter, onClick }) => {
|
|
16221
15461
|
const ref = useRef(null);
|
|
16222
15462
|
const inView = useInView(ref, { amount: 0.5, once: false });
|
|
@@ -16532,7 +15772,6 @@ var MoonUISpotlightCardPro = React68__default.forwardRef(
|
|
|
16532
15772
|
}
|
|
16533
15773
|
);
|
|
16534
15774
|
MoonUISpotlightCardPro.displayName = "MoonUISpotlightCardPro";
|
|
16535
|
-
init_use_subscription();
|
|
16536
15775
|
var animatedNumberVariants = cva(
|
|
16537
15776
|
"font-mono tabular-nums",
|
|
16538
15777
|
{
|
|
@@ -16671,7 +15910,6 @@ var AnimatedNumber = React68__default.forwardRef(
|
|
|
16671
15910
|
}
|
|
16672
15911
|
);
|
|
16673
15912
|
AnimatedNumber.displayName = "AnimatedNumber";
|
|
16674
|
-
init_use_subscription();
|
|
16675
15913
|
var floatingDockVariants = cva(
|
|
16676
15914
|
"flex items-center gap-1 rounded-full border bg-background/95 backdrop-blur-md shadow-xl",
|
|
16677
15915
|
{
|
|
@@ -16881,7 +16119,6 @@ var FloatingDock = React68__default.forwardRef(
|
|
|
16881
16119
|
}
|
|
16882
16120
|
);
|
|
16883
16121
|
FloatingDock.displayName = "FloatingDock";
|
|
16884
|
-
init_use_subscription();
|
|
16885
16122
|
var splashCursorVariants = cva(
|
|
16886
16123
|
"fixed pointer-events-none z-[9999]",
|
|
16887
16124
|
{
|
|
@@ -17202,7 +16439,6 @@ var SplashCursorContainer = ({
|
|
|
17202
16439
|
);
|
|
17203
16440
|
};
|
|
17204
16441
|
SplashCursorContainer.displayName = "SplashCursorContainer";
|
|
17205
|
-
init_use_subscription();
|
|
17206
16442
|
var MarqueeInternal = ({
|
|
17207
16443
|
children,
|
|
17208
16444
|
speed = 50,
|
|
@@ -17416,7 +16652,6 @@ var Marquee = (props) => {
|
|
|
17416
16652
|
return /* @__PURE__ */ jsx(MarqueeInternal, { ...props });
|
|
17417
16653
|
};
|
|
17418
16654
|
Marquee.displayName = "Marquee";
|
|
17419
|
-
init_use_subscription();
|
|
17420
16655
|
var ErrorBoundaryInternal = class extends Component {
|
|
17421
16656
|
constructor(props) {
|
|
17422
16657
|
super(props);
|
|
@@ -17548,7 +16783,6 @@ function ErrorBoundaryWrapper(props) {
|
|
|
17548
16783
|
return /* @__PURE__ */ jsx(ErrorBoundaryInternal, { ...props });
|
|
17549
16784
|
}
|
|
17550
16785
|
var ErrorBoundary = ErrorBoundaryWrapper;
|
|
17551
|
-
init_use_subscription();
|
|
17552
16786
|
var FloatingActionButtonInternal = React68__default.forwardRef(
|
|
17553
16787
|
({
|
|
17554
16788
|
actions = [],
|
|
@@ -17700,7 +16934,6 @@ var FloatingActionButton = React68__default.forwardRef(
|
|
|
17700
16934
|
}
|
|
17701
16935
|
);
|
|
17702
16936
|
FloatingActionButton.displayName = "FloatingActionButton";
|
|
17703
|
-
init_use_subscription();
|
|
17704
16937
|
var hoverCard3DVariants = cva(
|
|
17705
16938
|
"relative rounded-lg border bg-card text-card-foreground shadow-sm transition-all duration-200 isolate",
|
|
17706
16939
|
{
|
|
@@ -18037,7 +17270,6 @@ var HoverCard3D = React68__default.forwardRef(
|
|
|
18037
17270
|
}
|
|
18038
17271
|
);
|
|
18039
17272
|
HoverCard3D.displayName = "HoverCard3D";
|
|
18040
|
-
init_use_subscription();
|
|
18041
17273
|
var magneticButtonVariants = cva(
|
|
18042
17274
|
"relative inline-flex items-center justify-center whitespace-nowrap text-sm font-medium transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
|
|
18043
17275
|
{
|
|
@@ -18202,7 +17434,6 @@ var MagneticButton = React68__default.forwardRef(
|
|
|
18202
17434
|
}
|
|
18203
17435
|
);
|
|
18204
17436
|
MagneticButton.displayName = "MagneticButton";
|
|
18205
|
-
init_use_subscription();
|
|
18206
17437
|
var PinchZoomInternal = React68__default.forwardRef(
|
|
18207
17438
|
({
|
|
18208
17439
|
children,
|
|
@@ -18637,7 +17868,6 @@ var PinchZoom = React68__default.forwardRef(
|
|
|
18637
17868
|
}
|
|
18638
17869
|
);
|
|
18639
17870
|
PinchZoom.displayName = "PinchZoom";
|
|
18640
|
-
init_use_subscription();
|
|
18641
17871
|
var EVENT_TYPES = [
|
|
18642
17872
|
{ value: "meeting", label: "Meeting", color: "#3b82f6" },
|
|
18643
17873
|
{ value: "task", label: "Task", color: "#10b981" },
|
|
@@ -19872,7 +19102,6 @@ function Calendar3(props) {
|
|
|
19872
19102
|
}
|
|
19873
19103
|
return /* @__PURE__ */ jsx(CalendarInternal, { ...props });
|
|
19874
19104
|
}
|
|
19875
|
-
init_use_subscription();
|
|
19876
19105
|
var PRIORITY_OPTIONS = [
|
|
19877
19106
|
{ value: "low", label: "Low", icon: Flag, color: "text-green-600" },
|
|
19878
19107
|
{ value: "medium", label: "Medium", icon: Flag, color: "text-yellow-600" },
|
|
@@ -34152,7 +33381,7 @@ function sinkListItem(itemType) {
|
|
|
34152
33381
|
|
|
34153
33382
|
// ../../node_modules/@tiptap/core/dist/index.js
|
|
34154
33383
|
var __defProp2 = Object.defineProperty;
|
|
34155
|
-
var
|
|
33384
|
+
var __export = (target, all) => {
|
|
34156
33385
|
for (var name in all)
|
|
34157
33386
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
34158
33387
|
};
|
|
@@ -36175,7 +35404,7 @@ ExtensionManager.resolve = resolveExtensions;
|
|
|
36175
35404
|
ExtensionManager.sort = sortExtensions;
|
|
36176
35405
|
ExtensionManager.flatten = flattenExtensions;
|
|
36177
35406
|
var extensions_exports = {};
|
|
36178
|
-
|
|
35407
|
+
__export(extensions_exports, {
|
|
36179
35408
|
ClipboardTextSerializer: () => ClipboardTextSerializer,
|
|
36180
35409
|
Commands: () => Commands,
|
|
36181
35410
|
Delete: () => Delete,
|
|
@@ -36240,7 +35469,7 @@ var ClipboardTextSerializer = Extension.create({
|
|
|
36240
35469
|
}
|
|
36241
35470
|
});
|
|
36242
35471
|
var commands_exports = {};
|
|
36243
|
-
|
|
35472
|
+
__export(commands_exports, {
|
|
36244
35473
|
blur: () => blur,
|
|
36245
35474
|
clearContent: () => clearContent,
|
|
36246
35475
|
clearNodes: () => clearNodes,
|
|
@@ -38712,16 +37941,16 @@ var Portals = ({ contentComponent }) => {
|
|
|
38712
37941
|
return /* @__PURE__ */ jsx(Fragment, { children: Object.values(renderers) });
|
|
38713
37942
|
};
|
|
38714
37943
|
function getInstance() {
|
|
38715
|
-
const
|
|
37944
|
+
const subscribers = /* @__PURE__ */ new Set();
|
|
38716
37945
|
let renderers = {};
|
|
38717
37946
|
return {
|
|
38718
37947
|
/**
|
|
38719
37948
|
* Subscribe to the editor instance's changes.
|
|
38720
37949
|
*/
|
|
38721
37950
|
subscribe(callback) {
|
|
38722
|
-
|
|
37951
|
+
subscribers.add(callback);
|
|
38723
37952
|
return () => {
|
|
38724
|
-
|
|
37953
|
+
subscribers.delete(callback);
|
|
38725
37954
|
};
|
|
38726
37955
|
},
|
|
38727
37956
|
getSnapshot() {
|
|
@@ -38738,7 +37967,7 @@ function getInstance() {
|
|
|
38738
37967
|
...renderers,
|
|
38739
37968
|
[id]: ReactDOM2__default.createPortal(renderer.reactElement, renderer.element, id)
|
|
38740
37969
|
};
|
|
38741
|
-
|
|
37970
|
+
subscribers.forEach((subscriber) => subscriber());
|
|
38742
37971
|
},
|
|
38743
37972
|
/**
|
|
38744
37973
|
* Removes a NodeView Renderer from the editor.
|
|
@@ -38747,7 +37976,7 @@ function getInstance() {
|
|
|
38747
37976
|
const nextRenderers = { ...renderers };
|
|
38748
37977
|
delete nextRenderers[id];
|
|
38749
37978
|
renderers = nextRenderers;
|
|
38750
|
-
|
|
37979
|
+
subscribers.forEach((subscriber) => subscriber());
|
|
38751
37980
|
}
|
|
38752
37981
|
};
|
|
38753
37982
|
}
|
|
@@ -41489,7 +40718,7 @@ var index_default2 = Link3;
|
|
|
41489
40718
|
|
|
41490
40719
|
// ../../node_modules/@tiptap/extension-list/dist/index.js
|
|
41491
40720
|
var __defProp3 = Object.defineProperty;
|
|
41492
|
-
var
|
|
40721
|
+
var __export2 = (target, all) => {
|
|
41493
40722
|
for (var name in all)
|
|
41494
40723
|
__defProp3(target, name, { get: all[name], enumerable: true });
|
|
41495
40724
|
};
|
|
@@ -41581,7 +40810,7 @@ var ListItem = Node3.create({
|
|
|
41581
40810
|
}
|
|
41582
40811
|
});
|
|
41583
40812
|
var listHelpers_exports = {};
|
|
41584
|
-
|
|
40813
|
+
__export2(listHelpers_exports, {
|
|
41585
40814
|
findListItemPos: () => findListItemPos,
|
|
41586
40815
|
getNextListDepth: () => getNextListDepth,
|
|
41587
40816
|
handleBackspace: () => handleBackspace,
|
|
@@ -60846,9 +60075,6 @@ var SlashCommandsExtension = Extension.create({
|
|
|
60846
60075
|
}
|
|
60847
60076
|
});
|
|
60848
60077
|
|
|
60849
|
-
// src/components/rich-text-editor/index.tsx
|
|
60850
|
-
init_use_subscription();
|
|
60851
|
-
|
|
60852
60078
|
// #style-inject:#style-inject
|
|
60853
60079
|
function styleInject(css2, { insertAt } = {}) {
|
|
60854
60080
|
if (!css2 || typeof document === "undefined")
|
|
@@ -62828,9 +62054,6 @@ function RichTextEditor({
|
|
|
62828
62054
|
] }) })
|
|
62829
62055
|
] });
|
|
62830
62056
|
}
|
|
62831
|
-
|
|
62832
|
-
// src/components/memory-efficient-data/index.tsx
|
|
62833
|
-
init_use_subscription();
|
|
62834
62057
|
var MemoryCache = class {
|
|
62835
62058
|
constructor(maxSize, strategy = "lru") {
|
|
62836
62059
|
this.cache = /* @__PURE__ */ new Map();
|
|
@@ -63551,7 +62774,6 @@ function MemoryEfficientData(props) {
|
|
|
63551
62774
|
return /* @__PURE__ */ jsx(MemoryEfficientDataInternal, { ...props });
|
|
63552
62775
|
}
|
|
63553
62776
|
var MoonUIMemoryEfficientDataPro = MemoryEfficientData;
|
|
63554
|
-
init_use_subscription();
|
|
63555
62777
|
function VirtualListInternal({
|
|
63556
62778
|
items,
|
|
63557
62779
|
height,
|
|
@@ -64088,7 +63310,6 @@ function SelectableVirtualList(props) {
|
|
|
64088
63310
|
}
|
|
64089
63311
|
return /* @__PURE__ */ jsx(SelectableVirtualListInternal, { ...props });
|
|
64090
63312
|
}
|
|
64091
|
-
init_use_subscription();
|
|
64092
63313
|
var SwipeableCardInternal = React68__default.forwardRef(
|
|
64093
63314
|
({
|
|
64094
63315
|
children,
|
|
@@ -64187,7 +63408,6 @@ var SwipeableCard = React68__default.forwardRef(
|
|
|
64187
63408
|
}
|
|
64188
63409
|
);
|
|
64189
63410
|
SwipeableCard.displayName = "SwipeableCard";
|
|
64190
|
-
init_use_subscription();
|
|
64191
63411
|
|
|
64192
63412
|
// src/components/timeline/timeline.css
|
|
64193
63413
|
styleInject("@keyframes gradient {\n 0% {\n background-position: 0% 50%;\n }\n 50% {\n background-position: 100% 50%;\n }\n 100% {\n background-position: 0% 50%;\n }\n}\n@keyframes gradient-vertical {\n 0% {\n background-position: 50% 0%;\n }\n 50% {\n background-position: 50% 100%;\n }\n 100% {\n background-position: 50% 0%;\n }\n}\n.animate-gradient {\n animation: gradient 3s ease infinite;\n}\n.animate-gradient-vertical {\n animation: gradient-vertical 3s ease infinite;\n}\n");
|
|
@@ -65326,9 +64546,6 @@ function Timeline(props) {
|
|
|
65326
64546
|
}
|
|
65327
64547
|
return /* @__PURE__ */ jsx(TimelineInternal, { ...props });
|
|
65328
64548
|
}
|
|
65329
|
-
|
|
65330
|
-
// src/components/advanced-chart/index.tsx
|
|
65331
|
-
init_use_subscription();
|
|
65332
64549
|
var COLOR_THEMES = {
|
|
65333
64550
|
default: [
|
|
65334
64551
|
"#3b82f6",
|
|
@@ -66421,7 +65638,6 @@ function AdvancedChart(props) {
|
|
|
66421
65638
|
return /* @__PURE__ */ jsx(AdvancedChartInternal, { ...props });
|
|
66422
65639
|
}
|
|
66423
65640
|
var MoonUIAdvancedChartPro = AdvancedChart;
|
|
66424
|
-
init_use_subscription();
|
|
66425
65641
|
function MetricCard({
|
|
66426
65642
|
data,
|
|
66427
65643
|
onClick,
|
|
@@ -69898,8 +69114,6 @@ var Dashboard = React68__default.memo(function Dashboard2(props) {
|
|
|
69898
69114
|
}
|
|
69899
69115
|
return /* @__PURE__ */ jsx(DashboardInternal, { ...props });
|
|
69900
69116
|
});
|
|
69901
|
-
init_use_subscription();
|
|
69902
|
-
init_use_subscription();
|
|
69903
69117
|
function validatePhoneNumber(number) {
|
|
69904
69118
|
if (!number)
|
|
69905
69119
|
return false;
|
|
@@ -70746,14 +69960,13 @@ var AdvancedForms = ({ className, ...props }) => {
|
|
|
70746
69960
|
}
|
|
70747
69961
|
return /* @__PURE__ */ jsx(AdvancedFormsInternal, { className, ...props });
|
|
70748
69962
|
};
|
|
70749
|
-
init_use_subscription();
|
|
70750
69963
|
|
|
70751
69964
|
// src/components/github-stars/github-api.ts
|
|
70752
69965
|
var cache = /* @__PURE__ */ new Map();
|
|
70753
69966
|
var isDocsMode = () => {
|
|
70754
69967
|
return typeof window !== "undefined" && (window.location.pathname.includes("/docs/") || window.location.pathname.includes("/components/"));
|
|
70755
69968
|
};
|
|
70756
|
-
var
|
|
69969
|
+
var getCacheDuration = (defaultDuration) => {
|
|
70757
69970
|
return isDocsMode() ? 18e5 : defaultDuration;
|
|
70758
69971
|
};
|
|
70759
69972
|
var LANGUAGE_COLORS = {
|
|
@@ -70823,7 +70036,7 @@ async function getRateLimitInfo(token) {
|
|
|
70823
70036
|
cache.set(cacheKey, {
|
|
70824
70037
|
data: rateLimitInfo,
|
|
70825
70038
|
timestamp: Date.now(),
|
|
70826
|
-
expiresAt: Date.now() +
|
|
70039
|
+
expiresAt: Date.now() + getCacheDuration(6e4)
|
|
70827
70040
|
// Docs modunda daha uzun cache
|
|
70828
70041
|
});
|
|
70829
70042
|
return rateLimitInfo;
|
|
@@ -70844,7 +70057,7 @@ async function fetchUserRepositories(username, token, options) {
|
|
|
70844
70057
|
cache.set(cacheKey, {
|
|
70845
70058
|
data: repos,
|
|
70846
70059
|
timestamp: Date.now(),
|
|
70847
|
-
expiresAt: Date.now() +
|
|
70060
|
+
expiresAt: Date.now() + getCacheDuration(3e5)
|
|
70848
70061
|
// 30 minutes in docs mode
|
|
70849
70062
|
});
|
|
70850
70063
|
return repos;
|
|
@@ -70860,7 +70073,7 @@ async function fetchRepository(owner, repo, token) {
|
|
|
70860
70073
|
cache.set(cacheKey, {
|
|
70861
70074
|
data: repository,
|
|
70862
70075
|
timestamp: Date.now(),
|
|
70863
|
-
expiresAt: Date.now() +
|
|
70076
|
+
expiresAt: Date.now() + getCacheDuration(3e5)
|
|
70864
70077
|
// 30 minutes in docs mode
|
|
70865
70078
|
});
|
|
70866
70079
|
return repository;
|
|
@@ -70884,7 +70097,7 @@ async function fetchContributorsCount(owner, repo, token) {
|
|
|
70884
70097
|
cache.set(cacheKey, {
|
|
70885
70098
|
data: count4,
|
|
70886
70099
|
timestamp: Date.now(),
|
|
70887
|
-
expiresAt: Date.now() +
|
|
70100
|
+
expiresAt: Date.now() + getCacheDuration(36e5)
|
|
70888
70101
|
// 30 minutes in docs mode
|
|
70889
70102
|
});
|
|
70890
70103
|
return count4;
|
|
@@ -70895,7 +70108,7 @@ async function fetchContributorsCount(owner, repo, token) {
|
|
|
70895
70108
|
cache.set(cacheKey, {
|
|
70896
70109
|
data: count3,
|
|
70897
70110
|
timestamp: Date.now(),
|
|
70898
|
-
expiresAt: Date.now() +
|
|
70111
|
+
expiresAt: Date.now() + getCacheDuration(36e5)
|
|
70899
70112
|
// 30 minutes in docs mode
|
|
70900
70113
|
});
|
|
70901
70114
|
return count3;
|
|
@@ -70980,7 +70193,7 @@ function formatDate2(dateString) {
|
|
|
70980
70193
|
day: "numeric"
|
|
70981
70194
|
});
|
|
70982
70195
|
}
|
|
70983
|
-
function
|
|
70196
|
+
function clearCache(pattern) {
|
|
70984
70197
|
if (pattern) {
|
|
70985
70198
|
for (const key of cache.keys()) {
|
|
70986
70199
|
if (key.includes(pattern)) {
|
|
@@ -71300,7 +70513,7 @@ function useGitHubData({
|
|
|
71300
70513
|
console.warn("Cannot refresh: maximum error count reached");
|
|
71301
70514
|
return Promise.resolve();
|
|
71302
70515
|
}
|
|
71303
|
-
|
|
70516
|
+
clearCache();
|
|
71304
70517
|
return fetchData();
|
|
71305
70518
|
}, [fetchData, isDocsMode2]);
|
|
71306
70519
|
return {
|
|
@@ -72150,7 +71363,6 @@ var GitHubStars = ({ className, ...props }) => {
|
|
|
72150
71363
|
}
|
|
72151
71364
|
return /* @__PURE__ */ jsx(GitHubStarsInternal, { className, ...props });
|
|
72152
71365
|
};
|
|
72153
|
-
init_use_subscription();
|
|
72154
71366
|
var HealthCheckInternal = ({
|
|
72155
71367
|
endpoints,
|
|
72156
71368
|
interval = 3e4,
|
|
@@ -72444,7 +71656,6 @@ var HealthCheck = ({ className, ...props }) => {
|
|
|
72444
71656
|
}
|
|
72445
71657
|
return /* @__PURE__ */ jsx(HealthCheckInternal, { className, ...props });
|
|
72446
71658
|
};
|
|
72447
|
-
init_use_subscription();
|
|
72448
71659
|
var LazyComponentInternal = ({
|
|
72449
71660
|
children,
|
|
72450
71661
|
fallback,
|
|
@@ -73053,7 +72264,6 @@ var LazyComponent = ({ className, ...props }) => {
|
|
|
73053
72264
|
}
|
|
73054
72265
|
return /* @__PURE__ */ jsx(LazyComponentInternal, { className, ...props });
|
|
73055
72266
|
};
|
|
73056
|
-
init_use_subscription();
|
|
73057
72267
|
var OptimizedImageInternal = ({
|
|
73058
72268
|
src,
|
|
73059
72269
|
alt,
|
|
@@ -73395,7 +72605,6 @@ var OptimizedImage = ({ className, ...props }) => {
|
|
|
73395
72605
|
}
|
|
73396
72606
|
return /* @__PURE__ */ jsx(OptimizedImageInternal, { className, ...props });
|
|
73397
72607
|
};
|
|
73398
|
-
init_use_subscription();
|
|
73399
72608
|
var PerformanceDebuggerInternal = ({
|
|
73400
72609
|
autoCapture = true,
|
|
73401
72610
|
captureInterval = 5e3,
|
|
@@ -73840,7 +73049,6 @@ var PerformanceDebugger = ({ className, ...props }) => {
|
|
|
73840
73049
|
}
|
|
73841
73050
|
return /* @__PURE__ */ jsx(PerformanceDebuggerInternal, { className, ...props });
|
|
73842
73051
|
};
|
|
73843
|
-
init_use_subscription();
|
|
73844
73052
|
var PerformanceMonitorInternal = ({
|
|
73845
73053
|
autoRefresh = true,
|
|
73846
73054
|
refreshInterval = 5e3,
|
|
@@ -74445,7 +73653,6 @@ var PerformanceMonitor = ({ className, ...props }) => {
|
|
|
74445
73653
|
}
|
|
74446
73654
|
return /* @__PURE__ */ jsx(PerformanceMonitorInternal, { className, ...props });
|
|
74447
73655
|
};
|
|
74448
|
-
init_use_subscription();
|
|
74449
73656
|
|
|
74450
73657
|
// src/use-toast.ts
|
|
74451
73658
|
function toast2(options) {
|
|
@@ -75670,7 +74877,6 @@ var FileUploadItem = ({
|
|
|
75670
74877
|
};
|
|
75671
74878
|
MoonUIFileUploadPro.displayName = "MoonUIFileUploadPro";
|
|
75672
74879
|
var file_upload_default = MoonUIFileUploadPro;
|
|
75673
|
-
init_use_subscription();
|
|
75674
74880
|
function DataTableColumnToggle({ table, trigger }) {
|
|
75675
74881
|
const [search, setSearch] = React68__default.useState("");
|
|
75676
74882
|
const columns = table.getAllColumns().filter(
|
|
@@ -77833,7 +77039,6 @@ var TableRow2 = ({
|
|
|
77833
77039
|
};
|
|
77834
77040
|
TableRow2.displayName = "TableRow";
|
|
77835
77041
|
var MoonUIDataTable = DataTable;
|
|
77836
|
-
init_use_subscription();
|
|
77837
77042
|
|
|
77838
77043
|
// src/styles/nprogress.css
|
|
77839
77044
|
styleInject("#nprogress {\n pointer-events: none;\n}\n#nprogress .bar {\n background: linear-gradient(90deg, #8b5cf6 0%, #d946ef 50%, #8b5cf6 100%);\n background-size: 200% 100%;\n animation: gradient-shift 2s ease infinite;\n position: fixed;\n z-index: 9999;\n top: 0;\n left: 0;\n width: 100%;\n height: 3px;\n box-shadow: 0 0 10px rgba(139, 92, 246, 0.5), 0 0 5px rgba(217, 70, 239, 0.5);\n}\n#nprogress .peg {\n display: block;\n position: absolute;\n right: 0px;\n width: 100px;\n height: 100%;\n box-shadow: 0 0 15px rgba(139, 92, 246, 0.7), 0 0 8px rgba(217, 70, 239, 0.7);\n opacity: 1.0;\n transform: rotate(3deg) translate(0px, -4px);\n}\n#nprogress .spinner {\n display: none;\n}\n@keyframes gradient-shift {\n 0% {\n background-position: 0% 50%;\n }\n 50% {\n background-position: 100% 50%;\n }\n 100% {\n background-position: 0% 50%;\n }\n}\n.dark #nprogress .bar {\n background: linear-gradient(90deg, #a78bfa 0%, #e879f9 50%, #a78bfa 100%);\n box-shadow: 0 0 15px rgba(167, 139, 250, 0.6), 0 0 8px rgba(232, 121, 249, 0.6);\n}\n.dark #nprogress .peg {\n box-shadow: 0 0 20px rgba(167, 139, 250, 0.8), 0 0 10px rgba(232, 121, 249, 0.8);\n}\n");
|
|
@@ -78484,7 +77689,6 @@ function Sidebar(props) {
|
|
|
78484
77689
|
}
|
|
78485
77690
|
return /* @__PURE__ */ jsx(SidebarInternal, { ...props });
|
|
78486
77691
|
}
|
|
78487
|
-
init_use_subscription();
|
|
78488
77692
|
function useNavbarScroll({
|
|
78489
77693
|
sticky = true,
|
|
78490
77694
|
hideOnScroll = false,
|
|
@@ -79537,7 +78741,6 @@ function Navbar(props) {
|
|
|
79537
78741
|
}
|
|
79538
78742
|
return /* @__PURE__ */ jsx(NavbarInternal, { ...props });
|
|
79539
78743
|
}
|
|
79540
|
-
init_use_subscription();
|
|
79541
78744
|
var FormWizardContext = createContext(null);
|
|
79542
78745
|
var useFormWizard = () => {
|
|
79543
78746
|
const context = useContext(FormWizardContext);
|
|
@@ -80288,7 +79491,6 @@ var MoonUIFormWizardPro = React68__default.forwardRef(
|
|
|
80288
79491
|
);
|
|
80289
79492
|
MoonUIFormWizardPro.displayName = "MoonUIFormWizardPro";
|
|
80290
79493
|
var FormWizard = MoonUIFormWizardPro;
|
|
80291
|
-
init_use_subscription();
|
|
80292
79494
|
function shuffleArray(array) {
|
|
80293
79495
|
const shuffled = [...array];
|
|
80294
79496
|
for (let i = shuffled.length - 1; i > 0; i--) {
|
|
@@ -80964,7 +80166,6 @@ var MoonUICreditCardInputPro = React68__default.forwardRef(({
|
|
|
80964
80166
|
] });
|
|
80965
80167
|
});
|
|
80966
80168
|
MoonUICreditCardInputPro.displayName = "MoonUICreditCardInputPro";
|
|
80967
|
-
init_use_subscription();
|
|
80968
80169
|
var quizFormVariants = cva(
|
|
80969
80170
|
"relative w-full rounded-lg border bg-card text-card-foreground shadow-sm",
|
|
80970
80171
|
{
|
|
@@ -81586,7 +80787,6 @@ var MoonUIQuizFormPro2 = React68__default.forwardRef((props, ref) => {
|
|
|
81586
80787
|
return /* @__PURE__ */ jsx(MoonUIQuizFormProInternal, { ...props, ref });
|
|
81587
80788
|
});
|
|
81588
80789
|
MoonUIQuizFormPro2.displayName = "MoonUIQuizFormPro";
|
|
81589
|
-
init_use_subscription();
|
|
81590
80790
|
var sizeClasses = {
|
|
81591
80791
|
sm: "text-2xl md:text-3xl",
|
|
81592
80792
|
md: "text-3xl md:text-4xl",
|
|
@@ -81900,9 +81100,6 @@ var GlitchText = (props) => {
|
|
|
81900
81100
|
}
|
|
81901
81101
|
return /* @__PURE__ */ jsx(GlitchTextInternal, { ...props });
|
|
81902
81102
|
};
|
|
81903
|
-
|
|
81904
|
-
// src/components/text-animations/shiny-text.tsx
|
|
81905
|
-
init_use_subscription();
|
|
81906
81103
|
function ShinyTextInternal({
|
|
81907
81104
|
text,
|
|
81908
81105
|
disabled = false,
|
|
@@ -81968,7 +81165,6 @@ function ShinyText(props) {
|
|
|
81968
81165
|
}
|
|
81969
81166
|
return /* @__PURE__ */ jsx(ShinyTextInternal, { ...props });
|
|
81970
81167
|
}
|
|
81971
|
-
init_use_subscription();
|
|
81972
81168
|
var textRevealVariants = cva(
|
|
81973
81169
|
"relative overflow-hidden",
|
|
81974
81170
|
{
|
|
@@ -82190,7 +81386,6 @@ var TextReveal = React68__default.forwardRef(
|
|
|
82190
81386
|
}
|
|
82191
81387
|
);
|
|
82192
81388
|
TextReveal.displayName = "TextReveal";
|
|
82193
|
-
init_use_subscription();
|
|
82194
81389
|
var TypewriterTextInternal = ({
|
|
82195
81390
|
text,
|
|
82196
81391
|
speed = 100,
|
|
@@ -82267,7 +81462,6 @@ var TypewriterText = (props) => {
|
|
|
82267
81462
|
return /* @__PURE__ */ jsx(TypewriterTextInternal, { ...props });
|
|
82268
81463
|
};
|
|
82269
81464
|
TypewriterText.displayName = "TypewriterText";
|
|
82270
|
-
init_use_subscription();
|
|
82271
81465
|
var ScrambledTextInternal = ({
|
|
82272
81466
|
text,
|
|
82273
81467
|
speed = 50,
|
|
@@ -82375,7 +81569,6 @@ var ScrambledText = (props) => {
|
|
|
82375
81569
|
return /* @__PURE__ */ jsx(ScrambledTextInternal, { ...props });
|
|
82376
81570
|
};
|
|
82377
81571
|
ScrambledText.displayName = "ScrambledText";
|
|
82378
|
-
init_use_subscription();
|
|
82379
81572
|
var avatarVariants = cva(
|
|
82380
81573
|
"relative inline-flex shrink-0 overflow-hidden font-semibold transition-all",
|
|
82381
81574
|
{
|
|
@@ -82850,7 +82043,6 @@ function WidgetBase({
|
|
|
82850
82043
|
}
|
|
82851
82044
|
return content;
|
|
82852
82045
|
}
|
|
82853
|
-
init_use_subscription();
|
|
82854
82046
|
function KPIWidget({
|
|
82855
82047
|
data,
|
|
82856
82048
|
title,
|
|
@@ -83052,7 +82244,6 @@ function KPIWidget({
|
|
|
83052
82244
|
}
|
|
83053
82245
|
);
|
|
83054
82246
|
}
|
|
83055
|
-
init_use_subscription();
|
|
83056
82247
|
function ChartWidget2({
|
|
83057
82248
|
data,
|
|
83058
82249
|
title,
|
|
@@ -83479,7 +82670,6 @@ function ChartWidget2({
|
|
|
83479
82670
|
}
|
|
83480
82671
|
);
|
|
83481
82672
|
}
|
|
83482
|
-
init_use_subscription();
|
|
83483
82673
|
function GaugeWidget({
|
|
83484
82674
|
data,
|
|
83485
82675
|
title,
|
|
@@ -83779,7 +82969,6 @@ function GaugeWidget({
|
|
|
83779
82969
|
}
|
|
83780
82970
|
);
|
|
83781
82971
|
}
|
|
83782
|
-
init_use_subscription();
|
|
83783
82972
|
function FunnelWidget({
|
|
83784
82973
|
data,
|
|
83785
82974
|
title,
|
|
@@ -84139,7 +83328,6 @@ function FunnelWidget({
|
|
|
84139
83328
|
}
|
|
84140
83329
|
);
|
|
84141
83330
|
}
|
|
84142
|
-
init_use_subscription();
|
|
84143
83331
|
function RevenueWidget({
|
|
84144
83332
|
data,
|
|
84145
83333
|
title,
|
|
@@ -84584,7 +83772,6 @@ function RevenueWidget({
|
|
|
84584
83772
|
}
|
|
84585
83773
|
);
|
|
84586
83774
|
}
|
|
84587
|
-
init_use_subscription();
|
|
84588
83775
|
function ServerMonitorWidget({
|
|
84589
83776
|
data,
|
|
84590
83777
|
title,
|
|
@@ -84976,9 +84163,6 @@ function ServerMonitorWidget({
|
|
|
84976
84163
|
}
|
|
84977
84164
|
);
|
|
84978
84165
|
}
|
|
84979
|
-
|
|
84980
|
-
// src/components/layouts/bento-grid.tsx
|
|
84981
|
-
init_use_subscription();
|
|
84982
84166
|
var gapSizes = {
|
|
84983
84167
|
sm: "gap-2",
|
|
84984
84168
|
md: "gap-4",
|
|
@@ -85106,7 +84290,6 @@ BentoGrid.Item = (props) => {
|
|
|
85106
84290
|
var BentoGridItem = BentoGrid.Item;
|
|
85107
84291
|
BentoGrid.displayName = "BentoGrid";
|
|
85108
84292
|
BentoGrid.Item.displayName = "BentoGrid.Item";
|
|
85109
|
-
init_use_subscription();
|
|
85110
84293
|
var ConfettiInternal = ({
|
|
85111
84294
|
active = false,
|
|
85112
84295
|
particleCount = 100,
|
|
@@ -85333,7 +84516,6 @@ var ConfettiButton = (props) => {
|
|
|
85333
84516
|
};
|
|
85334
84517
|
Confetti.displayName = "Confetti";
|
|
85335
84518
|
ConfettiButton.displayName = "ConfettiButton";
|
|
85336
|
-
init_use_subscription();
|
|
85337
84519
|
var ParallaxScrollInternal = ({
|
|
85338
84520
|
children,
|
|
85339
84521
|
speed = 0.5,
|
|
@@ -85414,7 +84596,6 @@ var ParallaxScroll = (props) => {
|
|
|
85414
84596
|
return /* @__PURE__ */ jsx(ParallaxScrollInternal, { ...props });
|
|
85415
84597
|
};
|
|
85416
84598
|
ParallaxScroll.displayName = "ParallaxScroll";
|
|
85417
|
-
init_use_subscription();
|
|
85418
84599
|
var WordRotateInternal = ({
|
|
85419
84600
|
words,
|
|
85420
84601
|
duration = 2e3,
|
|
@@ -85495,7 +84676,6 @@ var WordRotate = (props) => {
|
|
|
85495
84676
|
return /* @__PURE__ */ jsx(WordRotateInternal, { ...props });
|
|
85496
84677
|
};
|
|
85497
84678
|
WordRotate.displayName = "WordRotate";
|
|
85498
|
-
init_use_subscription();
|
|
85499
84679
|
var CursorTrailInternal = ({
|
|
85500
84680
|
trailLength = 20,
|
|
85501
84681
|
size: size4 = 8,
|
|
@@ -85643,7 +84823,6 @@ var CursorTrail = (props) => {
|
|
|
85643
84823
|
return /* @__PURE__ */ jsx(CursorTrailInternal, { ...props });
|
|
85644
84824
|
};
|
|
85645
84825
|
CursorTrail.displayName = "CursorTrail";
|
|
85646
|
-
init_use_subscription();
|
|
85647
84826
|
var GridPatternInternal = ({
|
|
85648
84827
|
width = 40,
|
|
85649
84828
|
height = 40,
|
|
@@ -85938,7 +85117,6 @@ var GridPattern = (props) => {
|
|
|
85938
85117
|
return /* @__PURE__ */ jsx(GridPatternInternal, { ...props });
|
|
85939
85118
|
};
|
|
85940
85119
|
GridPattern.displayName = "GridPattern";
|
|
85941
|
-
init_use_subscription();
|
|
85942
85120
|
var RevealCardInternal = ({
|
|
85943
85121
|
children,
|
|
85944
85122
|
trigger = "hover",
|
|
@@ -86161,9 +85339,6 @@ var RevealCard = (props) => {
|
|
|
86161
85339
|
RevealCard.displayName = "RevealCard";
|
|
86162
85340
|
RevealCards.displayName = "RevealCards";
|
|
86163
85341
|
|
|
86164
|
-
// src/components/backgrounds/meteors.tsx
|
|
86165
|
-
init_use_subscription();
|
|
86166
|
-
|
|
86167
85342
|
// src/components/backgrounds/meteors.css
|
|
86168
85343
|
styleInject('@keyframes meteor {\n 0% {\n transform: rotate(215deg) translateX(0);\n opacity: 1;\n }\n 70% {\n opacity: 1;\n }\n 100% {\n transform: rotate(215deg) translateX(-500px);\n opacity: 0;\n }\n}\n.meteor-effect {\n position: absolute;\n left: 50%;\n top: 50%;\n height: 2px;\n background: linear-gradient(to right, #64748b, transparent);\n transform: rotate(215deg);\n animation: meteor 3s linear infinite;\n}\n.meteor-effect::before {\n content: "";\n position: absolute;\n width: 4px;\n height: 4px;\n border-radius: 50%;\n margin-top: -1px;\n background: linear-gradient(to right, #64748b, transparent);\n box-shadow: 0 0 4px 2px #64748b33;\n}\n');
|
|
86169
85344
|
var MeteorsInternal = ({
|
|
@@ -86267,7 +85442,6 @@ var Meteors = (props) => {
|
|
|
86267
85442
|
return /* @__PURE__ */ jsx(MeteorsInternal, { ...props });
|
|
86268
85443
|
};
|
|
86269
85444
|
Meteors.displayName = "Meteors";
|
|
86270
|
-
init_use_subscription();
|
|
86271
85445
|
|
|
86272
85446
|
// src/components/backgrounds/aurora-background.css
|
|
86273
85447
|
styleInject("@keyframes aurora-wave-1 {\n 0%, 100% {\n transform: translateX(-50%) translateY(-50%) rotate(0deg) scale(1);\n }\n 33% {\n transform: translateX(-45%) translateY(-55%) rotate(60deg) scale(1.1);\n }\n 66% {\n transform: translateX(-55%) translateY(-45%) rotate(-60deg) scale(0.9);\n }\n}\n@keyframes aurora-wave-2 {\n 0%, 100% {\n transform: translateX(-50%) translateY(-50%) rotate(45deg) scale(1.2);\n }\n 33% {\n transform: translateX(-55%) translateY(-45%) rotate(105deg) scale(1);\n }\n 66% {\n transform: translateX(-45%) translateY(-55%) rotate(-15deg) scale(1.3);\n }\n}\n@keyframes aurora-wave-3 {\n 0%, 100% {\n transform: translateX(-50%) translateY(-50%) rotate(-45deg) scale(0.8);\n }\n 33% {\n transform: translateX(-40%) translateY(-50%) rotate(15deg) scale(1.2);\n }\n 66% {\n transform: translateX(-60%) translateY(-50%) rotate(-105deg) scale(1);\n }\n}\n@keyframes aurora-shimmer {\n 0%, 100% {\n opacity: 0.3;\n }\n 50% {\n opacity: 0.8;\n }\n}\n.aurora-layer {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 200%;\n height: 200%;\n filter: blur(80px);\n mix-blend-mode: screen;\n pointer-events: none;\n}\n.aurora-layer-1 {\n background: radial-gradient(ellipse at center, var(--aurora-color-1) 0%, transparent 60%);\n animation: aurora-wave-1 15s ease-in-out infinite;\n}\n.aurora-layer-2 {\n background: radial-gradient(ellipse at center, var(--aurora-color-2) 0%, transparent 50%);\n animation: aurora-wave-2 20s ease-in-out infinite;\n}\n.aurora-layer-3 {\n background: radial-gradient(ellipse at center, var(--aurora-color-3) 0%, transparent 70%);\n animation: aurora-wave-3 25s ease-in-out infinite;\n}\n.aurora-layer-shimmer {\n background: radial-gradient(ellipse at center, rgba(255, 255, 255, 0.1) 0%, transparent 60%);\n animation: aurora-shimmer 3s ease-in-out infinite;\n}\n.aurora-interactive .aurora-layer {\n transition: transform 0.3s ease-out;\n}\n.aurora-paused .aurora-layer {\n animation-play-state: paused !important;\n}\n");
|
|
@@ -86456,7 +85630,6 @@ var AuroraBackground = (props) => {
|
|
|
86456
85630
|
return /* @__PURE__ */ jsx(AuroraBackgroundInternal, { ...props });
|
|
86457
85631
|
};
|
|
86458
85632
|
AuroraBackground.displayName = "AuroraBackground";
|
|
86459
|
-
init_use_subscription();
|
|
86460
85633
|
var ParticlesInternal = ({
|
|
86461
85634
|
children,
|
|
86462
85635
|
className,
|
|
@@ -86777,7 +85950,6 @@ var Particles = (props) => {
|
|
|
86777
85950
|
return /* @__PURE__ */ jsx(ParticlesInternal, { ...props });
|
|
86778
85951
|
};
|
|
86779
85952
|
Particles.displayName = "Particles";
|
|
86780
|
-
init_use_subscription();
|
|
86781
85953
|
var StarfieldInternal = ({
|
|
86782
85954
|
children,
|
|
86783
85955
|
className,
|
|
@@ -87214,7 +86386,6 @@ var Starfield = (props) => {
|
|
|
87214
86386
|
return /* @__PURE__ */ jsx(StarfieldInternal, { ...props });
|
|
87215
86387
|
};
|
|
87216
86388
|
Starfield.displayName = "Starfield";
|
|
87217
|
-
init_use_subscription();
|
|
87218
86389
|
var DotPatternInternal = ({
|
|
87219
86390
|
children,
|
|
87220
86391
|
className,
|
|
@@ -87594,7 +86765,6 @@ var DotPattern = (props) => {
|
|
|
87594
86765
|
return /* @__PURE__ */ jsx(DotPatternInternal, { ...props });
|
|
87595
86766
|
};
|
|
87596
86767
|
DotPattern.displayName = "DotPattern";
|
|
87597
|
-
init_use_subscription();
|
|
87598
86768
|
var GridDistortionInternal = ({
|
|
87599
86769
|
children,
|
|
87600
86770
|
className,
|
|
@@ -87949,7 +87119,6 @@ var GridDistortion = (props) => {
|
|
|
87949
87119
|
return /* @__PURE__ */ jsx(GridDistortionInternal, { ...props });
|
|
87950
87120
|
};
|
|
87951
87121
|
GridDistortion.displayName = "GridDistortion";
|
|
87952
|
-
init_use_subscription();
|
|
87953
87122
|
var WavesInternal = ({
|
|
87954
87123
|
children,
|
|
87955
87124
|
className,
|
|
@@ -88224,7 +87393,6 @@ var Waves = (props) => {
|
|
|
88224
87393
|
return /* @__PURE__ */ jsx(WavesInternal, { ...props });
|
|
88225
87394
|
};
|
|
88226
87395
|
Waves.displayName = "Waves";
|
|
88227
|
-
init_use_subscription();
|
|
88228
87396
|
var GradientFlowInternal = ({
|
|
88229
87397
|
children,
|
|
88230
87398
|
className,
|
|
@@ -88535,7 +87703,6 @@ var GradientFlow = (props) => {
|
|
|
88535
87703
|
return /* @__PURE__ */ jsx(GradientFlowInternal, { ...props });
|
|
88536
87704
|
};
|
|
88537
87705
|
GradientFlow.displayName = "GradientFlow";
|
|
88538
|
-
init_use_subscription();
|
|
88539
87706
|
var MeshGradientInternal = ({
|
|
88540
87707
|
children,
|
|
88541
87708
|
className,
|
|
@@ -88855,7 +88022,6 @@ var MeshGradient = (props) => {
|
|
|
88855
88022
|
return /* @__PURE__ */ jsx(MeshGradientInternal, { ...props });
|
|
88856
88023
|
};
|
|
88857
88024
|
MeshGradient.displayName = "MeshGradient";
|
|
88858
|
-
init_use_subscription();
|
|
88859
88025
|
var LiquidBackgroundInternal = ({
|
|
88860
88026
|
children,
|
|
88861
88027
|
className,
|
|
@@ -89142,7 +88308,6 @@ var LiquidBackground = (props) => {
|
|
|
89142
88308
|
return /* @__PURE__ */ jsx(LiquidBackgroundInternal, { ...props });
|
|
89143
88309
|
};
|
|
89144
88310
|
LiquidBackground.displayName = "LiquidBackground";
|
|
89145
|
-
init_use_subscription();
|
|
89146
88311
|
var MatrixRainInternal = ({
|
|
89147
88312
|
children,
|
|
89148
88313
|
className,
|
|
@@ -89383,7 +88548,6 @@ var MatrixRain = (props) => {
|
|
|
89383
88548
|
return /* @__PURE__ */ jsx(MatrixRainInternal, { ...props });
|
|
89384
88549
|
};
|
|
89385
88550
|
MatrixRain.displayName = "MatrixRain";
|
|
89386
|
-
init_use_subscription();
|
|
89387
88551
|
var GlitchBackgroundInternal = ({
|
|
89388
88552
|
children,
|
|
89389
88553
|
className,
|
|
@@ -89671,7 +88835,6 @@ var GlitchBackground = (props) => {
|
|
|
89671
88835
|
return /* @__PURE__ */ jsx(GlitchBackgroundInternal, { ...props });
|
|
89672
88836
|
};
|
|
89673
88837
|
GlitchBackground.displayName = "GlitchBackground";
|
|
89674
|
-
init_use_subscription();
|
|
89675
88838
|
var FloatingElementsInternal = ({
|
|
89676
88839
|
children,
|
|
89677
88840
|
className,
|
|
@@ -89987,7 +89150,6 @@ var FloatingElements = (props) => {
|
|
|
89987
89150
|
return /* @__PURE__ */ jsx(FloatingElementsInternal, { ...props });
|
|
89988
89151
|
};
|
|
89989
89152
|
FloatingElements.displayName = "FloatingElements";
|
|
89990
|
-
init_use_subscription();
|
|
89991
89153
|
var PERFORMANCE_PRESETS = {
|
|
89992
89154
|
high: {
|
|
89993
89155
|
gradient: true,
|
|
@@ -90479,7 +89641,6 @@ var BubbleBackground = (props) => {
|
|
|
90479
89641
|
}
|
|
90480
89642
|
return /* @__PURE__ */ jsx(BubbleBackgroundInternal, { ...props });
|
|
90481
89643
|
};
|
|
90482
|
-
init_use_subscription();
|
|
90483
89644
|
var GeometricPatternsInternal = ({
|
|
90484
89645
|
children,
|
|
90485
89646
|
className,
|
|
@@ -91438,7 +90599,6 @@ var codeSnippetsPresets = {
|
|
|
91438
90599
|
multiplier: 3
|
|
91439
90600
|
}
|
|
91440
90601
|
};
|
|
91441
|
-
init_use_subscription();
|
|
91442
90602
|
var BlurFadeInternal = ({
|
|
91443
90603
|
children,
|
|
91444
90604
|
className,
|
|
@@ -91566,9 +90726,6 @@ var BlurFade = (props) => {
|
|
|
91566
90726
|
return /* @__PURE__ */ jsx(BlurFadeInternal, { ...props });
|
|
91567
90727
|
};
|
|
91568
90728
|
BlurFade.displayName = "BlurFade";
|
|
91569
|
-
|
|
91570
|
-
// src/components/effects/shimmer.tsx
|
|
91571
|
-
init_use_subscription();
|
|
91572
90729
|
var ShimmerInternal = ({
|
|
91573
90730
|
children,
|
|
91574
90731
|
className,
|
|
@@ -91709,7 +90866,6 @@ var Shimmer = (props) => {
|
|
|
91709
90866
|
return /* @__PURE__ */ jsx(ShimmerInternal, { ...props });
|
|
91710
90867
|
};
|
|
91711
90868
|
Shimmer.displayName = "Shimmer";
|
|
91712
|
-
init_use_subscription();
|
|
91713
90869
|
var RippleInternal = ({
|
|
91714
90870
|
children,
|
|
91715
90871
|
className,
|
|
@@ -91885,7 +91041,6 @@ var Ripple = (props) => {
|
|
|
91885
91041
|
return /* @__PURE__ */ jsx(RippleInternal, { ...props });
|
|
91886
91042
|
};
|
|
91887
91043
|
Ripple.displayName = "Ripple";
|
|
91888
|
-
init_use_subscription();
|
|
91889
91044
|
var SparklesInternal = ({
|
|
91890
91045
|
children,
|
|
91891
91046
|
className,
|
|
@@ -92103,7 +91258,6 @@ var Sparkles36 = (props) => {
|
|
|
92103
91258
|
return /* @__PURE__ */ jsx(SparklesInternal, { ...props });
|
|
92104
91259
|
};
|
|
92105
91260
|
Sparkles36.displayName = "Sparkles";
|
|
92106
|
-
init_use_subscription();
|
|
92107
91261
|
var SpotlightInternal = ({
|
|
92108
91262
|
children,
|
|
92109
91263
|
className,
|
|
@@ -92791,7 +91945,6 @@ var Spotlight = (props) => {
|
|
|
92791
91945
|
return /* @__PURE__ */ jsx(SpotlightInternal, { ...props });
|
|
92792
91946
|
};
|
|
92793
91947
|
Spotlight.displayName = "Spotlight";
|
|
92794
|
-
init_use_subscription();
|
|
92795
91948
|
var GlowEffectInternal = ({
|
|
92796
91949
|
children,
|
|
92797
91950
|
color = "#667eea",
|
|
@@ -93085,7 +92238,6 @@ var GlowEffect = (props) => {
|
|
|
93085
92238
|
return /* @__PURE__ */ jsx(GlowEffectInternal, { ...props });
|
|
93086
92239
|
};
|
|
93087
92240
|
GlowEffect.displayName = "GlowEffect";
|
|
93088
|
-
init_use_subscription();
|
|
93089
92241
|
var NeonEffectInternal = ({
|
|
93090
92242
|
children,
|
|
93091
92243
|
color = "#ff00ff",
|
|
@@ -93443,7 +92595,6 @@ var NeonEffect = (props) => {
|
|
|
93443
92595
|
return /* @__PURE__ */ jsx(NeonEffectInternal, { ...props });
|
|
93444
92596
|
};
|
|
93445
92597
|
NeonEffect.displayName = "NeonEffect";
|
|
93446
|
-
init_use_subscription();
|
|
93447
92598
|
var MorphingTextInternal = ({
|
|
93448
92599
|
texts,
|
|
93449
92600
|
className,
|
|
@@ -93568,7 +92719,6 @@ var MorphingText = (props) => {
|
|
|
93568
92719
|
return /* @__PURE__ */ jsx(MorphingTextInternal, { ...props });
|
|
93569
92720
|
};
|
|
93570
92721
|
MorphingText.displayName = "MorphingText";
|
|
93571
|
-
init_use_subscription();
|
|
93572
92722
|
var FlipTextInternal = ({
|
|
93573
92723
|
texts,
|
|
93574
92724
|
className,
|
|
@@ -93720,7 +92870,6 @@ var FlipText = (props) => {
|
|
|
93720
92870
|
return /* @__PURE__ */ jsx(FlipTextInternal, { ...props });
|
|
93721
92871
|
};
|
|
93722
92872
|
FlipText.displayName = "FlipText";
|
|
93723
|
-
init_use_subscription();
|
|
93724
92873
|
var NumberTickerInternal = ({
|
|
93725
92874
|
value,
|
|
93726
92875
|
className,
|
|
@@ -93873,7 +93022,6 @@ var NumberTicker = (props) => {
|
|
|
93873
93022
|
return /* @__PURE__ */ jsx(NumberTickerInternal, { ...props });
|
|
93874
93023
|
};
|
|
93875
93024
|
NumberTicker.displayName = "NumberTicker";
|
|
93876
|
-
init_use_subscription();
|
|
93877
93025
|
var WavyTextInternal = ({
|
|
93878
93026
|
text,
|
|
93879
93027
|
className,
|
|
@@ -94088,7 +93236,6 @@ var WavyText = (props) => {
|
|
|
94088
93236
|
return /* @__PURE__ */ jsx(WavyTextInternal, { ...props });
|
|
94089
93237
|
};
|
|
94090
93238
|
WavyText.displayName = "WavyText";
|
|
94091
|
-
init_use_subscription();
|
|
94092
93239
|
var GradientTextInternal = ({
|
|
94093
93240
|
text,
|
|
94094
93241
|
className,
|
|
@@ -94401,7 +93548,6 @@ var GradientText = (props) => {
|
|
|
94401
93548
|
return /* @__PURE__ */ jsx(GradientTextInternal, { ...props });
|
|
94402
93549
|
};
|
|
94403
93550
|
GradientText.displayName = "GradientText";
|
|
94404
|
-
init_use_subscription();
|
|
94405
93551
|
var Text3DInternal = ({
|
|
94406
93552
|
text,
|
|
94407
93553
|
className,
|
|
@@ -94793,9 +93939,6 @@ var Text3D = (props) => {
|
|
|
94793
93939
|
return /* @__PURE__ */ jsx(Text3DInternal, { ...props });
|
|
94794
93940
|
};
|
|
94795
93941
|
Text3D.displayName = "Text3D";
|
|
94796
|
-
|
|
94797
|
-
// src/components/shared/docs-pro-provider.tsx
|
|
94798
|
-
init_use_subscription();
|
|
94799
93942
|
function DocsProProvider({ children, componentName = "Pro Component" }) {
|
|
94800
93943
|
const { hasProAccess, isLoading } = useSubscription();
|
|
94801
93944
|
if (!isLoading && !hasProAccess) {
|
|
@@ -94810,7 +93953,6 @@ function DocsProProvider({ children, componentName = "Pro Component" }) {
|
|
|
94810
93953
|
}
|
|
94811
93954
|
return /* @__PURE__ */ jsx(Fragment, { children });
|
|
94812
93955
|
}
|
|
94813
|
-
init_use_subscription();
|
|
94814
93956
|
var debounce = (func, wait) => {
|
|
94815
93957
|
let timeout = null;
|
|
94816
93958
|
return (...args) => {
|
|
@@ -95256,7 +94398,6 @@ var MouseTrail = (props) => {
|
|
|
95256
94398
|
return /* @__PURE__ */ jsx(MouseTrailInternal, { ...props });
|
|
95257
94399
|
};
|
|
95258
94400
|
MouseTrail.displayName = "MouseTrail";
|
|
95259
|
-
init_use_subscription();
|
|
95260
94401
|
var lerp = (start, end, factor) => {
|
|
95261
94402
|
return start + (end - start) * factor;
|
|
95262
94403
|
};
|
|
@@ -95578,7 +94719,6 @@ var MagneticElements = (props) => {
|
|
|
95578
94719
|
return /* @__PURE__ */ jsx(MagneticElementsInternal, { ...props });
|
|
95579
94720
|
};
|
|
95580
94721
|
MagneticElements.displayName = "MagneticElements";
|
|
95581
|
-
init_use_subscription();
|
|
95582
94722
|
var ScrollRevealInternal = ({
|
|
95583
94723
|
children,
|
|
95584
94724
|
animation = "fade",
|
|
@@ -95884,7 +95024,6 @@ var ScrollReveal = (props) => {
|
|
|
95884
95024
|
return /* @__PURE__ */ jsx(ScrollRevealInternal, { ...props });
|
|
95885
95025
|
};
|
|
95886
95026
|
ScrollReveal.displayName = "ScrollReveal";
|
|
95887
|
-
init_use_subscription();
|
|
95888
95027
|
var BounceEffectInternal = ({
|
|
95889
95028
|
children,
|
|
95890
95029
|
trigger = "hover",
|
|
@@ -96188,7 +95327,6 @@ var BounceEffect = (props) => {
|
|
|
96188
95327
|
return /* @__PURE__ */ jsx(BounceEffectInternal, { ...props });
|
|
96189
95328
|
};
|
|
96190
95329
|
BounceEffect.displayName = "BounceEffect";
|
|
96191
|
-
init_use_subscription();
|
|
96192
95330
|
var SPRING_PRESETS = {
|
|
96193
95331
|
default: { tension: 0.4, friction: 0.3 },
|
|
96194
95332
|
gentle: { tension: 0.2, friction: 0.5 },
|
|
@@ -96621,7 +95759,6 @@ var SpringPhysics = (props) => {
|
|
|
96621
95759
|
return /* @__PURE__ */ jsx(SpringPhysicsInternal, { ...props });
|
|
96622
95760
|
};
|
|
96623
95761
|
SpringPhysics.displayName = "SpringPhysics";
|
|
96624
|
-
init_use_subscription();
|
|
96625
95762
|
var ElasticAnimationInternal = ({
|
|
96626
95763
|
children,
|
|
96627
95764
|
trigger = "hover",
|
|
@@ -96993,7 +96130,6 @@ var ElasticAnimation = (props) => {
|
|
|
96993
96130
|
return /* @__PURE__ */ jsx(ElasticAnimationInternal, { ...props });
|
|
96994
96131
|
};
|
|
96995
96132
|
ElasticAnimation.displayName = "ElasticAnimation";
|
|
96996
|
-
init_use_subscription();
|
|
96997
96133
|
var PREDEFINED_PATHS = {
|
|
96998
96134
|
circle: "M 150,150 m -100,0 a 100,100 0 1,0 200,0 a 100,100 0 1,0 -200,0",
|
|
96999
96135
|
ellipse: "M 50,150 A 100,50 0 1,1 250,150 A 100,50 0 1,1 50,150",
|
|
@@ -97418,7 +96554,6 @@ var PathAnimations = (props) => {
|
|
|
97418
96554
|
return /* @__PURE__ */ jsx(PathAnimationsInternal, { ...props });
|
|
97419
96555
|
};
|
|
97420
96556
|
PathAnimations.displayName = "PathAnimations";
|
|
97421
|
-
init_use_subscription();
|
|
97422
96557
|
var SVGAnimationsInternal = ({
|
|
97423
96558
|
children,
|
|
97424
96559
|
type = "draw",
|
|
@@ -97847,7 +96982,6 @@ var SVGAnimations = (props) => {
|
|
|
97847
96982
|
return /* @__PURE__ */ jsx(SVGAnimationsInternal, { ...props });
|
|
97848
96983
|
};
|
|
97849
96984
|
SVGAnimations.displayName = "SVGAnimations";
|
|
97850
|
-
init_use_subscription();
|
|
97851
96985
|
var FadeTransitionsInternal = ({
|
|
97852
96986
|
children,
|
|
97853
96987
|
type = "fade",
|
|
@@ -98191,7 +97325,6 @@ var FadeTransitions = (props) => {
|
|
|
98191
97325
|
return /* @__PURE__ */ jsx(FadeTransitionsInternal, { ...props });
|
|
98192
97326
|
};
|
|
98193
97327
|
FadeTransitions.displayName = "FadeTransitions";
|
|
98194
|
-
init_use_subscription();
|
|
98195
97328
|
var TouchGesturesInternal = ({
|
|
98196
97329
|
children,
|
|
98197
97330
|
swipe = true,
|
|
@@ -98562,7 +97695,6 @@ var TouchGestures = (props) => {
|
|
|
98562
97695
|
return /* @__PURE__ */ jsx(TouchGesturesInternal, { ...props });
|
|
98563
97696
|
};
|
|
98564
97697
|
TouchGestures.displayName = "TouchGestures";
|
|
98565
|
-
init_use_subscription();
|
|
98566
97698
|
var SwipeActionsInternal = ({
|
|
98567
97699
|
children,
|
|
98568
97700
|
className,
|
|
@@ -98888,7 +98020,6 @@ var SwipeActions = (props) => {
|
|
|
98888
98020
|
}
|
|
98889
98021
|
return /* @__PURE__ */ jsx(SwipeActionsInternal, { ...props });
|
|
98890
98022
|
};
|
|
98891
|
-
init_use_subscription();
|
|
98892
98023
|
var ClickAnimationsInternal = ({
|
|
98893
98024
|
children,
|
|
98894
98025
|
className,
|
|
@@ -99276,7 +98407,6 @@ var ClickAnimations = (props) => {
|
|
|
99276
98407
|
}
|
|
99277
98408
|
return /* @__PURE__ */ jsx(ClickAnimationsInternal, { ...props });
|
|
99278
98409
|
};
|
|
99279
|
-
init_use_subscription();
|
|
99280
98410
|
var FocusTransitionsInternal = forwardRef(({
|
|
99281
98411
|
children,
|
|
99282
98412
|
className,
|
|
@@ -104284,4 +103414,4 @@ export default function Component() {
|
|
|
104284
103414
|
* @credits React Bits by David H
|
|
104285
103415
|
*/
|
|
104286
103416
|
|
|
104287
|
-
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, AnimatedNumber, MoonUIAspectRatioPro as AspectRatio, AuroraBackground, MoonUIAvatarPro as Avatar, MoonUIAvatarFallbackPro as AvatarFallback, MoonUIAvatarImagePro as AvatarImage, MoonUIBadgePro as Badge, BentoGrid, BentoGridItem, BlurFade, BounceEffect, MoonUIBreadcrumbPro as Breadcrumb, MoonUIBreadcrumbEllipsisPro as BreadcrumbEllipsis, MoonUIBreadcrumbItemPro as BreadcrumbItem, MoonUIBreadcrumbLinkPro as BreadcrumbLink, MoonUIBreadcrumbListPro as BreadcrumbList, MoonUIBreadcrumbPagePro as BreadcrumbPage, MoonUIBreadcrumbSeparatorPro as BreadcrumbSeparator, BubbleBackground, MoonUIButtonPro as Button, Calendar, Calendar3 as CalendarPro, MoonUICardPro as Card, MoonUICardContentPro as CardContent, MoonUICardDescriptionPro as CardDescription, MoonUICardFooterPro as CardFooter, MoonUICardHeaderPro as CardHeader, MoonUICardTitlePro as CardTitle, ChartWidget2 as ChartWidget, MoonUICheckboxPro as Checkbox, ClaudeProvider, ClickAnimations, CodeSnippets, 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, Confetti, ConfettiButton, CursorTrail, 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, DocsPageTemplate, DocsProProvider, DotPattern, DotPatternDocsPage, 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, ElasticAnimation, ErrorBoundary, FadeTransitions, FlipText, FloatingActionButton, FloatingDock, FloatingElements, FocusTransitions, FormWizard, FormWizardNavigation, FormWizardProgress, FormWizardStep, FunnelWidget, MoonUIGalleryItemPro as GalleryItem, GaugeWidget, GeminiProvider, GeometricPatterns, GestureDrawer, GitHubStars, GlitchBackground, GlitchText, GlowCard, GlowEffect, GradientFlow, GradientText, GridDistortion, GridDistortionDocsPage, GridPattern, HealthCheck, HoverCard2 as HoverCard, HoverCard3D, HoverCardContent2 as HoverCardContent, HoverCardTrigger2 as HoverCardTrigger, MoonUIInputPro as Input, KPIWidget, Kanban, LANGUAGE_COLORS, MoonUILabelPro as Label, LazyComponent, LazyImage, LazyList, LightboxContent, LightboxProvider, LightboxTrigger, LiquidBackground, MagneticButton, MagneticElements, Marquee, MatrixRain, MoonUIMediaGalleryPro as MediaGallery, MemoryAnalytics, MemoryEfficientData, MeshGradient, Meteors, MoonUIAccordionContentPro, MoonUIAccordionItemPro, MoonUIAccordionPro, MoonUIAccordionTriggerPro, MoonUIAdvancedChartPro, MoonUIAlertDescriptionPro, MoonUIAlertPro, MoonUIAlertTitlePro, MoonUIAnimatedButtonPro, MoonUIAnimatedListPro, MoonUIAspectRatioPro, MoonUIAsyncAvatarPro, MoonUIAvatarFallbackPro, MoonUIAvatarGroupPro2 as MoonUIAvatarGroupPro, MoonUIAvatarImagePro, MoonUIAvatarPro2 as MoonUIAvatarPro, MoonUIBadgePro, MoonUIBreadcrumbEllipsisPro, MoonUIBreadcrumbItemPro, MoonUIBreadcrumbLinkPro, MoonUIBreadcrumbListPro, MoonUIBreadcrumbPagePro, MoonUIBreadcrumbPro, MoonUIBreadcrumbSeparatorPro, MoonUIButtonPro, MoonUICache, Calendar3 as MoonUICalendarPro, MoonUICardContentPro, MoonUICardDescriptionPro, MoonUICardFooterPro, MoonUICardHeaderPro, MoonUICardPro, MoonUICardTitlePro, ChartWidget2 as MoonUIChartWidget, MoonUICheckboxPro, MoonUICollapsibleContentPro, MoonUICollapsiblePro, MoonUICollapsibleTriggerPro, MoonUIColorPickerPro, MoonUICommandDialogPro, MoonUICommandEmptyPro, MoonUICommandGroupPro, MoonUICommandInputPro, MoonUICommandItemPro, MoonUICommandListPro, MoonUICommandPro, MoonUICommandSeparatorPro, MoonUICommandShortcutPro, MoonUICreditCardInputPro, Dashboard as MoonUIDashboardPro, MoonUIDataTable, DataTable as MoonUIDataTablePro, MoonUIDialogClosePro, MoonUIDialogContentPro, MoonUIDialogDescriptionPro, MoonUIDialogFooterPro, MoonUIDialogHeaderPro, MoonUIDialogPro, MoonUIDialogTitlePro, MoonUIDialogTriggerPro, DraggableList as MoonUIDraggableListPro, MoonUIDropdownMenuCheckboxItemPro, MoonUIDropdownMenuContentPro, MoonUIDropdownMenuGroupPro, MoonUIDropdownMenuItemPro, MoonUIDropdownMenuLabelPro, MoonUIDropdownMenuPortalPro, MoonUIDropdownMenuPro, MoonUIDropdownMenuRadioGroupPro, MoonUIDropdownMenuRadioItemPro, MoonUIDropdownMenuSeparatorPro, MoonUIDropdownMenuShortcutPro, MoonUIDropdownMenuSubContentPro, MoonUIDropdownMenuSubPro, MoonUIDropdownMenuSubTriggerPro, MoonUIDropdownMenuTriggerPro, file_upload_default as MoonUIFileUploadPro, MoonUIFormWizardPro, FunnelWidget as MoonUIFunnelWidget, MoonUIGalleryItemPro, GaugeWidget as MoonUIGaugeWidget, MoonUIGestureDrawerPro, MoonUIInputPro, KPIWidget as MoonUIKPIWidget, MoonUIKanbanPro, MoonUILabelPro, LightboxContent as MoonUILightboxContentPro, SimpleLightbox as MoonUILightboxPro, LightboxProvider as MoonUILightboxProviderPro, LightboxTrigger as MoonUILightboxTriggerPro, MoonUIMediaGalleryPro, MoonUIMemoryEfficientDataPro, Navbar as MoonUINavbarPro, MoonUIPaginationContentPro, MoonUIPaginationEllipsisPro, MoonUIPaginationItemPro, MoonUIPaginationLinkPro, MoonUIPaginationNextPro, MoonUIPaginationPreviousPro, MoonUIPaginationPro, PhoneNumberInput as MoonUIPhoneNumberInputPro, MoonUIPhoneNumberInputSimple, MoonUIPopoverContentPro, MoonUIPopoverPro, MoonUIPopoverTriggerPro, MoonUIProgressPro, MoonUIQuizFormPro2 as MoonUIQuizFormPro, MoonUIRadioGroupContextPro, MoonUIRadioGroupItemPro, MoonUIRadioGroupPro, MoonUIRadioItemWithLabelPro, MoonUIRadioLabelPro, RevenueWidget as MoonUIRevenueWidget, RichTextEditor as MoonUIRichTextEditorPro, MoonUISelectContentPro, MoonUISelectGroupPro, MoonUISelectItemPro, MoonUISelectLabelPro, MoonUISelectPro, MoonUISelectSeparatorPro, MoonUISelectTriggerPro, MoonUISelectValuePro, SelectableVirtualList as MoonUISelectableVirtualListPro, MoonUISeparatorPro, ServerMonitorWidget as MoonUIServerMonitorWidget, Sidebar as MoonUISidebarPro, MoonUISkeletonPro, MoonUISliderPro, MoonUISpotlightCardPro, SwipeableCard as MoonUISwipeableCardPro, MoonUISwitchPro, MoonUITableBodyPro, MoonUITableCaptionPro, MoonUITableCellPro, MoonUITableFooterPro, MoonUITableHeadPro, MoonUITableHeaderPro, MoonUITablePro, MoonUITableRowPro, MoonUITabsContentPro, MoonUITabsPro as MoonUITabsEnhanced, MoonUITabsListPro, MoonUITabsPro, MoonUITabsTriggerPro, MoonUITextareaPro, Timeline as MoonUITimelinePro, MoonUIToastPro, MoonUITogglePro, MoonUITooltipContentPro, MoonUITooltipPro, MoonUITooltipProviderPro, MoonUITooltipTriggerPro, VirtualList as MoonUIVirtualListPro, WidgetBase as MoonUIWidgetBase, MoonUIalertVariantsPro, MoonUIaspectRatioVariantsPro, MoonUIbreadcrumbVariantsPro, collapsibleContentVariants as MoonUIcollapsibleContentVariantsPro, collapsibleTriggerVariants as MoonUIcollapsibleTriggerVariantsPro, MoonUIradioGroupItemVariantsPro, MoonUItableVariantsPro, MoonUItoggleVariantsPro, MorphingText, MouseTrail, Navbar, NavigationMenu2 as NavigationMenu, NavigationMenuContent2 as NavigationMenuContent, NavigationMenuIndicator2 as NavigationMenuIndicator, NavigationMenuItem2 as NavigationMenuItem, NavigationMenuLink2 as NavigationMenuLink, NavigationMenuList2 as NavigationMenuList, NavigationMenuTrigger2 as NavigationMenuTrigger, NavigationMenuViewport2 as NavigationMenuViewport, NeonEffect, NumberTicker, OpenAIProvider, OptimizedImage, MoonUIPaginationPro as Pagination, MoonUIPaginationContentPro as PaginationContent, MoonUIPaginationEllipsisPro as PaginationEllipsis, MoonUIPaginationItemPro as PaginationItem, MoonUIPaginationLinkPro as PaginationLink, MoonUIPaginationNextPro as PaginationNext, MoonUIPaginationPreviousPro as PaginationPrevious, ParallaxScroll, Particles, PathAnimations, PerformanceDebugger, PerformanceMonitor, PhoneNumberInput, PinchZoom, MoonUIPopoverPro as Popover, MoonUIPopoverContentPro as PopoverContent, MoonUIPopoverTriggerPro as PopoverTrigger, MoonUIProgressPro as Progress, QuizForm, MoonUIRadioGroupPro as RadioGroup, MoonUIRadioGroupContextPro as RadioGroupContext, MoonUIRadioGroupItemPro as RadioGroupItem, MoonUIRadioItemWithLabelPro as RadioItemWithLabel, MoonUIRadioLabelPro as RadioLabel, RealTimePerformanceMonitor, RevealCard, RevealCards, RevenueWidget, RichTextEditor, Ripple, spotlightPresets as SPOTLIGHT_PRESETS, SVGAnimations, ScrambledText, ScrollArea, ScrollBar, ScrollReveal, 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, ServerMonitorWidget, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Shimmer, ShinyText, Sidebar, SimpleLightbox, MoonUISkeletonPro as Skeleton, MoonUISliderPro as Slider, Sparkles36 as Sparkles, SplashCursor, SplashCursorContainer, Spotlight, SpringPhysics, Starfield, SubscriptionProvider, SwipeActions, 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, Tabs, TabsContent, TabsList, TabsTrigger, Text3D, TextReveal, MoonUITextareaPro as Textarea, Timeline, MoonUIToastPro as Toast, MoonUITogglePro as Toggle, MoonUITooltipPro as Tooltip, MoonUITooltipContentPro as TooltipContent, MoonUITooltipProviderPro as TooltipProvider, MoonUITooltipTriggerPro as TooltipTrigger, TouchGestures, TypewriterText, VirtualList, Waves, WavyText, WidgetBase, WordRotate, MoonUIalertVariantsPro as alertVariants, MoonUIaspectRatioVariantsPro as aspectRatioVariants, moonUIBadgeVariantsPro as badgeVariants, MoonUIbreadcrumbVariantsPro as breadcrumbVariants, moonUIButtonProVariants as buttonVariants, clearCache, cn, codeSnippetsPresets, collapsibleContentVariants, collapsibleTriggerVariants, commandVariantsPro, createAIProvider, dotPatternConfig, forceRefresh, galleryItemVariants, galleryVariants, geometricPatternsConfig, getExpandableColumn, gradientFlowConfig, gridDistortionConfig, hoverCard3DVariants, liquidBackgroundConfig, meshGradientConfig, moonUIAnimatedButtonProVariants, badgeVariants as moonUIAvatarBadgeVariants, avatarVariants as moonUIAvatarProVariants, statusVariants as moonUIAvatarStatusVariants, moonUIBadgeVariantsPro, moonUIButtonProVariants, gestureDrawerVariants as moonUIGestureDrawerProVariants, moonUISeparatorVariantsPro, navigationMenuTriggerStyle, countries as phoneCountries, MoonUIradioGroupItemVariantsPro as radioGroupItemVariants, moonUISeparatorVariantsPro as separatorVariants, spotlightPresets, MoonUItableVariantsPro as tableVariants, MoonUItoggleVariantsPro as toggleVariants, useAccordionAnalytics, useCollapsibleAnalytics, useExpandableRows, useFormWizard, useStreamingData, useSubscription, useSubscriptionContext, useVirtualList, wavesConfig };
|
|
103417
|
+
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, AnimatedNumber, MoonUIAspectRatioPro as AspectRatio, AuroraBackground, MoonUIAvatarPro as Avatar, MoonUIAvatarFallbackPro as AvatarFallback, MoonUIAvatarImagePro as AvatarImage, MoonUIBadgePro as Badge, BentoGrid, BentoGridItem, BlurFade, BounceEffect, MoonUIBreadcrumbPro as Breadcrumb, MoonUIBreadcrumbEllipsisPro as BreadcrumbEllipsis, MoonUIBreadcrumbItemPro as BreadcrumbItem, MoonUIBreadcrumbLinkPro as BreadcrumbLink, MoonUIBreadcrumbListPro as BreadcrumbList, MoonUIBreadcrumbPagePro as BreadcrumbPage, MoonUIBreadcrumbSeparatorPro as BreadcrumbSeparator, BubbleBackground, MoonUIButtonPro as Button, Calendar, Calendar3 as CalendarPro, MoonUICardPro as Card, MoonUICardContentPro as CardContent, MoonUICardDescriptionPro as CardDescription, MoonUICardFooterPro as CardFooter, MoonUICardHeaderPro as CardHeader, MoonUICardTitlePro as CardTitle, ChartWidget2 as ChartWidget, MoonUICheckboxPro as Checkbox, ClaudeProvider, ClickAnimations, CodeSnippets, 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, Confetti, ConfettiButton, CursorTrail, 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, DocsPageTemplate, DocsProProvider, DotPattern, DotPatternDocsPage, 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, ElasticAnimation, ErrorBoundary, FadeTransitions, FlipText, FloatingActionButton, FloatingDock, FloatingElements, FocusTransitions, FormWizard, FormWizardNavigation, FormWizardProgress, FormWizardStep, FunnelWidget, MoonUIGalleryItemPro as GalleryItem, GaugeWidget, GeminiProvider, GeometricPatterns, GestureDrawer, GitHubStars, GlitchBackground, GlitchText, GlowCard, GlowEffect, GradientFlow, GradientText, GridDistortion, GridDistortionDocsPage, GridPattern, HealthCheck, HoverCard2 as HoverCard, HoverCard3D, HoverCardContent2 as HoverCardContent, HoverCardTrigger2 as HoverCardTrigger, MoonUIInputPro as Input, KPIWidget, Kanban, LANGUAGE_COLORS, MoonUILabelPro as Label, LazyComponent, LazyImage, LazyList, LightboxContent, LightboxProvider, LightboxTrigger, LiquidBackground, MagneticButton, MagneticElements, Marquee, MatrixRain, MoonUIMediaGalleryPro as MediaGallery, MemoryAnalytics, MemoryEfficientData, MeshGradient, Meteors, MoonUIAccordionContentPro, MoonUIAccordionItemPro, MoonUIAccordionPro, MoonUIAccordionTriggerPro, MoonUIAdvancedChartPro, MoonUIAlertDescriptionPro, MoonUIAlertPro, MoonUIAlertTitlePro, MoonUIAnimatedButtonPro, MoonUIAnimatedListPro, MoonUIAspectRatioPro, MoonUIAsyncAvatarPro, MoonUIAvatarFallbackPro, MoonUIAvatarGroupPro2 as MoonUIAvatarGroupPro, MoonUIAvatarImagePro, MoonUIAvatarPro2 as MoonUIAvatarPro, MoonUIBadgePro, MoonUIBreadcrumbEllipsisPro, MoonUIBreadcrumbItemPro, MoonUIBreadcrumbLinkPro, MoonUIBreadcrumbListPro, MoonUIBreadcrumbPagePro, MoonUIBreadcrumbPro, MoonUIBreadcrumbSeparatorPro, MoonUIButtonPro, Calendar3 as MoonUICalendarPro, MoonUICardContentPro, MoonUICardDescriptionPro, MoonUICardFooterPro, MoonUICardHeaderPro, MoonUICardPro, MoonUICardTitlePro, ChartWidget2 as MoonUIChartWidget, MoonUICheckboxPro, MoonUICollapsibleContentPro, MoonUICollapsiblePro, MoonUICollapsibleTriggerPro, MoonUIColorPickerPro, MoonUICommandDialogPro, MoonUICommandEmptyPro, MoonUICommandGroupPro, MoonUICommandInputPro, MoonUICommandItemPro, MoonUICommandListPro, MoonUICommandPro, MoonUICommandSeparatorPro, MoonUICommandShortcutPro, MoonUICreditCardInputPro, Dashboard as MoonUIDashboardPro, MoonUIDataTable, DataTable as MoonUIDataTablePro, MoonUIDialogClosePro, MoonUIDialogContentPro, MoonUIDialogDescriptionPro, MoonUIDialogFooterPro, MoonUIDialogHeaderPro, MoonUIDialogPro, MoonUIDialogTitlePro, MoonUIDialogTriggerPro, DraggableList as MoonUIDraggableListPro, MoonUIDropdownMenuCheckboxItemPro, MoonUIDropdownMenuContentPro, MoonUIDropdownMenuGroupPro, MoonUIDropdownMenuItemPro, MoonUIDropdownMenuLabelPro, MoonUIDropdownMenuPortalPro, MoonUIDropdownMenuPro, MoonUIDropdownMenuRadioGroupPro, MoonUIDropdownMenuRadioItemPro, MoonUIDropdownMenuSeparatorPro, MoonUIDropdownMenuShortcutPro, MoonUIDropdownMenuSubContentPro, MoonUIDropdownMenuSubPro, MoonUIDropdownMenuSubTriggerPro, MoonUIDropdownMenuTriggerPro, file_upload_default as MoonUIFileUploadPro, MoonUIFormWizardPro, FunnelWidget as MoonUIFunnelWidget, MoonUIGalleryItemPro, GaugeWidget as MoonUIGaugeWidget, MoonUIGestureDrawerPro, MoonUIInputPro, KPIWidget as MoonUIKPIWidget, MoonUIKanbanPro, MoonUILabelPro, LightboxContent as MoonUILightboxContentPro, SimpleLightbox as MoonUILightboxPro, LightboxProvider as MoonUILightboxProviderPro, LightboxTrigger as MoonUILightboxTriggerPro, MoonUIMediaGalleryPro, MoonUIMemoryEfficientDataPro, Navbar as MoonUINavbarPro, MoonUIPaginationContentPro, MoonUIPaginationEllipsisPro, MoonUIPaginationItemPro, MoonUIPaginationLinkPro, MoonUIPaginationNextPro, MoonUIPaginationPreviousPro, MoonUIPaginationPro, PhoneNumberInput as MoonUIPhoneNumberInputPro, MoonUIPhoneNumberInputSimple, MoonUIPopoverContentPro, MoonUIPopoverPro, MoonUIPopoverTriggerPro, MoonUIProgressPro, MoonUIQuizFormPro2 as MoonUIQuizFormPro, MoonUIRadioGroupContextPro, MoonUIRadioGroupItemPro, MoonUIRadioGroupPro, MoonUIRadioItemWithLabelPro, MoonUIRadioLabelPro, RevenueWidget as MoonUIRevenueWidget, RichTextEditor as MoonUIRichTextEditorPro, MoonUISelectContentPro, MoonUISelectGroupPro, MoonUISelectItemPro, MoonUISelectLabelPro, MoonUISelectPro, MoonUISelectSeparatorPro, MoonUISelectTriggerPro, MoonUISelectValuePro, SelectableVirtualList as MoonUISelectableVirtualListPro, MoonUISeparatorPro, ServerMonitorWidget as MoonUIServerMonitorWidget, Sidebar as MoonUISidebarPro, MoonUISkeletonPro, MoonUISliderPro, MoonUISpotlightCardPro, SwipeableCard as MoonUISwipeableCardPro, MoonUISwitchPro, MoonUITableBodyPro, MoonUITableCaptionPro, MoonUITableCellPro, MoonUITableFooterPro, MoonUITableHeadPro, MoonUITableHeaderPro, MoonUITablePro, MoonUITableRowPro, MoonUITabsContentPro, MoonUITabsPro as MoonUITabsEnhanced, MoonUITabsListPro, MoonUITabsPro, MoonUITabsTriggerPro, MoonUITextareaPro, Timeline as MoonUITimelinePro, MoonUIToastPro, MoonUITogglePro, MoonUITooltipContentPro, MoonUITooltipPro, MoonUITooltipProviderPro, MoonUITooltipTriggerPro, VirtualList as MoonUIVirtualListPro, WidgetBase as MoonUIWidgetBase, MoonUIalertVariantsPro, MoonUIaspectRatioVariantsPro, MoonUIbreadcrumbVariantsPro, collapsibleContentVariants as MoonUIcollapsibleContentVariantsPro, collapsibleTriggerVariants as MoonUIcollapsibleTriggerVariantsPro, MoonUIradioGroupItemVariantsPro, MoonUItableVariantsPro, MoonUItoggleVariantsPro, MorphingText, MouseTrail, Navbar, NavigationMenu2 as NavigationMenu, NavigationMenuContent2 as NavigationMenuContent, NavigationMenuIndicator2 as NavigationMenuIndicator, NavigationMenuItem2 as NavigationMenuItem, NavigationMenuLink2 as NavigationMenuLink, NavigationMenuList2 as NavigationMenuList, NavigationMenuTrigger2 as NavigationMenuTrigger, NavigationMenuViewport2 as NavigationMenuViewport, NeonEffect, NumberTicker, OpenAIProvider, OptimizedImage, MoonUIPaginationPro as Pagination, MoonUIPaginationContentPro as PaginationContent, MoonUIPaginationEllipsisPro as PaginationEllipsis, MoonUIPaginationItemPro as PaginationItem, MoonUIPaginationLinkPro as PaginationLink, MoonUIPaginationNextPro as PaginationNext, MoonUIPaginationPreviousPro as PaginationPrevious, ParallaxScroll, Particles, PathAnimations, PerformanceDebugger, PerformanceMonitor, PhoneNumberInput, PinchZoom, MoonUIPopoverPro as Popover, MoonUIPopoverContentPro as PopoverContent, MoonUIPopoverTriggerPro as PopoverTrigger, MoonUIProgressPro as Progress, QuizForm, MoonUIRadioGroupPro as RadioGroup, MoonUIRadioGroupContextPro as RadioGroupContext, MoonUIRadioGroupItemPro as RadioGroupItem, MoonUIRadioItemWithLabelPro as RadioItemWithLabel, MoonUIRadioLabelPro as RadioLabel, RealTimePerformanceMonitor, RevealCard, RevealCards, RevenueWidget, RichTextEditor, Ripple, spotlightPresets as SPOTLIGHT_PRESETS, SVGAnimations, ScrambledText, ScrollArea, ScrollBar, ScrollReveal, 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, ServerMonitorWidget, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Shimmer, ShinyText, Sidebar, SimpleLightbox, MoonUISkeletonPro as Skeleton, MoonUISliderPro as Slider, Sparkles36 as Sparkles, SplashCursor, SplashCursorContainer, Spotlight, SpringPhysics, Starfield, SubscriptionProvider, SwipeActions, 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, Tabs, TabsContent, TabsList, TabsTrigger, Text3D, TextReveal, MoonUITextareaPro as Textarea, Timeline, MoonUIToastPro as Toast, MoonUITogglePro as Toggle, MoonUITooltipPro as Tooltip, MoonUITooltipContentPro as TooltipContent, MoonUITooltipProviderPro as TooltipProvider, MoonUITooltipTriggerPro as TooltipTrigger, TouchGestures, TypewriterText, VirtualList, Waves, WavyText, WidgetBase, WordRotate, MoonUIalertVariantsPro as alertVariants, MoonUIaspectRatioVariantsPro as aspectRatioVariants, moonUIBadgeVariantsPro as badgeVariants, MoonUIbreadcrumbVariantsPro as breadcrumbVariants, moonUIButtonProVariants as buttonVariants, clearAuth, clearAuth as clearAuthV2, cn, codeSnippetsPresets, collapsibleContentVariants, collapsibleTriggerVariants, commandVariantsPro, createAIProvider, dotPatternConfig, forceRefresh, forceRefresh as forceRefreshV2, galleryItemVariants, galleryVariants, geometricPatternsConfig, getExpandableColumn, gradientFlowConfig, gridDistortionConfig, hoverCard3DVariants, liquidBackgroundConfig, meshGradientConfig, moonUIAnimatedButtonProVariants, badgeVariants as moonUIAvatarBadgeVariants, avatarVariants as moonUIAvatarProVariants, statusVariants as moonUIAvatarStatusVariants, moonUIBadgeVariantsPro, moonUIButtonProVariants, gestureDrawerVariants as moonUIGestureDrawerProVariants, moonUISeparatorVariantsPro, navigationMenuTriggerStyle, countries as phoneCountries, MoonUIradioGroupItemVariantsPro as radioGroupItemVariants, moonUISeparatorVariantsPro as separatorVariants, spotlightPresets, MoonUItableVariantsPro as tableVariants, MoonUItoggleVariantsPro as toggleVariants, useAccordionAnalytics, useCollapsibleAnalytics, useExpandableRows, useFormWizard, useStreamingData, useSubscription, useSubscriptionContext, useSubscription as useSubscriptionV2, useVirtualList, wavesConfig };
|