@quen-ui/components 0.0.14 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (403) hide show
  1. package/README.md +2 -2
  2. package/dist/Accordion/Accordion.cjs.js +88 -0
  3. package/dist/Accordion/Accordion.d.ts +3 -0
  4. package/dist/Accordion/Accordion.es.js +89 -0
  5. package/dist/Accordion/AccordionGroup.cjs.js +82 -0
  6. package/dist/Accordion/AccordionGroup.d.ts +12 -0
  7. package/dist/Accordion/AccordionGroup.es.js +82 -0
  8. package/dist/Accordion/AccordionItem.cjs.js +71 -0
  9. package/dist/Accordion/AccordionItem.d.ts +3 -0
  10. package/dist/Accordion/AccordionItem.es.js +72 -0
  11. package/dist/Accordion/helpers.cjs.js +24 -0
  12. package/dist/Accordion/helpers.d.ts +25 -0
  13. package/dist/Accordion/helpers.es.js +24 -0
  14. package/dist/Accordion/index.cjs.js +7 -0
  15. package/dist/Accordion/index.d.ts +8 -0
  16. package/dist/Accordion/index.es.js +7 -0
  17. package/dist/Accordion/styles.cjs.js +97 -0
  18. package/dist/Accordion/styles.d.ts +23 -0
  19. package/dist/Accordion/styles.es.js +97 -0
  20. package/dist/Accordion/types.d.ts +142 -0
  21. package/dist/Accordion/useAccordionState.cjs.js +34 -0
  22. package/dist/Accordion/useAccordionState.d.ts +12 -0
  23. package/dist/Accordion/useAccordionState.es.js +34 -0
  24. package/dist/Alert/Alert.cjs.js +1 -1
  25. package/dist/Alert/Alert.es.js +1 -1
  26. package/dist/Alert/styles.cjs.js +14 -10
  27. package/dist/Alert/styles.es.js +14 -10
  28. package/dist/Avatar/styles.cjs.js +16 -11
  29. package/dist/Avatar/styles.es.js +16 -11
  30. package/dist/Badge/styles.cjs.js +7 -7
  31. package/dist/Badge/styles.es.js +7 -7
  32. package/dist/Breadcrumbs/BreadcrumbItem.cjs.js +6 -6
  33. package/dist/Breadcrumbs/BreadcrumbItem.es.js +6 -6
  34. package/dist/Breadcrumbs/Breadcrumbs.cjs.js +2 -3
  35. package/dist/Breadcrumbs/Breadcrumbs.es.js +2 -3
  36. package/dist/Breadcrumbs/styles.cjs.js +15 -15
  37. package/dist/Breadcrumbs/styles.es.js +15 -15
  38. package/dist/Button/Button.cjs.js +3 -3
  39. package/dist/Button/Button.es.js +6 -6
  40. package/dist/Button/index.d.ts +1 -1
  41. package/dist/Button/styles.cjs.js +49 -54
  42. package/dist/Button/styles.es.js +50 -55
  43. package/dist/Button/types.d.ts +2 -3
  44. package/dist/Calendar/Calendar.cjs.js +200 -0
  45. package/dist/Calendar/Calendar.d.ts +4 -0
  46. package/dist/Calendar/Calendar.es.js +201 -0
  47. package/dist/Calendar/DaysLevel.cjs.js +93 -0
  48. package/dist/Calendar/DaysLevel.d.ts +3 -0
  49. package/dist/Calendar/DaysLevel.es.js +94 -0
  50. package/dist/Calendar/MonthLevel.cjs.js +23 -0
  51. package/dist/Calendar/MonthLevel.d.ts +3 -0
  52. package/dist/Calendar/MonthLevel.es.js +24 -0
  53. package/dist/Calendar/YearsLevel.cjs.js +24 -0
  54. package/dist/Calendar/YearsLevel.d.ts +3 -0
  55. package/dist/Calendar/YearsLevel.es.js +25 -0
  56. package/dist/Calendar/helpers.cjs.js +60 -0
  57. package/dist/Calendar/helpers.d.ts +9 -0
  58. package/dist/Calendar/helpers.es.js +60 -0
  59. package/dist/Calendar/index.d.ts +2 -0
  60. package/dist/Calendar/styles.cjs.js +116 -0
  61. package/dist/Calendar/styles.d.ts +16 -0
  62. package/dist/Calendar/styles.es.js +116 -0
  63. package/dist/Calendar/types.d.ts +115 -0
  64. package/dist/Card/Card.cjs.js +4 -2
  65. package/dist/Card/Card.d.ts +1 -1
  66. package/dist/Card/Card.es.js +4 -2
  67. package/dist/Card/styles.cjs.js +2 -2
  68. package/dist/Card/styles.es.js +2 -2
  69. package/dist/Card/types.d.ts +2 -0
  70. package/dist/Checkbox/Checkbox.cjs.js +1 -1
  71. package/dist/Checkbox/Checkbox.es.js +1 -1
  72. package/dist/Checkbox/CheckboxGroup.cjs.js +22 -25
  73. package/dist/Checkbox/CheckboxGroup.es.js +22 -25
  74. package/dist/Checkbox/styles.cjs.js +24 -23
  75. package/dist/Checkbox/styles.es.js +24 -23
  76. package/dist/ColorPicker/ColorPicker.cjs.js +404 -0
  77. package/dist/ColorPicker/ColorPicker.d.ts +3 -0
  78. package/dist/ColorPicker/ColorPicker.es.js +405 -0
  79. package/dist/ColorPicker/InputColor.cjs.js +94 -0
  80. package/dist/ColorPicker/InputColor.d.ts +3 -0
  81. package/dist/ColorPicker/InputColor.es.js +95 -0
  82. package/dist/ColorPicker/InputsColor.cjs.js +177 -0
  83. package/dist/ColorPicker/InputsColor.d.ts +3 -0
  84. package/dist/ColorPicker/InputsColor.es.js +178 -0
  85. package/dist/ColorPicker/helpers.cjs.js +32 -0
  86. package/dist/ColorPicker/helpers.d.ts +4 -0
  87. package/dist/ColorPicker/helpers.es.js +32 -0
  88. package/dist/ColorPicker/index.cjs.js +7 -0
  89. package/dist/ColorPicker/index.d.ts +8 -0
  90. package/dist/ColorPicker/index.es.js +7 -0
  91. package/dist/ColorPicker/styles.cjs.js +234 -0
  92. package/dist/ColorPicker/styles.d.ts +43 -0
  93. package/dist/ColorPicker/styles.es.js +234 -0
  94. package/dist/ColorPicker/types.d.ts +56 -0
  95. package/dist/Divider/styles.cjs.js +12 -10
  96. package/dist/Divider/styles.es.js +12 -10
  97. package/dist/Drawer/Drawer.cjs.js +5 -1
  98. package/dist/Drawer/Drawer.es.js +5 -1
  99. package/dist/Drawer/styles.cjs.js +4 -5
  100. package/dist/Drawer/styles.es.js +4 -5
  101. package/dist/Dropdown/Dropdown.cjs.js +31 -2
  102. package/dist/Dropdown/Dropdown.d.ts +2 -2
  103. package/dist/Dropdown/Dropdown.es.js +32 -3
  104. package/dist/Dropdown/DropdownItem.cjs.js +4 -5
  105. package/dist/Dropdown/DropdownItem.es.js +4 -5
  106. package/dist/Dropdown/DropdownList.cjs.js +3 -2
  107. package/dist/Dropdown/DropdownList.es.js +6 -5
  108. package/dist/Dropdown/DropdownPortal.cjs.js +8 -5
  109. package/dist/Dropdown/DropdownPortal.d.ts +5 -3
  110. package/dist/Dropdown/DropdownPortal.es.js +9 -6
  111. package/dist/Dropdown/helpers.cjs.js +1 -1
  112. package/dist/Dropdown/helpers.es.js +1 -1
  113. package/dist/Dropdown/styles.cjs.js +28 -27
  114. package/dist/Dropdown/styles.d.ts +2 -0
  115. package/dist/Dropdown/styles.es.js +28 -27
  116. package/dist/EmptyState/EmptyState.cjs.js +51 -0
  117. package/dist/EmptyState/EmptyState.d.ts +3 -0
  118. package/dist/EmptyState/EmptyState.es.js +52 -0
  119. package/dist/EmptyState/index.d.ts +2 -0
  120. package/dist/EmptyState/types.d.ts +10 -0
  121. package/dist/Flex/Flex.d.ts +1 -1
  122. package/dist/Flex/types.d.ts +1 -0
  123. package/dist/Form/Field.cjs.js +175 -0
  124. package/dist/Form/Field.d.ts +3 -0
  125. package/dist/Form/Field.es.js +176 -0
  126. package/dist/Form/FieldArray.cjs.js +24 -0
  127. package/dist/Form/FieldArray.d.ts +3 -0
  128. package/dist/Form/FieldArray.es.js +25 -0
  129. package/dist/Form/Form.cjs.js +69 -0
  130. package/dist/Form/Form.d.ts +3 -0
  131. package/dist/Form/Form.es.js +69 -0
  132. package/dist/Form/defaultValidateMessages.cjs.js +51 -0
  133. package/dist/Form/defaultValidateMessages.d.ts +47 -0
  134. package/dist/Form/defaultValidateMessages.es.js +51 -0
  135. package/dist/Form/helpers.cjs.js +8 -0
  136. package/dist/Form/helpers.d.ts +1 -0
  137. package/dist/Form/helpers.es.js +8 -0
  138. package/dist/Form/index.cjs.js +13 -0
  139. package/dist/Form/index.d.ts +14 -0
  140. package/dist/Form/index.es.js +13 -0
  141. package/dist/Form/types.d.ts +147 -0
  142. package/dist/Form/useForm.cjs.js +230 -0
  143. package/dist/Form/useForm.d.ts +2 -0
  144. package/dist/Form/useForm.es.js +230 -0
  145. package/dist/Form/useWatch.cjs.js +14 -0
  146. package/dist/Form/useWatch.d.ts +3 -0
  147. package/dist/Form/useWatch.es.js +14 -0
  148. package/dist/Highlight/Highlight.cjs.js +113 -0
  149. package/dist/Highlight/Highlight.d.ts +3 -0
  150. package/dist/Highlight/Highlight.es.js +114 -0
  151. package/dist/Highlight/helpers.cjs.js +147 -0
  152. package/dist/Highlight/helpers.d.ts +27 -0
  153. package/dist/Highlight/helpers.es.js +147 -0
  154. package/dist/Highlight/index.d.ts +2 -0
  155. package/dist/Highlight/styles.cjs.js +11 -0
  156. package/dist/Highlight/styles.d.ts +4 -0
  157. package/dist/Highlight/styles.es.js +11 -0
  158. package/dist/Highlight/types.d.ts +53 -0
  159. package/dist/Image/styles.cjs.js +4 -5
  160. package/dist/Image/styles.es.js +4 -5
  161. package/dist/InputBase/InputBase.cjs.js +32 -0
  162. package/dist/InputBase/InputBase.d.ts +4 -0
  163. package/dist/InputBase/InputBase.es.js +33 -0
  164. package/dist/InputBase/index.d.ts +2 -0
  165. package/dist/InputBase/styles.cjs.js +61 -0
  166. package/dist/InputBase/styles.d.ts +7 -0
  167. package/dist/InputBase/styles.es.js +61 -0
  168. package/dist/InputBase/types.d.ts +25 -0
  169. package/dist/InputDate/InputDate.cjs.js +344 -0
  170. package/dist/InputDate/InputDate.d.ts +4 -0
  171. package/dist/InputDate/InputDate.es.js +345 -0
  172. package/dist/InputDate/helpers.cjs.js +78 -0
  173. package/dist/InputDate/helpers.d.ts +5 -0
  174. package/dist/InputDate/helpers.es.js +78 -0
  175. package/dist/InputDate/index.d.ts +2 -0
  176. package/dist/InputDate/styles.cjs.js +35 -0
  177. package/dist/InputDate/styles.d.ts +5 -0
  178. package/dist/InputDate/styles.es.js +35 -0
  179. package/dist/InputDate/types.d.ts +23 -0
  180. package/dist/InputNumber/InputNumber.cjs.js +70 -73
  181. package/dist/InputNumber/InputNumber.d.ts +1 -1
  182. package/dist/InputNumber/InputNumber.es.js +72 -75
  183. package/dist/InputNumber/styles.cjs.js +20 -60
  184. package/dist/InputNumber/styles.d.ts +4 -8
  185. package/dist/InputNumber/styles.es.js +21 -61
  186. package/dist/InputNumber/types.d.ts +2 -18
  187. package/dist/Layout/Header.cjs.js +27 -23
  188. package/dist/Layout/Header.d.ts +1 -1
  189. package/dist/Layout/Header.es.js +28 -24
  190. package/dist/Layout/Sidebar.cjs.js +24 -25
  191. package/dist/Layout/Sidebar.d.ts +1 -1
  192. package/dist/Layout/Sidebar.es.js +25 -26
  193. package/dist/Layout/index.d.ts +2 -2
  194. package/dist/Layout/styles.cjs.js +16 -52
  195. package/dist/Layout/styles.d.ts +2 -15
  196. package/dist/Layout/styles.es.js +16 -52
  197. package/dist/Layout/types.d.ts +7 -22
  198. package/dist/Loader/styles.cjs.js +5 -4
  199. package/dist/Loader/styles.es.js +5 -4
  200. package/dist/LoadingOverlay/LoadingOverlay.cjs.js +22 -0
  201. package/dist/LoadingOverlay/LoadingOverlay.d.ts +3 -0
  202. package/dist/LoadingOverlay/LoadingOverlay.es.js +23 -0
  203. package/dist/LoadingOverlay/index.d.ts +2 -0
  204. package/dist/LoadingOverlay/styles.cjs.js +28 -0
  205. package/dist/LoadingOverlay/styles.d.ts +5 -0
  206. package/dist/LoadingOverlay/styles.es.js +28 -0
  207. package/dist/LoadingOverlay/types.d.ts +16 -0
  208. package/dist/Menu/Menu.cjs.js +42 -0
  209. package/dist/Menu/Menu.d.ts +3 -0
  210. package/dist/Menu/Menu.es.js +43 -0
  211. package/dist/Menu/MenuItem.cjs.js +112 -0
  212. package/dist/Menu/MenuItem.d.ts +3 -0
  213. package/dist/Menu/MenuItem.es.js +113 -0
  214. package/dist/Menu/helpers.cjs.js +20 -0
  215. package/dist/Menu/helpers.d.ts +17 -0
  216. package/dist/Menu/helpers.es.js +20 -0
  217. package/dist/Menu/index.d.ts +2 -0
  218. package/dist/Menu/styles.cjs.js +98 -0
  219. package/dist/Menu/styles.d.ts +16 -0
  220. package/dist/Menu/styles.es.js +98 -0
  221. package/dist/Menu/types.d.ts +85 -0
  222. package/dist/Modal/Modal.cjs.js +15 -5
  223. package/dist/Modal/Modal.d.ts +1 -1
  224. package/dist/Modal/Modal.es.js +16 -6
  225. package/dist/Modal/styles.cjs.js +39 -9
  226. package/dist/Modal/styles.d.ts +4 -0
  227. package/dist/Modal/styles.es.js +40 -10
  228. package/dist/Modal/types.d.ts +2 -0
  229. package/dist/Notification/Notification.cjs.js +3 -3
  230. package/dist/Notification/Notification.es.js +3 -3
  231. package/dist/Notification/NotificationInstance.cjs.js +8 -15
  232. package/dist/Notification/NotificationInstance.es.js +8 -15
  233. package/dist/Notification/NotificationsStore.cjs.js +2 -7
  234. package/dist/Notification/NotificationsStore.es.js +2 -7
  235. package/dist/Notification/styles.cjs.js +6 -6
  236. package/dist/Notification/styles.es.js +6 -6
  237. package/dist/Pagination/Pagination.cjs.js +114 -0
  238. package/dist/Pagination/Pagination.d.ts +3 -0
  239. package/dist/Pagination/Pagination.es.js +115 -0
  240. package/dist/Pagination/index.d.ts +2 -0
  241. package/dist/Pagination/styles.cjs.js +54 -0
  242. package/dist/Pagination/styles.d.ts +2 -0
  243. package/dist/Pagination/styles.es.js +54 -0
  244. package/dist/Pagination/types.d.ts +49 -0
  245. package/dist/Progress/Progress.cjs.js +1 -1
  246. package/dist/Progress/Progress.es.js +1 -1
  247. package/dist/Progress/styles.cjs.js +5 -50
  248. package/dist/Progress/styles.es.js +5 -50
  249. package/dist/Progress/types.d.ts +1 -0
  250. package/dist/RadioButton/RadioButton.cjs.js +1 -1
  251. package/dist/RadioButton/RadioButton.es.js +1 -1
  252. package/dist/RadioButton/RadioButtonGroup.cjs.js +19 -22
  253. package/dist/RadioButton/RadioButtonGroup.es.js +19 -22
  254. package/dist/RadioButton/styles.cjs.js +11 -13
  255. package/dist/RadioButton/styles.es.js +11 -13
  256. package/dist/RichTextEditor/RichTextEditor.cjs.js +289 -0
  257. package/dist/RichTextEditor/RichTextEditor.d.ts +4 -0
  258. package/dist/RichTextEditor/RichTextEditor.es.js +290 -0
  259. package/dist/RichTextEditor/RichTextEditorColorControl.cjs.js +38 -0
  260. package/dist/RichTextEditor/RichTextEditorColorControl.d.ts +3 -0
  261. package/dist/RichTextEditor/RichTextEditorColorControl.es.js +39 -0
  262. package/dist/RichTextEditor/RichTextEditorTableControl.cjs.js +62 -0
  263. package/dist/RichTextEditor/RichTextEditorTableControl.d.ts +3 -0
  264. package/dist/RichTextEditor/RichTextEditorTableControl.es.js +63 -0
  265. package/dist/RichTextEditor/helpers.cjs.js +151 -0
  266. package/dist/RichTextEditor/helpers.d.ts +10 -0
  267. package/dist/RichTextEditor/helpers.es.js +151 -0
  268. package/dist/RichTextEditor/index.d.ts +2 -0
  269. package/dist/RichTextEditor/plugins.cjs.js +548 -0
  270. package/dist/RichTextEditor/plugins.d.ts +2 -0
  271. package/dist/RichTextEditor/plugins.es.js +548 -0
  272. package/dist/RichTextEditor/styles.cjs.js +60 -0
  273. package/dist/RichTextEditor/styles.d.ts +7 -0
  274. package/dist/RichTextEditor/styles.es.js +60 -0
  275. package/dist/RichTextEditor/types.d.ts +79 -0
  276. package/dist/Select/Select.cjs.js +30 -18
  277. package/dist/Select/Select.es.js +30 -18
  278. package/dist/Select/helpers.cjs.js +1 -1
  279. package/dist/Select/helpers.d.ts +24 -24
  280. package/dist/Select/helpers.es.js +1 -1
  281. package/dist/Select/styles.cjs.js +91 -118
  282. package/dist/Select/styles.d.ts +4 -5
  283. package/dist/Select/styles.es.js +91 -118
  284. package/dist/Select/types.d.ts +3 -23
  285. package/dist/Select/useSelect.cjs.js +8 -14
  286. package/dist/Select/useSelect.d.ts +20 -20
  287. package/dist/Select/useSelect.es.js +8 -14
  288. package/dist/Skeleton/Skeleton.cjs.js +35 -0
  289. package/dist/Skeleton/Skeleton.d.ts +3 -0
  290. package/dist/Skeleton/Skeleton.es.js +36 -0
  291. package/dist/Skeleton/SkeletonAvatar.cjs.js +17 -0
  292. package/dist/Skeleton/SkeletonAvatar.d.ts +3 -0
  293. package/dist/Skeleton/SkeletonAvatar.es.js +18 -0
  294. package/dist/Skeleton/SkeletonButton.cjs.js +21 -0
  295. package/dist/Skeleton/SkeletonButton.d.ts +3 -0
  296. package/dist/Skeleton/SkeletonButton.es.js +22 -0
  297. package/dist/Skeleton/SkeletonCard.cjs.js +15 -0
  298. package/dist/Skeleton/SkeletonCard.d.ts +3 -0
  299. package/dist/Skeleton/SkeletonCard.es.js +16 -0
  300. package/dist/Skeleton/SkeletonLayout.cjs.js +60 -0
  301. package/dist/Skeleton/SkeletonLayout.d.ts +3 -0
  302. package/dist/Skeleton/SkeletonLayout.es.js +61 -0
  303. package/dist/Skeleton/SkeletonList.cjs.js +39 -0
  304. package/dist/Skeleton/SkeletonList.d.ts +3 -0
  305. package/dist/Skeleton/SkeletonList.es.js +40 -0
  306. package/dist/Skeleton/SkeletonTextBlock.cjs.js +7 -0
  307. package/dist/Skeleton/SkeletonTextBlock.d.ts +5 -0
  308. package/dist/Skeleton/SkeletonTextBlock.es.js +8 -0
  309. package/dist/Skeleton/index.cjs.js +17 -0
  310. package/dist/Skeleton/index.d.ts +18 -0
  311. package/dist/Skeleton/index.es.js +17 -0
  312. package/dist/Skeleton/styles.cjs.js +59 -0
  313. package/dist/Skeleton/styles.d.ts +3 -0
  314. package/dist/Skeleton/styles.es.js +59 -0
  315. package/dist/Skeleton/types.d.ts +74 -0
  316. package/dist/Slider/Slider.cjs.js +282 -0
  317. package/dist/Slider/Slider.d.ts +3 -0
  318. package/dist/Slider/Slider.es.js +283 -0
  319. package/dist/Slider/index.d.ts +2 -0
  320. package/dist/Slider/styles.cjs.js +156 -0
  321. package/dist/Slider/styles.d.ts +35 -0
  322. package/dist/Slider/styles.es.js +156 -0
  323. package/dist/Slider/types.d.ts +53 -0
  324. package/dist/Spoiler/Spoiler.cjs.js +62 -0
  325. package/dist/Spoiler/Spoiler.d.ts +3 -0
  326. package/dist/Spoiler/Spoiler.es.js +63 -0
  327. package/dist/Spoiler/index.d.ts +2 -0
  328. package/dist/Spoiler/styles.cjs.js +15 -0
  329. package/dist/Spoiler/styles.d.ts +4 -0
  330. package/dist/Spoiler/styles.es.js +15 -0
  331. package/dist/Spoiler/types.d.ts +23 -0
  332. package/dist/Switch/Switch.cjs.js +32 -6
  333. package/dist/Switch/Switch.d.ts +2 -2
  334. package/dist/Switch/Switch.es.js +33 -7
  335. package/dist/Switch/styles.cjs.js +24 -7
  336. package/dist/Switch/styles.d.ts +4 -0
  337. package/dist/Switch/styles.es.js +24 -7
  338. package/dist/Switch/types.d.ts +3 -0
  339. package/dist/Tabs/Tab.cjs.js +8 -8
  340. package/dist/Tabs/Tab.es.js +8 -8
  341. package/dist/Tabs/TabPanel.cjs.js +3 -3
  342. package/dist/Tabs/TabPanel.es.js +3 -3
  343. package/dist/Tabs/Tabs.cjs.js +5 -4
  344. package/dist/Tabs/Tabs.d.ts +1 -1
  345. package/dist/Tabs/Tabs.es.js +5 -4
  346. package/dist/Tabs/TabsList.cjs.js +25 -1
  347. package/dist/Tabs/TabsList.d.ts +2 -2
  348. package/dist/Tabs/TabsList.es.js +25 -1
  349. package/dist/Tabs/styles.cjs.js +104 -34
  350. package/dist/Tabs/styles.d.ts +2 -0
  351. package/dist/Tabs/styles.es.js +104 -34
  352. package/dist/Tabs/types.d.ts +7 -3
  353. package/dist/Tag/Tag.cjs.js +4 -1
  354. package/dist/Tag/Tag.d.ts +1 -1
  355. package/dist/Tag/Tag.es.js +4 -1
  356. package/dist/Tag/styles.cjs.js +14 -9
  357. package/dist/Tag/styles.d.ts +2 -0
  358. package/dist/Tag/styles.es.js +14 -9
  359. package/dist/Tag/types.d.ts +6 -0
  360. package/dist/TextField/TextField.cjs.js +57 -56
  361. package/dist/TextField/TextField.d.ts +1 -1
  362. package/dist/TextField/TextField.es.js +58 -57
  363. package/dist/TextField/styles.cjs.js +9 -50
  364. package/dist/TextField/styles.d.ts +3 -8
  365. package/dist/TextField/styles.es.js +10 -51
  366. package/dist/TextField/types.d.ts +2 -20
  367. package/dist/Textarea/Textarea.cjs.js +57 -56
  368. package/dist/Textarea/Textarea.d.ts +1 -1
  369. package/dist/Textarea/Textarea.es.js +58 -57
  370. package/dist/Textarea/styles.cjs.js +10 -62
  371. package/dist/Textarea/styles.d.ts +3 -8
  372. package/dist/Textarea/styles.es.js +12 -64
  373. package/dist/Textarea/types.d.ts +2 -21
  374. package/dist/Tooltip/Tooltip.cjs.js +3 -1
  375. package/dist/Tooltip/Tooltip.d.ts +1 -1
  376. package/dist/Tooltip/Tooltip.es.js +3 -1
  377. package/dist/Tooltip/types.d.ts +3 -0
  378. package/dist/assets/box.svg.cjs.js +21 -0
  379. package/dist/assets/box.svg.es.js +5 -0
  380. package/dist/index.cjs.js +30 -0
  381. package/dist/index.d.ts +17 -2
  382. package/dist/index.es.js +30 -0
  383. package/dist/message/Message.cjs.js +42 -0
  384. package/dist/message/Message.d.ts +3 -0
  385. package/dist/message/Message.es.js +43 -0
  386. package/dist/message/MessageContext.cjs.js +101 -0
  387. package/dist/message/MessageContext.d.ts +4 -0
  388. package/dist/message/MessageContext.es.js +101 -0
  389. package/dist/message/index.cjs.js +8 -0
  390. package/dist/message/index.d.ts +6 -0
  391. package/dist/message/index.es.js +8 -0
  392. package/dist/message/styles.cjs.js +79 -0
  393. package/dist/message/styles.d.ts +11 -0
  394. package/dist/message/styles.es.js +79 -0
  395. package/dist/message/types.d.ts +42 -0
  396. package/dist/typography/Text/Text.es.js +3 -3
  397. package/dist/typography/Title/Title.cjs.js +2 -0
  398. package/dist/typography/Title/Title.d.ts +1 -1
  399. package/dist/typography/Title/Title.es.js +2 -0
  400. package/dist/typography/Title/styles.cjs.js +3 -0
  401. package/dist/typography/Title/styles.es.js +3 -0
  402. package/dist/typography/Title/types.d.ts +1 -0
  403. package/package.json +17 -13
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ const jsxRuntime = require("react/jsx-runtime");
3
+ const React = require("react");
4
+ const helpers = require("@quen-ui/helpers");
5
+ const Text = require("../typography/Text/Text.cjs.js");
6
+ const styles = require("./styles.cjs.js");
7
+ const iconArrowBottom = require("../assets/icon-arrow-bottom.svg.cjs.js");
8
+ const MenuItem = ({
9
+ item,
10
+ getItemLabel,
11
+ getItemClassName,
12
+ getItemDisabled,
13
+ getItemLeftContent,
14
+ getItemKey,
15
+ getItemOnClick,
16
+ getItemRightContent,
17
+ size,
18
+ direction,
19
+ activeKeys,
20
+ arrowIcon,
21
+ className,
22
+ level = 1
23
+ }) => {
24
+ const refMenuItem = React.useRef(null);
25
+ const hasChildren = !!item.children?.length;
26
+ const [visible, setVisible] = React.useState(false);
27
+ const handleMouseEnter = () => {
28
+ setVisible(true);
29
+ };
30
+ const handleMouseLeave = () => {
31
+ setVisible(false);
32
+ };
33
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
34
+ /* @__PURE__ */ jsxRuntime.jsxs(
35
+ styles.MenuItemStyled,
36
+ {
37
+ ref: refMenuItem,
38
+ onMouseEnter: handleMouseEnter,
39
+ onMouseLeave: handleMouseLeave,
40
+ hover: !getItemDisabled(item) && (hasChildren && direction === "horizontal" || !hasChildren),
41
+ disabled: getItemDisabled(item),
42
+ className: helpers.cnMerge(getItemClassName(item), className),
43
+ active: activeKeys?.includes(getItemKey(item)),
44
+ onClick: getItemOnClick(item),
45
+ children: [
46
+ getItemLeftContent(item),
47
+ /* @__PURE__ */ jsxRuntime.jsx(
48
+ Text,
49
+ {
50
+ size,
51
+ className: helpers.cnMerge({ "quen-ui--menu__item_group": hasChildren && direction === "vertical" }, "quen-ui--menu__item_label"),
52
+ children: getItemLabel(item)
53
+ }
54
+ ),
55
+ getItemRightContent(item),
56
+ arrowIcon && /* @__PURE__ */ jsxRuntime.jsx(iconArrowBottom, { className: "quen-ui--menu__item_icon-arrow" })
57
+ ]
58
+ },
59
+ getItemKey(item)
60
+ ),
61
+ hasChildren && direction === "horizontal" && /* @__PURE__ */ jsxRuntime.jsx(
62
+ styles.SubMenuHorizontalStyled,
63
+ {
64
+ visible,
65
+ left: level === 1 ? (refMenuItem.current?.getBoundingClientRect().x ?? 0) - (refMenuItem.current?.parentElement?.getBoundingClientRect().x ?? 0) : refMenuItem.current?.getBoundingClientRect().width ?? 0,
66
+ top: level === 1 ? refMenuItem.current?.getBoundingClientRect().height ?? 0 : refMenuItem.current?.offsetTop ?? 0,
67
+ className: "quen-ui--menu__submenu",
68
+ onMouseEnter: () => setVisible(true),
69
+ onMouseLeave: () => setVisible(false),
70
+ children: item.children.map((child) => /* @__PURE__ */ jsxRuntime.jsx(
71
+ MenuItem,
72
+ {
73
+ className,
74
+ item: child,
75
+ size,
76
+ getItemKey,
77
+ getItemLabel,
78
+ getItemLeftContent,
79
+ getItemRightContent,
80
+ getItemDisabled,
81
+ activeKeys,
82
+ getItemClassName,
83
+ getItemOnClick,
84
+ direction,
85
+ arrowIcon: !!child.children,
86
+ level: level + 1
87
+ },
88
+ getItemKey(child)
89
+ ))
90
+ }
91
+ ),
92
+ hasChildren && direction === "vertical" && /* @__PURE__ */ jsxRuntime.jsx(styles.SubMenuVerticalStyled, { level, children: item.children.map((child) => /* @__PURE__ */ jsxRuntime.jsx(
93
+ MenuItem,
94
+ {
95
+ className,
96
+ item: child,
97
+ size,
98
+ getItemKey,
99
+ getItemLabel,
100
+ getItemLeftContent,
101
+ getItemRightContent,
102
+ getItemDisabled,
103
+ activeKeys,
104
+ getItemClassName,
105
+ getItemOnClick,
106
+ direction
107
+ },
108
+ getItemKey(child)
109
+ )) })
110
+ ] });
111
+ };
112
+ module.exports = MenuItem;
@@ -0,0 +1,3 @@
1
+ import { IMenuItemProps } from './types';
2
+ declare const MenuItem: <Item extends Record<string, any>>({ item, getItemLabel, getItemClassName, getItemDisabled, getItemLeftContent, getItemKey, getItemOnClick, getItemRightContent, size, direction, activeKeys, arrowIcon, className, level }: IMenuItemProps<Item>) => import("react/jsx-runtime").JSX.Element;
3
+ export default MenuItem;
@@ -0,0 +1,113 @@
1
+ import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
+ import { useRef, useState } from "react";
3
+ import { cnMerge } from "@quen-ui/helpers";
4
+ import Text from "../typography/Text/Text.es.js";
5
+ import { MenuItemStyled, SubMenuHorizontalStyled, SubMenuVerticalStyled } from "./styles.es.js";
6
+ import SvgIconArrowBottom from "../assets/icon-arrow-bottom.svg.es.js";
7
+ const MenuItem = ({
8
+ item,
9
+ getItemLabel,
10
+ getItemClassName,
11
+ getItemDisabled,
12
+ getItemLeftContent,
13
+ getItemKey,
14
+ getItemOnClick,
15
+ getItemRightContent,
16
+ size,
17
+ direction,
18
+ activeKeys,
19
+ arrowIcon,
20
+ className,
21
+ level = 1
22
+ }) => {
23
+ const refMenuItem = useRef(null);
24
+ const hasChildren = !!item.children?.length;
25
+ const [visible, setVisible] = useState(false);
26
+ const handleMouseEnter = () => {
27
+ setVisible(true);
28
+ };
29
+ const handleMouseLeave = () => {
30
+ setVisible(false);
31
+ };
32
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
33
+ /* @__PURE__ */ jsxs(
34
+ MenuItemStyled,
35
+ {
36
+ ref: refMenuItem,
37
+ onMouseEnter: handleMouseEnter,
38
+ onMouseLeave: handleMouseLeave,
39
+ hover: !getItemDisabled(item) && (hasChildren && direction === "horizontal" || !hasChildren),
40
+ disabled: getItemDisabled(item),
41
+ className: cnMerge(getItemClassName(item), className),
42
+ active: activeKeys?.includes(getItemKey(item)),
43
+ onClick: getItemOnClick(item),
44
+ children: [
45
+ getItemLeftContent(item),
46
+ /* @__PURE__ */ jsx(
47
+ Text,
48
+ {
49
+ size,
50
+ className: cnMerge({ "quen-ui--menu__item_group": hasChildren && direction === "vertical" }, "quen-ui--menu__item_label"),
51
+ children: getItemLabel(item)
52
+ }
53
+ ),
54
+ getItemRightContent(item),
55
+ arrowIcon && /* @__PURE__ */ jsx(SvgIconArrowBottom, { className: "quen-ui--menu__item_icon-arrow" })
56
+ ]
57
+ },
58
+ getItemKey(item)
59
+ ),
60
+ hasChildren && direction === "horizontal" && /* @__PURE__ */ jsx(
61
+ SubMenuHorizontalStyled,
62
+ {
63
+ visible,
64
+ left: level === 1 ? (refMenuItem.current?.getBoundingClientRect().x ?? 0) - (refMenuItem.current?.parentElement?.getBoundingClientRect().x ?? 0) : refMenuItem.current?.getBoundingClientRect().width ?? 0,
65
+ top: level === 1 ? refMenuItem.current?.getBoundingClientRect().height ?? 0 : refMenuItem.current?.offsetTop ?? 0,
66
+ className: "quen-ui--menu__submenu",
67
+ onMouseEnter: () => setVisible(true),
68
+ onMouseLeave: () => setVisible(false),
69
+ children: item.children.map((child) => /* @__PURE__ */ jsx(
70
+ MenuItem,
71
+ {
72
+ className,
73
+ item: child,
74
+ size,
75
+ getItemKey,
76
+ getItemLabel,
77
+ getItemLeftContent,
78
+ getItemRightContent,
79
+ getItemDisabled,
80
+ activeKeys,
81
+ getItemClassName,
82
+ getItemOnClick,
83
+ direction,
84
+ arrowIcon: !!child.children,
85
+ level: level + 1
86
+ },
87
+ getItemKey(child)
88
+ ))
89
+ }
90
+ ),
91
+ hasChildren && direction === "vertical" && /* @__PURE__ */ jsx(SubMenuVerticalStyled, { level, children: item.children.map((child) => /* @__PURE__ */ jsx(
92
+ MenuItem,
93
+ {
94
+ className,
95
+ item: child,
96
+ size,
97
+ getItemKey,
98
+ getItemLabel,
99
+ getItemLeftContent,
100
+ getItemRightContent,
101
+ getItemDisabled,
102
+ activeKeys,
103
+ getItemClassName,
104
+ getItemOnClick,
105
+ direction
106
+ },
107
+ getItemKey(child)
108
+ )) })
109
+ ] });
110
+ };
111
+ export {
112
+ MenuItem as default
113
+ };
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const defaultGetItemKey = (item) => item.key;
4
+ const defaultGetItemLabel = (item) => item.label;
5
+ const defaultGetItemDisabled = (item) => item.disabled;
6
+ const defaultGetItemLeftContent = (item) => item.leftContent;
7
+ const defaultGetItemRightContent = (item) => item.rightContent;
8
+ const defaultGetItemOnClick = (item) => item.onClick;
9
+ const defaultGetItemClassName = (item) => item.className;
10
+ const withDefaultGetters = (props) => ({
11
+ ...props,
12
+ getItemKey: props.getItemKey || defaultGetItemKey,
13
+ getItemLabel: props.getItemLabel || defaultGetItemLabel,
14
+ getItemDisabled: props.getItemDisabled || defaultGetItemDisabled,
15
+ getItemLeftContent: props.getItemLeftContent || defaultGetItemLeftContent,
16
+ getItemRightContent: props.getItemRightContent || defaultGetItemRightContent,
17
+ getItemOnClick: props.getItemOnClick || defaultGetItemOnClick,
18
+ getItemClassName: props.getItemClassName || defaultGetItemClassName
19
+ });
20
+ exports.withDefaultGetters = withDefaultGetters;
@@ -0,0 +1,17 @@
1
+ import { IMenuDefaultItem, IMenuProps, TMenuPropGetItemIcon, TMenuPropGetItemClassName, TMenuPropGetItemLabel, TMenuPropGetItemKey, TMenuPropGetItemDisabled, TMenuPropGetItemOnClick, TMenuRecursiveItem } from './types';
2
+ export declare const withDefaultGetters: <Item extends Record<string, any>>(props: IMenuProps<Item>) => {
3
+ getItemKey: TMenuPropGetItemKey<TMenuRecursiveItem<IMenuDefaultItem>> | TMenuPropGetItemKey<TMenuRecursiveItem<Item>>;
4
+ getItemLabel: TMenuPropGetItemLabel<TMenuRecursiveItem<IMenuDefaultItem>> | TMenuPropGetItemLabel<TMenuRecursiveItem<Item>>;
5
+ getItemDisabled: TMenuPropGetItemDisabled<TMenuRecursiveItem<IMenuDefaultItem>> | TMenuPropGetItemDisabled<TMenuRecursiveItem<Item>>;
6
+ getItemLeftContent: TMenuPropGetItemIcon<TMenuRecursiveItem<IMenuDefaultItem>> | TMenuPropGetItemIcon<TMenuRecursiveItem<Item>>;
7
+ getItemRightContent: TMenuPropGetItemIcon<TMenuRecursiveItem<IMenuDefaultItem>> | TMenuPropGetItemIcon<TMenuRecursiveItem<Item>>;
8
+ getItemOnClick: TMenuPropGetItemOnClick<TMenuRecursiveItem<IMenuDefaultItem>> | TMenuPropGetItemOnClick<TMenuRecursiveItem<Item>>;
9
+ getItemClassName: TMenuPropGetItemClassName<TMenuRecursiveItem<IMenuDefaultItem>> | TMenuPropGetItemClassName<TMenuRecursiveItem<Item>>;
10
+ items: TMenuRecursiveItem<Item>[];
11
+ direction?: "vertical" | "horizontal";
12
+ className?: string;
13
+ style?: React.CSSProperties;
14
+ size?: import('..').TQuenSize;
15
+ activeKeys?: string[];
16
+ classNameMenuItem?: string;
17
+ };
@@ -0,0 +1,20 @@
1
+ const defaultGetItemKey = (item) => item.key;
2
+ const defaultGetItemLabel = (item) => item.label;
3
+ const defaultGetItemDisabled = (item) => item.disabled;
4
+ const defaultGetItemLeftContent = (item) => item.leftContent;
5
+ const defaultGetItemRightContent = (item) => item.rightContent;
6
+ const defaultGetItemOnClick = (item) => item.onClick;
7
+ const defaultGetItemClassName = (item) => item.className;
8
+ const withDefaultGetters = (props) => ({
9
+ ...props,
10
+ getItemKey: props.getItemKey || defaultGetItemKey,
11
+ getItemLabel: props.getItemLabel || defaultGetItemLabel,
12
+ getItemDisabled: props.getItemDisabled || defaultGetItemDisabled,
13
+ getItemLeftContent: props.getItemLeftContent || defaultGetItemLeftContent,
14
+ getItemRightContent: props.getItemRightContent || defaultGetItemRightContent,
15
+ getItemOnClick: props.getItemOnClick || defaultGetItemOnClick,
16
+ getItemClassName: props.getItemClassName || defaultGetItemClassName
17
+ });
18
+ export {
19
+ withDefaultGetters
20
+ };
@@ -0,0 +1,2 @@
1
+ export { default as Menu } from './Menu';
2
+ export type { IMenuProps, TMenuPropGetItemIcon, IMenuDefaultItem, TMenuPropGetItemDisabled, TMenuPropGetItemKey, TMenuPropGetItemLabel, TMenuPropGetItemClassName, TMenuPropGetItemOnClick } from './types';
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const styled = require("styled-components");
4
+ const Flex = require("../Flex/Flex.cjs.js");
5
+ const MenuItemStyled = styled.button.withConfig({
6
+ shouldForwardProp: (prop) => !["disabled", "active", "hover"].includes(prop)
7
+ }).attrs((props) => ({
8
+ className: props.active ? "quen-ui__menu-item--active" : "quen-ui__menu-item"
9
+ }))`
10
+ outline: none;
11
+ border: none;
12
+ display: flex;
13
+ gap: 4px;
14
+ align-items: center;
15
+ padding: 0.5rem 1rem;
16
+ cursor: ${({ disabled }) => disabled ? "not-allowed" : "pointer"};
17
+ border-radius: 4px;
18
+ transition: background 0.2s ease;
19
+ background: transparent;
20
+ justify-content: flex-start;
21
+
22
+ color: ${({ theme, disabled }) => disabled ? theme.components.Menu.disabledColor : theme.components.Menu.color};
23
+
24
+ * {
25
+ color: ${({ theme, disabled }) => disabled ? theme.components.Menu.disabledColor : theme.components.Menu.color};
26
+ }
27
+
28
+ a {
29
+ text-decoration: none;
30
+ color: ${({ theme }) => theme.components.Menu.color};
31
+ display: flex;
32
+ width: 100%;
33
+ }
34
+
35
+ .quen-ui--menu__item_group {
36
+ font-weight: bold;
37
+ }
38
+
39
+ .quen-ui--menu__item_icon-arrow {
40
+ transform: rotateZ(270deg);
41
+ margin-left: auto;
42
+ margin-right: 0;
43
+ }
44
+
45
+ .quen-ui--menu__item_label {
46
+ width: 100%;
47
+ }
48
+
49
+ &:hover {
50
+ background: ${({ theme, active, hover }) => hover && !active && theme.components.Menu.hoverBackground};
51
+ }
52
+
53
+ ${({ theme, disabled, active }) => active && !disabled && styled.css`
54
+ background-color: ${theme.components.Menu.activeBackground};
55
+ `}
56
+
57
+ &:hover > .quen-ui--submenu {
58
+ display: flex;
59
+ }
60
+ `;
61
+ const SubMenuHorizontalStyled = styled.div.withConfig({
62
+ shouldForwardProp: (prop) => !["left", "top", "visible"].includes(prop)
63
+ })`
64
+ display: flex;
65
+ flex-direction: column;
66
+ position: absolute;
67
+ top: ${({ top }) => top}px;
68
+ left: ${({ left }) => left}px;
69
+ z-index: 1000;
70
+ width: max-content;
71
+
72
+ opacity: ${({ visible }) => visible ? 1 : 0};
73
+ transform: ${({ visible }) => visible ? "translateY(0)" : "translateY(-5px)"};
74
+ pointer-events: ${({ visible }) => visible ? "auto" : "none"};
75
+ transition: opacity 0.2s ease, transform 0.2s ease;
76
+ `;
77
+ const SubMenuVerticalStyled = styled.div.withConfig({
78
+ shouldForwardProp: (prop) => !["level"].includes(prop)
79
+ })`
80
+ display: flex;
81
+ flex-direction: column;
82
+ z-index: 1000;
83
+ ${MenuItemStyled} {
84
+ padding-left: calc(16px + (${({ level }) => level} * 8px));
85
+ }
86
+
87
+ & .quen-ui--menu__submenu {
88
+ top: 0;
89
+ left: 100%;
90
+ }
91
+ `;
92
+ const MenuStyled = styled(Flex)`
93
+ position: relative;
94
+ `;
95
+ exports.MenuItemStyled = MenuItemStyled;
96
+ exports.MenuStyled = MenuStyled;
97
+ exports.SubMenuHorizontalStyled = SubMenuHorizontalStyled;
98
+ exports.SubMenuVerticalStyled = SubMenuVerticalStyled;
@@ -0,0 +1,16 @@
1
+ export declare const MenuItemStyled: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('styled-components/dist/types').Substitute<import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>>, {
2
+ active?: boolean;
3
+ }>, {
4
+ disabled?: boolean;
5
+ active?: boolean;
6
+ hover?: boolean;
7
+ }>> & string;
8
+ export declare const SubMenuHorizontalStyled: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
9
+ left: number;
10
+ top: number;
11
+ visible: boolean;
12
+ }>> & string;
13
+ export declare const SubMenuVerticalStyled: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
14
+ level: number;
15
+ }>> & string;
16
+ export declare const MenuStyled: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<Omit<import('..').IFlexProps, "ref"> & import('react').RefAttributes<unknown>, never>> & string & Omit<import('react').ForwardRefExoticComponent<Omit<import('..').IFlexProps, "ref"> & import('react').RefAttributes<unknown>>, keyof import('react').Component<any, {}, any>>;
@@ -0,0 +1,98 @@
1
+ import styled, { css } from "styled-components";
2
+ import Flex from "../Flex/Flex.es.js";
3
+ const MenuItemStyled = styled.button.withConfig({
4
+ shouldForwardProp: (prop) => !["disabled", "active", "hover"].includes(prop)
5
+ }).attrs((props) => ({
6
+ className: props.active ? "quen-ui__menu-item--active" : "quen-ui__menu-item"
7
+ }))`
8
+ outline: none;
9
+ border: none;
10
+ display: flex;
11
+ gap: 4px;
12
+ align-items: center;
13
+ padding: 0.5rem 1rem;
14
+ cursor: ${({ disabled }) => disabled ? "not-allowed" : "pointer"};
15
+ border-radius: 4px;
16
+ transition: background 0.2s ease;
17
+ background: transparent;
18
+ justify-content: flex-start;
19
+
20
+ color: ${({ theme, disabled }) => disabled ? theme.components.Menu.disabledColor : theme.components.Menu.color};
21
+
22
+ * {
23
+ color: ${({ theme, disabled }) => disabled ? theme.components.Menu.disabledColor : theme.components.Menu.color};
24
+ }
25
+
26
+ a {
27
+ text-decoration: none;
28
+ color: ${({ theme }) => theme.components.Menu.color};
29
+ display: flex;
30
+ width: 100%;
31
+ }
32
+
33
+ .quen-ui--menu__item_group {
34
+ font-weight: bold;
35
+ }
36
+
37
+ .quen-ui--menu__item_icon-arrow {
38
+ transform: rotateZ(270deg);
39
+ margin-left: auto;
40
+ margin-right: 0;
41
+ }
42
+
43
+ .quen-ui--menu__item_label {
44
+ width: 100%;
45
+ }
46
+
47
+ &:hover {
48
+ background: ${({ theme, active, hover }) => hover && !active && theme.components.Menu.hoverBackground};
49
+ }
50
+
51
+ ${({ theme, disabled, active }) => active && !disabled && css`
52
+ background-color: ${theme.components.Menu.activeBackground};
53
+ `}
54
+
55
+ &:hover > .quen-ui--submenu {
56
+ display: flex;
57
+ }
58
+ `;
59
+ const SubMenuHorizontalStyled = styled.div.withConfig({
60
+ shouldForwardProp: (prop) => !["left", "top", "visible"].includes(prop)
61
+ })`
62
+ display: flex;
63
+ flex-direction: column;
64
+ position: absolute;
65
+ top: ${({ top }) => top}px;
66
+ left: ${({ left }) => left}px;
67
+ z-index: 1000;
68
+ width: max-content;
69
+
70
+ opacity: ${({ visible }) => visible ? 1 : 0};
71
+ transform: ${({ visible }) => visible ? "translateY(0)" : "translateY(-5px)"};
72
+ pointer-events: ${({ visible }) => visible ? "auto" : "none"};
73
+ transition: opacity 0.2s ease, transform 0.2s ease;
74
+ `;
75
+ const SubMenuVerticalStyled = styled.div.withConfig({
76
+ shouldForwardProp: (prop) => !["level"].includes(prop)
77
+ })`
78
+ display: flex;
79
+ flex-direction: column;
80
+ z-index: 1000;
81
+ ${MenuItemStyled} {
82
+ padding-left: calc(16px + (${({ level }) => level} * 8px));
83
+ }
84
+
85
+ & .quen-ui--menu__submenu {
86
+ top: 0;
87
+ left: 100%;
88
+ }
89
+ `;
90
+ const MenuStyled = styled(Flex)`
91
+ position: relative;
92
+ `;
93
+ export {
94
+ MenuItemStyled,
95
+ MenuStyled,
96
+ SubMenuHorizontalStyled,
97
+ SubMenuVerticalStyled
98
+ };
@@ -0,0 +1,85 @@
1
+ import { default as React } from 'react';
2
+ import { TQuenSize } from '../types/size';
3
+ export interface IMenuDefaultItem {
4
+ /** Unique item identifier */
5
+ key: string;
6
+ /** Icon displayed before label */
7
+ leftContent?: React.ReactNode;
8
+ /** Icon displayed after label */
9
+ rightContent?: React.ReactNode;
10
+ /** Menu item content */
11
+ label: React.ReactNode;
12
+ /** Click handler */
13
+ onClick?: () => void;
14
+ /** Disables interaction */
15
+ disabled?: boolean;
16
+ /** Custom CSS classes */
17
+ className?: string;
18
+ }
19
+ export type TMenuPropGetItemKey<Item> = (item: Item) => string;
20
+ export type TMenuPropGetItemIcon<Item> = (item: Item) => React.ReactNode;
21
+ export type TMenuPropGetItemLabel<Item> = (item: Item) => React.ReactNode;
22
+ export type TMenuPropGetItemOnClick<Item> = (item: Item) => (() => void) | undefined;
23
+ export type TMenuPropGetItemDisabled<Item> = (item: Item) => boolean | undefined;
24
+ export type TMenuPropGetItemClassName<Item> = (item: Item) => string | undefined;
25
+ export type TMenuRecursiveItem<T> = T & {
26
+ children?: TMenuRecursiveItem<T>[];
27
+ };
28
+ export interface IMenuProps<Item extends Record<string, any> = IMenuDefaultItem> {
29
+ /** List of menu items to display */
30
+ items: TMenuRecursiveItem<Item>[];
31
+ /** Orientation of the menu layout */
32
+ direction?: "vertical" | "horizontal";
33
+ /** Custom CSS class */
34
+ className?: string;
35
+ /** Unique key extractor */
36
+ getItemKey?: TMenuPropGetItemKey<TMenuRecursiveItem<Item>>;
37
+ /** Label text extractor */
38
+ getItemLabel?: TMenuPropGetItemLabel<TMenuRecursiveItem<Item>>;
39
+ /** Disabled state extractor */
40
+ getItemDisabled?: TMenuPropGetItemDisabled<TMenuRecursiveItem<Item>>;
41
+ /** Extracts content shown before the label */
42
+ getItemLeftContent?: TMenuPropGetItemIcon<TMenuRecursiveItem<Item>>;
43
+ /** Extracts content shown after the label */
44
+ getItemRightContent?: TMenuPropGetItemIcon<TMenuRecursiveItem<Item>>;
45
+ /** Provides the click handler for the item. */
46
+ getItemOnClick?: TMenuPropGetItemOnClick<TMenuRecursiveItem<Item>>;
47
+ /** Custom class name for a specific item. */
48
+ getItemClassName?: TMenuPropGetItemClassName<TMenuRecursiveItem<Item>>;
49
+ /** Inline styles applied to the container */
50
+ style?: React.CSSProperties;
51
+ /** Controls menu item sizes */
52
+ size?: TQuenSize;
53
+ /** Array with the keys of currently active menu items */
54
+ activeKeys?: string[];
55
+ /** Custom CSS classes for menu item */
56
+ classNameMenuItem?: string;
57
+ }
58
+ export interface IMenuItemProps<Item extends Record<string, any> = IMenuDefaultItem> {
59
+ /** Controls menu item sizes */
60
+ size?: TQuenSize;
61
+ /** Menu item to display */
62
+ item: TMenuRecursiveItem<Item>;
63
+ /** Unique key extractor */
64
+ getItemKey: TMenuPropGetItemKey<TMenuRecursiveItem<Item>>;
65
+ /** Label text extractor */
66
+ getItemLabel: TMenuPropGetItemLabel<TMenuRecursiveItem<Item>>;
67
+ /** Disabled state extractor */
68
+ getItemDisabled: TMenuPropGetItemDisabled<TMenuRecursiveItem<Item>>;
69
+ /** Extracts content shown before the label */
70
+ getItemLeftContent: TMenuPropGetItemIcon<TMenuRecursiveItem<Item>>;
71
+ /** Extracts content shown after the label */
72
+ getItemRightContent: TMenuPropGetItemIcon<TMenuRecursiveItem<Item>>;
73
+ /** Provides the click handler for the item. */
74
+ getItemOnClick: TMenuPropGetItemOnClick<TMenuRecursiveItem<Item>>;
75
+ /** Custom class name for a specific item. */
76
+ getItemClassName: TMenuPropGetItemClassName<TMenuRecursiveItem<Item>>;
77
+ /** Orientation of the menu layout */
78
+ direction: "vertical" | "horizontal";
79
+ /** Array with the keys of currently active menu items */
80
+ activeKeys?: string[];
81
+ arrowIcon?: boolean;
82
+ level?: number;
83
+ /** Custom CSS classes for menu item */
84
+ className?: string;
85
+ }
@@ -22,8 +22,10 @@ const Modal = ({
22
22
  fullScreen,
23
23
  classNameFooter,
24
24
  className,
25
+ width,
25
26
  ...props
26
27
  }) => {
28
+ console.log(open);
27
29
  const [state, toggle] = reactTransitionState.useTransitionState({
28
30
  timeout: 500,
29
31
  unmountOnExit: true,
@@ -35,7 +37,7 @@ const Modal = ({
35
37
  const [container, setContainer] = React.useState(null);
36
38
  const handleEscapeDown = (event) => {
37
39
  if (event.key === "Escape") {
38
- onEsc == null ? void 0 : onEsc();
40
+ onEsc?.();
39
41
  }
40
42
  };
41
43
  React.useEffect(() => {
@@ -45,18 +47,26 @@ const Modal = ({
45
47
  }
46
48
  setContainer(container2);
47
49
  return () => {
48
- container2 == null ? void 0 : container2.removeEventListener("keydown", handleEscapeDown);
50
+ container2?.removeEventListener("keydown", handleEscapeDown);
49
51
  };
50
52
  }, []);
53
+ React.useEffect(() => {
54
+ if (state.isEnter) {
55
+ document.body.style.overflow = "hidden";
56
+ }
57
+ return () => {
58
+ document.body.style.overflow = "unset";
59
+ };
60
+ }, [state]);
51
61
  if (state.isEnter && container) {
52
62
  return reactDom.createPortal(
53
- /* @__PURE__ */ jsxRuntime.jsx(styles.ModalContainer, { status: state.status, zIndex, ...props, children: /* @__PURE__ */ jsxRuntime.jsxs(styles.ModalStyled, { fullScreen, className, size, children: [
63
+ /* @__PURE__ */ jsxRuntime.jsx(styles.ModalContainer, { status: state.status, zIndex, ...props, children: /* @__PURE__ */ jsxRuntime.jsxs(styles.ModalStyled, { fullScreen, className, size, width, children: [
54
64
  /* @__PURE__ */ jsxRuntime.jsxs(styles.ModalHeaderStyled, { children: [
55
65
  title && /* @__PURE__ */ jsxRuntime.jsx(Title, { size, children: title }),
56
- closeButton && /* @__PURE__ */ jsxRuntime.jsx(Button, { view: "icon", size, onClick: onClickClose, children: /* @__PURE__ */ jsxRuntime.jsx(iconClose, { width: 16, height: 16 }) })
66
+ closeButton && /* @__PURE__ */ jsxRuntime.jsx(Button, { view: "icon", size, onClick: onClickClose, "aria-label": "Close", children: /* @__PURE__ */ jsxRuntime.jsx(iconClose, { width: 16, height: 16 }) })
57
67
  ] }),
58
68
  description && /* @__PURE__ */ jsxRuntime.jsx(Text, { size, children: description }),
59
- children,
69
+ /* @__PURE__ */ jsxRuntime.jsx(styles.ModalContentStyled, { scrollable: !fullScreen, children }),
60
70
  footer && /* @__PURE__ */ jsxRuntime.jsx(styles.ModalFooterStyled, { className: classNameFooter, children: footer })
61
71
  ] }) }),
62
72
  container
@@ -1,4 +1,4 @@
1
1
  import { default as React } from 'react';
2
2
  import { IModalProps } from './types';
3
- declare const Modal: ({ open, title, size, closeButton, onClickClose, onEsc, zIndex, description, children, footer, fullScreen, classNameFooter, className, ...props }: IModalProps) => React.ReactNode;
3
+ declare const Modal: ({ open, title, size, closeButton, onClickClose, onEsc, zIndex, description, children, footer, fullScreen, classNameFooter, className, width, ...props }: IModalProps) => React.ReactNode;
4
4
  export default Modal;