@salutejs/plasma-new-hope 0.268.2-canary.1780.13373736245.0 → 0.269.0-canary.1770.13380403901.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (251) hide show
  1. package/cjs/components/Autocomplete/Autocomplete.css +1 -1
  2. package/cjs/components/Combobox/ComboboxNew/Combobox.css +1 -1
  3. package/cjs/components/DatePicker/RangeDate/RangeDate.css +2 -2
  4. package/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.css +2 -2
  5. package/cjs/components/DatePicker/SingleDate/SingleDate.css +1 -1
  6. package/cjs/components/Pagination/Pagination.css +1 -1
  7. package/cjs/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.css +1 -1
  8. package/cjs/components/Range/Range.css +2 -2
  9. package/cjs/components/Range/Range.styles.js.map +1 -1
  10. package/cjs/components/Range/Range.tokens.js +2 -0
  11. package/cjs/components/Range/Range.tokens.js.map +1 -1
  12. package/cjs/components/Range/variations/_readonly/base.js +1 -1
  13. package/cjs/components/Range/variations/_readonly/base.js.map +1 -1
  14. package/cjs/components/Range/variations/_readonly/{base_8q1gx8.css → base_1jlqwtc.css} +1 -1
  15. package/cjs/components/Select/Select.css +1 -1
  16. package/cjs/components/Select/ui/Target/Target.css +1 -1
  17. package/cjs/components/Select/ui/Target/ui/Textfield/Textfield.css +1 -1
  18. package/cjs/components/Slider/Slider.css +1 -1
  19. package/cjs/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.css +1 -1
  20. package/cjs/components/Tabs/ui/horizontal/HorizontalTabItem/HorizontalTabItem.js +4 -10
  21. package/cjs/components/Tabs/ui/horizontal/HorizontalTabItem/HorizontalTabItem.js.map +1 -1
  22. package/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +28 -21
  23. package/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js.map +1 -1
  24. package/cjs/components/Tabs/ui/vertical/VerticalTabItem/VerticalTabItem.js +4 -10
  25. package/cjs/components/Tabs/ui/vertical/VerticalTabItem/VerticalTabItem.js.map +1 -1
  26. package/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +28 -21
  27. package/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js.map +1 -1
  28. package/cjs/components/TextArea/TextArea.js +9 -7
  29. package/cjs/components/TextArea/TextArea.js.map +1 -1
  30. package/cjs/components/TextArea/TextArea.tokens.js +3 -0
  31. package/cjs/components/TextArea/TextArea.tokens.js.map +1 -1
  32. package/cjs/components/TextArea/variations/_clear/base.js.map +1 -1
  33. package/cjs/components/TextArea/variations/_read-only/base.js +9 -0
  34. package/cjs/components/TextArea/variations/_read-only/base.js.map +1 -0
  35. package/cjs/components/TextArea/variations/_read-only/base_om8eo9.css +1 -0
  36. package/cjs/components/TextField/TextField.tokens.js +1 -0
  37. package/cjs/components/TextField/TextField.tokens.js.map +1 -1
  38. package/cjs/components/TextField/variations/_read-only/base.js +1 -1
  39. package/cjs/components/TextField/variations/_read-only/base.js.map +1 -1
  40. package/cjs/components/TextField/variations/_read-only/base_sr3to2.css +1 -0
  41. package/cjs/index.css +4 -2
  42. package/emotion/cjs/components/Range/Range.styles.js +10 -10
  43. package/emotion/cjs/components/Range/Range.tokens.js +2 -0
  44. package/emotion/cjs/components/Range/variations/_readonly/base.js +1 -1
  45. package/emotion/cjs/components/Tabs/Tabs.template-doc.mdx +2 -7
  46. package/emotion/cjs/components/Tabs/ui/horizontal/HorizontalTabItem/HorizontalTabItem.js +4 -10
  47. package/emotion/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +18 -11
  48. package/emotion/cjs/components/Tabs/ui/vertical/VerticalTabItem/VerticalTabItem.js +4 -10
  49. package/emotion/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +18 -11
  50. package/emotion/cjs/components/TextArea/TextArea.js +10 -8
  51. package/emotion/cjs/components/TextArea/TextArea.tokens.js +3 -0
  52. package/emotion/cjs/components/TextArea/variations/_clear/base.js +1 -1
  53. package/emotion/cjs/components/TextArea/variations/_read-only/base.js +10 -0
  54. package/emotion/cjs/components/TextArea/variations/_read-only/tokens.json +1 -0
  55. package/emotion/cjs/components/TextField/TextField.tokens.js +1 -0
  56. package/emotion/cjs/components/TextField/variations/_read-only/base.js +1 -1
  57. package/emotion/cjs/components/_Icon/Icon.assets/Lock.js +26 -0
  58. package/emotion/cjs/components/_Icon/Icons/IconChevronLeft.js +8 -3
  59. package/emotion/cjs/components/_Icon/Icons/IconLock.js +29 -0
  60. package/emotion/cjs/components/_Icon/index.js +7 -0
  61. package/emotion/cjs/examples/plasma_b2c/components/DatePicker/DatePicker.stories.tsx +1 -1
  62. package/emotion/cjs/examples/plasma_b2c/components/Range/Range.config.js +7 -7
  63. package/emotion/cjs/examples/plasma_b2c/components/Range/Range.stories.tsx +14 -7
  64. package/emotion/cjs/examples/plasma_b2c/components/TextArea/TextArea.config.js +17 -14
  65. package/emotion/cjs/examples/plasma_b2c/components/TextArea/TextArea.stories.tsx +71 -20
  66. package/emotion/cjs/examples/plasma_b2c/components/TextField/TextField.config.js +22 -22
  67. package/emotion/cjs/examples/plasma_b2c/components/TextField/TextField.stories.tsx +92 -26
  68. package/emotion/cjs/examples/plasma_web/components/DatePicker/DatePicker.stories.tsx +1 -1
  69. package/emotion/cjs/examples/plasma_web/components/Range/Range.config.js +7 -7
  70. package/emotion/cjs/examples/plasma_web/components/Range/Range.stories.tsx +14 -7
  71. package/emotion/cjs/examples/plasma_web/components/TextArea/TextArea.stories.tsx +71 -20
  72. package/emotion/cjs/examples/plasma_web/components/TextField/TextField.config.js +22 -22
  73. package/emotion/cjs/examples/plasma_web/components/TextField/TextField.stories.tsx +85 -25
  74. package/emotion/es/components/Range/Range.styles.js +10 -10
  75. package/emotion/es/components/Range/Range.tokens.js +2 -0
  76. package/emotion/es/components/Range/variations/_readonly/base.js +1 -1
  77. package/emotion/es/components/Tabs/Tabs.template-doc.mdx +2 -7
  78. package/emotion/es/components/Tabs/ui/horizontal/HorizontalTabItem/HorizontalTabItem.js +5 -11
  79. package/emotion/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +19 -12
  80. package/emotion/es/components/Tabs/ui/vertical/VerticalTabItem/VerticalTabItem.js +5 -11
  81. package/emotion/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +19 -12
  82. package/emotion/es/components/TextArea/TextArea.js +6 -4
  83. package/emotion/es/components/TextArea/TextArea.tokens.js +3 -0
  84. package/emotion/es/components/TextArea/variations/_clear/base.js +1 -1
  85. package/emotion/es/components/TextArea/variations/_read-only/base.js +4 -0
  86. package/emotion/es/components/TextArea/variations/_read-only/tokens.json +1 -0
  87. package/emotion/es/components/TextField/TextField.tokens.js +1 -0
  88. package/emotion/es/components/TextField/variations/_read-only/base.js +2 -2
  89. package/emotion/es/components/_Icon/Icon.assets/Lock.js +19 -0
  90. package/emotion/es/components/_Icon/Icons/IconChevronLeft.js +8 -3
  91. package/emotion/es/components/_Icon/Icons/IconLock.js +22 -0
  92. package/emotion/es/components/_Icon/index.js +1 -0
  93. package/emotion/es/examples/plasma_b2c/components/DatePicker/DatePicker.stories.tsx +1 -1
  94. package/emotion/es/examples/plasma_b2c/components/Range/Range.config.js +7 -7
  95. package/emotion/es/examples/plasma_b2c/components/Range/Range.stories.tsx +14 -7
  96. package/emotion/es/examples/plasma_b2c/components/TextArea/TextArea.config.js +17 -14
  97. package/emotion/es/examples/plasma_b2c/components/TextArea/TextArea.stories.tsx +71 -20
  98. package/emotion/es/examples/plasma_b2c/components/TextField/TextField.config.js +22 -22
  99. package/emotion/es/examples/plasma_b2c/components/TextField/TextField.stories.tsx +92 -26
  100. package/emotion/es/examples/plasma_web/components/DatePicker/DatePicker.stories.tsx +1 -1
  101. package/emotion/es/examples/plasma_web/components/Range/Range.config.js +7 -7
  102. package/emotion/es/examples/plasma_web/components/Range/Range.stories.tsx +14 -7
  103. package/emotion/es/examples/plasma_web/components/TextArea/TextArea.stories.tsx +71 -20
  104. package/emotion/es/examples/plasma_web/components/TextField/TextField.config.js +22 -22
  105. package/emotion/es/examples/plasma_web/components/TextField/TextField.stories.tsx +85 -25
  106. package/es/components/Autocomplete/Autocomplete.css +1 -1
  107. package/es/components/Combobox/ComboboxNew/Combobox.css +1 -1
  108. package/es/components/DatePicker/RangeDate/RangeDate.css +2 -2
  109. package/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.css +2 -2
  110. package/es/components/DatePicker/SingleDate/SingleDate.css +1 -1
  111. package/es/components/Pagination/Pagination.css +1 -1
  112. package/es/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.css +1 -1
  113. package/es/components/Range/Range.css +2 -2
  114. package/es/components/Range/Range.styles.js.map +1 -1
  115. package/es/components/Range/Range.tokens.js +2 -0
  116. package/es/components/Range/Range.tokens.js.map +1 -1
  117. package/es/components/Range/variations/_readonly/base.js +1 -1
  118. package/es/components/Range/variations/_readonly/base.js.map +1 -1
  119. package/es/components/Range/variations/_readonly/{base_8q1gx8.css → base_1jlqwtc.css} +1 -1
  120. package/es/components/Select/Select.css +1 -1
  121. package/es/components/Select/ui/Target/Target.css +1 -1
  122. package/es/components/Select/ui/Target/ui/Textfield/Textfield.css +1 -1
  123. package/es/components/Slider/Slider.css +1 -1
  124. package/es/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.css +1 -1
  125. package/es/components/Tabs/ui/horizontal/HorizontalTabItem/HorizontalTabItem.js +5 -11
  126. package/es/components/Tabs/ui/horizontal/HorizontalTabItem/HorizontalTabItem.js.map +1 -1
  127. package/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +19 -12
  128. package/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js.map +1 -1
  129. package/es/components/Tabs/ui/vertical/VerticalTabItem/VerticalTabItem.js +5 -11
  130. package/es/components/Tabs/ui/vertical/VerticalTabItem/VerticalTabItem.js.map +1 -1
  131. package/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +19 -12
  132. package/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js.map +1 -1
  133. package/es/components/TextArea/TextArea.js +9 -7
  134. package/es/components/TextArea/TextArea.js.map +1 -1
  135. package/es/components/TextArea/TextArea.tokens.js +3 -0
  136. package/es/components/TextArea/TextArea.tokens.js.map +1 -1
  137. package/es/components/TextArea/variations/_clear/base.js.map +1 -1
  138. package/es/components/TextArea/variations/_read-only/base.js +5 -0
  139. package/es/components/TextArea/variations/_read-only/base.js.map +1 -0
  140. package/es/components/TextArea/variations/_read-only/base_om8eo9.css +1 -0
  141. package/es/components/TextField/TextField.tokens.js +1 -0
  142. package/es/components/TextField/TextField.tokens.js.map +1 -1
  143. package/es/components/TextField/variations/_read-only/base.js +1 -1
  144. package/es/components/TextField/variations/_read-only/base.js.map +1 -1
  145. package/es/components/TextField/variations/_read-only/base_sr3to2.css +1 -0
  146. package/es/index.css +4 -2
  147. package/package.json +2 -2
  148. package/styled-components/cjs/components/Range/Range.tokens.js +2 -0
  149. package/styled-components/cjs/components/Range/variations/_readonly/base.js +1 -1
  150. package/styled-components/cjs/components/Tabs/Tabs.template-doc.mdx +2 -7
  151. package/styled-components/cjs/components/Tabs/ui/horizontal/HorizontalTabItem/HorizontalTabItem.js +4 -10
  152. package/styled-components/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +18 -11
  153. package/styled-components/cjs/components/Tabs/ui/vertical/VerticalTabItem/VerticalTabItem.js +4 -10
  154. package/styled-components/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +18 -11
  155. package/styled-components/cjs/components/TextArea/TextArea.js +9 -7
  156. package/styled-components/cjs/components/TextArea/TextArea.tokens.js +3 -0
  157. package/styled-components/cjs/components/TextArea/variations/_read-only/base.js +10 -0
  158. package/styled-components/cjs/components/TextArea/variations/_read-only/tokens.json +1 -0
  159. package/styled-components/cjs/components/TextField/TextField.tokens.js +1 -0
  160. package/styled-components/cjs/components/TextField/variations/_read-only/base.js +1 -1
  161. package/styled-components/cjs/components/_Icon/Icon.assets/Lock.js +26 -0
  162. package/styled-components/cjs/components/_Icon/Icons/IconChevronLeft.js +8 -3
  163. package/styled-components/cjs/components/_Icon/Icons/IconLock.js +29 -0
  164. package/styled-components/cjs/components/_Icon/index.js +7 -0
  165. package/styled-components/cjs/examples/plasma_b2c/components/DatePicker/DatePicker.stories.tsx +1 -1
  166. package/styled-components/cjs/examples/plasma_b2c/components/Range/Range.config.js +1 -1
  167. package/styled-components/cjs/examples/plasma_b2c/components/Range/Range.stories.tsx +14 -7
  168. package/styled-components/cjs/examples/plasma_b2c/components/TextArea/TextArea.config.js +3 -0
  169. package/styled-components/cjs/examples/plasma_b2c/components/TextArea/TextArea.stories.tsx +71 -20
  170. package/styled-components/cjs/examples/plasma_b2c/components/TextField/TextField.config.js +7 -7
  171. package/styled-components/cjs/examples/plasma_b2c/components/TextField/TextField.stories.tsx +92 -26
  172. package/styled-components/cjs/examples/plasma_web/components/DatePicker/DatePicker.stories.tsx +1 -1
  173. package/styled-components/cjs/examples/plasma_web/components/Range/Range.config.js +1 -1
  174. package/styled-components/cjs/examples/plasma_web/components/Range/Range.stories.tsx +14 -7
  175. package/styled-components/cjs/examples/plasma_web/components/TextArea/TextArea.stories.tsx +71 -20
  176. package/styled-components/cjs/examples/plasma_web/components/TextField/TextField.config.js +7 -7
  177. package/styled-components/cjs/examples/plasma_web/components/TextField/TextField.stories.tsx +85 -25
  178. package/styled-components/es/components/Range/Range.tokens.js +2 -0
  179. package/styled-components/es/components/Range/variations/_readonly/base.js +1 -1
  180. package/styled-components/es/components/Tabs/Tabs.template-doc.mdx +2 -7
  181. package/styled-components/es/components/Tabs/ui/horizontal/HorizontalTabItem/HorizontalTabItem.js +5 -11
  182. package/styled-components/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +19 -12
  183. package/styled-components/es/components/Tabs/ui/vertical/VerticalTabItem/VerticalTabItem.js +5 -11
  184. package/styled-components/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +19 -12
  185. package/styled-components/es/components/TextArea/TextArea.js +5 -3
  186. package/styled-components/es/components/TextArea/TextArea.tokens.js +3 -0
  187. package/styled-components/es/components/TextArea/variations/_read-only/base.js +4 -0
  188. package/styled-components/es/components/TextArea/variations/_read-only/tokens.json +1 -0
  189. package/styled-components/es/components/TextField/TextField.tokens.js +1 -0
  190. package/styled-components/es/components/TextField/variations/_read-only/base.js +2 -2
  191. package/styled-components/es/components/_Icon/Icon.assets/Lock.js +19 -0
  192. package/styled-components/es/components/_Icon/Icons/IconChevronLeft.js +8 -3
  193. package/styled-components/es/components/_Icon/Icons/IconLock.js +22 -0
  194. package/styled-components/es/components/_Icon/index.js +1 -0
  195. package/styled-components/es/examples/plasma_b2c/components/DatePicker/DatePicker.stories.tsx +1 -1
  196. package/styled-components/es/examples/plasma_b2c/components/Range/Range.config.js +1 -1
  197. package/styled-components/es/examples/plasma_b2c/components/Range/Range.stories.tsx +14 -7
  198. package/styled-components/es/examples/plasma_b2c/components/TextArea/TextArea.config.js +3 -0
  199. package/styled-components/es/examples/plasma_b2c/components/TextArea/TextArea.stories.tsx +71 -20
  200. package/styled-components/es/examples/plasma_b2c/components/TextField/TextField.config.js +7 -7
  201. package/styled-components/es/examples/plasma_b2c/components/TextField/TextField.stories.tsx +92 -26
  202. package/styled-components/es/examples/plasma_web/components/DatePicker/DatePicker.stories.tsx +1 -1
  203. package/styled-components/es/examples/plasma_web/components/Range/Range.config.js +1 -1
  204. package/styled-components/es/examples/plasma_web/components/Range/Range.stories.tsx +14 -7
  205. package/styled-components/es/examples/plasma_web/components/TextArea/TextArea.stories.tsx +71 -20
  206. package/styled-components/es/examples/plasma_web/components/TextField/TextField.config.js +7 -7
  207. package/styled-components/es/examples/plasma_web/components/TextField/TextField.stories.tsx +85 -25
  208. package/types/components/Range/Range.tokens.d.ts +2 -0
  209. package/types/components/Range/Range.tokens.d.ts.map +1 -1
  210. package/types/components/Range/variations/_readonly/base.d.ts.map +1 -1
  211. package/types/components/Tabs/ui/horizontal/HorizontalTabItem/HorizontalTabItem.d.ts.map +1 -1
  212. package/types/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.d.ts.map +1 -1
  213. package/types/components/Tabs/ui/vertical/VerticalTabItem/VerticalTabItem.d.ts.map +1 -1
  214. package/types/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.d.ts.map +1 -1
  215. package/types/components/TextArea/TextArea.d.ts +3 -2
  216. package/types/components/TextArea/TextArea.d.ts.map +1 -1
  217. package/types/components/TextArea/TextArea.tokens.d.ts +3 -0
  218. package/types/components/TextArea/TextArea.tokens.d.ts.map +1 -1
  219. package/types/components/TextArea/variations/_clear/base.d.ts.map +1 -1
  220. package/types/components/TextArea/variations/_read-only/base.d.ts +2 -0
  221. package/types/components/TextArea/variations/_read-only/base.d.ts.map +1 -0
  222. package/types/components/TextField/TextField.tokens.d.ts +1 -0
  223. package/types/components/TextField/TextField.tokens.d.ts.map +1 -1
  224. package/types/components/TextField/variations/_read-only/base.d.ts.map +1 -1
  225. package/types/components/_Icon/Icon.assets/Lock.d.ts +4 -0
  226. package/types/components/_Icon/Icon.assets/Lock.d.ts.map +1 -0
  227. package/types/components/_Icon/Icons/IconChevronLeft.d.ts.map +1 -1
  228. package/types/components/_Icon/Icons/IconLock.d.ts +4 -0
  229. package/types/components/_Icon/Icons/IconLock.d.ts.map +1 -0
  230. package/types/components/_Icon/index.d.ts +1 -0
  231. package/types/components/_Icon/index.d.ts.map +1 -1
  232. package/types/examples/plasma_b2c/components/Range/Range.config.d.ts.map +1 -1
  233. package/types/examples/plasma_b2c/components/TextArea/TextArea.config.d.ts +3 -0
  234. package/types/examples/plasma_b2c/components/TextArea/TextArea.config.d.ts.map +1 -1
  235. package/types/examples/plasma_b2c/components/TextArea/TextArea.d.ts +3 -0
  236. package/types/examples/plasma_b2c/components/TextArea/TextArea.d.ts.map +1 -1
  237. package/types/examples/plasma_b2c/components/TextField/TextField.config.d.ts.map +1 -1
  238. package/types/examples/plasma_web/components/Range/Range.config.d.ts.map +1 -1
  239. package/types/examples/plasma_web/components/TextField/TextField.config.d.ts.map +1 -1
  240. package/cjs/components/Tabs/utils/index.js +0 -26
  241. package/cjs/components/Tabs/utils/index.js.map +0 -1
  242. package/cjs/components/TextField/variations/_read-only/base_oizdmx.css +0 -1
  243. package/emotion/cjs/components/Tabs/utils/index.js +0 -24
  244. package/emotion/es/components/Tabs/utils/index.js +0 -18
  245. package/es/components/Tabs/utils/index.js +0 -21
  246. package/es/components/Tabs/utils/index.js.map +0 -1
  247. package/es/components/TextField/variations/_read-only/base_oizdmx.css +0 -1
  248. package/styled-components/cjs/components/Tabs/utils/index.js +0 -24
  249. package/styled-components/es/components/Tabs/utils/index.js +0 -18
  250. package/types/components/Tabs/utils/index.d.ts +0 -4
  251. package/types/components/Tabs/utils/index.d.ts.map +0 -1
