@farm-investimentos/front-mfe-components 14.2.1 → 15.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/dist/front-mfe-components.common.js +4146 -5381
  2. package/dist/front-mfe-components.common.js.map +1 -1
  3. package/dist/front-mfe-components.css +2 -2
  4. package/dist/front-mfe-components.umd.js +4146 -5381
  5. package/dist/front-mfe-components.umd.js.map +1 -1
  6. package/dist/front-mfe-components.umd.min.js +1 -1
  7. package/dist/front-mfe-components.umd.min.js.map +1 -1
  8. package/package.json +1 -1
  9. package/src/components/AlertBox/AlertBox.scss +3 -2
  10. package/src/components/AlertBox/AlertBox.vue +2 -0
  11. package/src/components/Buttons/DefaultButton/DefaultButton.scss +57 -18
  12. package/src/components/Buttons/DefaultButton/DefaultButton.stories.js +49 -16
  13. package/src/components/Buttons/DefaultButton/DefaultButton.vue +3 -1
  14. package/src/components/Buttons/ExportButton/ExportButton.vue +2 -1
  15. package/src/components/Card/Card.scss +1 -1
  16. package/src/components/Card/CardComposition.stories.ts +8 -2
  17. package/src/components/Card/CardContent/CardContent.scss +11 -0
  18. package/src/components/Card/CardContent/CardContent.stories.js +11 -0
  19. package/src/components/Card/CardContent/CardContent.vue +9 -1
  20. package/src/components/CardContext/__tests__/CardContext.spec.js +5 -2
  21. package/src/components/Checkbox/Checkbox.scss +2 -2
  22. package/src/components/Checkbox/Checkbox.vue +2 -1
  23. package/src/components/Chip/Chip.scss +15 -15
  24. package/src/components/Chip/Chip.stories.js +13 -13
  25. package/src/components/Chip/Chip.stories.scss +1 -16
  26. package/src/components/Chip/Chip.vue +25 -3
  27. package/src/components/Collapsible/Collapsible.scss +8 -3
  28. package/src/components/Collapsible/Collapsible.stories.js +68 -1
  29. package/src/components/Collapsible/Collapsible.vue +68 -8
  30. package/src/components/ContextMenu/ContextMenu.scss +1 -1
  31. package/src/components/ContextMenu/ContextMenu.stories.js +42 -29
  32. package/src/components/ContextMenu/ContextMenu.vue +20 -1
  33. package/src/components/CopyToClipboard/CopyToClipboard.stories.js +7 -1
  34. package/src/components/CopyToClipboard/CopyToClipboard.vue +15 -3
  35. package/src/components/DataTableEmptyWrapper/DataTableEmptyWrapper.scss +6 -9
  36. package/src/components/DataTableEmptyWrapper/DataTableEmptyWrapper.stories.js +4 -0
  37. package/src/components/DataTableEmptyWrapper/DataTableEmptyWrapper.vue +21 -5
  38. package/src/components/{TextField/__tests__/TextField.spec.js → DataTableEmptyWrapper/__tests__/DataTableEmptyWrapper.spec.js} +3 -3
  39. package/src/components/DataTableHeader/DataTableHeader.scss +10 -12
  40. package/src/components/DataTableHeader/DataTableHeader.vue +5 -4
  41. package/src/components/DataTablePaginator/DataTablePaginator.scss +71 -69
  42. package/src/components/DatePicker/DatePicker.scss +5 -5
  43. package/src/components/DatePicker/DatePicker.vue +2 -3
  44. package/src/components/DatePicker/__tests__/DatePicker.spec.js +1 -1
  45. package/src/components/DatePicker/vDatePicker.scss +214 -0
  46. package/src/components/DialogFooter/DialogFooter.scss +1 -1
  47. package/src/components/DialogFooter/DialogFooter.stories.js +2 -2
  48. package/src/components/DialogFooter/DialogFooter.vue +1 -1
  49. package/src/components/DialogHeader/DialogHeader.scss +2 -3
  50. package/src/components/DialogHeader/DialogHeader.vue +4 -4
  51. package/src/components/Form/Form.stories.js +1 -1
  52. package/src/components/Icon/Icon.scss +6 -0
  53. package/src/components/Icon/Icon.stories.js +19 -1
  54. package/src/components/Icon/Icon.vue +8 -2
  55. package/src/components/IconBox/IconBox.stories.js +16 -0
  56. package/src/components/IconBox/IconBox.vue +17 -7
  57. package/src/components/IdCaption/IdCaption.vue +27 -13
  58. package/src/components/Label/Label.scss +17 -5
  59. package/src/components/Label/Label.stories.js +0 -1
  60. package/src/components/ListItem/ListItem.scss +5 -3
  61. package/src/components/ListItem/ListItem.vue +2 -0
  62. package/src/components/Logger/LoggerItem/LoggerItem.scss +9 -1
  63. package/src/components/Logger/LoggerItem/LoggerItem.vue +25 -8
  64. package/src/components/Logger/LoggerItem/__tests__/LoggerItem.spec.js +1 -1
  65. package/src/components/MainFilter/MainFilter.stories.js +4 -4
  66. package/src/components/Modal/Modal.scss +3 -3
  67. package/src/components/ModalPromptUser/ModalPromptUser.stories.js +26 -0
  68. package/src/components/ModalPromptUser/ModalPromptUser.vue +10 -0
  69. package/src/components/MultipleFilePicker/MultipleFilePicker.scss +19 -12
  70. package/src/components/MultipleFilePicker/MultipleFilePicker.stories.js +12 -0
  71. package/src/components/MultipleFilePicker/MultipleFilePicker.vue +18 -11
  72. package/src/components/MultipleFilePicker/__tests__/MultipleFilePicker.spec.js +9 -0
  73. package/src/components/ProgressBar/ProgressBar.vue +4 -0
  74. package/src/components/Radio/Radio.scss +18 -4
  75. package/src/components/Radio/Radio.stories.js +2 -1
  76. package/src/components/Radio/Radio.vue +3 -1
  77. package/src/components/RangeDatePicker/RangeDatePicker.vue +0 -2
  78. package/src/components/ResourceMetaInfo/ResourceMetaInfo.vue +8 -8
  79. package/src/components/Select/Select.scss +4 -0
  80. package/src/components/Select/Select.vue +9 -1
  81. package/src/components/Stepper/StepperHeader/StepperHeader.scss +7 -7
  82. package/src/components/Stepper/StepperHeader/StepperHeader.vue +35 -36
  83. package/src/components/Switcher/Switcher.scss +24 -8
  84. package/src/components/Switcher/Switcher.stories.js +33 -0
  85. package/src/components/Switcher/Switcher.vue +24 -3
  86. package/src/components/TableContextMenu/TableContextMenu.scss +4 -9
  87. package/src/components/TableContextMenu/TableContextMenu.stories.js +2 -0
  88. package/src/components/TableContextMenu/TableContextMenu.vue +5 -4
  89. package/src/components/Tabs/Tabs.scss +69 -0
  90. package/src/components/Tabs/Tabs.stories.js +51 -4
  91. package/src/components/Tabs/Tabs.vue +59 -32
  92. package/src/components/Tabs/__tests__/Tabs.spec.js +54 -54
  93. package/src/components/Tabs/index.ts +1 -0
  94. package/src/components/TextArea/TextArea.scss +7 -3
  95. package/src/components/TextArea/TextArea.vue +1 -0
  96. package/src/components/TextFieldV2/TextFieldV2.scss +8 -4
  97. package/src/components/TextFieldV2/TextFieldV2.vue +1 -0
  98. package/src/components/Tooltip/Tooltip.scss +8 -10
  99. package/src/components/Tooltip/Tooltip.vue +4 -2
  100. package/src/components/Typography/BodyText/BodyText.scss +7 -7
  101. package/src/components/Typography/Caption/Caption.scss +7 -7
  102. package/src/components/Typography/Caption/Caption.stories.js +1 -1
  103. package/src/components/Typography/Caption/Caption.vue +4 -1
  104. package/src/components/Typography/Caption/configurations.ts +3 -2
  105. package/src/components/Typography/Heading/Heading.scss +19 -19
  106. package/src/components/Typography/Heading/configurations.ts +5 -5
  107. package/src/components/Typography/Small/Small.scss +3 -0
  108. package/src/components/Typography/Small/Small.stories.js +34 -0
  109. package/src/components/Typography/Small/Small.vue +47 -0
  110. package/src/components/Typography/Small/__tests__/Small.spec.js +31 -0
  111. package/src/components/Typography/Small/configurations.ts +7 -0
  112. package/src/components/Typography/Subtitle/Subtitle.scss +7 -7
  113. package/src/components/Typography/Typography.scss +10 -0
  114. package/src/components/Typography/Typography.stories.js +15 -2
  115. package/src/components/Typography/Typography.vue +6 -2
  116. package/src/components/Typography/index.ts +2 -1
  117. package/src/components/ValueCaption/ValueCaption.vue +2 -0
  118. package/src/components/layout/Line/Line.scss +15 -0
  119. package/src/components/layout/Line/Line.stories.js +28 -5
  120. package/src/components/layout/Line/Line.vue +37 -3
  121. package/src/configurations/_mixins.scss +1 -1
  122. package/src/configurations/_theme-colors-background.scss +10 -0
  123. package/src/configurations/_theme-colors-bw.scss +10 -0
  124. package/src/configurations/_theme-colors.scss +79 -48
  125. package/src/configurations/_variables.scss +2 -0
  126. package/src/examples/Colors.stories.js +39 -1
  127. package/src/examples/Colors.stories.scss +1 -1
  128. package/src/helpers/index.ts +2 -1
  129. package/src/helpers/isChildOfFixedElement.js +16 -0
  130. package/src/main.ts +1 -5
  131. package/src/scss/Sticky-table.scss +13 -7
  132. package/src/scss/VuejsDialog.scss +58 -51
  133. package/src/scss/cssVariablesGenerator.scss +17 -14
  134. package/src/scss/utils.scss +17 -251
  135. package/src/components/FilePicker/FilePicker.scss +0 -53
  136. package/src/components/FilePicker/FilePicker.stories.js +0 -14
  137. package/src/components/FilePicker/FilePicker.vue +0 -109
  138. package/src/components/FilePicker/__tests__/FilePicker.spec.js +0 -77
  139. package/src/components/FilePicker/index.ts +0 -3
  140. package/src/components/TextField/TextField.scss +0 -43
  141. package/src/components/TextField/TextField.stories.js +0 -104
  142. package/src/components/TextField/TextField.vue +0 -18
  143. package/src/components/TextField/index.ts +0 -4
  144. package/src/scss/ButtonOverrides.scss +0 -73
  145. package/src/scss/DefaultModal.scss +0 -89
  146. package/src/scss/DialogOverrides.scss +0 -94
  147. package/src/scss/FormOverrides.scss +0 -264
  148. package/src/scss/Status-Chip.scss +0 -34
