@sima-land/ui-nucleons 45.0.0-alpha.7 → 45.0.0-alpha.9

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.
Files changed (135) hide show
  1. package/_internal/custom-scrollbar/index.d.ts +1 -1
  2. package/_internal/dropdown-loading/index.d.ts +1 -1
  3. package/_internal/page-scroll-lock/context.d.ts +1 -2
  4. package/alert/index.d.ts +2 -2
  5. package/arrow-button/index.d.ts +1 -1
  6. package/autocomplete/autocomplete.d.ts +1 -2
  7. package/autocomplete/autocomplete.js +20 -22
  8. package/autocomplete/autocomplete.js.map +1 -1
  9. package/autocomplete/types.d.ts +2 -3
  10. package/autocomplete-deprecated/index.d.ts +1 -1
  11. package/avatar/avatar.d.ts +1 -2
  12. package/avatar/avatar.js +1 -1
  13. package/avatar/avatar.js.map +1 -1
  14. package/avatar/avatar.module.scss +6 -8
  15. package/avatar/types.d.ts +1 -0
  16. package/base-input/base-input.d.ts +1 -2
  17. package/bordered-layout/index.d.ts +1 -1
  18. package/bottom-bar/bottom-bar.d.ts +1 -2
  19. package/box/index.d.ts +1 -1
  20. package/card/slots.d.ts +3 -3
  21. package/carousel/draggable.d.ts +3 -2
  22. package/carousel/draggable.js.map +1 -1
  23. package/carousel/index.d.ts +3 -3
  24. package/chips/chips-item.d.ts +15 -0
  25. package/chips/{item.js → chips-item.js} +7 -5
  26. package/chips/chips-item.js.map +1 -0
  27. package/chips/chips-item.module.scss +67 -0
  28. package/chips/chips.d.ts +17 -0
  29. package/chips/chips.js +25 -0
  30. package/chips/chips.js.map +1 -0
  31. package/chips/chips.module.scss +1 -69
  32. package/chips/index.d.ts +2 -16
  33. package/chips/index.js +5 -18
  34. package/chips/index.js.map +1 -1
  35. package/clean-buttons/index.d.ts +2 -2
  36. package/dot-nav/index.d.ts +1 -2
  37. package/dropdown/utils.d.ts +3 -3
  38. package/dropdown/utils.js +2 -2
  39. package/dropdown/utils.js.map +1 -1
  40. package/dropdown-item/index.d.ts +1 -1
  41. package/expandable/index.d.ts +1 -1
  42. package/expandable/index.js +6 -3
  43. package/expandable/index.js.map +1 -1
  44. package/field-block/index.d.ts +1 -1
  45. package/file-icon/file-icon.module.scss +42 -0
  46. package/file-icon/index.d.ts +10 -3
  47. package/file-icon/index.js +10 -16
  48. package/file-icon/index.js.map +1 -1
  49. package/group-overflow/index.d.ts +1 -1
  50. package/hint/hint-view.d.ts +2 -2
  51. package/hint/hint.d.ts +1 -1
  52. package/hint/utils.d.ts +4 -4
  53. package/hint/utils.js +2 -3
  54. package/hint/utils.js.map +1 -1
  55. package/hooks/breakpoint/index.d.ts +1 -1
  56. package/info-text/index.d.ts +1 -1
  57. package/input/index.d.ts +1 -1
  58. package/layout/layout.d.ts +1 -1
  59. package/link/index.d.ts +2 -2
  60. package/link/index.js.map +1 -1
  61. package/loading-overlay/index.d.ts +1 -1
  62. package/masked-input/masked-input.d.ts +1 -2
  63. package/modal/index.d.ts +2 -2
  64. package/modal/slots.d.ts +4 -4
  65. package/modal-overlay/index.d.ts +1 -1
  66. package/modal-overlay/utils.d.ts +2 -2
  67. package/no-index/index.d.ts +1 -1
  68. package/no-index-mark/index.d.ts +1 -2
  69. package/package.json +23 -26
  70. package/pagination/pagination-item.d.ts +1 -2
  71. package/pagination/pagination-item.js +1 -1
  72. package/pagination/pagination-item.js.map +1 -1
  73. package/pagination/pagination.d.ts +1 -2
  74. package/pagination/pagination.js +1 -1
  75. package/pagination/pagination.js.map +1 -1
  76. package/pagination-deprecated/base-pagination.d.ts +2 -2
  77. package/panel/index.d.ts +2 -2
  78. package/phone-input/phone-input.d.ts +1 -2
  79. package/phone-input-deprecated/index.d.ts +1 -1
  80. package/popup/popup-view.d.ts +1 -1
  81. package/popup/popup.d.ts +1 -2
  82. package/popup/utils.d.ts +3 -3
  83. package/popup/utils.js +2 -2
  84. package/popup/utils.js.map +1 -1
  85. package/price/index.d.ts +1 -2
  86. package/radio-button/index.d.ts +1 -1
  87. package/range/index.d.ts +1 -1
  88. package/rating/index.d.ts +1 -1
  89. package/screen/index.d.ts +5 -3
  90. package/screen/slots.d.ts +5 -3
  91. package/screen/slots.js.map +1 -1
  92. package/select/parts/block.d.ts +1 -2
  93. package/select/parts/button.d.ts +1 -2
  94. package/select/parts/menu.d.ts +1 -2
  95. package/select/parts/menu.js +1 -1
  96. package/select/parts/menu.js.map +1 -1
  97. package/select/select.d.ts +1 -2
  98. package/select-deprecated/index.d.ts +2 -2
  99. package/side-page/index.d.ts +1 -1
  100. package/side-page/index.js +2 -2
  101. package/side-page/index.js.map +1 -1
  102. package/side-page/slots.d.ts +3 -3
  103. package/spinner/index.d.ts +2 -2
  104. package/super-ellipse-clip-path/index.d.ts +1 -2
  105. package/switcher-row/index.d.ts +3 -3
  106. package/tabs/index.d.ts +24 -10
  107. package/tabs/index.js +8 -4
  108. package/tabs/index.js.map +1 -1
  109. package/textarea/index.d.ts +1 -1
  110. package/textarea/index.js +1 -1
  111. package/timer/index.d.ts +1 -1
  112. package/toggle/toggle.module.scss +4 -4
  113. package/top-bar/top-bar.d.ts +1 -2
  114. package/top-bar/top-bar.module.scss +1 -1
  115. package/touch-slider/index.js +1 -1
  116. package/touch-slider/index.js.map +1 -1
  117. package/unknown-content/index.d.ts +1 -1
  118. package/upload-area/index.d.ts +2 -1
  119. package/upload-area/index.js +3 -1
  120. package/upload-area/index.js.map +1 -1
  121. package/upload-area/types.d.ts +10 -8
  122. package/upload-area/upload-area-util.scss +2 -0
  123. package/upload-area/upload-area.d.ts +1 -2
  124. package/upload-area/upload-area.js +6 -19
  125. package/upload-area/upload-area.js.map +1 -1
  126. package/upload-area/upload-area.module.scss +4 -1
  127. package/upload-area/utils.d.ts +7 -0
  128. package/upload-area/utils.js +20 -1
  129. package/upload-area/utils.js.map +1 -1
  130. package/with-hint/index.d.ts +1 -1
  131. package/with-hint/positioning-hint.d.ts +1 -1
  132. package/with-tooltip/index.d.ts +1 -1
  133. package/with-tooltip/positioning-tooltip.d.ts +1 -1
  134. package/chips/item.d.ts +0 -15
  135. package/chips/item.js.map +0 -1
