@salutejs/plasma-new-hope 0.77.1-canary.1201.8930079977.0 → 0.77.1-dev.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (343) hide show
  1. package/cjs/components/Combobox/Combobox.css +7 -17
  2. package/cjs/components/Combobox/ui/ComboboxDivider/ComboboxDivider.css +6 -15
  3. package/cjs/components/Combobox/ui/ComboboxDivider/ComboboxDivider.js +2 -2
  4. package/cjs/components/Combobox/ui/ComboboxFooter/ComboboxFooter.css +6 -15
  5. package/cjs/components/Combobox/ui/ComboboxFooter/ComboboxFooter.js +2 -2
  6. package/cjs/components/Combobox/ui/ComboboxGroup/ComboboxGroup.css +6 -15
  7. package/cjs/components/Combobox/ui/ComboboxGroup/ComboboxGroup.js +2 -2
  8. package/cjs/components/Combobox/ui/ComboboxHeader/ComboboxHeader.css +6 -15
  9. package/cjs/components/Combobox/ui/ComboboxHeader/ComboboxHeader.js +2 -2
  10. package/cjs/components/Combobox/ui/ComboboxItem/ComboboxItem.css +23 -4
  11. package/cjs/components/Combobox/ui/ComboboxItem/ComboboxItem.js +10 -81
  12. package/cjs/components/Combobox/ui/ComboboxItem/ComboboxItem.js.map +1 -1
  13. package/cjs/components/Combobox/ui/ComboboxItem/ComboboxItem.styles.js +9 -21
  14. package/cjs/components/Combobox/ui/ComboboxItem/ComboboxItem.styles.js.map +1 -1
  15. package/cjs/components/Combobox/ui/ComboboxItem/ComboboxItem.styles_936wgl.css +1 -0
  16. package/cjs/components/Dropdown/Dropdown.css +2 -25
  17. package/cjs/components/Dropdown/Dropdown.js +54 -138
  18. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  19. package/cjs/components/Dropdown/Dropdown.styles.js +7 -40
  20. package/cjs/components/Dropdown/Dropdown.styles.js.map +1 -1
  21. package/cjs/components/Dropdown/Dropdown.styles_1daxhqh.css +2 -0
  22. package/cjs/components/Dropdown/Dropdown.tokens.js +23 -26
  23. package/cjs/components/Dropdown/Dropdown.tokens.js.map +1 -1
  24. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.css +4 -7
  25. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.js +100 -79
  26. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.js.map +1 -1
  27. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js +5 -90
  28. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js.map +1 -1
  29. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.styles_1juhjtq.css +4 -0
  30. package/cjs/components/Dropdown/ui/{DropdownItemOld → DropdownItem}/variations/_size/base.js +1 -1
  31. package/cjs/components/Dropdown/ui/DropdownItem/variations/_size/base.js.map +1 -0
  32. package/cjs/components/Dropdown/ui/{DropdownItemOld → DropdownItem}/variations/_view/base.js +1 -1
  33. package/cjs/components/Dropdown/ui/DropdownItem/variations/_view/base.js.map +1 -0
  34. package/cjs/components/Dropdown/utils/index.js +0 -16
  35. package/cjs/components/Dropdown/utils/index.js.map +1 -1
  36. package/cjs/components/Pagination/Pagination.css +7 -14
  37. package/cjs/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.css +7 -14
  38. package/cjs/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.styles.js +1 -1
  39. package/cjs/components/Select/Select.css +7 -14
  40. package/cjs/components/Select/ui/SelectDivider/SelectDivider.css +6 -15
  41. package/cjs/components/Select/ui/SelectDivider/SelectDivider.js +2 -2
  42. package/cjs/components/Select/ui/SelectFooter/SelectFooter.css +6 -15
  43. package/cjs/components/Select/ui/SelectFooter/SelectFooter.js +2 -2
  44. package/cjs/components/Select/ui/SelectGroup/SelectGroup.css +6 -15
  45. package/cjs/components/Select/ui/SelectGroup/SelectGroup.js +2 -2
  46. package/cjs/components/Select/ui/SelectHeader/SelectHeader.css +6 -15
  47. package/cjs/components/Select/ui/SelectHeader/SelectHeader.js +2 -2
  48. package/cjs/components/Select/ui/SelectItem/SelectItem.css +7 -16
  49. package/cjs/components/Select/ui/SelectItem/SelectItem.js +3 -3
  50. package/cjs/components/Select/ui/SelectItem/SelectItem.js.map +1 -1
  51. package/cjs/components/Select/ui/SelectItem/SelectItem.styles.js +2 -2
  52. package/cjs/components/Select/ui/SelectItem/SelectItem.styles.js.map +1 -1
  53. package/cjs/components/Select/ui/SelectItem/{SelectItem.styles_vk39mp.css → SelectItem.styles_6h17aw.css} +1 -1
  54. package/cjs/components/_Icon/Icon.assets/DisclosureRight.js +2 -1
  55. package/cjs/components/_Icon/Icon.assets/DisclosureRight.js.map +1 -1
  56. package/cjs/index.css +8 -18
  57. package/cjs/index.js +2 -8
  58. package/cjs/index.js.map +1 -1
  59. package/es/components/Combobox/Combobox.css +7 -17
  60. package/es/components/Combobox/ui/ComboboxDivider/ComboboxDivider.css +6 -15
  61. package/es/components/Combobox/ui/ComboboxDivider/ComboboxDivider.js +2 -2
  62. package/es/components/Combobox/ui/ComboboxFooter/ComboboxFooter.css +6 -15
  63. package/es/components/Combobox/ui/ComboboxFooter/ComboboxFooter.js +2 -2
  64. package/es/components/Combobox/ui/ComboboxGroup/ComboboxGroup.css +6 -15
  65. package/es/components/Combobox/ui/ComboboxGroup/ComboboxGroup.js +2 -2
  66. package/es/components/Combobox/ui/ComboboxHeader/ComboboxHeader.css +6 -15
  67. package/es/components/Combobox/ui/ComboboxHeader/ComboboxHeader.js +2 -2
  68. package/es/components/Combobox/ui/ComboboxItem/ComboboxItem.css +23 -4
  69. package/es/components/Combobox/ui/ComboboxItem/ComboboxItem.js +11 -82
  70. package/es/components/Combobox/ui/ComboboxItem/ComboboxItem.js.map +1 -1
  71. package/es/components/Combobox/ui/ComboboxItem/ComboboxItem.styles.js +10 -19
  72. package/es/components/Combobox/ui/ComboboxItem/ComboboxItem.styles.js.map +1 -1
  73. package/es/components/Combobox/ui/ComboboxItem/ComboboxItem.styles_936wgl.css +1 -0
  74. package/es/components/Dropdown/Dropdown.css +2 -25
  75. package/es/components/Dropdown/Dropdown.js +60 -144
  76. package/es/components/Dropdown/Dropdown.js.map +1 -1
  77. package/es/components/Dropdown/Dropdown.styles.js +7 -39
  78. package/es/components/Dropdown/Dropdown.styles.js.map +1 -1
  79. package/es/components/Dropdown/Dropdown.styles_1daxhqh.css +2 -0
  80. package/es/components/Dropdown/Dropdown.tokens.js +23 -26
  81. package/es/components/Dropdown/Dropdown.tokens.js.map +1 -1
  82. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.css +4 -7
  83. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.js +100 -80
  84. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.js.map +1 -1
  85. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js +5 -89
  86. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js.map +1 -1
  87. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.styles_1juhjtq.css +4 -0
  88. package/es/components/Dropdown/ui/{DropdownItemOld → DropdownItem}/variations/_size/base.js +1 -1
  89. package/es/components/Dropdown/ui/DropdownItem/variations/_size/base.js.map +1 -0
  90. package/es/components/Dropdown/ui/{DropdownItemOld → DropdownItem}/variations/_view/base.js +1 -1
  91. package/es/components/Dropdown/ui/DropdownItem/variations/_view/base.js.map +1 -0
  92. package/es/components/Dropdown/utils/index.js +2 -16
  93. package/es/components/Dropdown/utils/index.js.map +1 -1
  94. package/es/components/Pagination/Pagination.css +7 -14
  95. package/es/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.css +7 -14
  96. package/es/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.styles.js +1 -1
  97. package/es/components/Select/Select.css +7 -14
  98. package/es/components/Select/ui/SelectDivider/SelectDivider.css +6 -15
  99. package/es/components/Select/ui/SelectDivider/SelectDivider.js +2 -2
  100. package/es/components/Select/ui/SelectFooter/SelectFooter.css +6 -15
  101. package/es/components/Select/ui/SelectFooter/SelectFooter.js +2 -2
  102. package/es/components/Select/ui/SelectGroup/SelectGroup.css +6 -15
  103. package/es/components/Select/ui/SelectGroup/SelectGroup.js +2 -2
  104. package/es/components/Select/ui/SelectHeader/SelectHeader.css +6 -15
  105. package/es/components/Select/ui/SelectHeader/SelectHeader.js +2 -2
  106. package/es/components/Select/ui/SelectItem/SelectItem.css +7 -16
  107. package/es/components/Select/ui/SelectItem/SelectItem.js +3 -3
  108. package/es/components/Select/ui/SelectItem/SelectItem.js.map +1 -1
  109. package/es/components/Select/ui/SelectItem/SelectItem.styles.js +2 -2
  110. package/es/components/Select/ui/SelectItem/SelectItem.styles.js.map +1 -1
  111. package/es/components/Select/ui/SelectItem/{SelectItem.styles_vk39mp.css → SelectItem.styles_6h17aw.css} +1 -1
  112. package/es/components/_Icon/Icon.assets/DisclosureRight.js +2 -1
  113. package/es/components/_Icon/Icon.assets/DisclosureRight.js.map +1 -1
  114. package/es/index.css +8 -18
  115. package/es/index.js +1 -4
  116. package/es/index.js.map +1 -1
  117. package/package.json +2 -2
  118. package/styled-components/cjs/components/Combobox/ui/ComboboxItem/ComboboxItem.js +2 -91
  119. package/styled-components/cjs/components/Combobox/ui/ComboboxItem/ComboboxItem.styles.js +7 -27
  120. package/styled-components/cjs/components/Dropdown/Dropdown.js +54 -140
  121. package/styled-components/cjs/components/Dropdown/Dropdown.styles.js +7 -22
  122. package/styled-components/cjs/components/Dropdown/Dropdown.template-doc.mdx +80 -0
  123. package/styled-components/cjs/components/Dropdown/Dropdown.tokens.js +23 -26
  124. package/styled-components/cjs/components/Dropdown/index.js +1 -9
  125. package/styled-components/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.js +105 -77
  126. package/styled-components/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js +18 -83
  127. package/styled-components/cjs/components/Dropdown/ui/DropdownItem/variations/_size/tokens.json +19 -0
  128. package/styled-components/cjs/components/Dropdown/ui/DropdownItem/variations/_view/tokens.json +9 -0
  129. package/styled-components/cjs/components/Dropdown/ui/index.js +5 -19
  130. package/styled-components/cjs/components/Dropdown/utils/index.js +1 -15
  131. package/styled-components/cjs/components/Dropdown/variations/_size/tokens.json +9 -1
  132. package/styled-components/cjs/components/Dropdown/variations/_view/tokens.json +1 -1
  133. package/styled-components/cjs/components/Select/ui/SelectItem/SelectItem.js +1 -1
  134. package/styled-components/cjs/components/Select/ui/SelectItem/SelectItem.styles.js +1 -1
  135. package/styled-components/cjs/components/_Icon/Icon.assets/DisclosureRight.js +2 -1
  136. package/styled-components/cjs/examples/plasma_b2c/components/Dropdown/Normal/Dropdown.config.js +27 -0
  137. package/styled-components/cjs/examples/plasma_b2c/components/Dropdown/Normal/Dropdown.js +13 -0
  138. package/styled-components/cjs/examples/plasma_b2c/components/Dropdown/Normal/Dropdown.stories.tsx +194 -0
  139. package/styled-components/cjs/examples/plasma_b2c/components/Dropdown/Tight/Dropdown.config.js +27 -0
  140. package/styled-components/cjs/examples/plasma_b2c/components/Dropdown/Tight/Dropdown.js +13 -0
  141. package/styled-components/cjs/examples/plasma_b2c/components/Dropdown/Tight/Dropdown.stories.tsx +195 -0
  142. package/styled-components/cjs/examples/plasma_web/components/Dropdown/Normal/Dropdown.config.js +27 -0
  143. package/styled-components/cjs/examples/plasma_web/components/Dropdown/Normal/Dropdown.js +13 -0
  144. package/styled-components/cjs/examples/plasma_web/components/Dropdown/Normal/Dropdown.stories.tsx +195 -0
  145. package/styled-components/cjs/examples/plasma_web/components/Dropdown/Tight/Dropdown.config.js +27 -0
  146. package/styled-components/cjs/examples/plasma_web/components/Dropdown/Tight/Dropdown.js +13 -0
  147. package/styled-components/cjs/examples/plasma_web/components/Dropdown/Tight/Dropdown.stories.tsx +195 -0
  148. package/styled-components/cjs/examples/sds_engineer/components/Dropdown/Dropdown.config.js +22 -0
  149. package/styled-components/cjs/examples/sds_engineer/components/Dropdown/Dropdown.js +21 -0
  150. package/styled-components/cjs/examples/sds_engineer/components/Dropdown/Dropdown.stories.tsx +277 -0
  151. package/styled-components/es/components/Combobox/ui/ComboboxItem/ComboboxItem.js +3 -90
  152. package/styled-components/es/components/Combobox/ui/ComboboxItem/ComboboxItem.styles.js +6 -23
  153. package/styled-components/es/components/Dropdown/Dropdown.js +55 -142
  154. package/styled-components/es/components/Dropdown/Dropdown.styles.js +5 -18
  155. package/styled-components/es/components/Dropdown/Dropdown.template-doc.mdx +80 -0
  156. package/styled-components/es/components/Dropdown/Dropdown.tokens.js +23 -26
  157. package/styled-components/es/components/Dropdown/index.js +0 -1
  158. package/styled-components/es/components/Dropdown/ui/DropdownItem/DropdownItem.js +107 -78
  159. package/styled-components/es/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js +14 -80
  160. package/styled-components/es/components/Dropdown/ui/DropdownItem/variations/_size/tokens.json +19 -0
  161. package/styled-components/es/components/Dropdown/ui/DropdownItem/variations/_view/tokens.json +9 -0
  162. package/styled-components/es/components/Dropdown/ui/index.js +1 -3
  163. package/styled-components/es/components/Dropdown/utils/index.js +1 -15
  164. package/styled-components/es/components/Dropdown/variations/_size/tokens.json +9 -1
  165. package/styled-components/es/components/Dropdown/variations/_view/tokens.json +1 -1
  166. package/styled-components/es/components/Select/ui/SelectItem/SelectItem.js +2 -2
  167. package/styled-components/es/components/Select/ui/SelectItem/SelectItem.styles.js +1 -1
  168. package/styled-components/es/components/_Icon/Icon.assets/DisclosureRight.js +2 -1
  169. package/styled-components/es/examples/plasma_b2c/components/Dropdown/Normal/Dropdown.config.js +21 -0
  170. package/styled-components/es/examples/plasma_b2c/components/Dropdown/Normal/Dropdown.js +7 -0
  171. package/styled-components/es/examples/plasma_b2c/components/Dropdown/Normal/Dropdown.stories.tsx +194 -0
  172. package/styled-components/es/examples/plasma_b2c/components/Dropdown/Tight/Dropdown.config.js +21 -0
  173. package/styled-components/es/examples/plasma_b2c/components/Dropdown/Tight/Dropdown.js +7 -0
  174. package/styled-components/es/examples/plasma_b2c/components/Dropdown/Tight/Dropdown.stories.tsx +195 -0
  175. package/styled-components/es/examples/plasma_web/components/Dropdown/Normal/Dropdown.config.js +21 -0
  176. package/styled-components/es/examples/plasma_web/components/Dropdown/Normal/Dropdown.js +7 -0
  177. package/styled-components/es/examples/plasma_web/components/Dropdown/Normal/Dropdown.stories.tsx +195 -0
  178. package/styled-components/es/examples/plasma_web/components/Dropdown/Tight/Dropdown.config.js +21 -0
  179. package/styled-components/es/examples/plasma_web/components/Dropdown/Tight/Dropdown.js +7 -0
  180. package/styled-components/es/examples/plasma_web/components/Dropdown/Tight/Dropdown.stories.tsx +195 -0
  181. package/styled-components/es/examples/sds_engineer/components/Dropdown/Dropdown.config.js +16 -0
  182. package/styled-components/es/examples/sds_engineer/components/Dropdown/Dropdown.js +15 -0
  183. package/styled-components/es/examples/sds_engineer/components/Dropdown/Dropdown.stories.tsx +277 -0
  184. package/types/components/Combobox/ui/ComboboxItem/ComboboxItem.d.ts +13 -15
  185. package/types/components/Combobox/ui/ComboboxItem/ComboboxItem.d.ts.map +1 -1
  186. package/types/components/Combobox/ui/ComboboxItem/ComboboxItem.styles.d.ts +1 -5
  187. package/types/components/Combobox/ui/ComboboxItem/ComboboxItem.styles.d.ts.map +1 -1
  188. package/types/components/Combobox/ui/ComboboxItem/ComboboxItem.type.d.ts +2 -59
  189. package/types/components/Combobox/ui/ComboboxItem/ComboboxItem.type.d.ts.map +1 -1
  190. package/types/components/Dropdown/Dropdown.d.ts +4 -4
  191. package/types/components/Dropdown/Dropdown.d.ts.map +1 -1
  192. package/types/components/Dropdown/Dropdown.styles.d.ts +1 -8
  193. package/types/components/Dropdown/Dropdown.styles.d.ts.map +1 -1
  194. package/types/components/Dropdown/Dropdown.tokens.d.ts +22 -24
  195. package/types/components/Dropdown/Dropdown.tokens.d.ts.map +1 -1
  196. package/types/components/Dropdown/Dropdown.types.d.ts +40 -64
  197. package/types/components/Dropdown/Dropdown.types.d.ts.map +1 -1
  198. package/types/components/Dropdown/index.d.ts +1 -3
  199. package/types/components/Dropdown/index.d.ts.map +1 -1
  200. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.d.ts +56 -2
  201. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.d.ts.map +1 -1
  202. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.styles.d.ts +2 -5
  203. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.styles.d.ts.map +1 -1
  204. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.type.d.ts +38 -44
  205. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.type.d.ts.map +1 -1
  206. package/types/components/Dropdown/ui/DropdownItem/variations/_size/base.d.ts.map +1 -0
  207. package/types/components/Dropdown/ui/DropdownItem/variations/_view/base.d.ts.map +1 -0
  208. package/types/components/Dropdown/ui/index.d.ts +1 -3
  209. package/types/components/Dropdown/ui/index.d.ts.map +1 -1
  210. package/types/components/Dropdown/utils/index.d.ts +2 -5
  211. package/types/components/Dropdown/utils/index.d.ts.map +1 -1
  212. package/types/components/Select/ui/SelectItem/SelectItem.d.ts +2 -2
  213. package/types/components/Select/ui/SelectItem/SelectItem.d.ts.map +1 -1
  214. package/types/components/Select/ui/SelectItem/SelectItem.type.d.ts +2 -2
  215. package/types/components/Select/utils/index.d.ts +1 -1
  216. package/types/components/_Icon/Icon.assets/DisclosureRight.d.ts.map +1 -1
  217. package/types/examples/plasma_b2c/components/Dropdown/Normal/Dropdown.config.d.ts.map +1 -0
  218. package/types/examples/plasma_b2c/components/Dropdown/Normal/Dropdown.d.ts +30 -0
  219. package/types/examples/plasma_b2c/components/Dropdown/Normal/Dropdown.d.ts.map +1 -0
  220. package/types/examples/plasma_b2c/components/Dropdown/Tight/Dropdown.config.d.ts +18 -0
  221. package/types/examples/plasma_b2c/components/Dropdown/Tight/Dropdown.config.d.ts.map +1 -0
  222. package/types/examples/plasma_b2c/components/Dropdown/Tight/Dropdown.d.ts +30 -0
  223. package/types/examples/plasma_b2c/components/Dropdown/Tight/Dropdown.d.ts.map +1 -0
  224. package/types/examples/plasma_web/components/Dropdown/Normal/Dropdown.config.d.ts +18 -0
  225. package/types/examples/plasma_web/components/Dropdown/Normal/Dropdown.config.d.ts.map +1 -0
  226. package/types/examples/plasma_web/components/Dropdown/Normal/Dropdown.d.ts +30 -0
  227. package/types/examples/plasma_web/components/Dropdown/Normal/Dropdown.d.ts.map +1 -0
  228. package/types/examples/plasma_web/components/Dropdown/Tight/Dropdown.config.d.ts +18 -0
  229. package/types/examples/plasma_web/components/Dropdown/Tight/Dropdown.config.d.ts.map +1 -0
  230. package/types/examples/plasma_web/components/Dropdown/Tight/Dropdown.d.ts +30 -0
  231. package/types/examples/plasma_web/components/Dropdown/Tight/Dropdown.d.ts.map +1 -0
  232. package/types/examples/sds_engineer/components/Dropdown/Dropdown.config.d.ts +15 -0
  233. package/types/examples/sds_engineer/components/Dropdown/Dropdown.config.d.ts.map +1 -0
  234. package/types/examples/sds_engineer/components/Dropdown/Dropdown.d.ts +51 -0
  235. package/types/examples/sds_engineer/components/Dropdown/Dropdown.d.ts.map +1 -0
  236. package/cjs/components/Combobox/ui/ComboboxItem/ComboboxItem.styles_s4sk53.css +0 -4
  237. package/cjs/components/Combobox/utils/index.js +0 -23
  238. package/cjs/components/Combobox/utils/index.js.map +0 -1
  239. package/cjs/components/Dropdown/Dropdown.styles_1tihqkp.css +0 -3
  240. package/cjs/components/Dropdown/hooks/useHashMaps.js +0 -31
  241. package/cjs/components/Dropdown/hooks/useHashMaps.js.map +0 -1
  242. package/cjs/components/Dropdown/hooks/useKeyboardNavigation.js +0 -200
  243. package/cjs/components/Dropdown/hooks/useKeyboardNavigation.js.map +0 -1
  244. package/cjs/components/Dropdown/reducers/focusedPathReducer.js +0 -37
  245. package/cjs/components/Dropdown/reducers/focusedPathReducer.js.map +0 -1
  246. package/cjs/components/Dropdown/reducers/pathReducer.js +0 -41
  247. package/cjs/components/Dropdown/reducers/pathReducer.js.map +0 -1
  248. package/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +0 -119
  249. package/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js.map +0 -1
  250. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.styles_1o4szyu.css +0 -5
  251. package/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItem.styles.js +0 -30
  252. package/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItem.styles.js.map +0 -1
  253. package/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItem.styles_12e50g5.css +0 -4
  254. package/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.css +0 -4
  255. package/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +0 -112
  256. package/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js.map +0 -1
  257. package/cjs/components/Dropdown/ui/DropdownItemOld/variations/_size/base.js.map +0 -1
  258. package/cjs/components/Dropdown/ui/DropdownItemOld/variations/_view/base.js.map +0 -1
  259. package/es/components/Combobox/ui/ComboboxItem/ComboboxItem.styles_s4sk53.css +0 -4
  260. package/es/components/Combobox/utils/index.js +0 -19
  261. package/es/components/Combobox/utils/index.js.map +0 -1
  262. package/es/components/Dropdown/Dropdown.styles_1tihqkp.css +0 -3
  263. package/es/components/Dropdown/hooks/useHashMaps.js +0 -27
  264. package/es/components/Dropdown/hooks/useHashMaps.js.map +0 -1
  265. package/es/components/Dropdown/hooks/useKeyboardNavigation.js +0 -196
  266. package/es/components/Dropdown/hooks/useKeyboardNavigation.js.map +0 -1
  267. package/es/components/Dropdown/reducers/focusedPathReducer.js +0 -33
  268. package/es/components/Dropdown/reducers/focusedPathReducer.js.map +0 -1
  269. package/es/components/Dropdown/reducers/pathReducer.js +0 -37
  270. package/es/components/Dropdown/reducers/pathReducer.js.map +0 -1
  271. package/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +0 -115
  272. package/es/components/Dropdown/ui/DropdownInner/DropdownInner.js.map +0 -1
  273. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.styles_1o4szyu.css +0 -5
  274. package/es/components/Dropdown/ui/DropdownItemOld/DropdownItem.styles.js +0 -23
  275. package/es/components/Dropdown/ui/DropdownItemOld/DropdownItem.styles.js.map +0 -1
  276. package/es/components/Dropdown/ui/DropdownItemOld/DropdownItem.styles_12e50g5.css +0 -4
  277. package/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.css +0 -4
  278. package/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +0 -107
  279. package/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js.map +0 -1
  280. package/es/components/Dropdown/ui/DropdownItemOld/variations/_size/base.js.map +0 -1
  281. package/es/components/Dropdown/ui/DropdownItemOld/variations/_view/base.js.map +0 -1
  282. package/styled-components/cjs/components/Combobox/utils/index.js +0 -23
  283. package/styled-components/cjs/components/Dropdown/hooks/useHashMaps.js +0 -29
  284. package/styled-components/cjs/components/Dropdown/hooks/useKeyboardNavigation.js +0 -199
  285. package/styled-components/cjs/components/Dropdown/reducers/focusedPathReducer.js +0 -40
  286. package/styled-components/cjs/components/Dropdown/reducers/pathReducer.js +0 -44
  287. package/styled-components/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +0 -114
  288. package/styled-components/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.type.js +0 -5
  289. package/styled-components/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItem.styles.js +0 -33
  290. package/styled-components/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItem.type.js +0 -5
  291. package/styled-components/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +0 -119
  292. package/styled-components/cjs/examples/plasma_b2c/components/Dropdown/Dropdown.config.js +0 -25
  293. package/styled-components/cjs/examples/plasma_b2c/components/Dropdown/Dropdown.js +0 -11
  294. package/styled-components/cjs/examples/plasma_b2c/components/Dropdown/Dropdown.stories.tsx +0 -292
  295. package/styled-components/es/components/Combobox/utils/index.js +0 -15
  296. package/styled-components/es/components/Dropdown/hooks/useHashMaps.js +0 -23
  297. package/styled-components/es/components/Dropdown/hooks/useKeyboardNavigation.js +0 -193
  298. package/styled-components/es/components/Dropdown/reducers/focusedPathReducer.js +0 -34
  299. package/styled-components/es/components/Dropdown/reducers/pathReducer.js +0 -38
  300. package/styled-components/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +0 -108
  301. package/styled-components/es/components/Dropdown/ui/DropdownInner/DropdownInner.type.js +0 -1
  302. package/styled-components/es/components/Dropdown/ui/DropdownItemOld/DropdownItem.styles.js +0 -25
  303. package/styled-components/es/components/Dropdown/ui/DropdownItemOld/DropdownItem.type.js +0 -1
  304. package/styled-components/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +0 -111
  305. package/styled-components/es/examples/plasma_b2c/components/Dropdown/Dropdown.config.js +0 -19
  306. package/styled-components/es/examples/plasma_b2c/components/Dropdown/Dropdown.js +0 -5
  307. package/styled-components/es/examples/plasma_b2c/components/Dropdown/Dropdown.stories.tsx +0 -292
  308. package/types/components/Combobox/utils/index.d.ts +0 -4
  309. package/types/components/Combobox/utils/index.d.ts.map +0 -1
  310. package/types/components/Dropdown/hooks/useHashMaps.d.ts +0 -6
  311. package/types/components/Dropdown/hooks/useHashMaps.d.ts.map +0 -1
  312. package/types/components/Dropdown/hooks/useKeyboardNavigation.d.ts +0 -23
  313. package/types/components/Dropdown/hooks/useKeyboardNavigation.d.ts.map +0 -1
  314. package/types/components/Dropdown/reducers/focusedPathReducer.d.ts +0 -16
  315. package/types/components/Dropdown/reducers/focusedPathReducer.d.ts.map +0 -1
  316. package/types/components/Dropdown/reducers/pathReducer.d.ts +0 -20
  317. package/types/components/Dropdown/reducers/pathReducer.d.ts.map +0 -1
  318. package/types/components/Dropdown/ui/DropdownInner/DropdownInner.d.ts +0 -5
  319. package/types/components/Dropdown/ui/DropdownInner/DropdownInner.d.ts.map +0 -1
  320. package/types/components/Dropdown/ui/DropdownInner/DropdownInner.type.d.ts +0 -26
  321. package/types/components/Dropdown/ui/DropdownInner/DropdownInner.type.d.ts.map +0 -1
  322. package/types/components/Dropdown/ui/DropdownItemOld/DropdownItem.styles.d.ts +0 -7
  323. package/types/components/Dropdown/ui/DropdownItemOld/DropdownItem.styles.d.ts.map +0 -1
  324. package/types/components/Dropdown/ui/DropdownItemOld/DropdownItem.type.d.ts +0 -60
  325. package/types/components/Dropdown/ui/DropdownItemOld/DropdownItem.type.d.ts.map +0 -1
  326. package/types/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.d.ts +0 -58
  327. package/types/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.d.ts.map +0 -1
  328. package/types/components/Dropdown/ui/DropdownItemOld/variations/_size/base.d.ts.map +0 -1
  329. package/types/components/Dropdown/ui/DropdownItemOld/variations/_view/base.d.ts.map +0 -1
  330. package/types/examples/plasma_b2c/components/Dropdown/Dropdown.config.d.ts.map +0 -1
  331. package/types/examples/plasma_b2c/components/Dropdown/Dropdown.d.ts +0 -13
  332. package/types/examples/plasma_b2c/components/Dropdown/Dropdown.d.ts.map +0 -1
  333. /package/cjs/components/Dropdown/ui/{DropdownItemOld → DropdownItem}/variations/_size/base_x642ct.css +0 -0
  334. /package/cjs/components/Dropdown/ui/{DropdownItemOld → DropdownItem}/variations/_view/base_x642ct.css +0 -0
  335. /package/es/components/Dropdown/ui/{DropdownItemOld → DropdownItem}/variations/_size/base_x642ct.css +0 -0
  336. /package/es/components/Dropdown/ui/{DropdownItemOld → DropdownItem}/variations/_view/base_x642ct.css +0 -0
  337. /package/styled-components/cjs/components/Dropdown/ui/{DropdownItemOld → DropdownItem}/variations/_size/base.js +0 -0
  338. /package/styled-components/cjs/components/Dropdown/ui/{DropdownItemOld → DropdownItem}/variations/_view/base.js +0 -0
  339. /package/styled-components/es/components/Dropdown/ui/{DropdownItemOld → DropdownItem}/variations/_size/base.js +0 -0
  340. /package/styled-components/es/components/Dropdown/ui/{DropdownItemOld → DropdownItem}/variations/_view/base.js +0 -0
  341. /package/types/components/Dropdown/ui/{DropdownItemOld → DropdownItem}/variations/_size/base.d.ts +0 -0
  342. /package/types/components/Dropdown/ui/{DropdownItemOld → DropdownItem}/variations/_view/base.d.ts +0 -0
  343. /package/types/examples/plasma_b2c/components/Dropdown/{Dropdown.config.d.ts → Normal/Dropdown.config.d.ts} +0 -0
