drizzle-cube
Version:
Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.
47 lines (46 loc) • 5.79 kB
TypeScript
export { default as AnalyticsPortlet } from './components/AnalyticsPortlet';
export { default as AnalyticsDashboard } from './components/AnalyticsDashboard';
export { default as LoadingIndicator } from './components/LoadingIndicator';
export type { LoadingIndicatorProps } from './components/LoadingIndicator';
export { LazyChart, preloadChart, preloadCharts, isValidChartType, getAvailableChartTypes } from './charts/ChartLoader';
export type { LazyChartProps } from './charts/ChartLoader';
export { default as DashboardGrid } from './components/DashboardGrid';
export { default as PortletContainer } from './components/PortletContainer';
export { default as PortletAnalysisModal } from './components/PortletAnalysisModal';
export { default as DashboardEditModal } from './components/DashboardEditModal';
export { default as Modal } from './components/Modal';
export { default as ConfirmModal } from './components/ConfirmModal';
export { default as QueryBuilder } from './components/QueryBuilderShim';
export { default as AnalysisBuilder } from './components/AnalysisBuilder';
export { CubeProvider, useCubeContext, useCubeApi, // Only re-renders on API/auth changes
useCubeMeta, // Only re-renders on metadata changes
useCubeFeatures } from './providers/CubeProvider';
export { ScrollContainerProvider, useScrollContainer } from './providers/ScrollContainerContext';
export { useCubeFieldLabel } from './hooks/useCubeFieldLabel';
export { createCubeClient } from './client/CubeClient';
export { useCubeMetaQuery, useCubeLoadQuery, useCubeQuery, useMultiCubeLoadQuery, useDryRunQuery, useMultiDryRunQueries, useDryRunQueries, useFunnelQuery, createFunnelQueryKey, useFlowQuery, createFlowQueryKey, } from './hooks/queries';
export type { UseCubeMetaQueryOptions, UseCubeMetaQueryResult, UseCubeLoadQueryOptions, UseCubeLoadQueryResult, UseMultiCubeLoadQueryOptions, UseMultiCubeLoadQueryResult, DebugDataEntry, UseFlowQueryOptions, UseFlowQueryResult, } from './hooks/queries';
export { useAnalysisBuilder } from './hooks/useAnalysisBuilderHook';
export type { UseAnalysisBuilderOptions, UseAnalysisBuilderResult, } from './hooks/useAnalysisBuilderHook';
export { useDashboard } from './hooks/useDashboardHook';
export type { UseDashboardOptions, UseDashboardResult, UseDashboardActions, } from './hooks/useDashboardHook';
export { useAnalysisBuilderStore, selectCurrentState, selectMetrics, selectBreakdowns, selectFilters, selectChartConfig, selectUIState, selectMultiQueryState, selectFunnelState, } from './stores/analysisBuilderStore';
export type { AnalysisBuilderStore, AnalysisBuilderStoreState, AnalysisBuilderStoreActions, FieldModalMode, } from './stores/analysisBuilderStore';
export { DashboardStoreProvider, useDashboardStore, useDashboardStoreApi, useDashboardStoreOptional, createDashboardStore, selectEditModeState, selectModalState, selectLayoutState, selectDebugData, selectPortletDebugData, selectEditModeActions, selectModalActions, selectLayoutActions, selectDebugDataActions, selectAllActions, } from './stores/dashboardStore';
export type { DashboardStore, DashboardStoreState, DashboardStoreActions, PortletDebugDataEntry, DragState, CreateDashboardStoreOptions, DashboardStoreProviderProps, } from './stores/dashboardStore';
export { validateMultiQueryConfig, validateTimeDimensionAlignment, validateMergeKeys, detectMeasureCollisions, detectAsymmetricDateRanges, isMultiQueryValid, getValidationSummary } from './utils/multiQueryValidation';
export type { MultiQueryValidationError, MultiQueryValidationWarning, MultiQueryValidationResult } from './utils/multiQueryValidation';
export { useTheme } from './hooks/useTheme';
export { useScrollDetection } from './hooks/useScrollDetection';
export { useElementVisibility } from './hooks/useElementVisibility';
export type { PortletConfig, ChartType, ChartAxisConfig, ChartDisplayConfig, CubeQuery, CubeQueryOptions, CubeApiOptions, DashboardConfig, MultiQueryConfig, QueryMergeStrategy, FunnelBindingKey, FunnelBindingKeyMapping, FunnelStep, FunnelConfig, FunnelStepResult, FunnelExecutionResult, FunnelChartData, FunnelValidationError, FunnelValidationResult, UseFunnelQueryOptions, UseFunnelQueryResult, ServerFlowQuery, FlowQueryConfig, FlowChartData, FlowSliceState, SankeyNode, SankeyLink, FlowStartingStep, FlowResultRow, } from './types';
export { isMultiQueryConfig, isServerFunnelQuery, isServerFlowQuery, isSankeyData } from './types';
export type { ChartTypeConfig, DisplayOptionConfig, AxisDropZoneConfig } from './charts/chartConfigs';
export { createDashboardLayout, formatChartData, highlightCodeBlocks } from './utils/index';
export { isMultiQueryData, mergeQueryResults, mergeResultsConcat, mergeResultsByKey, getCombinedFields, getQueryLabels, getQueryIndices, generateQueryLabel, validateMergeKey } from './utils/multiQueryUtils';
export { validateFunnelConfig, validateBindingKeyExists, validateStepQueries, validateBindingKeyForSteps, isMinimumFunnelConfigValid, getAvailableBindingKeyDimensions, getBindingKeyLabel, } from './utils/funnelValidation';
export { getBindingKeyField, getCubeNameFromQuery, formatDuration, transformServerFunnelResult, buildServerFunnelQuery, isFunnelData, buildFunnelConfigFromQueries, } from './utils/funnelExecution';
export { getThemeVariable, setThemeVariable, applyTheme, resetTheme, getTheme, setTheme, isDarkMode, watchThemeChanges, THEME_PRESETS } from './theme';
export type { ThemeColorTokens, ThemeConfig, Theme } from './theme';
export { getIcon, getIconData, setIcon, registerIcons, resetIcons, getIconRegistry, getIconsByCategory, getMeasureTypeIcon, getChartTypeIcon, getFieldTypeIcon, DEFAULT_ICONS } from './icons';
export type { IconCategory, IconProps, IconComponent, IconDefinition, IconRegistry, IconName, PartialIconRegistry } from './icons';