@ftdata/ui 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (265) hide show
  1. package/README.md +23 -0
  2. package/dist/assets/AddIcon.d.ts +3 -0
  3. package/dist/assets/AddIcon.js +35 -0
  4. package/dist/assets/ArrowLeftIcon.d.ts +2 -0
  5. package/dist/assets/ArrowLeftIcon.js +26 -0
  6. package/dist/assets/BackArrowIcon.d.ts +3 -0
  7. package/dist/assets/BackArrowIcon.js +35 -0
  8. package/dist/assets/BellIcon.d.ts +2 -0
  9. package/dist/assets/BellIcon.js +43 -0
  10. package/dist/assets/BuildingIcon.d.ts +2 -0
  11. package/dist/assets/BuildingIcon.js +15 -0
  12. package/dist/assets/BurgerMenu.d.ts +3 -0
  13. package/dist/assets/BurgerMenu.js +41 -0
  14. package/dist/assets/CancelSquareIcon.d.ts +3 -0
  15. package/dist/assets/CancelSquareIcon.js +36 -0
  16. package/dist/assets/CarretDownIcon.d.ts +3 -0
  17. package/dist/assets/CarretDownIcon.js +32 -0
  18. package/dist/assets/CavetDown.d.ts +2 -0
  19. package/dist/assets/CavetDown.js +18 -0
  20. package/dist/assets/CavetRight.d.ts +2 -0
  21. package/dist/assets/CavetRight.js +18 -0
  22. package/dist/assets/CavetUp.d.ts +2 -0
  23. package/dist/assets/CavetUp.js +18 -0
  24. package/dist/assets/CheckMarkIcon.d.ts +3 -0
  25. package/dist/assets/CheckMarkIcon.js +39 -0
  26. package/dist/assets/CheckmarkDone.d.ts +3 -0
  27. package/dist/assets/CheckmarkDone.js +27 -0
  28. package/dist/assets/CloseIcon.d.ts +2 -0
  29. package/dist/assets/CloseIcon.js +27 -0
  30. package/dist/assets/CommandIcon.d.ts +2 -0
  31. package/dist/assets/CommandIcon.js +77 -0
  32. package/dist/assets/DoneCircleIcon.d.ts +3 -0
  33. package/dist/assets/DoneCircleIcon.js +29 -0
  34. package/dist/assets/EmptyAlertDetail.d.ts +2 -0
  35. package/dist/assets/EmptyAlertDetail.js +451 -0
  36. package/dist/assets/EmptyPage.d.ts +3 -0
  37. package/dist/assets/EmptyPage.js +551 -0
  38. package/dist/assets/EyeIcon.d.ts +2 -0
  39. package/dist/assets/EyeIcon.js +35 -0
  40. package/dist/assets/FenceIcon.d.ts +2 -0
  41. package/dist/assets/FenceIcon.js +70 -0
  42. package/dist/assets/FolderCheckmark.d.ts +3 -0
  43. package/dist/assets/FolderCheckmark.js +44 -0
  44. package/dist/assets/FulltrackLogo.d.ts +3 -0
  45. package/dist/assets/FulltrackLogo.js +37 -0
  46. package/dist/assets/GlobeIcon.d.ts +2 -0
  47. package/dist/assets/GlobeIcon.js +61 -0
  48. package/dist/assets/GoogleIcon.d.ts +2 -0
  49. package/dist/assets/GoogleIcon.js +18 -0
  50. package/dist/assets/Group.js +2 -0
  51. package/dist/assets/MinusMarkIcon.d.ts +3 -0
  52. package/dist/assets/MinusMarkIcon.js +40 -0
  53. package/dist/assets/MosaicIcon.d.ts +3 -0
  54. package/dist/assets/MosaicIcon.js +41 -0
  55. package/dist/assets/NavLogo.d.ts +3 -0
  56. package/dist/assets/NavLogo.js +73 -0
  57. package/dist/assets/PinLocation.d.ts +2 -0
  58. package/dist/assets/PinLocation.js +31 -0
  59. package/dist/assets/PlusAddIcon.d.ts +2 -0
  60. package/dist/assets/PlusAddIcon.js +42 -0
  61. package/dist/assets/RefreshIcon.d.ts +2 -0
  62. package/dist/assets/RefreshIcon.js +16 -0
  63. package/dist/assets/SearchIcon.d.ts +3 -0
  64. package/dist/assets/SearchIcon.js +30 -0
  65. package/dist/assets/SendIcon.d.ts +3 -0
  66. package/dist/assets/SendIcon.js +20 -0
  67. package/dist/assets/StreetView.d.ts +2 -0
  68. package/dist/assets/StreetView.js +52 -0
  69. package/dist/assets/SwitchCheckMarkIcon.d.ts +3 -0
  70. package/dist/assets/SwitchCheckMarkIcon.js +40 -0
  71. package/dist/assets/WarningIcon.d.ts +2 -0
  72. package/dist/assets/WarningIcon.js +34 -0
  73. package/dist/assets/gif/how-to-use.js +2 -0
  74. package/dist/assets/iconMenu/SettingsIcon.d.ts +2 -0
  75. package/dist/assets/iconMenu/SettingsIcon.js +30 -0
  76. package/dist/assets/img/cover.js +2 -0
  77. package/dist/assets/img/map-sample.js +2 -0
  78. package/dist/assets/img/photo-goes-here.js +2 -0
  79. package/dist/assets/svg/chat.js +2 -0
  80. package/dist/assets/svg/colored-item.js +2 -0
  81. package/dist/assets/svg/mailbox-bro.js +2 -0
  82. package/dist/assets/svg/star-favorite.js +2 -0
  83. package/dist/assets/travolta.js +2 -0
  84. package/dist/components/Avatar/Avatar.stories.d.ts +33 -0
  85. package/dist/components/Avatar/Avatar.stories.js +177 -0
  86. package/dist/components/Avatar/index.d.ts +7 -0
  87. package/dist/components/Avatar/index.js +28 -0
  88. package/dist/components/Avatar/styles.d.ts +4 -0
  89. package/dist/components/Avatar/styles.js +37 -0
  90. package/dist/components/Avatar/utils/getAvatarColors.d.ts +6 -0
  91. package/dist/components/Avatar/utils/getAvatarColors.js +48 -0
  92. package/dist/components/Breadcrumb/Breadcrumb.stories.d.ts +17 -0
  93. package/dist/components/Breadcrumb/Breadcrumb.stories.js +51 -0
  94. package/dist/components/Breadcrumb/index.d.ts +10 -0
  95. package/dist/components/Breadcrumb/index.js +34 -0
  96. package/dist/components/Breadcrumb/styles.d.ts +9 -0
  97. package/dist/components/Breadcrumb/styles.js +43 -0
  98. package/dist/components/Button/Button.stories.d.ts +58 -0
  99. package/dist/components/Button/Button.stories.js +284 -0
  100. package/dist/components/Button/index.d.ts +26 -0
  101. package/dist/components/Button/index.js +69 -0
  102. package/dist/components/Button/modifiers.d.ts +8 -0
  103. package/dist/components/Button/modifiers.js +41 -0
  104. package/dist/components/Button/styles.d.ts +25 -0
  105. package/dist/components/Button/styles.js +111 -0
  106. package/dist/components/Checkbox/CheckMarkIcon.d.ts +3 -0
  107. package/dist/components/Checkbox/CheckMarkIcon.js +38 -0
  108. package/dist/components/Checkbox/Checkbox.stories.d.ts +35 -0
  109. package/dist/components/Checkbox/Checkbox.stories.js +101 -0
  110. package/dist/components/Checkbox/MinusMarkIcon.d.ts +3 -0
  111. package/dist/components/Checkbox/MinusMarkIcon.js +39 -0
  112. package/dist/components/Checkbox/index.d.ts +9 -0
  113. package/dist/components/Checkbox/index.js +40 -0
  114. package/dist/components/Checkbox/styles.d.ts +12 -0
  115. package/dist/components/Checkbox/styles.js +41 -0
  116. package/dist/components/Collapse/Colapse.stories.d.ts +10 -0
  117. package/dist/components/Collapse/Colapse.stories.js +108 -0
  118. package/dist/components/Collapse/index.d.ts +15 -0
  119. package/dist/components/Collapse/index.js +61 -0
  120. package/dist/components/Collapse/styles.d.ts +11 -0
  121. package/dist/components/Collapse/styles.js +23 -0
  122. package/dist/components/CustomSelect/CustomSelect.stories.d.ts +73 -0
  123. package/dist/components/CustomSelect/CustomSelect.stories.js +477 -0
  124. package/dist/components/CustomSelect/CustomSelectList/index.d.ts +10 -0
  125. package/dist/components/CustomSelect/CustomSelectList/index.js +66 -0
  126. package/dist/components/CustomSelect/CustomSelectList/style.d.ts +8 -0
  127. package/dist/components/CustomSelect/CustomSelectList/style.js +95 -0
  128. package/dist/components/CustomSelect/index.d.ts +30 -0
  129. package/dist/components/CustomSelect/index.js +193 -0
  130. package/dist/components/CustomSelect/styles.d.ts +22 -0
  131. package/dist/components/CustomSelect/styles.js +93 -0
  132. package/dist/components/DoubleList/DoubleList.stories.d.ts +13 -0
  133. package/dist/components/DoubleList/DoubleList.stories.js +82 -0
  134. package/dist/components/DoubleList/index.d.ts +9 -0
  135. package/dist/components/DoubleList/index.js +70 -0
  136. package/dist/components/DoubleList/style.d.ts +5 -0
  137. package/dist/components/DoubleList/style.js +92 -0
  138. package/dist/components/EmptyState/Empty.stories.d.ts +26 -0
  139. package/dist/components/EmptyState/Empty.stories.js +72 -0
  140. package/dist/components/EmptyState/index.d.ts +10 -0
  141. package/dist/components/EmptyState/index.js +48 -0
  142. package/dist/components/EmptyState/styles.d.ts +3 -0
  143. package/dist/components/EmptyState/styles.js +39 -0
  144. package/dist/components/Grid/Column/Column.stories.d.ts +26 -0
  145. package/dist/components/Grid/Column/Column.stories.js +335 -0
  146. package/dist/components/Grid/Column/index.d.ts +15 -0
  147. package/dist/components/Grid/Column/index.js +10 -0
  148. package/dist/components/Grid/Container/Container.stories.d.ts +11 -0
  149. package/dist/components/Grid/Container/Container.stories.js +114 -0
  150. package/dist/components/Grid/Container/index.d.ts +6 -0
  151. package/dist/components/Grid/Container/index.js +11 -0
  152. package/dist/components/Grid/Row/Row.stories.d.ts +22 -0
  153. package/dist/components/Grid/Row/Row.stories.js +248 -0
  154. package/dist/components/Grid/Row/index.d.ts +20 -0
  155. package/dist/components/Grid/Row/index.js +10 -0
  156. package/dist/components/Grid/index.d.ts +38 -0
  157. package/dist/components/Grid/index.js +121 -0
  158. package/dist/components/Grid/utils.d.ts +1 -0
  159. package/dist/components/Grid/utils.js +18 -0
  160. package/dist/components/Loading/Loading/index.d.ts +7 -0
  161. package/dist/components/Loading/Loading/index.js +9 -0
  162. package/dist/components/Loading/Loading.stories.d.ts +24 -0
  163. package/dist/components/Loading/Loading.stories.js +145 -0
  164. package/dist/components/Loading/index.d.ts +16 -0
  165. package/dist/components/Loading/index.js +98 -0
  166. package/dist/components/Menu/constants/icons.d.ts +17 -0
  167. package/dist/components/Menu/constants/icons.js +61 -0
  168. package/dist/components/Menu/helpers/createMenus.d.ts +2 -0
  169. package/dist/components/Menu/helpers/createMenus.js +20 -0
  170. package/dist/components/Menu/helpers/createSubMenus.d.ts +2 -0
  171. package/dist/components/Menu/helpers/createSubMenus.js +13 -0
  172. package/dist/components/Menu/helpers/generateColorScale.d.ts +1 -0
  173. package/dist/components/Menu/helpers/generateColorScale.js +62 -0
  174. package/dist/components/Menu/helpers/getLuminance.d.ts +1 -0
  175. package/dist/components/Menu/helpers/getLuminance.js +9 -0
  176. package/dist/components/Menu/index.d.ts +12 -0
  177. package/dist/components/Menu/index.js +108 -0
  178. package/dist/components/Menu/styles.d.ts +17 -0
  179. package/dist/components/Menu/styles.js +202 -0
  180. package/dist/components/Menu/types/IconKeysType.d.ts +2 -0
  181. package/dist/components/Menu/types/IconKeysType.js +0 -0
  182. package/dist/components/Menu/types/MenuItem.d.ts +26 -0
  183. package/dist/components/Menu/types/MenuItem.js +0 -0
  184. package/dist/components/MultiSelect/Badge/index.d.ts +6 -0
  185. package/dist/components/MultiSelect/Badge/index.js +31 -0
  186. package/dist/components/MultiSelect/Badge/styles.d.ts +1 -0
  187. package/dist/components/MultiSelect/Badge/styles.js +57 -0
  188. package/dist/components/MultiSelect/MultiSelect.stories.d.ts +61 -0
  189. package/dist/components/MultiSelect/MultiSelect.stories.js +336 -0
  190. package/dist/components/MultiSelect/MultiSelectList/index.d.ts +10 -0
  191. package/dist/components/MultiSelect/MultiSelectList/index.js +59 -0
  192. package/dist/components/MultiSelect/MultiSelectList/style.d.ts +3 -0
  193. package/dist/components/MultiSelect/MultiSelectList/style.js +82 -0
  194. package/dist/components/MultiSelect/calcTextSize.d.ts +1 -0
  195. package/dist/components/MultiSelect/calcTextSize.js +10 -0
  196. package/dist/components/MultiSelect/index.d.ts +24 -0
  197. package/dist/components/MultiSelect/index.js +284 -0
  198. package/dist/components/MultiSelect/styles.d.ts +24 -0
  199. package/dist/components/MultiSelect/styles.js +165 -0
  200. package/dist/components/Radio/Radio.stories.d.ts +18 -0
  201. package/dist/components/Radio/Radio.stories.js +30 -0
  202. package/dist/components/Radio/index.d.ts +7 -0
  203. package/dist/components/Radio/index.js +27 -0
  204. package/dist/components/Radio/story.d.ts +5 -0
  205. package/dist/components/Radio/story.js +47 -0
  206. package/dist/components/Radio/styles.d.ts +8 -0
  207. package/dist/components/Radio/styles.js +43 -0
  208. package/dist/components/StateAlert/StateAlert.stories.d.ts +46 -0
  209. package/dist/components/StateAlert/StateAlert.stories.js +189 -0
  210. package/dist/components/StateAlert/index.d.ts +22 -0
  211. package/dist/components/StateAlert/index.js +56 -0
  212. package/dist/components/StateAlert/styles.d.ts +7 -0
  213. package/dist/components/StateAlert/styles.js +124 -0
  214. package/dist/components/Switch/Switch.stories.d.ts +26 -0
  215. package/dist/components/Switch/Switch.stories.js +81 -0
  216. package/dist/components/Switch/index.d.ts +8 -0
  217. package/dist/components/Switch/index.js +26 -0
  218. package/dist/components/Switch/styles.d.ts +15 -0
  219. package/dist/components/Switch/styles.js +33 -0
  220. package/dist/components/Text/Paragraph/Paragraph.stories.d.ts +29 -0
  221. package/dist/components/Text/Paragraph/Paragraph.stories.js +124 -0
  222. package/dist/components/Text/Title/Title.stories.d.ts +41 -0
  223. package/dist/components/Text/Title/Title.stories.js +106 -0
  224. package/dist/components/Text/index.d.ts +3 -0
  225. package/dist/components/Text/index.js +17 -0
  226. package/dist/components/Text/styles.d.ts +23 -0
  227. package/dist/components/Text/styles.js +70 -0
  228. package/dist/components/TextArea/Textarea.stories.d.ts +33 -0
  229. package/dist/components/TextArea/Textarea.stories.js +65 -0
  230. package/dist/components/TextArea/index.d.ts +10 -0
  231. package/dist/components/TextArea/index.js +39 -0
  232. package/dist/components/TextArea/styles.d.ts +18 -0
  233. package/dist/components/TextArea/styles.js +88 -0
  234. package/dist/components/TooltipWrapper/Tooltip.stories.d.ts +21 -0
  235. package/dist/components/TooltipWrapper/Tooltip.stories.js +54 -0
  236. package/dist/components/TooltipWrapper/index.d.ts +20 -0
  237. package/dist/components/TooltipWrapper/index.js +56 -0
  238. package/dist/components/TooltipWrapper/styles.d.ts +6 -0
  239. package/dist/components/TooltipWrapper/styles.js +20 -0
  240. package/dist/components/Tooltips/Tooltips.stories.d.ts +25 -0
  241. package/dist/components/Tooltips/Tooltips.stories.js +139 -0
  242. package/dist/components/Tooltips/index.d.ts +8 -0
  243. package/dist/components/Tooltips/index.js +28 -0
  244. package/dist/components/Tooltips/styles.d.ts +5 -0
  245. package/dist/components/Tooltips/styles.js +37 -0
  246. package/dist/components/UserMenu/UserMenu.stories.d.ts +26 -0
  247. package/dist/components/UserMenu/UserMenu.stories.js +174 -0
  248. package/dist/components/UserMenu/index.d.ts +19 -0
  249. package/dist/components/UserMenu/index.js +64 -0
  250. package/dist/components/UserMenu/style.d.ts +2 -0
  251. package/dist/components/UserMenu/style.js +44 -0
  252. package/dist/index.d.ts +3 -0
  253. package/dist/index.js +3 -0
  254. package/dist/static/image/cover.png +0 -0
  255. package/dist/static/image/how-to-use.gif +0 -0
  256. package/dist/static/image/map-sample.png +0 -0
  257. package/dist/static/image/photo-goes-here.png +0 -0
  258. package/dist/static/image/travolta.jpg +0 -0
  259. package/dist/static/svg/Group.svg +5 -0
  260. package/dist/static/svg/chat.svg +10 -0
  261. package/dist/static/svg/colored-item.svg +9 -0
  262. package/dist/static/svg/mailbox-bro.svg +102 -0
  263. package/dist/static/svg/star-favorite.svg +3 -0
  264. package/dist/style/_reset.css +205 -0
  265. package/package.json +43 -0
