import type { WidgetFeatureDefinition, WidgetFeatureKey } from '../types/widget';

export const widgetFeatureRegistry: Record<WidgetFeatureKey, WidgetFeatureDefinition> = {
  'api-sample': {
    key: 'api-sample',
    label: 'API Sample',
    description: 'API 게시판 또는 문서에서 재사용할 수 있는 샘플입니다.',
  },
  docs: {
    key: 'docs',
    label: 'Docs',
    description: '컴포넌트 문서와 연결되는 예제입니다.',
  },
  'component-sample': {
    key: 'component-sample',
    label: 'Component Sample',
    description: '컴포넌트 단위 동작을 보여주는 샘플입니다.',
  },
  'imperative-handle': {
    key: 'imperative-handle',
    label: 'Imperative Handle',
    description: '위젯 제어를 위해 useImperativeHandle을 사용합니다.',
  },
  'feature-registry': {
    key: 'feature-registry',
    label: 'Feature Registry',
    description: '공통 feature registry를 통해 위젯 기능을 관리합니다.',
  },
};

export function resolveWidgetFeatures(featureKeys: WidgetFeatureKey[] = []) {
  return featureKeys.map((featureKey) => widgetFeatureRegistry[featureKey]);
}
