@sima-land/ui-nucleons 45.0.0-alpha.6 → 45.0.0-alpha.8

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 (86) hide show
  1. package/autocomplete/autocomplete.js +8 -8
  2. package/autocomplete/autocomplete.js.map +1 -1
  3. package/avatar/avatar.d.ts +8 -0
  4. package/avatar/avatar.js +26 -0
  5. package/avatar/avatar.js.map +1 -0
  6. package/avatar/avatar.module.scss +17 -42
  7. package/avatar/index.d.ts +3 -30
  8. package/avatar/index.js +8 -41
  9. package/avatar/index.js.map +1 -1
  10. package/avatar/types.d.ts +19 -0
  11. package/avatar/types.js +3 -0
  12. package/avatar/types.js.map +1 -0
  13. package/avatar/utils.d.ts +28 -4
  14. package/avatar/utils.js +76 -13
  15. package/avatar/utils.js.map +1 -1
  16. package/avatar/utils.module.scss +9 -0
  17. package/button/button-util.scss +46 -0
  18. package/button/button.module.scss +17 -26
  19. package/button/index.d.ts +12 -2
  20. package/button/index.js +1 -1
  21. package/button/index.js.map +1 -1
  22. package/chips/chips-item.d.ts +15 -0
  23. package/chips/{item.js → chips-item.js} +7 -5
  24. package/chips/chips-item.js.map +1 -0
  25. package/chips/chips-item.module.scss +67 -0
  26. package/chips/chips.d.ts +17 -0
  27. package/chips/chips.js +25 -0
  28. package/chips/chips.js.map +1 -0
  29. package/chips/chips.module.scss +1 -69
  30. package/chips/index.d.ts +2 -16
  31. package/chips/index.js +5 -18
  32. package/chips/index.js.map +1 -1
  33. package/colors/index.d.ts +6 -4
  34. package/colors/index.js +6 -3
  35. package/colors/index.js.map +1 -1
  36. package/colors.scss +2 -0
  37. package/dropdown/utils.d.ts +1 -1
  38. package/expandable/expandable-group.module.scss +1 -5
  39. package/expandable/index.d.ts +4 -34
  40. package/expandable/index.js +80 -30
  41. package/expandable/index.js.map +1 -1
  42. package/expandable/types.d.ts +39 -0
  43. package/expandable/types.js +3 -0
  44. package/expandable/types.js.map +1 -0
  45. package/expandable/utils.d.ts +22 -23
  46. package/expandable/utils.js +65 -80
  47. package/expandable/utils.js.map +1 -1
  48. package/file-icon/file-icon.module.scss +42 -0
  49. package/file-icon/index.d.ts +10 -3
  50. package/file-icon/index.js +10 -16
  51. package/file-icon/index.js.map +1 -1
  52. package/link/index.d.ts +2 -2
  53. package/link/index.js.map +1 -1
  54. package/modal/index.d.ts +1 -1
  55. package/package.json +14 -17
  56. package/pagination/pagination-item.js +1 -1
  57. package/pagination/pagination-item.js.map +1 -1
  58. package/pagination/pagination.js +1 -1
  59. package/pagination/pagination.js.map +1 -1
  60. package/popup/utils.d.ts +1 -1
  61. package/side-page/index.js +1 -1
  62. package/side-page/index.js.map +1 -1
  63. package/styling/colors.d.ts +5 -5
  64. package/tabs/index.d.ts +24 -10
  65. package/tabs/index.js +8 -4
  66. package/tabs/index.js.map +1 -1
  67. package/textarea/index.js +1 -1
  68. package/toggle/toggle.module.scss +4 -4
  69. package/top-bar/top-bar.module.scss +1 -1
  70. package/upload-area/index.d.ts +2 -1
  71. package/upload-area/index.js +3 -1
  72. package/upload-area/index.js.map +1 -1
  73. package/upload-area/types.d.ts +10 -8
  74. package/upload-area/upload-area-util.scss +2 -0
  75. package/upload-area/upload-area.d.ts +1 -1
  76. package/upload-area/upload-area.js +6 -19
  77. package/upload-area/upload-area.js.map +1 -1
  78. package/upload-area/upload-area.module.scss +4 -1
  79. package/upload-area/utils.d.ts +7 -0
  80. package/upload-area/utils.js +20 -1
  81. package/upload-area/utils.js.map +1 -1
  82. package/avatar/user.d.ts +0 -10
  83. package/avatar/user.js +0 -41
  84. package/avatar/user.js.map +0 -1
  85. package/chips/item.d.ts +0 -15
  86. package/chips/item.js.map +0 -1