@@ -1,86 +1,93 @@
1
1
  @import 'vuejs-dialog/dist/vuejs-dialog.min';
2
2
  @import '../components/Buttons/DefaultButton/DefaultButton.scss';
3
3
 
4
-
5
4
  .dg-main-content {
6
- font-family: Montserrat, sans-serif !important;
5
+ font-family: 'Manrope', sans-serif !important;
7
6
  }
8
7
 
9
8
  .dg-content-body {
10
- border-bottom: 1px solid var(--farm-stroke-base);
11
- margin: 0 -15px;
12
- padding: 0 16px;
13
- color: var(--farm-text-base);
14
- font-size: 12px;
9
+ border-bottom: 1px solid var(--farm-gray-lighten);
10
+ margin: 0 -15px;
11
+ padding: 0 16px;
12
+ color: var(--farm-text-base);
13
+ font-size: 12px;
15
14
  }
16
15
 
17
16
  .dg-title {
18
- margin: 0 -15px;
19
- border-bottom: 1px solid var(--farm-stroke-base);
20
- padding: 0 16px;
21
- color: var(--farm-primary-base);
22
- height: 32px;
23
- font-size: 12px;
17
+ margin: 0 -15px;
18
+ border-bottom: 0;
19
+ padding: 0 16px;
20
+ color: var(--farm-bw-black-80);
21
+ height: 32px;
22
+ font-size: 12px;
23
+ font-weight: 600;
24
24
  }
