venice-ui 2.4.13 → 3.0.2

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 (396) hide show
  1. package/dist/cjs/components/ActionPanel/ActionPanel.js +33 -0
  2. package/dist/cjs/components/ActionPanel/ActionPanel.styles.js +76 -0
  3. package/dist/cjs/components/ActionPanel/index.js +17 -0
  4. package/dist/cjs/components/Button/Button.js +17 -7
  5. package/dist/cjs/components/Button/Button.styles.js +46 -66
  6. package/dist/cjs/components/Button/index.js +15 -3
  7. package/dist/cjs/components/ButtonsFooter/ButtonsFooter.js +32 -21
  8. package/dist/cjs/components/ButtonsFooter/ButtonsFooter.styles.js +21 -0
  9. package/dist/cjs/components/ButtonsFooter/index.js +15 -3
  10. package/dist/cjs/components/Card/Card.js +15 -9
  11. package/dist/cjs/components/Card/Card.styles.js +9 -10
  12. package/dist/cjs/components/Card/index.js +15 -3
  13. package/dist/cjs/components/Checkbox/Checkbox.js +30 -13
  14. package/dist/cjs/components/Checkbox/Checkbox.styles.js +35 -20
  15. package/dist/cjs/components/ComponentRoot/ComponentRoot.js +27 -0
  16. package/dist/cjs/components/ComponentRoot/ComponentRoot.styles.js +72 -0
  17. package/dist/cjs/components/{ElementHeader → ComponentRoot}/index.js +2 -1
  18. package/dist/cjs/components/DatePicker/Calendar.js +73 -33
  19. package/dist/cjs/components/DatePicker/CalendarContent.js +58 -39
  20. package/dist/cjs/components/DatePicker/CalendarHeader.js +23 -20
  21. package/dist/cjs/components/DatePicker/DatePicker.js +61 -35
  22. package/dist/cjs/components/DatePicker/DatePicker.styles.js +166 -0
  23. package/dist/cjs/components/DatePicker/index.js +5 -15
  24. package/dist/cjs/components/Dropdown/Dropdown.js +76 -52
  25. package/dist/cjs/components/Dropdown/Dropdown.styles.js +48 -7
  26. package/dist/cjs/components/Dropdown/index.js +0 -1
  27. package/dist/cjs/components/DropdownMenu/DropdownMenu.js +79 -50
  28. package/dist/cjs/components/DropdownMenu/DropdownMenu.styles.js +10 -44
  29. package/dist/cjs/components/File/File.js +60 -24
  30. package/dist/cjs/components/File/File.styles.js +44 -3
  31. package/dist/cjs/components/Filters/Filters.js +253 -92
  32. package/dist/cjs/components/Filters/Filters.styles.js +83 -15
  33. package/dist/cjs/components/Form/Form.js +24 -30
  34. package/dist/cjs/components/Form/{FormElements.js → Form.styles.js} +8 -10
  35. package/dist/cjs/components/Header/Header.js +49 -0
  36. package/dist/cjs/components/Header/Header.styles.js +33 -0
  37. package/dist/cjs/components/{Toogle → Header}/index.js +1 -1
  38. package/dist/cjs/components/HelperText/HelperText.js +18 -0
  39. package/dist/cjs/components/HelperText/HelperText.styles.js +20 -0
  40. package/dist/cjs/components/{FillSelect → HelperText}/index.js +1 -1
  41. package/dist/cjs/components/Icon/Icon.js +74 -0
  42. package/dist/cjs/components/Icon/Icon.styles.js +63 -0
  43. package/dist/cjs/components/{Icons → Icon}/IconsPath.js +3 -0
  44. package/dist/cjs/{Theme → components/Icon}/index.js +1 -1
  45. package/dist/cjs/components/Input/Input.js +58 -74
  46. package/dist/cjs/components/Input/Input.styles.js +38 -89
  47. package/dist/cjs/components/Input/index.js +0 -1
  48. package/dist/cjs/components/Label/Label.js +24 -0
  49. package/dist/cjs/components/Label/Label.styles.js +38 -0
  50. package/dist/cjs/components/Label/index.js +5 -0
  51. package/dist/cjs/components/List/List.js +104 -101
  52. package/dist/cjs/components/List/iLst.styles.js +68 -0
  53. package/dist/cjs/components/Loader/Loader.js +12 -9
  54. package/dist/cjs/components/Loader/Loader.styles.js +15 -75
  55. package/dist/cjs/components/Modal/Modal.js +32 -34
  56. package/dist/cjs/components/Modal/Modal.styles.js +82 -24
  57. package/dist/cjs/components/Modal/index.js +15 -3
  58. package/dist/cjs/components/Numerical/Numerical.js +138 -0
  59. package/dist/cjs/components/Numerical/index.js +5 -0
  60. package/dist/cjs/components/OptionsPanel/OptionsPanel.js +79 -0
  61. package/dist/cjs/components/OptionsPanel/OptionsPanel.styles.js +75 -0
  62. package/dist/cjs/components/OptionsPanel/index.js +17 -0
  63. package/dist/cjs/components/Pagination/Pagination.js +39 -29
  64. package/dist/cjs/components/Pagination/Pagination.styles.js +45 -19
  65. package/dist/cjs/components/SearchInput/SearchInput.js +83 -0
  66. package/dist/cjs/components/SearchInput/SearchInput.styles.js +50 -0
  67. package/dist/cjs/components/SearchInput/index.js +17 -0
  68. package/dist/cjs/components/Section/Section.js +15 -8
  69. package/dist/cjs/components/Section/Section.styles.js +13 -12
  70. package/dist/cjs/components/Section/index.js +1 -0
  71. package/dist/cjs/components/Selector/Selector.js +38 -25
  72. package/dist/cjs/components/Selector/Selector.styles.js +28 -56
  73. package/dist/cjs/components/Sidepanel/Sidepanel.js +47 -23
  74. package/dist/cjs/components/Sidepanel/Sidepanel.styles.js +85 -14
  75. package/dist/cjs/components/Sort/Sort.js +19 -16
  76. package/dist/cjs/components/Sort/Sort.styles.js +5 -19
  77. package/dist/cjs/components/Table/Cell.js +23 -13
  78. package/dist/cjs/components/Table/HeaderCell.js +14 -7
  79. package/dist/cjs/components/Table/Table.js +62 -43
  80. package/dist/cjs/components/Table/Table.styles.js +143 -43
  81. package/dist/cjs/components/Table/index.js +2 -0
  82. package/dist/cjs/components/Tag/Tag.js +24 -0
  83. package/dist/cjs/components/Tag/Tag.styles.js +23 -0
  84. package/dist/cjs/components/{Chips → Tag}/index.js +1 -1
  85. package/dist/cjs/components/Tile/Tile.js +15 -6
  86. package/dist/cjs/components/Tile/Tile.styles.js +15 -18
  87. package/dist/cjs/components/Toggle/Toggle.js +29 -0
  88. package/dist/cjs/components/Toggle/Toggle.styles.js +49 -0
  89. package/dist/cjs/components/{Tooltip → Toggle}/index.js +1 -1
  90. package/dist/cjs/components/Typography/Typography.js +115 -0
  91. package/dist/cjs/components/Typography/index.js +1 -1
  92. package/dist/cjs/config/componentTheme.js +29 -0
  93. package/dist/cjs/config/config.js +1453 -0
  94. package/dist/cjs/config/index.js +20 -0
  95. package/dist/cjs/config/themes.js +64 -0
  96. package/dist/cjs/config/wordbook.js +74 -0
  97. package/dist/cjs/example/Colors.js +57 -8
  98. package/dist/cjs/example/ExampleComponent.js +5 -6
  99. package/dist/cjs/example/Icons.js +63 -0
  100. package/dist/cjs/example/TypographyExample.js +26 -13
  101. package/dist/cjs/index.js +13 -8
  102. package/dist/esm/components/ActionPanel/ActionPanel.js +26 -0
  103. package/dist/esm/components/ActionPanel/ActionPanel.styles.js +70 -0
  104. package/dist/esm/components/ActionPanel/index.js +1 -0
  105. package/dist/esm/components/Button/Button.js +17 -7
  106. package/dist/esm/components/Button/Button.styles.js +45 -65
  107. package/dist/esm/components/Button/index.js +1 -1
  108. package/dist/esm/components/ButtonsFooter/ButtonsFooter.js +32 -21
  109. package/dist/esm/components/ButtonsFooter/ButtonsFooter.styles.js +15 -0
  110. package/dist/esm/components/ButtonsFooter/index.js +1 -1
  111. package/dist/esm/components/Card/Card.js +16 -10
  112. package/dist/esm/components/Card/Card.styles.js +8 -9
  113. package/dist/esm/components/Card/index.js +1 -1
  114. package/dist/esm/components/Checkbox/Checkbox.js +31 -14
  115. package/dist/esm/components/Checkbox/Checkbox.styles.js +34 -19
  116. package/dist/esm/components/ComponentRoot/ComponentRoot.js +20 -0
  117. package/dist/esm/components/ComponentRoot/ComponentRoot.styles.js +66 -0
  118. package/dist/esm/components/ComponentRoot/index.js +2 -0
  119. package/dist/esm/components/DatePicker/Calendar.js +57 -27
  120. package/dist/esm/components/DatePicker/CalendarContent.js +42 -33
  121. package/dist/esm/components/DatePicker/CalendarHeader.js +23 -20
  122. package/dist/esm/components/DatePicker/DatePicker.js +44 -28
  123. package/dist/esm/components/DatePicker/DatePicker.styles.js +130 -0
  124. package/dist/esm/components/DatePicker/index.js +2 -1
  125. package/dist/esm/components/Dropdown/Dropdown.js +61 -47
  126. package/dist/esm/components/Dropdown/Dropdown.styles.js +48 -7
  127. package/dist/esm/components/Dropdown/index.js +0 -1
  128. package/dist/esm/components/DropdownMenu/DropdownMenu.js +64 -45
  129. package/dist/esm/components/DropdownMenu/DropdownMenu.styles.js +9 -43
  130. package/dist/esm/components/File/File.js +44 -18
  131. package/dist/esm/components/File/File.styles.js +44 -3
  132. package/dist/esm/components/Filters/Filters.js +237 -86
  133. package/dist/esm/components/Filters/Filters.styles.js +83 -15
  134. package/dist/esm/components/Form/Form.js +24 -30
  135. package/dist/esm/components/Form/Form.styles.js +20 -0
  136. package/dist/esm/components/Header/Header.js +42 -0
  137. package/dist/esm/components/Header/Header.styles.js +27 -0
  138. package/dist/esm/components/Header/index.js +1 -0
  139. package/dist/esm/components/HelperText/HelperText.js +11 -0
  140. package/dist/esm/components/HelperText/HelperText.styles.js +14 -0
  141. package/dist/esm/components/HelperText/index.js +1 -0
  142. package/dist/esm/components/Icon/Icon.js +37 -0
  143. package/dist/esm/components/Icon/Icon.styles.js +57 -0
  144. package/dist/esm/components/{Icons → Icon}/IconsPath.js +3 -0
  145. package/dist/esm/components/Icon/index.js +1 -0
  146. package/dist/esm/components/Input/Input.js +44 -70
  147. package/dist/esm/components/Input/Input.styles.js +37 -88
  148. package/dist/esm/components/Input/index.js +1 -2
  149. package/dist/esm/components/Label/Label.js +17 -0
  150. package/dist/esm/components/Label/Label.styles.js +32 -0
  151. package/dist/esm/components/Label/index.js +1 -0
  152. package/dist/esm/components/List/List.js +104 -101
  153. package/dist/esm/components/List/iLst.styles.js +62 -0
  154. package/dist/esm/components/Loader/Loader.js +13 -10
  155. package/dist/esm/components/Loader/Loader.styles.js +12 -51
  156. package/dist/esm/components/Modal/Modal.js +30 -12
  157. package/dist/esm/components/Modal/Modal.styles.js +48 -20
  158. package/dist/esm/components/Modal/index.js +1 -1
  159. package/dist/esm/components/Numerical/Numerical.js +101 -0
  160. package/dist/esm/components/Numerical/index.js +1 -0
  161. package/dist/esm/components/OptionsPanel/OptionsPanel.js +42 -0
  162. package/dist/esm/components/OptionsPanel/OptionsPanel.styles.js +69 -0
  163. package/dist/esm/components/OptionsPanel/index.js +1 -0
  164. package/dist/esm/components/Pagination/Pagination.js +39 -29
  165. package/dist/esm/components/Pagination/Pagination.styles.js +44 -18
  166. package/dist/esm/components/SearchInput/SearchInput.js +46 -0
  167. package/dist/esm/components/SearchInput/SearchInput.styles.js +44 -0
  168. package/dist/esm/components/SearchInput/index.js +1 -0
  169. package/dist/esm/components/Section/Section.js +16 -9
  170. package/dist/esm/components/Section/Section.styles.js +12 -11
  171. package/dist/esm/components/Section/index.js +1 -0
  172. package/dist/esm/components/Selector/Selector.js +22 -19
  173. package/dist/esm/components/Selector/Selector.styles.js +27 -55
  174. package/dist/esm/components/Sidepanel/Sidepanel.js +31 -17
  175. package/dist/esm/components/Sidepanel/Sidepanel.styles.js +51 -10
  176. package/dist/esm/components/Sort/Sort.js +20 -17
  177. package/dist/esm/components/Sort/Sort.styles.js +4 -18
  178. package/dist/esm/components/Table/Cell.js +24 -14
  179. package/dist/esm/components/Table/HeaderCell.js +15 -8
  180. package/dist/esm/components/Table/Table.js +47 -38
  181. package/dist/esm/components/Table/Table.styles.js +142 -42
  182. package/dist/esm/components/Table/index.js +2 -0
  183. package/dist/esm/components/Tag/Tag.js +17 -0
  184. package/dist/esm/components/Tag/Tag.styles.js +17 -0
  185. package/dist/esm/components/Tag/index.js +1 -0
  186. package/dist/esm/components/Tile/Tile.js +16 -7
  187. package/dist/esm/components/Tile/Tile.styles.js +14 -17
  188. package/dist/esm/components/Toggle/Toggle.js +22 -0
  189. package/dist/esm/components/Toggle/Toggle.styles.js +43 -0
  190. package/dist/esm/components/Toggle/index.js +1 -0
  191. package/dist/esm/components/Typography/Typography.js +109 -0
  192. package/dist/esm/components/Typography/index.js +1 -1
  193. package/dist/esm/config/componentTheme.js +24 -0
  194. package/dist/esm/config/config.js +1446 -0
  195. package/dist/esm/config/index.js +4 -0
  196. package/dist/esm/config/themes.js +61 -0
  197. package/dist/esm/config/wordbook.js +71 -0
  198. package/dist/esm/example/Colors.js +57 -8
  199. package/dist/esm/example/ExampleComponent.js +5 -6
  200. package/dist/esm/example/Icons.js +56 -0
  201. package/dist/esm/example/TypographyExample.js +27 -14
  202. package/dist/esm/index.js +13 -8
  203. package/dist/types/components/ActionPanel/ActionPanel.d.ts +18 -0
  204. package/dist/types/components/ActionPanel/ActionPanel.styles.d.ts +37 -0
  205. package/dist/types/components/ActionPanel/index.d.ts +1 -0
  206. package/dist/types/components/Aligment/Aligment.styles.d.ts +1 -1
  207. package/dist/types/components/Button/Button.d.ts +11 -9
  208. package/dist/types/components/Button/Button.styles.d.ts +10 -13
  209. package/dist/types/components/Button/index.d.ts +1 -1
  210. package/dist/types/components/ButtonsFooter/ButtonsFooter.d.ts +13 -11
  211. package/dist/types/components/ButtonsFooter/ButtonsFooter.styles.d.ts +13 -0
  212. package/dist/types/components/ButtonsFooter/index.d.ts +1 -1
  213. package/dist/types/components/Card/Card.d.ts +8 -8
  214. package/dist/types/components/Card/Card.styles.d.ts +7 -4
  215. package/dist/types/components/Card/index.d.ts +1 -1
  216. package/dist/types/components/Checkbox/Checkbox.d.ts +17 -10
  217. package/dist/types/components/Checkbox/Checkbox.styles.d.ts +12 -8
  218. package/dist/types/components/ComponentRoot/ComponentRoot.d.ts +29 -0
  219. package/dist/types/components/ComponentRoot/ComponentRoot.styles.d.ts +15 -0
  220. package/dist/types/components/ComponentRoot/index.d.ts +2 -0
  221. package/dist/types/components/DatePicker/Calendar.d.ts +11 -15
  222. package/dist/types/components/DatePicker/CalendarContent.d.ts +7 -7
  223. package/dist/types/components/DatePicker/CalendarHeader.d.ts +7 -7
  224. package/dist/types/components/DatePicker/DatePicker.d.ts +25 -15
  225. package/dist/types/components/DatePicker/DatePicker.styles.d.ts +57 -0
  226. package/dist/types/components/DatePicker/index.d.ts +2 -1
  227. package/dist/types/components/Dropdown/Dropdown.d.ts +31 -12
  228. package/dist/types/components/Dropdown/Dropdown.styles.d.ts +21 -1
  229. package/dist/types/components/Dropdown/index.d.ts +0 -1
  230. package/dist/types/components/DropdownMenu/DropdownMenu.d.ts +7 -11
  231. package/dist/types/components/DropdownMenu/DropdownMenu.styles.d.ts +5 -15
  232. package/dist/types/components/File/File.d.ts +20 -3
  233. package/dist/types/components/File/File.styles.d.ts +18 -1
  234. package/dist/types/components/Filters/Filters.d.ts +8 -6
  235. package/dist/types/components/Filters/Filters.styles.d.ts +46 -5
  236. package/dist/types/components/Form/Form.d.ts +7 -5
  237. package/dist/types/components/Form/Form.styles.d.ts +14 -0
  238. package/dist/types/components/{ElementHeader/ElementHeader.d.ts → Header/Header.d.ts} +10 -11
  239. package/dist/types/components/Header/Header.styles.d.ts +13 -0
  240. package/dist/types/components/Header/index.d.ts +1 -0
  241. package/dist/types/components/HelperText/HelperText.d.ts +12 -0
  242. package/dist/types/components/HelperText/HelperText.styles.d.ts +10 -0
  243. package/dist/types/components/HelperText/index.d.ts +1 -0
  244. package/dist/types/components/Icon/Icon.d.ts +20 -0
  245. package/dist/types/components/Icon/Icon.styles.d.ts +18 -0
  246. package/dist/types/components/{Icons → Icon}/IconsPath.d.ts +3 -0
  247. package/dist/types/components/Icon/index.d.ts +1 -0
  248. package/dist/types/components/Input/Input.d.ts +28 -9
  249. package/dist/types/components/Input/Input.styles.d.ts +11 -31
  250. package/dist/types/components/Input/index.d.ts +1 -2
  251. package/dist/types/components/Label/Label.d.ts +16 -0
  252. package/dist/types/components/Label/Label.styles.d.ts +18 -0
  253. package/dist/types/components/Label/index.d.ts +1 -0
  254. package/dist/types/components/List/List.d.ts +17 -14
  255. package/dist/types/components/List/iLst.styles.d.ts +29 -0
  256. package/dist/types/components/Loader/Loader.d.ts +5 -3
  257. package/dist/types/components/Loader/Loader.styles.d.ts +6 -11
  258. package/dist/types/components/Modal/Modal.d.ts +11 -6
  259. package/dist/types/components/Modal/Modal.styles.d.ts +15 -5
  260. package/dist/types/components/Modal/index.d.ts +1 -1
  261. package/dist/types/components/Numerical/Numerical.d.ts +39 -0
  262. package/dist/types/components/Numerical/index.d.ts +1 -0
  263. package/dist/types/components/OptionsPanel/OptionsPanel.d.ts +22 -0
  264. package/dist/types/components/OptionsPanel/OptionsPanel.styles.d.ts +37 -0
  265. package/dist/types/components/OptionsPanel/index.d.ts +1 -0
  266. package/dist/types/components/Pagination/Pagination.d.ts +6 -2
  267. package/dist/types/components/Pagination/Pagination.styles.d.ts +20 -2
  268. package/dist/types/components/SearchInput/SearchInput.d.ts +11 -0
  269. package/dist/types/components/SearchInput/SearchInput.styles.d.ts +13 -0
  270. package/dist/types/components/SearchInput/index.d.ts +1 -0
  271. package/dist/types/components/Section/Section.d.ts +7 -5
  272. package/dist/types/components/Section/Section.styles.d.ts +13 -8
  273. package/dist/types/components/Section/index.d.ts +1 -0
  274. package/dist/types/components/Selector/Selector.d.ts +18 -9
  275. package/dist/types/components/Selector/Selector.styles.d.ts +10 -13
  276. package/dist/types/components/Sidepanel/Sidepanel.d.ts +6 -3
  277. package/dist/types/components/Sidepanel/Sidepanel.styles.d.ts +14 -1
  278. package/dist/types/components/Sort/Sort.d.ts +3 -1
  279. package/dist/types/components/Sort/Sort.styles.d.ts +1 -2
  280. package/dist/types/components/Table/Cell.d.ts +7 -5
  281. package/dist/types/components/Table/HeaderCell.d.ts +5 -1
  282. package/dist/types/components/Table/Table.d.ts +21 -17
  283. package/dist/types/components/Table/Table.styles.d.ts +58 -12
  284. package/dist/types/components/Table/index.d.ts +2 -0
  285. package/dist/types/components/Tag/Tag.d.ts +13 -0
  286. package/dist/types/components/Tag/Tag.styles.d.ts +10 -0
  287. package/dist/types/components/Tag/index.d.ts +1 -0
  288. package/dist/types/components/Tile/Tile.d.ts +11 -8
  289. package/dist/types/components/Tile/Tile.styles.d.ts +13 -7
  290. package/dist/types/components/Toggle/Toggle.d.ts +25 -0
  291. package/dist/types/components/Toggle/Toggle.styles.d.ts +24 -0
  292. package/dist/types/components/Toggle/index.d.ts +1 -0
  293. package/dist/types/components/Typography/Typography.d.ts +26 -0
  294. package/dist/types/components/Typography/index.d.ts +1 -1
  295. package/dist/types/config/componentTheme.d.ts +10 -0
  296. package/dist/types/config/config.d.ts +4268 -0
  297. package/dist/types/config/index.d.ts +4 -0
  298. package/dist/types/config/themes.d.ts +64 -0
  299. package/dist/types/config/wordbook.d.ts +55 -0
  300. package/dist/types/example/ExampleComponent.d.ts +17 -17
  301. package/dist/types/example/Icons.d.ts +2 -0
  302. package/dist/types/index.d.ts +13 -8
  303. package/dist/types/types/commonTypes.d.ts +68 -0
  304. package/dist/types/types/types.d.ts +8 -16
  305. package/package.json +11 -19
  306. package/dist/cjs/Theme/Theme.js +0 -130
  307. package/dist/cjs/components/ButtonsFooter/ButtonsFooter.style.js +0 -10
  308. package/dist/cjs/components/Chips/Chips.js +0 -20
  309. package/dist/cjs/components/Chips/Chips.styles.js +0 -24
  310. package/dist/cjs/components/DatePicker/DatePiocker.styles.js +0 -139
  311. package/dist/cjs/components/Dropdown/DropdownElements.js +0 -37
  312. package/dist/cjs/components/ElementHeader/ElementHeader.js +0 -42
  313. package/dist/cjs/components/ElementHeader/ElementHeader.styles.js +0 -23
  314. package/dist/cjs/components/FillSelect/FillSelect.js +0 -122
  315. package/dist/cjs/components/FillSelect/FillSelect.styles.js +0 -13
  316. package/dist/cjs/components/Form/formHelper.js +0 -7
  317. package/dist/cjs/components/Form/formTypes.js +0 -2
  318. package/dist/cjs/components/Icons/Icon.js +0 -64
  319. package/dist/cjs/components/Icons/Icon.styles.js +0 -36
  320. package/dist/cjs/components/Icons/IconsShows.js +0 -18
  321. package/dist/cjs/components/Icons/index.js +0 -7
  322. package/dist/cjs/components/List/list.styles.js +0 -53
  323. package/dist/cjs/components/Toogle/Toogle.js +0 -22
  324. package/dist/cjs/components/Toogle/Toogle.styles.js +0 -42
  325. package/dist/cjs/components/Tooltip/Tooltip.js +0 -15
  326. package/dist/cjs/components/Tooltip/Tooltip.styles.js +0 -63
  327. package/dist/cjs/components/Typography/Typography.styles.js +0 -67
  328. package/dist/cjs/components/common/commonComponents.js +0 -55
  329. package/dist/cjs/components/common/index.js +0 -18
  330. package/dist/cjs/components/common/inputStyles.js +0 -280
  331. package/dist/cjs/docs/Overview.js +0 -91
  332. package/dist/esm/Theme/Theme.js +0 -127
  333. package/dist/esm/Theme/index.js +0 -1
  334. package/dist/esm/components/ButtonsFooter/ButtonsFooter.style.js +0 -4
  335. package/dist/esm/components/Chips/Chips.js +0 -13
  336. package/dist/esm/components/Chips/Chips.styles.js +0 -18
  337. package/dist/esm/components/Chips/index.js +0 -1
  338. package/dist/esm/components/DatePicker/DatePiocker.styles.js +0 -133
  339. package/dist/esm/components/Dropdown/DropdownElements.js +0 -31
  340. package/dist/esm/components/ElementHeader/ElementHeader.js +0 -35
  341. package/dist/esm/components/ElementHeader/ElementHeader.styles.js +0 -17
  342. package/dist/esm/components/ElementHeader/index.js +0 -1
  343. package/dist/esm/components/FillSelect/FillSelect.js +0 -95
  344. package/dist/esm/components/FillSelect/FillSelect.styles.js +0 -7
  345. package/dist/esm/components/FillSelect/index.js +0 -1
  346. package/dist/esm/components/Form/FormElements.js +0 -22
  347. package/dist/esm/components/Form/formHelper.js +0 -3
  348. package/dist/esm/components/Form/formTypes.js +0 -1
  349. package/dist/esm/components/Icons/Icon.js +0 -37
  350. package/dist/esm/components/Icons/Icon.styles.js +0 -30
  351. package/dist/esm/components/Icons/IconsShows.js +0 -11
  352. package/dist/esm/components/Icons/index.js +0 -2
  353. package/dist/esm/components/List/list.styles.js +0 -47
  354. package/dist/esm/components/Toogle/Toogle.js +0 -15
  355. package/dist/esm/components/Toogle/Toogle.styles.js +0 -36
  356. package/dist/esm/components/Toogle/index.js +0 -1
  357. package/dist/esm/components/Tooltip/Tooltip.js +0 -8
  358. package/dist/esm/components/Tooltip/Tooltip.styles.js +0 -37
  359. package/dist/esm/components/Tooltip/index.js +0 -1
  360. package/dist/esm/components/Typography/Typography.styles.js +0 -61
  361. package/dist/esm/components/common/commonComponents.js +0 -49
  362. package/dist/esm/components/common/index.js +0 -2
  363. package/dist/esm/components/common/inputStyles.js +0 -261
  364. package/dist/esm/docs/Overview.js +0 -64
  365. package/dist/types/Theme/Theme.d.ts +0 -116
  366. package/dist/types/Theme/index.d.ts +0 -1
  367. package/dist/types/components/ButtonsFooter/ButtonsFooter.style.d.ts +0 -1
  368. package/dist/types/components/Chips/Chips.d.ts +0 -8
  369. package/dist/types/components/Chips/Chips.styles.d.ts +0 -6
  370. package/dist/types/components/Chips/index.d.ts +0 -1
  371. package/dist/types/components/DatePicker/DatePiocker.styles.d.ts +0 -32
  372. package/dist/types/components/Dropdown/DropdownElements.d.ts +0 -10
  373. package/dist/types/components/ElementHeader/ElementHeader.styles.d.ts +0 -7
  374. package/dist/types/components/ElementHeader/index.d.ts +0 -1
  375. package/dist/types/components/FillSelect/FillSelect.d.ts +0 -11
  376. package/dist/types/components/FillSelect/FillSelect.styles.d.ts +0 -1
  377. package/dist/types/components/FillSelect/index.d.ts +0 -1
  378. package/dist/types/components/Form/FormElements.d.ts +0 -8
  379. package/dist/types/components/Form/formHelper.d.ts +0 -1
  380. package/dist/types/components/Form/formTypes.d.ts +0 -36
  381. package/dist/types/components/Icons/Icon.d.ts +0 -17
  382. package/dist/types/components/Icons/Icon.styles.d.ts +0 -14
  383. package/dist/types/components/Icons/IconsShows.d.ts +0 -2
  384. package/dist/types/components/Icons/index.d.ts +0 -2
  385. package/dist/types/components/List/list.styles.d.ts +0 -19
  386. package/dist/types/components/Toogle/Toogle.d.ts +0 -15
  387. package/dist/types/components/Toogle/Toogle.styles.d.ts +0 -16
  388. package/dist/types/components/Toogle/index.d.ts +0 -1
  389. package/dist/types/components/Tooltip/Tooltip.d.ts +0 -11
  390. package/dist/types/components/Tooltip/Tooltip.styles.d.ts +0 -13
  391. package/dist/types/components/Tooltip/index.d.ts +0 -1
  392. package/dist/types/components/Typography/Typography.styles.d.ts +0 -19
  393. package/dist/types/components/common/commonComponents.d.ts +0 -19
  394. package/dist/types/components/common/index.d.ts +0 -2
  395. package/dist/types/components/common/inputStyles.d.ts +0 -146
  396. package/dist/types/docs/Overview.d.ts +0 -9
