@salutejs/plasma-new-hope 0.143.0-canary.1421.10814573412.0 → 0.143.0-canary.1422.10814333858.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (228) hide show
  1. package/cjs/components/Combobox/ComboboxNew/Combobox.js +8 -5
  2. package/cjs/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
  3. package/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +11 -4
  4. package/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js.map +1 -1
  5. package/cjs/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js +5 -3
  6. package/cjs/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js.map +1 -1
  7. package/cjs/components/Combobox/ComboboxOld/Combobox.js +15 -8
  8. package/cjs/components/Combobox/ComboboxOld/Combobox.js.map +1 -1
  9. package/cjs/components/Slider/Slider.css +5 -6
  10. package/cjs/components/Slider/Slider.js +5 -12
  11. package/cjs/components/Slider/Slider.js.map +1 -1
  12. package/cjs/components/Slider/components/Single/Single.css +5 -6
  13. package/cjs/components/Slider/components/Single/Single.js +7 -34
  14. package/cjs/components/Slider/components/Single/Single.js.map +1 -1
  15. package/cjs/components/Slider/components/Single/Single.styles.js +1 -7
  16. package/cjs/components/Slider/components/Single/Single.styles.js.map +1 -1
  17. package/cjs/components/Slider/components/Single/{Single.styles_9lxkbx.css → Single.styles_1r9f1e0.css} +0 -1
  18. package/cjs/components/TextArea/TextArea.js +2 -3
  19. package/cjs/components/TextArea/TextArea.js.map +1 -1
  20. package/cjs/index.css +5 -6
  21. package/cjs/index.js +0 -5
  22. package/cjs/index.js.map +1 -1
  23. package/cjs/utils/index.js.map +1 -1
  24. package/emotion/cjs/components/Combobox/Combobox.template-doc.mdx +347 -0
  25. package/emotion/cjs/components/Combobox/ComboboxNew/Combobox.js +8 -5
  26. package/emotion/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +11 -4
  27. package/emotion/cjs/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js +5 -3
  28. package/emotion/cjs/components/Combobox/ComboboxOld/Combobox.js +15 -8
  29. package/emotion/cjs/components/Slider/Slider.js +6 -15
  30. package/emotion/cjs/components/Slider/components/Single/Single.js +7 -34
  31. package/emotion/cjs/components/Slider/components/Single/Single.styles.js +13 -26
  32. package/emotion/cjs/components/TextArea/TextArea.js +3 -3
  33. package/emotion/cjs/examples/plasma_b2c/components/Combobox/Combobox.config.js +39 -0
  34. package/emotion/cjs/examples/plasma_b2c/components/Combobox/{ComboboxNew/Combobox.js → Combobox.js} +2 -2
  35. package/emotion/cjs/examples/plasma_b2c/components/Combobox/{ComboboxNew/Combobox.stories.tsx → Combobox.stories.tsx} +5 -3
  36. package/emotion/cjs/examples/plasma_b2c/components/Combobox/Legacy/Combobox.config.js +25 -0
  37. package/emotion/{es/examples/plasma_b2c/components/Combobox/ComboboxOld → cjs/examples/plasma_b2c/components/Combobox/Legacy}/Combobox.stories.tsx +18 -16
  38. package/emotion/cjs/examples/plasma_web/components/Combobox/Combobox.config.js +39 -0
  39. package/{styled-components/cjs/examples/plasma_web/components/Combobox/ComboboxNew → emotion/cjs/examples/plasma_web/components/Combobox}/Combobox.js +2 -2
  40. package/emotion/{es/examples/plasma_b2c/components/Combobox/ComboboxNew → cjs/examples/plasma_web/components/Combobox}/Combobox.stories.tsx +5 -3
  41. package/emotion/cjs/examples/plasma_web/components/Combobox/Legacy/Combobox.config.js +25 -0
  42. package/emotion/cjs/examples/{plasma_b2c/components/Combobox/ComboboxOld → plasma_web/components/Combobox/Legacy}/Combobox.stories.tsx +18 -16
  43. package/emotion/cjs/hooks/index.js +1 -8
  44. package/emotion/cjs/utils/index.js +0 -15
  45. package/emotion/es/components/Combobox/Combobox.template-doc.mdx +347 -0
  46. package/emotion/es/components/Combobox/ComboboxNew/Combobox.js +8 -5
  47. package/emotion/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +11 -4
  48. package/emotion/es/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js +5 -3
  49. package/emotion/es/components/Combobox/ComboboxOld/Combobox.js +15 -8
  50. package/emotion/es/components/Slider/Slider.js +5 -15
  51. package/emotion/es/components/Slider/components/Single/Single.js +8 -35
  52. package/emotion/es/components/Slider/components/Single/Single.styles.js +12 -25
  53. package/emotion/es/components/TextArea/TextArea.js +4 -4
  54. package/emotion/es/examples/plasma_b2c/components/Combobox/Combobox.config.js +33 -0
  55. package/emotion/es/examples/plasma_b2c/components/Combobox/{ComboboxNew/Combobox.js → Combobox.js} +2 -2
  56. package/emotion/{cjs/examples/plasma_web/components/Combobox/ComboboxNew → es/examples/plasma_b2c/components/Combobox}/Combobox.stories.tsx +5 -3
  57. package/emotion/es/examples/plasma_b2c/components/Combobox/Legacy/Combobox.config.js +19 -0
  58. package/emotion/{cjs/examples/plasma_web/components/Combobox/ComboboxOld → es/examples/plasma_b2c/components/Combobox/Legacy}/Combobox.stories.tsx +18 -16
  59. package/emotion/es/examples/plasma_web/components/Combobox/Combobox.config.js +33 -0
  60. package/emotion/es/examples/plasma_web/components/Combobox/{ComboboxNew/Combobox.js → Combobox.js} +2 -2
  61. package/emotion/es/examples/plasma_web/components/Combobox/{ComboboxNew/Combobox.stories.tsx → Combobox.stories.tsx} +5 -3
  62. package/emotion/es/examples/plasma_web/components/Combobox/Legacy/Combobox.config.js +19 -0
  63. package/emotion/es/examples/plasma_web/components/Combobox/{ComboboxOld → Legacy}/Combobox.stories.tsx +18 -16
  64. package/emotion/es/hooks/index.js +1 -2
  65. package/emotion/es/utils/index.js +0 -1
  66. package/es/components/Combobox/ComboboxNew/Combobox.js +8 -5
  67. package/es/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
  68. package/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +11 -4
  69. package/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js.map +1 -1
  70. package/es/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js +5 -3
  71. package/es/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js.map +1 -1
  72. package/es/components/Combobox/ComboboxOld/Combobox.js +15 -8
  73. package/es/components/Combobox/ComboboxOld/Combobox.js.map +1 -1
  74. package/es/components/Slider/Slider.css +5 -6
  75. package/es/components/Slider/Slider.js +6 -13
  76. package/es/components/Slider/Slider.js.map +1 -1
  77. package/es/components/Slider/components/Single/Single.css +5 -6
  78. package/es/components/Slider/components/Single/Single.js +8 -35
  79. package/es/components/Slider/components/Single/Single.js.map +1 -1
  80. package/es/components/Slider/components/Single/Single.styles.js +2 -7
  81. package/es/components/Slider/components/Single/Single.styles.js.map +1 -1
  82. package/es/components/Slider/components/Single/{Single.styles_9lxkbx.css → Single.styles_1r9f1e0.css} +0 -1
  83. package/es/components/TextArea/TextArea.js +2 -3
  84. package/es/components/TextArea/TextArea.js.map +1 -1
  85. package/es/index.css +5 -6
  86. package/es/index.js +0 -2
  87. package/es/index.js.map +1 -1
  88. package/es/utils/index.js.map +1 -1
  89. package/package.json +2 -3
  90. package/styled-components/cjs/components/Combobox/Combobox.template-doc.mdx +347 -0
  91. package/styled-components/cjs/components/Combobox/ComboboxNew/Combobox.js +8 -5
  92. package/styled-components/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +11 -4
  93. package/styled-components/cjs/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js +5 -3
  94. package/styled-components/cjs/components/Combobox/ComboboxOld/Combobox.js +15 -8
  95. package/styled-components/cjs/components/Slider/Slider.js +6 -15
  96. package/styled-components/cjs/components/Slider/components/Single/Single.js +7 -34
  97. package/styled-components/cjs/components/Slider/components/Single/Single.styles.js +2 -5
  98. package/styled-components/cjs/components/TextArea/TextArea.js +2 -2
  99. package/styled-components/cjs/examples/plasma_b2c/components/Combobox/{ComboboxNew/Combobox.config.js → Combobox.config.js} +2 -2
  100. package/{emotion/cjs/examples/plasma_web/components/Combobox/ComboboxNew → styled-components/cjs/examples/plasma_b2c/components/Combobox}/Combobox.js +2 -2
  101. package/styled-components/cjs/examples/plasma_b2c/components/Combobox/Combobox.stories.tsx +368 -0
  102. package/styled-components/cjs/examples/plasma_b2c/components/Combobox/{ComboboxOld → Legacy}/Combobox.config.js +1 -1
  103. package/styled-components/cjs/examples/plasma_b2c/components/Combobox/Legacy/Combobox.stories.tsx +256 -0
  104. package/styled-components/cjs/examples/plasma_web/components/Combobox/Combobox.config.js +39 -0
  105. package/styled-components/cjs/examples/{plasma_b2c/components/Combobox/ComboboxNew → plasma_web/components/Combobox}/Combobox.js +2 -2
  106. package/styled-components/cjs/examples/plasma_web/components/Combobox/Combobox.stories.tsx +368 -0
  107. package/styled-components/cjs/examples/plasma_web/components/Combobox/{ComboboxOld → Legacy}/Combobox.config.js +1 -1
  108. package/styled-components/cjs/examples/plasma_web/components/Combobox/Legacy/Combobox.stories.tsx +256 -0
  109. package/styled-components/cjs/hooks/index.js +1 -8
  110. package/styled-components/cjs/utils/index.js +0 -15
  111. package/styled-components/es/components/Combobox/Combobox.template-doc.mdx +347 -0
  112. package/styled-components/es/components/Combobox/ComboboxNew/Combobox.js +8 -5
  113. package/styled-components/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +11 -4
  114. package/styled-components/es/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js +5 -3
  115. package/styled-components/es/components/Combobox/ComboboxOld/Combobox.js +15 -8
  116. package/styled-components/es/components/Slider/Slider.js +5 -15
  117. package/styled-components/es/components/Slider/components/Single/Single.js +8 -35
  118. package/styled-components/es/components/Slider/components/Single/Single.styles.js +1 -4
  119. package/styled-components/es/components/TextArea/TextArea.js +3 -3
  120. package/styled-components/es/examples/{plasma_web/components/Combobox/ComboboxNew → plasma_b2c/components/Combobox}/Combobox.config.js +2 -2
  121. package/styled-components/es/examples/plasma_b2c/components/Combobox/{ComboboxNew/Combobox.js → Combobox.js} +2 -2
  122. package/styled-components/es/examples/plasma_b2c/components/Combobox/Combobox.stories.tsx +368 -0
  123. package/styled-components/es/examples/plasma_b2c/components/Combobox/{ComboboxOld → Legacy}/Combobox.config.js +1 -1
  124. package/styled-components/es/examples/plasma_b2c/components/Combobox/Legacy/Combobox.stories.tsx +256 -0
  125. package/styled-components/es/examples/plasma_web/components/Combobox/Combobox.config.js +33 -0
  126. package/styled-components/es/examples/plasma_web/components/Combobox/{ComboboxNew/Combobox.js → Combobox.js} +2 -2
  127. package/styled-components/es/examples/plasma_web/components/Combobox/Combobox.stories.tsx +368 -0
  128. package/styled-components/es/examples/plasma_web/components/Combobox/{ComboboxOld → Legacy}/Combobox.config.js +1 -1
  129. package/styled-components/es/examples/plasma_web/components/Combobox/Legacy/Combobox.stories.tsx +256 -0
  130. package/styled-components/es/hooks/index.js +1 -2
  131. package/styled-components/es/utils/index.js +0 -1
  132. package/types/components/Combobox/ComboboxNew/Combobox.d.ts.map +1 -1
  133. package/types/components/Combobox/ComboboxNew/Combobox.types.d.ts +5 -1
  134. package/types/components/Combobox/ComboboxNew/Combobox.types.d.ts.map +1 -1
  135. package/types/components/Combobox/ComboboxNew/ui/Inner/Inner.d.ts.map +1 -1
  136. package/types/components/Combobox/ComboboxNew/ui/Inner/Inner.type.d.ts +1 -0
  137. package/types/components/Combobox/ComboboxNew/ui/Inner/Inner.type.d.ts.map +1 -1
  138. package/types/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.d.ts.map +1 -1
  139. package/types/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.types.d.ts +1 -0
  140. package/types/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.types.d.ts.map +1 -1
  141. package/types/components/Combobox/ComboboxOld/Combobox.d.ts.map +1 -1
  142. package/types/components/Combobox/ComboboxOld/Combobox.types.d.ts +6 -0
  143. package/types/components/Combobox/ComboboxOld/Combobox.types.d.ts.map +1 -1
  144. package/types/components/Slider/Slider.d.ts.map +1 -1
  145. package/types/components/Slider/components/Double/Double.types.d.ts +0 -2
  146. package/types/components/Slider/components/Double/Double.types.d.ts.map +1 -1
  147. package/types/components/Slider/components/Single/Single.d.ts.map +1 -1
  148. package/types/components/Slider/components/Single/Single.styles.d.ts +0 -1
  149. package/types/components/Slider/components/Single/Single.styles.d.ts.map +1 -1
  150. package/types/components/Slider/components/Single/Single.types.d.ts +1 -3
  151. package/types/components/Slider/components/Single/Single.types.d.ts.map +1 -1
  152. package/types/components/TextArea/TextArea.d.ts.map +1 -1
  153. package/types/examples/plasma_b2c/components/Combobox/Combobox.config.d.ts.map +1 -0
  154. package/types/examples/plasma_b2c/components/Combobox/{ComboboxNew/Combobox.d.ts → Combobox.d.ts} +3 -3
  155. package/types/examples/plasma_b2c/components/Combobox/Combobox.d.ts.map +1 -0
  156. package/types/examples/plasma_b2c/components/Combobox/{ComboboxOld → Legacy}/Combobox.config.d.ts.map +1 -1
  157. package/types/examples/plasma_b2c/components/Combobox/Legacy/Combobox.d.ts.map +1 -0
  158. package/types/examples/plasma_web/components/Combobox/Combobox.config.d.ts.map +1 -0
  159. package/types/examples/plasma_web/components/Combobox/{ComboboxNew/Combobox.d.ts → Combobox.d.ts} +3 -3
  160. package/types/examples/plasma_web/components/Combobox/Combobox.d.ts.map +1 -0
  161. package/types/examples/plasma_web/components/Combobox/{ComboboxOld → Legacy}/Combobox.config.d.ts.map +1 -1
  162. package/types/examples/plasma_web/components/Combobox/Legacy/Combobox.d.ts.map +1 -0
  163. package/types/hooks/index.d.ts +0 -1
  164. package/types/hooks/index.d.ts.map +1 -1
  165. package/types/utils/index.d.ts +0 -1
  166. package/types/utils/index.d.ts.map +1 -1
  167. package/cjs/hooks/useForm.js +0 -71
  168. package/cjs/hooks/useForm.js.map +0 -1
  169. package/cjs/utils/setRefList.js +0 -28
  170. package/cjs/utils/setRefList.js.map +0 -1
  171. package/emotion/cjs/examples/plasma_b2c/components/Combobox/ComboboxNew/Combobox.config.js +0 -39
  172. package/emotion/cjs/examples/plasma_b2c/components/Combobox/ComboboxOld/Combobox.config.js +0 -25
  173. package/emotion/cjs/examples/plasma_b2c/components/Form/Form.stories.tsx +0 -182
  174. package/emotion/cjs/examples/plasma_web/components/Combobox/ComboboxNew/Combobox.config.js +0 -39
  175. package/emotion/cjs/examples/plasma_web/components/Combobox/ComboboxOld/Combobox.config.js +0 -25
  176. package/emotion/cjs/hooks/useForm.js +0 -72
  177. package/emotion/cjs/utils/setRefList.js +0 -27
  178. package/emotion/es/examples/plasma_b2c/components/Combobox/ComboboxNew/Combobox.config.js +0 -33
  179. package/emotion/es/examples/plasma_b2c/components/Combobox/ComboboxOld/Combobox.config.js +0 -19
  180. package/emotion/es/examples/plasma_b2c/components/Form/Form.stories.tsx +0 -182
  181. package/emotion/es/examples/plasma_web/components/Combobox/ComboboxNew/Combobox.config.js +0 -33
  182. package/emotion/es/examples/plasma_web/components/Combobox/ComboboxOld/Combobox.config.js +0 -19
  183. package/emotion/es/hooks/useForm.js +0 -63
  184. package/emotion/es/utils/setRefList.js +0 -20
  185. package/es/hooks/useForm.js +0 -67
  186. package/es/hooks/useForm.js.map +0 -1
  187. package/es/utils/setRefList.js +0 -23
  188. package/es/utils/setRefList.js.map +0 -1
  189. package/styled-components/cjs/examples/plasma_b2c/components/Combobox/ComboboxNew/Combobox.stories.tsx +0 -366
  190. package/styled-components/cjs/examples/plasma_b2c/components/Combobox/ComboboxOld/Combobox.stories.tsx +0 -254
  191. package/styled-components/cjs/examples/plasma_b2c/components/Form/Form.stories.tsx +0 -182
  192. package/styled-components/cjs/examples/plasma_web/components/Combobox/ComboboxNew/Combobox.config.js +0 -39
  193. package/styled-components/cjs/examples/plasma_web/components/Combobox/ComboboxNew/Combobox.stories.tsx +0 -366
  194. package/styled-components/cjs/examples/plasma_web/components/Combobox/ComboboxOld/Combobox.stories.tsx +0 -254
  195. package/styled-components/cjs/hooks/useForm.js +0 -72
  196. package/styled-components/cjs/utils/setRefList.js +0 -27
  197. package/styled-components/es/examples/plasma_b2c/components/Combobox/ComboboxNew/Combobox.config.js +0 -33
  198. package/styled-components/es/examples/plasma_b2c/components/Combobox/ComboboxNew/Combobox.stories.tsx +0 -366
  199. package/styled-components/es/examples/plasma_b2c/components/Combobox/ComboboxOld/Combobox.stories.tsx +0 -254
  200. package/styled-components/es/examples/plasma_b2c/components/Form/Form.stories.tsx +0 -182
  201. package/styled-components/es/examples/plasma_web/components/Combobox/ComboboxNew/Combobox.stories.tsx +0 -366
  202. package/styled-components/es/examples/plasma_web/components/Combobox/ComboboxOld/Combobox.stories.tsx +0 -254
  203. package/styled-components/es/hooks/useForm.js +0 -63
  204. package/styled-components/es/utils/setRefList.js +0 -20
  205. package/types/examples/plasma_b2c/components/Combobox/ComboboxNew/Combobox.config.d.ts.map +0 -1
  206. package/types/examples/plasma_b2c/components/Combobox/ComboboxNew/Combobox.d.ts.map +0 -1
  207. package/types/examples/plasma_b2c/components/Combobox/ComboboxOld/Combobox.d.ts.map +0 -1
  208. package/types/examples/plasma_web/components/Combobox/ComboboxNew/Combobox.config.d.ts.map +0 -1
  209. package/types/examples/plasma_web/components/Combobox/ComboboxNew/Combobox.d.ts.map +0 -1
  210. package/types/examples/plasma_web/components/Combobox/ComboboxOld/Combobox.d.ts.map +0 -1
  211. package/types/hooks/useForm.d.ts +0 -10
  212. package/types/hooks/useForm.d.ts.map +0 -1
  213. package/types/utils/setRefList.d.ts +0 -6
  214. package/types/utils/setRefList.d.ts.map +0 -1
  215. /package/emotion/cjs/examples/plasma_b2c/components/Combobox/{ComboboxOld → Legacy}/Combobox.js +0 -0
  216. /package/emotion/cjs/examples/plasma_web/components/Combobox/{ComboboxOld → Legacy}/Combobox.js +0 -0
  217. /package/emotion/es/examples/plasma_b2c/components/Combobox/{ComboboxOld → Legacy}/Combobox.js +0 -0
  218. /package/emotion/es/examples/plasma_web/components/Combobox/{ComboboxOld → Legacy}/Combobox.js +0 -0
  219. /package/styled-components/cjs/examples/plasma_b2c/components/Combobox/{ComboboxOld → Legacy}/Combobox.js +0 -0
  220. /package/styled-components/cjs/examples/plasma_web/components/Combobox/{ComboboxOld → Legacy}/Combobox.js +0 -0
  221. /package/styled-components/es/examples/plasma_b2c/components/Combobox/{ComboboxOld → Legacy}/Combobox.js +0 -0
  222. /package/styled-components/es/examples/plasma_web/components/Combobox/{ComboboxOld → Legacy}/Combobox.js +0 -0
  223. /package/types/examples/plasma_b2c/components/Combobox/{ComboboxNew/Combobox.config.d.ts → Combobox.config.d.ts} +0 -0
  224. /package/types/examples/plasma_b2c/components/Combobox/{ComboboxOld → Legacy}/Combobox.config.d.ts +0 -0
  225. /package/types/examples/plasma_b2c/components/Combobox/{ComboboxOld → Legacy}/Combobox.d.ts +0 -0
  226. /package/types/examples/plasma_web/components/Combobox/{ComboboxNew/Combobox.config.d.ts → Combobox.config.d.ts} +0 -0
  227. /package/types/examples/plasma_web/components/Combobox/{ComboboxOld → Legacy}/Combobox.config.d.ts +0 -0
  228. /package/types/examples/plasma_web/components/Combobox/{ComboboxOld → Legacy}/Combobox.d.ts +0 -0