@@ -23,12 +23,12 @@ export declare const DIAMETERS: Record<SpinnerSize | SpinnerLegacySize, number>;
23
23
  * @param props Свойства.
24
24
  * @return Элемент.
25
25
  */
26
- export declare function Spinner({ size, color, className, style, 'data-testid': testId, }: SpinnerProps): JSX.Element;
26
+ export declare function Spinner({ size, color, className, style, 'data-testid': testId, }: SpinnerProps): import("react/jsx-runtime").JSX.Element;
27
27
  /**
28
28
  * Спиннер.
29
29
  * Выделен в отдельный компонент для возможности использования без обертки в виде div.
30
30
  * @param props Свойства.
31
31
  * @return Элемент.
32
32
  */
33
- export declare function SpinnerSVG({ size, color, className, style, 'data-testid': testId, }: SpinnerProps): JSX.Element;
33
+ export declare function SpinnerSVG({ size, color, className, style, 'data-testid': testId, }: SpinnerProps): import("react/jsx-runtime").JSX.Element;
34
34
  export {};
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export interface SuperEllipseClipPathProps {
3
2
  /** Идентификатор. */
4
3
  id?: string;
@@ -8,4 +7,4 @@ export interface SuperEllipseClipPathProps {
8
7
  * @param props Свойства.
9
8
  * @return Элемент.
10
9
  */
11
- export declare const SuperEllipseClipPath: ({ id }: SuperEllipseClipPathProps) => JSX.Element;
10
+ export declare const SuperEllipseClipPath: ({ id }: SuperEllipseClipPathProps) => import("react/jsx-runtime").JSX.Element;
@@ -18,7 +18,7 @@ export interface SwitcherRowProps {
18
18
  * @param props Свойства.
19
19
  * @return Элемент.
20
20
  */
21
- export declare function SwitcherRow({ children, className, style, textAlign, fieldPosition, 'data-testid': testId, }: SwitcherRowProps): JSX.Element;
21
+ export declare function SwitcherRow({ children, className, style, textAlign, fieldPosition, 'data-testid': testId, }: SwitcherRowProps): import("react/jsx-runtime").JSX.Element;
22
22
  export declare namespace SwitcherRow {
23
23
  var Label: typeof SwitcherRowLabel;
24
24
  var Comment: typeof SwitcherRowComment;
@@ -30,7 +30,7 @@ export declare namespace SwitcherRow {
30
30
  */
31
31
  declare function SwitcherRowLabel({ children }: {
32
32
  children?: ReactNode;
33
- }): JSX.Element;
33
+ }): import("react/jsx-runtime").JSX.Element;
34
34
  /**
35
35
  * Слот комментария.
36
36
  * @param props Свойства.
@@ -38,5 +38,5 @@ declare function SwitcherRowLabel({ children }: {
38
38
  */
39
39
  declare function SwitcherRowComment({ children }: {
40
40
  children?: ReactNode;
41
- }): JSX.Element;
41
+ }): import("react/jsx-runtime").JSX.Element;
42
42
  export {};
package/tabs/index.d.ts CHANGED
@@ -1,36 +1,50 @@
1
- /// <reference types="react" />
1
+ import { CSSProperties, MouseEventHandler, ReactNode } from 'react';
2
+ export interface TabsStyle extends CSSProperties {
3
+ '--tabs-gap'?: string;
4
+ }
2
5
  export interface TabsProps {
3
6
  /** Визуальный вариант вкладок. */
4
7
  view?: 'clean' | 'clean-underline' | 'round';
5
8
  /** Необходимо ли растягивать вкладки под размер контейнера. */
6
9
  stretch?: boolean;
7
10
  /** Размер отступа между вкладками. */
8
- gapSize?: 's' | 'm';
11
+ gapSize?: 's' | 'm' | 'unset';
9
12
  /** Внешние классы. */
10
13
  className?: string;
14
+ /** Стили. */
15
+ style?: TabsStyle;
11
16
  /** Вкладки. */
12
- children?: React.ReactNode;
17
+ children?: ReactNode;
13
18
  /** Идентификатор для систем автоматизированного тестирования. */
14
19
  'data-testid'?: string;
15
20
  }
16
21
  export interface TabsItemProps {
17
22
  /** Название вкладки. */
18
- name: string;
23
+ name?: string;
19
24
  /** Выбрана ли вкладка. */
20
25
  selected?: boolean;
21
26
  /** Отключена ли вкладка. */
22
27
  disabled?: boolean;
28
+ /** Обработчик клика. */
29
+ onClick?: MouseEventHandler<HTMLLIElement>;
30
+ /** Содержимое. */
31
+ children?: ReactNode;
23
32
  /** Идентификатор для систем автоматизированного тестирования. */
24
33
  'data-testid'?: string;
25
- /** Обработчик клика. */
26
- onClick?: React.MouseEventHandler<HTMLLIElement>;
27
34
  }
35
+ /**
36
+ * Вкладка.
37
+ * @param props Свойства.
38
+ * @return Элемент.
39
+ */
40
+ declare function Tab({ name, selected, disabled, 'data-testid': testId, onClick, children, }: TabsItemProps): import("react/jsx-runtime").JSX.Element;
28
41
  /**
29
42
  * Компонент строки вкладок.
30
43
  * @param props Свойства.
31
44
  * @return Элемент.
32
45
  */
33
- export declare const Tabs: {
34
- ({ children, view, stretch, gapSize, className, "data-testid": testId, }: TabsProps): JSX.Element;
35
- Item: ({ name, selected, disabled, "data-testid": testId, onClick, }: TabsItemProps) => JSX.Element;
36
- };
46
+ export declare function Tabs({ children, view, stretch, gapSize, className, style, 'data-testid': testId, }: TabsProps): import("react/jsx-runtime").JSX.Element;
47
+ export declare namespace Tabs {
48
+ var Item: typeof Tab;
49
+ }
50
+ export {};
package/tabs/index.js CHANGED
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Tabs = void 0;
7
7
  const jsx_runtime_1 = require("react/jsx-runtime");
8
- const react_1 = require("react");
9
8
  const bind_1 = __importDefault(require("classnames/bind"));
10
9
  const tabs_module_scss_1 = __importDefault(require("./tabs.module.scss"));
11
10
  const cx = bind_1.default.bind(tabs_module_scss_1.default);
@@ -14,13 +13,18 @@ const cx = bind_1.default.bind(tabs_module_scss_1.default);
14
13
  * @param props Свойства.
15
14
  * @return Элемент.
16
15
  */
17
- const Tab = ({ name, selected, disabled, 'data-testid': testId = 'tab', onClick, }) => ((0, jsx_runtime_1.jsx)("li", { className: cx('item', { selected, disabled }), "data-testid": testId, onClick: disabled ? undefined : onClick, children: String(name) }));
16
+ function Tab({ name, selected, disabled, 'data-testid': testId = 'tab', onClick, children, }) {
17
+ return ((0, jsx_runtime_1.jsx)("li", { className: cx('item', { selected, disabled }), "data-testid": testId, onClick: disabled ? undefined : onClick, children: typeof name !== 'undefined' ? String(name) : children }));
18
+ }
18
19
  /**
19
20
  * Компонент строки вкладок.
20
21
  * @param props Свойства.
21
22
  * @return Элемент.
22
23
  */
23
- const Tabs = ({ children, view = 'clean', stretch = false, gapSize = 'm', className, 'data-testid': testId = 'tabs', }) => ((0, jsx_runtime_1.jsx)("ul", { "data-testid": testId, className: cx('root', `view-${view}`, `gap-${gapSize}`, { stretch }, className), children: react_1.Children.toArray(children).filter(child => (0, react_1.isValidElement)(child) && child.type === Tab) }));
24
+ function Tabs({ children, view = 'clean', stretch = false, gapSize = 'm', className, style, 'data-testid': testId = 'tabs', }) {
25
+ const rootClassName = cx('root', `view-${view}`, gapSize && gapSize !== 'unset' && `gap-${gapSize}`, { stretch }, className);
26
+ return ((0, jsx_runtime_1.jsx)("ul", { "data-testid": testId, className: rootClassName, style: style, children: children }));
27
+ }
24
28
  exports.Tabs = Tabs;
25
- exports.Tabs.Item = Tab;
29
+ Tabs.Item = Tab;
26
30
  //# sourceMappingURL=index.js.map
package/tabs/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tabs/index.tsx"],"names":[],"mappings":";;;;;;;AAAA,iCAAiD;AACjD,2DAAyC;AACzC,0EAAwC;AAuCxC,MAAM,EAAE,GAAG,cAAU,CAAC,IAAI,CAAC,0BAAM,CAAC,CAAC;AAEnC;;;;GAIG;AACH,MAAM,GAAG,GAAG,CAAC,EACX,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,aAAa,EAAE,MAAM,GAAG,KAAK,EAC7B,OAAO,GACO,EAAE,EAAE,CAAC,CACnB,+BACE,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,iBAChC,MAAM,EACnB,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,YAEtC,MAAM,CAAC,IAAI,CAAC,GACV,CACN,CAAC;AAEF;;;;GAIG;AACI,MAAM,IAAI,GAAG,CAAC,EACnB,QAAQ,EACR,IAAI,GAAG,OAAO,EACd,OAAO,GAAG,KAAK,EACf,OAAO,GAAG,GAAG,EACb,SAAS,EACT,aAAa,EAAE,MAAM,GAAG,MAAM,GACpB,EAAE,EAAE,CAAC,CACf,8CACe,MAAM,EACnB,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,IAAI,EAAE,EAAE,OAAO,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,CAAC,YAE9E,gBAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAA,sBAAc,EAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,GACrF,CACN,CAAC;AAdW,QAAA,IAAI,QAcf;AAEF,YAAI,CAAC,IAAI,GAAG,GAAG,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tabs/index.tsx"],"names":[],"mappings":";;;;;;;AACA,2DAAyC;AACzC,0EAAwC;AAiDxC,MAAM,EAAE,GAAG,cAAU,CAAC,IAAI,CAAC,0BAAM,CAAC,CAAC;AAEnC;;;;GAIG;AACH,SAAS,GAAG,CAAC,EACX,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,aAAa,EAAE,MAAM,GAAG,KAAK,EAC7B,OAAO,EACP,QAAQ,GACM;IACd,OAAO,CACL,+BACE,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,iBAChC,MAAM,EACnB,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,YAEtC,OAAO,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,GACnD,CACN,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAgB,IAAI,CAAC,EACnB,QAAQ,EACR,IAAI,GAAG,OAAO,EACd,OAAO,GAAG,KAAK,EACf,OAAO,GAAG,GAAG,EACb,SAAS,EACT,KAAK,EACL,aAAa,EAAE,MAAM,GAAG,MAAM,GACpB;IACV,MAAM,aAAa,GAAG,EAAE,CACtB,MAAM,EACN,QAAQ,IAAI,EAAE,EACd,OAAO,IAAI,OAAO,KAAK,OAAO,IAAI,OAAO,OAAO,EAAE,EAClD,EAAE,OAAO,EAAE,EACX,SAAS,CACV,CAAC;IAEF,OAAO,CACL,8CAAiB,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,YAC5D,QAAQ,GACN,CACN,CAAC;AACJ,CAAC;AAtBD,oBAsBC;AAED,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC"}
@@ -17,5 +17,5 @@ export interface TextareaProps extends HTMLTextareaProps, FieldBlockProps {
17
17
  * @param props Свойства.
18
18
  * @return Элемент.
19
19
  */
20
- export declare function Textarea({ textareaRef, baseInputProps, style, className, autoComplete, autoFocus, defaultValue, disabled, id, name, onBlur, onChange, onFocus, onInput, placeholder, readOnly, required, rows, value, label, failed, caption, blockProps, 'data-testid': testId, ...restProps }: TextareaProps): JSX.Element;
20
+ export declare function Textarea({ textareaRef, baseInputProps, style, className, autoComplete, autoFocus, defaultValue, disabled, id, name, onBlur, onChange, onFocus, onInput, placeholder, readOnly, required, rows, value, label, failed, caption, blockProps, 'data-testid': testId, ...restProps }: TextareaProps): import("react/jsx-runtime").JSX.Element;
21
21
  export {};
package/textarea/index.js CHANGED
@@ -23,7 +23,7 @@ textareaRef, baseInputProps,
23
23
  // root props
24
24
  style, className,
25
25
  // textarea element props (popular)
26
- autoComplete, autoFocus, defaultValue, disabled, id, name, onBlur, onChange, onFocus, onInput, placeholder, readOnly, required, rows = 4, value,
26
+ autoComplete, autoFocus, defaultValue, disabled, id, name, onBlur, onChange, onFocus, onInput, placeholder, readOnly, required, rows = 2, value,
27
27
  // FieldBlock props
28
28
  label, failed, caption, blockProps, 'data-testid': testId = 'textarea', ...restProps }) {
29
29
  const ref = (0, react_1.useRef)(null);
package/timer/index.d.ts CHANGED
@@ -13,4 +13,4 @@ export interface TimerProps {
13
13
  * @param props Свойства.
14
14
  * @return Элемент.
15
15
  */
16
- export declare const Timer: ({ date, format, timeout }: TimerProps) => JSX.Element;
16
+ export declare const Timer: ({ date, format, timeout }: TimerProps) => import("react/jsx-runtime").JSX.Element;
@@ -3,7 +3,6 @@
3
3
  .root {
4
4
  position: relative;
5
5
  display: inline-block;
6
- cursor: pointer;
7
6
  user-select: none;
8
7
  vertical-align: -2px;
9
8
  }
@@ -14,9 +13,9 @@
14
13
  opacity: 0;
15
14
  padding: 0;
16
15
  margin: 0;
17
- width: 0;
18
- height: 0;
19
- pointer-events: none;
16
+ width: 100%;
17
+ height: 100%;
18
+ cursor: pointer;
20
19
  &:not(:checked) + .switch {
21
20
  --toggle-slider-position: 2px;
22
21
  }
@@ -45,6 +44,7 @@
45
44
  border-radius: 12px;
46
45
  background: var(--toggle-primary-color);
47
46
  transition: background 0.16s ease-in-out;
47
+ pointer-events: none;
48
48
  &::after {
49
49
  content: '';
50
50
  position: absolute;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { TopBarProps, TopBarSize } from './types';
3
2
  export declare const TOP_BAR_HEIGHT: Readonly<Record<TopBarSize, number>>;
4
3
  /**
@@ -6,4 +5,4 @@ export declare const TOP_BAR_HEIGHT: Readonly<Record<TopBarSize, number>>;
6
5
  * @param props Свойства.
7
6
  * @return Элемент.
8
7
  */
9
- export declare function TopBar({ divided, size, title, subtitle, buttons: { start, startSecondary, end, endSecondary }, className, 'data-testid': testId, }: TopBarProps): JSX.Element;
8
+ export declare function TopBar({ divided, size, title, subtitle, buttons: { start, startSecondary, end, endSecondary }, className, 'data-testid': testId, }: TopBarProps): import("react/jsx-runtime").JSX.Element;
@@ -50,7 +50,7 @@
50
50
  font-size: 12px;
51
51
  line-height: 16px;
52
52
  font-weight: 400;
53
- margin-top: -4px;
53
+ margin-top: -2px;
54
54
  }
55
55
 
56
56
  .title,
@@ -15,6 +15,6 @@ const touch_slider_module_scss_1 = __importDefault(require("./touch-slider.modul
15
15
  * @param props Свойства.
16
16
  * @return Элемент.
17
17
  */
18
- const TouchSlider = ({ children }) => ((0, jsx_runtime_1.jsx)(layout_1.MobileLayout, { children: (0, jsx_runtime_1.jsx)("div", { className: touch_slider_module_scss_1.default.outer, ...{ [page_scroll_lock_1.BSL_IGNORE_ATTR]: true }, children: (0, jsx_runtime_1.jsx)("div", { className: touch_slider_module_scss_1.default.inner, children: children }) }) }));
18
+ const TouchSlider = ({ children }) => ((0, jsx_runtime_1.jsx)(layout_1.MobileLayout, { children: (0, jsx_runtime_1.jsx)("div", { className: touch_slider_module_scss_1.default.outer, [page_scroll_lock_1.BSL_IGNORE_ATTR]: true, children: (0, jsx_runtime_1.jsx)("div", { className: touch_slider_module_scss_1.default.inner, children: children }) }) }));
19
19
  exports.TouchSlider = TouchSlider;
20
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/touch-slider/index.tsx"],"names":[],"mappings":";;;;;;;AAAA,sCAAyC;AACzC,oEAAgE;AAChE,0FAAgD;AAOhD;;;;;;GAMG;AACI,MAAM,WAAW,GAA+B,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CACvE,uBAAC,qBAAY,cACX,gCAAK,SAAS,EAAE,kCAAM,CAAC,KAAK,KAAM,EAAE,CAAC,kCAAe,CAAC,EAAE,IAAI,EAAE,YAC3D,gCAAK,SAAS,EAAE,kCAAM,CAAC,KAAK,YAAG,QAAQ,GAAO,GAC1C,GACO,CAChB,CAAC;AANW,QAAA,WAAW,eAMtB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/touch-slider/index.tsx"],"names":[],"mappings":";;;;;;;AAAA,sCAAyC;AACzC,oEAAgE;AAChE,0FAAgD;AAOhD;;;;;;GAMG;AACI,MAAM,WAAW,GAA+B,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CACvE,uBAAC,qBAAY,cACX,gCAAK,SAAS,EAAE,kCAAM,CAAC,KAAK,EAAQ,CAAC,kCAAe,CAAC,EAAE,IAAI,YACzD,gCAAK,SAAS,EAAE,kCAAM,CAAC,KAAK,YAAG,QAAQ,GAAO,GAC1C,GACO,CAChB,CAAC;AANW,QAAA,WAAW,eAMtB"}
@@ -10,4 +10,4 @@ export interface UnknownContentProps extends React.HTMLAttributes<HTMLDivElement
10
10
  * @param props Свойства.
11
11
  * @return Элемент.
12
12
  */
13
- export declare function UnknownContent({ markup, children, className }: UnknownContentProps): JSX.Element;
13
+ export declare function UnknownContent({ markup, children, className }: UnknownContentProps): import("react/jsx-runtime").JSX.Element;
@@ -1,2 +1,3 @@
1
- export type { UploadAreaProps, UploadAreaSize } from './types';
1
+ export type { UploadAreaProps, UploadAreaSize, DescriptionPayload } from './types';
2
2
  export { UploadArea } from './upload-area';
3
+ export { getFilesDescription } from './utils';
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UploadArea = void 0;
3
+ exports.getFilesDescription = exports.UploadArea = void 0;
4
4
  var upload_area_1 = require("./upload-area");
5
5
  Object.defineProperty(exports, "UploadArea", { enumerable: true, get: function () { return upload_area_1.UploadArea; } });
6
+ var utils_1 = require("./utils");
7
+ Object.defineProperty(exports, "getFilesDescription", { enumerable: true, get: function () { return utils_1.getFilesDescription; } });
6
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/upload-area/index.ts"],"names":[],"mappings":";;;AACA,6CAA2C;AAAlC,yGAAA,UAAU,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/upload-area/index.ts"],"names":[],"mappings":";;;AACA,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AACnB,iCAA8C;AAArC,4GAAA,mBAAmB,OAAA"}
@@ -7,22 +7,16 @@ export interface UploadAreaProps {
7
7
  className?: string;
8
8
  /** Стили корневого элемента. */
9
9
  style?: CSSProperties;
10
- /** Ограничение на количество файлов. */
11
- countLimit?: number;
10
+ title?: string;
11
+ description?: string;
12
12
  /** Состояние с ошибками валидации. */
13
13
  failed?: boolean;
14
14
  /** Отключенное состояния. */
15
15
  disabled?: boolean;
16
- /** Роль файлов. */
17
- fileRole?: string;
18
- /** Форматы файлов, выводятся пользователю. */
19
- formats?: string;
20
16
  /** Ограничение на количество файлов. */
21
17
  multiple?: boolean;
22
18
  /** Сработает при выборе или перетаскивании файлов, получив список файлов и событие. */
23
19
  onSelect?: (list: File[], event: DragEvent<HTMLElement> | ChangeEvent<HTMLInputElement>) => void;
24
- /** Ограничение на размер. */
25
- sizeLimit?: string;
26
20
  /** Свойства корневого элемента. */
27
21
  rootProps?: HTMLAttributes<HTMLElement>;
28
22
  /** Свойства элемента input. */
@@ -30,3 +24,11 @@ export interface UploadAreaProps {
30
24
  /** Идентификатор для систем автоматизированного тестирования. */
31
25
  'data-testid'?: string;
32
26
  }
27
+ export interface DescriptionPayload {
28
+ /** Ограничение на количество файлов. */
29
+ countLimit?: number;
30
+ /** Ограничение на размер. */
31
+ sizeLimit?: string;
32
+ /** Форматы файлов, выводятся пользователю. */
33
+ formats?: string;
34
+ }
@@ -4,6 +4,7 @@
4
4
  --justify-content: flex-start;
5
5
  --icon-size: 0;
6
6
  --icon-display: none;
7
+ --icon-gap: 0;
7
8
  --min-height: calc(48px + (2 * var(--padding-y)));
8
9
  }
9
10
 
@@ -13,5 +14,6 @@
13
14
  --justify-content: center;
14
15
  --icon-size: 64px;
15
16
  --icon-display: block;
17
+ --icon-gap: 24px;
16
18
  --min-height: calc(var(--icon-size) + (2 * var(--padding-y)));
17
19
  }
@@ -1,8 +1,7 @@
1
- /// <reference types="react" />
2
1
  import { UploadAreaProps } from './types';
3
2
  /**
4
3
  * Поля выбора файлов.
5
4
  * @param props Свойства.
6
5
  * @return Элемент.
7
6
  */
8
- export declare function UploadArea({ className, style, size, multiple, disabled, failed, formats, fileRole, countLimit, onSelect, sizeLimit, rootProps, inputProps, 'data-testid': testId, }: UploadAreaProps): JSX.Element;
7
+ export declare function UploadArea({ title, description, className, style, size, multiple, disabled, failed, onSelect, rootProps, inputProps, 'data-testid': testId, }: UploadAreaProps): import("react/jsx-runtime").JSX.Element;
@@ -8,8 +8,6 @@ const jsx_runtime_1 = require("react/jsx-runtime");
8
8
  const react_1 = require("react");
9
9
  const link_1 = require("../link");
10
10
  const utils_1 = require("./utils");
11
- const lodash_1 = require("lodash");
12
- const get_declination_1 = require("../helpers/get-declination");
13
11
  const Upload_1 = __importDefault(require("@sima-land/ui-quarks/icons/64x64/Stroked/Upload"));
14
12
  const bind_1 = __importDefault(require("classnames/bind"));
15
13
  const upload_area_module_scss_1 = __importDefault(require("./upload-area.module.scss"));
@@ -19,24 +17,13 @@ const cx = bind_1.default.bind(upload_area_module_scss_1.default);
19
17
  * @param props Свойства.
20
18
  * @return Элемент.
21
19
  */
22
- function UploadArea({ className, style, size = 'm', multiple, disabled, failed, formats, fileRole = 'файл', countLimit = multiple ? undefined : 1, onSelect, sizeLimit, rootProps, inputProps, 'data-testid': testId = 'upload-area', }) {
20
+ function UploadArea({ title, description, className, style, size = 'm', multiple, disabled, failed, onSelect, rootProps, inputProps, 'data-testid': testId = 'upload-area', }) {
23
21
  const inputRef = (0, react_1.useRef)(null);
24
- const secondaryInfo = (0, lodash_1.upperFirst)([
25
- typeof countLimit === 'number' && countLimit > 0
26
- ? `${countLimit} ${(0, get_declination_1.getDeclination)(countLimit, ['файл', 'файла', 'файлов'])}`
27
- : null,
28
- formats ? `формат ${formats}` : null,
29
- sizeLimit ? `до ${sizeLimit}` : null,
30
- ]
31
- .filter(Boolean)
32
- .join(', '));
33
22
  const filterFiles = (0, react_1.useCallback)((files) => {
34
23
  const result = [...files];
35
- multiple
36
- ? countLimit && Number.isFinite(countLimit) && result.splice(countLimit)
37
- : result.splice(1);
24
+ multiple ? result : result.splice(1);
38
25
  return result;
39
- }, [multiple, countLimit]);
26
+ }, [multiple]);
40
27
  const onInputChange = (0, react_1.useCallback)(event => {
41
28
  onSelect === null || onSelect === void 0 ? void 0 : onSelect(filterFiles(event.target.files || []), event);
42
29
  // очищаем поле чтобы можно было выбрать тот же файл повторно
@@ -67,10 +54,10 @@ function UploadArea({ className, style, size = 'm', multiple, disabled, failed,
67
54
  }, onBlur: event => {
68
55
  var _a;
69
56
  (_a = rootProps === null || rootProps === void 0 ? void 0 : rootProps.onBlur) === null || _a === void 0 ? void 0 : _a.call(rootProps, event);
70
- }, children: [(0, jsx_runtime_1.jsx)(Upload_1.default, { className: cx('icon') }), (0, jsx_runtime_1.jsxs)("div", { className: cx('info'), children: [(0, jsx_runtime_1.jsxs)("div", { className: cx('text', 'primary'), children: [(0, jsx_runtime_1.jsx)("input", { ...inputProps, ref: inputRef, type: 'file', multiple: multiple, className: cx('input'), onChange: onInputChange, onClick: e => {
71
- // для того чтобы при клике на корневом элементе не вызывался второй клик
57
+ }, children: [(0, jsx_runtime_1.jsx)(Upload_1.default, { className: cx('icon') }), (0, jsx_runtime_1.jsxs)("div", { className: cx('info', { empty: !title && !description }), children: [(0, jsx_runtime_1.jsxs)("div", { className: cx('text', 'primary'), children: [(0, jsx_runtime_1.jsx)("input", { ...inputProps, ref: inputRef, type: 'file', multiple: multiple, className: cx('input', inputProps === null || inputProps === void 0 ? void 0 : inputProps.className), onChange: onInputChange, onClick: e => {
58
+ // ВАЖНО: для того чтобы при клике на корневом элементе не вызывался второй клик
72
59
  e.stopPropagation();
73
- }, "data-testid": 'upload-area:input', disabled: disabled }), (0, jsx_runtime_1.jsxs)(link_1.Link, { pseudo: true, "data-testid": 'upload-area:anchor', disabled: disabled, children: ["\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 ", fileRole] })] }), secondaryInfo && (0, jsx_runtime_1.jsx)("div", { className: cx('text', 'secondary'), children: secondaryInfo })] })] }));
60
+ }, "data-testid": 'upload-area:input', disabled: disabled }), (0, jsx_runtime_1.jsx)(link_1.Link, { pseudo: true, "data-testid": 'upload-area:anchor', disabled: disabled, children: title })] }), description && (0, jsx_runtime_1.jsx)("div", { className: cx('text', 'secondary'), children: description })] })] }));
74
61
  }
