SYMBOL INDEX (296 symbols across 89 files) FILE: src/api/ai.ts type AiTokenHistory (line 3) | interface AiTokenHistory { type AiTokenPackage (line 24) | interface AiTokenPackage { type PaginationResult (line 37) | interface PaginationResult { method getPackages (line 46) | async getPackages(params?: { page?: number, limit?: number }): Promise<{... method getUsage (line 55) | async getUsage(params?: { page?: number, limit?: number }): Promise<{ it... FILE: src/api/pay.ts type PayVirtualProduct (line 3) | interface PayVirtualProduct { type WxOrderResult (line 16) | interface WxOrderResult { type AlipayOrderResult (line 22) | interface AlipayOrderResult { method getProducts (line 29) | async getProducts(category: string = 'ai'): Promise { method createWxOrder (line 35) | async createWxOrder(productId: number): Promise { method createAlipayOrder (line 41) | async createAlipayOrder(productId: number, returnUrl: string = 'https://... method getAlipayUrl (line 47) | async getAlipayUrl(orderId: string): Promise { FILE: src/api/supabase.ts function getStorageLink (line 7) | function getStorageLink(fullPath: string) { FILE: src/app.tsx function App (line 9) | function App() { FILE: src/components/app-sidebar.tsx type RouteHandle (line 26) | interface RouteHandle { function AppSidebar (line 33) | function AppSidebar({ ...props }: React.ComponentProps) { FILE: src/components/dashboard-layout.tsx function DashboardLayout (line 16) | function DashboardLayout() { FILE: src/components/login-check.tsx type LoginCheckProps (line 19) | interface LoginCheckProps { function LoginCheck (line 23) | function LoginCheck({ children }: LoginCheckProps) { FILE: src/components/manager/deployed-widget-card.tsx type DeployedWidgetCardProps (line 27) | interface DeployedWidgetCardProps { function DeployedWidgetCard (line 32) | function DeployedWidgetCard({ deployedWidget, onRemove }: DeployedWidget... FILE: src/components/manager/deployed-widget-list.tsx function DeployedWidgetList (line 7) | function DeployedWidgetList() { FILE: src/components/nav-main.tsx function NavMain (line 12) | function NavMain({ FILE: src/components/nav-user.tsx function NavUser (line 20) | function NavUser({ FILE: src/components/purchase-dialog.tsx type PurchaseDialogProps (line 18) | interface PurchaseDialogProps { function PurchaseDialog (line 25) | function PurchaseDialog({ open, onOpenChange, productId = 2, onSuccess }... FILE: src/components/setting-section.tsx type SettingSectionProps (line 4) | interface SettingSectionProps { function SettingSection (line 9) | function SettingSection({ title, children }: SettingSectionProps) { FILE: src/components/team-switcher.tsx function TeamSwitcher (line 22) | function TeamSwitcher({ FILE: src/components/tray/social-links.tsx type SocialLinksProps (line 10) | interface SocialLinksProps { function useLongPress (line 14) | function useLongPress(callback: () => void, delay: number = 3000) { function SocialLinks (line 39) | function SocialLinks({ iconSize = 20 }: SocialLinksProps) { FILE: src/components/tray/tray-menu-item.tsx type TrayMenuItemProps (line 5) | interface TrayMenuItemProps extends React.HTMLAttributes { function TrayMenuItem (line 10) | function TrayMenuItem({ ref, className, icon: Icon, label, ...props }: T... FILE: src/components/ui/alert-dialog.tsx function AlertDialog (line 7) | function AlertDialog({ function AlertDialogTrigger (line 13) | function AlertDialogTrigger({ function AlertDialogPortal (line 21) | function AlertDialogPortal({ function AlertDialogOverlay (line 29) | function AlertDialogOverlay({ function AlertDialogContent (line 45) | function AlertDialogContent({ function AlertDialogHeader (line 68) | function AlertDialogHeader({ function AlertDialogFooter (line 84) | function AlertDialogFooter({ function AlertDialogTitle (line 100) | function AlertDialogTitle({ function AlertDialogDescription (line 116) | function AlertDialogDescription({ function AlertDialogMedia (line 129) | function AlertDialogMedia({ function AlertDialogAction (line 145) | function AlertDialogAction({ function AlertDialogCancel (line 163) | function AlertDialogCancel({ FILE: src/components/ui/avatar.tsx function Avatar (line 6) | function Avatar({ function AvatarImage (line 26) | function AvatarImage({ function AvatarFallback (line 39) | function AvatarFallback({ function AvatarBadge (line 55) | function AvatarBadge({ className, ...props }: React.ComponentProps<'span... function AvatarGroup (line 71) | function AvatarGroup({ className, ...props }: React.ComponentProps<'div'... function AvatarGroupCount (line 84) | function AvatarGroupCount({ FILE: src/components/ui/breadcrumb.tsx function Breadcrumb (line 7) | function Breadcrumb({ ...props }: React.ComponentProps<'nav'>) { function BreadcrumbList (line 11) | function BreadcrumbList({ className, ...props }: React.ComponentProps<'o... function BreadcrumbItem (line 24) | function BreadcrumbItem({ className, ...props }: React.ComponentProps<'l... function BreadcrumbLink (line 34) | function BreadcrumbLink({ function BreadcrumbPage (line 52) | function BreadcrumbPage({ className, ...props }: React.ComponentProps<'s... function BreadcrumbSeparator (line 65) | function BreadcrumbSeparator({ function BreadcrumbEllipsis (line 83) | function BreadcrumbEllipsis({ FILE: src/components/ui/button.tsx function Button (line 42) | function Button({ FILE: src/components/ui/card.tsx function Card (line 5) | function Card({ className, ...props }: React.ComponentProps<'div'>) { function CardHeader (line 18) | function CardHeader({ className, ...props }: React.ComponentProps<'div'>) { function CardTitle (line 31) | function CardTitle({ className, ...props }: React.ComponentProps<'div'>) { function CardDescription (line 41) | function CardDescription({ className, ...props }: React.ComponentProps<'... function CardAction (line 51) | function CardAction({ className, ...props }: React.ComponentProps<'div'>) { function CardContent (line 64) | function CardContent({ className, ...props }: React.ComponentProps<'div'... function CardFooter (line 74) | function CardFooter({ className, ...props }: React.ComponentProps<'div'>) { FILE: src/components/ui/checkbox.tsx function Checkbox (line 7) | function Checkbox({ FILE: src/components/ui/collapsible.tsx function Collapsible (line 5) | function Collapsible({ function CollapsibleTrigger (line 11) | function CollapsibleTrigger({ function CollapsibleContent (line 22) | function CollapsibleContent({ FILE: src/components/ui/command.tsx function Command (line 16) | function Command({ function CommandDialog (line 32) | function CommandDialog({ function CommandInput (line 63) | function CommandInput({ function CommandList (line 85) | function CommandList({ function CommandEmpty (line 101) | function CommandEmpty({ function CommandGroup (line 113) | function CommandGroup({ function CommandSeparator (line 129) | function CommandSeparator({ function CommandItem (line 142) | function CommandItem({ function CommandShortcut (line 158) | function CommandShortcut({ FILE: src/components/ui/dialog.tsx function Dialog (line 8) | function Dialog({ function DialogTrigger (line 14) | function DialogTrigger({ function DialogPortal (line 20) | function DialogPortal({ function DialogClose (line 26) | function DialogClose({ function DialogOverlay (line 32) | function DialogOverlay({ function DialogContent (line 48) | function DialogContent({ function DialogHeader (line 82) | function DialogHeader({ className, ...props }: React.ComponentProps<'div... function DialogFooter (line 92) | function DialogFooter({ function DialogTitle (line 119) | function DialogTitle({ function DialogDescription (line 132) | function DialogDescription({ FILE: src/components/ui/dropdown-menu.tsx function DropdownMenu (line 7) | function DropdownMenu({ function DropdownMenuPortal (line 13) | function DropdownMenuPortal({ function DropdownMenuTrigger (line 21) | function DropdownMenuTrigger({ function DropdownMenuContent (line 32) | function DropdownMenuContent({ function DropdownMenuGroup (line 52) | function DropdownMenuGroup({ function DropdownMenuItem (line 60) | function DropdownMenuItem({ function DropdownMenuCheckboxItem (line 83) | function DropdownMenuCheckboxItem({ function DropdownMenuRadioGroup (line 109) | function DropdownMenuRadioGroup({ function DropdownMenuRadioItem (line 120) | function DropdownMenuRadioItem({ function DropdownMenuLabel (line 144) | function DropdownMenuLabel({ function DropdownMenuSeparator (line 164) | function DropdownMenuSeparator({ function DropdownMenuShortcut (line 177) | function DropdownMenuShortcut({ function DropdownMenuSub (line 193) | function DropdownMenuSub({ function DropdownMenuSubTrigger (line 199) | function DropdownMenuSubTrigger({ function DropdownMenuSubContent (line 223) | function DropdownMenuSubContent({ FILE: src/components/ui/empty.tsx function Empty (line 6) | function Empty({ className, ...props }: React.ComponentProps<'div'>) { function EmptyHeader (line 19) | function EmptyHeader({ className, ...props }: React.ComponentProps<'div'... function EmptyMedia (line 47) | function EmptyMedia({ function EmptyTitle (line 62) | function EmptyTitle({ className, ...props }: React.ComponentProps<'div'>) { function EmptyDescription (line 72) | function EmptyDescription({ className, ...props }: React.ComponentProps<... function EmptyContent (line 85) | function EmptyContent({ className, ...props }: React.ComponentProps<'div... FILE: src/components/ui/field.tsx function FieldSet (line 9) | function FieldSet({ className, ...props }: React.ComponentProps<'fieldse... function FieldLegend (line 23) | function FieldLegend({ function FieldGroup (line 43) | function FieldGroup({ className, ...props }: React.ComponentProps<'div'>) { function Field (line 80) | function Field({ function FieldContent (line 96) | function FieldContent({ className, ...props }: React.ComponentProps<'div... function FieldLabel (line 109) | function FieldLabel({ function FieldTitle (line 127) | function FieldTitle({ className, ...props }: React.ComponentProps<'div'>) { function FieldDescription (line 140) | function FieldDescription({ className, ...props }: React.ComponentProps<... function FieldSeparator (line 155) | function FieldSeparator({ function FieldError (line 185) | function FieldError({ FILE: src/components/ui/input.tsx function Input (line 5) | function Input({ className, type, ...props }: React.ComponentProps<'inpu... FILE: src/components/ui/item.tsx function ItemGroup (line 9) | function ItemGroup({ className, ...props }: React.ComponentProps<'div'>) { function ItemSeparator (line 20) | function ItemSeparator({ function Item (line 55) | function Item({ function ItemMedia (line 92) | function ItemMedia({ function ItemContent (line 107) | function ItemContent({ className, ...props }: React.ComponentProps<'div'... function ItemTitle (line 120) | function ItemTitle({ className, ...props }: React.ComponentProps<'div'>) { function ItemDescription (line 133) | function ItemDescription({ className, ...props }: React.ComponentProps<'... function ItemActions (line 147) | function ItemActions({ className, ...props }: React.ComponentProps<'div'... function ItemHeader (line 157) | function ItemHeader({ className, ...props }: React.ComponentProps<'div'>) { function ItemFooter (line 170) | function ItemFooter({ className, ...props }: React.ComponentProps<'div'>) { FILE: src/components/ui/label.tsx function Label (line 6) | function Label({ FILE: src/components/ui/pagination.tsx function Pagination (line 12) | function Pagination({ className, ...props }: React.ComponentProps<'nav'>) { function PaginationContent (line 24) | function PaginationContent({ function PaginationItem (line 37) | function PaginationItem({ ...props }: React.ComponentProps<'li'>) { type PaginationLinkProps (line 41) | type PaginationLinkProps = { function PaginationLink (line 46) | function PaginationLink({ function PaginationPrevious (line 69) | function PaginationPrevious({ function PaginationNext (line 86) | function PaginationNext({ function PaginationEllipsis (line 103) | function PaginationEllipsis({ FILE: src/components/ui/popover.tsx function Popover (line 6) | function Popover({ function PopoverTrigger (line 12) | function PopoverTrigger({ function PopoverContent (line 18) | function PopoverContent({ function PopoverAnchor (line 40) | function PopoverAnchor({ function PopoverHeader (line 46) | function PopoverHeader({ className, ...props }: React.ComponentProps<'di... function PopoverTitle (line 56) | function PopoverTitle({ className, ...props }: React.ComponentProps<'h2'... function PopoverDescription (line 66) | function PopoverDescription({ FILE: src/components/ui/progress.tsx function Progress (line 8) | function Progress({ FILE: src/components/ui/radio-group.tsx function RadioGroup (line 7) | function RadioGroup({ function RadioGroupItem (line 20) | function RadioGroupItem({ FILE: src/components/ui/scroll-area.tsx function ScrollArea (line 6) | function ScrollArea({ function ScrollBar (line 29) | function ScrollBar({ FILE: src/components/ui/select.tsx function Select (line 9) | function Select({ function SelectGroup (line 15) | function SelectGroup({ function SelectValue (line 21) | function SelectValue({ function SelectTrigger (line 27) | function SelectTrigger({ function SelectContent (line 53) | function SelectContent({ function SelectLabel (line 90) | function SelectLabel({ function SelectItem (line 103) | function SelectItem({ function SelectSeparator (line 130) | function SelectSeparator({ function SelectScrollUpButton (line 143) | function SelectScrollUpButton({ function SelectScrollDownButton (line 161) | function SelectScrollDownButton({ FILE: src/components/ui/separator.tsx function Separator (line 6) | function Separator({ FILE: src/components/ui/sheet.tsx function Sheet (line 9) | function Sheet({ ...props }: React.ComponentProps) { function SidebarMenuItem (line 465) | function SidebarMenuItem({ className, ...props }: React.ComponentProps<'... function SidebarMenuButton (line 498) | function SidebarMenuButton({ function SidebarMenuAction (line 548) | function SidebarMenuAction({ function SidebarMenuBadge (line 580) | function SidebarMenuBadge({ function SidebarMenuSkeleton (line 602) | function SidebarMenuSkeleton({ function SidebarMenuSub (line 640) | function SidebarMenuSub({ className, ...props }: React.ComponentProps<'u... function SidebarMenuSubItem (line 655) | function SidebarMenuSubItem({ function SidebarMenuSubButton (line 669) | function SidebarMenuSubButton({ FILE: src/components/ui/skeleton.tsx function Skeleton (line 3) | function Skeleton({ className, ...props }: React.ComponentProps<'div'>) { FILE: src/components/ui/slider.tsx function Slider (line 6) | function Slider({ FILE: src/components/ui/sonner.tsx function Toaster (line 14) | function Toaster({ ...props }: ToasterProps) { FILE: src/components/ui/spinner.tsx function Spinner (line 5) | function Spinner({ className, ...props }: React.ComponentProps<'svg'>) { FILE: src/components/ui/switch.tsx function Switch (line 6) | function Switch({ FILE: src/components/ui/table.tsx function Table (line 5) | function Table({ className, ...props }: React.ComponentProps<'table'>) { function TableHeader (line 20) | function TableHeader({ className, ...props }: React.ComponentProps<'thea... function TableBody (line 30) | function TableBody({ className, ...props }: React.ComponentProps<'tbody'... function TableFooter (line 40) | function TableFooter({ className, ...props }: React.ComponentProps<'tfoo... function TableRow (line 53) | function TableRow({ className, ...props }: React.ComponentProps<'tr'>) { function TableHead (line 66) | function TableHead({ className, ...props }: React.ComponentProps<'th'>) { function TableCell (line 79) | function TableCell({ className, ...props }: React.ComponentProps<'td'>) { function TableCaption (line 92) | function TableCaption({ FILE: src/components/ui/tabs.tsx function Tabs (line 10) | function Tabs({ function TabsList (line 44) | function TabsList({ function TabsTrigger (line 60) | function TabsTrigger({ function TabsContent (line 79) | function TabsContent({ FILE: src/components/ui/textarea.tsx function Textarea (line 5) | function Textarea({ className, ...props }: React.ComponentProps<'textare... FILE: src/components/ui/tooltip.tsx function TooltipProvider (line 6) | function TooltipProvider({ function Tooltip (line 19) | function Tooltip({ function TooltipTrigger (line 25) | function TooltipTrigger({ function TooltipContent (line 31) | function TooltipContent({ FILE: src/components/user-avatar.tsx type UserAvatarProps (line 5) | interface UserAvatarProps { function UserAvatar (line 12) | function UserAvatar({ FILE: src/components/widget-sync-item.tsx type WidgetSyncItemProps (line 15) | interface WidgetSyncItemProps { function WidgetSyncItem (line 19) | function WidgetSyncItem({ widget }: WidgetSyncItemProps) { FILE: src/hooks/use-app-broadcast.ts function useAppBroadcast (line 6) | function useAppBroadcast( FILE: src/hooks/use-app-language.ts type UseAppLanguageOption (line 6) | interface UseAppLanguageOption { function useAppLanguage (line 11) | function useAppLanguage(options?: UseAppLanguageOption) { FILE: src/hooks/use-app-runtime-info.ts type SimpleAppRuntimeInfo (line 5) | type SimpleAppRuntimeInfo = Omit(value: T, delay: number): T { FILE: src/hooks/use-debug-config.ts function useDebugConfig (line 4) | function useDebugConfig(onLoad?: (debug: boolean) => void) { FILE: src/hooks/use-ipc-listener.ts function useIpcListener (line 5) | function useIpcListener(channel: Channel | string, callback: (...args: a... FILE: src/hooks/use-launch-at-startup-config.ts function useLaunchAtStartupConfig (line 4) | function useLaunchAtStartupConfig() { FILE: src/hooks/use-mobile.ts constant MOBILE_BREAKPOINT (line 3) | const MOBILE_BREAKPOINT = 768 function useIsMobile (line 5) | function useIsMobile() { FILE: src/hooks/use-supabase-channel.ts function useSupabaseChannel (line 5) | function useSupabaseChannel(channelName: string, onCallback: (payload: a... FILE: src/hooks/use-user.ts function notifyListeners (line 11) | function notifyListeners() { function setGlobalUser (line 15) | function setGlobalUser(user: User | null) { function useUser (line 47) | function useUser(onload?: (user?: User) => void) { FILE: src/hooks/use-widget-package.ts function subscribe (line 13) | function subscribe(packageName: string, callback: () => void) { function unsubscribe (line 20) | function unsubscribe(packageName: string, callback: () => void) { function notify (line 30) | function notify(packageName: string) { function useWidgetPackage (line 34) | function useWidgetPackage(packageName: string, remoteVersion: string, re... FILE: src/lib/utils.ts function cn (line 5) | function cn(...inputs: ClassValue[]) { FILE: src/model/app-version.ts type AppVersion (line 1) | interface AppVersion { FILE: src/pages/add/add-widget-page.tsx function AddWidgetPage (line 18) | function AddWidgetPage() { FILE: src/pages/add/components/feature-wall-list.tsx function FeatureWallList (line 5) | function FeatureWallList() { FILE: src/pages/add/components/search-item.tsx type SearchItemProps (line 22) | interface SearchItemProps { function SearchItem (line 26) | function SearchItem({ widget }: SearchItemProps) { FILE: src/pages/add/components/widget-container.tsx type WidgetContainerProps (line 8) | interface WidgetContainerProps { function WidgetContainer (line 13) | function WidgetContainer({ widget, className }: WidgetContainerProps) { FILE: src/pages/add/components/widget-tags.tsx type WidgetTagsProps (line 18) | interface WidgetTagsProps { function WidgetTags (line 24) | function WidgetTags({ value, onChange, className }: WidgetTagsProps) { FILE: src/pages/add/components/zoom-image.tsx type ZoomImageProps (line 5) | interface ZoomImageProps { function ZoomImage (line 13) | function ZoomImage({ src, alt, className, onError, style }: ZoomImagePro... FILE: src/pages/ai/ai-page.tsx function AiPage (line 35) | function AiPage() { FILE: src/pages/dev/dev-page.tsx function DevPage (line 17) | function DevPage() { FILE: src/pages/error-page.tsx function ErrorPage (line 5) | function ErrorPage() { FILE: src/pages/packages/components/widget-package-item.tsx type WidgetPackageItemProps (line 18) | interface WidgetPackageItemProps { function WidgetPackageItem (line 23) | function WidgetPackageItem({ widgetPackage, onUninstall }: WidgetPackage... FILE: src/pages/packages/widget-package-manager-page.tsx function WidgetPackageManagerPage (line 6) | function WidgetPackageManagerPage() { FILE: src/pages/settings/app-info-page.tsx function AppInfoPage (line 14) | function AppInfoPage() { FILE: src/pages/settings/components/app-theme-form.tsx type AppThemeFormProps (line 15) | interface AppThemeFormProps { function AppThemeForm (line 20) | function AppThemeForm({ value, onChange }: AppThemeFormProps) { FILE: src/pages/settings/components/font-family-picker.tsx function getDefaultFonts (line 10) | function getDefaultFonts(t: any) { type FontFamilyPickerProps (line 16) | interface FontFamilyPickerProps { function FontFamilyPicker (line 22) | function FontFamilyPicker({ value, onChange, label }: FontFamilyPickerPr... FILE: src/pages/settings/components/theme-preview.tsx type ThemePreviewProps (line 11) | interface ThemePreviewProps { function ThemePreview (line 15) | function ThemePreview({ theme }: ThemePreviewProps) { FILE: src/pages/settings/components/theme-tags.tsx type ThemeTag (line 19) | interface ThemeTag { type ThemeTagsProps (line 122) | interface ThemeTagsProps { function ThemeTags (line 129) | function ThemeTags({ value, presets, onChange, onCreatePreset }: ThemeTa... FILE: src/pages/settings/general-page.tsx type Language (line 22) | interface Language { function GeneralPage (line 34) | function GeneralPage() { FILE: src/pages/settings/proxy-page.tsx function ProxyPage (line 12) | function ProxyPage() { FILE: src/pages/settings/theme-page.tsx type StoredThemeTag (line 14) | interface StoredThemeTag { constant SELECT_THEME_STORAGE_KEY (line 20) | const SELECT_THEME_STORAGE_KEY = 'selectTheme' constant THEME_PRESETS_STORAGE_KEY (line 21) | const THEME_PRESETS_STORAGE_KEY = 'widget.theme.presets' function loadStoredThemeTags (line 23) | function loadStoredThemeTags() { function saveStoredThemeTags (line 48) | function saveStoredThemeTags(tags: ThemeTag[]) { function ThemePage (line 58) | function ThemePage() { FILE: src/pages/size/size-page.tsx function SizePage (line 11) | function SizePage() { FILE: src/pages/tray/tray-page.tsx function TrayPage (line 27) | function TrayPage() { FILE: src/pages/user/profile-page.tsx function ProfilePage (line 27) | function ProfilePage() { FILE: src/utils/version-utils.ts class VersionUtils (line 7) | class VersionUtils { method checkNewVersion (line 8) | static checkNewVersion(onNewVersion: (version: AppVersion) => void, on... FILE: src/utils/widget-util.ts class WidgetUtil (line 3) | class WidgetUtil { method getSocialLinkIcon (line 4) | static getSocialLinkIcon(socialName: SocialType | string) {