@@ -0,0 +1,368 @@
1
+ import React, { useState } from 'react';
2
+ import type { ComponentProps } from 'react';
3
+ import type { Meta, StoryObj } from '@storybook/react';
4
+
5
+ import { WithTheme } from '../../../_helpers';
6
+ import { IconDone } from '../../../../components/_Icon';
7
+
8
+ import { Combobox } from './Combobox';
9
+
10
+ type StorySelectProps = ComponentProps<typeof Combobox> & {
11
+ enableContentLeft?: boolean;
12
+ };
13
+
14
+ const view = ['default', 'positive', 'warning', 'negative'];
15
+ const size = ['xs', 's', 'm', 'l'];
16
+ const labelPlacement = ['inner', 'outer'];
17
+ const variant = ['normal', 'tight'];
18
+
19
+ const meta: Meta<StorySelectProps> = {
20
+ title: 'plasma_web/Combobox',
21
+ decorators: [WithTheme],
22
+ component: Combobox,
23
+ argTypes: {
24
+ size: {
25
+ options: size,
26
+ control: {
27
+ type: 'select',
28
+ },
29
+ },
30
+ view: {
31
+ options: view,
32
+ control: {
33
+ type: 'select',
34
+ },
35
+ },
36
+ labelPlacement: {
37
+ options: labelPlacement,
38
+ control: {
39
+ type: 'select',
40
+ },
41
+ },
42
+ variant: {
43
+ options: variant,
44
+ control: {
45
+ type: 'select',
46
+ },
47
+ },
48
+ listWidth: {
49
+ control: {
50
+ type: 'text',
51
+ },
52
+ },
53
+ listOverflow: {
54
+ control: {
55
+ type: 'text',
56
+ },
57
+ },
58
+ listHeight: {
59
+ control: {
60
+ type: 'text',
61
+ },
62
+ },
63
+ },
64
+ args: {
65
+ label: 'Label',
66
+ labelPlacement: 'outer',
67
+ placeholder: 'Placeholder',
68
+ helperText: 'Helper text',
69
+ size: 'm',
70
+ view: 'default',
71
+ enableContentLeft: false,
72
+ isTargetAmount: false,
73
+ variant: 'normal',
74
+ disabled: false,
75
+ readOnly: false,
76
+ alwaysOpened: false,
77
+ },
78
+ parameters: {
79
+ controls: {
80
+ include: [
81
+ 'size',
82
+ 'view',
83
+ 'enableContentLeft',
84
+ 'label',
85
+ 'labelPlacement',
86
+ 'placeholder',
87
+ 'helperText',
88
+ 'isTargetAmount',
89
+ 'closeAfterSelect',
90
+ 'alwaysOpened',
91
+ 'variant',
92
+ 'disabled',
93
+ 'readOnly',
94
+ 'listWidth',
95
+ 'listOverflow',
96
+ 'listHeight',
97
+ ],
98
+ },
99
+ },
100
+ };
101
+
102
+ export default meta;
103
+
104
+ const items = [
105
+ {
106
+ value: 'north_america',
107
+ label: 'Северная Америка',
108
+ },
109
+ {
110
+ value: 'south_america',
111
+ label: 'Южная Америка',
112
+ items: [
113
+ {
114
+ value: 'brazil',
115
+ label: 'Бразилия',
116
+ items: [
117
+ {
118
+ value: 'rio_de_janeiro',
119
+ label: 'Рио-де-Жанейро',
120
+ },
121
+ {
122
+ value: 'sao_paulo',
123
+ label: 'Сан-Паулу',
124
+ },
125
+ ],
126
+ },
127
+ {
128
+ value: 'argentina',
129
+ label: 'Аргентина',
130
+ items: [
131
+ {
132
+ value: 'buenos_aires',
133
+ label: 'Буэнос-Айрес',
134
+ },
135
+ {
136
+ value: 'cordoba',
137
+ label: 'Кордова',
138
+ },
139
+ ],
140
+ },
141
+ {
142
+ value: 'colombia',
143
+ label: 'Колумбия',
144
+ items: [
145
+ {
146
+ value: 'bogota',
147
+ label: 'Богота',
148
+ },
149
+ {
150
+ value: 'medellin',
151
+ label: 'Медельин',
152
+ },
153
+ ],
154
+ },
155
+ ],
156
+ },
157
+ {
158
+ value: 'europe',
159
+ label: 'Европа',
160
+ items: [
161
+ {
162
+ value: 'france',
163
+ label: 'Франция',
164
+ items: [
165
+ {
166
+ value: 'paris',
167
+ label: 'Париж',
168
+ },
169
+ {
170
+ value: 'lyon',
171
+ label: 'Лион',
172
+ },
173
+ ],
174
+ },
175
+ {
176
+ value: 'germany',
177
+ label: 'Германия',
178
+ items: [
179
+ {
180
+ value: 'berlin',
181
+ label: 'Берлин',
182
+ },
183
+ {
184
+ value: 'munich',
185
+ label: 'Мюнхен',
186
+ },
187
+ ],
188
+ },
189
+ {
190
+ value: 'italy',
191
+ label: 'Италия',
192
+ items: [
193
+ {
194
+ value: 'rome',
195
+ label: 'Рим',
196
+ },
197
+ {
198
+ value: 'milan',
199
+ label: 'Милан',
200
+ },
201
+ ],
202
+ },
203
+ {
204
+ value: 'spain',
205
+ label: 'Испания',
206
+ items: [
207
+ {
208
+ value: 'madrid',
209
+ label: 'Мадрид',
210
+ },
211
+ {
212
+ value: 'barcelona',
213
+ label: 'Барселона',
214
+ },
215
+ ],
216
+ },
217
+ {
218
+ value: 'united_kingdom',
219
+ label: 'Великобритания',
220
+ items: [
221
+ {
222
+ value: 'london',
223
+ label: 'Лондон',
224
+ },
225
+ {
226
+ value: 'manchester',
227
+ label: 'Манчестер',
228
+ },
229
+ ],
230
+ },
231
+ ],
232
+ },
233
+ {
234
+ value: 'asia',
235
+ label: 'Азия',
236
+ items: [
237
+ {
238
+ value: 'china',
239
+ label: 'Китай',
240
+ items: [
241
+ {
242
+ value: 'beijing',
243
+ label: 'Пекин',
244
+ },
245
+ {
246
+ value: 'shanghai',
247
+ label: 'Шанхай',
248
+ },
249
+ ],
250
+ },
251
+ {
252
+ value: 'japan',
253
+ label: 'Япония',
254
+ items: [
255
+ {
256
+ value: 'tokyo',
257
+ label: 'Токио',
258
+ },
259
+ {
260
+ value: 'osaka',
261
+ label: 'Осака',
262
+ },
263
+ ],
264
+ },
265
+ {
266
+ value: 'india',
267
+ label: 'Индия',
268
+ items: [
269
+ {
270
+ value: 'delhi',
271
+ label: 'Дели',
272
+ },
273
+ {
274
+ value: 'mumbai',
275
+ label: 'Мумбаи',
276
+ },
277
+ ],
278
+ },
279
+ {
280
+ value: 'south_korea',
281
+ label: 'Южная Корея',
282
+ items: [
283
+ {
284
+ value: 'seoul',
285
+ label: 'Сеул',
286
+ },
287
+ {
288
+ value: 'busan',
289
+ label: 'Пусан',
290
+ },
291
+ ],
292
+ },
293
+ {
294
+ value: 'thailand',
295
+ label: 'Таиланд',
296
+ items: [
297
+ {
298
+ value: 'bangkok',
299
+ label: 'Бангкок',
300
+ },
301
+ {
302
+ value: 'phuket',
303
+ label: 'Пхукет',
304
+ },
305
+ ],
306
+ },
307
+ ],
308
+ },
309
+ {
310
+ value: 'africa',
311
+ label: 'Африка',
312
+ disabled: true,
313
+ },
314
+ ];
315
+
316
+ const SingleStory = (args: StorySelectProps) => {
317
+ const [value, setValue] = useState('');
318
+
319
+ return (
320
+ <div style={{ width: '400px' }}>
321
+ <Combobox
322
+ {...args}
323
+ items={items}
324
+ value={value}
325
+ onChange={setValue}
326
+ contentLeft={args.enableContentLeft ? <IconDone size="s" /> : undefined}
327
+ autoComplete="off"
328
+ />
329
+ </div>
330
+ );
331
+ };
332
+
333
+ export const Single: StoryObj<StorySelectProps> = {
334
+ render: (args) => <SingleStory {...args} />,
335
+ args: {
336
+ closeAfterSelect: true,
337
+ },
338
+ parameters: {
339
+ controls: {
340
+ exclude: ['isTargetAmount'],
341
+ },
342
+ },
343
+ };
344
+
345
+ const MultipleStory = (args: StorySelectProps) => {
346
+ const [value, setValue] = useState([]);
347
+
348
+ return (
349
+ <div style={{ width: '400px' }}>
350
+ <Combobox
351
+ {...args}
352
+ multiple
353
+ items={items}
354
+ value={value}
355
+ onChange={setValue}
356
+ contentLeft={args.enableContentLeft ? <IconDone size="s" /> : undefined}
357
+ autoComplete="off"
358
+ />
359
+ </div>
360
+ );
361
+ };
362
+
363
+ export const Multiple: StoryObj<StorySelectProps> = {
364
+ render: (args) => <MultipleStory {...args} />,
365
+ args: {
366
+ closeAfterSelect: false,
367
+ },
368
+ };
@@ -19,7 +19,7 @@ var config = exports.config = {
19
19
  l: /*#__PURE__*/(0, _styledComponents.css)(["", ":100%;", ":auto;", ":0.875rem;", ":0.125rem;", ":0.125rem;", ":0.125rem;", ":0.125rem;", ":var(--surface-transparent-tertiary);", ":0.063rem;", ":0;", ":1rem;", ":0;", ":1rem;", ":auto;", ":1.5rem;", ":1rem;", ":1rem;", ":1rem;", ":1rem;", ":0.75rem;", ":1.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-font-weight);", ":var(--plasma-typo-body-l-letter-spacing);", ":var(--plasma-typo-body-l-line-height);", ":0.25rem;", ":0.5rem;", ":auto;", ":2.75rem;", ":0.75rem;", ":1rem;", ":0.625rem;", ":0rem;", ":1rem;", ":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);", ":1rem;", ":3.5rem;", ":100%;", ":0.875rem;", ":0 3.5rem 0 1.5rem;", ":0 3.625rem 0 0.375rem;", ":0 3.625rem 0 0.625rem;", ":0.5rem;", ":0.375rem;", ":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-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);"], _Combobox.comboboxOldTokens.width, _Combobox.comboboxOldTokens.height, _Combobox.comboboxOldTokens.borderRadius, _Combobox.comboboxOldTokens.paddingTop, _Combobox.comboboxOldTokens.paddingRight, _Combobox.comboboxOldTokens.paddingBottom, _Combobox.comboboxOldTokens.paddingLeft, _Combobox.comboboxOldTokens.dividerColor, _Combobox.comboboxOldTokens.dividerHeight, _Combobox.comboboxOldTokens.dividerMarginTop, _Combobox.comboboxOldTokens.dividerMarginRight, _Combobox.comboboxOldTokens.dividerMarginBottom, _Combobox.comboboxOldTokens.dividerMarginLeft, _Combobox.comboboxOldTokens.itemWidth, _Combobox.comboboxOldTokens.itemHeight, _Combobox.comboboxOldTokens.itemPaddingTop, _Combobox.comboboxOldTokens.itemPaddingRight, _Combobox.comboboxOldTokens.itemPaddingBottom, _Combobox.comboboxOldTokens.itemPaddingLeft, _Combobox.comboboxOldTokens.itemBorderRadius, _Combobox.comboboxOldTokens.itemContentLeftWidth, _Combobox.comboboxOldTokens.itemFontFamily, _Combobox.comboboxOldTokens.itemFontSize, _Combobox.comboboxOldTokens.itemFontStyle, _Combobox.comboboxOldTokens.itemFontWeightBold, _Combobox.comboboxOldTokens.itemFontLetterSpacing, _Combobox.comboboxOldTokens.itemFontLineHeight, _Combobox.comboboxOldTokens.chipGap, _Combobox.comboboxOldTokens.chipBorderRadius, _Combobox.comboboxOldTokens.chipWidth, _Combobox.comboboxOldTokens.chipHeight, _Combobox.comboboxOldTokens.chipPaddingRight, _Combobox.comboboxOldTokens.chipPaddingLeft, _Combobox.comboboxOldTokens.chipClearContentMarginLeft, _Combobox.comboboxOldTokens.chipClearContentMarginRight, _Combobox.comboboxOldTokens.chipCloseIconSize, _Combobox.comboboxOldTokens.chipFontFamily, _Combobox.comboboxOldTokens.chipFontSize, _Combobox.comboboxOldTokens.chipFontStyle, _Combobox.comboboxOldTokens.chipFontWeight, _Combobox.comboboxOldTokens.chipLetterSpacing, _Combobox.comboboxOldTokens.chipLineHeight, _Combobox.comboboxOldTokens.targetArrowRight, _Combobox.comboboxOldTokens.targetHeight, _Combobox.comboboxOldTokens.targetWidth, _Combobox.comboboxOldTokens.targetRadius, _Combobox.comboboxOldTokens.targetPadding, _Combobox.comboboxOldTokens.targetPaddingHasChips, _Combobox.comboboxOldTokens.targetPaddingWithInput, _Combobox.comboboxOldTokens.targetInnerTop, _Combobox.comboboxOldTokens.targetLabelInnerTop, _Combobox.comboboxOldTokens.targetFontFamily, _Combobox.comboboxOldTokens.targetFontSize, _Combobox.comboboxOldTokens.targetFontStyle, _Combobox.comboboxOldTokens.targetFontWeight, _Combobox.comboboxOldTokens.targetLetterSpacing, _Combobox.comboboxOldTokens.targetLineHeight, _Combobox.comboboxOldTokens.targetLabelInnerFontFamily, _Combobox.comboboxOldTokens.targetLabelInnerFontSize, _Combobox.comboboxOldTokens.targetLabelInnerFontStyle, _Combobox.comboboxOldTokens.targetLabelInnerFontWeight, _Combobox.comboboxOldTokens.targetLabelInnerLetterSpacing, _Combobox.comboboxOldTokens.targetLabelInnerLineHeight)
20
20
  },