@@ -0,0 +1,111 @@
1
+ import styled_components from "styled-components";
2
+ import { BORDER_RADIUS_SM, BORDER_WIDTH_NONE, BORDER_WIDTH_THIN, COLOR_BRAND_MEDIUM, COLOR_NEUTRAL_DARKER, COLOR_NEUTRAL_DAY, COLOR_NEUTRAL_DUSK, COLOR_NEUTRAL_LIGHT, COLOR_NEUTRAL_LIGHTER, FONT_FAMILY_01, FONT_SIZE_MD, FONT_SIZE_SM, FONT_WEIGHT_MEDIUM, IC_SIZE_MEDIUM, LINE_HEIGHT_MEDIUM, SHADOW_LEVEL_02, SPACING_INLINE_02, SPACING_SQUISH_NANO, SPACING_STACK_02 } from "@ftdata/f-tokens";
3
+ import Loading from "../Loading/index.js";
4
+ import { BUTTON_MODIFIERS } from "./modifiers.js";
5
+ const ButtonWrapper = styled_components("button")`
6
+ box-sizing: border-box;
7
+ * {
8
+ box-sizing: border-box;
9
+ }
10
+ align-items: center;
11
+ border-color: transparent;
12
+ border-radius: ${BORDER_RADIUS_SM};
13
+ border-style: solid;
14
+ border-width: ${BORDER_WIDTH_THIN};
15
+ cursor: pointer;
16
+ display: flex;
17
+ font-family: ${FONT_FAMILY_01};
18
+ font-size: ${FONT_SIZE_MD};
19
+ font-weight: ${FONT_WEIGHT_MEDIUM};
20
+ justify-content: center;
21
+ line-height: ${LINE_HEIGHT_MEDIUM};
22
+ padding: ${SPACING_SQUISH_NANO};
23
+ position: relative;
24
+ transition: all 0.2s ease;
25
+
26
+ svg {
27
+ height: ${IC_SIZE_MEDIUM};
28
+ width: ${IC_SIZE_MEDIUM};
29
+ }
30
+
31
+ svg ~ span {
32
+ margin-left: ${SPACING_INLINE_02};
33
+ }
34
+
35
+ span ~ svg {
36
+ height: initial;
37
+ margin-left: ${SPACING_INLINE_02};
38
+ width: initial;
39
+ }
40
+
41
+ &:hover,
42
+ &:active,
43
+ &:disabled,
44
+ &:focus,
45
+ svg,
46
+ svg path {
47
+ outline: ${BORDER_WIDTH_NONE};
48
+ transition: all 0.2s ease;
49
+ }
50
+ &:not([disabled]):not(:active):not([open]) {
51
+ &:focus {
52
+ border-color: initial;
53
+ border-style: solid;
54
+ border-width: ${BORDER_WIDTH_THIN};
55
+ }
56
+ }
57
+ &:disabled {
58
+ cursor: not-allowed;
59
+ }
60
+
61
+ ${({ variant })=>BUTTON_MODIFIERS[variant]};
62
+ ${({ wide })=>wide && BUTTON_MODIFIERS.wide};
63
+ ${({ small })=>small && BUTTON_MODIFIERS.small};
64
+ `;
65
+ const Dropdown = styled_components.div`
66
+ box-shadow: ${SHADOW_LEVEL_02} ${COLOR_NEUTRAL_LIGHT};
67
+ display: flex;
68
+ flex-direction: column;
69
+ left: 0;
70
+ padding: ${SPACING_STACK_02} 0;
71
+ position: absolute;
72
+ top: calc(100% + ${SPACING_STACK_02});
73
+ z-index: 10;
74
+ `;
75
+ const SelectButton = styled_components("div")`
76
+ align-items: center;
77
+ background-color: ${COLOR_NEUTRAL_DAY};
78
+ border-color: transparent;
79
+ border-width: ${BORDER_WIDTH_THIN};
80
+ color: ${COLOR_NEUTRAL_DARKER};
81
+ cursor: pointer;
82
+ display: flex;
83
+ font-family: ${FONT_FAMILY_01};
84
+ font-size: ${FONT_SIZE_SM};
85
+ font-weight: ${FONT_WEIGHT_MEDIUM};
86
+ line-height: ${LINE_HEIGHT_MEDIUM};
87
+ min-width: 230px;
88
+ padding: ${SPACING_SQUISH_NANO};
89
+ position: relative;
90
+ transition: all 0.2s ease;
91
+
92
+ &:hover {
93
+ background-color: ${COLOR_NEUTRAL_LIGHTER};
94
+ color: ${COLOR_NEUTRAL_DUSK};
95
+ }
96
+
97
+ &:hover,
98
+ &:active,
99
+ &:disabled,
100
+ &:focus {
101
+ outline: ${BORDER_WIDTH_NONE};
102
+ transition: all 0.2s ease;
103
+ }
104
+ &:disabled {
105
+ cursor: not-allowed;
106
+ }
107
+ `;
108
+ const Spinner = styled_components(Loading)`
109
+ background-color: ${({ variant })=>"dark" === variant ? COLOR_BRAND_MEDIUM : COLOR_NEUTRAL_LIGHTER};
110
+ `;
111
+ export { ButtonWrapper, Dropdown, SelectButton, Spinner };
@@ -0,0 +1,3 @@
1
+ import { FC } from "react";
2
+ declare const CheckMark: FC;
3
+ export default CheckMark;
@@ -0,0 +1,38 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ const CheckMark = ()=>/*#__PURE__*/ jsxs("svg", {
3
+ width: "10",
4
+ height: "10",
5
+ viewBox: "0 0 10 10",
6
+ fill: "none",
7
+ xmlns: "http://www.w3.org/2000/svg",
8
+ children: [
9
+ /*#__PURE__*/ jsxs("g", {
10
+ clipPath: "url(#checkmark)",
11
+ children: [
12
+ /*#__PURE__*/ jsx("path", {
13
+ d: "M-9.5 -9.5H19.5V19.5H-9.5V-9.5Z",
14
+ stroke: "white"
15
+ }),
16
+ /*#__PURE__*/ jsx("path", {
17
+ d: "M8.50375 3.2525L4.1275 7.62875L1.49875 5.0025",
18
+ stroke: "white",
19
+ strokeWidth: "1.5",
20
+ strokeLinecap: "round",
21
+ strokeLinejoin: "round"
22
+ })
23
+ ]
24
+ }),
25
+ /*#__PURE__*/ jsx("defs", {
26
+ children: /*#__PURE__*/ jsx("clipPath", {
27
+ id: "checkmark",
28
+ children: /*#__PURE__*/ jsx("rect", {
29
+ width: "10",
30
+ height: "10",
31
+ fill: "white"
32
+ })
33
+ })
34
+ })
35
+ ]
36
+ });
37
+ const CheckMarkIcon = CheckMark;
38
+ export { CheckMarkIcon as default };
@@ -0,0 +1,35 @@
1
+ import { Meta, StoryObj } from "@storybook/react";
2
+ import Checkbox from ".";
3
+ /**
4
+ * Os usuários podem selecionar as caixas de seleção. É possível marcar várias caixas de seleção ao mesmo tempo.
5
+ * Este componente também funciona com os atributos nativos de um HTML input element.
6
+ */
7
+ declare const meta: Meta<typeof Checkbox>;
8
+ export default meta;
9
+ type Story = StoryObj<typeof meta>;
10
+ /**
11
+ * Variação padrão do Button quando apenas as propriedades obrigatórias são fornecidas.
12
+ */
13
+ export declare const Default: Story;
14
+ /**
15
+ * Variação do Checkbox quando selecionado.
16
+ */
17
+ export declare const Checked: Story;
18
+ /**
19
+ * Variação do Checkbox quando não está selecionado.
20
+ */
21
+ export declare const Unchecked: Story;
22
+ /**
23
+ * Variação do Checkbox utilizada quando se trata de seleções parciais em listas de opções,
24
+ * indicando visualmente que nem todos os itens estão selecionados, mas também não estão todos desmarcados,
25
+ * como em situações de seleções incompletas ou parciais.
26
+ */
27
+ export declare const Indeterminate: Story;
28
+ /**
29
+ * Variação do Checkbox quando possui erros.
30
+ */
31
+ export declare const Invalid: Story;
32
+ /**
33
+ * Variação do Checkbox quando está desativado para o usuário.
34
+ */
35
+ export declare const Disabled: Story;
@@ -0,0 +1,101 @@
1
+ import index from "./index.js";
2
+ const meta = {
3
+ title: "DESIGN COMPONENTS/Checkbox",
4
+ component: index,
5
+ tags: [
6
+ "autodocs"
7
+ ],
8
+ parameters: {
9
+ layout: "centered"
10
+ },
11
+ argTypes: {
12
+ checked: {
13
+ description: "Define se o Checkbox est\xe1 marcada."
14
+ },
15
+ indeterminate: {
16
+ description: "Define se o Checkbox est\xe1 indeterminado.",
17
+ table: {
18
+ defaultValue: {
19
+ summary: "false"
20
+ }
21
+ }
22
+ },
23
+ invalid: {
24
+ description: "Define se o Checkbox est\xe1 inv\xe1lido (erro).",
25
+ table: {
26
+ defaultValue: {
27
+ summary: "false"
28
+ }
29
+ }
30
+ },
31
+ label: {
32
+ description: "Define o texto do Checkbox."
33
+ },
34
+ disabled: {
35
+ control: {
36
+ type: "boolean"
37
+ },
38
+ description: "Define se o Checkbox est\xe1 desabilitado.",
39
+ table: {
40
+ defaultValue: {
41
+ summary: "false"
42
+ },
43
+ type: {
44
+ summary: "boolean"
45
+ }
46
+ }
47
+ },
48
+ name: {
49
+ control: {
50
+ type: "text"
51
+ },
52
+ description: "Define o 'name' do Checkbox, apenas para a identifica\xe7\xe3o.",
53
+ table: {
54
+ type: {
55
+ summary: "string"
56
+ }
57
+ }
58
+ }
59
+ }
60
+ };
61
+ const Checkbox_stories = meta;
62
+ const Default = {
63
+ args: {
64
+ label: "Default",
65
+ checked: false
66
+ }
67
+ };
68
+ const Checked = {
69
+ args: {
70
+ label: "Checked",
71
+ checked: true
72
+ }
73
+ };
74
+ const Unchecked = {
75
+ args: {
76
+ label: "Checked",
77
+ checked: false
78
+ }
79
+ };
80
+ const Indeterminate = {
81
+ args: {
82
+ label: "Indeterminate",
83
+ checked: false,
84
+ indeterminate: true
85
+ }
86
+ };
87
+ const Invalid = {
88
+ args: {
89
+ label: "Invalid",
90
+ checked: false,
91
+ invalid: true
92
+ }
93
+ };
94
+ const Disabled = {
95
+ args: {
96
+ label: "Disabled",
97
+ checked: false,
98
+ disabled: true
99
+ }
100
+ };
101
+ export { Checked, Default, Disabled, Indeterminate, Invalid, Unchecked, Checkbox_stories as default };
@@ -0,0 +1,3 @@
1
+ import { FC } from "react";
2
+ declare const MinusMark: FC;
3
+ export default MinusMark;
@@ -0,0 +1,39 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ const MinusMark = ()=>/*#__PURE__*/ jsxs("svg", {
3
+ width: "10",
4
+ height: "10",
5
+ viewBox: "0 0 10 10",
6
+ fill: "none",
7
+ xmlns: "http://www.w3.org/2000/svg",
8
+ children: [
9
+ /*#__PURE__*/ jsxs("g", {
10
+ clipPath: "url(#minusmark)",
11
+ children: [
12
+ /*#__PURE__*/ jsx("path", {
13
+ d: "M-9.5 -9.5H19.5V19.5H-9.5V-9.5Z",
14
+ stroke: "white"
15
+ }),
16
+ /*#__PURE__*/ jsx("rect", {
17
+ x: "1",
18
+ y: "4",
19
+ width: "8",
20
+ height: "2",
21
+ rx: "1",
22
+ fill: "white"
23
+ })
24
+ ]
25
+ }),
26
+ /*#__PURE__*/ jsx("defs", {
27
+ children: /*#__PURE__*/ jsx("clipPath", {
28
+ id: "minusmark",
29
+ children: /*#__PURE__*/ jsx("rect", {
30
+ width: "10",
31
+ height: "10",
32
+ fill: "white"
33
+ })
34
+ })
35
+ })
36
+ ]
37
+ });
38
+ const MinusMarkIcon = MinusMark;
39
+ export { MinusMarkIcon as default };
@@ -0,0 +1,9 @@
1
+ import React, { InputHTMLAttributes } from "react";
2
+ interface CheckboxProps extends InputHTMLAttributes<HTMLInputElement> {
3
+ checked: boolean;
4
+ indeterminate?: boolean;
5
+ invalid?: boolean;
6
+ label: string;
7
+ }
8
+ declare const Checkbox: React.FC<CheckboxProps>;
9
+ export default Checkbox;
@@ -0,0 +1,40 @@
1
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
+ import "react";
3
+ import { Box, FillBox, Input, Label } from "./styles.js";
4
+ import { Paragraph } from "../Text/index.js";
5
+ import MinusMarkIcon from "./MinusMarkIcon.js";
6
+ import CheckMarkIcon from "./CheckMarkIcon.js";
7
+ const Checkbox = ({ checked, disabled, indeterminate, invalid, label, name, ...rest })=>/*#__PURE__*/ jsx(Fragment, {
8
+ children: /*#__PURE__*/ jsxs(Label, {
9
+ disabled: disabled,
10
+ htmlFor: name,
11
+ children: [
12
+ /*#__PURE__*/ jsx(Input, {
13
+ checked: checked,
14
+ disabled: disabled,
15
+ id: name,
16
+ name: name,
17
+ type: "checkbox",
18
+ ...rest
19
+ }),
20
+ /*#__PURE__*/ jsx(Box, {
21
+ checked: checked,
22
+ disabled: disabled,
23
+ indeterminate: indeterminate,
24
+ invalid: invalid
25
+ }),
26
+ /*#__PURE__*/ jsx(FillBox, {
27
+ checked: checked,
28
+ disabled: disabled,
29
+ indeterminate: indeterminate,
30
+ children: indeterminate && /*#__PURE__*/ jsx(MinusMarkIcon, {}) || checked && /*#__PURE__*/ jsx(CheckMarkIcon, {})
31
+ }),
32
+ /*#__PURE__*/ jsx(Paragraph, {
33
+ size: "md",
34
+ children: label
35
+ })
36
+ ]
37
+ })
38
+ });
39
+ const components_Checkbox = Checkbox;
40
+ export { components_Checkbox as default };
@@ -0,0 +1,12 @@
1
+ import { LabelHTMLAttributes } from "react";
2
+ interface Props extends LabelHTMLAttributes<HTMLLabelElement> {
3
+ checked?: boolean;
4
+ disabled?: boolean;
5
+ indeterminate?: boolean;
6
+ invalid?: boolean;
7
+ }
8
+ export declare const Label: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").ClassAttributes<HTMLLabelElement> & LabelHTMLAttributes<HTMLLabelElement>, Props>> & string;
9
+ export declare const Box: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement>, Props>> & string;
10
+ export declare const FillBox: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("styled-components").FastOmit<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement>, keyof Props> & Props, Props>> & string;
11
+ export declare const Input: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").ClassAttributes<HTMLInputElement> & import("react").InputHTMLAttributes<HTMLInputElement>, never>> & string;
12
+ export {};
@@ -0,0 +1,41 @@
1
+ import styled_components from "styled-components";
2
+ import { BORDER_RADIUS_SM, BORDER_WIDTH_THIN, COLOR_ACCENT_MEDIUM, COLOR_DANGER_MEDIUM, COLOR_NEUTRAL_DARKER, COLOR_NEUTRAL_DAY, COLOR_NEUTRAL_DUSK, COLOR_NEUTRAL_LIGHT, COLOR_NEUTRAL_LIGHTER, SPACING_INLINE_03, SPACING_INLINE_04, SPACING_STACK_03 } from "@ftdata/f-tokens";
3
+ const Label = styled_components("label")`
4
+ box-sizing: border-box;
5
+ color: ${({ disabled })=>disabled ? COLOR_NEUTRAL_DARKER : COLOR_NEUTRAL_DUSK};
6
+ cursor: ${({ disabled })=>disabled ? "not-allowed" : "pointer"};
7
+ display: inline-block;
8
+ position: relative;
9
+ padding-left: ${SPACING_INLINE_04};
10
+ `;
11
+ const Box = styled_components("div")`
12
+ background: ${({ checked, disabled })=>disabled ? checked ? COLOR_NEUTRAL_DAY : COLOR_NEUTRAL_LIGHTER : COLOR_NEUTRAL_DAY};
13
+ border-color: ${({ disabled, invalid })=>disabled ? COLOR_NEUTRAL_LIGHT : invalid ? COLOR_DANGER_MEDIUM : COLOR_NEUTRAL_LIGHT};
14
+ border-style: solid;
15
+ border-width: ${({ checked, indeterminate })=>checked || indeterminate ? 0 : BORDER_WIDTH_THIN};
16
+ border-radius: ${BORDER_RADIUS_SM};
17
+ box-sizing: border-box;
18
+ content: "";
19
+ height: ${SPACING_STACK_03};
20
+ left: 0;
21
+ position: absolute;
22
+ top: 50%;
23
+ transform: translateY(-50%);
24
+ transition: 0.2s ease all;
25
+ width: ${SPACING_INLINE_03};
26
+ `;
27
+ const FillBox = styled_components(Box)`
28
+ align-items: center;
29
+ background-color: ${({ checked, disabled, indeterminate })=>disabled ? checked || indeterminate ? COLOR_ACCENT_MEDIUM : COLOR_ACCENT_MEDIUM : COLOR_ACCENT_MEDIUM};
30
+ display: flex;
31
+ justify-content: center;
32
+ opacity: ${({ checked, indeterminate })=>checked || indeterminate ? 1 : 0};
33
+ `;
34
+ const Input = styled_components("input")`
35
+ box-sizing: border-box;
36
+ left: -9999px;
37
+ opacity: ${({ checked })=>checked ? 1 : 0};
38
+ position: absolute;
39
+ transform: scale(${({ checked })=>checked ? 1 : 0});
40
+ `;
41
+ export { Box, FillBox, Input, Label };
@@ -0,0 +1,10 @@
1
+ import { Meta, StoryObj } from "@storybook/react";
2
+ import Collapse from ".";
3
+ /**
4
+ * Collapses são usados para permitir que usuários ocultem ou mostrem o conteúdo dinamicamente.
5
+ * Usado normalmente para economizar espaço e manter a ui concisa.
6
+ */
7
+ declare const meta: Meta<typeof Collapse>;
8
+ export default meta;
9
+ type Story = StoryObj<typeof meta>;
10
+ export declare const Default: Story;
@@ -0,0 +1,108 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import index from "./index.js";
3
+ import { COLOR_CUSTOM_COLUMNBG } from "@ftdata/f-tokens";
4
+ import { Paragraph } from "../Text/index.js";
5
+ const Element = /*#__PURE__*/ jsx("div", {
6
+ style: {
7
+ backgroundColor: "#FF5656",
8
+ fontFamily: "sans-serif",
9
+ border: "none",
10
+ borderRadius: "10px",
11
+ height: "10rem",
12
+ color: "#f5f5f5",
13
+ fontWeight: "800",
14
+ display: "flex",
15
+ alignItems: "center",
16
+ justifyContent: "center",
17
+ marginTop: "1rem"
18
+ },
19
+ children: "Elemento"
20
+ });
21
+ const defaultExample = /*#__PURE__*/ jsx(Paragraph, {
22
+ size: "sm",
23
+ children: "Este \xe9 o conte\xfado exibido dentro do Collapse."
24
+ });
25
+ const firstExample = /*#__PURE__*/ jsxs("div", {
26
+ children: [
27
+ Element,
28
+ Element
29
+ ]
30
+ });
31
+ const meta = {
32
+ title: "DESIGN COMPONENTS/Collapse",
33
+ component: index,
34
+ tags: [
35
+ "autodocs"
36
+ ],
37
+ parameters: {
38
+ layout: "centered"
39
+ },
40
+ decorators: [
41
+ (Story)=>/*#__PURE__*/ jsx("div", {
42
+ style: {
43
+ width: "300px"
44
+ },
45
+ children: /*#__PURE__*/ jsx(Story, {})
46
+ })
47
+ ],
48
+ argTypes: {
49
+ title: {
50
+ description: "Define o t\xedtulo do Collpase.",
51
+ table: {
52
+ type: {
53
+ summary: "string | JSX.Element"
54
+ }
55
+ }
56
+ },
57
+ showCollapse: {
58
+ description: "Define se o Collapse est\xe1 aberto ou fechado."
59
+ },
60
+ margin: {
61
+ description: "Define a margem do Collapse."
62
+ },
63
+ iconColor: {
64
+ description: "Define a cor do icone do Collapse."
65
+ },
66
+ iconCavet: {
67
+ description: "Define a posi\xe7\xe3o do \xedcone do Collapse."
68
+ },
69
+ children: {
70
+ control: {
71
+ type: "select"
72
+ },
73
+ description: "Recebe o que ser\xe1 exibido dentro do Collapse.",
74
+ mapping: {
75
+ "Default Example": defaultExample,
76
+ "First Example": firstExample
77
+ },
78
+ options: [
79
+ "Deafault Example",
80
+ "First Example"
81
+ ]
82
+ },
83
+ handleChange: {
84
+ description: "Recebe uma fun\xe7\xe3o respons\xe1vel em lidar com as altera\xe7\xf5es da visibilidade do Collapse."
85
+ },
86
+ fontSyze: {
87
+ description: "Define o tamanho da fonte do Collapse."
88
+ },
89
+ maxHeight: {
90
+ description: "Define o tamanho m\xe1ximo do children do Collapse."
91
+ },
92
+ espacamentoTitleIcon: {
93
+ description: "Define o espa\xe7amento entre o titulo e o \xedcone"
94
+ }
95
+ }
96
+ };
97
+ const Colapse_stories = meta;
98
+ const Default = {
99
+ args: {
100
+ title: "Collapse",
101
+ showCollapse: false,
102
+ margin: "0",
103
+ iconColor: COLOR_CUSTOM_COLUMNBG,
104
+ iconCavet: "left",
105
+ children: defaultExample
106
+ }
107
+ };
108
+ export { Default, Colapse_stories as default };
@@ -0,0 +1,15 @@
1
+ import { JSX } from "react";
2
+ interface CollapseProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "title"> {
3
+ children: JSX.Element;
4
+ title: string | JSX.Element;
5
+ showCollapse: boolean;
6
+ handleChange: () => void;
7
+ iconCavet?: string;
8
+ fontSyze?: string;
9
+ margin?: string;
10
+ iconColor?: string;
11
+ espacamentoTitleIcon?: string;
12
+ maxHeight?: string;
13
+ }
14
+ declare const Collapse: React.FC<CollapseProps>;
15
+ export default Collapse;
@@ -0,0 +1,61 @@
1
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useState } from "react";
3
+ import { ContainerColapse, ContentWrapper } from "./styles.js";
4
+ import { Title } from "../Text/index.js";
5
+ import { Icon } from "@ftdata/f-icons";
6
+ const Collapse_Collapse = ({ children, title, showCollapse, handleChange, iconCavet, fontSyze, margin, iconColor, espacamentoTitleIcon, maxHeight, ...rest })=>{
7
+ const [isVisible, setIsVisible] = useState(false);
8
+ useEffect(()=>{
9
+ if (showCollapse) setIsVisible(true);
10
+ else {
11
+ const timer = setTimeout(()=>setIsVisible(false), 300);
12
+ return ()=>clearTimeout(timer);
13
+ }
14
+ }, [
15
+ showCollapse
16
+ ]);
17
+ const validationIcon = ()=>{
18
+ if (showCollapse) return /*#__PURE__*/ jsx(Icon, {
19
+ name: "arw caret-up",
20
+ size: "2rem"
21
+ });
22
+ if ("right" == iconCavet) return /*#__PURE__*/ jsx(Icon, {
23
+ name: "arw caret-right",
24
+ size: "2rem"
25
+ });
26
+ return /*#__PURE__*/ jsx(Icon, {
27
+ name: "arw caret-down",
28
+ size: "2rem"
29
+ });
30
+ };
31
+ return /*#__PURE__*/ jsxs(Fragment, {
32
+ children: [
33
+ /*#__PURE__*/ jsxs(ContainerColapse, {
34
+ onClick: handleChange,
35
+ espacamentoTitleIcon: espacamentoTitleIcon,
36
+ margin: margin,
37
+ iconColor: iconColor,
38
+ ...rest,
39
+ children: [
40
+ "string" == typeof title ? /*#__PURE__*/ jsx(Title, {
41
+ style: {
42
+ fontWeight: fontSyze ? 500 : 600
43
+ },
44
+ size: fontSyze ? "md" : "section",
45
+ children: title
46
+ }) : title,
47
+ /*#__PURE__*/ jsx("i", {
48
+ children: validationIcon()
49
+ })
50
+ ]
51
+ }),
52
+ /*#__PURE__*/ jsx(ContentWrapper, {
53
+ className: `fade ${showCollapse ? "show" : ""}`,
54
+ maxHeight: maxHeight,
55
+ children: isVisible && children
56
+ })
57
+ ]
58
+ });
59
+ };
60
+ const Collapse = Collapse_Collapse;
61
+ export { Collapse as default };
@@ -0,0 +1,11 @@
1
+ interface ContainerColapseProps {
2
+ margin?: string;
3
+ iconColor?: string;
4
+ espacamentoTitleIcon?: string;
5
+ }
6
+ export declare const ContainerColapse: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, ContainerColapseProps>> & string;
7
+ interface ContentWrapperProps {
8
+ maxHeight?: string;
9
+ }
10
+ export declare const ContentWrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, ContentWrapperProps>> & string;
11
+ export {};
@@ -0,0 +1,23 @@
1
+ import styled_components from "styled-components";
2
+ import { SPACING_INLINE_05 } from "@ftdata/f-tokens";
3
+ const ContainerColapse = styled_components.div`
4
+ display: flex;
5
+ justify-content: ${({ espacamentoTitleIcon })=>espacamentoTitleIcon ? espacamentoTitleIcon : "space-between"};
6
+ align-items: center;
7
+ cursor: pointer;
8
+ margin-bottom: ${({ margin })=>margin ? margin : SPACING_INLINE_05};
9
+ `;
10
+ const ContentWrapper = styled_components.div`
11
+ opacity: 0;
12
+ max-height: 0;
13
+ /* overflow: hidden; */
14
+ transition:
15
+ opacity 300ms ease-in-out,
16
+ max-height 300ms ease-in-out;
17
+
18
+ &.show {
19
+ opacity: 1;
20
+ max-height: ${({ maxHeight })=>maxHeight ? maxHeight : "1000px"}; // Ajuste este valor conforme necessário
21
+ }
22
+ `;
23
+ export { ContainerColapse, ContentWrapper };