@@ -4,7 +4,7 @@ import { action } from '@storybook/addon-actions';
4
4
  import { IconPlaceholder } from '@salutejs/plasma-sb-utils';
5
5
 
6
6
  import { WithTheme } from '../../../_helpers';
7
- import { IconCross } from '../../../../components/_Icon';
7
+ import { IconCross, IconLock } from '../../../../components/_Icon';
8
8
  import type { PopoverPlacement } from '../Popover/Popover';
9
9
 
10
10
  import { TextField } from './TextField';
@@ -43,6 +43,16 @@ const placements: Array<PopoverPlacement> = [
43
43
  'auto',
44
44
  ];
45
45
 
46
+ const getIcon = (IconComponent: React.ReactElement, size: string, readOnly = false) => {
47
+ const iconSize = size === 'xs' ? 'xs' : 's';
48
+
49
+ if (readOnly) {
50
+ return <IconLock size={iconSize} color="var(--text-secondary)" style={{ opacity: 0.4 }} />;
51
+ }
52
+
53
+ return <IconComponent size={iconSize} color="inherit" />;
54
+ };
55
+
46
56
  const meta: Meta<typeof TextField> = {
47
57
  title: 'web/Data Entry/TextField',
48
58
  component: TextField,
@@ -58,19 +68,28 @@ const meta: Meta<typeof TextField> = {
58
68
  control: {
59
69
  type: 'boolean',
60
70
  },
61
- if: { arg: 'optional', truthy: false },
71
+ if: {
72
+ arg: 'optional',
73
+ truthy: false,
74
+ },
62
75
  },
63
76
  optional: {
64
77
  control: {
65
78
  type: 'boolean',
66
79
  },
67
- if: { arg: 'required', truthy: false },
80
+ if: {
81
+ arg: 'required',
82
+ truthy: false,
83
+ },
68
84
  },
69
85
  hasDivider: {
70
86
  control: {
71
87
  type: 'boolean',
72
88
  },
73
- if: { arg: 'clear', truthy: true },
89
+ if: {
90
+ arg: 'clear',
91
+ truthy: true,
92
+ },
74
93
  },
75
94
  view: {
76
95
  options: views,
@@ -93,7 +112,10 @@ const meta: Meta<typeof TextField> = {
93
112
  control: {
94
113
  type: 'boolean',
95
114
  },
96
- if: { arg: 'labelPlacement', eq: 'inner' },
115
+ if: {
116
+ arg: 'labelPlacement',
117
+ eq: 'inner',
118
+ },
97
119
  },
98
120
  size: {
99
121
  options: sizes,
@@ -103,51 +125,75 @@ const meta: Meta<typeof TextField> = {
103
125
  },
104
126
  hintText: {
105
127
  control: { type: 'text' },
106
- if: { arg: 'hasHint', truthy: true },
128
+ if: {
129
+ arg: 'hasHint',
130
+ truthy: true,
131
+ },
107
132
  },
108
133
  hintView: {
109
134
  options: hintViews,
110
135
  control: {
111
136
  type: 'select',
112
137
  },
113
- if: { arg: 'hasHint', truthy: true },
138
+ if: {
139
+ arg: 'hasHint',
140
+ truthy: true,
141
+ },
114
142
  },
115
143
  hintSize: {
116
144
  options: hintSizes,
117
145
  control: {
118
146
  type: 'select',
119
147
  },
120
- if: { arg: 'hasHint', truthy: true },
148
+ if: {
149
+ arg: 'hasHint',
150
+ truthy: true,
151
+ },
121
152
  },
122
153
  hintTargetPlacement: {
123
154
  options: hintTargetPlacements,
124
155
  control: {
125
156
  type: 'inline-radio',
126
157
  },
127
- if: { arg: 'hasHint', truthy: true },
158
+ if: {
159
+ arg: 'hasHint',
160
+ truthy: true,
161
+ },
128
162
  },
129
163
  hintTrigger: {
130
164
  options: hintTriggers,
131
165
  control: {
132
166
  type: 'inline-radio',
133
167
  },
134
- if: { arg: 'hasHint', truthy: true },
168
+ if: {
169
+ arg: 'hasHint',
170
+ truthy: true,
171
+ },
135
172
  },
136
173
  hintPlacement: {
137
174
  options: placements,
138
175
  control: {
139
176
  type: 'select',
140
177
  },
141
- if: { arg: 'hasHint', truthy: true },
178
+ if: {
179
+ arg: 'hasHint',
180
+ truthy: true,
181
+ },
142
182
  mappers: placements,
143
183
  },
144
184
  hintHasArrow: {
145
185
  control: { type: 'boolean' },
146
- if: { arg: 'hasHint', truthy: true },
186
+ if: {
187
+ arg: 'hasHint',
188
+ truthy: true,
189
+ },
147
190
  },
148
191
  hintWidth: {
149
192
  control: { type: 'text' },
150
- if: { arg: 'hasHint', truthy: true },
193
+ if: {
194
+ arg: 'hasHint',
195
+ truthy: true,
196
+ },
151
197
  },
152
198
  chipType: {
153
199
  control: 'select',
@@ -183,19 +229,28 @@ type StoryPropsDefault = Omit<
183
229
  enableContentRight: boolean;
184
230
  };
185
231
 
186
- const StoryDemo = ({ enableContentLeft, enableContentRight, view, ...rest }: StoryPropsDefault) => {
232
+ const StoryDemo = ({ enableContentLeft, enableContentRight, view, readOnly, ...rest }: StoryPropsDefault) => {
187
233
  const [text, setText] = useState('Значение поля');
188
234
 
189
- const iconSize = rest.size === 'xs' ? 'xs' : 's';
235
+ const contentRight = enableContentRight || readOnly ? getIcon(IconCross, rest.size, readOnly) : undefined;
190
236
 
191
237
  return (
192
- <div style={{ display: 'flex', flexDirection: 'column', gap: '2rem', width: '70%', margin: '0 auto' }}>
238
+ <div
239
+ style={{
240
+ display: 'flex',
241
+ flexDirection: 'column',
242
+ gap: '2rem',
243
+ width: '70%',
244
+ margin: '0 auto',
245
+ }}
246
+ >
193
247
  <TextField
194
248
  {...rest}
195
249
  enumerationType="plain"
196
250
  value={text}
197
- contentLeft={enableContentLeft ? <IconCross color="inherit" size={iconSize} /> : undefined}
198
- contentRight={enableContentRight ? <IconCross color="inherit" size={iconSize} /> : undefined}
251
+ readOnly={readOnly}
252
+ contentLeft={enableContentLeft ? getIcon(IconPlaceholder, rest.size) : undefined}
253
+ contentRight={contentRight}
199
254
  view={view}
200
255
  onChange={(e) => {
201
256
  setText(e.target.value);
@@ -211,9 +266,10 @@ const StoryDemo = ({ enableContentLeft, enableContentRight, view, ...rest }: Sto
211
266
  label="Uncontrolled TextField"
212
267
  defaultValue="Дефолтное значение"
213
268
  enumerationType="plain"
214
- contentLeft={enableContentLeft ? <IconPlaceholder size={iconSize} /> : undefined}
215
- contentRight={enableContentRight ? <IconPlaceholder size={iconSize} /> : undefined}
269
+ contentLeft={enableContentLeft ? getIcon(IconPlaceholder, rest.size) : undefined}
270
+ contentRight={contentRight}
216
271
  view={view}
272
+ readOnly={readOnly}
217
273
  onFocus={onFocus}
218
274
  onBlur={onBlur}
219
275
  onSearch={onSearch}
@@ -285,10 +341,10 @@ type StoryPropsChips = Omit<
285
341
  enableContentRight: boolean;
286
342
  };
287
343
 
288
- const StoryChips = ({ enableContentLeft, enableContentRight, view, ...rest }: StoryPropsChips) => {
344
+ const StoryChips = ({ enableContentLeft, enableContentRight, view, readOnly, ...rest }: StoryPropsChips) => {
289
345
  const [text, setText] = useState('Значение поля');
290
346
 
291
- const iconSize = rest.size === 'xs' ? 'xs' : 's';
347
+ const contentRight = enableContentRight || readOnly ? getIcon(IconCross, rest.size, readOnly) : undefined;
292
348
 
293
349
  const validateChip = (value) => (value === '1 value' ? { view: 'negative' } : {});
294
350
 
@@ -297,9 +353,10 @@ const StoryChips = ({ enableContentLeft, enableContentRight, view, ...rest }: St
297
353
  {...rest}
298
354
  enumerationType="chip"
299
355
  value={text}
300
- contentLeft={enableContentLeft ? <IconPlaceholder size={iconSize} /> : undefined}
301
- contentRight={enableContentRight ? <IconPlaceholder size={iconSize} /> : undefined}
356
+ contentLeft={enableContentLeft ? getIcon(IconPlaceholder, rest.size) : undefined}
357
+ contentRight={contentRight}
302
358
  view={view}
359
+ readOnly={readOnly}
303
360
  onChange={(e) => {
304
361
  setText(e.target.value);
305
362
  onChange(e.target.value);
@@ -308,7 +365,10 @@ const StoryChips = ({ enableContentLeft, enableContentRight, view, ...rest }: St
308
365
  onBlur={onBlur}
309
366
  onChangeChips={onChipsChange}
310
367
  chipValidator={validateChip}
311
- style={{ width: '70%', margin: '0 auto' }}
368
+ style={{
369
+ width: '70%',
370
+ margin: '0 auto',
371
+ }}
312
372
  />
313
373
  );
314
374
  };
@@ -20,6 +20,7 @@ export var tokens = {
20
20
  /** Токены разделителя */
21
21
  dividerColor: '--plasma-range__divider-color',
22
22
  dividerColorReadOnly: '--plasma-range__divider-color-readonly',
23
+ dividerOpacityReadOnly: '--plasma-range__divider-opacity-readonly',
23
24
  dividerPadding: '--plasma-range__divider-padding',
24
25
  dividerFontFamily: '--plasma-range__divider-font-family',
25
26
  dividerFontStyle: '--plasma-range__divider-font-style',
@@ -30,6 +31,7 @@ export var tokens = {
30
31
  /** Токены слотов для контента */
31
32
  leftContentMargin: '--plasma-range__left-content-margin',
32
33
  rightContentMargin: '--plasma-range__right-content-margin',
34
+ rightContentOpacityReadOnly: '--plasma-range__right-content-opacity-readonly',
33
35
  /** Токены лейбла */
34
36
  labelColor: '--plasma-range__label-color',
35
37
  labelColorReadOnly: '--plasma-range__label-color-readonly',
@@ -1,4 +1,4 @@
1
1
  import { css } from 'styled-components';
2
2
  import { tokens } from '../../Range.tokens';
3
3
  import { ContentWrapper, LeftHelper, StyledContentLeft, StyledContentRight, StyledDivider, StyledLabel } from '../../Range.styles';
4
- export var base = /*#__PURE__*/css(["&[readonly]{cursor:default;", "{background:var(", ");}", "{display:block;color:var(", ");}", "{color:var(", ");}", "{color:var(", ");}", ",", "{color:var(", ");}}"], ContentWrapper, tokens.backgroundReadOnly, StyledLabel, tokens.labelColorReadOnly, LeftHelper, tokens.leftHelperColorReadOnly, StyledDivider, tokens.dividerColorReadOnly, StyledContentLeft, StyledContentRight, tokens.textFieldColorReadOnly);
4
+ export var base = /*#__PURE__*/css(["&[readonly]{cursor:default;", "{background:var(", ");}", "{display:block;color:var(", ");}", "{color:var(", ");}", "{color:var(", ");opacity:var(", ");}", ",", "{color:var(", ");}", "{opacity:var(", ");}}"], ContentWrapper, tokens.backgroundReadOnly, StyledLabel, tokens.labelColorReadOnly, LeftHelper, tokens.leftHelperColorReadOnly, StyledDivider, tokens.dividerColorReadOnly, tokens.dividerOpacityReadOnly, StyledContentLeft, StyledContentRight, tokens.textFieldColorReadOnly, StyledContentRight, tokens.rightContentOpacityReadOnly);
@@ -97,21 +97,18 @@ export function App() {
97
97
  ```
98
98
 
99
99
  ### Пример с прокруткой
100
- При выборе таба происходит прокрутка до выбранного таба.
101
100
 
102
101
  ```tsx live
103
102
  import React, { useState } from 'react';
104
- import { Tabs, TabItem, Button } from '@salutejs/plasma-web';
103
+ import { Tabs, TabItem } from '@salutejs/{{ package }}';
105
104
  import { IconClock } from '@salutejs/plasma-icons';
106
105
 
107
106
  export function App() {
108
107
  const items = Array(8).fill(0);
109
108
  const [index, setIndex] = useState(0);
110
109
 
111
- const specificIndex = 6;
112
-
113
110
  return (
114
- <div style=\{{ display:'flex', flexDirection: 'column', gap: '1rem' }}>
111
+ <div>
115
112
  <Tabs view="divider" size="xs" style=\{{ width: '15rem' }}>
116
113
  {items.map((_, i) => (
117
114
  <TabItem
@@ -127,8 +124,6 @@ export function App() {
127
124
  </TabItem>
128
125
  ))}
129
126
  </Tabs>
130
-
131
- <Button onClick={() => setIndex(specificIndex)}>{`Выбрать элемент ${specificIndex + 1}`}</Button>
132
127
  </div>
133
128
  );
134
129
  }
@@ -8,7 +8,7 @@ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol"
8
8
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
9
9
  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; }
10
10
  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; }
11
- import React, { forwardRef, useRef, useContext, useEffect, useCallback, useLayoutEffect } from 'react';
11
+ import React, { forwardRef, useRef, useContext, useEffect, useCallback } from 'react';
12
12
  import { useForkRef } from '@salutejs/plasma-core';
13
13
  import { classes } from '../../../tokens';
14
14
  import { cx } from '../../../../../utils';
@@ -62,16 +62,6 @@ export var horizontalTabItemRoot = function horizontalTabItemRoot(Root) {
62
62
  return refs.unregister(innerRef);
63
63
  };
64
64
  }, [refs]);
65
- useLayoutEffect(function () {
66
- var _innerRef$current;
67
- if (!selected) {
68
- return;
69
- }
70
- (_innerRef$current = innerRef.current) === null || _innerRef$current === void 0 || _innerRef$current.scrollIntoView({
71
- block: 'nearest',
72
- inline: 'nearest'
73
- });
74
- }, [selected]);
75
65
  var onItemFocus = useCallback(function (event) {
76
66
  if (disabled) {
77
67
  return;
@@ -97,6 +87,10 @@ export var horizontalTabItemRoot = function horizontalTabItemRoot(Root) {
97
87
  refs.setCurrent(focusIndex);
98
88
  }, [refs, innerRef, onIndexChange, disabled]);
99
89
  var handleClick = function handleClick(event) {
90
+ event.currentTarget.scrollIntoView({
91
+ block: 'nearest',
92
+ inline: 'nearest'
93
+ });
100
94
  if (!onClick) {
101
95
  return;
102
96
  }
@@ -8,13 +8,12 @@ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" !=
8
8
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
9
9
  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; }
10
10
  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; }
11
- import React, { forwardRef, useCallback, useMemo, useState, useRef, useLayoutEffect } from 'react';
11
+ import React, { forwardRef, useCallback, useMemo, useState, useEffect, useRef } from 'react';
12
12
  import { safeUseId } from '@salutejs/plasma-core';
13
13
  import { IconDisclosureLeft, IconDisclosureRight } from '../../../../_Icon';
14
14
  import { classes } from '../../../tokens';
15
15
  import { cx } from '../../../../../utils';
16
16
  import { TabItemRefs, TabsContext } from '../../../TabsContext';
17
- import { getFirstOverflowingTab, getLastOverflowingTab } from '../../../utils';
18
17
  import { base as sizeCSS } from './variations/_size/base';
19
18
  import { base as viewCSS } from './variations/_view/base';
20
19
  import { base as disabledCSS } from './variations/_disabled/base';
@@ -83,7 +82,13 @@ export var horizontalTabsRoot = function horizontalTabsRoot(Root) {
83
82
  return;
84
83
  }
85
84
  var scrollLeft = Math.round(scrollRef.current.scrollLeft);
86
- var firstOverflowingTab = getFirstOverflowingTab(refs.items.slice().reverse(), scrollLeft);
85
+ var firstOverflowingTab = refs.items.slice().reverse().find(function (item) {
86
+ if (!item.current || item.current.offsetLeft === undefined) {
87
+ return;
88
+ }
89
+ var tabStartX = item.current.offsetLeft;
90
+ return tabStartX < scrollLeft;
91
+ });
87
92
  firstOverflowingTab === null || firstOverflowingTab === void 0 || (_firstOverflowingTab$ = firstOverflowingTab.current) === null || _firstOverflowingTab$ === void 0 || _firstOverflowingTab$.scrollIntoView({
88
93
  block: 'nearest',
89
94
  inline: 'start'
@@ -95,7 +100,13 @@ export var horizontalTabsRoot = function horizontalTabsRoot(Root) {
95
100
  return;
96
101
  }
97
102
  var scrollRight = Math.round(scrollRef.current.scrollLeft + scrollRef.current.clientWidth);
98
- var lastOverflowingTab = getLastOverflowingTab(refs.items, scrollRight);
103
+ var lastOverflowingTab = refs.items.find(function (item) {
104
+ if (!item.current || item.current.offsetLeft === undefined) {
105
+ return;
106
+ }
107
+ var tabEndX = item.current.offsetLeft + item.current.offsetWidth;
108
+ return tabEndX > scrollRight;
109
+ });
99
110
  lastOverflowingTab === null || lastOverflowingTab === void 0 || (_lastOverflowingTab$c = lastOverflowingTab.current) === null || _lastOverflowingTab$c === void 0 || _lastOverflowingTab$c.scrollIntoView({
100
111
  block: 'nearest',
101
112
  inline: 'end'
@@ -170,22 +181,18 @@ export var horizontalTabsRoot = function horizontalTabsRoot(Root) {
170
181
  });
171
182
  }
172
183
  }, [index]);
173
- useLayoutEffect(function () {
184
+ useEffect(function () {
174
185
  var _scrollRef$current, _scrollRef$current2;
175
186
  setLastItemVisible(((_scrollRef$current = scrollRef.current) === null || _scrollRef$current === void 0 ? void 0 : _scrollRef$current.scrollWidth) === ((_scrollRef$current2 = scrollRef.current) === null || _scrollRef$current2 === void 0 ? void 0 : _scrollRef$current2.clientWidth));
176
187
  }, []);
177
188
 
178
189
  // Этот хук компенсирует появление левой стрелки при прокрутке
179
- useLayoutEffect(function () {
180
- var _lastOverflowingTab$c2;
190
+ useEffect(function () {
181
191
  if (firstItemVisible || !scrollRef.current || !leftArrowRef.current) {
182
192
  return;
183
193
  }
184
- var scrollRight = Math.round(scrollRef.current.scrollLeft + scrollRef.current.clientWidth);
185
- var lastOverflowingTab = getLastOverflowingTab(refs.items, scrollRight);
186
- lastOverflowingTab === null || lastOverflowingTab === void 0 || (_lastOverflowingTab$c2 = lastOverflowingTab.current) === null || _lastOverflowingTab$c2 === void 0 || _lastOverflowingTab$c2.scrollIntoView({
187
- block: 'nearest',
188
- inline: 'end'
194
+ scrollRef.current.scrollTo({
195
+ left: Math.round(scrollRef.current.scrollLeft + leftArrowRef.current.clientWidth)
189
196
  });
190
197
  }, [firstItemVisible, scrollRef, leftArrowRef]);
191
198
  return /*#__PURE__*/React.createElement(TabsContext.Provider, {
@@ -8,7 +8,7 @@ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol"
8
8
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
9
9
  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; }
10
10
  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; }
11
- import React, { forwardRef, useRef, useContext, useEffect, useCallback, useLayoutEffect } from 'react';
11
+ import React, { forwardRef, useRef, useContext, useEffect, useCallback } from 'react';
12
12
  import { useForkRef } from '@salutejs/plasma-core';
13
13
  import { classes } from '../../../tokens';
14
14
  import { cx } from '../../../../../utils';
@@ -53,16 +53,6 @@ export var verticalTabItemRoot = function verticalTabItemRoot(Root) {
53
53
  return refs.unregister(innerRef);
54
54
  };
55
55
  }, [refs]);
56
- useLayoutEffect(function () {
57
- var _innerRef$current;
58
- if (!selected) {
59
- return;
60
- }
61
- (_innerRef$current = innerRef.current) === null || _innerRef$current === void 0 || _innerRef$current.scrollIntoView({
62
- block: 'nearest',
63
- inline: 'nearest'
64
- });
65
- }, [selected]);
66
56
  var onItemFocus = useCallback(function (event) {
67
57
  if (disabled) {
68
58
  return;
@@ -87,6 +77,10 @@ export var verticalTabItemRoot = function verticalTabItemRoot(Root) {
87
77
  refs.setCurrent(focusIndex);
88
78
  }, [refs, innerRef, onIndexChange, disabled]);
89
79
  var handleClick = function handleClick(event) {
80
+ event.currentTarget.scrollIntoView({
81
+ block: 'nearest',
82
+ inline: 'nearest'
83
+ });
90
84
  if (!onClick) {
91
85
  return;
92
86
  }
@@ -9,13 +9,12 @@ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" !=
9
9
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
10
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
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, useCallback, useMemo, useState, useLayoutEffect, useRef } from 'react';
12
+ import React, { forwardRef, useCallback, useMemo, useState, useEffect, useRef } from 'react';
13
13
  import { safeUseId } from '@salutejs/plasma-core';
14
14
  import { classes } from '../../../tokens';
15
15
  import { cx } from '../../../../../utils';
16
16
  import { TabItemRefs, TabsContext } from '../../../TabsContext';
17
17
  import { IconDisclosureLeft, IconDisclosureRight } from '../../../../_Icon';
18
- import { getFirstOverflowingTab, getLastOverflowingTab } from '../../../utils';
19
18
  import { base, StyledArrow, StyledContent, StyledContentWrapper } from './VerticalTabs.styles';
20
19
  import { base as sizeCSS } from './variations/_size/base';
21
20
  import { base as viewCSS } from './variations/_view/base';
@@ -70,7 +69,13 @@ export var verticalTabsRoot = function verticalTabsRoot(Root) {
70
69
  return;
71
70
  }
72
71
  var scrollTop = Math.round(scrollRef.current.scrollTop);
73
- var firstOverflowingTab = getFirstOverflowingTab(refs.items.slice().reverse(), scrollTop);
72
+ var firstOverflowingTab = refs.items.slice().reverse().find(function (item) {
73
+ if (!item.current || item.current.offsetTop === undefined) {
74
+ return;
75
+ }
76
+ var tabStartY = item.current.offsetTop;
77
+ return tabStartY < scrollTop;
78
+ });
74
79
  firstOverflowingTab === null || firstOverflowingTab === void 0 || (_firstOverflowingTab$ = firstOverflowingTab.current) === null || _firstOverflowingTab$ === void 0 || _firstOverflowingTab$.scrollIntoView({
75
80
  block: 'start',
76
81
  inline: 'nearest'
@@ -82,7 +87,13 @@ export var verticalTabsRoot = function verticalTabsRoot(Root) {
82
87
  return;
83
88
  }
84
89
  var scrollBottom = Math.round(scrollRef.current.scrollTop + scrollRef.current.clientHeight);
85
- var lastOverflowingTab = getLastOverflowingTab(refs.items, scrollBottom);
90
+ var lastOverflowingTab = refs.items.find(function (item) {
91
+ if (!item.current || item.current.offsetTop === undefined) {
92
+ return;
93
+ }
94
+ var tabEndY = item.current.offsetTop + item.current.offsetHeight;
95
+ return tabEndY > scrollBottom;
96
+ });
86
97
  lastOverflowingTab === null || lastOverflowingTab === void 0 || (_lastOverflowingTab$c = lastOverflowingTab.current) === null || _lastOverflowingTab$c === void 0 || _lastOverflowingTab$c.scrollIntoView({
87
98
  block: 'end',
88
99
  inline: 'nearest'
@@ -148,22 +159,18 @@ export var verticalTabsRoot = function verticalTabsRoot(Root) {
148
159
  });
149
160
  }
150
161
  }, [index]);
151
- useLayoutEffect(function () {
162
+ useEffect(function () {
152
163
  var _scrollRef$current, _scrollRef$current2;
153
164
  setLastItemVisible(((_scrollRef$current = scrollRef.current) === null || _scrollRef$current === void 0 ? void 0 : _scrollRef$current.scrollHeight) === ((_scrollRef$current2 = scrollRef.current) === null || _scrollRef$current2 === void 0 ? void 0 : _scrollRef$current2.clientHeight));
154
165
  }, []);
155
166
 
156
167
  // Этот хук компенсирует появление верхней стрелки при прокрутке
157
- useLayoutEffect(function () {
158
- var _lastOverflowingTab$c2;
168
+ useEffect(function () {
159
169
  if (firstItemVisible || !scrollRef.current || !upArrowRef.current) {
160
170
  return;
161
171
  }
162
- var scrollBottom = Math.round(scrollRef.current.scrollTop + scrollRef.current.clientHeight);
163
- var lastOverflowingTab = getLastOverflowingTab(refs.items, scrollBottom);
164
- lastOverflowingTab === null || lastOverflowingTab === void 0 || (_lastOverflowingTab$c2 = lastOverflowingTab.current) === null || _lastOverflowingTab$c2 === void 0 || _lastOverflowingTab$c2.scrollIntoView({
165
- block: 'end',
166
- inline: 'nearest'
172
+ scrollRef.current.scrollTo({
173
+ top: Math.round(scrollRef.current.scrollTop + upArrowRef.current.clientHeight)
167
174
  });
168
175
  }, [firstItemVisible, scrollRef, upArrowRef]);
169
176
  return /*#__PURE__*/React.createElement(TabsContext.Provider, {
@@ -30,6 +30,7 @@ import { classes } from './TextArea.tokens';
30
30
  import { base as viewCSS } from './variations/_view/base';
31
31
  import { base as sizeCSS } from './variations/_size/base';
32
32
  import { base as clearCSS } from './variations/_clear/base';
33
+ import { base as readOnlyCSS } from './variations/_read-only/base';
33
34
  import { base as disabledCSS } from './variations/_disabled/base';
34
35
  import { base as hintViewCSS } from './variations/_hint-view/base';
35
36
  import { base as hintSizeCSS } from './variations/_hint-size/base';
@@ -350,11 +351,12 @@ export var textAreaConfig = {
350
351
  css: clearCSS,
351
352
  attrs: true
352
353
  },
353
- disabled: {
354
- css: disabledCSS,
354
+ readOnly: {
355
+ css: readOnlyCSS,
355
356
  attrs: true
356
357
  },
357
- readOnly: {
358
+ disabled: {
359
+ css: disabledCSS,
358
360
  attrs: true
359
361
  },
360
362
  hintView: {
@@ -60,6 +60,9 @@ export var tokens = {
60
60
  /** Цвет текста для элемента textarea */
61
61
  inputColor: '--plasma-textarea-input-color',
62
62
  clearInputColor: '--plasma-textarea-input-clear-color',
63
+ inputColorReadOnly: '--plasma-textarea-input-color-read-only',
64
+ backgroundColorReadOnly: '--plasma-textarea-background-color-read-only',
65
+ readOnlyOpacity: '--plasma-textarea-read-only-opacity',
63
66
  /** Цвет текста для элемента textarea в состоянии focus */
64
67
  inputColorFocus: '--plasma-textarea-input-color-focus',
65
68
  /** Цвет каретки для элемента textarea */
@@ -0,0 +1,4 @@
1
+ import { css } from 'styled-components';
2
+ import { StyledHelpers, StyledTextArea, StyledTextAreaWrapper } from '../../TextArea.styles';
3
+ import { classes, tokens } from '../../TextArea.tokens';
4
+ export var base = /*#__PURE__*/css(["&[readonly]{", "{color:var(", ");}:not(&.", "){", ",", "{background:transparent;position:relative;:before{position:absolute;content:'';top:0;left:0;right:0;bottom:0;background:var(", ");opacity:var(", ");z-index:-1;}:hover{background:transparent;}}", ":before{border-radius:var(", ");}", ":before{border-bottom-left-radius:var(", ");border-bottom-right-radius:var(", ");}}}"], StyledTextArea, tokens.inputColorReadOnly, classes.clear, StyledTextAreaWrapper, StyledHelpers, tokens.backgroundColorReadOnly, tokens.readOnlyOpacity, StyledTextAreaWrapper, tokens.borderRadiusWithHelpers, StyledHelpers, tokens.borderRadius, tokens.borderRadius);
@@ -112,6 +112,7 @@ export var tokens = {
112
112
  textAfterMargin: '--plasma-textfield__after-text-margin',
113
113
  /** Прозрачность для всего компонента в состоянии disabled */
114
114
  disabledOpacity: '--plasma-textfield-disabled-opacity',
115
+ readOnlyOpacity: '--plasma-textfield-readonly-opacity',
115
116
  /** Токены для tooltip */
116
117
  hintMargin: '--plasma-textfield__hint-margin',
117
118
  hintTargetSize: '--plasma-textfield__hint-target-size',
@@ -1,4 +1,4 @@
1
1
  import { css } from 'styled-components';
2
2
  import { classes, tokens } from '../../TextField.tokens';
3
- import { Input, InputPlaceholder, InputWrapper, Label, LeftHelper, TitleCaption } from '../../TextField.styles';
4
- export var base = /*#__PURE__*/css(["&[readonly]{", "{color:var(", ");background-color:var(", ");box-shadow:inset 0 0 0 var(", ") var(", ");}&.", " ", "{&:before{background-color:var(", ");}}", ":hover{background-color:var(", ");}", ":focus-within ", ",", "{color:var(", ");}", "{color:var(", ");cursor:default;min-width:unset;}", "{color:var(", ");}", "{color:var(", ");}&.", " ", "{color:var(", ");}}"], InputWrapper, tokens.colorReadOnly, /*#__PURE__*/String(tokens.backgroundColorReadOnly), /*#__PURE__*/String(tokens.borderWidth), /*#__PURE__*/String(tokens.borderColorReadOnly), classes.hasDivider, InputWrapper, /*#__PURE__*/String(tokens.dividerColorReadOnly), InputWrapper, tokens.backgroundColorReadOnly, InputWrapper, InputPlaceholder, InputPlaceholder, tokens.placeholderColorReadOnly, Input, tokens.colorReadOnly, TitleCaption, tokens.titleCaptionColorReadOnly, LeftHelper, tokens.leftHelperColorReadOnly, classes.outerLabelPlacement, Label, tokens.labelColorReadOnly);
3
+ import { Input, InputPlaceholder, InputWrapper, Label, LeftHelper, StyledContentRight, TitleCaption } from '../../TextField.styles';
4
+ export var base = /*#__PURE__*/css(["&[readonly]{:not(&.", "){", "{position:relative;color:var(", ");background-color:transparent;box-shadow:inset 0 0 0 var(", ") var(", ");:before{position:absolute;content:'';top:0;left:0;right:0;bottom:0;border-radius:var(", ");background-color:var(", ");opacity:var(", ");z-index:-1;}:hover{background-color:transparent;}}}&.", " ", "{&:before{background-color:var(", ");}}", ":focus-within ", ",", "{color:var(", ");}", "{color:var(", ");cursor:default;min-width:unset;}", "{color:var(", ");}", "{color:var(", ");}", ":hover,", ":active{cursor:default;color:var(", ",var(", "));}&.", " ", "{color:var(", ");}}"], classes.clear, InputWrapper, tokens.colorReadOnly, /*#__PURE__*/String(tokens.borderWidth), /*#__PURE__*/String(tokens.borderColorReadOnly), tokens.borderRadius, tokens.backgroundColorReadOnly, tokens.readOnlyOpacity, classes.hasDivider, InputWrapper, /*#__PURE__*/String(tokens.dividerColorReadOnly), InputWrapper, InputPlaceholder, InputPlaceholder, tokens.placeholderColorReadOnly, Input, tokens.colorReadOnly, TitleCaption, tokens.titleCaptionColorReadOnly, LeftHelper, tokens.leftHelperColorReadOnly, StyledContentRight, StyledContentRight, tokens.contentSlotRightColor, tokens.contentSlotColor, classes.outerLabelPlacement, Label, tokens.labelColorReadOnly);
@@ -0,0 +1,19 @@
1
+ var _path, _path2;
2
+ 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); }
3
+ import React from 'react';
4
+ export var Lock = function Lock(props) {
5
+ return /*#__PURE__*/React.createElement("svg", _extends({
6
+ width: "24",
7
+ height: "24",
8
+ viewBox: "0 0 24 24",
9
+ fill: "none"
10
+ }, props), _path || (_path = /*#__PURE__*/React.createElement("path", {
11
+ d: "M12.0001 18C13.1046 18 14.0001 17.1046 14.0001 16C14.0001 14.8954 13.1046 14 12.0001 14C10.8955 14 10.0001 14.8954 10.0001 16C10.0001 17.1046 10.8955 18 12.0001 18Z",
12
+ fill: "currentColor"
13
+ })), _path2 || (_path2 = /*#__PURE__*/React.createElement("path", {
14
+ fillRule: "evenodd",
15
+ clipRule: "evenodd",
16
+ d: "M16.7501 7V10.0056C17.0393 10.0142 17.2842 10.0359 17.5087 10.0898C18.6971 10.3751 19.625 11.3029 19.9103 12.4913C20.0005 12.8672 20.0003 13.3001 20.0001 13.9028L20.0001 17.2814C20.0001 17.9548 20.0001 18.5055 19.9635 18.9531C19.9257 19.4163 19.8449 19.8347 19.6458 20.2255C19.3342 20.837 18.837 21.3342 18.2255 21.6458C17.8348 21.8449 17.4164 21.9256 16.9531 21.9634C16.5056 22 15.9549 22 15.2815 22H8.71861C8.04524 22 7.49454 22 7.04698 21.9634C6.58372 21.9256 6.16532 21.8449 5.77458 21.6458C5.16306 21.3342 4.66587 20.837 4.35428 20.2255C4.15519 19.8347 4.07445 19.4163 4.0366 18.9531C4.00004 18.5055 4.00004 17.9548 4.00005 17.2814L4.00003 13.9029C3.99978 13.3001 3.9996 12.8672 4.08985 12.4913C4.37515 11.3029 5.30299 10.3751 6.49135 10.0898C6.7159 10.0359 6.96077 10.0142 7.25005 10.0056V7C7.25005 4.37665 9.3767 2.25 12.0001 2.25C14.6234 2.25 16.7501 4.37665 16.7501 7ZM8.75005 7C8.75005 5.20507 10.2051 3.75 12.0001 3.75C13.795 3.75 15.2501 5.20507 15.2501 7V10H8.75005V7ZM6.84152 11.5484C7.02117 11.5052 7.25947 11.5 8.00005 11.5H16.0001C16.7406 11.5 16.9789 11.5052 17.1586 11.5484C17.7985 11.702 18.2981 12.2016 18.4517 12.8415C18.4948 13.0211 18.5001 13.2594 18.5001 14V17.25C18.5001 17.9624 18.4995 18.4517 18.4685 18.8309C18.4382 19.2014 18.3827 19.4004 18.3093 19.5445C18.1415 19.8738 17.8738 20.1415 17.5445 20.3093C17.4005 20.3827 17.2015 20.4382 16.831 20.4684C16.4517 20.4994 15.9625 20.5 15.2501 20.5H8.75005C8.03761 20.5 7.54839 20.4994 7.16913 20.4684C6.79863 20.4382 6.59961 20.3827 6.45557 20.3093C6.12628 20.1415 5.85857 19.8738 5.69079 19.5445C5.6174 19.4004 5.56189 19.2014 5.53162 18.8309C5.50063 18.4517 5.50005 17.9624 5.50005 17.25V14C5.50005 13.2594 5.50527 13.0211 5.5484 12.8415C5.70203 12.2016 6.20164 11.702 6.84152 11.5484Z",
17
+ fill: "currentColor"
18
+ })));
19
+ };
@@ -1,3 +1,7 @@
1
+ var _excluded = ["size", "color", "className", "sizeCustomProperty"];
2
+ 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); }
3
+ 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; }
4
+ 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; }
1
5
  import React from 'react';
2
6
  import { ChevronLeft } from '../Icon.assets/ChevronLeft';
3
7
  import { IconRoot } from '../IconRoot';
@@ -6,12 +10,13 @@ export var IconChevronLeft = function IconChevronLeft(_ref) {
6
10
  size = _ref$size === void 0 ? 's' : _ref$size,
7
11
  color = _ref.color,
8
12
  className = _ref.className,
9
- sizeCustomProperty = _ref.sizeCustomProperty;
10
- return /*#__PURE__*/React.createElement(IconRoot, {
13
+ sizeCustomProperty = _ref.sizeCustomProperty,
14
+ rest = _objectWithoutProperties(_ref, _excluded);
15
+ return /*#__PURE__*/React.createElement(IconRoot, _extends({
11
16
  className: className,
12
17
  size: size,
13
18
  color: color,
14
19
  icon: ChevronLeft,
15
20
  sizeCustomProperty: sizeCustomProperty
16
- });
21
+ }, rest));
17
22
  };