@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.
- package/README.md +23 -0
- package/dist/assets/AddIcon.d.ts +3 -0
- package/dist/assets/AddIcon.js +35 -0
- package/dist/assets/ArrowLeftIcon.d.ts +2 -0
- package/dist/assets/ArrowLeftIcon.js +26 -0
- package/dist/assets/BackArrowIcon.d.ts +3 -0
- package/dist/assets/BackArrowIcon.js +35 -0
- package/dist/assets/BellIcon.d.ts +2 -0
- package/dist/assets/BellIcon.js +43 -0
- package/dist/assets/BuildingIcon.d.ts +2 -0
- package/dist/assets/BuildingIcon.js +15 -0
- package/dist/assets/BurgerMenu.d.ts +3 -0
- package/dist/assets/BurgerMenu.js +41 -0
- package/dist/assets/CancelSquareIcon.d.ts +3 -0
- package/dist/assets/CancelSquareIcon.js +36 -0
- package/dist/assets/CarretDownIcon.d.ts +3 -0
- package/dist/assets/CarretDownIcon.js +32 -0
- package/dist/assets/CavetDown.d.ts +2 -0
- package/dist/assets/CavetDown.js +18 -0
- package/dist/assets/CavetRight.d.ts +2 -0
- package/dist/assets/CavetRight.js +18 -0
- package/dist/assets/CavetUp.d.ts +2 -0
- package/dist/assets/CavetUp.js +18 -0
- package/dist/assets/CheckMarkIcon.d.ts +3 -0
- package/dist/assets/CheckMarkIcon.js +39 -0
- package/dist/assets/CheckmarkDone.d.ts +3 -0
- package/dist/assets/CheckmarkDone.js +27 -0
- package/dist/assets/CloseIcon.d.ts +2 -0
- package/dist/assets/CloseIcon.js +27 -0
- package/dist/assets/CommandIcon.d.ts +2 -0
- package/dist/assets/CommandIcon.js +77 -0
- package/dist/assets/DoneCircleIcon.d.ts +3 -0
- package/dist/assets/DoneCircleIcon.js +29 -0
- package/dist/assets/EmptyAlertDetail.d.ts +2 -0
- package/dist/assets/EmptyAlertDetail.js +451 -0
- package/dist/assets/EmptyPage.d.ts +3 -0
- package/dist/assets/EmptyPage.js +551 -0
- package/dist/assets/EyeIcon.d.ts +2 -0
- package/dist/assets/EyeIcon.js +35 -0
- package/dist/assets/FenceIcon.d.ts +2 -0
- package/dist/assets/FenceIcon.js +70 -0
- package/dist/assets/FolderCheckmark.d.ts +3 -0
- package/dist/assets/FolderCheckmark.js +44 -0
- package/dist/assets/FulltrackLogo.d.ts +3 -0
- package/dist/assets/FulltrackLogo.js +37 -0
- package/dist/assets/GlobeIcon.d.ts +2 -0
- package/dist/assets/GlobeIcon.js +61 -0
- package/dist/assets/GoogleIcon.d.ts +2 -0
- package/dist/assets/GoogleIcon.js +18 -0
- package/dist/assets/Group.js +2 -0
- package/dist/assets/MinusMarkIcon.d.ts +3 -0
- package/dist/assets/MinusMarkIcon.js +40 -0
- package/dist/assets/MosaicIcon.d.ts +3 -0
- package/dist/assets/MosaicIcon.js +41 -0
- package/dist/assets/NavLogo.d.ts +3 -0
- package/dist/assets/NavLogo.js +73 -0
- package/dist/assets/PinLocation.d.ts +2 -0
- package/dist/assets/PinLocation.js +31 -0
- package/dist/assets/PlusAddIcon.d.ts +2 -0
- package/dist/assets/PlusAddIcon.js +42 -0
- package/dist/assets/RefreshIcon.d.ts +2 -0
- package/dist/assets/RefreshIcon.js +16 -0
- package/dist/assets/SearchIcon.d.ts +3 -0
- package/dist/assets/SearchIcon.js +30 -0
- package/dist/assets/SendIcon.d.ts +3 -0
- package/dist/assets/SendIcon.js +20 -0
- package/dist/assets/StreetView.d.ts +2 -0
- package/dist/assets/StreetView.js +52 -0
- package/dist/assets/SwitchCheckMarkIcon.d.ts +3 -0
- package/dist/assets/SwitchCheckMarkIcon.js +40 -0
- package/dist/assets/WarningIcon.d.ts +2 -0
- package/dist/assets/WarningIcon.js +34 -0
- package/dist/assets/gif/how-to-use.js +2 -0
- package/dist/assets/iconMenu/SettingsIcon.d.ts +2 -0
- package/dist/assets/iconMenu/SettingsIcon.js +30 -0
- package/dist/assets/img/cover.js +2 -0
- package/dist/assets/img/map-sample.js +2 -0
- package/dist/assets/img/photo-goes-here.js +2 -0
- package/dist/assets/svg/chat.js +2 -0
- package/dist/assets/svg/colored-item.js +2 -0
- package/dist/assets/svg/mailbox-bro.js +2 -0
- package/dist/assets/svg/star-favorite.js +2 -0
- package/dist/assets/travolta.js +2 -0
- package/dist/components/Avatar/Avatar.stories.d.ts +33 -0
- package/dist/components/Avatar/Avatar.stories.js +177 -0
- package/dist/components/Avatar/index.d.ts +7 -0
- package/dist/components/Avatar/index.js +28 -0
- package/dist/components/Avatar/styles.d.ts +4 -0
- package/dist/components/Avatar/styles.js +37 -0
- package/dist/components/Avatar/utils/getAvatarColors.d.ts +6 -0
- package/dist/components/Avatar/utils/getAvatarColors.js +48 -0
- package/dist/components/Breadcrumb/Breadcrumb.stories.d.ts +17 -0
- package/dist/components/Breadcrumb/Breadcrumb.stories.js +51 -0
- package/dist/components/Breadcrumb/index.d.ts +10 -0
- package/dist/components/Breadcrumb/index.js +34 -0
- package/dist/components/Breadcrumb/styles.d.ts +9 -0
- package/dist/components/Breadcrumb/styles.js +43 -0
- package/dist/components/Button/Button.stories.d.ts +58 -0
- package/dist/components/Button/Button.stories.js +284 -0
- package/dist/components/Button/index.d.ts +26 -0
- package/dist/components/Button/index.js +69 -0
- package/dist/components/Button/modifiers.d.ts +8 -0
- package/dist/components/Button/modifiers.js +41 -0
- package/dist/components/Button/styles.d.ts +25 -0
- package/dist/components/Button/styles.js +111 -0
- package/dist/components/Checkbox/CheckMarkIcon.d.ts +3 -0
- package/dist/components/Checkbox/CheckMarkIcon.js +38 -0
- package/dist/components/Checkbox/Checkbox.stories.d.ts +35 -0
- package/dist/components/Checkbox/Checkbox.stories.js +101 -0
- package/dist/components/Checkbox/MinusMarkIcon.d.ts +3 -0
- package/dist/components/Checkbox/MinusMarkIcon.js +39 -0
- package/dist/components/Checkbox/index.d.ts +9 -0
- package/dist/components/Checkbox/index.js +40 -0
- package/dist/components/Checkbox/styles.d.ts +12 -0
- package/dist/components/Checkbox/styles.js +41 -0
- package/dist/components/Collapse/Colapse.stories.d.ts +10 -0
- package/dist/components/Collapse/Colapse.stories.js +108 -0
- package/dist/components/Collapse/index.d.ts +15 -0
- package/dist/components/Collapse/index.js +61 -0
- package/dist/components/Collapse/styles.d.ts +11 -0
- package/dist/components/Collapse/styles.js +23 -0
- package/dist/components/CustomSelect/CustomSelect.stories.d.ts +73 -0
- package/dist/components/CustomSelect/CustomSelect.stories.js +477 -0
- package/dist/components/CustomSelect/CustomSelectList/index.d.ts +10 -0
- package/dist/components/CustomSelect/CustomSelectList/index.js +66 -0
- package/dist/components/CustomSelect/CustomSelectList/style.d.ts +8 -0
- package/dist/components/CustomSelect/CustomSelectList/style.js +95 -0
- package/dist/components/CustomSelect/index.d.ts +30 -0
- package/dist/components/CustomSelect/index.js +193 -0
- package/dist/components/CustomSelect/styles.d.ts +22 -0
- package/dist/components/CustomSelect/styles.js +93 -0
- package/dist/components/DoubleList/DoubleList.stories.d.ts +13 -0
- package/dist/components/DoubleList/DoubleList.stories.js +82 -0
- package/dist/components/DoubleList/index.d.ts +9 -0
- package/dist/components/DoubleList/index.js +70 -0
- package/dist/components/DoubleList/style.d.ts +5 -0
- package/dist/components/DoubleList/style.js +92 -0
- package/dist/components/EmptyState/Empty.stories.d.ts +26 -0
- package/dist/components/EmptyState/Empty.stories.js +72 -0
- package/dist/components/EmptyState/index.d.ts +10 -0
- package/dist/components/EmptyState/index.js +48 -0
- package/dist/components/EmptyState/styles.d.ts +3 -0
- package/dist/components/EmptyState/styles.js +39 -0
- package/dist/components/Grid/Column/Column.stories.d.ts +26 -0
- package/dist/components/Grid/Column/Column.stories.js +335 -0
- package/dist/components/Grid/Column/index.d.ts +15 -0
- package/dist/components/Grid/Column/index.js +10 -0
- package/dist/components/Grid/Container/Container.stories.d.ts +11 -0
- package/dist/components/Grid/Container/Container.stories.js +114 -0
- package/dist/components/Grid/Container/index.d.ts +6 -0
- package/dist/components/Grid/Container/index.js +11 -0
- package/dist/components/Grid/Row/Row.stories.d.ts +22 -0
- package/dist/components/Grid/Row/Row.stories.js +248 -0
- package/dist/components/Grid/Row/index.d.ts +20 -0
- package/dist/components/Grid/Row/index.js +10 -0
- package/dist/components/Grid/index.d.ts +38 -0
- package/dist/components/Grid/index.js +121 -0
- package/dist/components/Grid/utils.d.ts +1 -0
- package/dist/components/Grid/utils.js +18 -0
- package/dist/components/Loading/Loading/index.d.ts +7 -0
- package/dist/components/Loading/Loading/index.js +9 -0
- package/dist/components/Loading/Loading.stories.d.ts +24 -0
- package/dist/components/Loading/Loading.stories.js +145 -0
- package/dist/components/Loading/index.d.ts +16 -0
- package/dist/components/Loading/index.js +98 -0
- package/dist/components/Menu/constants/icons.d.ts +17 -0
- package/dist/components/Menu/constants/icons.js +61 -0
- package/dist/components/Menu/helpers/createMenus.d.ts +2 -0
- package/dist/components/Menu/helpers/createMenus.js +20 -0
- package/dist/components/Menu/helpers/createSubMenus.d.ts +2 -0
- package/dist/components/Menu/helpers/createSubMenus.js +13 -0
- package/dist/components/Menu/helpers/generateColorScale.d.ts +1 -0
- package/dist/components/Menu/helpers/generateColorScale.js +62 -0
- package/dist/components/Menu/helpers/getLuminance.d.ts +1 -0
- package/dist/components/Menu/helpers/getLuminance.js +9 -0
- package/dist/components/Menu/index.d.ts +12 -0
- package/dist/components/Menu/index.js +108 -0
- package/dist/components/Menu/styles.d.ts +17 -0
- package/dist/components/Menu/styles.js +202 -0
- package/dist/components/Menu/types/IconKeysType.d.ts +2 -0
- package/dist/components/Menu/types/IconKeysType.js +0 -0
- package/dist/components/Menu/types/MenuItem.d.ts +26 -0
- package/dist/components/Menu/types/MenuItem.js +0 -0
- package/dist/components/MultiSelect/Badge/index.d.ts +6 -0
- package/dist/components/MultiSelect/Badge/index.js +31 -0
- package/dist/components/MultiSelect/Badge/styles.d.ts +1 -0
- package/dist/components/MultiSelect/Badge/styles.js +57 -0
- package/dist/components/MultiSelect/MultiSelect.stories.d.ts +61 -0
- package/dist/components/MultiSelect/MultiSelect.stories.js +336 -0
- package/dist/components/MultiSelect/MultiSelectList/index.d.ts +10 -0
- package/dist/components/MultiSelect/MultiSelectList/index.js +59 -0
- package/dist/components/MultiSelect/MultiSelectList/style.d.ts +3 -0
- package/dist/components/MultiSelect/MultiSelectList/style.js +82 -0
- package/dist/components/MultiSelect/calcTextSize.d.ts +1 -0
- package/dist/components/MultiSelect/calcTextSize.js +10 -0
- package/dist/components/MultiSelect/index.d.ts +24 -0
- package/dist/components/MultiSelect/index.js +284 -0
- package/dist/components/MultiSelect/styles.d.ts +24 -0
- package/dist/components/MultiSelect/styles.js +165 -0
- package/dist/components/Radio/Radio.stories.d.ts +18 -0
- package/dist/components/Radio/Radio.stories.js +30 -0
- package/dist/components/Radio/index.d.ts +7 -0
- package/dist/components/Radio/index.js +27 -0
- package/dist/components/Radio/story.d.ts +5 -0
- package/dist/components/Radio/story.js +47 -0
- package/dist/components/Radio/styles.d.ts +8 -0
- package/dist/components/Radio/styles.js +43 -0
- package/dist/components/StateAlert/StateAlert.stories.d.ts +46 -0
- package/dist/components/StateAlert/StateAlert.stories.js +189 -0
- package/dist/components/StateAlert/index.d.ts +22 -0
- package/dist/components/StateAlert/index.js +56 -0
- package/dist/components/StateAlert/styles.d.ts +7 -0
- package/dist/components/StateAlert/styles.js +124 -0
- package/dist/components/Switch/Switch.stories.d.ts +26 -0
- package/dist/components/Switch/Switch.stories.js +81 -0
- package/dist/components/Switch/index.d.ts +8 -0
- package/dist/components/Switch/index.js +26 -0
- package/dist/components/Switch/styles.d.ts +15 -0
- package/dist/components/Switch/styles.js +33 -0
- package/dist/components/Text/Paragraph/Paragraph.stories.d.ts +29 -0
- package/dist/components/Text/Paragraph/Paragraph.stories.js +124 -0
- package/dist/components/Text/Title/Title.stories.d.ts +41 -0
- package/dist/components/Text/Title/Title.stories.js +106 -0
- package/dist/components/Text/index.d.ts +3 -0
- package/dist/components/Text/index.js +17 -0
- package/dist/components/Text/styles.d.ts +23 -0
- package/dist/components/Text/styles.js +70 -0
- package/dist/components/TextArea/Textarea.stories.d.ts +33 -0
- package/dist/components/TextArea/Textarea.stories.js +65 -0
- package/dist/components/TextArea/index.d.ts +10 -0
- package/dist/components/TextArea/index.js +39 -0
- package/dist/components/TextArea/styles.d.ts +18 -0
- package/dist/components/TextArea/styles.js +88 -0
- package/dist/components/TooltipWrapper/Tooltip.stories.d.ts +21 -0
- package/dist/components/TooltipWrapper/Tooltip.stories.js +54 -0
- package/dist/components/TooltipWrapper/index.d.ts +20 -0
- package/dist/components/TooltipWrapper/index.js +56 -0
- package/dist/components/TooltipWrapper/styles.d.ts +6 -0
- package/dist/components/TooltipWrapper/styles.js +20 -0
- package/dist/components/Tooltips/Tooltips.stories.d.ts +25 -0
- package/dist/components/Tooltips/Tooltips.stories.js +139 -0
- package/dist/components/Tooltips/index.d.ts +8 -0
- package/dist/components/Tooltips/index.js +28 -0
- package/dist/components/Tooltips/styles.d.ts +5 -0
- package/dist/components/Tooltips/styles.js +37 -0
- package/dist/components/UserMenu/UserMenu.stories.d.ts +26 -0
- package/dist/components/UserMenu/UserMenu.stories.js +174 -0
- package/dist/components/UserMenu/index.d.ts +19 -0
- package/dist/components/UserMenu/index.js +64 -0
- package/dist/components/UserMenu/style.d.ts +2 -0
- package/dist/components/UserMenu/style.js +44 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +3 -0
- package/dist/static/image/cover.png +0 -0
- package/dist/static/image/how-to-use.gif +0 -0
- package/dist/static/image/map-sample.png +0 -0
- package/dist/static/image/photo-goes-here.png +0 -0
- package/dist/static/image/travolta.jpg +0 -0
- package/dist/static/svg/Group.svg +5 -0
- package/dist/static/svg/chat.svg +10 -0
- package/dist/static/svg/colored-item.svg +9 -0
- package/dist/static/svg/mailbox-bro.svg +102 -0
- package/dist/static/svg/star-favorite.svg +3 -0
- package/dist/style/_reset.css +205 -0
- 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,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,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 };
|