'use client'; /** * CronScheduler * * Compact cron expression builder following Apple HIG principles. * Lazy-loaded for optimal bundle size (~15KB). * * @example * import { CronScheduler } from '@djangocfg/ui-tools/cron-scheduler'; * * */ import React, { lazy, Suspense } from 'react'; import { LoadingFallback } from '../../../common'; import type { CronSchedulerProps } from './types'; // Lazy load the client component const CronSchedulerClient = lazy(() => import('./CronScheduler.client')); /** * CronScheduler with Suspense wrapper */ export function CronScheduler(props: CronSchedulerProps) { return ( }> ); } /** * Loading fallback for CronScheduler */ function CronSchedulerFallback() { return ( ); } // Re-export types export type { CronSchedulerProps, CronSchedulerSize, ScheduleType, WeekDay, MonthDay, CronSchedulerState, CronSchedulerContextValue, } from './types'; // Re-export context and hooks for advanced usage export { CronSchedulerProvider, useCronSchedulerContext, useCronType, useCronTime, useCronWeekDays, useCronMonthDays, useCronCustom, useCronPreview, useCronSize, useCronScheduler, } from './context'; // Re-export utilities export { buildCron, parseCron, isValidCron, humanizeCron, getNextRuns, formatNextRun, } from './utils'; // Re-export components for custom compositions export { ScheduleTypeSelector, TimeSelector, DayChips, MonthDayGrid, CustomInput, SchedulePreview, CronPreview, } from './components'; export type { CronPreviewProps } from './components'; export default CronScheduler;