21
21
  view: {
22
- "default": /*#__PURE__*/(0, _styledComponents.css)(["", ":var(--text-primary);", ":var(--text-secondary);", ":var(--text-secondary);", ":var(--text-tertiary);", ":var(--text-tertiary-hover);", ":var(--text-tertiary-active);", ":var(--text-accent);", ":var(--surface-solid-card-brightness);", ":var(--shadow-down-soft-s);", ":var(--plasma-colors-transparent);", ":var(--surface-transparent-secondary);", ":var(--surface-transparent-secondary);", ":var(--text-primary);", ":var(--text-accent);", ":var(--text-secondary);", ":var(--text-primary);", ":var(--surface-transparent-secondary);", ":var(--text-primary);", ":var(--surface-transparent-secondary-hover);", ":var(--text-primary);", ":var(--surface-transparent-secondary-active);", ":var(--surface-transparent-secondary);", ":var(--text-primary);", ":var(--surface-transparent-secondary);", ":var(--text-primary);", ":0.72;", ":0.4;", ":var(--surface-accent);"], _Combobox.comboboxOldTokens.targetColor, _Combobox.comboboxOldTokens.targetLabelColor, _Combobox.comboboxOldTokens.targetArrowColor, _Combobox.comboboxOldTokens.targetBorderColor, _Combobox.comboboxOldTokens.targetBorderColorHover, _Combobox.comboboxOldTokens.targetBorderColorActive, _Combobox.comboboxOldTokens.targetBorderColorOpen, _Combobox.comboboxOldTokens.background, _Combobox.comboboxOldTokens.boxShadow, _Combobox.comboboxOldTokens.itemBackground, _Combobox.comboboxOldTokens.itemBackgroundHover, _Combobox.comboboxOldTokens.itemBackgroundSelectedHover, _Combobox.comboboxOldTokens.itemColor, _Combobox.comboboxOldTokens.itemContentLeftColor, _Combobox.comboboxOldTokens.chipCloseIconColor, _Combobox.comboboxOldTokens.chipColor, _Combobox.comboboxOldTokens.chipBackground, _Combobox.comboboxOldTokens.chipColorHover, _Combobox.comboboxOldTokens.chipBackgroundHover, _Combobox.comboboxOldTokens.chipColorActive, _Combobox.comboboxOldTokens.chipBackgroundActive, _Combobox.comboboxOldTokens.chipBackgroundReadOnly, _Combobox.comboboxOldTokens.chipColorReadOnly, _Combobox.comboboxOldTokens.chipBackgroundReadOnlyHover, _Combobox.comboboxOldTokens.chipColorReadOnlyHover, _Combobox.comboboxOldTokens.chipOpacityReadonly, _Combobox.comboboxOldTokens.disabledOpacity, _Combobox.comboboxOldTokens.focusColor)
22
+ "default": /*#__PURE__*/(0, _styledComponents.css)(["", ":var(--text-primary);", ":var(--text-secondary);", ":var(--text-secondary);", ":var(--text-tertiary);", ":var(--text-tertiary-hover);", ":var(--text-tertiary-active);", ":var(--text-accent);", ":var(--surface-solid-card);", ":var(--shadow-down-soft-s);", ":var(--plasma-colors-transparent);", ":var(--surface-transparent-secondary);", ":var(--surface-transparent-secondary);", ":var(--text-primary);", ":var(--text-accent);", ":var(--text-secondary);", ":var(--text-primary);", ":var(--surface-transparent-secondary);", ":var(--text-primary);", ":var(--surface-transparent-secondary-hover);", ":var(--text-primary);", ":var(--surface-transparent-secondary-active);", ":var(--surface-transparent-secondary);", ":var(--text-primary);", ":var(--surface-transparent-secondary);", ":var(--text-primary);", ":0.72;", ":0.4;", ":var(--surface-accent);"], _Combobox.comboboxOldTokens.targetColor, _Combobox.comboboxOldTokens.targetLabelColor, _Combobox.comboboxOldTokens.targetArrowColor, _Combobox.comboboxOldTokens.targetBorderColor, _Combobox.comboboxOldTokens.targetBorderColorHover, _Combobox.comboboxOldTokens.targetBorderColorActive, _Combobox.comboboxOldTokens.targetBorderColorOpen, _Combobox.comboboxOldTokens.background, _Combobox.comboboxOldTokens.boxShadow, _Combobox.comboboxOldTokens.itemBackground, _Combobox.comboboxOldTokens.itemBackgroundHover, _Combobox.comboboxOldTokens.itemBackgroundSelectedHover, _Combobox.comboboxOldTokens.itemColor, _Combobox.comboboxOldTokens.itemContentLeftColor, _Combobox.comboboxOldTokens.chipCloseIconColor, _Combobox.comboboxOldTokens.chipColor, _Combobox.comboboxOldTokens.chipBackground, _Combobox.comboboxOldTokens.chipColorHover, _Combobox.comboboxOldTokens.chipBackgroundHover, _Combobox.comboboxOldTokens.chipColorActive, _Combobox.comboboxOldTokens.chipBackgroundActive, _Combobox.comboboxOldTokens.chipBackgroundReadOnly, _Combobox.comboboxOldTokens.chipColorReadOnly, _Combobox.comboboxOldTokens.chipBackgroundReadOnlyHover, _Combobox.comboboxOldTokens.chipColorReadOnlyHover, _Combobox.comboboxOldTokens.chipOpacityReadonly, _Combobox.comboboxOldTokens.disabledOpacity, _Combobox.comboboxOldTokens.focusColor)
23
23
  }