@@ -1,10 +1,10 @@
1
1
  /** @deprecated */
2
- export declare const color: (value: "basic-blue" | "basic-gray87" | "basic-gray76" | "basic-gray66" | "basic-gray54" | "basic-gray38" | "basic-gray24" | "basic-gray12" | "basic-gray8" | "basic-gray4" | "basic-gray2" | "basic-white" | "additional-deep-red" | "additional-red" | "additional-light-red" | "additional-teal" | "additional-green" | "additional-light-green" | "additional-lime" | "additional-faded-green" | "additional-pink" | "additional-purple" | "additional-violet" | "additional-deep-purple" | "additional-electric-blue" | "additional-light-blue" | "additional-cyan" | "additional-sky" | "additional-deep-orange" | "additional-amber" | "additional-yellow" | "additional-gold" | "additional-brown" | "additional-blue-gray" | "additional-deep-blue" | "additional-dark-blue") => string | undefined;
2
+ export declare const color: (value: "basic-blue" | "basic-gray87" | "basic-gray76" | "basic-gray66" | "basic-gray54" | "basic-gray38" | "basic-gray24" | "basic-gray12" | "basic-gray8" | "basic-gray4" | "basic-gray2" | "basic-white" | "additional-deep-red" | "additional-red" | "additional-light-red" | "additional-dark-teal" | "additional-teal" | "additional-green" | "additional-light-green" | "additional-lime" | "additional-faded-green" | "additional-pink" | "additional-purple" | "additional-violet" | "additional-deep-purple" | "additional-electric-blue" | "additional-light-blue" | "additional-cyan" | "additional-sky" | "additional-deep-orange" | "additional-amber" | "additional-yellow" | "additional-gold" | "additional-brown" | "additional-blue-gray" | "additional-deep-blue" | "additional-dark-blue" | "additional-unlit-blue") => string | undefined;
3
3
  /** @deprecated */
4
- export declare const hoverColor: (value: "basic-blue" | "basic-gray87" | "basic-gray76" | "basic-gray66" | "basic-gray54" | "basic-gray38" | "basic-gray24" | "basic-gray12" | "basic-gray8" | "basic-gray4" | "basic-gray2" | "basic-white" | "additional-deep-red" | "additional-red" | "additional-light-red" | "additional-teal" | "additional-green" | "additional-light-green" | "additional-lime" | "additional-faded-green" | "additional-pink" | "additional-purple" | "additional-violet" | "additional-deep-purple" | "additional-electric-blue" | "additional-light-blue" | "additional-cyan" | "additional-sky" | "additional-deep-orange" | "additional-amber" | "additional-yellow" | "additional-gold" | "additional-brown" | "additional-blue-gray" | "additional-deep-blue" | "additional-dark-blue") => string | undefined;
4
+ export declare const hoverColor: (value: "basic-blue" | "basic-gray87" | "basic-gray76" | "basic-gray66" | "basic-gray54" | "basic-gray38" | "basic-gray24" | "basic-gray12" | "basic-gray8" | "basic-gray4" | "basic-gray2" | "basic-white" | "additional-deep-red" | "additional-red" | "additional-light-red" | "additional-dark-teal" | "additional-teal" | "additional-green" | "additional-light-green" | "additional-lime" | "additional-faded-green" | "additional-pink" | "additional-purple" | "additional-violet" | "additional-deep-purple" | "additional-electric-blue" | "additional-light-blue" | "additional-cyan" | "additional-sky" | "additional-deep-orange" | "additional-amber" | "additional-yellow" | "additional-gold" | "additional-brown" | "additional-blue-gray" | "additional-deep-blue" | "additional-dark-blue" | "additional-unlit-blue") => string | undefined;
5
5
  /** @deprecated */
