@vertisanpro/flowbite-react
Version:
Non-Official React components built for Flowbite and Tailwind CSS
17 lines (16 loc) • 1.18 kB
JavaScript
'use client';
import { twMerge } from '@vertisanpro/tailwind-merge';
import React from 'react';
import { mergeDeep } from '../../helpers/merge-deep';
import { useTimelineContext } from './TimelineContext';
import { useTimelineItemContext } from './TimelineItemContext';
export const TimelinePoint = ({ children, className, icon: Icon, theme: customTheme = {}, ...props }) => {
const { horizontal } = useTimelineContext();
const { theme: itemTheme } = useTimelineItemContext();
const theme = mergeDeep(itemTheme.point, customTheme);
return (React.createElement("div", { "data-testid": "timeline-point", className: twMerge(horizontal && theme.horizontal, !horizontal && theme.vertical, className), ...props },
children,
Icon ? (React.createElement("span", { className: twMerge(theme.marker.icon.wrapper) },
React.createElement(Icon, { "aria-hidden": true, className: twMerge(theme.marker.icon.base) }))) : (React.createElement("div", { className: twMerge(horizontal && theme.marker.base.horizontal, !horizontal && theme.marker.base.vertical) })),
horizontal && React.createElement("div", { className: twMerge(theme.line) })));
};