25
25
 
26
26
  .dg-content-body--has-title .dg-content,
27
27
  .dg-content {
28
- margin: 24px 0;
29
- font-size: 12px;
30
- line-height: 20px;
31
- word-break: break-word;
32
-
33
- ul {
34
- margin-left: 16px;
35
- }
28
+ margin: 24px 0;
29
+ font-size: 12px;
30
+ line-height: 20px;
31
+ word-break: break-word;
32
+
33
+ ul {
34
+ margin-left: 16px;
35
+ }
36
36
  }
37
37
 
38
38
  .dg-content-footer {
39
- display: flex;
40
- flex-direction: row;
41
- justify-content: flex-end;
39
+ display: flex;
40
+ flex-direction: row;
41
+ justify-content: flex-end;
42
42
  }
43
43
 
44
44
  .dg-btn {
45
- @extend .farm-btn;
45
+ @extend .farm-btn;
46
+ border: 0;
46
47
  }
47
48
 
48
49
  .dg-btn--ok {
49
- @extend .farm-btn--primary;
50
+ @extend .farm-btn--primary;
50
51
  }
51
52
 
52
53
  .dg-btn--cancel {
53
- @extend .farm-btn--primary;
54
- @extend .farm-btn--outlined;
55
- margin-right: 8px;
54
+ @extend .farm-btn--primary;
55
+ @extend .farm-btn--plain;
56
+ margin-right: 8px;
57
+
58
+ &:hover{
59
+ text-decoration: underline;
60
+ text-underline-offset: 6px;
61
+ opacity: 0.86;
62
+ }
56
63
  }
