{"version":3,"file":"default-components.mjs","sources":["../../../src/lib/coordination/default-components.tsx"],"sourcesContent":["/**\n * @file Provider Orchestrator Default Components\n * @module coordination/default-components\n * @description Default fallback components for provider orchestration.\n */\n\nimport type { FC } from 'react';\n\n// ============================================================================\n// Types\n// ============================================================================\n\n/**\n * Fallback loading component props.\n */\nexport interface LoadingFallbackProps {\n  message?: string;\n}\n\n/**\n * Fallback error component props.\n */\nexport interface ErrorFallbackProps {\n  error: Error;\n  resetError?: () => void;\n}\n\n// ============================================================================\n// Default Components\n// ============================================================================\n\n/**\n * Default loading fallback component.\n */\nexport const DefaultLoadingFallback: FC<LoadingFallbackProps> = ({ message }) => (\n  <div\n    role=\"status\"\n    aria-live=\"polite\"\n    style={{\n      display: 'flex',\n      alignItems: 'center',\n      justifyContent: 'center',\n      minHeight: '100vh',\n      fontFamily: 'system-ui, sans-serif',\n    }}\n  >\n    <div style={{ textAlign: 'center' }}>\n      <div\n        style={{\n          width: '48px',\n          height: '48px',\n          border: '4px solid #e5e7eb',\n          borderTopColor: '#3b82f6',\n          borderRadius: '50%',\n          animation: 'spin 1s linear infinite',\n          margin: '0 auto 16px',\n        }}\n      />\n      <p style={{ color: '#6b7280', margin: 0 }}>{message ?? 'Loading application...'}</p>\n      <style>{`\n        @keyframes spin {\n          to { transform: rotate(360deg); }\n        }\n      `}</style>\n    </div>\n  </div>\n);\n\nDefaultLoadingFallback.displayName = 'DefaultLoadingFallback';\n\n/**\n * Default error fallback component.\n */\nexport const DefaultErrorFallback: FC<ErrorFallbackProps> = ({ error, resetError }) => (\n  <div\n    role=\"alert\"\n    style={{\n      display: 'flex',\n      alignItems: 'center',\n      justifyContent: 'center',\n      minHeight: '100vh',\n      fontFamily: 'system-ui, sans-serif',\n      backgroundColor: '#fef2f2',\n    }}\n  >\n    <div style={{ maxWidth: '600px', padding: '32px' }}>\n      <div\n        style={{\n          width: '48px',\n          height: '48px',\n          backgroundColor: '#ef4444',\n          borderRadius: '50%',\n          display: 'flex',\n          alignItems: 'center',\n          justifyContent: 'center',\n          margin: '0 auto 16px',\n        }}\n      >\n        <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"white\" strokeWidth=\"2\">\n          <circle cx=\"12\" cy=\"12\" r=\"10\" />\n          <line x1=\"15\" y1=\"9\" x2=\"9\" y2=\"15\" />\n          <line x1=\"9\" y1=\"9\" x2=\"15\" y2=\"15\" />\n        </svg>\n      </div>\n      <h2 style={{ color: '#991b1b', textAlign: 'center', marginBottom: '8px' }}>\n        Application Error\n      </h2>\n      <p style={{ color: '#dc2626', textAlign: 'center', marginBottom: '16px' }}>{error.message}</p>\n      {resetError && (\n        <div style={{ textAlign: 'center' }}>\n          <button\n            onClick={resetError}\n            style={{\n              backgroundColor: '#ef4444',\n              color: 'white',\n              border: 'none',\n              padding: '8px 16px',\n              borderRadius: '4px',\n              cursor: 'pointer',\n              fontSize: '14px',\n              fontWeight: 500,\n            }}\n          >\n            Try Again\n          </button>\n        </div>\n      )}\n    </div>\n  </div>\n);\n\nDefaultErrorFallback.displayName = 'DefaultErrorFallback';\n"],"names":["DefaultLoadingFallback","message","jsx","DefaultErrorFallback","error","resetError","jsxs"],"mappings":"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"}