@salutejs/plasma-new-hope 0.146.0-dev.0 → 0.147.0-canary.1437.10892194926.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (223) hide show
  1. package/cjs/components/Attach/Attach.css +45 -0
  2. package/cjs/components/Attach/Attach.js +174 -0
  3. package/cjs/components/Attach/Attach.js.map +1 -0
  4. package/cjs/components/Attach/Attach.styles.js +23 -0
  5. package/cjs/components/Attach/Attach.styles.js.map +1 -0
  6. package/cjs/components/Attach/Attach.styles_17fejif.css +3 -0
  7. package/cjs/components/Attach/Attach.tokens.js +83 -0
  8. package/cjs/components/Attach/Attach.tokens.js.map +1 -0
  9. package/cjs/components/Attach/ui/Button/Button.styles.js +23 -0
  10. package/cjs/components/Attach/ui/Button/Button.styles.js.map +1 -0
  11. package/cjs/components/Attach/ui/Button/Button.styles_oi6jxf.css +1 -0
  12. package/cjs/components/Attach/ui/Cell/Cell.styles.js +25 -0
  13. package/cjs/components/Attach/ui/Cell/Cell.styles.js.map +1 -0
  14. package/cjs/components/Attach/ui/Cell/Cell.styles_1dlvsak.css +1 -0
  15. package/cjs/components/Attach/ui/iconButton/IconButton.styles.js +23 -0
  16. package/cjs/components/Attach/ui/iconButton/IconButton.styles.js.map +1 -0
  17. package/cjs/components/Attach/ui/iconButton/IconButton.styles_14dty7n.css +1 -0
  18. package/cjs/components/Attach/utils/extractExtension.js +10 -0
  19. package/cjs/components/Attach/utils/extractExtension.js.map +1 -0
  20. package/cjs/components/Attach/utils/getFileicon.js +27 -0
  21. package/cjs/components/Attach/utils/getFileicon.js.map +1 -0
  22. package/cjs/components/Attach/utils/truncateFilename.js +16 -0
  23. package/cjs/components/Attach/utils/truncateFilename.js.map +1 -0
  24. package/cjs/components/Attach/variations/_size/base.js +9 -0
  25. package/cjs/components/Attach/variations/_size/base.js.map +1 -0
  26. package/cjs/components/Attach/variations/_size/base_eax0b8.css +1 -0
  27. package/cjs/components/Attach/variations/_view/base.js +9 -0
  28. package/cjs/components/Attach/variations/_view/base.js.map +1 -0
  29. package/cjs/components/Attach/variations/_view/base_1nvsg1b.css +1 -0
  30. package/cjs/components/Cell/Cell.js +3 -2
  31. package/cjs/components/Cell/Cell.js.map +1 -1
  32. package/cjs/index.css +14 -0
  33. package/cjs/index.js +5 -0
  34. package/cjs/index.js.map +1 -1
  35. package/emotion/cjs/components/Attach/Attach.js +180 -0
  36. package/emotion/cjs/components/Attach/Attach.styles.js +36 -0
  37. package/emotion/cjs/components/Attach/Attach.template-doc.mdx +46 -0
  38. package/emotion/cjs/components/Attach/Attach.tokens.js +81 -0
  39. package/emotion/cjs/components/Attach/Attach.types.js +5 -0
  40. package/emotion/cjs/components/Attach/index.js +25 -0
  41. package/emotion/cjs/components/Attach/ui/Button/Button.js +12 -0
  42. package/emotion/cjs/components/Attach/ui/Button/Button.styles.js +17 -0
  43. package/emotion/cjs/components/Attach/ui/Cell/Cell.js +12 -0
  44. package/emotion/cjs/components/Attach/ui/Cell/Cell.styles.js +17 -0
  45. package/emotion/cjs/components/Attach/ui/iconButton/IconButton.js +12 -0
  46. package/emotion/cjs/components/Attach/ui/iconButton/IconButton.styles.js +17 -0
  47. package/emotion/cjs/components/Attach/utils/extractExtension.js +9 -0
  48. package/emotion/cjs/components/Attach/utils/getFileicon.js +26 -0
  49. package/emotion/cjs/components/Attach/utils/index.js +26 -0
  50. package/emotion/cjs/components/Attach/utils/truncateFilename.js +15 -0
  51. package/emotion/cjs/components/Attach/variations/_size/base.js +9 -0
  52. package/emotion/cjs/components/Attach/variations/_view/base.js +9 -0
  53. package/emotion/cjs/components/Cell/Cell.js +3 -2
  54. package/emotion/cjs/examples/plasma_b2c/components/Attach/Attach.config.js +25 -0
  55. package/emotion/cjs/examples/plasma_b2c/components/Attach/Attach.js +11 -0
  56. package/emotion/cjs/examples/plasma_b2c/components/Attach/Attach.stories.tsx +61 -0
  57. package/emotion/cjs/examples/plasma_web/components/Attach/Attach.config.js +25 -0
  58. package/emotion/cjs/examples/plasma_web/components/Attach/Attach.js +11 -0
  59. package/emotion/cjs/examples/plasma_web/components/Attach/Attach.stories.tsx +61 -0
  60. package/emotion/cjs/index.js +11 -0
  61. package/emotion/es/components/Attach/Attach.js +171 -0
  62. package/emotion/es/components/Attach/Attach.styles.js +29 -0
  63. package/emotion/es/components/Attach/Attach.template-doc.mdx +46 -0
  64. package/emotion/es/components/Attach/Attach.tokens.js +75 -0
  65. package/emotion/es/components/Attach/Attach.types.js +1 -0
  66. package/emotion/es/components/Attach/index.js +2 -0
  67. package/emotion/es/components/Attach/ui/Button/Button.js +1 -0
  68. package/emotion/es/components/Attach/ui/Button/Button.styles.js +10 -0
  69. package/emotion/es/components/Attach/ui/Cell/Cell.js +1 -0
  70. package/emotion/es/components/Attach/ui/Cell/Cell.styles.js +10 -0
  71. package/emotion/es/components/Attach/ui/iconButton/IconButton.js +1 -0
  72. package/emotion/es/components/Attach/ui/iconButton/IconButton.styles.js +10 -0
  73. package/emotion/es/components/Attach/utils/extractExtension.js +3 -0
  74. package/emotion/es/components/Attach/utils/getFileicon.js +19 -0
  75. package/emotion/es/components/Attach/utils/index.js +3 -0
  76. package/emotion/es/components/Attach/utils/truncateFilename.js +9 -0
  77. package/emotion/es/components/Attach/variations/_size/base.js +3 -0
  78. package/emotion/es/components/Attach/variations/_view/base.js +3 -0
  79. package/emotion/es/components/Cell/Cell.js +3 -2
  80. package/emotion/es/examples/plasma_b2c/components/Attach/Attach.config.js +19 -0
  81. package/emotion/es/examples/plasma_b2c/components/Attach/Attach.js +5 -0
  82. package/emotion/es/examples/plasma_b2c/components/Attach/Attach.stories.tsx +61 -0
  83. package/emotion/es/examples/plasma_web/components/Attach/Attach.config.js +19 -0
  84. package/emotion/es/examples/plasma_web/components/Attach/Attach.js +5 -0
  85. package/emotion/es/examples/plasma_web/components/Attach/Attach.stories.tsx +61 -0
  86. package/emotion/es/index.js +2 -1
  87. package/es/components/Attach/Attach.css +45 -0
  88. package/es/components/Attach/Attach.js +169 -0
  89. package/es/components/Attach/Attach.js.map +1 -0
  90. package/es/components/Attach/Attach.styles.js +17 -0
  91. package/es/components/Attach/Attach.styles.js.map +1 -0
  92. package/es/components/Attach/Attach.styles_17fejif.css +3 -0
  93. package/es/components/Attach/Attach.tokens.js +78 -0
  94. package/es/components/Attach/Attach.tokens.js.map +1 -0
  95. package/es/components/Attach/ui/Button/Button.styles.js +19 -0
  96. package/es/components/Attach/ui/Button/Button.styles.js.map +1 -0
  97. package/es/components/Attach/ui/Button/Button.styles_oi6jxf.css +1 -0
  98. package/es/components/Attach/ui/Cell/Cell.styles.js +21 -0
  99. package/es/components/Attach/ui/Cell/Cell.styles.js.map +1 -0
  100. package/es/components/Attach/ui/Cell/Cell.styles_1dlvsak.css +1 -0
  101. package/es/components/Attach/ui/iconButton/IconButton.styles.js +19 -0
  102. package/es/components/Attach/ui/iconButton/IconButton.styles.js.map +1 -0
  103. package/es/components/Attach/ui/iconButton/IconButton.styles_14dty7n.css +1 -0
  104. package/es/components/Attach/utils/extractExtension.js +6 -0
  105. package/es/components/Attach/utils/extractExtension.js.map +1 -0
  106. package/es/components/Attach/utils/getFileicon.js +23 -0
  107. package/es/components/Attach/utils/getFileicon.js.map +1 -0
  108. package/es/components/Attach/utils/truncateFilename.js +12 -0
  109. package/es/components/Attach/utils/truncateFilename.js.map +1 -0
  110. package/es/components/Attach/variations/_size/base.js +5 -0
  111. package/es/components/Attach/variations/_size/base.js.map +1 -0
  112. package/es/components/Attach/variations/_size/base_eax0b8.css +1 -0
  113. package/es/components/Attach/variations/_view/base.js +5 -0
  114. package/es/components/Attach/variations/_view/base.js.map +1 -0
  115. package/es/components/Attach/variations/_view/base_1nvsg1b.css +1 -0
  116. package/es/components/Cell/Cell.js +3 -2
  117. package/es/components/Cell/Cell.js.map +1 -1
  118. package/es/index.css +14 -0
  119. package/es/index.js +2 -0
  120. package/es/index.js.map +1 -1
  121. package/package.json +3 -2
  122. package/styled-components/cjs/components/Attach/Attach.js +180 -0
  123. package/styled-components/cjs/components/Attach/Attach.styles.js +18 -0
  124. package/styled-components/cjs/components/Attach/Attach.template-doc.mdx +46 -0
  125. package/styled-components/cjs/components/Attach/Attach.tokens.js +81 -0
  126. package/styled-components/cjs/components/Attach/Attach.types.js +5 -0
  127. package/styled-components/cjs/components/Attach/index.js +25 -0
  128. package/styled-components/cjs/components/Attach/ui/Button/Button.js +12 -0
  129. package/styled-components/cjs/components/Attach/ui/Button/Button.styles.js +16 -0
  130. package/styled-components/cjs/components/Attach/ui/Cell/Cell.js +12 -0
  131. package/styled-components/cjs/components/Attach/ui/Cell/Cell.styles.js +16 -0
  132. package/styled-components/cjs/components/Attach/ui/iconButton/IconButton.js +12 -0
  133. package/styled-components/cjs/components/Attach/ui/iconButton/IconButton.styles.js +16 -0
  134. package/styled-components/cjs/components/Attach/utils/extractExtension.js +9 -0
  135. package/styled-components/cjs/components/Attach/utils/getFileicon.js +26 -0
  136. package/styled-components/cjs/components/Attach/utils/index.js +26 -0
  137. package/styled-components/cjs/components/Attach/utils/truncateFilename.js +15 -0
  138. package/styled-components/cjs/components/Attach/variations/_size/base.js +9 -0
  139. package/styled-components/cjs/components/Attach/variations/_view/base.js +9 -0
  140. package/styled-components/cjs/components/Cell/Cell.js +3 -2
  141. package/styled-components/cjs/examples/plasma_b2c/components/Attach/Attach.config.js +25 -0
  142. package/styled-components/cjs/examples/plasma_b2c/components/Attach/Attach.js +11 -0
  143. package/styled-components/cjs/examples/plasma_b2c/components/Attach/Attach.stories.tsx +61 -0
  144. package/styled-components/cjs/examples/plasma_web/components/Attach/Attach.config.js +25 -0
  145. package/styled-components/cjs/examples/plasma_web/components/Attach/Attach.js +11 -0
  146. package/styled-components/cjs/examples/plasma_web/components/Attach/Attach.stories.tsx +61 -0
  147. package/styled-components/cjs/index.js +11 -0
  148. package/styled-components/es/components/Attach/Attach.js +171 -0
  149. package/styled-components/es/components/Attach/Attach.styles.js +10 -0
  150. package/styled-components/es/components/Attach/Attach.template-doc.mdx +46 -0
  151. package/styled-components/es/components/Attach/Attach.tokens.js +75 -0
  152. package/styled-components/es/components/Attach/Attach.types.js +1 -0
  153. package/styled-components/es/components/Attach/index.js +2 -0
  154. package/styled-components/es/components/Attach/ui/Button/Button.js +1 -0
  155. package/styled-components/es/components/Attach/ui/Button/Button.styles.js +9 -0
  156. package/styled-components/es/components/Attach/ui/Cell/Cell.js +1 -0
  157. package/styled-components/es/components/Attach/ui/Cell/Cell.styles.js +9 -0
  158. package/styled-components/es/components/Attach/ui/iconButton/IconButton.js +1 -0
  159. package/styled-components/es/components/Attach/ui/iconButton/IconButton.styles.js +9 -0
  160. package/styled-components/es/components/Attach/utils/extractExtension.js +3 -0
  161. package/styled-components/es/components/Attach/utils/getFileicon.js +19 -0
  162. package/styled-components/es/components/Attach/utils/index.js +3 -0
  163. package/styled-components/es/components/Attach/utils/truncateFilename.js +9 -0
  164. package/styled-components/es/components/Attach/variations/_size/base.js +3 -0
  165. package/styled-components/es/components/Attach/variations/_view/base.js +3 -0
  166. package/styled-components/es/components/Cell/Cell.js +3 -2
  167. package/styled-components/es/examples/plasma_b2c/components/Attach/Attach.config.js +19 -0
  168. package/styled-components/es/examples/plasma_b2c/components/Attach/Attach.js +5 -0
  169. package/styled-components/es/examples/plasma_b2c/components/Attach/Attach.stories.tsx +61 -0
  170. package/styled-components/es/examples/plasma_web/components/Attach/Attach.config.js +19 -0
  171. package/styled-components/es/examples/plasma_web/components/Attach/Attach.js +5 -0
  172. package/styled-components/es/examples/plasma_web/components/Attach/Attach.stories.tsx +61 -0
  173. package/styled-components/es/index.js +2 -1
  174. package/types/components/Attach/Attach.d.ts +23 -0
  175. package/types/components/Attach/Attach.d.ts.map +1 -0
  176. package/types/components/Attach/Attach.styles.d.ts +5 -0
  177. package/types/components/Attach/Attach.styles.d.ts.map +1 -0
  178. package/types/components/Attach/Attach.tokens.d.ts +73 -0
  179. package/types/components/Attach/Attach.tokens.d.ts.map +1 -0
  180. package/types/components/Attach/Attach.types.d.ts +33 -0
  181. package/types/components/Attach/Attach.types.d.ts.map +1 -0
  182. package/types/components/Attach/index.d.ts +4 -0
  183. package/types/components/Attach/index.d.ts.map +1 -0
  184. package/types/components/Attach/ui/Button/Button.d.ts +2 -0
  185. package/types/components/Attach/ui/Button/Button.d.ts.map +1 -0
  186. package/types/components/Attach/ui/Button/Button.styles.d.ts +45 -0
  187. package/types/components/Attach/ui/Button/Button.styles.d.ts.map +1 -0
  188. package/types/components/Attach/ui/Cell/Cell.d.ts +2 -0
  189. package/types/components/Attach/ui/Cell/Cell.d.ts.map +1 -0
  190. package/types/components/Attach/ui/Cell/Cell.styles.d.ts +33 -0
  191. package/types/components/Attach/ui/Cell/Cell.styles.d.ts.map +1 -0
  192. package/types/components/Attach/ui/iconButton/IconButton.d.ts +2 -0
  193. package/types/components/Attach/ui/iconButton/IconButton.d.ts.map +1 -0
  194. package/types/components/Attach/ui/iconButton/IconButton.styles.d.ts +45 -0
  195. package/types/components/Attach/ui/iconButton/IconButton.styles.d.ts.map +1 -0
  196. package/types/components/Attach/utils/extractExtension.d.ts +2 -0
  197. package/types/components/Attach/utils/extractExtension.d.ts.map +1 -0
  198. package/types/components/Attach/utils/getFileicon.d.ts +3 -0
  199. package/types/components/Attach/utils/getFileicon.d.ts.map +1 -0
  200. package/types/components/Attach/utils/index.d.ts +4 -0
  201. package/types/components/Attach/utils/index.d.ts.map +1 -0
  202. package/types/components/Attach/utils/truncateFilename.d.ts +2 -0
  203. package/types/components/Attach/utils/truncateFilename.d.ts.map +1 -0
  204. package/types/components/Attach/variations/_size/base.d.ts +2 -0
  205. package/types/components/Attach/variations/_size/base.d.ts.map +1 -0
  206. package/types/components/Attach/variations/_view/base.d.ts +2 -0
  207. package/types/components/Attach/variations/_view/base.d.ts.map +1 -0
  208. package/types/components/Cell/Cell.d.ts.map +1 -1
  209. package/types/components/Cell/Cell.types.d.ts +1 -1
  210. package/types/components/Cell/Cell.types.d.ts.map +1 -1
  211. package/types/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.styles.d.ts +2 -2
  212. package/types/examples/plasma_b2c/components/Attach/Attach.config.d.ts +18 -0
  213. package/types/examples/plasma_b2c/components/Attach/Attach.config.d.ts.map +1 -0
  214. package/types/examples/plasma_b2c/components/Attach/Attach.d.ts +13 -0
  215. package/types/examples/plasma_b2c/components/Attach/Attach.d.ts.map +1 -0
  216. package/types/examples/plasma_b2c/components/Cell/Cell.d.ts +2 -2
  217. package/types/examples/plasma_web/components/Attach/Attach.config.d.ts +18 -0
  218. package/types/examples/plasma_web/components/Attach/Attach.config.d.ts.map +1 -0
  219. package/types/examples/plasma_web/components/Attach/Attach.d.ts +13 -0
  220. package/types/examples/plasma_web/components/Attach/Attach.d.ts.map +1 -0
  221. package/types/examples/plasma_web/components/Cell/Cell.d.ts +2 -2
  222. package/types/index.d.ts +1 -0
  223. package/types/index.d.ts.map +1 -1
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.base = void 0;
7
+ var _styledComponents = /*#__PURE__*/require("styled-components");
8
+ var _Attach = /*#__PURE__*/require("../../Attach.tokens");
9
+ var base = exports.base = /*#__PURE__*/(0, _styledComponents.css)(["&.", "{flex-direction:row;}&.", "{flex-direction:column;}&.", "{flex-wrap:wrap;}"], _Attach.classes.horizontal, _Attach.classes.vertical, _Attach.classes.auto);
@@ -31,7 +31,8 @@ var cellRoot = exports.cellRoot = function cellRoot(Root) {
31
31
  description = _ref.description,
32
32
  content = _ref.content,
33
33
  _ref$stretching = _ref.stretching,
34
- stretching = _ref$stretching === void 0 ? 'filled' : _ref$stretching;
34
+ stretching = _ref$stretching === void 0 ? 'filled' : _ref$stretching,
35
+ className = _ref.className;
35
36
  var stretchingClass = _Cell2.classes["".concat(stretching, "Stretching")];
36
37
 
37
38
  // Импорт старых свойств
@@ -41,7 +42,7 @@ var cellRoot = exports.cellRoot = function cellRoot(Root) {
41
42
  ref: outerRootRef,
42
43
  size: size,
43
44
  view: view,
44
- className: (0, _utils.cx)(stretchingClass, _Cell2.classes.cellRoot)
45
+ className: (0, _utils.cx)(stretchingClass, _Cell2.classes.cellRoot, className)
45
46
  }, contentLeftDeprecated && /*#__PURE__*/_react["default"].createElement(_Cell.CellLeft, {
46
47
  align: alignContentLeft
47
48
  }, contentLeftDeprecated), /*#__PURE__*/_react["default"].createElement(_Cell.CellContentWrapper, null, /*#__PURE__*/_react["default"].createElement(_Cell.CellContent, null, titleText || subtitle || label ? /*#__PURE__*/_react["default"].createElement(_CellTextbox.CellTextbox, {
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.config = void 0;
7
+ var _styledComponents = /*#__PURE__*/require("styled-components");
8
+ var _Attach = /*#__PURE__*/require("../../../../components/Attach");
9
+ var config = exports.config = {
10
+ defaults: {
11
+ view: 'default',
12
+ size: 'm'
13
+ },
14
+ variations: {
15
+ view: {
16
+ "default": /*#__PURE__*/(0, _styledComponents.css)(["", ":var(--on-dark-text-primary);", ":var(--surface-accent);", ":var(--on-dark-text-primary);", ":var(--surface-accent-hover);", ":var(--on-dark-text-primary);", ":var(--surface-accent-active);", ":var(--text-primary);", ":var(--text-secondary);", ":var(--text-primary);", ":var(--text-secondary);", ":transparent;", ":var(--text-primary);", ":var(--surface-clear);", ":var(--text-primary-hover);", ":var(--surface-clear);", ":var(--text-primary-active);", ":var(--surface-clear);"], _Attach.attachTokens.buttonColor, _Attach.attachTokens.buttonBackgroundColor, _Attach.attachTokens.buttonColorHover, _Attach.attachTokens.buttonBackgroundColorHover, _Attach.attachTokens.buttonColorActive, _Attach.attachTokens.buttonBackgroundColorActive, _Attach.attachTokens.cellColor, _Attach.attachTokens.cellLabelColor, _Attach.attachTokens.cellTitleColor, _Attach.attachTokens.cellSubtitleColor, _Attach.attachTokens.cellBackgroundColor, _Attach.attachTokens.iconButtonColor, _Attach.attachTokens.iconButtonBackgroundColor, _Attach.attachTokens.iconButtonColorHover, _Attach.attachTokens.iconButtonBackgroundColorHover, _Attach.attachTokens.iconButtonColorActive, _Attach.attachTokens.iconButtonBackgroundColorActive)
17
+ },
18
+ size: {
19
+ l: /*#__PURE__*/(0, _styledComponents.css)(["", ":1.5rem;", ":0.5rem;", ":3.5rem;", ":12.5rem;", ":1.5rem;", ":0.875rem;", ":var(--plasma-typo-body-l-font-family);", ":var(--plasma-typo-body-l-font-size);", ":var(--plasma-typo-body-l-font-style);", ":var(--plasma-typo-body-l-bold-font-weight);", ":var(--plasma-typo-body-l-letter-spacing);", ":var(--plasma-typo-body-l-line-height);", ":15rem;", ":0rem;", ":0rem;", ":0rem;", ":0rem;", ":0.125rem;", ":0.375rem;", ":var(--plasma-typo-body-m-font-family);", ":var(--plasma-typo-body-m-font-size);", ":var(--plasma-typo-body-m-font-style);", ":var(--plasma-typo-body-m-font-weight);", ":var(--plasma-typo-body-m-letter-spacing);", ":var(--plasma-typo-body-m-line-height);", ":var(--plasma-typo-body-l-font-family);", ":var(--plasma-typo-body-l-font-size);", ":var(--plasma-typo-body-l-font-style);", ":var(--plasma-typo-body-l-font-weight);", ":var(--plasma-typo-body-l-letter-spacing);", ":var(--plasma-typo-body-l-line-height);", ":var(--plasma-typo-body-m-font-family);", ":var(--plasma-typo-body-m-font-size);", ":var(--plasma-typo-body-m-font-style);", ":var(--plasma-typo-body-m-font-weight);", ":var(--plasma-typo-body-m-letter-spacing);", ":var(--plasma-typo-body-m-line-height);", ":3.5rem;", ":3.5rem;", ":1.5rem;", ":0.875rem;", ":var(--plasma-typo-body-l-font-family);", ":var(--plasma-typo-body-l-font-size);", ":var(--plasma-typo-body-l-font-style);", ":var(--plasma-typo-body-l-bold-font-weight);", ":var(--plasma-typo-body-l-letter-spacing);", ":var(--plasma-typo-body-l-line-height);"], _Attach.attachTokens.horizontalGap, _Attach.attachTokens.verticalGap, _Attach.attachTokens.buttonHeight, _Attach.attachTokens.buttonWidth, _Attach.attachTokens.buttonPadding, _Attach.attachTokens.buttonRadius, _Attach.attachTokens.buttonFontFamily, _Attach.attachTokens.buttonFontSize, _Attach.attachTokens.buttonFontStyle, _Attach.attachTokens.buttonFontWeight, _Attach.attachTokens.buttonLetterSpacing, _Attach.attachTokens.buttonLineHeight, _Attach.attachTokens.cellWidth, _Attach.attachTokens.cellPadding, _Attach.attachTokens.cellPaddingLeftContent, _Attach.attachTokens.cellPaddingContent, _Attach.attachTokens.cellPaddingRightContent, _Attach.attachTokens.cellTextboxGap, _Attach.attachTokens.cellGap, _Attach.attachTokens.cellLabelFontFamily, _Attach.attachTokens.cellLabelFontSize, _Attach.attachTokens.cellLabelFontStyle, _Attach.attachTokens.cellLabelFontWeight, _Attach.attachTokens.cellLabelLetterSpacing, _Attach.attachTokens.cellLabelLineHeight, _Attach.attachTokens.cellTitleFontFamily, _Attach.attachTokens.cellTitleFontSize, _Attach.attachTokens.cellTitleFontStyle, _Attach.attachTokens.cellTitleFontWeight, _Attach.attachTokens.cellTitleLetterSpacing, _Attach.attachTokens.cellTitleLineHeight, _Attach.attachTokens.cellSubtitleFontFamily, _Attach.attachTokens.cellSubtitleFontSize, _Attach.attachTokens.cellSubtitleFontStyle, _Attach.attachTokens.cellSubtitleFontWeight, _Attach.attachTokens.cellSubtitleLetterSpacing, _Attach.attachTokens.cellSubtitleLineHeight, _Attach.attachTokens.iconButtonHeight, _Attach.attachTokens.iconButtonWidth, _Attach.attachTokens.iconButtonPadding, _Attach.attachTokens.iconButtonRadius, _Attach.attachTokens.iconButtonFontFamily, _Attach.attachTokens.iconButtonFontSize, _Attach.attachTokens.iconButtonFontStyle, _Attach.attachTokens.iconButtonFontWeight, _Attach.attachTokens.iconButtonLetterSpacing, _Attach.attachTokens.iconButtonLineHeight),
20
+ m: /*#__PURE__*/(0, _styledComponents.css)(["", ":1.25rem;", ":0.5rem;", ":3rem;", ":11.25rem;", ":1.25rem;", ":0.75rem;", ":var(--plasma-typo-body-m-font-family);", ":var(--plasma-typo-body-m-font-size);", ":var(--plasma-typo-body-m-font-style);", ":var(--plasma-typo-body-m-bold-font-weight);", ":var(--plasma-typo-body-m-letter-spacing);", ":var(--plasma-typo-body-m-line-height);", ":15rem;", ":0rem;", ":0rem;", ":0rem;", ":0rem;", ":0.125rem;", ":0.375rem;", ":var(--plasma-typo-body-s-font-family);", ":var(--plasma-typo-body-s-font-size);", ":var(--plasma-typo-body-s-font-style);", ":var(--plasma-typo-body-s-font-weight);", ":var(--plasma-typo-body-s-letter-spacing);", ":var(--plasma-typo-body-s-line-height);", ":var(--plasma-typo-body-m-font-family);", ":var(--plasma-typo-body-m-font-size);", ":var(--plasma-typo-body-m-font-style);", ":var(--plasma-typo-body-m-font-weight);", ":var(--plasma-typo-body-m-letter-spacing);", ":var(--plasma-typo-body-m-line-height);", ":var(--plasma-typo-body-s-font-family);", ":var(--plasma-typo-body-s-font-size);", ":var(--plasma-typo-body-s-font-style);", ":var(--plasma-typo-body-s-font-weight);", ":var(--plasma-typo-body-s-letter-spacing);", ":var(--plasma-typo-body-s-line-height);", ":2rem;", ":2rem;", ":0.75rem;", ":0.5rem;", ":var(--plasma-typo-body-xs-font-family);", ":var(--plasma-typo-body-xs-font-size);", ":var(--plasma-typo-body-xs-font-style);", ":var(--plasma-typo-body-xs-bold-font-weight);", ":var(--plasma-typo-body-xs-letter-spacing);", ":var(--plasma-typo-body-xs-line-height);"], _Attach.attachTokens.horizontalGap, _Attach.attachTokens.verticalGap, _Attach.attachTokens.buttonHeight, _Attach.attachTokens.buttonWidth, _Attach.attachTokens.buttonPadding, _Attach.attachTokens.buttonRadius, _Attach.attachTokens.buttonFontFamily, _Attach.attachTokens.buttonFontSize, _Attach.attachTokens.buttonFontStyle, _Attach.attachTokens.buttonFontWeight, _Attach.attachTokens.buttonLetterSpacing, _Attach.attachTokens.buttonLineHeight, _Attach.attachTokens.cellWidth, _Attach.attachTokens.cellPadding, _Attach.attachTokens.cellPaddingLeftContent, _Attach.attachTokens.cellPaddingContent, _Attach.attachTokens.cellPaddingRightContent, _Attach.attachTokens.cellTextboxGap, _Attach.attachTokens.cellGap, _Attach.attachTokens.cellLabelFontFamily, _Attach.attachTokens.cellLabelFontSize, _Attach.attachTokens.cellLabelFontStyle, _Attach.attachTokens.cellLabelFontWeight, _Attach.attachTokens.cellLabelLetterSpacing, _Attach.attachTokens.cellLabelLineHeight, _Attach.attachTokens.cellTitleFontFamily, _Attach.attachTokens.cellTitleFontSize, _Attach.attachTokens.cellTitleFontStyle, _Attach.attachTokens.cellTitleFontWeight, _Attach.attachTokens.cellTitleLetterSpacing, _Attach.attachTokens.cellTitleLineHeight, _Attach.attachTokens.cellSubtitleFontFamily, _Attach.attachTokens.cellSubtitleFontSize, _Attach.attachTokens.cellSubtitleFontStyle, _Attach.attachTokens.cellSubtitleFontWeight, _Attach.attachTokens.cellSubtitleLetterSpacing, _Attach.attachTokens.cellSubtitleLineHeight, _Attach.attachTokens.iconButtonHeight, _Attach.attachTokens.iconButtonWidth, _Attach.attachTokens.iconButtonPadding, _Attach.attachTokens.iconButtonRadius, _Attach.attachTokens.iconButtonFontFamily, _Attach.attachTokens.iconButtonFontSize, _Attach.attachTokens.iconButtonFontStyle, _Attach.attachTokens.iconButtonFontWeight, _Attach.attachTokens.iconButtonLetterSpacing, _Attach.attachTokens.iconButtonLineHeight),
21
+ s: /*#__PURE__*/(0, _styledComponents.css)(["", ":1rem;", ":0.375rem;", ":2.5rem;", ":11.25rem;", ":1rem;", ":0.625rem;", ":var(--plasma-typo-body-s-font-family);", ":var(--plasma-typo-body-s-font-size);", ":var(--plasma-typo-body-s-font-style);", ":var(--plasma-typo-body-s-bold-font-weight);", ":var(--plasma-typo-body-s-letter-spacing);", ":var(--plasma-typo-body-s-line-height);", ":15rem;", ":0rem;", ":0rem;", ":0rem;", ":0rem;", ":0.125rem;", ":0.375rem;", ":var(--plasma-typo-body-xs-font-family);", ":var(--plasma-typo-body-xs-font-size);", ":var(--plasma-typo-body-xs-font-style);", ":var(--plasma-typo-body-xs-font-weight);", ":var(--plasma-typo-body-xs-letter-spacing);", ":var(--plasma-typo-body-xs-line-height);", ":var(--plasma-typo-body-s-font-family);", ":var(--plasma-typo-body-s-font-size);", ":var(--plasma-typo-body-s-font-style);", ":var(--plasma-typo-body-s-font-weight);", ":var(--plasma-typo-body-s-letter-spacing);", ":var(--plasma-typo-body-s-line-height);", ":var(--plasma-typo-body-xs-font-family);", ":var(--plasma-typo-body-xs-font-size);", ":var(--plasma-typo-body-xs-font-style);", ":var(--plasma-typo-body-xs-font-weight);", ":var(--plasma-typo-body-xs-letter-spacing);", ":var(--plasma-typo-body-xs-line-height);", ":2.5rem;", ":2.5rem;", ":1rem;", ":0.625rem;", ":var(--plasma-typo-body-s-font-family);", ":var(--plasma-typo-body-s-font-size);", ":var(--plasma-typo-body-s-font-style);", ":var(--plasma-typo-body-s-bold-font-weight);", ":var(--plasma-typo-body-s-letter-spacing);", ":var(--plasma-typo-body-s-line-height);"], _Attach.attachTokens.horizontalGap, _Attach.attachTokens.verticalGap, _Attach.attachTokens.buttonHeight, _Attach.attachTokens.buttonWidth, _Attach.attachTokens.buttonPadding, _Attach.attachTokens.buttonRadius, _Attach.attachTokens.buttonFontFamily, _Attach.attachTokens.buttonFontSize, _Attach.attachTokens.buttonFontStyle, _Attach.attachTokens.buttonFontWeight, _Attach.attachTokens.buttonLetterSpacing, _Attach.attachTokens.buttonLineHeight, _Attach.attachTokens.cellWidth, _Attach.attachTokens.cellPadding, _Attach.attachTokens.cellPaddingLeftContent, _Attach.attachTokens.cellPaddingContent, _Attach.attachTokens.cellPaddingRightContent, _Attach.attachTokens.cellTextboxGap, _Attach.attachTokens.cellGap, _Attach.attachTokens.cellLabelFontFamily, _Attach.attachTokens.cellLabelFontSize, _Attach.attachTokens.cellLabelFontStyle, _Attach.attachTokens.cellLabelFontWeight, _Attach.attachTokens.cellLabelLetterSpacing, _Attach.attachTokens.cellLabelLineHeight, _Attach.attachTokens.cellTitleFontFamily, _Attach.attachTokens.cellTitleFontSize, _Attach.attachTokens.cellTitleFontStyle, _Attach.attachTokens.cellTitleFontWeight, _Attach.attachTokens.cellTitleLetterSpacing, _Attach.attachTokens.cellTitleLineHeight, _Attach.attachTokens.cellSubtitleFontFamily, _Attach.attachTokens.cellSubtitleFontSize, _Attach.attachTokens.cellSubtitleFontStyle, _Attach.attachTokens.cellSubtitleFontWeight, _Attach.attachTokens.cellSubtitleLetterSpacing, _Attach.attachTokens.cellSubtitleLineHeight, _Attach.attachTokens.iconButtonHeight, _Attach.attachTokens.iconButtonWidth, _Attach.attachTokens.iconButtonPadding, _Attach.attachTokens.iconButtonRadius, _Attach.attachTokens.iconButtonFontFamily, _Attach.attachTokens.iconButtonFontSize, _Attach.attachTokens.iconButtonFontStyle, _Attach.attachTokens.iconButtonFontWeight, _Attach.attachTokens.iconButtonLetterSpacing, _Attach.attachTokens.iconButtonLineHeight),
22
+ xs: /*#__PURE__*/(0, _styledComponents.css)(["", ":0.75rem;", ":0.25rem;", ":2rem;", ":10rem;", ":0.75rem;", ":0.5rem;", ":var(--plasma-typo-body-xs-font-family);", ":var(--plasma-typo-body-xs-font-size);", ":var(--plasma-typo-body-xs-font-style);", ":var(--plasma-typo-body-xs-bold-font-weight);", ":var(--plasma-typo-body-xs-letter-spacing);", ":var(--plasma-typo-body-xs-line-height);", ":15rem;", ":0rem;", ":0rem;", ":0rem;", ":0rem;", ":0.125rem;", ":0.25rem;", ":var(--plasma-typo-body-xs-font-family);", ":var(--plasma-typo-body-xs-font-size);", ":var(--plasma-typo-body-xs-font-style);", ":var(--plasma-typo-body-xs-font-weight);", ":var(--plasma-typo-body-xs-letter-spacing);", ":var(--plasma-typo-body-xs-line-height);", ":var(--plasma-typo-body-xs-font-family);", ":var(--plasma-typo-body-xs-font-size);", ":var(--plasma-typo-body-xs-font-style);", ":var(--plasma-typo-body-xs-font-weight);", ":var(--plasma-typo-body-xs-letter-spacing);", ":var(--plasma-typo-body-xs-line-height);", ":var(--plasma-typo-body-xs-font-family);", ":var(--plasma-typo-body-xs-font-size);", ":var(--plasma-typo-body-xs-font-style);", ":var(--plasma-typo-body-xs-font-weight);", ":var(--plasma-typo-body-xs-letter-spacing);", ":var(--plasma-typo-body-xs-line-height);", ":2rem;", ":2rem;", ":0.75rem;", ":0.5rem;", ":var(--plasma-typo-body-xs-font-family);", ":var(--plasma-typo-body-xs-font-size);", ":var(--plasma-typo-body-xs-font-style);", ":var(--plasma-typo-body-xs-bold-font-weight);", ":var(--plasma-typo-body-xs-letter-spacing);", ":var(--plasma-typo-body-xs-line-height);"], _Attach.attachTokens.horizontalGap, _Attach.attachTokens.verticalGap, _Attach.attachTokens.buttonHeight, _Attach.attachTokens.buttonWidth, _Attach.attachTokens.buttonPadding, _Attach.attachTokens.buttonRadius, _Attach.attachTokens.buttonFontFamily, _Attach.attachTokens.buttonFontSize, _Attach.attachTokens.buttonFontStyle, _Attach.attachTokens.buttonFontWeight, _Attach.attachTokens.buttonLetterSpacing, _Attach.attachTokens.buttonLineHeight, _Attach.attachTokens.cellWidth, _Attach.attachTokens.cellPadding, _Attach.attachTokens.cellPaddingLeftContent, _Attach.attachTokens.cellPaddingContent, _Attach.attachTokens.cellPaddingRightContent, _Attach.attachTokens.cellTextboxGap, _Attach.attachTokens.cellGap, _Attach.attachTokens.cellLabelFontFamily, _Attach.attachTokens.cellLabelFontSize, _Attach.attachTokens.cellLabelFontStyle, _Attach.attachTokens.cellLabelFontWeight, _Attach.attachTokens.cellLabelLetterSpacing, _Attach.attachTokens.cellLabelLineHeight, _Attach.attachTokens.cellTitleFontFamily, _Attach.attachTokens.cellTitleFontSize, _Attach.attachTokens.cellTitleFontStyle, _Attach.attachTokens.cellTitleFontWeight, _Attach.attachTokens.cellTitleLetterSpacing, _Attach.attachTokens.cellTitleLineHeight, _Attach.attachTokens.cellSubtitleFontFamily, _Attach.attachTokens.cellSubtitleFontSize, _Attach.attachTokens.cellSubtitleFontStyle, _Attach.attachTokens.cellSubtitleFontWeight, _Attach.attachTokens.cellSubtitleLetterSpacing, _Attach.attachTokens.cellSubtitleLineHeight, _Attach.attachTokens.iconButtonHeight, _Attach.attachTokens.iconButtonWidth, _Attach.attachTokens.iconButtonPadding, _Attach.attachTokens.iconButtonRadius, _Attach.attachTokens.iconButtonFontFamily, _Attach.attachTokens.iconButtonFontSize, _Attach.attachTokens.iconButtonFontStyle, _Attach.attachTokens.iconButtonFontWeight, _Attach.attachTokens.iconButtonLetterSpacing, _Attach.attachTokens.iconButtonLineHeight)
23
+ }
24
+ }
25
+ };
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Attach = void 0;
7
+ var _Attach = /*#__PURE__*/require("../../../../components/Attach");
8
+ var _engines = /*#__PURE__*/require("../../../../engines");
9
+ var _Attach2 = /*#__PURE__*/require("./Attach.config");
10
+ var mergedConfig = /*#__PURE__*/(0, _engines.mergeConfig)(_Attach.attachConfig, _Attach2.config);
11
+ var Attach = exports.Attach = /*#__PURE__*/(0, _engines.component)(mergedConfig);
@@ -0,0 +1,61 @@
1
+ import React from 'react';
2
+ import type { ComponentProps } from 'react';
3
+ import type { StoryObj, Meta } from '@storybook/react';
4
+
5
+ import { mergeConfig } from '../../../../engines';
6
+ import { WithTheme, argTypesFromConfig } from '../../../_helpers';
7
+ import { attachConfig } from '../../../../components/Attach';
8
+
9
+ import { Attach } from './Attach';
10
+ import { config } from './Attach.config';
11
+
12
+ const flowOptions = ['horizontal', 'vertical', 'auto'];
13
+ const fileFormatOptions = ['all', '.doc', '.xls', '.pdf', '.csv', '.txt'];
14
+
15
+ type CustomStoryProps = {
16
+ fileFormat?: string;
17
+ width?: string;
18
+ };
19
+
20
+ type StoryAttachProps = ComponentProps<typeof Attach> & CustomStoryProps;
21
+
22
+ const meta: Meta<StoryAttachProps> = {
23
+ title: 'plasma_b2c/Attach',
24
+ decorators: [WithTheme],
25
+ component: Attach,
26
+ argTypes: {
27
+ ...argTypesFromConfig(mergeConfig(attachConfig, config)),
28
+ flow: {
29
+ options: flowOptions,
30
+ control: {
31
+ type: 'select',
32
+ },
33
+ },
34
+ fileFormat: {
35
+ options: fileFormatOptions,
36
+ control: {
37
+ type: 'select',
38
+ },
39
+ },
40
+ },
41
+ };
42
+
43
+ export default meta;
44
+
45
+ const StoryAttach = (props: StoryAttachProps) => {
46
+ return <Attach {...props} />;
47
+ };
48
+
49
+ export const Default: StoryObj<StoryAttachProps> = {
50
+ args: {
51
+ fileFormat: 'all',
52
+ text: 'Загрузить файл',
53
+ flow: 'horizontal',
54
+ hasAttachment: true,
55
+ width: '400px',
56
+ },
57
+ render: ({ fileFormat, width, ...rest }) => {
58
+ const accepted = fileFormat && fileFormat !== 'all' ? [fileFormat] : undefined;
59
+ return <StoryAttach style={{ width }} acceptedFileFormats={accepted} {...rest} />;
60
+ },
61
+ };
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.config = void 0;
7
+ var _styledComponents = /*#__PURE__*/require("styled-components");
8
+ var _Attach = /*#__PURE__*/require("../../../../components/Attach");
9
+ var config = exports.config = {
10
+ defaults: {
11
+ view: 'default',
12
+ size: 'm'
13
+ },
14
+ variations: {
15
+ view: {
16
+ "default": /*#__PURE__*/(0, _styledComponents.css)(["", ":var(--on-dark-text-primary);", ":var(--surface-accent);", ":var(--on-dark-text-primary);", ":var(--surface-accent-hover);", ":var(--on-dark-text-primary);", ":var(--surface-accent-active);", ":var(--text-primary);", ":var(--text-secondary);", ":var(--text-primary);", ":var(--text-secondary);", ":transparent;", ":var(--text-primary);", ":var(--surface-clear);", ":var(--text-primary-hover);", ":var(--surface-clear);", ":var(--text-primary-active);", ":var(--surface-clear);"], _Attach.attachTokens.buttonColor, _Attach.attachTokens.buttonBackgroundColor, _Attach.attachTokens.buttonColorHover, _Attach.attachTokens.buttonBackgroundColorHover, _Attach.attachTokens.buttonColorActive, _Attach.attachTokens.buttonBackgroundColorActive, _Attach.attachTokens.cellColor, _Attach.attachTokens.cellLabelColor, _Attach.attachTokens.cellTitleColor, _Attach.attachTokens.cellSubtitleColor, _Attach.attachTokens.cellBackgroundColor, _Attach.attachTokens.iconButtonColor, _Attach.attachTokens.iconButtonBackgroundColor, _Attach.attachTokens.iconButtonColorHover, _Attach.attachTokens.iconButtonBackgroundColorHover, _Attach.attachTokens.iconButtonColorActive, _Attach.attachTokens.iconButtonBackgroundColorActive)
17
+ },
18
+ size: {
19
+ l: /*#__PURE__*/(0, _styledComponents.css)(["", ":1.5rem;", ":0.5rem;", ":3.5rem;", ":12.5rem;", ":1.5rem;", ":0.875rem;", ":var(--plasma-typo-body-l-font-family);", ":var(--plasma-typo-body-l-font-size);", ":var(--plasma-typo-body-l-font-style);", ":var(--plasma-typo-body-l-bold-font-weight);", ":var(--plasma-typo-body-l-letter-spacing);", ":var(--plasma-typo-body-l-line-height);", ":15rem;", ":0rem;", ":0rem;", ":0rem;", ":0rem;", ":0.125rem;", ":0.375rem;", ":var(--plasma-typo-body-m-font-family);", ":var(--plasma-typo-body-m-font-size);", ":var(--plasma-typo-body-m-font-style);", ":var(--plasma-typo-body-m-font-weight);", ":var(--plasma-typo-body-m-letter-spacing);", ":var(--plasma-typo-body-m-line-height);", ":var(--plasma-typo-body-l-font-family);", ":var(--plasma-typo-body-l-font-size);", ":var(--plasma-typo-body-l-font-style);", ":var(--plasma-typo-body-l-font-weight);", ":var(--plasma-typo-body-l-letter-spacing);", ":var(--plasma-typo-body-l-line-height);", ":var(--plasma-typo-body-m-font-family);", ":var(--plasma-typo-body-m-font-size);", ":var(--plasma-typo-body-m-font-style);", ":var(--plasma-typo-body-m-font-weight);", ":var(--plasma-typo-body-m-letter-spacing);", ":var(--plasma-typo-body-m-line-height);", ":3.5rem;", ":3.5rem;", ":1.5rem;", ":0.875rem;", ":var(--plasma-typo-body-l-font-family);", ":var(--plasma-typo-body-l-font-size);", ":var(--plasma-typo-body-l-font-style);", ":var(--plasma-typo-body-l-bold-font-weight);", ":var(--plasma-typo-body-l-letter-spacing);", ":var(--plasma-typo-body-l-line-height);"], _Attach.attachTokens.horizontalGap, _Attach.attachTokens.verticalGap, _Attach.attachTokens.buttonHeight, _Attach.attachTokens.buttonWidth, _Attach.attachTokens.buttonPadding, _Attach.attachTokens.buttonRadius, _Attach.attachTokens.buttonFontFamily, _Attach.attachTokens.buttonFontSize, _Attach.attachTokens.buttonFontStyle, _Attach.attachTokens.buttonFontWeight, _Attach.attachTokens.buttonLetterSpacing, _Attach.attachTokens.buttonLineHeight, _Attach.attachTokens.cellWidth, _Attach.attachTokens.cellPadding, _Attach.attachTokens.cellPaddingLeftContent, _Attach.attachTokens.cellPaddingContent, _Attach.attachTokens.cellPaddingRightContent, _Attach.attachTokens.cellTextboxGap, _Attach.attachTokens.cellGap, _Attach.attachTokens.cellLabelFontFamily, _Attach.attachTokens.cellLabelFontSize, _Attach.attachTokens.cellLabelFontStyle, _Attach.attachTokens.cellLabelFontWeight, _Attach.attachTokens.cellLabelLetterSpacing, _Attach.attachTokens.cellLabelLineHeight, _Attach.attachTokens.cellTitleFontFamily, _Attach.attachTokens.cellTitleFontSize, _Attach.attachTokens.cellTitleFontStyle, _Attach.attachTokens.cellTitleFontWeight, _Attach.attachTokens.cellTitleLetterSpacing, _Attach.attachTokens.cellTitleLineHeight, _Attach.attachTokens.cellSubtitleFontFamily, _Attach.attachTokens.cellSubtitleFontSize, _Attach.attachTokens.cellSubtitleFontStyle, _Attach.attachTokens.cellSubtitleFontWeight, _Attach.attachTokens.cellSubtitleLetterSpacing, _Attach.attachTokens.cellSubtitleLineHeight, _Attach.attachTokens.iconButtonHeight, _Attach.attachTokens.iconButtonWidth, _Attach.attachTokens.iconButtonPadding, _Attach.attachTokens.iconButtonRadius, _Attach.attachTokens.iconButtonFontFamily, _Attach.attachTokens.iconButtonFontSize, _Attach.attachTokens.iconButtonFontStyle, _Attach.attachTokens.iconButtonFontWeight, _Attach.attachTokens.iconButtonLetterSpacing, _Attach.attachTokens.iconButtonLineHeight),
20
+ m: /*#__PURE__*/(0, _styledComponents.css)(["", ":1.25rem;", ":0.5rem;", ":3rem;", ":11.25rem;", ":1.25rem;", ":0.75rem;", ":var(--plasma-typo-body-m-font-family);", ":var(--plasma-typo-body-m-font-size);", ":var(--plasma-typo-body-m-font-style);", ":var(--plasma-typo-body-m-bold-font-weight);", ":var(--plasma-typo-body-m-letter-spacing);", ":var(--plasma-typo-body-m-line-height);", ":15rem;", ":0rem;", ":0rem;", ":0rem;", ":0rem;", ":0.125rem;", ":0.375rem;", ":var(--plasma-typo-body-s-font-family);", ":var(--plasma-typo-body-s-font-size);", ":var(--plasma-typo-body-s-font-style);", ":var(--plasma-typo-body-s-font-weight);", ":var(--plasma-typo-body-s-letter-spacing);", ":var(--plasma-typo-body-s-line-height);", ":var(--plasma-typo-body-m-font-family);", ":var(--plasma-typo-body-m-font-size);", ":var(--plasma-typo-body-m-font-style);", ":var(--plasma-typo-body-m-font-weight);", ":var(--plasma-typo-body-m-letter-spacing);", ":var(--plasma-typo-body-m-line-height);", ":var(--plasma-typo-body-s-font-family);", ":var(--plasma-typo-body-s-font-size);", ":var(--plasma-typo-body-s-font-style);", ":var(--plasma-typo-body-s-font-weight);", ":var(--plasma-typo-body-s-letter-spacing);", ":var(--plasma-typo-body-s-line-height);", ":2rem;", ":2rem;", ":0.75rem;", ":0.5rem;", ":var(--plasma-typo-body-xs-font-family);", ":var(--plasma-typo-body-xs-font-size);", ":var(--plasma-typo-body-xs-font-style);", ":var(--plasma-typo-body-xs-bold-font-weight);", ":var(--plasma-typo-body-xs-letter-spacing);", ":var(--plasma-typo-body-xs-line-height);"], _Attach.attachTokens.horizontalGap, _Attach.attachTokens.verticalGap, _Attach.attachTokens.buttonHeight, _Attach.attachTokens.buttonWidth, _Attach.attachTokens.buttonPadding, _Attach.attachTokens.buttonRadius, _Attach.attachTokens.buttonFontFamily, _Attach.attachTokens.buttonFontSize, _Attach.attachTokens.buttonFontStyle, _Attach.attachTokens.buttonFontWeight, _Attach.attachTokens.buttonLetterSpacing, _Attach.attachTokens.buttonLineHeight, _Attach.attachTokens.cellWidth, _Attach.attachTokens.cellPadding, _Attach.attachTokens.cellPaddingLeftContent, _Attach.attachTokens.cellPaddingContent, _Attach.attachTokens.cellPaddingRightContent, _Attach.attachTokens.cellTextboxGap, _Attach.attachTokens.cellGap, _Attach.attachTokens.cellLabelFontFamily, _Attach.attachTokens.cellLabelFontSize, _Attach.attachTokens.cellLabelFontStyle, _Attach.attachTokens.cellLabelFontWeight, _Attach.attachTokens.cellLabelLetterSpacing, _Attach.attachTokens.cellLabelLineHeight, _Attach.attachTokens.cellTitleFontFamily, _Attach.attachTokens.cellTitleFontSize, _Attach.attachTokens.cellTitleFontStyle, _Attach.attachTokens.cellTitleFontWeight, _Attach.attachTokens.cellTitleLetterSpacing, _Attach.attachTokens.cellTitleLineHeight, _Attach.attachTokens.cellSubtitleFontFamily, _Attach.attachTokens.cellSubtitleFontSize, _Attach.attachTokens.cellSubtitleFontStyle, _Attach.attachTokens.cellSubtitleFontWeight, _Attach.attachTokens.cellSubtitleLetterSpacing, _Attach.attachTokens.cellSubtitleLineHeight, _Attach.attachTokens.iconButtonHeight, _Attach.attachTokens.iconButtonWidth, _Attach.attachTokens.iconButtonPadding, _Attach.attachTokens.iconButtonRadius, _Attach.attachTokens.iconButtonFontFamily, _Attach.attachTokens.iconButtonFontSize, _Attach.attachTokens.iconButtonFontStyle, _Attach.attachTokens.iconButtonFontWeight, _Attach.attachTokens.iconButtonLetterSpacing, _Attach.attachTokens.iconButtonLineHeight),
21
+ s: /*#__PURE__*/(0, _styledComponents.css)(["", ":1rem;", ":0.375rem;", ":2.5rem;", ":11.25rem;", ":1rem;", ":0.625rem;", ":var(--plasma-typo-body-s-font-family);", ":var(--plasma-typo-body-s-font-size);", ":var(--plasma-typo-body-s-font-style);", ":var(--plasma-typo-body-s-bold-font-weight);", ":var(--plasma-typo-body-s-letter-spacing);", ":var(--plasma-typo-body-s-line-height);", ":15rem;", ":0rem;", ":0rem;", ":0rem;", ":0rem;", ":0.125rem;", ":0.375rem;", ":var(--plasma-typo-body-xs-font-family);", ":var(--plasma-typo-body-xs-font-size);", ":var(--plasma-typo-body-xs-font-style);", ":var(--plasma-typo-body-xs-font-weight);", ":var(--plasma-typo-body-xs-letter-spacing);", ":var(--plasma-typo-body-xs-line-height);", ":var(--plasma-typo-body-s-font-family);", ":var(--plasma-typo-body-s-font-size);", ":var(--plasma-typo-body-s-font-style);", ":var(--plasma-typo-body-s-font-weight);", ":var(--plasma-typo-body-s-letter-spacing);", ":var(--plasma-typo-body-s-line-height);", ":var(--plasma-typo-body-xs-font-family);", ":var(--plasma-typo-body-xs-font-size);", ":var(--plasma-typo-body-xs-font-style);", ":var(--plasma-typo-body-xs-font-weight);", ":var(--plasma-typo-body-xs-letter-spacing);", ":var(--plasma-typo-body-xs-line-height);", ":2.5rem;", ":2.5rem;", ":1rem;", ":0.625rem;", ":var(--plasma-typo-body-s-font-family);", ":var(--plasma-typo-body-s-font-size);", ":var(--plasma-typo-body-s-font-style);", ":var(--plasma-typo-body-s-bold-font-weight);", ":var(--plasma-typo-body-s-letter-spacing);", ":var(--plasma-typo-body-s-line-height);"], _Attach.attachTokens.horizontalGap, _Attach.attachTokens.verticalGap, _Attach.attachTokens.buttonHeight, _Attach.attachTokens.buttonWidth, _Attach.attachTokens.buttonPadding, _Attach.attachTokens.buttonRadius, _Attach.attachTokens.buttonFontFamily, _Attach.attachTokens.buttonFontSize, _Attach.attachTokens.buttonFontStyle, _Attach.attachTokens.buttonFontWeight, _Attach.attachTokens.buttonLetterSpacing, _Attach.attachTokens.buttonLineHeight, _Attach.attachTokens.cellWidth, _Attach.attachTokens.cellPadding, _Attach.attachTokens.cellPaddingLeftContent, _Attach.attachTokens.cellPaddingContent, _Attach.attachTokens.cellPaddingRightContent, _Attach.attachTokens.cellTextboxGap, _Attach.attachTokens.cellGap, _Attach.attachTokens.cellLabelFontFamily, _Attach.attachTokens.cellLabelFontSize, _Attach.attachTokens.cellLabelFontStyle, _Attach.attachTokens.cellLabelFontWeight, _Attach.attachTokens.cellLabelLetterSpacing, _Attach.attachTokens.cellLabelLineHeight, _Attach.attachTokens.cellTitleFontFamily, _Attach.attachTokens.cellTitleFontSize, _Attach.attachTokens.cellTitleFontStyle, _Attach.attachTokens.cellTitleFontWeight, _Attach.attachTokens.cellTitleLetterSpacing, _Attach.attachTokens.cellTitleLineHeight, _Attach.attachTokens.cellSubtitleFontFamily, _Attach.attachTokens.cellSubtitleFontSize, _Attach.attachTokens.cellSubtitleFontStyle, _Attach.attachTokens.cellSubtitleFontWeight, _Attach.attachTokens.cellSubtitleLetterSpacing, _Attach.attachTokens.cellSubtitleLineHeight, _Attach.attachTokens.iconButtonHeight, _Attach.attachTokens.iconButtonWidth, _Attach.attachTokens.iconButtonPadding, _Attach.attachTokens.iconButtonRadius, _Attach.attachTokens.iconButtonFontFamily, _Attach.attachTokens.iconButtonFontSize, _Attach.attachTokens.iconButtonFontStyle, _Attach.attachTokens.iconButtonFontWeight, _Attach.attachTokens.iconButtonLetterSpacing, _Attach.attachTokens.iconButtonLineHeight),
22
+ xs: /*#__PURE__*/(0, _styledComponents.css)(["", ":0.75rem;", ":0.25rem;", ":2rem;", ":10rem;", ":0.75rem;", ":0.5rem;", ":var(--plasma-typo-body-xs-font-family);", ":var(--plasma-typo-body-xs-font-size);", ":var(--plasma-typo-body-xs-font-style);", ":var(--plasma-typo-body-xs-bold-font-weight);", ":var(--plasma-typo-body-xs-letter-spacing);", ":var(--plasma-typo-body-xs-line-height);", ":15rem;", ":0rem;", ":0rem;", ":0rem;", ":0rem;", ":0.125rem;", ":0.25rem;", ":var(--plasma-typo-body-xs-font-family);", ":var(--plasma-typo-body-xs-font-size);", ":var(--plasma-typo-body-xs-font-style);", ":var(--plasma-typo-body-xs-font-weight);", ":var(--plasma-typo-body-xs-letter-spacing);", ":var(--plasma-typo-body-xs-line-height);", ":var(--plasma-typo-body-xs-font-family);", ":var(--plasma-typo-body-xs-font-size);", ":var(--plasma-typo-body-xs-font-style);", ":var(--plasma-typo-body-xs-font-weight);", ":var(--plasma-typo-body-xs-letter-spacing);", ":var(--plasma-typo-body-xs-line-height);", ":var(--plasma-typo-body-xs-font-family);", ":var(--plasma-typo-body-xs-font-size);", ":var(--plasma-typo-body-xs-font-style);", ":var(--plasma-typo-body-xs-font-weight);", ":var(--plasma-typo-body-xs-letter-spacing);", ":var(--plasma-typo-body-xs-line-height);", ":2rem;", ":2rem;", ":0.75rem;", ":0.5rem;", ":var(--plasma-typo-body-xs-font-family);", ":var(--plasma-typo-body-xs-font-size);", ":var(--plasma-typo-body-xs-font-style);", ":var(--plasma-typo-body-xs-bold-font-weight);", ":var(--plasma-typo-body-xs-letter-spacing);", ":var(--plasma-typo-body-xs-line-height);"], _Attach.attachTokens.horizontalGap, _Attach.attachTokens.verticalGap, _Attach.attachTokens.buttonHeight, _Attach.attachTokens.buttonWidth, _Attach.attachTokens.buttonPadding, _Attach.attachTokens.buttonRadius, _Attach.attachTokens.buttonFontFamily, _Attach.attachTokens.buttonFontSize, _Attach.attachTokens.buttonFontStyle, _Attach.attachTokens.buttonFontWeight, _Attach.attachTokens.buttonLetterSpacing, _Attach.attachTokens.buttonLineHeight, _Attach.attachTokens.cellWidth, _Attach.attachTokens.cellPadding, _Attach.attachTokens.cellPaddingLeftContent, _Attach.attachTokens.cellPaddingContent, _Attach.attachTokens.cellPaddingRightContent, _Attach.attachTokens.cellTextboxGap, _Attach.attachTokens.cellGap, _Attach.attachTokens.cellLabelFontFamily, _Attach.attachTokens.cellLabelFontSize, _Attach.attachTokens.cellLabelFontStyle, _Attach.attachTokens.cellLabelFontWeight, _Attach.attachTokens.cellLabelLetterSpacing, _Attach.attachTokens.cellLabelLineHeight, _Attach.attachTokens.cellTitleFontFamily, _Attach.attachTokens.cellTitleFontSize, _Attach.attachTokens.cellTitleFontStyle, _Attach.attachTokens.cellTitleFontWeight, _Attach.attachTokens.cellTitleLetterSpacing, _Attach.attachTokens.cellTitleLineHeight, _Attach.attachTokens.cellSubtitleFontFamily, _Attach.attachTokens.cellSubtitleFontSize, _Attach.attachTokens.cellSubtitleFontStyle, _Attach.attachTokens.cellSubtitleFontWeight, _Attach.attachTokens.cellSubtitleLetterSpacing, _Attach.attachTokens.cellSubtitleLineHeight, _Attach.attachTokens.iconButtonHeight, _Attach.attachTokens.iconButtonWidth, _Attach.attachTokens.iconButtonPadding, _Attach.attachTokens.iconButtonRadius, _Attach.attachTokens.iconButtonFontFamily, _Attach.attachTokens.iconButtonFontSize, _Attach.attachTokens.iconButtonFontStyle, _Attach.attachTokens.iconButtonFontWeight, _Attach.attachTokens.iconButtonLetterSpacing, _Attach.attachTokens.iconButtonLineHeight)
23
+ }
24
+ }
25
+ };
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Attach = void 0;
7
+ var _Attach = /*#__PURE__*/require("../../../../components/Attach");
8
+ var _engines = /*#__PURE__*/require("../../../../engines");
9
+ var _Attach2 = /*#__PURE__*/require("./Attach.config");
10
+ var mergedConfig = /*#__PURE__*/(0, _engines.mergeConfig)(_Attach.attachConfig, _Attach2.config);
11
+ var Attach = exports.Attach = /*#__PURE__*/(0, _engines.component)(mergedConfig);
@@ -0,0 +1,61 @@
1
+ import React from 'react';
2
+ import type { ComponentProps } from 'react';
3
+ import type { StoryObj, Meta } from '@storybook/react';
4
+
5
+ import { mergeConfig } from '../../../../engines';
6
+ import { WithTheme, argTypesFromConfig } from '../../../_helpers';
7
+ import { attachConfig } from '../../../../components/Attach';
8
+
9
+ import { Attach } from './Attach';
10
+ import { config } from './Attach.config';
11
+
12
+ const flowOptions = ['horizontal', 'vertical', 'auto'];
13
+ const fileFormatOptions = ['all', '.doc', '.xls', '.pdf', '.csv', '.txt'];
14
+
15
+ type CustomStoryProps = {
16
+ fileFormat?: string;
17
+ width?: string;
18
+ };
19
+
20
+ type StoryAttachProps = ComponentProps<typeof Attach> & CustomStoryProps;
21
+
22
+ const meta: Meta<StoryAttachProps> = {
23
+ title: 'plasma_web/Attach',
24
+ decorators: [WithTheme],
25
+ component: Attach,
26
+ argTypes: {
27
+ ...argTypesFromConfig(mergeConfig(attachConfig, config)),
28
+ flow: {
29
+ options: flowOptions,
30
+ control: {
31
+ type: 'select',
32
+ },
33
+ },
34
+ fileFormat: {
35
+ options: fileFormatOptions,
36
+ control: {
37
+ type: 'select',
38
+ },
39
+ },
40
+ },
41
+ };
42
+
43
+ export default meta;
44
+
45
+ const StoryAttach = (props: StoryAttachProps) => {
46
+ return <Attach {...props} />;
47
+ };
48
+
49
+ export const Default: StoryObj<StoryAttachProps> = {
50
+ args: {
51
+ fileFormat: 'all',
52
+ text: 'Загрузить файл',
53
+ flow: 'horizontal',
54
+ hasAttachment: true,
55
+ width: '400px',
56
+ },
57
+ render: ({ fileFormat, width, ...rest }) => {
58
+ const accepted = fileFormat && fileFormat !== 'all' ? [fileFormat] : undefined;
59
+ return <StoryAttach style={{ width }} acceptedFileFormats={accepted} {...rest} />;
60
+ },
61
+ };
@@ -629,4 +629,15 @@ Object.keys(_Editable).forEach(function (key) {
629
629
  return _Editable[key];
630
630
  }
631
631
  });
632
+ });
633
+ var _Attach = /*#__PURE__*/require("./components/Attach");
634
+ Object.keys(_Attach).forEach(function (key) {
635
+ if (key === "default" || key === "__esModule") return;
636
+ if (key in exports && exports[key] === _Attach[key]) return;
637
+ Object.defineProperty(exports, key, {
638
+ enumerable: true,
639
+ get: function get() {
640
+ return _Attach[key];
641
+ }
642
+ });
632
643
  });
@@ -0,0 +1,171 @@
1
+ var _IconCloseCircleOutli;
2
+ var _excluded = ["flow", "text", "hasAttachment", "acceptedFileFormats", "size", "view", "className"];
3
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
4
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
5
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
6
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
7
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
8
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
9
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
10
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
11
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
12
+ import React, { forwardRef, useEffect, useRef, useState } from 'react';
13
+ import { IconCloseCircleOutline } from '@salutejs/plasma-icons';
14
+ import { useForkRef, useResizeObserver } from '@salutejs/plasma-core';
15
+ import { cx } from '../../utils';
16
+ import { base as sizeCSS } from './variations/_size/base';
17
+ import { base as viewCSS } from './variations/_view/base';
18
+ import { base, StyledHiddenInput, StyledHiddenInputHelper } from './Attach.styles';
19
+ import { StyledButton } from './ui/Button/Button';
20
+ import { StyledCell } from './ui/Cell/Cell';
21
+ import { StyledIconButton } from './ui/iconButton/IconButton';
22
+ import { extractExtension, getFileicon, truncateFilename } from './utils';
23
+ import { classes } from './Attach.tokens';
24
+ export var attachRoot = function attachRoot(Root) {
25
+ return /*#__PURE__*/forwardRef(function (props, outerRef) {
26
+ var _props$flow = props.flow,
27
+ flow = _props$flow === void 0 ? 'auto' : _props$flow,
28
+ _props$text = props.text,
29
+ text = _props$text === void 0 ? 'Загрузить файл' : _props$text,
30
+ _props$hasAttachment = props.hasAttachment,
31
+ hasAttachment = _props$hasAttachment === void 0 ? true : _props$hasAttachment,
32
+ acceptedFileFormats = props.acceptedFileFormats,
33
+ size = props.size,
34
+ view = props.view,
35
+ className = props.className,
36
+ rest = _objectWithoutProperties(props, _excluded);
37
+ var inputRef = useRef(null);
38
+ var inputHelperRef = useRef(null);
39
+ var cellRef = useRef(null);
40
+ var innerRef = useRef(null);
41
+ var ref = useForkRef(outerRef, innerRef);
42
+ var _useState = useState(null),
43
+ _useState2 = _slicedToArray(_useState, 2),
44
+ containerWidth = _useState2[0],
45
+ setContainerWidth = _useState2[1];
46
+ var _useState3 = useState(null),
47
+ _useState4 = _slicedToArray(_useState3, 2),
48
+ origFilename = _useState4[0],
49
+ setOrigFilename = _useState4[1];
50
+ var _useState5 = useState(null),
51
+ _useState6 = _slicedToArray(_useState5, 2),
52
+ filename = _useState6[0],
53
+ setFilename = _useState6[1];
54
+ var _useState7 = useState(false),
55
+ _useState8 = _slicedToArray(_useState7, 2),
56
+ shouldUpdateFilename = _useState8[0],
57
+ setShouldUpdateFilename = _useState8[1];
58
+ var horizontalClass = flow === 'horizontal' ? classes.horizontal : undefined;
59
+ var verticalClass = flow === 'vertical' ? classes.vertical : undefined;
60
+ var autoClass = flow === 'auto' ? classes.auto : undefined;
61
+ var cellHiddenClass = shouldUpdateFilename ? classes.cellHidden : undefined;
62
+ var accept = acceptedFileFormats === null || acceptedFileFormats === void 0 ? void 0 : acceptedFileFormats.join(',');
63
+ var extension = filename ? extractExtension(filename) : null;
64
+ var contentLeft = extension ? getFileicon(extension) : null;
65
+ var handleClick = function handleClick() {
66
+ if (!inputRef.current) {
67
+ return;
68
+ }
69
+ inputRef.current.click();
70
+ };
71
+ var handleChange = function handleChange() {
72
+ if (!inputRef.current || !inputRef.current.files) {
73
+ return;
74
+ }
75
+ setOrigFilename(inputRef.current.files[0].name);
76
+ };
77
+ var handleClear = function handleClear() {
78
+ if (!inputRef.current) {
79
+ return;
80
+ }
81
+ inputRef.current.value = '';
82
+ setOrigFilename(null);
83
+ };
84
+ useResizeObserver(innerRef, function (container) {
85
+ setContainerWidth(container.offsetWidth);
86
+ });
87
+ useEffect(function () {
88
+ setFilename(origFilename);
89
+ setShouldUpdateFilename(true);
90
+ }, [size, view, flow, origFilename, containerWidth]);
91
+ useEffect(function () {
92
+ if (!cellRef.current || !cellRef.current.parentElement || !inputHelperRef.current || !inputHelperRef.current.textContent || !origFilename || !shouldUpdateFilename) {
93
+ setShouldUpdateFilename(false);
94
+ return;
95
+ }
96
+ var textWidth = inputHelperRef.current.offsetWidth;
97
+ var _cellRef$current$getB = cellRef.current.getBoundingClientRect(),
98
+ cellWidth = _cellRef$current$getB.width,
99
+ cellLeft = _cellRef$current$getB.left;
100
+ var _cellRef$current$pare = cellRef.current.parentElement.getBoundingClientRect(),
101
+ parentWidth = _cellRef$current$pare.width,
102
+ parentLeft = _cellRef$current$pare.left;
103
+ var cellLeftRightContentWidth = cellWidth - textWidth;
104
+ var leftDiff = cellLeft - parentLeft;
105
+ var index = origFilename.length - 1;
106
+ var currentTextWidth = textWidth;
107
+ var resultFilename = origFilename;
108
+ while (currentTextWidth + cellLeftRightContentWidth + leftDiff > parentWidth && index >= 1) {
109
+ var truncatedFilename = truncateFilename(inputHelperRef.current.textContent, index);
110
+ inputHelperRef.current.textContent = truncatedFilename;
111
+ resultFilename = truncatedFilename;
112
+ currentTextWidth = inputHelperRef.current.offsetWidth;
113
+ index -= 1;
114
+ }
115
+ inputHelperRef.current.textContent = origFilename;
116
+ setFilename(resultFilename);
117
+ setShouldUpdateFilename(false);
118
+ }, [shouldUpdateFilename]);
119
+ return /*#__PURE__*/React.createElement(Root, _extends({
120
+ className: cx(horizontalClass, verticalClass, autoClass, className),
121
+ size: size,
122
+ view: view,
123
+ ref: ref
124
+ }, rest), /*#__PURE__*/React.createElement(StyledHiddenInput, {
125
+ ref: inputRef,
126
+ accept: accept,
127
+ type: "file",
128
+ id: "attachHiddenInput",
129
+ name: "attachHiddenInput",
130
+ onChange: handleChange
131
+ }), /*#__PURE__*/React.createElement(StyledHiddenInputHelper, {
132
+ ref: inputHelperRef,
133
+ id: "attachHiddenInputHelper"
134
+ }, origFilename), /*#__PURE__*/React.createElement(StyledButton, {
135
+ size: size,
136
+ view: view,
137
+ onClick: handleClick,
138
+ text: text
139
+ }), hasAttachment && filename && /*#__PURE__*/React.createElement(StyledCell, {
140
+ className: cellHiddenClass,
141
+ ref: cellRef,
142
+ size: size,
143
+ view: view,
144
+ title: filename,
145
+ contentLeft: contentLeft,
146
+ contentRight: /*#__PURE__*/React.createElement(StyledIconButton, {
147
+ onClick: handleClear
148
+ }, _IconCloseCircleOutli || (_IconCloseCircleOutli = /*#__PURE__*/React.createElement(IconCloseCircleOutline, {
149
+ size: "xs"
150
+ })))
151
+ }));
152
+ });
153
+ };
154
+ export var attachConfig = {
155
+ name: 'Attach',
156
+ tag: 'div',
157
+ layout: attachRoot,
158
+ base: base,
159
+ variations: {
160
+ view: {
161
+ css: viewCSS
162
+ },
163
+ size: {
164
+ css: sizeCSS
165
+ }
166
+ },
167
+ defaults: {
168
+ view: 'default',
169
+ size: 'm'
170
+ }
171
+ };
@@ -0,0 +1,10 @@
1
+ import styled from 'styled-components';
2
+ import { css } from 'styled-components';
3
+ import { tokens as attachTokens } from './Attach.tokens';
4
+ export var base = /*#__PURE__*/css(["position:relative;display:flex;width:fit-content;"]);
5
+ export var StyledHiddenInput = /*#__PURE__*/styled.input.withConfig({
6
+ componentId: "plasma-new-hope__sc-15vkopl-0"
7
+ })(["display:none;"]);
8
+ export var StyledHiddenInputHelper = /*#__PURE__*/styled.div.withConfig({
9
+ componentId: "plasma-new-hope__sc-15vkopl-1"
10
+ })(["position:absolute;visibility:hidden;font-family:var(", ");font-size:var(", ");font-style:var(", ");font-weight:var(", ");letter-spacing:var(", ");line-height:var(", ");"], attachTokens.cellTitleFontFamily, attachTokens.cellTitleFontSize, attachTokens.cellTitleFontStyle, attachTokens.cellTitleFontWeight, attachTokens.cellTitleLetterSpacing, attachTokens.cellTitleLineHeight);
@@ -0,0 +1,46 @@
1
+ ---
2
+ id: attach
3
+ title: Attach
4
+ ---
5
+
6
+ import { PropsTable, Description } from '@site/src/components';
7
+
8
+ # Attach
9
+ <Description name="Attach" />
10
+ <PropsTable name="Attach" />
11
+
12
+ ## Примеры
13
+
14
+ ### Расположение элементов
15
+ C помощью свойства `flow` можно регулировать расположение элементов в зависимости от ширины контейнера.
16
+
17
+ ```tsx live
18
+ import React from 'react';
19
+ import { Attach } from '@salutejs/plasma-web';
20
+
21
+ export function App() {
22
+ return (
23
+ <div style=\{{ display: "flex", flexDirection: "column", gap: "100px"}}>
24
+ <Attach style=\{{ width: "400px" }} flow="auto" />
25
+ <Attach style=\{{ width: "400px" }} flow="horizontal" />
26
+ <Attach style=\{{ width: "400px" }} flow="vertical" />
27
+ </div>
28
+ );
29
+ }
30
+ ```
31
+
32
+ ### Фильтр форматов файлов
33
+ Свойство `acceptedFileFormats` устанавливает доступные форматы файлов.
34
+
35
+ ```tsx live
36
+ import React from 'react';
37
+ import { Attach } from '@salutejs/plasma-web';
38
+
39
+ export function App() {
40
+ return (
41
+ <div>
42
+ <Attach acceptedFileFormats={['.pdf', '.doc']} />
43
+ </div>
44
+ );
45
+ }
46
+ ```
@@ -0,0 +1,75 @@
1
+ export var classes = {
2
+ auto: 'auto',
3
+ horizontal: 'horizontal',
4
+ vertical: 'vertical',
5
+ cellHidden: 'cell-hidden'
6
+ };
7
+ export var tokens = {
8
+ horizontalGap: '--plasma-attach-horizontal-gap',
9
+ verticalGap: '--plasma-attach-vertical-gap',
10
+ // Токены для Button
11
+ buttonColor: '--plasma-attach-button-color',
12
+ buttonBackgroundColor: '--plasma-attach-button-background-color',
13
+ buttonColorHover: '--plasma-attach-button-color-hover',
14
+ buttonBackgroundColorHover: '--plasma-attach-button-background-color-hover',
15
+ buttonColorActive: '--plasma-attach-button-color-active',
16
+ buttonBackgroundColorActive: '--plasma-attach-button-background-color-active',
17
+ buttonHeight: '--plasma-attach-button-height',
18
+ buttonWidth: '--plasma-attach-button-width',
19
+ buttonPadding: '--plasma-attach-button-padding',
20
+ buttonRadius: '--plasma-attach-button-radius',
21
+ buttonFontFamily: '--plasma-attach-button-font-family',
22
+ buttonFontSize: '--plasma-attach-button-font-size',
23
+ buttonFontStyle: '--plasma-attach-button-font-style',
24
+ buttonFontWeight: '--plasma-attach-button-font-weight',
25
+ buttonLetterSpacing: '--plasma-attach-button-letter-spacing',
26
+ buttonLineHeight: '--plasma-attach-button-line-height',
27
+ // Токены для Cell
28
+ cellColor: '--plasma-attach-cell-color',
29
+ cellLabelColor: '--plasma-attach-cell-label-color',
30
+ cellTitleColor: '--plasma-attach-cell-title-color',
31
+ cellSubtitleColor: '--plasma-attach-cell-subtitle-color',
32
+ cellBackgroundColor: '--plasma-attach-cell-background-color',
33
+ cellWidth: '--plasma-attach-cell-width',
34
+ cellPadding: '--plasma-attach-cell-padding',
35
+ cellPaddingLeftContent: '--plasma-attach-cell-padding-left-content',
36
+ cellPaddingContent: '--plasma-attach-cell-padding-content',
37
+ cellPaddingRightContent: '--plasma-attach-cell-padding-right-content',
38
+ cellTextboxGap: '--plasma-attach-cell-textbox-gap',
39
+ cellGap: '--plasma-attach-cell-gap',
40
+ cellLabelFontFamily: '--plasma-attach-cell-label-font-family',
41
+ cellLabelFontSize: '--plasma-attach-cell-label-font-size',
42
+ cellLabelFontStyle: '--plasma-attach-cell-label-font-style',
43
+ cellLabelFontWeight: '--plasma-attach-cell-label-font-weight',
44
+ cellLabelLetterSpacing: '--plasma-attach-cell-label-letter-spacing',
45
+ cellLabelLineHeight: '--plasma-attach-cell-label-line-height',
46
+ cellTitleFontFamily: '--plasma-attach-cell-title-font-family',
47
+ cellTitleFontSize: '--plasma-attach-cell-title-font-size',
48
+ cellTitleFontStyle: '--plasma-attach-cell-title-font-style',
49
+ cellTitleFontWeight: '--plasma-attach-cell-title-font-weight',
50
+ cellTitleLetterSpacing: '--plasma-attach-cell-title-letter-spacing',
51
+ cellTitleLineHeight: '--plasma-attach-cell-title-line-height',
52
+ cellSubtitleFontFamily: '--plasma-attach-cell-subtitle-font-family',
53
+ cellSubtitleFontSize: '--plasma-attach-cell-subtitle-font-size',
54
+ cellSubtitleFontStyle: '--plasma-attach-cell-subtitle-font-style',
55
+ cellSubtitleFontWeight: '--plasma-attach-cell-subtitle-font-weight',
56
+ cellSubtitleLetterSpacing: '--plasma-attach-cell-subtitle-letter-spacing',
57
+ cellSubtitleLineHeight: '--plasma-attach-cell-subtitle-line-height',
58
+ // Токены для IconButton
59
+ iconButtonColor: '--plasma-attach-icon-button-color',
60
+ iconButtonBackgroundColor: '--plasma-attach-icon-button-background-color',
61
+ iconButtonColorHover: '--plasma-attach-icon-button-color-hover',
62
+ iconButtonBackgroundColorHover: '--plasma-attach-icon-button-background-color-hover',
63
+ iconButtonColorActive: '--plasma-attach-icon-button-color-active',
64
+ iconButtonBackgroundColorActive: '--plasma-attach-icon-button-background-color-active',
65
+ iconButtonHeight: '--plasma-attach-icon-button-height',
66
+ iconButtonWidth: '--plasma-attach-icon-button-width',
67
+ iconButtonPadding: '--plasma-attach-icon-button-padding',
68
+ iconButtonRadius: '--plasma-attach-icon-button-radius',
69
+ iconButtonFontFamily: '--plasma-attach-icon-button-font-family',
70
+ iconButtonFontSize: '--plasma-attach-icon-button-font-size',
71
+ iconButtonFontStyle: '--plasma-attach-icon-button-font-style',
72
+ iconButtonFontWeight: '--plasma-attach-icon-button-font-weight',
73
+ iconButtonLetterSpacing: '--plasma-attach-icon-button-letter-spacing',
74
+ iconButtonLineHeight: '--plasma-attach-icon-button-line-height'
75
+ };
@@ -0,0 +1,2 @@
1
+ export { attachRoot, attachConfig } from './Attach';
2
+ export { tokens as attachTokens } from './Attach.tokens';
@@ -0,0 +1 @@
1
+ export { StyledButton } from './Button.styles';