@@ -0,0 +1,277 @@
1
+ import React, { useRef, useState } from 'react';
2
+ import type { ComponentProps } from 'react';
3
+ import type { Meta, StoryObj } from '@storybook/react';
4
+ import styled from 'styled-components';
5
+ import { css } from 'styled-components';
6
+ import { action } from '@storybook/addon-actions';
7
+
8
+ import { WithTheme, argTypesFromConfig } from '../../../_helpers';
9
+ import { mergeConfig } from '../../../../engines';
10
+ import { dropdownConfig } from '../../../../components/Dropdown';
11
+ import { Checkbox } from '../Checkbox/Checkbox';
12
+ import { Radiobox } from '../Radiobox/Radiobox';
13
+ import { Button } from '../Button/Button';
14
+
15
+ import { Dropdown, DropdownDivider, DropdownFooter, DropdownGroup, DropdownHeader, DropdownItem } from './Dropdown';
16
+ import { config } from './Dropdown.config';
17
+
18
+ type StoryDropdownPropsCustom = {
19
+ skidding?: number;
20
+ distance?: number;
21
+ };
22
+
23
+ type StoryDropdownProps = ComponentProps<typeof Dropdown> & StoryDropdownPropsCustom;
24
+
25
+ const placements: Array<string> = ['top', 'bottom', 'right', 'left', 'auto'];
26
+ const triggers: Array<string> = ['click', 'hover'];
27
+
28
+ const meta: Meta<StoryDropdownProps> = {
29
+ title: 'sds_engineer/Dropdown',
30
+ decorators: [WithTheme],
31
+ component: Dropdown,
32
+ argTypes: {
33
+ placement: {
34
+ options: placements,
35
+ control: {
36
+ type: 'select',
37
+ },
38
+ },
39
+ trigger: {
40
+ options: triggers,
41
+ control: {
42
+ type: 'select',
43
+ },
44
+ },
45
+ ...argTypesFromConfig(mergeConfig(dropdownConfig, config)),
46
+ },
47
+ args: {
48
+ placement: 'bottom',
49
+ trigger: 'click',
50
+ closeOnOverlayClick: true,
51
+ closeOnEsc: true,
52
+ isFocusTrapped: true,
53
+ skidding: 0,
54
+ distance: 6,
55
+ },
56
+ };
57
+
58
+ export default meta;
59
+
60
+ const StyledCheckbox = styled(Checkbox)`
61
+ margin-left: 0rem;
62
+ margin-bottom: 0rem;
63
+ `;
64
+
65
+ const StyledRadiobox = styled(Radiobox)`
66
+ margin-left: 0rem;
67
+ margin-bottom: 0rem;
68
+ `;
69
+
70
+ const headerClass = css`
71
+ text-transform: uppercase;
72
+ color: rgba(23, 23, 23, 0.56);
73
+ `;
74
+
75
+ const TrashIcon = (props) => (
76
+ <svg width="100%" viewBox="0 0 24 24" fill="none" {...props}>
77
+ <path
78
+ fillRule="evenodd"
79
+ clipRule="evenodd"
80
+ d="M8 5.5A2.5 2.5 0 0110.5 3h3A2.5 2.5 0 0116 5.5V6h-2v-.5a.5.5 0 00-.5-.5h-3a.5.5 0 00-.5.5V6H8v-.5zM4 8a1 1 0 011-1h14a1 1 0 110 2h-1v9.5a2.5 2.5 0 01-2.5 2.5h-7A2.5 2.5 0 016 18.5V9H5a1 1 0 01-1-1z"
81
+ fill="currentColor"
82
+ />
83
+ </svg>
84
+ );
85
+
86
+ const StyledTrashIcon = styled(TrashIcon)`
87
+ width: 1.25rem;
88
+ height: 1.25rem;
89
+ `;
90
+
91
+ const onChange = action('onChange');
92
+ const onSelect = action('onSelect');
93
+ const onClick = action('onClick');
94
+
95
+ const dropdownItems = [...Array(4).keys()].map((num) => ({
96
+ value: `item_${num}`,
97
+ child: `Item ${num}`,
98
+ }));
99
+
100
+ const StoryDefault = (args: StoryDropdownProps) => {
101
+ const [selected, setSelected] = useState('');
102
+ const [isOpen, setIsOpen] = useState(false);
103
+ const [isOpenDropdown2, setIsOpenDropdown2] = useState(false);
104
+
105
+ const onMainClose = () => {
106
+ setIsOpen(false);
107
+ setIsOpenDropdown2(false);
108
+ };
109
+
110
+ const onMainToggle = (openValue: boolean) => {
111
+ setIsOpen(openValue);
112
+
113
+ if (!openValue) {
114
+ onMainClose();
115
+ }
116
+ };
117
+
118
+ const handleSelect = (value: string, text: string) => {
119
+ setSelected(value);
120
+ onSelect(value, text);
121
+ };
122
+
123
+ return (
124
+ <div>
125
+ <h3>This is header</h3>
126
+ <Dropdown target={<Button>Target</Button>} isOpen={isOpen} onToggle={onMainToggle} {...args}>
127
+ <DropdownHeader className={headerClass}>Header</DropdownHeader>
128
+ <DropdownDivider />
129
+ {dropdownItems.map((item) => (
130
+ <DropdownItem
131
+ key={item.value}
132
+ isSelected={item.value === selected}
133
+ onSelect={() => handleSelect(item.value, item.child)}
134
+ onClick={onClick}
135
+ value={item.value}
136
+ >
137
+ {item.child}
138
+ </DropdownItem>
139
+ ))}
140
+ <Dropdown
141
+ target={<DropdownItem>Nested dropdown ➞</DropdownItem>}
142
+ onToggle={(is) => setIsOpenDropdown2(is)}
143
+ isOpen={isOpenDropdown2}
144
+ offset={[0, 0]}
145
+ >
146
+ <DropdownGroup label="This is radiogroup">
147
+ <DropdownItem
148
+ contentLeft={StyledRadiobox}
149
+ name="test"
150
+ value="1"
151
+ onChange={onChange}
152
+ text="Nested 1"
153
+ />
154
+
155
+ <DropdownItem
156
+ contentLeft={StyledRadiobox}
157
+ name="test"
158
+ value="2"
159
+ onChange={onChange}
160
+ text="Nested 2"
161
+ />
162
+ <DropdownItem
163
+ contentLeft={StyledRadiobox}
164
+ name="test"
165
+ value="3"
166
+ onChange={onChange}
167
+ text="Nested 3"
168
+ />
169
+ </DropdownGroup>
170
+ <DropdownItem contentLeft={StyledCheckbox} text="Nested 4" />
171
+ <DropdownItem contentRight={StyledCheckbox} text="Nested 5" />
172
+
173
+ <DropdownItem contentLeft={StyledTrashIcon} text="Nested 6" />
174
+ <Button onClick={() => setIsOpenDropdown2(false)}>Close nested</Button>
175
+ </Dropdown>
176
+
177
+ <DropdownItem onClick={onClick} value="disabled" disabled>
178
+ disabled
179
+ </DropdownItem>
180
+
181
+ <DropdownGroup label="Group">
182
+ <DropdownItem
183
+ contentLeft={StyledRadiobox}
184
+ name="test"
185
+ value="1"
186
+ disabled
187
+ onChange={onChange}
188
+ text="Disabled 1"
189
+ />
190
+
191
+ <DropdownItem name="test" value="2" disabled text="Disabled group 2" />
192
+ </DropdownGroup>
193
+
194
+ <DropdownDivider />
195
+ <DropdownFooter className={headerClass}>Footer</DropdownFooter>
196
+ </Dropdown>
197
+ </div>
198
+ );
199
+ };
200
+
201
+ export const Default: StoryObj<StoryDropdownProps> = {
202
+ render: (args) => <StoryDefault {...args} />,
203
+ };
204
+
205
+ const StoryContextMenu = (args: StoryDropdownProps) => {
206
+ const [contextPosition, setContextPosition] = useState([0, 0]);
207
+ const dropdownRef = useRef<HTMLDivElement | null>(null);
208
+ const [selected, setSelected] = useState('');
209
+ const [isOpen, setIsOpen] = useState(false);
210
+
211
+ const onMainToggle = (openValue: boolean) => {
212
+ setIsOpen(openValue);
213
+ };
214
+
215
+ const handleSelect = (value: string, text: string) => {
216
+ setSelected(value);
217
+ onSelect(value, text);
218
+ setIsOpen(false);
219
+ };
220
+
221
+ const onClickAway = (event: React.MouseEvent<HTMLDivElement>) => {
222
+ event.preventDefault();
223
+ if (dropdownRef?.current && !dropdownRef.current?.contains(event.target as Element)) {
224
+ setIsOpen(false);
225
+ }
226
+ };
227
+
228
+ const onContextMenu = (event: React.MouseEvent<HTMLDivElement>) => {
229
+ event.preventDefault();
230
+
231
+ const { clientX, clientY } = event;
232
+
233
+ setContextPosition([clientX, clientY]);
234
+ setIsOpen(true);
235
+ };
236
+
237
+ return (
238
+ <div
239
+ style={{
240
+ width: '100%',
241
+ height: '100%',
242
+ background: 'gainsboro',
243
+ }}
244
+ onClick={onClickAway}
245
+ onContextMenu={onContextMenu}
246
+ >
247
+ <div>Right-click the mouse button - to open</div>
248
+ <div>Left-click the mouse button - to close</div>
249
+ <div
250
+ ref={dropdownRef}
251
+ style={{ position: 'absolute', top: `${contextPosition[1]}px`, left: `${contextPosition[0]}px` }}
252
+ >
253
+ <Dropdown isOpen={isOpen} onToggle={onMainToggle} {...args}>
254
+ <DropdownHeader className={headerClass}>Header</DropdownHeader>
255
+ <DropdownDivider />
256
+ {dropdownItems.map((item) => (
257
+ <DropdownItem
258
+ key={item.value}
259
+ isSelected={item.value === selected}
260
+ onSelect={() => handleSelect(item.value, item.child)}
261
+ onClick={onClick}
262
+ value={item.value}
263
+ >
264
+ {item.child}
265
+ </DropdownItem>
266
+ ))}
267
+ <DropdownDivider />
268
+ <DropdownFooter className={headerClass}>Footer</DropdownFooter>
269
+ </Dropdown>
270
+ </div>
271
+ </div>
272
+ );
273
+ };
274
+
275
+ export const ContextMenu: StoryObj<StoryDropdownProps> = {
276
+ render: (args) => <StoryContextMenu {...args} />,
277
+ };
@@ -1,95 +1,8 @@
1
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
- var _excluded = ["id", "className", "children", "text", "isSelected", "name", "checked", "value", "view", "size", "disabled", "role", "contentLeft", "contentRight", "onSelect", "onClick", "onChange"];
3
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
4
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
6
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
7
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
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
- 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
- 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 } from 'react';
12
- import { safeUseId } from '@salutejs/plasma-core';
13
- import { classes } from '../../Combobox.tokens';
14
- import { getValidComponent } from '../../utils';
15
- import { cx } from '../../../../utils';
1
+ import { dropdownItemRoot } from '../../../Dropdown';
16
2
  import { base as viewCSS } from './variations/_view/base';
