diff --git a/context7.json b/context7.json new file mode 100644 index 0000000..708337d --- /dev/null +++ b/context7.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://context7.com/schema/context7.json", + "projectTitle": "Bitrix Framework", + "description": "Фреймворк для работы с Битрикс24 и 1С‑Битрикс: Управление сайтом", + "folders": ["pages"], + "excludeFolders": ["_images", "_assets", "extensions"], + "excludeFiles": ["README.md", "favicon.ico", "index.yaml", "LICENSE", "poll-bar.md", "prompt.md", "toc.yaml"], + "rules": [] + } \ No newline at end of file diff --git a/pages/ui/bitrix-cli.md b/pages/ui/bitrix-cli.md new file mode 100644 index 0000000..dc28811 --- /dev/null +++ b/pages/ui/bitrix-cli.md @@ -0,0 +1,81 @@ +## Bitrix CLI (@bitrix/cli) — Краткая справка + +Это краткая справочная документация по использованию Bitrix CLI для сборки, тестирования и создания JS/CSS расширений для 1C‑Bitrix/Bitrix24. + +### Обзор +- CLI `bitrix` рекурсивно находит файлы `bundle.config.js` и запускает сборку/транспиляцию для каждого. +- Тесты основаны на Mocha и обнаруживаются в `./test` относительно каждого `bundle.config.js`. +- Расширения (экстеншны) находятся в `local/js/{module}/...` и загружаются в PHP через `\Bitrix\Main\UI\Extension::load(...)`. + +### Сборка +Запустить полную сборку проекта: + +```bash +bitrix build +``` + +Часто используемые флаги: +- `--watch[=]`, `-w[=]`: Пересборка при изменении файлов. По умолчанию отслеживает `js,jsx,vue,css,scss` при использовании `defaults`. +- `--test`, `-t`: Запускать тесты после каждой сборки (показывает только сводку прохождений/ошибок; полный отчёт через `bitrix test`). +- `--modules `, `-m=<...>`: Собирать только выбранные модули (корневой контекст для `local/js` и `bitrix/modules`). +- `--path `, `-p=`: Собрать конкретную директорию (относительный путь). +- `--extensions `, `-e=<...>`: Собрать конкретные расширения; можно запускать из любой точки репозитория. + +Примеры: +```bash +bitrix build --watch +bitrix build -w=defaults,json,mjs,svg +bitrix build --modules main,ui,landing +bitrix build -p=./main/install/js/main/loader +bitrix build -e=main.core,ui.buttons,landing.main +``` + +### Тестирование +Запустить Mocha тесты с полным отчётом: + +```bash +bitrix test +``` + +Примечания: +- Файлы тестов — это JS файлы в `./test` рядом с каждым `bundle.config.js`. +- Исходный код и тесты обрабатываются/транспилируются на лету; поддерживается ES6+. + +Часто используемые флаги (та же семантика, что и у сборки): +- `--watch[=]`, `-w[=]` +- `--modules `, `-m=<...>` +- `--path `, `-p=` +- `--extensions `, `-e=<...>` + +Примеры: +```bash +bitrix test --watch +bitrix test -w=defaults,json,mjs,svg +bitrix test --modules main,ui,landing +bitrix test -p=./main/install/js/main/loader +bitrix test -e=main.core,ui.buttons,landing.main +``` + +### Создание расширения +Создать новое расширение: + +```bash +cd local/js/{module} +bitrix create +``` + +Советы: +- `{module}` должен быть именем модуля без точек (например, префикс партнёра). +- Также можно запустить прямо в `local/js/`: `bitrix create myext`. + +Загрузка расширения (PHP): + +```php +\Bitrix\Main\UI\Extension::load("partner.ext"); // для local/js/partner/ext/ +\Bitrix\Main\UI\Extension::load("myext"); // при создании прямо в local/js/ +``` + +### Практические заметки +- Значения по умолчанию для watch покрывают: `js,jsx,vue,css,scss`. +- Используйте `--extensions` при итерации над небольшим набором расширений для ускорения сборки/тестирования. +- Храните тесты в `./test` рядом с соответствующим `bundle.config.js` для их обнаружения. diff --git a/pages/ui/dialog-messagebox.md b/pages/ui/dialog-messagebox.md new file mode 100644 index 0000000..d5cc57e --- /dev/null +++ b/pages/ui/dialog-messagebox.md @@ -0,0 +1,136 @@ +# ui.dialogs.messagebox + +## Описание + +Компонент `ui.dialogs.messagebox` предоставляет простой способ для создания и управления стандартными модальными окнами, такими как предупреждения (`alert`) и подтверждения (`confirm`). Он позволяет настраивать заголовок, сообщение, кнопки и обработчики событий. + +**Расположение:** `/ui/install/js/ui/dialogs/messagebox/src/` + +## Импорт компонента + +```javascript +import { MessageBox, MessageBoxButtons } from 'ui.dialogs.messagebox'; +``` + +## Основные статические методы + +### MessageBox.alert() + +Показывает диалоговое окно с сообщением и кнопкой «ОК». + +```javascript +MessageBox.alert(message, title, onOk, okCaption); +``` + +| Параметр | Тип | Описание | +|-----------|----------|----------| +| `message` | `String` | Текст сообщения. | +| `title` | `String` | (опционально) Заголовок окна. | +| `onOk` | `Function` | (опционально) Callback-функция при нажатии «ОК». | +| `okCaption` | `String` | (опционально) Текст для кнопки «ОК». | + +### MessageBox.confirm() + +Показывает диалоговое окно с сообщением и кнопками «ОК» и «Отмена». + +```javascript +MessageBox.confirm(message, title, onOk, onCancel, okCaption, cancelCaption); +``` + +| Параметр | Тип | Описание | +|-----------|----------|----------| +| `message` | `String` | Текст сообщения. | +| `title` | `String` | (опционально) Заголовок окна. | +| `onOk` | `Function` | (опционально) Callback-функция при нажатии «ОК». | +| `onCancel` | `Function` | (опционально) Callback-функция при нажатии «Отмена». | +| `okCaption` | `String` | (опционально) Текст для кнопки «ОК». | +| `cancelCaption` | `String` | (опционально) Текст для кнопки «Отмена». | + +### MessageBox.show() + +Создает и сразу показывает диалоговое окно с указанными параметрами. + +```javascript +MessageBox.show({ + message: 'Текст сообщения', + title: 'Заголовок', + buttons: MessageBoxButtons.OK_CANCEL, + // ... другие параметры +}); +``` + +## Параметры конструктора + +Экземпляр `MessageBox` можно создать с помощью `new MessageBox(options)`. + +| Параметр | Тип | По умолчанию | Описание | +|-----------|----------|----------|----------| +| `message` | `String` \| `Element` | `''` | Основной текст или DOM-элемент в окне. | +| `title` | `String` | `null` | Заголовок окна. | +| `buttons` | `Array` \| `String` | `[]` | Массив кнопок или строка-пресет (`MessageBoxButtons`). | +| `onOk` | `Function` | `null` | Callback для кнопки «ОК». | +| `onCancel` | `Function` | `null` | Callback для кнопки «Отмена». | +| `onYes` | `Function` | `null` | Callback для кнопки «Да». | +| `onNo` | `Function` | `null` | Callback для кнопки «Нет». | +| `okCaption` | `String` | `(локализовано)` | Текст для кнопки «ОK». | +| `cancelCaption` | `String` | `(локализовано)` | Текст для кнопки «Отмена». | +| `yesCaption` | `String` | `(локализовано)` | Текст для кнопки «Да». | +| `noCaption` | `String` | `(локализовано)` | Текст для кнопки «Нет». | +| `modal` | `Boolean` | `true` | Делает окно модальным (с оверлеем). | +| `mediumButtonSize` | `Boolean` | `false` | Использовать средний размер для кнопок. | +| `popupOptions` | `Object` | `{}` | Дополнительные параметры для `main.popup`. | + +## Примеры использования + +### Простое предупреждение + +```javascript +import { MessageBox } from 'ui.dialogs.messagebox'; + +MessageBox.alert('Операция успешно завершена!'); +``` + +### Запрос подтверждения + +```javascript +import { MessageBox } from 'ui.dialogs.messagebox'; + +MessageBox.confirm('Вы уверены, что хотите удалить этот элемент?', (messageBox) => { + console.log('Пользователь нажал ОК'); + messageBox.close(); +}, 'Удалить', (messageBox) => { + console.log('Пользователь нажал Отмена'); + messageBox.close(); +}); +``` + +### Создание кастомного окна + +```javascript +import { MessageBox, MessageBoxButtons } from 'ui.dialogs.messagebox'; + +const box = new MessageBox({ + message: 'Вы хотите сохранить изменения?', + title: 'Сохранение', + buttons: MessageBoxButtons.YES_NO_CANCEL, + onYes: (messageBox) => { + console.log('Сохраняем...'); + messageBox.close(); + }, + onNo: (messageBox) => { + console.log('Не сохраняем.'); + messageBox.close(); + }, + onCancel: (messageBox) => { + console.log('Действие отменено.'); + messageBox.close(); + } +}); + +box.show(); +``` + +## Экспортируемые компоненты + +- `MessageBox`: Основной класс для создания диалоговых окон. +- `MessageBoxButtons`: Объект с константами для стандартных наборов кнопок (`OK`, `OK_CANCEL`, `YES_NO`, `YES_NO_CANCEL` и т.д.). \ No newline at end of file diff --git a/pages/ui/entity-selector.md b/pages/ui/entity-selector.md new file mode 100644 index 0000000..00b5423 --- /dev/null +++ b/pages/ui/entity-selector.md @@ -0,0 +1,198 @@ +# ui.entity-selector + +## Описание + +Компонент `ui.entity-selector` предоставляет многофункциональный диалог для выбора различных сущностей, таких как пользователи, отделы, элементы CRM, задачи и другие. Он поддерживает одиночный и множественный выбор, поиск, кастомные табы и интеграцию с `TagSelector` для отображения выбранных элементов. + +**Расположение:** `/ui/install/js/ui/entity-selector/src` + +## Импорт классов + +```javascript +import { + Dialog, + Item, + Tab, + Entity, + TagSelector +} from 'ui.entity-selector'; +``` + +## Основные классы + +### Dialog + +Основной класс, который создает и управляет диалогом выбора. + +**Конструктор:** `new Dialog(options: DialogOptions)` + +#### Ключевые опции `DialogOptions`: + +| Опция | Тип | Описание | +|---|---|---| +| `targetNode` | `HTMLElement` | Элемент, к которому будет привязан диалог. | +| `multiple` | `boolean` | `true` для множественного выбора, `false` для одиночного. По умолчанию `true`. | +| `entities` | `EntityOptions[]` | Массив объектов, описывающих сущности для выбора (например, пользователи, отделы). | +| `preselectedItems` | `Array<[string, string | number]>` | Массив для предвыбранных элементов в формате `['entityId', 'itemId']`. | +| `dropdownMode` | `boolean` | Упрощенный режим отображения в виде выпадающего списка. По умолчанию `false`. | +| `enableSearch` | `boolean` | Включает встроенный поиск в диалоге. По умолчанию `false`. | +| `context` | `string` | Контекст для сохранения последних выбранных элементов (например, `CRM_DEAL`). | +| `events` | `object` | Объект с обработчиками событий, например `onSelect`, `onDeselect`. | +| `tagSelector` | `TagSelector` | Экземпляр `TagSelector` для отображения выбранных элементов вне диалога. | + +### TagSelector + +Компонент для отображения выбранных элементов в виде тегов. Может использоваться как внутри диалога, так и отдельно. + +**Конструктор:** `new TagSelector(options: TagSelectorOptions)` + +### Item + +Представляет один выбираемый элемент в диалоге (например, конкретного пользователя). + +### Entity + +Определяет тип сущности, доступной для выбора (например, 'user', 'department'). + +### Tab + +Представляет вкладку в диалоге (например, "Последние" или "Поиск"). + +## Примеры использования + +### 1. Простой выбор одного пользователя + +Создание диалога для выбора одного пользователя, который открывается по клику на кнопку. + +```javascript +import { Dialog } from 'ui.entity-selector'; + +const button = document.getElementById('select-user-button'); +button.addEventListener('click', () => { + const dialog = new Dialog({ + targetNode: button, + multiple: false, + context: 'MY_MODULE_CONTEXT', + entities: [ + { + id: 'user', + options: { + inviteEmployeeLink: false + } + } + ], + events: { + 'Item:onSelect': (event) => { + const { item } = event.getData(); + console.log('Выбран пользователь:', item.getTitle()); + dialog.hide(); + } + } + }); + + dialog.show(); +}); +``` + +### 2. Множественный выбор с внешним TagSelector + +Создание диалога для выбора нескольких пользователей и отделов с отображением результатов в `TagSelector`. + +```javascript +import { Dialog, TagSelector } from 'ui.entity-selector'; + +// Инициализация TagSelector +const tagSelector = new TagSelector({ + dialogOptions: { + context: 'MY_MODULE_USERS_DEPARTMENTS', + entities: [ + { + id: 'user', + }, + { + id: 'department', + options: { + selectMode: 'usersAndDepartments' + } + } + ], + preselectedItems: [ + ['user', 1], // Предвыбран пользователь с ID 1 + ['department', 5] // Предвыбран отдел с ID 5 + ], + } +}); + +// Рендеринг TagSelector в контейнер +const container = document.getElementById('tag-selector-container'); +tagSelector.renderTo(container); + +``` + +### 3. Режим выпадающего списка (Dropdown Mode) + +Диалог в компактном режиме, который лучше подходит для встраивания в формы. + +```javascript +import { Dialog } from 'ui.entity-selector'; + +const dropdownNode = document.getElementById('my-dropdown'); +dropdownNode.addEventListener('click', () => { + const dialog = new Dialog({ + targetNode: dropdownNode, + dropdownMode: true, + multiple: false, + entities: [ + { + id: 'user', + } + ], + events: { + 'Item:onSelect': (event) => { + const { item } = event.getData(); + dropdownNode.innerText = item.getTitle(); + } + } + }); + + dialog.show(); +}); +``` + +## TypeScript типы + +Для разработки можно использовать следующие TypeScript-типы: + +```typescript +import type { + DialogOptions, + ItemOptions, + EntityOptions, + TabOptions, + TagSelectorOptions, + ItemId +} from 'ui.entity-selector'; +``` + +## Экспортируемые модули + +Модуль `ui.entity-selector` экспортирует следующие классы и типы: + +- **Классы:** + - `Dialog` + - `Item` + - `Tab` + - `Entity` + - `TagSelector` + - `TagItem` + - `BaseHeader`, `DefaultHeader` + - `BaseFooter`, `DefaultFooter` + - `BaseStub`, `DefaultStub` +- **TypeScript-типы:** + - `DialogOptions` + - `ItemOptions` + - `EntityOptions` + - `TabOptions` + - `TagSelectorOptions` + - `ItemId` + - и другие. diff --git a/pages/ui/hint.md b/pages/ui/hint.md new file mode 100644 index 0000000..694f7e0 --- /dev/null +++ b/pages/ui/hint.md @@ -0,0 +1,124 @@ +# UI.Hint + +## Описание + +`UI.Hint` — это JavaScript-расширение для создания и управления всплывающими подсказками (хинт). Компонент позволяет добавлять подсказки к любым элементам на странице как декларативно через HTML-атрибуты, так и программно с помощью JavaScript API. + +**Расположение:** `/ui/install/js/ui/hint/` + +## Подключение + +Для использования `UI.Hint` необходимо подключить расширение: + +```php +\Bitrix\Main\UI\Extension::load('ui.hint'); +``` + +## Декларативное использование (HTML) + +Самый простой способ добавить подсказку — использовать `data-hint` атрибут. Элемент с таким атрибутом автоматически инициализируется и получит иконку подсказки. + +```html + +``` + +### Основные атрибуты + +| Атрибут | Описание | +|---|---| +| `data-hint` | **Обязательный.** Устанавливает текст подсказки. Если текст не указан, подсказка не будет показана. | +| `data-hint-html` | Указывает, что содержимое `data-hint` является HTML-кодом. По умолчанию текст экранируется. | +| `data-hint-interactivity` | Делает подсказку интерактивной: она не будет закрываться при наведении на нее курсора, что позволяет взаимодействовать с ее содержимым (например, кликнуть по ссылке). | +| `data-hint-no-icon` | Отключает отображение стандартной иконки подсказки. Атрибут следует добавлять к элементу, у которого уже есть видимое содержимое. | +| `data-hint-center` | Центрирует подсказку относительно элемента, к которому она привязана. | + +### Примеры использования + +#### Простая текстовая подсказка + +```html + +``` + +#### Подсказка с HTML-содержимым + +Для вставки сложного форматирования используйте атрибут `data-hint-html`. + +```html + +``` + +#### Интерактивная подсказка + +Полезна, когда в подсказке есть ссылки или кнопки. + +```html +нажать на ссылку." + data-hint-html + data-hint-interactivity +> +``` + +#### Подсказка без иконки + +Используется, когда подсказка нужна для элемента, у которого уже есть контент. + +```html + + Наведите на меня + +``` + +## Программное использование (JavaScript) + +`UI.Hint` предоставляет глобальный объект `BX.UI.Hint` для управления подсказками. + +### Инициализация подсказок + +Если подсказки добавляются на страницу динамически, их нужно инициализировать. + +```javascript +// Инициализировать все неинициализированные подсказки в документе +BX.UI.Hint.init(); + +// Инициализировать подсказки в пределах конкретного контейнера +const container = document.getElementById('my-container'); +BX.UI.Hint.init(container); +``` + +### Создание узла подсказки + +Вы можете создать DOM-узел подсказки с помощью JavaScript. + +```javascript +const hintNode = BX.UI.Hint.createNode('Текст для новой подсказки'); +document.body.appendChild(hintNode); +``` + +### Методы API + +| Метод | Описание | +|---|---| +| `init(context)` | Инициализирует все подсказки с атрибутом `data-hint` внутри `context` (по умолчанию `document.body`). | +| `createNode(text)` | Создает и возвращает DOM-элемент `` с настроенной подсказкой. | +| `show(anchorNode, html, centerPos)` | Программно показывает подсказку для элемента `anchorNode`. | +| `hide()` | Программно скрывает текущую активную подсказку. | +| `createInstance(parameters)` | Создает новый, изолированный экземпляр менеджера подсказок с кастомными параметрами. | + +### Создание кастомного экземпляра + +Для особых случаев можно создать отдельный менеджер подсказок. + +```javascript +const myHintManager = BX.UI.Hint.createInstance({ + attributeName: 'data-my-hint', + className: 'my-hint-class' +}); + +// Этот менеджер будет работать только с атрибутом data-my-hint +myHintManager.init(); +``` \ No newline at end of file diff --git a/pages/ui/icon-set-api-core.md b/pages/ui/icon-set-api-core.md new file mode 100644 index 0000000..9f297e4 --- /dev/null +++ b/pages/ui/icon-set-api-core.md @@ -0,0 +1,133 @@ +# Icon + +## Описание + +Расширение `ui.icon-set.api.core` предоставляет стандартизированный набор иконок для использования в интерфейсе. Оно позволяет создавать и настраивать иконки с помощью класса `Icon`. + +**Расположение:** `/ui/install/js/ui/icon-set/api/core/src` + +## Импорт + +```javascript +import { Icon, Actions, Social, Main, IconHoverMode } from 'ui.icon-set.api.core'; +``` + +## Основные свойства + +Для создания иконки используется класс `Icon` с объектом опций `IconOptions`. + +```javascript +new Icon(options: IconOptions): HTMLElement; +``` + +### icon + +Определяет, какая иконка будет отображена. Значение должно быть одной из констант, экспортируемых из наборов иконок. + +**Тип:** `String` +**Обязательное свойство.** + +### size + +Задает размер иконки в пикселях. + +**Тип:** `Number` +**По умолчанию:** `null` (используется размер по умолчанию) + +### color + +Устанавливает цвет иконки. + +**Тип:** `String` +**По умолчанию:** `null` (используется цвет по умолчанию) + +### hoverMode + +Определяет поведение иконки при наведении курсора. + +**Тип:** `String` +**По умолчанию:** `null` + +| Константа | Значение | Описание | +|-----------|----------|----------| +| `IconHoverMode.DEFAULT` | `'default'` | Стандартное поведение при наведении | +| `IconHoverMode.ALT` | `'alt'` | Альтернативное поведение при наведении | + +### responsive + +Определяет, будет ли иконка адаптивной. + +**Тип:** `Boolean` +**По умолчанию:** `false` + +## Примеры использования + +### Базовый пример + +Создание иконки "карандаш" из набора `Actions` и добавление ее на страницу. + +```javascript +import { Icon, Actions } from 'ui.icon-set.api.core'; + +const pencilIcon = new Icon({ + icon: Actions.PENCIL_DRAW, +}).render(); + +document.body.appendChild(pencilIcon); +``` + +### Иконка с размером и цветом + +Создание иконки "настройки" размером 24px и определенным цветом. + +```javascript +import { Icon, Actions } from 'ui.icon-set.api.core'; + +const settingsIcon = new Icon({ + icon: Actions.SETTINGS_1, + size: 24, + color: '#525C69', +}).render(); + +document.body.appendChild(settingsIcon); +``` + +## TypeScript типы + +```typescript +import type { IconOptions } from 'ui.icon-set.api.core'; +``` + +### IconOptions + +Интерфейс для объекта опций, передаваемого в конструктор `Icon`. + +```typescript +type IconOptions = { + icon: string, + size?: number, + color?: string, + hoverMode?: IconHoverMode, + responsive?: boolean, +}; +``` + +## Экспортируемые модули + +- `Icon`: Основной класс для создания иконок. +- `IconHoverMode`: Объект с константами для режимов наведения. +- `IconOptions`: TypeScript-тип для опций иконки. +- **Наборы иконок:** + - `Actions` + - `Social` + - `Main` + - `ContactCenter` + - `CRM` + - `Editor` + - `Special` + - `Animated` + - `Outline` + - `Solid` + - `Disk` + - `DiskCompact` + - `SmallOutline` diff --git a/pages/ui/icon-set-api-vue.md b/pages/ui/icon-set-api-vue.md new file mode 100644 index 0000000..d197ca0 --- /dev/null +++ b/pages/ui/icon-set-api-vue.md @@ -0,0 +1,121 @@ +# Icon Set (BIcon) + +## Описание + +Компонент `BIcon` предназначен для отображения иконок из стандартного набора иконок Bitrix. Он позволяет легко вставлять иконки, настраивать их размер, цвет и поведение при наведении. + +**Расположение:** `/ui/install/js/ui/icon-set/api/vue/` + +## Импорт компонента + +```javascript +import { BIcon, Set, Outline, Solid, SmallOutline } from 'ui.icon-set.api.vue'; +``` + +## Основные свойства + +### name + +Определяет, какая иконка будет отображена. Имя иконки следует брать из одного из экспортируемых наборов. + +**Тип:** `String` +**Обязательное:** `true` + +Иконки сгруппированы в наборы: +- `Set`: Основной набор иконок. +- `Outline`: Контурные иконки. +- `Solid`: Залитые иконки. +- `SmallOutline`: Маленькие контурные иконки. + +### color + +Задает цвет иконки. + +**Тип:** `String` +**По умолчанию:** `null` + +### size + +Устанавливает размер иконки в пикселях. + +**Тип:** `Number` +**По умолчанию:** `null` + +### hoverable + +При значении `true` добавляет стандартный эффект при наведении курсора. + +**Тип:** `Boolean` +**По умолчанию:** `false` + +### hoverableAlt + +При значении `true` добавляет альтернативный эффект при наведении курсора. + +**Тип:** `Boolean` +**По умолчанию:** `false` + +### responsive + +При значении `true` делает иконку адаптивной, позволяя ей масштабироваться относительно родительского контейнера. Свойство `size` при этом игнорируется. + +**Тип:** `Boolean` +**По умолчанию:** `false` + +## Примеры использования + +### Базовый пример + +Этот пример показывает, как отобразить иконку закрытия размером 24px, используя `v-bind` для передачи свойств. + +```javascript +import { BIcon, Set } from 'ui.icon-set.api.vue'; + +export const MyComponent = { + components: { BIcon }, + computed: { + closeIconProps(): { name: string, size: number } { + return { + name: Set.CROSS_40, + size: 24, + }; + }, + }, + template: ` + + `, +}; +``` + +### Иконка с цветом и эффектом наведения + +В этом примере иконка настраивается через вычисляемое свойство, которое включает цвет, размер и эффект при наведении. + +```javascript +import { BIcon, Outline } from 'ui.icon-set.api.vue'; + +export const MyComponentWithIcon = { + components: { BIcon }, + computed: { + iconProps(): { name: string, color: string, size: number, hoverable: boolean } { + return { + name: Outline.CHECK, + color: '#2FC6F6', + size: 32, + hoverable: true, + }; + }, + }, + template: ` + + `, +}; +``` + +## Экспортируемые модули + +- `BIcon`: Основной Vue-компонент для отображения иконок. +- `Set`: Объект с константами для основного набора иконок. +- `Outline`: Объект с константами для контурных иконок. +- `Solid`: Объект с константами для залитых иконок. +- `SmallOutline`: Объект с константами для маленьких контурных иконок. diff --git a/pages/ui/main-popup.md b/pages/ui/main-popup.md new file mode 100644 index 0000000..21cbce8 --- /dev/null +++ b/pages/ui/main-popup.md @@ -0,0 +1,162 @@ +# main.popup + +## Описание + +Компонент `main.popup` предоставляет мощный и гибкий инструмент для создания и управления всплывающими окнами (попапами) и контекстными меню в Битрикс. Он позволяет настраивать внешний вид, поведение, анимацию и взаимодействие с пользователем. + +**Расположение:** `/main/install/js/main/popup/src/` + +## Импорт и использование + +### ES6 + +```javascript +import { Popup, PopupManager, Menu, MenuItem, MenuManager, CloseIconSize } from 'main.popup'; + +// Создание попапа +const popup = new Popup({ + id: 'my-popup', + content: 'Содержимое попапа', + closeByEsc: true, + autoHide: true, +}); +popup.show(); + +// Создание меню +const menu = new Menu({ + id: 'my-menu', + bindElement: document.querySelector('#menu-target'), + items: [ + { text: 'Пункт 1', onclick: () => console.log('Пункт 1') }, + { text: 'Пункт 2', delimiter: true }, + { text: 'Пункт 3' }, + ] +}); +menu.show(); +``` + +--- + +## Popup + +Основной класс для создания всплывающих окон. + +### Основные параметры `PopupOptions` + +| Параметр | Тип | По умолчанию | Описание | +|---|---|---|---| +| `id` | `string` | `popup-window-{random}` | Уникальный идентификатор попапа. | +| `bindElement` | `HTMLElement \| {left: number, top: number}` | `null` | Элемент, к которому будет привязан попап. | +| `content` | `string \| HTMLElement` | `null` | Содержимое окна. | +| `buttons` | `Array` | `[]` | Массив кнопок (`BX.UI.Button`). | +| `width` / `height` | `number` | `null` | Ширина/высота окна. | +| `minWidth` / `minHeight` | `number` | `null` | Минимальная ширина/высота. | +| `maxWidth` / `maxHeight` | `number` | `null` | Максимальная ширина/высота. | +| `padding` | `number` | `15` | Внутренний отступ контейнера попапа. | +| `contentPadding` | `number` | `0` | Внутренний отступ контента. | +| `borderRadius` | `string` | `null` | Радиус скругления углов. | +| `background` | `string` | `null` | CSS-фон для всего попапа. | +| `contentBackground` | `string` | `null` | CSS-фон для области контента. | +| `className` | `string` | `''` | Дополнительный CSS-класс для контейнера. | +| `darkMode` | `boolean` | `false` | Темный режим. | +| `autoHide` | `boolean` | `false` | Автоматически закрывать при клике вне окна. | +| `closeByEsc` | `boolean` | `false` | Закрывать по нажатию на `Esc`. | +| `draggable` | `boolean \| {element: HTMLElement}` | `false` | Разрешить перетаскивание. По умолчанию за заголовок. | +| `resizable` | `boolean` | `false` | Разрешить изменение размера. | +| `titleBar` | `string \| boolean` | `false` | Заголовок окна. | +| `closeIcon` | `boolean \| {size: CloseIconSize}` | `false` | Показать иконку закрытия. | +| `angle` | `boolean \| {position, offset}` | `false` | Показать "стрелку" у попапа. | +| `overlay` | `boolean \| {backgroundColor, opacity}` | `false` | Показать подложку (overlay). | +| `animation` | `string \| {showClassName, closeClassName}` | `null` | Настройки анимации появления/скрытия. Варианты: `fading`, `fading-slide`, `scale`. | +| `cacheable` | `boolean` | `true` | Не уничтожать DOM попапа при закрытии. | +| `events` | `object` | `{}` | Объект с обработчиками событий. | + +### Методы `Popup` + +- `show()`: Показать попап. +- `close()`: Закрыть попап. +- `toggle()`: Переключить видимость. +- `destroy()`: Уничтожить попап. +- `isShown()`: `boolean` - Проверить, показан ли попап. +- `adjustPosition()`: Пересчитать позицию относительно `bindElement`. +- `setContent(content)`: Установить новое содержимое. +- `setButtons(buttons)`: Установить новый набор кнопок. +- `setWidth(width)` / `setHeight(height)`: Установить размеры. +- `getPopupContainer()`: `HTMLElement` - Получить DOM-элемент контейнера попапа. +- `getContentContainer()`: `HTMLElement` - Получить DOM-элемент контейнера контента. + +### События `Popup` + +- `onInit`: Сразу после создания экземпляра. +- `onAfterInit`: После полной инициализации. +- `onFirstShow`: При первом показе. +- `onShow`: Перед началом анимации показа. +- `onAfterShow`: После завершения анимации показа. +- `onClose`: Перед началом анимации закрытия. +- `onAfterClose`: После завершения анимации закрытия. +- `onDestroy`: Перед уничтожением. +- `onDragStart` / `onDrag` / `onDragEnd`: События перетаскивания. +- `onResizeStart` / `onResize` / `onResizeEnd`: События изменения размера. + +--- + +## Menu + +Класс для создания контекстных меню. Наследуется от `Popup` и имеет схожие параметры и методы. + +### Основные параметры `MenuOptions` + +| Параметр | Тип | По умолчанию | Описание | +|---|---|---|---| +| `items` | `Array` | `[]` | Массив пунктов меню. | +| `closeSubMenuOnMouseLeave` | `boolean` | `true` | Закрывать подменю при уводе курсора. | +| `maxHeight` | `number` | `null` | Максимальная высота меню. | +| `allowResizeX` | `boolean` | `false` | Разрешить изменение ширины. | + +### `MenuItemOptions` + +| Параметр | Тип | Описание | +|---|---|---| +| `id` | `string` | Уникальный идентификатор пункта. | +| `text` | `string` | Текст пункта. | +| `html` | `string` | HTML-содержимое пункта (имеет приоритет над `text`). | +| `href` | `string` | Ссылка (пункт будет тегом ``). | +| `onclick` | `Function` | Обработчик клика. | +| `delimiter` | `boolean` | Является ли пункт разделителем. | +| `disabled` | `boolean` | Сделать пункт неактивным. | +| `items` | `Array` | Массив для создания подменю. | + +--- + +## Менеджеры + +- `PopupManager`: Позволяет управлять всеми созданными попапами. + - `PopupManager.create(options)`: Фабричный метод для создания `Popup`. + - `PopupManager.getPopupById(id)`: Получить экземпляр попапа по ID. +- `MenuManager`: Аналогично для меню. + - `MenuManager.create(options)`: Фабричный метод для создания `Menu`. + - `MenuManager.getMenuById(id)`: Получить экземпляр меню по ID. + +--- + +## TypeScript типы + +```typescript +import type { + PopupOptions, + PopupTarget, + PopupAnimationOptions, + MenuOptions, + MenuItemOptions +} from 'main.popup'; +``` + +## Совместимость + +Для обратной совместимости `main.popup` предоставляет старые имена классов в глобальном пространстве `BX`: + +- `BX.PopupWindow` (алиас для `Popup`) +- `BX.PopupMenuWindow` (алиас для `Menu`) +- `BX.PopupWindowManager` (алиас для `PopupManager`) +- `BX.PopupMenu` (алиас для `MenuManager`) +- `BX.PopupMenuItem` (алиас для `MenuItem`) \ No newline at end of file diff --git a/pages/ui/main-sidepanel.md b/pages/ui/main-sidepanel.md new file mode 100644 index 0000000..be16f5f --- /dev/null +++ b/pages/ui/main-sidepanel.md @@ -0,0 +1,144 @@ +# SidePanel + +## Описание + +Модуль `main.sidepanel` предоставляет функциональность для создания и управления слайдерами. Он позволяет открывать страницы и компоненты в модальных окнах, которые выдвигаются сбоку экрана, не перезагружая основную страницу. Управление всеми слайдерами осуществляется через единый менеджер — `SidePanel.Instance`. + +**Расположение:** `/main/install/js/main/sidepanel/src/` + +## Получение экземпляра + +Доступ к менеджеру слайдеров можно получить импортировав его из модуля. + +```javascript +// ES6 +import { SidePanel } from 'main.sidepanel'; +const sliderManager = SidePanel.Instance; +``` + +## Основные методы + +### Открытие слайдера + +Основной метод для открытия нового слайдера — `open`. Он принимает URL для загрузки в слайдере и объект с опциями. + +```javascript +import { SidePanel } from 'main.sidepanel'; + +SidePanel.Instance.open("profile/user/1/", { + width: 800, + cacheable: false, + allowChangeHistory: true, + events: { + onClose: function(event) { + console.log("Slider was closed!"); + } + } +}); +``` + +### Закрытие слайдера + +Для закрытия текущего (верхнего) слайдера используется метод `close`. + +```javascript +SidePanel.Instance.close(); +``` + +### Отправка сообщений между слайдерами + +Модуль поддерживает обмен сообщениями между слайдерами и основной страницей с помощью `postMessage`. + +```javascript +import { SidePanel } from 'main.sidepanel'; + +// Отправка сообщения из дочернего слайдера в родительский +SidePanel.Instance.postMessage(window, "my-event-name", { some: "data" }); + +// Подписка на событие в родительском окне +SidePanel.Instance.subscribe("my-event-name", function(event) { + const data = event.getData(); + console.log(data); // { some: "data" } +}); +``` + +## Основные опции при открытии (`open`) + +| Параметр | Тип | Описание | +|---|---|---| +| `width` | `Number` | Ширина слайдера в пикселях. | +| `cacheable` | `Boolean` | Если `true`, содержимое слайдера будет кешироваться. По умолчанию `true`. | +| `allowChangeHistory` | `Boolean` | Если `true`, URL слайдера будет добавлен в историю браузера. Позволяет навигацию по кнопкам "назад/вперед". | +| `events` | `Object` | Объект с обработчиками событий слайдера (`onOpen`, `onClose`, `onLoad`, `onDestroy`). | +| `label` | `Object` | Позволяет добавить кастомную метку в шапку слайдера. Например: `{text: 'My Label', color: '#ff0000'}`. | +| `contentCallback` | `Function` | Функция, которая возвращает `Promise` или HTML-элемент для отображения в слайдере вместо загрузки URL. | +| `requestMethod` | `String` | Метод запроса для загрузки контента (`'get'` или `'post'`). По умолчанию `'get'`. | +| `requestParams` | `Object` | Параметры, которые будут отправлены с запросом (при `requestMethod: 'post'`). | + +## События слайдера (`events`) + +| Событие | Описание | +|---|---| +| `onOpenStart` | Вызывается перед началом анимации открытия. | +| `onOpenComplete` | Вызывается после завершения анимации открытия. | +| `onLoad` | Вызывается после полной загрузки контента в слайдере. | +| `onCloseStart` | Вызывается перед началом анимации закрытия. | +| `onCloseComplete` | Вызывается после полного закрытия слайдера. | +| `onDestroy` | Вызывается при уничтожении экземпляра слайдера. | + +## Примеры использования + +### Открытие простого слайдера + +```javascript +import { SidePanel } from 'main.sidepanel'; + +SidePanel.Instance.open("/tasks/task/view/1/", { + width: 1000, + allowChangeHistory: false +}); +``` + +### Слайдер с обратным вызовом при закрытии + +```javascript +import { SidePanel } from 'main.sidepanel'; + +SidePanel.Instance.open("/crm/deal/details/1/", { + events: { + onClose: function(event) { + console.log("Deal slider has been closed."); + // Можно перезагрузить страницу или обновить данные + // window.location.reload(); + } + } +}); +``` + +### Использование `contentCallback` для кастомного контента + +```javascript +import { SidePanel } from 'main.sidepanel'; + +SidePanel.Instance.open("my-custom-slider", { + contentCallback: function(slider) { + return new Promise(function(resolve, reject) { + const element = document.createElement('div'); + element.innerHTML = "

