drizzle-cube
Version:
Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.
38 lines (37 loc) • 3.41 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 PortletEditModal } from './components/PortletEditModal';
export { default as PortletAnalysisModal } from './components/PortletAnalysisModal';
export { default as DashboardEditModal } from './components/DashboardEditModal';
export { default as Modal } from './components/Modal';
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 { useCubeQuery } from './hooks/useCubeQuery';
export { useMultiCubeQuery } from './hooks/useMultiCubeQuery';
export type { UseMultiCubeQueryResult } from './hooks/useMultiCubeQuery';
export { useCubeFieldLabel } from './hooks/useCubeFieldLabel';
export { createCubeClient } from './client/CubeClient';
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 } from './types';
export { isMultiQueryConfig } 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 { 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';