// Configuration Monaco isolée dans son propre module, chargé UNIQUEMENT en import dynamique
// (cf. composables/useMonaco) → chunk séparé, zéro impact sur le bundle initial.
// Workers via Vite (?worker) : on ne fournit que le worker de base. La colorisation syntaxique
// (Monarch) tourne sur le thread principal et ne dépend d'aucun worker ; les services de langage
// avancés (TS/JSON) dégradent proprement : suffisant pour éditer + sauver dans le navigateur.
import * as monaco from 'monaco-editor';
import EditorWorker from 'monaco-editor/esm/vs/editor/editor.worker?worker';

(self as unknown as { MonacoEnvironment: monaco.Environment }).MonacoEnvironment = {
  getWorker: () => new EditorWorker(),
};

// Thème dérivé de vs-dark dont le fond s'aligne sur --color-surface-0 (#09090b) : cohérence
// visuelle de l'éditeur avec le reste du chrome IDE. Défini une fois au chargement du module.
monaco.editor.defineTheme('arboretum-dark', {
  base: 'vs-dark',
  inherit: true,
  rules: [],
  colors: {
    'editor.background': '#09090b',
  },
});

export { monaco };
