← All proposals

Milestone

Net-new, in two parts, in their own family so "timeline" keeps one meaning (the log).

Net-new componentOpen in Storybook

proposals/Milestone/milestone-list-context.ts24 lines · View on GitHub
import { createContext } from 'react';

import type { MilestoneVariant } from './Milestone';
import type { MilestoneListSubtitlePosition } from './MilestoneList';

export interface MilestoneListContextValue {
	/**
	 * Where each milestone's subtitle goes, set by the list.
	 */
	subtitlePosition?: MilestoneListSubtitlePosition;
	/**
	 * whether milestones are on a card (`card`) or flat.
	 */
	variant?: MilestoneVariant;
}

/**
 * What a `MilestoneList` passes down to its `Milestone`s, which can
 * override the variant.
 */
export const MilestoneListContext = createContext<MilestoneListContextValue>(
	{},
);