@tecsinapse/react-web-kit 1.18.6 → 1.20.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 (288) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/dist/components/atoms/Accordion/Accordion.js.map +1 -1
  3. package/dist/components/atoms/Accordion/animations.js.map +1 -1
  4. package/dist/components/atoms/Accordion/index.js.map +1 -1
  5. package/dist/components/atoms/Accordion/styled.js +1 -1
  6. package/dist/components/atoms/Accordion/styled.js.map +1 -1
  7. package/dist/components/atoms/Badge/Badge.js +1 -1
  8. package/dist/components/atoms/Badge/Badge.js.map +1 -1
  9. package/dist/components/atoms/Badge/index.js.map +1 -1
  10. package/dist/components/atoms/Button/Button.d.ts +2 -0
  11. package/dist/components/atoms/Button/Button.js +19 -3
  12. package/dist/components/atoms/Button/Button.js.map +1 -1
  13. package/dist/components/atoms/Button/hooks/useMouseHover.d.ts +3 -3
  14. package/dist/components/atoms/Button/hooks/useMouseHover.js +13 -3
  15. package/dist/components/atoms/Button/hooks/useMouseHover.js.map +1 -1
  16. package/dist/components/atoms/Button/hooks/useMousePressed.d.ts +5 -0
  17. package/dist/components/atoms/Button/hooks/useMousePressed.js +32 -0
  18. package/dist/components/atoms/Button/hooks/useMousePressed.js.map +1 -0
  19. package/dist/components/atoms/Button/index.js.map +1 -1
  20. package/dist/components/atoms/Button/styled.js +9 -4
  21. package/dist/components/atoms/Button/styled.js.map +1 -1
  22. package/dist/components/atoms/Dropdown/index.js.map +1 -1
  23. package/dist/components/atoms/Dropdown/styled.js.map +1 -1
  24. package/dist/components/atoms/Input/Input.d.ts +4 -3
  25. package/dist/components/atoms/Input/Input.js +1 -1
  26. package/dist/components/atoms/Input/Input.js.map +1 -1
  27. package/dist/components/atoms/Input/index.js.map +1 -1
  28. package/dist/components/atoms/Input/styled.js.map +1 -1
  29. package/dist/components/atoms/InputMask/InputMask.d.ts +4 -3
  30. package/dist/components/atoms/InputMask/InputMask.js +1 -1
  31. package/dist/components/atoms/InputMask/InputMask.js.map +1 -1
  32. package/dist/components/atoms/InputMask/index.js.map +1 -1
  33. package/dist/components/atoms/InputMask/styled.js.map +1 -1
  34. package/dist/components/atoms/Modal/Modal.js +1 -1
  35. package/dist/components/atoms/Modal/Modal.js.map +1 -1
  36. package/dist/components/atoms/Modal/animations.js.map +1 -1
  37. package/dist/components/atoms/Modal/index.js.map +1 -1
  38. package/dist/components/atoms/Modal/styled.js.map +1 -1
  39. package/dist/components/atoms/Overlay/Overlay.js.map +1 -1
  40. package/dist/components/atoms/Overlay/animations.js.map +1 -1
  41. package/dist/components/atoms/Overlay/index.js.map +1 -1
  42. package/dist/components/atoms/Overlay/styled.js.map +1 -1
  43. package/dist/components/atoms/Skeleton/Skeleton.js +1 -1
  44. package/dist/components/atoms/Skeleton/Skeleton.js.map +1 -1
  45. package/dist/components/atoms/Skeleton/index.js.map +1 -1
  46. package/dist/components/atoms/Skeleton/styled.js.map +1 -1
  47. package/dist/components/atoms/Table/Body/TBody.js.map +1 -1
  48. package/dist/components/atoms/Table/Body/index.js.map +1 -1
  49. package/dist/components/atoms/Table/Cell/Td.js.map +1 -1
  50. package/dist/components/atoms/Table/Cell/index.js.map +1 -1
  51. package/dist/components/atoms/Table/Cell/styled.js.map +1 -1
  52. package/dist/components/atoms/Table/Container/TableContainer.js.map +1 -1
  53. package/dist/components/atoms/Table/Container/index.js.map +1 -1
  54. package/dist/components/atoms/Table/Container/styled.js.map +1 -1
  55. package/dist/components/atoms/Table/Footer/TFoot.js.map +1 -1
  56. package/dist/components/atoms/Table/Footer/index.js.map +1 -1
  57. package/dist/components/atoms/Table/Footer/styled.js.map +1 -1
  58. package/dist/components/atoms/Table/Header/THead.js.map +1 -1
  59. package/dist/components/atoms/Table/Header/Th.js.map +1 -1
  60. package/dist/components/atoms/Table/Header/index.js +4 -4
  61. package/dist/components/atoms/Table/Header/index.js.map +1 -1
  62. package/dist/components/atoms/Table/Header/styled.js +1 -1
  63. package/dist/components/atoms/Table/Header/styled.js.map +1 -1
  64. package/dist/components/atoms/Table/Row/Tr.js.map +1 -1
  65. package/dist/components/atoms/Table/Row/index.js.map +1 -1
  66. package/dist/components/atoms/Table/Row/styled.js.map +1 -1
  67. package/dist/components/atoms/Table/Table.js.map +1 -1
  68. package/dist/components/atoms/Table/Toolbar/TableToolbar.js.map +1 -1
  69. package/dist/components/atoms/Table/Toolbar/index.js.map +1 -1
  70. package/dist/components/atoms/Table/Toolbar/styled.js.map +1 -1
  71. package/dist/components/atoms/Table/index.js +18 -18
  72. package/dist/components/atoms/Table/index.js.map +1 -1
  73. package/dist/components/atoms/Table/styled.js.map +1 -1
  74. package/dist/components/atoms/Tag/Tag.js +1 -1
  75. package/dist/components/atoms/Tag/Tag.js.map +1 -1
  76. package/dist/components/atoms/Tag/index.js.map +1 -1
  77. package/dist/components/atoms/Tooltip/Tooltip.js.map +1 -1
  78. package/dist/components/atoms/Tooltip/index.js +4 -4
  79. package/dist/components/atoms/Tooltip/index.js.map +1 -1
  80. package/dist/components/atoms/Tooltip/styled.js +3 -1
  81. package/dist/components/atoms/Tooltip/styled.js.map +1 -1
  82. package/dist/components/molecules/Breadcrumbs/BreadcrumbItem/BreadcrumbItem.js +1 -1
  83. package/dist/components/molecules/Breadcrumbs/BreadcrumbItem/BreadcrumbItem.js.map +1 -1
  84. package/dist/components/molecules/Breadcrumbs/BreadcrumbItem/index.js.map +1 -1
  85. package/dist/components/molecules/Breadcrumbs/BreadcrumbItem/styled.js +1 -1
  86. package/dist/components/molecules/Breadcrumbs/BreadcrumbItem/styled.js.map +1 -1
  87. package/dist/components/molecules/Breadcrumbs/Breadcrumbs.js.map +1 -1
  88. package/dist/components/molecules/Breadcrumbs/index.js +6 -6
  89. package/dist/components/molecules/Breadcrumbs/index.js.map +1 -1
  90. package/dist/components/molecules/Breadcrumbs/styled.js.map +1 -1
  91. package/dist/components/molecules/DatePicker/DatePicker.js +1 -1
  92. package/dist/components/molecules/DatePicker/DatePicker.js.map +1 -1
  93. package/dist/components/molecules/DatePicker/Modal.js +1 -1
  94. package/dist/components/molecules/DatePicker/Modal.js.map +1 -1
  95. package/dist/components/molecules/DatePicker/index.js.map +1 -1
  96. package/dist/components/molecules/DatePicker/styled.js.map +1 -1
  97. package/dist/components/molecules/DateTimePicker/DateTimePicker.js +1 -1
  98. package/dist/components/molecules/DateTimePicker/DateTimePicker.js.map +1 -1
  99. package/dist/components/molecules/DateTimePicker/Modal.js +1 -2
  100. package/dist/components/molecules/DateTimePicker/Modal.js.map +1 -1
  101. package/dist/components/molecules/DateTimePicker/index.js.map +1 -1
  102. package/dist/components/molecules/DateTimePicker/styled.js.map +1 -1
  103. package/dist/components/molecules/Drawer/Drawer.js +3 -1
  104. package/dist/components/molecules/Drawer/Drawer.js.map +1 -1
  105. package/dist/components/molecules/Drawer/animations.js +1 -1
  106. package/dist/components/molecules/Drawer/animations.js.map +1 -1
  107. package/dist/components/molecules/Drawer/index.js.map +1 -1
  108. package/dist/components/molecules/Drawer/styled.js +2 -0
  109. package/dist/components/molecules/Drawer/styled.js.map +1 -1
  110. package/dist/components/molecules/Grid/Grid.d.ts +3 -13
  111. package/dist/components/molecules/Grid/Grid.js +5 -3
  112. package/dist/components/molecules/Grid/Grid.js.map +1 -1
  113. package/dist/components/molecules/Grid/Item/Item.d.ts +6 -27
  114. package/dist/components/molecules/Grid/Item/Item.js +41 -19
  115. package/dist/components/molecules/Grid/Item/Item.js.map +1 -1
  116. package/dist/components/molecules/Grid/Item/functions.d.ts +2 -0
  117. package/dist/components/molecules/Grid/Item/functions.js +16 -0
  118. package/dist/components/molecules/Grid/Item/functions.js.map +1 -0
  119. package/dist/components/molecules/Grid/Item/index.d.ts +1 -1
  120. package/dist/components/molecules/Grid/Item/index.js.map +1 -1
  121. package/dist/components/molecules/Grid/index.d.ts +2 -2
  122. package/dist/components/molecules/Grid/index.js +4 -4
  123. package/dist/components/molecules/Grid/index.js.map +1 -1
  124. package/dist/components/molecules/IconTextButton/IconTextButton.d.ts +6 -0
  125. package/dist/components/molecules/IconTextButton/IconTextButton.js +64 -0
  126. package/dist/components/molecules/IconTextButton/IconTextButton.js.map +1 -0
  127. package/dist/components/molecules/IconTextButton/TextComponent.d.ts +12 -0
  128. package/dist/components/molecules/IconTextButton/TextComponent.js +32 -0
  129. package/dist/components/molecules/IconTextButton/TextComponent.js.map +1 -0
  130. package/dist/components/molecules/IconTextButton/hooks/useIconTextButton.d.ts +6 -0
  131. package/dist/components/molecules/IconTextButton/hooks/useIconTextButton.js +31 -0
  132. package/dist/components/molecules/IconTextButton/hooks/useIconTextButton.js.map +1 -0
  133. package/dist/components/molecules/IconTextButton/index.d.ts +1 -0
  134. package/dist/components/molecules/IconTextButton/index.js +24 -0
  135. package/dist/components/molecules/IconTextButton/index.js.map +1 -0
  136. package/dist/components/molecules/IconTextButton/styled.d.ts +1 -0
  137. package/dist/components/molecules/IconTextButton/styled.js +33 -0
  138. package/dist/components/molecules/IconTextButton/styled.js.map +1 -0
  139. package/dist/components/molecules/InputPassword/InputPassword.js +1 -1
  140. package/dist/components/molecules/InputPassword/InputPassword.js.map +1 -1
  141. package/dist/components/molecules/InputPassword/index.js.map +1 -1
  142. package/dist/components/molecules/LabeledSwitch/LabelComponent.d.ts +12 -0
  143. package/dist/components/molecules/LabeledSwitch/LabelComponent.js +38 -0
  144. package/dist/components/molecules/LabeledSwitch/LabelComponent.js.map +1 -0
  145. package/dist/components/molecules/LabeledSwitch/LabeledSwitch.d.ts +7 -0
  146. package/dist/components/molecules/LabeledSwitch/LabeledSwitch.js +55 -0
  147. package/dist/components/molecules/LabeledSwitch/LabeledSwitch.js.map +1 -0
  148. package/dist/components/molecules/LabeledSwitch/index.d.ts +1 -0
  149. package/dist/components/molecules/LabeledSwitch/index.js +24 -0
  150. package/dist/components/molecules/LabeledSwitch/index.js.map +1 -0
  151. package/dist/components/molecules/LabeledSwitch/styled.d.ts +8 -0
  152. package/dist/components/molecules/LabeledSwitch/styled.js +39 -0
  153. package/dist/components/molecules/LabeledSwitch/styled.js.map +1 -0
  154. package/dist/components/molecules/Masonry/Masonry.js.map +1 -1
  155. package/dist/components/molecules/Masonry/index.js.map +1 -1
  156. package/dist/components/molecules/Masonry/styled.js.map +1 -1
  157. package/dist/components/molecules/Menubar/MenuBlock/MenuBlock.js.map +1 -1
  158. package/dist/components/molecules/Menubar/MenuBlock/MenuItem/MenuItem.js +1 -1
  159. package/dist/components/molecules/Menubar/MenuBlock/MenuItem/MenuItem.js.map +1 -1
  160. package/dist/components/molecules/Menubar/MenuBlock/MenuItem/SubMenuBlock/SubMenuBlock.js +1 -1
  161. package/dist/components/molecules/Menubar/MenuBlock/MenuItem/SubMenuBlock/SubMenuBlock.js.map +1 -1
  162. package/dist/components/molecules/Menubar/MenuBlock/MenuItem/SubMenuBlock/index.js.map +1 -1
  163. package/dist/components/molecules/Menubar/MenuBlock/MenuItem/SubMenuBlock/styled.js +1 -1
  164. package/dist/components/molecules/Menubar/MenuBlock/MenuItem/SubMenuBlock/styled.js.map +1 -1
  165. package/dist/components/molecules/Menubar/MenuBlock/MenuItem/index.js.map +1 -1
  166. package/dist/components/molecules/Menubar/MenuBlock/MenuItem/styled.js.map +1 -1
  167. package/dist/components/molecules/Menubar/MenuBlock/index.js.map +1 -1
  168. package/dist/components/molecules/Menubar/MenuBlock/styled.js +1 -1
  169. package/dist/components/molecules/Menubar/MenuBlock/styled.js.map +1 -1
  170. package/dist/components/molecules/Menubar/Menubar.js +1 -1
  171. package/dist/components/molecules/Menubar/Menubar.js.map +1 -1
  172. package/dist/components/molecules/Menubar/MostUsed/MostUsed.js +1 -1
  173. package/dist/components/molecules/Menubar/MostUsed/MostUsed.js.map +1 -1
  174. package/dist/components/molecules/Menubar/MostUsed/index.js.map +1 -1
  175. package/dist/components/molecules/Menubar/MostUsed/styled.js +1 -1
  176. package/dist/components/molecules/Menubar/MostUsed/styled.js.map +1 -1
  177. package/dist/components/molecules/Menubar/SearchResultItem/SearchResultItem.js +1 -1
  178. package/dist/components/molecules/Menubar/SearchResultItem/SearchResultItem.js.map +1 -1
  179. package/dist/components/molecules/Menubar/SearchResultItem/index.js.map +1 -1
  180. package/dist/components/molecules/Menubar/SearchResultItem/styled.js +1 -1
  181. package/dist/components/molecules/Menubar/SearchResultItem/styled.js.map +1 -1
  182. package/dist/components/molecules/Menubar/SearchResultItem/utils.d.ts +1 -1
  183. package/dist/components/molecules/Menubar/SearchResultItem/utils.js +2 -2
  184. package/dist/components/molecules/Menubar/SearchResultItem/utils.js.map +1 -1
  185. package/dist/components/molecules/Menubar/animations.js +1 -1
  186. package/dist/components/molecules/Menubar/animations.js.map +1 -1
  187. package/dist/components/molecules/Menubar/index.js +4 -4
  188. package/dist/components/molecules/Menubar/index.js.map +1 -1
  189. package/dist/components/molecules/Menubar/styled.js +1 -1
  190. package/dist/components/molecules/Menubar/styled.js.map +1 -1
  191. package/dist/components/molecules/Menubar/types.js.map +1 -1
  192. package/dist/components/molecules/Menubar/utils.js.map +1 -1
  193. package/dist/components/molecules/Select/Dropdown/Dropdown.js.map +1 -1
  194. package/dist/components/molecules/Select/Dropdown/components/SearchInput.js.map +1 -1
  195. package/dist/components/molecules/Select/Dropdown/components/index.js.map +1 -1
  196. package/dist/components/molecules/Select/Dropdown/index.js.map +1 -1
  197. package/dist/components/molecules/Select/Dropdown/styled.js +1 -1
  198. package/dist/components/molecules/Select/Dropdown/styled.js.map +1 -1
  199. package/dist/components/molecules/Select/Select.js +1 -1
  200. package/dist/components/molecules/Select/Select.js.map +1 -1
  201. package/dist/components/molecules/Select/SelectItem/SelectItem.js.map +1 -1
  202. package/dist/components/molecules/Select/SelectItem/index.js.map +1 -1
  203. package/dist/components/molecules/Select/SelectItem/styled.js +1 -1
  204. package/dist/components/molecules/Select/SelectItem/styled.js.map +1 -1
  205. package/dist/components/molecules/Select/animations.js.map +1 -1
  206. package/dist/components/molecules/Select/functions.js.map +1 -1
  207. package/dist/components/molecules/Select/index.js.map +1 -1
  208. package/dist/components/molecules/Select/styled.js +1 -1
  209. package/dist/components/molecules/Select/styled.js.map +1 -1
  210. package/dist/components/molecules/Snackbar/Snackbar.js +1 -1
  211. package/dist/components/molecules/Snackbar/Snackbar.js.map +1 -1
  212. package/dist/components/molecules/Snackbar/index.js.map +1 -1
  213. package/dist/components/molecules/Snackbar/styled.js.map +1 -1
  214. package/dist/components/molecules/TextArea/TextArea.js +1 -1
  215. package/dist/components/molecules/TextArea/TextArea.js.map +1 -1
  216. package/dist/components/molecules/TextArea/index.js.map +1 -1
  217. package/dist/components/molecules/TextArea/styled.js.map +1 -1
  218. package/dist/components/organisms/DataGrid/DataGrid.d.ts +1 -1
  219. package/dist/components/organisms/DataGrid/DataGrid.js.map +1 -1
  220. package/dist/components/organisms/DataGrid/Footer/Footer.js.map +1 -1
  221. package/dist/components/organisms/DataGrid/Footer/index.js.map +1 -1
  222. package/dist/components/organisms/DataGrid/Footer/styled.js +1 -1
  223. package/dist/components/organisms/DataGrid/Footer/styled.js.map +1 -1
  224. package/dist/components/organisms/DataGrid/Header/Header.d.ts +1 -1
  225. package/dist/components/organisms/DataGrid/Header/Header.js.map +1 -1
  226. package/dist/components/organisms/DataGrid/Header/index.js.map +1 -1
  227. package/dist/components/organisms/DataGrid/Header/styled.js.map +1 -1
  228. package/dist/components/organisms/DataGrid/Header/utils.js +1 -1
  229. package/dist/components/organisms/DataGrid/Header/utils.js.map +1 -1
  230. package/dist/components/organisms/DataGrid/Row/Row.js.map +1 -1
  231. package/dist/components/organisms/DataGrid/Row/index.js.map +1 -1
  232. package/dist/components/organisms/DataGrid/index.js.map +1 -1
  233. package/dist/components/organisms/DataGrid/styled.js.map +1 -1
  234. package/dist/components/organisms/DataGrid/types.js.map +1 -1
  235. package/dist/components/organisms/DataGrid/utils.js +1 -1
  236. package/dist/components/organisms/DataGrid/utils.js.map +1 -1
  237. package/dist/hooks/index.d.ts +2 -0
  238. package/dist/hooks/index.js +16 -0
  239. package/dist/hooks/index.js.map +1 -1
  240. package/dist/hooks/useBreakpoints.d.ts +6 -0
  241. package/dist/hooks/useBreakpoints.js +27 -0
  242. package/dist/hooks/useBreakpoints.js.map +1 -0
  243. package/dist/hooks/useClickAwayListener.js.map +1 -1
  244. package/dist/hooks/useWindowSize.d.ts +6 -0
  245. package/dist/hooks/useWindowSize.js +35 -0
  246. package/dist/hooks/useWindowSize.js.map +1 -0
  247. package/dist/index.d.ts +14 -13
  248. package/dist/index.js +155 -139
  249. package/dist/index.js.map +1 -1
  250. package/package.json +6 -6
  251. package/src/components/atoms/Button/Button.tsx +20 -1
  252. package/src/components/atoms/Button/hooks/useMouseHover.ts +17 -9
  253. package/src/components/atoms/Button/hooks/useMousePressed.ts +29 -0
  254. package/src/components/atoms/Button/styled.ts +23 -6
  255. package/src/components/atoms/Input/Input.tsx +4 -5
  256. package/src/components/atoms/InputMask/InputMask.tsx +4 -5
  257. package/src/components/molecules/DatePicker/Modal.tsx +11 -5
  258. package/src/components/molecules/DatePicker/index.ts +1 -1
  259. package/src/components/molecules/DatePicker/styled.ts +3 -3
  260. package/src/components/molecules/DateTimePicker/Modal.tsx +1 -5
  261. package/src/components/molecules/DateTimePicker/styled.ts +8 -5
  262. package/src/components/molecules/Grid/Grid.stories.tsx +198 -0
  263. package/src/components/molecules/Grid/Grid.tsx +7 -25
  264. package/src/components/molecules/Grid/Item/Item.tsx +57 -57
  265. package/src/components/molecules/Grid/Item/functions.ts +13 -0
  266. package/src/components/molecules/Grid/Item/index.ts +1 -1
  267. package/src/components/molecules/Grid/index.ts +2 -2
  268. package/src/components/molecules/IconTextButton/IconTextButton.stories.tsx +51 -0
  269. package/src/components/molecules/IconTextButton/IconTextButton.tsx +64 -0
  270. package/src/components/molecules/IconTextButton/TextComponent.tsx +39 -0
  271. package/src/components/molecules/IconTextButton/hooks/useIconTextButton.ts +31 -0
  272. package/src/components/molecules/IconTextButton/index.ts +4 -0
  273. package/src/components/molecules/IconTextButton/styled.ts +18 -0
  274. package/src/components/molecules/LabeledSwitch/LabelComponent.tsx +46 -0
  275. package/src/components/molecules/LabeledSwitch/LabeledSwitch.stories.tsx +41 -0
  276. package/src/components/molecules/LabeledSwitch/LabeledSwitch.tsx +58 -0
  277. package/src/components/molecules/LabeledSwitch/index.ts +4 -0
  278. package/src/components/molecules/LabeledSwitch/styled.ts +26 -0
  279. package/src/components/molecules/Menubar/Menubar.tsx +4 -3
  280. package/src/components/molecules/Menubar/SearchResultItem/utils.tsx +2 -2
  281. package/src/components/molecules/Select/Dropdown/Dropdown.tsx +4 -3
  282. package/src/components/molecules/Select/Select.tsx +10 -8
  283. package/src/components/organisms/DataGrid/DataGrid.tsx +16 -20
  284. package/src/components/organisms/DataGrid/Header/Header.tsx +1 -1
  285. package/src/hooks/index.ts +2 -0
  286. package/src/hooks/useBreakpoints.ts +18 -0
  287. package/src/hooks/useWindowSize.ts +25 -0
  288. package/src/index.ts +33 -24