6
- export declare const bgColor: (value: "basic-blue" | "basic-gray87" | "basic-gray76" | "basic-gray66" | "basic-gray54" | "basic-gray38" | "basic-gray24" | "basic-gray12" | "basic-gray8" | "basic-gray4" | "basic-gray2" | "basic-white" | "additional-deep-red" | "additional-red" | "additional-light-red" | "additional-teal" | "additional-green" | "additional-light-green" | "additional-lime" | "additional-faded-green" | "additional-pink" | "additional-purple" | "additional-violet" | "additional-deep-purple" | "additional-electric-blue" | "additional-light-blue" | "additional-cyan" | "additional-sky" | "additional-deep-orange" | "additional-amber" | "additional-yellow" | "additional-gold" | "additional-brown" | "additional-blue-gray" | "additional-deep-blue" | "additional-dark-blue") => string | undefined;
6
+ export declare const bgColor: (value: "basic-blue" | "basic-gray87" | "basic-gray76" | "basic-gray66" | "basic-gray54" | "basic-gray38" | "basic-gray24" | "basic-gray12" | "basic-gray8" | "basic-gray4" | "basic-gray2" | "basic-white" | "additional-deep-red" | "additional-red" | "additional-light-red" | "additional-dark-teal" | "additional-teal" | "additional-green" | "additional-light-green" | "additional-lime" | "additional-faded-green" | "additional-pink" | "additional-purple" | "additional-violet" | "additional-deep-purple" | "additional-electric-blue" | "additional-light-blue" | "additional-cyan" | "additional-sky" | "additional-deep-orange" | "additional-amber" | "additional-yellow" | "additional-gold" | "additional-brown" | "additional-blue-gray" | "additional-deep-blue" | "additional-dark-blue" | "additional-unlit-blue") => string | undefined;
7
7
  /** @deprecated */
8
- export declare const stroke: (value: "basic-blue" | "basic-gray87" | "basic-gray76" | "basic-gray66" | "basic-gray54" | "basic-gray38" | "basic-gray24" | "basic-gray12" | "basic-gray8" | "basic-gray4" | "basic-gray2" | "basic-white" | "additional-deep-red" | "additional-red" | "additional-light-red" | "additional-teal" | "additional-green" | "additional-light-green" | "additional-lime" | "additional-faded-green" | "additional-pink" | "additional-purple" | "additional-violet" | "additional-deep-purple" | "additional-electric-blue" | "additional-light-blue" | "additional-cyan" | "additional-sky" | "additional-deep-orange" | "additional-amber" | "additional-yellow" | "additional-gold" | "additional-brown" | "additional-blue-gray" | "additional-deep-blue" | "additional-dark-blue") => string | undefined;
8
+ export declare const stroke: (value: "basic-blue" | "basic-gray87" | "basic-gray76" | "basic-gray66" | "basic-gray54" | "basic-gray38" | "basic-gray24" | "basic-gray12" | "basic-gray8" | "basic-gray4" | "basic-gray2" | "basic-white" | "additional-deep-red" | "additional-red" | "additional-light-red" | "additional-dark-teal" | "additional-teal" | "additional-green" | "additional-light-green" | "additional-lime" | "additional-faded-green" | "additional-pink" | "additional-purple" | "additional-violet" | "additional-deep-purple" | "additional-electric-blue" | "additional-light-blue" | "additional-cyan" | "additional-sky" | "additional-deep-orange" | "additional-amber" | "additional-yellow" | "additional-gold" | "additional-brown" | "additional-blue-gray" | "additional-deep-blue" | "additional-dark-blue" | "additional-unlit-blue") => string | undefined;
9
9
  /** @deprecated */
10
- export declare const fill: (value: "basic-blue" | "basic-gray87" | "basic-gray76" | "basic-gray66" | "basic-gray54" | "basic-gray38" | "basic-gray24" | "basic-gray12" | "basic-gray8" | "basic-gray4" | "basic-gray2" | "basic-white" | "additional-deep-red" | "additional-red" | "additional-light-red" | "additional-teal" | "additional-green" | "additional-light-green" | "additional-lime" | "additional-faded-green" | "additional-pink" | "additional-purple" | "additional-violet" | "additional-deep-purple" | "additional-electric-blue" | "additional-light-blue" | "additional-cyan" | "additional-sky" | "additional-deep-orange" | "additional-amber" | "additional-yellow" | "additional-gold" | "additional-brown" | "additional-blue-gray" | "additional-deep-blue" | "additional-dark-blue") => string | undefined;
10
+ export declare const fill: (value: "basic-blue" | "basic-gray87" | "basic-gray76" | "basic-gray66" | "basic-gray54" | "basic-gray38" | "basic-gray24" | "basic-gray12" | "basic-gray8" | "basic-gray4" | "basic-gray2" | "basic-white" | "additional-deep-red" | "additional-red" | "additional-light-red" | "additional-dark-teal" | "additional-teal" | "additional-green" | "additional-light-green" | "additional-lime" | "additional-faded-green" | "additional-pink" | "additional-purple" | "additional-violet" | "additional-deep-purple" | "additional-electric-blue" | "additional-light-blue" | "additional-cyan" | "additional-sky" | "additional-deep-orange" | "additional-amber" | "additional-yellow" | "additional-gold" | "additional-brown" | "additional-blue-gray" | "additional-deep-blue" | "additional-dark-blue" | "additional-unlit-blue") => string | undefined;
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): 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): 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"}
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);
@@ -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;
@@ -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,
@@ -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
  }
