@quen-ui/components 0.0.14 → 1.0.0

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 (483) 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 +7 -3
  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 +33 -4
  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 +17 -7
  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 +10 -17
  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 +571 -0
  270. package/dist/RichTextEditor/plugins.d.ts +2 -0
  271. package/dist/RichTextEditor/plugins.es.js +571 -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/_virtual/client.cjs.js +5 -0
  379. package/dist/_virtual/client.cjs2.js +4 -0
  380. package/dist/_virtual/client.es.js +5 -0
  381. package/dist/_virtual/client.es2.js +4 -0
  382. package/dist/_virtual/index.cjs.js +4 -0
  383. package/dist/_virtual/index.es.js +4 -0
  384. package/dist/_virtual/react-dom-client.development.cjs.js +4 -0
  385. package/dist/_virtual/react-dom-client.development.es.js +4 -0
  386. package/dist/_virtual/react-dom-client.production.cjs.js +4 -0
  387. package/dist/_virtual/react-dom-client.production.es.js +4 -0
  388. package/dist/_virtual/scheduler.development.cjs.js +4 -0
  389. package/dist/_virtual/scheduler.development.es.js +4 -0
  390. package/dist/_virtual/scheduler.production.cjs.js +4 -0
  391. package/dist/_virtual/scheduler.production.es.js +4 -0
  392. package/dist/assets/box.svg.cjs.js +21 -0
  393. package/dist/assets/box.svg.es.js +5 -0
  394. package/dist/index.d.ts +1 -50
  395. package/dist/message/Message.cjs.js +42 -0
  396. package/dist/message/Message.d.ts +3 -0
  397. package/dist/message/Message.es.js +43 -0
  398. package/dist/message/MessageContext.cjs.js +101 -0
  399. package/dist/message/MessageContext.d.ts +4 -0
  400. package/dist/message/MessageContext.es.js +101 -0
  401. package/dist/message/index.cjs.js +8 -0
  402. package/dist/message/index.d.ts +6 -0
  403. package/dist/message/index.es.js +8 -0
  404. package/dist/message/styles.cjs.js +79 -0
  405. package/dist/message/styles.d.ts +11 -0
  406. package/dist/message/styles.es.js +79 -0
  407. package/dist/message/types.d.ts +42 -0
  408. package/dist/node_modules/@tabler/icons-react/dist/esm/createReactComponent.cjs.js +30 -0
  409. package/dist/node_modules/@tabler/icons-react/dist/esm/createReactComponent.es.js +31 -0
  410. package/dist/node_modules/@tabler/icons-react/dist/esm/defaultAttributes.cjs.js +23 -0
  411. package/dist/node_modules/@tabler/icons-react/dist/esm/defaultAttributes.es.js +24 -0
  412. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconAlignCenter.cjs.js +7 -0
  413. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconAlignCenter.es.js +7 -0
  414. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconAlignJustified.cjs.js +7 -0
  415. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconAlignJustified.es.js +7 -0
  416. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconAlignLeft.cjs.js +7 -0
  417. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconAlignLeft.es.js +7 -0
  418. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconAlignRight.cjs.js +7 -0
  419. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconAlignRight.es.js +7 -0
  420. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowBackUp.cjs.js +7 -0
  421. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowBackUp.es.js +7 -0
  422. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowForwardUp.cjs.js +7 -0
  423. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowForwardUp.es.js +7 -0
  424. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBlockquote.cjs.js +7 -0
  425. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBlockquote.es.js +7 -0
  426. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBold.cjs.js +7 -0
  427. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBold.es.js +7 -0
  428. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCheckbox.cjs.js +7 -0
  429. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCheckbox.es.js +7 -0
  430. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconClearFormatting.cjs.js +7 -0
  431. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconClearFormatting.es.js +7 -0
  432. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconH1.cjs.js +7 -0
  433. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconH1.es.js +7 -0
  434. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconH2.cjs.js +7 -0
  435. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconH2.es.js +7 -0
  436. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconHighlight.cjs.js +7 -0
  437. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconHighlight.es.js +7 -0
  438. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconImageInPicture.cjs.js +7 -0
  439. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconImageInPicture.es.js +7 -0
  440. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconItalic.cjs.js +7 -0
  441. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconItalic.es.js +7 -0
  442. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconLink.cjs.js +7 -0
  443. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconLink.es.js +7 -0
  444. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconList.cjs.js +7 -0
  445. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconList.es.js +7 -0
  446. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconListNumbers.cjs.js +7 -0
  447. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconListNumbers.es.js +7 -0
  448. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconStrikethrough.cjs.js +7 -0
  449. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconStrikethrough.es.js +7 -0
  450. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconSubscript.cjs.js +7 -0
  451. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconSubscript.es.js +7 -0
  452. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconSuperscript.cjs.js +7 -0
  453. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconSuperscript.es.js +7 -0
  454. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconTable.cjs.js +7 -0
  455. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconTable.es.js +7 -0
  456. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconTextColor.cjs.js +7 -0
  457. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconTextColor.es.js +7 -0
  458. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconUnderline.cjs.js +7 -0
  459. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconUnderline.es.js +7 -0
  460. package/dist/node_modules/react-dom/cjs/react-dom-client.development.cjs.js +19870 -0
  461. package/dist/node_modules/react-dom/cjs/react-dom-client.development.es.js +19870 -0
  462. package/dist/node_modules/react-dom/cjs/react-dom-client.production.cjs.js +11524 -0
  463. package/dist/node_modules/react-dom/cjs/react-dom-client.production.es.js +11524 -0
  464. package/dist/node_modules/react-dom/client.cjs.js +31 -0
  465. package/dist/node_modules/react-dom/client.es.js +31 -0
  466. package/dist/node_modules/scheduler/cjs/scheduler.development.cjs.js +264 -0
  467. package/dist/node_modules/scheduler/cjs/scheduler.development.es.js +264 -0
  468. package/dist/node_modules/scheduler/cjs/scheduler.production.cjs.js +259 -0
  469. package/dist/node_modules/scheduler/cjs/scheduler.production.es.js +259 -0
  470. package/dist/node_modules/scheduler/index.cjs.js +17 -0
  471. package/dist/node_modules/scheduler/index.es.js +17 -0
  472. package/dist/packages/components/index.cjs.js +93 -0
  473. package/dist/packages/components/index.es.js +93 -0
  474. package/dist/typography/Text/Text.es.js +3 -3
  475. package/dist/typography/Title/Title.cjs.js +2 -0
  476. package/dist/typography/Title/Title.d.ts +1 -1
  477. package/dist/typography/Title/Title.es.js +2 -0
  478. package/dist/typography/Title/styles.cjs.js +3 -0
  479. package/dist/typography/Title/styles.es.js +3 -0
  480. package/dist/typography/Title/types.d.ts +1 -0
  481. package/package.json +16 -13
  482. package/dist/index.cjs.js +0 -63
  483. package/dist/index.es.js +0 -63