24
24
  }
25
25
  };
@@ -0,0 +1,256 @@
1
+ import React, { useState } from 'react';
2
+ import type { ComponentProps } from 'react';
3
+ import type { Meta, StoryObj } from '@storybook/react';
4
+ import { action } from '@storybook/addon-actions';
5
+
6
+ import { mergeConfig } from '../../../../../engines';
7
+ import { Checkbox } from '../../Checkbox/Checkbox';
8
+ import { comboboxOldConfig } from '../../../../../components/Combobox';
9
+ import { WithTheme, argTypesFromConfig } from '../../../../_helpers';
10
+ import { IconDone } from '../../../../../components/_Icon';
11
+
12
+ import { Combobox, ComboboxDivider, ComboboxItem } from './Combobox';
13
+ import { config } from './Combobox.config';
14
+
15
+ const placements: Array<string> = ['top', 'bottom', 'right', 'left', 'auto'];
16
+ const enumerations: Array<string> = ['comma', 'chip'];
17
+
18
+ type ComboboxPrimitiveValue = string | number | boolean;
19
+
20
+ type StorySelectPropsCustom = {
21
+ skidding?: number;
22
+ distance?: number;
23
+ };
24
+
25
+ type StorySelectProps = ComponentProps<typeof Combobox> & StorySelectPropsCustom;
26
+
27
+ const meta: Meta<StorySelectProps> = {
28
+ title: 'plasma_web/Combobox',
29
+ decorators: [WithTheme],
30
+ component: Combobox,
31
+ argTypes: {
32
+ placement: {
33
+ options: placements,
34
+ control: {
35
+ type: 'select',
36
+ },
37
+ },
38
+ enumerationType: {
39
+ options: enumerations,
40
+ control: {
41
+ type: 'select',
42
+ },
43
+ },
44
+ ...argTypesFromConfig(mergeConfig(comboboxOldConfig, config)),
45
+ },
46
+ args: {
47
+ usePortal: false,
48
+ disabled: false,
49
+ readOnly: false,
50
+ label: 'Label',
51
+ placeholder: 'Placeholder',
52
+ enumerationType: 'comma',
53
+ size: 'm',
54
+ view: 'default',
55
+ placement: 'bottom',
56
+ },
57
+ };
58
+
59
+ export default meta;
60
+
61
+ const onChangeAction = action('onChange');
62
+
63
+ const iconDoneToSelectSizeMap: Record<string, 'xs' | 's'> = {
64
+ xs: 'xs',
65
+ s: 's',
66
+ m: 's',
67
+ l: 's',
68
+ };
69
+
70
+ const checkboxToSelectSizeMap: Record<string, 's' | 'm'> = {
71
+ xs: 's',
72
+ s: 'm',
73
+ m: 'm',
74
+ l: 'm',
75
+ };
76
+
77
+ const getSelectItems = (slug: string, elemCount: number) =>
78
+ [...Array(elemCount).keys()].map((num) => ({
79
+ value: `${slug}_${num}`,
80
+ child: `${slug} ${num}`,
81
+ }));
82
+
83
+ const SingleDemo = (args: StorySelectProps) => {
84
+ const { usePortal, placement, label, placeholder, readOnly, disabled, size = 'm', view } = args;
85
+
86
+ const [value, setValue] = useState<ComboboxPrimitiveValue | undefined>('item_0');
87
+
88
+ const onChangeValue = (newValue?: ComboboxPrimitiveValue) => {
89
+ setValue(newValue);
90
+ onChangeAction(newValue);
91
+ };
92
+
93
+ return (
94
+ <div style={{ width: '50%', margin: '3rem 0' }}>
95
+ <h4>Combobox с единичным выбором</h4>
96
+ <Combobox
97
+ frame="theme-root"
98
+ usePortal={usePortal}
99
+ valueType="single"
100
+ value={value}
101
+ placement={placement}
102
+ label={label}
103
+ placeholder={placeholder}
104
+ size={size}
105
+ view={view}
106
+ disabled={disabled}
107
+ readOnly={readOnly}
108
+ onChangeValue={onChangeValue}
109
+ >
110
+ <ComboboxItem value={undefined} text="Clear" />
111
+ {getSelectItems('item', 6).map((item) => (
112
+ <ComboboxItem
113
+ key={item.value}
114
+ contentLeft={
115
+ item.value === value ? (
116
+ <IconDone size={iconDoneToSelectSizeMap[size]} color="inherit" />
117
+ ) : undefined
118
+ }
119
+ value={item.value}
120
+ text={item.child}
121
+ />
122
+ ))}
123
+ </Combobox>
124
+ </div>
125
+ );
126
+ };
127
+
128
+ const MultipleDemo = (args: StorySelectProps) => {
129
+ const { usePortal, placement, label, placeholder, readOnly, disabled, enumerationType, size = 'm', view } = args;
130
+
131
+ const [value, setValue] = useState<Array<ComboboxPrimitiveValue> | undefined>(['item_2', 'item_3']);
132
+
133
+ const onChangeValue = (newValue?: Array<ComboboxPrimitiveValue>) => {
134
+ setValue(newValue);
135
+ onChangeAction(newValue);
136
+ };
137
+
138
+ return (
139
+ <div style={{ width: '50%', marginBottom: '3rem' }}>
140
+ <h4>Combobox с множественным выбором</h4>
141
+ <Combobox
142
+ frame="theme-root"
143
+ usePortal={usePortal}
144
+ valueType="multiple"
145
+ enumerationType={enumerationType}
146
+ value={value}
147
+ placement={placement}
148
+ label={label}
149
+ placeholder={placeholder}
150
+ size={size}
151
+ view={view}
152
+ disabled={disabled}
153
+ readOnly={readOnly}
154
+ onChangeValue={onChangeValue}
155
+ >
156
+ <ComboboxItem value={undefined} text="Clear" />
157
+ {getSelectItems('item', 6).map((item) => (
158
+ <ComboboxItem
159
+ key={item.value}
160
+ contentLeft={<Checkbox size={checkboxToSelectSizeMap[size]} />}
161
+ value={item.value}
162
+ text={item.child}
163
+ />
164
+ ))}
165
+ </Combobox>
166
+ </div>
167
+ );
168
+ };
169
+
170
+ const AddCustomItemDemo = (args: StorySelectProps) => {
171
+ const { usePortal, placement, label, placeholder, readOnly, disabled, size = 'm', view } = args;
172
+
173
+ const [opened, setOpened] = useState(false);
174
+ const [items, setItems] = useState(getSelectItems('item', 1));
175
+ const [value, setValue] = useState<ComboboxPrimitiveValue | undefined>('item_0');
176
+
177
+ const onChangeValue = (newValue?: ComboboxPrimitiveValue) => {
178
+ setValue(newValue);
179
+ onChangeAction(newValue);
180
+ };
181
+
182
+ const onToggle = (openValue: boolean) => setOpened(openValue);
183
+
184
+ const onKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {
185
+ const { code } = event;
186
+
187
+ if (code === 'Enter') {
188
+ const newValue = (event.target as HTMLInputElement).value;
189
+ const newItems = [...items];
190
+
191
+ if (newItems.find((item) => item.child === newValue)) {
192
+ return;
193
+ }
194
+
195
+ newItems.push({
196
+ value: `${newValue}_`,
197
+ child: (newValue || '').toString(),
198
+ });
199
+
200
+ setOpened(false);
201
+ setItems(newItems);
202
+ }
203
+ };
204
+
205
+ const filterFunction = () => true;
206
+
207
+ return (
208
+ <div style={{ width: '50%' }}>
209
+ <h4>Combobox с добавлением пользовательского элемента</h4>
210
+ <Combobox
211
+ frame="theme-root"
212
+ usePortal={usePortal}
213
+ valueType="single"
214
+ value={value}
215
+ placement={placement}
216
+ label={label}
217
+ placeholder={placeholder}
218
+ size={size}
219
+ view={view}
220
+ disabled={disabled}
221
+ readOnly={readOnly}
222
+ opened={opened}
223
+ onToggle={onToggle}
224
+ onChangeValue={onChangeValue}
225
+ onKeyDown={onKeyDown}
226
+ filterFunction={filterFunction}
227
+ >
228
+ <ComboboxItem value={undefined} text="Clear" />
229
+ <ComboboxDivider />
230
+ {items.map((item) => (
231
+ <ComboboxItem
232
+ key={item.value}
233
+ contentLeft={
234
+ item.value === value ? (
235
+ <IconDone size={iconDoneToSelectSizeMap[size]} color="inherit" />
236
+ ) : undefined
237
+ }
238
+ value={item.value}
239
+ text={item.child}
240
+ />
241
+ ))}
242
+ </Combobox>
243
+ </div>
244
+ );
245
+ };
246
+
247
+ export const Legacy: StoryObj<StorySelectProps> = {
248
+ render: (args) => (
249
+ <>
250
+ <h3>Combobox на композиционной архитектуре (deprecated)</h3>
251
+ <SingleDemo {...args} />
252
+ <MultipleDemo {...args} />
253
+ <AddCustomItemDemo {...args} />
254
+ </>
255
+ ),
256
+ };
@@ -21,12 +21,6 @@ Object.defineProperty(exports, "useForceUpdate", {
21
21
  return _useForceUpdate.useForceUpdate;
22
22
  }
23
23
  });
24
- Object.defineProperty(exports, "useFormPlasma", {
25
- enumerable: true,
26
- get: function get() {
27
- return _useForm.useFormPlasma;
28
- }
29
- });
30
24
  Object.defineProperty(exports, "useIsomorphicLayoutEffect", {
31
25
  enumerable: true,
32
26
  get: function get() {
@@ -57,5 +51,4 @@ var _usePreviousValue = /*#__PURE__*/require("./usePreviousValue");
57
51
  var _useForceUpdate = /*#__PURE__*/require("./useForceUpdate");
58
52
  var _useDidMountEffect = /*#__PURE__*/require("./useDidMountEffect");
59
53
  var _useOutsideClick = /*#__PURE__*/require("./useOutsideClick");
60
- var _useIsomorphicLayoutEffect = /*#__PURE__*/require("./useIsomorphicLayoutEffect");
61
- var _useForm = /*#__PURE__*/require("./useForm");
54
+ var _useIsomorphicLayoutEffect = /*#__PURE__*/require("./useIsomorphicLayoutEffect");