17
3
  import { base as sizeCSS } from './variations/_size/base';
18
- import { StyledContentLeft, StyledContentRight, StyledText, base } from './ComboboxItem.styles';
19
- export var comboboxItemRoot = function comboboxItemRoot(Root) {
20
- return /*#__PURE__*/forwardRef(function (_ref, outerRootRef) {
21
- var id = _ref.id,
22
- className = _ref.className,
23
- children = _ref.children,
24
- text = _ref.text,
25
- isSelected = _ref.isSelected,
26
- name = _ref.name,
27
- checked = _ref.checked,
28
- value = _ref.value,
29
- view = _ref.view,
30
- size = _ref.size,
31
- disabled = _ref.disabled,
32
- _ref$role = _ref.role,
33
- role = _ref$role === void 0 ? 'option' : _ref$role,
34
- ContentLeftComponent = _ref.contentLeft,
35
- ContentRightComponent = _ref.contentRight,
36
- onSelect = _ref.onSelect,
37
- onClick = _ref.onClick,
38
- onChange = _ref.onChange,
39
- rest = _objectWithoutProperties(_ref, _excluded);
40
- var uniqId = safeUseId();
41
- var innerId = id || uniqId;
42
- var withComboboxItemIsSelected = checked || isSelected ? classes.comboboxItemIsDisabled : undefined;
43
- var withComboboxItemIsDisabled = disabled ? classes.comboboxItemIsDisabled : undefined;
44
- var handleOnClick = useCallback(function (event) {
45
- if (disabled) {
46
- return;
47
- }
48
- onClick === null || onClick === void 0 || onClick(event);
49
- if (onSelect && !ContentLeftComponent) {
50
- onSelect(value, text);
51
- }
52
- }, [onSelect, disabled]);
53
- var handleOnChange = useCallback(function (event) {
54
- if (disabled) {
55
- return;
56
- }
57
- onChange === null || onChange === void 0 || onChange(event);
58
- if (onSelect && ContentLeftComponent) {
59
- onSelect(value, text);
60
- }
61
- }, [onSelect, disabled]);
62
- var contentProps = _objectSpread({
63
- name: name,
64
- value: value,
65
- checked: checked || isSelected,
66
- disabled: disabled,
67
- tabIndex: -1
68
- }, !disabled && {
69
- onChange: handleOnChange
70
- });
71
- var ContentLeft = useMemo(function () {
72
- return getValidComponent(ContentLeftComponent, contentProps);
73
- }, [ContentRightComponent, contentProps]);
74
- var ContentRight = useMemo(function () {
75
- return getValidComponent(ContentRightComponent, contentProps);
76
- }, [ContentRightComponent, contentProps]);
77
- return /*#__PURE__*/React.createElement(Root, _extends({
78
- className: cx(withComboboxItemIsSelected, withComboboxItemIsDisabled, className),
79
- view: view,
80
- size: size,
81
- id: innerId,
82
- isSelected: isSelected,
83
- role: role,
84
- ref: outerRootRef,
85
- tabIndex: 0,
86
- "aria-disabled": disabled,
87
- "aria-selected": isSelected,
88
- onClick: handleOnClick,
89
- "data-value": value
90
- }, rest), text ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(StyledContentLeft, null, ContentLeftComponent && ContentLeft), /*#__PURE__*/React.createElement(StyledText, null, text), /*#__PURE__*/React.createElement(StyledContentRight, null, ContentRightComponent && ContentRight)) : children);
91
- });
92
- };
4
+ import { base } from './ComboboxItem.styles';
5
+ export var comboboxItemRoot = dropdownItemRoot;
93
6
  export var comboboxItemConfig = {
94
7
  name: 'ComboboxItem',
95
8
  tag: 'div',
@@ -1,25 +1,8 @@
1
- var _templateObject;
2
- function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
3
1
  import { css } from 'styled-components';
4
- import styled from 'styled-components';
5
- import { classes, tokens } from '../../Combobox.tokens';
6
- import { addFocus, applyEllipsis } from '../../../../mixins';
7
- export var StyledContentLeft = /*#__PURE__*/styled.div.withConfig({
8
- componentId: "plasma-new-hope__sc-i4bkda-0"
9
- })(["display:inline-flex;min-width:var(", ");color:var(", ");"], tokens.itemContentLeftWidth, tokens.itemContentLeftColor);
10
- export var StyledContentRight = /*#__PURE__*/styled.div.withConfig({
11
- componentId: "plasma-new-hope__sc-i4bkda-1"
12
- })(["margin-left:auto;display:inline-flex;min-width:var(", ");color:var(", ");"], tokens.itemContentRightWidth, tokens.itemContentRightColor);
13
- export var StyledText = /*#__PURE__*/styled.div.withConfig({
14
- componentId: "plasma-new-hope__sc-i4bkda-2"
15
- })(["", ";"], /*#__PURE__*/applyEllipsis());
2
+ import { tokens } from '../../Combobox.tokens';
3
+ import { dropdownTokens } from '../../../Dropdown';
4
+ import { baseContent as dropdownItemBase } from '../../../Dropdown/ui/DropdownItem/DropdownItem.styles';
16
5
 
17
- // INFO: Для возможности переиспользования стилей в других компонентах
18
- export var baseContent = /*#__PURE__*/"\n box-sizing: content-box;\n display: flex;\n align-items: center;\n user-select: none;\n\n :focus {\n outline: none;\n }\n\n ".concat(addFocus({
19
- outlineSize: '0.0625rem',
20
- outlineOffset: '0',
21
- outlineColor: "var(".concat(tokens.focusColor, ")"),
22
- outlineRadius: "var(".concat(tokens.itemBorderRadius, ")"),
23
- hasTransition: false
24
- }), ";\n\n width: 100%;\n\n font-family: var(").concat(tokens.itemFontFamily, ");\n font-size: var(").concat(tokens.itemFontSize, ");\n font-style: var(").concat(tokens.itemFontStyle, ");\n font-weight: var(").concat(tokens.itemFontWeightBold, ");\n letter-spacing: var(").concat(tokens.itemFontLetterSpacing, ");\n line-height: var(").concat(tokens.itemFontLineHeight, ");\n\n background: var(").concat(tokens.itemBackground, ");\n color: var(").concat(tokens.itemColor, ");\n border-radius: var(").concat(tokens.itemBorderRadius, ");\n\n width: var(").concat(tokens.itemWidth, ");\n height: var(").concat(tokens.itemHeight, ");\n\n padding: var(").concat(tokens.itemPaddingTop, ") var(").concat(tokens.itemPaddingRight, ") var(").concat(tokens.itemPaddingBottom, ")\n var(").concat(tokens.itemPaddingLeft, ");\n\n margin: var(").concat(tokens.itemMarginTop, ") var(").concat(tokens.itemMarginRight, ") var(").concat(tokens.itemMarginBottom, ")\n var(").concat(tokens.itemMarginLeft, ");\n\n &:hover:not(.").concat(classes.comboboxItemIsDisabled, ") {\n cursor: pointer;\n background: var(").concat(tokens.itemBackgroundHover, ");\n }\n\n &.").concat(String(classes.comboboxItemIsSelected), " {\n color: var(").concat(tokens.itemColorSelected, ");\n background: var(").concat(tokens.itemBackgroundSelected, ");\n\n &:hover:not(.").concat(classes.comboboxItemIsDisabled, ") {\n background: var(").concat(tokens.itemBackgroundSelectedHover, ");\n }\n }\n\n &.").concat(classes.comboboxItemIsDisabled, " {\n opacity: var(").concat(tokens.disabledOpacity, ");\n cursor: not-allowed;\n }\n");
25
- export var base = /*#__PURE__*/css(_templateObject || (_templateObject = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ";\n"])), baseContent);
6
+ // NOTE: Необходимое переопределение токенов из компонента DropdownItem т.к. используются его части
7
+ export var mappingOverride = /*#__PURE__*/"\n ".concat(dropdownTokens.itemBackground, ": var(").concat(tokens.itemBackground, ");\n ").concat(dropdownTokens.itemColor, ": var(").concat(tokens.itemColor, ");\n ").concat(dropdownTokens.itemBackgroundHover, ": var(").concat(tokens.itemBackgroundHover, ");\n ").concat(dropdownTokens.itemBackgroundSelected, ": var(").concat(tokens.itemBackgroundSelected, ");\n ").concat(dropdownTokens.itemColorSelected, ": var(").concat(tokens.itemColorSelected, ");\n ").concat(dropdownTokens.itemBackgroundSelectedHover, ": var(").concat(tokens.itemBackgroundSelectedHover, ");\n ").concat(dropdownTokens.itemColorSelectedHover, ": var(").concat(tokens.itemColorSelectedHover, ");\n ").concat(dropdownTokens.itemContentLeftColor, ": var(").concat(tokens.itemContentLeftColor, ");\n ").concat(dropdownTokens.itemContentRightColor, ": var(").concat(tokens.itemContentRightColor, ");\n ").concat(dropdownTokens.disabledOpacity, ": var(").concat(tokens.disabledOpacity, ");\n ").concat(dropdownTokens.focusColor, ": var(").concat(tokens.focusColor, ");\n ").concat(dropdownTokens.itemWidth, ": var(").concat(tokens.itemWidth, ");\n ").concat(dropdownTokens.itemHeight, ": var(").concat(tokens.itemHeight, ");\n ").concat(dropdownTokens.itemBorderRadius, ": var(").concat(tokens.itemBorderRadius, ");\n ").concat(dropdownTokens.itemPaddingTop, ": var(").concat(tokens.itemPaddingTop, ");\n ").concat(dropdownTokens.itemPaddingRight, ": var(").concat(tokens.itemPaddingRight, ");\n ").concat(dropdownTokens.itemPaddingBottom, ": var(").concat(tokens.itemPaddingBottom, ");\n ").concat(dropdownTokens.itemPaddingLeft, ": var(").concat(tokens.itemPaddingLeft, ");\n ").concat(dropdownTokens.itemMarginTop, ": var(").concat(tokens.itemMarginTop, ");\n ").concat(dropdownTokens.itemMarginRight, ": var(").concat(tokens.itemMarginRight, ");\n ").concat(dropdownTokens.itemMarginBottom, ": var(").concat(tokens.itemMarginBottom, ");\n ").concat(dropdownTokens.itemMarginLeft, ": var(").concat(tokens.itemMarginLeft, ");\n ").concat(dropdownTokens.itemFontFamily, ": var(").concat(tokens.itemFontFamily, ");\n ").concat(dropdownTokens.itemFontSize, ": var(").concat(tokens.itemFontSize, ");\n ").concat(dropdownTokens.itemFontStyle, ": var(").concat(tokens.itemFontStyle, ");\n ").concat(dropdownTokens.itemFontWeightBold, ": var(").concat(tokens.itemFontWeightBold, ");\n ").concat(dropdownTokens.itemFontLetterSpacing, ": var(").concat(tokens.itemFontLetterSpacing, ");\n ").concat(dropdownTokens.itemFontLineHeight, ": var(").concat(tokens.itemFontLineHeight, ");\n ").concat(dropdownTokens.itemContentLeftWidth, ": var(").concat(tokens.itemContentLeftWidth, ");\n ").concat(dropdownTokens.itemContentRightWidth, ": var(").concat(tokens.itemContentRightWidth, ");\n");
8
+ export var base = /*#__PURE__*/css(["", ";", ";"], dropdownItemBase, mappingOverride);
@@ -1,169 +1,82 @@
1
- var _excluded = ["items", "children", "placement", "offset", "closeOnOverlayClick", "onToggle", "size", "view", "itemRole", "className", "listWidth", "listHeight", "listOverflow", "closeOnSelect", "onHover", "onItemSelect", "onItemClick", "trigger", "variant", "hasArrow"];
1
+ var _excluded = ["id", "target", "children", "hasArrow", "role", "view", "size", "frame", "onToggle", "isFocusTrapped", "isOpen", "placement", "trigger", "offset", "preventOverflow", "closeOnOverlayClick", "closeOnEsc"];
2
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 _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
4
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
5
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
6
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
7
- function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
8
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
9
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; }
10
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; }
11
- import React, { forwardRef, useReducer } from 'react';
12
- import { cx } from '../../utils';
13
- import { pathReducer } from './reducers/pathReducer';
14
- import { focusedPathReducer } from './reducers/focusedPathReducer';
15
- import { DropdownInner } from './ui';
5
+ import React, { forwardRef, useRef } from 'react';
6
+ import { useFocusTrap, useForkRef, useUniqId } from '@salutejs/plasma-core';
16
7
  import { base as viewCSS } from './variations/_view/base';