@@ -1,15 +1,41 @@
1
- import React, { useMemo, useState, useEffect, useRef, useCallback } from 'react';
1
+ import React, { useMemo, useState, useEffect, useRef, useCallback, } from 'react';
2
2
  import { ThemeProvider } from 'styled-components';
3
- import { TextAccent } from '../Typography';
4
3
  import { Aligment } from '../Aligment';
5
- import { Icon } from '../Icons';
4
+ import { FilterCounter, FilterGrid, FiltersArea, FilterSection, FilterSectionHeader, FilterTrigerRoot, HeaderRowClear, HeaderTitle, ListIconWrapper, } from './Filters.styles';
5
+ import { List } from '../List';
6
6
  import { Modal } from '../Modal';
7
- import { FilterIconArea, FilterInputWrapper, FiltersArea, FilterSection, } from './Filters.styles';
8
- import { Theme, mainTheme } from '../../Theme';
7
+ import { wordbook } from '../../config';
8
+ import { resolveThemeWithComponentsConfig } from '../../config';
9
+ import { Icon } from '../Icon';
10
+ import { Numerical } from '../Numerical';
11
+ import { DatePicker } from '../DatePicker';
9
12
  import { Input } from '../Input';
10
- import { Chips } from '../Chips';
11
- import { List } from '../List';
12
- export const Filters = ({ theme = mainTheme, title = 'Select filters', labelConfirm = 'Approve', labelClose = 'Cancel', filters = [], headers = [], elements = [], fullElements, labelClearAll = 'Wyczyść', handleSubmitFilters, externalClearSignal, onClear, }) => {
13
+ export const Filters = ({ theme, themeVariant = 'default', size = 'md', labels = {
14
+ title: wordbook.filters.title,
15
+ close: wordbook.actions.cancel,
16
+ confirm: wordbook.actions.confirm,
17
+ trigger: wordbook.filters.filterText,
18
+ clearAll: wordbook.filters.labelClearAll,
19
+ clear: wordbook.filters.clear,
20
+ }, filters = [], headers = [], elements = [], fullElements, handleSubmitFilters, externalClearSignal, onClear, iconMode = true, }) => {
21
+ const resolvedThemeData = resolveThemeWithComponentsConfig({
22
+ theme,
23
+ themeVariant,
24
+ });
25
+ const resolvedTheme = resolvedThemeData.resolvedTheme;
26
+ const { componentsConfig } = resolvedThemeData;
27
+ const filterConfig = componentsConfig.filters;
28
+ const normalizeDateValue = useCallback((rawValue) => {
29
+ if (rawValue === undefined || rawValue === null || rawValue === '') {
30
+ return undefined;
31
+ }
32
+ const numericValue = typeof rawValue === 'number' ? rawValue : Number(rawValue);
33
+ if (!Number.isNaN(numericValue)) {
34
+ return numericValue;
35
+ }
36
+ const parsed = new Date(rawValue);
37
+ return Number.isNaN(parsed.getTime()) ? undefined : parsed.getTime();
38
+ }, []);
13
39
  const filtersConfig = useMemo(() => {
14
40
  const uniq = (arr) => Array.from(new Set(arr.filter((v) => v !== undefined && v !== null)));
15
41
  if (filters && filters.length) {
@@ -29,32 +55,86 @@ export const Filters = ({ theme = mainTheme, title = 'Select filters', labelConf
29
55
  .filter((h) => !h.action)
30
56
  .map((h) => {
31
57
  const key = h.valueSource || h.name;
32
- const values = (elements || []).map((it) => it?.[key]).filter((v) => v !== undefined && v !== null);
58
+ const values = (elements || [])
59
+ .map((it) => it?.[key])
60
+ .filter((v) => v !== undefined && v !== null);
33
61
  const nameLower = (h.name || '').toString().toLowerCase();
34
62
  if (nameLower === 'age' || nameLower.includes('age')) {
35
- const nums = values.map((v) => Number(v)).filter((n) => !Number.isNaN(n));
63
+ const nums = values
64
+ .map((v) => Number(v))
65
+ .filter((n) => !Number.isNaN(n));
36
66
  const min = nums.length ? Math.min(...nums) : 0;
37
67
  const max = nums.length ? Math.max(...nums) : 0;
38
- return { label: h.name, name: key, type: 'range', min, max, collapsible: true };
68
+ return {
69
+ label: h.name,
70
+ name: key,
71
+ type: 'range',
72
+ min,
73
+ max,
74
+ collapsible: true,
75
+ };
39
76
  }
40
77
  if (h.scope && h.scope.length) {
41
- return { label: h.name, name: key, type: 'select', allowValues: h.scope.map((s) => (s.label ?? s.value ?? s.key ?? String(s))), collapsible: true };
78
+ return {
79
+ label: h.name,
80
+ name: key,
81
+ type: 'select',
82
+ allowValues: h.scope.map((s) => s.label ?? s.value ?? s.key ?? String(s)),
83
+ collapsible: true,
84
+ };
42
85
  }
43
86
  if (h.date) {
44
- const dates = values.map((v) => (v ? new Date(v).getTime() : NaN)).filter((d) => !Number.isNaN(d));
45
- const min = dates.length ? new Date(Math.min(...dates)).toISOString() : undefined;
46
- const max = dates.length ? new Date(Math.max(...dates)).toISOString() : undefined;
47
- return { label: h.name, name: key, type: 'date', min, max, collapsible: true };
87
+ const dates = values
88
+ .map((v) => (v ? new Date(v).getTime() : NaN))
89
+ .filter((d) => !Number.isNaN(d));
90
+ const min = dates.length
91
+ ? new Date(Math.min(...dates)).toISOString()
92
+ : undefined;
93
+ const max = dates.length
94
+ ? new Date(Math.max(...dates)).toISOString()
95
+ : undefined;
96
+ return {
97
+ label: h.name,
98
+ name: key,
99
+ type: 'date',
100
+ min,
101
+ max,
102
+ collapsible: true,
103
+ };
48
104
  }
49
105
  if (h.isCount) {
50
- const nums = values.map((v) => Number(v)).filter((n) => !Number.isNaN(n));
51
- return { label: h.name, name: key, type: 'range', min: nums.length ? Math.min(...nums) : 0, max: nums.length ? Math.max(...nums) : 0, collapsible: true };
106
+ const nums = values
107
+ .map((v) => Number(v))
108
+ .filter((n) => !Number.isNaN(n));
109
+ return {
110
+ label: h.name,
111
+ name: key,
112
+ type: 'range',
113
+ min: nums.length ? Math.min(...nums) : 0,
114
+ max: nums.length ? Math.max(...nums) : 0,
115
+ collapsible: true,
116
+ };
52
117
  }
53
- const numericValues = values.map((v) => Number(v)).filter((n) => !Number.isNaN(n));
118
+ const numericValues = values
119
+ .map((v) => Number(v))
120
+ .filter((n) => !Number.isNaN(n));
54
121
  if (numericValues.length === values.length && values.length > 0) {
55
- return { label: h.name, name: key, type: 'range', min: Math.min(...numericValues), max: Math.max(...numericValues), collapsible: true };
122
+ return {
123
+ label: h.name,
124
+ name: key,
125
+ type: 'range',
126
+ min: Math.min(...numericValues),
127
+ max: Math.max(...numericValues),
128
+ collapsible: true,
129
+ };
56
130
  }
57
- return { label: h.name, name: key, type: 'select', allowValues: uniq(values).map((v) => String(v)), collapsible: true };
131
+ return {
132
+ label: h.name,
133
+ name: key,
134
+ type: 'select',
135
+ allowValues: uniq(values).map((v) => String(v)),
136
+ collapsible: true,
137
+ };
58
138
  });
59
139
  }, [filters, headers, elements]);
60
140
  const generateStateObj = useCallback(() => {
@@ -66,8 +146,12 @@ export const Filters = ({ theme = mainTheme, title = 'Select filters', labelConf
66
146
  value: [],
67
147
  rangeMin: filter.min,
68
148
  rangeMax: filter.max,
69
- min: (filter.type === 'range' || filter.type === 'date') && filter.min !== undefined ? String(filter.min) : '',
70
- max: (filter.type === 'range' || filter.type === 'date') && filter.max !== undefined ? String(filter.max) : '',
149
+ min: filter.type === 'range' && filter.min !== undefined
150
+ ? String(filter.min)
151
+ : '',
152
+ max: filter.type === 'range' && filter.max !== undefined
153
+ ? String(filter.max)
154
+ : '',
71
155
  };
72
156
  });
73
157
  return obj;
@@ -96,12 +180,12 @@ export const Filters = ({ theme = mainTheme, title = 'Select filters', labelConf
96
180
  const defaultMax = filter.rangeMax !== undefined ? String(filter.rangeMax) : '';
97
181
  const curMin = filter.min ?? '';
98
182
  const curMax = filter.max ?? '';
99
- return (curMin !== '' && curMin !== defaultMin) || (curMax !== '' && curMax !== defaultMax);
183
+ return ((curMin !== '' && curMin !== defaultMin) ||
184
+ (curMax !== '' && curMax !== defaultMax));
100
185
  }
101
186
  return false;
102
187
  }, []);
103
188
  const isAnyFilterActive = useCallback(() => Object.values(activeFilters).some((f) => isFilterActive(f)), [activeFilters, isFilterActive]);
104
- const setIconColor = useCallback(() => (isAnyFilterActive() ? theme.action : theme.textColor), [isAnyFilterActive, theme.action, theme.textColor]);
105
189
  const clearAll = useCallback(() => {
106
190
  const resetedFilter = {};
107
191
  Object.keys(activeFilters).forEach((key) => {
@@ -109,8 +193,12 @@ export const Filters = ({ theme = mainTheme, title = 'Select filters', labelConf
109
193
  resetedFilter[key] = {
110
194
  ...f,
111
195
  value: f.type === 'select' || f.type === 'text' ? [] : f.value,
112
- min: (f.type === 'range' || f.type === 'date') && f.rangeMin !== undefined ? String(f.rangeMin) : '',
113
- max: (f.type === 'range' || f.type === 'date') && f.rangeMax !== undefined ? String(f.rangeMax) : '',
196
+ min: f.type === 'range' && f.rangeMin !== undefined
197
+ ? String(f.rangeMin)
198
+ : '',
199
+ max: f.type === 'range' && f.rangeMax !== undefined
200
+ ? String(f.rangeMax)
201
+ : '',
114
202
  };
115
203
  });
116
204
  return resetedFilter;
@@ -131,20 +219,40 @@ export const Filters = ({ theme = mainTheme, title = 'Select filters', labelConf
131
219
  return { ...prev, [filterName]: { ...current, value: [] } };
132
220
  }
133
221
  if (filterType === 'range' || filterType === 'date') {
134
- const defaultMin = current.rangeMin !== undefined ? String(current.rangeMin) : '';
135
- const defaultMax = current.rangeMax !== undefined ? String(current.rangeMax) : '';
136
- return { ...prev, [filterName]: { ...current, min: defaultMin, max: defaultMax } };
222
+ const defaultMin = filterType === 'range'
223
+ ? current.rangeMin !== undefined
224
+ ? String(current.rangeMin)
225
+ : ''
226
+ : '';
227
+ const defaultMax = filterType === 'range'
228
+ ? current.rangeMax !== undefined
229
+ ? String(current.rangeMax)
230
+ : ''
231
+ : '';
232
+ return {
233
+ ...prev,
234
+ [filterName]: { ...current, min: defaultMin, max: defaultMax },
235
+ };
137
236
  }
138
237
  return prev;
139
238
  });
140
239
  }, []);
141
240
  const setRangeFilter = useCallback((name, value) => {
142
241
  const [filterName, filterParam] = String(name).split('_');
143
- setActiveFilters((prev) => ({ ...prev, [filterName]: { ...prev[filterName], [filterParam]: value } }));
242
+ setActiveFilters((prev) => ({
243
+ ...prev,
244
+ [filterName]: { ...prev[filterName], [filterParam]: value },
245
+ }));
144
246
  }, []);
145
247
  const setTextFilter = useCallback((name, value) => {
146
248
  const filterName = (name || '').split('_')[0];
147
- setActiveFilters((prev) => ({ ...prev, [filterName]: { ...(prev[filterName] || { name: filterName, type: 'text', value: [] }), value: value ? [String(value)] : [] } }));
249
+ setActiveFilters((prev) => ({
250
+ ...prev,
251
+ [filterName]: {
252
+ ...(prev[filterName] || { name: filterName, type: 'text', value: [] }),
253
+ value: value ? [String(value)] : [],
254
+ },
255
+ }));
148
256
  }, []);
149
257
  const applyFilter = useCallback(() => {
150
258
  let result = (elements || []).slice();
@@ -177,10 +285,16 @@ export const Filters = ({ theme = mainTheme, title = 'Select filters', labelConf
177
285
  else if (f.type === 'date') {
178
286
  if (!isFilterActive(f))
179
287
  return;
180
- const fromDate = f.min ? new Date(f.min) : null;
181
- const toDate = f.max ? new Date(f.max) : null;
182
- const fromTs = fromDate ? new Date(fromDate.getFullYear(), fromDate.getMonth(), fromDate.getDate(), 0, 0, 0, 0).getTime() : null;
183
- const toTs = toDate ? new Date(toDate.getFullYear(), toDate.getMonth(), toDate.getDate(), 23, 59, 59, 999).getTime() : null;
288
+ const fromTsRaw = normalizeDateValue(f.min);
289
+ const toTsRaw = normalizeDateValue(f.max);
290
+ const fromDate = fromTsRaw !== undefined ? new Date(fromTsRaw) : null;
291
+ const toDate = toTsRaw !== undefined ? new Date(toTsRaw) : null;
292
+ const fromTs = fromDate
293
+ ? new Date(fromDate.getFullYear(), fromDate.getMonth(), fromDate.getDate(), 0, 0, 0, 0).getTime()
294
+ : null;
295
+ const toTs = toDate
296
+ ? new Date(toDate.getFullYear(), toDate.getMonth(), toDate.getDate(), 23, 59, 59, 999).getTime()
297
+ : null;
184
298
  result = result.filter((it) => {
185
299
  const raw = it?.[key];
186
300
  if (!raw)
@@ -200,7 +314,9 @@ export const Filters = ({ theme = mainTheme, title = 'Select filters', labelConf
200
314
  const q = Array.isArray(f.value) ? f.value[0] : f.value;
201
315
  if (q) {
202
316
  const qs = String(q).toLowerCase();
203
- result = result.filter((it) => String(it?.[key] ?? '').toLowerCase().includes(qs));
317
+ result = result.filter((it) => String(it?.[key] ?? '')
318
+ .toLowerCase()
319
+ .includes(qs));
204
320
  }
205
321
  }
206
322
  });
@@ -224,29 +340,81 @@ export const Filters = ({ theme = mainTheme, title = 'Select filters', labelConf
224
340
  prevExternalClearRef.current = externalClearSignal;
225
341
  const cleared = clearAll();
226
342
  setActiveFilters(cleared);
227
- handleSubmitFilters && handleSubmitFilters((fullElements && fullElements.length ? fullElements : elements) || []);
343
+ handleSubmitFilters &&
344
+ handleSubmitFilters((fullElements && fullElements.length ? fullElements : elements) || []);
228
345
  }
229
- }, [externalClearSignal, clearAll, handleSubmitFilters, fullElements, elements]);
346
+ }, [
347
+ externalClearSignal,
348
+ clearAll,
349
+ handleSubmitFilters,
350
+ fullElements,
351
+ elements,
352
+ ]);
230
353
  const mapListItems = useCallback((filterName, allowValues) => {
231
354
  const sel = (activeFilters[filterName]?.value || []).map(String);
232
- return (allowValues || []).map((v) => ({ id: String(v), value: String(v), children: [], selected: sel.includes(String(v)) }));
355
+ return (allowValues || []).map((v) => ({
356
+ id: String(v),
357
+ value: String(v),
358
+ children: [],
359
+ selected: sel.includes(String(v)),
360
+ }));
233
361
  }, [activeFilters]);
234
- return (React.createElement(ThemeProvider, { theme: theme },
235
- React.createElement(FilterIconArea, null,
236
- React.createElement(Icon, { name: "filters", onClick: toggleFilter, iconColor: setIconColor() }),
237
- isAnyFilterActive() && (React.createElement(Chips, { label: labelClearAll, handleClose: () => {
238
- if (onClear) {
239
- onClear();
240
- const cleared = clearAll();
241
- setActiveFilters(cleared);
242
- }
243
- else {
244
- const cleared = clearAll();
245
- setActiveFilters(cleared);
246
- handleSubmitFilters && handleSubmitFilters((fullElements && fullElements.length ? fullElements : elements) || []);
247
- }
248
- } }))),
249
- openFilters && (React.createElement(Modal, { title: title, handleConfirm: applyFilter, handleClose: toggleFilter, handleAdditional: () => {
362
+ const renderFilterContent = useCallback((filter) => {
363
+ switch (filter.type) {
364
+ case 'select':
365
+ return (React.createElement("div", { style: { width: '100%' } },
366
+ React.createElement(List, { isCheckbox: true, items: mapListItems(filter.name, filter.allowValues), handleChange: (items) => {
367
+ const collectSelected = (list) => list.reduce((acc, it) => {
368
+ if (it.selected)
369
+ acc.push(String(it.id));
370
+ if (it.children && it.children.length) {
371
+ acc.push(...collectSelected(it.children));
372
+ }
373
+ return acc;
374
+ }, []);
375
+ const selectedIds = collectSelected(items);
376
+ setActiveFilters((prev) => ({
377
+ ...prev,
378
+ [filter.name]: {
379
+ ...(prev[filter.name] || {
380
+ name: filter.name,
381
+ type: filter.type,
382
+ value: [],
383
+ }),
384
+ value: selectedIds,
385
+ },
386
+ }));
387
+ } })));
388
+ case 'range':
389
+ return (React.createElement(Aligment, { wrap: "nowrap", direction: "row", align: "flex-start", justify: "flex-start", gap: 8 },
390
+ React.createElement(FilterGrid, null,
391
+ React.createElement(Numerical, { type: "number", name: `${filter.name}_min`, value: activeFilters[filter.name]?.min ?? '', handleChange: setRangeFilter, componentWidth: '100%' }),
392
+ React.createElement(Numerical, { type: "number", name: `${filter.name}_max`, value: activeFilters[filter.name]?.max ?? '', handleChange: setRangeFilter, componentWidth: '100%' }))));
393
+ case 'date':
394
+ return (React.createElement(Aligment, { wrap: "nowrap", direction: "row", align: "flex-start", justify: "flex-start", gap: 8 },
395
+ React.createElement(FilterGrid, null,
396
+ React.createElement(DatePicker, { name: `${filter.name}_min`, value: normalizeDateValue(activeFilters[filter.name]?.min), isAdvance: false, autoConfirm: true, handleChange: setRangeFilter, componentWidth: '100%' }),
397
+ React.createElement(DatePicker, { name: `${filter.name}_max`, value: normalizeDateValue(activeFilters[filter.name]?.max), isAdvance: false, autoConfirm: true, handleChange: setRangeFilter, componentWidth: '100%' }))));
398
+ case 'text':
399
+ return (React.createElement(Aligment, { wrap: "nowrap", direction: "row", align: "flex-start", justify: "flex-start", gap: 8 },
400
+ React.createElement(Input, { type: "text", name: `${filter.name}_query`, value: activeFilters[filter.name]?.value?.[0] ?? '', handleChange: setTextFilter, componentWidth: '100%', width: '100%' })));
401
+ default:
402
+ return null;
403
+ }
404
+ }, [
405
+ activeFilters,
406
+ mapListItems,
407
+ normalizeDateValue,
408
+ setRangeFilter,
409
+ setTextFilter,
410
+ ]);
411
+ const counter = Object.values(activeFilters).filter(isFilterActive).length;
412
+ return (React.createElement(ThemeProvider, { theme: resolvedTheme },
413
+ React.createElement(FilterTrigerRoot, { theme: resolvedTheme, config: filterConfig, size: size, onClick: toggleFilter, isActive: isAnyFilterActive() },
414
+ iconMode && (React.createElement(Icon, { name: "filters", size: filterConfig.size.triger[size].iconSize })),
415
+ labels.trigger,
416
+ counter > 0 && (React.createElement(FilterCounter, { size: size, config: filterConfig }, counter))),
417
+ openFilters && (React.createElement(Modal, { title: labels.title, handleConfirm: applyFilter, handleClose: toggleFilter, handleAdditional: () => {
250
418
  if (onClear) {
251
419
  onClear();
252
420
  const cleared = clearAll();
@@ -256,35 +424,18 @@ export const Filters = ({ theme = mainTheme, title = 'Select filters', labelConf
256
424
  else {
257
425
  resetAllFiltersAndSubmit();
258
426
  }
259
- }, labelConfirm: labelConfirm, labelClose: labelClose, labelAdditional: labelClearAll, isOpen: openFilters },
427
+ }, labelConfirm: labels.confirm, labelClose: labels.close, labelAdditional: labels.clearAll, isOpen: openFilters },
260
428
  React.createElement(Aligment, { direction: "column", align: "flex-end" },
261
- React.createElement(FiltersArea, null, filtersConfig.map((filter) => (React.createElement(FilterSection, { key: filter.name },
262
- React.createElement(Aligment, { wrap: "nowrap", style: { alignItems: 'center', justifyContent: 'start' } },
263
- React.createElement(Aligment, { wrap: "nowrap", onClick: () => filter.collapsible && toggleCollapse(filter.name), style: { cursor: filter.collapsible ? 'pointer' : 'default', alignItems: 'center', justifyContent: 'start' } },
264
- React.createElement(TextAccent, { style: { marginRight: 0 } }, filter.label),
265
- React.createElement(Icon, { name: collapsedFilters[filter.name] ? 'arrow_drop_down' : 'arrow_drop_up', size: 16, iconColor: theme.textColor })),
266
- React.createElement(Icon, { name: "close", size: 14, onClick: () => resetFilter(filter.name, filter.type) })),
267
- !filter.collapsible || !collapsedFilters[filter.name] ? (filter.type === 'select' ? (React.createElement("div", { style: { width: '100%' } },
268
- React.createElement(List, { items: mapListItems(filter.name, filter.allowValues), handleChange: (items) => {
269
- const collectSelected = (list) => list.reduce((acc, it) => {
270
- if (it.selected)
271
- acc.push(String(it.id));
272
- if (it.children && it.children.length)
273
- acc.push(...collectSelected(it.children));
274
- return acc;
275
- }, []);
276
- const selectedIds = collectSelected(items);
277
- setActiveFilters((prev) => ({ ...prev, [filter.name]: { ...(prev[filter.name] || { name: filter.name, type: filter.type, value: [] }), value: selectedIds } }));
278
- }, isCheckbox: true, isCollapsable: true }))) : filter.type === 'range' ? (React.createElement(Aligment, { wrap: "nowrap", direction: "row", align: "flex-start", vPadding: Theme.padding.s, justify: "flex-start", gap: 8 },
279
- React.createElement(FilterInputWrapper, null,
280
- React.createElement(Input, { type: "number", name: `${filter.name}_min`, value: activeFilters[filter.name].min, handleChange: setRangeFilter })),
281
- React.createElement(FilterInputWrapper, null,
282
- React.createElement(Input, { type: "number", name: `${filter.name}_max`, value: activeFilters[filter.name].max, handleChange: setRangeFilter })))) : filter.type === 'date' ? (React.createElement(Aligment, { wrap: "nowrap", direction: "row", align: "flex-start", vPadding: Theme.padding.s, justify: "flex-start", gap: 8 },
283
- React.createElement(FilterInputWrapper, null,
284
- React.createElement(Input, { type: "date", name: `${filter.name}_min`, value: activeFilters[filter.name].min, handleChange: setRangeFilter })),
285
- React.createElement(FilterInputWrapper, null,
286
- React.createElement(Input, { type: "date", name: `${filter.name}_max`, value: activeFilters[filter.name].max, handleChange: setRangeFilter })))) : filter.type === 'text' ? (React.createElement(Aligment, { wrap: "nowrap", direction: "row", align: "flex-start", vPadding: Theme.padding.s, justify: "flex-start", gap: 8 },
287
- React.createElement(FilterInputWrapper, null,
288
- React.createElement(Input, { type: "text", name: `${filter.name}_query`, value: (activeFilters[filter.name]?.value && activeFilters[filter.name].value[0]) || '', handleChange: setTextFilter })))) : null) : null)))))))));
429
+ React.createElement(FiltersArea, null, filtersConfig.map((filter) => (React.createElement(FilterSection, { theme: resolvedTheme, config: filterConfig, key: filter.name },
430
+ React.createElement(FilterSectionHeader, { theme: resolvedTheme, config: filterConfig },
431
+ React.createElement(Aligment, { wrap: "nowrap", justify: "flex-start", width: "auto", gap: filterConfig.size.header.gap },
432
+ React.createElement(HeaderTitle, { onClick: () => filter.collapsible && toggleCollapse(filter.name), theme: resolvedTheme, config: filterConfig }, filter.label),
433
+ React.createElement(ListIconWrapper, { theme: resolvedTheme, config: filterConfig, isExtended: collapsedFilters[filter.name] || false, onClick: (e) => {
434
+ e.stopPropagation();
435
+ } },
436
+ React.createElement(Icon, { name: "chevron_down", size: "md", onClick: () => filter.collapsible && toggleCollapse(filter.name) }))),
437
+ isFilterActive(activeFilters[filter.name]) && (React.createElement(HeaderRowClear, { theme: resolvedTheme, config: filterConfig, onClick: () => resetFilter(filter.name, filter.type) }, labels.clear))),
438
+ !filter.collapsible || !collapsedFilters[filter.name]
439
+ ? renderFilterContent(filter)
440
+ : null)))))))));
289
441
  };
290
- export default Filters;
@@ -1,26 +1,94 @@
1
- import styled from "styled-components";
2
- import { Theme } from "../../Theme";
3
- export const FilterIconArea = styled.div `
4
- display:flex;
1
+ import styled from 'styled-components';
2
+ export const FilterTrigerRoot = styled.div `
3
+ display: inline-flex;
5
4
  flex-direction: row;
6
5
  align-items: center;
7
- gap:8px;
8
- }
6
+ gap: ${({ theme, config, size }) => config.size.triger[size].gap}px;
7
+ height: ${({ theme, config, size }) => config.size.triger[size].height}px;
8
+ padding: 0 ${({ theme, config, size }) => config.size.triger[size].paddingX}px;
9
+ background: ${({ theme, config, isActive }) => isActive ? config.color.activeBackground : config.color.background};
10
+ border-radius: ${({ theme, config, size }) => config.size.triger[size].radius}px;
11
+ cursor: pointer;
12
+ color: ${({ theme, config, isActive }) => isActive ? config.color.activeText : config.color.text};
13
+ border: none;
14
+
15
+ &:hover {
16
+ background: ${({ theme, config }) => config.color.hover.background};
17
+ }
18
+ `;
19
+ export const FilterCounter = styled.div `
20
+ display: flex;
21
+ align-items: center;
22
+ justify-content: center;
23
+ width: auto;
24
+ background: ${({ theme, config }) => config.color.default.counterBackground};
25
+ color: ${({ theme, config }) => config.color.default.counterText};
26
+ border-radius: ${({ theme, config, size }) => config.size.counter[size].radius}px;
27
+ font-size: ${({ theme, config, size }) => config.size.counter[size].fontSize}px;
28
+ line-height: ${({ theme, config, size }) => config.size.counter[size].lineHeight}px;
29
+ padding: 0 ${({ theme, config, size }) => config.size.counter[size].paddingX}px;
9
30
  `;
10
31
  export const FiltersArea = styled.div `
11
- width:100%;
32
+ width: 100%;
12
33
  `;
13
34
  export const FilterSection = styled.div `
14
- width:100%;
15
- display:flex;
16
- flex-direction:column;
17
- padding-bottom:${Theme.padding.m}
35
+ width: 100%;
36
+ display: flex;
37
+ flex-direction: column;
38
+ padding-bottom: ${({ theme, config }) => config.size.filterRow.paddingY}px;
39
+ `;
40
+ export const FilterSectionHeader = styled.div `
41
+ height: ${({ theme, config }) => config.size.header.height}px;
42
+
43
+ display: flex;
44
+ align-items: center;
45
+ justify-content: space-between;
46
+ gap: ${({ theme, config }) => config.size.header.gap}px;
47
+ `;
48
+ export const HeaderTitle = styled.div `
49
+ display: flex;
50
+ font-size: ${({ theme, config }) => config.size.header.fontSize}px;
51
+ line-height: ${({ theme, config }) => config.size.header.lineHeight}px;
52
+ color: ${({ theme, config }) => config.color.default.headerText};
53
+ text-transform: uppercase;
54
+ font-weight: 500;
55
+ cursor: pointer;
56
+ `;
57
+ export const ListIconWrapper = styled.div `
58
+ display: flex;
59
+ transition: transform 0.2s ease;
60
+ transform: ${({ isExtended }) => isExtended ? 'rotate(-90deg)' : 'rotate(0deg)'};
61
+ width: ${({ config }) => config.size.iconSpace}px;
62
+ height: ${({ config }) => config.size.iconSpace}px;
63
+ align-items: center;
64
+ justify-content: center;
65
+ `;
66
+ export const HeaderRowClear = styled.div `
67
+ display: flex;
68
+ align-items: center;
69
+ justify-content: center;
70
+ display: flex;
71
+ font-size: ${({ theme, config }) => config.size.header.fontSize}px;
72
+ line-height: ${({ theme, config }) => config.size.header.lineHeight}px;
73
+ color: ${({ theme, config }) => config.color.default.text};
74
+ font-weight: 500;
75
+ width: auto;
76
+ cursor: pointer;
77
+ :hover {
78
+ color: ${({ theme, config }) => config.color.hover.clearText};
79
+ }
18
80
  `;
19
81
  export const FilterOption = styled.div `
20
- width:100%;
21
- display:flex;
22
- flex-direction:column;
82
+ width: 100%;
83
+ display: flex;
84
+ flex-direction: column;
85
+ `;
86
+ export const FilterGrid = styled.div `
87
+ width: 100%;
88
+ display: grid;
89
+ grid-template-columns: repeat(2, minmax(0, 1fr));
90
+ gap: 8px;
23
91
  `;
24
92
  export const FilterInputWrapper = styled.div `
25
- width:100px
93
+ width: 100%;
26
94
  `;
@@ -1,32 +1,25 @@
1
1
  import React from 'react';
2
+ import { FormRoot, FormRow, FormSubRow } from './Form.styles';
3
+ import { resolveThemeWithComponentsConfig } from '../../config';
2
4
  import { Input } from '../Input';
3
- import { File } from '../File';
4
- import { FormRow, FormSubRow, FormWrapper } from './FormElements';
5
+ import { Numerical } from '../Numerical';
5
6
  import { Dropdown } from '../Dropdown';
7
+ import { File } from '../File';
6
8
  import { DatePicker } from '../DatePicker';
7
- import { FillSelect } from '../FillSelect';
8
- export const Form = ({ formData, size = 'medium', read, handleFieldFocus, handleFieldBlur, }) => {
9
+ export const Form = ({ theme, themeVariant = 'default', formData, size = 'md', read = false, handleFieldFocus, handleFieldBlur, }) => {
10
+ const resolvedThemeData = resolveThemeWithComponentsConfig({
11
+ theme,
12
+ themeVariant,
13
+ });
14
+ const resolvedTheme = resolvedThemeData.resolvedTheme;
15
+ const { componentsConfig } = resolvedThemeData;
16
+ const formConfig = componentsConfig.form;
9
17
  const onChangeHandler = (name, value) => {
10
18
  formData.action(name, value);
11
19
  };
12
20
  const onDateChangeHandler = (name, value) => {
13
21
  formData.action(name, value);
14
22
  };
15
- const onIntChangeHandler = (name, value) => {
16
- let valueString = value;
17
- if (valueString.length > 0) {
18
- const modify = valueString
19
- .replaceAll(',', '.')
20
- .replace(/[^\d.-]/g, '')
21
- .split('.');
22
- let digit = modify.shift();
23
- if (modify.length > 0) {
24
- digit = digit + '.' + modify.join('');
25
- }
26
- valueString = digit;
27
- }
28
- formData.action(name, valueString);
29
- };
30
23
  const onFileHandler = (event) => {
31
24
  const fileList = event.currentTarget.files;
32
25
  if (!fileList)
@@ -38,28 +31,29 @@ export const Form = ({ formData, size = 'medium', read, handleFieldFocus, handle
38
31
  const selectType = (item) => {
39
32
  switch (item.type) {
40
33
  case 'text':
41
- return (React.createElement(Input, { label: item.label, value: item.value, name: item.name, type: "text", size: size, handleChange: onChangeHandler, readOnly: read, autoFocus: !!item.isDisabled && item.autofocus, handleSubmit: item.submit, disabled: item.isDisabled, error: item.error, handleFieldFocus: handleFieldFocus, handleFieldBlur: handleFieldBlur }));
34
+ return (React.createElement(Input, { label: item.label, value: item.value, name: item.name, type: item.inputType || 'text', size: size, handleChange: onChangeHandler, readOnly: read || item.readOnly, autoFocus: item.autofocus, handleSubmit: item.submit, disabled: item.isDisabled, error: item.error, labelPosition: item.labelPosition, width: item.width, placeholder: item.placeholder, handleFieldFocus: handleFieldFocus, handleFieldBlur: handleFieldBlur, required: item.required, optional: item.optional, optionalLabel: item.optionalLabel, prefix: item.prefix, suffix: item.suffix, prefixIcon: item.prefixIcon, suffixIcon: item.suffixIcon, prefixIconAction: item.prefixIconAction, suffixIconAction: item.suffixIconAction, withClear: item.withClear, helperText: item.helperText, componentWidth: '100%' }));
42
35
  case 'number':
43
- return (React.createElement(Input, { label: item.label, value: item.value, name: item.name, type: "number", size: size, min: item.min, max: item.max, step: item.step, handleChange: onIntChangeHandler, readOnly: read, autoFocus: !!item.isDisabled && item.autofocus, handleSubmit: item.submit, disabled: item.isDisabled, error: item.error, placeholder: item.placeholder, handleFieldFocus: handleFieldFocus, handleFieldBlur: handleFieldBlur }));
36
+ return (React.createElement(Numerical, { label: item.label, value: item.value, name: item.name, type: "number", size: size, handleChange: onChangeHandler, readOnly: read || item.readOnly, autoFocus: item.autofocus, handleSubmit: item.submit, disabled: item.isDisabled, error: item.error, labelPosition: item.labelPosition, width: item.width, min: item.min, max: item.max, step: item.step, placeholder: item.placeholder, handleFieldFocus: handleFieldFocus, handleFieldBlur: handleFieldBlur, required: item.required, optional: item.optional, optionalLabel: item.optionalLabel, prefix: item.prefix, suffix: item.suffix, prefixIcon: item.prefixIcon, suffixIcon: item.suffixIcon, prefixIconAction: item.prefixIconAction, suffixIconAction: item.suffixIconAction, withClear: item.withClear, helperText: item.helperText, componentWidth: '100%' }));
44
37
  case 'increase':
45
- return (React.createElement(Input, { type: "increase", label: item.label, value: item.value, name: item.name, size: size, handleChange: onIntChangeHandler, min: item.min, max: item.max, step: item.step, readOnly: read, autoFocus: item.autofocus, handleSubmit: item.submit, error: item.error, placeholder: item.placeholder, handleFieldFocus: handleFieldFocus, handleFieldBlur: handleFieldBlur }));
38
+ return (React.createElement(Numerical, { label: item.label, value: item.value, name: item.name, type: "increase", size: size, handleChange: onChangeHandler, readOnly: read || item.readOnly, autoFocus: item.autofocus, handleSubmit: item.submit, disabled: item.isDisabled, error: item.error, labelPosition: item.labelPosition, width: item.width, min: item.min, max: item.max, step: item.step, placeholder: item.placeholder, handleFieldFocus: handleFieldFocus, handleFieldBlur: handleFieldBlur, required: item.required, optional: item.optional, optionalLabel: item.optionalLabel, prefix: item.prefix, suffix: item.suffix, prefixIcon: item.prefixIcon, suffixIcon: item.suffixIcon, prefixIconAction: item.prefixIconAction, suffixIconAction: item.suffixIconAction, withClear: item.withClear, helperText: item.helperText, componentWidth: '100%' }));
46
39
  case 'select':
47
- return (React.createElement(Dropdown, { options: item.options, handleSelect: onChangeHandler, name: item.name, value: item.value, size: size, label: item.label, position: item.position, zIndex: item.zIndex, readOnly: read, error: item.error, placeholder: item.placeholder, handleFieldFocus: handleFieldFocus, handleFieldBlur: handleFieldBlur, maxHeight: item.maxHeight, disabled: item.isDisabled }));
40
+ return (React.createElement(Dropdown, { options: item.options, handleChange: onChangeHandler, name: item.name, value: item.value, size: size, label: item.label, labelPosition: item.labelPosition, width: item.width, position: item.position, zIndex: item.zIndex, readOnly: read || item.readOnly, error: item.error, placeholder: item.placeholder, handleFieldFocus: handleFieldFocus, handleFieldBlur: handleFieldBlur, maxRows: item.maxRows, disabled: item.isDisabled, required: item.required, optional: item.optional, optionalLabel: item.optionalLabel, prefix: item.prefix, prefixIcon: item.prefixIcon, prefixIconAction: item.prefixIconAction, noBreakLabel: item.noBreakLabel, searchable: item.searchable, helperText: item.helperText, componentWidth: '100%' }));
48
41
  case 'fill':
49
- return (React.createElement(FillSelect, { options: item.options, handleSelect: onChangeHandler, handleAddToScope: item.handleAddToScope, name: item.name, value: item.value, size: size, label: item.label, position: item.position, zIndex: item.zIndex, readOnly: read, error: item.error, placeholder: item.placeholder }));
42
+ return (React.createElement(Dropdown, { options: item.options, handleChange: onChangeHandler, name: item.name, value: item.value, size: size, label: item.label, labelPosition: item.labelPosition, width: item.width, position: item.position, zIndex: item.zIndex, readOnly: read || item.readOnly, error: item.error, placeholder: item.placeholder, handleFieldFocus: handleFieldFocus, handleFieldBlur: handleFieldBlur, maxRows: item.maxRows, disabled: item.isDisabled, required: item.required, optional: item.optional, optionalLabel: item.optionalLabel, prefix: item.prefix, prefixIcon: item.prefixIcon, prefixIconAction: item.prefixIconAction, noBreakLabel: item.noBreakLabel, searchable: item.searchable, handleAdd: item.handleAdd, helperText: item.helperText, componentWidth: '100%' }));
50
43
  case 'file':
51
- return (React.createElement(File, { label: item.label, fileValue: item.value, name: item.name, size: size, handleChange: onFileHandler, readOnly: read, subLabel: item.subLabel, error: item.error }));
44
+ return (React.createElement(File, { label: item.label, fileValue: item.value, name: item.name, size: size, handleChange: onFileHandler, labelPosition: item.labelPosition, width: item.width, placeholder: item.placeholder, disabled: item.isDisabled, readOnly: read || item.readOnly, helperText: item.helperText, error: item.error, required: item.required, optional: item.optional, optionalLabel: item.optionalLabel, buttonLabel: item.buttonLabel, multiple: item.multipleFile, accept: item.acceptFormats, componentWidth: '100%' }));
52
45
  case 'date':
53
- return (React.createElement(DatePicker, { label: item.label, value: item.value, name: item.name, size: size, readOnly: read, handleChange: onDateChangeHandler, zIndex: item.zIndex, error: item.error }));
46
+ return (React.createElement(DatePicker, { label: item.label, value: item.value, name: item.name, size: size, labelPosition: item.labelPosition, width: item.width, disabled: item.isDisabled, readOnly: read || item.readOnly, handleChange: onDateChangeHandler, zIndex: item.zIndex, error: item.error, required: item.required, optional: item.optional, optionalLabel: item.optionalLabel, isAdvance: item.isAdvance, autoConfirm: item.autoConfirm, labels: item.actionLabels, localeLabels: item.localeLabels, placeholder: item.placeholder, helperText: item.helperText, componentWidth: '100%' }));
47
+ default:
48
+ return null;
54
49
  }
55
50
  };
56
- return (React.createElement(FormWrapper, null, formData.data.map((item) => {
51
+ return (React.createElement(FormRoot, null, formData.data.map((item) => {
57
52
  if ('row' in item) {
58
- return (React.createElement(FormRow, { key: `subRow-${item.row[0].name}` }, item.row.map((rowItem) => (React.createElement(FormSubRow, { factor: item.row.length, key: rowItem.name }, selectType(rowItem))))));
53
+ return (React.createElement(FormRow, { config: formConfig, theme: resolvedTheme, key: `subRow-${item.row[0].name}` }, item.row.map((rowItem) => (React.createElement(FormSubRow, { factor: item.row.length, config: formConfig, theme: resolvedTheme, key: rowItem.name }, selectType(rowItem))))));
59
54
  }
60
55
  else {
61
- return React.createElement(FormRow, { key: item.name }, selectType(item));
56
+ return (React.createElement(FormRow, { config: formConfig, theme: resolvedTheme, key: item.name }, selectType(item)));
62
57
  }
63
58
  })));
64
59
  };
65
- export default Form;