@@ -1,4 +1,4 @@
1
- import { default as React } from 'react';
1
+ import { ReactNode } from 'react';
2
2
  import { ISwitchProps } from './types';
3
- declare const Switch: ({ className, size, defaultChecked, label, labelPosition, onChange, value, onClick, disabled, style, ...props }: ISwitchProps) => React.ReactNode;
3
+ declare const Switch: ({ className, size, defaultChecked, label, labelPosition, onChange, value, onClick, disabled, style, thumbIcon, id, ...props }: ISwitchProps) => ReactNode;
4
4
  export default Switch;
@@ -1,5 +1,7 @@
1
1
  import { jsxs, jsx } from "react/jsx-runtime";
2
- import { SwitchWrapperStyled, SwitchStyled } from "./styles.es.js";
2
+ import { useRef, useEffect } from "react";
3
+ import { useControllableState } from "@quen-ui/hooks";
4
+ import { SwitchWrapperStyled, SwitchStyled, SwitchThumbWrapper } from "./styles.es.js";
3
5
  import Text from "../typography/Text/Text.es.js";
4
6
  const Switch = ({
5
7
  className,
@@ -12,13 +14,27 @@ const Switch = ({
12
14
  onClick,
13
15
  disabled,
14
16
  style,
17
+ thumbIcon,
18
+ id,
15
19
  ...props
16
20
  }) => {
21
+ const refInput = useRef(null);
22
+ const [checked, setChecked] = useControllableState({
23
+ value,
24
+ defaultValue: defaultChecked
25
+ });
26
+ useEffect(() => {
27
+ setChecked(value ?? false);
28
+ }, [value]);
17
29
  const handleChange = (e) => {
18
- onChange == null ? void 0 : onChange(e.target.checked, e);
30
+ onChange?.(e.target.checked, e);
19
31
  };
20
32
  const handleClick = (e) => {
21
- onClick == null ? void 0 : onClick(e.target.checked, e);
33
+ onClick?.(e.target.checked, e);
34
+ setChecked(e.target.checked);
35
+ };
36
+ const handleClickThumbIcon = () => {
37
+ refInput.current?.click();
22
38
  };
23
39
  return /* @__PURE__ */ jsxs(
24
40
  SwitchWrapperStyled,
@@ -28,11 +44,13 @@ const Switch = ({
28
44
  style,
29
45
  ...props,
30
46
  children: [
31
- label && labelPosition === "after" && /* @__PURE__ */ jsx(Text, { size, as: "label", children: label }),
47
+ label && labelPosition === "after" && /* @__PURE__ */ jsx(Text, { size, as: "label", htmlForId: id, children: label }),
32
48
  /* @__PURE__ */ jsx(
33
49
  SwitchStyled,
34
50
  {
35
- "aria-checked": value,
51
+ ref: refInput,
52
+ id,
53
+ "aria-checked": checked,
36
54
  "aria-disabled": disabled,
37
55
  role: "switch",
38
56
  type: "checkbox",
@@ -40,8 +58,16 @@ const Switch = ({
40
58
  disabled,
41
59
  onClick: handleClick,
42
60
  onChange: handleChange,
43
- defaultChecked,
44
- checked: value
61
+ checked
62
+ }
63
+ ),
64
+ thumbIcon && /* @__PURE__ */ jsx(
65
+ SwitchThumbWrapper,
66
+ {
67
+ onClick: handleClickThumbIcon,
68
+ size,
69
+ checked,
70
+ children: thumbIcon
45
71
  }
46
72
  ),
47
73
  label && labelPosition === "before" && /* @__PURE__ */ jsx(Text, { size, as: "label", children: label })
@@ -11,6 +11,7 @@ const getSizing = (theme, size) => {
11
11
  };
12
12
  };
13
13
  const SwitchWrapperStyled = styled.div`
14
+ position: relative;
14
15
  display: flex;
15
16
  gap: 0.75rem;
16
17
  align-items: center;
@@ -26,16 +27,16 @@ const SwitchStyled = styled.input`
26
27
  width: calc(${({ theme, size }) => getSizing(theme, size).height}* 2);
27
28
  height: ${({ theme, size }) => getSizing(theme, size).height};
28
29
  margin: 0;
29
- background-color: ${({ theme }) => theme.colors.gray[4]};
30
+ background-color: ${({ theme }) => theme.components.Switch.background};
30
31
  border: ${({ theme }) => styled.css`
31
- ${theme.control.borderWidth} solid ${theme.colors.grayViolet[9]}
32
+ ${theme.control.borderWidth} solid ${theme.components.Switch.borderColor}
32
33
  `};
33
34
  cursor: pointer;
34
35
  transition:
35
36
  background-color 0.15s,
36
37
  border-color 0.15s;
37
38
  -webkit-appearance: none;
38
- border-radius: ${({ theme }) => theme.control.radius};
39
+ border-radius: ${({ theme }) => theme.components.Switch.radius};
39
40
 
40
41
  &::before {
41
42
  content: "";
@@ -44,7 +45,7 @@ const SwitchStyled = styled.input`
44
45
  box-sizing: border-box;
45
46
  width: ${({ theme, size }) => getSizing(theme, size).circleSize};
46
47
  height: ${({ theme, size }) => getSizing(theme, size).circleSize};
47
- background-color: ${({ theme }) => theme.colors.grayViolet[9]};
48
+ background-color: ${({ theme }) => theme.components.Switch.backgroundBefore};
48
49
  border-radius: 1rem;
49
50
  transition:
50
51
  transform 0.15s,
@@ -60,7 +61,7 @@ const SwitchStyled = styled.input`
60
61
  }
61
62
 
62
63
  &:checked {
63
- background-color: ${({ theme }) => theme.colors.violet[9]};
64
+ background-color: ${({ theme }) => theme.components.Switch.checkedBackground};
64
65
 
65
66
  &::before {
66
67
  transform: translateX(0);
@@ -68,11 +69,27 @@ const SwitchStyled = styled.input`
68
69
  }
69
70
 
70
71
  &:disabled {
71
- background-color: ${({ theme }) => theme.colors.gray[2]};
72
+ background-color: ${({ theme }) => theme.components.Switch.disabledBackground};
72
73
  &::before {
73
- background-color: ${({ theme }) => theme.colors.gray[4]};
74
+ background-color: ${({ theme }) => theme.components.Switch.disabledColor};
74
75
  }
75
76
  }
76
77
  `;
78
+ const SwitchThumbWrapper = styled.span`
79
+ position: absolute;
80
+ z-index: 1;
81
+ display: flex;
82
+ height: ${({ theme, size }) => getSizing(theme, size).circleSize};
83
+ width: ${({ theme, size }) => getSizing(theme, size).circleSize};
84
+ transition: margin-left 0.15s ease;
85
+ align-items: center;
86
+ justify-content: center;
87
+ margin-left: calc(
88
+ ${({ size }) => size === "l" ? "3px" : "4px"} +
89
+ ${({ checked, theme, size }) => checked ? `calc(${getSizing(theme, size).height} - ${size === "l" ? "3px" : "4px"})` : "0px"}
90
+ );
91
+ cursor: pointer;
92
+ `;
77
93
  exports.SwitchStyled = SwitchStyled;
94
+ exports.SwitchThumbWrapper = SwitchThumbWrapper;
78
95
  exports.SwitchWrapperStyled = SwitchWrapperStyled;
@@ -5,3 +5,7 @@ export declare const SwitchWrapperStyled: import('styled-components/dist/types')
5
5
  export declare const SwitchStyled: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, {
6
6
  size: TQuenSize;
7
7
  }>> & string;
8
+ export declare const SwitchThumbWrapper: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {
9
+ size: TQuenSize;
10
+ checked?: boolean;
11
+ }>> & string;
@@ -9,6 +9,7 @@ const getSizing = (theme, size) => {
9
9
  };
10
10
  };
11
11
  const SwitchWrapperStyled = styled.div`
12
+ position: relative;
12
13
  display: flex;
13
14
  gap: 0.75rem;
14
15
  align-items: center;
@@ -24,16 +25,16 @@ const SwitchStyled = styled.input`
24
25
  width: calc(${({ theme, size }) => getSizing(theme, size).height}* 2);
25
26
  height: ${({ theme, size }) => getSizing(theme, size).height};
26
27
  margin: 0;
27
- background-color: ${({ theme }) => theme.colors.gray[4]};
28
+ background-color: ${({ theme }) => theme.components.Switch.background};
28
29
  border: ${({ theme }) => css`
29
- ${theme.control.borderWidth} solid ${theme.colors.grayViolet[9]}
30
+ ${theme.control.borderWidth} solid ${theme.components.Switch.borderColor}
30
31
  `};
31
32
  cursor: pointer;
32
33
  transition:
33
34
  background-color 0.15s,
34
35
  border-color 0.15s;
35
36
  -webkit-appearance: none;
36
- border-radius: ${({ theme }) => theme.control.radius};
37
+ border-radius: ${({ theme }) => theme.components.Switch.radius};
37
38
 
38
39
  &::before {
39
40
  content: "";
@@ -42,7 +43,7 @@ const SwitchStyled = styled.input`
42
43
  box-sizing: border-box;
43
44
  width: ${({ theme, size }) => getSizing(theme, size).circleSize};
44
45
  height: ${({ theme, size }) => getSizing(theme, size).circleSize};
45
- background-color: ${({ theme }) => theme.colors.grayViolet[9]};
46
+ background-color: ${({ theme }) => theme.components.Switch.backgroundBefore};
46
47
  border-radius: 1rem;
47
48
  transition:
48
49
  transform 0.15s,
@@ -58,7 +59,7 @@ const SwitchStyled = styled.input`
58
59
  }
59
60
 
60
61
  &:checked {
61
- background-color: ${({ theme }) => theme.colors.violet[9]};
62
+ background-color: ${({ theme }) => theme.components.Switch.checkedBackground};
62
63
 
63
64
  &::before {
64
65
  transform: translateX(0);
@@ -66,13 +67,29 @@ const SwitchStyled = styled.input`
66
67
  }
67
68
 
68
69
  &:disabled {
69
- background-color: ${({ theme }) => theme.colors.gray[2]};
70
+ background-color: ${({ theme }) => theme.components.Switch.disabledBackground};
70
71
  &::before {
71
- background-color: ${({ theme }) => theme.colors.gray[4]};
72
+ background-color: ${({ theme }) => theme.components.Switch.disabledColor};
72
73
  }
73
74
  }
74
75
  `;
76
+ const SwitchThumbWrapper = styled.span`
77
+ position: absolute;
78
+ z-index: 1;
79
+ display: flex;
80
+ height: ${({ theme, size }) => getSizing(theme, size).circleSize};
81
+ width: ${({ theme, size }) => getSizing(theme, size).circleSize};
82
+ transition: margin-left 0.15s ease;
83
+ align-items: center;
84
+ justify-content: center;
85
+ margin-left: calc(
86
+ ${({ size }) => size === "l" ? "3px" : "4px"} +
87
+ ${({ checked, theme, size }) => checked ? `calc(${getSizing(theme, size).height} - ${size === "l" ? "3px" : "4px"})` : "0px"}
88
+ );
89
+ cursor: pointer;
90
+ `;
75
91
  export {
76
92
  SwitchStyled,
93
+ SwitchThumbWrapper,
77
94
  SwitchWrapperStyled
78
95
  };
@@ -21,5 +21,8 @@ export interface ISwitchProps {
21
21
  labelPosition?: "after" | "before";
22
22
  /** Inline styles */
23
23
  style?: CSSProperties;
24
+ /** Icon inside the thumb of the switch */
25
+ thumbIcon?: React.ReactNode;
26
+ id?: string;
24
27
  [key: string]: any;
25
28
  }
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  const jsxRuntime = require("react/jsx-runtime");
3
3
  const React = require("react");
4
+ const helpers = require("@quen-ui/helpers");
4
5
  const styles = require("./styles.cjs.js");
5
6
  const Tabs = require("./Tabs.cjs.js");
6
7
  const Tab = ({
@@ -13,20 +14,19 @@ const Tab = ({
13
14
  className
14
15
  }) => {
15
16
  const context = Tabs.useTabsContext();
16
- const [selected, setSelected] = React.useState(
17
- (context == null ? void 0 : context.value) === value
18
- );
17
+ const [selected, setSelected] = React.useState(context?.value === value);
19
18
  React.useEffect(() => {
20
- setSelected((context == null ? void 0 : context.value) === value);
21
- }, [context == null ? void 0 : context.value]);
19
+ setSelected(context?.value === value);
20
+ }, [context?.value]);
22
21
  const handleClick = (event) => {
23
- onClick == null ? void 0 : onClick(event);
24
- context == null ? void 0 : context.onChange(value);
22
+ onClick?.(event);
23
+ context?.onChange(value);
25
24
  };
26
25
  return /* @__PURE__ */ jsxRuntime.jsxs(
27
26
  styles.TabStyled,
28
27
  {
29
- className,
28
+ outline: context?.outline,
29
+ className: helpers.cnMerge(className, { "quen-ui__tab--active": selected }),
30
30
  size: "m",
31
31
  selected,
32
32
  onClick: handleClick,
@@ -1,5 +1,6 @@
1
1
  import { jsxs } from "react/jsx-runtime";
2
2
  import { useState, useEffect } from "react";
3
+ import { cnMerge } from "@quen-ui/helpers";
3
4
  import { TabStyled } from "./styles.es.js";
4
5
  import { useTabsContext } from "./Tabs.es.js";
5
6
  const Tab = ({
@@ -12,20 +13,19 @@ const Tab = ({
12
13
  className
13
14
  }) => {
14
15
  const context = useTabsContext();
15
- const [selected, setSelected] = useState(
16
- (context == null ? void 0 : context.value) === value
17
- );
16
+ const [selected, setSelected] = useState(context?.value === value);
18
17
  useEffect(() => {
19
- setSelected((context == null ? void 0 : context.value) === value);
20
- }, [context == null ? void 0 : context.value]);
18
+ setSelected(context?.value === value);
19
+ }, [context?.value]);
21
20
  const handleClick = (event) => {
22
- onClick == null ? void 0 : onClick(event);
23
- context == null ? void 0 : context.onChange(value);
21
+ onClick?.(event);
22
+ context?.onChange(value);
24
23
  };
25
24
  return /* @__PURE__ */ jsxs(
26
25
  TabStyled,
27
26
  {
28
- className,
27
+ outline: context?.outline,
28
+ className: cnMerge(className, { "quen-ui__tab--active": selected }),
29
29
  size: "m",
30
30
  selected,
31
31
  onClick: handleClick,
@@ -4,11 +4,11 @@ const Tabs = require("./Tabs.cjs.js");
4
4
  const styles = require("./styles.cjs.js");
5
5
  const TabPanel = ({ children, value }) => {
6
6
  const context = Tabs.useTabsContext();
7
- if ((context == null ? void 0 : context.keepMounted) === false && context.value === value) {
7
+ if (context?.keepMounted === false && context.value === value) {
8
8
  return /* @__PURE__ */ jsxRuntime.jsx(styles.TabPanelStyled, { children });
9
- } else if ((context == null ? void 0 : context.keepMounted) === false) {
9
+ } else if (context?.keepMounted === false) {
10
10
  return null;
11
11
  }
12
- return /* @__PURE__ */ jsxRuntime.jsx(styles.TabPanelStyled, { style: (context == null ? void 0 : context.value) !== value ? { display: "none" } : {}, children });
12
+ return /* @__PURE__ */ jsxRuntime.jsx(styles.TabPanelStyled, { style: context?.value !== value ? { display: "none" } : {}, children });
13
13
  };
14
14
  module.exports = TabPanel;
@@ -3,12 +3,12 @@ import { useTabsContext } from "./Tabs.es.js";
3
3
  import { TabPanelStyled } from "./styles.es.js";
4
4
  const TabPanel = ({ children, value }) => {
5
5
  const context = useTabsContext();
6
- if ((context == null ? void 0 : context.keepMounted) === false && context.value === value) {
6
+ if (context?.keepMounted === false && context.value === value) {
7
7
  return /* @__PURE__ */ jsx(TabPanelStyled, { children });
8
- } else if ((context == null ? void 0 : context.keepMounted) === false) {
8
+ } else if (context?.keepMounted === false) {
9
9
  return null;
10
10
  }
11
- return /* @__PURE__ */ jsx(TabPanelStyled, { style: (context == null ? void 0 : context.value) !== value ? { display: "none" } : {}, children });
11
+ return /* @__PURE__ */ jsx(TabPanelStyled, { style: context?.value !== value ? { display: "none" } : {}, children });
12
12
  };
13
13
  export {
14
14
  TabPanel as default
@@ -3,17 +3,18 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
3
3
  const jsxRuntime = require("react/jsx-runtime");
4
4
  const React = require("react");
5
5
  const TabsContext = React.createContext(null);
6
- const Tabs = ({ children, defaultValue, keepMounted, onChange }) => {
6
+ const Tabs = ({ children, defaultValue, keepMounted, onChange, outline }) => {
7
7
  const [value, setValue] = React.useState(defaultValue);
8
8
  const handleChange = (currentValue) => {
9
9
  setValue(currentValue);
10
- onChange == null ? void 0 : onChange(currentValue);
10
+ onChange?.(currentValue);
11
11
  };
12
12
  const context = React.useMemo(() => ({
13
13
  onChange: handleChange,
14
14
  value,
15
- keepMounted
16
- }), [value]);
15
+ keepMounted,
16
+ outline
17
+ }), [value, outline]);
17
18
  return /* @__PURE__ */ jsxRuntime.jsx(TabsContext.Provider, { value: context, children });
18
19
  };
19
20
  const useTabsContext = () => React.useContext(TabsContext);
@@ -1,5 +1,5 @@
1
1
  import { default as React } from 'react';
2
2
  import { ITabsProps, ITabsContext } from './types';
3
- declare const Tabs: ({ children, defaultValue, keepMounted, onChange }: ITabsProps) => React.ReactElement;
3
+ declare const Tabs: ({ children, defaultValue, keepMounted, onChange, outline }: ITabsProps) => React.ReactElement;
4
4
  export declare const useTabsContext: () => ITabsContext | null;
5
5
  export default Tabs;
@@ -1,17 +1,18 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { createContext, useState, useMemo, useContext } from "react";
3
3
  const TabsContext = createContext(null);
4
- const Tabs = ({ children, defaultValue, keepMounted, onChange }) => {
4
+ const Tabs = ({ children, defaultValue, keepMounted, onChange, outline }) => {
5
5
  const [value, setValue] = useState(defaultValue);
6
6
  const handleChange = (currentValue) => {
7
7
  setValue(currentValue);
8
- onChange == null ? void 0 : onChange(currentValue);
8
+ onChange?.(currentValue);
9
9
  };
10
10
  const context = useMemo(() => ({
11
11
  onChange: handleChange,
12
12
  value,
13
- keepMounted
14
- }), [value]);
13
+ keepMounted,
14
+ outline
15
+ }), [value, outline]);
15
16
  return /* @__PURE__ */ jsx(TabsContext.Provider, { value: context, children });
16
17
  };
17
18
  const useTabsContext = () => useContext(TabsContext);
@@ -1,12 +1,36 @@
1
1
  "use strict";
2
2
  const jsxRuntime = require("react/jsx-runtime");
3
+ const React = require("react");
4
+ const helpers = require("@quen-ui/helpers");
3
5
  const styles = require("./styles.cjs.js");
6
+ const Tabs = require("./Tabs.cjs.js");
4
7
  const TabsList = ({
5
8
  children,
6
9
  className,
7
10
  justify = "flex-start",
8
11
  grow
9
12
  }) => {
10
- return /* @__PURE__ */ jsxRuntime.jsx(styles.TabsListStyled, { className, justify, isGrow: grow, children });
13
+ const context = Tabs.useTabsContext();
14
+ const ref = React.useRef(null);
15
+ React.useLayoutEffect(() => {
16
+ const container = ref.current;
17
+ if (container) {
18
+ const background = helpers.findBackgroundElement(container);
19
+ if (background?.color) {
20
+ container.style.setProperty("--tab-background", background.color);
21
+ }
22
+ }
23
+ }, [context?.value]);
24
+ return /* @__PURE__ */ jsxRuntime.jsx(
25
+ styles.TabsListStyled,
26
+ {
27
+ ref,
28
+ className,
29
+ justify,
30
+ isGrow: grow,
31
+ outline: context?.outline,
32
+ children
33
+ }
34
+ );
11
35
  };
12
36
  module.exports = TabsList;
@@ -1,4 +1,4 @@
1
- import { default as React } from 'react';
1
+ import { ReactElement } from 'react';
2
2
  import { ITabsListProps } from './types';
3
- declare const TabsList: ({ children, className, justify, grow }: ITabsListProps) => React.ReactElement;
3
+ declare const TabsList: ({ children, className, justify, grow }: ITabsListProps) => ReactElement;
4
4
  export default TabsList;
@@ -1,12 +1,36 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
+ import { useRef, useLayoutEffect } from "react";
3
+ import { findBackgroundElement } from "@quen-ui/helpers";
2
4
  import { TabsListStyled } from "./styles.es.js";
5
+ import { useTabsContext } from "./Tabs.es.js";
3
6
  const TabsList = ({
4
7
  children,
5
8
  className,
6
9
  justify = "flex-start",
7
10
  grow
8
11
  }) => {
9
- return /* @__PURE__ */ jsx(TabsListStyled, { className, justify, isGrow: grow, children });
12
+ const context = useTabsContext();
13
+ const ref = useRef(null);
14
+ useLayoutEffect(() => {
15
+ const container = ref.current;
16
+ if (container) {
17
+ const background = findBackgroundElement(container);
18
+ if (background?.color) {
19
+ container.style.setProperty("--tab-background", background.color);
20
+ }
21
+ }
22
+ }, [context?.value]);
23
+ return /* @__PURE__ */ jsx(
24
+ TabsListStyled,
25
+ {
26
+ ref,
27
+ className,
28
+ justify,
29
+ isGrow: grow,
30
+ outline: context?.outline,
31
+ children
32
+ }
33
+ );
10
34
  };
11
35
  export {
12
36
  TabsList as default
@@ -2,14 +2,78 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const styled = require("styled-components");
4
4
  const Text = require("../typography/Text/Text.cjs.js");
5
+ const getTabStyled = (theme, selected, outline) => {
6
+ if (outline) {
7
+ return styled.css`
8
+ border-style: solid;
9
+ border-width: 1px;
10
+ border-top-left-radius: ${theme.components.Tabs.radius};
11
+ border-top-right-radius: ${theme.components.Tabs.radius};
12
+ border-color: transparent;
13
+ background: transparent;
14
+ color: ${theme.components.Tabs.color};
15
+
16
+ ${selected ? styled.css`
17
+ border-top-color: ${theme.components.Tabs.hoverColor};
18
+ border-left-color: ${theme.components.Tabs.hoverColor};
19
+ border-right-color: ${theme.components.Tabs.hoverColor};
20
+ border-bottom-color: var(--tab-background, white);
21
+
22
+ &::after {
23
+ content: "";
24
+ position: absolute;
25
+ left: -1px;
26
+ right: -1px;
27
+ bottom: calc(-1 * (${theme.components.Tabs.borderWidth}));
28
+ height: ${theme.components.Tabs.borderWidth};
29
+ background: transparent;
30
+ }
31
+ ` : styled.css`
32
+ border-top-color: transparent;
33
+ border-left-color: transparent;
34
+ border-right-color: transparent;
35
+ `};
36
+
37
+ &:hover:not(:disabled) {
38
+ color: ${theme.components.Tabs.hoverColor};
39
+ }
40
+
41
+ &:disabled {
42
+ cursor: not-allowed;
43
+ color: ${theme.components.Tabs.disabledColor};
44
+ }
45
+ `;
46
+ }
47
+ return styled.css`
48
+ border-radius: ${`${theme.components.Tabs.radius} ${theme.components.Tabs.radius} 0 0`};
49
+ border-width: 0 0 0.125rem 0;
50
+ border-style: solid;
51
+ border-color: transparent;
52
+ background: transparent;
53
+ color: ${theme.components.Tabs.color};
54
+
55
+ ${selected && styled.css`
56
+ border-color: ${theme.components.Tabs.activeColor};
57
+ `}
58
+
59
+ &:disabled {
60
+ cursor: not-allowed;
61
+ color: ${theme.components.Tabs.disabledColor};
62
+ }
63
+
64
+ &:hover:not(:disabled) {
65
+ color: ${theme.components.Tabs.hoverColor};
66
+ border-color: ${theme.components.Tabs.hoverBorderColor};
67
+ * {
68
+ color: ${theme.components.Tabs.hoverColor};
69
+ }
70
+ }
71
+ `;
72
+ };
5
73
  const TabStyled = styled(Text).attrs({ as: "button" }).withConfig({
6
- shouldForwardProp: (prop) => prop !== "isSelected"
74
+ shouldForwardProp: (prop) => !["selected", "outline"].includes(prop)
7
75
  })`
8
- border-radius: 0.25rem 0.25rem 0 0;
9
- border-width: 0 0 0.125rem 0;
10
- border-style: solid;
11
- border-color: transparent;
12
- background: transparent;
76
+
13
77
  position: relative;
14
78
  padding: 0.625rem;
15
79
  white-space: nowrap;
@@ -19,27 +83,43 @@ const TabStyled = styled(Text).attrs({ as: "button" }).withConfig({
19
83
  justify-content: center;
20
84
  cursor: pointer;
21
85
  gap: 8px;
22
- color: ${({ theme }) => theme.textColor};
23
-
24
- ${({ selected, theme }) => selected && styled.css`
25
- border-color: ${theme.colors[theme.primaryColor][9]};
26
- `}
27
86
 
28
- &:disabled {
29
- cursor: not-allowed;
30
- color: ${({ theme }) => theme.colors.gray[4]};
31
- }
87
+ ${({ theme, selected, outline }) => getTabStyled(theme, selected, outline)};
32
88
 
33
- &:hover:not(:disabled) {
34
- color: ${({ theme }) => theme.colors.grayViolet[9]};
35
- border-color: ${({ theme }) => theme.colors[theme.primaryColor][7]};
36
- * {
37
- color: ${({ theme }) => theme.colors.grayViolet[9]};
38
- }
39
- }
40
89
  `;
90
+ const getTabsListStyled = (theme, outline) => {
91
+ if (outline) {
92
+ return styled.css`
93
+ position: relative;
94
+ &::before {
95
+ content: "";
96
+ position: absolute;
97
+ left: 0;
98
+ right: 0;
99
+ bottom: 0;
100
+ height: ${theme.components.Tabs.borderWidth};
101
+ background: ${theme.components.Tabs.hoverColor};
102
+ }
103
+ `;
104
+ }
105
+ if (!outline) {
106
+ return styled.css`
107
+ &:before {
108
+ content: "";
109
+ position: absolute;
110
+ border-color: ${theme.components.Tabs.hoverColor};
111
+ border-width: ${theme.components.Tabs.borderWidth};
112
+ border-style: solid;
113
+ bottom: 0;
114
+ inset-inline-start: 0;
115
+ inset-inline-end: 0;
116
+ top: unset;
117
+ }
118
+ `;
119
+ }
120
+ };
41
121
  const TabsListStyled = styled.div.withConfig({
42
- shouldForwardProp: (prop) => !["justify", "isGrow"].includes(prop)
122
+ shouldForwardProp: (prop) => !["justify", "isGrow", "outline"].includes(prop)
43
123
  })`
44
124
  display: flex;
45
125
  flex-wrap: wrap;
@@ -54,17 +134,7 @@ const TabsListStyled = styled.div.withConfig({
54
134
  }
55
135
  `};
56
136
 
57
- &:before {
58
- content: "";
59
- position: absolute;
60
- border-color: ${({ theme }) => theme.colors.grayViolet[9]};
61
- border-width: 0.0625rem;
62
- border-style: solid;
63
- bottom: 0;
64
- inset-inline-start: 0;
65
- inset-inline-end: 0;
66
- top: unset;
67
- }
137
+ ${({ theme, outline }) => getTabsListStyled(theme, outline)}
68
138
  `;
69
139
  const TabPanelStyled = styled.div`
70
140
  padding-top: 0.625rem;