@framed-dev/react 0.1.7 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -1,19 +1,425 @@
1
- import { FramedConfig, Session, WidgetDataLayer, SupabaseClient, FramedApiClient, WizardCallbacks, Task, LimitStatus, WidgetFeatures, AuthConfig, FeedbackComment, TaskStatus, SyncResult } from '@framed-dev/core';
2
- 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, UploadResult, UsageLimits, ViewportMode, WidgetConfig, WidgetDataLayer, WidgetFeatures, WizardCallbacks, createWizardCallbacks, getUserSupabase, initUserSupabase, isSupabaseInitialized, translateContent, uploadFile, uploadFont, uploadLogo } from '@framed-dev/core';
1
+ import { ComponentType, ReactNode } from 'react';
3
2
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
- import React, { ReactNode } from 'react';
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
5
  import { SupabaseClient as SupabaseClient$1 } from '@supabase/supabase-js';
6
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
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
+
8
401
  type WidgetVersion = 'latest' | 'v3' | string;
9
402
  type WidgetSource = 'cdn' | 'bundled';
10
403
  interface FramedProviderConfig extends FramedConfig {
11
404
  widgetVersion?: WidgetVersion;
12
405
  widgetSource?: WidgetSource;
13
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
+ }
14
416
  interface FramedContextValue {
15
417
  config: FramedProviderConfig;
16
418
  projectId: string;
419
+ currentProject: SDKProject | null;
420
+ isProjectLoading: boolean;
421
+ projectError: string | null;
422
+ updateCurrentProject: (updates: Partial<SDKProject>) => Promise<void>;
17
423
  isAuthenticated: boolean;
18
424
  session: Session | null;
19
425
  isAuthLoading: boolean;
@@ -37,7 +443,7 @@ interface FramedContextValue {
37
443
  isWidgetReady: boolean;
38
444
  }
39
445
  interface FramedProviderProps {
40
- config?: FramedProviderConfig;
446
+ config?: Partial<FramedProviderConfig>;
41
447
  children: ReactNode;
42
448
  }
43
449
  declare function FramedProvider({ config, children }: FramedProviderProps): react_jsx_runtime.JSX.Element;
@@ -51,6 +457,16 @@ declare function useFramedCallbacks(): WizardCallbacks;
51
457
  * Hook to check if AI features are available.
52
458
  */
53
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
+ };
54
470
 
