@sima-land/ui-nucleons 45.0.0-alpha.34 → 45.0.0-alpha.36

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.
@@ -1,7 +1,16 @@
1
1
  import { AutocompleteProps } from './types';
2
+ import { Elements } from '@floating-ui/react';
2
3
  /**
3
4
  * Поле ввода с подсказками.
4
5
  * @param props Свойства.
5
6
  * @return Элемент.
6
7
  */
7
8
  export declare function Autocomplete({ children, loading, filterOption, dropdownProps, onMenuOpen, onMenuClose, optionsStub, autoComplete, autoFocus, defaultValue, disabled, id, name, onBlur, onChange, onFocus, onInput, placeholder, readOnly, required, type, value, adornmentEnd, baseInputProps, ...restProps }: AutocompleteProps): import("react/jsx-runtime").JSX.Element;
9
+ /**
10
+ * Функция для расчёта высоты выпадающего списка и применения вычисленного значения к элементу.
11
+ * @param input Входящие параметры floating-ui для расчёта.
12
+ */
13
+ export declare function setDropdownHeight({ availableHeight, elements, }: {
14
+ elements: Elements;
15
+ availableHeight: number;
16
+ }): void;
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Autocomplete = Autocomplete;
7
+ exports.setDropdownHeight = setDropdownHeight;
7
8
  const jsx_runtime_1 = require("react/jsx-runtime");
8
9
  const react_1 = require("react");
9
10
  const menu_1 = require("./menu");
@@ -33,11 +34,10 @@ autoComplete, autoFocus, defaultValue, disabled, id, name, onBlur, onChange, onF
33
34
  const inputRef = (0, react_1.useRef)(null);
34
35
  const viewportRef = (0, react_1.useRef)(null);
35
36
  const [needMenu, setNeedMenu] = (0, react_1.useState)(false);
36
- const { refs, ...floating } = (0, react_2.useFloating)({ open: needMenu, ...(0, dropdown_1.dropdownFloatingConfig)() });
37
- const floatingStyle = (0, dropdown_1.useDropdownFloatingStyle)({ refs, ...floating });
38
- const [activeIndex, setActiveIndex] = (0, react_1.useState)(-1);
39
37
  const [currentValue, setCurrentValue] = (0, react_1.useState)(() => `${value ?? defaultValue ?? ''}`);
38
+ const [activeIndex, setActiveIndex] = (0, react_1.useState)(-1);
40
39
  const items = react_1.Children.toArray(children).filter((item) => utils_1.DropdownItemUtils.is(item) && filterOption(item, currentValue));
40
+ const { floatingStyle, refs } = useFloatingStyle(needMenu, items.length);
41
41
  const hasItems = items.length > 0;
42
42
  const hasItemsStub = Boolean(optionsStub);
43
43
  const hasValue = currentValue.length > 0;
@@ -153,7 +153,7 @@ autoComplete, autoFocus, defaultValue, disabled, id, name, onBlur, onChange, onF
153
153
  }, baseInputProps: {
154
154
  ...baseInputProps,
155
155
  onKeyDown: handleKeyDown,
156
- }, adornmentEnd: typeof adornmentEnd === 'function' ? adornmentEnd({ menuShown }) : adornmentEnd }), menuShown && ((0, jsx_runtime_1.jsx)(portal_1.Portal, { children: (0, jsx_runtime_1.jsx)(lifecycle_1.Lifecycle, { onMount: onMenuOpen, onUnmount: onMenuClose, children: (0, jsx_runtime_1.jsxs)(menu_1.AutocompleteMenu, { ...dropdownProps, rootRef: refs.setFloating, viewportRef: viewportRef, style: { ...floatingStyle, ...dropdownProps?.style }, onDismiss: () => setNeedMenu(false), onMouseDown: event => {
156
+ }, adornmentEnd: typeof adornmentEnd === 'function' ? adornmentEnd({ menuShown }) : adornmentEnd }), menuShown && ((0, jsx_runtime_1.jsx)(portal_1.Portal, { children: (0, jsx_runtime_1.jsx)(lifecycle_1.Lifecycle, { onMount: onMenuOpen, onUnmount: onMenuClose, children: (0, jsx_runtime_1.jsxs)(menu_1.AutocompleteMenu, { ...dropdownProps, className: dropdownProps?.className, rootRef: refs.setFloating, viewportRef: viewportRef, style: { ...floatingStyle, ...dropdownProps?.style }, onDismiss: () => setNeedMenu(false), onMouseDown: event => {
157
157
  // предотвращение расфокусировки поля при клике внутри меню
158
158
  // необходимо чтобы можно было взяться мышкой за полосу прокрутки
159
159
  if (document.activeElement &&
@@ -173,6 +173,40 @@ autoComplete, autoFocus, defaultValue, disabled, id, name, onBlur, onChange, onF
173
173
  }
174
174
  } }, index))), !loading && items.length === 0 && optionsStub, loading && (0, jsx_runtime_1.jsx)(dropdown_1.DropdownLoading, {})] }) }) }))] }));