Hello from SidePanel!

"; + resolve(element); + }); + } +}); +``` + +## Экспортируемые модули + +- `SidePanel` — Основной объект с доступом к `Instance`. +- `Slider` — Класс, представляющий отдельный слайдер. +- `SliderManager` — Класс менеджера слайдеров (синглтон). +- `Toolbar` — Класс панели инструментов для свернутых слайдеров. +- `MessageEvent` — Класс события для `postMessage`. +- `SliderEvent` — Базовый класс событий слайдера. +- `Label` — Класс для управления метками в шапке. +- `Dictionary` — Утилита для хранения данных. +- `...Options` — TypeScript-типы для опций. diff --git a/pages/ui/notification-manager.md b/pages/ui/notification-manager.md new file mode 100644 index 0000000..0efa52b --- /dev/null +++ b/pages/ui/notification-manager.md @@ -0,0 +1,143 @@ +# Менеджер уведомлений (Notification Manager) + +## Описание + +Модуль `ui.notification-manager` предоставляет единый API для работы с уведомлениями. Он автоматически выбирает наилучший способ доставки уведомлений в зависимости от окружения. + +**Расположение:** `/ui/install/js/ui/notification-manager/src` + +## Импорт компонента + +```javascript +import { Notifier, Notification } from 'ui.notification-manager'; +``` + +## Основные сущности + +### Notifier + +Основной класс для управления уведомлениями. Он отвечает за создание и отправку уведомлений, а также за подписку на события. + +#### `Notifier.notify(options)` + +Отправляет уведомление. + +**Параметры:** + +| Имя | Тип | Описание | +| --- | --- | --- | +| `options` | `NotificationOptions` | Объект с параметрами уведомления. | + +#### `Notifier.subscribe(eventName, handler)` + +Подписывается на события уведомлений. + +**Параметры:** + +| Имя | Тип | Описание | +| --- | --- | --- | +| `eventName` | `String` | Имя события (например, `click`, `close`, `reply`). | +| `handler` | `Function` | Обработчик события. | + +### NotificationOptions + +Объект с параметрами для создания уведомления. + +| Свойство | Тип | Обязательное | Описание | +| --- | --- | --- | --- | +| `id` | `string` | Да | Уникальный идентификатор уведомления. | +| `category` | `string` | Нет | Категория уведомления (например, `im`, `calendar`). | +| `title` | `string` | Нет | Заголовок уведомления. | +| `text` | `string` | Нет | Основной текст уведомления. | +| `icon` | `string` | Нет | URL иконки для уведомления. | +| `inputPlaceholderText` | `string` | Нет | Текст-заполнитель для поля ввода (если уведомление поддерживает ответ). | +| `button1Text` | `string` | Нет | Текст для первой кнопки. | +| `button2Text` | `string` | Нет | Текст для второй кнопки. | + +## Примеры использования + +### Отправка простого уведомления + +```javascript +import { Notifier } from 'ui.notification-manager'; + +Notifier.notify({ + id: 'my-notification-1', + title: 'Привет!', + text: 'Это простое уведомление.', + icon: '/path/to/icon.png' +}); +``` + +### Уведомление с кнопками и подпиской на клик + +```javascript +import { Notifier } from 'ui.notification-manager'; + +const notificationId = 'my-interactive-notification'; + +Notifier.notify({ + id: notificationId, + title: 'Встреча', + text: 'У вас запланирована встреча через 15 минут.', + button1Text: 'Открыть календарь', + button2Text: 'Отложить' +}); + +Notifier.subscribe('click', (event) => { + const { id, buttonId } = event.getData(); + if (id === notificationId) + { + if (buttonId === 1) + { + console.log('Пользователь нажал "Открыть календарь"'); + // window.open('/calendar/'); + } + else if (buttonId === 2) + { + console.log('Пользователь нажал "Отложить"'); + } + } +}); +``` + +### Уведомление с полем для ответа + +```javascript +import { Notifier } from 'ui.notification-manager'; + +const notificationId = 'new-message-123'; + +Notifier.notify({ + id: notificationId, + category: 'im', + title: 'Новое сообщение от Анны', + text: 'Привет, как дела?', + inputPlaceholderText: 'Введите ответ...' +}); + +Notifier.subscribe('reply', (event) => { + const { id, reply } = event.getData(); + if (id === notificationId) + { + console.log(`Пользователь ответил: "${reply}"`); + // Логика отправки ответа + } +}); +``` + +## TypeScript типы + +```typescript +import type { NotificationOptions } from 'ui.notification-manager'; +``` + +### NotificationOptions + +Интерфейс для объекта опций при создании уведомления. + +## Экспортируемые модули + +- `Notifier` - Основной класс для отправки уведомлений и подписки на события. +- `Notification` - Класс, представляющий объект уведомления (в основном для внутреннего использования). +- `NotificationOptions` - TypeScript тип для опций уведомления. diff --git a/pages/ui/system-chip.md b/pages/ui/system-chip.md new file mode 100644 index 0000000..2d47c69 --- /dev/null +++ b/pages/ui/system-chip.md @@ -0,0 +1,146 @@ +# Chip + +## Описание + +Компонент `Chip` используется для отображения небольших блоков информации, таких как теги или категории. Поддерживает различные размеры, цветовые схемы, скругление углов и может содержать текст. + +**Расположение:** `/ui/install/js/ui/system/chip/src` + +## Импорт компонента + +```javascript +import { Chip, ChipSize, ChipDesign } from 'ui.system.chip.vue'; +``` + +## Основные свойства + +### size (размер) + +Определяет размер компонента. + +**Тип:** `String` +**По умолчанию:** `ChipSize.Lg` + +| Константа | Значение | Описание | Высота | +|-----------|----------|----------|--------| +| `ChipSize.Lg` | `'lg'` | Большой размер | 32px | +| `ChipSize.Md` | `'md'` | Средний размер | 28px | +| `ChipSize.Sm` | `'sm'` | Малый размер | 24px | +| `ChipSize.Xs` | `'xs'` | Очень малый размер | 20px | + +### design (дизайн) + +Определяет цветовую схему и стиль компонента. + +**Тип:** `String` +**По умолчанию:** `ChipDesign.Filled` + +| Константа | Значение | Описание | +|-----------|----------|----------| +| `ChipDesign.Filled` | `'filled'` | Заливка акцентным цветом, белый текст | +| `ChipDesign.Outline` | `'outline'` | Серая обводка, серый текст | +| `ChipDesign.OutlineAccent` | `'outline-accent'` | Синяя обводка, синий текст | +| `ChipDesign.OutlineSuccess` | `'outline-success'` | Зеленая обводка, зеленый текст | +| `ChipDesign.OutlineAlert` | `'outline-alert'` | Красная обводка, красный текст | +| `ChipDesign.OutlineWarning` | `'outline-warning'` | Оранжевая обводка, оранжевый текст | +| `ChipDesign.OutlineNoAccent` | `'outline-no-accent'` | Серая обводка без акцента | +| `ChipDesign.Shadow` | `'shadow'` | С тенью, синяя иконка | +| `ChipDesign.ShadowAccent` | `'shadow-accent'` | С тенью, синий текст и обводка | +| `ChipDesign.ShadowNoAccent` | `'shadow-no-accent'` | С тенью, нейтральный стиль | +| `ChipDesign.ShadowDisabled` | `'shadow-disabled'` | С тенью, состояние disabled | + +### rounded (скругление) + +Определяет форму границ компонента. + +**Тип:** `Boolean` +**По умолчанию:** `false` + +| Значение | Описание | +|----------|----------| +| `false` | Стандартное скругление | +| `true` | Полное скругление | + +### text (текст) + +Текст внутри компонента. + +**Тип:** `String` +**По умолчанию:** `''` + +## Примеры использования + +### Базовый пример + +```vue + +``` + +### С обводкой и скруглением + +```vue + +``` + +### Различные состояния + +```vue + + + + + + + + +``` + +### Различные размеры + +```vue + + + + +``` + +## TypeScript типы + +```typescript +import type { ChipProps, ChipImage } from 'ui.system.chip'; +``` + +### ChipProps + +Интерфейс свойств компонента Chip. + +### ChipImage + +Тип для изображений в компоненте Chip. + +## Экспортируемые модули + +- `Vue` - Vue компоненты +- `Chip` - основной компонент +- `ChipDesign` - константы дизайна +- `ChipSize` - константы размеров +- `ChipProps` - TypeScript тип свойств +- `ChipImage` - TypeScript тип изображения \ No newline at end of file diff --git a/pages/ui/system-input.md b/pages/ui/system-input.md new file mode 100644 index 0000000..934fb39 --- /dev/null +++ b/pages/ui/system-input.md @@ -0,0 +1,110 @@ +# Input + +## Описание + +Компонент `Input` используется для создания текстовых полей ввода с поддержкой различных размеров и стилей оформления. Компонент предоставляет единообразный интерфейс для работы с пользовательским вводом в рамках UI системы Bitrix. + +**Расположение:** `/ui/install/js/ui/system/input/src` + +## Импорт компонента + +```javascript +import { Input, InputSize, InputDesign } from 'ui.system.input.vue'; +``` + +## Основные константы + +### InputSize (размер) + +Определяет размер поля ввода. + +**Тип:** `String` + +| Константа | Значение | Описание | +|-----------|----------|----------| +| `InputSize.Lg` | `'lg'` | Большой размер | +| `InputSize.Md` | `'md'` | Средний размер | +| `InputSize.Sm` | `'sm'` | Малый размер | +| `InputSize.Xs` | `'xs'` | Очень малый размер | + +### InputDesign (дизайн) + +Определяет стиль оформления поля ввода. + +**Тип:** `String` + +| Константа | Значение | Описание | +|-----------|----------|----------| +| `InputDesign.Default` | `'default'` | Стандартный стиль | +| `InputDesign.Primary` | `'primary'` | Основной стиль | +| `InputDesign.Success` | `'success'` | Стиль успеха (зеленый) | +| `InputDesign.Warning` | `'warning'` | Стиль предупреждения (оранжевый) | +| `InputDesign.Danger` | `'danger'` | Стиль ошибки (красный) | + +## Примеры использования + +### Базовый пример + +```vue + +``` + +### Различные размеры + +```vue + + + + +``` + +### Различные стили + +```vue + + + + + + + + + + + +``` + +## Экспортируемые модули + +- `Vue` - Vue компоненты для работы с полями ввода +- `InputSize` - константы размеров +- `InputDesign` - константы стилей оформления + +## Интеграция + +Компонент является частью UI системы Bitrix и следует общим принципам дизайна платформы. Для использования необходимо подключить расширение `ui.system.input` через систему управления расширениями Bitrix. + +```php +\Bitrix\Main\UI\Extension::load('ui.system.input'); +``` \ No newline at end of file diff --git a/pages/ui/system-label.md b/pages/ui/system-label.md new file mode 100644 index 0000000..982690c --- /dev/null +++ b/pages/ui/system-label.md @@ -0,0 +1,161 @@ +# Label + +## Описание + +Компонент `Label` используется для отображения меток (лейблов) с текстом и/или иконкой. Поддерживает различные размеры, стили, цветовые схемы и может содержать как текст, так и иконки. + +**Расположение:** `/ui/install/js/ui/system/label/src` + +## Импорт компонента + +```javascript +import { Label, LabelStyle, LabelSize, LabelIcon } from 'ui.system.label.vue'; +``` + +## Основные свойства + +### size (размер) + +Определяет размер компонента. + +**Тип:** `String` +**По умолчанию:** `LabelSize.Md` + +| Константа | Значение | Описание | +|-----------|----------|----------| +| `LabelSize.Lg` | `'lg'` | Большой размер | +| `LabelSize.Md` | `'md'` | Средний размер | +| `LabelSize.Sm` | `'sm'` | Малый размер | + +### style (стиль) + +Определяет цветовую схему и визуальный стиль компонента. + +**Тип:** `String` +**По умолчанию:** `LabelStyle.Primary` + +| Константа | Значение | Описание | +|-----------|----------|----------| +| `LabelStyle.Primary` | `'primary'` | Основной стиль (синий) | +| `LabelStyle.Secondary` | `'secondary'` | Второстепенный стиль (серый) | +| `LabelStyle.Success` | `'success'` | Стиль успеха (зеленый) | +| `LabelStyle.Danger` | `'danger'` | Стиль опасности (красный) | +| `LabelStyle.Warning` | `'warning'` | Стиль предупреждения (оранжевый) | +| `LabelStyle.Info` | `'info'` | Информационный стиль (голубой) | +| `LabelStyle.Light` | `'light'` | Светлый стиль | +| `LabelStyle.Dark` | `'dark'` | Темный стиль | + +### icon (иконка) + +Определяет иконку, отображаемую в компоненте. + +**Тип:** `String` +**По умолчанию:** `null` + +Константы иконок доступны через `LabelIcon`: + +| Константа | Значение | Описание | +|-----------|----------|----------| +| `LabelIcon.Check` | `'check'` | Иконка галочки | +| `LabelIcon.Cross` | `'cross'` | Иконка крестика | +| `LabelIcon.Info` | `'info'` | Информационная иконка | +| `LabelIcon.Warning` | `'warning'` | Иконка предупреждения | + +### text (текст) + +Текст внутри компонента. + +**Тип:** `String` +**По умолчанию:** `''` + +## Примеры использования + +### Базовый пример + +```vue +