fui-material 2.7.5 → 2.7.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -25,6 +25,10 @@ interface IFMenuBlockLinksProps {
25
25
  * Количество столбцов в контейнере Grid.
26
26
  */
27
27
  columns?: number;
28
+ /**
29
+ * Включает функционал стеклянной поисковой строки.
30
+ */
31
+ withSearch?: boolean;
28
32
  }
29
33
  /**
30
34
  * Компонент-карточка для группировки ссылок меню.
@@ -6,38 +6,49 @@ import React from "react";
6
6
  * @interface IFMenuLinksProps
7
7
  */
8
8
  interface IFMenuLinksProps {
9
- /** Дочерние элементы (обычно <a>, <Link> или <button>). К каждому будет добавлен класс `link`. */
9
+ /**
10
+ * Дочерние элементы (обычно `<a>`, `<Link>` или `<button>`).
11
+ * К каждому будет добавлен класс стилизации.
12
+ */
10
13
  children: React.ReactNode;
11
- /** Дополнительный класс для внешнего контейнера */
14
+ /** Дополнительный класс для внешнего контейнера карточки */
12
15
  className?: string;
13
- /** Инлайновые стили для внешнего контейнера */
16
+ /** Инлайновые стили для внешнего контейнера карточки */
14
17
  st?: React.CSSProperties;
15
- /** ID элемента */
18
+ /** Уникальный ID элемента контейнера */
16
19
  id?: string;
17
- /** Индексы дочерних элементов (начиная с 0), которые нужно отключить */
20
+ /**
21
+ * Массив индексов (начиная с 0) дочерних элементов, которые нужно отключить.
22
+ * @example disabled={[0, 2]} // отключит первую и третью ссылку
23
+ */
18
24
  disabled?: number[];
25
+ /**
26
+ * Массив бейджей (кодов) для пунктов меню. Индекс соответствует дочернему элементу.
27
+ * Альтернативно, можно передать проп `data-badge="A"` самому дочернему элементу.
28
+ * @example badges={["А", "П1", undefined, "Д1"]}
29
+ */
30
+ badges?: (string | undefined)[];
19
31
  /** Заголовок блока (отображается над списком ссылок) */
20
32
  title?: string;
33
+ /**
34
+ * Строка поиска. Передается автоматически компонентом-оберткой `FMenuBlockLinks`.
35
+ * Фильтрует ссылки по их текстовому содержимому и коду бейджа.
36
+ */
37
+ searchTerm?: string;
21
38
  }
22
39
  /**
23
- * Компонент FMenuLinks — единый стилизованный список ссылок меню.
24
- * Автоматически добавляет класс `link` ко всем дочерним элементам,
25
- * поддерживает отключение отдельных пунктов и опциональный заголовок.
40
+ * Компонент FMenuLinks — единый стилизованный список ссылок меню в виде карточки.
41
+ *
42
+ * Автоматически добавляет классы ко всем дочерним элементам,
43
+ * поддерживает отключение отдельных пунктов, добавление бейджей (кодов)
44
+ * и фильтрацию через встроенный поиск.
26
45
  *
27
46
  * Используется внутри `FMenuBlockLinks` или самостоятельно.
28
47
  *
29
48
  * @component
30
49
  * @example
31
- * <FMenuLinks title="Документы">
32
- * <Link to="/cards">Карточка учета</Link>
33
- * <Link to="/reports">Сводная ведомость</Link>
34
- * </FMenuLinks>
35
- *
36
- * @example
37
- * // Отключение второй ссылки
38
- * <FMenuLinks disabled={[1]}>
39
- * <Link to="/profile">Профиль</Link>
40
- * <Link to="/settings">Настройки</Link>
50
+ * <FMenuLinks title="Регламентные отчеты" badges={["А"]}>
51
+ * <Link to="/reports/a">Общие показатели использования воды</Link>
41
52
  * </FMenuLinks>
42
53
  */
43
54
  declare const FMenuLinks: FC<IFMenuLinksProps>;
@@ -21,24 +21,20 @@ export interface IFNavigateBar {
21
21
  className?: string;
22
22
  }