175
175
  }
176
+ /**
177
+ * Формирует стили и создаёт ref-ы для меню.
178
+ * @param open Нужно ли выводить меню.
179
+ * @param itemsCount Количество элементов в выпадающем списке.
180
+ * @return Объект со стилями и ref-ами необходимыми для выпадающего меню.
181
+ */
182
+ function useFloatingStyle(open, itemsCount) {
183
+ const floatingConfig = (0, dropdown_1.dropdownFloatingConfig)();
184
+ const { refs, ...floating } = (0, react_2.useFloating)({
185
+ open,
186
+ ...floatingConfig,
187
+ middleware: [...floatingConfig.middleware, (0, react_2.size)(getFloatingSizeOptions, [itemsCount])],
188
+ });
189
+ return { refs, floatingStyle: (0, dropdown_1.useDropdownFloatingStyle)({ refs, ...floating }) };
190
+ }
191
+ /**
192
+ * Функция для формирования настроек middleware size библиотеки floating-ui.
193
+ * @return Настройки middleware size библиотеки floating-ui.
194
+ */
195
+ const getFloatingSizeOptions = () => ({
196
+ rootBoundary: 'viewport',
197
+ apply: setDropdownHeight,
198
+ padding: 16,
199
+ });
200
+ /**
201
+ * Функция для расчёта высоты выпадающего списка и применения вычисленного значения к элементу.
202
+ * @param input Входящие параметры floating-ui для расчёта.
203
+ */
204
+ function setDropdownHeight({ availableHeight, elements, }) {
205
+ elements.floating.style.height = 'auto';
206
+ if (elements.floating.scrollHeight >= availableHeight) {
207
+ elements.floating.style.height = `${availableHeight}px`;
208
+ }
209
+ }
176
210
  /**
177
211
  * Фильтр вариантов выбора по умолчанию.
178
212
  * @param item Вариант из меню.
@@ -1 +1 @@
1
- {"version":3,"file":"autocomplete.js","sourceRoot":"","sources":["../../src/autocomplete/autocomplete.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"autocomplete.js","sourceRoot":"","sources":["../../src/autocomplete/autocomplete.tsx"],"names":[],"mappings":"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"}
@@ -9,9 +9,10 @@
9
9
 
10
10
  // задавать можно только максимальную высоту через --dropdown-max-height
11
11
  max-height: var(--dropdown-max-height, 376px) !important;
12
- height: auto !important;
12
+ height: auto;
13
13
  }
14
14
 
15
15
  .inner {
16
+ height: 100%;
16
17
  max-height: calc(var(--dropdown-max-height, 376px) - 16px); // вычитаем padding корневого элемента
17
18
  }
@@ -1,10 +1,18 @@
1
1
  import { RefObject } from 'react';
2
- import { UseFloatingOptions, UseFloatingReturn } from '@floating-ui/react';
2
+ import { autoUpdate, UseFloatingReturn } from '@floating-ui/react';
3
3
  /**
4
4
  * Возвращает конфигурацию для `useFloating` по дизайн-гайдам.
5
5
  * @return Конфигурация для `useFloating` по дизайн-гайдам.
6
6
  */