@@ -1,2 +1,2 @@
1
1
  export { default as GridItem } from './Item';
2
- export type { IGridItem } from './Item';
2
+ export type { IGridItemWeb } from './Item';
@@ -1,4 +1,4 @@
1
1
  export { GridItem } from './Item';
2
- export type { IGridItem } from './Item';
2
+ export type { IGridItemWeb } from './Item';
3
3
  export { default as Grid } from './Grid';
4
- export type { IGrid } from './Grid';
4
+ export type { IGridWeb } from './Grid';
@@ -0,0 +1,51 @@
1
+ import { action } from '@storybook/addon-actions';
2
+ import { Story } from '@storybook/react';
3
+ import React from 'react';
4
+ import IconTextButton, { WebIconTextButtonProps } from './IconTextButton';
5
+
6
+ export default {
7
+ title: 'Web/IconTextButton',
8
+ component: IconTextButton,
9
+ };
10
+
11
+ const TemplateIcon: Story<WebIconTextButtonProps> = args => (
12
+ <IconTextButton {...args} />
13
+ );
14
+
15
+ export const BaseIcon = TemplateIcon.bind({});
16
+
17
+ BaseIcon.args = {
18
+ onPress: e => action('onPress')(e),
19
+ iconProps: {
20
+ name: 'rocket',
21
+ type: 'font-awesome',
22
+ },
23
+ };
24
+
25
+ const TemplateIconText: Story<WebIconTextButtonProps> = args => (
26
+ <IconTextButton {...args} />
27
+ );
28
+
29
+ export const BaseIconText = TemplateIconText.bind({});
30
+
31
+ BaseIconText.args = {
32
+ onPress: e => action('onPress')(e),
33
+ variant: 'outlined',
34
+ iconProps: {
35
+ name: 'rocket',
36
+ type: 'font-awesome',
37
+ },
38
+ label: 'Rocket Icon!',
39
+ };
40
+
41
+ const TemplateText: Story<WebIconTextButtonProps> = args => (
42
+ <IconTextButton {...args} />
43
+ );
44
+
45
+ export const BaseText = TemplateText.bind({});
46
+
47
+ BaseText.args = {
48
+ onPress: e => action('onPress')(e),
49
+ variant: 'text',
50
+ label: 'No rocket icon :(',
51
+ };
@@ -0,0 +1,64 @@
1
+ import { IconComponent, IconTextButtonProps } from '@tecsinapse/react-core';
2
+ import React from 'react';
3
+ import { WebButtonProps } from '../../atoms/Button';
4
+ import useIconTextButton from './hooks/useIconTextButton';
5
+ import { StyledIconTextButton } from './styled';
6
+ import TextComponent from './TextComponent';
7
+
8
+ export type WebIconTextButtonProps = IconTextButtonProps &
9
+ Omit<WebButtonProps, 'ButtonProps'>;
10
+
11
+ const IconTextButton: React.FC<WebIconTextButtonProps> = ({
12
+ iconProps,
13
+ iconPosition = 'left',
14
+ textProps,
15
+ label,
16
+ variant = 'filled',
17
+ size = 'default',
18
+ ...rest
19
+ }): JSX.Element => {
20
+ const { handleHover, handlePressed, defaultFontColor } =
21
+ useIconTextButton(variant);
22
+
23
+ return (
24
+ <StyledIconTextButton
25
+ boxed={!label}
26
+ variant={variant}
27
+ size={size}
28
+ onMouseOut={() => handleHover(true)}
29
+ onMouseOver={() => handleHover(false)}
30
+ onPressIn={() => handlePressed(true)}
31
+ onPressOut={() => handlePressed(false)}
32
+ {...rest}
33
+ >
34
+ {iconPosition === 'left' ? (
35
+ <IconComponent
36
+ iconProps={iconProps}
37
+ size={size}
38
+ defaultFontColor={defaultFontColor}
39
+ />
40
+ ) : (
41
+ <></>
42
+ )}
43
+ <TextComponent
44
+ label={label}
45
+ defaultFontColor={defaultFontColor}
46
+ hasIcon={!!iconProps}
47
+ iconPosition={iconPosition}
48
+ textProps={textProps}
49
+ size={size}
50
+ />
51
+ {iconPosition === 'right' ? (
52
+ <IconComponent
53
+ iconProps={iconProps}
54
+ size={size}
55
+ defaultFontColor={defaultFontColor}
56
+ />
57
+ ) : (
58
+ <></>
59
+ )}
60
+ </StyledIconTextButton>
61
+ );
62
+ };
63
+
64
+ export default IconTextButton;
@@ -0,0 +1,39 @@
1
+ import {
2
+ ButtonSizeType,
3
+ FontColor,
4
+ IconPositionOptions,
5
+ Text,
6
+ TextProps,
7
+ } from '@tecsinapse/react-core';
8
+ import React, { FC } from 'react';
9
+
10
+ interface TextComponentProps {
11
+ textProps?: TextProps;
12
+ size?: ButtonSizeType;
13
+ defaultFontColor: keyof FontColor;
14
+ label?: string;
15
+ iconPosition?: IconPositionOptions;
16
+ hasIcon?: boolean;
17
+ }
18
+
19
+ const TextComponent: FC<TextComponentProps> = ({
20
+ textProps,
21
+ size = 'default',
22
+ defaultFontColor,
23
+ label,
24
+ }) => {
25
+ return label ? (
26
+ <Text
27
+ typography={textProps?.typography ?? size === 'small' ? 'sub' : 'base'}
28
+ fontWeight={textProps?.fontWeight ?? 'bold'}
29
+ fontColor={textProps?.fontColor ?? defaultFontColor}
30
+ {...textProps}
31
+ >
32
+ {label}
33
+ </Text>
34
+ ) : (
35
+ <></>
36
+ );
37
+ };
38
+
39
+ export default React.memo(TextComponent);
@@ -0,0 +1,31 @@
1
+ import { fontColorVC, VariantType } from '@tecsinapse/react-core';
2
+ import { useCallback, useState } from 'react';
3
+
4
+ const useIconTextButton = (variant: VariantType) => {
5
+ const [hover, setHover] = useState<boolean>(false);
6
+ const [pressed, setPressed] = useState<boolean>(false);
7
+
8
+ const defaultFontColor = !pressed && hover ? 'light' : fontColorVC[variant];
9
+
10
+ const handleHover = useCallback(
11
+ (value: boolean) => {
12
+ setHover(value);
13
+ },
14
+ [setHover]
15
+ );
16
+
17
+ const handlePressed = useCallback(
18
+ (value: boolean) => {
19
+ setPressed(value);
20
+ },
21
+ [setPressed]
22
+ );
23
+
24
+ return {
25
+ handleHover,
26
+ handlePressed,
27
+ defaultFontColor,
28
+ };
29
+ };
30
+
31
+ export default useIconTextButton;
@@ -0,0 +1,4 @@
1
+ export {
2
+ default as IconTextButton,
3
+ WebIconTextButtonProps,
4
+ } from './IconTextButton';
@@ -0,0 +1,18 @@
1
+ import styled from '@emotion/native';
2
+ import { StyleProps } from '@tecsinapse/react-core';
3
+ import { Button } from '../../atoms/Button';
4
+
5
+ const boxedStyle = ({ theme }: Partial<StyleProps>) =>
6
+ `
7
+ padding: ${theme?.spacing.centi};
8
+ aspect-ratio: 1;
9
+ `;
10
+
11
+ export const StyledIconTextButton = styled(Button)<
12
+ Partial<StyleProps> & {
13
+ boxed: boolean;
14
+ }
15
+ >`
16
+ gap: ${({ theme }) => theme?.spacing.mili};
17
+ ${({ boxed, theme }) => boxed && boxedStyle({ theme })};
18
+ `;
@@ -0,0 +1,46 @@
1
+ import {
2
+ FontColor,
3
+ FontWeight,
4
+ LabelPositionOptions,
5
+ TextProps,
6
+ } from '@tecsinapse/react-core';
7
+ import React, { FC } from 'react';
8
+ import { Pressable, PressableProps } from 'react-native';
9
+ import { StyledLabel } from './styled';
10
+
11
+ export interface LabelComponentProps extends PressableProps {
12
+ label: string;
13
+ labelPosition: LabelPositionOptions;
14
+ labelProps?: TextProps;
15
+ active: boolean;
16
+ switchDisabled?: boolean;
17
+ }
18
+
19
+ const LabelComponent: FC<LabelComponentProps> = ({
20
+ label,
21
+ labelPosition,
22
+ labelProps,
23
+ active,
24
+ switchDisabled = false,
25
+ ...rest
26
+ }) => {
27
+ const defaultFontColor: keyof FontColor =
28
+ active && !switchDisabled ? 'dark' : 'medium';
29
+ const defaultFontWeight: keyof FontWeight =
30
+ active && !switchDisabled ? 'bold' : 'regular';
31
+
32
+ return (
33
+ <Pressable {...rest}>
34
+ <StyledLabel
35
+ labelPosition={labelPosition}
36
+ fontColor={labelProps?.fontColor ?? defaultFontColor}
37
+ fontWeight={labelProps?.fontWeight ?? defaultFontWeight}
38
+ {...labelProps}
39
+ >
40
+ {label}
41
+ </StyledLabel>
42
+ </Pressable>
43
+ );
44
+ };
45
+
46
+ export default React.memo(LabelComponent);
@@ -0,0 +1,41 @@
1
+ import { action } from '@storybook/addon-actions';
2
+ import { Story } from '@storybook/react';
3
+ import React from 'react';
4
+ import {
5
+ default as LabeledSwitch,
6
+ LabeledSwitchWebProps,
7
+ } from './LabeledSwitch';
8
+
9
+ export default {
10
+ title: 'Web/LabeledSwitch',
11
+ component: LabeledSwitch,
12
+ };
13
+
14
+ const Template: Story<LabeledSwitchWebProps> = args => {
15
+ const [active, setActive] = React.useState(args.active);
16
+ const onChange = arg => {
17
+ setActive(!active);
18
+ args.onChange(arg);
19
+ };
20
+
21
+ return (
22
+ <LabeledSwitch
23
+ active={active}
24
+ onChange={onChange}
25
+ disabled={args.disabled}
26
+ label={'Labeled switch!'}
27
+ labelPosition={args.labelPosition}
28
+ pressableLabel={args.pressableLabel}
29
+ />
30
+ );
31
+ };
32
+
33
+ export const Base = Template.bind({});
34
+
35
+ Base.args = {
36
+ active: true,
37
+ onChange: value => action('Clicked')(value),
38
+ disabled: false,
39
+ labelPosition: 'right',
40
+ pressableLabel: true,
41
+ };
@@ -0,0 +1,58 @@
1
+ import { LabeledSwitchProps, Switch, TextProps } from '@tecsinapse/react-core';
2
+ import React, { FC } from 'react';
3
+ import LabelComponent from './LabelComponent';
4
+ import { StyledDiv } from './styled';
5
+
6
+ export type LabeledSwitchWebProps = LabeledSwitchProps & {
7
+ labelProps?: TextProps;
8
+ };
9
+
10
+ const LabeledSwitch: FC<LabeledSwitchWebProps> = ({
11
+ label,
12
+ labelPosition = 'right',
13
+ labelProps,
14
+ pressableLabel = false,
15
+ disabled,
16
+ active,
17
+ onChange,
18
+ ...rest
19
+ }) => {
20
+ return (
21
+ <StyledDiv>
22
+ {labelPosition === 'left' ? (
23
+ <LabelComponent
24
+ active={active}
25
+ label={label}
26
+ labelPosition={'left'}
27
+ labelProps={labelProps}
28
+ disabled={!pressableLabel || disabled}
29
+ switchDisabled={disabled}
30
+ onPress={() => onChange(!active)}
31
+ />
32
+ ) : (
33
+ <></>
34
+ )}
35
+ <Switch
36
+ active={active}
37
+ disabled={disabled}
38
+ onChange={onChange}
39
+ {...rest}
40
+ />
41
+ {labelPosition === 'right' ? (
42
+ <LabelComponent
43
+ active={active}
44
+ label={label}
45
+ labelPosition={'right'}
46
+ labelProps={labelProps}
47
+ disabled={!pressableLabel || disabled}
48
+ switchDisabled={disabled}
49
+ onPress={() => onChange(!active)}
50
+ />
51
+ ) : (
52
+ <></>
53
+ )}
54
+ </StyledDiv>
55
+ );
56
+ };
57
+
58
+ export default LabeledSwitch;
@@ -0,0 +1,4 @@
1
+ export {
2
+ default as LabeledSwitch,
3
+ LabeledSwitchWebProps,
4
+ } from './LabeledSwitch';
@@ -0,0 +1,26 @@
1
+ import { css, default as nativeStyled } from '@emotion/native';
2
+ import { default as webStyled } from '@emotion/styled';
3
+ import { LabelPositionOptions, StyleProps, Text } from '@tecsinapse/react-core';
4
+
5
+ export const StyledDiv = webStyled('div')`
6
+ display: flex;
7
+ flex-direction: row;
8
+ align-items: center;
9
+ `;
10
+
11
+ export const StyledLabel = nativeStyled(Text)<
12
+ Partial<StyleProps> & {
13
+ labelPosition: LabelPositionOptions;
14
+ }
15
+ >`
16
+ ${({ theme, labelPosition }) => {
17
+ if (labelPosition === 'right')
18
+ return css`
19
+ margin-left: ${theme?.spacing.centi};
20
+ `;
21
+ else if (labelPosition === 'left')
22
+ return css`
23
+ margin-right: ${theme?.spacing.centi};
24
+ `;
25
+ }}
26
+ `;
@@ -52,9 +52,10 @@ const Menubar: React.FC<MenubarProps> = ({
52
52
  const menuRef = useRef<HTMLDivElement | null>(null);
53
53
  useClickAwayListener(menuRef, setOpen, 'mouseup');
54
54
 
55
- const toggleOpen = React.useCallback(() => setOpen(state => !state), [
56
- setOpen,
57
- ]);
55
+ const toggleOpen = React.useCallback(
56
+ () => setOpen(state => !state),
57
+ [setOpen]
58
+ );
58
59
 
59
60
  React.useEffect(() => {
60
61
  if (search === '') return;
@@ -39,7 +39,7 @@ export const stringMatcher = (
39
39
  return Array.from(tx.matchAll(r));
40
40
  };
41
41
 
42
- const highlightReplacer = <T extends unknown>(
42
+ const highlightReplacer = <T,>(
43
43
  searchTerm: string,
44
44
  textToReplace: string,
45
45
  Component: React.ElementType,
@@ -66,7 +66,7 @@ const highlightReplacer = <T extends unknown>(
66
66
  });
67
67
  };
68
68
 
69
- export const highlight = <T extends unknown>(
69
+ export const highlight = <T,>(
70
70
  searchTerm: string,
71
71
  textToReplace: string,
72
72
  Component: React.ElementType,
@@ -59,9 +59,10 @@ const Dropdown = <Data, Type extends 'single' | 'multi'>({
59
59
  !aux ? onSelect(auxArray as OnSelectArg) : onSelect(items as OnSelectArg);
60
60
  }, [options, setCheckedAll, onSelect]);
61
61
 
62
- const onChange = React.useCallback(text => setSearchArg(text), [
63
- setSearchArg,
64
- ]);
62
+ const onChange = React.useCallback(
63
+ text => setSearchArg(text),
64
+ [setSearchArg]
65
+ );
65
66
 
66
67
  return (
67
68
  <StyledContainerDropdown
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  PressableInputContainer,
3
3
  Text,
4
- TextProps
4
+ TextProps,
5
5
  } from '@tecsinapse/react-core';
6
6
  import React from 'react';
7
7
  import { Transition } from 'react-transition-group';
@@ -12,7 +12,7 @@ import { getDisplayValue } from './functions';
12
12
  import {
13
13
  RightComponent,
14
14
  StyledContainer,
15
- StyledInputContainer
15
+ StyledInputContainer,
16
16
  } from './styled';
17
17
 
18
18
  export interface SelectProps<Data, Type extends 'single' | 'multi'>
@@ -60,9 +60,10 @@ export const Select = <Data, Type extends 'single' | 'multi'>({
60
60
  useClickAwayListener(refDropDown, setDropDownVisible);
61
61
 
62
62
  const onlyLabel = label && !placeholder;
63
- const hasValue = type === 'single' ? !!value : ((value || []) as []).length > 0
64
- const _placeholder = onlyLabel ? label : placeholder
65
- const _label = hasValue ? label : undefined
63
+ const hasValue =
64
+ type === 'single' ? !!value : ((value || []) as []).length > 0;
65
+ const _placeholder = onlyLabel ? label : placeholder;
66
+ const _label = hasValue ? label : undefined;
66
67
 
67
68
  const displayValue = getDisplayValue<Data>(
68
69
  type,
@@ -73,9 +74,10 @@ export const Select = <Data, Type extends 'single' | 'multi'>({
73
74
  labelExtractor
74
75
  );
75
76
 
76
- const onPress = React.useCallback(() => setDropDownVisible(prev => !prev), [
77
- setDropDownVisible,
78
- ]);
77
+ const onPress = React.useCallback(
78
+ () => setDropDownVisible(prev => !prev),
79
+ [setDropDownVisible]
80
+ );
79
81
 
80
82
  return (
81
83
  <StyledContainer ref={refDropDown} {...rest}>
@@ -57,7 +57,7 @@ export interface DataGridProps<Data>
57
57
  }
58
58
 
59
59
  /** Note: Consider memoizing functions for a better performance */
60
- const DataGrid = <Data extends unknown>({
60
+ const DataGrid = <Data,>({
61
61
  headers,
62
62
  data,
63
63
  rowKeyExtractor,
@@ -139,25 +139,21 @@ const DataGrid = <Data extends unknown>({
139
139
  {!loading ? (
140
140
  <TBody>
141
141
  {data.length > 0 ? (
142
- getData(
143
- data,
144
- rowsCount,
145
- page,
146
- rowsPerPage,
147
- pagination
148
- ).map(item => (
149
- <Row
150
- key={rowKeyExtractor(item)}
151
- rowKeyExtractor={rowKeyExtractor}
152
- handleSelect={handleSelect}
153
- selectable={selectable}
154
- headers={headers}
155
- data={item}
156
- checked={selectedRows?.some(
157
- sel => rowKeyExtractor(sel) === rowKeyExtractor(item)
158
- )}
159
- />
160
- ))
142
+ getData(data, rowsCount, page, rowsPerPage, pagination).map(
143
+ item => (
144
+ <Row
145
+ key={rowKeyExtractor(item)}
146
+ rowKeyExtractor={rowKeyExtractor}
147
+ handleSelect={handleSelect}
148
+ selectable={selectable}
149
+ headers={headers}
150
+ data={item}
151
+ checked={selectedRows?.some(
152
+ sel => rowKeyExtractor(sel) === rowKeyExtractor(item)
153
+ )}
154
+ />
155
+ )
156
+ )
161
157
  ) : (
162
158
  <tr>
163
159
  <td colSpan={99}>{emptyPlaceholder}</td>
@@ -21,7 +21,7 @@ export interface DataGridHeaderProps<Data> {
21
21
  selectable?: boolean;
22
22
  }
23
23
 
24
- const Header = <Data extends unknown>({
24
+ const Header = <Data,>({
25
25
  selectable,
26
26
  rowsCount,
27
27
  headers,
@@ -1 +1,3 @@
1
+ export { useBreakpoints } from './useBreakpoints';
1
2
  export { useClickAwayListener } from './useClickAwayListener';
3
+ export { useWindowSize } from './useWindowSize';
@@ -0,0 +1,18 @@
1
+ import { useTheme } from '@tecsinapse/react-core';
2
+ import { useWindowSize } from './useWindowSize';
3
+
4
+ export type UseBreakpointsReturn = {
5
+ sm: boolean;
6
+ md: boolean;
7
+ lg: boolean;
8
+ };
9
+
10
+ export const useBreakpoints = (): UseBreakpointsReturn => {
11
+ const { width } = useWindowSize();
12
+ const { breakpoints } = useTheme();
13
+ return {
14
+ sm: Number(width) >= 0 && Number(width) <= breakpoints.sm,
15
+ md: Number(width) > breakpoints.sm && Number(width) <= breakpoints.md,
16
+ lg: Number(width) > breakpoints.md,
17
+ };
18
+ };
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+
3
+ type WindowSize = {
4
+ width: number | undefined;
5
+ height: number | undefined;
6
+ };
7
+
8
+ export const useWindowSize = (): WindowSize => {
9
+ const [windowSize, setWindowSize] = React.useState<WindowSize>({
10
+ width: undefined,
11
+ height: undefined,
12
+ });
13
+ React.useEffect(() => {
14
+ const handleResize = () => {
15
+ setWindowSize({
16
+ width: window.innerWidth,
17
+ height: window.innerHeight,
18
+ });
19
+ };
20
+ window.addEventListener('resize', handleResize);
21
+ handleResize();
22
+ return () => window.removeEventListener('resize', handleResize);
23
+ }, []);
24
+ return windowSize;
25
+ };