57
64
 
58
65
  .dg-backdrop {
59
- background-color: rgba(0, 0, 0, .46);
66
+ background-color: rgba(0, 0, 0, 0.46);
60
67
  }
61
68
 
62
69
  .dg-parent-nofooter {
63
- .dg-content-footer {
64
- display: none;
65
- }
66
-
67
- .dg-content-body {
68
- border-bottom: none;
69
- padding-bottom: 0;
70
- }
71
-
72
- .dg-content-body--has-title .dg-content,
73
- .dg-content {
74
- margin-bottom: 8px;
75
- }
70
+ .dg-content-footer {
71
+ display: none;
72
+ }
73
+
74
+ .dg-content-body {
75
+ border-bottom: none;
76
+ padding-bottom: 0;
77
+ }
78
+
79
+ .dg-content-body--has-title .dg-content,
80
+ .dg-content {
81
+ margin-bottom: 8px;
82
+ }
76
83
  }
77
84
 
78
85
  .dg-parent-error {
79
- .dg-btn--ok {
80
- @extend .farm-btn--error;
81
- }
82
-
83
- .dg-title {
84
- color: var(--farm-error-base);
85
- }
86
- }
86
+ .dg-btn--ok {
87
+ @extend .farm-btn--error;
88
+ }
89
+
90
+ .dg-title {
91
+ color: var(--farm-error-base);
92
+ }
93
+ }
@@ -1,22 +1,25 @@
1
1
  @import '../configurations/theme-colors';
2
2
 