7
- export declare function dropdownFloatingConfig(): Partial<UseFloatingOptions>;
7
+ export declare function dropdownFloatingConfig(): {
8
+ whileElementsMounted: typeof autoUpdate;
9
+ placement: "bottom-start";
10
+ middleware: {
11
+ name: string;
12
+ options?: any;
13
+ fn: (state: import("@floating-ui/dom").MiddlewareState) => import("@floating-ui/core").MiddlewareReturn | Promise<import("@floating-ui/core").MiddlewareReturn>;
14
+ }[];
15
+ };
8
16
  /**
9
17
  * Возвращает стили для элемента с учетом "слоя".
10
18
  * @param floating Результат вызова useFloating.
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/dropdown/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/dropdown/utils.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
- import { FileIconProps } from './types';
1
+ import type { FileIconProps } from './types';
2
+ export declare const KNOWN_TYPES: Set<string>;
2
3
  /**
3
4
  * Иконка файла.
4
5
  * @param props Свойства. Поддерживаются свойства <svg />.
5
6
  * @return Элемент.
6
7
  */
7
- export declare function FileIcon({ type, typeDisplayed, ...svgProps }: FileIconProps): import("react/jsx-runtime").JSX.Element;
8
+ export declare function FileIcon({ type, isTypeVisible, ...svgProps }: FileIconProps): import("react/jsx-runtime").JSX.Element;
@@ -3,17 +3,20 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.KNOWN_TYPES = void 0;
6
7
  exports.FileIcon = FileIcon;
7
8
  const jsx_runtime_1 = require("react/jsx-runtime");
8
- const bind_1 = __importDefault(require("classnames/bind"));
9
+ const classnames_1 = __importDefault(require("classnames"));
9
10
  const file_icon_m_scss_1 = __importDefault(require("./file-icon.m.scss"));
