driftdetect-dashboard 0.7.1 → 0.8.2

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.
@@ -0,0 +1 @@
1
+ {"version":3,"mappings":"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","names":["l","n","p","q","r","t","u","v","w","x","y","z","A","a","B","C","D","E","b","e","F","G","H","I","J","K","L","M","d","c","k","h","g","f","m","N","O","escape","P","Q","R","S","T","U","V","W","X","react_production_min","reactModule","require$$0","reactJsxRuntime_production_min","jsxRuntimeModule","exports","schedulerModule","aa","ca","require$$1","da","ea","fa","ha","ia","ja","ka","la","ma","oa","pa","qa","ra","sa","ta","ua","va","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","Ra","Sa","Ta","Ua","Va","Wa","Xa","Ya","Za","ab","bb","cb","db","eb","fb","gb","hb","ib","jb","kb","lb","mb","nb","ob","pb","qb","rb","sb","tb","ub","vb","wb","xb","yb","zb","Ab","Bb","Cb","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","Rb","Sb","Tb","Ub","Vb","Wb","Xb","Yb","Zb","$b","ac","bc","cc","dc","ec","fc","gc","hc","ic","jc","kc","lc","mc","oc","nc","pc","qc","rc","sc","tc","uc","vc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","Tc","Uc","Vc","Wc","Xc","Yc","Zc","$c","ad","bd","cd","dd","ed","fd","gd","hd","id","jd","kd","ld","md","nd","od","pd","qd","rd","sd","td","ud","vd","wd","xd","yd","Ad","zd","Bd","Cd","Dd","Ed","Fd","Gd","Hd","Id","Jd","Kd","Ld","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","Ud","Vd","Wd","Xd","Yd","Zd","$d","ae","be","ce","de","ee","fe","ge","he","ie","je","ke","le","me","ne","oe","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","Ae","Be","Ce","De","Ee","Fe","Ge","He","Ie","Je","Ke","Le","Me","Ne","Oe","Pe","Qe","Re","Se","Te","Ue","Ve","We","Xe","Ye","Ze","$e","af","bf","cf","df","ef","ff","gf","hf","jf","kf","lf","mf","nf","of","pf","qf","rf","sf","tf","uf","vf","wf","na","xa","$a","ba","xf","yf","zf","Af","Bf","Cf","Df","Ef","Ff","Gf","Hf","Jf","If","Kf","Lf","Mf","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","zg","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Hg","Ig","Jg","Kg","Lg","Mg","Ng","Og","Pg","Qg","Rg","Sg","Tg","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","eh","fh","gh","hh","ih","jh","kh","lh","mh","nh","oh","ph","qh","rh","sh","th","uh","vh","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","ei","fi","gi","hi","ii","ji","ki","li","mi","ni","oi","pi","qi","ri","si","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","Si","Ti","Ui","Vi","Wi","Xi","Yi","Zi","$i","aj","bj","cj","dj","ej","fj","gj","hj","ij","jj","kj","lj","mj","nj","oj","pj","qj","rj","sj","tj","uj","vj","wj","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Kj","Lj","Mj","Nj","Oj","Pj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","Xj","Yj","Zj","ak","bk","ck","dk","ek","fk","gk","hk","ik","jk","kk","lk","mk","nk","ok","Y","Z","pk","qk","rk","sk","tk","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","Qk","Rk","Sk","Tk","Uk","Vk","Wk","Xk","Yk","Zk","$k","al","bl","cl","dl","el","fl","gl","hl","il","jl","kl","ll","ml","nl","ol","pl","ql","rl","sl","tl","ul","vl","reactDom_production_min","checkDCE","err","reactDomModule","createRoot","client","Subscribable","listener","defaultTimeoutProvider","callback","delay","timeoutId","intervalId","TimeoutManager","_a","__privateAdd","_provider","_providerCalled","provider","__privateSet","__privateGet","timeoutManager","systemSetTimeoutZero","isServer","noop","functionalUpdate","updater","input","isValidTimeout","value","timeUntilStale","updatedAt","staleTime","resolveStaleTime","query","resolveEnabled","enabled","matchQuery","filters","type","exact","fetchStatus","predicate","queryKey","stale","hashQueryKeyByOptions","partialMatchKey","isActive","matchMutation","mutation","status","mutationKey","hashKey","options","_","val","isPlainObject","result","key","hasOwn","replaceEqualDeep","depth","array","isPlainArray","aSize","bItems","bSize","copy","equalItems","i","aItem","bItem","shallowEqualObjects","o","hasObjectPrototype","ctor","prot","sleep","timeout","resolve","replaceData","prevData","data","addToEnd","items","item","max","newItems","addToStart","skipToken","ensureQueryFn","fetchOptions","shouldThrowError","throwOnError","params","addConsumeAwareSignal","object","getSignal","onCancelled","consumed","signal","FocusManager","_focused","_cleanup","_setup","onFocus","setup","focused","isFocused","focusManager","pendingThenable","reject","thenable","_resolve","_reject","finalize","reason","defaultScheduler","createNotifyManager","queue","transactions","notifyFn","batchNotifyFn","scheduleFn","schedule","flush","originalQueue","args","fn","notifyManager","OnlineManager","_online","onOnline","onlineListener","offlineListener","online","onlineManager","defaultRetryDelay","failureCount","canFetch","networkMode","CancelledError","createRetryer","config","isRetryCancelled","continueFn","isResolved","cancel","cancelOptions","error","cancelRetry","continueRetry","canContinue","canStart","pause","continueResolve","run","promiseOrValue","initialPromise","retry","retryDelay","shouldRetry","Removable","_gcTimeout","newGcTime","Query","_Query_instances","_initialState","_revertState","_cache","_client","_retryer","_defaultOptions","_abortSignalConsumed","getDefaultState","defaultState","successState","newData","__privateMethod","dispatch_fn","state","setStateOptions","promise","_b","observer","abortController","addSignalProperty","fetchFn","queryFn","queryFnContext","queryFnContext2","context","context2","_c","_d","_f","_e","_h","_g","_j","_i","_l","_k","action","reducer","fetchState","newState","dataUpdatedAt","hasData","initialDataUpdatedAt","QueryObserver","_QueryObserver_instances","_currentQuery","_currentQueryInitialState","_currentResult","_currentResultState","_currentResultOptions","_currentThenable","_selectError","_selectFn","_selectResult","_lastQueryWithDefinedData","_staleTimeoutId","_refetchIntervalId","_currentRefetchInterval","_trackedProps","shouldFetchOnMount","executeFetch_fn","updateTimers_fn","shouldFetchOn","clearStaleTimeout_fn","clearRefetchInterval_fn","prevOptions","prevQuery","updateQuery_fn","mounted","shouldFetchOptionally","updateStaleTimeout_fn","nextRefetchInterval","computeRefetchInterval_fn","updateRefetchInterval_fn","shouldAssignObserverCurrentProperties","onPropTracked","target","defaultedOptions","prevResult","prevResultState","prevResultOptions","queryInitialState","isPlaceholderData","fetchOnMount","fetchOptionally","errorUpdatedAt","skipSelect","placeholderData","selectError","isFetching","isPending","isError","isLoading","nextResult","isStale","hasResultData","isErrorWithoutData","finalizeThenableIfPossible","recreateThenable","pending","prevThenable","shouldNotifyListeners","notifyOnChangeProps","notifyOnChangePropsValue","includedProps","typedKey","notify_fn","nextInterval","notifyOptions","shouldLoadOnMount","field","optimisticResult","infiniteQueryBehavior","pages","direction","oldPages","oldPageParams","currentPage","cancelled","fetchPage","param","previous","page","maxPages","addTo","pageParamFn","getPreviousPageParam","getNextPageParam","oldData","remainingPages","pageParams","lastIndex","Mutation","_Mutation_instances","_observers","_mutationCache","variables","onContinue","mutationFnContext","restored","isPaused","_n","_m","_p","_o","_r","_q","_t","_s","MutationCache","_mutations","_scopes","_mutationId","__privateWrapper","scope","scopeFor","scopedMutations","index","mutationsWithSameScope","firstPendingMutation","foundMutation","defaultedFilters","event","pausedMutations","MutationObserver","_MutationObserver_instances","_currentMutation","_mutateOptions","updateResult_fn","onMutateResult","QueryCache","_queries","queryHash","queryInMap","queries","QueryClient","_queryCache","_queryDefaults","_mutationDefaults","_mountCount","_unsubscribeFocus","_unsubscribeOnline","cachedData","queryCache","defaultedCancelOptions","promises","defaults","queryDefault","QueryClientContext","React.createContext","useQueryClient","queryClient","React.useContext","QueryClientProvider","children","React.useEffect","jsx","IsRestoringContext","useIsRestoring","createValue","isReset","QueryErrorResetBoundaryContext","useQueryErrorResetBoundary","ensurePreventErrorBoundaryRetry","errorResetBoundary","useClearResetErrorBoundary","getHasError","suspense","ensureSuspenseTimers","clamp","originalStaleTime","willFetch","isRestoring","shouldSuspend","fetchOptimistic","useBaseQuery","Observer","isNewCacheEntry","React.useState","shouldSubscribe","React.useSyncExternalStore","React.useCallback","onStoreChange","unsubscribe","useQuery","useMutation","mutate","mutateOptions","createStoreImpl","createState","listeners","setState","partial","replace","nextState","previousState","getState","api","initialState","__vite_import_meta_env__","createStore","React","is","objectIs","useState","useEffect","useLayoutEffect","useDebugValue","useSyncExternalStore$2","subscribe","getSnapshot","_useState","inst","forceUpdate","checkIfSnapshotChanged","latestGetSnapshot","nextValue","useSyncExternalStore$1","shim","useSyncExternalStoreShim_production","shimModule","useSyncExternalStore","useRef","useMemo","withSelector_production","getServerSnapshot","selector","isEqual","instRef","memoizedSelector","nextSnapshot","hasMemo","memoizedSnapshot","currentSelection","memoizedSelection","nextSelection","maybeGetServerSnapshot","withSelectorModule","ReactExports","useSyncExternalStoreWithSelector","useSyncExternalStoreExports","didWarnAboutEqualityFn","identity","arg","useStore","equalityFn","slice","createImpl","useBoundStore","create","useDashboardStore","set","tab","violation","newSet","path","API_BASE","fetchJson","url","response","postJson","body","patchJson","deleteRequest","useStats","usePatterns","queryString","usePattern","useApprovePattern","useIgnorePattern","useDeletePattern","useBulkApprovePatterns","ids","useViolations","useFileTree","useFileDetails","useConfig","useUpdateConfig","useContracts","useContract","useVerifyContract","useIgnoreContract","useTrends","period","WS_RECONNECT_DELAY","WS_PING_INTERVAL","useWebSocket","wsRef","pingIntervalRef","reconnectTimeoutRef","setConnectionStatus","addRealtimeViolation","connect","useCallback","wsUrl","ws","message","handleMessage","cleanup","scheduleReconnect","disconnect","TrendItem","patternName","category","previousValue","currentValue","changePercent","severity","details","isRegression","severityStyles","changeColor","arrow","jsxs","PeriodSelector","onChange","periods","label","OverallTrendBadge","trend","healthDelta","TrendsPanel","setPeriod","trends","regressions","improvements","StatCard","subtext","HealthScore","score","getColor","SeverityBreakdown","bySeverity","className","StatusBreakdown","byStatus","RecentViolations","realtimeViolations","violations","displayViolations","OverviewTab","stats","CATEGORY_ORDER","CATEGORY_CONFIG","STATUS_CONFIG","CONFIDENCE_THRESHOLDS","CONFIDENCE_CONFIG","DISPLAY_LIMITS","calculateMetrics","patterns","totalLocations","sum","totalOutliers","confidences","avgConfidence","total","calculateStatistics","byCategory","byConfidenceLevel","totalConfidence","pattern","discovered","needsReview","readyForApproval","extractDetectorName","getDominantStatus","statuses","groupPatternsByCategory","categoryMap","detectorMap","detectorName","detectors","pats","metrics","categoryMetrics","sortPatterns","sorted","multiplier","getReviewablePatterns","threshold","calculateReviewPriority","getReviewReason","reasons","getConfidenceLevel","getConfidenceColor","formatPercentage","truncatePath","maxLength","filename","subValue","icon","color","count","percentage","ConfidenceBreakdown","levels","level","PatternStats","statistics","onQuickReview","onNeedsReview","PatternFilters","onFiltersChange","viewMode","onViewModeChange","sort","onSortChange","resultCount","handleClearFilters","hasActiveFilters","mode","cat","Fragment","PatternRow","isSelected","onSelect","statusConfig","categoryConfig","confidenceColor","DetectorCard","group","isExpanded","onToggle","selectedPatternId","onSelectPattern","CategorySection","expandedDetectors","onToggleDetector","isCollapsed","setIsCollapsed","detector","PatternList","groupedPatterns","LocationItem","location","variant","isOutlier","ActionsBar","onCopyForAI","isCopying","copySuccess","approveMutation","ignoreMutation","deleteMutation","handleDelete","StatsGrid","complianceRate","PatternDetail","patternId","setIsCopying","setCopySuccess","copyForAI","lines","locationsToShow","loc","snippet","outliersToShow","outlier","PatternDetailEmpty","Modal","title","subtitle","onClose","footer","EmptyState","QuickReviewPanel","bulkApproveMutation","excludedIds","setExcludedIds","currentIndex","setCurrentIndex","reviewablePatterns","includedPatterns","currentPattern","toggleExclude","prev","next","handleApproveAll","idsToApprove","idx","NeedsReviewPreview","NeedsReviewPanel","handleAction","PatternsTab","patternFilters","setPatternFilters","selectedPattern","setSelectedPattern","setViewMode","setSort","setExpandedDetectors","showQuickReview","setShowQuickReview","showNeedsReview","setShowNeedsReview","showStats","setShowStats","sortedPatterns","toggleDetector","handleSelectPattern","METHOD_ORDER","METHOD_CONFIG","MISMATCH_TYPE_CONFIG","VIEW_MODE_CONFIG","contracts","byMethod","mismatchesByType","totalMismatches","contract","mismatch","verifiedRate","healthScore","calculateHealthScore","mismatchesBySeverity","topMismatchedEndpoints","mismatchedCount","unverifiedCount","lowConfidenceCount","groupByEndpoint","groups","basePath","existing","groupContracts","groupByMethod","method","sortContracts","analyzeContractHealth","issues","HealthGauge","bgColor","MethodBreakdown","MismatchSummary","ContractStats","ContractFilters","ContractCard","methodConfig","EndpointGroupCard","selectedContractId","onSelectContract","MethodGroupCard","ContractList","expandedGroups","setExpandedGroups","toggleGroup","endpointGroups","methodGroups","FieldList","fields","showAll","setShowAll","displayFields","MismatchCard","severityColor","verifyMutation","ContractDetail","contractId","health","issue","ContractDetailEmpty","ContractsTab","setFilters","setSelectedContractId","sortedContracts","handleSelectContract","SEVERITY_ORDER","SEVERITY_CONFIG","byPattern","byFile","extractCategory","lowerName","nameToCategory","keyword","lowerPatternId","firstPart","slashCategoryMap","parts","part","realtimeCount","topFiles","file","topPatterns","name","topCategories","groupByFile","fileViolations","maxSeverity","getMaxSeverity","severityDiff","getSeverityPriority","groupByPattern","patternViolations","files","groupByCategory","categoryViolations","groupBySeverity","severityViolations","categories","sortViolations","catA","catB","priorityA","priorityB","getCategoryConfig","formatFilePath","formatLineRange","start","end","getFileName","mergeViolations","fetched","realtime","existingIds","TopItems","emptyMessage","CategoryBreakdown","sortedCategories","ViolationStats","criticalCount","ViolationFilters","ViolationCard","severityConfig","FileGroupCard","expandedViolations","onToggleViolation","maxSeverityConfig","PatternGroupCard","CategoryGroupCard","SeverityGroupCard","expandedCategories","onToggleCategory","catConfig","ViolationList","setExpandedCategories","toggleCategory","severityGroups","categoryGroups","fileGroups","patternGroups","ViolationsTab","violationFilters","setViolationFilters","toggleViolationExpanded","fetchedViolations","allViolations","sortedViolations","handleToggleViolation","FileTreeItem","node","selectedPath","expandedFolders","toggleFolderExpanded","isDirectory","handleClick","child","FileDetail","FilesTab","setSelectedPath","tree","subscribeWithSelectorImpl","get","origSubscribe","optListener","currentSlice","nextSlice","previousSlice","subscribeWithSelector","SENSITIVITY_COLORS","SENSITIVITY_EMISSIVE","SECURITY_TIER_COLORS","AUTH_LEVEL_COLORS","OPERATION_COLORS","TABLE_SIZE","FIELD_SIZE","ENTRY_POINT_SIZE","PATH_CONFIG","GALAXY_LAYOUT","CAMERA_CONFIG","PARTICLE_CONFIG","ANIMATION_CONFIG","LABEL_CONFIG","DOMAIN_CLUSTERS","CLUSTER_COLORS","initialSelection","initialCamera","initialFilters","initialDisplay","useGalaxyStore","loading","position","zoom","galaxyData","table","entryPoint","settings","panel","results","useSelectedTable","useSelectedEntryPoint","useSelectedTablePaths","useFilteredTables","tables","minIndex","useFilteredPaths","paths","useFilteredEntryPoints","entryPoints","DetectorToggle","IgnorePatternsEditor","newPattern","setNewPattern","handleAdd","handleRemove","SeverityOverridesEditor","overrides","newPatternId","setNewPatternId","newSeverity","setNewSeverity","newOverrides","severities","sev","SettingsTab","updateMutation","handleDetectorToggle","detectorId","updatedDetectors","handleIgnorePatternsChange","ignorePatterns","handleSeverityOverridesChange","severityOverrides","detectorsByCategory","acc","useLatestRun","useRunHistory","limit","usePolicies","useRunGates","ScoreGauge","size","s","sizes","GateResultCard","gate","expanded","setExpanded","statusIcon","OverviewView","gateResults","passedGates","RunView","onRun","selectedPolicy","setSelectedPolicy","policiesData","HistoryView","PoliciesView","policy","QualityGatesTab","latestRun","runGates","handleRun","ErrorBoundary","Component","props","errorInfo","GalaxyTab","lazy","__vitePreload","TABS","ConnectionIndicator","GalaxyLoadingFallback","TabContent","Suspense","App","connectionStatus","activeTab","setActiveTab","rootElement","ReactDOM"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,67],"sources":["../../../../../node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react.production.min.js","../../../../../node_modules/.pnpm/react@18.3.1/node_modules/react/index.js","../../../../../node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react-jsx-runtime.production.min.js","../../../../../node_modules/.pnpm/react@18.3.1/node_modules/react/jsx-runtime.js","../../../../../node_modules/.pnpm/scheduler@0.23.2/node_modules/scheduler/cjs/scheduler.production.min.js","../../../../../node_modules/.pnpm/scheduler@0.23.2/node_modules/scheduler/index.js","../../../../../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js","../../../../../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/index.js","../../../../../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/client.js","../../../../../node_modules/.pnpm/@tanstack+query-core@5.90.19/node_modules/@tanstack/query-core/build/modern/subscribable.js","../../../../../node_modules/.pnpm/@tanstack+query-core@5.90.19/node_modules/@tanstack/query-core/build/modern/timeoutManager.js","../../../../../node_modules/.pnpm/@tanstack+query-core@5.90.19/node_modules/@tanstack/query-core/build/modern/utils.js","../../../../../node_modules/.pnpm/@tanstack+query-core@5.90.19/node_modules/@tanstack/query-core/build/modern/focusManager.js","../../../../../node_modules/.pnpm/@tanstack+query-core@5.90.19/node_modules/@tanstack/query-core/build/modern/thenable.js","../../../../../node_modules/.pnpm/@tanstack+query-core@5.90.19/node_modules/@tanstack/query-core/build/modern/notifyManager.js","../../../../../node_modules/.pnpm/@tanstack+query-core@5.90.19/node_modules/@tanstack/query-core/build/modern/onlineManager.js","../../../../../node_modules/.pnpm/@tanstack+query-core@5.90.19/node_modules/@tanstack/query-core/build/modern/retryer.js","../../../../../node_modules/.pnpm/@tanstack+query-core@5.90.19/node_modules/@tanstack/query-core/build/modern/removable.js","../../../../../node_modules/.pnpm/@tanstack+query-core@5.90.19/node_modules/@tanstack/query-core/build/modern/query.js","../../../../../node_modules/.pnpm/@tanstack+query-core@5.90.19/node_modules/@tanstack/query-core/build/modern/queryObserver.js","../../../../../node_modules/.pnpm/@tanstack+query-core@5.90.19/node_modules/@tanstack/query-core/build/modern/infiniteQueryBehavior.js","../../../../../node_modules/.pnpm/@tanstack+query-core@5.90.19/node_modules/@tanstack/query-core/build/modern/mutation.js","../../../../../node_modules/.pnpm/@tanstack+query-core@5.90.19/node_modules/@tanstack/query-core/build/modern/mutationCache.js","../../../../../node_modules/.pnpm/@tanstack+query-core@5.90.19/node_modules/@tanstack/query-core/build/modern/mutationObserver.js","../../../../../node_modules/.pnpm/@tanstack+query-core@5.90.19/node_modules/@tanstack/query-core/build/modern/queryCache.js","../../../../../node_modules/.pnpm/@tanstack+query-core@5.90.19/node_modules/@tanstack/query-core/build/modern/queryClient.js","../../../../../node_modules/.pnpm/@tanstack+react-query@5.90.19_react@18.3.1/node_modules/@tanstack/react-query/build/modern/QueryClientProvider.js","../../../../../node_modules/.pnpm/@tanstack+react-query@5.90.19_react@18.3.1/node_modules/@tanstack/react-query/build/modern/IsRestoringProvider.js","../../../../../node_modules/.pnpm/@tanstack+react-query@5.90.19_react@18.3.1/node_modules/@tanstack/react-query/build/modern/QueryErrorResetBoundary.js","../../../../../node_modules/.pnpm/@tanstack+react-query@5.90.19_react@18.3.1/node_modules/@tanstack/react-query/build/modern/errorBoundaryUtils.js","../../../../../node_modules/.pnpm/@tanstack+react-query@5.90.19_react@18.3.1/node_modules/@tanstack/react-query/build/modern/suspense.js","../../../../../node_modules/.pnpm/@tanstack+react-query@5.90.19_react@18.3.1/node_modules/@tanstack/react-query/build/modern/useBaseQuery.js","../../../../../node_modules/.pnpm/@tanstack+react-query@5.90.19_react@18.3.1/node_modules/@tanstack/react-query/build/modern/useQuery.js","../../../../../node_modules/.pnpm/@tanstack+react-query@5.90.19_react@18.3.1/node_modules/@tanstack/react-query/build/modern/useMutation.js","../../../../../node_modules/.pnpm/zustand@4.5.7_@types+react@18.3.27_react@18.3.1/node_modules/zustand/esm/vanilla.mjs","../../../../../node_modules/.pnpm/use-sync-external-store@1.6.0_react@18.3.1/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js","../../../../../node_modules/.pnpm/use-sync-external-store@1.6.0_react@18.3.1/node_modules/use-sync-external-store/shim/index.js","../../../../../node_modules/.pnpm/use-sync-external-store@1.6.0_react@18.3.1/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js","../../../../../node_modules/.pnpm/use-sync-external-store@1.6.0_react@18.3.1/node_modules/use-sync-external-store/shim/with-selector.js","../../../../../node_modules/.pnpm/zustand@4.5.7_@types+react@18.3.27_react@18.3.1/node_modules/zustand/esm/index.mjs","../../../src/client/store/index.ts","../../../src/client/hooks/use-api.ts","../../../src/client/hooks/use-websocket.ts","../../../src/client/components/trends/TrendsPanel.tsx","../../../src/client/components/OverviewTab.tsx","../../../src/client/components/patterns/constants.ts","../../../src/client/components/patterns/utils.ts","../../../src/client/components/patterns/PatternStats.tsx","../../../src/client/components/patterns/PatternFilters.tsx","../../../src/client/components/patterns/PatternList.tsx","../../../src/client/components/patterns/PatternDetail.tsx","../../../src/client/components/patterns/ReviewPanels.tsx","../../../src/client/components/patterns/PatternsTab.tsx","../../../src/client/components/contracts/constants.ts","../../../src/client/components/contracts/utils.ts","../../../src/client/components/contracts/ContractStats.tsx","../../../src/client/components/contracts/ContractFilters.tsx","../../../src/client/components/contracts/ContractList.tsx","../../../src/client/components/contracts/ContractDetail.tsx","../../../src/client/components/contracts/ContractsTab.tsx","../../../src/client/components/violations/constants.ts","../../../src/client/components/violations/utils.ts","../../../src/client/components/violations/ViolationStats.tsx","../../../src/client/components/violations/ViolationFilters.tsx","../../../src/client/components/violations/ViolationList.tsx","../../../src/client/components/violations/ViolationsTab.tsx","../../../src/client/components/FilesTab.tsx","../../../../../node_modules/.pnpm/zustand@4.5.7_@types+react@18.3.27_react@18.3.1/node_modules/zustand/esm/middleware.mjs","../../../../galaxy/dist/constants/index.js","../../../../galaxy/dist/store/galaxy-store.js","../../../src/client/components/SettingsTab.tsx","../../../src/client/components/QualityGatesTab.tsx","../../../src/client/components/ErrorBoundary.tsx","../../../src/client/App.tsx","../../../src/client/main.tsx"],"sourcesContent":["/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}}\nfunction N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g;function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction R(a,b,e,d,c){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=\"\"===d?\".\"+Q(h,0):d,I(c)?(e=\"\",null!=a&&(e=a.replace(P,\"$&/\")+\"/\"),R(c,b,e,\"\",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?\"\":(\"\"+c.key).replace(P,\"$&/\")+\"/\")+a)),b.push(c)),1;h=0;d=\"\"===d?\".\":d+\":\";if(I(a))for(var g=0;g<a.length;g++){k=\na[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if(\"object\"===k)throw b=String(a),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b)+\"). If you meant to render a collection of children, use an array instead.\");return h}\nfunction S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,\"\",\"\",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}\nvar U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};function X(){throw Error(\"act(...) is not supported in production builds of React.\");}\nexports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error(\"React.Children.only expected to receive a single React element child.\");return a}};exports.Component=E;exports.Fragment=p;exports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;exports.act=X;\nexports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+a+\".\");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);\nfor(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};\nexports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=X;exports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};\nexports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};exports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};\nexports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};exports.useTransition=function(){return U.current.useTransition()};exports.version=\"18.3.1\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0<c;){var d=c-1>>>1,e=a[d];if(0<g(e,b))a[d]=b,a[c]=e,c=d;else break a}}function h(a){return 0===a.length?null:a[0]}function k(a){if(0===a.length)return null;var b=a[0],c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length,w=e>>>1;d<w;){var m=2*(d+1)-1,C=a[m],n=m+1,x=a[n];if(0>g(C,c))n<e&&0>g(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(n<e&&0>g(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Q<P?!1:!0}function R(){if(null!==O){var a=exports.unstable_now();Q=a;var b=!0;try{b=O(!0,a)}finally{b?S():(N=!1,O=null)}}else N=!1}var S;if(\"function\"===typeof F)S=function(){F(R)};else if(\"undefined\"!==typeof MessageChannel){var T=new MessageChannel,U=T.port2;T.port1.onmessage=R;S=function(){U.postMessage(null)}}else S=function(){D(R,0)};function I(a){O=a;N||(N=!0,S())}function K(a,b){L=D(function(){a(exports.unstable_now())},b)}\nexports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){A||z||(A=!0,I(J))};\nexports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):P=0<a?Math.floor(1E3/a):5};exports.unstable_getCurrentPriorityLevel=function(){return y};exports.unstable_getFirstCallbackNode=function(){return h(r)};exports.unstable_next=function(a){switch(y){case 1:case 2:case 3:var b=3;break;default:b=y}var c=y;y=b;try{return a()}finally{y=c}};exports.unstable_pauseExecution=function(){};\nexports.unstable_requestPaint=function(){};exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=y;y=a;try{return b()}finally{y=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:u++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var da=new Set,ea={};function fa(a,b){ha(a,b);ha(a+\"Capture\",b)}\nfunction ha(a,b){ea[a]=b;for(a=0;a<b.length;a++)da.add(b[a])}\nvar ia=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),ja=Object.prototype.hasOwnProperty,ka=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,la=\n{},ma={};function oa(a){if(ja.call(ma,a))return!0;if(ja.call(la,a))return!1;if(ka.test(a))return ma[a]=!0;la[a]=!0;return!1}function pa(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction qa(a,b,c,d){if(null===b||\"undefined\"===typeof b||pa(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1])qa(b,c,e,d)&&(c=null),d||null===e?oa(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c)))}\nvar ua=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,va=Symbol.for(\"react.element\"),wa=Symbol.for(\"react.portal\"),ya=Symbol.for(\"react.fragment\"),za=Symbol.for(\"react.strict_mode\"),Aa=Symbol.for(\"react.profiler\"),Ba=Symbol.for(\"react.provider\"),Ca=Symbol.for(\"react.context\"),Da=Symbol.for(\"react.forward_ref\"),Ea=Symbol.for(\"react.suspense\"),Fa=Symbol.for(\"react.suspense_list\"),Ga=Symbol.for(\"react.memo\"),Ha=Symbol.for(\"react.lazy\");Symbol.for(\"react.scope\");Symbol.for(\"react.debug_trace_mode\");\nvar Ia=Symbol.for(\"react.offscreen\");Symbol.for(\"react.legacy_hidden\");Symbol.for(\"react.cache\");Symbol.for(\"react.tracing_marker\");var Ja=Symbol.iterator;function Ka(a){if(null===a||\"object\"!==typeof a)return null;a=Ja&&a[Ja]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var A=Object.assign,La;function Ma(a){if(void 0===La)try{throw Error();}catch(c){var b=c.stack.trim().match(/\\n( *(at )?)/);La=b&&b[1]||\"\"}return\"\\n\"+La+a}var Na=!1;\nfunction Oa(a,b){if(!a||Na)return\"\";Na=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,\"props\",{set:function(){throw Error();}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(l){var d=l}Reflect.construct(a,[],b)}else{try{b.call()}catch(l){d=l}a.call(b.prototype)}else{try{throw Error();}catch(l){d=l}a()}}catch(l){if(l&&d&&\"string\"===typeof l.stack){for(var e=l.stack.split(\"\\n\"),\nf=d.stack.split(\"\\n\"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"<anonymous>\")&&(k=k.replace(\"<anonymous>\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+Sa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction gb(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(p(91));return A({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function hb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(p(92));if(eb(c)){if(1<c.length)throw Error(p(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}function kb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}\nfunction lb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?kb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar mb,nb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(\"http://www.w3.org/2000/svg\"!==a.namespaceURI||\"innerHTML\"in a)a.innerHTML=b;else{mb=mb||document.createElement(\"div\");mb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a<b.length;a++)Bb(b[a])}}function Gb(a,b){return a(b)}function Hb(){}var Ib=!1;function Jb(a,b,c){if(Ib)return a(b,c);Ib=!0;try{return Gb(a,b,c)}finally{if(Ib=!1,null!==zb||null!==Ab)Hb(),Fb()}}\nfunction Kb(a,b){var c=a.stateNode;if(null===c)return null;var d=Db(c);if(null===d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==\ntypeof c)throw Error(p(231,b,typeof c));return c}var Lb=!1;if(ia)try{var Mb={};Object.defineProperty(Mb,\"passive\",{get:function(){Lb=!0}});window.addEventListener(\"test\",Mb,Mb);window.removeEventListener(\"test\",Mb,Mb)}catch(a){Lb=!1}function Nb(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(m){this.onError(m)}}var Ob=!1,Pb=null,Qb=!1,Rb=null,Sb={onError:function(a){Ob=!0;Pb=a}};function Tb(a,b,c,d,e,f,g,h,k){Ob=!1;Pb=null;Nb.apply(Sb,arguments)}\nfunction Ub(a,b,c,d,e,f,g,h,k){Tb.apply(this,arguments);if(Ob){if(Ob){var l=Pb;Ob=!1;Pb=null}else throw Error(p(198));Qb||(Qb=!0,Rb=l)}}function Vb(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&4098)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function Wb(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function Xb(a){if(Vb(a)!==a)throw Error(p(188));}\nfunction Yb(a){var b=a.alternate;if(!b){b=Vb(a);if(null===b)throw Error(p(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return Xb(e),a;if(f===d)return Xb(e),b;f=f.sibling}throw Error(p(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(p(189));}}if(c.alternate!==d)throw Error(p(190));}if(3!==c.tag)throw Error(p(188));return c.stateNode.current===c?a:b}function Zb(a){a=Yb(a);return null!==a?$b(a):null}function $b(a){if(5===a.tag||6===a.tag)return a;for(a=a.child;null!==a;){var b=$b(a);if(null!==b)return b;a=a.sibling}return null}\nvar ac=ca.unstable_scheduleCallback,bc=ca.unstable_cancelCallback,cc=ca.unstable_shouldYield,dc=ca.unstable_requestPaint,B=ca.unstable_now,ec=ca.unstable_getCurrentPriorityLevel,fc=ca.unstable_ImmediatePriority,gc=ca.unstable_UserBlockingPriority,hc=ca.unstable_NormalPriority,ic=ca.unstable_LowPriority,jc=ca.unstable_IdlePriority,kc=null,lc=null;function mc(a){if(lc&&\"function\"===typeof lc.onCommitFiberRoot)try{lc.onCommitFiberRoot(kc,a,void 0,128===(a.current.flags&128))}catch(b){}}\nvar oc=Math.clz32?Math.clz32:nc,pc=Math.log,qc=Math.LN2;function nc(a){a>>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-oc(b),e=1<<c,d|=a[c],b&=~e;return d}\nfunction vc(a,b){switch(a){case 1:case 2:case 4:return b+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return b+5E3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}\nfunction wc(a,b){for(var c=a.suspendedLanes,d=a.pingedLanes,e=a.expirationTimes,f=a.pendingLanes;0<f;){var g=31-oc(f),h=1<<g,k=e[g];if(-1===k){if(0===(h&c)||0!==(h&d))e[g]=vc(h,b)}else k<=b&&(a.expiredLanes|=h);f&=~h}}function xc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function yc(){var a=rc;rc<<=1;0===(rc&4194240)&&(rc=64);return a}function zc(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0<c;){var e=31-oc(c),f=1<<e;b[e]=0;d[e]=-1;a[e]=-1;c&=~f}}\nfunction Cc(a,b){var c=a.entangledLanes|=b;for(a=a.entanglements;c;){var d=31-oc(c),e=1<<d;e&b|a[d]&b&&(a[d]|=b);c&=~e}}var C=0;function Dc(a){a&=-a;return 1<a?4<a?0!==(a&268435455)?16:536870912:4:1}var Ec,Fc,Gc,Hc,Ic,Jc=!1,Kc=[],Lc=null,Mc=null,Nc=null,Oc=new Map,Pc=new Map,Qc=[],Rc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");\nfunction Sc(a,b){switch(a){case \"focusin\":case \"focusout\":Lc=null;break;case \"dragenter\":case \"dragleave\":Mc=null;break;case \"mouseover\":case \"mouseout\":Nc=null;break;case \"pointerover\":case \"pointerout\":Oc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":Pc.delete(b.pointerId)}}\nfunction Tc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a={blockedOn:b,domEventName:c,eventSystemFlags:d,nativeEvent:f,targetContainers:[e]},null!==b&&(b=Cb(b),null!==b&&Fc(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}\nfunction Uc(a,b,c,d,e){switch(b){case \"focusin\":return Lc=Tc(Lc,a,b,c,d,e),!0;case \"dragenter\":return Mc=Tc(Mc,a,b,c,d,e),!0;case \"mouseover\":return Nc=Tc(Nc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;Oc.set(f,Tc(Oc.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,Pc.set(f,Tc(Pc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction Vc(a){var b=Wc(a.target);if(null!==b){var c=Vb(b);if(null!==c)if(b=c.tag,13===b){if(b=Wb(c),null!==b){a.blockedOn=b;Ic(a.priority,function(){Gc(c)});return}}else if(3===b&&c.stateNode.current.memoizedState.isDehydrated){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}\nfunction Xc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=Yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null===c){c=a.nativeEvent;var d=new c.constructor(c.type,c);wb=d;c.target.dispatchEvent(d);wb=null}else return b=Cb(c),null!==b&&Fc(b),a.blockedOn=c,!1;b.shift()}return!0}function Zc(a,b,c){Xc(a)&&c.delete(b)}function $c(){Jc=!1;null!==Lc&&Xc(Lc)&&(Lc=null);null!==Mc&&Xc(Mc)&&(Mc=null);null!==Nc&&Xc(Nc)&&(Nc=null);Oc.forEach(Zc);Pc.forEach(Zc)}\nfunction ad(a,b){a.blockedOn===b&&(a.blockedOn=null,Jc||(Jc=!0,ca.unstable_scheduleCallback(ca.unstable_NormalPriority,$c)))}\nfunction bd(a){function b(b){return ad(b,a)}if(0<Kc.length){ad(Kc[0],a);for(var c=1;c<Kc.length;c++){var d=Kc[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==Lc&&ad(Lc,a);null!==Mc&&ad(Mc,a);null!==Nc&&ad(Nc,a);Oc.forEach(b);Pc.forEach(b);for(c=0;c<Qc.length;c++)d=Qc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<Qc.length&&(c=Qc[0],null===c.blockedOn);)Vc(c),null===c.blockedOn&&Qc.shift()}var cd=ua.ReactCurrentBatchConfig,dd=!0;\nfunction ed(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=1,fd(a,b,c,d)}finally{C=e,cd.transition=f}}function gd(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=4,fd(a,b,c,d)}finally{C=e,cd.transition=f}}\nfunction fd(a,b,c,d){if(dd){var e=Yc(a,b,c,d);if(null===e)hd(a,b,d,id,c),Sc(a,d);else if(Uc(e,a,b,c,d))d.stopPropagation();else if(Sc(a,d),b&4&&-1<Rc.indexOf(a)){for(;null!==e;){var f=Cb(e);null!==f&&Ec(f);f=Yc(a,b,c,d);null===f&&hd(a,b,d,id,c);if(f===e)break;e=f}null!==e&&d.stopPropagation()}else hd(a,b,d,null,c)}}var id=null;\nfunction Yc(a,b,c,d){id=null;a=xb(d);a=Wc(a);if(null!==a)if(b=Vb(a),null===b)a=null;else if(c=b.tag,13===c){a=Wb(b);if(null!==a)return a;a=null}else if(3===c){if(b.stateNode.current.memoizedState.isDehydrated)return 3===b.tag?b.stateNode.containerInfo:null;a=null}else b!==a&&(a=null);id=a;return null}\nfunction jd(a){switch(a){case \"cancel\":case \"click\":case \"close\":case \"contextmenu\":case \"copy\":case \"cut\":case \"auxclick\":case \"dblclick\":case \"dragend\":case \"dragstart\":case \"drop\":case \"focusin\":case \"focusout\":case \"input\":case \"invalid\":case \"keydown\":case \"keypress\":case \"keyup\":case \"mousedown\":case \"mouseup\":case \"paste\":case \"pause\":case \"play\":case \"pointercancel\":case \"pointerdown\":case \"pointerup\":case \"ratechange\":case \"reset\":case \"resize\":case \"seeked\":case \"submit\":case \"touchcancel\":case \"touchend\":case \"touchstart\":case \"volumechange\":case \"change\":case \"selectionchange\":case \"textInput\":case \"compositionstart\":case \"compositionend\":case \"compositionupdate\":case \"beforeblur\":case \"afterblur\":case \"beforeinput\":case \"blur\":case \"fullscreenchange\":case \"focus\":case \"hashchange\":case \"popstate\":case \"select\":case \"selectstart\":return 1;case \"drag\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"mousemove\":case \"mouseout\":case \"mouseover\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"scroll\":case \"toggle\":case \"touchmove\":case \"wheel\":case \"mouseenter\":case \"mouseleave\":case \"pointerenter\":case \"pointerleave\":return 4;\ncase \"message\":switch(ec()){case fc:return 1;case gc:return 4;case hc:case ic:return 16;case jc:return 536870912;default:return 16}default:return 16}}var kd=null,ld=null,md=null;function nd(){if(md)return md;var a,b=ld,c=b.length,d,e=\"value\"in kd?kd.value:kd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return md=e.slice(a,1<d?1-d:void 0)}\nfunction od(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function pd(){return!0}function qd(){return!1}\nfunction rd(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?pd:qd;this.isPropagationStopped=qd;return this}A(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&\n(a.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd});return b}\nvar sd={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},td=rd(sd),ud=A({},sd,{view:0,detail:0}),vd=rd(ud),wd,xd,yd,Ad=A({},ud,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if(\"movementX\"in\na)return a.movementX;a!==yd&&(yd&&\"mousemove\"===a.type?(wd=a.screenX-yd.screenX,xd=a.screenY-yd.screenY):xd=wd=0,yd=a);return wd},movementY:function(a){return\"movementY\"in a?a.movementY:xd}}),Bd=rd(Ad),Cd=A({},Ad,{dataTransfer:0}),Dd=rd(Cd),Ed=A({},ud,{relatedTarget:0}),Fd=rd(Ed),Gd=A({},sd,{animationName:0,elapsedTime:0,pseudoElement:0}),Hd=rd(Gd),Id=A({},sd,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),Jd=rd(Id),Kd=A({},sd,{data:0}),Ld=rd(Kd),Md={Esc:\"Escape\",\nSpacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Nd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",\n119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},Od={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Od[a])?!!b[a]:!1}function zd(){return Pd}\nvar Qd=A({},ud,{key:function(a){if(a.key){var b=Md[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=od(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Nd[a.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(a){return\"keypress\"===a.type?od(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?od(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),Rd=rd(Qd),Sd=A({},Ad,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Td=rd(Sd),Ud=A({},ud,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),Vd=rd(Ud),Wd=A({},sd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xd=rd(Wd),Yd=A({},Ad,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},\ndeltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),Zd=rd(Yd),$d=[9,13,27,32],ae=ia&&\"CompositionEvent\"in window,be=null;ia&&\"documentMode\"in document&&(be=document.documentMode);var ce=ia&&\"TextEvent\"in window&&!be,de=ia&&(!ae||be&&8<be&&11>=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return de&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar le={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!le[a.type]:\"textarea\"===b?!0:!1}function ne(a,b,c,d){Eb(d);b=oe(b,\"onChange\");0<b.length&&(c=new td(\"onChange\",\"change\",null,c,d),a.push({event:c,listeners:b}))}var pe=null,qe=null;function re(a){se(a,0)}function te(a){var b=ue(a);if(Wa(b))return a}\nfunction ve(a,b){if(\"change\"===a)return b}var we=!1;if(ia){var xe;if(ia){var ye=\"oninput\"in document;if(!ye){var ze=document.createElement(\"div\");ze.setAttribute(\"oninput\",\"return;\");ye=\"function\"===typeof ze.oninput}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9<document.documentMode)}function Ae(){pe&&(pe.detachEvent(\"onpropertychange\",Be),qe=pe=null)}function Be(a){if(\"value\"===a.propertyName&&te(qe)){var b=[];ne(b,qe,a,xb(a));Jb(re,b)}}\nfunction Ce(a,b,c){\"focusin\"===a?(Ae(),pe=b,qe=c,pe.attachEvent(\"onpropertychange\",Be)):\"focusout\"===a&&Ae()}function De(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return te(qe)}function Ee(a,b){if(\"click\"===a)return te(b)}function Fe(a,b){if(\"input\"===a||\"change\"===a)return te(b)}function Ge(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var He=\"function\"===typeof Object.is?Object.is:Ge;\nfunction Ie(a,b){if(He(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++){var e=c[d];if(!ja.call(b,e)||!He(a[e],b[e]))return!1}return!0}function Je(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Ke(a,b){var c=Je(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c<b.length;c++)a=b[c],a.element.scrollLeft=a.left,a.element.scrollTop=a.top}}\nvar Pe=ia&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0<d.length&&(b=new td(\"onSelect\",\"select\",null,b,c),a.push({event:b,listeners:d}),b.target=Qe)))}\nfunction Ve(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var We={animationend:Ve(\"Animation\",\"AnimationEnd\"),animationiteration:Ve(\"Animation\",\"AnimationIteration\"),animationstart:Ve(\"Animation\",\"AnimationStart\"),transitionend:Ve(\"Transition\",\"TransitionEnd\")},Xe={},Ye={};\nia&&(Ye=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete We.animationend.animation,delete We.animationiteration.animation,delete We.animationstart.animation),\"TransitionEvent\"in window||delete We.transitionend.transition);function Ze(a){if(Xe[a])return Xe[a];if(!We[a])return a;var b=We[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Ye)return Xe[a]=b[c];return a}var $e=Ze(\"animationend\"),af=Ze(\"animationiteration\"),bf=Ze(\"animationstart\"),cf=Ze(\"transitionend\"),df=new Map,ef=\"abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\" \");\nfunction ff(a,b){df.set(a,b);fa(b,[a])}for(var gf=0;gf<ef.length;gf++){var hf=ef[gf],jf=hf.toLowerCase(),kf=hf[0].toUpperCase()+hf.slice(1);ff(jf,\"on\"+kf)}ff($e,\"onAnimationEnd\");ff(af,\"onAnimationIteration\");ff(bf,\"onAnimationStart\");ff(\"dblclick\",\"onDoubleClick\");ff(\"focusin\",\"onFocus\");ff(\"focusout\",\"onBlur\");ff(cf,\"onTransitionEnd\");ha(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]);ha(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]);ha(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]);\nha(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]);fa(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));fa(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));fa(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]);fa(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));fa(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));\nfa(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var lf=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),mf=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(lf));\nfunction nf(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=c;Ub(d,b,void 0,a);a.currentTarget=null}\nfunction se(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}}}if(Qb)throw a=Rb,Qb=!1,Rb=null,a;}\nfunction D(a,b){var c=b[of];void 0===c&&(c=b[of]=new Set);var d=a+\"__bubble\";c.has(d)||(pf(b,a,2,!1),c.add(d))}function qf(a,b,c){var d=0;b&&(d|=4);pf(c,a,d,b)}var rf=\"_reactListening\"+Math.random().toString(36).slice(2);function sf(a){if(!a[rf]){a[rf]=!0;da.forEach(function(b){\"selectionchange\"!==b&&(mf.has(b)||qf(b,!1,a),qf(b,!0,a))});var b=9===a.nodeType?a:a.ownerDocument;null===b||b[rf]||(b[rf]=!0,qf(\"selectionchange\",!1,b))}}\nfunction pf(a,b,c,d){switch(jd(b)){case 1:var e=ed;break;case 4:e=gd;break;default:e=fd}c=e.bind(null,b,c,a);e=void 0;!Lb||\"touchstart\"!==b&&\"touchmove\"!==b&&\"wheel\"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}\nfunction hd(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&k.parentNode===e)return;g=g.return}for(;null!==h;){g=Wc(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}Jb(function(){var d=f,e=xb(c),g=[];\na:{var h=df.get(a);if(void 0!==h){var k=td,n=a;switch(a){case \"keypress\":if(0===od(c))break a;case \"keydown\":case \"keyup\":k=Rd;break;case \"focusin\":n=\"focus\";k=Fd;break;case \"focusout\":n=\"blur\";k=Fd;break;case \"beforeblur\":case \"afterblur\":k=Fd;break;case \"click\":if(2===c.button)break a;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":k=Bd;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":k=\nDd;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":k=Vd;break;case $e:case af:case bf:k=Hd;break;case cf:k=Xd;break;case \"scroll\":k=vd;break;case \"wheel\":k=Zd;break;case \"copy\":case \"cut\":case \"paste\":k=Jd;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":k=Td}var t=0!==(b&4),J=!t&&\"scroll\"===a,x=t?null!==h?h+\"Capture\":null:h;t=[];for(var w=d,u;null!==\nw;){u=w;var F=u.stateNode;5===u.tag&&null!==F&&(u=F,null!==x&&(F=Kb(w,x),null!=F&&t.push(tf(w,F,u))));if(J)break;w=w.return}0<t.length&&(h=new k(h,n,null,c,e),g.push({event:h,listeners:t}))}}if(0===(b&7)){a:{h=\"mouseover\"===a||\"pointerover\"===a;k=\"mouseout\"===a||\"pointerout\"===a;if(h&&c!==wb&&(n=c.relatedTarget||c.fromElement)&&(Wc(n)||n[uf]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||h.parentWindow:window;if(k){if(n=c.relatedTarget||c.toElement,k=d,n=n?Wc(n):null,null!==\nn&&(J=Vb(n),n!==J||5!==n.tag&&6!==n.tag))n=null}else k=null,n=d;if(k!==n){t=Bd;F=\"onMouseLeave\";x=\"onMouseEnter\";w=\"mouse\";if(\"pointerout\"===a||\"pointerover\"===a)t=Td,F=\"onPointerLeave\",x=\"onPointerEnter\",w=\"pointer\";J=null==k?h:ue(k);u=null==n?h:ue(n);h=new t(F,w+\"leave\",k,c,e);h.target=J;h.relatedTarget=u;F=null;Wc(e)===d&&(t=new t(x,w+\"enter\",n,c,e),t.target=u,t.relatedTarget=J,F=t);J=F;if(k&&n)b:{t=k;x=n;w=0;for(u=t;u;u=vf(u))w++;u=0;for(F=x;F;F=vf(F))u++;for(;0<w-u;)t=vf(t),w--;for(;0<u-w;)x=\nvf(x),u--;for(;w--;){if(t===x||null!==x&&t===x.alternate)break b;t=vf(t);x=vf(x)}t=null}else t=null;null!==k&&wf(g,h,k,t,!1);null!==n&&null!==J&&wf(g,J,n,t,!0)}}}a:{h=d?ue(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if(\"select\"===k||\"input\"===k&&\"file\"===h.type)var na=ve;else if(me(h))if(we)na=Fe;else{na=De;var xa=Ce}else(k=h.nodeName)&&\"input\"===k.toLowerCase()&&(\"checkbox\"===h.type||\"radio\"===h.type)&&(na=Ee);if(na&&(na=na(a,d))){ne(g,na,c,e);break a}xa&&xa(a,h,d);\"focusout\"===a&&(xa=h._wrapperState)&&\nxa.controlled&&\"number\"===h.type&&cb(h,\"number\",h.value)}xa=d?ue(d):window;switch(a){case \"focusin\":if(me(xa)||\"true\"===xa.contentEditable)Qe=xa,Re=d,Se=null;break;case \"focusout\":Se=Re=Qe=null;break;case \"mousedown\":Te=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":Te=!1;Ue(g,c,e);break;case \"selectionchange\":if(Pe)break;case \"keydown\":case \"keyup\":Ue(g,c,e)}var $a;if(ae)b:{switch(a){case \"compositionstart\":var ba=\"onCompositionStart\";break b;case \"compositionend\":ba=\"onCompositionEnd\";\nbreak b;case \"compositionupdate\":ba=\"onCompositionUpdate\";break b}ba=void 0}else ie?ge(a,c)&&(ba=\"onCompositionEnd\"):\"keydown\"===a&&229===c.keyCode&&(ba=\"onCompositionStart\");ba&&(de&&\"ko\"!==c.locale&&(ie||\"onCompositionStart\"!==ba?\"onCompositionEnd\"===ba&&ie&&($a=nd()):(kd=e,ld=\"value\"in kd?kd.value:kd.textContent,ie=!0)),xa=oe(d,ba),0<xa.length&&(ba=new Ld(ba,a,null,c,e),g.push({event:ba,listeners:xa}),$a?ba.data=$a:($a=he(c),null!==$a&&(ba.data=$a))));if($a=ce?je(a,c):ke(a,c))d=oe(d,\"onBeforeInput\"),\n0<d.length&&(e=new Ld(\"onBeforeInput\",\"beforeinput\",null,c,e),g.push({event:e,listeners:d}),e.data=$a)}se(g,b)})}function tf(a,b,c){return{instance:a,listener:b,currentTarget:c}}function oe(a,b){for(var c=b+\"Capture\",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Kb(a,c),null!=f&&d.unshift(tf(a,f,e)),f=Kb(a,b),null!=f&&d.push(tf(a,f,e)));a=a.return}return d}function vf(a){if(null===a)return null;do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction wf(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,l=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==l&&(h=l,e?(k=Kb(c,f),null!=k&&g.unshift(tf(c,k,h))):e||(k=Kb(c,f),null!=k&&g.push(tf(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}var xf=/\\r\\n?/g,yf=/\\u0000|\\uFFFD/g;function zf(a){return(\"string\"===typeof a?a:\"\"+a).replace(xf,\"\\n\").replace(yf,\"\")}function Af(a,b,c){b=zf(b);if(zf(a)!==b&&c)throw Error(p(425));}function Bf(){}\nvar Cf=null,Df=null;function Ef(a,b){return\"textarea\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}\nvar Ff=\"function\"===typeof setTimeout?setTimeout:void 0,Gf=\"function\"===typeof clearTimeout?clearTimeout:void 0,Hf=\"function\"===typeof Promise?Promise:void 0,Jf=\"function\"===typeof queueMicrotask?queueMicrotask:\"undefined\"!==typeof Hf?function(a){return Hf.resolve(null).then(a).catch(If)}:Ff;function If(a){setTimeout(function(){throw a;})}\nfunction Kf(a,b){var c=b,d=0;do{var e=c.nextSibling;a.removeChild(c);if(e&&8===e.nodeType)if(c=e.data,\"/$\"===c){if(0===d){a.removeChild(e);bd(b);return}d--}else\"$\"!==c&&\"$?\"!==c&&\"$!\"!==c||d++;c=e}while(c);bd(b)}function Lf(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break;if(8===b){b=a.data;if(\"$\"===b||\"$!\"===b||\"$?\"===b)break;if(\"/$\"===b)return null}}return a}\nfunction Mf(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(\"$\"===c||\"$!\"===c||\"$?\"===c){if(0===b)return a;b--}else\"/$\"===c&&b++}a=a.previousSibling}return null}var Nf=Math.random().toString(36).slice(2),Of=\"__reactFiber$\"+Nf,Pf=\"__reactProps$\"+Nf,uf=\"__reactContainer$\"+Nf,of=\"__reactEvents$\"+Nf,Qf=\"__reactListeners$\"+Nf,Rf=\"__reactHandles$\"+Nf;\nfunction Wc(a){var b=a[Of];if(b)return b;for(var c=a.parentNode;c;){if(b=c[uf]||c[Of]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Mf(a);null!==a;){if(c=a[Of])return c;a=Mf(a)}return b}a=c;c=a.parentNode}return null}function Cb(a){a=a[Of]||a[uf];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function ue(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(p(33));}function Db(a){return a[Pf]||null}var Sf=[],Tf=-1;function Uf(a){return{current:a}}\nfunction E(a){0>Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a<c.length;a++){var d=c[a];do d=d(!0);while(null!==d)}eg=null;fg=!1}catch(e){throw null!==eg&&(eg=eg.slice(a+1)),ac(fc,jg),e;}finally{C=b,gg=!1}}return null}var kg=[],lg=0,mg=null,ng=0,og=[],pg=0,qg=null,rg=1,sg=\"\";function tg(a,b){kg[lg++]=ng;kg[lg++]=mg;mg=a;ng=b}\nfunction ug(a,b,c){og[pg++]=rg;og[pg++]=sg;og[pg++]=qg;qg=a;var d=rg;a=sg;var e=32-oc(d)-1;d&=~(1<<e);c+=1;var f=32-oc(b)+e;if(30<f){var g=e-e%5;f=(d&(1<<g)-1).toString(32);d>>=g;e-=g;rg=1<<32-oc(b)+e|c<<e|d;sg=f+a}else rg=1<<f|c<<e|d,sg=a}function vg(a){null!==a.return&&(tg(a,1),ug(a,1,0))}function wg(a){for(;a===mg;)mg=kg[--lg],kg[lg]=null,ng=kg[--lg],kg[lg]=null;for(;a===qg;)qg=og[--pg],og[pg]=null,sg=og[--pg],og[pg]=null,rg=og[--pg],og[pg]=null}var xg=null,yg=null,I=!1,zg=null;\nfunction Ag(a,b){var c=Bg(5,null,null,0);c.elementType=\"DELETED\";c.stateNode=b;c.return=a;b=a.deletions;null===b?(a.deletions=[c],a.flags|=16):b.push(c)}\nfunction Cg(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,xg=a,yg=Lf(b.firstChild),!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,xg=a,yg=null,!0):!1;case 13:return b=8!==b.nodeType?null:b,null!==b?(c=null!==qg?{id:rg,overflow:sg}:null,a.memoizedState={dehydrated:b,treeContext:c,retryLane:1073741824},c=Bg(18,null,null,0),c.stateNode=b,c.return=a,a.child=c,xg=a,yg=\nnull,!0):!1;default:return!1}}function Dg(a){return 0!==(a.mode&1)&&0===(a.flags&128)}function Eg(a){if(I){var b=yg;if(b){var c=b;if(!Cg(a,b)){if(Dg(a))throw Error(p(418));b=Lf(c.nextSibling);var d=xg;b&&Cg(a,b)?Ag(d,c):(a.flags=a.flags&-4097|2,I=!1,xg=a)}}else{if(Dg(a))throw Error(p(418));a.flags=a.flags&-4097|2;I=!1;xg=a}}}function Fg(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;xg=a}\nfunction Gg(a){if(a!==xg)return!1;if(!I)return Fg(a),I=!0,!1;var b;(b=3!==a.tag)&&!(b=5!==a.tag)&&(b=a.type,b=\"head\"!==b&&\"body\"!==b&&!Ef(a.type,a.memoizedProps));if(b&&(b=yg)){if(Dg(a))throw Hg(),Error(p(418));for(;b;)Ag(a,b),b=Lf(b.nextSibling)}Fg(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(p(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){yg=Lf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}yg=\nnull}}else yg=xg?Lf(a.stateNode.nextSibling):null;return!0}function Hg(){for(var a=yg;a;)a=Lf(a.nextSibling)}function Ig(){yg=xg=null;I=!1}function Jg(a){null===zg?zg=[a]:zg.push(a)}var Kg=ua.ReactCurrentBatchConfig;\nfunction Lg(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(p(309));var d=c.stateNode}if(!d)throw Error(p(147,a));var e=d,f=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===f)return b.ref;b=function(a){var b=e.refs;null===a?delete b[f]:b[f]=a};b._stringRef=f;return b}if(\"string\"!==typeof a)throw Error(p(284));if(!c._owner)throw Error(p(290,a));}return a}\nfunction Mg(a,b){a=Object.prototype.toString.call(b);throw Error(p(31,\"[object Object]\"===a?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":a));}function Ng(a){var b=a._init;return b(a._payload)}\nfunction Og(a){function b(b,c){if(a){var d=b.deletions;null===d?(b.deletions=[c],b.flags|=16):d.push(c)}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=Pg(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return b.flags|=1048576,c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags|=2,c):d;b.flags|=2;return c}function g(b){a&&\nnull===b.alternate&&(b.flags|=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=Qg(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){var f=c.type;if(f===ya)return m(a,b,c.props.children,d,c.key);if(null!==b&&(b.elementType===f||\"object\"===typeof f&&null!==f&&f.$$typeof===Ha&&Ng(f)===b.type))return d=e(b,c.props),d.ref=Lg(a,b,c),d.return=a,d;d=Rg(c.type,c.key,c.props,null,a.mode,d);d.ref=Lg(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||\nb.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=Sg(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function m(a,b,c,d,f){if(null===b||7!==b.tag)return b=Tg(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function q(a,b,c){if(\"string\"===typeof b&&\"\"!==b||\"number\"===typeof b)return b=Qg(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case va:return c=Rg(b.type,b.key,b.props,null,a.mode,c),\nc.ref=Lg(a,null,b),c.return=a,c;case wa:return b=Sg(b,a.mode,c),b.return=a,b;case Ha:var d=b._init;return q(a,d(b._payload),c)}if(eb(b)||Ka(b))return b=Tg(b,a.mode,c,null),b.return=a,b;Mg(a,b)}return null}function r(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c&&\"\"!==c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case va:return c.key===e?k(a,b,c,d):null;case wa:return c.key===e?l(a,b,c,d):null;case Ha:return e=c._init,r(a,\nb,e(c._payload),d)}if(eb(c)||Ka(c))return null!==e?null:m(a,b,c,d,null);Mg(a,c)}return null}function y(a,b,c,d,e){if(\"string\"===typeof d&&\"\"!==d||\"number\"===typeof d)return a=a.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case va:return a=a.get(null===d.key?c:d.key)||null,k(b,a,d,e);case wa:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e);case Ha:var f=d._init;return y(a,b,c,f(d._payload),e)}if(eb(d)||Ka(d))return a=a.get(c)||null,m(b,a,d,e,null);Mg(b,d)}return null}\nfunction n(e,g,h,k){for(var l=null,m=null,u=g,w=g=0,x=null;null!==u&&w<h.length;w++){u.index>w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;w<h.length;w++)u=q(e,h[w],k),null!==u&&(g=f(u,g,w),null===m?l=u:m.sibling=u,m=u);I&&tg(e,w);return l}for(u=d(e,u);w<h.length;w++)x=y(u,e,w,h[w],k),null!==x&&(a&&null!==x.alternate&&u.delete(null===\nx.key?w:x.key),g=f(x,g,w),null===m?l=x:m.sibling=x,m=x);a&&u.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function t(e,g,h,k){var l=Ka(h);if(\"function\"!==typeof l)throw Error(p(150));h=l.call(h);if(null==h)throw Error(p(151));for(var u=l=null,m=g,w=g=0,x=null,n=h.next();null!==m&&!n.done;w++,n=h.next()){m.index>w?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if(\"function\"!==typeof e)throw Error(p(191,e));e.call(d)}}}var th={},uh=Uf(th),vh=Uf(th),wh=Uf(th);function xh(a){if(a===th)throw Error(p(174));return a}\nfunction yh(a,b){G(wh,b);G(vh,a);G(uh,th);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(uh);G(uh,b)}function zh(){E(uh);E(vh);E(wh)}function Ah(a){xh(wh.current);var b=xh(uh.current);var c=lb(b,a.type);b!==c&&(G(vh,a),G(uh,c))}function Bh(a){vh.current===a&&(E(uh),E(vh))}var L=Uf(0);\nfunction Ch(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Dh=[];\nfunction Eh(){for(var a=0;a<Dh.length;a++)Dh[a]._workInProgressVersionPrimary=null;Dh.length=0}var Fh=ua.ReactCurrentDispatcher,Gh=ua.ReactCurrentBatchConfig,Hh=0,M=null,N=null,O=null,Ih=!1,Jh=!1,Kh=0,Lh=0;function P(){throw Error(p(321));}function Mh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!He(a[c],b[c]))return!1;return!0}\nfunction Nh(a,b,c,d,e,f){Hh=f;M=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;Fh.current=null===a||null===a.memoizedState?Oh:Ph;a=c(d,e);if(Jh){f=0;do{Jh=!1;Kh=0;if(25<=f)throw Error(p(301));f+=1;O=N=null;b.updateQueue=null;Fh.current=Qh;a=c(d,e)}while(Jh)}Fh.current=Rh;b=null!==N&&null!==N.next;Hh=0;O=N=M=null;Ih=!1;if(b)throw Error(p(300));return a}function Sh(){var a=0!==Kh;Kh=0;return a}\nfunction Th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===O?M.memoizedState=O=a:O=O.next=a;return O}function Uh(){if(null===N){var a=M.alternate;a=null!==a?a.memoizedState:null}else a=N.next;var b=null===O?M.memoizedState:O.next;if(null!==b)O=b,N=a;else{if(null===a)throw Error(p(310));N=a;a={memoizedState:N.memoizedState,baseState:N.baseState,baseQueue:N.baseQueue,queue:N.queue,next:null};null===O?M.memoizedState=O=a:O=O.next=a}return O}\nfunction Vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Wh(a){var b=Uh(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=N,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){f=e.next;d=d.baseState;var h=g=null,k=null,l=f;do{var m=l.lane;if((Hh&m)===m)null!==k&&(k=k.next={lane:0,action:l.action,hasEagerState:l.hasEagerState,eagerState:l.eagerState,next:null}),d=l.hasEagerState?l.eagerState:a(d,l.action);else{var q={lane:m,action:l.action,hasEagerState:l.hasEagerState,\neagerState:l.eagerState,next:null};null===k?(h=k=q,g=d):k=k.next=q;M.lanes|=m;rh|=m}l=l.next}while(null!==l&&l!==f);null===k?g=d:k.next=h;He(d,b.memoizedState)||(dh=!0);b.memoizedState=d;b.baseState=g;b.baseQueue=k;c.lastRenderedState=d}a=c.interleaved;if(null!==a){e=a;do f=e.lane,M.lanes|=f,rh|=f,e=e.next;while(e!==a)}else null===e&&(c.lanes=0);return[b.memoizedState,c.dispatch]}\nfunction Xh(a){var b=Uh(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(dh=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}function Yh(){}\nfunction Zh(a,b){var c=M,d=Uh(),e=b(),f=!He(d.memoizedState,e);f&&(d.memoizedState=e,dh=!0);d=d.queue;$h(ai.bind(null,c,d,a),[a]);if(d.getSnapshot!==b||f||null!==O&&O.memoizedState.tag&1){c.flags|=2048;bi(9,ci.bind(null,c,d,e,b),void 0,null);if(null===Q)throw Error(p(349));0!==(Hh&30)||di(c,b,e)}return e}function di(a,b,c){a.flags|=16384;a={getSnapshot:b,value:c};b=M.updateQueue;null===b?(b={lastEffect:null,stores:null},M.updateQueue=b,b.stores=[a]):(c=b.stores,null===c?b.stores=[a]:c.push(a))}\nfunction ci(a,b,c,d){b.value=c;b.getSnapshot=d;ei(b)&&fi(a)}function ai(a,b,c){return c(function(){ei(b)&&fi(a)})}function ei(a){var b=a.getSnapshot;a=a.value;try{var c=b();return!He(a,c)}catch(d){return!0}}function fi(a){var b=ih(a,1);null!==b&&gi(b,a,1,-1)}\nfunction hi(a){var b=Th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Vh,lastRenderedState:a};b.queue=a;a=a.dispatch=ii.bind(null,M,a);return[b.memoizedState,a]}\nfunction bi(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=M.updateQueue;null===b?(b={lastEffect:null,stores:null},M.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function ji(){return Uh().memoizedState}function ki(a,b,c,d){var e=Th();M.flags|=a;e.memoizedState=bi(1|b,c,void 0,void 0===d?null:d)}\nfunction li(a,b,c,d){var e=Uh();d=void 0===d?null:d;var f=void 0;if(null!==N){var g=N.memoizedState;f=g.destroy;if(null!==d&&Mh(d,g.deps)){e.memoizedState=bi(b,c,f,d);return}}M.flags|=a;e.memoizedState=bi(1|b,c,f,d)}function mi(a,b){return ki(8390656,8,a,b)}function $h(a,b){return li(2048,8,a,b)}function ni(a,b){return li(4,2,a,b)}function oi(a,b){return li(4,4,a,b)}\nfunction pi(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function qi(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return li(4,4,pi.bind(null,b,a),c)}function ri(){}function si(a,b){var c=Uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Mh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction ti(a,b){var c=Uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Mh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function ui(a,b,c){if(0===(Hh&21))return a.baseState&&(a.baseState=!1,dh=!0),a.memoizedState=c;He(c,b)||(c=yc(),M.lanes|=c,rh|=c,a.baseState=!0);return b}function vi(a,b){var c=C;C=0!==c&&4>c?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0<c&&(b+=\"H\"+c.toString(32));b+=\":\"}else c=Lh++,b=\":\"+b+\"r\"+c.toString(32)+\":\";return a.memoizedState=b},unstable_isNewReconciler:!1},Ph={readContext:eh,useCallback:si,useContext:eh,useEffect:$h,useImperativeHandle:qi,useInsertionEffect:ni,useLayoutEffect:oi,useMemo:ti,useReducer:Wh,useRef:ji,useState:function(){return Wh(Vh)},\nuseDebugValue:ri,useDeferredValue:function(a){var b=Uh();return ui(b,N.memoizedState,a)},useTransition:function(){var a=Wh(Vh)[0],b=Uh().memoizedState;return[a,b]},useMutableSource:Yh,useSyncExternalStore:Zh,useId:wi,unstable_isNewReconciler:!1},Qh={readContext:eh,useCallback:si,useContext:eh,useEffect:$h,useImperativeHandle:qi,useInsertionEffect:ni,useLayoutEffect:oi,useMemo:ti,useReducer:Xh,useRef:ji,useState:function(){return Xh(Vh)},useDebugValue:ri,useDeferredValue:function(a){var b=Uh();return null===\nN?b.memoizedState=a:ui(b,N.memoizedState,a)},useTransition:function(){var a=Xh(Vh)[0],b=Uh().memoizedState;return[a,b]},useMutableSource:Yh,useSyncExternalStore:Zh,useId:wi,unstable_isNewReconciler:!1};function Ci(a,b){if(a&&a.defaultProps){b=A({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}function Di(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:A({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}\nvar Ei={isMounted:function(a){return(a=a._reactInternals)?Vb(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=R(),e=yi(a),f=mh(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=nh(a,f,e);null!==b&&(gi(b,a,e,d),oh(b,a,e))},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=R(),e=yi(a),f=mh(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=nh(a,f,e);null!==b&&(gi(b,a,e,d),oh(b,a,e))},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=R(),d=\nyi(a),e=mh(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=b);b=nh(a,e,d);null!==b&&(gi(b,a,d,c),oh(b,a,d))}};function Fi(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Ie(c,d)||!Ie(e,f):!0}\nfunction Gi(a,b,c){var d=!1,e=Vf;var f=b.contextType;\"object\"===typeof f&&null!==f?f=eh(f):(e=Zf(b)?Xf:H.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Yf(a,e):Vf);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=Ei;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction Hi(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&Ei.enqueueReplaceState(b,b.state,null)}\nfunction Ii(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs={};kh(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=eh(f):(f=Zf(b)?Xf:H.current,e.context=Yf(a,f));e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(Di(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||(b=e.state,\n\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&Ei.enqueueReplaceState(e,e.state,null),qh(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.flags|=4194308)}function Ji(a,b){try{var c=\"\",d=b;do c+=Pa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e,digest:null}}\nfunction Ki(a,b,c){return{value:a,source:null,stack:null!=c?c:null,digest:null!=b?b:null}}function Li(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Mi=\"function\"===typeof WeakMap?WeakMap:Map;function Ni(a,b,c){c=mh(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Oi||(Oi=!0,Pi=d);Li(a,b)};return c}\nfunction Qi(a,b,c){c=mh(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){return d(e)};c.callback=function(){Li(a,b)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){Li(a,b);\"function\"!==typeof d&&(null===Ri?Ri=new Set([this]):Ri.add(this));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}\nfunction Si(a,b,c){var d=a.pingCache;if(null===d){d=a.pingCache=new Mi;var e=new Set;d.set(b,e)}else e=d.get(b),void 0===e&&(e=new Set,d.set(b,e));e.has(c)||(e.add(c),a=Ti.bind(null,a,b,c),b.then(a,a))}function Ui(a){do{var b;if(b=13===a.tag)b=a.memoizedState,b=null!==b?null!==b.dehydrated?!0:!1:!0;if(b)return a;a=a.return}while(null!==a);return null}\nfunction Vi(a,b,c,d,e){if(0===(a.mode&1))return a===b?a.flags|=65536:(a.flags|=128,c.flags|=131072,c.flags&=-52805,1===c.tag&&(null===c.alternate?c.tag=17:(b=mh(-1,1),b.tag=2,nh(c,b,1))),c.lanes|=1),a;a.flags|=65536;a.lanes=e;return a}var Wi=ua.ReactCurrentOwner,dh=!1;function Xi(a,b,c,d){b.child=null===a?Vg(b,null,c,d):Ug(b,a.child,c,d)}\nfunction Yi(a,b,c,d,e){c=c.render;var f=b.ref;ch(b,e);d=Nh(a,b,c,d,f,e);c=Sh();if(null!==a&&!dh)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Zi(a,b,e);I&&c&&vg(b);b.flags|=1;Xi(a,b,d,e);return b.child}\nfunction $i(a,b,c,d,e){if(null===a){var f=c.type;if(\"function\"===typeof f&&!aj(f)&&void 0===f.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=f,bj(a,b,f,d,e);a=Rg(c.type,null,d,b,b.mode,e);a.ref=b.ref;a.return=b;return b.child=a}f=a.child;if(0===(a.lanes&e)){var g=f.memoizedProps;c=c.compare;c=null!==c?c:Ie;if(c(g,d)&&a.ref===b.ref)return Zi(a,b,e)}b.flags|=1;a=Pg(f,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction bj(a,b,c,d,e){if(null!==a){var f=a.memoizedProps;if(Ie(f,d)&&a.ref===b.ref)if(dh=!1,b.pendingProps=d=f,0!==(a.lanes&e))0!==(a.flags&131072)&&(dh=!0);else return b.lanes=a.lanes,Zi(a,b,e)}return cj(a,b,c,d,e)}\nfunction dj(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode)if(0===(b.mode&1))b.memoizedState={baseLanes:0,cachePool:null,transitions:null},G(ej,fj),fj|=c;else{if(0===(c&1073741824))return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a,cachePool:null,transitions:null},b.updateQueue=null,G(ej,fj),fj|=a,null;b.memoizedState={baseLanes:0,cachePool:null,transitions:null};d=null!==f?f.baseLanes:c;G(ej,fj);fj|=d}else null!==\nf?(d=f.baseLanes|c,b.memoizedState=null):d=c,G(ej,fj),fj|=d;Xi(a,b,e,c);return b.child}function gj(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=512,b.flags|=2097152}function cj(a,b,c,d,e){var f=Zf(c)?Xf:H.current;f=Yf(b,f);ch(b,e);c=Nh(a,b,c,d,f,e);d=Sh();if(null!==a&&!dh)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Zi(a,b,e);I&&d&&vg(b);b.flags|=1;Xi(a,b,c,e);return b.child}\nfunction hj(a,b,c,d,e){if(Zf(c)){var f=!0;cg(b)}else f=!1;ch(b,e);if(null===b.stateNode)ij(a,b),Gi(b,c,d),Ii(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=eh(l):(l=Zf(c)?Xf:H.current,l=Yf(b,l));var m=c.getDerivedStateFromProps,q=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;q||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||\n(h!==d||k!==l)&&Hi(b,g,d,l);jh=!1;var r=b.memoizedState;g.state=r;qh(b,d,g,e);k=b.memoizedState;h!==d||r!==k||Wf.current||jh?(\"function\"===typeof m&&(Di(b,c,m,d),k=b.memoizedState),(h=jh||Fi(b,c,h,d,r,k,l))?(q||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===typeof g.componentDidMount&&(b.flags|=4194308)):\n(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),d=!1)}else{g=b.stateNode;lh(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:Ci(b.type,h);g.props=l;q=b.pendingProps;r=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=eh(k):(k=Zf(c)?Xf:H.current,k=Yf(b,k));var y=c.getDerivedStateFromProps;(m=\"function\"===typeof y||\"function\"===typeof g.getSnapshotBeforeUpdate)||\n\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==q||r!==k)&&Hi(b,g,d,k);jh=!1;r=b.memoizedState;g.state=r;qh(b,d,g,e);var n=b.memoizedState;h!==q||r!==n||Wf.current||jh?(\"function\"===typeof y&&(Di(b,c,y,d),n=b.memoizedState),(l=jh||Fi(b,c,l,d,r,n,k)||!1)?(m||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,n,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&\ng.UNSAFE_componentWillUpdate(d,n,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=1024)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),b.memoizedProps=d,b.memoizedState=n),g.props=d,g.state=n,g.context=k,d=l):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===\na.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),d=!1)}return jj(a,b,c,d,f,e)}\nfunction jj(a,b,c,d,e,f){gj(a,b);var g=0!==(b.flags&128);if(!d&&!g)return e&&dg(b,c,!1),Zi(a,b,f);d=b.stateNode;Wi.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Ug(b,a.child,null,f),b.child=Ug(b,null,h,f)):Xi(a,b,h,f);b.memoizedState=d.state;e&&dg(b,c,!0);return b.child}function kj(a){var b=a.stateNode;b.pendingContext?ag(a,b.pendingContext,b.pendingContext!==b.context):b.context&&ag(a,b.context,!1);yh(a,b.containerInfo)}\nfunction lj(a,b,c,d,e){Ig();Jg(e);b.flags|=256;Xi(a,b,c,d);return b.child}var mj={dehydrated:null,treeContext:null,retryLane:0};function nj(a){return{baseLanes:a,cachePool:null,transitions:null}}\nfunction oj(a,b,c){var d=b.pendingProps,e=L.current,f=!1,g=0!==(b.flags&128),h;(h=g)||(h=null!==a&&null===a.memoizedState?!1:0!==(e&2));if(h)f=!0,b.flags&=-129;else if(null===a||null!==a.memoizedState)e|=1;G(L,e&1);if(null===a){Eg(b);a=b.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(b.mode&1)?b.lanes=1:\"$!\"===a.data?b.lanes=8:b.lanes=1073741824,null;g=d.children;a=d.fallback;return f?(d=b.mode,f=b.child,g={mode:\"hidden\",children:g},0===(d&1)&&null!==f?(f.childLanes=0,f.pendingProps=\ng):f=pj(g,d,0,null),a=Tg(a,d,c,null),f.return=b,a.return=b,f.sibling=a,b.child=f,b.child.memoizedState=nj(c),b.memoizedState=mj,a):qj(b,g)}e=a.memoizedState;if(null!==e&&(h=e.dehydrated,null!==h))return rj(a,b,g,d,h,e,c);if(f){f=d.fallback;g=b.mode;e=a.child;h=e.sibling;var k={mode:\"hidden\",children:d.children};0===(g&1)&&b.child!==e?(d=b.child,d.childLanes=0,d.pendingProps=k,b.deletions=null):(d=Pg(e,k),d.subtreeFlags=e.subtreeFlags&14680064);null!==h?f=Pg(h,f):(f=Tg(f,g,c,null),f.flags|=2);f.return=\nb;d.return=b;d.sibling=f;b.child=d;d=f;f=b.child;g=a.child.memoizedState;g=null===g?nj(c):{baseLanes:g.baseLanes|c,cachePool:null,transitions:g.transitions};f.memoizedState=g;f.childLanes=a.childLanes&~c;b.memoizedState=mj;return d}f=a.child;a=f.sibling;d=Pg(f,{mode:\"visible\",children:d.children});0===(b.mode&1)&&(d.lanes=c);d.return=b;d.sibling=null;null!==a&&(c=b.deletions,null===c?(b.deletions=[a],b.flags|=16):c.push(a));b.child=d;b.memoizedState=null;return d}\nfunction qj(a,b){b=pj({mode:\"visible\",children:b},a.mode,0,null);b.return=a;return a.child=b}function sj(a,b,c,d){null!==d&&Jg(d);Ug(b,a.child,null,c);a=qj(b,b.pendingProps.children);a.flags|=2;b.memoizedState=null;return a}\nfunction rj(a,b,c,d,e,f,g){if(c){if(b.flags&256)return b.flags&=-257,d=Ki(Error(p(422))),sj(a,b,g,d);if(null!==b.memoizedState)return b.child=a.child,b.flags|=128,null;f=d.fallback;e=b.mode;d=pj({mode:\"visible\",children:d.children},e,0,null);f=Tg(f,e,g,null);f.flags|=2;d.return=b;f.return=b;d.sibling=f;b.child=d;0!==(b.mode&1)&&Ug(b,a.child,null,g);b.child.memoizedState=nj(g);b.memoizedState=mj;return f}if(0===(b.mode&1))return sj(a,b,g,null);if(\"$!\"===e.data){d=e.nextSibling&&e.nextSibling.dataset;\nif(d)var h=d.dgst;d=h;f=Error(p(419));d=Ki(f,d,void 0);return sj(a,b,g,d)}h=0!==(g&a.childLanes);if(dh||h){d=Q;if(null!==d){switch(g&-g){case 4:e=2;break;case 16:e=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:e=32;break;case 536870912:e=268435456;break;default:e=0}e=0!==(e&(d.suspendedLanes|g))?0:e;\n0!==e&&e!==f.retryLane&&(f.retryLane=e,ih(a,e),gi(d,a,e,-1))}tj();d=Ki(Error(p(421)));return sj(a,b,g,d)}if(\"$?\"===e.data)return b.flags|=128,b.child=a.child,b=uj.bind(null,a),e._reactRetry=b,null;a=f.treeContext;yg=Lf(e.nextSibling);xg=b;I=!0;zg=null;null!==a&&(og[pg++]=rg,og[pg++]=sg,og[pg++]=qg,rg=a.id,sg=a.overflow,qg=b);b=qj(b,d.children);b.flags|=4096;return b}function vj(a,b,c){a.lanes|=b;var d=a.alternate;null!==d&&(d.lanes|=b);bh(a.return,b,c)}\nfunction wj(a,b,c,d,e){var f=a.memoizedState;null===f?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e}:(f.isBackwards=b,f.rendering=null,f.renderingStartTime=0,f.last=d,f.tail=c,f.tailMode=e)}\nfunction xj(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;Xi(a,b,d.children,c);d=L.current;if(0!==(d&2))d=d&1|2,b.flags|=128;else{if(null!==a&&0!==(a.flags&128))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&vj(a,c,b);else if(19===a.tag)vj(a,c,b);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}G(L,d);if(0===(b.mode&1))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===Ch(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);wj(b,!1,e,c,f);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===Ch(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}wj(b,!0,c,null,f);break;case \"together\":wj(b,!1,null,null,void 0);break;default:b.memoizedState=null}return b.child}\nfunction ij(a,b){0===(b.mode&1)&&null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2)}function Zi(a,b,c){null!==a&&(b.dependencies=a.dependencies);rh|=b.lanes;if(0===(c&b.childLanes))return null;if(null!==a&&b.child!==a.child)throw Error(p(153));if(null!==b.child){a=b.child;c=Pg(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=Pg(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}\nfunction yj(a,b,c){switch(b.tag){case 3:kj(b);Ig();break;case 5:Ah(b);break;case 1:Zf(b.type)&&cg(b);break;case 4:yh(b,b.stateNode.containerInfo);break;case 10:var d=b.type._context,e=b.memoizedProps.value;G(Wg,d._currentValue);d._currentValue=e;break;case 13:d=b.memoizedState;if(null!==d){if(null!==d.dehydrated)return G(L,L.current&1),b.flags|=128,null;if(0!==(c&b.child.childLanes))return oj(a,b,c);G(L,L.current&1);a=Zi(a,b,c);return null!==a?a.sibling:null}G(L,L.current&1);break;case 19:d=0!==(c&\nb.childLanes);if(0!==(a.flags&128)){if(d)return xj(a,b,c);b.flags|=128}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);G(L,L.current);if(d)break;else return null;case 22:case 23:return b.lanes=0,dj(a,b,c)}return Zi(a,b,c)}var zj,Aj,Bj,Cj;\nzj=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};Aj=function(){};\nBj=function(a,b,c,d){var e=a.memoizedProps;if(e!==d){a=b.stateNode;xh(uh.current);var f=null;switch(c){case \"input\":e=Ya(a,e);d=Ya(a,d);f=[];break;case \"select\":e=A({},e,{value:void 0});d=A({},d,{value:void 0});f=[];break;case \"textarea\":e=gb(a,e);d=gb(a,d);f=[];break;default:\"function\"!==typeof e.onClick&&\"function\"===typeof d.onClick&&(a.onclick=Bf)}ub(c,d);var g;c=null;for(l in e)if(!d.hasOwnProperty(l)&&e.hasOwnProperty(l)&&null!=e[l])if(\"style\"===l){var h=e[l];for(g in h)h.hasOwnProperty(g)&&\n(c||(c={}),c[g]=\"\")}else\"dangerouslySetInnerHTML\"!==l&&\"children\"!==l&&\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&\"autoFocus\"!==l&&(ea.hasOwnProperty(l)?f||(f=[]):(f=f||[]).push(l,null));for(l in d){var k=d[l];h=null!=e?e[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if(\"style\"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]=\"\");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||(c={}),c[g]=k[g])}else c||(f||(f=[]),f.push(l,\nc)),c=k;else\"dangerouslySetInnerHTML\"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(f=f||[]).push(l,k)):\"children\"===l?\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(l,\"\"+k):\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&(ea.hasOwnProperty(l)?(null!=k&&\"onScroll\"===l&&D(\"scroll\",a),f||h===k||(f=[])):(f=f||[]).push(l,k))}c&&(f=f||[]).push(\"style\",c);var l=f;if(b.updateQueue=l)b.flags|=4}};Cj=function(a,b,c,d){c!==d&&(b.flags|=4)};\nfunction Dj(a,b){if(!I)switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction S(a){var b=null!==a.alternate&&a.alternate.child===a.child,c=0,d=0;if(b)for(var e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags&14680064,d|=e.flags&14680064,e.return=a,e=e.sibling;else for(e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags,d|=e.flags,e.return=a,e=e.sibling;a.subtreeFlags|=d;a.childLanes=c;return b}\nfunction Ej(a,b,c){var d=b.pendingProps;wg(b);switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return S(b),null;case 1:return Zf(b.type)&&$f(),S(b),null;case 3:d=b.stateNode;zh();E(Wf);E(H);Eh();d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)Gg(b)?b.flags|=4:null===a||a.memoizedState.isDehydrated&&0===(b.flags&256)||(b.flags|=1024,null!==zg&&(Fj(zg),zg=null));Aj(a,b);S(b);return null;case 5:Bh(b);var e=xh(wh.current);\nc=b.type;if(null!==a&&null!=b.stateNode)Bj(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=512,b.flags|=2097152);else{if(!d){if(null===b.stateNode)throw Error(p(166));S(b);return null}a=xh(uh.current);if(Gg(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[Of]=b;d[Pf]=f;a=0!==(b.mode&1);switch(c){case \"dialog\":D(\"cancel\",d);D(\"close\",d);break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",d);break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],d);break;case \"source\":D(\"error\",d);break;case \"img\":case \"image\":case \"link\":D(\"error\",\nd);D(\"load\",d);break;case \"details\":D(\"toggle\",d);break;case \"input\":Za(d,f);D(\"invalid\",d);break;case \"select\":d._wrapperState={wasMultiple:!!f.multiple};D(\"invalid\",d);break;case \"textarea\":hb(d,f),D(\"invalid\",d)}ub(c,f);e=null;for(var g in f)if(f.hasOwnProperty(g)){var h=f[g];\"children\"===g?\"string\"===typeof h?d.textContent!==h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,h,a),e=[\"children\",h]):\"number\"===typeof h&&d.textContent!==\"\"+h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,\nh,a),e=[\"children\",\"\"+h]):ea.hasOwnProperty(g)&&null!=h&&\"onScroll\"===g&&D(\"scroll\",d)}switch(c){case \"input\":Va(d);db(d,f,!0);break;case \"textarea\":Va(d);jb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&(d.onclick=Bf)}d=e;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;\"http://www.w3.org/1999/xhtml\"===a&&(a=kb(c));\"http://www.w3.org/1999/xhtml\"===a?\"script\"===c?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],a);e=d;break;case \"source\":D(\"error\",a);e=d;break;case \"img\":case \"image\":case \"link\":D(\"error\",\na);D(\"load\",a);e=d;break;case \"details\":D(\"toggle\",a);e=d;break;case \"input\":Za(a,d);e=Ya(a,d);D(\"invalid\",a);break;case \"option\":e=d;break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};e=A({},d,{value:void 0});D(\"invalid\",a);break;case \"textarea\":hb(a,d);e=gb(a,d);D(\"invalid\",a);break;default:e=d}ub(c,e);h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];\"style\"===f?sb(a,k):\"dangerouslySetInnerHTML\"===f?(k=k?k.__html:void 0,null!=k&&nb(a,k)):\"children\"===f?\"string\"===typeof k?(\"textarea\"!==\nc||\"\"!==k)&&ob(a,k):\"number\"===typeof k&&ob(a,\"\"+k):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(ea.hasOwnProperty(f)?null!=k&&\"onScroll\"===f&&D(\"scroll\",a):null!=k&&ta(a,f,k,g))}switch(c){case \"input\":Va(a);db(a,d,!1);break;case \"textarea\":Va(a);jb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+Sa(d.value));break;case \"select\":a.multiple=!!d.multiple;f=d.value;null!=f?fb(a,!!d.multiple,f,!1):null!=d.defaultValue&&fb(a,!!d.multiple,d.defaultValue,\n!0);break;default:\"function\"===typeof e.onClick&&(a.onclick=Bf)}switch(c){case \"button\":case \"input\":case \"select\":case \"textarea\":d=!!d.autoFocus;break a;case \"img\":d=!0;break a;default:d=!1}}d&&(b.flags|=4)}null!==b.ref&&(b.flags|=512,b.flags|=2097152)}S(b);return null;case 6:if(a&&null!=b.stateNode)Cj(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(p(166));c=xh(wh.current);xh(uh.current);if(Gg(b)){d=b.stateNode;c=b.memoizedProps;d[Of]=b;if(f=d.nodeValue!==c)if(a=\nxg,null!==a)switch(a.tag){case 3:Af(d.nodeValue,c,0!==(a.mode&1));break;case 5:!0!==a.memoizedProps.suppressHydrationWarning&&Af(d.nodeValue,c,0!==(a.mode&1))}f&&(b.flags|=4)}else d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[Of]=b,b.stateNode=d}S(b);return null;case 13:E(L);d=b.memoizedState;if(null===a||null!==a.memoizedState&&null!==a.memoizedState.dehydrated){if(I&&null!==yg&&0!==(b.mode&1)&&0===(b.flags&128))Hg(),Ig(),b.flags|=98560,f=!1;else if(f=Gg(b),null!==d&&null!==d.dehydrated){if(null===\na){if(!f)throw Error(p(318));f=b.memoizedState;f=null!==f?f.dehydrated:null;if(!f)throw Error(p(317));f[Of]=b}else Ig(),0===(b.flags&128)&&(b.memoizedState=null),b.flags|=4;S(b);f=!1}else null!==zg&&(Fj(zg),zg=null),f=!0;if(!f)return b.flags&65536?b:null}if(0!==(b.flags&128))return b.lanes=c,b;d=null!==d;d!==(null!==a&&null!==a.memoizedState)&&d&&(b.child.flags|=8192,0!==(b.mode&1)&&(null===a||0!==(L.current&1)?0===T&&(T=3):tj()));null!==b.updateQueue&&(b.flags|=4);S(b);return null;case 4:return zh(),\nAj(a,b),null===a&&sf(b.stateNode.containerInfo),S(b),null;case 10:return ah(b.type._context),S(b),null;case 17:return Zf(b.type)&&$f(),S(b),null;case 19:E(L);f=b.memoizedState;if(null===f)return S(b),null;d=0!==(b.flags&128);g=f.rendering;if(null===g)if(d)Dj(f,!1);else{if(0!==T||null!==a&&0!==(a.flags&128))for(a=b.child;null!==a;){g=Ch(a);if(null!==g){b.flags|=128;Dj(f,!1);d=g.updateQueue;null!==d&&(b.updateQueue=d,b.flags|=4);b.subtreeFlags=0;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=14680066,\ng=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.subtreeFlags=0,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=g.lanes,f.child=g.child,f.subtreeFlags=0,f.deletions=null,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,f.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;G(L,L.current&1|2);return b.child}a=\na.sibling}null!==f.tail&&B()>Gj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;d<c.length;d++){var e=c[d];try{var f=a,g=b,h=g;a:for(;null!==h;){switch(h.tag){case 5:X=h.stateNode;Xj=!1;break a;case 3:X=h.stateNode.containerInfo;Xj=!0;break a;case 4:X=h.stateNode.containerInfo;Xj=!0;break a}h=h.return}if(null===X)throw Error(p(160));Zj(f,g,e);X=null;Xj=!1;var k=e.alternate;null!==k&&(k.return=null);e.return=null}catch(l){W(e,b,l)}}if(b.subtreeFlags&12854)for(b=b.child;null!==b;)dk(b,a),b=b.sibling}\nfunction dk(a,b){var c=a.alternate,d=a.flags;switch(a.tag){case 0:case 11:case 14:case 15:ck(b,a);ek(a);if(d&4){try{Pj(3,a,a.return),Qj(3,a)}catch(t){W(a,a.return,t)}try{Pj(5,a,a.return)}catch(t){W(a,a.return,t)}}break;case 1:ck(b,a);ek(a);d&512&&null!==c&&Lj(c,c.return);break;case 5:ck(b,a);ek(a);d&512&&null!==c&&Lj(c,c.return);if(a.flags&32){var e=a.stateNode;try{ob(e,\"\")}catch(t){W(a,a.return,t)}}if(d&4&&(e=a.stateNode,null!=e)){var f=a.memoizedProps,g=null!==c?c.memoizedProps:f,h=a.type,k=a.updateQueue;\na.updateQueue=null;if(null!==k)try{\"input\"===h&&\"radio\"===f.type&&null!=f.name&&ab(e,f);vb(h,g);var l=vb(h,f);for(g=0;g<k.length;g+=2){var m=k[g],q=k[g+1];\"style\"===m?sb(e,q):\"dangerouslySetInnerHTML\"===m?nb(e,q):\"children\"===m?ob(e,q):ta(e,m,q,l)}switch(h){case \"input\":bb(e,f);break;case \"textarea\":ib(e,f);break;case \"select\":var r=e._wrapperState.wasMultiple;e._wrapperState.wasMultiple=!!f.multiple;var y=f.value;null!=y?fb(e,!!f.multiple,y,!1):r!==!!f.multiple&&(null!=f.defaultValue?fb(e,!!f.multiple,\nf.defaultValue,!0):fb(e,!!f.multiple,f.multiple?[]:\"\",!1))}e[Pf]=f}catch(t){W(a,a.return,t)}}break;case 6:ck(b,a);ek(a);if(d&4){if(null===a.stateNode)throw Error(p(162));e=a.stateNode;f=a.memoizedProps;try{e.nodeValue=f}catch(t){W(a,a.return,t)}}break;case 3:ck(b,a);ek(a);if(d&4&&null!==c&&c.memoizedState.isDehydrated)try{bd(b.containerInfo)}catch(t){W(a,a.return,t)}break;case 4:ck(b,a);ek(a);break;case 13:ck(b,a);ek(a);e=a.child;e.flags&8192&&(f=null!==e.memoizedState,e.stateNode.isHidden=f,!f||\nnull!==e.alternate&&null!==e.alternate.memoizedState||(fk=B()));d&4&&ak(a);break;case 22:m=null!==c&&null!==c.memoizedState;a.mode&1?(U=(l=U)||m,ck(b,a),U=l):ck(b,a);ek(a);if(d&8192){l=null!==a.memoizedState;if((a.stateNode.isHidden=l)&&!m&&0!==(a.mode&1))for(V=a,m=a.child;null!==m;){for(q=V=m;null!==V;){r=V;y=r.child;switch(r.tag){case 0:case 11:case 14:case 15:Pj(4,r,r.return);break;case 1:Lj(r,r.return);var n=r.stateNode;if(\"function\"===typeof n.componentWillUnmount){d=r;c=r.return;try{b=d,n.props=\nb.memoizedProps,n.state=b.memoizedState,n.componentWillUnmount()}catch(t){W(d,c,t)}}break;case 5:Lj(r,r.return);break;case 22:if(null!==r.memoizedState){gk(q);continue}}null!==y?(y.return=r,V=y):gk(q)}m=m.sibling}a:for(m=null,q=a;;){if(5===q.tag){if(null===m){m=q;try{e=q.stateNode,l?(f=e.style,\"function\"===typeof f.setProperty?f.setProperty(\"display\",\"none\",\"important\"):f.display=\"none\"):(h=q.stateNode,k=q.memoizedProps.style,g=void 0!==k&&null!==k&&k.hasOwnProperty(\"display\")?k.display:null,h.style.display=\nrb(\"display\",g))}catch(t){W(a,a.return,t)}}}else if(6===q.tag){if(null===m)try{q.stateNode.nodeValue=l?\"\":q.memoizedProps}catch(t){W(a,a.return,t)}}else if((22!==q.tag&&23!==q.tag||null===q.memoizedState||q===a)&&null!==q.child){q.child.return=q;q=q.child;continue}if(q===a)break a;for(;null===q.sibling;){if(null===q.return||q.return===a)break a;m===q&&(m=null);q=q.return}m===q&&(m=null);q.sibling.return=q.return;q=q.sibling}}break;case 19:ck(b,a);ek(a);d&4&&ak(a);break;case 21:break;default:ck(b,\na),ek(a)}}function ek(a){var b=a.flags;if(b&2){try{a:{for(var c=a.return;null!==c;){if(Tj(c)){var d=c;break a}c=c.return}throw Error(p(160));}switch(d.tag){case 5:var e=d.stateNode;d.flags&32&&(ob(e,\"\"),d.flags&=-33);var f=Uj(a);Wj(a,f,e);break;case 3:case 4:var g=d.stateNode.containerInfo,h=Uj(a);Vj(a,h,g);break;default:throw Error(p(161));}}catch(k){W(a,a.return,k)}a.flags&=-3}b&4096&&(a.flags&=-4097)}function hk(a,b,c){V=a;ik(a,b,c)}\nfunction ik(a,b,c){for(var d=0!==(a.mode&1);null!==V;){var e=V,f=e.child;if(22===e.tag&&d){var g=null!==e.memoizedState||Jj;if(!g){var h=e.alternate,k=null!==h&&null!==h.memoizedState||U;h=Jj;var l=U;Jj=g;if((U=k)&&!l)for(V=e;null!==V;)g=V,k=g.child,22===g.tag&&null!==g.memoizedState?jk(e):null!==k?(k.return=g,V=k):jk(e);for(;null!==f;)V=f,ik(f,b,c),f=f.sibling;V=e;Jj=h;U=l}kk(a,b,c)}else 0!==(e.subtreeFlags&8772)&&null!==f?(f.return=e,V=f):kk(a,b,c)}}\nfunction kk(a){for(;null!==V;){var b=V;if(0!==(b.flags&8772)){var c=b.alternate;try{if(0!==(b.flags&8772))switch(b.tag){case 0:case 11:case 15:U||Qj(5,b);break;case 1:var d=b.stateNode;if(b.flags&4&&!U)if(null===c)d.componentDidMount();else{var e=b.elementType===b.type?c.memoizedProps:Ci(b.type,c.memoizedProps);d.componentDidUpdate(e,c.memoizedState,d.__reactInternalSnapshotBeforeUpdate)}var f=b.updateQueue;null!==f&&sh(b,f,d);break;case 3:var g=b.updateQueue;if(null!==g){c=null;if(null!==b.child)switch(b.child.tag){case 5:c=\nb.child.stateNode;break;case 1:c=b.child.stateNode}sh(b,g,c)}break;case 5:var h=b.stateNode;if(null===c&&b.flags&4){c=h;var k=b.memoizedProps;switch(b.type){case \"button\":case \"input\":case \"select\":case \"textarea\":k.autoFocus&&c.focus();break;case \"img\":k.src&&(c.src=k.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(null===b.memoizedState){var l=b.alternate;if(null!==l){var m=l.memoizedState;if(null!==m){var q=m.dehydrated;null!==q&&bd(q)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;\ndefault:throw Error(p(163));}U||b.flags&512&&Rj(b)}catch(r){W(b,b.return,r)}}if(b===a){V=null;break}c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}function gk(a){for(;null!==V;){var b=V;if(b===a){V=null;break}var c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}\nfunction jk(a){for(;null!==V;){var b=V;try{switch(b.tag){case 0:case 11:case 15:var c=b.return;try{Qj(4,b)}catch(k){W(b,c,k)}break;case 1:var d=b.stateNode;if(\"function\"===typeof d.componentDidMount){var e=b.return;try{d.componentDidMount()}catch(k){W(b,e,k)}}var f=b.return;try{Rj(b)}catch(k){W(b,f,k)}break;case 5:var g=b.return;try{Rj(b)}catch(k){W(b,g,k)}}}catch(k){W(b,b.return,k)}if(b===a){V=null;break}var h=b.sibling;if(null!==h){h.return=b.return;V=h;break}V=b.return}}\nvar lk=Math.ceil,mk=ua.ReactCurrentDispatcher,nk=ua.ReactCurrentOwner,ok=ua.ReactCurrentBatchConfig,K=0,Q=null,Y=null,Z=0,fj=0,ej=Uf(0),T=0,pk=null,rh=0,qk=0,rk=0,sk=null,tk=null,fk=0,Gj=Infinity,uk=null,Oi=!1,Pi=null,Ri=null,vk=!1,wk=null,xk=0,yk=0,zk=null,Ak=-1,Bk=0;function R(){return 0!==(K&6)?B():-1!==Ak?Ak:Ak=B()}\nfunction yi(a){if(0===(a.mode&1))return 1;if(0!==(K&2)&&0!==Z)return Z&-Z;if(null!==Kg.transition)return 0===Bk&&(Bk=yc()),Bk;a=C;if(0!==a)return a;a=window.event;a=void 0===a?16:jd(a.type);return a}function gi(a,b,c,d){if(50<yk)throw yk=0,zk=null,Error(p(185));Ac(a,c,d);if(0===(K&2)||a!==Q)a===Q&&(0===(K&2)&&(qk|=c),4===T&&Ck(a,Z)),Dk(a,d),1===c&&0===K&&0===(b.mode&1)&&(Gj=B()+500,fg&&jg())}\nfunction Dk(a,b){var c=a.callbackNode;wc(a,b);var d=uc(a,a===Q?Z:0);if(0===d)null!==c&&bc(c),a.callbackNode=null,a.callbackPriority=0;else if(b=d&-d,a.callbackPriority!==b){null!=c&&bc(c);if(1===b)0===a.tag?ig(Ek.bind(null,a)):hg(Ek.bind(null,a)),Jf(function(){0===(K&6)&&jg()}),c=null;else{switch(Dc(d)){case 1:c=fc;break;case 4:c=gc;break;case 16:c=hc;break;case 536870912:c=jc;break;default:c=hc}c=Fk(c,Gk.bind(null,a))}a.callbackPriority=b;a.callbackNode=c}}\nfunction Gk(a,b){Ak=-1;Bk=0;if(0!==(K&6))throw Error(p(327));var c=a.callbackNode;if(Hk()&&a.callbackNode!==c)return null;var d=uc(a,a===Q?Z:0);if(0===d)return null;if(0!==(d&30)||0!==(d&a.expiredLanes)||b)b=Ik(a,d);else{b=d;var e=K;K|=2;var f=Jk();if(Q!==a||Z!==b)uk=null,Gj=B()+500,Kk(a,b);do try{Lk();break}catch(h){Mk(a,h)}while(1);$g();mk.current=f;K=e;null!==Y?b=0:(Q=null,Z=0,b=T)}if(0!==b){2===b&&(e=xc(a),0!==e&&(d=e,b=Nk(a,e)));if(1===b)throw c=pk,Kk(a,0),Ck(a,d),Dk(a,B()),c;if(6===b)Ck(a,d);\nelse{e=a.current.alternate;if(0===(d&30)&&!Ok(e)&&(b=Ik(a,d),2===b&&(f=xc(a),0!==f&&(d=f,b=Nk(a,f))),1===b))throw c=pk,Kk(a,0),Ck(a,d),Dk(a,B()),c;a.finishedWork=e;a.finishedLanes=d;switch(b){case 0:case 1:throw Error(p(345));case 2:Pk(a,tk,uk);break;case 3:Ck(a,d);if((d&130023424)===d&&(b=fk+500-B(),10<b)){if(0!==uc(a,0))break;e=a.suspendedLanes;if((e&d)!==d){R();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=Ff(Pk.bind(null,a,tk,uk),b);break}Pk(a,tk,uk);break;case 4:Ck(a,d);if((d&4194240)===\nd)break;b=a.eventTimes;for(e=-1;0<d;){var g=31-oc(d);f=1<<g;g=b[g];g>e&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10<d){a.timeoutHandle=Ff(Pk.bind(null,a,tk,uk),d);break}Pk(a,tk,uk);break;case 5:Pk(a,tk,uk);break;default:throw Error(p(329));}}}Dk(a,B());return a.callbackNode===c?Gk.bind(null,a):null}\nfunction Nk(a,b){var c=sk;a.current.memoizedState.isDehydrated&&(Kk(a,b).flags|=256);a=Ik(a,b);2!==a&&(b=tk,tk=c,null!==b&&Fj(b));return a}function Fj(a){null===tk?tk=a:tk.push.apply(tk,a)}\nfunction Ok(a){for(var b=a;;){if(b.flags&16384){var c=b.updateQueue;if(null!==c&&(c=c.stores,null!==c))for(var d=0;d<c.length;d++){var e=c[d],f=e.getSnapshot;e=e.value;try{if(!He(f(),e))return!1}catch(g){return!1}}}c=b.child;if(b.subtreeFlags&16384&&null!==c)c.return=b,b=c;else{if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return!0;b=b.return}b.sibling.return=b.return;b=b.sibling}}return!0}\nfunction Ck(a,b){b&=~rk;b&=~qk;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-oc(b),d=1<<c;a[c]=-1;b&=~d}}function Ek(a){if(0!==(K&6))throw Error(p(327));Hk();var b=uc(a,0);if(0===(b&1))return Dk(a,B()),null;var c=Ik(a,b);if(0!==a.tag&&2===c){var d=xc(a);0!==d&&(b=d,c=Nk(a,d))}if(1===c)throw c=pk,Kk(a,0),Ck(a,b),Dk(a,B()),c;if(6===c)throw Error(p(345));a.finishedWork=a.current.alternate;a.finishedLanes=b;Pk(a,tk,uk);Dk(a,B());return null}\nfunction Qk(a,b){var c=K;K|=1;try{return a(b)}finally{K=c,0===K&&(Gj=B()+500,fg&&jg())}}function Rk(a){null!==wk&&0===wk.tag&&0===(K&6)&&Hk();var b=K;K|=1;var c=ok.transition,d=C;try{if(ok.transition=null,C=1,a)return a()}finally{C=d,ok.transition=c,K=b,0===(K&6)&&jg()}}function Hj(){fj=ej.current;E(ej)}\nfunction Kk(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Gf(c));if(null!==Y)for(c=Y.return;null!==c;){var d=c;wg(d);switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&$f();break;case 3:zh();E(Wf);E(H);Eh();break;case 5:Bh(d);break;case 4:zh();break;case 13:E(L);break;case 19:E(L);break;case 10:ah(d.type._context);break;case 22:case 23:Hj()}c=c.return}Q=a;Y=a=Pg(a.current,null);Z=fj=b;T=0;pk=null;rk=qk=rh=0;tk=sk=null;if(null!==fh){for(b=\n0;b<fh.length;b++)if(c=fh[b],d=c.interleaved,null!==d){c.interleaved=null;var e=d.next,f=c.pending;if(null!==f){var g=f.next;f.next=e;d.next=g}c.pending=d}fh=null}return a}\nfunction Mk(a,b){do{var c=Y;try{$g();Fh.current=Rh;if(Ih){for(var d=M.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}Ih=!1}Hh=0;O=N=M=null;Jh=!1;Kh=0;nk.current=null;if(null===c||null===c.return){T=1;pk=b;Y=null;break}a:{var f=a,g=c.return,h=c,k=b;b=Z;h.flags|=32768;if(null!==k&&\"object\"===typeof k&&\"function\"===typeof k.then){var l=k,m=h,q=m.tag;if(0===(m.mode&1)&&(0===q||11===q||15===q)){var r=m.alternate;r?(m.updateQueue=r.updateQueue,m.memoizedState=r.memoizedState,\nm.lanes=r.lanes):(m.updateQueue=null,m.memoizedState=null)}var y=Ui(g);if(null!==y){y.flags&=-257;Vi(y,g,h,f,b);y.mode&1&&Si(f,l,b);b=y;k=l;var n=b.updateQueue;if(null===n){var t=new Set;t.add(k);b.updateQueue=t}else n.add(k);break a}else{if(0===(b&1)){Si(f,l,b);tj();break a}k=Error(p(426))}}else if(I&&h.mode&1){var J=Ui(g);if(null!==J){0===(J.flags&65536)&&(J.flags|=256);Vi(J,g,h,f,b);Jg(Ji(k,h));break a}}f=k=Ji(k,h);4!==T&&(T=2);null===sk?sk=[f]:sk.push(f);f=g;do{switch(f.tag){case 3:f.flags|=65536;\nb&=-b;f.lanes|=b;var x=Ni(f,k,b);ph(f,x);break a;case 1:h=k;var w=f.type,u=f.stateNode;if(0===(f.flags&128)&&(\"function\"===typeof w.getDerivedStateFromError||null!==u&&\"function\"===typeof u.componentDidCatch&&(null===Ri||!Ri.has(u)))){f.flags|=65536;b&=-b;f.lanes|=b;var F=Qi(f,h,b);ph(f,F);break a}}f=f.return}while(null!==f)}Sk(c)}catch(na){b=na;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}function Jk(){var a=mk.current;mk.current=Rh;return null===a?Rh:a}\nfunction tj(){if(0===T||3===T||2===T)T=4;null===Q||0===(rh&268435455)&&0===(qk&268435455)||Ck(Q,Z)}function Ik(a,b){var c=K;K|=2;var d=Jk();if(Q!==a||Z!==b)uk=null,Kk(a,b);do try{Tk();break}catch(e){Mk(a,e)}while(1);$g();K=c;mk.current=d;if(null!==Y)throw Error(p(261));Q=null;Z=0;return T}function Tk(){for(;null!==Y;)Uk(Y)}function Lk(){for(;null!==Y&&!cc();)Uk(Y)}function Uk(a){var b=Vk(a.alternate,a,fj);a.memoizedProps=a.pendingProps;null===b?Sk(a):Y=b;nk.current=null}\nfunction Sk(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&32768)){if(c=Ej(c,b,fj),null!==c){Y=c;return}}else{c=Ij(c,b);if(null!==c){c.flags&=32767;Y=c;return}if(null!==a)a.flags|=32768,a.subtreeFlags=0,a.deletions=null;else{T=6;Y=null;return}}b=b.sibling;if(null!==b){Y=b;return}Y=b=a}while(null!==b);0===T&&(T=5)}function Pk(a,b,c){var d=C,e=ok.transition;try{ok.transition=null,C=1,Wk(a,b,c,d)}finally{ok.transition=e,C=d}return null}\nfunction Wk(a,b,c,d){do Hk();while(null!==wk);if(0!==(K&6))throw Error(p(327));c=a.finishedWork;var e=a.finishedLanes;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(p(177));a.callbackNode=null;a.callbackPriority=0;var f=c.lanes|c.childLanes;Bc(a,f);a===Q&&(Y=Q=null,Z=0);0===(c.subtreeFlags&2064)&&0===(c.flags&2064)||vk||(vk=!0,Fk(hc,function(){Hk();return null}));f=0!==(c.flags&15990);if(0!==(c.subtreeFlags&15990)||f){f=ok.transition;ok.transition=null;\nvar g=C;C=1;var h=K;K|=4;nk.current=null;Oj(a,c);dk(c,a);Oe(Df);dd=!!Cf;Df=Cf=null;a.current=c;hk(c,a,e);dc();K=h;C=g;ok.transition=f}else a.current=c;vk&&(vk=!1,wk=a,xk=e);f=a.pendingLanes;0===f&&(Ri=null);mc(c.stateNode,d);Dk(a,B());if(null!==b)for(d=a.onRecoverableError,c=0;c<b.length;c++)e=b[c],d(e.value,{componentStack:e.stack,digest:e.digest});if(Oi)throw Oi=!1,a=Pi,Pi=null,a;0!==(xk&1)&&0!==a.tag&&Hk();f=a.pendingLanes;0!==(f&1)?a===zk?yk++:(yk=0,zk=a):yk=0;jg();return null}\nfunction Hk(){if(null!==wk){var a=Dc(xk),b=ok.transition,c=C;try{ok.transition=null;C=16>a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;k<h.length;k++){var l=h[k];for(V=l;null!==V;){var m=V;switch(m.tag){case 0:case 11:case 15:Pj(8,m,f)}var q=m.child;if(null!==q)q.return=m,V=q;else for(;null!==V;){m=V;var r=m.sibling,y=m.return;Sj(m);if(m===\nl){V=null;break}if(null!==r){r.return=y;V=r;break}V=y}}}var n=f.alternate;if(null!==n){var t=n.child;if(null!==t){n.child=null;do{var J=t.sibling;t.sibling=null;t=J}while(null!==t)}}V=f}}if(0!==(f.subtreeFlags&2064)&&null!==g)g.return=f,V=g;else b:for(;null!==V;){f=V;if(0!==(f.flags&2048))switch(f.tag){case 0:case 11:case 15:Pj(9,f,f.return)}var x=f.sibling;if(null!==x){x.return=f.return;V=x;break b}V=f.return}}var w=a.current;for(V=w;null!==V;){g=V;var u=g.child;if(0!==(g.subtreeFlags&2064)&&null!==\nu)u.return=g,V=u;else b:for(g=w;null!==V;){h=V;if(0!==(h.flags&2048))try{switch(h.tag){case 0:case 11:case 15:Qj(9,h)}}catch(na){W(h,h.return,na)}if(h===g){V=null;break b}var F=h.sibling;if(null!==F){F.return=h.return;V=F;break b}V=h.return}}K=e;jg();if(lc&&\"function\"===typeof lc.onPostCommitFiberRoot)try{lc.onPostCommitFiberRoot(kc,a)}catch(na){}d=!0}return d}finally{C=c,ok.transition=b}}return!1}function Xk(a,b,c){b=Ji(c,b);b=Ni(a,b,1);a=nh(a,b,1);b=R();null!==a&&(Ac(a,1,b),Dk(a,b))}\nfunction W(a,b,c){if(3===a.tag)Xk(a,a,c);else for(;null!==b;){if(3===b.tag){Xk(b,a,c);break}else if(1===b.tag){var d=b.stateNode;if(\"function\"===typeof b.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Ri||!Ri.has(d))){a=Ji(c,a);a=Qi(b,a,1);b=nh(b,a,1);a=R();null!==b&&(Ac(b,1,a),Dk(b,a));break}}b=b.return}}\nfunction Ti(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=R();a.pingedLanes|=a.suspendedLanes&c;Q===a&&(Z&c)===c&&(4===T||3===T&&(Z&130023424)===Z&&500>B()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:wa,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nfunction dl(a){if(!a)return Vf;a=a._reactInternals;a:{if(Vb(a)!==a||1!==a.tag)throw Error(p(170));var b=a;do{switch(b.tag){case 3:b=b.stateNode.context;break a;case 1:if(Zf(b.type)){b=b.stateNode.__reactInternalMemoizedMergedChildContext;break a}}b=b.return}while(null!==b);throw Error(p(171));}if(1===a.tag){var c=a.type;if(Zf(c))return bg(a,c,b)}return b}\nfunction el(a,b,c,d,e,f,g,h,k){a=bl(c,d,!0,a,e,f,g,h,k);a.context=dl(null);c=a.current;d=R();e=yi(c);f=mh(d,e);f.callback=void 0!==b&&null!==b?b:null;nh(c,f,e);a.current.lanes=e;Ac(a,e,d);Dk(a,d);return a}function fl(a,b,c,d){var e=b.current,f=R(),g=yi(e);c=dl(c);null===b.context?b.context=c:b.pendingContext=c;b=mh(f,g);b.payload={element:a};d=void 0===d?null:d;null!==d&&(b.callback=d);a=nh(e,b,g);null!==a&&(gi(a,e,g,f),oh(a,e,g));return g}\nfunction gl(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function hl(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function il(a,b){hl(a,b);(a=a.alternate)&&hl(a,b)}function jl(){return null}var kl=\"function\"===typeof reportError?reportError:function(a){console.error(a)};function ll(a){this._internalRoot=a}\nml.prototype.render=ll.prototype.render=function(a){var b=this._internalRoot;if(null===b)throw Error(p(409));fl(a,b,null,null)};ml.prototype.unmount=ll.prototype.unmount=function(){var a=this._internalRoot;if(null!==a){this._internalRoot=null;var b=a.containerInfo;Rk(function(){fl(null,a,null,null)});b[uf]=null}};function ml(a){this._internalRoot=a}\nml.prototype.unstable_scheduleHydration=function(a){if(a){var b=Hc();a={blockedOn:null,target:a,priority:b};for(var c=0;c<Qc.length&&0!==b&&b<Qc[c].priority;c++);Qc.splice(c,0,a);0===c&&Vc(a)}};function nl(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType)}function ol(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}function pl(){}\nfunction ql(a,b,c,d,e){if(e){if(\"function\"===typeof d){var f=d;d=function(){var a=gl(g);f.call(a)}}var g=el(b,d,a,0,null,!1,!1,\"\",pl);a._reactRootContainer=g;a[uf]=g.current;sf(8===a.nodeType?a.parentNode:a);Rk();return g}for(;e=a.lastChild;)a.removeChild(e);if(\"function\"===typeof d){var h=d;d=function(){var a=gl(k);h.call(a)}}var k=bl(a,0,!1,null,null,!1,!1,\"\",pl);a._reactRootContainer=k;a[uf]=k.current;sf(8===a.nodeType?a.parentNode:a);Rk(function(){fl(b,k,c,d)});return k}\nfunction rl(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f;if(\"function\"===typeof e){var h=e;e=function(){var a=gl(g);h.call(a)}}fl(b,g,a,e)}else g=ql(c,b,a,e,d);return gl(g)}Ec=function(a){switch(a.tag){case 3:var b=a.stateNode;if(b.current.memoizedState.isDehydrated){var c=tc(b.pendingLanes);0!==c&&(Cc(b,c|1),Dk(b,B()),0===(K&6)&&(Gj=B()+500,jg()))}break;case 13:Rk(function(){var b=ih(a,1);if(null!==b){var c=R();gi(b,a,1,c)}}),il(a,1)}};\nFc=function(a){if(13===a.tag){var b=ih(a,134217728);if(null!==b){var c=R();gi(b,a,134217728,c)}il(a,134217728)}};Gc=function(a){if(13===a.tag){var b=yi(a),c=ih(a,b);if(null!==c){var d=R();gi(c,a,b,d)}il(a,b)}};Hc=function(){return C};Ic=function(a,b){var c=C;try{return C=a,b()}finally{C=c}};\nyb=function(a,b,c){switch(b){case \"input\":bb(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Db(d);if(!e)throw Error(p(90));Wa(d);bb(d,e)}}}break;case \"textarea\":ib(a,c);break;case \"select\":b=c.value,null!=b&&fb(a,!!c.multiple,b,!1)}};Gb=Qk;Hb=Rk;\nvar sl={usingClientEntryPoint:!1,Events:[Cb,ue,Db,Eb,Fb,Qk]},tl={findFiberByHostInstance:Wc,bundleType:0,version:\"18.3.1\",rendererPackageName:\"react-dom\"};\nvar ul={bundleType:tl.bundleType,version:tl.version,rendererPackageName:tl.rendererPackageName,rendererConfig:tl.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ua.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=Zb(a);return null===a?null:a.stateNode},findFiberByHostInstance:tl.findFiberByHostInstance||\njl,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:\"18.3.1-next-f1338f8080-20240426\"};if(\"undefined\"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var vl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!vl.isDisabled&&vl.supportsFiber)try{kc=vl.inject(ul),lc=vl}catch(a){}}exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=sl;\nexports.createPortal=function(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!nl(b))throw Error(p(200));return cl(a,b,null,c)};exports.createRoot=function(a,b){if(!nl(a))throw Error(p(299));var c=!1,d=\"\",e=kl;null!==b&&void 0!==b&&(!0===b.unstable_strictMode&&(c=!0),void 0!==b.identifierPrefix&&(d=b.identifierPrefix),void 0!==b.onRecoverableError&&(e=b.onRecoverableError));b=bl(a,1,!1,null,null,c,!1,d,e);a[uf]=b.current;sf(8===a.nodeType?a.parentNode:a);return new ll(b)};\nexports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if(\"function\"===typeof a.render)throw Error(p(188));a=Object.keys(a).join(\",\");throw Error(p(268,a));}a=Zb(b);a=null===a?null:a.stateNode;return a};exports.flushSync=function(a){return Rk(a)};exports.hydrate=function(a,b,c){if(!ol(b))throw Error(p(200));return rl(null,a,b,!0,c)};\nexports.hydrateRoot=function(a,b,c){if(!nl(a))throw Error(p(405));var d=null!=c&&c.hydratedSources||null,e=!1,f=\"\",g=kl;null!==c&&void 0!==c&&(!0===c.unstable_strictMode&&(e=!0),void 0!==c.identifierPrefix&&(f=c.identifierPrefix),void 0!==c.onRecoverableError&&(g=c.onRecoverableError));b=el(b,null,a,1,null!=c?c:null,e,!1,f,g);a[uf]=b.current;sf(a);if(d)for(a=0;a<d.length;a++)c=d[a],e=c._getVersion,e=e(c._source),null==b.mutableSourceEagerHydrationData?b.mutableSourceEagerHydrationData=[c,e]:b.mutableSourceEagerHydrationData.push(c,\ne);return new ml(b)};exports.render=function(a,b,c){if(!ol(b))throw Error(p(200));return rl(null,a,b,!1,c)};exports.unmountComponentAtNode=function(a){if(!ol(a))throw Error(p(40));return a._reactRootContainer?(Rk(function(){rl(null,null,a,!1,function(){a._reactRootContainer=null;a[uf]=null})}),!0):!1};exports.unstable_batchedUpdates=Qk;\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!ol(c))throw Error(p(200));if(null==a||void 0===a._reactInternals)throw Error(p(38));return rl(a,b,c,!1,d)};exports.version=\"18.3.1-next-f1338f8080-20240426\";\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","// src/subscribable.ts\nvar Subscribable = class {\n constructor() {\n this.listeners = /* @__PURE__ */ new Set();\n this.subscribe = this.subscribe.bind(this);\n }\n subscribe(listener) {\n this.listeners.add(listener);\n this.onSubscribe();\n return () => {\n this.listeners.delete(listener);\n this.onUnsubscribe();\n };\n }\n hasListeners() {\n return this.listeners.size > 0;\n }\n onSubscribe() {\n }\n onUnsubscribe() {\n }\n};\nexport {\n Subscribable\n};\n//# sourceMappingURL=subscribable.js.map","// src/timeoutManager.ts\nvar defaultTimeoutProvider = {\n // We need the wrapper function syntax below instead of direct references to\n // global setTimeout etc.\n //\n // BAD: `setTimeout: setTimeout`\n // GOOD: `setTimeout: (cb, delay) => setTimeout(cb, delay)`\n //\n // If we use direct references here, then anything that wants to spy on or\n // replace the global setTimeout (like tests) won't work since we'll already\n // have a hard reference to the original implementation at the time when this\n // file was imported.\n setTimeout: (callback, delay) => setTimeout(callback, delay),\n clearTimeout: (timeoutId) => clearTimeout(timeoutId),\n setInterval: (callback, delay) => setInterval(callback, delay),\n clearInterval: (intervalId) => clearInterval(intervalId)\n};\nvar TimeoutManager = class {\n // We cannot have TimeoutManager<T> as we must instantiate it with a concrete\n // type at app boot; and if we leave that type, then any new timer provider\n // would need to support ReturnType<typeof setTimeout>, which is infeasible.\n //\n // We settle for type safety for the TimeoutProvider type, and accept that\n // this class is unsafe internally to allow for extension.\n #provider = defaultTimeoutProvider;\n #providerCalled = false;\n setTimeoutProvider(provider) {\n if (process.env.NODE_ENV !== \"production\") {\n if (this.#providerCalled && provider !== this.#provider) {\n console.error(\n `[timeoutManager]: Switching provider after calls to previous provider might result in unexpected behavior.`,\n { previous: this.#provider, provider }\n );\n }\n }\n this.#provider = provider;\n if (process.env.NODE_ENV !== \"production\") {\n this.#providerCalled = false;\n }\n }\n setTimeout(callback, delay) {\n if (process.env.NODE_ENV !== \"production\") {\n this.#providerCalled = true;\n }\n return this.#provider.setTimeout(callback, delay);\n }\n clearTimeout(timeoutId) {\n this.#provider.clearTimeout(timeoutId);\n }\n setInterval(callback, delay) {\n if (process.env.NODE_ENV !== \"production\") {\n this.#providerCalled = true;\n }\n return this.#provider.setInterval(callback, delay);\n }\n clearInterval(intervalId) {\n this.#provider.clearInterval(intervalId);\n }\n};\nvar timeoutManager = new TimeoutManager();\nfunction systemSetTimeoutZero(callback) {\n setTimeout(callback, 0);\n}\nexport {\n TimeoutManager,\n defaultTimeoutProvider,\n systemSetTimeoutZero,\n timeoutManager\n};\n//# sourceMappingURL=timeoutManager.js.map","// src/utils.ts\nimport { timeoutManager } from \"./timeoutManager.js\";\nvar isServer = typeof window === \"undefined\" || \"Deno\" in globalThis;\nfunction noop() {\n}\nfunction functionalUpdate(updater, input) {\n return typeof updater === \"function\" ? updater(input) : updater;\n}\nfunction isValidTimeout(value) {\n return typeof value === \"number\" && value >= 0 && value !== Infinity;\n}\nfunction timeUntilStale(updatedAt, staleTime) {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\nfunction resolveStaleTime(staleTime, query) {\n return typeof staleTime === \"function\" ? staleTime(query) : staleTime;\n}\nfunction resolveEnabled(enabled, query) {\n return typeof enabled === \"function\" ? enabled(query) : enabled;\n}\nfunction matchQuery(filters, query) {\n const {\n type = \"all\",\n exact,\n fetchStatus,\n predicate,\n queryKey,\n stale\n } = filters;\n if (queryKey) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false;\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false;\n }\n }\n if (type !== \"all\") {\n const isActive = query.isActive();\n if (type === \"active\" && !isActive) {\n return false;\n }\n if (type === \"inactive\" && isActive) {\n return false;\n }\n }\n if (typeof stale === \"boolean\" && query.isStale() !== stale) {\n return false;\n }\n if (fetchStatus && fetchStatus !== query.state.fetchStatus) {\n return false;\n }\n if (predicate && !predicate(query)) {\n return false;\n }\n return true;\n}\nfunction matchMutation(filters, mutation) {\n const { exact, status, predicate, mutationKey } = filters;\n if (mutationKey) {\n if (!mutation.options.mutationKey) {\n return false;\n }\n if (exact) {\n if (hashKey(mutation.options.mutationKey) !== hashKey(mutationKey)) {\n return false;\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false;\n }\n }\n if (status && mutation.state.status !== status) {\n return false;\n }\n if (predicate && !predicate(mutation)) {\n return false;\n }\n return true;\n}\nfunction hashQueryKeyByOptions(queryKey, options) {\n const hashFn = options?.queryKeyHashFn || hashKey;\n return hashFn(queryKey);\n}\nfunction hashKey(queryKey) {\n return JSON.stringify(\n queryKey,\n (_, val) => isPlainObject(val) ? Object.keys(val).sort().reduce((result, key) => {\n result[key] = val[key];\n return result;\n }, {}) : val\n );\n}\nfunction partialMatchKey(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (a && b && typeof a === \"object\" && typeof b === \"object\") {\n return Object.keys(b).every((key) => partialMatchKey(a[key], b[key]));\n }\n return false;\n}\nvar hasOwn = Object.prototype.hasOwnProperty;\nfunction replaceEqualDeep(a, b, depth = 0) {\n if (a === b) {\n return a;\n }\n if (depth > 500) return b;\n const array = isPlainArray(a) && isPlainArray(b);\n if (!array && !(isPlainObject(a) && isPlainObject(b))) return b;\n const aItems = array ? a : Object.keys(a);\n const aSize = aItems.length;\n const bItems = array ? b : Object.keys(b);\n const bSize = bItems.length;\n const copy = array ? new Array(bSize) : {};\n let equalItems = 0;\n for (let i = 0; i < bSize; i++) {\n const key = array ? i : bItems[i];\n const aItem = a[key];\n const bItem = b[key];\n if (aItem === bItem) {\n copy[key] = aItem;\n if (array ? i < aSize : hasOwn.call(a, key)) equalItems++;\n continue;\n }\n if (aItem === null || bItem === null || typeof aItem !== \"object\" || typeof bItem !== \"object\") {\n copy[key] = bItem;\n continue;\n }\n const v = replaceEqualDeep(aItem, bItem, depth + 1);\n copy[key] = v;\n if (v === aItem) equalItems++;\n }\n return aSize === bSize && equalItems === aSize ? a : copy;\n}\nfunction shallowEqualObjects(a, b) {\n if (!b || Object.keys(a).length !== Object.keys(b).length) {\n return false;\n }\n for (const key in a) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n return true;\n}\nfunction isPlainArray(value) {\n return Array.isArray(value) && value.length === Object.keys(value).length;\n}\nfunction isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n }\n const ctor = o.constructor;\n if (ctor === void 0) {\n return true;\n }\n const prot = ctor.prototype;\n if (!hasObjectPrototype(prot)) {\n return false;\n }\n if (!prot.hasOwnProperty(\"isPrototypeOf\")) {\n return false;\n }\n if (Object.getPrototypeOf(o) !== Object.prototype) {\n return false;\n }\n return true;\n}\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === \"[object Object]\";\n}\nfunction sleep(timeout) {\n return new Promise((resolve) => {\n timeoutManager.setTimeout(resolve, timeout);\n });\n}\nfunction replaceData(prevData, data, options) {\n if (typeof options.structuralSharing === \"function\") {\n return options.structuralSharing(prevData, data);\n } else if (options.structuralSharing !== false) {\n if (process.env.NODE_ENV !== \"production\") {\n try {\n return replaceEqualDeep(prevData, data);\n } catch (error) {\n console.error(\n `Structural sharing requires data to be JSON serializable. To fix this, turn off structuralSharing or return JSON-serializable data from your queryFn. [${options.queryHash}]: ${error}`\n );\n throw error;\n }\n }\n return replaceEqualDeep(prevData, data);\n }\n return data;\n}\nfunction keepPreviousData(previousData) {\n return previousData;\n}\nfunction addToEnd(items, item, max = 0) {\n const newItems = [...items, item];\n return max && newItems.length > max ? newItems.slice(1) : newItems;\n}\nfunction addToStart(items, item, max = 0) {\n const newItems = [item, ...items];\n return max && newItems.length > max ? newItems.slice(0, -1) : newItems;\n}\nvar skipToken = Symbol();\nfunction ensureQueryFn(options, fetchOptions) {\n if (process.env.NODE_ENV !== \"production\") {\n if (options.queryFn === skipToken) {\n console.error(\n `Attempted to invoke queryFn when set to skipToken. This is likely a configuration error. Query hash: '${options.queryHash}'`\n );\n }\n }\n if (!options.queryFn && fetchOptions?.initialPromise) {\n return () => fetchOptions.initialPromise;\n }\n if (!options.queryFn || options.queryFn === skipToken) {\n return () => Promise.reject(new Error(`Missing queryFn: '${options.queryHash}'`));\n }\n return options.queryFn;\n}\nfunction shouldThrowError(throwOnError, params) {\n if (typeof throwOnError === \"function\") {\n return throwOnError(...params);\n }\n return !!throwOnError;\n}\nfunction addConsumeAwareSignal(object, getSignal, onCancelled) {\n let consumed = false;\n let signal;\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n signal ??= getSignal();\n if (consumed) {\n return signal;\n }\n consumed = true;\n if (signal.aborted) {\n onCancelled();\n } else {\n signal.addEventListener(\"abort\", onCancelled, { once: true });\n }\n return signal;\n }\n });\n return object;\n}\nexport {\n addConsumeAwareSignal,\n addToEnd,\n addToStart,\n ensureQueryFn,\n functionalUpdate,\n hashKey,\n hashQueryKeyByOptions,\n isPlainArray,\n isPlainObject,\n isServer,\n isValidTimeout,\n keepPreviousData,\n matchMutation,\n matchQuery,\n noop,\n partialMatchKey,\n replaceData,\n replaceEqualDeep,\n resolveEnabled,\n resolveStaleTime,\n shallowEqualObjects,\n shouldThrowError,\n skipToken,\n sleep,\n timeUntilStale\n};\n//# sourceMappingURL=utils.js.map","// src/focusManager.ts\nimport { Subscribable } from \"./subscribable.js\";\nimport { isServer } from \"./utils.js\";\nvar FocusManager = class extends Subscribable {\n #focused;\n #cleanup;\n #setup;\n constructor() {\n super();\n this.#setup = (onFocus) => {\n if (!isServer && window.addEventListener) {\n const listener = () => onFocus();\n window.addEventListener(\"visibilitychange\", listener, false);\n return () => {\n window.removeEventListener(\"visibilitychange\", listener);\n };\n }\n return;\n };\n }\n onSubscribe() {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.();\n this.#cleanup = void 0;\n }\n }\n setEventListener(setup) {\n this.#setup = setup;\n this.#cleanup?.();\n this.#cleanup = setup((focused) => {\n if (typeof focused === \"boolean\") {\n this.setFocused(focused);\n } else {\n this.onFocus();\n }\n });\n }\n setFocused(focused) {\n const changed = this.#focused !== focused;\n if (changed) {\n this.#focused = focused;\n this.onFocus();\n }\n }\n onFocus() {\n const isFocused = this.isFocused();\n this.listeners.forEach((listener) => {\n listener(isFocused);\n });\n }\n isFocused() {\n if (typeof this.#focused === \"boolean\") {\n return this.#focused;\n }\n return globalThis.document?.visibilityState !== \"hidden\";\n }\n};\nvar focusManager = new FocusManager();\nexport {\n FocusManager,\n focusManager\n};\n//# sourceMappingURL=focusManager.js.map","// src/thenable.ts\nimport { noop } from \"./utils.js\";\nfunction pendingThenable() {\n let resolve;\n let reject;\n const thenable = new Promise((_resolve, _reject) => {\n resolve = _resolve;\n reject = _reject;\n });\n thenable.status = \"pending\";\n thenable.catch(() => {\n });\n function finalize(data) {\n Object.assign(thenable, data);\n delete thenable.resolve;\n delete thenable.reject;\n }\n thenable.resolve = (value) => {\n finalize({\n status: \"fulfilled\",\n value\n });\n resolve(value);\n };\n thenable.reject = (reason) => {\n finalize({\n status: \"rejected\",\n reason\n });\n reject(reason);\n };\n return thenable;\n}\nfunction tryResolveSync(promise) {\n let data;\n promise.then((result) => {\n data = result;\n return result;\n }, noop)?.catch(noop);\n if (data !== void 0) {\n return { data };\n }\n return void 0;\n}\nexport {\n pendingThenable,\n tryResolveSync\n};\n//# sourceMappingURL=thenable.js.map","// src/notifyManager.ts\nimport { systemSetTimeoutZero } from \"./timeoutManager.js\";\nvar defaultScheduler = systemSetTimeoutZero;\nfunction createNotifyManager() {\n let queue = [];\n let transactions = 0;\n let notifyFn = (callback) => {\n callback();\n };\n let batchNotifyFn = (callback) => {\n callback();\n };\n let scheduleFn = defaultScheduler;\n const schedule = (callback) => {\n if (transactions) {\n queue.push(callback);\n } else {\n scheduleFn(() => {\n notifyFn(callback);\n });\n }\n };\n const flush = () => {\n const originalQueue = queue;\n queue = [];\n if (originalQueue.length) {\n scheduleFn(() => {\n batchNotifyFn(() => {\n originalQueue.forEach((callback) => {\n notifyFn(callback);\n });\n });\n });\n }\n };\n return {\n batch: (callback) => {\n let result;\n transactions++;\n try {\n result = callback();\n } finally {\n transactions--;\n if (!transactions) {\n flush();\n }\n }\n return result;\n },\n /**\n * All calls to the wrapped function will be batched.\n */\n batchCalls: (callback) => {\n return (...args) => {\n schedule(() => {\n callback(...args);\n });\n };\n },\n schedule,\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n setNotifyFunction: (fn) => {\n notifyFn = fn;\n },\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n setBatchNotifyFunction: (fn) => {\n batchNotifyFn = fn;\n },\n setScheduler: (fn) => {\n scheduleFn = fn;\n }\n };\n}\nvar notifyManager = createNotifyManager();\nexport {\n createNotifyManager,\n defaultScheduler,\n notifyManager\n};\n//# sourceMappingURL=notifyManager.js.map","// src/onlineManager.ts\nimport { Subscribable } from \"./subscribable.js\";\nimport { isServer } from \"./utils.js\";\nvar OnlineManager = class extends Subscribable {\n #online = true;\n #cleanup;\n #setup;\n constructor() {\n super();\n this.#setup = (onOnline) => {\n if (!isServer && window.addEventListener) {\n const onlineListener = () => onOnline(true);\n const offlineListener = () => onOnline(false);\n window.addEventListener(\"online\", onlineListener, false);\n window.addEventListener(\"offline\", offlineListener, false);\n return () => {\n window.removeEventListener(\"online\", onlineListener);\n window.removeEventListener(\"offline\", offlineListener);\n };\n }\n return;\n };\n }\n onSubscribe() {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.();\n this.#cleanup = void 0;\n }\n }\n setEventListener(setup) {\n this.#setup = setup;\n this.#cleanup?.();\n this.#cleanup = setup(this.setOnline.bind(this));\n }\n setOnline(online) {\n const changed = this.#online !== online;\n if (changed) {\n this.#online = online;\n this.listeners.forEach((listener) => {\n listener(online);\n });\n }\n }\n isOnline() {\n return this.#online;\n }\n};\nvar onlineManager = new OnlineManager();\nexport {\n OnlineManager,\n onlineManager\n};\n//# sourceMappingURL=onlineManager.js.map","// src/retryer.ts\nimport { focusManager } from \"./focusManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\nimport { pendingThenable } from \"./thenable.js\";\nimport { isServer, sleep } from \"./utils.js\";\nfunction defaultRetryDelay(failureCount) {\n return Math.min(1e3 * 2 ** failureCount, 3e4);\n}\nfunction canFetch(networkMode) {\n return (networkMode ?? \"online\") === \"online\" ? onlineManager.isOnline() : true;\n}\nvar CancelledError = class extends Error {\n constructor(options) {\n super(\"CancelledError\");\n this.revert = options?.revert;\n this.silent = options?.silent;\n }\n};\nfunction isCancelledError(value) {\n return value instanceof CancelledError;\n}\nfunction createRetryer(config) {\n let isRetryCancelled = false;\n let failureCount = 0;\n let continueFn;\n const thenable = pendingThenable();\n const isResolved = () => thenable.status !== \"pending\";\n const cancel = (cancelOptions) => {\n if (!isResolved()) {\n const error = new CancelledError(cancelOptions);\n reject(error);\n config.onCancel?.(error);\n }\n };\n const cancelRetry = () => {\n isRetryCancelled = true;\n };\n const continueRetry = () => {\n isRetryCancelled = false;\n };\n const canContinue = () => focusManager.isFocused() && (config.networkMode === \"always\" || onlineManager.isOnline()) && config.canRun();\n const canStart = () => canFetch(config.networkMode) && config.canRun();\n const resolve = (value) => {\n if (!isResolved()) {\n continueFn?.();\n thenable.resolve(value);\n }\n };\n const reject = (value) => {\n if (!isResolved()) {\n continueFn?.();\n thenable.reject(value);\n }\n };\n const pause = () => {\n return new Promise((continueResolve) => {\n continueFn = (value) => {\n if (isResolved() || canContinue()) {\n continueResolve(value);\n }\n };\n config.onPause?.();\n }).then(() => {\n continueFn = void 0;\n if (!isResolved()) {\n config.onContinue?.();\n }\n });\n };\n const run = () => {\n if (isResolved()) {\n return;\n }\n let promiseOrValue;\n const initialPromise = failureCount === 0 ? config.initialPromise : void 0;\n try {\n promiseOrValue = initialPromise ?? config.fn();\n } catch (error) {\n promiseOrValue = Promise.reject(error);\n }\n Promise.resolve(promiseOrValue).then(resolve).catch((error) => {\n if (isResolved()) {\n return;\n }\n const retry = config.retry ?? (isServer ? 0 : 3);\n const retryDelay = config.retryDelay ?? defaultRetryDelay;\n const delay = typeof retryDelay === \"function\" ? retryDelay(failureCount, error) : retryDelay;\n const shouldRetry = retry === true || typeof retry === \"number\" && failureCount < retry || typeof retry === \"function\" && retry(failureCount, error);\n if (isRetryCancelled || !shouldRetry) {\n reject(error);\n return;\n }\n failureCount++;\n config.onFail?.(failureCount, error);\n sleep(delay).then(() => {\n return canContinue() ? void 0 : pause();\n }).then(() => {\n if (isRetryCancelled) {\n reject(error);\n } else {\n run();\n }\n });\n });\n };\n return {\n promise: thenable,\n status: () => thenable.status,\n cancel,\n continue: () => {\n continueFn?.();\n return thenable;\n },\n cancelRetry,\n continueRetry,\n canStart,\n start: () => {\n if (canStart()) {\n run();\n } else {\n pause().then(run);\n }\n return thenable;\n }\n };\n}\nexport {\n CancelledError,\n canFetch,\n createRetryer,\n isCancelledError\n};\n//# sourceMappingURL=retryer.js.map","// src/removable.ts\nimport { timeoutManager } from \"./timeoutManager.js\";\nimport { isServer, isValidTimeout } from \"./utils.js\";\nvar Removable = class {\n #gcTimeout;\n destroy() {\n this.clearGcTimeout();\n }\n scheduleGc() {\n this.clearGcTimeout();\n if (isValidTimeout(this.gcTime)) {\n this.#gcTimeout = timeoutManager.setTimeout(() => {\n this.optionalRemove();\n }, this.gcTime);\n }\n }\n updateGcTime(newGcTime) {\n this.gcTime = Math.max(\n this.gcTime || 0,\n newGcTime ?? (isServer ? Infinity : 5 * 60 * 1e3)\n );\n }\n clearGcTimeout() {\n if (this.#gcTimeout) {\n timeoutManager.clearTimeout(this.#gcTimeout);\n this.#gcTimeout = void 0;\n }\n }\n};\nexport {\n Removable\n};\n//# sourceMappingURL=removable.js.map","// src/query.ts\nimport {\n ensureQueryFn,\n noop,\n replaceData,\n resolveEnabled,\n resolveStaleTime,\n skipToken,\n timeUntilStale\n} from \"./utils.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { CancelledError, canFetch, createRetryer } from \"./retryer.js\";\nimport { Removable } from \"./removable.js\";\nvar Query = class extends Removable {\n #initialState;\n #revertState;\n #cache;\n #client;\n #retryer;\n #defaultOptions;\n #abortSignalConsumed;\n constructor(config) {\n super();\n this.#abortSignalConsumed = false;\n this.#defaultOptions = config.defaultOptions;\n this.setOptions(config.options);\n this.observers = [];\n this.#client = config.client;\n this.#cache = this.#client.getQueryCache();\n this.queryKey = config.queryKey;\n this.queryHash = config.queryHash;\n this.#initialState = getDefaultState(this.options);\n this.state = config.state ?? this.#initialState;\n this.scheduleGc();\n }\n get meta() {\n return this.options.meta;\n }\n get promise() {\n return this.#retryer?.promise;\n }\n setOptions(options) {\n this.options = { ...this.#defaultOptions, ...options };\n this.updateGcTime(this.options.gcTime);\n if (this.state && this.state.data === void 0) {\n const defaultState = getDefaultState(this.options);\n if (defaultState.data !== void 0) {\n this.setState(\n successState(defaultState.data, defaultState.dataUpdatedAt)\n );\n this.#initialState = defaultState;\n }\n }\n }\n optionalRemove() {\n if (!this.observers.length && this.state.fetchStatus === \"idle\") {\n this.#cache.remove(this);\n }\n }\n setData(newData, options) {\n const data = replaceData(this.state.data, newData, this.options);\n this.#dispatch({\n data,\n type: \"success\",\n dataUpdatedAt: options?.updatedAt,\n manual: options?.manual\n });\n return data;\n }\n setState(state, setStateOptions) {\n this.#dispatch({ type: \"setState\", state, setStateOptions });\n }\n cancel(options) {\n const promise = this.#retryer?.promise;\n this.#retryer?.cancel(options);\n return promise ? promise.then(noop).catch(noop) : Promise.resolve();\n }\n destroy() {\n super.destroy();\n this.cancel({ silent: true });\n }\n reset() {\n this.destroy();\n this.setState(this.#initialState);\n }\n isActive() {\n return this.observers.some(\n (observer) => resolveEnabled(observer.options.enabled, this) !== false\n );\n }\n isDisabled() {\n if (this.getObserversCount() > 0) {\n return !this.isActive();\n }\n return this.options.queryFn === skipToken || this.state.dataUpdateCount + this.state.errorUpdateCount === 0;\n }\n isStatic() {\n if (this.getObserversCount() > 0) {\n return this.observers.some(\n (observer) => resolveStaleTime(observer.options.staleTime, this) === \"static\"\n );\n }\n return false;\n }\n isStale() {\n if (this.getObserversCount() > 0) {\n return this.observers.some(\n (observer) => observer.getCurrentResult().isStale\n );\n }\n return this.state.data === void 0 || this.state.isInvalidated;\n }\n isStaleByTime(staleTime = 0) {\n if (this.state.data === void 0) {\n return true;\n }\n if (staleTime === \"static\") {\n return false;\n }\n if (this.state.isInvalidated) {\n return true;\n }\n return !timeUntilStale(this.state.dataUpdatedAt, staleTime);\n }\n onFocus() {\n const observer = this.observers.find((x) => x.shouldFetchOnWindowFocus());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n onOnline() {\n const observer = this.observers.find((x) => x.shouldFetchOnReconnect());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n addObserver(observer) {\n if (!this.observers.includes(observer)) {\n this.observers.push(observer);\n this.clearGcTimeout();\n this.#cache.notify({ type: \"observerAdded\", query: this, observer });\n }\n }\n removeObserver(observer) {\n if (this.observers.includes(observer)) {\n this.observers = this.observers.filter((x) => x !== observer);\n if (!this.observers.length) {\n if (this.#retryer) {\n if (this.#abortSignalConsumed) {\n this.#retryer.cancel({ revert: true });\n } else {\n this.#retryer.cancelRetry();\n }\n }\n this.scheduleGc();\n }\n this.#cache.notify({ type: \"observerRemoved\", query: this, observer });\n }\n }\n getObserversCount() {\n return this.observers.length;\n }\n invalidate() {\n if (!this.state.isInvalidated) {\n this.#dispatch({ type: \"invalidate\" });\n }\n }\n async fetch(options, fetchOptions) {\n if (this.state.fetchStatus !== \"idle\" && // If the promise in the retryer is already rejected, we have to definitely\n // re-start the fetch; there is a chance that the query is still in a\n // pending state when that happens\n this.#retryer?.status() !== \"rejected\") {\n if (this.state.data !== void 0 && fetchOptions?.cancelRefetch) {\n this.cancel({ silent: true });\n } else if (this.#retryer) {\n this.#retryer.continueRetry();\n return this.#retryer.promise;\n }\n }\n if (options) {\n this.setOptions(options);\n }\n if (!this.options.queryFn) {\n const observer = this.observers.find((x) => x.options.queryFn);\n if (observer) {\n this.setOptions(observer.options);\n }\n }\n if (process.env.NODE_ENV !== \"production\") {\n if (!Array.isArray(this.options.queryKey)) {\n console.error(\n `As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']`\n );\n }\n }\n const abortController = new AbortController();\n const addSignalProperty = (object) => {\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n this.#abortSignalConsumed = true;\n return abortController.signal;\n }\n });\n };\n const fetchFn = () => {\n const queryFn = ensureQueryFn(this.options, fetchOptions);\n const createQueryFnContext = () => {\n const queryFnContext2 = {\n client: this.#client,\n queryKey: this.queryKey,\n meta: this.meta\n };\n addSignalProperty(queryFnContext2);\n return queryFnContext2;\n };\n const queryFnContext = createQueryFnContext();\n this.#abortSignalConsumed = false;\n if (this.options.persister) {\n return this.options.persister(\n queryFn,\n queryFnContext,\n this\n );\n }\n return queryFn(queryFnContext);\n };\n const createFetchContext = () => {\n const context2 = {\n fetchOptions,\n options: this.options,\n queryKey: this.queryKey,\n client: this.#client,\n state: this.state,\n fetchFn\n };\n addSignalProperty(context2);\n return context2;\n };\n const context = createFetchContext();\n this.options.behavior?.onFetch(context, this);\n this.#revertState = this.state;\n if (this.state.fetchStatus === \"idle\" || this.state.fetchMeta !== context.fetchOptions?.meta) {\n this.#dispatch({ type: \"fetch\", meta: context.fetchOptions?.meta });\n }\n this.#retryer = createRetryer({\n initialPromise: fetchOptions?.initialPromise,\n fn: context.fetchFn,\n onCancel: (error) => {\n if (error instanceof CancelledError && error.revert) {\n this.setState({\n ...this.#revertState,\n fetchStatus: \"idle\"\n });\n }\n abortController.abort();\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: \"failed\", failureCount, error });\n },\n onPause: () => {\n this.#dispatch({ type: \"pause\" });\n },\n onContinue: () => {\n this.#dispatch({ type: \"continue\" });\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay,\n networkMode: context.options.networkMode,\n canRun: () => true\n });\n try {\n const data = await this.#retryer.start();\n if (data === void 0) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\n `Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: ${this.queryHash}`\n );\n }\n throw new Error(`${this.queryHash} data is undefined`);\n }\n this.setData(data);\n this.#cache.config.onSuccess?.(data, this);\n this.#cache.config.onSettled?.(\n data,\n this.state.error,\n this\n );\n return data;\n } catch (error) {\n if (error instanceof CancelledError) {\n if (error.silent) {\n return this.#retryer.promise;\n } else if (error.revert) {\n if (this.state.data === void 0) {\n throw error;\n }\n return this.state.data;\n }\n }\n this.#dispatch({\n type: \"error\",\n error\n });\n this.#cache.config.onError?.(\n error,\n this\n );\n this.#cache.config.onSettled?.(\n this.state.data,\n error,\n this\n );\n throw error;\n } finally {\n this.scheduleGc();\n }\n }\n #dispatch(action) {\n const reducer = (state) => {\n switch (action.type) {\n case \"failed\":\n return {\n ...state,\n fetchFailureCount: action.failureCount,\n fetchFailureReason: action.error\n };\n case \"pause\":\n return {\n ...state,\n fetchStatus: \"paused\"\n };\n case \"continue\":\n return {\n ...state,\n fetchStatus: \"fetching\"\n };\n case \"fetch\":\n return {\n ...state,\n ...fetchState(state.data, this.options),\n fetchMeta: action.meta ?? null\n };\n case \"success\":\n const newState = {\n ...state,\n ...successState(action.data, action.dataUpdatedAt),\n dataUpdateCount: state.dataUpdateCount + 1,\n ...!action.manual && {\n fetchStatus: \"idle\",\n fetchFailureCount: 0,\n fetchFailureReason: null\n }\n };\n this.#revertState = action.manual ? newState : void 0;\n return newState;\n case \"error\":\n const error = action.error;\n return {\n ...state,\n error,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n fetchFailureReason: error,\n fetchStatus: \"idle\",\n status: \"error\",\n // flag existing data as invalidated if we get a background error\n // note that \"no data\" always means stale so we can set unconditionally here\n isInvalidated: true\n };\n case \"invalidate\":\n return {\n ...state,\n isInvalidated: true\n };\n case \"setState\":\n return {\n ...state,\n ...action.state\n };\n }\n };\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.observers.forEach((observer) => {\n observer.onQueryUpdate();\n });\n this.#cache.notify({ query: this, type: \"updated\", action });\n });\n }\n};\nfunction fetchState(data, options) {\n return {\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchStatus: canFetch(options.networkMode) ? \"fetching\" : \"paused\",\n ...data === void 0 && {\n error: null,\n status: \"pending\"\n }\n };\n}\nfunction successState(data, dataUpdatedAt) {\n return {\n data,\n dataUpdatedAt: dataUpdatedAt ?? Date.now(),\n error: null,\n isInvalidated: false,\n status: \"success\"\n };\n}\nfunction getDefaultState(options) {\n const data = typeof options.initialData === \"function\" ? options.initialData() : options.initialData;\n const hasData = data !== void 0;\n const initialDataUpdatedAt = hasData ? typeof options.initialDataUpdatedAt === \"function\" ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;\n return {\n data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt ?? Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: hasData ? \"success\" : \"pending\",\n fetchStatus: \"idle\"\n };\n}\nexport {\n Query,\n fetchState\n};\n//# sourceMappingURL=query.js.map","// src/queryObserver.ts\nimport { focusManager } from \"./focusManager.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { fetchState } from \"./query.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { pendingThenable } from \"./thenable.js\";\nimport {\n isServer,\n isValidTimeout,\n noop,\n replaceData,\n resolveEnabled,\n resolveStaleTime,\n shallowEqualObjects,\n timeUntilStale\n} from \"./utils.js\";\nimport { timeoutManager } from \"./timeoutManager.js\";\nvar QueryObserver = class extends Subscribable {\n constructor(client, options) {\n super();\n this.options = options;\n this.#client = client;\n this.#selectError = null;\n this.#currentThenable = pendingThenable();\n this.bindMethods();\n this.setOptions(options);\n }\n #client;\n #currentQuery = void 0;\n #currentQueryInitialState = void 0;\n #currentResult = void 0;\n #currentResultState;\n #currentResultOptions;\n #currentThenable;\n #selectError;\n #selectFn;\n #selectResult;\n // This property keeps track of the last query with defined data.\n // It will be used to pass the previous data and query to the placeholder function between renders.\n #lastQueryWithDefinedData;\n #staleTimeoutId;\n #refetchIntervalId;\n #currentRefetchInterval;\n #trackedProps = /* @__PURE__ */ new Set();\n bindMethods() {\n this.refetch = this.refetch.bind(this);\n }\n onSubscribe() {\n if (this.listeners.size === 1) {\n this.#currentQuery.addObserver(this);\n if (shouldFetchOnMount(this.#currentQuery, this.options)) {\n this.#executeFetch();\n } else {\n this.updateResult();\n }\n this.#updateTimers();\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.destroy();\n }\n }\n shouldFetchOnReconnect() {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnReconnect\n );\n }\n shouldFetchOnWindowFocus() {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnWindowFocus\n );\n }\n destroy() {\n this.listeners = /* @__PURE__ */ new Set();\n this.#clearStaleTimeout();\n this.#clearRefetchInterval();\n this.#currentQuery.removeObserver(this);\n }\n setOptions(options) {\n const prevOptions = this.options;\n const prevQuery = this.#currentQuery;\n this.options = this.#client.defaultQueryOptions(options);\n if (this.options.enabled !== void 0 && typeof this.options.enabled !== \"boolean\" && typeof this.options.enabled !== \"function\" && typeof resolveEnabled(this.options.enabled, this.#currentQuery) !== \"boolean\") {\n throw new Error(\n \"Expected enabled to be a boolean or a callback that returns a boolean\"\n );\n }\n this.#updateQuery();\n this.#currentQuery.setOptions(this.options);\n if (prevOptions._defaulted && !shallowEqualObjects(this.options, prevOptions)) {\n this.#client.getQueryCache().notify({\n type: \"observerOptionsUpdated\",\n query: this.#currentQuery,\n observer: this\n });\n }\n const mounted = this.hasListeners();\n if (mounted && shouldFetchOptionally(\n this.#currentQuery,\n prevQuery,\n this.options,\n prevOptions\n )) {\n this.#executeFetch();\n }\n this.updateResult();\n if (mounted && (this.#currentQuery !== prevQuery || resolveEnabled(this.options.enabled, this.#currentQuery) !== resolveEnabled(prevOptions.enabled, this.#currentQuery) || resolveStaleTime(this.options.staleTime, this.#currentQuery) !== resolveStaleTime(prevOptions.staleTime, this.#currentQuery))) {\n this.#updateStaleTimeout();\n }\n const nextRefetchInterval = this.#computeRefetchInterval();\n if (mounted && (this.#currentQuery !== prevQuery || resolveEnabled(this.options.enabled, this.#currentQuery) !== resolveEnabled(prevOptions.enabled, this.#currentQuery) || nextRefetchInterval !== this.#currentRefetchInterval)) {\n this.#updateRefetchInterval(nextRefetchInterval);\n }\n }\n getOptimisticResult(options) {\n const query = this.#client.getQueryCache().build(this.#client, options);\n const result = this.createResult(query, options);\n if (shouldAssignObserverCurrentProperties(this, result)) {\n this.#currentResult = result;\n this.#currentResultOptions = this.options;\n this.#currentResultState = this.#currentQuery.state;\n }\n return result;\n }\n getCurrentResult() {\n return this.#currentResult;\n }\n trackResult(result, onPropTracked) {\n return new Proxy(result, {\n get: (target, key) => {\n this.trackProp(key);\n onPropTracked?.(key);\n if (key === \"promise\") {\n this.trackProp(\"data\");\n if (!this.options.experimental_prefetchInRender && this.#currentThenable.status === \"pending\") {\n this.#currentThenable.reject(\n new Error(\n \"experimental_prefetchInRender feature flag is not enabled\"\n )\n );\n }\n }\n return Reflect.get(target, key);\n }\n });\n }\n trackProp(key) {\n this.#trackedProps.add(key);\n }\n getCurrentQuery() {\n return this.#currentQuery;\n }\n refetch({ ...options } = {}) {\n return this.fetch({\n ...options\n });\n }\n fetchOptimistic(options) {\n const defaultedOptions = this.#client.defaultQueryOptions(options);\n const query = this.#client.getQueryCache().build(this.#client, defaultedOptions);\n return query.fetch().then(() => this.createResult(query, defaultedOptions));\n }\n fetch(fetchOptions) {\n return this.#executeFetch({\n ...fetchOptions,\n cancelRefetch: fetchOptions.cancelRefetch ?? true\n }).then(() => {\n this.updateResult();\n return this.#currentResult;\n });\n }\n #executeFetch(fetchOptions) {\n this.#updateQuery();\n let promise = this.#currentQuery.fetch(\n this.options,\n fetchOptions\n );\n if (!fetchOptions?.throwOnError) {\n promise = promise.catch(noop);\n }\n return promise;\n }\n #updateStaleTimeout() {\n this.#clearStaleTimeout();\n const staleTime = resolveStaleTime(\n this.options.staleTime,\n this.#currentQuery\n );\n if (isServer || this.#currentResult.isStale || !isValidTimeout(staleTime)) {\n return;\n }\n const time = timeUntilStale(this.#currentResult.dataUpdatedAt, staleTime);\n const timeout = time + 1;\n this.#staleTimeoutId = timeoutManager.setTimeout(() => {\n if (!this.#currentResult.isStale) {\n this.updateResult();\n }\n }, timeout);\n }\n #computeRefetchInterval() {\n return (typeof this.options.refetchInterval === \"function\" ? this.options.refetchInterval(this.#currentQuery) : this.options.refetchInterval) ?? false;\n }\n #updateRefetchInterval(nextInterval) {\n this.#clearRefetchInterval();\n this.#currentRefetchInterval = nextInterval;\n if (isServer || resolveEnabled(this.options.enabled, this.#currentQuery) === false || !isValidTimeout(this.#currentRefetchInterval) || this.#currentRefetchInterval === 0) {\n return;\n }\n this.#refetchIntervalId = timeoutManager.setInterval(() => {\n if (this.options.refetchIntervalInBackground || focusManager.isFocused()) {\n this.#executeFetch();\n }\n }, this.#currentRefetchInterval);\n }\n #updateTimers() {\n this.#updateStaleTimeout();\n this.#updateRefetchInterval(this.#computeRefetchInterval());\n }\n #clearStaleTimeout() {\n if (this.#staleTimeoutId) {\n timeoutManager.clearTimeout(this.#staleTimeoutId);\n this.#staleTimeoutId = void 0;\n }\n }\n #clearRefetchInterval() {\n if (this.#refetchIntervalId) {\n timeoutManager.clearInterval(this.#refetchIntervalId);\n this.#refetchIntervalId = void 0;\n }\n }\n createResult(query, options) {\n const prevQuery = this.#currentQuery;\n const prevOptions = this.options;\n const prevResult = this.#currentResult;\n const prevResultState = this.#currentResultState;\n const prevResultOptions = this.#currentResultOptions;\n const queryChange = query !== prevQuery;\n const queryInitialState = queryChange ? query.state : this.#currentQueryInitialState;\n const { state } = query;\n let newState = { ...state };\n let isPlaceholderData = false;\n let data;\n if (options._optimisticResults) {\n const mounted = this.hasListeners();\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options);\n const fetchOptionally = mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions);\n if (fetchOnMount || fetchOptionally) {\n newState = {\n ...newState,\n ...fetchState(state.data, query.options)\n };\n }\n if (options._optimisticResults === \"isRestoring\") {\n newState.fetchStatus = \"idle\";\n }\n }\n let { error, errorUpdatedAt, status } = newState;\n data = newState.data;\n let skipSelect = false;\n if (options.placeholderData !== void 0 && data === void 0 && status === \"pending\") {\n let placeholderData;\n if (prevResult?.isPlaceholderData && options.placeholderData === prevResultOptions?.placeholderData) {\n placeholderData = prevResult.data;\n skipSelect = true;\n } else {\n placeholderData = typeof options.placeholderData === \"function\" ? options.placeholderData(\n this.#lastQueryWithDefinedData?.state.data,\n this.#lastQueryWithDefinedData\n ) : options.placeholderData;\n }\n if (placeholderData !== void 0) {\n status = \"success\";\n data = replaceData(\n prevResult?.data,\n placeholderData,\n options\n );\n isPlaceholderData = true;\n }\n }\n if (options.select && data !== void 0 && !skipSelect) {\n if (prevResult && data === prevResultState?.data && options.select === this.#selectFn) {\n data = this.#selectResult;\n } else {\n try {\n this.#selectFn = options.select;\n data = options.select(data);\n data = replaceData(prevResult?.data, data, options);\n this.#selectResult = data;\n this.#selectError = null;\n } catch (selectError) {\n this.#selectError = selectError;\n }\n }\n }\n if (this.#selectError) {\n error = this.#selectError;\n data = this.#selectResult;\n errorUpdatedAt = Date.now();\n status = \"error\";\n }\n const isFetching = newState.fetchStatus === \"fetching\";\n const isPending = status === \"pending\";\n const isError = status === \"error\";\n const isLoading = isPending && isFetching;\n const hasData = data !== void 0;\n const result = {\n status,\n fetchStatus: newState.fetchStatus,\n isPending,\n isSuccess: status === \"success\",\n isError,\n isInitialLoading: isLoading,\n isLoading,\n data,\n dataUpdatedAt: newState.dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: newState.fetchFailureCount,\n failureReason: newState.fetchFailureReason,\n errorUpdateCount: newState.errorUpdateCount,\n isFetched: newState.dataUpdateCount > 0 || newState.errorUpdateCount > 0,\n isFetchedAfterMount: newState.dataUpdateCount > queryInitialState.dataUpdateCount || newState.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isPending,\n isLoadingError: isError && !hasData,\n isPaused: newState.fetchStatus === \"paused\",\n isPlaceholderData,\n isRefetchError: isError && hasData,\n isStale: isStale(query, options),\n refetch: this.refetch,\n promise: this.#currentThenable,\n isEnabled: resolveEnabled(options.enabled, query) !== false\n };\n const nextResult = result;\n if (this.options.experimental_prefetchInRender) {\n const hasResultData = nextResult.data !== void 0;\n const isErrorWithoutData = nextResult.status === \"error\" && !hasResultData;\n const finalizeThenableIfPossible = (thenable) => {\n if (isErrorWithoutData) {\n thenable.reject(nextResult.error);\n } else if (hasResultData) {\n thenable.resolve(nextResult.data);\n }\n };\n const recreateThenable = () => {\n const pending = this.#currentThenable = nextResult.promise = pendingThenable();\n finalizeThenableIfPossible(pending);\n };\n const prevThenable = this.#currentThenable;\n switch (prevThenable.status) {\n case \"pending\":\n if (query.queryHash === prevQuery.queryHash) {\n finalizeThenableIfPossible(prevThenable);\n }\n break;\n case \"fulfilled\":\n if (isErrorWithoutData || nextResult.data !== prevThenable.value) {\n recreateThenable();\n }\n break;\n case \"rejected\":\n if (!isErrorWithoutData || nextResult.error !== prevThenable.reason) {\n recreateThenable();\n }\n break;\n }\n }\n return nextResult;\n }\n updateResult() {\n const prevResult = this.#currentResult;\n const nextResult = this.createResult(this.#currentQuery, this.options);\n this.#currentResultState = this.#currentQuery.state;\n this.#currentResultOptions = this.options;\n if (this.#currentResultState.data !== void 0) {\n this.#lastQueryWithDefinedData = this.#currentQuery;\n }\n if (shallowEqualObjects(nextResult, prevResult)) {\n return;\n }\n this.#currentResult = nextResult;\n const shouldNotifyListeners = () => {\n if (!prevResult) {\n return true;\n }\n const { notifyOnChangeProps } = this.options;\n const notifyOnChangePropsValue = typeof notifyOnChangeProps === \"function\" ? notifyOnChangeProps() : notifyOnChangeProps;\n if (notifyOnChangePropsValue === \"all\" || !notifyOnChangePropsValue && !this.#trackedProps.size) {\n return true;\n }\n const includedProps = new Set(\n notifyOnChangePropsValue ?? this.#trackedProps\n );\n if (this.options.throwOnError) {\n includedProps.add(\"error\");\n }\n return Object.keys(this.#currentResult).some((key) => {\n const typedKey = key;\n const changed = this.#currentResult[typedKey] !== prevResult[typedKey];\n return changed && includedProps.has(typedKey);\n });\n };\n this.#notify({ listeners: shouldNotifyListeners() });\n }\n #updateQuery() {\n const query = this.#client.getQueryCache().build(this.#client, this.options);\n if (query === this.#currentQuery) {\n return;\n }\n const prevQuery = this.#currentQuery;\n this.#currentQuery = query;\n this.#currentQueryInitialState = query.state;\n if (this.hasListeners()) {\n prevQuery?.removeObserver(this);\n query.addObserver(this);\n }\n }\n onQueryUpdate() {\n this.updateResult();\n if (this.hasListeners()) {\n this.#updateTimers();\n }\n }\n #notify(notifyOptions) {\n notifyManager.batch(() => {\n if (notifyOptions.listeners) {\n this.listeners.forEach((listener) => {\n listener(this.#currentResult);\n });\n }\n this.#client.getQueryCache().notify({\n query: this.#currentQuery,\n type: \"observerResultsUpdated\"\n });\n });\n }\n};\nfunction shouldLoadOnMount(query, options) {\n return resolveEnabled(options.enabled, query) !== false && query.state.data === void 0 && !(query.state.status === \"error\" && options.retryOnMount === false);\n}\nfunction shouldFetchOnMount(query, options) {\n return shouldLoadOnMount(query, options) || query.state.data !== void 0 && shouldFetchOn(query, options, options.refetchOnMount);\n}\nfunction shouldFetchOn(query, options, field) {\n if (resolveEnabled(options.enabled, query) !== false && resolveStaleTime(options.staleTime, query) !== \"static\") {\n const value = typeof field === \"function\" ? field(query) : field;\n return value === \"always\" || value !== false && isStale(query, options);\n }\n return false;\n}\nfunction shouldFetchOptionally(query, prevQuery, options, prevOptions) {\n return (query !== prevQuery || resolveEnabled(prevOptions.enabled, query) === false) && (!options.suspense || query.state.status !== \"error\") && isStale(query, options);\n}\nfunction isStale(query, options) {\n return resolveEnabled(options.enabled, query) !== false && query.isStaleByTime(resolveStaleTime(options.staleTime, query));\n}\nfunction shouldAssignObserverCurrentProperties(observer, optimisticResult) {\n if (!shallowEqualObjects(observer.getCurrentResult(), optimisticResult)) {\n return true;\n }\n return false;\n}\nexport {\n QueryObserver\n};\n//# sourceMappingURL=queryObserver.js.map","// src/infiniteQueryBehavior.ts\nimport {\n addConsumeAwareSignal,\n addToEnd,\n addToStart,\n ensureQueryFn\n} from \"./utils.js\";\nfunction infiniteQueryBehavior(pages) {\n return {\n onFetch: (context, query) => {\n const options = context.options;\n const direction = context.fetchOptions?.meta?.fetchMore?.direction;\n const oldPages = context.state.data?.pages || [];\n const oldPageParams = context.state.data?.pageParams || [];\n let result = { pages: [], pageParams: [] };\n let currentPage = 0;\n const fetchFn = async () => {\n let cancelled = false;\n const addSignalProperty = (object) => {\n addConsumeAwareSignal(\n object,\n () => context.signal,\n () => cancelled = true\n );\n };\n const queryFn = ensureQueryFn(context.options, context.fetchOptions);\n const fetchPage = async (data, param, previous) => {\n if (cancelled) {\n return Promise.reject();\n }\n if (param == null && data.pages.length) {\n return Promise.resolve(data);\n }\n const createQueryFnContext = () => {\n const queryFnContext2 = {\n client: context.client,\n queryKey: context.queryKey,\n pageParam: param,\n direction: previous ? \"backward\" : \"forward\",\n meta: context.options.meta\n };\n addSignalProperty(queryFnContext2);\n return queryFnContext2;\n };\n const queryFnContext = createQueryFnContext();\n const page = await queryFn(queryFnContext);\n const { maxPages } = context.options;\n const addTo = previous ? addToStart : addToEnd;\n return {\n pages: addTo(data.pages, page, maxPages),\n pageParams: addTo(data.pageParams, param, maxPages)\n };\n };\n if (direction && oldPages.length) {\n const previous = direction === \"backward\";\n const pageParamFn = previous ? getPreviousPageParam : getNextPageParam;\n const oldData = {\n pages: oldPages,\n pageParams: oldPageParams\n };\n const param = pageParamFn(options, oldData);\n result = await fetchPage(oldData, param, previous);\n } else {\n const remainingPages = pages ?? oldPages.length;\n do {\n const param = currentPage === 0 ? oldPageParams[0] ?? options.initialPageParam : getNextPageParam(options, result);\n if (currentPage > 0 && param == null) {\n break;\n }\n result = await fetchPage(result, param);\n currentPage++;\n } while (currentPage < remainingPages);\n }\n return result;\n };\n if (context.options.persister) {\n context.fetchFn = () => {\n return context.options.persister?.(\n fetchFn,\n {\n client: context.client,\n queryKey: context.queryKey,\n meta: context.options.meta,\n signal: context.signal\n },\n query\n );\n };\n } else {\n context.fetchFn = fetchFn;\n }\n }\n };\n}\nfunction getNextPageParam(options, { pages, pageParams }) {\n const lastIndex = pages.length - 1;\n return pages.length > 0 ? options.getNextPageParam(\n pages[lastIndex],\n pages,\n pageParams[lastIndex],\n pageParams\n ) : void 0;\n}\nfunction getPreviousPageParam(options, { pages, pageParams }) {\n return pages.length > 0 ? options.getPreviousPageParam?.(pages[0], pages, pageParams[0], pageParams) : void 0;\n}\nfunction hasNextPage(options, data) {\n if (!data) return false;\n return getNextPageParam(options, data) != null;\n}\nfunction hasPreviousPage(options, data) {\n if (!data || !options.getPreviousPageParam) return false;\n return getPreviousPageParam(options, data) != null;\n}\nexport {\n hasNextPage,\n hasPreviousPage,\n infiniteQueryBehavior\n};\n//# sourceMappingURL=infiniteQueryBehavior.js.map","// src/mutation.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Removable } from \"./removable.js\";\nimport { createRetryer } from \"./retryer.js\";\nvar Mutation = class extends Removable {\n #client;\n #observers;\n #mutationCache;\n #retryer;\n constructor(config) {\n super();\n this.#client = config.client;\n this.mutationId = config.mutationId;\n this.#mutationCache = config.mutationCache;\n this.#observers = [];\n this.state = config.state || getDefaultState();\n this.setOptions(config.options);\n this.scheduleGc();\n }\n setOptions(options) {\n this.options = options;\n this.updateGcTime(this.options.gcTime);\n }\n get meta() {\n return this.options.meta;\n }\n addObserver(observer) {\n if (!this.#observers.includes(observer)) {\n this.#observers.push(observer);\n this.clearGcTimeout();\n this.#mutationCache.notify({\n type: \"observerAdded\",\n mutation: this,\n observer\n });\n }\n }\n removeObserver(observer) {\n this.#observers = this.#observers.filter((x) => x !== observer);\n this.scheduleGc();\n this.#mutationCache.notify({\n type: \"observerRemoved\",\n mutation: this,\n observer\n });\n }\n optionalRemove() {\n if (!this.#observers.length) {\n if (this.state.status === \"pending\") {\n this.scheduleGc();\n } else {\n this.#mutationCache.remove(this);\n }\n }\n }\n continue() {\n return this.#retryer?.continue() ?? // continuing a mutation assumes that variables are set, mutation must have been dehydrated before\n this.execute(this.state.variables);\n }\n async execute(variables) {\n const onContinue = () => {\n this.#dispatch({ type: \"continue\" });\n };\n const mutationFnContext = {\n client: this.#client,\n meta: this.options.meta,\n mutationKey: this.options.mutationKey\n };\n this.#retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject(new Error(\"No mutationFn found\"));\n }\n return this.options.mutationFn(variables, mutationFnContext);\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: \"failed\", failureCount, error });\n },\n onPause: () => {\n this.#dispatch({ type: \"pause\" });\n },\n onContinue,\n retry: this.options.retry ?? 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode,\n canRun: () => this.#mutationCache.canRun(this)\n });\n const restored = this.state.status === \"pending\";\n const isPaused = !this.#retryer.canStart();\n try {\n if (restored) {\n onContinue();\n } else {\n this.#dispatch({ type: \"pending\", variables, isPaused });\n await this.#mutationCache.config.onMutate?.(\n variables,\n this,\n mutationFnContext\n );\n const context = await this.options.onMutate?.(\n variables,\n mutationFnContext\n );\n if (context !== this.state.context) {\n this.#dispatch({\n type: \"pending\",\n context,\n variables,\n isPaused\n });\n }\n }\n const data = await this.#retryer.start();\n await this.#mutationCache.config.onSuccess?.(\n data,\n variables,\n this.state.context,\n this,\n mutationFnContext\n );\n await this.options.onSuccess?.(\n data,\n variables,\n this.state.context,\n mutationFnContext\n );\n await this.#mutationCache.config.onSettled?.(\n data,\n null,\n this.state.variables,\n this.state.context,\n this,\n mutationFnContext\n );\n await this.options.onSettled?.(\n data,\n null,\n variables,\n this.state.context,\n mutationFnContext\n );\n this.#dispatch({ type: \"success\", data });\n return data;\n } catch (error) {\n try {\n await this.#mutationCache.config.onError?.(\n error,\n variables,\n this.state.context,\n this,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n await this.options.onError?.(\n error,\n variables,\n this.state.context,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n await this.#mutationCache.config.onSettled?.(\n void 0,\n error,\n this.state.variables,\n this.state.context,\n this,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n await this.options.onSettled?.(\n void 0,\n error,\n variables,\n this.state.context,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n this.#dispatch({ type: \"error\", error });\n throw error;\n } finally {\n this.#mutationCache.runNext(this);\n }\n }\n #dispatch(action) {\n const reducer = (state) => {\n switch (action.type) {\n case \"failed\":\n return {\n ...state,\n failureCount: action.failureCount,\n failureReason: action.error\n };\n case \"pause\":\n return {\n ...state,\n isPaused: true\n };\n case \"continue\":\n return {\n ...state,\n isPaused: false\n };\n case \"pending\":\n return {\n ...state,\n context: action.context,\n data: void 0,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: action.isPaused,\n status: \"pending\",\n variables: action.variables,\n submittedAt: Date.now()\n };\n case \"success\":\n return {\n ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: \"success\",\n isPaused: false\n };\n case \"error\":\n return {\n ...state,\n data: void 0,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: \"error\"\n };\n }\n };\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.#observers.forEach((observer) => {\n observer.onMutationUpdate(action);\n });\n this.#mutationCache.notify({\n mutation: this,\n type: \"updated\",\n action\n });\n });\n }\n};\nfunction getDefaultState() {\n return {\n context: void 0,\n data: void 0,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: \"idle\",\n variables: void 0,\n submittedAt: 0\n };\n}\nexport {\n Mutation,\n getDefaultState\n};\n//# sourceMappingURL=mutation.js.map","// src/mutationCache.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Mutation } from \"./mutation.js\";\nimport { matchMutation, noop } from \"./utils.js\";\nimport { Subscribable } from \"./subscribable.js\";\nvar MutationCache = class extends Subscribable {\n constructor(config = {}) {\n super();\n this.config = config;\n this.#mutations = /* @__PURE__ */ new Set();\n this.#scopes = /* @__PURE__ */ new Map();\n this.#mutationId = 0;\n }\n #mutations;\n #scopes;\n #mutationId;\n build(client, options, state) {\n const mutation = new Mutation({\n client,\n mutationCache: this,\n mutationId: ++this.#mutationId,\n options: client.defaultMutationOptions(options),\n state\n });\n this.add(mutation);\n return mutation;\n }\n add(mutation) {\n this.#mutations.add(mutation);\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const scopedMutations = this.#scopes.get(scope);\n if (scopedMutations) {\n scopedMutations.push(mutation);\n } else {\n this.#scopes.set(scope, [mutation]);\n }\n }\n this.notify({ type: \"added\", mutation });\n }\n remove(mutation) {\n if (this.#mutations.delete(mutation)) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const scopedMutations = this.#scopes.get(scope);\n if (scopedMutations) {\n if (scopedMutations.length > 1) {\n const index = scopedMutations.indexOf(mutation);\n if (index !== -1) {\n scopedMutations.splice(index, 1);\n }\n } else if (scopedMutations[0] === mutation) {\n this.#scopes.delete(scope);\n }\n }\n }\n }\n this.notify({ type: \"removed\", mutation });\n }\n canRun(mutation) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const mutationsWithSameScope = this.#scopes.get(scope);\n const firstPendingMutation = mutationsWithSameScope?.find(\n (m) => m.state.status === \"pending\"\n );\n return !firstPendingMutation || firstPendingMutation === mutation;\n } else {\n return true;\n }\n }\n runNext(mutation) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const foundMutation = this.#scopes.get(scope)?.find((m) => m !== mutation && m.state.isPaused);\n return foundMutation?.continue() ?? Promise.resolve();\n } else {\n return Promise.resolve();\n }\n }\n clear() {\n notifyManager.batch(() => {\n this.#mutations.forEach((mutation) => {\n this.notify({ type: \"removed\", mutation });\n });\n this.#mutations.clear();\n this.#scopes.clear();\n });\n }\n getAll() {\n return Array.from(this.#mutations);\n }\n find(filters) {\n const defaultedFilters = { exact: true, ...filters };\n return this.getAll().find(\n (mutation) => matchMutation(defaultedFilters, mutation)\n );\n }\n findAll(filters = {}) {\n return this.getAll().filter((mutation) => matchMutation(filters, mutation));\n }\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event);\n });\n });\n }\n resumePausedMutations() {\n const pausedMutations = this.getAll().filter((x) => x.state.isPaused);\n return notifyManager.batch(\n () => Promise.all(\n pausedMutations.map((mutation) => mutation.continue().catch(noop))\n )\n );\n }\n};\nfunction scopeFor(mutation) {\n return mutation.options.scope?.id;\n}\nexport {\n MutationCache\n};\n//# sourceMappingURL=mutationCache.js.map","// src/mutationObserver.ts\nimport { getDefaultState } from \"./mutation.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { hashKey, shallowEqualObjects } from \"./utils.js\";\nvar MutationObserver = class extends Subscribable {\n #client;\n #currentResult = void 0;\n #currentMutation;\n #mutateOptions;\n constructor(client, options) {\n super();\n this.#client = client;\n this.setOptions(options);\n this.bindMethods();\n this.#updateResult();\n }\n bindMethods() {\n this.mutate = this.mutate.bind(this);\n this.reset = this.reset.bind(this);\n }\n setOptions(options) {\n const prevOptions = this.options;\n this.options = this.#client.defaultMutationOptions(options);\n if (!shallowEqualObjects(this.options, prevOptions)) {\n this.#client.getMutationCache().notify({\n type: \"observerOptionsUpdated\",\n mutation: this.#currentMutation,\n observer: this\n });\n }\n if (prevOptions?.mutationKey && this.options.mutationKey && hashKey(prevOptions.mutationKey) !== hashKey(this.options.mutationKey)) {\n this.reset();\n } else if (this.#currentMutation?.state.status === \"pending\") {\n this.#currentMutation.setOptions(this.options);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#currentMutation?.removeObserver(this);\n }\n }\n onMutationUpdate(action) {\n this.#updateResult();\n this.#notify(action);\n }\n getCurrentResult() {\n return this.#currentResult;\n }\n reset() {\n this.#currentMutation?.removeObserver(this);\n this.#currentMutation = void 0;\n this.#updateResult();\n this.#notify();\n }\n mutate(variables, options) {\n this.#mutateOptions = options;\n this.#currentMutation?.removeObserver(this);\n this.#currentMutation = this.#client.getMutationCache().build(this.#client, this.options);\n this.#currentMutation.addObserver(this);\n return this.#currentMutation.execute(variables);\n }\n #updateResult() {\n const state = this.#currentMutation?.state ?? getDefaultState();\n this.#currentResult = {\n ...state,\n isPending: state.status === \"pending\",\n isSuccess: state.status === \"success\",\n isError: state.status === \"error\",\n isIdle: state.status === \"idle\",\n mutate: this.mutate,\n reset: this.reset\n };\n }\n #notify(action) {\n notifyManager.batch(() => {\n if (this.#mutateOptions && this.hasListeners()) {\n const variables = this.#currentResult.variables;\n const onMutateResult = this.#currentResult.context;\n const context = {\n client: this.#client,\n meta: this.options.meta,\n mutationKey: this.options.mutationKey\n };\n if (action?.type === \"success\") {\n try {\n this.#mutateOptions.onSuccess?.(\n action.data,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n this.#mutateOptions.onSettled?.(\n action.data,\n null,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\n }\n } else if (action?.type === \"error\") {\n try {\n this.#mutateOptions.onError?.(\n action.error,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n this.#mutateOptions.onSettled?.(\n void 0,\n action.error,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\n }\n }\n }\n this.listeners.forEach((listener) => {\n listener(this.#currentResult);\n });\n });\n }\n};\nexport {\n MutationObserver\n};\n//# sourceMappingURL=mutationObserver.js.map","// src/queryCache.ts\nimport { hashQueryKeyByOptions, matchQuery } from \"./utils.js\";\nimport { Query } from \"./query.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nvar QueryCache = class extends Subscribable {\n constructor(config = {}) {\n super();\n this.config = config;\n this.#queries = /* @__PURE__ */ new Map();\n }\n #queries;\n build(client, options, state) {\n const queryKey = options.queryKey;\n const queryHash = options.queryHash ?? hashQueryKeyByOptions(queryKey, options);\n let query = this.get(queryHash);\n if (!query) {\n query = new Query({\n client,\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey)\n });\n this.add(query);\n }\n return query;\n }\n add(query) {\n if (!this.#queries.has(query.queryHash)) {\n this.#queries.set(query.queryHash, query);\n this.notify({\n type: \"added\",\n query\n });\n }\n }\n remove(query) {\n const queryInMap = this.#queries.get(query.queryHash);\n if (queryInMap) {\n query.destroy();\n if (queryInMap === query) {\n this.#queries.delete(query.queryHash);\n }\n this.notify({ type: \"removed\", query });\n }\n }\n clear() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n this.remove(query);\n });\n });\n }\n get(queryHash) {\n return this.#queries.get(queryHash);\n }\n getAll() {\n return [...this.#queries.values()];\n }\n find(filters) {\n const defaultedFilters = { exact: true, ...filters };\n return this.getAll().find(\n (query) => matchQuery(defaultedFilters, query)\n );\n }\n findAll(filters = {}) {\n const queries = this.getAll();\n return Object.keys(filters).length > 0 ? queries.filter((query) => matchQuery(filters, query)) : queries;\n }\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event);\n });\n });\n }\n onFocus() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onFocus();\n });\n });\n }\n onOnline() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onOnline();\n });\n });\n }\n};\nexport {\n QueryCache\n};\n//# sourceMappingURL=queryCache.js.map","// src/queryClient.ts\nimport {\n functionalUpdate,\n hashKey,\n hashQueryKeyByOptions,\n noop,\n partialMatchKey,\n resolveStaleTime,\n skipToken\n} from \"./utils.js\";\nimport { QueryCache } from \"./queryCache.js\";\nimport { MutationCache } from \"./mutationCache.js\";\nimport { focusManager } from \"./focusManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { infiniteQueryBehavior } from \"./infiniteQueryBehavior.js\";\nvar QueryClient = class {\n #queryCache;\n #mutationCache;\n #defaultOptions;\n #queryDefaults;\n #mutationDefaults;\n #mountCount;\n #unsubscribeFocus;\n #unsubscribeOnline;\n constructor(config = {}) {\n this.#queryCache = config.queryCache || new QueryCache();\n this.#mutationCache = config.mutationCache || new MutationCache();\n this.#defaultOptions = config.defaultOptions || {};\n this.#queryDefaults = /* @__PURE__ */ new Map();\n this.#mutationDefaults = /* @__PURE__ */ new Map();\n this.#mountCount = 0;\n }\n mount() {\n this.#mountCount++;\n if (this.#mountCount !== 1) return;\n this.#unsubscribeFocus = focusManager.subscribe(async (focused) => {\n if (focused) {\n await this.resumePausedMutations();\n this.#queryCache.onFocus();\n }\n });\n this.#unsubscribeOnline = onlineManager.subscribe(async (online) => {\n if (online) {\n await this.resumePausedMutations();\n this.#queryCache.onOnline();\n }\n });\n }\n unmount() {\n this.#mountCount--;\n if (this.#mountCount !== 0) return;\n this.#unsubscribeFocus?.();\n this.#unsubscribeFocus = void 0;\n this.#unsubscribeOnline?.();\n this.#unsubscribeOnline = void 0;\n }\n isFetching(filters) {\n return this.#queryCache.findAll({ ...filters, fetchStatus: \"fetching\" }).length;\n }\n isMutating(filters) {\n return this.#mutationCache.findAll({ ...filters, status: \"pending\" }).length;\n }\n /**\n * Imperative (non-reactive) way to retrieve data for a QueryKey.\n * Should only be used in callbacks or functions where reading the latest data is necessary, e.g. for optimistic updates.\n *\n * Hint: Do not use this function inside a component, because it won't receive updates.\n * Use `useQuery` to create a `QueryObserver` that subscribes to changes.\n */\n getQueryData(queryKey) {\n const options = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.get(options.queryHash)?.state.data;\n }\n ensureQueryData(options) {\n const defaultedOptions = this.defaultQueryOptions(options);\n const query = this.#queryCache.build(this, defaultedOptions);\n const cachedData = query.state.data;\n if (cachedData === void 0) {\n return this.fetchQuery(options);\n }\n if (options.revalidateIfStale && query.isStaleByTime(resolveStaleTime(defaultedOptions.staleTime, query))) {\n void this.prefetchQuery(defaultedOptions);\n }\n return Promise.resolve(cachedData);\n }\n getQueriesData(filters) {\n return this.#queryCache.findAll(filters).map(({ queryKey, state }) => {\n const data = state.data;\n return [queryKey, data];\n });\n }\n setQueryData(queryKey, updater, options) {\n const defaultedOptions = this.defaultQueryOptions({ queryKey });\n const query = this.#queryCache.get(\n defaultedOptions.queryHash\n );\n const prevData = query?.state.data;\n const data = functionalUpdate(updater, prevData);\n if (data === void 0) {\n return void 0;\n }\n return this.#queryCache.build(this, defaultedOptions).setData(data, { ...options, manual: true });\n }\n setQueriesData(filters, updater, options) {\n return notifyManager.batch(\n () => this.#queryCache.findAll(filters).map(({ queryKey }) => [\n queryKey,\n this.setQueryData(queryKey, updater, options)\n ])\n );\n }\n getQueryState(queryKey) {\n const options = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.get(\n options.queryHash\n )?.state;\n }\n removeQueries(filters) {\n const queryCache = this.#queryCache;\n notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n queryCache.remove(query);\n });\n });\n }\n resetQueries(filters, options) {\n const queryCache = this.#queryCache;\n return notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n query.reset();\n });\n return this.refetchQueries(\n {\n type: \"active\",\n ...filters\n },\n options\n );\n });\n }\n cancelQueries(filters, cancelOptions = {}) {\n const defaultedCancelOptions = { revert: true, ...cancelOptions };\n const promises = notifyManager.batch(\n () => this.#queryCache.findAll(filters).map((query) => query.cancel(defaultedCancelOptions))\n );\n return Promise.all(promises).then(noop).catch(noop);\n }\n invalidateQueries(filters, options = {}) {\n return notifyManager.batch(() => {\n this.#queryCache.findAll(filters).forEach((query) => {\n query.invalidate();\n });\n if (filters?.refetchType === \"none\") {\n return Promise.resolve();\n }\n return this.refetchQueries(\n {\n ...filters,\n type: filters?.refetchType ?? filters?.type ?? \"active\"\n },\n options\n );\n });\n }\n refetchQueries(filters, options = {}) {\n const fetchOptions = {\n ...options,\n cancelRefetch: options.cancelRefetch ?? true\n };\n const promises = notifyManager.batch(\n () => this.#queryCache.findAll(filters).filter((query) => !query.isDisabled() && !query.isStatic()).map((query) => {\n let promise = query.fetch(void 0, fetchOptions);\n if (!fetchOptions.throwOnError) {\n promise = promise.catch(noop);\n }\n return query.state.fetchStatus === \"paused\" ? Promise.resolve() : promise;\n })\n );\n return Promise.all(promises).then(noop);\n }\n fetchQuery(options) {\n const defaultedOptions = this.defaultQueryOptions(options);\n if (defaultedOptions.retry === void 0) {\n defaultedOptions.retry = false;\n }\n const query = this.#queryCache.build(this, defaultedOptions);\n return query.isStaleByTime(\n resolveStaleTime(defaultedOptions.staleTime, query)\n ) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n }\n prefetchQuery(options) {\n return this.fetchQuery(options).then(noop).catch(noop);\n }\n fetchInfiniteQuery(options) {\n options.behavior = infiniteQueryBehavior(options.pages);\n return this.fetchQuery(options);\n }\n prefetchInfiniteQuery(options) {\n return this.fetchInfiniteQuery(options).then(noop).catch(noop);\n }\n ensureInfiniteQueryData(options) {\n options.behavior = infiniteQueryBehavior(options.pages);\n return this.ensureQueryData(options);\n }\n resumePausedMutations() {\n if (onlineManager.isOnline()) {\n return this.#mutationCache.resumePausedMutations();\n }\n return Promise.resolve();\n }\n getQueryCache() {\n return this.#queryCache;\n }\n getMutationCache() {\n return this.#mutationCache;\n }\n getDefaultOptions() {\n return this.#defaultOptions;\n }\n setDefaultOptions(options) {\n this.#defaultOptions = options;\n }\n setQueryDefaults(queryKey, options) {\n this.#queryDefaults.set(hashKey(queryKey), {\n queryKey,\n defaultOptions: options\n });\n }\n getQueryDefaults(queryKey) {\n const defaults = [...this.#queryDefaults.values()];\n const result = {};\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(queryKey, queryDefault.queryKey)) {\n Object.assign(result, queryDefault.defaultOptions);\n }\n });\n return result;\n }\n setMutationDefaults(mutationKey, options) {\n this.#mutationDefaults.set(hashKey(mutationKey), {\n mutationKey,\n defaultOptions: options\n });\n }\n getMutationDefaults(mutationKey) {\n const defaults = [...this.#mutationDefaults.values()];\n const result = {};\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(mutationKey, queryDefault.mutationKey)) {\n Object.assign(result, queryDefault.defaultOptions);\n }\n });\n return result;\n }\n defaultQueryOptions(options) {\n if (options._defaulted) {\n return options;\n }\n const defaultedOptions = {\n ...this.#defaultOptions.queries,\n ...this.getQueryDefaults(options.queryKey),\n ...options,\n _defaulted: true\n };\n if (!defaultedOptions.queryHash) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(\n defaultedOptions.queryKey,\n defaultedOptions\n );\n }\n if (defaultedOptions.refetchOnReconnect === void 0) {\n defaultedOptions.refetchOnReconnect = defaultedOptions.networkMode !== \"always\";\n }\n if (defaultedOptions.throwOnError === void 0) {\n defaultedOptions.throwOnError = !!defaultedOptions.suspense;\n }\n if (!defaultedOptions.networkMode && defaultedOptions.persister) {\n defaultedOptions.networkMode = \"offlineFirst\";\n }\n if (defaultedOptions.queryFn === skipToken) {\n defaultedOptions.enabled = false;\n }\n return defaultedOptions;\n }\n defaultMutationOptions(options) {\n if (options?._defaulted) {\n return options;\n }\n return {\n ...this.#defaultOptions.mutations,\n ...options?.mutationKey && this.getMutationDefaults(options.mutationKey),\n ...options,\n _defaulted: true\n };\n }\n clear() {\n this.#queryCache.clear();\n this.#mutationCache.clear();\n }\n};\nexport {\n QueryClient\n};\n//# sourceMappingURL=queryClient.js.map","\"use client\";\n\n// src/QueryClientProvider.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar QueryClientContext = React.createContext(\n void 0\n);\nvar useQueryClient = (queryClient) => {\n const client = React.useContext(QueryClientContext);\n if (queryClient) {\n return queryClient;\n }\n if (!client) {\n throw new Error(\"No QueryClient set, use QueryClientProvider to set one\");\n }\n return client;\n};\nvar QueryClientProvider = ({\n client,\n children\n}) => {\n React.useEffect(() => {\n client.mount();\n return () => {\n client.unmount();\n };\n }, [client]);\n return /* @__PURE__ */ jsx(QueryClientContext.Provider, { value: client, children });\n};\nexport {\n QueryClientContext,\n QueryClientProvider,\n useQueryClient\n};\n//# sourceMappingURL=QueryClientProvider.js.map","\"use client\";\n\n// src/IsRestoringProvider.ts\nimport * as React from \"react\";\nvar IsRestoringContext = React.createContext(false);\nvar useIsRestoring = () => React.useContext(IsRestoringContext);\nvar IsRestoringProvider = IsRestoringContext.Provider;\nexport {\n IsRestoringProvider,\n useIsRestoring\n};\n//# sourceMappingURL=IsRestoringProvider.js.map","\"use client\";\n\n// src/QueryErrorResetBoundary.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createValue() {\n let isReset = false;\n return {\n clearReset: () => {\n isReset = false;\n },\n reset: () => {\n isReset = true;\n },\n isReset: () => {\n return isReset;\n }\n };\n}\nvar QueryErrorResetBoundaryContext = React.createContext(createValue());\nvar useQueryErrorResetBoundary = () => React.useContext(QueryErrorResetBoundaryContext);\nvar QueryErrorResetBoundary = ({\n children\n}) => {\n const [value] = React.useState(() => createValue());\n return /* @__PURE__ */ jsx(QueryErrorResetBoundaryContext.Provider, { value, children: typeof children === \"function\" ? children(value) : children });\n};\nexport {\n QueryErrorResetBoundary,\n useQueryErrorResetBoundary\n};\n//# sourceMappingURL=QueryErrorResetBoundary.js.map","\"use client\";\n\n// src/errorBoundaryUtils.ts\nimport * as React from \"react\";\nimport { shouldThrowError } from \"@tanstack/query-core\";\nvar ensurePreventErrorBoundaryRetry = (options, errorResetBoundary, query) => {\n const throwOnError = query?.state.error && typeof options.throwOnError === \"function\" ? shouldThrowError(options.throwOnError, [query.state.error, query]) : options.throwOnError;\n if (options.suspense || options.experimental_prefetchInRender || throwOnError) {\n if (!errorResetBoundary.isReset()) {\n options.retryOnMount = false;\n }\n }\n};\nvar useClearResetErrorBoundary = (errorResetBoundary) => {\n React.useEffect(() => {\n errorResetBoundary.clearReset();\n }, [errorResetBoundary]);\n};\nvar getHasError = ({\n result,\n errorResetBoundary,\n throwOnError,\n query,\n suspense\n}) => {\n return result.isError && !errorResetBoundary.isReset() && !result.isFetching && query && (suspense && result.data === void 0 || shouldThrowError(throwOnError, [result.error, query]));\n};\nexport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n};\n//# sourceMappingURL=errorBoundaryUtils.js.map","// src/suspense.ts\nvar defaultThrowOnError = (_error, query) => query.state.data === void 0;\nvar ensureSuspenseTimers = (defaultedOptions) => {\n if (defaultedOptions.suspense) {\n const MIN_SUSPENSE_TIME_MS = 1e3;\n const clamp = (value) => value === \"static\" ? value : Math.max(value ?? MIN_SUSPENSE_TIME_MS, MIN_SUSPENSE_TIME_MS);\n const originalStaleTime = defaultedOptions.staleTime;\n defaultedOptions.staleTime = typeof originalStaleTime === \"function\" ? (...args) => clamp(originalStaleTime(...args)) : clamp(originalStaleTime);\n if (typeof defaultedOptions.gcTime === \"number\") {\n defaultedOptions.gcTime = Math.max(\n defaultedOptions.gcTime,\n MIN_SUSPENSE_TIME_MS\n );\n }\n }\n};\nvar willFetch = (result, isRestoring) => result.isLoading && result.isFetching && !isRestoring;\nvar shouldSuspend = (defaultedOptions, result) => defaultedOptions?.suspense && result.isPending;\nvar fetchOptimistic = (defaultedOptions, observer, errorResetBoundary) => observer.fetchOptimistic(defaultedOptions).catch(() => {\n errorResetBoundary.clearReset();\n});\nexport {\n defaultThrowOnError,\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend,\n willFetch\n};\n//# sourceMappingURL=suspense.js.map","\"use client\";\n\n// src/useBaseQuery.ts\nimport * as React from \"react\";\nimport { isServer, noop, notifyManager } from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { useQueryErrorResetBoundary } from \"./QueryErrorResetBoundary.js\";\nimport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n} from \"./errorBoundaryUtils.js\";\nimport { useIsRestoring } from \"./IsRestoringProvider.js\";\nimport {\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend,\n willFetch\n} from \"./suspense.js\";\nfunction useBaseQuery(options, Observer, queryClient) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof options !== \"object\" || Array.isArray(options)) {\n throw new Error(\n 'Bad argument type. Starting with v5, only the \"Object\" form is allowed when calling query related functions. Please use the error stack to find the culprit call. More info here: https://tanstack.com/query/latest/docs/react/guides/migrating-to-v5#supports-a-single-signature-one-object'\n );\n }\n }\n const isRestoring = useIsRestoring();\n const errorResetBoundary = useQueryErrorResetBoundary();\n const client = useQueryClient(queryClient);\n const defaultedOptions = client.defaultQueryOptions(options);\n client.getDefaultOptions().queries?._experimental_beforeQuery?.(\n defaultedOptions\n );\n const query = client.getQueryCache().get(defaultedOptions.queryHash);\n if (process.env.NODE_ENV !== \"production\") {\n if (!defaultedOptions.queryFn) {\n console.error(\n `[${defaultedOptions.queryHash}]: No queryFn was passed as an option, and no default queryFn was found. The queryFn parameter is only optional when using a default queryFn. More info here: https://tanstack.com/query/latest/docs/framework/react/guides/default-query-function`\n );\n }\n }\n defaultedOptions._optimisticResults = isRestoring ? \"isRestoring\" : \"optimistic\";\n ensureSuspenseTimers(defaultedOptions);\n ensurePreventErrorBoundaryRetry(defaultedOptions, errorResetBoundary, query);\n useClearResetErrorBoundary(errorResetBoundary);\n const isNewCacheEntry = !client.getQueryCache().get(defaultedOptions.queryHash);\n const [observer] = React.useState(\n () => new Observer(\n client,\n defaultedOptions\n )\n );\n const result = observer.getOptimisticResult(defaultedOptions);\n const shouldSubscribe = !isRestoring && options.subscribed !== false;\n React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => {\n const unsubscribe = shouldSubscribe ? observer.subscribe(notifyManager.batchCalls(onStoreChange)) : noop;\n observer.updateResult();\n return unsubscribe;\n },\n [observer, shouldSubscribe]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n React.useEffect(() => {\n observer.setOptions(defaultedOptions);\n }, [defaultedOptions, observer]);\n if (shouldSuspend(defaultedOptions, result)) {\n throw fetchOptimistic(defaultedOptions, observer, errorResetBoundary);\n }\n if (getHasError({\n result,\n errorResetBoundary,\n throwOnError: defaultedOptions.throwOnError,\n query,\n suspense: defaultedOptions.suspense\n })) {\n throw result.error;\n }\n ;\n client.getDefaultOptions().queries?._experimental_afterQuery?.(\n defaultedOptions,\n result\n );\n if (defaultedOptions.experimental_prefetchInRender && !isServer && willFetch(result, isRestoring)) {\n const promise = isNewCacheEntry ? (\n // Fetch immediately on render in order to ensure `.promise` is resolved even if the component is unmounted\n fetchOptimistic(defaultedOptions, observer, errorResetBoundary)\n ) : (\n // subscribe to the \"cache promise\" so that we can finalize the currentThenable once data comes in\n query?.promise\n );\n promise?.catch(noop).finally(() => {\n observer.updateResult();\n });\n }\n return !defaultedOptions.notifyOnChangeProps ? observer.trackResult(result) : result;\n}\nexport {\n useBaseQuery\n};\n//# sourceMappingURL=useBaseQuery.js.map","\"use client\";\n\n// src/useQuery.ts\nimport { QueryObserver } from \"@tanstack/query-core\";\nimport { useBaseQuery } from \"./useBaseQuery.js\";\nfunction useQuery(options, queryClient) {\n return useBaseQuery(options, QueryObserver, queryClient);\n}\nexport {\n useQuery\n};\n//# sourceMappingURL=useQuery.js.map","\"use client\";\n\n// src/useMutation.ts\nimport * as React from \"react\";\nimport {\n MutationObserver,\n noop,\n notifyManager,\n shouldThrowError\n} from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nfunction useMutation(options, queryClient) {\n const client = useQueryClient(queryClient);\n const [observer] = React.useState(\n () => new MutationObserver(\n client,\n options\n )\n );\n React.useEffect(() => {\n observer.setOptions(options);\n }, [observer, options]);\n const result = React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => observer.subscribe(notifyManager.batchCalls(onStoreChange)),\n [observer]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n const mutate = React.useCallback(\n (variables, mutateOptions) => {\n observer.mutate(variables, mutateOptions).catch(noop);\n },\n [observer]\n );\n if (result.error && shouldThrowError(observer.options.throwOnError, [result.error])) {\n throw result.error;\n }\n return { ...result, mutate, mutateAsync: result.mutate };\n}\nexport {\n useMutation\n};\n//# sourceMappingURL=useMutation.js.map","const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const destroy = () => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n \"[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected.\"\n );\n }\n listeners.clear();\n };\n const api = { setState, getState, getInitialState, subscribe, destroy };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = (createState) => createState ? createStoreImpl(createState) : createStoreImpl;\nvar vanilla = (createState) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n \"[DEPRECATED] Default export is deprecated. Instead use import { createStore } from 'zustand/vanilla'.\"\n );\n }\n return createStore(createState);\n};\n\nexport { createStore, vanilla as default };\n","/**\n * @license React\n * use-sync-external-store-shim.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\");\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n useState = React.useState,\n useEffect = React.useEffect,\n useLayoutEffect = React.useLayoutEffect,\n useDebugValue = React.useDebugValue;\nfunction useSyncExternalStore$2(subscribe, getSnapshot) {\n var value = getSnapshot(),\n _useState = useState({ inst: { value: value, getSnapshot: getSnapshot } }),\n inst = _useState[0].inst,\n forceUpdate = _useState[1];\n useLayoutEffect(\n function () {\n inst.value = value;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n },\n [subscribe, value, getSnapshot]\n );\n useEffect(\n function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n });\n },\n [subscribe]\n );\n useDebugValue(value);\n return value;\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction useSyncExternalStore$1(subscribe, getSnapshot) {\n return getSnapshot();\n}\nvar shim =\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ? useSyncExternalStore$1\n : useSyncExternalStore$2;\nexports.useSyncExternalStore =\n void 0 !== React.useSyncExternalStore ? React.useSyncExternalStore : shim;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","/**\n * @license React\n * use-sync-external-store-shim/with-selector.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\"),\n shim = require(\"use-sync-external-store/shim\");\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n useSyncExternalStore = shim.useSyncExternalStore,\n useRef = React.useRef,\n useEffect = React.useEffect,\n useMemo = React.useMemo,\n useDebugValue = React.useDebugValue;\nexports.useSyncExternalStoreWithSelector = function (\n subscribe,\n getSnapshot,\n getServerSnapshot,\n selector,\n isEqual\n) {\n var instRef = useRef(null);\n if (null === instRef.current) {\n var inst = { hasValue: !1, value: null };\n instRef.current = inst;\n } else inst = instRef.current;\n instRef = useMemo(\n function () {\n function memoizedSelector(nextSnapshot) {\n if (!hasMemo) {\n hasMemo = !0;\n memoizedSnapshot = nextSnapshot;\n nextSnapshot = selector(nextSnapshot);\n if (void 0 !== isEqual && inst.hasValue) {\n var currentSelection = inst.value;\n if (isEqual(currentSelection, nextSnapshot))\n return (memoizedSelection = currentSelection);\n }\n return (memoizedSelection = nextSnapshot);\n }\n currentSelection = memoizedSelection;\n if (objectIs(memoizedSnapshot, nextSnapshot)) return currentSelection;\n var nextSelection = selector(nextSnapshot);\n if (void 0 !== isEqual && isEqual(currentSelection, nextSelection))\n return (memoizedSnapshot = nextSnapshot), currentSelection;\n memoizedSnapshot = nextSnapshot;\n return (memoizedSelection = nextSelection);\n }\n var hasMemo = !1,\n memoizedSnapshot,\n memoizedSelection,\n maybeGetServerSnapshot =\n void 0 === getServerSnapshot ? null : getServerSnapshot;\n return [\n function () {\n return memoizedSelector(getSnapshot());\n },\n null === maybeGetServerSnapshot\n ? void 0\n : function () {\n return memoizedSelector(maybeGetServerSnapshot());\n }\n ];\n },\n [getSnapshot, getServerSnapshot, selector, isEqual]\n );\n var value = useSyncExternalStore(subscribe, instRef[0], instRef[1]);\n useEffect(\n function () {\n inst.hasValue = !0;\n inst.value = value;\n },\n [value]\n );\n useDebugValue(value);\n return value;\n};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.production.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.development.js');\n}\n","import { createStore } from 'zustand/vanilla';\nexport * from 'zustand/vanilla';\nimport ReactExports from 'react';\nimport useSyncExternalStoreExports from 'use-sync-external-store/shim/with-selector.js';\n\nconst { useDebugValue } = ReactExports;\nconst { useSyncExternalStoreWithSelector } = useSyncExternalStoreExports;\nlet didWarnAboutEqualityFn = false;\nconst identity = (arg) => arg;\nfunction useStore(api, selector = identity, equalityFn) {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && equalityFn && !didWarnAboutEqualityFn) {\n console.warn(\n \"[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937\"\n );\n didWarnAboutEqualityFn = true;\n }\n const slice = useSyncExternalStoreWithSelector(\n api.subscribe,\n api.getState,\n api.getServerState || api.getInitialState,\n selector,\n equalityFn\n );\n useDebugValue(slice);\n return slice;\n}\nconst createImpl = (createState) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && typeof createState !== \"function\") {\n console.warn(\n \"[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.\"\n );\n }\n const api = typeof createState === \"function\" ? createStore(createState) : createState;\n const useBoundStore = (selector, equalityFn) => useStore(api, selector, equalityFn);\n Object.assign(useBoundStore, api);\n return useBoundStore;\n};\nconst create = (createState) => createState ? createImpl(createState) : createImpl;\nvar react = (createState) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n \"[DEPRECATED] Default export is deprecated. Instead use `import { create } from 'zustand'`.\"\n );\n }\n return create(createState);\n};\n\nexport { create, react as default, useStore };\n","/**\n * Drift Dashboard Store\n *\n * Zustand store for global state management.\n * Manages connection status, active tab, filters, and UI state.\n */\n\nimport { create } from 'zustand';\nimport type {\n ConnectionStatus,\n TabId,\n PatternFilters,\n ViolationFilters,\n Violation,\n} from '../types';\n\nexport interface DashboardStore {\n // Connection state\n connectionStatus: ConnectionStatus;\n setConnectionStatus: (status: ConnectionStatus) => void;\n\n // Active tab\n activeTab: TabId;\n setActiveTab: (tab: TabId) => void;\n\n // Realtime violations\n realtimeViolations: Violation[];\n addRealtimeViolation: (violation: Violation) => void;\n clearRealtimeViolations: () => void;\n\n // UI state\n expandedViolations: Set<string>;\n toggleViolationExpanded: (id: string) => void;\n\n selectedPattern: string | null;\n setSelectedPattern: (id: string | null) => void;\n\n expandedFolders: Set<string>;\n toggleFolderExpanded: (path: string) => void;\n\n // Filters\n patternFilters: PatternFilters;\n setPatternFilters: (filters: PatternFilters) => void;\n\n violationFilters: ViolationFilters;\n setViolationFilters: (filters: ViolationFilters) => void;\n}\n\n/**\n * Create the dashboard store\n */\nexport const useDashboardStore = create<DashboardStore>((set) => ({\n // Connection state\n connectionStatus: 'disconnected',\n setConnectionStatus: (status) => set({ connectionStatus: status }),\n\n // Active tab\n activeTab: 'overview',\n setActiveTab: (tab) => set({ activeTab: tab }),\n\n // Realtime violations\n realtimeViolations: [],\n addRealtimeViolation: (violation) =>\n set((state) => ({\n realtimeViolations: [violation, ...state.realtimeViolations].slice(0, 100),\n })),\n clearRealtimeViolations: () => set({ realtimeViolations: [] }),\n\n // UI state\n expandedViolations: new Set(),\n toggleViolationExpanded: (id) =>\n set((state) => {\n const newSet = new Set(state.expandedViolations);\n if (newSet.has(id)) {\n newSet.delete(id);\n } else {\n newSet.add(id);\n }\n return { expandedViolations: newSet };\n }),\n\n selectedPattern: null,\n setSelectedPattern: (id) => set({ selectedPattern: id }),\n\n expandedFolders: new Set(),\n toggleFolderExpanded: (path) =>\n set((state) => {\n const newSet = new Set(state.expandedFolders);\n if (newSet.has(path)) {\n newSet.delete(path);\n } else {\n newSet.add(path);\n }\n return { expandedFolders: newSet };\n }),\n\n // Filters\n patternFilters: {},\n setPatternFilters: (filters) => set({ patternFilters: filters }),\n\n violationFilters: {},\n setViolationFilters: (filters) => set({ violationFilters: filters }),\n}));\n","/**\n * API Hooks\n *\n * React Query hooks for fetching data from the dashboard API.\n */\n\nimport { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';\nimport type {\n Pattern,\n PatternWithLocations,\n Violation,\n FileTreeNode,\n FileDetails,\n DashboardStats,\n DriftConfig,\n PatternFilters,\n ViolationFilters,\n PatternStatus,\n} from '../types';\n\nconst API_BASE = '/api';\n\nasync function fetchJson<T>(url: string): Promise<T> {\n const response = await fetch(`${API_BASE}${url}`);\n if (!response.ok) {\n throw new Error(`API error: ${response.status} ${response.statusText}`);\n }\n return response.json();\n}\n\nasync function postJson<T>(url: string, body?: unknown): Promise<T> {\n const response = await fetch(`${API_BASE}${url}`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: body ? JSON.stringify(body) : undefined,\n });\n if (!response.ok) {\n throw new Error(`API error: ${response.status} ${response.statusText}`);\n }\n return response.json();\n}\n\nasync function patchJson<T>(url: string, body: unknown): Promise<T> {\n const response = await fetch(`${API_BASE}${url}`, {\n method: 'PATCH',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(body),\n });\n if (!response.ok) {\n throw new Error(`API error: ${response.status} ${response.statusText}`);\n }\n return response.json();\n}\n\nasync function deleteRequest<T>(url: string): Promise<T> {\n const response = await fetch(`${API_BASE}${url}`, { method: 'DELETE' });\n if (!response.ok) {\n throw new Error(`API error: ${response.status} ${response.statusText}`);\n }\n return response.json();\n}\n\n// Stats hooks\nexport function useStats() {\n return useQuery({\n queryKey: ['stats'],\n queryFn: () => fetchJson<DashboardStats>('/stats'),\n refetchInterval: 30_000,\n });\n}\n\n// Pattern hooks\nexport function usePatterns(filters?: PatternFilters) {\n const params = new URLSearchParams();\n if (filters?.category) params.set('category', filters.category);\n if (filters?.status) params.set('status', filters.status);\n if (filters?.minConfidence) params.set('minConfidence', String(filters.minConfidence));\n if (filters?.search) params.set('search', filters.search);\n\n const queryString = params.toString();\n return useQuery({\n queryKey: ['patterns', filters],\n queryFn: () => fetchJson<Pattern[]>(`/patterns${queryString ? `?${queryString}` : ''}`),\n });\n}\n\nexport function usePattern(id: string | null) {\n return useQuery({\n queryKey: ['pattern', id],\n queryFn: () => fetchJson<PatternWithLocations>(`/patterns/${id}`),\n enabled: !!id,\n });\n}\n\nexport function useApprovePattern() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: (id: string) => postJson<{ success: boolean }>(`/patterns/${id}/approve`),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['patterns'] });\n queryClient.invalidateQueries({ queryKey: ['stats'] });\n },\n });\n}\n\nexport function useIgnorePattern() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: (id: string) => postJson<{ success: boolean }>(`/patterns/${id}/ignore`),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['patterns'] });\n queryClient.invalidateQueries({ queryKey: ['stats'] });\n },\n });\n}\n\nexport function useDeletePattern() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: (id: string) => deleteRequest<{ success: boolean }>(`/patterns/${id}`),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['patterns'] });\n queryClient.invalidateQueries({ queryKey: ['stats'] });\n },\n });\n}\n\nexport function useBulkApprovePatterns() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: (ids: string[]) => postJson<{ \n success: boolean; \n message: string;\n results: { id: string; success: boolean; error?: string }[] \n }>('/patterns/bulk-approve', { ids }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['patterns'] });\n queryClient.invalidateQueries({ queryKey: ['stats'] });\n },\n });\n}\n\n// Violation hooks\nexport function useViolations(filters?: ViolationFilters) {\n const params = new URLSearchParams();\n if (filters?.severity) params.set('severity', filters.severity);\n if (filters?.file) params.set('file', filters.file);\n if (filters?.patternId) params.set('patternId', filters.patternId);\n if (filters?.search) params.set('search', filters.search);\n\n const queryString = params.toString();\n return useQuery({\n queryKey: ['violations', filters],\n queryFn: () => fetchJson<Violation[]>(`/violations${queryString ? `?${queryString}` : ''}`),\n });\n}\n\nexport function useViolation(id: string | null) {\n return useQuery({\n queryKey: ['violation', id],\n queryFn: () => fetchJson<Violation>(`/violations/${id}`),\n enabled: !!id,\n });\n}\n\n// File hooks\nexport function useFileTree() {\n return useQuery({\n queryKey: ['files', 'tree'],\n queryFn: () => fetchJson<FileTreeNode[]>('/files'),\n });\n}\n\nexport function useFileDetails(path: string | null) {\n return useQuery({\n queryKey: ['files', 'details', path],\n queryFn: () => fetchJson<FileDetails>(`/files/${encodeURIComponent(path!)}`),\n enabled: !!path,\n });\n}\n\n// Config hooks\nexport function useConfig() {\n return useQuery({\n queryKey: ['config'],\n queryFn: () => fetchJson<DriftConfig>('/config'),\n });\n}\n\nexport function useUpdateConfig() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: (config: Partial<DriftConfig>) => patchJson<DriftConfig>('/config', config),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['config'] });\n },\n });\n}\n\n// Code snippet hook\nexport interface CodeSnippet {\n code: string;\n startLine: number;\n endLine: number;\n language: string;\n}\n\nexport async function fetchCodeSnippet(file: string, line: number, context: number = 3): Promise<CodeSnippet> {\n return fetchJson<CodeSnippet>(`/snippet?file=${encodeURIComponent(file)}&line=${line}&context=${context}`);\n}\n\n// Contract hooks (BE↔FE mismatch detection)\nimport type { Contract, ContractStats, ContractFilters } from '../types';\n\nexport function useContracts(filters?: ContractFilters) {\n const params = new URLSearchParams();\n if (filters?.status) params.set('status', filters.status);\n if (filters?.method) params.set('method', filters.method);\n if (filters?.hasMismatches !== undefined) params.set('hasMismatches', String(filters.hasMismatches));\n if (filters?.search) params.set('search', filters.search);\n\n const queryString = params.toString();\n return useQuery({\n queryKey: ['contracts', filters],\n queryFn: () => fetchJson<Contract[]>(`/contracts${queryString ? `?${queryString}` : ''}`),\n });\n}\n\nexport function useContract(id: string | null) {\n return useQuery({\n queryKey: ['contract', id],\n queryFn: () => fetchJson<Contract>(`/contracts/${id}`),\n enabled: !!id,\n });\n}\n\nexport function useContractStats() {\n return useQuery({\n queryKey: ['contracts', 'stats'],\n queryFn: () => fetchJson<ContractStats>('/contracts/stats'),\n });\n}\n\nexport function useVerifyContract() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: (id: string) => postJson<{ success: boolean }>(`/contracts/${id}/verify`),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['contracts'] });\n },\n });\n}\n\nexport function useIgnoreContract() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: (id: string) => postJson<{ success: boolean }>(`/contracts/${id}/ignore`),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['contracts'] });\n },\n });\n}\n\n// Trend hooks (pattern regression detection)\nimport type { TrendSummary, HistorySnapshot } from '../types';\n\nexport function useTrends(period: '7d' | '30d' | '90d' = '7d') {\n return useQuery({\n queryKey: ['trends', period],\n queryFn: () => fetchJson<TrendSummary>(`/trends?period=${period}`),\n refetchInterval: 60_000, // Refresh every minute\n });\n}\n\nexport function useSnapshots(limit: number = 30) {\n return useQuery({\n queryKey: ['trends', 'snapshots', limit],\n queryFn: () => fetchJson<HistorySnapshot[]>(`/trends/snapshots?limit=${limit}`),\n });\n}\n","/**\n * WebSocket Hook\n *\n * Manages WebSocket connection for real-time updates.\n */\n\nimport { useEffect, useRef, useCallback } from 'react';\nimport { useQueryClient } from '@tanstack/react-query';\nimport { useDashboardStore } from '../store';\nimport type { WebSocketMessage, Violation } from '../types';\n\nconst WS_RECONNECT_DELAY = 3000;\nconst WS_PING_INTERVAL = 30000;\n\nexport function useWebSocket() {\n const wsRef = useRef<WebSocket | null>(null);\n const pingIntervalRef = useRef<ReturnType<typeof setInterval> | null>(null);\n const reconnectTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const queryClient = useQueryClient();\n\n const { setConnectionStatus, addRealtimeViolation } = useDashboardStore();\n\n const connect = useCallback(() => {\n // Clean up existing connection\n if (wsRef.current) {\n wsRef.current.close();\n }\n\n setConnectionStatus('connecting');\n\n const protocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:';\n const wsUrl = `${protocol}//${window.location.host}/ws`;\n\n try {\n const ws = new WebSocket(wsUrl);\n wsRef.current = ws;\n\n ws.onopen = () => {\n setConnectionStatus('connected');\n\n // Start ping interval\n pingIntervalRef.current = setInterval(() => {\n if (ws.readyState === WebSocket.OPEN) {\n ws.send(JSON.stringify({ type: 'ping' }));\n }\n }, WS_PING_INTERVAL);\n };\n\n ws.onmessage = (event) => {\n try {\n const message: WebSocketMessage = JSON.parse(event.data);\n handleMessage(message);\n } catch {\n console.error('Failed to parse WebSocket message');\n }\n };\n\n ws.onclose = () => {\n setConnectionStatus('disconnected');\n cleanup();\n scheduleReconnect();\n };\n\n ws.onerror = () => {\n setConnectionStatus('disconnected');\n };\n } catch {\n setConnectionStatus('disconnected');\n scheduleReconnect();\n }\n }, [setConnectionStatus]);\n\n const handleMessage = useCallback(\n (message: WebSocketMessage) => {\n switch (message.type) {\n case 'violation':\n addRealtimeViolation(message.payload);\n queryClient.invalidateQueries({ queryKey: ['violations'] });\n queryClient.invalidateQueries({ queryKey: ['stats'] });\n break;\n\n case 'pattern_updated':\n queryClient.invalidateQueries({ queryKey: ['patterns'] });\n queryClient.invalidateQueries({ queryKey: ['pattern', message.payload.id] });\n queryClient.invalidateQueries({ queryKey: ['stats'] });\n break;\n\n case 'patterns_changed':\n // Pattern files changed on disk (e.g., from watch mode)\n // Invalidate all pattern-related queries to refresh data\n queryClient.invalidateQueries({ queryKey: ['patterns'] });\n queryClient.invalidateQueries({ queryKey: ['stats'] });\n queryClient.invalidateQueries({ queryKey: ['violations'] });\n queryClient.invalidateQueries({ queryKey: ['files'] });\n break;\n\n case 'stats_updated':\n queryClient.setQueryData(['stats'], message.payload);\n break;\n\n case 'pong':\n // Connection is alive\n break;\n }\n },\n [addRealtimeViolation, queryClient]\n );\n\n const cleanup = useCallback(() => {\n if (pingIntervalRef.current) {\n clearInterval(pingIntervalRef.current);\n pingIntervalRef.current = null;\n }\n }, []);\n\n const scheduleReconnect = useCallback(() => {\n if (reconnectTimeoutRef.current) {\n clearTimeout(reconnectTimeoutRef.current);\n }\n reconnectTimeoutRef.current = setTimeout(connect, WS_RECONNECT_DELAY);\n }, [connect]);\n\n const disconnect = useCallback(() => {\n if (reconnectTimeoutRef.current) {\n clearTimeout(reconnectTimeoutRef.current);\n reconnectTimeoutRef.current = null;\n }\n cleanup();\n if (wsRef.current) {\n wsRef.current.close();\n wsRef.current = null;\n }\n setConnectionStatus('disconnected');\n }, [cleanup, setConnectionStatus]);\n\n useEffect(() => {\n connect();\n return () => {\n disconnect();\n };\n }, [connect, disconnect]);\n\n return { connect, disconnect };\n}\n","/**\n * Trends Panel Component\n * \n * Displays pattern regressions and improvements over time.\n */\n\nimport React, { useState } from 'react';\nimport { useTrends } from '../../hooks';\n\ntype Period = '7d' | '30d' | '90d';\n\ninterface TrendItemProps {\n patternName: string;\n category: string;\n type: 'regression' | 'improvement';\n metric: string;\n previousValue: number;\n currentValue: number;\n changePercent: number;\n severity: 'critical' | 'warning' | 'info';\n details: string;\n}\n\nfunction TrendItem({ \n patternName, \n category, \n type, \n previousValue, \n currentValue, \n changePercent,\n severity,\n details \n}: TrendItemProps) {\n const isRegression = type === 'regression';\n \n const severityStyles = {\n critical: 'border-l-severity-error bg-severity-error/5',\n warning: 'border-l-severity-warning bg-severity-warning/5',\n info: 'border-l-status-approved bg-status-approved/5',\n };\n\n const changeColor = isRegression ? 'text-severity-error' : 'text-status-approved';\n const arrow = isRegression ? '↓' : '↑';\n\n return (\n <div className={`p-3 rounded-lg border-l-4 ${severityStyles[severity]}`}>\n <div className=\"flex items-start justify-between gap-2\">\n <div className=\"flex-1 min-w-0\">\n <div className=\"font-medium text-sm truncate\">{patternName}</div>\n <div className=\"text-xs text-dark-muted mt-0.5\">{category}</div>\n </div>\n <div className={`text-right ${changeColor}`}>\n <div className=\"font-semibold text-sm\">\n {arrow} {Math.abs(changePercent).toFixed(0)}%\n </div>\n <div className=\"text-xs text-dark-muted\">\n {(previousValue * 100).toFixed(0)}% → {(currentValue * 100).toFixed(0)}%\n </div>\n </div>\n </div>\n <div className=\"text-xs text-dark-muted mt-2\">{details}</div>\n </div>\n );\n}\n\nfunction PeriodSelector({ \n period, \n onChange \n}: { \n period: Period; \n onChange: (p: Period) => void;\n}) {\n const periods: { value: Period; label: string }[] = [\n { value: '7d', label: '7 days' },\n { value: '30d', label: '30 days' },\n { value: '90d', label: '90 days' },\n ];\n\n return (\n <div className=\"flex gap-1 bg-dark-bg rounded-lg p-1\">\n {periods.map(({ value, label }) => (\n <button\n key={value}\n onClick={() => onChange(value)}\n className={`px-3 py-1 text-xs rounded transition-colors ${\n period === value\n ? 'bg-dark-surface text-dark-text'\n : 'text-dark-muted hover:text-dark-text'\n }`}\n >\n {label}\n </button>\n ))}\n </div>\n );\n}\n\nfunction OverallTrendBadge({ \n trend, \n healthDelta \n}: { \n trend: 'improving' | 'declining' | 'stable';\n healthDelta: number;\n}) {\n const config = {\n improving: { \n icon: '📈', \n label: 'Improving', \n color: 'text-status-approved',\n bg: 'bg-status-approved/10'\n },\n declining: { \n icon: '📉', \n label: 'Declining', \n color: 'text-severity-error',\n bg: 'bg-severity-error/10'\n },\n stable: { \n icon: '➡️', \n label: 'Stable', \n color: 'text-dark-muted',\n bg: 'bg-dark-surface'\n },\n }[trend];\n\n return (\n <div className={`flex items-center gap-2 px-3 py-1.5 rounded-lg ${config.bg}`}>\n <span>{config.icon}</span>\n <span className={`text-sm font-medium ${config.color}`}>{config.label}</span>\n {healthDelta !== 0 && (\n <span className={`text-xs ${config.color}`}>\n ({healthDelta > 0 ? '+' : ''}{(healthDelta * 100).toFixed(1)}%)\n </span>\n )}\n </div>\n );\n}\n\nexport function TrendsPanel() {\n const [period, setPeriod] = useState<Period>('7d');\n const { data: trends, isLoading, error } = useTrends(period);\n\n if (isLoading) {\n return (\n <div className=\"card\">\n <div className=\"flex items-center justify-between mb-4\">\n <h3 className=\"text-sm font-medium text-dark-muted uppercase tracking-wide\">\n Pattern Trends\n </h3>\n </div>\n <div className=\"text-dark-muted text-sm\">Loading trends...</div>\n </div>\n );\n }\n\n if (error) {\n return (\n <div className=\"card\">\n <div className=\"flex items-center justify-between mb-4\">\n <h3 className=\"text-sm font-medium text-dark-muted uppercase tracking-wide\">\n Pattern Trends\n </h3>\n </div>\n <div className=\"text-severity-error text-sm\">Failed to load trends</div>\n </div>\n );\n }\n\n const hasData = trends && (trends.regressions?.length > 0 || trends.improvements?.length > 0);\n const regressions = trends?.regressions || [];\n const improvements = trends?.improvements || [];\n\n return (\n <div className=\"card\">\n <div className=\"flex items-center justify-between mb-4\">\n <h3 className=\"text-sm font-medium text-dark-muted uppercase tracking-wide\">\n Pattern Trends\n </h3>\n <PeriodSelector period={period} onChange={setPeriod} />\n </div>\n\n {!hasData ? (\n <div className=\"text-center py-8\">\n <div className=\"text-4xl mb-2\">📊</div>\n <div className=\"text-dark-muted text-sm\">\n Not enough history data yet.\n </div>\n <div className=\"text-dark-muted text-xs mt-1\">\n Run more scans to see pattern trends over time.\n </div>\n </div>\n ) : (\n <div className=\"space-y-4\">\n {/* Overall trend */}\n <div className=\"flex items-center justify-between\">\n <OverallTrendBadge \n trend={trends.overallTrend} \n healthDelta={trends.healthDelta} \n />\n <div className=\"text-xs text-dark-muted\">\n {trends.startDate} → {trends.endDate}\n </div>\n </div>\n\n {/* Summary stats */}\n <div className=\"grid grid-cols-3 gap-3 text-center\">\n <div className=\"p-2 bg-severity-error/10 rounded\">\n <div className=\"text-lg font-semibold text-severity-error\">\n {regressions.length}\n </div>\n <div className=\"text-xs text-dark-muted\">Regressions</div>\n </div>\n <div className=\"p-2 bg-status-approved/10 rounded\">\n <div className=\"text-lg font-semibold text-status-approved\">\n {improvements.length}\n </div>\n <div className=\"text-xs text-dark-muted\">Improvements</div>\n </div>\n <div className=\"p-2 bg-dark-surface rounded\">\n <div className=\"text-lg font-semibold text-dark-muted\">\n {trends.stable}\n </div>\n <div className=\"text-xs text-dark-muted\">Stable</div>\n </div>\n </div>\n\n {/* Regressions */}\n {regressions.length > 0 && (\n <div>\n <div className=\"text-xs font-medium text-severity-error mb-2 flex items-center gap-1\">\n <span>📉</span> Regressions ({regressions.length})\n </div>\n <div className=\"space-y-2\">\n {regressions.slice(0, 5).map((r, i) => (\n <TrendItem\n key={`${r.patternId}-${i}`}\n patternName={r.patternName}\n category={r.category}\n type=\"regression\"\n metric={r.metric}\n previousValue={r.previousValue}\n currentValue={r.currentValue}\n changePercent={r.changePercent}\n severity={r.severity}\n details={r.details}\n />\n ))}\n {regressions.length > 5 && (\n <div className=\"text-xs text-dark-muted text-center\">\n +{regressions.length - 5} more regressions\n </div>\n )}\n </div>\n </div>\n )}\n\n {/* Improvements */}\n {improvements.length > 0 && (\n <div>\n <div className=\"text-xs font-medium text-status-approved mb-2 flex items-center gap-1\">\n <span>📈</span> Improvements ({improvements.length})\n </div>\n <div className=\"space-y-2\">\n {improvements.slice(0, 3).map((r, i) => (\n <TrendItem\n key={`${r.patternId}-${i}`}\n patternName={r.patternName}\n category={r.category}\n type=\"improvement\"\n metric={r.metric}\n previousValue={r.previousValue}\n currentValue={r.currentValue}\n changePercent={r.changePercent}\n severity={r.severity}\n details={r.details}\n />\n ))}\n {improvements.length > 3 && (\n <div className=\"text-xs text-dark-muted text-center\">\n +{improvements.length - 3} more improvements\n </div>\n )}\n </div>\n </div>\n )}\n </div>\n )}\n </div>\n );\n}\n","/**\n * Overview Tab Component\n *\n * Displays health score, summary stats, and recent activity.\n */\n\nimport React from 'react';\nimport { useStats, useViolations } from '../hooks';\nimport { useDashboardStore } from '../store';\nimport { TrendsPanel } from './trends';\nimport type { Severity, PatternStatus } from '../types';\n\nfunction StatCard({\n label,\n value,\n subtext,\n}: {\n label: string;\n value: string | number;\n subtext?: string;\n}) {\n return (\n <div className=\"card\">\n <div className=\"text-sm text-dark-muted mb-1\">{label}</div>\n <div className=\"text-2xl font-semibold\">{value}</div>\n {subtext && <div className=\"text-xs text-dark-muted mt-1\">{subtext}</div>}\n </div>\n );\n}\n\nfunction HealthScore({ score }: { score: number }) {\n const getColor = () => {\n if (score >= 80) return 'text-status-approved';\n if (score >= 60) return 'text-severity-warning';\n return 'text-severity-error';\n };\n\n return (\n <div className=\"card flex flex-col items-center justify-center py-8\">\n <div className=\"text-sm text-dark-muted mb-2\">Health Score</div>\n <div className={`text-5xl font-bold ${getColor()}`}>{score}</div>\n <div className=\"text-xs text-dark-muted mt-2\">out of 100</div>\n </div>\n );\n}\n\nfunction SeverityBreakdown({ bySeverity }: { bySeverity: Record<Severity, number> }) {\n const items: { severity: Severity; label: string; className: string }[] = [\n { severity: 'error', label: 'Errors', className: 'badge-error' },\n { severity: 'warning', label: 'Warnings', className: 'badge-warning' },\n { severity: 'info', label: 'Info', className: 'badge-info' },\n { severity: 'hint', label: 'Hints', className: 'badge-hint' },\n ];\n\n return (\n <div className=\"card\">\n <div className=\"text-sm text-dark-muted mb-3\">Violations by Severity</div>\n <div className=\"space-y-2\">\n {items.map(({ severity, label, className }) => (\n <div key={severity} className=\"flex items-center justify-between\">\n <span className={`px-2 py-0.5 rounded text-xs ${className}`}>{label}</span>\n <span className=\"font-medium\">{bySeverity[severity] || 0}</span>\n </div>\n ))}\n </div>\n </div>\n );\n}\n\nfunction StatusBreakdown({ byStatus }: { byStatus: Record<PatternStatus, number> }) {\n const items: { status: PatternStatus; label: string; className: string }[] = [\n { status: 'discovered', label: 'Discovered', className: 'badge-discovered' },\n { status: 'approved', label: 'Approved', className: 'badge-approved' },\n { status: 'ignored', label: 'Ignored', className: 'badge-ignored' },\n ];\n\n return (\n <div className=\"card\">\n <div className=\"text-sm text-dark-muted mb-3\">Patterns by Status</div>\n <div className=\"space-y-2\">\n {items.map(({ status, label, className }) => (\n <div key={status} className=\"flex items-center justify-between\">\n <span className={`px-2 py-0.5 rounded text-xs ${className}`}>{label}</span>\n <span className=\"font-medium\">{byStatus[status] || 0}</span>\n </div>\n ))}\n </div>\n </div>\n );\n}\n\nfunction RecentViolations() {\n const { realtimeViolations } = useDashboardStore();\n const { data: violations } = useViolations();\n\n const displayViolations = realtimeViolations.length > 0 \n ? realtimeViolations.slice(0, 5)\n : (violations || []).slice(0, 5);\n\n if (displayViolations.length === 0) {\n return (\n <div className=\"card\">\n <div className=\"text-sm text-dark-muted mb-3\">Recent Violations</div>\n <div className=\"text-dark-muted text-sm\">No violations detected</div>\n </div>\n );\n }\n\n return (\n <div className=\"card\">\n <div className=\"text-sm text-dark-muted mb-3\">Recent Violations</div>\n <div className=\"space-y-2\">\n {displayViolations.map((v) => (\n <div\n key={v.id}\n className=\"flex items-start gap-2 p-2 rounded bg-dark-bg/50\"\n >\n <span className={`px-1.5 py-0.5 rounded text-xs badge-${v.severity}`}>\n {v.severity}\n </span>\n <div className=\"flex-1 min-w-0\">\n <div className=\"text-sm truncate\">{v.message}</div>\n <div className=\"text-xs text-dark-muted truncate\">{v.file}</div>\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n}\n\nexport function OverviewTab(): React.ReactElement {\n const { data: stats, isLoading, error } = useStats();\n\n if (isLoading) {\n return (\n <div className=\"flex items-center justify-center h-64\">\n <div className=\"text-dark-muted\">Loading stats...</div>\n </div>\n );\n }\n\n if (error || !stats) {\n return (\n <div className=\"flex items-center justify-center h-64\">\n <div className=\"text-severity-error\">Failed to load stats</div>\n </div>\n );\n }\n\n return (\n <div className=\"space-y-6\">\n {/* Top row: Health score and key stats */}\n <div className=\"grid grid-cols-1 md:grid-cols-4 gap-4\">\n <HealthScore score={stats.healthScore} />\n <StatCard\n label=\"Total Patterns\"\n value={stats.patterns.total}\n subtext={`${stats.patterns.byStatus.approved || 0} approved`}\n />\n <StatCard\n label=\"Total Violations\"\n value={stats.violations.total}\n subtext={`${stats.violations.bySeverity.error || 0} errors`}\n />\n <StatCard\n label=\"Files Scanned\"\n value={stats.files.scanned}\n subtext={`of ${stats.files.total} total`}\n />\n </div>\n\n {/* Second row: Breakdowns */}\n <div className=\"grid grid-cols-1 md:grid-cols-3 gap-4\">\n <SeverityBreakdown bySeverity={stats.violations.bySeverity} />\n <StatusBreakdown byStatus={stats.patterns.byStatus} />\n <RecentViolations />\n </div>\n\n {/* Third row: Trends */}\n <div className=\"grid grid-cols-1 gap-4\">\n <TrendsPanel />\n </div>\n\n {/* Last scan info */}\n {stats.lastScan && (\n <div className=\"text-sm text-dark-muted text-center\">\n Last scan: {new Date(stats.lastScan).toLocaleString()}\n </div>\n )}\n </div>\n );\n}\n","/**\n * Pattern Tab Constants\n * \n * Centralized configuration for pattern display and categorization.\n */\n\nimport type { PatternCategory, PatternStatus } from '../../types';\n\n// ============================================================================\n// Category Configuration\n// ============================================================================\n\nexport const CATEGORY_ORDER: PatternCategory[] = [\n 'api', 'auth', 'security', 'errors', 'logging', 'data-access',\n 'config', 'testing', 'performance', 'components', 'styling',\n 'structural', 'types', 'accessibility', 'documentation', \n 'validation', 'error-handling', 'other'\n];\n\nexport const CATEGORY_CONFIG: Record<PatternCategory, {\n label: string;\n icon: string;\n description: string;\n color: string;\n}> = {\n 'api': {\n label: 'API Patterns',\n icon: '🔌',\n description: 'HTTP routes, responses, and API communication patterns',\n color: 'text-blue-400',\n },\n 'auth': {\n label: 'Authentication',\n icon: '🔐',\n description: 'Login, sessions, permissions, and access control',\n color: 'text-purple-400',\n },\n 'security': {\n label: 'Security',\n icon: '🛡️',\n description: 'Input validation, sanitization, and security practices',\n color: 'text-red-400',\n },\n 'errors': {\n label: 'Error Handling',\n icon: '⚠️',\n description: 'Error throwing, catching, and handling patterns',\n color: 'text-orange-400',\n },\n 'logging': {\n label: 'Logging',\n icon: '📝',\n description: 'Console logs, debug statements, and logging conventions',\n color: 'text-gray-400',\n },\n 'data-access': {\n label: 'Data Access',\n icon: '💾',\n description: 'Database queries, ORM usage, and data fetching',\n color: 'text-green-400',\n },\n 'config': {\n label: 'Configuration',\n icon: '⚙️',\n description: 'Environment variables, settings, and config management',\n color: 'text-slate-400',\n },\n 'testing': {\n label: 'Testing',\n icon: '🧪',\n description: 'Test structure, mocking patterns, and test utilities',\n color: 'text-cyan-400',\n },\n 'performance': {\n label: 'Performance',\n icon: '⚡',\n description: 'Caching, memoization, and optimization patterns',\n color: 'text-yellow-400',\n },\n 'components': {\n label: 'Components',\n icon: '🧩',\n description: 'React component structure, hooks, and state management',\n color: 'text-pink-400',\n },\n 'styling': {\n label: 'Styling',\n icon: '🎨',\n description: 'CSS classes, design tokens, Tailwind usage, theming',\n color: 'text-fuchsia-400',\n },\n 'structural': {\n label: 'Structural',\n icon: '📁',\n description: 'File naming, imports, exports, and code organization',\n color: 'text-amber-400',\n },\n 'types': {\n label: 'Types',\n icon: '📋',\n description: 'TypeScript types, interfaces, and type definitions',\n color: 'text-indigo-400',\n },\n 'accessibility': {\n label: 'Accessibility',\n icon: '♿',\n description: 'ARIA labels, keyboard navigation, screen reader support',\n color: 'text-teal-400',\n },\n 'documentation': {\n label: 'Documentation',\n icon: '📚',\n description: 'Comments, JSDoc, README patterns',\n color: 'text-emerald-400',\n },\n 'validation': {\n label: 'Validation',\n icon: '✅',\n description: 'Input validation, schema validation, and data checks',\n color: 'text-lime-400',\n },\n 'error-handling': {\n label: 'Error Handling',\n icon: '🚨',\n description: 'Error boundaries, fallbacks, and recovery patterns',\n color: 'text-rose-400',\n },\n 'other': {\n label: 'Other',\n icon: '📦',\n description: 'Patterns that don\\'t fit other categories',\n color: 'text-neutral-400',\n },\n};\n\n// ============================================================================\n// Status Configuration\n// ============================================================================\n\nexport const STATUS_CONFIG: Record<PatternStatus, {\n label: string;\n icon: string;\n color: string;\n bgColor: string;\n description: string;\n}> = {\n discovered: {\n label: 'Discovered',\n icon: '🔍',\n color: 'text-blue-400',\n bgColor: 'bg-blue-500/10 border-blue-500/20',\n description: 'Newly detected pattern awaiting review',\n },\n approved: {\n label: 'Approved',\n icon: '✓',\n color: 'text-status-approved',\n bgColor: 'bg-status-approved/10 border-status-approved/20',\n description: 'Verified as an intentional pattern',\n },\n ignored: {\n label: 'Ignored',\n icon: '✗',\n color: 'text-dark-muted',\n bgColor: 'bg-dark-muted/10 border-dark-muted/20',\n description: 'Marked as not relevant or false positive',\n },\n};\n\n// ============================================================================\n// Confidence Thresholds\n// ============================================================================\n\nexport const CONFIDENCE_THRESHOLDS = {\n HIGH: 0.95,\n MEDIUM: 0.70,\n LOW: 0.50,\n} as const;\n\nexport const CONFIDENCE_CONFIG = {\n high: {\n label: 'High Confidence',\n color: 'text-status-approved',\n bgColor: 'bg-status-approved/10',\n threshold: CONFIDENCE_THRESHOLDS.HIGH,\n },\n medium: {\n label: 'Medium Confidence',\n color: 'text-severity-warning',\n bgColor: 'bg-severity-warning/10',\n threshold: CONFIDENCE_THRESHOLDS.MEDIUM,\n },\n low: {\n label: 'Low Confidence',\n color: 'text-orange-400',\n bgColor: 'bg-orange-400/10',\n threshold: CONFIDENCE_THRESHOLDS.LOW,\n },\n uncertain: {\n label: 'Uncertain',\n color: 'text-severity-error',\n bgColor: 'bg-severity-error/10',\n threshold: 0,\n },\n} as const;\n\n// ============================================================================\n// Display Limits\n// ============================================================================\n\nexport const DISPLAY_LIMITS = {\n LOCATIONS_PREVIEW: 20,\n OUTLIERS_PREVIEW: 10,\n QUICK_REVIEW_LOCATIONS: 3,\n QUICK_REVIEW_OUTLIERS: 5,\n NEEDS_REVIEW_OUTLIERS: 15,\n NEEDS_REVIEW_LOCATIONS: 5,\n REALTIME_VIOLATIONS: 100,\n} as const;\n","/**\n * Pattern Tab Utilities\n * \n * Data transformation, aggregation, and helper functions.\n */\n\nimport type { Pattern, PatternCategory, PatternStatus } from '../../types';\nimport type { \n CategoryGroup, \n DetectorGroup, \n PatternMetrics, \n PatternStatistics,\n SortConfig,\n ReviewablePattern,\n} from './types';\nimport { CATEGORY_ORDER, CATEGORY_CONFIG, CONFIDENCE_THRESHOLDS } from './constants';\n\n// ============================================================================\n// Metrics Calculation\n// ============================================================================\n\nexport function calculateMetrics(patterns: Pattern[]): PatternMetrics {\n if (patterns.length === 0) {\n return {\n totalLocations: 0,\n totalOutliers: 0,\n avgConfidence: 0,\n minConfidence: 0,\n maxConfidence: 0,\n complianceRate: 0,\n };\n }\n\n const totalLocations = patterns.reduce((sum, p) => sum + p.locationCount, 0);\n const totalOutliers = patterns.reduce((sum, p) => sum + p.outlierCount, 0);\n const confidences = patterns.map(p => p.confidence.score);\n const avgConfidence = confidences.reduce((a, b) => a + b, 0) / confidences.length;\n const total = totalLocations + totalOutliers;\n\n return {\n totalLocations,\n totalOutliers,\n avgConfidence,\n minConfidence: Math.min(...confidences),\n maxConfidence: Math.max(...confidences),\n complianceRate: total > 0 ? totalLocations / total : 1,\n };\n}\n\nexport function calculateStatistics(patterns: Pattern[]): PatternStatistics {\n const byStatus: Record<PatternStatus, number> = {\n discovered: 0,\n approved: 0,\n ignored: 0,\n };\n\n const byCategory: Record<PatternCategory, number> = {} as Record<PatternCategory, number>;\n const byConfidenceLevel = { high: 0, medium: 0, low: 0, uncertain: 0 };\n\n let totalOutliers = 0;\n let totalConfidence = 0;\n let totalLocations = 0;\n\n for (const pattern of patterns) {\n byStatus[pattern.status]++;\n byCategory[pattern.category] = (byCategory[pattern.category] || 0) + 1;\n totalOutliers += pattern.outlierCount;\n totalConfidence += pattern.confidence.score;\n totalLocations += pattern.locationCount;\n\n if (pattern.confidence.score >= CONFIDENCE_THRESHOLDS.HIGH) {\n byConfidenceLevel.high++;\n } else if (pattern.confidence.score >= CONFIDENCE_THRESHOLDS.MEDIUM) {\n byConfidenceLevel.medium++;\n } else if (pattern.confidence.score >= CONFIDENCE_THRESHOLDS.LOW) {\n byConfidenceLevel.low++;\n } else {\n byConfidenceLevel.uncertain++;\n }\n }\n\n const discovered = patterns.filter(p => p.status === 'discovered');\n const needsReview = discovered.filter(p => p.confidence.score < CONFIDENCE_THRESHOLDS.HIGH).length;\n const readyForApproval = discovered.filter(p => p.confidence.score >= CONFIDENCE_THRESHOLDS.HIGH).length;\n const total = totalLocations + totalOutliers;\n\n return {\n total: patterns.length,\n byStatus,\n byCategory,\n byConfidenceLevel,\n needsReview,\n readyForApproval,\n totalOutliers,\n avgConfidence: patterns.length > 0 ? totalConfidence / patterns.length : 0,\n complianceRate: total > 0 ? totalLocations / total : 1,\n };\n}\n\n// ============================================================================\n// Pattern Grouping\n// ============================================================================\n\nfunction extractDetectorName(patternName: string): string {\n return patternName\n .replace(/ Detector$/, '')\n .replace(/ Pattern$/, '')\n .trim();\n}\n\nfunction getDominantStatus(statuses: Set<PatternStatus>): PatternStatus {\n if (statuses.has('approved')) return 'approved';\n if (statuses.has('ignored')) return 'ignored';\n return 'discovered';\n}\n\nexport function groupPatternsByCategory(patterns: Pattern[]): CategoryGroup[] {\n // Group by category -> detector name\n const categoryMap = new Map<PatternCategory, Map<string, Pattern[]>>();\n\n for (const pattern of patterns) {\n const category = pattern.category;\n if (!categoryMap.has(category)) {\n categoryMap.set(category, new Map());\n }\n\n const detectorMap = categoryMap.get(category)!;\n const detectorName = extractDetectorName(pattern.name);\n\n if (!detectorMap.has(detectorName)) {\n detectorMap.set(detectorName, []);\n }\n detectorMap.get(detectorName)!.push(pattern);\n }\n\n // Convert to sorted array\n const result: CategoryGroup[] = [];\n\n for (const category of CATEGORY_ORDER) {\n const detectorMap = categoryMap.get(category);\n if (!detectorMap || detectorMap.size === 0) continue;\n\n const config = CATEGORY_CONFIG[category];\n const detectors: DetectorGroup[] = [];\n\n for (const [detectorName, pats] of detectorMap) {\n const metrics = calculateMetrics(pats);\n const statuses = new Set(pats.map(p => p.status));\n\n detectors.push({\n id: `${category}-${detectorName}`,\n detectorName,\n category,\n patterns: pats,\n metrics,\n statuses,\n dominantStatus: getDominantStatus(statuses),\n });\n }\n\n // Sort detectors by location count (most common first)\n detectors.sort((a, b) => b.metrics.totalLocations - a.metrics.totalLocations);\n\n const categoryMetrics = calculateMetrics(\n detectors.flatMap(d => d.patterns)\n );\n\n result.push({\n category,\n label: config.label,\n description: config.description,\n icon: config.icon,\n detectors,\n metrics: categoryMetrics,\n patternCount: detectors.reduce((sum, d) => sum + d.patterns.length, 0),\n });\n }\n\n return result;\n}\n\n// ============================================================================\n// Sorting\n// ============================================================================\n\nexport function sortPatterns(patterns: Pattern[], config: SortConfig): Pattern[] {\n const sorted = [...patterns];\n const multiplier = config.direction === 'asc' ? 1 : -1;\n\n sorted.sort((a, b) => {\n switch (config.field) {\n case 'name':\n return multiplier * a.name.localeCompare(b.name);\n case 'confidence':\n return multiplier * (a.confidence.score - b.confidence.score);\n case 'locations':\n return multiplier * (a.locationCount - b.locationCount);\n case 'outliers':\n return multiplier * (a.outlierCount - b.outlierCount);\n case 'status':\n return multiplier * a.status.localeCompare(b.status);\n case 'category':\n return multiplier * a.category.localeCompare(b.category);\n default:\n return 0;\n }\n });\n\n return sorted;\n}\n\n// ============================================================================\n// Review Helpers\n// ============================================================================\n\nexport function getReviewablePatterns(\n patterns: Pattern[],\n type: 'quick' | 'needs-review'\n): ReviewablePattern[] {\n const threshold = CONFIDENCE_THRESHOLDS.HIGH;\n\n const filtered = patterns.filter(p => {\n if (p.status !== 'discovered') return false;\n return type === 'quick' \n ? p.confidence.score >= threshold\n : p.confidence.score < threshold;\n });\n\n return filtered.map(p => ({\n ...p,\n reviewPriority: calculateReviewPriority(p, type),\n reviewReason: getReviewReason(p, type),\n })).sort((a, b) => b.reviewPriority - a.reviewPriority);\n}\n\nfunction calculateReviewPriority(pattern: Pattern, type: 'quick' | 'needs-review'): number {\n if (type === 'quick') {\n // Higher confidence = higher priority for quick approval\n return pattern.confidence.score * 100 + pattern.locationCount;\n }\n // More outliers + lower confidence = higher priority for review\n return pattern.outlierCount * 10 + (1 - pattern.confidence.score) * 100;\n}\n\nfunction getReviewReason(pattern: Pattern, type: 'quick' | 'needs-review'): string {\n if (type === 'quick') {\n return `${Math.round(pattern.confidence.score * 100)}% confidence with ${pattern.locationCount} consistent locations`;\n }\n \n const reasons: string[] = [];\n if (pattern.confidence.score < CONFIDENCE_THRESHOLDS.MEDIUM) {\n reasons.push('low confidence');\n }\n if (pattern.outlierCount > 0) {\n reasons.push(`${pattern.outlierCount} outliers`);\n }\n return reasons.length > 0 ? reasons.join(', ') : 'needs manual verification';\n}\n\n// ============================================================================\n// Confidence Helpers\n// ============================================================================\n\nexport function getConfidenceLevel(score: number): 'high' | 'medium' | 'low' | 'uncertain' {\n if (score >= CONFIDENCE_THRESHOLDS.HIGH) return 'high';\n if (score >= CONFIDENCE_THRESHOLDS.MEDIUM) return 'medium';\n if (score >= CONFIDENCE_THRESHOLDS.LOW) return 'low';\n return 'uncertain';\n}\n\nexport function getConfidenceColor(score: number): string {\n const level = getConfidenceLevel(score);\n switch (level) {\n case 'high': return 'text-status-approved';\n case 'medium': return 'text-severity-warning';\n case 'low': return 'text-orange-400';\n case 'uncertain': return 'text-severity-error';\n }\n}\n\n// ============================================================================\n// Format Helpers\n// ============================================================================\n\nexport function formatPercentage(value: number): string {\n return `${Math.round(value * 100)}%`;\n}\n\nexport function formatCompactNumber(value: number): string {\n if (value >= 1000000) return `${(value / 1000000).toFixed(1)}M`;\n if (value >= 1000) return `${(value / 1000).toFixed(1)}K`;\n return value.toString();\n}\n\nexport function truncatePath(path: string, maxLength = 50): string {\n if (path.length <= maxLength) return path;\n const parts = path.split('/');\n const filename = parts.pop() || '';\n if (filename.length >= maxLength - 3) {\n return '...' + filename.slice(-(maxLength - 3));\n }\n return '.../' + filename;\n}\n","/**\n * Pattern Statistics Component\n * \n * Enterprise-grade statistics dashboard for pattern overview.\n */\n\n\nimport type { PatternStatistics } from './types';\nimport { STATUS_CONFIG, CONFIDENCE_CONFIG } from './constants';\nimport { formatPercentage } from './utils';\n\ninterface StatCardProps {\n label: string;\n value: string | number;\n subValue?: string;\n icon?: string;\n color?: string;\n trend?: 'up' | 'down' | 'neutral';\n}\n\nfunction StatCard({ label, value, subValue, icon, color = 'text-dark-text' }: StatCardProps) {\n return (\n <div className=\"p-4 bg-dark-surface border border-dark-border rounded-lg\">\n <div className=\"flex items-center justify-between mb-2\">\n <span className=\"text-xs text-dark-muted uppercase tracking-wide\">{label}</span>\n {icon && <span className=\"text-lg\">{icon}</span>}\n </div>\n <div className={`text-2xl font-semibold ${color}`}>{value}</div>\n {subValue && (\n <div className=\"text-xs text-dark-muted mt-1\">{subValue}</div>\n )}\n </div>\n );\n}\n\ninterface StatusBreakdownProps {\n byStatus: Record<string, number>;\n total: number;\n}\n\nfunction StatusBreakdown({ byStatus, total }: StatusBreakdownProps) {\n return (\n <div className=\"p-4 bg-dark-surface border border-dark-border rounded-lg\">\n <div className=\"text-xs text-dark-muted uppercase tracking-wide mb-3\">By Status</div>\n <div className=\"space-y-2\">\n {Object.entries(byStatus).map(([status, count]) => {\n const config = STATUS_CONFIG[status as keyof typeof STATUS_CONFIG];\n const percentage = total > 0 ? (count / total) * 100 : 0;\n \n return (\n <div key={status} className=\"flex items-center gap-3\">\n <span className=\"text-sm w-6\">{config?.icon}</span>\n <div className=\"flex-1\">\n <div className=\"flex items-center justify-between text-sm mb-1\">\n <span className={config?.color}>{config?.label || status}</span>\n <span className=\"text-dark-muted\">{count}</span>\n </div>\n <div className=\"h-1.5 bg-dark-bg rounded-full overflow-hidden\">\n <div \n className={`h-full rounded-full transition-all ${\n status === 'approved' ? 'bg-status-approved' :\n status === 'ignored' ? 'bg-dark-muted' :\n 'bg-blue-500'\n }`}\n style={{ width: `${percentage}%` }}\n />\n </div>\n </div>\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n\ninterface ConfidenceBreakdownProps {\n byConfidenceLevel: {\n high: number;\n medium: number;\n low: number;\n uncertain: number;\n };\n total: number;\n}\n\nfunction ConfidenceBreakdown({ byConfidenceLevel, total }: ConfidenceBreakdownProps) {\n const levels = ['high', 'medium', 'low', 'uncertain'] as const;\n \n return (\n <div className=\"p-4 bg-dark-surface border border-dark-border rounded-lg\">\n <div className=\"text-xs text-dark-muted uppercase tracking-wide mb-3\">By Confidence</div>\n <div className=\"flex gap-1 h-8 rounded overflow-hidden\">\n {levels.map(level => {\n const count = byConfidenceLevel[level];\n const percentage = total > 0 ? (count / total) * 100 : 0;\n const config = CONFIDENCE_CONFIG[level];\n \n if (percentage === 0) return null;\n \n return (\n <div\n key={level}\n className={`${config.bgColor} flex items-center justify-center transition-all`}\n style={{ width: `${percentage}%` }}\n title={`${config.label}: ${count} (${Math.round(percentage)}%)`}\n >\n {percentage > 15 && (\n <span className={`text-xs font-medium ${config.color}`}>{count}</span>\n )}\n </div>\n );\n })}\n </div>\n <div className=\"flex justify-between mt-2 text-xs\">\n {levels.map(level => {\n const config = CONFIDENCE_CONFIG[level];\n const count = byConfidenceLevel[level];\n if (count === 0) return null;\n \n return (\n <div key={level} className=\"flex items-center gap-1\">\n <div className={`w-2 h-2 rounded-full ${config.bgColor}`} />\n <span className=\"text-dark-muted\">{config.label.split(' ')[0]}</span>\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n\ninterface PatternStatsProps {\n statistics: PatternStatistics;\n onQuickReview?: () => void;\n onNeedsReview?: () => void;\n}\n\nexport function PatternStats({ \n statistics, \n onQuickReview, \n onNeedsReview \n}: PatternStatsProps) {\n return (\n <div className=\"space-y-4\">\n {/* Primary Stats */}\n <div className=\"grid grid-cols-2 md:grid-cols-4 gap-3\">\n <StatCard\n label=\"Total Patterns\"\n value={statistics.total}\n icon=\"📊\"\n />\n <StatCard\n label=\"Compliance Rate\"\n value={formatPercentage(statistics.complianceRate)}\n subValue={`${statistics.totalOutliers} outliers`}\n icon=\"✓\"\n color={statistics.complianceRate >= 0.9 ? 'text-status-approved' : 'text-severity-warning'}\n />\n <StatCard\n label=\"Avg Confidence\"\n value={formatPercentage(statistics.avgConfidence)}\n icon=\"🎯\"\n color={statistics.avgConfidence >= 0.8 ? 'text-status-approved' : 'text-severity-warning'}\n />\n <StatCard\n label=\"Categories\"\n value={Object.keys(statistics.byCategory).length}\n icon=\"📁\"\n />\n </div>\n\n {/* Action Cards */}\n {(statistics.readyForApproval > 0 || statistics.needsReview > 0) && (\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-3\">\n {statistics.readyForApproval > 0 && (\n <button\n onClick={onQuickReview}\n className=\"p-4 bg-status-approved/10 border border-status-approved/20 rounded-lg text-left hover:bg-status-approved/20 transition-colors group\"\n >\n <div className=\"flex items-center justify-between\">\n <div>\n <div className=\"text-sm font-medium text-status-approved\">\n ⚡ Quick Approve\n </div>\n <div className=\"text-xs text-dark-muted mt-1\">\n {statistics.readyForApproval} high-confidence patterns ready\n </div>\n </div>\n <span className=\"text-2xl font-semibold text-status-approved group-hover:scale-110 transition-transform\">\n {statistics.readyForApproval}\n </span>\n </div>\n </button>\n )}\n \n {statistics.needsReview > 0 && (\n <button\n onClick={onNeedsReview}\n className=\"p-4 bg-severity-warning/10 border border-severity-warning/20 rounded-lg text-left hover:bg-severity-warning/20 transition-colors group\"\n >\n <div className=\"flex items-center justify-between\">\n <div>\n <div className=\"text-sm font-medium text-severity-warning\">\n 🔍 Needs Review\n </div>\n <div className=\"text-xs text-dark-muted mt-1\">\n {statistics.needsReview} patterns need attention\n </div>\n </div>\n <span className=\"text-2xl font-semibold text-severity-warning group-hover:scale-110 transition-transform\">\n {statistics.needsReview}\n </span>\n </div>\n </button>\n )}\n </div>\n )}\n\n {/* Breakdowns */}\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-3\">\n <StatusBreakdown byStatus={statistics.byStatus} total={statistics.total} />\n <ConfidenceBreakdown byConfidenceLevel={statistics.byConfidenceLevel} total={statistics.total} />\n </div>\n </div>\n );\n}\n","/**\n * Pattern Filters Component\n * \n * Advanced filtering and search for patterns.\n */\n\n\nimport type { PatternFilters as PatternFiltersType } from '../../types';\nimport type { ViewMode, SortConfig, SortField } from './types';\nimport { CATEGORY_CONFIG, CATEGORY_ORDER, STATUS_CONFIG } from './constants';\n\ninterface PatternFiltersProps {\n filters: PatternFiltersType;\n onFiltersChange: (filters: PatternFiltersType) => void;\n viewMode: ViewMode;\n onViewModeChange: (mode: ViewMode) => void;\n sort: SortConfig;\n onSortChange: (sort: SortConfig) => void;\n resultCount: number;\n}\n\nexport function PatternFilters({\n filters,\n onFiltersChange,\n viewMode,\n onViewModeChange,\n sort,\n onSortChange,\n resultCount,\n}: PatternFiltersProps) {\n const handleClearFilters = () => {\n onFiltersChange({});\n };\n\n const hasActiveFilters = !!(filters.category || filters.status || filters.minConfidence || filters.search);\n\n return (\n <div className=\"space-y-3\">\n {/* Search and View Controls */}\n <div className=\"flex items-center gap-3\">\n <div className=\"relative flex-1\">\n <input\n type=\"text\"\n placeholder=\"Search patterns...\"\n className=\"w-full bg-dark-bg border border-dark-border rounded-lg px-4 py-2 pl-10 text-sm focus:outline-none focus:border-blue-500 transition-colors\"\n value={filters.search || ''}\n onChange={(e) => onFiltersChange({ ...filters, search: e.target.value || undefined })}\n />\n <span className=\"absolute left-3 top-1/2 -translate-y-1/2 text-dark-muted\">🔍</span>\n </div>\n\n {/* View Mode Toggle */}\n <div className=\"flex bg-dark-bg border border-dark-border rounded-lg p-0.5\">\n {(['grouped', 'flat', 'table'] as ViewMode[]).map((mode) => (\n <button\n key={mode}\n onClick={() => onViewModeChange(mode)}\n className={`px-3 py-1.5 text-sm rounded-md transition-colors ${\n viewMode === mode\n ? 'bg-blue-500/20 text-blue-400'\n : 'text-dark-muted hover:text-dark-text'\n }`}\n title={`${mode.charAt(0).toUpperCase() + mode.slice(1)} view`}\n >\n {mode === 'grouped' ? '📁' : mode === 'flat' ? '📋' : '📊'}\n </button>\n ))}\n </div>\n </div>\n\n {/* Filter Row */}\n <div className=\"flex flex-wrap items-center gap-3\">\n {/* Category Filter */}\n <select\n className=\"bg-dark-bg border border-dark-border rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-blue-500\"\n value={filters.category || ''}\n onChange={(e) => onFiltersChange({ \n ...filters, \n category: e.target.value as PatternFiltersType['category'] || undefined \n })}\n >\n <option value=\"\">All Categories</option>\n {CATEGORY_ORDER.map((cat) => {\n const config = CATEGORY_CONFIG[cat];\n return (\n <option key={cat} value={cat}>\n {config.icon} {config.label}\n </option>\n );\n })}\n </select>\n\n {/* Status Filter */}\n <select\n className=\"bg-dark-bg border border-dark-border rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-blue-500\"\n value={filters.status || ''}\n onChange={(e) => onFiltersChange({ \n ...filters, \n status: e.target.value as PatternFiltersType['status'] || undefined \n })}\n >\n <option value=\"\">All Statuses</option>\n {Object.entries(STATUS_CONFIG).map(([status, config]) => (\n <option key={status} value={status}>\n {config.icon} {config.label}\n </option>\n ))}\n </select>\n\n {/* Confidence Filter */}\n <select\n className=\"bg-dark-bg border border-dark-border rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-blue-500\"\n value={filters.minConfidence?.toString() || ''}\n onChange={(e) => onFiltersChange({ \n ...filters, \n minConfidence: e.target.value ? parseFloat(e.target.value) : undefined \n })}\n >\n <option value=\"\">Any Confidence</option>\n <option value=\"0.95\">High (≥95%)</option>\n <option value=\"0.70\">Medium+ (≥70%)</option>\n <option value=\"0.50\">Low+ (≥50%)</option>\n </select>\n\n {/* Sort */}\n <div className=\"flex items-center gap-1 ml-auto\">\n <span className=\"text-xs text-dark-muted\">Sort:</span>\n <select\n className=\"bg-dark-bg border border-dark-border rounded-lg px-2 py-1.5 text-sm focus:outline-none focus:border-blue-500\"\n value={sort.field}\n onChange={(e) => onSortChange({ ...sort, field: e.target.value as SortField })}\n >\n <option value=\"confidence\">Confidence</option>\n <option value=\"locations\">Locations</option>\n <option value=\"outliers\">Outliers</option>\n <option value=\"name\">Name</option>\n <option value=\"category\">Category</option>\n <option value=\"status\">Status</option>\n </select>\n <button\n onClick={() => onSortChange({ \n ...sort, \n direction: sort.direction === 'asc' ? 'desc' : 'asc' \n })}\n className=\"p-1.5 bg-dark-bg border border-dark-border rounded-lg text-sm hover:bg-dark-border/50 transition-colors\"\n title={sort.direction === 'asc' ? 'Ascending' : 'Descending'}\n >\n {sort.direction === 'asc' ? '↑' : '↓'}\n </button>\n </div>\n </div>\n\n {/* Active Filters & Results */}\n <div className=\"flex items-center justify-between text-sm\">\n <div className=\"flex items-center gap-2\">\n <span className=\"text-dark-muted\">\n {resultCount} pattern{resultCount !== 1 ? 's' : ''}\n </span>\n {hasActiveFilters && (\n <>\n <span className=\"text-dark-border\">•</span>\n <button\n onClick={handleClearFilters}\n className=\"text-blue-400 hover:text-blue-300 transition-colors\"\n >\n Clear filters\n </button>\n </>\n )}\n </div>\n\n {/* Active Filter Pills */}\n {hasActiveFilters && (\n <div className=\"flex items-center gap-2\">\n {filters.category && (\n <span className=\"px-2 py-0.5 bg-dark-bg border border-dark-border rounded text-xs\">\n {CATEGORY_CONFIG[filters.category]?.icon} {CATEGORY_CONFIG[filters.category]?.label}\n <button\n onClick={() => onFiltersChange({ ...filters, category: undefined })}\n className=\"ml-1 text-dark-muted hover:text-dark-text\"\n >\n ×\n </button>\n </span>\n )}\n {filters.status && (\n <span className=\"px-2 py-0.5 bg-dark-bg border border-dark-border rounded text-xs\">\n {STATUS_CONFIG[filters.status]?.icon} {STATUS_CONFIG[filters.status]?.label}\n <button\n onClick={() => onFiltersChange({ ...filters, status: undefined })}\n className=\"ml-1 text-dark-muted hover:text-dark-text\"\n >\n ×\n </button>\n </span>\n )}\n {filters.minConfidence && (\n <span className=\"px-2 py-0.5 bg-dark-bg border border-dark-border rounded text-xs\">\n ≥{Math.round(filters.minConfidence * 100)}%\n <button\n onClick={() => onFiltersChange({ ...filters, minConfidence: undefined })}\n className=\"ml-1 text-dark-muted hover:text-dark-text\"\n >\n ×\n </button>\n </span>\n )}\n </div>\n )}\n </div>\n </div>\n );\n}\n","/**\n * Pattern List Components\n * \n * Grouped and flat views for pattern display.\n */\n\nimport { useState } from 'react';\nimport type { Pattern } from '../../types';\nimport type { CategoryGroup, DetectorGroup, ViewMode } from './types';\nimport { STATUS_CONFIG, CATEGORY_CONFIG } from './constants';\nimport { formatPercentage, getConfidenceColor } from './utils';\n\n// ============================================================================\n// Pattern Row (Flat View)\n// ============================================================================\n\ninterface PatternRowProps {\n pattern: Pattern;\n isSelected: boolean;\n onSelect: () => void;\n}\n\nfunction PatternRow({ pattern, isSelected, onSelect }: PatternRowProps) {\n const statusConfig = STATUS_CONFIG[pattern.status];\n const categoryConfig = CATEGORY_CONFIG[pattern.category];\n const confidenceColor = getConfidenceColor(pattern.confidence.score);\n\n return (\n <button\n onClick={onSelect}\n className={`w-full text-left p-3 rounded-lg border transition-all ${\n isSelected\n ? 'bg-blue-500/10 border-blue-500/30'\n : 'bg-dark-surface border-dark-border hover:border-dark-muted'\n }`}\n >\n <div className=\"flex items-center justify-between gap-4\">\n <div className=\"flex items-center gap-3 min-w-0 flex-1\">\n <span className=\"text-lg shrink-0\">{categoryConfig?.icon}</span>\n <div className=\"min-w-0\">\n <div className=\"font-medium truncate\">{pattern.name}</div>\n <div className=\"text-xs text-dark-muted\">{categoryConfig?.label}</div>\n </div>\n </div>\n\n <div className=\"flex items-center gap-4 shrink-0\">\n <div className=\"text-right\">\n <div className={`text-sm font-medium ${confidenceColor}`}>\n {formatPercentage(pattern.confidence.score)}\n </div>\n <div className=\"text-xs text-dark-muted\">confidence</div>\n </div>\n\n <div className=\"text-right\">\n <div className=\"text-sm font-medium text-status-approved\">\n {pattern.locationCount}\n </div>\n <div className=\"text-xs text-dark-muted\">locations</div>\n </div>\n\n {pattern.outlierCount > 0 && (\n <div className=\"text-right\">\n <div className=\"text-sm font-medium text-severity-warning\">\n {pattern.outlierCount}\n </div>\n <div className=\"text-xs text-dark-muted\">outliers</div>\n </div>\n )}\n\n <span className={`px-2 py-1 rounded text-xs ${statusConfig?.bgColor} ${statusConfig?.color}`}>\n {statusConfig?.icon} {statusConfig?.label}\n </span>\n </div>\n </div>\n </button>\n );\n}\n\n// ============================================================================\n// Detector Card (Grouped View)\n// ============================================================================\n\ninterface DetectorCardProps {\n group: DetectorGroup;\n isExpanded: boolean;\n onToggle: () => void;\n selectedPatternId: string | null;\n onSelectPattern: (id: string) => void;\n}\n\nfunction DetectorCard({\n group,\n isExpanded,\n onToggle,\n selectedPatternId,\n onSelectPattern,\n}: DetectorCardProps) {\n const statusConfig = STATUS_CONFIG[group.dominantStatus];\n const confidenceColor = getConfidenceColor(group.metrics.avgConfidence);\n\n return (\n <div className=\"border border-dark-border rounded-lg overflow-hidden\">\n <button\n onClick={onToggle}\n className=\"w-full text-left p-4 bg-dark-surface hover:bg-dark-border/30 transition-colors\"\n >\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-3\">\n <span className=\"text-dark-muted text-sm\">{isExpanded ? '▼' : '▶'}</span>\n <span className=\"font-medium\">{group.detectorName}</span>\n {group.patterns.length > 1 && (\n <span className=\"px-2 py-0.5 bg-dark-bg rounded text-xs text-dark-muted\">\n {group.patterns.length} variants\n </span>\n )}\n </div>\n <span className={`px-2 py-1 rounded text-xs ${statusConfig?.bgColor} ${statusConfig?.color}`}>\n {statusConfig?.icon} {statusConfig?.label}\n </span>\n </div>\n\n <div className=\"flex items-center gap-6 mt-3 ml-7 text-sm\">\n <div className=\"flex items-center gap-1.5\">\n <span className=\"text-status-approved\">✓</span>\n <span className=\"text-dark-muted\">{group.metrics.totalLocations} consistent</span>\n </div>\n {group.metrics.totalOutliers > 0 && (\n <div className=\"flex items-center gap-1.5\">\n <span className=\"text-severity-warning\">⚠</span>\n <span className=\"text-dark-muted\">{group.metrics.totalOutliers} outliers</span>\n </div>\n )}\n <div className=\"flex items-center gap-1.5\">\n <span className={confidenceColor}>{formatPercentage(group.metrics.avgConfidence)}</span>\n <span className=\"text-dark-muted\">confidence</span>\n </div>\n </div>\n </button>\n\n {isExpanded && (\n <div className=\"border-t border-dark-border bg-dark-bg p-2 space-y-1\">\n {group.patterns.map((pattern) => (\n <button\n key={pattern.id}\n onClick={() => onSelectPattern(pattern.id)}\n className={`w-full text-left p-3 rounded-lg transition-colors ${\n selectedPatternId === pattern.id\n ? 'bg-blue-500/20 text-blue-400'\n : 'hover:bg-dark-border/50'\n }`}\n >\n <div className=\"flex items-center justify-between\">\n <span className=\"truncate font-medium\">{pattern.name}</span>\n <span className={`px-2 py-0.5 rounded text-xs ${STATUS_CONFIG[pattern.status]?.bgColor} ${STATUS_CONFIG[pattern.status]?.color}`}>\n {STATUS_CONFIG[pattern.status]?.label}\n </span>\n </div>\n <div className=\"flex items-center gap-4 mt-2 text-xs text-dark-muted\">\n <span className=\"text-status-approved\">✓ {pattern.locationCount}</span>\n {pattern.outlierCount > 0 && (\n <span className=\"text-severity-warning\">⚠ {pattern.outlierCount}</span>\n )}\n <span className={getConfidenceColor(pattern.confidence.score)}>\n {formatPercentage(pattern.confidence.score)}\n </span>\n </div>\n </button>\n ))}\n </div>\n )}\n </div>\n );\n}\n\n// ============================================================================\n// Category Section (Grouped View)\n// ============================================================================\n\ninterface CategorySectionProps {\n group: CategoryGroup;\n expandedDetectors: Set<string>;\n onToggleDetector: (id: string) => void;\n selectedPatternId: string | null;\n onSelectPattern: (id: string) => void;\n}\n\nfunction CategorySection({\n group,\n expandedDetectors,\n onToggleDetector,\n selectedPatternId,\n onSelectPattern,\n}: CategorySectionProps) {\n const [isCollapsed, setIsCollapsed] = useState(false);\n const config = CATEGORY_CONFIG[group.category];\n\n return (\n <div className=\"mb-6\">\n <button\n onClick={() => setIsCollapsed(!isCollapsed)}\n className=\"w-full text-left group\"\n >\n <div className=\"flex items-center gap-3 mb-2\">\n <span className=\"text-dark-muted text-sm\">{isCollapsed ? '▶' : '▼'}</span>\n <span className=\"text-xl\">{config?.icon}</span>\n <span className=\"text-lg font-semibold group-hover:text-blue-400 transition-colors\">\n {config?.label}\n </span>\n <span className=\"px-2 py-0.5 bg-dark-bg rounded text-xs text-dark-muted\">\n {group.patternCount}\n </span>\n </div>\n <p className=\"text-xs text-dark-muted ml-10 mb-2\">{config?.description}</p>\n <div className=\"flex items-center gap-4 text-xs ml-10\">\n <span className=\"text-dark-muted\">\n {group.detectors.length} detector{group.detectors.length !== 1 ? 's' : ''}\n </span>\n <span className=\"text-status-approved\">\n ✓ {group.metrics.totalLocations} consistent\n </span>\n {group.metrics.totalOutliers > 0 && (\n <span className=\"text-severity-warning\">\n ⚠ {group.metrics.totalOutliers} outliers\n </span>\n )}\n </div>\n </button>\n\n {!isCollapsed && (\n <div className=\"space-y-2 ml-6 mt-4\">\n {group.detectors.map((detector) => (\n <DetectorCard\n key={detector.id}\n group={detector}\n isExpanded={expandedDetectors.has(detector.id)}\n onToggle={() => onToggleDetector(detector.id)}\n selectedPatternId={selectedPatternId}\n onSelectPattern={onSelectPattern}\n />\n ))}\n </div>\n )}\n </div>\n );\n}\n\n// ============================================================================\n// Main Pattern List\n// ============================================================================\n\ninterface PatternListProps {\n patterns: Pattern[];\n groupedPatterns: CategoryGroup[];\n viewMode: ViewMode;\n expandedDetectors: Set<string>;\n onToggleDetector: (id: string) => void;\n selectedPatternId: string | null;\n onSelectPattern: (id: string) => void;\n}\n\nexport function PatternList({\n patterns,\n groupedPatterns,\n viewMode,\n expandedDetectors,\n onToggleDetector,\n selectedPatternId,\n onSelectPattern,\n}: PatternListProps) {\n if (patterns.length === 0) {\n return (\n <div className=\"flex flex-col items-center justify-center py-16 text-center\">\n <span className=\"text-4xl mb-4\">🔍</span>\n <h3 className=\"text-lg font-medium mb-2\">No patterns found</h3>\n <p className=\"text-dark-muted text-sm max-w-md\">\n Try adjusting your filters or run a scan to detect patterns in your codebase.\n </p>\n </div>\n );\n }\n\n if (viewMode === 'flat') {\n return (\n <div className=\"space-y-2\">\n {patterns.map((pattern) => (\n <PatternRow\n key={pattern.id}\n pattern={pattern}\n isSelected={selectedPatternId === pattern.id}\n onSelect={() => onSelectPattern(pattern.id)}\n />\n ))}\n </div>\n );\n }\n\n if (viewMode === 'table') {\n return (\n <div className=\"overflow-x-auto\">\n <table className=\"w-full text-sm\">\n <thead>\n <tr className=\"border-b border-dark-border text-left\">\n <th className=\"pb-3 font-medium text-dark-muted\">Pattern</th>\n <th className=\"pb-3 font-medium text-dark-muted\">Category</th>\n <th className=\"pb-3 font-medium text-dark-muted text-right\">Confidence</th>\n <th className=\"pb-3 font-medium text-dark-muted text-right\">Locations</th>\n <th className=\"pb-3 font-medium text-dark-muted text-right\">Outliers</th>\n <th className=\"pb-3 font-medium text-dark-muted\">Status</th>\n </tr>\n </thead>\n <tbody>\n {patterns.map((pattern) => {\n const statusConfig = STATUS_CONFIG[pattern.status];\n const categoryConfig = CATEGORY_CONFIG[pattern.category];\n \n return (\n <tr\n key={pattern.id}\n onClick={() => onSelectPattern(pattern.id)}\n className={`border-b border-dark-border/50 cursor-pointer transition-colors ${\n selectedPatternId === pattern.id\n ? 'bg-blue-500/10'\n : 'hover:bg-dark-surface'\n }`}\n >\n <td className=\"py-3 font-medium\">{pattern.name}</td>\n <td className=\"py-3\">\n <span className=\"flex items-center gap-2\">\n <span>{categoryConfig?.icon}</span>\n <span className=\"text-dark-muted\">{categoryConfig?.label}</span>\n </span>\n </td>\n <td className={`py-3 text-right ${getConfidenceColor(pattern.confidence.score)}`}>\n {formatPercentage(pattern.confidence.score)}\n </td>\n <td className=\"py-3 text-right text-status-approved\">{pattern.locationCount}</td>\n <td className={`py-3 text-right ${pattern.outlierCount > 0 ? 'text-severity-warning' : 'text-dark-muted'}`}>\n {pattern.outlierCount}\n </td>\n <td className=\"py-3\">\n <span className={`px-2 py-1 rounded text-xs ${statusConfig?.bgColor} ${statusConfig?.color}`}>\n {statusConfig?.label}\n </span>\n </td>\n </tr>\n );\n })}\n </tbody>\n </table>\n </div>\n );\n }\n\n // Grouped view (default)\n return (\n <div>\n {groupedPatterns.map((group) => (\n <CategorySection\n key={group.category}\n group={group}\n expandedDetectors={expandedDetectors}\n onToggleDetector={onToggleDetector}\n selectedPatternId={selectedPatternId}\n onSelectPattern={onSelectPattern}\n />\n ))}\n </div>\n );\n}\n","/**\n * Pattern Detail Panel\n * \n * Detailed view of a selected pattern with actions.\n */\n\nimport { useState } from 'react';\nimport { usePattern, useApprovePattern, useIgnorePattern, useDeletePattern } from '../../hooks';\nimport type { PatternWithLocations, SemanticLocation } from '../../types';\nimport { STATUS_CONFIG, CATEGORY_CONFIG, DISPLAY_LIMITS } from './constants';\nimport { formatPercentage, getConfidenceColor, truncatePath } from './utils';\n\n// ============================================================================\n// Location Item\n// ============================================================================\n\ninterface LocationItemProps {\n location: SemanticLocation;\n variant: 'consistent' | 'outlier';\n}\n\nfunction LocationItem({ location, variant }: LocationItemProps) {\n const isOutlier = variant === 'outlier';\n const filename = location.file.split('/').pop() || location.file;\n\n return (\n <div className={`p-3 rounded-lg text-sm ${\n isOutlier \n ? 'bg-severity-warning/10 border border-severity-warning/20' \n : 'bg-dark-bg'\n }`}>\n <div className=\"flex items-start gap-2\">\n <span className={`shrink-0 ${isOutlier ? 'text-severity-warning' : 'text-status-approved'}`}>\n {isOutlier ? '⚠' : '✓'}\n </span>\n <div className=\"min-w-0 flex-1\">\n <div className=\"font-medium truncate\" title={location.file}>\n {filename}\n </div>\n <div className=\"text-xs text-dark-muted truncate\" title={location.file}>\n {truncatePath(location.file)}\n </div>\n {location.name && (\n <div className=\"text-xs text-blue-400 mt-1\">\n {location.kind && <span className=\"text-dark-muted\">{location.kind}: </span>}\n {location.name}\n </div>\n )}\n {location.reason && (\n <div className={`text-xs mt-1 ${isOutlier ? 'text-severity-warning' : 'text-dark-muted'}`}>\n {location.reason}\n </div>\n )}\n <div className=\"text-xs text-dark-muted mt-1\">\n Line {location.range.start.line}\n </div>\n </div>\n </div>\n </div>\n );\n}\n\n// ============================================================================\n// Actions Bar\n// ============================================================================\n\ninterface ActionsBarProps {\n pattern: PatternWithLocations;\n onCopyForAI: () => void;\n isCopying: boolean;\n copySuccess: boolean;\n}\n\nfunction ActionsBar({ pattern, onCopyForAI, isCopying, copySuccess }: ActionsBarProps) {\n const approveMutation = useApprovePattern();\n const ignoreMutation = useIgnorePattern();\n const deleteMutation = useDeletePattern();\n\n const handleDelete = () => {\n if (confirm('Are you sure you want to delete this pattern? This action cannot be undone.')) {\n deleteMutation.mutate(pattern.id);\n }\n };\n\n return (\n <div className=\"flex flex-wrap gap-2\">\n {pattern.status === 'discovered' && (\n <>\n <button\n onClick={() => approveMutation.mutate(pattern.id)}\n disabled={approveMutation.isPending}\n className=\"btn btn-primary text-sm flex items-center gap-1.5\"\n >\n {approveMutation.isPending ? (\n <span className=\"animate-spin\">⏳</span>\n ) : (\n <span>✓</span>\n )}\n Approve\n </button>\n <button\n onClick={() => ignoreMutation.mutate(pattern.id)}\n disabled={ignoreMutation.isPending}\n className=\"btn btn-secondary text-sm flex items-center gap-1.5\"\n >\n {ignoreMutation.isPending ? (\n <span className=\"animate-spin\">⏳</span>\n ) : (\n <span>✗</span>\n )}\n Ignore\n </button>\n </>\n )}\n \n <button\n onClick={onCopyForAI}\n disabled={isCopying}\n className={`btn text-sm flex items-center gap-1.5 ${\n copySuccess ? 'btn-primary' : 'btn-secondary'\n }`}\n >\n {isCopying ? (\n <span className=\"animate-spin\">⏳</span>\n ) : copySuccess ? (\n <span>✓</span>\n ) : (\n <span>📋</span>\n )}\n {copySuccess ? 'Copied!' : 'Copy for AI'}\n </button>\n\n <button\n onClick={handleDelete}\n disabled={deleteMutation.isPending}\n className=\"btn btn-danger text-sm flex items-center gap-1.5 ml-auto\"\n >\n {deleteMutation.isPending ? (\n <span className=\"animate-spin\">⏳</span>\n ) : (\n <span>🗑️</span>\n )}\n Delete\n </button>\n </div>\n );\n}\n\n// ============================================================================\n// Stats Grid\n// ============================================================================\n\ninterface StatsGridProps {\n pattern: PatternWithLocations;\n}\n\nfunction StatsGrid({ pattern }: StatsGridProps) {\n const confidenceColor = getConfidenceColor(pattern.confidence.score);\n const complianceRate = pattern.locations.length / (pattern.locations.length + pattern.outliers.length);\n\n return (\n <div className=\"grid grid-cols-2 gap-3\">\n <div className=\"p-3 bg-dark-bg rounded-lg\">\n <div className=\"text-xs text-dark-muted mb-1\">Confidence</div>\n <div className={`text-xl font-semibold ${confidenceColor}`}>\n {formatPercentage(pattern.confidence.score)}\n </div>\n <div className=\"text-xs text-dark-muted capitalize\">{pattern.confidence.level}</div>\n </div>\n \n <div className=\"p-3 bg-dark-bg rounded-lg\">\n <div className=\"text-xs text-dark-muted mb-1\">Compliance</div>\n <div className={`text-xl font-semibold ${complianceRate >= 0.9 ? 'text-status-approved' : 'text-severity-warning'}`}>\n {formatPercentage(complianceRate)}\n </div>\n <div className=\"text-xs text-dark-muted\">\n {pattern.locations.length} / {pattern.locations.length + pattern.outliers.length}\n </div>\n </div>\n\n <div className=\"p-3 bg-status-approved/10 rounded-lg\">\n <div className=\"text-xs text-dark-muted mb-1\">Consistent</div>\n <div className=\"text-xl font-semibold text-status-approved\">\n {pattern.locations.length}\n </div>\n <div className=\"text-xs text-dark-muted\">locations</div>\n </div>\n\n {pattern.outliers.length > 0 && (\n <div className=\"p-3 bg-severity-warning/10 rounded-lg\">\n <div className=\"text-xs text-dark-muted mb-1\">Outliers</div>\n <div className=\"text-xl font-semibold text-severity-warning\">\n {pattern.outliers.length}\n </div>\n <div className=\"text-xs text-dark-muted\">need fixing</div>\n </div>\n )}\n </div>\n );\n}\n\n// ============================================================================\n// Main Detail Component\n// ============================================================================\n\ninterface PatternDetailProps {\n patternId: string;\n}\n\nexport function PatternDetail({ patternId }: PatternDetailProps) {\n const { data: pattern, isLoading, error } = usePattern(patternId);\n const [isCopying, setIsCopying] = useState(false);\n const [copySuccess, setCopySuccess] = useState(false);\n\n const copyForAI = async () => {\n if (!pattern) return;\n \n setIsCopying(true);\n setCopySuccess(false);\n\n try {\n const lines: string[] = [\n `# Pattern: ${pattern.name}`,\n `Category: ${pattern.category} | Status: ${pattern.status} | Confidence: ${formatPercentage(pattern.confidence.score)}`,\n '',\n ];\n\n if (pattern.locations.length > 0) {\n lines.push(`## Established Pattern (${pattern.locations.length} locations)`);\n lines.push('These files follow the pattern correctly:');\n lines.push('');\n\n const locationsToShow = pattern.locations.slice(0, DISPLAY_LIMITS.QUICK_REVIEW_LOCATIONS);\n for (const loc of locationsToShow) {\n try {\n const response = await fetch(\n `/api/snippet?file=${encodeURIComponent(loc.file)}&line=${loc.range.start.line}&context=2`\n );\n if (response.ok) {\n const snippet = await response.json();\n lines.push(`### ${loc.file}:${loc.range.start.line}`);\n lines.push('```' + snippet.language);\n lines.push(snippet.code);\n lines.push('```');\n lines.push('');\n }\n } catch {\n lines.push(`- ${loc.file}:${loc.range.start.line}`);\n }\n }\n\n if (pattern.locations.length > DISPLAY_LIMITS.QUICK_REVIEW_LOCATIONS) {\n lines.push(`... and ${pattern.locations.length - DISPLAY_LIMITS.QUICK_REVIEW_LOCATIONS} more locations`);\n lines.push('');\n }\n }\n\n if (pattern.outliers.length > 0) {\n lines.push(`## ⚠️ Outliers to Fix (${pattern.outliers.length} violations)`);\n lines.push('These files deviate from the established pattern:');\n lines.push('');\n\n const outliersToShow = pattern.outliers.slice(0, DISPLAY_LIMITS.QUICK_REVIEW_OUTLIERS);\n for (const outlier of outliersToShow) {\n try {\n const response = await fetch(\n `/api/snippet?file=${encodeURIComponent(outlier.file)}&line=${outlier.range.start.line}&context=3`\n );\n if (response.ok) {\n const snippet = await response.json();\n lines.push(`### ${outlier.file}:${outlier.range.start.line}`);\n if (outlier.reason) {\n lines.push(`Reason: ${outlier.reason}`);\n }\n lines.push('```' + snippet.language);\n lines.push(snippet.code);\n lines.push('```');\n lines.push('');\n }\n } catch {\n lines.push(`- ${outlier.file}:${outlier.range.start.line}${outlier.reason ? ` - ${outlier.reason}` : ''}`);\n }\n }\n\n if (pattern.outliers.length > DISPLAY_LIMITS.QUICK_REVIEW_OUTLIERS) {\n lines.push(`... and ${pattern.outliers.length - DISPLAY_LIMITS.QUICK_REVIEW_OUTLIERS} more outliers`);\n lines.push('');\n }\n\n lines.push('---');\n lines.push('Please fix these outliers to match the established pattern shown above.');\n }\n\n await navigator.clipboard.writeText(lines.join('\\n'));\n setCopySuccess(true);\n setTimeout(() => setCopySuccess(false), 2000);\n } catch (err) {\n console.error('Failed to copy:', err);\n } finally {\n setIsCopying(false);\n }\n };\n\n if (isLoading) {\n return (\n <div className=\"flex items-center justify-center py-12\">\n <div className=\"text-dark-muted\">Loading pattern details...</div>\n </div>\n );\n }\n\n if (error || !pattern) {\n return (\n <div className=\"flex flex-col items-center justify-center py-12 text-center\">\n <span className=\"text-3xl mb-3\">⚠️</span>\n <div className=\"text-severity-error\">Failed to load pattern</div>\n <div className=\"text-xs text-dark-muted mt-1\">Pattern may have been deleted</div>\n </div>\n );\n }\n\n const statusConfig = STATUS_CONFIG[pattern.status];\n const categoryConfig = CATEGORY_CONFIG[pattern.category];\n\n return (\n <div className=\"space-y-5\">\n {/* Header */}\n <div>\n <div className=\"flex items-start justify-between gap-3\">\n <h3 className=\"text-lg font-semibold leading-tight\">{pattern.name}</h3>\n <span className={`px-2 py-1 rounded text-xs shrink-0 ${statusConfig?.bgColor} ${statusConfig?.color}`}>\n {statusConfig?.icon} {statusConfig?.label}\n </span>\n </div>\n <div className=\"flex items-center gap-2 mt-2 text-sm text-dark-muted\">\n <span>{categoryConfig?.icon}</span>\n <span>{categoryConfig?.label}</span>\n </div>\n </div>\n\n {/* Actions */}\n <ActionsBar\n pattern={pattern}\n onCopyForAI={copyForAI}\n isCopying={isCopying}\n copySuccess={copySuccess}\n />\n\n {/* Stats */}\n <StatsGrid pattern={pattern} />\n\n {/* Consistent Locations */}\n <div>\n <h4 className=\"text-sm font-medium mb-3 flex items-center gap-2\">\n <span className=\"text-status-approved\">✓</span>\n Consistent Locations ({pattern.locations.length})\n </h4>\n <div className=\"space-y-2 max-h-48 overflow-y-auto scrollbar-dark\">\n {pattern.locations.slice(0, DISPLAY_LIMITS.LOCATIONS_PREVIEW).map((loc, i) => (\n <LocationItem key={i} location={loc} variant=\"consistent\" />\n ))}\n {pattern.locations.length > DISPLAY_LIMITS.LOCATIONS_PREVIEW && (\n <div className=\"text-xs text-dark-muted text-center py-2\">\n ... and {pattern.locations.length - DISPLAY_LIMITS.LOCATIONS_PREVIEW} more\n </div>\n )}\n </div>\n </div>\n\n {/* Outliers */}\n {pattern.outliers.length > 0 && (\n <div>\n <h4 className=\"text-sm font-medium mb-3 flex items-center gap-2 text-severity-warning\">\n <span>⚠</span>\n Outliers ({pattern.outliers.length})\n </h4>\n <div className=\"space-y-2 max-h-48 overflow-y-auto scrollbar-dark\">\n {pattern.outliers.slice(0, DISPLAY_LIMITS.OUTLIERS_PREVIEW).map((loc, i) => (\n <LocationItem key={i} location={loc} variant=\"outlier\" />\n ))}\n {pattern.outliers.length > DISPLAY_LIMITS.OUTLIERS_PREVIEW && (\n <div className=\"text-xs text-dark-muted text-center py-2\">\n ... and {pattern.outliers.length - DISPLAY_LIMITS.OUTLIERS_PREVIEW} more\n </div>\n )}\n </div>\n </div>\n )}\n </div>\n );\n}\n\n// ============================================================================\n// Empty State\n// ============================================================================\n\nexport function PatternDetailEmpty() {\n return (\n <div className=\"flex flex-col items-center justify-center py-12 text-center\">\n <span className=\"text-4xl mb-4\">📋</span>\n <h3 className=\"text-lg font-medium mb-2\">No pattern selected</h3>\n <p className=\"text-dark-muted text-sm max-w-xs\">\n Select a pattern from the list to view its details, locations, and outliers.\n </p>\n </div>\n );\n}\n","/**\n * Review Panel Components\n * \n * Quick Review and Needs Review modals for bulk pattern management.\n */\n\nimport React, { useState, useMemo } from 'react';\nimport { usePattern, useApprovePattern, useIgnorePattern, useBulkApprovePatterns } from '../../hooks';\nimport type { Pattern } from '../../types';\nimport { DISPLAY_LIMITS } from './constants';\nimport { getReviewablePatterns, formatPercentage, getConfidenceColor, truncatePath } from './utils';\n\n// ============================================================================\n// Shared Components\n// ============================================================================\n\ninterface ModalProps {\n title: string;\n subtitle: string;\n onClose: () => void;\n children: React.ReactNode;\n footer?: React.ReactNode;\n}\n\nfunction Modal({ title, subtitle, onClose, children, footer }: ModalProps) {\n return (\n <div className=\"fixed inset-0 bg-black/60 flex items-center justify-center z-50 p-4\">\n <div className=\"bg-dark-surface border border-dark-border rounded-xl w-full max-w-5xl max-h-[90vh] overflow-hidden flex flex-col shadow-2xl\">\n {/* Header */}\n <div className=\"p-5 border-b border-dark-border\">\n <div className=\"flex items-center justify-between\">\n <div>\n <h2 className=\"text-xl font-semibold\">{title}</h2>\n <p className=\"text-sm text-dark-muted mt-1\">{subtitle}</p>\n </div>\n <button\n onClick={onClose}\n className=\"p-2 text-dark-muted hover:text-dark-text hover:bg-dark-border/50 rounded-lg transition-colors\"\n >\n <span className=\"text-xl\">✕</span>\n </button>\n </div>\n </div>\n\n {/* Content */}\n <div className=\"flex-1 overflow-hidden\">{children}</div>\n\n {/* Footer */}\n {footer && (\n <div className=\"p-4 border-t border-dark-border bg-dark-bg\">{footer}</div>\n )}\n </div>\n </div>\n );\n}\n\ninterface EmptyStateProps {\n icon: string;\n title: string;\n message: string;\n onClose: () => void;\n}\n\nfunction EmptyState({ icon, title, message, onClose }: EmptyStateProps) {\n return (\n <div className=\"fixed inset-0 bg-black/60 flex items-center justify-center z-50 p-4\">\n <div className=\"bg-dark-surface border border-dark-border rounded-xl p-8 max-w-md text-center\">\n <span className=\"text-5xl mb-4 block\">{icon}</span>\n <h2 className=\"text-xl font-semibold mb-3\">{title}</h2>\n <p className=\"text-dark-muted mb-6\">{message}</p>\n <button onClick={onClose} className=\"btn btn-secondary w-full\">\n Close\n </button>\n </div>\n </div>\n );\n}\n\n// ============================================================================\n// Quick Review Panel\n// ============================================================================\n\ninterface QuickReviewProps {\n patterns: Pattern[];\n onClose: () => void;\n}\n\nexport function QuickReviewPanel({ patterns, onClose }: QuickReviewProps) {\n const bulkApproveMutation = useBulkApprovePatterns();\n const [excludedIds, setExcludedIds] = useState<Set<string>>(new Set());\n const [currentIndex, setCurrentIndex] = useState(0);\n\n const reviewablePatterns = useMemo(\n () => getReviewablePatterns(patterns, 'quick'),\n [patterns]\n );\n\n const includedPatterns = reviewablePatterns.filter((p) => !excludedIds.has(p.id));\n const currentPattern = reviewablePatterns[currentIndex];\n\n const toggleExclude = (id: string) => {\n setExcludedIds((prev) => {\n const next = new Set(prev);\n if (next.has(id)) {\n next.delete(id);\n } else {\n next.add(id);\n }\n return next;\n });\n };\n\n const handleApproveAll = async () => {\n const idsToApprove = includedPatterns.map((p) => p.id);\n if (idsToApprove.length === 0) return;\n await bulkApproveMutation.mutateAsync(idsToApprove);\n onClose();\n };\n\n if (reviewablePatterns.length === 0) {\n return (\n <EmptyState\n icon=\"⚡\"\n title=\"Quick Review\"\n message=\"No high-confidence patterns (≥95%) need review. All patterns either need manual review or are already approved.\"\n onClose={onClose}\n />\n );\n }\n\n return (\n <Modal\n title=\"⚡ Quick Review\"\n subtitle={`${reviewablePatterns.length} high-confidence patterns (≥95%) ready for approval`}\n onClose={onClose}\n footer={\n <div className=\"flex items-center justify-between\">\n <div className=\"text-sm\">\n <span className=\"text-dark-muted\">Selected: </span>\n <span className=\"font-semibold text-status-approved\">{includedPatterns.length}</span>\n <span className=\"text-dark-muted\"> of {reviewablePatterns.length}</span>\n </div>\n <div className=\"flex gap-3\">\n <button onClick={onClose} className=\"btn btn-secondary\">\n Cancel\n </button>\n <button\n onClick={handleApproveAll}\n disabled={includedPatterns.length === 0 || bulkApproveMutation.isPending}\n className=\"btn btn-primary\"\n >\n {bulkApproveMutation.isPending\n ? '⏳ Approving...'\n : `✓ Approve ${includedPatterns.length} Patterns`}\n </button>\n </div>\n </div>\n }\n >\n <div className=\"flex h-[60vh]\">\n {/* Pattern List */}\n <div className=\"w-80 border-r border-dark-border overflow-y-auto\">\n <div className=\"p-3 space-y-1\">\n {reviewablePatterns.map((pattern, idx) => (\n <button\n key={pattern.id}\n onClick={() => setCurrentIndex(idx)}\n className={`w-full text-left p-3 rounded-lg transition-colors ${\n currentIndex === idx\n ? 'bg-blue-500/20 border border-blue-500/30'\n : excludedIds.has(pattern.id)\n ? 'bg-dark-bg/50 opacity-50'\n : 'hover:bg-dark-border/50 border border-transparent'\n }`}\n >\n <div className=\"flex items-center gap-3\">\n <input\n type=\"checkbox\"\n checked={!excludedIds.has(pattern.id)}\n onChange={() => toggleExclude(pattern.id)}\n onClick={(e) => e.stopPropagation()}\n className=\"rounded border-dark-border\"\n />\n <div className=\"min-w-0 flex-1\">\n <div className={`font-medium truncate ${excludedIds.has(pattern.id) ? 'line-through' : ''}`}>\n {pattern.name}\n </div>\n <div className=\"flex items-center gap-2 mt-1 text-xs\">\n <span className=\"text-status-approved\">\n {formatPercentage(pattern.confidence.score)}\n </span>\n <span className=\"text-dark-muted\">•</span>\n <span className=\"text-dark-muted\">{pattern.locationCount} locations</span>\n </div>\n </div>\n </div>\n </button>\n ))}\n </div>\n </div>\n\n {/* Pattern Preview */}\n <div className=\"flex-1 overflow-y-auto p-5\">\n {currentPattern && (\n <div className=\"space-y-5\">\n <div className=\"flex items-start justify-between\">\n <div>\n <h3 className=\"text-lg font-semibold\">{currentPattern.name}</h3>\n <div className=\"flex items-center gap-2 mt-1 text-sm text-dark-muted\">\n <span>{currentPattern.category}</span>\n <span>•</span>\n <span className=\"text-status-approved font-medium\">\n {formatPercentage(currentPattern.confidence.score)} confidence\n </span>\n </div>\n <div className=\"text-xs text-dark-muted mt-2\">{currentPattern.reviewReason}</div>\n </div>\n <button\n onClick={() => toggleExclude(currentPattern.id)}\n className={`btn text-sm ${excludedIds.has(currentPattern.id) ? 'btn-primary' : 'btn-secondary'}`}\n >\n {excludedIds.has(currentPattern.id) ? '✓ Include' : '✗ Exclude'}\n </button>\n </div>\n\n <div className=\"grid grid-cols-2 gap-4\">\n <div className=\"p-4 bg-dark-bg rounded-lg\">\n <div className=\"text-xs text-dark-muted mb-1\">Consistent Locations</div>\n <div className=\"text-2xl font-semibold text-status-approved\">\n {currentPattern.locationCount}\n </div>\n </div>\n <div className=\"p-4 bg-dark-bg rounded-lg\">\n <div className=\"text-xs text-dark-muted mb-1\">Outliers</div>\n <div className={`text-2xl font-semibold ${currentPattern.outlierCount > 0 ? 'text-severity-warning' : 'text-dark-text'}`}>\n {currentPattern.outlierCount}\n </div>\n </div>\n </div>\n\n {/* Navigation */}\n <div className=\"flex items-center justify-between pt-4 border-t border-dark-border\">\n <button\n onClick={() => setCurrentIndex(Math.max(0, currentIndex - 1))}\n disabled={currentIndex === 0}\n className=\"btn btn-secondary text-sm\"\n >\n ← Previous\n </button>\n <span className=\"text-sm text-dark-muted\">\n {currentIndex + 1} of {reviewablePatterns.length}\n </span>\n <button\n onClick={() => setCurrentIndex(Math.min(reviewablePatterns.length - 1, currentIndex + 1))}\n disabled={currentIndex === reviewablePatterns.length - 1}\n className=\"btn btn-secondary text-sm\"\n >\n Next →\n </button>\n </div>\n </div>\n )}\n </div>\n </div>\n </Modal>\n );\n}\n\n// ============================================================================\n// Needs Review Panel\n// ============================================================================\n\ninterface NeedsReviewPreviewProps {\n patternId: string;\n}\n\nfunction NeedsReviewPreview({ patternId }: NeedsReviewPreviewProps) {\n const { data: pattern, isLoading } = usePattern(patternId);\n\n if (isLoading) {\n return <div className=\"text-dark-muted text-sm py-8 text-center\">Loading details...</div>;\n }\n\n if (!pattern) {\n return <div className=\"text-severity-error text-sm py-8 text-center\">Failed to load</div>;\n }\n\n return (\n <div className=\"space-y-5\">\n {/* Stats */}\n <div className=\"grid grid-cols-3 gap-3\">\n <div className=\"p-4 bg-dark-bg rounded-lg\">\n <div className=\"text-xs text-dark-muted mb-1\">Confidence</div>\n <div className={`text-2xl font-semibold ${getConfidenceColor(pattern.confidence.score)}`}>\n {formatPercentage(pattern.confidence.score)}\n </div>\n </div>\n <div className=\"p-4 bg-dark-bg rounded-lg\">\n <div className=\"text-xs text-dark-muted mb-1\">Consistent</div>\n <div className=\"text-2xl font-semibold text-status-approved\">{pattern.locations.length}</div>\n </div>\n <div className=\"p-4 bg-dark-bg rounded-lg\">\n <div className=\"text-xs text-dark-muted mb-1\">Outliers</div>\n <div className={`text-2xl font-semibold ${pattern.outliers.length > 0 ? 'text-severity-warning' : 'text-dark-text'}`}>\n {pattern.outliers.length}\n </div>\n </div>\n </div>\n\n {/* Outliers */}\n {pattern.outliers.length > 0 && (\n <div>\n <h4 className=\"text-sm font-medium mb-3 text-severity-warning flex items-center gap-2\">\n <span>⚠</span> Outliers - What's Wrong\n </h4>\n <div className=\"space-y-2 max-h-64 overflow-y-auto scrollbar-dark\">\n {pattern.outliers.slice(0, DISPLAY_LIMITS.NEEDS_REVIEW_OUTLIERS).map((outlier, i) => (\n <div\n key={i}\n className=\"p-3 bg-severity-warning/10 border border-severity-warning/20 rounded-lg text-sm\"\n >\n <div className=\"flex items-start gap-2\">\n <span className=\"text-severity-warning shrink-0\">⚠</span>\n <div className=\"min-w-0 flex-1\">\n <div className=\"font-medium truncate\">{outlier.file.split('/').pop()}</div>\n <div className=\"text-xs text-dark-muted truncate\">{truncatePath(outlier.file)}</div>\n {outlier.name && (\n <div className=\"text-xs text-blue-400 mt-1\">\n {outlier.kind && <span className=\"text-dark-muted\">{outlier.kind}: </span>}\n {outlier.name}\n </div>\n )}\n {outlier.reason && (\n <div className=\"text-xs text-severity-warning mt-1\">{outlier.reason}</div>\n )}\n <div className=\"text-xs text-dark-muted mt-1\">Line {outlier.range.start.line}</div>\n </div>\n </div>\n </div>\n ))}\n {pattern.outliers.length > DISPLAY_LIMITS.NEEDS_REVIEW_OUTLIERS && (\n <div className=\"text-xs text-dark-muted text-center py-2\">\n ... and {pattern.outliers.length - DISPLAY_LIMITS.NEEDS_REVIEW_OUTLIERS} more\n </div>\n )}\n </div>\n </div>\n )}\n\n {/* Sample Locations */}\n {pattern.locations.length > 0 && (\n <div>\n <h4 className=\"text-sm font-medium mb-3 text-status-approved flex items-center gap-2\">\n <span>✓</span> Sample Consistent Locations\n </h4>\n <div className=\"space-y-1 max-h-32 overflow-y-auto scrollbar-dark\">\n {pattern.locations.slice(0, DISPLAY_LIMITS.NEEDS_REVIEW_LOCATIONS).map((loc, i) => (\n <div key={i} className=\"p-2 bg-dark-bg rounded text-xs flex items-center gap-2\">\n <span className=\"text-status-approved\">✓</span>\n <span className=\"truncate flex-1\">{loc.file}</span>\n <span className=\"text-dark-muted shrink-0\">L{loc.range.start.line}</span>\n </div>\n ))}\n </div>\n </div>\n )}\n </div>\n );\n}\n\ninterface NeedsReviewProps {\n patterns: Pattern[];\n onClose: () => void;\n}\n\nexport function NeedsReviewPanel({ patterns, onClose }: NeedsReviewProps) {\n const approveMutation = useApprovePattern();\n const ignoreMutation = useIgnorePattern();\n const [currentIndex, setCurrentIndex] = useState(0);\n\n const reviewablePatterns = useMemo(\n () => getReviewablePatterns(patterns, 'needs-review'),\n [patterns]\n );\n\n const currentPattern = reviewablePatterns[currentIndex];\n\n const handleAction = async (action: 'approve' | 'ignore') => {\n if (!currentPattern) return;\n\n const mutation = action === 'approve' ? approveMutation : ignoreMutation;\n await mutation.mutateAsync(currentPattern.id);\n\n // Move to next or close\n if (currentIndex >= reviewablePatterns.length - 1) {\n if (reviewablePatterns.length <= 1) {\n onClose();\n } else {\n setCurrentIndex(currentIndex - 1);\n }\n }\n };\n\n if (reviewablePatterns.length === 0) {\n return (\n <EmptyState\n icon=\"🔍\"\n title=\"Needs Review\"\n message=\"No patterns need manual review. All discovered patterns are high-confidence (≥95%).\"\n onClose={onClose}\n />\n );\n }\n\n return (\n <Modal\n title=\"🔍 Needs Review\"\n subtitle={`${reviewablePatterns.length} patterns with lower confidence (<95%) need your attention`}\n onClose={onClose}\n footer={\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-4\">\n <button\n onClick={() => setCurrentIndex(Math.max(0, currentIndex - 1))}\n disabled={currentIndex === 0}\n className=\"btn btn-secondary text-sm\"\n >\n ← Previous\n </button>\n <span className=\"text-sm text-dark-muted\">\n {currentIndex + 1} of {reviewablePatterns.length}\n </span>\n <button\n onClick={() => setCurrentIndex(Math.min(reviewablePatterns.length - 1, currentIndex + 1))}\n disabled={currentIndex === reviewablePatterns.length - 1}\n className=\"btn btn-secondary text-sm\"\n >\n Next →\n </button>\n </div>\n <div className=\"flex gap-3\">\n <button\n onClick={() => handleAction('ignore')}\n disabled={ignoreMutation.isPending || !currentPattern}\n className=\"btn btn-secondary\"\n >\n {ignoreMutation.isPending ? '⏳...' : '✗ Ignore'}\n </button>\n <button\n onClick={() => handleAction('approve')}\n disabled={approveMutation.isPending || !currentPattern}\n className=\"btn btn-primary\"\n >\n {approveMutation.isPending ? '⏳...' : '✓ Approve'}\n </button>\n </div>\n </div>\n }\n >\n <div className=\"flex h-[60vh]\">\n {/* Pattern List */}\n <div className=\"w-80 border-r border-dark-border overflow-y-auto\">\n <div className=\"p-3 space-y-1\">\n {reviewablePatterns.map((pattern, idx) => (\n <button\n key={pattern.id}\n onClick={() => setCurrentIndex(idx)}\n className={`w-full text-left p-3 rounded-lg transition-colors ${\n currentIndex === idx\n ? 'bg-blue-500/20 border border-blue-500/30'\n : 'hover:bg-dark-border/50 border border-transparent'\n }`}\n >\n <div className=\"font-medium truncate\">{pattern.name}</div>\n <div className=\"flex items-center gap-2 mt-1 text-xs\">\n <span className={getConfidenceColor(pattern.confidence.score)}>\n {formatPercentage(pattern.confidence.score)}\n </span>\n <span className=\"text-dark-muted\">•</span>\n <span className=\"text-dark-muted\">{pattern.category}</span>\n </div>\n <div className=\"flex items-center gap-3 mt-1 text-xs\">\n <span className=\"text-status-approved\">✓ {pattern.locationCount}</span>\n {pattern.outlierCount > 0 && (\n <span className=\"text-severity-warning\">⚠ {pattern.outlierCount}</span>\n )}\n </div>\n <div className=\"text-xs text-dark-muted mt-1\">{pattern.reviewReason}</div>\n </button>\n ))}\n </div>\n </div>\n\n {/* Pattern Details */}\n <div className=\"flex-1 overflow-y-auto p-5\">\n {currentPattern && (\n <div className=\"space-y-5\">\n <div>\n <h3 className=\"text-lg font-semibold\">{currentPattern.name}</h3>\n <div className=\"flex items-center gap-2 mt-1 text-sm text-dark-muted\">\n <span>{currentPattern.category}</span>\n <span>•</span>\n <span className={getConfidenceColor(currentPattern.confidence.score)}>\n {formatPercentage(currentPattern.confidence.score)} confidence\n </span>\n </div>\n </div>\n <NeedsReviewPreview patternId={currentPattern.id} />\n </div>\n )}\n </div>\n </div>\n </Modal>\n );\n}\n","/**\n * Patterns Tab Component\n * \n * Enterprise-grade pattern management interface with:\n * - Multiple view modes (grouped, flat, table)\n * - Advanced filtering and sorting\n * - Bulk review workflows\n * - Real-time statistics\n * - Detailed pattern inspection\n */\n\nimport React, { useMemo, useState, useCallback } from 'react';\nimport { usePatterns } from '../../hooks';\nimport { useDashboardStore } from '../../store';\nimport type { ViewMode, SortConfig } from './types';\nimport { PatternStats } from './PatternStats';\nimport { PatternFilters } from './PatternFilters';\nimport { PatternList } from './PatternList';\nimport { PatternDetail, PatternDetailEmpty } from './PatternDetail';\nimport { QuickReviewPanel, NeedsReviewPanel } from './ReviewPanels';\nimport { calculateStatistics, groupPatternsByCategory, sortPatterns } from './utils';\n\nexport function PatternsTab(): React.ReactElement {\n // Global state\n const { patternFilters, setPatternFilters, selectedPattern, setSelectedPattern } = useDashboardStore();\n \n // Local state\n const [viewMode, setViewMode] = useState<ViewMode>('grouped');\n const [sort, setSort] = useState<SortConfig>({ field: 'confidence', direction: 'desc' });\n const [expandedDetectors, setExpandedDetectors] = useState<Set<string>>(new Set());\n const [showQuickReview, setShowQuickReview] = useState(false);\n const [showNeedsReview, setShowNeedsReview] = useState(false);\n const [showStats, setShowStats] = useState(true);\n\n // Data fetching\n const { data: patterns, isLoading, error } = usePatterns(patternFilters);\n\n // Computed data\n const sortedPatterns = useMemo(() => {\n if (!patterns) return [];\n return sortPatterns(patterns, sort);\n }, [patterns, sort]);\n\n const groupedPatterns = useMemo(() => {\n if (!patterns) return [];\n return groupPatternsByCategory(patterns);\n }, [patterns]);\n\n const statistics = useMemo(() => {\n if (!patterns) return null;\n return calculateStatistics(patterns);\n }, [patterns]);\n\n // Handlers\n const toggleDetector = useCallback((id: string) => {\n setExpandedDetectors((prev) => {\n const next = new Set(prev);\n if (next.has(id)) {\n next.delete(id);\n } else {\n next.add(id);\n }\n return next;\n });\n }, []);\n\n const handleSelectPattern = useCallback((id: string) => {\n setSelectedPattern(id === selectedPattern ? null : id);\n }, [selectedPattern, setSelectedPattern]);\n\n // Loading state\n if (isLoading) {\n return (\n <div className=\"flex items-center justify-center h-64\">\n <div className=\"flex flex-col items-center gap-3\">\n <div className=\"w-8 h-8 border-2 border-blue-500 border-t-transparent rounded-full animate-spin\" />\n <span className=\"text-dark-muted\">Loading patterns...</span>\n </div>\n </div>\n );\n }\n\n // Error state\n if (error) {\n return (\n <div className=\"flex flex-col items-center justify-center h-64 text-center\">\n <span className=\"text-4xl mb-4\">⚠️</span>\n <h3 className=\"text-lg font-medium text-severity-error mb-2\">Failed to load patterns</h3>\n <p className=\"text-dark-muted text-sm max-w-md\">\n There was an error loading the pattern data. Please try refreshing the page.\n </p>\n </div>\n );\n }\n\n return (\n <div className=\"space-y-6\">\n {/* Review Modals */}\n {showQuickReview && patterns && (\n <QuickReviewPanel patterns={patterns} onClose={() => setShowQuickReview(false)} />\n )}\n {showNeedsReview && patterns && (\n <NeedsReviewPanel patterns={patterns} onClose={() => setShowNeedsReview(false)} />\n )}\n\n {/* Statistics Section */}\n {statistics && showStats && (\n <div className=\"relative\">\n <button\n onClick={() => setShowStats(false)}\n className=\"absolute -top-1 -right-1 p-1 text-dark-muted hover:text-dark-text z-10\"\n title=\"Hide statistics\"\n >\n <span className=\"text-xs\">✕</span>\n </button>\n <PatternStats\n statistics={statistics}\n onQuickReview={() => setShowQuickReview(true)}\n onNeedsReview={() => setShowNeedsReview(true)}\n />\n </div>\n )}\n\n {/* Show Stats Toggle (when hidden) */}\n {!showStats && (\n <button\n onClick={() => setShowStats(true)}\n className=\"text-sm text-blue-400 hover:text-blue-300 transition-colors\"\n >\n 📊 Show statistics\n </button>\n )}\n\n {/* Main Content */}\n <div className=\"flex gap-6\">\n {/* Pattern List Section */}\n <div className=\"flex-1 min-w-0\">\n {/* Filters */}\n <div className=\"mb-4\">\n <PatternFilters\n filters={patternFilters}\n onFiltersChange={setPatternFilters}\n viewMode={viewMode}\n onViewModeChange={setViewMode}\n sort={sort}\n onSortChange={setSort}\n resultCount={patterns?.length || 0}\n />\n </div>\n\n {/* Pattern List */}\n <div className=\"max-h-[calc(100vh-400px)] overflow-y-auto scrollbar-dark pr-2\">\n <PatternList\n patterns={sortedPatterns}\n groupedPatterns={groupedPatterns}\n viewMode={viewMode}\n expandedDetectors={expandedDetectors}\n onToggleDetector={toggleDetector}\n selectedPatternId={selectedPattern}\n onSelectPattern={handleSelectPattern}\n />\n </div>\n </div>\n\n {/* Detail Panel */}\n <div className=\"w-96 shrink-0\">\n <div className=\"sticky top-4 bg-dark-surface border border-dark-border rounded-xl p-5\">\n {selectedPattern ? (\n <PatternDetail patternId={selectedPattern} />\n ) : (\n <PatternDetailEmpty />\n )}\n </div>\n </div>\n </div>\n </div>\n );\n}\n","/**\n * Contracts Tab Constants\n * \n * Centralized configuration for contract display and categorization.\n */\n\nimport type { ContractStatus, HttpMethod, FieldMismatch } from '../../types';\n\n// ============================================================================\n// HTTP Method Configuration\n// ============================================================================\n\nexport const METHOD_ORDER: HttpMethod[] = ['GET', 'POST', 'PUT', 'PATCH', 'DELETE'];\n\nexport const METHOD_CONFIG: Record<HttpMethod, {\n label: string;\n color: string;\n bgColor: string;\n description: string;\n}> = {\n GET: {\n label: 'GET',\n color: 'text-green-400',\n bgColor: 'bg-green-400/10',\n description: 'Retrieve data',\n },\n POST: {\n label: 'POST',\n color: 'text-blue-400',\n bgColor: 'bg-blue-400/10',\n description: 'Create new resource',\n },\n PUT: {\n label: 'PUT',\n color: 'text-yellow-400',\n bgColor: 'bg-yellow-400/10',\n description: 'Replace resource',\n },\n PATCH: {\n label: 'PATCH',\n color: 'text-orange-400',\n bgColor: 'bg-orange-400/10',\n description: 'Partial update',\n },\n DELETE: {\n label: 'DELETE',\n color: 'text-red-400',\n bgColor: 'bg-red-400/10',\n description: 'Remove resource',\n },\n};\n\n// ============================================================================\n// Status Configuration\n// ============================================================================\n\nexport const STATUS_CONFIG: Record<ContractStatus, {\n label: string;\n icon: string;\n color: string;\n bgColor: string;\n borderColor: string;\n description: string;\n}> = {\n discovered: {\n label: 'Discovered',\n icon: '🔍',\n color: 'text-blue-400',\n bgColor: 'bg-blue-500/10',\n borderColor: 'border-blue-500/20',\n description: 'Newly detected contract',\n },\n verified: {\n label: 'Verified',\n icon: '✓',\n color: 'text-status-approved',\n bgColor: 'bg-status-approved/10',\n borderColor: 'border-status-approved/20',\n description: 'Confirmed as correct',\n },\n mismatch: {\n label: 'Mismatch',\n icon: '⚠️',\n color: 'text-severity-error',\n bgColor: 'bg-severity-error/10',\n borderColor: 'border-severity-error/20',\n description: 'Type mismatches detected',\n },\n ignored: {\n label: 'Ignored',\n icon: '✗',\n color: 'text-dark-muted',\n bgColor: 'bg-dark-muted/10',\n borderColor: 'border-dark-muted/20',\n description: 'Marked as not relevant',\n },\n};\n\n// ============================================================================\n// Mismatch Type Configuration\n// ============================================================================\n\nexport const MISMATCH_TYPE_CONFIG: Record<FieldMismatch['mismatchType'], {\n label: string;\n icon: string;\n color: string;\n description: string;\n severity: 'error' | 'warning' | 'info';\n}> = {\n missing_in_frontend: {\n label: 'Missing in Frontend',\n icon: '🔴',\n color: 'text-severity-error',\n description: 'Backend returns field that frontend doesn\\'t expect',\n severity: 'error',\n },\n missing_in_backend: {\n label: 'Missing in Backend',\n icon: '🟡',\n color: 'text-severity-warning',\n description: 'Frontend expects field that backend doesn\\'t return',\n severity: 'warning',\n },\n type_mismatch: {\n label: 'Type Mismatch',\n icon: '⚠️',\n color: 'text-severity-error',\n description: 'Field types don\\'t match between BE and FE',\n severity: 'error',\n },\n optionality_mismatch: {\n label: 'Optionality Mismatch',\n icon: '❓',\n color: 'text-severity-warning',\n description: 'Optional/required status differs',\n severity: 'warning',\n },\n nullability_mismatch: {\n label: 'Nullability Mismatch',\n icon: '∅',\n color: 'text-severity-info',\n description: 'Nullable status differs',\n severity: 'info',\n },\n};\n\n// ============================================================================\n// Display Limits\n// ============================================================================\n\nexport const DISPLAY_LIMITS = {\n CONTRACTS_PER_PAGE: 50,\n FIELDS_PREVIEW: 10,\n MISMATCHES_PREVIEW: 5,\n FRONTEND_CALLS_PREVIEW: 5,\n TOP_MISMATCHED: 5,\n} as const;\n\n// ============================================================================\n// View Mode Configuration\n// ============================================================================\n\nexport const VIEW_MODE_CONFIG = {\n list: {\n label: 'List',\n icon: '📋',\n description: 'All contracts in a flat list',\n },\n 'by-endpoint': {\n label: 'By Endpoint',\n icon: '🔗',\n description: 'Contracts grouped by base path',\n },\n 'by-method': {\n label: 'By Method',\n icon: '📡',\n description: 'Contracts grouped by HTTP method',\n },\n} as const;\n","/**\n * Contracts Tab Utilities\n * \n * Data transformation, aggregation, and helper functions.\n */\n\nimport type { Contract, ContractStatus, HttpMethod, FieldMismatch } from '../../types';\nimport type { \n ContractMetrics, \n ContractStatistics, \n EndpointGroup, \n MethodGroup,\n SortConfig,\n ContractHealth,\n MismatchSummary,\n} from './types';\nimport { METHOD_ORDER, MISMATCH_TYPE_CONFIG, DISPLAY_LIMITS } from './constants';\n\n// ============================================================================\n// Metrics Calculation\n// ============================================================================\n\nexport function calculateMetrics(contracts: Contract[]): ContractMetrics {\n const byStatus: Record<ContractStatus, number> = {\n discovered: 0,\n verified: 0,\n mismatch: 0,\n ignored: 0,\n };\n\n const byMethod: Record<HttpMethod, number> = {\n GET: 0,\n POST: 0,\n PUT: 0,\n PATCH: 0,\n DELETE: 0,\n };\n\n const mismatchesByType: Record<string, number> = {};\n let totalMismatches = 0;\n\n for (const contract of contracts) {\n byStatus[contract.status]++;\n byMethod[contract.method]++;\n totalMismatches += contract.mismatchCount;\n\n for (const mismatch of contract.mismatches) {\n mismatchesByType[mismatch.mismatchType] = (mismatchesByType[mismatch.mismatchType] || 0) + 1;\n }\n }\n\n const total = contracts.length;\n const verifiedRate = total > 0 ? byStatus.verified / total : 0;\n const healthScore = calculateHealthScore(contracts);\n\n return {\n total,\n byStatus,\n byMethod,\n totalMismatches,\n mismatchesByType,\n verifiedRate,\n healthScore,\n };\n}\n\nexport function calculateStatistics(contracts: Contract[]): ContractStatistics {\n const metrics = calculateMetrics(contracts);\n\n const mismatchesBySeverity = { error: 0, warning: 0, info: 0 };\n for (const contract of contracts) {\n for (const mismatch of contract.mismatches) {\n mismatchesBySeverity[mismatch.severity]++;\n }\n }\n\n const topMismatchedEndpoints = contracts\n .filter(c => c.mismatchCount > 0)\n .sort((a, b) => b.mismatchCount - a.mismatchCount)\n .slice(0, DISPLAY_LIMITS.TOP_MISMATCHED)\n .map(c => ({ endpoint: c.endpoint, method: c.method, count: c.mismatchCount }));\n\n return {\n ...metrics,\n mismatchesBySeverity,\n topMismatchedEndpoints,\n };\n}\n\nfunction calculateHealthScore(contracts: Contract[]): number {\n if (contracts.length === 0) return 100;\n\n let score = 100;\n const total = contracts.length;\n\n // Deduct for mismatches\n const mismatchedCount = contracts.filter(c => c.status === 'mismatch').length;\n score -= (mismatchedCount / total) * 40;\n\n // Deduct for unverified\n const unverifiedCount = contracts.filter(c => c.status === 'discovered').length;\n score -= (unverifiedCount / total) * 20;\n\n // Deduct for low confidence\n const lowConfidenceCount = contracts.filter(c => c.confidence.score < 0.7).length;\n score -= (lowConfidenceCount / total) * 10;\n\n return Math.max(0, Math.round(score));\n}\n\n// ============================================================================\n// Grouping Functions\n// ============================================================================\n\nexport function groupByEndpoint(contracts: Contract[]): EndpointGroup[] {\n const groups = new Map<string, Contract[]>();\n\n for (const contract of contracts) {\n // Extract base path (first two segments)\n const parts = contract.endpoint.split('/').filter(Boolean);\n const basePath = '/' + parts.slice(0, 2).join('/');\n\n const existing = groups.get(basePath);\n if (existing) {\n existing.push(contract);\n } else {\n groups.set(basePath, [contract]);\n }\n }\n\n return Array.from(groups.entries())\n .map(([basePath, groupContracts]) => ({\n basePath,\n contracts: groupContracts.sort((a, b) => a.endpoint.localeCompare(b.endpoint)),\n metrics: {\n total: groupContracts.length,\n mismatches: groupContracts.reduce((sum, c) => sum + c.mismatchCount, 0),\n verified: groupContracts.filter(c => c.status === 'verified').length,\n },\n }))\n .sort((a, b) => b.metrics.mismatches - a.metrics.mismatches || b.metrics.total - a.metrics.total);\n}\n\nexport function groupByMethod(contracts: Contract[]): MethodGroup[] {\n const groups = new Map<HttpMethod, Contract[]>();\n\n for (const contract of contracts) {\n const existing = groups.get(contract.method);\n if (existing) {\n existing.push(contract);\n } else {\n groups.set(contract.method, [contract]);\n }\n }\n\n return METHOD_ORDER\n .filter(method => groups.has(method))\n .map(method => ({\n method,\n contracts: groups.get(method)!.sort((a, b) => a.endpoint.localeCompare(b.endpoint)),\n metrics: {\n total: groups.get(method)!.length,\n mismatches: groups.get(method)!.reduce((sum, c) => sum + c.mismatchCount, 0),\n },\n }));\n}\n\n// ============================================================================\n// Sorting Functions\n// ============================================================================\n\nexport function sortContracts(contracts: Contract[], config: SortConfig): Contract[] {\n const sorted = [...contracts];\n const multiplier = config.direction === 'asc' ? 1 : -1;\n\n sorted.sort((a, b) => {\n switch (config.field) {\n case 'endpoint':\n return multiplier * a.endpoint.localeCompare(b.endpoint);\n case 'method':\n return multiplier * METHOD_ORDER.indexOf(a.method) - METHOD_ORDER.indexOf(b.method);\n case 'status':\n return multiplier * a.status.localeCompare(b.status);\n case 'mismatches':\n return multiplier * (a.mismatchCount - b.mismatchCount);\n case 'confidence':\n return multiplier * (a.confidence.score - b.confidence.score);\n default:\n return 0;\n }\n });\n\n return sorted;\n}\n\n// ============================================================================\n// Health Analysis\n// ============================================================================\n\nexport function analyzeContractHealth(contract: Contract): ContractHealth {\n const issues: string[] = [];\n let score = 100;\n\n if (contract.mismatchCount > 0) {\n score -= Math.min(50, contract.mismatchCount * 10);\n issues.push(`${contract.mismatchCount} field mismatch${contract.mismatchCount !== 1 ? 'es' : ''}`);\n }\n\n if (contract.confidence.score < 0.7) {\n score -= 20;\n issues.push('Low confidence match');\n }\n\n if (contract.frontend.length === 0) {\n score -= 30;\n issues.push('No frontend consumers found');\n }\n\n const status: ContractHealth['status'] = \n score >= 80 ? 'healthy' : \n score >= 50 ? 'warning' : \n 'critical';\n\n return { score: Math.max(0, score), status, issues };\n}\n\nexport function summarizeMismatches(mismatches: FieldMismatch[]): MismatchSummary[] {\n const byType = new Map<FieldMismatch['mismatchType'], number>();\n\n for (const mismatch of mismatches) {\n byType.set(mismatch.mismatchType, (byType.get(mismatch.mismatchType) || 0) + 1);\n }\n\n return Array.from(byType.entries()).map(([type, count]) => {\n const config = MISMATCH_TYPE_CONFIG[type];\n return {\n type,\n count,\n severity: config.severity,\n description: config.description,\n };\n });\n}\n\n// ============================================================================\n// Format Helpers\n// ============================================================================\n\nexport function formatEndpoint(endpoint: string, maxLength = 40): string {\n if (endpoint.length <= maxLength) return endpoint;\n return endpoint.slice(0, maxLength - 3) + '...';\n}\n\nexport function formatFieldType(type: string): string {\n // Simplify complex types for display\n if (type.length > 30) {\n return type.slice(0, 27) + '...';\n }\n return type;\n}\n\nexport function getConfidenceColor(score: number): string {\n if (score >= 0.9) return 'text-status-approved';\n if (score >= 0.7) return 'text-severity-warning';\n return 'text-severity-error';\n}\n\nexport function formatPercentage(value: number): string {\n return `${Math.round(value * 100)}%`;\n}\n","/**\n * Contract Statistics Component\n * \n * Enterprise-grade statistics dashboard for contract overview.\n */\n\nimport type { ContractStatistics } from './types';\nimport { METHOD_ORDER, METHOD_CONFIG, STATUS_CONFIG, MISMATCH_TYPE_CONFIG } from './constants';\nimport { formatPercentage } from './utils';\n\n// ============================================================================\n// Stat Card\n// ============================================================================\n\ninterface StatCardProps {\n label: string;\n value: string | number;\n subValue?: string;\n icon?: string;\n color?: string;\n}\n\nfunction StatCard({ label, value, subValue, icon, color = 'text-dark-text' }: StatCardProps) {\n return (\n <div className=\"p-4 bg-dark-surface border border-dark-border rounded-lg\">\n <div className=\"flex items-center justify-between mb-2\">\n <span className=\"text-xs text-dark-muted uppercase tracking-wide\">{label}</span>\n {icon && <span className=\"text-lg\">{icon}</span>}\n </div>\n <div className={`text-2xl font-semibold ${color}`}>{value}</div>\n {subValue && (\n <div className=\"text-xs text-dark-muted mt-1\">{subValue}</div>\n )}\n </div>\n );\n}\n\n// ============================================================================\n// Health Score Gauge\n// ============================================================================\n\ninterface HealthGaugeProps {\n score: number;\n}\n\nfunction HealthGauge({ score }: HealthGaugeProps) {\n const color = score >= 80 ? 'text-status-approved' : score >= 50 ? 'text-severity-warning' : 'text-severity-error';\n const bgColor = score >= 80 ? 'bg-status-approved' : score >= 50 ? 'bg-severity-warning' : 'bg-severity-error';\n \n return (\n <div className=\"p-4 bg-dark-surface border border-dark-border rounded-lg\">\n <div className=\"text-xs text-dark-muted uppercase tracking-wide mb-3\">Contract Health</div>\n <div className=\"flex items-center gap-4\">\n <div className={`text-3xl font-bold ${color}`}>{score}</div>\n <div className=\"flex-1\">\n <div className=\"h-2 bg-dark-bg rounded-full overflow-hidden\">\n <div \n className={`h-full ${bgColor} transition-all`}\n style={{ width: `${score}%` }}\n />\n </div>\n <div className=\"text-xs text-dark-muted mt-1\">\n {score >= 80 ? 'Healthy' : score >= 50 ? 'Needs attention' : 'Critical issues'}\n </div>\n </div>\n </div>\n </div>\n );\n}\n\n// ============================================================================\n// Status Breakdown\n// ============================================================================\n\ninterface StatusBreakdownProps {\n byStatus: Record<string, number>;\n total: number;\n}\n\nfunction StatusBreakdown({ byStatus, total }: StatusBreakdownProps) {\n return (\n <div className=\"p-4 bg-dark-surface border border-dark-border rounded-lg\">\n <div className=\"text-xs text-dark-muted uppercase tracking-wide mb-3\">By Status</div>\n <div className=\"space-y-2\">\n {Object.entries(byStatus).map(([status, count]) => {\n const config = STATUS_CONFIG[status as keyof typeof STATUS_CONFIG];\n const percentage = total > 0 ? (count / total) * 100 : 0;\n \n return (\n <div key={status} className=\"flex items-center gap-3\">\n <span className=\"text-sm w-6\">{config?.icon}</span>\n <div className=\"flex-1\">\n <div className=\"flex items-center justify-between text-sm mb-1\">\n <span className={config?.color}>{config?.label || status}</span>\n <span className=\"text-dark-muted\">{count}</span>\n </div>\n <div className=\"h-1.5 bg-dark-bg rounded-full overflow-hidden\">\n <div \n className={`h-full rounded-full transition-all ${\n status === 'verified' ? 'bg-status-approved' :\n status === 'mismatch' ? 'bg-severity-error' :\n status === 'ignored' ? 'bg-dark-muted' :\n 'bg-blue-500'\n }`}\n style={{ width: `${percentage}%` }}\n />\n </div>\n </div>\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n\n// ============================================================================\n// Method Breakdown\n// ============================================================================\n\ninterface MethodBreakdownProps {\n byMethod: Record<string, number>;\n}\n\nfunction MethodBreakdown({ byMethod }: MethodBreakdownProps) {\n return (\n <div className=\"p-4 bg-dark-surface border border-dark-border rounded-lg\">\n <div className=\"text-xs text-dark-muted uppercase tracking-wide mb-3\">By Method</div>\n <div className=\"flex gap-2 flex-wrap\">\n {METHOD_ORDER.map(method => {\n const count = byMethod[method] || 0;\n if (count === 0) return null;\n const config = METHOD_CONFIG[method];\n \n return (\n <div \n key={method}\n className={`px-3 py-2 rounded-lg ${config.bgColor} border border-dark-border`}\n >\n <div className={`font-mono text-sm font-bold ${config.color}`}>{method}</div>\n <div className=\"text-xs text-dark-muted\">{count}</div>\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n\n// ============================================================================\n// Mismatch Summary\n// ============================================================================\n\ninterface MismatchSummaryProps {\n mismatchesByType: Record<string, number>;\n mismatchesBySeverity: { error: number; warning: number; info: number };\n total: number;\n}\n\nfunction MismatchSummary({ mismatchesByType, mismatchesBySeverity, total }: MismatchSummaryProps) {\n if (total === 0) {\n return (\n <div className=\"p-4 bg-status-approved/10 border border-status-approved/20 rounded-lg\">\n <div className=\"flex items-center gap-3\">\n <span className=\"text-2xl\">✅</span>\n <div>\n <div className=\"font-medium text-status-approved\">No Mismatches</div>\n <div className=\"text-xs text-dark-muted\">All contracts are type-safe</div>\n </div>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"p-4 bg-severity-error/10 border border-severity-error/20 rounded-lg\">\n <div className=\"flex items-center justify-between mb-3\">\n <div className=\"text-xs text-dark-muted uppercase tracking-wide\">Mismatches</div>\n <span className=\"text-lg font-semibold text-severity-error\">{total}</span>\n </div>\n \n {/* By severity */}\n <div className=\"flex gap-4 mb-3 text-sm\">\n {mismatchesBySeverity.error > 0 && (\n <span className=\"text-severity-error\">🔴 {mismatchesBySeverity.error} errors</span>\n )}\n {mismatchesBySeverity.warning > 0 && (\n <span className=\"text-severity-warning\">🟡 {mismatchesBySeverity.warning} warnings</span>\n )}\n {mismatchesBySeverity.info > 0 && (\n <span className=\"text-severity-info\">🔵 {mismatchesBySeverity.info} info</span>\n )}\n </div>\n\n {/* By type */}\n <div className=\"space-y-1\">\n {Object.entries(mismatchesByType).map(([type, count]) => {\n const config = MISMATCH_TYPE_CONFIG[type as keyof typeof MISMATCH_TYPE_CONFIG];\n if (!config) return null;\n \n return (\n <div key={type} className=\"flex items-center justify-between text-xs\">\n <span className={config.color}>{config.icon} {config.label}</span>\n <span className=\"text-dark-muted\">{count}</span>\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n\n// ============================================================================\n// Main Stats Component\n// ============================================================================\n\ninterface ContractStatsProps {\n statistics: ContractStatistics;\n}\n\nexport function ContractStats({ statistics }: ContractStatsProps) {\n return (\n <div className=\"space-y-4\">\n {/* Primary Stats */}\n <div className=\"grid grid-cols-2 md:grid-cols-4 gap-3\">\n <StatCard\n label=\"Total Contracts\"\n value={statistics.total}\n icon=\"🔗\"\n />\n <StatCard\n label=\"Verified\"\n value={statistics.byStatus.verified || 0}\n subValue={formatPercentage(statistics.verifiedRate)}\n icon=\"✓\"\n color=\"text-status-approved\"\n />\n <StatCard\n label=\"With Mismatches\"\n value={statistics.byStatus.mismatch || 0}\n icon=\"⚠️\"\n color={statistics.byStatus.mismatch > 0 ? 'text-severity-error' : 'text-dark-text'}\n />\n <HealthGauge score={statistics.healthScore} />\n </div>\n\n {/* Breakdowns */}\n <div className=\"grid grid-cols-1 md:grid-cols-3 gap-3\">\n <StatusBreakdown byStatus={statistics.byStatus} total={statistics.total} />\n <MethodBreakdown byMethod={statistics.byMethod} />\n <MismatchSummary \n mismatchesByType={statistics.mismatchesByType}\n mismatchesBySeverity={statistics.mismatchesBySeverity}\n total={statistics.totalMismatches}\n />\n </div>\n\n {/* Top Mismatched Endpoints */}\n {statistics.topMismatchedEndpoints.length > 0 && (\n <div className=\"p-4 bg-dark-surface border border-dark-border rounded-lg\">\n <div className=\"text-xs text-dark-muted uppercase tracking-wide mb-3\">\n Top Mismatched Endpoints\n </div>\n <div className=\"space-y-2\">\n {statistics.topMismatchedEndpoints.map((item, i) => (\n <div key={i} className=\"flex items-center justify-between text-sm\">\n <div className=\"flex items-center gap-2\">\n <span className={`font-mono text-xs font-bold ${METHOD_CONFIG[item.method].color}`}>\n {item.method}\n </span>\n <span className=\"font-mono text-dark-muted truncate\">{item.endpoint}</span>\n </div>\n <span className=\"text-severity-error font-medium\">{item.count}</span>\n </div>\n ))}\n </div>\n </div>\n )}\n </div>\n );\n}\n","/**\n * Contract Filters Component\n * \n * Advanced filtering and search for contracts.\n */\n\nimport type { ContractFilters as ContractFiltersType, ContractStatus, HttpMethod } from '../../types';\nimport type { ViewMode, SortConfig, SortField } from './types';\nimport { METHOD_ORDER, METHOD_CONFIG, STATUS_CONFIG, VIEW_MODE_CONFIG } from './constants';\n\ninterface ContractFiltersProps {\n filters: ContractFiltersType;\n onFiltersChange: (filters: ContractFiltersType) => void;\n viewMode: ViewMode;\n onViewModeChange: (mode: ViewMode) => void;\n sort: SortConfig;\n onSortChange: (sort: SortConfig) => void;\n resultCount: number;\n}\n\nexport function ContractFilters({\n filters,\n onFiltersChange,\n viewMode,\n onViewModeChange,\n sort,\n onSortChange,\n resultCount,\n}: ContractFiltersProps) {\n const handleClearFilters = () => {\n onFiltersChange({});\n };\n\n const hasActiveFilters = !!(filters.status || filters.method || filters.hasMismatches || filters.search);\n\n return (\n <div className=\"space-y-3\">\n {/* Search and View Controls */}\n <div className=\"flex items-center gap-3\">\n <div className=\"relative flex-1\">\n <input\n type=\"text\"\n placeholder=\"Search endpoints...\"\n className=\"w-full bg-dark-bg border border-dark-border rounded-lg px-4 py-2 pl-10 text-sm focus:outline-none focus:border-blue-500 transition-colors font-mono\"\n value={filters.search || ''}\n onChange={(e) => onFiltersChange({ ...filters, search: e.target.value || undefined })}\n />\n <span className=\"absolute left-3 top-1/2 -translate-y-1/2 text-dark-muted\">🔍</span>\n </div>\n\n {/* View Mode Toggle */}\n <div className=\"flex bg-dark-bg border border-dark-border rounded-lg p-0.5\">\n {(Object.keys(VIEW_MODE_CONFIG) as ViewMode[]).map((mode) => {\n const config = VIEW_MODE_CONFIG[mode];\n return (\n <button\n key={mode}\n onClick={() => onViewModeChange(mode)}\n className={`px-3 py-1.5 text-sm rounded-md transition-colors ${\n viewMode === mode\n ? 'bg-blue-500/20 text-blue-400'\n : 'text-dark-muted hover:text-dark-text'\n }`}\n title={config.description}\n >\n {config.icon}\n </button>\n );\n })}\n </div>\n </div>\n\n {/* Filter Row */}\n <div className=\"flex flex-wrap items-center gap-3\">\n {/* Status Filter */}\n <select\n className=\"bg-dark-bg border border-dark-border rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-blue-500\"\n value={filters.status || ''}\n onChange={(e) => onFiltersChange({ \n ...filters, \n status: e.target.value as ContractStatus || undefined \n })}\n >\n <option value=\"\">All Statuses</option>\n {Object.entries(STATUS_CONFIG).map(([status, config]) => (\n <option key={status} value={status}>\n {config.icon} {config.label}\n </option>\n ))}\n </select>\n\n {/* Method Filter */}\n <select\n className=\"bg-dark-bg border border-dark-border rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-blue-500\"\n value={filters.method || ''}\n onChange={(e) => onFiltersChange({ \n ...filters, \n method: e.target.value as HttpMethod || undefined \n })}\n >\n <option value=\"\">All Methods</option>\n {METHOD_ORDER.map((method) => (\n <option key={method} value={method}>\n {method}\n </option>\n ))}\n </select>\n\n {/* Has Mismatches Toggle */}\n <label className=\"flex items-center gap-2 px-3 py-2 bg-dark-bg border border-dark-border rounded-lg text-sm cursor-pointer hover:bg-dark-border/50 transition-colors\">\n <input\n type=\"checkbox\"\n checked={filters.hasMismatches || false}\n onChange={(e) => onFiltersChange({ ...filters, hasMismatches: e.target.checked || undefined })}\n className=\"rounded border-dark-border\"\n />\n <span className=\"text-severity-warning\">⚠️</span>\n <span>Has Mismatches</span>\n </label>\n\n {/* Sort */}\n <div className=\"flex items-center gap-1 ml-auto\">\n <span className=\"text-xs text-dark-muted\">Sort:</span>\n <select\n className=\"bg-dark-bg border border-dark-border rounded-lg px-2 py-1.5 text-sm focus:outline-none focus:border-blue-500\"\n value={sort.field}\n onChange={(e) => onSortChange({ ...sort, field: e.target.value as SortField })}\n >\n <option value=\"mismatches\">Mismatches</option>\n <option value=\"endpoint\">Endpoint</option>\n <option value=\"method\">Method</option>\n <option value=\"status\">Status</option>\n <option value=\"confidence\">Confidence</option>\n </select>\n <button\n onClick={() => onSortChange({ \n ...sort, \n direction: sort.direction === 'asc' ? 'desc' : 'asc' \n })}\n className=\"p-1.5 bg-dark-bg border border-dark-border rounded-lg text-sm hover:bg-dark-border/50 transition-colors\"\n title={sort.direction === 'asc' ? 'Ascending' : 'Descending'}\n >\n {sort.direction === 'asc' ? '↑' : '↓'}\n </button>\n </div>\n </div>\n\n {/* Active Filters & Results */}\n <div className=\"flex items-center justify-between text-sm\">\n <div className=\"flex items-center gap-2\">\n <span className=\"text-dark-muted\">\n {resultCount} contract{resultCount !== 1 ? 's' : ''}\n </span>\n {hasActiveFilters && (\n <>\n <span className=\"text-dark-border\">•</span>\n <button\n onClick={handleClearFilters}\n className=\"text-blue-400 hover:text-blue-300 transition-colors\"\n >\n Clear filters\n </button>\n </>\n )}\n </div>\n\n {/* Active Filter Pills */}\n {hasActiveFilters && (\n <div className=\"flex items-center gap-2\">\n {filters.status && (\n <span className=\"px-2 py-0.5 bg-dark-bg border border-dark-border rounded text-xs\">\n {STATUS_CONFIG[filters.status]?.icon} {STATUS_CONFIG[filters.status]?.label}\n <button\n onClick={() => onFiltersChange({ ...filters, status: undefined })}\n className=\"ml-1 text-dark-muted hover:text-dark-text\"\n >\n ×\n </button>\n </span>\n )}\n {filters.method && (\n <span className={`px-2 py-0.5 bg-dark-bg border border-dark-border rounded text-xs font-mono ${METHOD_CONFIG[filters.method]?.color}`}>\n {filters.method}\n <button\n onClick={() => onFiltersChange({ ...filters, method: undefined })}\n className=\"ml-1 text-dark-muted hover:text-dark-text\"\n >\n ×\n </button>\n </span>\n )}\n {filters.hasMismatches && (\n <span className=\"px-2 py-0.5 bg-dark-bg border border-dark-border rounded text-xs\">\n ⚠️ Has Mismatches\n <button\n onClick={() => onFiltersChange({ ...filters, hasMismatches: undefined })}\n className=\"ml-1 text-dark-muted hover:text-dark-text\"\n >\n ×\n </button>\n </span>\n )}\n </div>\n )}\n </div>\n </div>\n );\n}\n","/**\n * Contract List Components\n * \n * Multiple view modes for contract display.\n */\n\nimport { useState } from 'react';\nimport type { Contract } from '../../types';\nimport type { ViewMode, EndpointGroup, MethodGroup } from './types';\nimport { METHOD_CONFIG, STATUS_CONFIG } from './constants';\nimport { getConfidenceColor, formatPercentage, groupByEndpoint, groupByMethod } from './utils';\n\n// ============================================================================\n// Contract Card (List View)\n// ============================================================================\n\ninterface ContractCardProps {\n contract: Contract;\n isSelected: boolean;\n onSelect: () => void;\n}\n\nfunction ContractCard({ contract, isSelected, onSelect }: ContractCardProps) {\n const methodConfig = METHOD_CONFIG[contract.method];\n const statusConfig = STATUS_CONFIG[contract.status];\n\n return (\n <button\n onClick={onSelect}\n className={`w-full text-left p-4 rounded-lg border transition-all ${\n isSelected\n ? 'bg-blue-500/10 border-blue-500/30'\n : 'bg-dark-surface border-dark-border hover:border-dark-muted'\n }`}\n >\n <div className=\"flex items-center justify-between mb-2\">\n <div className=\"flex items-center gap-3 min-w-0\">\n <span className={`font-mono text-xs font-bold px-2 py-1 rounded ${methodConfig.bgColor} ${methodConfig.color}`}>\n {contract.method}\n </span>\n <span className=\"font-mono text-sm truncate\" title={contract.endpoint}>\n {contract.endpoint}\n </span>\n </div>\n <span className={`px-2 py-1 rounded text-xs shrink-0 ${statusConfig.bgColor} ${statusConfig.color}`}>\n {statusConfig.icon} {statusConfig.label}\n </span>\n </div>\n\n <div className=\"flex items-center gap-4 text-xs text-dark-muted\">\n <span title=\"Backend framework\">\n 🔧 {contract.backend.framework}\n </span>\n <span title=\"Frontend calls\">\n 📱 {contract.frontend.length} call{contract.frontend.length !== 1 ? 's' : ''}\n </span>\n {contract.mismatchCount > 0 && (\n <span className=\"text-severity-error\" title=\"Field mismatches\">\n ⚠️ {contract.mismatchCount} mismatch{contract.mismatchCount !== 1 ? 'es' : ''}\n </span>\n )}\n <span className={getConfidenceColor(contract.confidence.score)} title=\"Confidence\">\n {formatPercentage(contract.confidence.score)}\n </span>\n </div>\n </button>\n );\n}\n\n// ============================================================================\n// Endpoint Group Card (By Endpoint View)\n// ============================================================================\n\ninterface EndpointGroupCardProps {\n group: EndpointGroup;\n isExpanded: boolean;\n onToggle: () => void;\n selectedContractId: string | null;\n onSelectContract: (id: string) => void;\n}\n\nfunction EndpointGroupCard({\n group,\n isExpanded,\n onToggle,\n selectedContractId,\n onSelectContract,\n}: EndpointGroupCardProps) {\n return (\n <div className=\"border border-dark-border rounded-lg overflow-hidden\">\n <button\n onClick={onToggle}\n className=\"w-full text-left p-4 bg-dark-surface hover:bg-dark-border/30 transition-colors\"\n >\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-3\">\n <span className=\"text-dark-muted\">{isExpanded ? '▼' : '▶'}</span>\n <span className=\"text-lg\">🔗</span>\n <span className=\"font-mono font-medium\">{group.basePath}</span>\n <span className=\"px-2 py-0.5 bg-dark-bg rounded text-xs text-dark-muted\">\n {group.contracts.length} endpoint{group.contracts.length !== 1 ? 's' : ''}\n </span>\n </div>\n {group.metrics.mismatches > 0 && (\n <span className=\"text-severity-error text-sm\">\n ⚠️ {group.metrics.mismatches}\n </span>\n )}\n </div>\n\n <div className=\"flex items-center gap-4 mt-2 ml-10 text-xs text-dark-muted\">\n <span className=\"text-status-approved\">✓ {group.metrics.verified} verified</span>\n {group.metrics.mismatches > 0 && (\n <span className=\"text-severity-error\">⚠ {group.metrics.mismatches} mismatches</span>\n )}\n </div>\n </button>\n\n {isExpanded && (\n <div className=\"border-t border-dark-border bg-dark-bg p-3 space-y-2\">\n {group.contracts.map((contract) => (\n <ContractCard\n key={contract.id}\n contract={contract}\n isSelected={selectedContractId === contract.id}\n onSelect={() => onSelectContract(contract.id)}\n />\n ))}\n </div>\n )}\n </div>\n );\n}\n\n// ============================================================================\n// Method Group Card (By Method View)\n// ============================================================================\n\ninterface MethodGroupCardProps {\n group: MethodGroup;\n isExpanded: boolean;\n onToggle: () => void;\n selectedContractId: string | null;\n onSelectContract: (id: string) => void;\n}\n\nfunction MethodGroupCard({\n group,\n isExpanded,\n onToggle,\n selectedContractId,\n onSelectContract,\n}: MethodGroupCardProps) {\n const methodConfig = METHOD_CONFIG[group.method];\n\n return (\n <div className=\"border border-dark-border rounded-lg overflow-hidden\">\n <button\n onClick={onToggle}\n className=\"w-full text-left p-4 bg-dark-surface hover:bg-dark-border/30 transition-colors\"\n >\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-3\">\n <span className=\"text-dark-muted\">{isExpanded ? '▼' : '▶'}</span>\n <span className={`font-mono text-lg font-bold px-3 py-1 rounded ${methodConfig.bgColor} ${methodConfig.color}`}>\n {group.method}\n </span>\n <span className=\"text-dark-muted text-sm\">\n {methodConfig.description}\n </span>\n <span className=\"px-2 py-0.5 bg-dark-bg rounded text-xs text-dark-muted\">\n {group.contracts.length}\n </span>\n </div>\n {group.metrics.mismatches > 0 && (\n <span className=\"text-severity-error text-sm\">\n ⚠️ {group.metrics.mismatches}\n </span>\n )}\n </div>\n </button>\n\n {isExpanded && (\n <div className=\"border-t border-dark-border bg-dark-bg p-3 space-y-2\">\n {group.contracts.map((contract) => (\n <ContractCard\n key={contract.id}\n contract={contract}\n isSelected={selectedContractId === contract.id}\n onSelect={() => onSelectContract(contract.id)}\n />\n ))}\n </div>\n )}\n </div>\n );\n}\n\n// ============================================================================\n// Main Contract List\n// ============================================================================\n\ninterface ContractListProps {\n contracts: Contract[];\n viewMode: ViewMode;\n selectedContractId: string | null;\n onSelectContract: (id: string) => void;\n}\n\nexport function ContractList({\n contracts,\n viewMode,\n selectedContractId,\n onSelectContract,\n}: ContractListProps) {\n const [expandedGroups, setExpandedGroups] = useState<Set<string>>(new Set());\n\n const toggleGroup = (id: string) => {\n setExpandedGroups(prev => {\n const next = new Set(prev);\n if (next.has(id)) {\n next.delete(id);\n } else {\n next.add(id);\n }\n return next;\n });\n };\n\n if (contracts.length === 0) {\n return (\n <div className=\"flex flex-col items-center justify-center py-16 text-center\">\n <span className=\"text-4xl mb-4\">📋</span>\n <h3 className=\"text-lg font-medium mb-2\">No contracts found</h3>\n <p className=\"text-dark-muted text-sm max-w-md\">\n Run <code className=\"bg-dark-bg px-2 py-0.5 rounded font-mono text-xs\">drift scan --contracts</code> to detect BE↔FE contracts\n </p>\n </div>\n );\n }\n\n // List view\n if (viewMode === 'list') {\n return (\n <div className=\"space-y-2\">\n {contracts.map((contract) => (\n <ContractCard\n key={contract.id}\n contract={contract}\n isSelected={selectedContractId === contract.id}\n onSelect={() => onSelectContract(contract.id)}\n />\n ))}\n </div>\n );\n }\n\n // By Endpoint view\n if (viewMode === 'by-endpoint') {\n const endpointGroups = groupByEndpoint(contracts);\n return (\n <div className=\"space-y-3\">\n {endpointGroups.map((group) => (\n <EndpointGroupCard\n key={group.basePath}\n group={group}\n isExpanded={expandedGroups.has(group.basePath)}\n onToggle={() => toggleGroup(group.basePath)}\n selectedContractId={selectedContractId}\n onSelectContract={onSelectContract}\n />\n ))}\n </div>\n );\n }\n\n // By Method view\n const methodGroups = groupByMethod(contracts);\n return (\n <div className=\"space-y-3\">\n {methodGroups.map((group) => (\n <MethodGroupCard\n key={group.method}\n group={group}\n isExpanded={expandedGroups.has(group.method)}\n onToggle={() => toggleGroup(group.method)}\n selectedContractId={selectedContractId}\n onSelectContract={onSelectContract}\n />\n ))}\n </div>\n );\n}\n","/**\n * Contract Detail Panel\n * \n * Detailed view of a selected contract with actions.\n */\n\nimport { useState } from 'react';\nimport { useContract, useVerifyContract, useIgnoreContract } from '../../hooks';\nimport type { Contract, ContractField, FieldMismatch } from '../../types';\nimport { METHOD_CONFIG, STATUS_CONFIG, MISMATCH_TYPE_CONFIG, DISPLAY_LIMITS } from './constants';\nimport { getConfidenceColor, formatPercentage, analyzeContractHealth } from './utils';\n\n// ============================================================================\n// Field List\n// ============================================================================\n\ninterface FieldListProps {\n fields: ContractField[];\n title: string;\n color: string;\n}\n\nfunction FieldList({ fields, title, color }: FieldListProps) {\n const [showAll, setShowAll] = useState(false);\n const displayFields = showAll ? fields : fields.slice(0, DISPLAY_LIMITS.FIELDS_PREVIEW);\n\n return (\n <div>\n <div className=\"text-xs text-dark-muted mb-2\">{title}</div>\n <div className=\"space-y-1\">\n {displayFields.map((field, i) => (\n <div key={i} className=\"font-mono text-xs flex items-center gap-1\">\n <span className={color}>{field.name}</span>\n <span className=\"text-dark-muted\">:</span>\n <span className=\"text-purple-400\">{field.type}</span>\n {field.optional && <span className=\"text-yellow-400\">?</span>}\n {field.nullable && <span className=\"text-orange-400\">| null</span>}\n </div>\n ))}\n {fields.length > DISPLAY_LIMITS.FIELDS_PREVIEW && (\n <button\n onClick={() => setShowAll(!showAll)}\n className=\"text-xs text-blue-400 hover:text-blue-300\"\n >\n {showAll ? 'Show less' : `Show ${fields.length - DISPLAY_LIMITS.FIELDS_PREVIEW} more`}\n </button>\n )}\n </div>\n </div>\n );\n}\n\n// ============================================================================\n// Mismatch Card\n// ============================================================================\n\ninterface MismatchCardProps {\n mismatch: FieldMismatch;\n}\n\nfunction MismatchCard({ mismatch }: MismatchCardProps) {\n const config = MISMATCH_TYPE_CONFIG[mismatch.mismatchType];\n const severityColor = \n mismatch.severity === 'error' ? 'bg-severity-error/20 text-severity-error border-severity-error/30' :\n mismatch.severity === 'warning' ? 'bg-severity-warning/20 text-severity-warning border-severity-warning/30' :\n 'bg-severity-info/20 text-severity-info border-severity-info/30';\n\n return (\n <div className=\"p-3 bg-dark-bg rounded-lg text-sm\">\n <div className=\"flex items-center gap-2 mb-2\">\n <span className=\"font-mono text-blue-400\">{mismatch.fieldPath}</span>\n <span className={`px-1.5 py-0.5 rounded text-xs border ${severityColor}`}>\n {mismatch.severity}\n </span>\n </div>\n <div className={`text-xs ${config.color} mb-1`}>\n {config.icon} {config.label}\n </div>\n <div className=\"text-xs text-dark-muted\">{mismatch.description}</div>\n </div>\n );\n}\n\n// ============================================================================\n// Actions Bar\n// ============================================================================\n\ninterface ActionsBarProps {\n contract: Contract;\n onCopyForAI: () => void;\n isCopying: boolean;\n copySuccess: boolean;\n}\n\nfunction ActionsBar({ contract, onCopyForAI, isCopying, copySuccess }: ActionsBarProps) {\n const verifyMutation = useVerifyContract();\n const ignoreMutation = useIgnoreContract();\n\n return (\n <div className=\"flex flex-wrap gap-2\">\n {(contract.status === 'discovered' || contract.status === 'mismatch') && (\n <>\n <button\n onClick={() => verifyMutation.mutate(contract.id)}\n disabled={verifyMutation.isPending}\n className=\"btn btn-primary text-sm flex items-center gap-1.5\"\n >\n {verifyMutation.isPending ? <span className=\"animate-spin\">⏳</span> : <span>✓</span>}\n Verify\n </button>\n <button\n onClick={() => ignoreMutation.mutate(contract.id)}\n disabled={ignoreMutation.isPending}\n className=\"btn btn-secondary text-sm flex items-center gap-1.5\"\n >\n {ignoreMutation.isPending ? <span className=\"animate-spin\">⏳</span> : <span>✗</span>}\n Ignore\n </button>\n </>\n )}\n \n <button\n onClick={onCopyForAI}\n disabled={isCopying}\n className={`btn text-sm flex items-center gap-1.5 ${copySuccess ? 'btn-primary' : 'btn-secondary'}`}\n >\n {isCopying ? <span className=\"animate-spin\">⏳</span> : copySuccess ? <span>✓</span> : <span>📋</span>}\n {copySuccess ? 'Copied!' : 'Copy for AI'}\n </button>\n </div>\n );\n}\n\n// ============================================================================\n// Main Detail Component\n// ============================================================================\n\ninterface ContractDetailProps {\n contractId: string;\n}\n\nexport function ContractDetail({ contractId }: ContractDetailProps) {\n const { data: contract, isLoading, error } = useContract(contractId);\n const [isCopying, setIsCopying] = useState(false);\n const [copySuccess, setCopySuccess] = useState(false);\n\n const copyForAI = async () => {\n if (!contract) return;\n \n setIsCopying(true);\n setCopySuccess(false);\n\n try {\n const lines: string[] = [\n `# API Contract: ${contract.method} ${contract.endpoint}`,\n `Status: ${contract.status} | Confidence: ${formatPercentage(contract.confidence.score)}`,\n '',\n '## Backend Endpoint',\n `File: ${contract.backend.file}:${contract.backend.line}`,\n `Framework: ${contract.backend.framework}`,\n '',\n '### Response Fields:',\n ...contract.backend.responseFields.map(f => \n `- ${f.name}: ${f.type}${f.optional ? ' (optional)' : ''}${f.nullable ? ' (nullable)' : ''}`\n ),\n '',\n '## Frontend API Calls',\n ...contract.frontend.flatMap(fe => [\n `### ${fe.file}:${fe.line}`,\n `Library: ${fe.library}`,\n fe.responseType ? `Response Type: ${fe.responseType}` : '',\n 'Expected Fields:',\n ...fe.responseFields.map(f => \n `- ${f.name}: ${f.type}${f.optional ? ' (optional)' : ''}`\n ),\n '',\n ]),\n ];\n\n if (contract.mismatches.length > 0) {\n lines.push('## ⚠️ Mismatches to Fix');\n lines.push('');\n for (const mismatch of contract.mismatches) {\n const config = MISMATCH_TYPE_CONFIG[mismatch.mismatchType];\n lines.push(`### ${mismatch.fieldPath}`);\n lines.push(`Type: ${config.icon} ${config.label}`);\n lines.push(`Description: ${mismatch.description}`);\n lines.push(`Severity: ${mismatch.severity}`);\n lines.push('');\n }\n lines.push('---');\n lines.push('Please fix these mismatches to ensure type safety between backend and frontend.');\n }\n\n await navigator.clipboard.writeText(lines.join('\\n'));\n setCopySuccess(true);\n setTimeout(() => setCopySuccess(false), 2000);\n } catch (err) {\n console.error('Failed to copy:', err);\n } finally {\n setIsCopying(false);\n }\n };\n\n if (isLoading) {\n return (\n <div className=\"flex items-center justify-center py-12\">\n <div className=\"text-dark-muted\">Loading contract details...</div>\n </div>\n );\n }\n\n if (error || !contract) {\n return (\n <div className=\"flex flex-col items-center justify-center py-12 text-center\">\n <span className=\"text-3xl mb-3\">⚠️</span>\n <div className=\"text-severity-error\">Failed to load contract</div>\n </div>\n );\n }\n\n const methodConfig = METHOD_CONFIG[contract.method];\n const statusConfig = STATUS_CONFIG[contract.status];\n const health = analyzeContractHealth(contract);\n\n return (\n <div className=\"space-y-5\">\n {/* Header */}\n <div>\n <div className=\"flex items-center gap-2 mb-2\">\n <span className={`font-mono text-lg font-bold px-2 py-1 rounded ${methodConfig.bgColor} ${methodConfig.color}`}>\n {contract.method}\n </span>\n <span className=\"font-mono text-lg truncate\" title={contract.endpoint}>\n {contract.endpoint}\n </span>\n </div>\n <div className=\"flex items-center gap-3\">\n <span className={`px-2 py-1 rounded text-xs ${statusConfig.bgColor} ${statusConfig.color}`}>\n {statusConfig.icon} {statusConfig.label}\n </span>\n <span className={`text-sm ${getConfidenceColor(contract.confidence.score)}`}>\n {formatPercentage(contract.confidence.score)} confidence\n </span>\n </div>\n </div>\n\n {/* Health indicator */}\n {health.issues.length > 0 && (\n <div className={`p-3 rounded-lg text-sm ${\n health.status === 'critical' ? 'bg-severity-error/10 border border-severity-error/20' :\n health.status === 'warning' ? 'bg-severity-warning/10 border border-severity-warning/20' :\n 'bg-status-approved/10 border border-status-approved/20'\n }`}>\n <div className=\"flex items-center gap-2 mb-1\">\n <span>{health.status === 'critical' ? '🔴' : health.status === 'warning' ? '🟡' : '🟢'}</span>\n <span className=\"font-medium\">Health Score: {health.score}</span>\n </div>\n <ul className=\"text-xs text-dark-muted list-disc list-inside\">\n {health.issues.map((issue, i) => (\n <li key={i}>{issue}</li>\n ))}\n </ul>\n </div>\n )}\n\n {/* Actions */}\n <ActionsBar\n contract={contract}\n onCopyForAI={copyForAI}\n isCopying={isCopying}\n copySuccess={copySuccess}\n />\n\n {/* Backend */}\n <div className=\"p-4 bg-dark-bg rounded-lg\">\n <h4 className=\"text-sm font-medium mb-3 text-green-400 flex items-center gap-2\">\n <span>🔧</span> Backend\n </h4>\n <div className=\"text-xs space-y-2\">\n <div className=\"flex items-center gap-2\">\n <span className=\"text-dark-muted\">File:</span>\n <span className=\"font-mono\">{contract.backend.file}:{contract.backend.line}</span>\n </div>\n <div className=\"flex items-center gap-2\">\n <span className=\"text-dark-muted\">Framework:</span>\n <span>{contract.backend.framework}</span>\n </div>\n {contract.backend.responseFields.length > 0 && (\n <FieldList \n fields={contract.backend.responseFields} \n title=\"Response Fields:\" \n color=\"text-green-400\"\n />\n )}\n </div>\n </div>\n\n {/* Frontend */}\n <div className=\"p-4 bg-dark-bg rounded-lg\">\n <h4 className=\"text-sm font-medium mb-3 text-blue-400 flex items-center gap-2\">\n <span>📱</span> Frontend ({contract.frontend.length})\n </h4>\n <div className=\"space-y-4\">\n {contract.frontend.slice(0, DISPLAY_LIMITS.FRONTEND_CALLS_PREVIEW).map((fe, i) => (\n <div key={i} className=\"text-xs border-l-2 border-dark-border pl-3\">\n <div className=\"font-mono\">{fe.file}:{fe.line}</div>\n <div className=\"text-dark-muted\">Library: {fe.library}</div>\n {fe.responseType && (\n <div className=\"text-dark-muted\">\n Type: <span className=\"text-purple-400\">{fe.responseType}</span>\n </div>\n )}\n {fe.responseFields.length > 0 && (\n <FieldList \n fields={fe.responseFields} \n title=\"Expected Fields:\" \n color=\"text-blue-400\"\n />\n )}\n </div>\n ))}\n {contract.frontend.length > DISPLAY_LIMITS.FRONTEND_CALLS_PREVIEW && (\n <div className=\"text-xs text-dark-muted\">\n ... and {contract.frontend.length - DISPLAY_LIMITS.FRONTEND_CALLS_PREVIEW} more\n </div>\n )}\n </div>\n </div>\n\n {/* Mismatches */}\n {contract.mismatches.length > 0 && (\n <div className=\"p-4 bg-severity-error/10 border border-severity-error/30 rounded-lg\">\n <h4 className=\"text-sm font-medium mb-3 text-severity-error flex items-center gap-2\">\n <span>⚠️</span> Mismatches ({contract.mismatches.length})\n </h4>\n <div className=\"space-y-2 max-h-64 overflow-y-auto scrollbar-dark\">\n {contract.mismatches.slice(0, DISPLAY_LIMITS.MISMATCHES_PREVIEW).map((mismatch, i) => (\n <MismatchCard key={i} mismatch={mismatch} />\n ))}\n {contract.mismatches.length > DISPLAY_LIMITS.MISMATCHES_PREVIEW && (\n <div className=\"text-xs text-dark-muted text-center py-2\">\n ... and {contract.mismatches.length - DISPLAY_LIMITS.MISMATCHES_PREVIEW} more\n </div>\n )}\n </div>\n </div>\n )}\n </div>\n );\n}\n\n// ============================================================================\n// Empty State\n// ============================================================================\n\nexport function ContractDetailEmpty() {\n return (\n <div className=\"flex flex-col items-center justify-center py-12 text-center\">\n <span className=\"text-4xl mb-4\">🔗</span>\n <h3 className=\"text-lg font-medium mb-2\">No contract selected</h3>\n <p className=\"text-dark-muted text-sm max-w-xs\">\n Select a contract from the list to view its details, fields, and mismatches.\n </p>\n </div>\n );\n}\n","/**\n * Contracts Tab Component\n * \n * Enterprise-grade BE↔FE contract management interface with:\n * - Multiple view modes (list, by-endpoint, by-method)\n * - Advanced filtering and sorting\n * - Mismatch detection and analysis\n * - Detailed statistics\n */\n\nimport { useMemo, useState, useCallback } from 'react';\nimport { useContracts } from '../../hooks';\nimport type { ContractFilters as ContractFiltersType } from '../../types';\nimport type { ViewMode, SortConfig } from './types';\nimport { ContractStats } from './ContractStats';\nimport { ContractFilters } from './ContractFilters';\nimport { ContractList } from './ContractList';\nimport { ContractDetail, ContractDetailEmpty } from './ContractDetail';\nimport { calculateStatistics, sortContracts } from './utils';\n\nexport function ContractsTab() {\n // Local state\n const [filters, setFilters] = useState<ContractFiltersType>({});\n const [viewMode, setViewMode] = useState<ViewMode>('list');\n const [sort, setSort] = useState<SortConfig>({ field: 'mismatches', direction: 'desc' });\n const [selectedContractId, setSelectedContractId] = useState<string | null>(null);\n const [showStats, setShowStats] = useState(true);\n\n // Data fetching\n const { data: contracts, isLoading, error } = useContracts(filters);\n\n // Sort contracts\n const sortedContracts = useMemo(() => {\n if (!contracts) return [];\n return sortContracts(contracts, sort);\n }, [contracts, sort]);\n\n // Calculate statistics\n const statistics = useMemo(() => {\n if (!contracts) return null;\n return calculateStatistics(contracts);\n }, [contracts]);\n\n // Handlers\n const handleSelectContract = useCallback((id: string) => {\n setSelectedContractId(id === selectedContractId ? null : id);\n }, [selectedContractId]);\n\n // Loading state\n if (isLoading) {\n return (\n <div className=\"flex items-center justify-center h-64\">\n <div className=\"flex flex-col items-center gap-3\">\n <div className=\"w-8 h-8 border-2 border-blue-500 border-t-transparent rounded-full animate-spin\" />\n <span className=\"text-dark-muted\">Loading contracts...</span>\n </div>\n </div>\n );\n }\n\n // Error state\n if (error) {\n return (\n <div className=\"flex flex-col items-center justify-center h-64 text-center\">\n <span className=\"text-4xl mb-4\">⚠️</span>\n <h3 className=\"text-lg font-medium text-severity-error mb-2\">Failed to load contracts</h3>\n <p className=\"text-dark-muted text-sm max-w-md\">\n There was an error loading the contract data. Please try refreshing the page.\n </p>\n </div>\n );\n }\n\n return (\n <div className=\"space-y-6\">\n {/* Statistics Section */}\n {statistics && showStats && (\n <div className=\"relative\">\n <button\n onClick={() => setShowStats(false)}\n className=\"absolute -top-1 -right-1 p-1 text-dark-muted hover:text-dark-text z-10\"\n title=\"Hide statistics\"\n >\n <span className=\"text-xs\">✕</span>\n </button>\n <ContractStats statistics={statistics} />\n </div>\n )}\n\n {/* Show Stats Toggle (when hidden) */}\n {!showStats && (\n <button\n onClick={() => setShowStats(true)}\n className=\"text-sm text-blue-400 hover:text-blue-300 transition-colors\"\n >\n 📊 Show statistics\n </button>\n )}\n\n {/* Main Content */}\n <div className=\"flex gap-6\">\n {/* Contract List Section */}\n <div className=\"flex-1 min-w-0\">\n {/* Filters */}\n <div className=\"mb-4\">\n <ContractFilters\n filters={filters}\n onFiltersChange={setFilters}\n viewMode={viewMode}\n onViewModeChange={setViewMode}\n sort={sort}\n onSortChange={setSort}\n resultCount={contracts?.length || 0}\n />\n </div>\n\n {/* Contract List */}\n <div className=\"max-h-[calc(100vh-400px)] overflow-y-auto scrollbar-dark pr-2\">\n <ContractList\n contracts={sortedContracts}\n viewMode={viewMode}\n selectedContractId={selectedContractId}\n onSelectContract={handleSelectContract}\n />\n </div>\n </div>\n\n {/* Detail Panel */}\n <div className=\"w-96 shrink-0\">\n <div className=\"sticky top-4 bg-dark-surface border border-dark-border rounded-xl p-5\">\n {selectedContractId ? (\n <ContractDetail contractId={selectedContractId} />\n ) : (\n <ContractDetailEmpty />\n )}\n </div>\n </div>\n </div>\n </div>\n );\n}\n","/**\n * Violations Tab Constants\n * \n * Centralized configuration for violation display and categorization.\n */\n\nimport type { Severity } from '../../types';\n\n// ============================================================================\n// Severity Configuration\n// ============================================================================\n\nexport const SEVERITY_ORDER: Severity[] = ['error', 'warning', 'info', 'hint'];\n\nexport const SEVERITY_CONFIG: Record<Severity, {\n label: string;\n icon: string;\n color: string;\n bgColor: string;\n borderColor: string;\n description: string;\n priority: number;\n}> = {\n error: {\n label: 'Error',\n icon: '🔴',\n color: 'text-severity-error',\n bgColor: 'bg-severity-error/10',\n borderColor: 'border-severity-error/30',\n description: 'Critical issues that must be fixed',\n priority: 4,\n },\n warning: {\n label: 'Warning',\n icon: '🟡',\n color: 'text-severity-warning',\n bgColor: 'bg-severity-warning/10',\n borderColor: 'border-severity-warning/30',\n description: 'Issues that should be addressed',\n priority: 3,\n },\n info: {\n label: 'Info',\n icon: '🔵',\n color: 'text-severity-info',\n bgColor: 'bg-severity-info/10',\n borderColor: 'border-severity-info/30',\n description: 'Informational notices',\n priority: 2,\n },\n hint: {\n label: 'Hint',\n icon: '💡',\n color: 'text-dark-muted',\n bgColor: 'bg-dark-muted/10',\n borderColor: 'border-dark-muted/30',\n description: 'Suggestions for improvement',\n priority: 1,\n },\n};\n\n// ============================================================================\n// Category Configuration\n// ============================================================================\n\nexport const CATEGORY_CONFIG: Record<string, {\n label: string;\n icon: string;\n color: string;\n bgColor: string;\n description: string;\n priority: number;\n}> = {\n security: {\n label: 'Security',\n icon: '🔒',\n color: 'text-red-400',\n bgColor: 'bg-red-500/10',\n description: 'Security vulnerabilities and risks',\n priority: 10,\n },\n auth: {\n label: 'Authentication',\n icon: '🔑',\n color: 'text-orange-400',\n bgColor: 'bg-orange-500/10',\n description: 'Authentication and authorization issues',\n priority: 9,\n },\n api: {\n label: 'API',\n icon: '🌐',\n color: 'text-blue-400',\n bgColor: 'bg-blue-500/10',\n description: 'API structure and consistency',\n priority: 8,\n },\n 'data-access': {\n label: 'Data Access',\n icon: '💾',\n color: 'text-purple-400',\n bgColor: 'bg-purple-500/10',\n description: 'Database and data layer patterns',\n priority: 7,\n },\n errors: {\n label: 'Error Handling',\n icon: '⚠️',\n color: 'text-yellow-400',\n bgColor: 'bg-yellow-500/10',\n description: 'Error handling patterns',\n priority: 6,\n },\n structural: {\n label: 'Structure',\n icon: '🏗️',\n color: 'text-cyan-400',\n bgColor: 'bg-cyan-500/10',\n description: 'Code organization and architecture',\n priority: 5,\n },\n components: {\n label: 'Components',\n icon: '🧩',\n color: 'text-green-400',\n bgColor: 'bg-green-500/10',\n description: 'Component patterns and structure',\n priority: 4,\n },\n styling: {\n label: 'Styling',\n icon: '🎨',\n color: 'text-pink-400',\n bgColor: 'bg-pink-500/10',\n description: 'CSS and styling patterns',\n priority: 3,\n },\n performance: {\n label: 'Performance',\n icon: '⚡',\n color: 'text-amber-400',\n bgColor: 'bg-amber-500/10',\n description: 'Performance optimizations',\n priority: 2,\n },\n documentation: {\n label: 'Documentation',\n icon: '📝',\n color: 'text-slate-400',\n bgColor: 'bg-slate-500/10',\n description: 'Documentation and comments',\n priority: 1,\n },\n testing: {\n label: 'Testing',\n icon: '🧪',\n color: 'text-teal-400',\n bgColor: 'bg-teal-500/10',\n description: 'Testing patterns and coverage',\n priority: 1,\n },\n other: {\n label: 'Other',\n icon: '📋',\n color: 'text-gray-400',\n bgColor: 'bg-gray-500/10',\n description: 'Other violations',\n priority: 0,\n },\n};\n\nexport const CATEGORY_ORDER = Object.keys(CATEGORY_CONFIG).sort(\n (a, b) => CATEGORY_CONFIG[b].priority - CATEGORY_CONFIG[a].priority\n);\n\n// ============================================================================\n// Display Limits\n// ============================================================================\n\nexport const DISPLAY_LIMITS = {\n VIOLATIONS_PER_PAGE: 50,\n TOP_FILES: 5,\n TOP_PATTERNS: 5,\n TOP_CATEGORIES: 5,\n CODE_SNIPPET_LINES: 10,\n REALTIME_BUFFER: 100,\n GROUP_PREVIEW: 3,\n} as const;\n\n// ============================================================================\n// View Mode Configuration\n// ============================================================================\n\nexport const VIEW_MODE_CONFIG = {\n list: {\n label: 'List',\n icon: '📋',\n description: 'All violations in a flat list',\n },\n 'by-severity': {\n label: 'By Severity',\n icon: '⚠️',\n description: 'Violations grouped by severity level',\n },\n 'by-category': {\n label: 'By Category',\n icon: '📂',\n description: 'Violations grouped by category',\n },\n 'by-file': {\n label: 'By File',\n icon: '📁',\n description: 'Violations grouped by file',\n },\n 'by-pattern': {\n label: 'By Pattern',\n icon: '🔍',\n description: 'Violations grouped by pattern',\n },\n} as const;\n","/**\n * Violations Tab Utilities\n * \n * Data transformation, aggregation, and helper functions.\n */\n\nimport type { Violation, Severity } from '../../types';\nimport type { \n ViolationMetrics, \n ViolationStatistics, \n FileGroup, \n PatternGroup,\n CategoryGroup,\n SeverityGroup,\n SortConfig,\n} from './types';\nimport { SEVERITY_ORDER, SEVERITY_CONFIG, CATEGORY_CONFIG, CATEGORY_ORDER, DISPLAY_LIMITS } from './constants';\n\n// ============================================================================\n// Metrics Calculation\n// ============================================================================\n\nexport function calculateMetrics(violations: Violation[]): ViolationMetrics {\n const bySeverity: Record<Severity, number> = {\n error: 0,\n warning: 0,\n info: 0,\n hint: 0,\n };\n\n const byPattern: Record<string, number> = {};\n const byFile: Record<string, number> = {};\n const byCategory: Record<string, number> = {};\n\n for (const v of violations) {\n bySeverity[v.severity]++;\n byPattern[v.patternId] = (byPattern[v.patternId] || 0) + 1;\n byFile[v.file] = (byFile[v.file] || 0) + 1;\n \n const category = extractCategory(v.patternId, v.patternName);\n byCategory[category] = (byCategory[category] || 0) + 1;\n }\n\n return {\n total: violations.length,\n bySeverity,\n byPattern,\n byFile,\n byCategory,\n criticalCount: bySeverity.error + bySeverity.warning,\n };\n}\n\n// ============================================================================\n// Category Extraction\n// ============================================================================\n\nexport function extractCategory(patternId: string, patternName?: string): string {\n // First try to extract from patternName if available (more reliable)\n // Pattern names look like: \"HTTP Methods Detector\", \"Barrel Exports Detector\", \"Typography Detector\"\n if (patternName) {\n const lowerName = patternName.toLowerCase();\n \n const nameToCategory: Record<string, string> = {\n // Security\n 'sql injection': 'security',\n 'xss': 'security',\n 'csrf': 'security',\n 'credential': 'security',\n 'secret': 'security',\n 'sanitiz': 'security',\n 'security': 'security',\n \n // Auth\n 'auth': 'auth',\n 'rbac': 'auth',\n 'permission': 'auth',\n 'role': 'auth',\n 'session': 'auth',\n 'token': 'auth',\n 'jwt': 'auth',\n 'audit': 'auth',\n \n // API\n 'http method': 'api',\n 'route': 'api',\n 'endpoint': 'api',\n 'response envelope': 'api',\n 'rest': 'api',\n 'api': 'api',\n \n // Data Access\n 'database': 'data-access',\n 'query': 'data-access',\n 'repository': 'data-access',\n 'data access': 'data-access',\n \n // Errors\n 'error': 'errors',\n 'exception': 'errors',\n \n // Structural\n 'barrel': 'structural',\n 'import': 'structural',\n 'export': 'structural',\n 'file naming': 'structural',\n 'directory': 'structural',\n 'module': 'structural',\n 'package': 'structural',\n 'circular': 'structural',\n \n // Components\n 'component': 'components',\n 'composition': 'components',\n 'state pattern': 'components',\n 'ref forward': 'components',\n 'hook': 'components',\n 'prop': 'components',\n \n // Styling\n 'typography': 'styling',\n 'color': 'styling',\n 'spacing': 'styling',\n 'z-index': 'styling',\n 'responsive': 'styling',\n 'tailwind': 'styling',\n 'css': 'styling',\n 'style': 'styling',\n 'class naming': 'styling',\n \n // Performance\n 'performance': 'performance',\n 'lazy': 'performance',\n 'memo': 'performance',\n 'cache': 'performance',\n };\n \n for (const [keyword, category] of Object.entries(nameToCategory)) {\n if (lowerName.includes(keyword)) {\n return category;\n }\n }\n }\n \n // Fall back to patternId parsing if patternName didn't match\n // Pattern IDs can follow multiple formats:\n // - Slash-based: api/route-structure/restful, styling/typography/tailwind\n // - Dash-based: component-structure-single-file, file-naming-kebab-case\n // - Hash-based: f9c0bd869f7ef730 (won't match anything useful)\n \n const lowerPatternId = patternId.toLowerCase();\n \n // First, try to extract from slash-based format (most reliable)\n if (lowerPatternId.includes('/')) {\n const slashParts = lowerPatternId.split('/');\n const firstPart = slashParts[0];\n \n // Direct category matches from first slash segment\n const slashCategoryMap: Record<string, string> = {\n 'api': 'api',\n 'auth': 'auth',\n 'security': 'security',\n 'styling': 'styling',\n 'structural': 'structural',\n 'components': 'components',\n 'component': 'components',\n 'data': 'data-access',\n 'database': 'data-access',\n 'error': 'errors',\n 'errors': 'errors',\n 'performance': 'performance',\n 'testing': 'testing',\n 'documentation': 'documentation',\n };\n \n if (slashCategoryMap[firstPart]) {\n return slashCategoryMap[firstPart];\n }\n }\n \n // Fall back to dash-based parsing\n const parts = lowerPatternId.replace(/\\//g, '-').split('-');\n \n // Map common prefixes to categories\n const categoryMap: Record<string, string> = {\n // Security\n 'security': 'security',\n 'xss': 'security',\n 'injection': 'security',\n 'csrf': 'security',\n 'sanitize': 'security',\n 'validate': 'security',\n 'credential': 'security',\n 'secret': 'security',\n \n // Auth\n 'auth': 'auth',\n 'authentication': 'auth',\n 'authorization': 'auth',\n 'rbac': 'auth',\n 'permission': 'auth',\n 'role': 'auth',\n 'session': 'auth',\n 'token': 'auth',\n 'jwt': 'auth',\n 'audit': 'auth',\n \n // API\n 'api': 'api',\n 'endpoint': 'api',\n 'rest': 'api',\n 'route': 'api',\n 'handler': 'api',\n 'controller': 'api',\n 'middleware': 'api',\n 'request': 'api',\n 'response': 'api',\n 'http': 'api',\n \n // Data Access\n 'data': 'data-access',\n 'database': 'data-access',\n 'sql': 'data-access',\n 'query': 'data-access',\n 'repository': 'data-access',\n 'model': 'data-access',\n 'schema': 'data-access',\n 'migration': 'data-access',\n \n // Errors\n 'error': 'errors',\n 'exception': 'errors',\n 'throw': 'errors',\n 'catch': 'errors',\n 'handling': 'errors',\n \n // Structural\n 'structural': 'structural',\n 'file': 'structural',\n 'directory': 'structural',\n 'naming': 'structural',\n 'import': 'structural',\n 'export': 'structural',\n 'module': 'structural',\n 'package': 'structural',\n 'barrel': 'structural',\n 'circular': 'structural',\n \n // Components\n 'component': 'components',\n 'components': 'components',\n 'react': 'components',\n 'vue': 'components',\n 'angular': 'components',\n 'hook': 'components',\n 'prop': 'components',\n 'state': 'components',\n 'render': 'components',\n 'ref': 'components',\n 'composition': 'components',\n \n // Styling\n 'style': 'styling',\n 'styling': 'styling',\n 'css': 'styling',\n 'typography': 'styling',\n 'color': 'styling',\n 'spacing': 'styling',\n 'layout': 'styling',\n 'theme': 'styling',\n 'tailwind': 'styling',\n 'class': 'styling',\n \n // Performance\n 'performance': 'performance',\n 'perf': 'performance',\n 'optimization': 'performance',\n 'cache': 'performance',\n 'lazy': 'performance',\n 'memo': 'performance',\n };\n\n // Check first few parts for category match\n for (const part of parts.slice(0, 3)) {\n if (categoryMap[part]) {\n return categoryMap[part];\n }\n }\n\n return 'other';\n}\n\nexport function calculateStatistics(\n violations: Violation[],\n realtimeCount: number = 0\n): ViolationStatistics {\n const metrics = calculateMetrics(violations);\n \n const byPattern = new Map<string, { name: string; count: number }>();\n for (const v of violations) {\n const existing = byPattern.get(v.patternId);\n if (existing) {\n existing.count++;\n } else {\n byPattern.set(v.patternId, { name: v.patternName, count: 1 });\n }\n }\n\n const topFiles = Object.entries(metrics.byFile)\n .sort((a, b) => b[1] - a[1])\n .slice(0, DISPLAY_LIMITS.TOP_FILES)\n .map(([file, count]) => ({ file, count }));\n\n const topPatterns = Array.from(byPattern.entries())\n .sort((a, b) => b[1].count - a[1].count)\n .slice(0, DISPLAY_LIMITS.TOP_PATTERNS)\n .map(([id, { name, count }]) => ({ id, name, count }));\n\n const topCategories = Object.entries(metrics.byCategory)\n .sort((a, b) => b[1] - a[1])\n .slice(0, DISPLAY_LIMITS.TOP_CATEGORIES)\n .map(([category, count]) => ({ \n category, \n count, \n icon: CATEGORY_CONFIG[category]?.icon || '📋' \n }));\n\n return {\n total: violations.length,\n bySeverity: metrics.bySeverity,\n byCategory: metrics.byCategory,\n byPattern,\n affectedFiles: Object.keys(metrics.byFile).length,\n topFiles,\n topPatterns,\n topCategories,\n realtimeCount,\n trend: 'stable', // Could be calculated from historical data\n };\n}\n\n// ============================================================================\n// Grouping Functions\n// ============================================================================\n\nexport function groupByFile(violations: Violation[]): FileGroup[] {\n const groups = new Map<string, Violation[]>();\n\n for (const v of violations) {\n const existing = groups.get(v.file);\n if (existing) {\n existing.push(v);\n } else {\n groups.set(v.file, [v]);\n }\n }\n\n return Array.from(groups.entries())\n .map(([file, fileViolations]) => {\n const bySeverity: Record<Severity, number> = {\n error: 0,\n warning: 0,\n info: 0,\n hint: 0,\n };\n\n for (const v of fileViolations) {\n bySeverity[v.severity]++;\n }\n\n const maxSeverity = getMaxSeverity(bySeverity);\n\n return {\n file,\n violations: fileViolations.sort((a, b) => a.range.start.line - b.range.start.line),\n metrics: {\n total: fileViolations.length,\n bySeverity,\n maxSeverity,\n },\n };\n })\n .sort((a, b) => {\n // Sort by max severity, then by count\n const severityDiff = getSeverityPriority(b.metrics.maxSeverity) - getSeverityPriority(a.metrics.maxSeverity);\n if (severityDiff !== 0) return severityDiff;\n return b.metrics.total - a.metrics.total;\n });\n}\n\nexport function groupByPattern(violations: Violation[]): PatternGroup[] {\n const groups = new Map<string, { name: string; violations: Violation[] }>();\n\n for (const v of violations) {\n const existing = groups.get(v.patternId);\n if (existing) {\n existing.violations.push(v);\n } else {\n groups.set(v.patternId, { name: v.patternName, violations: [v] });\n }\n }\n\n return Array.from(groups.entries())\n .map(([patternId, { name, violations: patternViolations }]) => {\n const bySeverity: Record<Severity, number> = {\n error: 0,\n warning: 0,\n info: 0,\n hint: 0,\n };\n\n const files = new Set<string>();\n for (const v of patternViolations) {\n bySeverity[v.severity]++;\n files.add(v.file);\n }\n\n return {\n patternId,\n patternName: name,\n violations: patternViolations,\n metrics: {\n total: patternViolations.length,\n bySeverity,\n affectedFiles: files.size,\n },\n };\n })\n .sort((a, b) => b.metrics.total - a.metrics.total);\n}\n\nexport function groupByCategory(violations: Violation[]): CategoryGroup[] {\n const groups = new Map<string, Violation[]>();\n\n for (const v of violations) {\n const category = extractCategory(v.patternId, v.patternName);\n const existing = groups.get(category);\n if (existing) {\n existing.push(v);\n } else {\n groups.set(category, [v]);\n }\n }\n\n return CATEGORY_ORDER\n .filter(category => groups.has(category))\n .map(category => {\n const categoryViolations = groups.get(category) || [];\n const config = CATEGORY_CONFIG[category] ?? CATEGORY_CONFIG['other']!;\n \n const bySeverity: Record<Severity, number> = {\n error: 0,\n warning: 0,\n info: 0,\n hint: 0,\n };\n\n const files = new Set<string>();\n const patterns = new Set<string>();\n \n for (const v of categoryViolations) {\n bySeverity[v.severity]++;\n files.add(v.file);\n patterns.add(v.patternId);\n }\n\n return {\n category,\n displayName: config.label,\n icon: config.icon,\n violations: categoryViolations,\n metrics: {\n total: categoryViolations.length,\n bySeverity,\n affectedFiles: files.size,\n patterns: Array.from(patterns),\n },\n };\n });\n}\n\nexport function groupBySeverity(violations: Violation[]): SeverityGroup[] {\n const groups = new Map<Severity, Violation[]>();\n\n for (const v of violations) {\n const existing = groups.get(v.severity);\n if (existing) {\n existing.push(v);\n } else {\n groups.set(v.severity, [v]);\n }\n }\n\n return SEVERITY_ORDER\n .filter(severity => groups.has(severity))\n .map(severity => {\n const severityViolations = groups.get(severity) || [];\n \n // Group violations within this severity by category\n const categories = groupByCategory(severityViolations);\n\n return {\n severity,\n violations: severityViolations,\n categories,\n };\n });\n}\n\n// ============================================================================\n// Sorting Functions\n// ============================================================================\n\nexport function sortViolations(violations: Violation[], config: SortConfig): Violation[] {\n const sorted = [...violations];\n const multiplier = config.direction === 'asc' ? 1 : -1;\n\n sorted.sort((a, b) => {\n switch (config.field) {\n case 'severity':\n return multiplier * (getSeverityPriority(b.severity) - getSeverityPriority(a.severity));\n case 'category': {\n const catA = extractCategory(a.patternId, a.patternName);\n const catB = extractCategory(b.patternId, b.patternName);\n const priorityA = CATEGORY_CONFIG[catA]?.priority ?? 0;\n const priorityB = CATEGORY_CONFIG[catB]?.priority ?? 0;\n return multiplier * (priorityB - priorityA);\n }\n case 'file':\n return multiplier * a.file.localeCompare(b.file);\n case 'pattern':\n return multiplier * a.patternName.localeCompare(b.patternName);\n case 'line':\n return multiplier * (a.range.start.line - b.range.start.line);\n default:\n return 0;\n }\n });\n\n return sorted;\n}\n\n// ============================================================================\n// Severity Helpers\n// ============================================================================\n\nexport function getSeverityPriority(severity: Severity): number {\n return SEVERITY_CONFIG[severity].priority;\n}\n\nexport function getMaxSeverity(bySeverity: Record<Severity, number>): Severity {\n for (const severity of SEVERITY_ORDER) {\n if (bySeverity[severity] > 0) {\n return severity;\n }\n }\n return 'hint';\n}\n\nexport function getSeverityColor(severity: Severity): string {\n return SEVERITY_CONFIG[severity].color;\n}\n\nexport function getSeverityBgColor(severity: Severity): string {\n return SEVERITY_CONFIG[severity].bgColor;\n}\n\nexport function getCategoryConfig(category: string) {\n return CATEGORY_CONFIG[category] || CATEGORY_CONFIG.other;\n}\n\n// ============================================================================\n// Format Helpers\n// ============================================================================\n\nexport function formatFilePath(path: string, maxLength = 50): string {\n if (path.length <= maxLength) return path;\n const parts = path.split('/');\n const filename = parts.pop() || '';\n if (filename.length >= maxLength - 3) {\n return '...' + filename.slice(-(maxLength - 3));\n }\n return '.../' + filename;\n}\n\nexport function formatLineRange(start: { line: number; character: number }, end: { line: number; character: number }): string {\n if (start.line === end.line) {\n return `L${start.line}:${start.character}-${end.character}`;\n }\n return `L${start.line}:${start.character} - L${end.line}:${end.character}`;\n}\n\nexport function getFileName(path: string): string {\n return path.split('/').pop() || path;\n}\n\n// ============================================================================\n// Merge Helpers\n// ============================================================================\n\nexport function mergeViolations(\n fetched: Violation[],\n realtime: Violation[]\n): Violation[] {\n const existingIds = new Set(fetched.map(v => v.id));\n const newViolations = realtime.filter(v => !existingIds.has(v.id));\n return [...newViolations, ...fetched];\n}\n","/**\n * Violation Statistics Component\n * \n * Enterprise-grade statistics dashboard for violation overview.\n */\n\nimport type { ViolationStatistics } from './types';\nimport { SEVERITY_ORDER, SEVERITY_CONFIG, CATEGORY_CONFIG } from './constants';\nimport { getFileName } from './utils';\n\n// ============================================================================\n// Stat Card\n// ============================================================================\n\ninterface StatCardProps {\n label: string;\n value: string | number;\n subValue?: string;\n icon?: string;\n color?: string;\n}\n\nfunction StatCard({ label, value, subValue, icon, color = 'text-dark-text' }: StatCardProps) {\n return (\n <div className=\"p-4 bg-dark-surface border border-dark-border rounded-lg\">\n <div className=\"flex items-center justify-between mb-2\">\n <span className=\"text-xs text-dark-muted uppercase tracking-wide\">{label}</span>\n {icon && <span className=\"text-lg\">{icon}</span>}\n </div>\n <div className={`text-2xl font-semibold ${color}`}>{value}</div>\n {subValue && (\n <div className=\"text-xs text-dark-muted mt-1\">{subValue}</div>\n )}\n </div>\n );\n}\n\n// ============================================================================\n// Severity Breakdown\n// ============================================================================\n\ninterface SeverityBreakdownProps {\n bySeverity: Record<string, number>;\n total: number;\n}\n\nfunction SeverityBreakdown({ bySeverity, total }: SeverityBreakdownProps) {\n return (\n <div className=\"p-4 bg-dark-surface border border-dark-border rounded-lg\">\n <div className=\"text-xs text-dark-muted uppercase tracking-wide mb-3\">By Severity</div>\n \n {/* Stacked bar */}\n <div className=\"flex h-3 rounded-full overflow-hidden bg-dark-bg mb-3\">\n {SEVERITY_ORDER.map(severity => {\n const count = bySeverity[severity] || 0;\n const percentage = total > 0 ? (count / total) * 100 : 0;\n if (percentage === 0) return null;\n \n const config = SEVERITY_CONFIG[severity];\n return (\n <div\n key={severity}\n className={`${config.bgColor} transition-all`}\n style={{ width: `${percentage}%` }}\n title={`${config.label}: ${count} (${Math.round(percentage)}%)`}\n />\n );\n })}\n </div>\n\n {/* Legend */}\n <div className=\"grid grid-cols-2 gap-2\">\n {SEVERITY_ORDER.map(severity => {\n const count = bySeverity[severity] || 0;\n const config = SEVERITY_CONFIG[severity];\n \n return (\n <div key={severity} className=\"flex items-center justify-between text-sm\">\n <div className=\"flex items-center gap-2\">\n <span>{config.icon}</span>\n <span className={config.color}>{config.label}</span>\n </div>\n <span className=\"font-medium\">{count}</span>\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n\n// ============================================================================\n// Top Items List\n// ============================================================================\n\ninterface TopItemsProps {\n title: string;\n icon: string;\n items: Array<{ label: string; count: number }>;\n emptyMessage: string;\n}\n\nfunction TopItems({ title, icon, items, emptyMessage }: TopItemsProps) {\n return (\n <div className=\"p-4 bg-dark-surface border border-dark-border rounded-lg\">\n <div className=\"flex items-center gap-2 mb-3\">\n <span>{icon}</span>\n <span className=\"text-xs text-dark-muted uppercase tracking-wide\">{title}</span>\n </div>\n \n {items.length > 0 ? (\n <div className=\"space-y-2\">\n {items.map((item, i) => (\n <div key={i} className=\"flex items-center justify-between text-sm\">\n <span className=\"truncate text-dark-muted\" title={item.label}>\n {item.label}\n </span>\n <span className=\"font-medium ml-2 shrink-0\">{item.count}</span>\n </div>\n ))}\n </div>\n ) : (\n <div className=\"text-sm text-dark-muted\">{emptyMessage}</div>\n )}\n </div>\n );\n}\n\n// ============================================================================\n// Category Breakdown\n// ============================================================================\n\ninterface CategoryBreakdownProps {\n byCategory: Record<string, number>;\n total: number;\n}\n\nfunction CategoryBreakdown({ byCategory, total }: CategoryBreakdownProps) {\n const sortedCategories = Object.entries(byCategory)\n .sort((a, b) => b[1] - a[1])\n .slice(0, 6);\n\n return (\n <div className=\"p-4 bg-dark-surface border border-dark-border rounded-lg\">\n <div className=\"text-xs text-dark-muted uppercase tracking-wide mb-3\">By Category</div>\n \n {sortedCategories.length > 0 ? (\n <div className=\"space-y-2\">\n {sortedCategories.map(([category, count]) => {\n const config = CATEGORY_CONFIG[category] || CATEGORY_CONFIG.other;\n const percentage = total > 0 ? Math.round((count / total) * 100) : 0;\n \n return (\n <div key={category} className=\"space-y-1\">\n <div className=\"flex items-center justify-between text-sm\">\n <div className=\"flex items-center gap-2\">\n <span>{config.icon}</span>\n <span className={config.color}>{config.label}</span>\n </div>\n <span className=\"font-medium\">{count}</span>\n </div>\n <div className=\"h-1.5 bg-dark-bg rounded-full overflow-hidden\">\n <div \n className={`h-full ${config.bgColor} transition-all`}\n style={{ width: `${percentage}%` }}\n />\n </div>\n </div>\n );\n })}\n </div>\n ) : (\n <div className=\"text-sm text-dark-muted\">No category data</div>\n )}\n </div>\n );\n}\n\n// ============================================================================\n// Main Stats Component\n// ============================================================================\n\ninterface ViolationStatsProps {\n statistics: ViolationStatistics;\n}\n\nexport function ViolationStats({ statistics }: ViolationStatsProps) {\n const criticalCount = (statistics.bySeverity.error || 0) + (statistics.bySeverity.warning || 0);\n \n return (\n <div className=\"space-y-4\">\n {/* Primary Stats */}\n <div className=\"grid grid-cols-2 md:grid-cols-4 gap-3\">\n <StatCard\n label=\"Total Violations\"\n value={statistics.total}\n icon=\"⚠️\"\n color={statistics.total > 0 ? 'text-severity-warning' : 'text-status-approved'}\n />\n <StatCard\n label=\"Critical\"\n value={criticalCount}\n subValue=\"errors + warnings\"\n icon=\"🔴\"\n color={criticalCount > 0 ? 'text-severity-error' : 'text-status-approved'}\n />\n <StatCard\n label=\"Affected Files\"\n value={statistics.affectedFiles}\n icon=\"📁\"\n />\n <StatCard\n label=\"Patterns\"\n value={statistics.byPattern.size}\n subValue=\"with violations\"\n icon=\"🔍\"\n />\n </div>\n\n {/* Realtime indicator */}\n {statistics.realtimeCount > 0 && (\n <div className=\"p-3 bg-blue-500/10 border border-blue-500/20 rounded-lg flex items-center gap-3\">\n <span className=\"relative flex h-3 w-3\">\n <span className=\"animate-ping absolute inline-flex h-full w-full rounded-full bg-blue-400 opacity-75\"></span>\n <span className=\"relative inline-flex rounded-full h-3 w-3 bg-blue-500\"></span>\n </span>\n <span className=\"text-sm text-blue-400\">\n {statistics.realtimeCount} new violation{statistics.realtimeCount !== 1 ? 's' : ''} detected in real-time\n </span>\n </div>\n )}\n\n {/* Breakdowns */}\n <div className=\"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-3\">\n <SeverityBreakdown bySeverity={statistics.bySeverity} total={statistics.total} />\n \n <CategoryBreakdown byCategory={statistics.byCategory} total={statistics.total} />\n \n <TopItems\n title=\"Top Files\"\n icon=\"📄\"\n items={statistics.topFiles.map(f => ({ \n label: getFileName(f.file), \n count: f.count \n }))}\n emptyMessage=\"No files with violations\"\n />\n \n <TopItems\n title=\"Top Patterns\"\n icon=\"🔍\"\n items={statistics.topPatterns.map(p => ({ \n label: p.name, \n count: p.count \n }))}\n emptyMessage=\"No pattern violations\"\n />\n </div>\n </div>\n );\n}\n","/**\n * Violation Filters Component\n * \n * Advanced filtering and search for violations.\n */\n\nimport type { ViolationFilters as ViolationFiltersType, Severity } from '../../types';\nimport type { ViewMode, SortConfig, SortField } from './types';\nimport { SEVERITY_ORDER, SEVERITY_CONFIG, VIEW_MODE_CONFIG, CATEGORY_CONFIG, CATEGORY_ORDER } from './constants';\n\ninterface ViolationFiltersProps {\n filters: ViolationFiltersType;\n onFiltersChange: (filters: ViolationFiltersType) => void;\n viewMode: ViewMode;\n onViewModeChange: (mode: ViewMode) => void;\n sort: SortConfig;\n onSortChange: (sort: SortConfig) => void;\n resultCount: number;\n}\n\nexport function ViolationFilters({\n filters,\n onFiltersChange,\n viewMode,\n onViewModeChange,\n sort,\n onSortChange,\n resultCount,\n}: ViolationFiltersProps) {\n const handleClearFilters = () => {\n onFiltersChange({});\n };\n\n const hasActiveFilters = !!(filters.severity || filters.file || filters.patternId || filters.search || (filters as any).category);\n\n return (\n <div className=\"space-y-3\">\n {/* Search and View Controls */}\n <div className=\"flex items-center gap-3\">\n <div className=\"relative flex-1\">\n <input\n type=\"text\"\n placeholder=\"Search violations...\"\n className=\"w-full bg-dark-bg border border-dark-border rounded-lg px-4 py-2 pl-10 text-sm focus:outline-none focus:border-blue-500 transition-colors\"\n value={filters.search || ''}\n onChange={(e) => onFiltersChange({ ...filters, search: e.target.value || undefined })}\n />\n <span className=\"absolute left-3 top-1/2 -translate-y-1/2 text-dark-muted\">🔍</span>\n </div>\n\n {/* View Mode Toggle */}\n <div className=\"flex bg-dark-bg border border-dark-border rounded-lg p-0.5\">\n {(Object.keys(VIEW_MODE_CONFIG) as ViewMode[]).map((mode) => {\n const config = VIEW_MODE_CONFIG[mode];\n return (\n <button\n key={mode}\n onClick={() => onViewModeChange(mode)}\n className={`px-3 py-1.5 text-sm rounded-md transition-colors ${\n viewMode === mode\n ? 'bg-blue-500/20 text-blue-400'\n : 'text-dark-muted hover:text-dark-text'\n }`}\n title={config.description}\n >\n {config.icon}\n </button>\n );\n })}\n </div>\n </div>\n\n {/* Filter Row */}\n <div className=\"flex flex-wrap items-center gap-3\">\n {/* Severity Filter */}\n <select\n className=\"bg-dark-bg border border-dark-border rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-blue-500\"\n value={filters.severity || ''}\n onChange={(e) => onFiltersChange({ \n ...filters, \n severity: e.target.value as Severity || undefined \n })}\n >\n <option value=\"\">All Severities</option>\n {SEVERITY_ORDER.map((severity) => {\n const config = SEVERITY_CONFIG[severity];\n return (\n <option key={severity} value={severity}>\n {config.icon} {config.label}\n </option>\n );\n })}\n </select>\n\n {/* Category Filter */}\n <select\n className=\"bg-dark-bg border border-dark-border rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-blue-500\"\n value={(filters as any).category || ''}\n onChange={(e) => onFiltersChange({ \n ...filters, \n category: e.target.value || undefined \n } as any)}\n >\n <option value=\"\">All Categories</option>\n {CATEGORY_ORDER.map((category) => {\n const config = CATEGORY_CONFIG[category];\n return (\n <option key={category} value={category}>\n {config.icon} {config.label}\n </option>\n );\n })}\n </select>\n\n {/* File Filter */}\n <input\n type=\"text\"\n placeholder=\"Filter by file...\"\n className=\"bg-dark-bg border border-dark-border rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-blue-500 w-48\"\n value={filters.file || ''}\n onChange={(e) => onFiltersChange({ ...filters, file: e.target.value || undefined })}\n />\n\n {/* Sort */}\n <div className=\"flex items-center gap-1 ml-auto\">\n <span className=\"text-xs text-dark-muted\">Sort:</span>\n <select\n className=\"bg-dark-bg border border-dark-border rounded-lg px-2 py-1.5 text-sm focus:outline-none focus:border-blue-500\"\n value={sort.field}\n onChange={(e) => onSortChange({ ...sort, field: e.target.value as SortField })}\n >\n <option value=\"severity\">Severity</option>\n <option value=\"category\">Category</option>\n <option value=\"file\">File</option>\n <option value=\"pattern\">Pattern</option>\n <option value=\"line\">Line</option>\n </select>\n <button\n onClick={() => onSortChange({ \n ...sort, \n direction: sort.direction === 'asc' ? 'desc' : 'asc' \n })}\n className=\"p-1.5 bg-dark-bg border border-dark-border rounded-lg text-sm hover:bg-dark-border/50 transition-colors\"\n title={sort.direction === 'asc' ? 'Ascending' : 'Descending'}\n >\n {sort.direction === 'asc' ? '↑' : '↓'}\n </button>\n </div>\n </div>\n\n {/* Active Filters & Results */}\n <div className=\"flex items-center justify-between text-sm\">\n <div className=\"flex items-center gap-2\">\n <span className=\"text-dark-muted\">\n {resultCount} violation{resultCount !== 1 ? 's' : ''}\n </span>\n {hasActiveFilters && (\n <>\n <span className=\"text-dark-border\">•</span>\n <button\n onClick={handleClearFilters}\n className=\"text-blue-400 hover:text-blue-300 transition-colors\"\n >\n Clear filters\n </button>\n </>\n )}\n </div>\n\n {/* Active Filter Pills */}\n {hasActiveFilters && (\n <div className=\"flex items-center gap-2 flex-wrap\">\n {filters.severity && (\n <span className=\"px-2 py-0.5 bg-dark-bg border border-dark-border rounded text-xs\">\n {SEVERITY_CONFIG[filters.severity]?.icon} {SEVERITY_CONFIG[filters.severity]?.label}\n <button\n onClick={() => onFiltersChange({ ...filters, severity: undefined })}\n className=\"ml-1 text-dark-muted hover:text-dark-text\"\n >\n ×\n </button>\n </span>\n )}\n {(filters as any).category && (\n <span className=\"px-2 py-0.5 bg-dark-bg border border-dark-border rounded text-xs\">\n {CATEGORY_CONFIG[(filters as any).category]?.icon} {CATEGORY_CONFIG[(filters as any).category]?.label}\n <button\n onClick={() => onFiltersChange({ ...filters, category: undefined } as any)}\n className=\"ml-1 text-dark-muted hover:text-dark-text\"\n >\n ×\n </button>\n </span>\n )}\n {filters.file && (\n <span className=\"px-2 py-0.5 bg-dark-bg border border-dark-border rounded text-xs\">\n 📁 {filters.file.length > 20 ? filters.file.slice(0, 20) + '...' : filters.file}\n <button\n onClick={() => onFiltersChange({ ...filters, file: undefined })}\n className=\"ml-1 text-dark-muted hover:text-dark-text\"\n >\n ×\n </button>\n </span>\n )}\n </div>\n )}\n </div>\n </div>\n );\n}\n","/**\n * Violation List Components\n * \n * Multiple view modes for violation display.\n */\n\nimport { useState } from 'react';\nimport type { Violation, Severity } from '../../types';\nimport type { ViewMode, FileGroup, PatternGroup, CategoryGroup, SeverityGroup } from './types';\nimport { SEVERITY_CONFIG, CATEGORY_CONFIG } from './constants';\nimport { \n formatFilePath, \n formatLineRange, \n getFileName, \n groupByFile, \n groupByPattern,\n groupByCategory,\n groupBySeverity,\n getCategoryConfig,\n} from './utils';\n\n// ============================================================================\n// Violation Card (List View)\n// ============================================================================\n\ninterface ViolationCardProps {\n violation: Violation;\n isExpanded: boolean;\n onToggle: () => void;\n}\n\nfunction ViolationCard({ violation, isExpanded, onToggle }: ViolationCardProps) {\n const severityConfig = SEVERITY_CONFIG[violation.severity];\n\n return (\n <div className={`border rounded-lg overflow-hidden ${severityConfig.borderColor} ${severityConfig.bgColor}`}>\n <button\n onClick={onToggle}\n className=\"w-full text-left p-4 hover:bg-dark-border/20 transition-colors\"\n >\n <div className=\"flex items-start gap-3\">\n <span className={`px-2 py-0.5 rounded text-xs font-medium ${severityConfig.bgColor} ${severityConfig.color} border ${severityConfig.borderColor} shrink-0`}>\n {severityConfig.icon} {severityConfig.label}\n </span>\n <div className=\"flex-1 min-w-0\">\n <div className=\"font-medium\">{violation.message}</div>\n <div className=\"flex items-center gap-2 mt-1 text-sm text-dark-muted flex-wrap\">\n <span className=\"truncate\" title={violation.file}>{formatFilePath(violation.file)}</span>\n <span>•</span>\n <span>Line {violation.range.start.line}</span>\n <span>•</span>\n <span className=\"text-blue-400\">{violation.patternName}</span>\n </div>\n </div>\n <span className=\"text-dark-muted shrink-0\">\n {isExpanded ? '▼' : '▶'}\n </span>\n </div>\n </button>\n\n {isExpanded && (\n <div className=\"p-4 pt-0 space-y-4 border-t border-dark-border/50\">\n {/* Expected vs Actual */}\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n <div>\n <div className=\"text-xs text-dark-muted mb-2\">Expected</div>\n <div className=\"p-3 bg-status-approved/10 border border-status-approved/20 rounded-lg font-mono text-sm\">\n {violation.expected}\n </div>\n </div>\n <div>\n <div className=\"text-xs text-dark-muted mb-2\">Actual</div>\n <div className=\"p-3 bg-severity-error/10 border border-severity-error/20 rounded-lg font-mono text-sm\">\n {violation.actual}\n </div>\n </div>\n </div>\n\n {/* Code Snippet */}\n {violation.codeSnippet && (\n <div>\n <div className=\"text-xs text-dark-muted mb-2\">Code</div>\n <pre className=\"p-3 bg-dark-bg rounded-lg overflow-x-auto font-mono text-xs leading-relaxed\">\n {violation.codeSnippet}\n </pre>\n </div>\n )}\n\n {/* Metadata */}\n <div className=\"flex items-center gap-4 text-xs text-dark-muted\">\n <span>Pattern: {violation.patternId}</span>\n <span>Range: {formatLineRange(violation.range.start, violation.range.end)}</span>\n </div>\n </div>\n )}\n </div>\n );\n}\n\n// ============================================================================\n// File Group Card (By File View)\n// ============================================================================\n\ninterface FileGroupCardProps {\n group: FileGroup;\n isExpanded: boolean;\n onToggle: () => void;\n expandedViolations: Set<string>;\n onToggleViolation: (id: string) => void;\n}\n\nfunction FileGroupCard({ \n group, \n isExpanded, \n onToggle, \n expandedViolations, \n onToggleViolation \n}: FileGroupCardProps) {\n const maxSeverityConfig = SEVERITY_CONFIG[group.metrics.maxSeverity];\n\n return (\n <div className=\"border border-dark-border rounded-lg overflow-hidden\">\n <button\n onClick={onToggle}\n className=\"w-full text-left p-4 bg-dark-surface hover:bg-dark-border/30 transition-colors\"\n >\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-3 min-w-0\">\n <span className=\"text-dark-muted\">{isExpanded ? '▼' : '▶'}</span>\n <span className=\"text-lg\">📄</span>\n <div className=\"min-w-0\">\n <div className=\"font-medium truncate\" title={group.file}>\n {getFileName(group.file)}\n </div>\n <div className=\"text-xs text-dark-muted truncate\" title={group.file}>\n {formatFilePath(group.file)}\n </div>\n </div>\n </div>\n <div className=\"flex items-center gap-3 shrink-0\">\n <span className={`px-2 py-1 rounded text-xs ${maxSeverityConfig.bgColor} ${maxSeverityConfig.color}`}>\n {group.metrics.total} violation{group.metrics.total !== 1 ? 's' : ''}\n </span>\n </div>\n </div>\n\n {/* Severity breakdown */}\n <div className=\"flex items-center gap-3 mt-2 ml-10 text-xs\">\n {Object.entries(group.metrics.bySeverity).map(([severity, count]) => {\n if (count === 0) return null;\n const config = SEVERITY_CONFIG[severity as keyof typeof SEVERITY_CONFIG];\n return (\n <span key={severity} className={config.color}>\n {config.icon} {count}\n </span>\n );\n })}\n </div>\n </button>\n\n {isExpanded && (\n <div className=\"border-t border-dark-border bg-dark-bg p-3 space-y-2\">\n {group.violations.map((violation) => (\n <ViolationCard\n key={violation.id}\n violation={violation}\n isExpanded={expandedViolations.has(violation.id)}\n onToggle={() => onToggleViolation(violation.id)}\n />\n ))}\n </div>\n )}\n </div>\n );\n}\n\n// ============================================================================\n// Pattern Group Card (By Pattern View)\n// ============================================================================\n\ninterface PatternGroupCardProps {\n group: PatternGroup;\n isExpanded: boolean;\n onToggle: () => void;\n expandedViolations: Set<string>;\n onToggleViolation: (id: string) => void;\n}\n\nfunction PatternGroupCard({ \n group, \n isExpanded, \n onToggle, \n expandedViolations, \n onToggleViolation \n}: PatternGroupCardProps) {\n return (\n <div className=\"border border-dark-border rounded-lg overflow-hidden\">\n <button\n onClick={onToggle}\n className=\"w-full text-left p-4 bg-dark-surface hover:bg-dark-border/30 transition-colors\"\n >\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-3 min-w-0\">\n <span className=\"text-dark-muted\">{isExpanded ? '▼' : '▶'}</span>\n <span className=\"text-lg\">🔍</span>\n <div className=\"min-w-0\">\n <div className=\"font-medium truncate\">{group.patternName}</div>\n <div className=\"text-xs text-dark-muted\">\n {group.metrics.affectedFiles} file{group.metrics.affectedFiles !== 1 ? 's' : ''} affected\n </div>\n </div>\n </div>\n <div className=\"flex items-center gap-3 shrink-0\">\n <span className=\"px-2 py-1 rounded text-xs bg-severity-warning/10 text-severity-warning\">\n {group.metrics.total} violation{group.metrics.total !== 1 ? 's' : ''}\n </span>\n </div>\n </div>\n\n {/* Severity breakdown */}\n <div className=\"flex items-center gap-3 mt-2 ml-10 text-xs\">\n {Object.entries(group.metrics.bySeverity).map(([severity, count]) => {\n if (count === 0) return null;\n const config = SEVERITY_CONFIG[severity as keyof typeof SEVERITY_CONFIG];\n return (\n <span key={severity} className={config.color}>\n {config.icon} {count}\n </span>\n );\n })}\n </div>\n </button>\n\n {isExpanded && (\n <div className=\"border-t border-dark-border bg-dark-bg p-3 space-y-2\">\n {group.violations.map((violation) => (\n <ViolationCard\n key={violation.id}\n violation={violation}\n isExpanded={expandedViolations.has(violation.id)}\n onToggle={() => onToggleViolation(violation.id)}\n />\n ))}\n </div>\n )}\n </div>\n );\n}\n\n// ============================================================================\n// Category Group Card (By Category View)\n// ============================================================================\n\ninterface CategoryGroupCardProps {\n group: CategoryGroup;\n isExpanded: boolean;\n onToggle: () => void;\n expandedViolations: Set<string>;\n onToggleViolation: (id: string) => void;\n}\n\nfunction CategoryGroupCard({ \n group, \n isExpanded, \n onToggle, \n expandedViolations, \n onToggleViolation \n}: CategoryGroupCardProps) {\n const config = getCategoryConfig(group.category);\n const maxSeverity = group.metrics.bySeverity.error > 0 ? 'error' \n : group.metrics.bySeverity.warning > 0 ? 'warning'\n : group.metrics.bySeverity.info > 0 ? 'info' : 'hint';\n const maxSeverityConfig = SEVERITY_CONFIG[maxSeverity];\n\n return (\n <div className={`border rounded-lg overflow-hidden ${config.bgColor} border-dark-border`}>\n <button\n onClick={onToggle}\n className=\"w-full text-left p-4 hover:bg-dark-border/20 transition-colors\"\n >\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-3 min-w-0\">\n <span className=\"text-dark-muted\">{isExpanded ? '▼' : '▶'}</span>\n <span className=\"text-2xl\">{group.icon}</span>\n <div className=\"min-w-0\">\n <div className={`font-semibold ${config.color}`}>{group.displayName}</div>\n <div className=\"text-xs text-dark-muted\">\n {group.metrics.patterns.length} pattern{group.metrics.patterns.length !== 1 ? 's' : ''} • {group.metrics.affectedFiles} file{group.metrics.affectedFiles !== 1 ? 's' : ''}\n </div>\n </div>\n </div>\n <div className=\"flex items-center gap-3 shrink-0\">\n <span className={`px-3 py-1.5 rounded-lg text-sm font-medium ${maxSeverityConfig.bgColor} ${maxSeverityConfig.color}`}>\n {group.metrics.total} violation{group.metrics.total !== 1 ? 's' : ''}\n </span>\n </div>\n </div>\n\n {/* Severity breakdown */}\n <div className=\"flex items-center gap-4 mt-3 ml-10 text-sm\">\n {Object.entries(group.metrics.bySeverity).map(([severity, count]) => {\n if (count === 0) return null;\n const severityConfig = SEVERITY_CONFIG[severity as keyof typeof SEVERITY_CONFIG];\n return (\n <span key={severity} className={`flex items-center gap-1 ${severityConfig.color}`}>\n {severityConfig.icon} {count}\n </span>\n );\n })}\n </div>\n </button>\n\n {isExpanded && (\n <div className=\"border-t border-dark-border bg-dark-bg p-3 space-y-2\">\n {group.violations.map((violation) => (\n <ViolationCard\n key={violation.id}\n violation={violation}\n isExpanded={expandedViolations.has(violation.id)}\n onToggle={() => onToggleViolation(violation.id)}\n />\n ))}\n </div>\n )}\n </div>\n );\n}\n\n// ============================================================================\n// Severity Group Card (By Severity View)\n// ============================================================================\n\ninterface SeverityGroupCardProps {\n group: SeverityGroup;\n isExpanded: boolean;\n onToggle: () => void;\n expandedCategories: Set<string>;\n onToggleCategory: (id: string) => void;\n expandedViolations: Set<string>;\n onToggleViolation: (id: string) => void;\n}\n\nfunction SeverityGroupCard({ \n group, \n isExpanded, \n onToggle,\n expandedCategories,\n onToggleCategory,\n expandedViolations, \n onToggleViolation \n}: SeverityGroupCardProps) {\n const config = SEVERITY_CONFIG[group.severity];\n\n return (\n <div className={`border-2 rounded-xl overflow-hidden ${config.borderColor} ${config.bgColor}`}>\n <button\n onClick={onToggle}\n className=\"w-full text-left p-5 hover:bg-dark-border/10 transition-colors\"\n >\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-4\">\n <span className=\"text-dark-muted text-lg\">{isExpanded ? '▼' : '▶'}</span>\n <span className=\"text-3xl\">{config.icon}</span>\n <div>\n <div className={`text-xl font-bold ${config.color}`}>{config.label}</div>\n <div className=\"text-sm text-dark-muted\">{config.description}</div>\n </div>\n </div>\n <div className=\"flex items-center gap-4 shrink-0\">\n <div className=\"text-right\">\n <div className={`text-3xl font-bold ${config.color}`}>{group.violations.length}</div>\n <div className=\"text-xs text-dark-muted\">violation{group.violations.length !== 1 ? 's' : ''}</div>\n </div>\n </div>\n </div>\n\n {/* Category breakdown preview */}\n {group.categories.length > 0 && (\n <div className=\"flex flex-wrap items-center gap-2 mt-4 ml-14\">\n {group.categories.slice(0, 5).map((cat) => {\n const catConfig = getCategoryConfig(cat.category);\n return (\n <span \n key={cat.category} \n className={`px-2 py-1 rounded text-xs ${catConfig.bgColor} ${catConfig.color} border border-dark-border/30`}\n >\n {cat.icon} {cat.displayName} ({cat.metrics.total})\n </span>\n );\n })}\n {group.categories.length > 5 && (\n <span className=\"text-xs text-dark-muted\">\n +{group.categories.length - 5} more\n </span>\n )}\n </div>\n )}\n </button>\n\n {isExpanded && (\n <div className=\"border-t border-dark-border bg-dark-bg p-4 space-y-3\">\n {group.categories.map((category) => (\n <CategoryGroupCard\n key={category.category}\n group={category}\n isExpanded={expandedCategories.has(category.category)}\n onToggle={() => onToggleCategory(category.category)}\n expandedViolations={expandedViolations}\n onToggleViolation={onToggleViolation}\n />\n ))}\n </div>\n )}\n </div>\n );\n}\n\n// ============================================================================\n// Main Violation List\n// ============================================================================\n\ninterface ViolationListProps {\n violations: Violation[];\n viewMode: ViewMode;\n expandedViolations: Set<string>;\n onToggleViolation: (id: string) => void;\n}\n\nexport function ViolationList({\n violations,\n viewMode,\n expandedViolations,\n onToggleViolation,\n}: ViolationListProps) {\n const [expandedGroups, setExpandedGroups] = useState<Set<string>>(new Set());\n const [expandedCategories, setExpandedCategories] = useState<Set<string>>(new Set());\n\n const toggleGroup = (id: string) => {\n setExpandedGroups(prev => {\n const next = new Set(prev);\n if (next.has(id)) {\n next.delete(id);\n } else {\n next.add(id);\n }\n return next;\n });\n };\n\n const toggleCategory = (id: string) => {\n setExpandedCategories(prev => {\n const next = new Set(prev);\n if (next.has(id)) {\n next.delete(id);\n } else {\n next.add(id);\n }\n return next;\n });\n };\n\n if (violations.length === 0) {\n return (\n <div className=\"flex flex-col items-center justify-center py-16 text-center\">\n <span className=\"text-4xl mb-4\">✅</span>\n <h3 className=\"text-lg font-medium mb-2\">No violations found</h3>\n <p className=\"text-dark-muted text-sm max-w-md\">\n Great job! Your codebase is following all detected patterns consistently.\n </p>\n </div>\n );\n }\n\n // List view\n if (viewMode === 'list') {\n return (\n <div className=\"space-y-3\">\n {violations.map((violation) => (\n <ViolationCard\n key={violation.id}\n violation={violation}\n isExpanded={expandedViolations.has(violation.id)}\n onToggle={() => onToggleViolation(violation.id)}\n />\n ))}\n </div>\n );\n }\n\n // By Severity view (hierarchical: severity -> category -> violations)\n if (viewMode === 'by-severity') {\n const severityGroups = groupBySeverity(violations);\n return (\n <div className=\"space-y-4\">\n {severityGroups.map((group) => (\n <SeverityGroupCard\n key={group.severity}\n group={group}\n isExpanded={expandedGroups.has(group.severity)}\n onToggle={() => toggleGroup(group.severity)}\n expandedCategories={expandedCategories}\n onToggleCategory={toggleCategory}\n expandedViolations={expandedViolations}\n onToggleViolation={onToggleViolation}\n />\n ))}\n </div>\n );\n }\n\n // By Category view\n if (viewMode === 'by-category') {\n const categoryGroups = groupByCategory(violations);\n return (\n <div className=\"space-y-3\">\n {categoryGroups.map((group) => (\n <CategoryGroupCard\n key={group.category}\n group={group}\n isExpanded={expandedGroups.has(group.category)}\n onToggle={() => toggleGroup(group.category)}\n expandedViolations={expandedViolations}\n onToggleViolation={onToggleViolation}\n />\n ))}\n </div>\n );\n }\n\n // By File view\n if (viewMode === 'by-file') {\n const fileGroups = groupByFile(violations);\n return (\n <div className=\"space-y-3\">\n {fileGroups.map((group) => (\n <FileGroupCard\n key={group.file}\n group={group}\n isExpanded={expandedGroups.has(group.file)}\n onToggle={() => toggleGroup(group.file)}\n expandedViolations={expandedViolations}\n onToggleViolation={onToggleViolation}\n />\n ))}\n </div>\n );\n }\n\n // By Pattern view (default)\n const patternGroups = groupByPattern(violations);\n return (\n <div className=\"space-y-3\">\n {patternGroups.map((group) => (\n <PatternGroupCard\n key={group.patternId}\n group={group}\n isExpanded={expandedGroups.has(group.patternId)}\n onToggle={() => toggleGroup(group.patternId)}\n expandedViolations={expandedViolations}\n onToggleViolation={onToggleViolation}\n />\n ))}\n </div>\n );\n}\n","/**\n * Violations Tab Component\n * \n * Enterprise-grade violation management interface with:\n * - Multiple view modes (list, by-file, by-pattern)\n * - Advanced filtering and sorting\n * - Real-time violation updates\n * - Detailed statistics\n */\n\nimport { useMemo, useState, useCallback } from 'react';\nimport { useViolations } from '../../hooks';\nimport { useDashboardStore } from '../../store';\nimport type { ViewMode, SortConfig } from './types';\nimport { ViolationStats } from './ViolationStats';\nimport { ViolationFilters } from './ViolationFilters';\nimport { ViolationList } from './ViolationList';\nimport { calculateStatistics, sortViolations, mergeViolations } from './utils';\n\nexport function ViolationsTab() {\n // Global state\n const { \n violationFilters, \n setViolationFilters, \n expandedViolations, \n toggleViolationExpanded,\n realtimeViolations,\n } = useDashboardStore();\n\n // Local state\n const [viewMode, setViewMode] = useState<ViewMode>('by-severity');\n const [sort, setSort] = useState<SortConfig>({ field: 'severity', direction: 'desc' });\n const [showStats, setShowStats] = useState(true);\n\n // Data fetching\n const { data: fetchedViolations, isLoading, error } = useViolations(violationFilters);\n\n // Merge realtime violations with fetched ones\n const allViolations = useMemo(() => {\n if (!fetchedViolations) return realtimeViolations;\n return mergeViolations(fetchedViolations, realtimeViolations);\n }, [fetchedViolations, realtimeViolations]);\n\n // Sort violations\n const sortedViolations = useMemo(() => {\n return sortViolations(allViolations, sort);\n }, [allViolations, sort]);\n\n // Calculate statistics\n const statistics = useMemo(() => {\n return calculateStatistics(allViolations, realtimeViolations.length);\n }, [allViolations, realtimeViolations.length]);\n\n // Handlers\n const handleToggleViolation = useCallback((id: string) => {\n toggleViolationExpanded(id);\n }, [toggleViolationExpanded]);\n\n // Loading state\n if (isLoading) {\n return (\n <div className=\"flex items-center justify-center h-64\">\n <div className=\"flex flex-col items-center gap-3\">\n <div className=\"w-8 h-8 border-2 border-blue-500 border-t-transparent rounded-full animate-spin\" />\n <span className=\"text-dark-muted\">Loading violations...</span>\n </div>\n </div>\n );\n }\n\n // Error state\n if (error) {\n return (\n <div className=\"flex flex-col items-center justify-center h-64 text-center\">\n <span className=\"text-4xl mb-4\">⚠️</span>\n <h3 className=\"text-lg font-medium text-severity-error mb-2\">Failed to load violations</h3>\n <p className=\"text-dark-muted text-sm max-w-md\">\n There was an error loading the violation data. Please try refreshing the page.\n </p>\n </div>\n );\n }\n\n return (\n <div className=\"space-y-6\">\n {/* Statistics Section */}\n {showStats && (\n <div className=\"relative\">\n <button\n onClick={() => setShowStats(false)}\n className=\"absolute -top-1 -right-1 p-1 text-dark-muted hover:text-dark-text z-10\"\n title=\"Hide statistics\"\n >\n <span className=\"text-xs\">✕</span>\n </button>\n <ViolationStats statistics={statistics} />\n </div>\n )}\n\n {/* Show Stats Toggle (when hidden) */}\n {!showStats && (\n <button\n onClick={() => setShowStats(true)}\n className=\"text-sm text-blue-400 hover:text-blue-300 transition-colors\"\n >\n 📊 Show statistics\n </button>\n )}\n\n {/* Filters */}\n <ViolationFilters\n filters={violationFilters}\n onFiltersChange={setViolationFilters}\n viewMode={viewMode}\n onViewModeChange={setViewMode}\n sort={sort}\n onSortChange={setSort}\n resultCount={sortedViolations.length}\n />\n\n {/* Violation List */}\n <div className=\"max-h-[calc(100vh-400px)] overflow-y-auto scrollbar-dark pr-2\">\n <ViolationList\n violations={sortedViolations}\n viewMode={viewMode}\n expandedViolations={expandedViolations}\n onToggleViolation={handleToggleViolation}\n />\n </div>\n </div>\n );\n}\n","/**\n * Files Tab Component\n *\n * Displays file tree with pattern/violation counts and file details.\n */\n\nimport React, { useState } from 'react';\nimport { useFileTree, useFileDetails } from '../hooks';\nimport { useDashboardStore } from '../store';\nimport type { FileTreeNode, Severity } from '../types';\n\nfunction FileTreeItem({\n node,\n depth = 0,\n selectedPath,\n onSelect,\n}: {\n node: FileTreeNode;\n depth?: number;\n selectedPath: string | null;\n onSelect: (path: string) => void;\n}) {\n const { expandedFolders, toggleFolderExpanded } = useDashboardStore();\n const isExpanded = expandedFolders.has(node.path);\n const isSelected = selectedPath === node.path;\n const isDirectory = node.type === 'directory';\n\n const handleClick = () => {\n if (isDirectory) {\n toggleFolderExpanded(node.path);\n } else {\n onSelect(node.path);\n }\n };\n\n const severityColor = node.severity ? {\n error: 'text-severity-error',\n warning: 'text-severity-warning',\n info: 'text-severity-info',\n hint: 'text-severity-hint',\n }[node.severity] : '';\n\n return (\n <div>\n <button\n onClick={handleClick}\n className={`w-full text-left px-2 py-1 rounded text-sm flex items-center gap-2 hover:bg-dark-border/50 ${\n isSelected ? 'bg-blue-500/20 text-blue-400' : ''\n }`}\n style={{ paddingLeft: `${depth * 16 + 8}px` }}\n >\n {/* Icon */}\n <span className=\"w-4 text-center text-dark-muted\">\n {isDirectory ? (isExpanded ? '📂' : '📁') : '📄'}\n </span>\n\n {/* Name */}\n <span className={`flex-1 truncate ${severityColor}`}>{node.name}</span>\n\n {/* Counts */}\n {(node.patternCount || node.violationCount) && (\n <span className=\"text-xs text-dark-muted\">\n {node.patternCount ? `${node.patternCount}P` : ''}\n {node.patternCount && node.violationCount ? ' ' : ''}\n {node.violationCount ? `${node.violationCount}V` : ''}\n </span>\n )}\n </button>\n\n {/* Children */}\n {isDirectory && isExpanded && node.children && (\n <div>\n {node.children.map((child) => (\n <FileTreeItem\n key={child.path}\n node={child}\n depth={depth + 1}\n selectedPath={selectedPath}\n onSelect={onSelect}\n />\n ))}\n </div>\n )}\n </div>\n );\n}\n\nfunction FileDetail({ path }: { path: string }) {\n const { data: details, isLoading, error } = useFileDetails(path);\n\n if (isLoading) {\n return <div className=\"text-dark-muted\">Loading file details...</div>;\n }\n\n if (error || !details) {\n return <div className=\"text-severity-error\">Failed to load file details</div>;\n }\n\n return (\n <div className=\"space-y-4\">\n {/* File info */}\n <div>\n <h3 className=\"font-medium truncate\" title={details.path}>\n {details.path.split('/').pop()}\n </h3>\n <div className=\"text-sm text-dark-muted mt-1\">\n <span>{details.language}</span>\n <span className=\"mx-2\">•</span>\n <span>{details.lineCount} lines</span>\n </div>\n </div>\n\n {/* Patterns in file */}\n {details.patterns.length > 0 && (\n <div>\n <h4 className=\"text-sm font-medium mb-2\">\n Patterns ({details.patterns.length})\n </h4>\n <div className=\"space-y-2\">\n {details.patterns.map((p) => (\n <div key={p.id} className=\"p-2 bg-dark-bg rounded text-sm\">\n <div className=\"font-medium\">{p.name}</div>\n <div className=\"text-xs text-dark-muted mt-1\">\n {p.category} • {p.locations.length} locations\n </div>\n </div>\n ))}\n </div>\n </div>\n )}\n\n {/* Violations in file */}\n {details.violations.length > 0 && (\n <div>\n <h4 className=\"text-sm font-medium mb-2\">\n Violations ({details.violations.length})\n </h4>\n <div className=\"space-y-2\">\n {details.violations.map((v) => (\n <div key={v.id} className=\"p-2 bg-dark-bg rounded text-sm\">\n <div className=\"flex items-center gap-2\">\n <span className={`px-1.5 py-0.5 rounded text-xs badge-${v.severity}`}>\n {v.severity}\n </span>\n <span className=\"truncate\">{v.message}</span>\n </div>\n <div className=\"text-xs text-dark-muted mt-1\">\n Line {v.range.start.line}\n </div>\n </div>\n ))}\n </div>\n </div>\n )}\n\n {/* No patterns or violations */}\n {details.patterns.length === 0 && details.violations.length === 0 && (\n <div className=\"text-dark-muted text-sm\">\n No patterns or violations in this file\n </div>\n )}\n </div>\n );\n}\n\nexport function FilesTab(): React.ReactElement {\n const [selectedPath, setSelectedPath] = useState<string | null>(null);\n const { data: tree, isLoading, error } = useFileTree();\n\n if (isLoading) {\n return (\n <div className=\"flex items-center justify-center h-64\">\n <div className=\"text-dark-muted\">Loading file tree...</div>\n </div>\n );\n }\n\n if (error) {\n return (\n <div className=\"flex items-center justify-center h-64\">\n <div className=\"text-severity-error\">Failed to load file tree</div>\n </div>\n );\n }\n\n return (\n <div className=\"flex gap-6\">\n {/* File tree */}\n <div className=\"w-80 shrink-0\">\n <div className=\"card max-h-[600px] overflow-y-auto scrollbar-dark\">\n {tree && tree.length > 0 ? (\n tree.map((node) => (\n <FileTreeItem\n key={node.path}\n node={node}\n selectedPath={selectedPath}\n onSelect={setSelectedPath}\n />\n ))\n ) : (\n <div className=\"text-dark-muted text-center py-4\">\n No files found\n </div>\n )}\n </div>\n </div>\n\n {/* File details */}\n <div className=\"flex-1\">\n <div className=\"card\">\n {selectedPath ? (\n <FileDetail path={selectedPath} />\n ) : (\n <div className=\"text-dark-muted text-center py-8\">\n Select a file to view details\n </div>\n )}\n </div>\n </div>\n </div>\n );\n}\n","const reduxImpl = (reducer, initial) => (set, _get, api) => {\n api.dispatch = (action) => {\n set((state) => reducer(state, action), false, action);\n return action;\n };\n api.dispatchFromDevtools = true;\n return { dispatch: (...a) => api.dispatch(...a), ...initial };\n};\nconst redux = reduxImpl;\n\nconst trackedConnections = /* @__PURE__ */ new Map();\nconst getTrackedConnectionState = (name) => {\n const api = trackedConnections.get(name);\n if (!api) return {};\n return Object.fromEntries(\n Object.entries(api.stores).map(([key, api2]) => [key, api2.getState()])\n );\n};\nconst extractConnectionInformation = (store, extensionConnector, options) => {\n if (store === void 0) {\n return {\n type: \"untracked\",\n connection: extensionConnector.connect(options)\n };\n }\n const existingConnection = trackedConnections.get(options.name);\n if (existingConnection) {\n return { type: \"tracked\", store, ...existingConnection };\n }\n const newConnection = {\n connection: extensionConnector.connect(options),\n stores: {}\n };\n trackedConnections.set(options.name, newConnection);\n return { type: \"tracked\", store, ...newConnection };\n};\nconst devtoolsImpl = (fn, devtoolsOptions = {}) => (set, get, api) => {\n const { enabled, anonymousActionType, store, ...options } = devtoolsOptions;\n let extensionConnector;\n try {\n extensionConnector = (enabled != null ? enabled : (import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") && window.__REDUX_DEVTOOLS_EXTENSION__;\n } catch (_e) {\n }\n if (!extensionConnector) {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && enabled) {\n console.warn(\n \"[zustand devtools middleware] Please install/enable Redux devtools extension\"\n );\n }\n return fn(set, get, api);\n }\n const { connection, ...connectionInformation } = extractConnectionInformation(store, extensionConnector, options);\n let isRecording = true;\n api.setState = (state, replace, nameOrAction) => {\n const r = set(state, replace);\n if (!isRecording) return r;\n const action = nameOrAction === void 0 ? { type: anonymousActionType || \"anonymous\" } : typeof nameOrAction === \"string\" ? { type: nameOrAction } : nameOrAction;\n if (store === void 0) {\n connection == null ? void 0 : connection.send(action, get());\n return r;\n }\n connection == null ? void 0 : connection.send(\n {\n ...action,\n type: `${store}/${action.type}`\n },\n {\n ...getTrackedConnectionState(options.name),\n [store]: api.getState()\n }\n );\n return r;\n };\n const setStateFromDevtools = (...a) => {\n const originalIsRecording = isRecording;\n isRecording = false;\n set(...a);\n isRecording = originalIsRecording;\n };\n const initialState = fn(api.setState, get, api);\n if (connectionInformation.type === \"untracked\") {\n connection == null ? void 0 : connection.init(initialState);\n } else {\n connectionInformation.stores[connectionInformation.store] = api;\n connection == null ? void 0 : connection.init(\n Object.fromEntries(\n Object.entries(connectionInformation.stores).map(([key, store2]) => [\n key,\n key === connectionInformation.store ? initialState : store2.getState()\n ])\n )\n );\n }\n if (api.dispatchFromDevtools && typeof api.dispatch === \"function\") {\n let didWarnAboutReservedActionType = false;\n const originalDispatch = api.dispatch;\n api.dispatch = (...a) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && a[0].type === \"__setState\" && !didWarnAboutReservedActionType) {\n console.warn(\n '[zustand devtools middleware] \"__setState\" action type is reserved to set state from the devtools. Avoid using it.'\n );\n didWarnAboutReservedActionType = true;\n }\n originalDispatch(...a);\n };\n }\n connection.subscribe((message) => {\n var _a;\n switch (message.type) {\n case \"ACTION\":\n if (typeof message.payload !== \"string\") {\n console.error(\n \"[zustand devtools middleware] Unsupported action format\"\n );\n return;\n }\n return parseJsonThen(\n message.payload,\n (action) => {\n if (action.type === \"__setState\") {\n if (store === void 0) {\n setStateFromDevtools(action.state);\n return;\n }\n if (Object.keys(action.state).length !== 1) {\n console.error(\n `\n [zustand devtools middleware] Unsupported __setState action format. \n When using 'store' option in devtools(), the 'state' should have only one key, which is a value of 'store' that was passed in devtools(),\n and value of this only key should be a state object. Example: { \"type\": \"__setState\", \"state\": { \"abc123Store\": { \"foo\": \"bar\" } } }\n `\n );\n }\n const stateFromDevtools = action.state[store];\n if (stateFromDevtools === void 0 || stateFromDevtools === null) {\n return;\n }\n if (JSON.stringify(api.getState()) !== JSON.stringify(stateFromDevtools)) {\n setStateFromDevtools(stateFromDevtools);\n }\n return;\n }\n if (!api.dispatchFromDevtools) return;\n if (typeof api.dispatch !== \"function\") return;\n api.dispatch(action);\n }\n );\n case \"DISPATCH\":\n switch (message.payload.type) {\n case \"RESET\":\n setStateFromDevtools(initialState);\n if (store === void 0) {\n return connection == null ? void 0 : connection.init(api.getState());\n }\n return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n case \"COMMIT\":\n if (store === void 0) {\n connection == null ? void 0 : connection.init(api.getState());\n return;\n }\n return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n case \"ROLLBACK\":\n return parseJsonThen(message.state, (state) => {\n if (store === void 0) {\n setStateFromDevtools(state);\n connection == null ? void 0 : connection.init(api.getState());\n return;\n }\n setStateFromDevtools(state[store]);\n connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n });\n case \"JUMP_TO_STATE\":\n case \"JUMP_TO_ACTION\":\n return parseJsonThen(message.state, (state) => {\n if (store === void 0) {\n setStateFromDevtools(state);\n return;\n }\n if (JSON.stringify(api.getState()) !== JSON.stringify(state[store])) {\n setStateFromDevtools(state[store]);\n }\n });\n case \"IMPORT_STATE\": {\n const { nextLiftedState } = message.payload;\n const lastComputedState = (_a = nextLiftedState.computedStates.slice(-1)[0]) == null ? void 0 : _a.state;\n if (!lastComputedState) return;\n if (store === void 0) {\n setStateFromDevtools(lastComputedState);\n } else {\n setStateFromDevtools(lastComputedState[store]);\n }\n connection == null ? void 0 : connection.send(\n null,\n // FIXME no-any\n nextLiftedState\n );\n return;\n }\n case \"PAUSE_RECORDING\":\n return isRecording = !isRecording;\n }\n return;\n }\n });\n return initialState;\n};\nconst devtools = devtoolsImpl;\nconst parseJsonThen = (stringified, f) => {\n let parsed;\n try {\n parsed = JSON.parse(stringified);\n } catch (e) {\n console.error(\n \"[zustand devtools middleware] Could not parse the received json\",\n e\n );\n }\n if (parsed !== void 0) f(parsed);\n};\n\nconst subscribeWithSelectorImpl = (fn) => (set, get, api) => {\n const origSubscribe = api.subscribe;\n api.subscribe = (selector, optListener, options) => {\n let listener = selector;\n if (optListener) {\n const equalityFn = (options == null ? void 0 : options.equalityFn) || Object.is;\n let currentSlice = selector(api.getState());\n listener = (state) => {\n const nextSlice = selector(state);\n if (!equalityFn(currentSlice, nextSlice)) {\n const previousSlice = currentSlice;\n optListener(currentSlice = nextSlice, previousSlice);\n }\n };\n if (options == null ? void 0 : options.fireImmediately) {\n optListener(currentSlice, currentSlice);\n }\n }\n return origSubscribe(listener);\n };\n const initialState = fn(set, get, api);\n return initialState;\n};\nconst subscribeWithSelector = subscribeWithSelectorImpl;\n\nconst combine = (initialState, create) => (...a) => Object.assign({}, initialState, create(...a));\n\nfunction createJSONStorage(getStorage, options) {\n let storage;\n try {\n storage = getStorage();\n } catch (_e) {\n return;\n }\n const persistStorage = {\n getItem: (name) => {\n var _a;\n const parse = (str2) => {\n if (str2 === null) {\n return null;\n }\n return JSON.parse(str2, options == null ? void 0 : options.reviver);\n };\n const str = (_a = storage.getItem(name)) != null ? _a : null;\n if (str instanceof Promise) {\n return str.then(parse);\n }\n return parse(str);\n },\n setItem: (name, newValue) => storage.setItem(\n name,\n JSON.stringify(newValue, options == null ? void 0 : options.replacer)\n ),\n removeItem: (name) => storage.removeItem(name)\n };\n return persistStorage;\n}\nconst toThenable = (fn) => (input) => {\n try {\n const result = fn(input);\n if (result instanceof Promise) {\n return result;\n }\n return {\n then(onFulfilled) {\n return toThenable(onFulfilled)(result);\n },\n catch(_onRejected) {\n return this;\n }\n };\n } catch (e) {\n return {\n then(_onFulfilled) {\n return this;\n },\n catch(onRejected) {\n return toThenable(onRejected)(e);\n }\n };\n }\n};\nconst oldImpl = (config, baseOptions) => (set, get, api) => {\n let options = {\n getStorage: () => localStorage,\n serialize: JSON.stringify,\n deserialize: JSON.parse,\n partialize: (state) => state,\n version: 0,\n merge: (persistedState, currentState) => ({\n ...currentState,\n ...persistedState\n }),\n ...baseOptions\n };\n let hasHydrated = false;\n const hydrationListeners = /* @__PURE__ */ new Set();\n const finishHydrationListeners = /* @__PURE__ */ new Set();\n let storage;\n try {\n storage = options.getStorage();\n } catch (_e) {\n }\n if (!storage) {\n return config(\n (...args) => {\n console.warn(\n `[zustand persist middleware] Unable to update item '${options.name}', the given storage is currently unavailable.`\n );\n set(...args);\n },\n get,\n api\n );\n }\n const thenableSerialize = toThenable(options.serialize);\n const setItem = () => {\n const state = options.partialize({ ...get() });\n let errorInSync;\n const thenable = thenableSerialize({ state, version: options.version }).then(\n (serializedValue) => storage.setItem(options.name, serializedValue)\n ).catch((e) => {\n errorInSync = e;\n });\n if (errorInSync) {\n throw errorInSync;\n }\n return thenable;\n };\n const savedSetState = api.setState;\n api.setState = (state, replace) => {\n savedSetState(state, replace);\n void setItem();\n };\n const configResult = config(\n (...args) => {\n set(...args);\n void setItem();\n },\n get,\n api\n );\n let stateFromStorage;\n const hydrate = () => {\n var _a;\n if (!storage) return;\n hasHydrated = false;\n hydrationListeners.forEach((cb) => cb(get()));\n const postRehydrationCallback = ((_a = options.onRehydrateStorage) == null ? void 0 : _a.call(options, get())) || void 0;\n return toThenable(storage.getItem.bind(storage))(options.name).then((storageValue) => {\n if (storageValue) {\n return options.deserialize(storageValue);\n }\n }).then((deserializedStorageValue) => {\n if (deserializedStorageValue) {\n if (typeof deserializedStorageValue.version === \"number\" && deserializedStorageValue.version !== options.version) {\n if (options.migrate) {\n return options.migrate(\n deserializedStorageValue.state,\n deserializedStorageValue.version\n );\n }\n console.error(\n `State loaded from storage couldn't be migrated since no migrate function was provided`\n );\n } else {\n return deserializedStorageValue.state;\n }\n }\n }).then((migratedState) => {\n var _a2;\n stateFromStorage = options.merge(\n migratedState,\n (_a2 = get()) != null ? _a2 : configResult\n );\n set(stateFromStorage, true);\n return setItem();\n }).then(() => {\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(stateFromStorage, void 0);\n hasHydrated = true;\n finishHydrationListeners.forEach((cb) => cb(stateFromStorage));\n }).catch((e) => {\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(void 0, e);\n });\n };\n api.persist = {\n setOptions: (newOptions) => {\n options = {\n ...options,\n ...newOptions\n };\n if (newOptions.getStorage) {\n storage = newOptions.getStorage();\n }\n },\n clearStorage: () => {\n storage == null ? void 0 : storage.removeItem(options.name);\n },\n getOptions: () => options,\n rehydrate: () => hydrate(),\n hasHydrated: () => hasHydrated,\n onHydrate: (cb) => {\n hydrationListeners.add(cb);\n return () => {\n hydrationListeners.delete(cb);\n };\n },\n onFinishHydration: (cb) => {\n finishHydrationListeners.add(cb);\n return () => {\n finishHydrationListeners.delete(cb);\n };\n }\n };\n hydrate();\n return stateFromStorage || configResult;\n};\nconst newImpl = (config, baseOptions) => (set, get, api) => {\n let options = {\n storage: createJSONStorage(() => localStorage),\n partialize: (state) => state,\n version: 0,\n merge: (persistedState, currentState) => ({\n ...currentState,\n ...persistedState\n }),\n ...baseOptions\n };\n let hasHydrated = false;\n const hydrationListeners = /* @__PURE__ */ new Set();\n const finishHydrationListeners = /* @__PURE__ */ new Set();\n let storage = options.storage;\n if (!storage) {\n return config(\n (...args) => {\n console.warn(\n `[zustand persist middleware] Unable to update item '${options.name}', the given storage is currently unavailable.`\n );\n set(...args);\n },\n get,\n api\n );\n }\n const setItem = () => {\n const state = options.partialize({ ...get() });\n return storage.setItem(options.name, {\n state,\n version: options.version\n });\n };\n const savedSetState = api.setState;\n api.setState = (state, replace) => {\n savedSetState(state, replace);\n void setItem();\n };\n const configResult = config(\n (...args) => {\n set(...args);\n void setItem();\n },\n get,\n api\n );\n api.getInitialState = () => configResult;\n let stateFromStorage;\n const hydrate = () => {\n var _a, _b;\n if (!storage) return;\n hasHydrated = false;\n hydrationListeners.forEach((cb) => {\n var _a2;\n return cb((_a2 = get()) != null ? _a2 : configResult);\n });\n const postRehydrationCallback = ((_b = options.onRehydrateStorage) == null ? void 0 : _b.call(options, (_a = get()) != null ? _a : configResult)) || void 0;\n return toThenable(storage.getItem.bind(storage))(options.name).then((deserializedStorageValue) => {\n if (deserializedStorageValue) {\n if (typeof deserializedStorageValue.version === \"number\" && deserializedStorageValue.version !== options.version) {\n if (options.migrate) {\n return [\n true,\n options.migrate(\n deserializedStorageValue.state,\n deserializedStorageValue.version\n )\n ];\n }\n console.error(\n `State loaded from storage couldn't be migrated since no migrate function was provided`\n );\n } else {\n return [false, deserializedStorageValue.state];\n }\n }\n return [false, void 0];\n }).then((migrationResult) => {\n var _a2;\n const [migrated, migratedState] = migrationResult;\n stateFromStorage = options.merge(\n migratedState,\n (_a2 = get()) != null ? _a2 : configResult\n );\n set(stateFromStorage, true);\n if (migrated) {\n return setItem();\n }\n }).then(() => {\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(stateFromStorage, void 0);\n stateFromStorage = get();\n hasHydrated = true;\n finishHydrationListeners.forEach((cb) => cb(stateFromStorage));\n }).catch((e) => {\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(void 0, e);\n });\n };\n api.persist = {\n setOptions: (newOptions) => {\n options = {\n ...options,\n ...newOptions\n };\n if (newOptions.storage) {\n storage = newOptions.storage;\n }\n },\n clearStorage: () => {\n storage == null ? void 0 : storage.removeItem(options.name);\n },\n getOptions: () => options,\n rehydrate: () => hydrate(),\n hasHydrated: () => hasHydrated,\n onHydrate: (cb) => {\n hydrationListeners.add(cb);\n return () => {\n hydrationListeners.delete(cb);\n };\n },\n onFinishHydration: (cb) => {\n finishHydrationListeners.add(cb);\n return () => {\n finishHydrationListeners.delete(cb);\n };\n }\n };\n if (!options.skipHydration) {\n hydrate();\n }\n return stateFromStorage || configResult;\n};\nconst persistImpl = (config, baseOptions) => {\n if (\"getStorage\" in baseOptions || \"serialize\" in baseOptions || \"deserialize\" in baseOptions) {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n \"[DEPRECATED] `getStorage`, `serialize` and `deserialize` options are deprecated. Use `storage` option instead.\"\n );\n }\n return oldImpl(config, baseOptions);\n }\n return newImpl(config, baseOptions);\n};\nconst persist = persistImpl;\n\nexport { combine, createJSONStorage, devtools, persist, redux, subscribeWithSelector };\n","/**\n * Galaxy Constants\n *\n * Centralized configuration for colors, sizes, and visual parameters.\n * All values are tuned for optimal visual clarity and performance.\n */\n// ============================================================================\n// Color Palettes\n// ============================================================================\n/**\n * Sensitivity level colors (hex)\n * Designed for dark background with high contrast\n */\nexport const SENSITIVITY_COLORS = {\n critical: '#ff3366', // Bright red-pink (credentials, secrets)\n high: '#ff9933', // Orange (financial, health)\n medium: '#ffcc00', // Yellow (PII)\n low: '#33ccff', // Cyan (internal)\n public: '#66ff99', // Green (safe)\n};\n/**\n * Sensitivity level emissive intensity (glow strength)\n */\nexport const SENSITIVITY_EMISSIVE = {\n critical: 0.8,\n high: 0.6,\n medium: 0.4,\n low: 0.2,\n public: 0.1,\n};\n/**\n * Security tier colors\n */\nexport const SECURITY_TIER_COLORS = {\n P0: '#ff0000', // Red - Critical\n P1: '#ff6600', // Orange - High\n P2: '#ffcc00', // Yellow - Medium\n P3: '#66ccff', // Light blue - Low\n P4: '#99ff99', // Light green - Minimal\n};\n/**\n * Authentication level colors for entry points\n */\nexport const AUTH_LEVEL_COLORS = {\n public: '#ff3333', // Red - Dangerous\n authenticated: '#ffcc00', // Yellow - Caution\n admin: '#33cc33', // Green - Protected\n internal: '#3366ff', // Blue - Internal only\n};\n/**\n * Data operation colors for paths\n */\nexport const OPERATION_COLORS = {\n read: '#33ccff', // Cyan - Read\n write: '#ff9933', // Orange - Write\n delete: '#ff3366', // Red - Delete\n unknown: '#999999', // Gray - Unknown\n};\n// ============================================================================\n// Size Constants\n// ============================================================================\n/**\n * Table (planet) size configuration\n */\nexport const TABLE_SIZE = {\n /** Minimum radius */\n MIN_RADIUS: 0.5,\n /** Maximum radius */\n MAX_RADIUS: 3.0,\n /** Base radius for average tables */\n BASE_RADIUS: 1.0,\n /** Scale factor for row count */\n ROW_COUNT_SCALE: 0.0001,\n /** Scale factor for access frequency */\n ACCESS_SCALE: 0.01,\n};\n/**\n * Field (moon) size configuration\n */\nexport const FIELD_SIZE = {\n /** Base radius */\n RADIUS: 0.15,\n /** Orbit radius from parent table */\n ORBIT_RADIUS: 2.0,\n /** Orbit speed (radians per second) */\n ORBIT_SPEED: 0.5,\n /** Sensitive field scale multiplier */\n SENSITIVE_SCALE: 1.5,\n};\n/**\n * Entry point (space station) size configuration\n */\nexport const ENTRY_POINT_SIZE = {\n /** Base scale */\n SCALE: 0.8,\n /** Distance from galaxy center */\n ORBIT_RADIUS: 50,\n /** Height variation */\n HEIGHT_VARIANCE: 10,\n};\n/**\n * Data path (hyperspace lane) configuration\n */\nexport const PATH_CONFIG = {\n /** Base line width */\n BASE_WIDTH: 0.05,\n /** Max line width */\n MAX_WIDTH: 0.3,\n /** Curve segments */\n CURVE_SEGMENTS: 50,\n /** Animation speed */\n FLOW_SPEED: 2.0,\n /** Dash size */\n DASH_SIZE: 0.5,\n /** Gap size */\n GAP_SIZE: 0.3,\n};\n// ============================================================================\n// Layout Constants\n// ============================================================================\n/**\n * Galaxy layout configuration\n */\nexport const GALAXY_LAYOUT = {\n /** Galaxy radius */\n RADIUS: 40,\n /** Vertical spread */\n HEIGHT: 15,\n /** Cluster separation */\n CLUSTER_SEPARATION: 20,\n /** Minimum distance between tables */\n MIN_TABLE_DISTANCE: 5,\n /** Force simulation iterations */\n SIMULATION_ITERATIONS: 300,\n /** Force strength */\n FORCE_STRENGTH: -30,\n /** Link distance */\n LINK_DISTANCE: 10,\n};\n/**\n * Camera configuration\n */\nexport const CAMERA_CONFIG = {\n /** Default position */\n DEFAULT_POSITION: { x: 0, y: 30, z: 60 },\n /** Default target */\n DEFAULT_TARGET: { x: 0, y: 0, z: 0 },\n /** Field of view */\n FOV: 60,\n /** Near clipping plane */\n NEAR: 0.1,\n /** Far clipping plane */\n FAR: 1000,\n /** Zoom limits */\n MIN_ZOOM: 0.5,\n MAX_ZOOM: 5,\n /** Pan limits */\n PAN_LIMIT: 100,\n /** Rotation speed */\n ROTATION_SPEED: 0.5,\n /** Zoom speed */\n ZOOM_SPEED: 1.2,\n /** Animation duration (ms) */\n ANIMATION_DURATION: 1000,\n};\n// ============================================================================\n// Visual Effects\n// ============================================================================\n/**\n * Bloom effect configuration\n */\nexport const BLOOM_CONFIG = {\n /** Intensity */\n INTENSITY: 1.5,\n /** Luminance threshold */\n LUMINANCE_THRESHOLD: 0.2,\n /** Luminance smoothing */\n LUMINANCE_SMOOTHING: 0.9,\n /** Blur passes */\n BLUR_PASSES: 5,\n};\n/**\n * Particle effect configuration\n */\nexport const PARTICLE_CONFIG = {\n /** Star field count */\n STAR_COUNT: 5000,\n /** Star size */\n STAR_SIZE: 0.1,\n /** Access pulse duration (ms) */\n PULSE_DURATION: 500,\n /** Trail length */\n TRAIL_LENGTH: 20,\n};\n/**\n * Animation configuration\n */\nexport const ANIMATION_CONFIG = {\n /** Hover scale */\n HOVER_SCALE: 1.2,\n /** Selection scale */\n SELECTION_SCALE: 1.3,\n /** Pulse frequency (Hz) */\n PULSE_FREQUENCY: 2,\n /** Rotation speed for idle animation */\n IDLE_ROTATION: 0.001,\n /** Transition duration (ms) */\n TRANSITION_DURATION: 300,\n};\n// ============================================================================\n// UI Constants\n// ============================================================================\n/**\n * Tooltip configuration\n */\nexport const TOOLTIP_CONFIG = {\n /** Offset from cursor */\n OFFSET: { x: 15, y: 15 },\n /** Show delay (ms) */\n SHOW_DELAY: 200,\n /** Hide delay (ms) */\n HIDE_DELAY: 100,\n /** Max width */\n MAX_WIDTH: 300,\n};\n/**\n * Label configuration\n */\nexport const LABEL_CONFIG = {\n /** Font size */\n FONT_SIZE: 12,\n /** Font family */\n FONT_FAMILY: 'Inter, system-ui, sans-serif',\n /** Background opacity */\n BG_OPACITY: 0.8,\n /** Padding */\n PADDING: 4,\n /** Distance from node */\n OFFSET: 0.5,\n /** Fade distance */\n FADE_DISTANCE: 30,\n};\n// ============================================================================\n// Performance Constants\n// ============================================================================\n/**\n * Performance thresholds\n */\nexport const PERFORMANCE_CONFIG = {\n /** Max visible tables before LOD kicks in */\n MAX_DETAILED_TABLES: 50,\n /** Max visible paths before simplification */\n MAX_DETAILED_PATHS: 200,\n /** Max visible fields */\n MAX_VISIBLE_FIELDS: 500,\n /** Frame rate target */\n TARGET_FPS: 60,\n /** Frustum culling margin */\n CULLING_MARGIN: 1.5,\n /** LOD distance thresholds */\n LOD_DISTANCES: [20, 50, 100],\n};\n// ============================================================================\n// Cluster Names (Domain Groupings)\n// ============================================================================\n/**\n * Common domain clusters for auto-grouping tables\n */\nexport const DOMAIN_CLUSTERS = {\n auth: ['users', 'accounts', 'sessions', 'tokens', 'permissions', 'roles'],\n commerce: ['orders', 'products', 'carts', 'payments', 'invoices', 'subscriptions'],\n content: ['posts', 'comments', 'media', 'files', 'documents', 'attachments'],\n messaging: ['messages', 'notifications', 'emails', 'chats', 'threads'],\n analytics: ['events', 'logs', 'metrics', 'analytics', 'tracking'],\n config: ['settings', 'preferences', 'configurations', 'features', 'flags'],\n};\n/**\n * Cluster colors\n */\nexport const CLUSTER_COLORS = {\n auth: '#ff6b6b',\n commerce: '#4ecdc4',\n content: '#45b7d1',\n messaging: '#96ceb4',\n analytics: '#dda0dd',\n config: '#98d8c8',\n other: '#7f8c8d',\n};\n//# sourceMappingURL=index.js.map","/**\n * Galaxy Store\n *\n * Zustand store for galaxy visualization state management.\n * Handles selection, camera, filters, and display settings.\n */\nimport { create } from 'zustand';\nimport { subscribeWithSelector } from 'zustand/middleware';\nimport { CAMERA_CONFIG } from '../constants/index.js';\n// ============================================================================\n// Initial State\n// ============================================================================\nconst initialSelection = {\n selectedTable: null,\n selectedField: null,\n selectedEntryPoint: null,\n selectedPath: null,\n hoveredNode: null,\n hoveredType: null,\n};\nconst initialCamera = {\n position: CAMERA_CONFIG.DEFAULT_POSITION,\n target: CAMERA_CONFIG.DEFAULT_TARGET,\n zoom: 1,\n};\nconst initialFilters = {\n minSensitivity: null,\n operationType: null,\n untestedOnly: false,\n publicOnly: false,\n searchQuery: '',\n clusters: [],\n};\nconst initialDisplay = {\n showFields: true,\n showPaths: true,\n showRelationships: true,\n showLabels: true,\n enableBloom: true,\n animationSpeed: 1,\n pathOpacity: 0.6,\n};\nexport const useGalaxyStore = create()(subscribeWithSelector((set, get) => ({\n // Initial state\n galaxyData: null,\n isLoading: false,\n error: null,\n selection: initialSelection,\n camera: initialCamera,\n viewMode: 'overview',\n filters: initialFilters,\n display: initialDisplay,\n recentEvents: [],\n isLiveMode: false,\n isPanelOpen: false,\n activePanel: null,\n searchQuery: '',\n searchResults: [],\n // Data actions\n setGalaxyData: (data) => set({ galaxyData: data, isLoading: false, error: null }),\n setLoading: (loading) => set({ isLoading: loading }),\n setError: (error) => set({ error, isLoading: false }),\n // Selection actions\n selectTable: (id) => set((state) => ({\n selection: {\n ...state.selection,\n selectedTable: id,\n selectedField: null, // Clear field when table changes\n },\n isPanelOpen: id !== null,\n activePanel: id !== null ? 'details' : state.activePanel,\n })),\n selectField: (id) => set((state) => ({\n selection: { ...state.selection, selectedField: id },\n })),\n selectEntryPoint: (id) => set((state) => ({\n selection: {\n ...state.selection,\n selectedEntryPoint: id,\n selectedTable: null,\n selectedField: null,\n },\n isPanelOpen: id !== null,\n activePanel: id !== null ? 'details' : state.activePanel,\n })),\n selectPath: (id) => set((state) => ({\n selection: { ...state.selection, selectedPath: id },\n })),\n setHovered: (id, type) => set((state) => ({\n selection: { ...state.selection, hoveredNode: id, hoveredType: type },\n })),\n clearSelection: () => set({\n selection: initialSelection,\n isPanelOpen: false,\n activePanel: null,\n }),\n // Camera actions\n setCameraPosition: (position) => set((state) => ({\n camera: { ...state.camera, position },\n })),\n setCameraTarget: (target) => set((state) => ({\n camera: { ...state.camera, target },\n })),\n setZoom: (zoom) => set((state) => ({\n camera: {\n ...state.camera,\n zoom: Math.max(CAMERA_CONFIG.MIN_ZOOM, Math.min(CAMERA_CONFIG.MAX_ZOOM, zoom)),\n },\n })),\n resetCamera: () => set({ camera: initialCamera }),\n focusOnNode: (id) => {\n const { galaxyData } = get();\n if (!galaxyData)\n return;\n // Find the node position\n const table = galaxyData.tables.find((t) => t.id === id);\n const entryPoint = galaxyData.entryPoints.find((e) => e.id === id);\n const position = table?.position || entryPoint?.position;\n if (position) {\n set((state) => ({\n camera: {\n ...state.camera,\n target: position,\n position: {\n x: position.x,\n y: position.y + 20,\n z: position.z + 30,\n },\n },\n }));\n }\n },\n // View actions\n setViewMode: (mode) => set({ viewMode: mode }),\n setFilters: (filters) => set((state) => ({\n filters: { ...state.filters, ...filters },\n })),\n setDisplay: (settings) => set((state) => ({\n display: { ...state.display, ...settings },\n })),\n resetFilters: () => set({ filters: initialFilters }),\n // Event actions\n addEvent: (event) => set((state) => ({\n recentEvents: [event, ...state.recentEvents].slice(0, 100), // Keep last 100\n })),\n clearEvents: () => set({ recentEvents: [] }),\n setLiveMode: (enabled) => set({ isLiveMode: enabled }),\n // UI actions\n togglePanel: (panel) => set((state) => ({\n isPanelOpen: state.activePanel === panel ? !state.isPanelOpen : true,\n activePanel: panel,\n })),\n closePanel: () => set({ isPanelOpen: false, activePanel: null }),\n setSearchQuery: (query) => set({ searchQuery: query }),\n setSearchResults: (results) => set({ searchResults: results }),\n})));\n// ============================================================================\n// Selectors\n// ============================================================================\n/**\n * Get selected table data\n */\nexport const useSelectedTable = () => {\n return useGalaxyStore((state) => {\n if (!state.selection.selectedTable || !state.galaxyData)\n return null;\n return state.galaxyData.tables.find((t) => t.id === state.selection.selectedTable) || null;\n });\n};\n/**\n * Get selected entry point data\n */\nexport const useSelectedEntryPoint = () => {\n return useGalaxyStore((state) => {\n if (!state.selection.selectedEntryPoint || !state.galaxyData)\n return null;\n return state.galaxyData.entryPoints.find((e) => e.id === state.selection.selectedEntryPoint) || null;\n });\n};\n/**\n * Get paths for selected table\n */\nexport const useSelectedTablePaths = () => {\n return useGalaxyStore((state) => {\n if (!state.selection.selectedTable || !state.galaxyData)\n return [];\n return state.galaxyData.dataPaths.filter((p) => p.targetTableId === state.selection.selectedTable);\n });\n};\n/**\n * Get filtered tables based on current filters\n */\nexport const useFilteredTables = () => {\n return useGalaxyStore((state) => {\n if (!state.galaxyData)\n return [];\n let tables = state.galaxyData.tables;\n const { filters } = state;\n // Filter by sensitivity\n if (filters.minSensitivity) {\n const levels = ['public', 'low', 'medium', 'high', 'critical'];\n const minIndex = levels.indexOf(filters.minSensitivity);\n tables = tables.filter((t) => levels.indexOf(t.sensitivity) >= minIndex);\n }\n // Filter by cluster\n if (filters.clusters.length > 0) {\n tables = tables.filter((t) => t.cluster && filters.clusters.includes(t.cluster));\n }\n // Filter by search\n if (filters.searchQuery) {\n const query = filters.searchQuery.toLowerCase();\n tables = tables.filter((t) => t.name.toLowerCase().includes(query) ||\n t.fields.some((f) => f.name.toLowerCase().includes(query)));\n }\n return tables;\n });\n};\n/**\n * Get filtered paths based on current filters\n */\nexport const useFilteredPaths = () => {\n return useGalaxyStore((state) => {\n if (!state.galaxyData)\n return [];\n let paths = state.galaxyData.dataPaths;\n const { filters } = state;\n // Filter by operation\n if (filters.operationType) {\n paths = paths.filter((p) => p.operation === filters.operationType);\n }\n // Filter by untested\n if (filters.untestedOnly) {\n paths = paths.filter((p) => !p.isTested);\n }\n return paths;\n });\n};\n/**\n * Get filtered entry points\n */\nexport const useFilteredEntryPoints = () => {\n return useGalaxyStore((state) => {\n if (!state.galaxyData)\n return [];\n let entryPoints = state.galaxyData.entryPoints;\n const { filters } = state;\n // Filter by public only\n if (filters.publicOnly) {\n entryPoints = entryPoints.filter((e) => e.authLevel === 'public');\n }\n return entryPoints;\n });\n};\n//# sourceMappingURL=galaxy-store.js.map","/**\n * Settings Tab Component\n *\n * Displays and allows editing of drift configuration.\n */\n\nimport React, { useState } from 'react';\nimport { useConfig, useUpdateConfig } from '../hooks';\nimport type { DetectorConfig, PatternCategory, Severity } from '../types';\n\nfunction DetectorToggle({\n detector,\n onToggle,\n}: {\n detector: DetectorConfig;\n onToggle: (enabled: boolean) => void;\n}) {\n return (\n <div className=\"flex items-center justify-between p-3 bg-dark-bg rounded\">\n <div>\n <div className=\"font-medium\">{detector.name}</div>\n <div className=\"text-xs text-dark-muted mt-0.5\">\n {detector.category} • {detector.id}\n </div>\n </div>\n <button\n onClick={() => onToggle(!detector.enabled)}\n className={`w-12 h-6 rounded-full transition-colors ${\n detector.enabled ? 'bg-status-approved' : 'bg-dark-border'\n }`}\n >\n <div\n className={`w-5 h-5 rounded-full bg-white shadow transition-transform ${\n detector.enabled ? 'translate-x-6' : 'translate-x-0.5'\n }`}\n />\n </button>\n </div>\n );\n}\n\nfunction IgnorePatternsEditor({\n patterns,\n onChange,\n}: {\n patterns: string[];\n onChange: (patterns: string[]) => void;\n}) {\n const [newPattern, setNewPattern] = useState('');\n\n const handleAdd = () => {\n if (newPattern.trim() && !patterns.includes(newPattern.trim())) {\n onChange([...patterns, newPattern.trim()]);\n setNewPattern('');\n }\n };\n\n const handleRemove = (pattern: string) => {\n onChange(patterns.filter((p) => p !== pattern));\n };\n\n return (\n <div>\n <div className=\"flex gap-2 mb-3\">\n <input\n type=\"text\"\n placeholder=\"Add ignore pattern (e.g., **/test/**)\"\n className=\"flex-1 bg-dark-bg border border-dark-border rounded px-3 py-1.5 text-sm\"\n value={newPattern}\n onChange={(e) => setNewPattern(e.target.value)}\n onKeyDown={(e) => e.key === 'Enter' && handleAdd()}\n />\n <button onClick={handleAdd} className=\"btn btn-secondary text-sm\">\n Add\n </button>\n </div>\n <div className=\"space-y-1\">\n {patterns.map((pattern) => (\n <div\n key={pattern}\n className=\"flex items-center justify-between p-2 bg-dark-bg rounded text-sm\"\n >\n <code className=\"font-mono\">{pattern}</code>\n <button\n onClick={() => handleRemove(pattern)}\n className=\"text-dark-muted hover:text-severity-error\"\n >\n ✕\n </button>\n </div>\n ))}\n {patterns.length === 0 && (\n <div className=\"text-dark-muted text-sm\">No ignore patterns configured</div>\n )}\n </div>\n </div>\n );\n}\n\nfunction SeverityOverridesEditor({\n overrides,\n onChange,\n}: {\n overrides: Record<string, Severity>;\n onChange: (overrides: Record<string, Severity>) => void;\n}) {\n const [newPatternId, setNewPatternId] = useState('');\n const [newSeverity, setNewSeverity] = useState<Severity>('warning');\n\n const handleAdd = () => {\n if (newPatternId.trim()) {\n onChange({ ...overrides, [newPatternId.trim()]: newSeverity });\n setNewPatternId('');\n }\n };\n\n const handleRemove = (patternId: string) => {\n const newOverrides = { ...overrides };\n delete newOverrides[patternId];\n onChange(newOverrides);\n };\n\n const severities: Severity[] = ['error', 'warning', 'info', 'hint'];\n\n return (\n <div>\n <div className=\"flex gap-2 mb-3\">\n <input\n type=\"text\"\n placeholder=\"Pattern ID\"\n className=\"flex-1 bg-dark-bg border border-dark-border rounded px-3 py-1.5 text-sm\"\n value={newPatternId}\n onChange={(e) => setNewPatternId(e.target.value)}\n />\n <select\n className=\"bg-dark-bg border border-dark-border rounded px-3 py-1.5 text-sm\"\n value={newSeverity}\n onChange={(e) => setNewSeverity(e.target.value as Severity)}\n >\n {severities.map((sev) => (\n <option key={sev} value={sev}>{sev}</option>\n ))}\n </select>\n <button onClick={handleAdd} className=\"btn btn-secondary text-sm\">\n Add\n </button>\n </div>\n <div className=\"space-y-1\">\n {Object.entries(overrides).map(([patternId, severity]) => (\n <div\n key={patternId}\n className=\"flex items-center justify-between p-2 bg-dark-bg rounded text-sm\"\n >\n <code className=\"font-mono\">{patternId}</code>\n <div className=\"flex items-center gap-2\">\n <span className={`px-2 py-0.5 rounded text-xs badge-${severity}`}>\n {severity}\n </span>\n <button\n onClick={() => handleRemove(patternId)}\n className=\"text-dark-muted hover:text-severity-error\"\n >\n ✕\n </button>\n </div>\n </div>\n ))}\n {Object.keys(overrides).length === 0 && (\n <div className=\"text-dark-muted text-sm\">No severity overrides configured</div>\n )}\n </div>\n </div>\n );\n}\n\nexport function SettingsTab(): React.ReactElement {\n const { data: config, isLoading, error } = useConfig();\n const updateMutation = useUpdateConfig();\n\n if (isLoading) {\n return (\n <div className=\"flex items-center justify-center h-64\">\n <div className=\"text-dark-muted\">Loading configuration...</div>\n </div>\n );\n }\n\n if (error || !config) {\n return (\n <div className=\"flex items-center justify-center h-64\">\n <div className=\"text-severity-error\">Failed to load configuration</div>\n </div>\n );\n }\n\n const handleDetectorToggle = (detectorId: string, enabled: boolean) => {\n const updatedDetectors = config.detectors.map((d) =>\n d.id === detectorId ? { ...d, enabled } : d\n );\n updateMutation.mutate({ detectors: updatedDetectors });\n };\n\n const handleIgnorePatternsChange = (ignorePatterns: string[]) => {\n updateMutation.mutate({ ignorePatterns });\n };\n\n const handleSeverityOverridesChange = (severityOverrides: Record<string, Severity>) => {\n updateMutation.mutate({ severityOverrides });\n };\n\n // Group detectors by category\n const detectorsByCategory = config.detectors.reduce((acc, detector) => {\n const category = detector.category;\n if (!acc[category]) acc[category] = [];\n acc[category].push(detector);\n return acc;\n }, {} as Record<PatternCategory, DetectorConfig[]>);\n\n return (\n <div className=\"space-y-6 max-w-3xl\">\n {/* Version info */}\n <div className=\"card\">\n <h3 className=\"font-medium mb-2\">Configuration</h3>\n <div className=\"text-sm text-dark-muted\">Version: {config.version}</div>\n </div>\n\n {/* Detectors */}\n <div className=\"card\">\n <h3 className=\"font-medium mb-4\">Detectors</h3>\n <div className=\"space-y-4\">\n {Object.entries(detectorsByCategory).map(([category, detectors]) => (\n <div key={category}>\n <h4 className=\"text-sm text-dark-muted mb-2 capitalize\">{category}</h4>\n <div className=\"space-y-2\">\n {detectors.map((detector) => (\n <DetectorToggle\n key={detector.id}\n detector={detector}\n onToggle={(enabled) => handleDetectorToggle(detector.id, enabled)}\n />\n ))}\n </div>\n </div>\n ))}\n </div>\n </div>\n\n {/* Ignore patterns */}\n <div className=\"card\">\n <h3 className=\"font-medium mb-4\">Ignore Patterns</h3>\n <IgnorePatternsEditor\n patterns={config.ignorePatterns}\n onChange={handleIgnorePatternsChange}\n />\n </div>\n\n {/* Severity overrides */}\n <div className=\"card\">\n <h3 className=\"font-medium mb-4\">Severity Overrides</h3>\n <SeverityOverridesEditor\n overrides={config.severityOverrides}\n onChange={handleSeverityOverridesChange}\n />\n </div>\n\n {/* Save indicator */}\n {updateMutation.isPending && (\n <div className=\"text-sm text-dark-muted\">Saving...</div>\n )}\n {updateMutation.isError && (\n <div className=\"text-sm text-severity-error\">Failed to save changes</div>\n )}\n </div>\n );\n}\n","/**\n * Quality Gates Tab Component\n *\n * Displays quality gate results, policies, and run history.\n * \n * @license Apache-2.0\n */\n\nimport React, { useState } from 'react';\nimport { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';\n\n// ============================================================================\n// Types\n// ============================================================================\n\ninterface GateResult {\n gateId: string;\n gateName: string;\n status: 'passed' | 'failed' | 'warned' | 'skipped' | 'errored';\n passed: boolean;\n score: number;\n summary: string;\n violations: Violation[];\n warnings: string[];\n executionTimeMs: number;\n}\n\ninterface Violation {\n id: string;\n gateId: string;\n severity: 'error' | 'warning' | 'info' | 'hint';\n file: string;\n line: number;\n column: number;\n message: string;\n explanation: string;\n ruleId: string;\n suggestedFix?: string;\n}\n\ninterface QualityGateResult {\n passed: boolean;\n status: 'passed' | 'failed' | 'warned' | 'skipped' | 'errored';\n score: number;\n summary: string;\n gates: Record<string, GateResult>;\n violations: Violation[];\n warnings: string[];\n policy: {\n id: string;\n name: string;\n };\n metadata: {\n executionTimeMs: number;\n filesChecked: number;\n gatesRun: string[];\n gatesSkipped: string[];\n timestamp: string;\n branch: string;\n commitSha?: string;\n ci: boolean;\n };\n}\n\ninterface GateRunRecord {\n id: string;\n timestamp: string;\n branch: string;\n commitSha?: string;\n policyId: string;\n passed: boolean;\n score: number;\n gates: Record<string, { passed: boolean; score: number }>;\n violationCount: number;\n executionTimeMs: number;\n}\n\ninterface Policy {\n id: string;\n name: string;\n description: string;\n version: string;\n}\n\ntype ViewMode = 'overview' | 'run' | 'history' | 'policies';\n\n// ============================================================================\n// API Hooks\n// ============================================================================\n\nfunction useLatestRun() {\n return useQuery<QualityGateResult | null>({\n queryKey: ['quality-gates', 'latest'],\n queryFn: async () => {\n const res = await fetch('/api/quality-gates?action=latest');\n const data = await res.json();\n return data.data;\n },\n });\n}\n\nfunction useRunHistory(limit = 10) {\n return useQuery<{ runs: GateRunRecord[]; total: number }>({\n queryKey: ['quality-gates', 'history', limit],\n queryFn: async () => {\n const res = await fetch(`/api/quality-gates?action=history&limit=${limit}`);\n const data = await res.json();\n return data.data;\n },\n });\n}\n\nfunction usePolicies() {\n return useQuery<{ policies: Policy[] }>({\n queryKey: ['quality-gates', 'policies'],\n queryFn: async () => {\n const res = await fetch('/api/quality-gates?action=policies');\n const data = await res.json();\n return data.data;\n },\n });\n}\n\nfunction useRunGates() {\n const queryClient = useQueryClient();\n \n return useMutation({\n mutationFn: async (options: { policy?: string; files?: string[] }) => {\n const res = await fetch('/api/quality-gates', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ action: 'run', ...options }),\n });\n const data = await res.json();\n return data.data as QualityGateResult;\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['quality-gates'] });\n },\n });\n}\n\n// ============================================================================\n// Components\n// ============================================================================\n\nfunction StatusBadge({ status, size = 'md' }: { status: string; size?: 'sm' | 'md' | 'lg' }) {\n const colors: Record<string, string> = {\n passed: 'bg-green-500/20 text-green-400 border-green-500/30',\n failed: 'bg-red-500/20 text-red-400 border-red-500/30',\n warned: 'bg-yellow-500/20 text-yellow-400 border-yellow-500/30',\n skipped: 'bg-gray-500/20 text-gray-400 border-gray-500/30',\n errored: 'bg-red-600/20 text-red-500 border-red-600/30',\n };\n\n const sizes: Record<string, string> = {\n sm: 'px-1.5 py-0.5 text-xs',\n md: 'px-2 py-1 text-sm',\n lg: 'px-3 py-1.5 text-base',\n };\n\n return (\n <span className={`rounded border ${colors[status] || colors.skipped} ${sizes[size]}`}>\n {status.toUpperCase()}\n </span>\n );\n}\n\nfunction ScoreGauge({ score, size = 'md' }: { score: number; size?: 'sm' | 'md' | 'lg' }) {\n const getColor = (s: number) => {\n if (s >= 80) return 'text-green-400';\n if (s >= 60) return 'text-yellow-400';\n return 'text-red-400';\n };\n\n const sizes: Record<string, string> = {\n sm: 'text-lg',\n md: 'text-2xl',\n lg: 'text-4xl',\n };\n\n return (\n <div className={`font-bold ${getColor(score)} ${sizes[size]}`}>\n {score}<span className=\"text-dark-muted text-sm\">/100</span>\n </div>\n );\n}\n\nfunction StatCard({\n label,\n value,\n subtext,\n color,\n}: {\n label: string;\n value: string | number;\n subtext?: string;\n color?: string;\n}) {\n return (\n <div className=\"card\">\n <div className=\"text-sm text-dark-muted mb-1\">{label}</div>\n <div className={`text-2xl font-semibold ${color || ''}`}>{value}</div>\n {subtext && <div className=\"text-xs text-dark-muted mt-1\">{subtext}</div>}\n </div>\n );\n}\n\nfunction GateResultCard({ gate }: { gate: GateResult }) {\n const [expanded, setExpanded] = useState(false);\n\n const statusIcon: Record<string, string> = {\n passed: '✅',\n failed: '❌',\n warned: '⚠️',\n skipped: '⏭️',\n errored: '💥',\n };\n\n return (\n <div className=\"card\">\n <div \n className=\"flex items-center justify-between cursor-pointer\"\n onClick={() => setExpanded(!expanded)}\n >\n <div className=\"flex items-center gap-3\">\n <span className=\"text-xl\">{statusIcon[gate.status]}</span>\n <div>\n <div className=\"font-medium\">{gate.gateName}</div>\n <div className=\"text-sm text-dark-muted\">{gate.summary}</div>\n </div>\n </div>\n <div className=\"flex items-center gap-4\">\n <ScoreGauge score={gate.score} size=\"sm\" />\n <span className=\"text-dark-muted\">{expanded ? '▼' : '▶'}</span>\n </div>\n </div>\n\n {expanded && (\n <div className=\"mt-4 pt-4 border-t border-dark-border\">\n <div className=\"grid grid-cols-3 gap-4 mb-4\">\n <div>\n <div className=\"text-xs text-dark-muted\">Violations</div>\n <div className=\"font-medium\">{gate.violations.length}</div>\n </div>\n <div>\n <div className=\"text-xs text-dark-muted\">Warnings</div>\n <div className=\"font-medium\">{gate.warnings.length}</div>\n </div>\n <div>\n <div className=\"text-xs text-dark-muted\">Time</div>\n <div className=\"font-medium\">{gate.executionTimeMs}ms</div>\n </div>\n </div>\n\n {gate.violations.length > 0 && (\n <div className=\"space-y-2\">\n <div className=\"text-sm text-dark-muted\">Violations:</div>\n {gate.violations.slice(0, 5).map((v, i) => (\n <div key={i} className=\"p-2 rounded bg-red-500/10 text-sm\">\n <div className=\"flex items-center gap-2\">\n <span className={`px-1 rounded text-xs ${\n v.severity === 'error' ? 'bg-red-500 text-white' :\n v.severity === 'warning' ? 'bg-yellow-500 text-black' :\n 'bg-blue-500 text-white'\n }`}>\n {v.severity}\n </span>\n <span className=\"text-dark-muted\">{v.file}:{v.line}</span>\n </div>\n <div className=\"mt-1\">{v.message}</div>\n </div>\n ))}\n {gate.violations.length > 5 && (\n <div className=\"text-sm text-dark-muted\">\n ... and {gate.violations.length - 5} more\n </div>\n )}\n </div>\n )}\n\n {gate.warnings.length > 0 && (\n <div className=\"mt-4 space-y-1\">\n <div className=\"text-sm text-dark-muted\">Warnings:</div>\n {gate.warnings.map((w, i) => (\n <div key={i} className=\"text-sm text-yellow-400\">⚠️ {w}</div>\n ))}\n </div>\n )}\n </div>\n )}\n </div>\n );\n}\n\nfunction OverviewView({ result }: { result: QualityGateResult }) {\n const gateResults = Object.values(result.gates);\n const passedGates = gateResults.filter(g => g.passed).length;\n const failedGates = gateResults.filter(g => !g.passed && g.status !== 'skipped').length;\n\n return (\n <div className=\"space-y-6\">\n {/* Summary */}\n <div className=\"card\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-4\">\n <div className=\"text-4xl\">\n {result.passed ? '✅' : '❌'}\n </div>\n <div>\n <div className=\"text-xl font-semibold\">\n Quality Gate {result.passed ? 'PASSED' : 'FAILED'}\n </div>\n <div className=\"text-dark-muted\">{result.summary}</div>\n </div>\n </div>\n <ScoreGauge score={result.score} size=\"lg\" />\n </div>\n </div>\n\n {/* Stats */}\n <div className=\"grid grid-cols-1 md:grid-cols-4 gap-4\">\n <StatCard\n label=\"Gates Passed\"\n value={`${passedGates}/${gateResults.length}`}\n color={passedGates === gateResults.length ? 'text-green-400' : 'text-yellow-400'}\n />\n <StatCard\n label=\"Violations\"\n value={result.violations.length}\n color={result.violations.length > 0 ? 'text-red-400' : 'text-green-400'}\n />\n <StatCard\n label=\"Files Checked\"\n value={result.metadata.filesChecked}\n />\n <StatCard\n label=\"Execution Time\"\n value={`${result.metadata.executionTimeMs}ms`}\n />\n </div>\n\n {/* Policy info */}\n <div className=\"card\">\n <div className=\"flex items-center justify-between\">\n <div>\n <div className=\"text-sm text-dark-muted\">Policy</div>\n <div className=\"font-medium\">{result.policy.name}</div>\n </div>\n <div>\n <div className=\"text-sm text-dark-muted\">Branch</div>\n <div className=\"font-medium\">{result.metadata.branch}</div>\n </div>\n <div>\n <div className=\"text-sm text-dark-muted\">Timestamp</div>\n <div className=\"font-medium\">\n {new Date(result.metadata.timestamp).toLocaleString()}\n </div>\n </div>\n {result.metadata.commitSha && (\n <div>\n <div className=\"text-sm text-dark-muted\">Commit</div>\n <div className=\"font-mono text-sm\">{result.metadata.commitSha.slice(0, 7)}</div>\n </div>\n )}\n </div>\n </div>\n\n {/* Gate results */}\n <div>\n <div className=\"text-lg font-medium mb-4\">Gate Results</div>\n <div className=\"space-y-3\">\n {gateResults.map(gate => (\n <GateResultCard key={gate.gateId} gate={gate} />\n ))}\n </div>\n </div>\n\n {/* Violations summary */}\n {result.violations.length > 0 && (\n <div className=\"card\">\n <div className=\"text-lg font-medium mb-4\">\n All Violations ({result.violations.length})\n </div>\n <div className=\"space-y-2 max-h-96 overflow-y-auto\">\n {result.violations.map((v, i) => (\n <div key={i} className=\"p-3 rounded bg-dark-bg/50\">\n <div className=\"flex items-center gap-2 mb-1\">\n <span className={`px-1.5 py-0.5 rounded text-xs ${\n v.severity === 'error' ? 'bg-red-500 text-white' :\n v.severity === 'warning' ? 'bg-yellow-500 text-black' :\n 'bg-blue-500 text-white'\n }`}>\n {v.severity}\n </span>\n <span className=\"text-sm text-dark-muted\">[{v.gateId}]</span>\n <span className=\"text-sm font-mono\">{v.file}:{v.line}:{v.column}</span>\n </div>\n <div className=\"text-sm\">{v.message}</div>\n {v.explanation && (\n <div className=\"text-xs text-dark-muted mt-1\">{v.explanation}</div>\n )}\n {v.suggestedFix && (\n <div className=\"text-xs text-cyan-400 mt-1\">\n 💡 {v.suggestedFix}\n </div>\n )}\n </div>\n ))}\n </div>\n </div>\n )}\n </div>\n );\n}\n\nfunction RunView({ onRun }: { onRun: (options: { policy?: string }) => void }) {\n const [selectedPolicy, setSelectedPolicy] = useState<string>('default');\n const { data: policiesData } = usePolicies();\n\n return (\n <div className=\"space-y-6\">\n <div className=\"card\">\n <div className=\"text-lg font-medium mb-4\">Run Quality Gates</div>\n \n <div className=\"space-y-4\">\n <div>\n <label className=\"block text-sm text-dark-muted mb-2\">Policy</label>\n <select\n value={selectedPolicy}\n onChange={(e) => setSelectedPolicy(e.target.value)}\n className=\"w-full bg-dark-bg border border-dark-border rounded px-3 py-2\"\n >\n {policiesData?.policies.map(p => (\n <option key={p.id} value={p.id}>{p.name}</option>\n ))}\n </select>\n </div>\n\n <button\n onClick={() => onRun({ policy: selectedPolicy })}\n className=\"w-full bg-accent-primary hover:bg-accent-primary/80 text-white rounded px-4 py-2 font-medium transition-colors\"\n >\n Run Quality Gates\n </button>\n </div>\n </div>\n\n <div className=\"card\">\n <div className=\"text-sm text-dark-muted mb-2\">CLI Command</div>\n <code className=\"block bg-dark-bg p-3 rounded text-sm font-mono\">\n drift gate --policy {selectedPolicy}\n </code>\n </div>\n </div>\n );\n}\n\nfunction HistoryView() {\n const { data, isLoading } = useRunHistory(20);\n\n if (isLoading) {\n return <div className=\"text-dark-muted\">Loading history...</div>;\n }\n\n if (!data || data.runs.length === 0) {\n return (\n <div className=\"card\">\n <div className=\"text-dark-muted\">No gate runs recorded yet.</div>\n </div>\n );\n }\n\n return (\n <div className=\"space-y-4\">\n <div className=\"text-lg font-medium\">Run History ({data.total})</div>\n \n <div className=\"space-y-2\">\n {data.runs.map(run => (\n <div key={run.id} className=\"card\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-4\">\n <span className=\"text-xl\">{run.passed ? '✅' : '❌'}</span>\n <div>\n <div className=\"font-medium\">\n {new Date(run.timestamp).toLocaleString()}\n </div>\n <div className=\"text-sm text-dark-muted\">\n {run.branch}\n {run.commitSha && ` • ${run.commitSha.slice(0, 7)}`}\n {' • '}{run.policyId}\n </div>\n </div>\n </div>\n <div className=\"flex items-center gap-4\">\n <div className=\"text-right\">\n <ScoreGauge score={run.score} size=\"sm\" />\n <div className=\"text-xs text-dark-muted\">\n {run.violationCount} violations\n </div>\n </div>\n <div className=\"text-xs text-dark-muted\">\n {run.executionTimeMs}ms\n </div>\n </div>\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n}\n\nfunction PoliciesView() {\n const { data, isLoading } = usePolicies();\n\n if (isLoading) {\n return <div className=\"text-dark-muted\">Loading policies...</div>;\n }\n\n if (!data || data.policies.length === 0) {\n return (\n <div className=\"card\">\n <div className=\"text-dark-muted\">No policies found.</div>\n </div>\n );\n }\n\n return (\n <div className=\"space-y-4\">\n <div className=\"text-lg font-medium\">Available Policies</div>\n \n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n {data.policies.map(policy => (\n <div key={policy.id} className=\"card\">\n <div className=\"flex items-start justify-between mb-2\">\n <div className=\"font-medium\">{policy.name}</div>\n <span className=\"px-2 py-0.5 rounded text-xs bg-dark-bg text-dark-muted\">\n v{policy.version}\n </span>\n </div>\n <div className=\"text-sm text-dark-muted mb-3\">{policy.description}</div>\n <div className=\"text-xs font-mono text-cyan-400\">ID: {policy.id}</div>\n </div>\n ))}\n </div>\n\n <div className=\"card\">\n <div className=\"text-sm text-dark-muted mb-2\">Create Custom Policy</div>\n <div className=\"text-sm\">\n Create a <code className=\"bg-dark-bg px-1 rounded\">.drift/quality-gates/policies/custom/</code> directory\n and add JSON policy files.\n </div>\n </div>\n </div>\n );\n}\n\n// ============================================================================\n// Main Component\n// ============================================================================\n\nexport function QualityGatesTab(): React.ReactElement {\n const [viewMode, setViewMode] = useState<ViewMode>('overview');\n const { data: latestRun, isLoading, error } = useLatestRun();\n const runGates = useRunGates();\n\n const handleRun = async (options: { policy?: string }) => {\n try {\n await runGates.mutateAsync(options);\n setViewMode('overview');\n } catch (err) {\n console.error('Failed to run gates:', err);\n }\n };\n\n if (isLoading) {\n return (\n <div className=\"flex items-center justify-center h-64\">\n <div className=\"text-dark-muted\">Loading quality gates...</div>\n </div>\n );\n }\n\n return (\n <div className=\"space-y-6\">\n {/* View mode tabs */}\n <div className=\"flex gap-2\">\n <button\n onClick={() => setViewMode('overview')}\n className={`px-3 py-1.5 rounded text-sm ${viewMode === 'overview' ? 'bg-accent-primary text-white' : 'bg-dark-bg text-dark-muted hover:text-white'}`}\n >\n Latest Run\n </button>\n <button\n onClick={() => setViewMode('run')}\n className={`px-3 py-1.5 rounded text-sm ${viewMode === 'run' ? 'bg-accent-primary text-white' : 'bg-dark-bg text-dark-muted hover:text-white'}`}\n >\n Run Gates\n </button>\n <button\n onClick={() => setViewMode('history')}\n className={`px-3 py-1.5 rounded text-sm ${viewMode === 'history' ? 'bg-accent-primary text-white' : 'bg-dark-bg text-dark-muted hover:text-white'}`}\n >\n History\n </button>\n <button\n onClick={() => setViewMode('policies')}\n className={`px-3 py-1.5 rounded text-sm ${viewMode === 'policies' ? 'bg-accent-primary text-white' : 'bg-dark-bg text-dark-muted hover:text-white'}`}\n >\n Policies\n </button>\n </div>\n\n {/* Running indicator */}\n {runGates.isPending && (\n <div className=\"card bg-blue-500/10 border-blue-500/30\">\n <div className=\"flex items-center gap-3\">\n <div className=\"animate-spin\">⏳</div>\n <div>Running quality gates...</div>\n </div>\n </div>\n )}\n\n {/* Error display */}\n {runGates.isError && (\n <div className=\"card bg-red-500/10 border-red-500/30\">\n <div className=\"text-red-400\">\n Failed to run gates: {(runGates.error as Error).message}\n </div>\n </div>\n )}\n\n {/* Overview mode */}\n {viewMode === 'overview' && (\n latestRun ? (\n <OverviewView result={latestRun} />\n ) : (\n <div className=\"card\">\n <div className=\"text-center py-8\">\n <div className=\"text-4xl mb-4\">🚦</div>\n <div className=\"text-lg font-medium mb-2\">No Quality Gate Runs Yet</div>\n <div className=\"text-dark-muted mb-4\">\n Run quality gates to check your code against established patterns.\n </div>\n <button\n onClick={() => setViewMode('run')}\n className=\"bg-accent-primary hover:bg-accent-primary/80 text-white rounded px-4 py-2 font-medium transition-colors\"\n >\n Run Quality Gates\n </button>\n </div>\n </div>\n )\n )}\n\n {/* Run mode */}\n {viewMode === 'run' && <RunView onRun={handleRun} />}\n\n {/* History mode */}\n {viewMode === 'history' && <HistoryView />}\n\n {/* Policies mode */}\n {viewMode === 'policies' && <PoliciesView />}\n </div>\n );\n}\n","/**\n * Error Boundary Component\n *\n * Catches React errors and displays a fallback UI.\n */\n\nimport React, { Component, type ReactNode } from 'react';\n\ninterface Props {\n children: ReactNode;\n fallback?: ReactNode;\n}\n\ninterface State {\n hasError: boolean;\n error: Error | null;\n}\n\nexport class ErrorBoundary extends Component<Props, State> {\n constructor(props: Props) {\n super(props);\n this.state = { hasError: false, error: null };\n }\n\n static getDerivedStateFromError(error: Error): State {\n return { hasError: true, error };\n }\n\n componentDidCatch(error: Error, errorInfo: React.ErrorInfo): void {\n console.error('Dashboard error:', error, errorInfo);\n }\n\n render(): ReactNode {\n if (this.state.hasError) {\n if (this.props.fallback) {\n return this.props.fallback;\n }\n\n return (\n <div className=\"min-h-screen bg-dark-bg text-dark-text flex items-center justify-center p-6\">\n <div className=\"card max-w-md text-center\">\n <div className=\"text-4xl mb-4\">⚠️</div>\n <h2 className=\"text-xl font-semibold mb-2\">Something went wrong</h2>\n <p className=\"text-dark-muted mb-4\">\n The dashboard encountered an error. Try refreshing the page.\n </p>\n {this.state.error && (\n <pre className=\"text-xs text-left bg-dark-bg p-3 rounded overflow-auto max-h-32 text-severity-error\">\n {this.state.error.message}\n </pre>\n )}\n <button\n onClick={() => window.location.reload()}\n className=\"btn btn-primary mt-4\"\n >\n Refresh Page\n </button>\n </div>\n </div>\n );\n }\n\n return this.props.children;\n }\n}\n","/**\n * App Component\n *\n * Main application shell with header, tab navigation, and content area.\n */\n\nimport React, { Suspense, lazy } from 'react';\nimport { useDashboardStore } from './store';\nimport { useWebSocket } from './hooks';\nimport { OverviewTab, PatternsTab, ViolationsTab, FilesTab, SettingsTab, ContractsTab, QualityGatesTab } from './components';\nimport type { TabId, ConnectionStatus } from './types';\n\n// Lazy load Galaxy tab since it includes heavy Three.js dependencies\nconst GalaxyTab = lazy(() => import('./components/GalaxyTab').then(m => ({ default: m.GalaxyTab })));\n\nconst TABS: { id: TabId; label: string }[] = [\n { id: 'overview', label: 'Overview' },\n { id: 'patterns', label: 'Patterns' },\n { id: 'contracts', label: 'Contracts' },\n { id: 'violations', label: 'Violations' },\n { id: 'files', label: 'Files' },\n { id: 'quality-gates', label: '🚦 Quality Gates' },\n { id: 'galaxy', label: '🌌 Galaxy' },\n { id: 'settings', label: 'Settings' },\n];\n\nfunction ConnectionIndicator({ status }: { status: ConnectionStatus }) {\n const config = {\n connected: { color: 'bg-status-approved', label: 'Connected' },\n connecting: { color: 'bg-severity-warning', label: 'Connecting...' },\n disconnected: { color: 'bg-dark-muted', label: 'Disconnected' },\n }[status];\n\n return (\n <div className=\"flex items-center gap-2\">\n <span className={`h-2 w-2 rounded-full ${config.color}`} />\n <span className=\"text-sm text-dark-muted\">{config.label}</span>\n </div>\n );\n}\n\nfunction GalaxyLoadingFallback() {\n return (\n <div className=\"flex flex-col items-center justify-center h-[calc(100vh-200px)] bg-slate-950 rounded-lg\">\n <div className=\"text-6xl mb-4 animate-pulse\">🌌</div>\n <p className=\"text-slate-400\">Loading Galaxy...</p>\n </div>\n );\n}\n\nfunction TabContent({ tab }: { tab: TabId }) {\n switch (tab) {\n case 'overview':\n return <OverviewTab />;\n case 'patterns':\n return <PatternsTab />;\n case 'contracts':\n return <ContractsTab />;\n case 'violations':\n return <ViolationsTab />;\n case 'files':\n return <FilesTab />;\n case 'quality-gates':\n return <QualityGatesTab />;\n case 'galaxy':\n return (\n <Suspense fallback={<GalaxyLoadingFallback />}>\n <GalaxyTab />\n </Suspense>\n );\n case 'settings':\n return <SettingsTab />;\n default:\n return null;\n }\n}\n\n/**\n * Main application component\n */\nexport function App(): React.ReactElement {\n const { connectionStatus, activeTab, setActiveTab } = useDashboardStore();\n \n // Initialize WebSocket connection\n useWebSocket();\n\n return (\n <div className=\"min-h-screen bg-dark-bg text-dark-text\">\n {/* Header */}\n <header className=\"border-b border-dark-border bg-dark-surface px-6 py-4\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-3\">\n <h1 className=\"text-xl font-semibold\">Drift Dashboard</h1>\n </div>\n <ConnectionIndicator status={connectionStatus} />\n </div>\n </header>\n\n {/* Tab Bar */}\n <nav className=\"border-b border-dark-border bg-dark-surface\">\n <div className=\"flex gap-1 px-6\">\n {TABS.map((tab) => (\n <button\n key={tab.id}\n onClick={() => setActiveTab(tab.id)}\n className={`px-4 py-3 text-sm font-medium transition-colors border-b-2 ${\n activeTab === tab.id\n ? 'text-dark-text border-blue-500'\n : 'text-dark-muted hover:text-dark-text border-transparent hover:border-dark-border'\n }`}\n >\n {tab.label}\n </button>\n ))}\n </div>\n </nav>\n\n {/* Content */}\n <main className=\"p-6\">\n <TabContent tab={activeTab} />\n </main>\n </div>\n );\n}\n","/**\n * Drift Dashboard Client Entry Point\n *\n * Initializes the React application with providers for\n * React Query and the Zustand store.\n */\n\nimport React from 'react';\nimport ReactDOM from 'react-dom/client';\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\nimport { App } from './App';\nimport { ErrorBoundary } from './components';\nimport './styles/index.css';\n\n// Create React Query client\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n staleTime: 30_000, // 30 seconds\n retry: 1,\n },\n },\n});\n\n// Get root element\nconst rootElement = document.getElementById('root');\nif (!rootElement) {\n throw new Error('Root element not found');\n}\n\n// Render application\nReactDOM.createRoot(rootElement).render(\n <React.StrictMode>\n <ErrorBoundary>\n <QueryClientProvider client={queryClient}>\n <App />\n </QueryClientProvider>\n </ErrorBoundary>\n </React.StrictMode>\n);\n"],"file":"assets/main-QuEZvA3i.js"}