3
3
  :root {
4
+ @each $name, $color in $theme-colors {
5
+ #{"--farm-" + $name + "-base"}: themeColor($name, 'base');
6
+ #{"--farm-" + $name + "-lighten"}: themeColor($name, 'lighten');
7
+ #{"--farm-" + $name + "-darken"}: themeColor($name, 'darken');
8
+ }
4
9
 
5
- @each $name,
6
- $color in $theme-colors {
7
- #{"--farm-" + $name + "-base"}: themeColor($name, "base");
8
- #{"--farm-" + $name + "-lighten"}: themeColor($name, "lighten");
9
- #{"--farm-" + $name + "-darken"}: themeColor($name, "darken");
10
- }
10
+ @each $name, $color in $text-colors {
11
+ #{"--farm-text-" + $name}: $color;
12
+ }
11
13
 
12
- @each $name,
13
- $color in $text-colors {
14
- #{"--farm-text-" + $name}: $color;
15
- }
14
+ @each $name, $color in $stroke-colors {
15
+ #{"--farm-stroke-" + $name}: $color;
16
+ }
16
17
 
18
+ @each $name, $color in $bw-colors {
19
+ #{"--farm-bw-" + $name}: $color;
20
+ }
17
21
 
18
- @each $name,
19
- $color in $stroke-colors {
20
- #{"--farm-stroke-" + $name}: $color;
21
- }
22
+ @each $name, $color in $background-colors {
23
+ #{"--farm-background-" + $name}: $color;
24
+ }
22
25
  }
@@ -22,18 +22,6 @@
22
22
  min-height: 8rem;
23
23
  }
24
24
 
25
- .v-data-table__clickable {
26
- tbody tr {
27
- cursor: pointer;
28
- &:hover td {
29
- opacity: 1;
30
- .status-chip {
31
- cursor: pointer;
32
- }
33
- }
34
- }
35
- }
36
-
37
25
  .v-list__clickable {
38
26
  .v-list-item__title {
39
27
  cursor: pointer;
@@ -43,10 +31,6 @@
43
31
  }
44
32
  }
45
33
 
