@@ -82,6 +82,9 @@ export const ObjectTimeline: React.FC<ObjectTimelineProps> = ({
8282 const [ error , setError ] = useState < Error | null > ( null ) ;
8383 const [ refreshKey , setRefreshKey ] = useState ( 0 ) ;
8484
85+ // Resolve nested TimelineConfig (spec-compliant)
86+ const timelineConfig = schema . timeline ;
87+
8588 useEffect ( ( ) => {
8689 const result = TimelineExtensionSchema . safeParse ( schema ) ;
8790 if ( ! result . success ) {
@@ -129,15 +132,14 @@ export const ObjectTimeline: React.FC<ObjectTimelineProps> = ({
129132
130133 if ( ! effectiveItems && rawData && Array . isArray ( rawData ) ) {
131134 // Resolve TimelineConfig with backwards-compatible fallbacks
132- const tl = ( schema as any ) . timeline as TimelineConfig | undefined ;
133- const titleField = tl ?. titleField ?? schema . mapping ?. title ?? schema . titleField ?? 'name' ;
135+ const titleField = timelineConfig ?. titleField ?? schema . mapping ?. title ?? schema . titleField ?? 'name' ;
134136 // Spec-compliant: prefer timeline.startDateField, fallback to flat props
135- const startDateField = tl ?. startDateField ?? schema . mapping ?. date ?? schema . startDateField ?? schema . dateField ?? 'date' ;
136- const endDateField = tl ?. endDateField ?? schema . endDateField ?? startDateField ;
137+ const startDateField = timelineConfig ?. startDateField ?? schema . mapping ?. date ?? schema . startDateField ?? schema . dateField ?? 'date' ;
138+ const endDateField = timelineConfig ?. endDateField ?? schema . endDateField ?? startDateField ;
137139 const descField = schema . mapping ?. description ?? schema . descriptionField ?? 'description' ;
138140 const variantField = schema . mapping ?. variant ?? 'variant' ;
139- const groupByField = tl ?. groupByField ?? schema . groupByField ;
140- const colorField = tl ?. colorField ?? schema . colorField ;
141+ const groupByField = timelineConfig ?. groupByField ?? schema . groupByField ;
142+ const colorField = timelineConfig ?. colorField ?? schema . colorField ;
141143
142144 effectiveItems = rawData . map ( item => ( {
143145 title : item [ titleField ] ,
@@ -171,8 +173,7 @@ export const ObjectTimeline: React.FC<ObjectTimelineProps> = ({
171173 } ) ;
172174
173175 // Resolve scale: spec timeline.scale takes priority over flat schema.scale
174- const tl = ( schema as any ) . timeline as TimelineConfig | undefined ;
175- const resolvedScale = tl ?. scale ?? schema . scale ;
176+ const resolvedScale = timelineConfig ?. scale ?? schema . scale ;
176177
177178 const effectiveSchema = {
178179 ...schema ,
0 commit comments