10
- const cx = bind_1.default.bind(file_icon_m_scss_1.default);
11
- const KNOWN_TYPES = new Set([
11
+ const react_1 = require("react");
12
+ exports.KNOWN_TYPES = new Set([
13
+ 'avi',
12
14
  'doc',
13
15
  'docx',
14
16
  'heic',
15
17
  'jpg',
16
18
  'mov',
19
+ 'mp3',
17
20
  'mp4',
18
21
  'pdf',
19
22
  'png',
@@ -29,7 +32,14 @@ const KNOWN_TYPES = new Set([
29
32
  * @param props Свойства. Поддерживаются свойства <svg />.
30
33
  * @return Элемент.
31
34
  */
32
- function FileIcon({ type, typeDisplayed = typeof type === 'string' && KNOWN_TYPES.has(type), ...svgProps }) {
33
- return type && typeDisplayed ? ((0, jsx_runtime_1.jsxs)("svg", { width: '32', height: '32', viewBox: '0 0 32 32', ...svgProps, children: [(0, jsx_runtime_1.jsx)("path", { className: cx('main', type.toLowerCase()), opacity: '0.88', d: 'M6 5C6 3.89543 6.89543 3 8 3H20L26 9V27C26 28.1046 25.1046 29 24 29H8C6.89543 29 6 28.1046 6 27V5Z' }), (0, jsx_runtime_1.jsx)("path", { opacity: '0.32', d: 'M21 9L26 9L20 3L20 8C20 8.55229 20.4477 9 21 9Z', fill: '#fff' }), (0, jsx_runtime_1.jsx)("path", { opacity: '0.24', d: 'M25.1667 9L21 9L26 15L26 9C25.5833 9 25.6269 9 25.1667 9Z', fill: 'black' }), (0, jsx_runtime_1.jsx)("text", { x: '16', y: '23', textAnchor: 'middle', fontSize: '6.5', fontWeight: '700', fill: '#fff', children: type.toUpperCase() })] })) : ((0, jsx_runtime_1.jsxs)("svg", { width: '32', height: '32', viewBox: '0 0 32 32', ...svgProps, children: [(0, jsx_runtime_1.jsx)("path", { className: cx('main'), opacity: '0.88', d: 'M6 5C6 3.89543 6.89543 3 8 3H20L26 9V27C26 28.1046 25.1046 29 24 29H8C6.89543 29 6 28.1046 6 27V5Z' }), (0, jsx_runtime_1.jsx)("path", { opacity: '0.32', d: 'M21 9L26 9L20 3L20 8C20 8.55229 20.4477 9 21 9Z', fill: '#fff' }), (0, jsx_runtime_1.jsx)("path", { opacity: '0.24', d: 'M25.1667 9L21 9L26 15L26 9C25.5833 9 25.6269 9 25.1667 9Z', fill: 'black' }), (0, jsx_runtime_1.jsxs)("g", { opacity: '0.8', children: [(0, jsx_runtime_1.jsx)("path", { d: 'M9 22H23V24H9V22Z', fill: '#fff' }), (0, jsx_runtime_1.jsx)("path", { d: 'M9 18H19V20H9V18Z', fill: '#fff' })] })] }));
35
+ function FileIcon({ type = '', isTypeVisible = typeof type === 'string' && exports.KNOWN_TYPES.has(type.toLowerCase()), ...svgProps }) {
36
+ const placeholder = (0, react_1.useMemo)(() => type === null ? (
37
+ /* иконка Stroked/Cross без обертки в виде <svg /> */
38
+ (0, jsx_runtime_1.jsx)("path", { d: 'M12.7071 4.70711C13.0976 4.31658 13.0976 3.68342 12.7071 3.29289C12.3166 2.90237 11.6834 2.90237 11.2929 3.29289L8 6.58579L4.70711 3.29289C4.31658 2.90237 3.68342 2.90237 3.29289 3.29289C2.90237 3.68342 2.90237 4.31658 3.29289 4.70711L6.58579 8L3.29289 11.2929C2.90237 11.6834 2.90237 12.3166 3.29289 12.7071C3.68342 13.0976 4.31658 13.0976 4.70711 12.7071L8 9.41421L11.2929 12.7071C11.6834 13.0976 12.3166 13.0976 12.7071 12.7071C13.0976 12.3166 13.0976 11.6834 12.7071 11.2929L9.41421 8L12.7071 4.70711Z', fill: '#9e9e9e', transform: 'translate(8,12)' })) : (
39
+ /* заглушка текста */
40
+ (0, jsx_runtime_1.jsxs)("g", { opacity: '0.8', children: [(0, jsx_runtime_1.jsx)("path", { d: 'M9 22H23V24H9V22Z', fill: '#fff' }), (0, jsx_runtime_1.jsx)("path", { d: 'M9 18H19V20H9V18Z', fill: '#fff' })] })), [type]);
41
+ return ((0, jsx_runtime_1.jsxs)("svg", { width: '32', height: '32', viewBox: '0 0 32 32', ...svgProps, children: [(0, jsx_runtime_1.jsx)("path", { className: (0, classnames_1.default)(file_icon_m_scss_1.default.main, type === null ? file_icon_m_scss_1.default.broken : file_icon_m_scss_1.default[type.toLowerCase()]), opacity: '0.88', d: 'M6 5C6 3.89543 6.89543 3 8 3H20L26 9V27C26 28.1046 25.1046 29 24 29H8C6.89543 29 6 28.1046 6 27V5Z' }), (0, jsx_runtime_1.jsx)("path", { opacity: '0.32', d: 'M21 9L26 9L20 3L20 8C20 8.55229 20.4477 9 21 9Z', fill: '#fff' }), (0, jsx_runtime_1.jsx)("path", { opacity: '0.24', d: 'M25.1667 9L21 9L26 15L26 9C25.5833 9 25.6269 9 25.1667 9Z', fill: 'black' }), type && isTypeVisible ? (
42
+ /* текст */
43
+ (0, jsx_runtime_1.jsx)("text", { x: '16', y: '23', textAnchor: 'middle', fontSize: '6.5', fontWeight: '700', fill: '#fff', children: type.toUpperCase() })) : (placeholder)] }));
34
44
  }
35
45
  //# sourceMappingURL=file-icon.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-icon.js","sourceRoot":"","sources":["../../src/file-icon/file-icon.tsx"],"names":[],"mappings":";;;;;AA4BA,4BAmDC;;AA9ED,2DAAyC;AACzC,0EAAwC;AAExC,MAAM,EAAE,GAAG,cAAU,CAAC,IAAI,CAAC,0BAAM,CAAC,CAAC;AAEnC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;IAC1B,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;CACN,CAAC,CAAC;AAEH;;;;GAIG;AACH,SAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,aAAa,GAAG,OAAO,IAAI,KAAK,QAAQ,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EACjE,GAAG,QAAQ,EACG;IACd,OAAO,IAAI,IAAI,aAAa,CAAC,CAAC,CAAC,CAC7B,iCAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,KAAK,QAAQ,aAE1D,iCACE,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,EACzC,OAAO,EAAC,MAAM,EACd,CAAC,EAAC,oGAAoG,GACtG,EAGF,iCAAM,OAAO,EAAC,MAAM,EAAC,CAAC,EAAC,iDAAiD,EAAC,IAAI,EAAC,MAAM,GAAG,EACvF,iCACE,OAAO,EAAC,MAAM,EACd,CAAC,EAAC,2DAA2D,EAC7D,IAAI,EAAC,OAAO,GACZ,EAGF,iCAAM,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,UAAU,EAAC,QAAQ,EAAC,QAAQ,EAAC,KAAK,EAAC,UAAU,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,YAChF,IAAI,CAAC,WAAW,EAAE,GACd,IACH,CACP,CAAC,CAAC,CAAC,CACF,iCAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,KAAK,QAAQ,aAE1D,iCACE,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,EACrB,OAAO,EAAC,MAAM,EACd,CAAC,EAAC,oGAAoG,GACtG,EAGF,iCAAM,OAAO,EAAC,MAAM,EAAC,CAAC,EAAC,iDAAiD,EAAC,IAAI,EAAC,MAAM,GAAG,EACvF,iCACE,OAAO,EAAC,MAAM,EACd,CAAC,EAAC,2DAA2D,EAC7D,IAAI,EAAC,OAAO,GACZ,EAGF,+BAAG,OAAO,EAAC,KAAK,aACd,iCAAM,CAAC,EAAC,mBAAmB,EAAC,IAAI,EAAC,MAAM,GAAG,EAC1C,iCAAM,CAAC,EAAC,mBAAmB,EAAC,IAAI,EAAC,MAAM,GAAG,IACxC,IACA,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"file-icon.js","sourceRoot":"","sources":["../../src/file-icon/file-icon.tsx"],"names":[],"mappings":";;;;;;AA6BA,4BAmDC;;AA/ED,4DAA4B;AAC5B,0EAAwC;AACxC,iCAAgC;AAEnB,QAAA,WAAW,GAAG,IAAI,GAAG,CAAC;IACjC,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;CACN,CAAC,CAAC;AAEH;;;;GAIG;AACH,SAAgB,QAAQ,CAAC,EACvB,IAAI,GAAG,EAAE,EACT,aAAa,GAAG,OAAO,IAAI,KAAK,QAAQ,IAAI,mBAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAC/E,GAAG,QAAQ,EACG;IACd,MAAM,WAAW,GAAG,IAAA,eAAO,EACzB,GAAG,EAAE,CACH,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC;IACd,qDAAqD;IACrD,iCACE,CAAC,EAAC,2fAA2f,EAC7f,IAAI,EAAC,SAAS,EACd,SAAS,EAAC,iBAAiB,GAC3B,CACH,CAAC,CAAC,CAAC;IACF,qBAAqB;IACrB,+BAAG,OAAO,EAAC,KAAK,aACd,iCAAM,CAAC,EAAC,mBAAmB,EAAC,IAAI,EAAC,MAAM,GAAG,EAC1C,iCAAM,CAAC,EAAC,mBAAmB,EAAC,IAAI,EAAC,MAAM,GAAG,IACxC,CACL,EACH,CAAC,IAAI,CAAC,CACP,CAAC;IAEF,OAAO,CACL,iCAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,KAAK,QAAQ,aAE1D,iCACE,SAAS,EAAE,IAAA,oBAAE,EAAC,0BAAM,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,0BAAM,CAAC,MAAM,CAAC,CAAC,CAAC,0BAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,EACtF,OAAO,EAAC,MAAM,EACd,CAAC,EAAC,oGAAoG,GACtG,EAGF,iCAAM,OAAO,EAAC,MAAM,EAAC,CAAC,EAAC,iDAAiD,EAAC,IAAI,EAAC,MAAM,GAAG,EACvF,iCACE,OAAO,EAAC,MAAM,EACd,CAAC,EAAC,2DAA2D,EAC7D,IAAI,EAAC,OAAO,GACZ,EAED,IAAI,IAAI,aAAa,CAAC,CAAC,CAAC;YACvB,WAAW;YACX,iCAAM,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,UAAU,EAAC,QAAQ,EAAC,QAAQ,EAAC,KAAK,EAAC,UAAU,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,YAChF,IAAI,CAAC,WAAW,EAAE,GACd,CACR,CAAC,CAAC,CAAC,CACF,WAAW,CACZ,IACG,CACP,CAAC;AACJ,CAAC"}
@@ -5,6 +5,10 @@
5
5
  }
6
6
 
7
7
  // ВАЖНО: далее используем цвет именно как резервное значение чтобы иметь возможность переопределения
8
+ .avi {
9
+ fill: var(--file-icon-primary-color, #{colors.$additional-blue-gray});
10
+ }
11
+
8
12
  .doc {
9
13
  fill: var(--file-icon-primary-color, #{colors.$additional-electric-blue});
10
14
  }
@@ -25,6 +29,10 @@
25
29
  fill: var(--file-icon-primary-color, #{colors.$additional-blue-gray});
26
30
  }
27
31
 
32
+ .mp3 {
33
+ fill: var(--file-icon-primary-color, #{colors.$additional-blue-gray});
34
+ }
35
+
28
36
  .mp4 {
29
37
  fill: var(--file-icon-primary-color, #{colors.$additional-blue-gray});
30
38
  }
@@ -60,3 +68,7 @@
60
68
  .zip {
61
69
  fill: var(--file-icon-primary-color, #{colors.$additional-teal});
62
70
  }
71
+
72
+ .broken {
73
+ fill: var(--file-icon-primary-color, #{colors.$basic-gray12});
74
+ }
@@ -4,9 +4,9 @@ export interface FileIconStyle extends CSSProperties {
4
4
  }
5
5
  export interface FileIconProps extends Omit<SVGAttributes<SVGSVGElement>, 'type'> {
6
6
  /** Тип файла. */
7
- type?: string;
7
+ type?: string | null;
8
8
  /** Нужно ли выводить название типа. */
9
- typeDisplayed?: boolean;
9
+ isTypeVisible?: boolean;
10
10
  /** Стили. */
11
11
  style?: FileIconStyle;
12
12
  }
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@sima-land/ui-nucleons",
3
3
  "type": "commonjs",
4
- "version": "45.0.0-alpha.34",
4
+ "version": "45.0.0-alpha.36",
5
5
  "repository": "ssh://git@github.com:sima-land/ui-nucleons.git",
6
6
  "author": "www.sima-land.ru team",
7
7
  "license": "Apache-2.0",
8
8
  "private": false,
9
9
  "engines": {
10
- "node": ">=18.0.0"
10
+ "node": ">=20.0.0"
11
11
  },
12
12
  "scripts": {
13
13
  "export:colors": "node .template/build.mjs",
@@ -26,7 +26,7 @@
26
26
  "prettier:check": "prettier --check \"./src/**/*.{js,jsx,ts,tsx,css,scss}\""
27
27
  },
28
28
  "dependencies": {
29
- "@floating-ui/react": "^0.26.13",
29
+ "@floating-ui/react": "^0.27.8",
30
30
  "@krutoo/input-mask": "^0.1.0",
31
31
  "body-scroll-lock": "3.1.5",
32
32
  "classnames": "^2.3.2",