@framed-dev/react 0.2.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +62 -233
- package/dist/index.cjs +17247 -73617
- package/dist/index.cjs.map +1 -0
- package/dist/index.js +17269 -73202
- package/dist/index.js.map +1 -0
- package/package.json +17 -65
- package/dist/index.d.cts +0 -761
- package/dist/index.d.ts +0 -761
- package/dist/styles/framed.css +0 -6474
- package/styles.css +0 -525
- package/tailwind.config.js +0 -207
- package/tailwind.preset.js +0 -86
package/dist/index.d.cts
DELETED
|
@@ -1,761 +0,0 @@
|
|
|
1
|
-
import { ComponentType, ReactNode } from 'react';
|
|
2
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
3
|
-
import { FramedConfig, Session, WidgetDataLayer, SupabaseClient, FramedApiClient, WizardCallbacks, Task, LimitStatus, WidgetFeatures, AuthConfig, FeedbackComment, TaskStatus, SyncResult } from '@framed-dev/core';
|
|
4
|
-
export { AIConfig, AIFeatureResult, AnnotationData, AnnotationMode, Assignment, Attachment, AuthConfig, AuthMode, Comment, ElementInfo, FeedbackComment, FeedbackInfo, FramedApiClient, FramedConfig, LimitStatus, Mention, PageInfo, PendingAttachment, Position, SDKConfig, Session, SyncConfig, SyncResult, Task, TaskInfo, TaskStatus, TaskType, TranslationResult, UsageLimits, ViewportMode, WidgetConfig, WidgetDataLayer, WidgetFeatures, WizardCallbacks, createWizardCallbacks, getUserSupabase, initUserSupabase, isSupabaseInitialized, translateContent, uploadFile, uploadFont, uploadLogo } from '@framed-dev/core';
|
|
5
|
-
import { SupabaseClient as SupabaseClient$1 } from '@supabase/supabase-js';
|
|
6
|
-
export { AIQuestionRenderer, AISuggestionState, AreaAnnotationOverlay, Badge, Button, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, ChatModal, ChatModalProps, Collapsible, CollapsibleContent, CollapsibleTrigger, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, ElementSelector, ElementSelectorProps, ExportModal, ExportModalProps, FeedbackDrawer, FeedbackDrawerProps, FeedbackOverviewContent, Input, Label, LivePreviewPanelProps, LocalizedContent, MultiSelectOverlay, Phase2Layout, Phase2MobilePreviewTrigger, Phase2MobileSidebarTrigger, Phase2NavigationFooter, Phase2PreviewPanel, Phase2SectionHeader, Phase2Sidebar, Phase2StatusBadge, Phase2StatusIndicator, Phase4Layout, Phase4MobileFeedbackTrigger, Phase4MobileSidebarTrigger, Phase4ReviewLayout, Phase4Sidebar, ProjectContextInput, ProjectIdeaInput, ProjectTypeSelector, QuickInput, QuickInputProps, RegionSelectOverlay, RichTextEditor, RichTextEditorProps, RichTextEditorRef, ScrollArea, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, Separator, Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle, SheetTrigger, Skeleton, TextEditOverlay, TextEditOverlayProps, Textarea, ToastAction, ToastClose, ToastDescription, ToastProvider, ToastTitle, ToastViewport, Toaster, Toolbar, ToolbarProps, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, Widget, WidgetProps, cn, toast, useToast } from '@framed/widget-core';
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Type declarations for the compiled framed-lib bundle.
|
|
10
|
-
*
|
|
11
|
-
* The framed-app library is built without TypeScript declarations (dts: false)
|
|
12
|
-
* due to TipTap type incompatibilities. This file provides type declarations
|
|
13
|
-
* for the SDK to re-export the library.
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
// ============================================
|
|
19
|
-
// SUPABASE
|
|
20
|
-
// ============================================
|
|
21
|
-
declare function initSupabase$1(url: string, anonKey: string): any;
|
|
22
|
-
declare function getSupabase$1(): any;
|
|
23
|
-
declare const supabase$1: any;
|
|
24
|
-
|
|
25
|
-
// ============================================
|
|
26
|
-
// CONTEXTS
|
|
27
|
-
// ============================================
|
|
28
|
-
declare const AuthProvider$1: ComponentType<{ children: ReactNode }>;
|
|
29
|
-
declare function useAuth$1(): any;
|
|
30
|
-
|
|
31
|
-
// ============================================
|
|
32
|
-
// HOOKS
|
|
33
|
-
// ============================================
|
|
34
|
-
// Core UI hooks
|
|
35
|
-
declare function useIsMobile(): boolean;
|
|
36
|
-
|
|
37
|
-
// Project & Agency hooks
|
|
38
|
-
declare function useProject(projectId?: string): any;
|
|
39
|
-
declare function useAgency(agencyId?: string | null): any;
|
|
40
|
-
declare function useAutoSave(projectId: string, debounceMs?: number): any;
|
|
41
|
-
declare function usePhaseAccess(project: any, requiredPhase: number, projectId: string): void;
|
|
42
|
-
declare function useProjectAccess(projectId: string): any;
|
|
43
|
-
declare function useProjectMembers(projectId: string): any;
|
|
44
|
-
declare function useProjectSettings(projectId: string): any;
|
|
45
|
-
declare function useProjectShares(projectId: string): any;
|
|
46
|
-
declare function useShareAccess(shareToken?: string): any;
|
|
47
|
-
declare function useModuleUsage(agencyId: string): any;
|
|
48
|
-
|
|
49
|
-
// Phase 4 hooks
|
|
50
|
-
declare function usePhase2Navigation(pages: any[], onPageSelect: (id: string) => void): any;
|
|
51
|
-
declare function usePhase4Navigation(pages: any[], onPageSelect: (id: string) => void): any;
|
|
52
|
-
declare function useFeedbackValidation(): any;
|
|
53
|
-
|
|
54
|
-
// Phase 5 hooks
|
|
55
|
-
declare function useMaintenanceItems(projectId: string | undefined, agencyId?: string): any;
|
|
56
|
-
declare function useMeetingNotes(projectId: string): any;
|
|
57
|
-
declare function useTimeTracking(projectId: string): any;
|
|
58
|
-
declare function useChangelog(projectId: string): any;
|
|
59
|
-
declare function useDomainMonitoring(projectId: string): any;
|
|
60
|
-
declare function useUptimeMonitoring(projectId: string): any;
|
|
61
|
-
declare function useMonthlyReports(projectId: string): any;
|
|
62
|
-
declare function useImprovementSuggestions(projectId: string): any;
|
|
63
|
-
declare function useInternalNotes(projectId: string): any;
|
|
64
|
-
declare function useTaskOverview(projectId: string): any;
|
|
65
|
-
declare function useSiteAnalytics(projectId: string): any;
|
|
66
|
-
|
|
67
|
-
// Monitoring & Analysis hooks
|
|
68
|
-
declare function usePerformanceAnalysis(projectId: string): any;
|
|
69
|
-
declare function useSeoAudit(projectId: string): any;
|
|
70
|
-
|
|
71
|
-
// Notification hooks
|
|
72
|
-
declare function useNotifications(): any;
|
|
73
|
-
declare function usePushNotifications(): any;
|
|
74
|
-
|
|
75
|
-
// Session hooks
|
|
76
|
-
declare function useAnonymousSession(): any;
|
|
77
|
-
|
|
78
|
-
// Super Admin hooks
|
|
79
|
-
declare function useSuperAdminMetrics(): any;
|
|
80
|
-
declare function useAbuseIncidents(): any;
|
|
81
|
-
declare function useCostMetrics(): any;
|
|
82
|
-
declare const Tabs: ComponentType<any>;
|
|
83
|
-
declare const TabsContent: ComponentType<any>;
|
|
84
|
-
declare const TabsList: ComponentType<any>;
|
|
85
|
-
declare const TabsTrigger: ComponentType<any>;
|
|
86
|
-
declare const Checkbox: ComponentType<any>;
|
|
87
|
-
declare const Progress: ComponentType<any>;
|
|
88
|
-
declare const Avatar: ComponentType<any>;
|
|
89
|
-
declare const AvatarFallback: ComponentType<any>;
|
|
90
|
-
declare const AvatarImage: ComponentType<any>;
|
|
91
|
-
declare const DropdownMenuLabel: ComponentType<any>;
|
|
92
|
-
declare const DropdownMenuSeparator: ComponentType<any>;
|
|
93
|
-
declare const Popover: ComponentType<any>;
|
|
94
|
-
declare const PopoverContent: ComponentType<any>;
|
|
95
|
-
declare const PopoverTrigger: ComponentType<any>;
|
|
96
|
-
declare const Switch: ComponentType<any>;
|
|
97
|
-
declare const Table: ComponentType<any>;
|
|
98
|
-
declare const TableBody: ComponentType<any>;
|
|
99
|
-
declare const TableCell: ComponentType<any>;
|
|
100
|
-
declare const TableHead: ComponentType<any>;
|
|
101
|
-
declare const TableHeader: ComponentType<any>;
|
|
102
|
-
declare const TableRow: ComponentType<any>;
|
|
103
|
-
declare const Slider: ComponentType<any>;
|
|
104
|
-
declare const Alert: ComponentType<any>;
|
|
105
|
-
declare const AlertDescription: ComponentType<any>;
|
|
106
|
-
declare const AlertTitle: ComponentType<any>;
|
|
107
|
-
declare const RadioGroup: ComponentType<any>;
|
|
108
|
-
declare const RadioGroupItem: ComponentType<any>;
|
|
109
|
-
|
|
110
|
-
// Additional UI components
|
|
111
|
-
declare const Calendar: ComponentType<any>;
|
|
112
|
-
declare const Command: ComponentType<any>;
|
|
113
|
-
declare const CommandEmpty: ComponentType<any>;
|
|
114
|
-
declare const CommandGroup: ComponentType<any>;
|
|
115
|
-
declare const CommandInput: ComponentType<any>;
|
|
116
|
-
declare const CommandItem: ComponentType<any>;
|
|
117
|
-
declare const CommandList: ComponentType<any>;
|
|
118
|
-
|
|
119
|
-
// ============================================
|
|
120
|
-
// PAGE COMPONENTS
|
|
121
|
-
// ============================================
|
|
122
|
-
declare const Dashboard: ComponentType<any>;
|
|
123
|
-
declare const WizardPhase1New: ComponentType<any>;
|
|
124
|
-
declare const WizardPhase2New: ComponentType<any>;
|
|
125
|
-
declare const WizardPhaseOverview: ComponentType<any>;
|
|
126
|
-
declare const WizardPhase4New: ComponentType<any>;
|
|
127
|
-
declare const WizardPhase5New: ComponentType<any>;
|
|
128
|
-
declare const WizardBuildSpec: ComponentType<any>;
|
|
129
|
-
declare const FeedbackRoundManager: ComponentType<any>;
|
|
130
|
-
declare const CommentThreadPanel: ComponentType<any>;
|
|
131
|
-
declare const ScreenshotViewer: ComponentType<any>;
|
|
132
|
-
declare const PageBrowser: ComponentType<any>;
|
|
133
|
-
declare const ImageReviewPanel: ComponentType<any>;
|
|
134
|
-
declare const TextEditPanel: ComponentType<any>;
|
|
135
|
-
declare const DiffViewer: ComponentType<any>;
|
|
136
|
-
declare const FeedbackFilters: ComponentType<any>;
|
|
137
|
-
declare const ApprovalWorkflow: ComponentType<any>;
|
|
138
|
-
|
|
139
|
-
// ============================================
|
|
140
|
-
// PHASE 5 COMPONENTS
|
|
141
|
-
// ============================================
|
|
142
|
-
declare const KanbanBoard: ComponentType<any>;
|
|
143
|
-
declare const MaintenanceItemCard: ComponentType<any>;
|
|
144
|
-
declare const TimeTrackingPanel: ComponentType<any>;
|
|
145
|
-
declare const HourPackagesPanel: ComponentType<any>;
|
|
146
|
-
declare const ChangelogPanel: ComponentType<any>;
|
|
147
|
-
declare const DomainMonitoringPanel: ComponentType<any>;
|
|
148
|
-
declare const UptimeMonitoringPanel: ComponentType<any>;
|
|
149
|
-
declare const MonthlyReportPanel: ComponentType<any>;
|
|
150
|
-
declare const ImprovementSuggestionsPanel: ComponentType<any>;
|
|
151
|
-
declare const InboxView: ComponentType<any>;
|
|
152
|
-
declare const Phase5Sidebar: ComponentType<any>;
|
|
153
|
-
|
|
154
|
-
// ============================================
|
|
155
|
-
// BUILD SPEC COMPONENTS
|
|
156
|
-
// ============================================
|
|
157
|
-
declare const BuildSpecEditor: ComponentType<any>;
|
|
158
|
-
declare const ExportToolSelector: ComponentType<any>;
|
|
159
|
-
|
|
160
|
-
// Comment utilities
|
|
161
|
-
declare function uploadCommentAttachment(file: File, projectId: string, path?: string): Promise<any>;
|
|
162
|
-
declare function deleteCommentAttachment(url: string): Promise<void>;
|
|
163
|
-
declare function extractMentions(text: string): string[];
|
|
164
|
-
declare function formatMentions(text: string, members: any[]): string;
|
|
165
|
-
declare function uploadMaintenanceAttachment(file: File, projectId: string, itemId: string): Promise<any>;
|
|
166
|
-
declare function deleteMaintenanceAttachment(url: string): Promise<void>;
|
|
167
|
-
|
|
168
|
-
// Storage utilities
|
|
169
|
-
declare function uploadMedia(file: File, options: UploadOptions): Promise<UploadResult>;
|
|
170
|
-
declare function deleteMedia(url: string): Promise<void>;
|
|
171
|
-
declare function listSectionMedia(projectId: string, pageId: string, sectionId: string): Promise<any[]>;
|
|
172
|
-
declare function uploadScreenshot(file: File | Blob, projectId: string, pageId?: string): Promise<UploadResult>;
|
|
173
|
-
declare function formatFileSize(bytes: number): string;
|
|
174
|
-
interface UploadOptions {
|
|
175
|
-
bucket?: string;
|
|
176
|
-
path?: string;
|
|
177
|
-
projectId?: string;
|
|
178
|
-
}
|
|
179
|
-
interface UploadResult {
|
|
180
|
-
url: string;
|
|
181
|
-
path: string;
|
|
182
|
-
size: number;
|
|
183
|
-
type: string;
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
// Localized content utilities
|
|
187
|
-
declare function getLocalizedValue(value: any, locale: string): string;
|
|
188
|
-
declare function setLocalizedValue(obj: any, key: string, value: string, locale: string): any;
|
|
189
|
-
declare function createLocalizedString(value: string, locale?: string): any;
|
|
190
|
-
|
|
191
|
-
// Permission utilities
|
|
192
|
-
declare function canEditProject(user: any, project: any, members?: any[]): boolean;
|
|
193
|
-
declare function hasAdminPrivileges(user: any): boolean;
|
|
194
|
-
declare function canManageTeam(user: any): boolean;
|
|
195
|
-
declare function canAccessPhase(user: any, project: any, phase: number): boolean;
|
|
196
|
-
|
|
197
|
-
// Module management utilities
|
|
198
|
-
declare function isModuleEnabled(project: any, module: string): boolean;
|
|
199
|
-
declare function isModuleVisible(project: any, module: string): boolean;
|
|
200
|
-
declare function isPhaseEnabled(project: any, phase: number): boolean;
|
|
201
|
-
declare function isPhaseVisible(project: any, phase: number): boolean;
|
|
202
|
-
declare function getFirstAccessiblePhase(project: any): number;
|
|
203
|
-
declare function getFirstVisiblePhase(project: any): number;
|
|
204
|
-
declare function getDefaultModules(project: any): string[];
|
|
205
|
-
declare function getPhaseModule(phase: number): string | null;
|
|
206
|
-
|
|
207
|
-
// Feature flags
|
|
208
|
-
declare function isFeatureEnabled(feature: string, agency?: any): boolean;
|
|
209
|
-
declare const FEATURE_FLAGS: Record<string, boolean>;
|
|
210
|
-
|
|
211
|
-
// Date filters
|
|
212
|
-
declare function formatDate(date: Date | string, format?: string): string;
|
|
213
|
-
declare function parseDate(dateString: string): Date;
|
|
214
|
-
declare function isToday(date: Date): boolean;
|
|
215
|
-
declare function isThisWeek(date: Date): boolean;
|
|
216
|
-
declare function isThisMonth(date: Date): boolean;
|
|
217
|
-
|
|
218
|
-
// Build spec utilities
|
|
219
|
-
declare function generateBuildSpec(project: any): any;
|
|
220
|
-
declare function exportBuildSpec(project: any, format: string): string;
|
|
221
|
-
|
|
222
|
-
// Prompt generator
|
|
223
|
-
declare function generatePrompt(project: any, tool: string): string;
|
|
224
|
-
declare const SUPPORTED_AI_TOOLS: string[];
|
|
225
|
-
|
|
226
|
-
// ============================================
|
|
227
|
-
// SERVICES
|
|
228
|
-
// ============================================
|
|
229
|
-
// AI services
|
|
230
|
-
declare function getLayoutSuggestions(project: any, pageId: string): Promise<any>;
|
|
231
|
-
declare function clearSuggestionsCache(): void;
|
|
232
|
-
declare function clearPageSuggestionsCache(pageId: string): void;
|
|
233
|
-
declare function getLayoutById(layoutId: string): any;
|
|
234
|
-
declare function mergeLayoutWithHints(layout: any, hints: any[]): any;
|
|
235
|
-
declare function getAllLayoutsForPage(pageType: string): any[];
|
|
236
|
-
|
|
237
|
-
declare function generateProjectOverview(project: any): Promise<any>;
|
|
238
|
-
|
|
239
|
-
declare function analyzeProjectIdea(idea: string): Promise<any>;
|
|
240
|
-
declare function generateDynamicQuestions(context: any): Promise<any>;
|
|
241
|
-
declare function createAIConversation(): any;
|
|
242
|
-
declare function updateConversationWithQuestions(conversation: any, questions: any[]): any;
|
|
243
|
-
|
|
244
|
-
declare function generateSiteStructure(project: any): Promise<any>;
|
|
245
|
-
declare function convertToPhase2Data(structure: any): any;
|
|
246
|
-
declare function needsStructureGeneration(project: any): boolean;
|
|
247
|
-
declare function mergeStructureWithExisting(structure: any, existing: any): any;
|
|
248
|
-
|
|
249
|
-
// Performance service
|
|
250
|
-
declare function savePerformanceReport(projectId: string, report: any): Promise<void>;
|
|
251
|
-
declare function getPerformanceReports(projectId: string): Promise<any[]>;
|
|
252
|
-
declare function getPerformanceUsage(agencyId: string): Promise<any>;
|
|
253
|
-
declare function analyzeUrl(url: string): Promise<any>;
|
|
254
|
-
declare function formatMs(ms: number): string;
|
|
255
|
-
declare function formatBytes(bytes: number): string;
|
|
256
|
-
declare function getScoreColor(score: number): string;
|
|
257
|
-
declare function getScoreBgColor(score: number): string;
|
|
258
|
-
|
|
259
|
-
// Screenshot service
|
|
260
|
-
declare function captureScreenshot(url: string, options?: any): Promise<any>;
|
|
261
|
-
declare function uploadPageScreenshot(projectId: string, pageId: string, screenshot: Blob): Promise<any>;
|
|
262
|
-
|
|
263
|
-
// SEO service
|
|
264
|
-
declare function runSeoAudit(url: string): Promise<any>;
|
|
265
|
-
declare function getSeoReports(projectId: string): Promise<any[]>;
|
|
266
|
-
declare function getSeoPageReports(projectId: string, pageUrl: string): Promise<any[]>;
|
|
267
|
-
|
|
268
|
-
// Stripe service
|
|
269
|
-
declare function createCheckoutSession(options: any): Promise<any>;
|
|
270
|
-
declare function createPortalSession(): Promise<any>;
|
|
271
|
-
declare function getSubscriptionStatus(customerId: string): Promise<any>;
|
|
272
|
-
|
|
273
|
-
// Text content service
|
|
274
|
-
declare function crawlPageTextContent(url: string, options?: any): Promise<any>;
|
|
275
|
-
declare function addLanguageContent(content: any, language: string): any;
|
|
276
|
-
declare function applyBlockEdit(content: any, blockId: string, newText: string): any;
|
|
277
|
-
declare function applyListEdit(content: any, listId: string, items: string[]): any;
|
|
278
|
-
declare function restoreBlockToOriginal(content: any, blockId: string): any;
|
|
279
|
-
declare function computeTextDiff(original: string, modified: string): any[];
|
|
280
|
-
declare function isBlockModified(content: any, blockId: string): boolean;
|
|
281
|
-
declare function getModifiedCount(content: any): number;
|
|
282
|
-
declare function getTotalBlockCount(content: any): number;
|
|
283
|
-
declare function getBlockHistory(content: any, blockId: string): any[];
|
|
284
|
-
declare function getRecentEdits(content: any): any[];
|
|
285
|
-
declare function exportTextChanges(content: any): any;
|
|
286
|
-
declare function getLanguageLabel(code: string): string;
|
|
287
|
-
declare const LANGUAGE_LABELS: Record<string, string>;
|
|
288
|
-
|
|
289
|
-
// Type exports for services
|
|
290
|
-
interface SectionHint {
|
|
291
|
-
sectionId: string;
|
|
292
|
-
hint: string;
|
|
293
|
-
}
|
|
294
|
-
interface LayoutRecommendation {
|
|
295
|
-
layoutId: string;
|
|
296
|
-
confidence: number;
|
|
297
|
-
reasoning: string;
|
|
298
|
-
}
|
|
299
|
-
interface LayoutSuggestionResult {
|
|
300
|
-
recommendations: LayoutRecommendation[];
|
|
301
|
-
hints: SectionHint[];
|
|
302
|
-
}
|
|
303
|
-
interface ProjectAnalysisResult {
|
|
304
|
-
category: string;
|
|
305
|
-
confidence: number;
|
|
306
|
-
suggestedPages: string[];
|
|
307
|
-
}
|
|
308
|
-
interface InitialQuestion {
|
|
309
|
-
id: string;
|
|
310
|
-
question: string;
|
|
311
|
-
type: string;
|
|
312
|
-
options?: string[];
|
|
313
|
-
}
|
|
314
|
-
interface QuestionContext {
|
|
315
|
-
projectCategory: string;
|
|
316
|
-
answers: Record<string, any>;
|
|
317
|
-
}
|
|
318
|
-
interface GenerateQuestionsResult {
|
|
319
|
-
questions: GeneratedQuestion[];
|
|
320
|
-
}
|
|
321
|
-
interface GeneratedQuestion {
|
|
322
|
-
id: string;
|
|
323
|
-
question: string;
|
|
324
|
-
type: string;
|
|
325
|
-
options?: string[];
|
|
326
|
-
required?: boolean;
|
|
327
|
-
}
|
|
328
|
-
interface SiteStructureResult {
|
|
329
|
-
pages: any[];
|
|
330
|
-
navigation: any;
|
|
331
|
-
}
|
|
332
|
-
interface CrawlProgress {
|
|
333
|
-
total: number;
|
|
334
|
-
completed: number;
|
|
335
|
-
currentUrl: string;
|
|
336
|
-
}
|
|
337
|
-
interface CrawlResult {
|
|
338
|
-
success: boolean;
|
|
339
|
-
content: any;
|
|
340
|
-
error?: string;
|
|
341
|
-
}
|
|
342
|
-
interface DiffPart {
|
|
343
|
-
value: string;
|
|
344
|
-
added?: boolean;
|
|
345
|
-
removed?: boolean;
|
|
346
|
-
}
|
|
347
|
-
interface ExportedChange {
|
|
348
|
-
blockId: string;
|
|
349
|
-
original: string;
|
|
350
|
-
modified: string;
|
|
351
|
-
}
|
|
352
|
-
interface TextChangesExport {
|
|
353
|
-
changes: ExportedChange[];
|
|
354
|
-
summary: {
|
|
355
|
-
totalChanges: number;
|
|
356
|
-
timestamp: string;
|
|
357
|
-
};
|
|
358
|
-
}
|
|
359
|
-
|
|
360
|
-
interface FramedAppProps {
|
|
361
|
-
/**
|
|
362
|
-
* Base path for all routes. Defaults to '/framed'.
|
|
363
|
-
* This should match your Next.js catch-all route path.
|
|
364
|
-
* Example: If you have `/app/framed/[[...slug]]/page.tsx`, use basename="/framed"
|
|
365
|
-
*/
|
|
366
|
-
basename?: string;
|
|
367
|
-
/**
|
|
368
|
-
* Supabase project URL. Can also be set via NEXT_PUBLIC_SUPABASE_URL env var.
|
|
369
|
-
*/
|
|
370
|
-
supabaseUrl?: string;
|
|
371
|
-
/**
|
|
372
|
-
* Supabase anon key. Can also be set via NEXT_PUBLIC_SUPABASE_ANON_KEY env var.
|
|
373
|
-
*/
|
|
374
|
-
supabaseKey?: string;
|
|
375
|
-
}
|
|
376
|
-
/**
|
|
377
|
-
* FramedApp - Complete Framed application with routing.
|
|
378
|
-
*
|
|
379
|
-
* This component embeds React Router inside your Next.js app,
|
|
380
|
-
* providing all Framed pages (Dashboard, Phase 4, Phase 5, Build Spec).
|
|
381
|
-
*
|
|
382
|
-
* Usage with Next.js App Router:
|
|
383
|
-
*
|
|
384
|
-
* 1. Create a catch-all route at `/app/framed/[[...slug]]/page.tsx`
|
|
385
|
-
* 2. Import and render FramedApp with matching basename:
|
|
386
|
-
*
|
|
387
|
-
* ```tsx
|
|
388
|
-
* "use client";
|
|
389
|
-
* import { FramedApp } from '@framed-dev/react';
|
|
390
|
-
*
|
|
391
|
-
* export default function FramedPage() {
|
|
392
|
-
* return <FramedApp basename="/framed" />;
|
|
393
|
-
* }
|
|
394
|
-
* ```
|
|
395
|
-
*
|
|
396
|
-
* The [[...slug]] catch-all route ensures Next.js sends all /framed/* URLs
|
|
397
|
-
* to this page, and React Router handles the routing within.
|
|
398
|
-
*/
|
|
399
|
-
declare function FramedApp({ basename, supabaseUrl, supabaseKey, }: FramedAppProps): react_jsx_runtime.JSX.Element | null;
|
|
400
|
-
|
|
401
|
-
type WidgetVersion = 'latest' | 'v3' | string;
|
|
402
|
-
type WidgetSource = 'cdn' | 'bundled';
|
|
403
|
-
interface FramedProviderConfig extends FramedConfig {
|
|
404
|
-
widgetVersion?: WidgetVersion;
|
|
405
|
-
widgetSource?: WidgetSource;
|
|
406
|
-
}
|
|
407
|
-
interface SDKProject {
|
|
408
|
-
id: string;
|
|
409
|
-
name: string;
|
|
410
|
-
status: string;
|
|
411
|
-
project_type: string;
|
|
412
|
-
data?: Record<string, unknown>;
|
|
413
|
-
created_at?: string;
|
|
414
|
-
updated_at?: string;
|
|
415
|
-
}
|
|
416
|
-
interface FramedContextValue {
|
|
417
|
-
config: FramedProviderConfig;
|
|
418
|
-
projectId: string;
|
|
419
|
-
currentProject: SDKProject | null;
|
|
420
|
-
isProjectLoading: boolean;
|
|
421
|
-
projectError: string | null;
|
|
422
|
-
updateCurrentProject: (updates: Partial<SDKProject>) => Promise<void>;
|
|
423
|
-
isAuthenticated: boolean;
|
|
424
|
-
session: Session | null;
|
|
425
|
-
isAuthLoading: boolean;
|
|
426
|
-
authError: string | null;
|
|
427
|
-
login: () => void;
|
|
428
|
-
logout: () => void;
|
|
429
|
-
dataLayer: WidgetDataLayer;
|
|
430
|
-
supabase: SupabaseClient | null;
|
|
431
|
-
framedApi: FramedApiClient;
|
|
432
|
-
hasAIFeatures: boolean;
|
|
433
|
-
callbacks: WizardCallbacks;
|
|
434
|
-
tasks: Task[];
|
|
435
|
-
openTasks: Task[];
|
|
436
|
-
isTasksLoading: boolean;
|
|
437
|
-
refreshTasks: () => Promise<void>;
|
|
438
|
-
saveTask: (task: Task) => Promise<void>;
|
|
439
|
-
updateTask: (id: string, updates: Partial<Task>) => Promise<void>;
|
|
440
|
-
limits: LimitStatus | null;
|
|
441
|
-
checkLimits: () => Promise<LimitStatus>;
|
|
442
|
-
features: WidgetFeatures;
|
|
443
|
-
isWidgetReady: boolean;
|
|
444
|
-
}
|
|
445
|
-
interface FramedProviderProps {
|
|
446
|
-
config?: Partial<FramedProviderConfig>;
|
|
447
|
-
children: ReactNode;
|
|
448
|
-
}
|
|
449
|
-
declare function FramedProvider({ config, children }: FramedProviderProps): react_jsx_runtime.JSX.Element;
|
|
450
|
-
declare function useFramed(): FramedContextValue;
|
|
451
|
-
/**
|
|
452
|
-
* Convenience hook to get just the wizard callbacks.
|
|
453
|
-
* Use this in wizard components that need file upload or translation.
|
|
454
|
-
*/
|
|
455
|
-
declare function useFramedCallbacks(): WizardCallbacks;
|
|
456
|
-
/**
|
|
457
|
-
* Hook to check if AI features are available.
|
|
458
|
-
*/
|
|
459
|
-
declare function useHasAIFeatures(): boolean;
|
|
460
|
-
/**
|
|
461
|
-
* Hook to access the current SDK project.
|
|
462
|
-
* Returns the auto-loaded/created project for this SDK install.
|
|
463
|
-
*/
|
|
464
|
-
declare function useCurrentProject(): {
|
|
465
|
-
project: SDKProject | null;
|
|
466
|
-
isLoading: boolean;
|
|
467
|
-
error: string | null;
|
|
468
|
-
updateProject: (updates: Partial<SDKProject>) => Promise<void>;
|
|
469
|
-
};
|
|
470
|
-
|
|
471
|
-
interface AuthContextValue {
|
|
472
|
-
isAuthenticated: boolean;
|
|
473
|
-
session: Session | null;
|
|
474
|
-
isLoading: boolean;
|
|
475
|
-
error: string | null;
|
|
476
|
-
login: () => void;
|
|
477
|
-
logout: () => void;
|
|
478
|
-
}
|
|
479
|
-
interface AuthProviderProps {
|
|
480
|
-
config?: AuthConfig;
|
|
481
|
-
projectId: string;
|
|
482
|
-
apiKey?: string;
|
|
483
|
-
supabaseUrl?: string;
|
|
484
|
-
children: ReactNode;
|
|
485
|
-
}
|
|
486
|
-
declare function AuthProvider({ config, projectId, apiKey, supabaseUrl, children, }: AuthProviderProps): react_jsx_runtime.JSX.Element;
|
|
487
|
-
declare function useAuth(): AuthContextValue;
|
|
488
|
-
|
|
489
|
-
interface FeedbackWidgetProps {
|
|
490
|
-
/** User's display name for feedback attribution */
|
|
491
|
-
author?: string;
|
|
492
|
-
/** Called when a new comment is submitted */
|
|
493
|
-
onSubmit?: (comment: FeedbackComment) => void;
|
|
494
|
-
/** Called when a task is created from feedback */
|
|
495
|
-
onTaskCreated?: (task: Task) => void;
|
|
496
|
-
/** Called when user takes a screenshot */
|
|
497
|
-
onScreenshot?: () => void;
|
|
498
|
-
/** Called when user locates a comment */
|
|
499
|
-
onLocateComment?: (comment: FeedbackComment) => void;
|
|
500
|
-
/** Called when user exports summary */
|
|
501
|
-
onExport?: () => void;
|
|
502
|
-
/** Called when widget is closed */
|
|
503
|
-
onClose?: () => void;
|
|
504
|
-
}
|
|
505
|
-
declare function FeedbackWidget({ author, onSubmit, onTaskCreated, onScreenshot, onLocateComment, onExport, onClose, }: FeedbackWidgetProps): react_jsx_runtime.JSX.Element | null;
|
|
506
|
-
|
|
507
|
-
interface TasksReadyPanelProps {
|
|
508
|
-
/** Maximum number of tasks to show in preview */
|
|
509
|
-
maxPreview?: number;
|
|
510
|
-
/** Called when prompt is copied */
|
|
511
|
-
onPromptCopied?: () => void;
|
|
512
|
-
/** Custom class name */
|
|
513
|
-
className?: string;
|
|
514
|
-
}
|
|
515
|
-
declare function TasksReadyPanel({ maxPreview, onPromptCopied, className, }: TasksReadyPanelProps): react_jsx_runtime.JSX.Element | null;
|
|
516
|
-
|
|
517
|
-
interface SiteContext {
|
|
518
|
-
capturedAt: string;
|
|
519
|
-
capturedBy: 'widget' | 'cli';
|
|
520
|
-
pages: SitePageInfo[];
|
|
521
|
-
navigation: NavigationItem[];
|
|
522
|
-
patterns: SitePatterns;
|
|
523
|
-
framework: FrameworkInfo;
|
|
524
|
-
contentMap: ContentMap[];
|
|
525
|
-
}
|
|
526
|
-
interface SitePageInfo {
|
|
527
|
-
url: string;
|
|
528
|
-
title: string;
|
|
529
|
-
description?: string;
|
|
530
|
-
hasContent: boolean;
|
|
531
|
-
sections: string[];
|
|
532
|
-
lastModified?: string;
|
|
533
|
-
}
|
|
534
|
-
interface NavigationItem {
|
|
535
|
-
label: string;
|
|
536
|
-
href: string;
|
|
537
|
-
isActive: boolean;
|
|
538
|
-
children?: NavigationItem[];
|
|
539
|
-
location: 'header' | 'footer' | 'sidebar';
|
|
540
|
-
}
|
|
541
|
-
interface SitePatterns {
|
|
542
|
-
hasBlog: boolean;
|
|
543
|
-
hasBlogPosts: boolean;
|
|
544
|
-
hasTeamSection: boolean;
|
|
545
|
-
hasContactForm: boolean;
|
|
546
|
-
hasNewsletter: boolean;
|
|
547
|
-
hasPricing: boolean;
|
|
548
|
-
hasTestimonials: boolean;
|
|
549
|
-
hasFAQ: boolean;
|
|
550
|
-
hasProducts: boolean;
|
|
551
|
-
hasCart: boolean;
|
|
552
|
-
hasCheckout: boolean;
|
|
553
|
-
hasHero: boolean;
|
|
554
|
-
hasFooter: boolean;
|
|
555
|
-
hasSidebar: boolean;
|
|
556
|
-
}
|
|
557
|
-
interface FrameworkInfo {
|
|
558
|
-
detected: 'nextjs-app' | 'nextjs-pages' | 'remix' | 'react-router' | 'astro' | 'unknown';
|
|
559
|
-
confidence: number;
|
|
560
|
-
hints: string[];
|
|
561
|
-
}
|
|
562
|
-
interface ContentMap {
|
|
563
|
-
page: string;
|
|
564
|
-
sections: {
|
|
565
|
-
id: string;
|
|
566
|
-
selector: string;
|
|
567
|
-
type: 'hero' | 'content' | 'list' | 'form' | 'cta' | 'unknown';
|
|
568
|
-
hasImages: boolean;
|
|
569
|
-
hasText: boolean;
|
|
570
|
-
approximateWords: number;
|
|
571
|
-
}[];
|
|
572
|
-
}
|
|
573
|
-
declare function scanSiteContext(): Promise<SiteContext>;
|
|
574
|
-
|
|
575
|
-
interface PromptOptions {
|
|
576
|
-
apiKey: string;
|
|
577
|
-
includeContext?: boolean;
|
|
578
|
-
format?: 'full' | 'compact';
|
|
579
|
-
}
|
|
580
|
-
declare function generateAIPrompt(tasks: Task[], options: PromptOptions, siteContext?: SiteContext): string;
|
|
581
|
-
declare function copyPromptToClipboard(prompt: string): Promise<boolean>;
|
|
582
|
-
|
|
583
|
-
interface UseFramedTasksResult {
|
|
584
|
-
tasks: Task[];
|
|
585
|
-
openTasks: Task[];
|
|
586
|
-
inProgressTasks: Task[];
|
|
587
|
-
doneTasks: Task[];
|
|
588
|
-
isLoading: boolean;
|
|
589
|
-
openCount: number;
|
|
590
|
-
totalCount: number;
|
|
591
|
-
refresh: () => Promise<void>;
|
|
592
|
-
markDone: (taskId: string) => Promise<void>;
|
|
593
|
-
updateStatus: (taskId: string, status: TaskStatus) => Promise<void>;
|
|
594
|
-
generatePrompt: (options?: Partial<PromptOptions>) => Promise<string>;
|
|
595
|
-
copyPrompt: (options?: Partial<PromptOptions>) => Promise<boolean>;
|
|
596
|
-
}
|
|
597
|
-
declare function useFramedTasks(): UseFramedTasksResult;
|
|
598
|
-
|
|
599
|
-
declare class LocalDataLayer implements WidgetDataLayer {
|
|
600
|
-
private projectId;
|
|
601
|
-
constructor(projectId: string);
|
|
602
|
-
getSession(): Promise<Session | null>;
|
|
603
|
-
loadTasks(page?: string): Promise<Task[]>;
|
|
604
|
-
saveTask(task: Task): Promise<void>;
|
|
605
|
-
updateTask(id: string, updates: Partial<Task>): Promise<void>;
|
|
606
|
-
uploadFile(file: File): Promise<{
|
|
607
|
-
url: string;
|
|
608
|
-
path: string;
|
|
609
|
-
}>;
|
|
610
|
-
checkLimits(): Promise<LimitStatus>;
|
|
611
|
-
sync: undefined;
|
|
612
|
-
deleteTask(id: string): Promise<void>;
|
|
613
|
-
clearAllTasks(): Promise<void>;
|
|
614
|
-
exportTasks(): Promise<string>;
|
|
615
|
-
}
|
|
616
|
-
|
|
617
|
-
interface FramedAPIConfig {
|
|
618
|
-
apiKey: string;
|
|
619
|
-
supabaseUrl: string;
|
|
620
|
-
}
|
|
621
|
-
interface TasksResponse {
|
|
622
|
-
tasks: Task[];
|
|
623
|
-
meta: {
|
|
624
|
-
total: number;
|
|
625
|
-
projectId: string;
|
|
626
|
-
projectName: string;
|
|
627
|
-
};
|
|
628
|
-
}
|
|
629
|
-
interface UploadResponse {
|
|
630
|
-
url: string;
|
|
631
|
-
path: string;
|
|
632
|
-
expiresAt?: string;
|
|
633
|
-
}
|
|
634
|
-
interface ValidationResult {
|
|
635
|
-
valid: boolean;
|
|
636
|
-
session?: Session;
|
|
637
|
-
error?: string;
|
|
638
|
-
}
|
|
639
|
-
declare class FramedAPIClient {
|
|
640
|
-
private apiKey;
|
|
641
|
-
private baseUrl;
|
|
642
|
-
constructor(config: FramedAPIConfig);
|
|
643
|
-
private request;
|
|
644
|
-
getTasks(options?: {
|
|
645
|
-
status?: 'open' | 'in_progress' | 'done' | 'rejected';
|
|
646
|
-
page?: string;
|
|
647
|
-
}): Promise<TasksResponse>;
|
|
648
|
-
createTask(task: Omit<Task, 'id' | 'meta'>): Promise<Task>;
|
|
649
|
-
updateTask(taskId: string, updates: Partial<Task>): Promise<Task>;
|
|
650
|
-
markTaskDone(taskId: string): Promise<{
|
|
651
|
-
success: boolean;
|
|
652
|
-
task: Task;
|
|
653
|
-
}>;
|
|
654
|
-
uploadFile(file: File): Promise<UploadResponse>;
|
|
655
|
-
validateMagicToken(token: string): Promise<ValidationResult>;
|
|
656
|
-
exchangeSessionToken(sessionToken: string): Promise<ValidationResult>;
|
|
657
|
-
getSession(): Promise<Session | null>;
|
|
658
|
-
}
|
|
659
|
-
|
|
660
|
-
declare class SyncDataLayer implements WidgetDataLayer {
|
|
661
|
-
private projectId;
|
|
662
|
-
private client;
|
|
663
|
-
private session;
|
|
664
|
-
constructor(projectId: string, config: FramedAPIConfig);
|
|
665
|
-
private loadCachedSession;
|
|
666
|
-
private cacheSession;
|
|
667
|
-
getSession(): Promise<Session | null>;
|
|
668
|
-
loadTasks(page?: string): Promise<Task[]>;
|
|
669
|
-
saveTask(task: Task): Promise<void>;
|
|
670
|
-
updateTask(id: string, updates: Partial<Task>): Promise<void>;
|
|
671
|
-
uploadFile(file: File): Promise<{
|
|
672
|
-
url: string;
|
|
673
|
-
path: string;
|
|
674
|
-
}>;
|
|
675
|
-
private createFormData;
|
|
676
|
-
checkLimits(): Promise<LimitStatus>;
|
|
677
|
-
sync(): Promise<SyncResult>;
|
|
678
|
-
private getPendingTasks;
|
|
679
|
-
private savePendingTasks;
|
|
680
|
-
private addPendingTask;
|
|
681
|
-
validateMagicToken(token: string): Promise<{
|
|
682
|
-
valid: boolean;
|
|
683
|
-
session?: Session;
|
|
684
|
-
error?: string;
|
|
685
|
-
}>;
|
|
686
|
-
exchangeSessionToken(sessionToken: string): Promise<{
|
|
687
|
-
valid: boolean;
|
|
688
|
-
session?: Session;
|
|
689
|
-
error?: string;
|
|
690
|
-
}>;
|
|
691
|
-
clearSession(): void;
|
|
692
|
-
markTaskDone(taskId: string): Promise<void>;
|
|
693
|
-
}
|
|
694
|
-
|
|
695
|
-
/**
|
|
696
|
-
* Supabase stub for widget-sdk
|
|
697
|
-
*
|
|
698
|
-
* This provides a compatibility layer for components that expect Supabase.
|
|
699
|
-
* In SDK mode, we use the FramedAPIClient instead of direct Supabase access.
|
|
700
|
-
*
|
|
701
|
-
* For components that absolutely need Supabase (e.g., real-time subscriptions),
|
|
702
|
-
* users can initialize their own Supabase instance using initSupabase().
|
|
703
|
-
*/
|
|
704
|
-
|
|
705
|
-
/**
|
|
706
|
-
* Get the current Supabase client instance
|
|
707
|
-
* Returns null if not initialized
|
|
708
|
-
*/
|
|
709
|
-
declare function getSupabase(): SupabaseClient$1 | null;
|
|
710
|
-
/**
|
|
711
|
-
* Initialize Supabase with user's own credentials
|
|
712
|
-
* This is optional - most SDK features work without it
|
|
713
|
-
*
|
|
714
|
-
* @param url - Supabase project URL
|
|
715
|
-
* @param key - Supabase anon key
|
|
716
|
-
* @returns The Supabase client instance
|
|
717
|
-
*/
|
|
718
|
-
declare function initSupabase(url: string, key: string): SupabaseClient$1;
|
|
719
|
-
/**
|
|
720
|
-
* Clear the Supabase instance
|
|
721
|
-
* Useful for cleanup or switching projects
|
|
722
|
-
*/
|
|
723
|
-
declare function clearSupabase(): void;
|
|
724
|
-
/**
|
|
725
|
-
* Supabase client proxy
|
|
726
|
-
*
|
|
727
|
-
* When Supabase is not initialized, this returns safe no-op functions
|
|
728
|
-
* that log warnings and return empty results.
|
|
729
|
-
*
|
|
730
|
-
* When Supabase is initialized, it forwards all calls to the real client.
|
|
731
|
-
*
|
|
732
|
-
* @example
|
|
733
|
-
* // Without initialization - logs warning, returns empty results
|
|
734
|
-
* const { data } = await supabase.from('tasks').select('*')
|
|
735
|
-
* // data = null, warning logged
|
|
736
|
-
*
|
|
737
|
-
* // With initialization - works normally
|
|
738
|
-
* initSupabase(url, key)
|
|
739
|
-
* const { data } = await supabase.from('tasks').select('*')
|
|
740
|
-
* // data = actual results
|
|
741
|
-
*/
|
|
742
|
-
declare const supabase: SupabaseClient$1<any, "public", "public", any, any>;
|
|
743
|
-
|
|
744
|
-
declare const framedRoutes: {
|
|
745
|
-
readonly dashboard: "/framed";
|
|
746
|
-
readonly login: "/framed/login";
|
|
747
|
-
readonly project: (id: string) => string;
|
|
748
|
-
readonly phase1: (projectId: string) => string;
|
|
749
|
-
readonly phase2: (projectId: string) => string;
|
|
750
|
-
readonly phase3: (projectId: string) => string;
|
|
751
|
-
readonly phase4: (projectId: string) => string;
|
|
752
|
-
readonly phase5: (projectId: string) => string;
|
|
753
|
-
readonly build: (projectId: string) => string;
|
|
754
|
-
readonly review: (projectId: string) => string;
|
|
755
|
-
readonly manage: (projectId: string) => string;
|
|
756
|
-
readonly buildSpec: (projectId: string) => string;
|
|
757
|
-
readonly settings: "/framed/settings";
|
|
758
|
-
};
|
|
759
|
-
type FramedRoutes = typeof framedRoutes;
|
|
760
|
-
|
|
761
|
-
export { Alert, AlertDescription, AlertTitle, ApprovalWorkflow, AuthProvider$1 as AuthProvider, Avatar, AvatarFallback, AvatarImage, BuildSpecEditor, Calendar, ChangelogPanel, Checkbox, Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommentThreadPanel, type ContentMap, type CrawlProgress, type CrawlResult, Dashboard, type DiffPart, DiffViewer, DomainMonitoringPanel, DropdownMenuLabel, DropdownMenuSeparator, ExportToolSelector, type ExportedChange, FEATURE_FLAGS, FeedbackFilters, FeedbackRoundManager, FeedbackWidget, type FeedbackWidgetProps, FramedAPIClient, type FramedAPIConfig, FramedApp, type FramedAppProps, FramedProvider, type FramedProviderConfig, type FramedProviderProps, type FramedRoutes, type FrameworkInfo, type GenerateQuestionsResult, type GeneratedQuestion, HourPackagesPanel, ImageReviewPanel, ImprovementSuggestionsPanel, InboxView, type InitialQuestion, KanbanBoard, LANGUAGE_LABELS, type LayoutRecommendation, type LayoutSuggestionResult, LocalDataLayer, MaintenanceItemCard, MonthlyReportPanel, type NavigationItem, PageBrowser, Phase5Sidebar, Popover, PopoverContent, PopoverTrigger, Progress, type ProjectAnalysisResult, type PromptOptions, type QuestionContext, RadioGroup, RadioGroupItem, AuthProvider as SDKAuthProvider, type SDKProject, SUPPORTED_AI_TOOLS, ScreenshotViewer, type SectionHint, type SiteContext, type SitePageInfo, type SitePatterns, type SiteStructureResult, Slider, Switch, SyncDataLayer, Table, TableBody, TableCell, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TasksReadyPanel, type TasksReadyPanelProps, type TasksResponse, type TextChangesExport, TextEditPanel, TimeTrackingPanel, type UploadOptions, type UploadResponse, type UploadResult, UptimeMonitoringPanel, type UseFramedTasksResult, type ValidationResult, WizardBuildSpec, WizardPhase1New, WizardPhase2New, WizardPhase4New, WizardPhase5New, WizardPhaseOverview, addLanguageContent, analyzeProjectIdea, analyzeUrl, applyBlockEdit, applyListEdit, canAccessPhase, canEditProject, canManageTeam, captureScreenshot, clearPageSuggestionsCache, clearSuggestionsCache, clearSupabase, computeTextDiff, convertToPhase2Data, copyPromptToClipboard, crawlPageTextContent, createAIConversation, createCheckoutSession, createLocalizedString, createPortalSession, deleteCommentAttachment, deleteMaintenanceAttachment, deleteMedia, exportBuildSpec, exportTextChanges, extractMentions, formatBytes, formatDate, formatFileSize, formatMentions, formatMs, framedRoutes, generateAIPrompt, generateBuildSpec, generateDynamicQuestions, generateProjectOverview, generatePrompt, generateSiteStructure, getAllLayoutsForPage, getBlockHistory, getDefaultModules, getFirstAccessiblePhase, getFirstVisiblePhase, getLanguageLabel, getLayoutById, getLayoutSuggestions, getLocalizedValue, getModifiedCount, getPerformanceReports, getPerformanceUsage, getPhaseModule, getRecentEdits, getSupabase as getSDKSupabase, getScoreBgColor, getScoreColor, getSeoPageReports, getSeoReports, getSubscriptionStatus, getSupabase$1 as getSupabase, getTotalBlockCount, hasAdminPrivileges, initSupabase as initSDKSupabase, initSupabase$1 as initSupabase, isBlockModified, isFeatureEnabled, isModuleEnabled, isModuleVisible, isPhaseEnabled, isPhaseVisible, isThisMonth, isThisWeek, isToday, listSectionMedia, mergeLayoutWithHints, mergeStructureWithExisting, needsStructureGeneration, parseDate, restoreBlockToOriginal, runSeoAudit, savePerformanceReport, scanSiteContext, supabase as sdkSupabase, setLocalizedValue, supabase$1 as supabase, updateConversationWithQuestions, uploadCommentAttachment, uploadMaintenanceAttachment, uploadMedia, uploadPageScreenshot, uploadScreenshot, useAbuseIncidents, useAgency, useAnonymousSession, useAuth$1 as useAuth, useAutoSave, useChangelog, useCostMetrics, useCurrentProject, useDomainMonitoring, useFeedbackValidation, useFramed, useFramedCallbacks, useFramedTasks, useHasAIFeatures, useImprovementSuggestions, useInternalNotes, useIsMobile, useMaintenanceItems, useMeetingNotes, useModuleUsage, useMonthlyReports, useNotifications, usePerformanceAnalysis, usePhase2Navigation, usePhase4Navigation, usePhaseAccess, useProject, useProjectAccess, useProjectMembers, useProjectSettings, useProjectShares, usePushNotifications, useAuth as useSDKAuth, useSeoAudit, useShareAccess, useSiteAnalytics, useSuperAdminMetrics, useTaskOverview, useTimeTracking, useUptimeMonitoring };
|