17
8
  import { base as sizeCSS } from './variations/_size/base';
18
- import { Ul, StyledPopover, base } from './Dropdown.styles';
19
- import { getPlacements, childrenWithProps } from './utils';
20
- import { classes } from './Dropdown.tokens';
21
- import { useKeyNavigation } from './hooks/useKeyboardNavigation';
22
- import { useHashMaps } from './hooks/useHashMaps';
23
-
9
+ import { StyledDropdown, StyledPopover } from './Dropdown.styles';
10
+ import { getPlacements } from './utils';
24
11
  /**
25
- * Выпадающий список.
12
+ * Выпадающий список без внешнего контроля видимости.
26
13
  */
27
14
  export var dropdownRoot = function dropdownRoot(Root) {
28
- return /*#__PURE__*/forwardRef(function (_ref, ref) {
29
- var items = _ref.items,
15
+ return /*#__PURE__*/forwardRef(function (_ref, outerRootRef) {
16
+ var id = _ref.id,
17
+ target = _ref.target,
30
18
  children = _ref.children,
31
- _ref$placement = _ref.placement,
32
- placement = _ref$placement === void 0 ? 'bottom' : _ref$placement,
33
- _ref$offset = _ref.offset,
34
- offset = _ref$offset === void 0 ? [0, 0] : _ref$offset,
35
- _ref$closeOnOverlayCl = _ref.closeOnOverlayClick,
36
- closeOnOverlayClick = _ref$closeOnOverlayCl === void 0 ? true : _ref$closeOnOverlayCl,
37
- onToggle = _ref.onToggle,
38
- size = _ref.size,
19
+ hasArrow = _ref.hasArrow,
20
+ role = _ref.role,
39
21
  view = _ref.view,
40
- _ref$itemRole = _ref.itemRole,
41
- itemRole = _ref$itemRole === void 0 ? 'option' : _ref$itemRole,
42
- className = _ref.className,
43
- listWidth = _ref.listWidth,
44
- listHeight = _ref.listHeight,
45
- listOverflow = _ref.listOverflow,
46
- _ref$closeOnSelect = _ref.closeOnSelect,
47
- closeOnSelect = _ref$closeOnSelect === void 0 ? true : _ref$closeOnSelect,
48
- onHover = _ref.onHover,
49
- onItemSelect = _ref.onItemSelect,
50
- onItemClick = _ref.onItemClick,
22
+ size = _ref.size,
23
+ frame = _ref.frame,
24
+ _onToggle = _ref.onToggle,
25
+ _ref$isFocusTrapped = _ref.isFocusTrapped,
26
+ isFocusTrapped = _ref$isFocusTrapped === void 0 ? true : _ref$isFocusTrapped,
27
+ _ref$isOpen = _ref.isOpen,
28
+ isOpen = _ref$isOpen === void 0 ? false : _ref$isOpen,
29
+ _ref$placement = _ref.placement,
30
+ placement = _ref$placement === void 0 ? 'auto' : _ref$placement,
51
31
  _ref$trigger = _ref.trigger,
52
32
  trigger = _ref$trigger === void 0 ? 'click' : _ref$trigger,
53
- _ref$variant = _ref.variant,
54
- variant = _ref$variant === void 0 ? 'normal' : _ref$variant,
55
- _ref$hasArrow = _ref.hasArrow,
56
- hasArrow = _ref$hasArrow === void 0 ? true : _ref$hasArrow,
33
+ _ref$offset = _ref.offset,
34
+ offset = _ref$offset === void 0 ? [0, 6] : _ref$offset,
35
+ _ref$preventOverflow = _ref.preventOverflow,
36
+ preventOverflow = _ref$preventOverflow === void 0 ? false : _ref$preventOverflow,
37
+ _ref$closeOnOverlayCl = _ref.closeOnOverlayClick,
38
+ closeOnOverlayClick = _ref$closeOnOverlayCl === void 0 ? false : _ref$closeOnOverlayCl,
39
+ _ref$closeOnEsc = _ref.closeOnEsc,
40
+ closeOnEsc = _ref$closeOnEsc === void 0 ? false : _ref$closeOnEsc,
57
41
  rest = _objectWithoutProperties(_ref, _excluded);
58
- var _useReducer = useReducer(pathReducer, []),
59
- _useReducer2 = _slicedToArray(_useReducer, 2),
60
- path = _useReducer2[0],
61
- dispatchPath = _useReducer2[1];
62
- var _useReducer3 = useReducer(focusedPathReducer, []),
63
- _useReducer4 = _slicedToArray(_useReducer3, 2),
64
- focusedPath = _useReducer4[0],
65
- dispatchFocusedPath = _useReducer4[1];
66
- var _useHashMaps = useHashMaps(items),
67
- _useHashMaps2 = _slicedToArray(_useHashMaps, 2),
68
- pathMap = _useHashMaps2[0],
69
- focusedToValueMap = _useHashMaps2[1];
70
- var handleGlobalToggle = function handleGlobalToggle(opened, event) {
71
- if (opened) {
72
- dispatchPath({
73
- type: 'opened_first_level'
74
- });
75
- } else {
76
- dispatchFocusedPath({
77
- type: 'reset'
78
- });
79
- dispatchPath({
80
- type: 'reset'
81
- });
82
- }
83
- if (onToggle) {
84
- onToggle(opened, event);
85
- }
86
- };
87
- var _useKeyNavigation = useKeyNavigation({
88
- focusedPath: focusedPath,
89
- dispatchFocusedPath: dispatchFocusedPath,
90
- path: path,
91
- dispatchPath: dispatchPath,
92
- pathMap: pathMap,
93
- focusedToValueMap: focusedToValueMap,
94
- handleGlobalToggle: handleGlobalToggle,
95
- closeOnSelect: closeOnSelect,
96
- onItemSelect: onItemSelect,
97
- onItemClick: onItemClick
98
- }),
99
- onKeyDown = _useKeyNavigation.onKeyDown;
100
- var isCurrentListOpen = Boolean(path[0]);
101
- var getActiveDescendant = function getActiveDescendant() {
102
- var _focusedToValueMap$ge;
103
- var focusedPathAsString = focusedPath.reduce(function (acc, n) {
104
- return "".concat(acc, "/").concat(n);
105
- }, '').replace(/^(\/)/, '');
106
- return focusedToValueMap === null || focusedToValueMap === void 0 || (_focusedToValueMap$ge = focusedToValueMap.get(focusedPathAsString)) === null || _focusedToValueMap$ge === void 0 ? void 0 : _focusedToValueMap$ge.value.toString();
107
- };
108
- return /*#__PURE__*/React.createElement(Root, _extends({
109
- className: cx(className, classes.dropdownRoot),
110
- ref: ref,
111
- view: view,
112
- size: size,
113
- items: items
114
- }, rest), /*#__PURE__*/React.createElement(StyledPopover, {
115
- isOpen: isCurrentListOpen,
42
+ var uniqId = useUniqId();
43
+ var innerId = id || uniqId;
44
+ var rootRef = useRef(null);
45
+ var dropdownRef = useRef(null);
46
+ var handleRef = useForkRef(rootRef, outerRootRef);
47
+ var trapRef = useFocusTrap(isOpen && isFocusTrapped);
48
+ var dropdownForkRef = useForkRef(dropdownRef, trapRef);
49
+ return /*#__PURE__*/React.createElement(StyledPopover, {
50
+ role: role,
51
+ isOpen: isOpen,
116
52
  usePortal: false,
117
- onToggle: handleGlobalToggle,
53
+ onToggle: function onToggle(is, event) {
54
+ return _onToggle === null || _onToggle === void 0 ? void 0 : _onToggle(is, event);
55
+ },
56
+ id: innerId,
57
+ ref: dropdownForkRef,
58
+ target: target,
118
59
  offset: offset,
60
+ preventOverflow: preventOverflow,
61
+ hasArrow: hasArrow,
119
62
  placement: getPlacements(placement),
120
63
  trigger: trigger,
121
64
  closeOnOverlayClick: closeOnOverlayClick,
122
- isFocusTrapped: false,
123
- target: childrenWithProps(children, {
124
- role: 'combobox',
125
- 'aria-controls': 'listbox1',
126
- 'aria-expanded': isCurrentListOpen,
127
- 'aria-haspopup': 'listbox',
128
- 'aria-activedescendant': getActiveDescendant(),
129
- onKeyDown: onKeyDown
130
- })
131
- }, /*#__PURE__*/React.createElement(Ul, {
132
- listHeight: listHeight,
133
- listOverflow: listOverflow,
134
- role: "listbox",
135
- id: "listbox1",
136
- listWidth: listWidth
137
- }, items.map(function (item, index) {
138
- return /*#__PURE__*/React.createElement(DropdownInner, {
139
- key: "".concat(index, "/0"),
140
- item: item,
141
- currentLevel: 0,
142
- focusedPath: focusedPath,
143
- trigger: trigger,
144
- path: path,
145
- dispatchPath: dispatchPath,
146
- index: index,
147
- itemRole: itemRole,
148
- listHeight: listHeight,
149
- listOverflow: listOverflow,
150
- handleGlobalToggle: handleGlobalToggle,
151
- closeOnSelect: closeOnSelect,
152
- onHover: onHover,
153
- onItemSelect: onItemSelect,
154
- onItemClick: onItemClick,
155
- listWidth: listWidth,
156
- variant: variant,
157
- hasArrow: hasArrow
158
- });
159
- }))));
65
+ closeOnEsc: closeOnEsc,
66
+ isFocusTrapped: isFocusTrapped,
67
+ frame: frame
68
+ }, /*#__PURE__*/React.createElement(Root, _extends({
69
+ ref: handleRef,
70
+ view: view,
71
+ size: size
72
+ }, rest), /*#__PURE__*/React.createElement(StyledDropdown, null, children)));
160
73
  });
161
74
  };
162
75
  export var dropdownConfig = {
163
76
  name: 'Dropdown',
164
77
  tag: 'div',
165
78
  layout: dropdownRoot,
166
- base: base,
79
+ base: '',
167
80
  variations: {
168
81
  view: {
169
82
  css: viewCSS