55
471
  interface AuthContextValue {
56
472
  isAuthenticated: boolean;
@@ -276,326 +692,6 @@ declare class SyncDataLayer implements WidgetDataLayer {
276
692
  markTaskDone(taskId: string): Promise<void>;
277
693
  }
278
694
 
279
- /**
280
- * Navigation hook that works without react-router-dom
281
- * Uses window.location for navigation
282
- */
283
- declare function useNavigate(): (path: string, options?: {
284
- replace?: boolean;
285
- }) => void;
286
- /**
287
- * Get URL params from current location
288
- * Works without react-router-dom
289
- */
290
- declare function useParams<T extends Record<string, string>>(): T;
291
- /**
292
- * Get current location info
293
- * Works without react-router-dom
294
- */
295
- declare function useLocation(): {
296
- pathname: string;
297
- search: string;
298
- hash: string;
299
- state: null;
300
- };
301
- /**
302
- * Search params hook
303
- * Works without react-router-dom
304
- */
305
- declare function useSearchParams(): [URLSearchParams, (params: URLSearchParams) => void];
306
- /**
307
- * Link component that works without react-router-dom
308
- * Renders a plain anchor tag
309
- * Accepts either 'to' or 'href' for compatibility
310
- */
311
- interface LinkProps extends Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'href'> {
312
- to?: string;
313
- href?: string;
314
- replace?: boolean;
315
- children: React.ReactNode;
316
- }
317
- declare function Link({ to, href, replace, children, onClick, ...props }: LinkProps): React.DetailedReactHTMLElement<{
318
- id?: string | undefined | undefined;
319
- type?: string | undefined | undefined;
320
- slot?: string | undefined | undefined;
321
- style?: React.CSSProperties | undefined;
322
- title?: string | undefined | undefined;
323
- content?: string | undefined | undefined;
324
- dir?: string | undefined | undefined;
325
- "aria-current"?: boolean | "false" | "true" | "page" | "step" | "location" | "date" | "time" | undefined | undefined;
326
- onSubmit?: React.FormEventHandler<HTMLAnchorElement> | undefined;
327
- className?: string | undefined | undefined;
328
- download?: any;
329
- hrefLang?: string | undefined | undefined;
330
- media?: string | undefined | undefined;
331
- ping?: string | undefined | undefined;
332
- target?: React.HTMLAttributeAnchorTarget | undefined;
333
- referrerPolicy?: React.HTMLAttributeReferrerPolicy | undefined;
334
- defaultChecked?: boolean | undefined | undefined;
335
- defaultValue?: string | number | readonly string[] | undefined;
336
- suppressContentEditableWarning?: boolean | undefined | undefined;
337
- suppressHydrationWarning?: boolean | undefined | undefined;
338
- accessKey?: string | undefined | undefined;
339
- autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined | (string & {}) | undefined;
340
- autoFocus?: boolean | undefined | undefined;
341
- contentEditable?: (boolean | "false" | "true") | "inherit" | "plaintext-only" | undefined;
342
- contextMenu?: string | undefined | undefined;
343
- draggable?: (boolean | "false" | "true") | undefined;
344
- enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
345
- hidden?: boolean | undefined | undefined;
346
- lang?: string | undefined | undefined;
347
- nonce?: string | undefined | undefined;
348
- spellCheck?: (boolean | "false" | "true") | undefined;
349
- tabIndex?: number | undefined | undefined;
350
- translate?: "yes" | "no" | undefined | undefined;
351
- radioGroup?: string | undefined | undefined;
352
- role?: React.AriaRole | undefined;
353
- about?: string | undefined | undefined;
354
- datatype?: string | undefined | undefined;
355
- inlist?: any;
356
- prefix?: string | undefined | undefined;
357
- property?: string | undefined | undefined;
358
- rel?: string | undefined | undefined;
359
- resource?: string | undefined | undefined;
360
- rev?: string | undefined | undefined;
361
- typeof?: string | undefined | undefined;
362
- vocab?: string | undefined | undefined;
363
- autoCorrect?: string | undefined | undefined;
364
- autoSave?: string | undefined | undefined;
365
- color?: string | undefined | undefined;
366
- itemProp?: string | undefined | undefined;
367
- itemScope?: boolean | undefined | undefined;
368
- itemType?: string | undefined | undefined;
369
- itemID?: string | undefined | undefined;
370
- itemRef?: string | undefined | undefined;
371
- results?: number | undefined | undefined;
372
- security?: string | undefined | undefined;
373
- unselectable?: "on" | "off" | undefined | undefined;
374
- inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined | undefined;
375
- is?: string | undefined | undefined;
376
- exportparts?: string | undefined | undefined;
377
- part?: string | undefined | undefined;
378
- "aria-activedescendant"?: string | undefined | undefined;
379
- "aria-atomic"?: (boolean | "false" | "true") | undefined;
380
- "aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined | undefined;
381
- "aria-braillelabel"?: string | undefined | undefined;
382
- "aria-brailleroledescription"?: string | undefined | undefined;
383
- "aria-busy"?: (boolean | "false" | "true") | undefined;
384
- "aria-checked"?: boolean | "false" | "mixed" | "true" | undefined | undefined;
385
- "aria-colcount"?: number | undefined | undefined;
386
- "aria-colindex"?: number | undefined | undefined;
387
- "aria-colindextext"?: string | undefined | undefined;
388
- "aria-colspan"?: number | undefined | undefined;
389
- "aria-controls"?: string | undefined | undefined;
390
- "aria-describedby"?: string | undefined | undefined;
391
- "aria-description"?: string | undefined | undefined;
392
- "aria-details"?: string | undefined | undefined;
393
- "aria-disabled"?: (boolean | "false" | "true") | undefined;
394
- "aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined | undefined;
395
- "aria-errormessage"?: string | undefined | undefined;
396
- "aria-expanded"?: (boolean | "false" | "true") | undefined;
397
- "aria-flowto"?: string | undefined | undefined;
398
- "aria-grabbed"?: (boolean | "false" | "true") | undefined;
399
- "aria-haspopup"?: boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined | undefined;
400
- "aria-hidden"?: (boolean | "false" | "true") | undefined;
401
- "aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling" | undefined | undefined;
402
- "aria-keyshortcuts"?: string | undefined | undefined;
403
- "aria-label"?: string | undefined | undefined;
404
- "aria-labelledby"?: string | undefined | undefined;
405
- "aria-level"?: number | undefined | undefined;
406
- "aria-live"?: "off" | "assertive" | "polite" | undefined | undefined;
407
- "aria-modal"?: (boolean | "false" | "true") | undefined;
408
- "aria-multiline"?: (boolean | "false" | "true") | undefined;
409
- "aria-multiselectable"?: (boolean | "false" | "true") | undefined;
410
- "aria-orientation"?: "horizontal" | "vertical" | undefined | undefined;
411
- "aria-owns"?: string | undefined | undefined;
412
- "aria-placeholder"?: string | undefined | undefined;
413
- "aria-posinset"?: number | undefined | undefined;
414
- "aria-pressed"?: boolean | "false" | "mixed" | "true" | undefined | undefined;
415
- "aria-readonly"?: (boolean | "false" | "true") | undefined;
416
- "aria-relevant"?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" | undefined | undefined;
417
- "aria-required"?: (boolean | "false" | "true") | undefined;
418
- "aria-roledescription"?: string | undefined | undefined;
419
- "aria-rowcount"?: number | undefined | undefined;
420
- "aria-rowindex"?: number | undefined | undefined;
421
- "aria-rowindextext"?: string | undefined | undefined;
422
- "aria-rowspan"?: number | undefined | undefined;
423
- "aria-selected"?: (boolean | "false" | "true") | undefined;
424
- "aria-setsize"?: number | undefined | undefined;
425
- "aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined | undefined;
426
- "aria-valuemax"?: number | undefined | undefined;
427
- "aria-valuemin"?: number | undefined | undefined;
428
- "aria-valuenow"?: number | undefined | undefined;
429
- "aria-valuetext"?: string | undefined | undefined;
430
- dangerouslySetInnerHTML?: {
431
- __html: string | TrustedHTML;
432
- } | undefined | undefined;
433
- onCopy?: React.ClipboardEventHandler<HTMLAnchorElement> | undefined;
434
- onCopyCapture?: React.ClipboardEventHandler<HTMLAnchorElement> | undefined;
435
- onCut?: React.ClipboardEventHandler<HTMLAnchorElement> | undefined;
436
- onCutCapture?: React.ClipboardEventHandler<HTMLAnchorElement> | undefined;
437
- onPaste?: React.ClipboardEventHandler<HTMLAnchorElement> | undefined;
438
- onPasteCapture?: React.ClipboardEventHandler<HTMLAnchorElement> | undefined;
439
- onCompositionEnd?: React.CompositionEventHandler<HTMLAnchorElement> | undefined;
440
- onCompositionEndCapture?: React.CompositionEventHandler<HTMLAnchorElement> | undefined;
441
- onCompositionStart?: React.CompositionEventHandler<HTMLAnchorElement> | undefined;
442
- onCompositionStartCapture?: React.CompositionEventHandler<HTMLAnchorElement> | undefined;
443
- onCompositionUpdate?: React.CompositionEventHandler<HTMLAnchorElement> | undefined;
444
- onCompositionUpdateCapture?: React.CompositionEventHandler<HTMLAnchorElement> | undefined;
445
- onFocus?: React.FocusEventHandler<HTMLAnchorElement> | undefined;
446
- onFocusCapture?: React.FocusEventHandler<HTMLAnchorElement> | undefined;
447
- onBlur?: React.FocusEventHandler<HTMLAnchorElement> | undefined;
448
- onBlurCapture?: React.FocusEventHandler<HTMLAnchorElement> | undefined;
449
- onChange?: React.FormEventHandler<HTMLAnchorElement> | undefined;
450
- onChangeCapture?: React.FormEventHandler<HTMLAnchorElement> | undefined;
451
- onBeforeInput?: React.InputEventHandler<HTMLAnchorElement> | undefined;
452
- onBeforeInputCapture?: React.FormEventHandler<HTMLAnchorElement> | undefined;
453
- onInput?: React.FormEventHandler<HTMLAnchorElement> | undefined;
454
- onInputCapture?: React.FormEventHandler<HTMLAnchorElement> | undefined;
455
- onReset?: React.FormEventHandler<HTMLAnchorElement> | undefined;
456
- onResetCapture?: React.FormEventHandler<HTMLAnchorElement> | undefined;
457
- onSubmitCapture?: React.FormEventHandler<HTMLAnchorElement> | undefined;
458
- onInvalid?: React.FormEventHandler<HTMLAnchorElement> | undefined;
459
- onInvalidCapture?: React.FormEventHandler<HTMLAnchorElement> | undefined;
460
- onLoad?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
461
- onLoadCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
462
- onError?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
463
- onErrorCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
464
- onKeyDown?: React.KeyboardEventHandler<HTMLAnchorElement> | undefined;
465
- onKeyDownCapture?: React.KeyboardEventHandler<HTMLAnchorElement> | undefined;
466
- onKeyPress?: React.KeyboardEventHandler<HTMLAnchorElement> | undefined;
467
- onKeyPressCapture?: React.KeyboardEventHandler<HTMLAnchorElement> | undefined;
468
- onKeyUp?: React.KeyboardEventHandler<HTMLAnchorElement> | undefined;
469
- onKeyUpCapture?: React.KeyboardEventHandler<HTMLAnchorElement> | undefined;
470
- onAbort?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
471
- onAbortCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
472
- onCanPlay?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
473
- onCanPlayCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
474
- onCanPlayThrough?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
475
- onCanPlayThroughCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
476
- onDurationChange?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
477
- onDurationChangeCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
478
- onEmptied?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
479
- onEmptiedCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
480
- onEncrypted?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
481
- onEncryptedCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
482
- onEnded?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
483
- onEndedCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
484
- onLoadedData?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
485
- onLoadedDataCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
486
- onLoadedMetadata?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
487
- onLoadedMetadataCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
488
- onLoadStart?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
489
- onLoadStartCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
490
- onPause?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
491
- onPauseCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
492
- onPlay?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
493
- onPlayCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
494
- onPlaying?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
495
- onPlayingCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
496
- onProgress?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
497
- onProgressCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
498
- onRateChange?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
499
- onRateChangeCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
500
- onSeeked?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
501
- onSeekedCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
502
- onSeeking?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
503
- onSeekingCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
504
- onStalled?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
505
- onStalledCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
506
- onSuspend?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
507
- onSuspendCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
508
- onTimeUpdate?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
509
- onTimeUpdateCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
510
- onVolumeChange?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
511
- onVolumeChangeCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
512
- onWaiting?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
513
- onWaitingCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
514
- onAuxClick?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
515
- onAuxClickCapture?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
516
- onClickCapture?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
517
- onContextMenu?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
518
- onContextMenuCapture?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
519
- onDoubleClick?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
520
- onDoubleClickCapture?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
521
- onDrag?: React.DragEventHandler<HTMLAnchorElement> | undefined;
522
- onDragCapture?: React.DragEventHandler<HTMLAnchorElement> | undefined;
523
- onDragEnd?: React.DragEventHandler<HTMLAnchorElement> | undefined;
524
- onDragEndCapture?: React.DragEventHandler<HTMLAnchorElement> | undefined;
525
- onDragEnter?: React.DragEventHandler<HTMLAnchorElement> | undefined;
526
- onDragEnterCapture?: React.DragEventHandler<HTMLAnchorElement> | undefined;
527
- onDragExit?: React.DragEventHandler<HTMLAnchorElement> | undefined;
528
- onDragExitCapture?: React.DragEventHandler<HTMLAnchorElement> | undefined;
529
- onDragLeave?: React.DragEventHandler<HTMLAnchorElement> | undefined;
530
- onDragLeaveCapture?: React.DragEventHandler<HTMLAnchorElement> | undefined;
531
- onDragOver?: React.DragEventHandler<HTMLAnchorElement> | undefined;
532
- onDragOverCapture?: React.DragEventHandler<HTMLAnchorElement> | undefined;
533
- onDragStart?: React.DragEventHandler<HTMLAnchorElement> | undefined;
534
- onDragStartCapture?: React.DragEventHandler<HTMLAnchorElement> | undefined;
535
- onDrop?: React.DragEventHandler<HTMLAnchorElement> | undefined;
536
- onDropCapture?: React.DragEventHandler<HTMLAnchorElement> | undefined;
537
- onMouseDown?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
538
- onMouseDownCapture?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
539
- onMouseEnter?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
540
- onMouseLeave?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
541
- onMouseMove?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
542
- onMouseMoveCapture?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
543
- onMouseOut?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
544
- onMouseOutCapture?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
545
- onMouseOver?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
546
- onMouseOverCapture?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
547
- onMouseUp?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
548
- onMouseUpCapture?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
549
- onSelect?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
550
- onSelectCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
551
- onTouchCancel?: React.TouchEventHandler<HTMLAnchorElement> | undefined;
552
- onTouchCancelCapture?: React.TouchEventHandler<HTMLAnchorElement> | undefined;
553
- onTouchEnd?: React.TouchEventHandler<HTMLAnchorElement> | undefined;
554
- onTouchEndCapture?: React.TouchEventHandler<HTMLAnchorElement> | undefined;
555
- onTouchMove?: React.TouchEventHandler<HTMLAnchorElement> | undefined;
556
- onTouchMoveCapture?: React.TouchEventHandler<HTMLAnchorElement> | undefined;
557
- onTouchStart?: React.TouchEventHandler<HTMLAnchorElement> | undefined;
558
- onTouchStartCapture?: React.TouchEventHandler<HTMLAnchorElement> | undefined;
559
- onPointerDown?: React.PointerEventHandler<HTMLAnchorElement> | undefined;
560
- onPointerDownCapture?: React.PointerEventHandler<HTMLAnchorElement> | undefined;
561
- onPointerMove?: React.PointerEventHandler<HTMLAnchorElement> | undefined;
562
- onPointerMoveCapture?: React.PointerEventHandler<HTMLAnchorElement> | undefined;
563
- onPointerUp?: React.PointerEventHandler<HTMLAnchorElement> | undefined;
564
- onPointerUpCapture?: React.PointerEventHandler<HTMLAnchorElement> | undefined;
565
- onPointerCancel?: React.PointerEventHandler<HTMLAnchorElement> | undefined;
566
- onPointerCancelCapture?: React.PointerEventHandler<HTMLAnchorElement> | undefined;
567
- onPointerEnter?: React.PointerEventHandler<HTMLAnchorElement> | undefined;
568
- onPointerLeave?: React.PointerEventHandler<HTMLAnchorElement> | undefined;
569
- onPointerOver?: React.PointerEventHandler<HTMLAnchorElement> | undefined;
570
- onPointerOverCapture?: React.PointerEventHandler<HTMLAnchorElement> | undefined;
571
- onPointerOut?: React.PointerEventHandler<HTMLAnchorElement> | undefined;
572
- onPointerOutCapture?: React.PointerEventHandler<HTMLAnchorElement> | undefined;
573
- onGotPointerCapture?: React.PointerEventHandler<HTMLAnchorElement> | undefined;
574
- onGotPointerCaptureCapture?: React.PointerEventHandler<HTMLAnchorElement> | undefined;
575
- onLostPointerCapture?: React.PointerEventHandler<HTMLAnchorElement> | undefined;
576
- onLostPointerCaptureCapture?: React.PointerEventHandler<HTMLAnchorElement> | undefined;
577
- onScroll?: React.UIEventHandler<HTMLAnchorElement> | undefined;
578
- onScrollCapture?: React.UIEventHandler<HTMLAnchorElement> | undefined;
579
- onWheel?: React.WheelEventHandler<HTMLAnchorElement> | undefined;
580
- onWheelCapture?: React.WheelEventHandler<HTMLAnchorElement> | undefined;
581
- onAnimationStart?: React.AnimationEventHandler<HTMLAnchorElement> | undefined;
582
- onAnimationStartCapture?: React.AnimationEventHandler<HTMLAnchorElement> | undefined;
583
- onAnimationEnd?: React.AnimationEventHandler<HTMLAnchorElement> | undefined;
584
- onAnimationEndCapture?: React.AnimationEventHandler<HTMLAnchorElement> | undefined;
585
- onAnimationIteration?: React.AnimationEventHandler<HTMLAnchorElement> | undefined;
586
- onAnimationIterationCapture?: React.AnimationEventHandler<HTMLAnchorElement> | undefined;
587
- onTransitionEnd?: React.TransitionEventHandler<HTMLAnchorElement> | undefined;
588
- onTransitionEndCapture?: React.TransitionEventHandler<HTMLAnchorElement> | undefined;
589
- href: string;
590
- onClick: (e: React.MouseEvent<HTMLAnchorElement>) => void;
591
- }, HTMLElement>;
592
- /**
593
- * Navigate programmatically
594
- */
595
- declare function navigate(path: string, options?: {
596
- replace?: boolean;
597
- }): void;
598
-
599
695
  /**
600
696
  * Supabase stub for widget-sdk
601
697
  *
@@ -645,31 +741,21 @@ declare function clearSupabase(): void;
645
741
  */
646
742
  declare const supabase: SupabaseClient$1<any, "public", "public", any, any>;
647
743
 
648
- declare function FramedDashboard(): react_jsx_runtime.JSX.Element;
649
-
650
- declare function FramedLogin(): react_jsx_runtime.JSX.Element;
651
-
652
- declare function FramedReview(): react_jsx_runtime.JSX.Element;
653
-
654
- declare function FramedBuild(): react_jsx_runtime.JSX.Element;
655
-
656
- /**
657
- * FramedManage - Maintenance & Monitoring Dashboard
658
- *
659
- * This page renders the Phase 5 Command Center for project maintenance.
660
- * It requires a Supabase connection for full functionality.
661
- *
662
- * Features when connected:
663
- * - Maintenance item tracking (inbox, board, timeline views)
664
- * - Uptime monitoring
665
- * - Domain & SSL monitoring
666
- * - Performance analysis
667
- * - Monthly reports
668
- * - Changelog management
669
- * - Improvement suggestions
670
- */
671
- declare function FramedManage(): react_jsx_runtime.JSX.Element;
672
-
673
- declare function FramedStarter(): react_jsx_runtime.JSX.Element;
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;
674
760
 
675
- export { AuthProvider, type ContentMap, FeedbackWidget, type FeedbackWidgetProps, FramedAPIClient, type FramedAPIConfig, FramedBuild, FramedDashboard, FramedLogin, FramedManage, FramedProvider, type FramedProviderConfig, type FramedProviderProps, FramedReview, FramedStarter, type FrameworkInfo, Link, type LinkProps, LocalDataLayer, type NavigationItem, type PromptOptions, type SiteContext, type SitePageInfo, type SitePatterns, SyncDataLayer, TasksReadyPanel, type TasksReadyPanelProps, type TasksResponse, type UploadResponse, type UseFramedTasksResult, type ValidationResult, clearSupabase, copyPromptToClipboard, generateAIPrompt, getSupabase, initSupabase as initSupabaseClient, navigate, scanSiteContext, supabase, useAuth, useFramed, useFramedCallbacks, useFramedTasks, useHasAIFeatures, useLocation, useNavigate, useParams, useSearchParams };
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 };