@trsys-tech/matrix-library 1.1.3 → 1.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/timeline/Timeline.d.ts +48 -7
- package/dist/components/timeline/Timeline.d.ts.map +1 -1
- package/dist/ganttchart.es.js +2 -2
- package/dist/ganttchart.es.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/tabs.es.js +15 -15
- package/dist/tabs.es.js.map +1 -1
- package/dist/timeline.es.js +307 -161
- package/dist/timeline.es.js.map +1 -1
- package/package.json +1 -1
package/dist/timeline.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeline.es.js","sources":["../src/components/timeline/Timeline.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\nimport { cn } from \"../../lib/utils\";\n\nexport type TimelineStatus = \"pending\" | \"active\" | \"completed\" | \"error\";\n\nexport interface TimelineItem {\n id: string;\n label: React.ReactNode;\n superTitle?: React.ReactNode;\n superSubtitle?: React.ReactNode;\n subData?: React.ReactNode;\n /** Arbitrary content shown on the bottom row. */\n footer?: React.ReactNode;\n status?: TimelineStatus;\n /** Override the marker color (any CSS color). */\n color?: string;\n /** Override the incoming connector; false leaves it inactive. */\n connectorColor?: string | false;\n /** Localized status announcement, independent of the visible label. */\n statusLabel?: string;\n}\n\nexport interface TimelineBranch extends TimelineItem {\n /** ID of the main step from which this branch diverges. */\n from: string;\n /** Branch paths are explicitly controlled, independently of main steps. */\n active?: boolean;\n /** Used for the activated branch path and endpoint. */\n activeColor?: string;\n}\n\nexport interface TimelineProps extends Omit<React.HTMLAttributes<HTMLDivElement>, \"children\" | \"title\"> {\n items: readonly TimelineItem[];\n branches?: readonly TimelineBranch[];\n title?: React.ReactNode;\n activeColor?: string;\n completedColor?: string;\n errorColor?: string;\n inactiveColor?: string;\n /** Minimum column width in pixels; narrower containers scroll horizontally. */\n minItemWidth?: number;\n}\n\nfunction Marker({ item, color }: { item: TimelineItem; color?: string }) {\n const status = item.status ?? \"pending\";\n return (\n <span className=\"mtx-block mtx-size-5\" data-status={status} style={{ color }}>\n <svg\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n focusable=\"false\"\n className=\"mtx-block mtx-size-full mtx-fill-none mtx-stroke-current mtx-stroke-[1.25] mtx-stroke-linecap-round mtx-stroke-linejoin-round\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10.5\" className=\"mtx-fill-background\" />\n {status === \"completed\" && <path d=\"m7 12 3 3 7-7\" />}\n {status === \"error\" && <path d=\"m8 8 8 8m0-8-8 8\" />}\n {status === \"active\" && <circle cx=\"12\" cy=\"12\" r=\"6\" fill=\"currentColor\" stroke=\"none\" />}\n </svg>\n <span className=\"mtx-sr-only\">{item.statusLabel ?? status}</span>\n </span>\n );\n}\n\nconst Timeline = React.forwardRef<HTMLDivElement, TimelineProps>(\n ({ items, branches = [], title, activeColor, completedColor, errorColor, inactiveColor, minItemWidth = 112, className, style, ...props }, ref) => {\n const titleId = React.useId();\n // Invalid origins and branches from the final step have no horizontal span.\n const visibleBranches = branches.flatMap(branch => {\n const index = items.findIndex(item => item.id === branch.from);\n return index >= 0 && index < items.length - 1 ? [{ branch, index }] : [];\n });\n const superRow = visibleBranches.length * 2 + 1;\n const markerRow = superRow + 1;\n const colorFor = (item: TimelineItem) => item.color ?? `var(--timeline-${item.status ?? \"pending\"})`;\n const variables = {\n \"--timeline-active\": activeColor ?? \"oklch(var(--mtx-primary))\",\n \"--timeline-completed\": completedColor ?? \"oklch(var(--mtx-success))\",\n \"--timeline-error\": errorColor ?? \"oklch(var(--mtx-danger))\",\n \"--timeline-pending\": inactiveColor ?? \"oklch(var(--mtx-gray-400))\",\n ...style,\n } as React.CSSProperties;\n\n return (\n <div {...props} ref={ref} className={cn(\"mtx-text-foreground mtx-text-xs\", className)} style={variables}>\n {title != null && (\n <div id={titleId} className=\"mtx-mb-4 mtx-text-sm mtx-font-bold\">\n {title}\n </div>\n )}\n <div\n className=\"mtx-overflow-x-auto mtx-p-0.5 focus-visible:mtx-outline-2 focus-visible:mtx-outline-offset-2 focus-visible:mtx-outline-[var(--timeline-active)]\"\n role=\"region\"\n aria-label=\"Timeline\"\n tabIndex={0}\n >\n <ol\n className=\"mtx-m-0 mtx-grid mtx-list-none mtx-isolate mtx-p-0\"\n aria-labelledby={title != null ? titleId : undefined}\n aria-label={title == null ? \"Timeline steps\" : undefined}\n style={{\n gridTemplateColumns: `repeat(${Math.max(1, items.length)}, minmax(0, 1fr))`,\n gridTemplateRows: `${\"auto 24px \".repeat(visibleBranches.length)}auto 24px auto auto`,\n minWidth: items.length * (Number.isFinite(minItemWidth) ? Math.max(48, minItemWidth) : 112),\n }}\n >\n {items.map((item, index) => {\n const previous = items[index - 1];\n const incoming =\n item.connectorColor === false\n ? undefined\n : (item.connectorColor ??\n (previous?.status === \"completed\" && item.status !== \"pending\" && item.status !== undefined ? colorFor(previous) : undefined));\n return (\n <li\n key={item.id}\n className=\"mtx-relative mtx-grid mtx-min-w-0 mtx-row-span-full mtx-grid-rows-[subgrid] \"\n style={{ gridColumn: index + 1 }}\n aria-current={item.status === \"active\" ? \"step\" : undefined}\n >\n <div\n className=\"mtx-min-h-8 mtx-break-words mtx-self-end mtx-pb-2 mtx-pr-3 mtx-text-ss mtx-leading-3 mtx-text-muted-foreground empty:mtx-p-0\"\n style={{ gridRow: superRow }}\n >\n {item.superTitle != null && <div>{item.superTitle}</div>}\n {item.superSubtitle != null && <div className=\"mtx-font-semibold\">{item.superSubtitle}</div>}\n </div>\n {index > 0 && (\n <span\n aria-hidden=\"true\"\n className=\"mtx-absolute mtx-top-2.5 mtx-left-[calc(-100%+12px)] mtx-z-10 mtx-h-0.5 mtx-w-full mtx-bg-[var(--timeline-pending)]\"\n style={{ gridRow: markerRow, backgroundColor: incoming }}\n />\n )}\n <div className=\"mtx-z-20 mtx-size-5\" style={{ gridRow: markerRow }}>\n <Marker item={item} color={colorFor(item)} />\n </div>\n <div className=\"mtx-break-words mtx-pt-2.5 mtx-pr-3 mtx-leading-[1.4]\" style={{ gridRow: markerRow + 1 }}>\n <div className={cn(\"mtx-font-medium\", (item.status ?? \"pending\") === \"pending\" && \"mtx-text-text-400\")}>{item.label}</div>\n {item.subData != null && <div className=\"mtx-mt-0.5 mtx-text-ss\">{item.subData}</div>}\n </div>\n <div\n className=\"mtx-break-words mtx-pr-3 mtx-pt-5 mtx-text-ss mtx-font-medium mtx-text-muted-foreground empty:mtx-p-0\"\n style={{ gridRow: markerRow + 2 }}\n >\n {item.footer}\n </div>\n </li>\n );\n })}\n {visibleBranches.map(({ branch, index }, lane) => {\n const branchColor = branch.active\n ? (branch.activeColor ?? branch.color ?? errorColor ?? \"var(--timeline-error)\")\n : \"var(--timeline-pending)\";\n return (\n <li\n key={`branch-${branch.id}`}\n className={cn(\n \"mtx-pointer-events-none mtx-grid mtx-min-w-0 mtx-row-span-full mtx-grid-cols-[subgrid] mtx-grid-rows-[subgrid]\",\n branch.active && \"mtx-z-10\",\n )}\n data-active={branch.active || undefined}\n style={{ gridColumn: `${index + 1} / -1` }}\n aria-current={branch.status === \"active\" ? \"step\" : undefined}\n >\n <span className=\"mtx-sr-only\">Branch from {items[index].label}: </span>\n <div\n className=\"mtx-pointer-events-auto mtx-col-[-2_/_-1] mtx-self-end mtx-break-words mtx-pb-2\"\n style={{ gridRow: lane * 2 + 1, color: branch.active ? branchColor : undefined }}\n >\n {branch.superTitle != null && <div className=\"mtx-break-words mtx-text-ss mtx-text-muted-foreground\">{branch.superTitle}</div>}\n {branch.superSubtitle != null && (\n <div className=\"mtx-break-words mtx-pb-2 mtx-pr-3 mtx-text-ss mtx-font-semibold mtx-text-muted-foreground\">\n {branch.superSubtitle}\n </div>\n )}\n <div className={cn(\"mtx-font-medium\", (branch.status ?? \"pending\") === \"pending\" && \"mtx-text-text-400\")}>{branch.label}</div>\n {branch.subData != null && <div className=\"mtx-mt-0.5 mtx-text-ss\">{branch.subData}</div>}\n {branch.footer != null && (\n <div className=\"mtx-break-words mtx-pr-3 mtx-pt-1 mtx-text-ss mtx-font-bold mtx-text-muted-foreground\">{branch.footer}</div>\n )}\n </div>\n <div\n className=\"mtx-relative mtx-col-[1_/_-1] mtx-mb-[13px] mtx-ml-3 mtx-mt-[11px] mtx-overflow-visible mtx-fill-none mtx-stroke-2 mtx-stroke-current mtx-z-[-1]\"\n aria-hidden=\"true\"\n style={{\n gridRow: `${lane * 2 + 2} / ${markerRow + 1}`,\n width: `calc(100% - 100% / ${items.length - index})`,\n color: branchColor,\n }}\n >\n <svg\n focusable=\"false\"\n viewBox=\"0 0 100 100\"\n preserveAspectRatio=\"none\"\n className=\"mtx-absolute mtx-size-full mtx-overflow-visible\"\n >\n <path\n d={`M0 100 H${45 / (items.length - index - 1)} L${80 / (items.length - index - 1)} 0 H100`}\n vectorEffect=\"non-scaling-stroke\"\n />\n </svg>\n </div>\n <div className=\"mtx-col-[-2_/_-1] mtx-z-[2] mtx-size-5\" style={{ gridRow: lane * 2 + 2 }}>\n <Marker item={branch} color={branchColor} />\n </div>\n </li>\n );\n })}\n </ol>\n </div>\n </div>\n );\n },\n);\nTimeline.displayName = \"Timeline\";\n\nexport { Timeline };\n"],"names":["Marker","item","color","status","jsxs","jsx","Timeline","React","items","branches","title","activeColor","completedColor","errorColor","inactiveColor","minItemWidth","className","style","props","ref","titleId","visibleBranches","branch","index","superRow","markerRow","colorFor","variables","cn","previous","incoming","lane","branchColor"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"timeline.es.js","sources":["../src/components/timeline/Timeline.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { useMemo } from \"react\";\nimport { cn } from \"../../lib/utils\";\nimport { Skeleton } from \"../skeleton/Skeleton\";\n\nexport type TimelineStatus = \"pending\" | \"active\" | \"completed\" | \"error\";\n\n/** Describes one step in the timeline's primary path. */\nexport type TimelineItem = {\n /** Stable identifier for the step; branch origins reference this value. */\n id: string;\n /** Primary content displayed beside the step marker. */\n label: React.ReactNode;\n /** Optional content displayed above the step marker. */\n superTitle?: React.ReactNode;\n /** Optional secondary content displayed below the super title. */\n superSubtitle?: React.ReactNode;\n /** Optional supporting content displayed below the label. */\n subData?: React.ReactNode;\n /** Arbitrary content shown on the bottom row. */\n footer?: React.ReactNode;\n /** Lifecycle state used to determine the marker and connector appearance. */\n status?: TimelineStatus;\n /** Override the marker color (any CSS color). */\n color?: string;\n /** Override the incoming connector; false leaves it inactive. */\n connectorColor?: string | false;\n /** Localized status announcement, independent of the visible label. */\n statusLabel?: string;\n};\n\n/** Describes a secondary path that diverges from a primary timeline step. */\nexport type TimelineBranch = TimelineItem & {\n /** ID of the main step from which this branch diverges. */\n from: string;\n /** Branch paths are explicitly controlled, independently of main steps. */\n active?: boolean;\n /** Used for the activated branch path and endpoint. */\n activeColor?: string;\n};\n\n/** Configuration and content props for the Timeline component. */\nexport type TimelineProps = Omit<React.HTMLAttributes<HTMLDivElement>, \"children\" | \"title\"> & {\n /** Ordered steps in the timeline's primary path. */\n items: readonly TimelineItem[];\n /** Optional secondary paths that diverge from the primary path. */\n branches?: readonly TimelineBranch[];\n /** Optional heading rendered above the timeline. */\n title?: React.ReactNode;\n /** Shows a structure-preserving skeleton while timeline data is loading. */\n loading?: boolean;\n /** Visual scale of the timeline. */\n size?: \"sm\" | \"md\" | \"lg\";\n /** Color used for active markers and connectors. */\n activeColor?: string;\n /** Color used for completed markers and connectors. */\n completedColor?: string;\n /** Color used for error markers and active branches by default. */\n errorColor?: string;\n /** Color used for pending markers and inactive connectors. */\n inactiveColor?: string;\n /** Minimum column width in pixels; narrower containers scroll horizontally. */\n minItemWidth?: number;\n};\n\ntype TimelineSize = NonNullable<TimelineProps[\"size\"]>;\n\nconst Marker: React.FC<{ item: TimelineItem; color?: string; size: TimelineSize }> = ({ item, color, size }) => {\n const status = item.status ?? \"pending\";\n return (\n <span\n className=\"mtx-block mtx-size-5 data-[size=sm]:mtx-size-4 data-[size=lg]:mtx-size-6\"\n data-size={size}\n data-status={status}\n style={{ color }}\n >\n <svg\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n focusable=\"false\"\n className=\"mtx-block mtx-size-full mtx-fill-none mtx-stroke-current mtx-stroke-[1.25] mtx-stroke-linecap-round mtx-stroke-linejoin-round\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10.5\" className=\"mtx-fill-background\" />\n {status === \"completed\" && <path d=\"m7 12 3 3 7-7\" />}\n {status === \"error\" && <path d=\"m8 8 8 8m0-8-8 8\" />}\n {status === \"active\" && <circle cx=\"12\" cy=\"12\" r=\"6\" fill=\"currentColor\" stroke=\"none\" />}\n </svg>\n <span className=\"mtx-sr-only\">{item.statusLabel ?? status}</span>\n </span>\n );\n};\n\ntype VisibleTimelineBranch = { branch: TimelineBranch; index: number };\n\nconst TimelineSkeleton: React.FC<{\n items: readonly TimelineItem[];\n visibleBranches: readonly VisibleTimelineBranch[];\n superRow: number;\n markerRow: number;\n size: TimelineSize;\n}> = ({ items, visibleBranches, superRow, markerRow, size }) => {\n const pathStart = useMemo(() => {\n if (size === \"sm\") return \"M1\";\n if (size === \"lg\") return \"M3\";\n return \"M2\";\n }, [size]);\n\n return (\n <>\n {items.map((item, index) => (\n <li\n key={`skeleton-item-${item.id}`}\n className=\"mtx-relative mtx-grid mtx-min-w-0 mtx-row-span-full mtx-grid-rows-[subgrid]\"\n style={{ gridColumn: index + 1 }}\n aria-hidden=\"true\"\n data-slot=\"timeline-skeleton-item\"\n >\n <div className=\"mtx-min-h-8 mtx-self-end mtx-pb-2 mtx-pt-1 mtx-pr-3\" style={{ gridRow: superRow }}>\n <Skeleton aria-hidden=\"true\" className=\"mtx-h-3 mtx-w-14\" />\n <Skeleton aria-hidden=\"true\" className=\"mtx-h-2 mtx-w-16 mtx-mt-1\" />\n </div>\n {index > 0 && (\n <span\n className=\"mtx-absolute mtx-top-2.5 group-data-[size=sm]:mtx-top-2 group-data-[size=lg]:mtx-top-3 mtx-w-[calc(100%-20px)] mtx-left-[calc(-100%+20px)] group-data-[size=sm]:mtx-w-[calc(100%-16px)] group-data-[size=sm]:mtx-left-[calc(-100%+16px)] group-data-[size=lg]:mtx-w-[calc(100%-24px)] group-data-[size=lg]:mtx-left-[calc(-100%+24px)] mtx-z-10 mtx-h-0.5 mtx-bg-primary/10 mtx-animate-pulse\"\n style={{ gridRow: markerRow }}\n />\n )}\n <Skeleton\n className=\"mtx-z-20 mtx-rounded-full mtx-size-5 group-data-[size=sm]:mtx-size-4 group-data-[size=lg]:mtx-size-6\"\n style={{ gridRow: markerRow }}\n aria-hidden=\"true\"\n />\n <div className=\"mtx-pt-1 mtx-pr-3\" style={{ gridRow: markerRow + 1 }}>\n <Skeleton aria-hidden=\"true\" className=\"mtx-h-2 mtx-w-16\" />\n <Skeleton aria-hidden=\"true\" className=\"mtx-h-2 mtx-w-12 mtx-mt-1\" />\n </div>\n <div className=\"mtx-pr-3 mtx-pt-5\" style={{ gridRow: markerRow + 2 }}>\n <Skeleton aria-hidden=\"true\" className=\"mtx-h-2 mtx-w-16\" />\n </div>\n </li>\n ))}\n {visibleBranches.map(({ branch, index }, lane) => (\n <li\n key={`skeleton-branch-${branch.id}`}\n className=\"mtx-pointer-events-none mtx-grid mtx-min-w-0 mtx-row-span-full mtx-grid-cols-[subgrid] mtx-grid-rows-[subgrid]\"\n style={{ gridColumn: `${index + 1} / -1` }}\n aria-hidden=\"true\"\n data-slot=\"timeline-skeleton-branch\"\n >\n <div className=\"mtx-col-[-2_/_-1] mtx-self-end mtx-pb-2\" style={{ gridRow: lane * 2 + 1 }}>\n <Skeleton aria-hidden=\"true\" className=\"mtx-h-3 mtx-w-14\" />\n <Skeleton aria-hidden=\"true\" className=\"mtx-h-2 mtx-w-16 mtx-mt-1\" />\n <Skeleton aria-hidden=\"true\" className=\"mtx-h-2 mtx-w-16 mtx-mt-1\" />\n </div>\n <div\n className=\"mtx-relative mtx-col-[1_/_-1] mtx-mb-[9px] group-data-[size=sm]:mtx-mb-[7px] group-data-[size=lg]:mtx-mb-[11px] mtx-ml-3 mtx-mt-2.5 group-data-[size=sm]:mtx-mt-2 group-data-[size=lg]:mtx-mt-3 mtx-overflow-visible mtx-fill-none mtx-stroke-2 mtx-stroke-current mtx-z-[-1]\"\n style={{\n gridRow: `${lane * 2 + 2} / ${markerRow + 1}`,\n width: `calc(100% - 100% / ${items.length - index})`,\n color: \"oklch(var(--mtx-primary) / 0.1)\",\n }}\n >\n <svg focusable=\"false\" viewBox=\"0 0 100 100\" preserveAspectRatio=\"none\" className=\"mtx-absolute mtx-size-full mtx-overflow-visible\">\n <path\n d={`${pathStart} 100 H${45 / (items.length - index - 1)} L${80 / (items.length - index - 1)} 0 H97`}\n vectorEffect=\"non-scaling-stroke\"\n />\n </svg>\n </div>\n <Skeleton\n className=\"mtx-col-[-2_/_-1] mtx-z-[2] mtx-rounded-full mtx-size-5 group-data-[size=sm]:mtx-size-4 group-data-[size=lg]:mtx-size-6\"\n style={{ gridRow: lane * 2 + 2 }}\n aria-hidden=\"true\"\n />\n </li>\n ))}\n </>\n );\n};\n\nconst Timeline = React.forwardRef<HTMLDivElement, TimelineProps>(\n (\n {\n items,\n branches = [],\n title,\n loading = false,\n activeColor,\n completedColor,\n errorColor,\n inactiveColor,\n minItemWidth = 112,\n size = \"md\",\n className,\n style,\n ...props\n },\n ref,\n ) => {\n const titleId = React.useId();\n // Invalid origins and branches from the final step have no horizontal span.\n const visibleBranches = useMemo(\n () =>\n branches.flatMap(branch => {\n const index = items.findIndex(item => item.id === branch.from);\n return index >= 0 && index < items.length - 1 ? [{ branch, index }] : [];\n }),\n [branches, items],\n );\n\n const superRow = visibleBranches.length * 2 + 1;\n const markerRow = superRow + 1;\n const colorFor = (item: TimelineItem) => item.color ?? `var(--timeline-${item.status ?? \"pending\"})`;\n const variables = {\n \"--timeline-active\": activeColor ?? \"oklch(var(--mtx-primary))\",\n \"--timeline-completed\": completedColor ?? \"oklch(var(--mtx-success))\",\n \"--timeline-error\": errorColor ?? \"oklch(var(--mtx-danger))\",\n \"--timeline-pending\": inactiveColor ?? \"oklch(var(--mtx-gray-400))\",\n ...style,\n } as React.CSSProperties;\n\n const gridTemplateRows = useMemo(() => {\n const visibleBranchesLength = visibleBranches.length;\n switch (size) {\n case \"sm\":\n return `${\"auto 16px \".repeat(visibleBranchesLength)}auto 16px auto auto`;\n case \"lg\":\n return `${\"auto 24px \".repeat(visibleBranchesLength)}auto 24px auto auto`;\n default:\n return `${\"auto 20px \".repeat(visibleBranchesLength)}auto 20px auto auto`;\n }\n }, [size, visibleBranches.length]);\n\n return (\n <div\n {...props}\n ref={ref}\n className={cn(\"mtx-group mtx-text-foreground mtx-text-xs data-[size=sm]:mtx-text-ss data-[size=lg]:mtx-text-sm\", className)}\n data-size={size}\n style={variables}\n aria-busy={loading || undefined}\n >\n {title != null && (\n <div id={titleId} className=\"mtx-mb-4 mtx-text-sm group-data-[size=sm]:mtx-text-xs group-data-[size=lg]:mtx-text-lg mtx-font-bold\">\n {title}\n </div>\n )}\n <div\n className=\"mtx-overflow-x-auto mtx-p-0.5 focus-visible:mtx-outline-2 focus-visible:mtx-outline-offset-2 focus-visible:mtx-outline-[var(--timeline-active)]\"\n role=\"region\"\n aria-label=\"Timeline\"\n tabIndex={0}\n >\n <ol\n className=\"mtx-m-0 mtx-grid mtx-list-none mtx-isolate mtx-p-0\"\n aria-labelledby={title != null ? titleId : undefined}\n aria-label={title == null ? \"Timeline steps\" : undefined}\n data-loading={loading || undefined}\n style={{\n gridTemplateColumns: `repeat(${Math.max(1, items.length)}, minmax(0, 1fr))`,\n gridTemplateRows: gridTemplateRows,\n minWidth: items.length * (Number.isFinite(minItemWidth) ? Math.max(48, minItemWidth) : 112),\n }}\n >\n {loading && <TimelineSkeleton items={items} visibleBranches={visibleBranches} superRow={superRow} markerRow={markerRow} size={size} />}\n {!loading &&\n items.map((item, index) => {\n const previous = items[index - 1];\n const incoming =\n item.connectorColor === false\n ? undefined\n : (item.connectorColor ??\n (previous?.status === \"completed\" && item.status !== \"pending\" && item.status !== undefined ? colorFor(previous) : undefined));\n return (\n <li\n key={item.id}\n className=\"mtx-relative mtx-grid mtx-min-w-0 mtx-row-span-full mtx-grid-rows-[subgrid] \"\n style={{ gridColumn: index + 1 }}\n aria-current={item.status === \"active\" ? \"step\" : undefined}\n >\n <div\n className=\"mtx-min-h-8 mtx-break-words mtx-self-end mtx-pb-2 mtx-mt-1 mtx-pr-3 mtx-text-ss group-data-[size=sm]:mtx-text-[0.5rem] group-data-[size=sm]:mtx-leading-3 group-data-[size=lg]:mtx-text-xs mtx-text-muted-foreground empty:mtx-p-0\"\n style={{ gridRow: superRow }}\n >\n {item.superTitle != null && <div>{item.superTitle}</div>}\n {item.superSubtitle != null && <div className=\"mtx-font-semibold\">{item.superSubtitle}</div>}\n </div>\n {index > 0 && (\n <span\n aria-hidden=\"true\"\n className=\"mtx-absolute mtx-top-2.5 group-data-[size=sm]:mtx-top-2 group-data-[size=lg]:mtx-top-3 mtx-left-[calc(-100%+12px)] mtx-z-10 mtx-h-0.5 mtx-w-full mtx-bg-[var(--timeline-pending)]\"\n style={{ gridRow: markerRow, backgroundColor: incoming }}\n />\n )}\n <div\n className=\"mtx-z-20 mtx-size-5 group-data-[size=sm]:mtx-size-4 group-data-[size=lg]:mtx-size-6\"\n style={{ gridRow: markerRow }}\n >\n <Marker item={item} color={colorFor(item)} size={size} />\n </div>\n <div className=\"mtx-break-words mtx-pt-1 mtx-pr-3 mtx-leading-[1.4]\" style={{ gridRow: markerRow + 1 }}>\n <div className={cn(\"mtx-font-medium\", (item.status ?? \"pending\") === \"pending\" && \"mtx-text-text-400\")}>{item.label}</div>\n {item.subData != null && (\n <div className=\"mtx-mt-0.5 mtx-text-ss group-data-[size=sm]:mtx-text-[0.5rem] group-data-[size=sm]:mtx-leading-3 group-data-[size=lg]:mtx-text-xs\">\n {item.subData}\n </div>\n )}\n </div>\n <div\n className=\"mtx-break-words mtx-pr-3 mtx-pt-5 mtx-text-ss group-data-[size=sm]:mtx-text-[0.5rem] group-data-[size=sm]:mtx-leading-3 group-data-[size=lg]:mtx-text-xs mtx-font-medium mtx-text-muted-foreground empty:mtx-p-0\"\n style={{ gridRow: markerRow + 2 }}\n >\n {item.footer}\n </div>\n </li>\n );\n })}\n {!loading &&\n visibleBranches.map(({ branch, index }, lane) => {\n const branchColor = branch.active\n ? (branch.activeColor ?? branch.color ?? errorColor ?? \"var(--timeline-error)\")\n : \"var(--timeline-pending)\";\n return (\n <li\n key={`branch-${branch.id}`}\n className={cn(\n \"mtx-pointer-events-none mtx-grid mtx-min-w-0 mtx-row-span-full mtx-grid-cols-[subgrid] mtx-grid-rows-[subgrid]\",\n branch.active && \"mtx-z-10\",\n )}\n data-active={branch.active || undefined}\n style={{ gridColumn: `${index + 1} / -1` }}\n aria-current={branch.status === \"active\" ? \"step\" : undefined}\n >\n <span className=\"mtx-sr-only\">Branch from {items[index].label}: </span>\n <div\n className=\"mtx-pointer-events-auto mtx-col-[-2_/_-1] mtx-self-end mtx-break-words mtx-pb-2\"\n style={{ gridRow: lane * 2 + 1, color: branch.active ? branchColor : undefined }}\n >\n {branch.superTitle != null && (\n <div className=\"mtx-break-words mtx-text-ss group-data-[size=sm]:mtx-text-[0.5rem] group-data-[size=sm]:mtx-leading-3 group-data-[size=lg]:mtx-text-xs mtx-text-muted-foreground\">\n {branch.superTitle}\n </div>\n )}\n {branch.superSubtitle != null && (\n <div className=\"mtx-break-words mtx-pb-2 mtx-pr-3 mtx-text-ss group-data-[size=sm]:mtx-text-[0.5rem] group-data-[size=sm]:mtx-leading-3 group-data-[size=lg]:mtx-text-xs mtx-font-semibold mtx-text-muted-foreground\">\n {branch.superSubtitle}\n </div>\n )}\n <div className={cn(\"mtx-font-medium\", (branch.status ?? \"pending\") === \"pending\" && \"mtx-text-text-400\")}>{branch.label}</div>\n {branch.subData != null && (\n <div className=\"mtx-mt-0.5 mtx-text-ss group-data-[size=sm]:mtx-text-[0.5rem] group-data-[size=sm]:mtx-leading-3 group-data-[size=lg]:mtx-text-xs\">\n {branch.subData}\n </div>\n )}\n {branch.footer != null && (\n <div className=\"mtx-break-words mtx-pr-3 mtx-pt-1 mtx-text-ss group-data-[size=sm]:mtx-text-[0.5rem] group-data-[size=sm]:mtx-leading-3 group-data-[size=lg]:mtx-text-xs mtx-font-bold mtx-text-muted-foreground\">\n {branch.footer}\n </div>\n )}\n </div>\n <div\n className=\"mtx-relative mtx-col-[1_/_-1] mtx-mb-[9px] group-data-[size=sm]:mtx-mb-[7px] group-data-[size=lg]:mtx-mb-[11px] mtx-ml-3 mtx-mt-2.5 group-data-[size=sm]:mtx-mt-2 group-data-[size=lg]:mtx-mt-3 mtx-overflow-visible mtx-fill-none mtx-stroke-2 mtx-stroke-current mtx-z-[-1]\"\n aria-hidden=\"true\"\n style={{\n gridRow: `${lane * 2 + 2} / ${markerRow + 1}`,\n width: `calc(100% - 100% / ${items.length - index})`,\n color: branchColor,\n }}\n >\n <svg\n focusable=\"false\"\n viewBox=\"0 0 100 100\"\n preserveAspectRatio=\"none\"\n className=\"mtx-absolute mtx-size-full mtx-overflow-visible\"\n >\n <path\n d={`M0 100 H${45 / (items.length - index - 1)} L${80 / (items.length - index - 1)} 0 H100`}\n vectorEffect=\"non-scaling-stroke\"\n />\n </svg>\n </div>\n <div\n className=\"mtx-col-[-2_/_-1] mtx-z-[2] mtx-size-5 group-data-[size=sm]:mtx-size-4 group-data-[size=lg]:mtx-size-6\"\n style={{ gridRow: lane * 2 + 2 }}\n >\n <Marker item={branch} color={branchColor} size={size} />\n </div>\n </li>\n );\n })}\n </ol>\n </div>\n </div>\n );\n },\n);\nTimeline.displayName = \"Timeline\";\n\nexport { Timeline };\n"],"names":["Marker","item","color","size","status","jsxs","jsx","TimelineSkeleton","items","visibleBranches","superRow","markerRow","pathStart","useMemo","Fragment","index","Skeleton","branch","lane","Timeline","React","branches","title","loading","activeColor","completedColor","errorColor","inactiveColor","minItemWidth","className","style","props","ref","titleId","colorFor","variables","gridTemplateRows","visibleBranchesLength","cn","previous","incoming","branchColor"],"mappings":";;;;AAoEA,MAAMA,IAA+E,CAAC,EAAE,MAAAC,GAAM,OAAAC,GAAO,MAAAC,QAAW;AAC9G,QAAMC,IAASH,EAAK,UAAU;AAC9B,SACE,gBAAAI;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,aAAWF;AAAA,MACX,eAAaC;AAAA,MACb,OAAO,EAAE,OAAAF,EAAA;AAAA,MAET,UAAA;AAAA,QAAA,gBAAAG;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,SAAQ;AAAA,YACR,eAAY;AAAA,YACZ,WAAU;AAAA,YACV,WAAU;AAAA,YAEV,UAAA;AAAA,cAAA,gBAAAC,EAAC,UAAA,EAAO,IAAG,MAAK,IAAG,MAAK,GAAE,QAAO,WAAU,sBAAA,CAAsB;AAAA,cAChEF,MAAW,eAAe,gBAAAE,EAAC,QAAA,EAAK,GAAE,iBAAgB;AAAA,cAClDF,MAAW,WAAW,gBAAAE,EAAC,QAAA,EAAK,GAAE,oBAAmB;AAAA,cACjDF,MAAW,YAAY,gBAAAE,EAAC,UAAA,EAAO,IAAG,MAAK,IAAG,MAAK,GAAE,KAAI,MAAK,gBAAe,QAAO,OAAA,CAAO;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,0BAEzF,QAAA,EAAK,WAAU,eAAe,UAAAL,EAAK,eAAeG,EAAA,CAAO;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGhE,GAIMG,IAMD,CAAC,EAAE,OAAAC,GAAO,iBAAAC,GAAiB,UAAAC,GAAU,WAAAC,GAAW,MAAAR,QAAW;AAC9D,QAAMS,IAAYC,EAAQ,MACpBV,MAAS,OAAa,OACtBA,MAAS,OAAa,OACnB,MACN,CAACA,CAAI,CAAC;AAET,SACE,gBAAAE,EAAAS,GAAA,EACG,UAAA;AAAA,IAAAN,EAAM,IAAI,CAACP,GAAMc,MAChB,gBAAAV;AAAA,MAAC;AAAA,MAAA;AAAA,QAEC,WAAU;AAAA,QACV,OAAO,EAAE,YAAYU,IAAQ,EAAA;AAAA,QAC7B,eAAY;AAAA,QACZ,aAAU;AAAA,QAEV,UAAA;AAAA,UAAA,gBAAAV,EAAC,SAAI,WAAU,uDAAsD,OAAO,EAAE,SAASK,KACrF,UAAA;AAAA,YAAA,gBAAAJ,EAACU,GAAA,EAAS,eAAY,QAAO,WAAU,oBAAmB;AAAA,YAC1D,gBAAAV,EAACU,GAAA,EAAS,eAAY,QAAO,WAAU,4BAAA,CAA4B;AAAA,UAAA,GACrE;AAAA,UACCD,IAAQ,KACP,gBAAAT;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,OAAO,EAAE,SAASK,EAAA;AAAA,YAAU;AAAA,UAAA;AAAA,UAGhC,gBAAAL;AAAA,YAACU;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,OAAO,EAAE,SAASL,EAAA;AAAA,cAClB,eAAY;AAAA,YAAA;AAAA,UAAA;AAAA,UAEd,gBAAAN,EAAC,SAAI,WAAU,qBAAoB,OAAO,EAAE,SAASM,IAAY,EAAA,GAC/D,UAAA;AAAA,YAAA,gBAAAL,EAACU,GAAA,EAAS,eAAY,QAAO,WAAU,oBAAmB;AAAA,YAC1D,gBAAAV,EAACU,GAAA,EAAS,eAAY,QAAO,WAAU,4BAAA,CAA4B;AAAA,UAAA,GACrE;AAAA,4BACC,OAAA,EAAI,WAAU,qBAAoB,OAAO,EAAE,SAASL,IAAY,EAAA,GAC/D,4BAACK,GAAA,EAAS,eAAY,QAAO,WAAU,oBAAmB,EAAA,CAC5D;AAAA,QAAA;AAAA,MAAA;AAAA,MA3BK,iBAAiBf,EAAK,EAAE;AAAA,IAAA,CA6BhC;AAAA,IACAQ,EAAgB,IAAI,CAAC,EAAE,QAAAQ,GAAQ,OAAAF,EAAA,GAASG,MACvC,gBAAAb;AAAA,MAAC;AAAA,MAAA;AAAA,QAEC,WAAU;AAAA,QACV,OAAO,EAAE,YAAY,GAAGU,IAAQ,CAAC,QAAA;AAAA,QACjC,eAAY;AAAA,QACZ,aAAU;AAAA,QAEV,UAAA;AAAA,UAAA,gBAAAV,EAAC,OAAA,EAAI,WAAU,2CAA0C,OAAO,EAAE,SAASa,IAAO,IAAI,EAAA,GACpF,UAAA;AAAA,YAAA,gBAAAZ,EAACU,GAAA,EAAS,eAAY,QAAO,WAAU,oBAAmB;AAAA,YAC1D,gBAAAV,EAACU,GAAA,EAAS,eAAY,QAAO,WAAU,6BAA4B;AAAA,YACnE,gBAAAV,EAACU,GAAA,EAAS,eAAY,QAAO,WAAU,4BAAA,CAA4B;AAAA,UAAA,GACrE;AAAA,UACA,gBAAAV;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,OAAO;AAAA,gBACL,SAAS,GAAGY,IAAO,IAAI,CAAC,MAAMP,IAAY,CAAC;AAAA,gBAC3C,OAAO,sBAAsBH,EAAM,SAASO,CAAK;AAAA,gBACjD,OAAO;AAAA,cAAA;AAAA,cAGT,UAAA,gBAAAT,EAAC,SAAI,WAAU,SAAQ,SAAQ,eAAc,qBAAoB,QAAO,WAAU,mDAChF,UAAA,gBAAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,GAAG,GAAGM,CAAS,SAAS,MAAMJ,EAAM,SAASO,IAAQ,EAAE,KAAK,MAAMP,EAAM,SAASO,IAAQ,EAAE;AAAA,kBAC3F,cAAa;AAAA,gBAAA;AAAA,cAAA,EACf,CACF;AAAA,YAAA;AAAA,UAAA;AAAA,UAEF,gBAAAT;AAAA,YAACU;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,OAAO,EAAE,SAASE,IAAO,IAAI,EAAA;AAAA,cAC7B,eAAY;AAAA,YAAA;AAAA,UAAA;AAAA,QACd;AAAA,MAAA;AAAA,MA9BK,mBAAmBD,EAAO,EAAE;AAAA,IAAA,CAgCpC;AAAA,EAAA,GACH;AAEJ,GAEME,IAAWC,EAAM;AAAA,EACrB,CACE;AAAA,IACE,OAAAZ;AAAA,IACA,UAAAa,IAAW,CAAA;AAAA,IACX,OAAAC;AAAA,IACA,SAAAC,IAAU;AAAA,IACV,aAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,YAAAC;AAAA,IACA,eAAAC;AAAA,IACA,cAAAC,IAAe;AAAA,IACf,MAAAzB,IAAO;AAAA,IACP,WAAA0B;AAAA,IACA,OAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,GAELC,MACG;AACH,UAAMC,IAAUb,EAAM,MAAA,GAEhBX,IAAkBI;AAAA,MACtB,MACEQ,EAAS,QAAQ,CAAAJ,MAAU;AACzB,cAAMF,IAAQP,EAAM,UAAU,OAAQP,EAAK,OAAOgB,EAAO,IAAI;AAC7D,eAAOF,KAAS,KAAKA,IAAQP,EAAM,SAAS,IAAI,CAAC,EAAE,QAAAS,GAAQ,OAAAF,EAAA,CAAO,IAAI,CAAA;AAAA,MACxE,CAAC;AAAA,MACH,CAACM,GAAUb,CAAK;AAAA,IAAA,GAGZE,IAAWD,EAAgB,SAAS,IAAI,GACxCE,IAAYD,IAAW,GACvBwB,IAAW,CAACjC,MAAuBA,EAAK,SAAS,kBAAkBA,EAAK,UAAU,SAAS,KAC3FkC,IAAY;AAAA,MAChB,qBAAqBX,KAAe;AAAA,MACpC,wBAAwBC,KAAkB;AAAA,MAC1C,oBAAoBC,KAAc;AAAA,MAClC,sBAAsBC,KAAiB;AAAA,MACvC,GAAGG;AAAA,IAAA,GAGCM,IAAmBvB,EAAQ,MAAM;AACrC,YAAMwB,IAAwB5B,EAAgB;AAC9C,cAAQN,GAAA;AAAA,QACN,KAAK;AACH,iBAAO,GAAG,aAAa,OAAOkC,CAAqB,CAAC;AAAA,QACtD,KAAK;AACH,iBAAO,GAAG,aAAa,OAAOA,CAAqB,CAAC;AAAA,QACtD;AACE,iBAAO,GAAG,aAAa,OAAOA,CAAqB,CAAC;AAAA,MAAA;AAAA,IAE1D,GAAG,CAAClC,GAAMM,EAAgB,MAAM,CAAC;AAEjC,WACE,gBAAAJ;AAAA,MAAC;AAAA,MAAA;AAAA,QACE,GAAG0B;AAAA,QACJ,KAAAC;AAAA,QACA,WAAWM,EAAG,mGAAmGT,CAAS;AAAA,QAC1H,aAAW1B;AAAA,QACX,OAAOgC;AAAA,QACP,aAAWZ,KAAW;AAAA,QAErB,UAAA;AAAA,UAAAD,KAAS,QACR,gBAAAhB,EAAC,OAAA,EAAI,IAAI2B,GAAS,WAAU,wGACzB,UAAAX,EAAA,CACH;AAAA,UAEF,gBAAAhB;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,MAAK;AAAA,cACL,cAAW;AAAA,cACX,UAAU;AAAA,cAEV,UAAA,gBAAAD;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAU;AAAA,kBACV,mBAAiBiB,KAAS,OAAOW,IAAU;AAAA,kBAC3C,cAAYX,KAAS,OAAO,mBAAmB;AAAA,kBAC/C,gBAAcC,KAAW;AAAA,kBACzB,OAAO;AAAA,oBACL,qBAAqB,UAAU,KAAK,IAAI,GAAGf,EAAM,MAAM,CAAC;AAAA,oBACxD,kBAAA4B;AAAA,oBACA,UAAU5B,EAAM,UAAU,OAAO,SAASoB,CAAY,IAAI,KAAK,IAAI,IAAIA,CAAY,IAAI;AAAA,kBAAA;AAAA,kBAGxF,UAAA;AAAA,oBAAAL,uBAAYhB,GAAA,EAAiB,OAAAC,GAAc,iBAAAC,GAAkC,UAAAC,GAAoB,WAAAC,GAAsB,MAAAR,GAAY;AAAA,oBACnI,CAACoB,KACAf,EAAM,IAAI,CAACP,GAAMc,MAAU;AACzB,4BAAMwB,IAAW/B,EAAMO,IAAQ,CAAC,GAC1ByB,IACJvC,EAAK,mBAAmB,KACpB,SACCA,EAAK,mBACLsC,GAAU,WAAW,eAAetC,EAAK,WAAW,aAAaA,EAAK,WAAW,SAAYiC,EAASK,CAAQ,IAAI;AACzH,6BACE,gBAAAlC;AAAA,wBAAC;AAAA,wBAAA;AAAA,0BAEC,WAAU;AAAA,0BACV,OAAO,EAAE,YAAYU,IAAQ,EAAA;AAAA,0BAC7B,gBAAcd,EAAK,WAAW,WAAW,SAAS;AAAA,0BAElD,UAAA;AAAA,4BAAA,gBAAAI;AAAA,8BAAC;AAAA,8BAAA;AAAA,gCACC,WAAU;AAAA,gCACV,OAAO,EAAE,SAASK,EAAA;AAAA,gCAEjB,UAAA;AAAA,kCAAAT,EAAK,cAAc,QAAQ,gBAAAK,EAAC,OAAA,EAAK,YAAK,YAAW;AAAA,kCACjDL,EAAK,iBAAiB,QAAQ,gBAAAK,EAAC,SAAI,WAAU,qBAAqB,YAAK,cAAA,CAAc;AAAA,gCAAA;AAAA,8BAAA;AAAA,4BAAA;AAAA,4BAEvFS,IAAQ,KACP,gBAAAT;AAAA,8BAAC;AAAA,8BAAA;AAAA,gCACC,eAAY;AAAA,gCACZ,WAAU;AAAA,gCACV,OAAO,EAAE,SAASK,GAAW,iBAAiB6B,EAAA;AAAA,8BAAS;AAAA,4BAAA;AAAA,4BAG3D,gBAAAlC;AAAA,8BAAC;AAAA,8BAAA;AAAA,gCACC,WAAU;AAAA,gCACV,OAAO,EAAE,SAASK,EAAA;AAAA,gCAElB,4BAACX,GAAA,EAAO,MAAAC,GAAY,OAAOiC,EAASjC,CAAI,GAAG,MAAAE,EAAA,CAAY;AAAA,8BAAA;AAAA,4BAAA;AAAA,4BAEzD,gBAAAE,EAAC,SAAI,WAAU,uDAAsD,OAAO,EAAE,SAASM,IAAY,EAAA,GACjG,UAAA;AAAA,8BAAA,gBAAAL,EAAC,OAAA,EAAI,WAAWgC,EAAG,oBAAoBrC,EAAK,UAAU,eAAe,aAAa,mBAAmB,GAAI,UAAAA,EAAK,OAAM;AAAA,8BACnHA,EAAK,WAAW,QACf,gBAAAK,EAAC,SAAI,WAAU,qIACZ,YAAK,QAAA,CACR;AAAA,4BAAA,GAEJ;AAAA,4BACA,gBAAAA;AAAA,8BAAC;AAAA,8BAAA;AAAA,gCACC,WAAU;AAAA,gCACV,OAAO,EAAE,SAASK,IAAY,EAAA;AAAA,gCAE7B,UAAAV,EAAK;AAAA,8BAAA;AAAA,4BAAA;AAAA,0BACR;AAAA,wBAAA;AAAA,wBAtCKA,EAAK;AAAA,sBAAA;AAAA,oBAyChB,CAAC;AAAA,oBACF,CAACsB,KACAd,EAAgB,IAAI,CAAC,EAAE,QAAAQ,GAAQ,OAAAF,EAAA,GAASG,MAAS;AAC/C,4BAAMuB,IAAcxB,EAAO,SACtBA,EAAO,eAAeA,EAAO,SAASS,KAAc,0BACrD;AACJ,6BACE,gBAAArB;AAAA,wBAAC;AAAA,wBAAA;AAAA,0BAEC,WAAWiC;AAAA,4BACT;AAAA,4BACArB,EAAO,UAAU;AAAA,0BAAA;AAAA,0BAEnB,eAAaA,EAAO,UAAU;AAAA,0BAC9B,OAAO,EAAE,YAAY,GAAGF,IAAQ,CAAC,QAAA;AAAA,0BACjC,gBAAcE,EAAO,WAAW,WAAW,SAAS;AAAA,0BAEpD,UAAA;AAAA,4BAAA,gBAAAZ,EAAC,QAAA,EAAK,WAAU,eAAc,UAAA;AAAA,8BAAA;AAAA,8BAAaG,EAAMO,CAAK,EAAE;AAAA,8BAAM;AAAA,4BAAA,GAAE;AAAA,4BAChE,gBAAAV;AAAA,8BAAC;AAAA,8BAAA;AAAA,gCACC,WAAU;AAAA,gCACV,OAAO,EAAE,SAASa,IAAO,IAAI,GAAG,OAAOD,EAAO,SAASwB,IAAc,OAAA;AAAA,gCAEpE,UAAA;AAAA,kCAAAxB,EAAO,cAAc,QACpB,gBAAAX,EAAC,SAAI,WAAU,oKACZ,YAAO,WAAA,CACV;AAAA,kCAEDW,EAAO,iBAAiB,QACvB,gBAAAX,EAAC,SAAI,WAAU,wMACZ,YAAO,cAAA,CACV;AAAA,kCAEF,gBAAAA,EAAC,OAAA,EAAI,WAAWgC,EAAG,oBAAoBrB,EAAO,UAAU,eAAe,aAAa,mBAAmB,GAAI,UAAAA,EAAO,OAAM;AAAA,kCACvHA,EAAO,WAAW,QACjB,gBAAAX,EAAC,SAAI,WAAU,qIACZ,YAAO,QAAA,CACV;AAAA,kCAEDW,EAAO,UAAU,QAChB,gBAAAX,EAAC,SAAI,WAAU,oMACZ,YAAO,OAAA,CACV;AAAA,gCAAA;AAAA,8BAAA;AAAA,4BAAA;AAAA,4BAGJ,gBAAAA;AAAA,8BAAC;AAAA,8BAAA;AAAA,gCACC,WAAU;AAAA,gCACV,eAAY;AAAA,gCACZ,OAAO;AAAA,kCACL,SAAS,GAAGY,IAAO,IAAI,CAAC,MAAMP,IAAY,CAAC;AAAA,kCAC3C,OAAO,sBAAsBH,EAAM,SAASO,CAAK;AAAA,kCACjD,OAAO0B;AAAA,gCAAA;AAAA,gCAGT,UAAA,gBAAAnC;AAAA,kCAAC;AAAA,kCAAA;AAAA,oCACC,WAAU;AAAA,oCACV,SAAQ;AAAA,oCACR,qBAAoB;AAAA,oCACpB,WAAU;AAAA,oCAEV,UAAA,gBAAAA;AAAA,sCAAC;AAAA,sCAAA;AAAA,wCACC,GAAG,WAAW,MAAME,EAAM,SAASO,IAAQ,EAAE,KAAK,MAAMP,EAAM,SAASO,IAAQ,EAAE;AAAA,wCACjF,cAAa;AAAA,sCAAA;AAAA,oCAAA;AAAA,kCACf;AAAA,gCAAA;AAAA,8BACF;AAAA,4BAAA;AAAA,4BAEF,gBAAAT;AAAA,8BAAC;AAAA,8BAAA;AAAA,gCACC,WAAU;AAAA,gCACV,OAAO,EAAE,SAASY,IAAO,IAAI,EAAA;AAAA,gCAE7B,4BAAClB,GAAA,EAAO,MAAMiB,GAAQ,OAAOwB,GAAa,MAAAtC,EAAA,CAAY;AAAA,8BAAA;AAAA,4BAAA;AAAA,0BACxD;AAAA,wBAAA;AAAA,wBA9DK,UAAUc,EAAO,EAAE;AAAA,sBAAA;AAAA,oBAiE9B,CAAC;AAAA,kBAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,YACL;AAAA,UAAA;AAAA,QACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;AACAE,EAAS,cAAc;"}
|