46
- .tabs-container {
47
- border-bottom: 1px solid var(--v-gray-lighten2);
48
- }
49
-
50
34
  tr.v-data-table__empty-wrapper {
51
35
  td {
52
36
  background-color: white !important;
@@ -56,241 +40,6 @@ tr.v-data-table__empty-wrapper {
56
40
  }
57
41
  }
58
42
 
59
- .v-tabs {
60
- .v-tab {
61
- font-weight: 700;
62
- font-size: 0.875rem;
63
- padding: 1rem 2rem;
64
- }
65
- }
66
-
67
- .v-picker {
68
- .v-picker__actions {
69
- margin: 0 0.5rem 0.5rem;
70
- }
71
- .v-date-picker-header__value {
72
- text-align: left;
73
-
74
- button:first-letter {
75
- text-transform: capitalize;
76
- }
77
- button:hover:after {
78
- border-top-color: var(--v-secondary-base);
79
- }
80
- button:after {
81
- position: absolute;
82
- content: '';
83
- width: 0px;
84
- height: 0px;
85
- border-top: 0.25rem solid var(--v-primary-base);
86
- border-right: 0.25rem solid transparent;
87
- border-bottom: 0.25rem solid transparent;
88
- border-left: 0.25rem solid transparent;
89
- margin-left: 0.5rem;
90
- margin-top: 0.5rem;
91
- }
92
- }
93
- .v-date-picker-header {
94
- display: grid;
95
- grid-template-columns: 1fr 60px 36px;
96
- grid-template-areas: ' a b c ';
97
- margin-top: 0.5rem;
98
-
99
- .v-btn:nth-child(1) {
100
- grid-area: b;
101
- }
102
- > div {
103
- grid-area: a;
104
- }
105
- .v-btn:nth-child(3) {
106
- grid-area: c;
107
- }
108
- }
109
-
110
- .v-date-picker-table__current.v-btn--active {
111
- color: white;
112
- }
113
- .v-date-picker-header {
114
- padding: 0;
115
- margin-top: 16px;
116
- margin-bottom: 16px;
117
- margin-left: 4px;
118
-
119
- .mdi-chevron-left::before,
120
- .mdi-chevron-right::before {
121
- color: var(--farm-neutral-darken);
122
- font-size: 20px;
123
- font-weight: 900;
124
- }
125
- }
126
-
127
- .v-picker__body:has(div > .v-date-picker-years) {
128
- li {
129
- color: var(--farm-neutral-darken);
130
- font-size: 12px;
131
- font-weight: 500;
132
- width: 70px;
133
- margin: 0 auto;
134
- border-radius: 5px;
135
-
136
- &.active {
137
- color: #fff;
138
- background-color: var(--farm-primary-base);
139
- border: 1px solid var(--farm-primary-base);
140
- }
141
-
142
- &:hover:not(.active) {
143
- background-color: var(--farm-primary-lighten);
144
- }
145
- }
146
- }
147
-
148
- .v-date-picker-header__value {
149
- button {
150
- padding-left: 0;
151
- }
152
- }
153
-
154
- .v-picker__actions {
155
- margin-bottom: 24px;
156
- }
157
-
158
- .v-date-picker-table {
159
- padding: 0 40px;
160
- margin-bottom: 24px;
161
-
162
- table {
163
- height: 100%;
164
- }
165
-
166
- table thead th {
167
- color: var(--farm-neutral-darken);
168
- font-size: 16px;
169
- font-weight: 700;
170
- }
171
-
172
- table tbody td .v-btn {
173
- color: var(--farm-neutral-darken);
174
- font-size: 12px;
175
- font-weight: 500;
176
- }
177
-
178
- table tbody td .v-btn.v-btn--disabled {
179
- color: var(--farm-gray-lighten);
180
- }
181
-
182
- table tbody td .v-btn.v-date-picker-table__current,
183
- .v-btn.v-btn--active {
184
- border-radius: 5px;
185
- border-color: var(--farm-primary-base);
186
- border-width: 2px;
187
- }
188
-
189
- table tbody td .v-btn.v-date-picker-table__current {
190
- color: var(--farm-primary-base);
191
- }
192
-
193
- table tbody td .v-btn.v-btn--active {
194
- color: white;
195
- }
196
-
197
- table tbody td .v-btn--rounded {
198
- border-radius: 5px;
199
- }
200
-
201
- table tbody td .v-btn {
202
- &:not(.v-btn--active):hover::before {
203
- background-color: var(--farm-primary-lighten);
204
- opacity: 1;
205
- }
206
- &::before {
207
- background-color: transparent;
208
- }
209
- }
210
- }
211
-
212
- &.rangedatepicker .v-date-picker-table {
213
- table tbody td .v-btn.v-btn--active {
214
- &:not(.v-date-picker--first-in-range, .v-date-picker--last-in-range) {
215
- background: var(--farm-primary-lighten);
216
- color: var(--farm-primary-base);
217
- border-radius: 0;
218
- width: 37px;
219
- }
220
-
221
- &.v-date-picker--first-in-range,
222
- &.v-date-picker--last-in-range {
223
- width: 37px;
224
- }
225
-
226
- &.v-date-picker--first-in-range {
227
- border-top-right-radius: 0;
228
- border-bottom-right-radius: 0;
229
- border-top-left-radius: 5px;
230
- border-bottom-left-radius: 5px;
231
- }
232
-
233
- &.v-date-picker--last-in-range {
234
- border-top-right-radius: 5px;
235
- border-bottom-right-radius: 5px;
236
- border-top-left-radius: 0;
237
- border-bottom-left-radius: 0;
238
- }
239
-
240
- &.v-date-picker--last-in-range.v-date-picker--first-in-range {
241
- border-radius: 5px;
242
- }
243
- }
244
- }
245
- &.rangedatepicker.invert-date .v-date-picker-table {
246
- table tbody td .v-btn.v-btn--active {
247
- &.v-date-picker--first-in-range {
248
- border-top-left-radius: 0;
249
- border-bottom-left-radius: 0;
250
- border-top-right-radius: 5px;
251
- border-bottom-right-radius: 5px;
252
- }
253
-
254
- &.v-date-picker--last-in-range {
255
- border-top-left-radius: 5px;
256
- border-bottom-left-radius: 5px;
257
- border-top-right-radius: 0;
258
- border-bottom-right-radius: 0;
259
- }
260
- }
261
- }
262
- }
263
-
264
- .v-icon.v-icon__extral4 {
265
- background: var(--v-extra-lighten4);
266
- color: white !important;
267
- }
268
-
269
- .v-icon.v-icon__secondary4 {
270
- background: var(--v-secondary-lighten4);
271
- color: var(--v-secondary-base) !important;
272
- }
273
-
274
- span.span__type--cdca {
275
- color: var(--v-secondary-base);
276
- .v-chip {
277
- background-color: var(--v-secondary-base) !important;
278
- color: white;
279
- }
280
- .v-icon {
281
- color: var(--v-secondary-base);
282
- }
283
- }
284
- span.span__type--cprf {
285
- color: var(--v-accent-base);
286
- .v-chip {
287
- background-color: var(--v-accent-base) !important;
288
- color: white;
289
- }
290
- .v-icon {
291
- color: var(--v-accent-base);
292
- }
293
- }
294
43
 
295
44
  .mf-Containers.mf-Containers-authenticated {
296
45
  > .mf-Container > div.v-application {
@@ -311,6 +60,23 @@ body.body--has-footer {
311
60
  }
312
61
  }
313
62
 
63
+ //temporary solution for v-data-table checkboxes
64
+ .v-data-table__checkbox.v-simple-checkbox {
65
+ .v-icon.v-icon {
66
+ font-size: 22px;
67
+ color: var(--farm-neutral-darken);
68
+
69
+ &.mdi-checkbox-marked,
70
+ &.mdi-minus-box {
71
+ color: var(--farm-primary-base);
72
+ }
73
+ }
74
+
75
+ .v-input--selection-controls__ripple {
76
+ display: none;
77
+ }
78
+ }
79
+
314
80
  @media (max-width: 600px) {
315
81
  .container-main > .col {
316
82
  max-width: calc(100% - 0.5rem);
@@ -1,53 +0,0 @@
1
- section {
2
- border: 2px dashed var(--v-gray-lighten1);
3
- border-radius: 2rem;
4
- background-color: var(--v-gray-lighten4);
5
- padding: 1rem;
6
- position: relative;
7
- cursor: pointer;
8
- height: 12rem;
9
- display: flex;
10
- flex-direction: column;
11
- align-items: center;
12
- justify-content: center;
13
- width: 100%;
14
-
15
- input {
16
- opacity: 0;
17
- width: 100%;
18
- height: 100%;
19
- position: absolute;
20
- cursor: pointer;
21
- }
22
-
23
- &.highlight {
24
- background: var(--v-secondary-lighten5);
25
- opacity: 0.5;
26
- }
27
-
28
- .selectfile-container {
29
- text-align: center;
30
- .farm-icon {
31
- font-size: 2.25rem;
32
- margin-bottom: 1rem;
33
- }
34
- p {
35
- font-weight: 600;
36
- color: var(--v-gray-base);
37
- }
38
- }
39
-
40
- .reset-container {
41
- display: flex;
42
- flex-direction: column;
43
- align-items: center;
44
- justify-content: center;
45
- > p {
46
- margin-bottom: 0;
47
- font-size: 0.75rem;
48
- }
49
- .farm-btn {
50
- margin-top: 1rem;
51
- }
52
- }
53
- }
@@ -1,14 +0,0 @@
1
- import FilePicker from './FilePicker.vue';
2
-
3
- export default {
4
- title: 'Form/FilePicker',
5
- component: FilePicker,
6
- };
7
-
8
- export const Primary = () => ({
9
- template: '<FilePicker />',
10
- });
11
-
12
- export const MaxFileSize = () => ({
13
- template: '<FilePicker maxFileSize="0.1" />',
14
- });
@@ -1,109 +0,0 @@
1
- <template>
2
- <section ref="container" id="droparea-container">
3
- <input
4
- type="file"
5
- name="file"
6
- :accept="acceptedFileTypes"
7
- @change="fileChange($event.target.files)"
8
- />
9
- <div v-if="!selectedFile" class="selectfile-container">
10
- <farm-icon @click="triggerClick">cloud-upload</farm-icon>
11
- <p>Clique para selecionar ou arraste o arquivo aqui</p>
12
- </div>
13
- <div v-if="selectedFile || maxSizeReach" class="reset-container">
14
- <div v-if="selectedFile">
15
- <farm-icon>file</farm-icon> Arquivo selecionado: {{ selectedFile.name }} ({{
16
- Math.floor(selectedFile.size / 1024)
17
- }}kB)
18
- </div>
19
-
20
- <p v-if="maxSizeReach" v-html="maxSizeReachMsg"></p>
21
-
22
- <farm-btn outlined class="farm-btn--responsive" title="Escolher outro" @click="reset">
23
- Escolher outro
24
- </farm-btn>
25
- </div>
26
- </section>
27
- </template>
28
- <script lang="ts">
29
- import Vue from 'vue';
30
-
31
- export default Vue.extend({
32
- name: 'farm-filepicker',
33
- props: {
34
- /*
35
- * Accepted file types
36
- */
37
- acceptedFileTypes: {
38
- type: String,
39
- default: '*',
40
- },
41
- /**
42
- * Max file size (in MB)
43
- */
44
- maxFileSize: {
45
- default: null,
46
- },
47
- },
48
- data() {
49
- return {
50
- selectedFile: null,
51
- dropArea: null,
52
- maxSizeReach: false,
53
- };
54
- },
55
- computed: {
56
- maxSizeReachMsg() {
57
- return `Arquivo ultrapassou o tamanho máximo de ${this.maxFileSize}MB`;
58
- },
59
- inputEl() {
60
- return this.$refs.container.querySelector('input');
61
- }
62
- },
63
- mounted() {
64
- this.dropArea = this.$refs.container;
65
- this.addListeners();
66
- },
67
- methods: {
68
- reset() {
69
- this.inputEl.value = '';
70
- this.$emit('onReset');
71
- this.maxSizeReach = false;
72
- this.selectedFile = null;
73
- },
74
- fileChange(fileList: Array<File>) {
75
- this.maxSizeReach = false;
76
- if (!fileList.length || fileList.length > 1) return;
77
-
78
- if (this.maxFileSize) {
79
- const sizeInMB = fileList[0].size / (1024 * 1024);
80
-
81
- if (sizeInMB > this.maxFileSize) {
82
- this.maxSizeReach = true;
83
- return;
84
- }
85
- }
86
- this.selectedFile = fileList[0];
87
- this.$emit('onFileChange', this.selectedFile);
88
- },
89
- handlerFunctionHighlight() {
90
- this.dropArea.classList.add('highlight');
91
- },
92
- handlerFunctionUnhighlight() {
93
- this.dropArea.classList.remove('highlight');
94
- },
95
- addListeners() {
96
- this.dropArea.addEventListener('dragenter', this.handlerFunctionHighlight, false);
97
- this.dropArea.addEventListener('dragleave', this.handlerFunctionUnhighlight, false);
98
- this.dropArea.addEventListener('dragover', this.handlerFunctionHighlight, false);
99
- this.dropArea.addEventListener('drop', this.handlerFunctionUnhighlight, false);
100
- },
101
- triggerClick() {
102
- this.inputEl.click();
103
- }
104
- },
105
- });
106
- </script>
107
- <style scoped lang="scss">
108
- @import './FilePicker.scss';
109
- </style>