UNPKG

@bernierllc/generic-workflow-ui

Version:

Generic, reusable workflow UI components with linear and graph visualization

55 lines (54 loc) 2.37 kB
"use strict"; /* Copyright (c) 2025 Bernier LLC */ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.GenericWorkflowStatusIndicator = GenericWorkflowStatusIndicator; const react_1 = __importDefault(require("react")); const tamagui_1 = require("tamagui"); const defaultConfig = { enabled: true, size: 'medium', showText: true, showIcon: true, showTransitions: false, statusColors: {}, statusIcons: {} }; function GenericWorkflowStatusIndicator({ status, config: userConfig = {}, disabled = false }) { const config = { ...defaultConfig, ...userConfig }; if (!config.enabled) { return react_1.default.createElement(react_1.default.Fragment, null); } const statusInfo = config.getStatusInfo ? config.getStatusInfo(status) : { status: status.currentStageId, label: `Current: ${status.currentStageId}`, color: '$blue10', icon: '•' }; const getBadgeSize = () => { switch (config.size) { case 'small': return '$2'; case 'large': return '$4'; default: return '$3'; } }; return (react_1.default.createElement(tamagui_1.XStack, { gap: "$2", alignItems: "center", opacity: disabled ? 0.5 : 1 }, react_1.default.createElement(tamagui_1.Card, { size: getBadgeSize(), backgroundColor: config.statusColors?.[status.currentStageId] || statusInfo.color, padding: "$2", borderRadius: "$4" }, react_1.default.createElement(tamagui_1.XStack, { gap: "$1", alignItems: "center" }, config.showIcon && (react_1.default.createElement(tamagui_1.Text, null, config.statusIcons?.[status.currentStageId] || statusInfo.icon)), config.showText && react_1.default.createElement(tamagui_1.Text, null, statusInfo.label))), config.showTransitions && status.availableTransitions.length > 0 && (react_1.default.createElement(tamagui_1.Text, { fontSize: "$2", color: "$gray10" }, status.availableTransitions.length, " transition", status.availableTransitions.length !== 1 ? 's' : '', " available")))); }