23
23
  /**
24
- * Компонент `FNavigateBar` — обёртка для навигационной панели.
24
+ * Компонент `FNavigateBar` — стеклянная навигационная панель (Glassmorphism + Wave Effect).
25
25
  *
26
26
  * Содержит список пунктов меню в семантической обёртке `<nav>`.
27
27
  * Поддерживает адаптивность через сетку (`FGrid`, `FGridRow`, `FGridItem`).
28
28
  *
29
29
  * @component
30
30
  * @example
31
- * const getActiveClass = (route: string) => {
32
- * const pathMatch = matchPath({ path: route + '/*' }, location.pathname);
33
- * return pathMatch ? 'nav-rout active' : 'nav-rout';
34
- * };
35
- *
36
31
  * <FNavigateBar>
37
- * <Link to="/">
38
- * <FNavigateBarItem getActiveClass={getActiveClass('/')} className="nav-link">
39
- * Главная
40
- * </FNavigateBarItem>
41
- * </Link>
32
+ * <FNavigateBarItem activeClass={location.pathname === '/'}>
33
+ * <Link to="/" className="wave-nav-link">Главная</Link>
34
+ * </FNavigateBarItem>
35
+ * <FNavigateBarItem activeClass={location.pathname === '/about'}>
36
+ * <Link to="/about" className="wave-nav-link">О нас</Link>
37
+ * </FNavigateBarItem>
42
38
  * </FNavigateBar>
43
39
  *
44
40
  * @param {React.CSSProperties} [st] - Инлайновые стили для `<nav>`.
@@ -46,7 +42,7 @@ export interface IFNavigateBar {
46
42
  * @param {string} [id] - HTML ID для контейнера.
47
43
  * @param {string} [className] - Кастомный класс для контейнера.
48
44
  *
49
- * @returns {JSX.Element} — Рендерит панель навигации с адаптивным расположением.
45
+ * @returns {JSX.Element} — Рендерит панель навигации со стеклянным фоном и эффектом размытия.
50
46
  */
51
47
  declare const FNavigateBar: FC<IFNavigateBar>;
52
48
  export default FNavigateBar;
@@ -2,18 +2,18 @@ import { FC } from "react";
2
2
  /**
3
3
  * Пропсы для компонента `FNavigateBarItem`
4
4
  */
5
- export interface IFNavigateBarItem {
5
+ export interface IFNavigateBarItem extends React.LiHTMLAttributes<HTMLLIElement> {
6
6
  /**
7
7
  * Флаг, указывающий, является ли пункт меню активным.
8
8
  */
9
- activeClass: boolean;
9
+ activeClass?: boolean;
10
10
  /**
11
11
  * Путь или имя маршрута для проверки активности (необязательный).
12
12
  * Может использоваться в будущем для расширения логики.
13
13
  */
14
14
  route?: string;
15
15
  /**
16
- * Контент пункта меню (например, текст или иконка).
16
+ * Контент пункта меню (например, текст, иконка или компонент Link).
17
17
  */
18
18
  children?: React.ReactNode;
19
19
  /**
@@ -30,24 +30,25 @@ export interface IFNavigateBarItem {
30
30
  id?: string;
31
31
  }
32
32
  /**
33
- * Компонент `FNavigateBarItem` — пункт горизонтального меню навигации.
33
+ * Компонент `FNavigateBarItem` — пункт горизонтального меню навигации с волновой анимацией.
34
34
  *
35
- * Отображает отдельный элемент меню (`<li>`), применяя стиль активности на основе переданного флага.
35
+ * Отображает отдельный элемент меню (`<li>`), применяя стиль активности (волновой подъем,
36
+ * градиент #2F80ED, неоновую точку-индикатор) на основе переданного флага `activeClass`.
36
37
  *
37
38
  * @component
38
39
  * @example
39
40
  * <FNavigateBarItem activeClass={location.pathname === '/'}>
40
- * Главная
41
+ * <Link to="/" className="wave-nav-link">Главная</Link>
41
42
  * </FNavigateBarItem>
42
43
  *
43
- * @param {boolean} activeClass - Определяет, является ли пункт активным.
44
+ * @param {boolean} [activeClass] - Определяет, является ли пункт активным.
44
45
  * @param {string} [route] - Необязательный путь, может использоваться для динамической проверки.
45
- * @param {React.ReactNode} [children] - Контент пункта меню (текст, иконка и т.д.).
46
+ * @param {React.ReactNode} [children] - Контент пункта меню (текст, иконка, ссылка и т.д.).
46
47
  * @param {string} [className] - Кастомный класс для дополнительной стилизации.
47
48
  * @param {React.CSSProperties} [st] - Инлайновые стили.
48
49
  * @param {string} [id] - HTML ID элемента.
49
50
  *
50
- * @returns {JSX.Element} — Рендерит `<li>` с возможностью активного состояния.
51
+ * @returns {JSX.Element} — Рендерит `<li>` с поддержкой активного состояния и волнового эффекта.
51
52
  */
52
53
  declare const FNavigateBarItem: FC<IFNavigateBarItem>;
53
54
  export default FNavigateBarItem;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fui-material",
3
- "version": "2.7.5",
3
+ "version": "2.7.7",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public",