npm package: @milord_frontend/features-export-full
Description: React Features library with internationalization support (Paraglide JS) - Full version with all features
Author: Eugene Koryabkin
Latest version: 1.0.1

# @milord_frontend/features-export-full

React Features library - полная версия со всеми фичами для публикации в npm.

## 📦 Установка

```bash
npm install @milord_frontend/features-export-full
```

**Peer Dependencies:**

```bash
npm install react react-dom
```

## 🎯 Использование

### HelloWorld Feature

```tsx
import { HelloWorld } from "@milord_frontend/features-export-full";

function App() {
  return (
    <HelloWorld
      name="Евгений"
      showButton={true}
      onGreet={(greeting) => console.log(greeting)}
    />
  );
}
```

### С управлением языком

```tsx
import { 
  HelloWorld, 
  setLocale, 
  getLocale,
  type Locale 
} from "@milord_frontend/features-export-full";

function App() {
  // Установить язык
  setLocale('en', { reload: false });

  // Получить текущий язык
  const currentLang = getLocale(); // 'ru' | 'en' | 'de' | 'es'

  return <HelloWorld name="User" />;
}
```

### Прямой доступ к переводам

```tsx
import * as m from "@milord_frontend/features-export-full/paraglide/messages";

console.log(m.hello_world_title());           // "👋 Hello World Feature"
console.log(m.welcome_message({ name: 'John' })); // "Welcome, John!"
```

## 🌍 Интернационализация

### Поддерживаемые языки

- 🇷🇺 **ru** - Русский (по умолчанию)
- 🇬🇧 **en** - English
- 🇩🇪 **de** - Deutsch
- 🇪🇸 **es** - Español

### API для работы с языками

```typescript
// Получить текущий язык
getLocale(): Locale  // 'ru' | 'en' | 'de' | 'es'

// Установить язык
setLocale(locale: Locale, options?: { reload?: boolean }): void

// Пример
setLocale('en', { reload: false });
```

### Доступные переводы

```typescript
hello_world_title(): string
welcome_message({ name }: { name: string }): string
feature_description(): string
greet_button(): string
greeting_alert({ name }: { name: string }): string
```

## 📚 Доступные фичи

### HelloWorld

Демонстрационная фича приветствия с использованием UI компонентов и поддержкой интернационализации.

**Props:**

- `name?: string` - Имя для приветствия (по умолчанию "World")
- `showButton?: boolean` - Показывать ли кнопку (по умолчанию true)
- `onGreet?: (greeting: string) => void` - Callback при клике на кнопку
- `icon?: IconName` - Опциональная иконка в заголовке

**Пример:**

```tsx
<HelloWorld name="John" showButton={true} onGreet={(msg) => alert(msg)} />
```

Компонент автоматически использует переводы из Paraglide. При смене языка через `setLocale()` все тексты обновляются автоматически.

## 🎨 Стили

Эта библиотека не включает CSS. Используйте UI компоненты из:

- `@milord_frontend/ui-export-full` - для стилизации

## 📊 Размер бандла

| Файл | Размер  |
| ---- | ------- |
| ESM  | ~3 KB   |
| CJS  | ~2.5 KB |

## 🔧 TypeScript

Полная поддержка TypeScript из коробки.

```tsx
import type { HelloWorldProps } from "@milord_frontend/features-export-full";

const props: HelloWorldProps = {
  name: "TypeScript",
  showButton: true,
};
```

## 🚀 Разработка

Этот пакет генерируется из `@repo/features` в монорепе.

**Сборка:**

```bash
npm run build
```

**Генерация типов:**

```bash
npm run generate:types
```

**Публикация:**

```bash
npm publish
```

## 📖 Документация

Подробная документация доступна в монорепе:

- `packages/features/README.md` - основной пакет
- `packages/ARCHITECTURE_SUMMARY.md` - архитектура

## 🤝 Связанные пакеты

- `@repo/features` - Основной пакет для разработки
- `@milord_frontend/ui-export-full` - UI компоненты

## 📝 License

MIT