@@ -5,4 +5,4 @@ import { UploadAreaProps } from './types';
5
5
  * @param props Свойства.
6
6
  * @return Элемент.
7
7
  */
8
- export declare function UploadArea({ className, style, size, multiple, disabled, failed, formats, fileRole, countLimit, onSelect, sizeLimit, rootProps, inputProps, 'data-testid': testId, }: UploadAreaProps): JSX.Element;
8
+ export declare function UploadArea({ title, description, className, style, size, multiple, disabled, failed, onSelect, rootProps, inputProps, 'data-testid': testId, }: UploadAreaProps): 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"}
package/avatar/user.d.ts DELETED
@@ -1,10 +0,0 @@
1
- /// <reference types="react" />
2
- import { AvatarProps } from '.';
3
- export type UserAvatarProps = Omit<AvatarProps, 'bgColor' | 'bgOpacity' | 'textColor'>;
4
- export declare const colorKey: unique symbol;
5
- /**
6
- * Компонент аватара пользователя (не сотрудника).
7
- * @param props Свойства. Поддерживаются свойства Avatar.
8
- * @return Элемент.
9
- */
10
- export declare function UserAvatar(props: UserAvatarProps): JSX.Element;
package/avatar/user.js DELETED
@@ -1,41 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UserAvatar = exports.colorKey = void 0;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- const react_1 = require("react");
6
- const lodash_1 = require("lodash");
7
- const _1 = require(".");
8
- const COLORS = [
9
- 'additional-deep-red',
10
- 'additional-red',
11
- 'additional-teal',
12
- 'additional-green',
13
- 'additional-light-green',
14
- 'additional-amber',
15
- 'additional-purple',
16
- 'additional-violet',
17
- 'additional-deep-purple',
18
- 'additional-electric-blue',
19
- 'additional-light-blue',
20
- 'additional-cyan',
21
- 'additional-blue-gray',
22
- 'additional-deep-orange',
23
- ];
24
- exports.colorKey = Symbol.for('user-avatar:color-key');
25
- /**
26
- * Компонент аватара пользователя (не сотрудника).
27
- * @param props Свойства. Поддерживаются свойства Avatar.
28
- * @return Элемент.
29
- */
30
- function UserAvatar(props) {
31
- const [color, setColor] = (0, react_1.useState)();
32
- (0, react_1.useEffect)(() => {
33
- const source = window;
34
- // запоминаем цвет (пока только один для всех аватаров на странице)
35
- source[exports.colorKey] = source[exports.colorKey] || (0, lodash_1.sample)(COLORS);
36
- setColor(source[exports.colorKey]);
37
- }, []);
38
- return (0, jsx_runtime_1.jsx)(_1.Avatar, { ...props, bgColor: color, bgOpacity: color ? 0.48 : 0, textColor: 'basic-white' });
39
- }
40
- exports.UserAvatar = UserAvatar;
41
- //# sourceMappingURL=user.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/avatar/user.tsx"],"names":[],"mappings":";;;;AAAA,iCAA4C;AAC5C,mCAAgC;AAChC,wBAAwC;AAKxC,MAAM,MAAM,GAAyB;IACnC,qBAAqB;IACrB,gBAAgB;IAChB,iBAAiB;IACjB,kBAAkB;IAClB,wBAAwB;IACxB,kBAAkB;IAClB,mBAAmB;IACnB,mBAAmB;IACnB,wBAAwB;IACxB,0BAA0B;IAC1B,uBAAuB;IACvB,iBAAiB;IACjB,sBAAsB;IACtB,wBAAwB;CACzB,CAAC;AAEW,QAAA,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AAE5D;;;;GAIG;AACH,SAAgB,UAAU,CAAC,KAAsB;IAC/C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,GAA2B,CAAC;IAE9D,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,MAAM,MAAM,GAAQ,MAAM,CAAC;QAE3B,mEAAmE;QACnE,MAAM,CAAC,gBAAQ,CAAC,GAAG,MAAM,CAAC,gBAAQ,CAAC,IAAI,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC;QAEtD,QAAQ,CAAC,MAAM,CAAC,gBAAQ,CAAC,CAAC,CAAC;IAC7B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,uBAAC,SAAM,OAAK,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAC,aAAa,GAAG,CAAC;AACpG,CAAC;AAbD,gCAaC"}
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"}