75
62
  exports.UploadArea = UploadArea;
76
63
  //# sourceMappingURL=upload-area.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"upload-area.js","sourceRoot":"","sources":["../../src/upload-area/upload-area.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upload-area.js","sourceRoot":"","sources":["../../src/upload-area/upload-area.tsx"],"names":[],"mappings":"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"}
@@ -43,10 +43,13 @@
43
43
  height: var(--icon-size);
44
44
  display: var(--icon-display);
45
45
  flex-shrink: 0;
46
- margin-right: 24px;
47
46
  fill: colors.$basic-gray24;
48
47
  }
49
48
 
49
+ .icon + .info:not(.empty) {
50
+ margin-left: var(--icon-gap);
51
+ }
52
+
50
53
  .info {
51
54
  display: flex;
52
55
  flex-direction: column;
@@ -1,4 +1,5 @@
1
1
  import { DragEventHandler } from 'react';
2
+ import { DescriptionPayload } from './types';
2
3
  type UseFilesDropResult<T> = {
3
4
  active: boolean;
4
5
  bind: {
@@ -14,4 +15,10 @@ type UseFilesDropResult<T> = {
14
15
  * @return Данные.
15
16
  */
16
17
  export declare function useFilesDrop<T extends HTMLElement = HTMLElement>(callback: DragEventHandler<T>): UseFilesDropResult<T>;
18
+ /**
19
+ * Возвращает строку с описанием файлов для отправки по дизайн-гайдам.
20
+ * @param payload Информация о файлах.
21
+ * @return Строка.
22
+ */
23
+ export declare function getFilesDescription({ countLimit, sizeLimit, formats, }: DescriptionPayload): string;
17
24
  export {};
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useFilesDrop = void 0;
3
+ exports.getFilesDescription = exports.useFilesDrop = void 0;
4
4
  const react_1 = require("react");
5
5
  const identity_1 = require("../hooks/identity");
6
+ const get_declination_1 = require("../helpers/get-declination");
6
7
  /**
7
8
  * Хук обработки перетаскивания файлов на элемент.
8
9
  * @param callback Опции.
@@ -46,4 +47,22 @@ function useFilesDrop(callback) {
46
47
  };
47
48
  }
48
49
  exports.useFilesDrop = useFilesDrop;
50
+ /**
51
+ * Возвращает строку с описанием файлов для отправки по дизайн-гайдам.
52
+ * @param payload Информация о файлах.
53
+ * @return Строка.
54
+ */
55
+ function getFilesDescription({ countLimit, sizeLimit, formats, }) {
56
+ const description = [
57
+ typeof countLimit === 'number' && countLimit > 0
58
+ ? `${countLimit} ${(0, get_declination_1.getDeclination)(countLimit, ['файл', 'файла', 'файлов'])}`
59
+ : null,
60
+ formats ? `формат ${formats}` : null,
61
+ sizeLimit ? `до ${sizeLimit}` : null,
62
+ ]
63
+ .filter(Boolean)
64
+ .join(', ');
65
+ return description;
66
+ }
67
+ exports.getFilesDescription = getFilesDescription;
49
68
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/upload-area/utils.ts"],"names":[],"mappings":";;;AAAA,iCAAgE;AAChE,gDAAmD;AAYnD;;;;GAIG;AACH,SAAgB,YAAY,CAC1B,QAA6B;IAE7B,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,IAAA,yBAAc,EAAC,QAAQ,CAAC,CAAC;IAE7C,MAAM,WAAW,GAAG,IAAA,mBAAW,EAAsB,KAAK,CAAC,EAAE;QAC3D,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,SAAS,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,UAAU,GAAG,IAAA,mBAAW,EAAsB,KAAK,CAAC,EAAE;QAC1D,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,SAAS,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,WAAW,GAAG,IAAA,mBAAW,EAAsB,KAAK,CAAC,EAAE;QAC3D,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;QAE/C,2CAA2C;QAC3C,IACE,CAAC,aAAa;YACd,CAAC,aAAa,YAAY,IAAI;gBAC5B,aAAa,YAAY,IAAI;gBAC7B,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EACzC;YACA,SAAS,CAAC,KAAK,CAAC,CAAC;SAClB;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,MAAM,GAAG,IAAA,mBAAW,EAAsB,KAAK,CAAC,EAAE;QACtD,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,SAAS,CAAC,KAAK,CAAC,CAAC;QACjB,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,MAAM;QAEN,IAAI,EAAE;YACJ,WAAW;YACX,UAAU;YACV,WAAW;YACX,MAAM;SACP;KACF,CAAC;AACJ,CAAC;AA/CD,oCA+CC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/upload-area/utils.ts"],"names":[],"mappings":";;;AAAA,iCAAgE;AAChE,gDAAmD;AACnD,gEAA4D;AAa5D;;;;GAIG;AACH,SAAgB,YAAY,CAC1B,QAA6B;IAE7B,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,IAAA,yBAAc,EAAC,QAAQ,CAAC,CAAC;IAE7C,MAAM,WAAW,GAAG,IAAA,mBAAW,EAAsB,KAAK,CAAC,EAAE;QAC3D,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,SAAS,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,UAAU,GAAG,IAAA,mBAAW,EAAsB,KAAK,CAAC,EAAE;QAC1D,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,SAAS,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,WAAW,GAAG,IAAA,mBAAW,EAAsB,KAAK,CAAC,EAAE;QAC3D,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;QAE/C,2CAA2C;QAC3C,IACE,CAAC,aAAa;YACd,CAAC,aAAa,YAAY,IAAI;gBAC5B,aAAa,YAAY,IAAI;gBAC7B,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EACzC;YACA,SAAS,CAAC,KAAK,CAAC,CAAC;SAClB;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,MAAM,GAAG,IAAA,mBAAW,EAAsB,KAAK,CAAC,EAAE;QACtD,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,SAAS,CAAC,KAAK,CAAC,CAAC;QACjB,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,MAAM;QAEN,IAAI,EAAE;YACJ,WAAW;YACX,UAAU;YACV,WAAW;YACX,MAAM;SACP;KACF,CAAC;AACJ,CAAC;AA/CD,oCA+CC;AAED;;;;GAIG;AACH,SAAgB,mBAAmB,CAAC,EAClC,UAAU,EACV,SAAS,EACT,OAAO,GACY;IACnB,MAAM,WAAW,GAAW;QAC1B,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,GAAG,CAAC;YAC9C,CAAC,CAAC,GAAG,UAAU,IAAI,IAAA,gCAAc,EAAC,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE;YAC5E,CAAC,CAAC,IAAI;QAER,OAAO,CAAC,CAAC,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI;QAEpC,SAAS,CAAC,CAAC,CAAC,MAAM,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI;KACrC;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO,WAAW,CAAC;AACrB,CAAC;AAlBD,kDAkBC"}
@@ -19,7 +19,7 @@ export interface WithHintProps {
19
19
  * @param props Свойства.
20
20
  * @return Элемент.
21
21
  */
22
- export declare const WithHint: ({ children, direction, hint, onClose, shown: shownProp, }: WithHintProps) => JSX.Element;
22
+ export declare const WithHint: ({ children, direction, hint, onClose, shown: shownProp, }: WithHintProps) => import("react/jsx-runtime").JSX.Element;
23
23
  /**
24
24
  * Хук для формирования состояния временного хинта по гайдам.
25
25
  * @return Управление.
@@ -8,5 +8,5 @@ interface Props extends HintProps {
8
8
  * @param props Свойства.
9
9
  * @return Элемент.
10
10
  */
11
- export declare const PositioningHint: ({ children, direction, openerRef }: Props) => JSX.Element;
11
+ export declare const PositioningHint: ({ children, direction, openerRef }: Props) => import("react/jsx-runtime").JSX.Element;
12
12
  export {};
@@ -14,5 +14,5 @@ export interface WithTooltipProps {
14
14
  * @param props Свойства.
15
15
  * @return Элемент.
16
16
  */
17
- export declare const WithTooltip: ({ onDismiss, children, tooltip }: WithTooltipProps) => JSX.Element;
17
+ export declare const WithTooltip: ({ onDismiss, children, tooltip }: WithTooltipProps) => import("react/jsx-runtime").JSX.Element;
18
18
  export {};
@@ -12,4 +12,4 @@ export interface PositioningTooltipProps {
12
12
  * @param props Свойства.
13
13
  * @return Элемент.
14
14
  */
15
- export declare const PositioningTooltip: ({ openerRef, children, onDismiss }: PositioningTooltipProps) => JSX.Element;
15
+ export declare const PositioningTooltip: ({ openerRef, children, onDismiss }: PositioningTooltipProps) => import("react/jsx-runtime").JSX.Element;
package/chips/item.d.ts DELETED
@@ -1,15 +0,0 @@
1
- /// <reference types="react" />
2
- export interface ChipsItemProps {
3
- href?: string;
4
- children?: React.ReactNode;
5
- withCross?: boolean;
6
- target?: string;
7
- onClick?: React.MouseEventHandler<HTMLAnchorElement>;
8
- checked?: boolean;
9
- }
10
- /**
11
- * Элемент списка "чипсов".
12
- * @param props Свойства.
13
- * @return Элемент.
14
- */
15
- export declare const ChipsItem: ({ href, children, withCross, target, onClick, checked, }: ChipsItemProps) => JSX.Element;
package/chips/item.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"item.js","sourceRoot":"","sources":["../../src/chips/item.tsx"],"names":[],"mappings":";;;;;;;AAAA,2DAAyC;AACzC,2FAAsE;AACtE,4EAAyC;AAWzC,MAAM,EAAE,GAAG,cAAU,CAAC,IAAI,CAAC,2BAAM,CAAC,CAAC;AAEnC;;;;GAIG;AACI,MAAM,SAAS,GAAG,CAAC,EACxB,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,MAAM,EACN,OAAO,EACP,OAAO,GACQ,EAAE,EAAE,CAAC,CACpB,+BACE,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EACjC,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAClC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,iBACJ,YAAY,aAExB,iCAAM,SAAS,EAAE,2BAAM,CAAC,IAAI,YAAG,QAAQ,GAAQ,EAC9C,SAAS,IAAI,uBAAC,eAAQ,IAAC,SAAS,EAAE,EAAE,CAAC,WAAW,CAAC,GAAI,IACpD,CACL,CAAC;AAnBW,QAAA,SAAS,aAmBpB"}