@jadermme/orus-core
Version:
ORUS Core Framework - Universal framework for 6 Pillars assessment, domain-agnostic
146 lines • 4.49 kB
JavaScript
/**
* ORUS Core - Defaults Configuration
*
* Single source of truth for all default values in ORUS Core.
* All other modules MUST import from here.
*
* ⚠️ IMPORTANT:
* - Core provides neutral defaults for universal applicability
* - Verticals and shells SHOULD customize these values via OrusCoreConfig
* - Labels are placeholders - NOT production-ready
* - NO concrete colors (hex) - only symbolic tokens
*/
import { PillarId } from '../types/pillar.js';
/**
* Default labels for the 6 universal pillars
*
* ⚠️ ATENÇÃO / ATTENTION / WARNING:
* - These are PLACEHOLDER labels for debugging and internal use only
* - Every vertical/shell MUST override these with domain-specific labels
* - Core does NOT guarantee these labels are suitable for production
* - Labels are purely presentational (defaults for reference)
* - Core does NOT depend on labels for calculations or business logic
*
* @example
* ```typescript
* // Finance vertical SHOULD override:
* const financeLabels = {
* [PillarId.PILLAR_1]: "Organização & Fluxo",
* [PillarId.PILLAR_2]: "Investimentos",
* [PillarId.PILLAR_3]: "Aposentadoria",
* [PillarId.PILLAR_4]: "Proteção Patrimonial",
* [PillarId.PILLAR_5]: "Otimização Tributária",
* [PillarId.PILLAR_6]: "Sucessão & Legado"
* };
*
* // Marketing vertical SHOULD override:
* const marketingLabels = {
* [PillarId.PILLAR_1]: "Brand Strategy",
* [PillarId.PILLAR_2]: "Content & Messaging",
* // ...
* };
* ```
*/
export const ORUS_CORE_PILLAR_LABELS = {
[PillarId.PILLAR_1]: "Pillar 1",
[PillarId.PILLAR_2]: "Pillar 2",
[PillarId.PILLAR_3]: "Pillar 3",
[PillarId.PILLAR_4]: "Pillar 4",
[PillarId.PILLAR_5]: "Pillar 5",
[PillarId.PILLAR_6]: "Pillar 6"
};
/**
* Default thresholds for status classification
*
* @remarks
* These thresholds define the boundaries for converting
* numerical scores (0-10) to qualitative status.
*
* Format: [min, max] (inclusive)
* - critical: 0-3.9
* - attention: 4.0-6.9
* - healthy: 7.0-10.0
*
* Verticals can customize via OrusCoreConfig.scoring.thresholds
*
* @example
* ```typescript
* // Customize thresholds for stricter criteria
* const customThresholds = {
* critical: [0, 4.0] as [number, number],
* attention: [4.1, 7.5] as [number, number],
* healthy: [7.6, 10] as [number, number]
* };
* ```
*/
export const DEFAULT_STATUS_THRESHOLDS = {
critical: [0, 3.9],
attention: [4.0, 6.9],
healthy: [7.0, 10]
};
/**
* Default weights for pillar prioritization
*
* @remarks
* These weights determine how different factors contribute
* to the overall priority score (0-100) for each pillar.
*
* Weights MUST sum to 1.0 (100%).
*
* Default distribution:
* - status: 40% (critical status = high priority)
* - score: 30% (low score = high priority)
* - trend: 20% (declining trend = high priority)
* - confidence: 10% (high confidence data = high priority)
*
* Verticals can customize via OrusCoreConfig.prioritization.weights
*
* @example
* ```typescript
* // Prioritize trend more heavily
* const customWeights = {
* status: 0.30, // 30%
* score: 0.25, // 25%
* trend: 0.35, // 35% (increased)
* confidence: 0.10 // 10%
* };
* ```
*/
export const DEFAULT_PRIORITIZATION_WEIGHTS = {
status: 0.40, // 40% - Critical status has highest priority
score: 0.30, // 30% - Lower scores need more attention
trend: 0.20, // 20% - Declining trends are concerning
confidence: 0.10 // 10% - Reliable data gets slight boost
};
/**
* ⚠️ NOTE: Color Definitions
*
* ORUS Core does NOT define concrete colors (hex values).
* Instead, it uses symbolic color tokens in types/radar.ts:
*
* - PillarStatusColorToken:
* - "statusCritical"
* - "statusAttention"
* - "statusHealthy"
* - "statusNoData"
*
* Shells are responsible for mapping these tokens to actual colors
* that match their design system and brand identity.
*
* @example
* ```typescript
* // Example mapping in a shell
* const shellColorScheme = {
* statusCritical: "#E53E3E", // Red
* statusAttention: "#DD6B20", // Orange
* statusHealthy: "#38A169", // Green
* statusNoData: "#A0AEC0" // Gray
* };
* ```
*
* This approach ensures:
* - Core remains UI-agnostic
* - Shells can implement brand-specific color schemes
* - Accessibility can be customized per shell (e.g., colorblind-friendly palettes)
*/
//# sourceMappingURL=defaults.js.map