@gipisistemas/ngx-core 1.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 (286) hide show
  1. package/README.md +169 -0
  2. package/animations/fly-in-out.animation.d.ts +24 -0
  3. package/animations/index.d.ts +2 -0
  4. package/animations/rotate.animation.d.ts +35 -0
  5. package/base/components/base-form-dialog.component.d.ts +47 -0
  6. package/base/components/base-form.component.d.ts +54 -0
  7. package/base/components/base-list-dialog.component.d.ts +69 -0
  8. package/base/components/base-list.component.d.ts +77 -0
  9. package/base/components/base.component.d.ts +62 -0
  10. package/base/index.d.ts +20 -0
  11. package/base/models/base-applied-filter.model.d.ts +8 -0
  12. package/base/models/base-authority.model.d.ts +6 -0
  13. package/base/models/base-filter.model.d.ts +16 -0
  14. package/base/models/base-form-dialog-data.model.d.ts +11 -0
  15. package/base/models/base-list-dialog-data.model.d.ts +10 -0
  16. package/base/models/base-menu.model.d.ts +25 -0
  17. package/base/models/base-page.model.d.ts +11 -0
  18. package/base/models/base-query-params.model.d.ts +12 -0
  19. package/base/models/base-sort.model.d.ts +8 -0
  20. package/base/models/base-token.model.d.ts +11 -0
  21. package/base/models/base-user.model.d.ts +18 -0
  22. package/base/models/base.model.d.ts +20 -0
  23. package/base/services/base-auth.service.d.ts +31 -0
  24. package/base/services/base-crud.service.d.ts +178 -0
  25. package/base/services/base.service.d.ts +97 -0
  26. package/components/action-row/action-row.component.d.ts +8 -0
  27. package/components/action-row/action-row.component.scss +26 -0
  28. package/components/action-row/index.d.ts +1 -0
  29. package/components/auto-focus/auto-focus.directive.d.ts +17 -0
  30. package/components/auto-focus/index.d.ts +1 -0
  31. package/components/avatar/avatar.component.d.ts +23 -0
  32. package/components/avatar/avatar.component.scss +155 -0
  33. package/components/avatar/index.d.ts +1 -0
  34. package/components/button/button.component.d.ts +74 -0
  35. package/components/button/button.component.scss +196 -0
  36. package/components/button/index.d.ts +1 -0
  37. package/components/button-group/button-group.component.d.ts +39 -0
  38. package/components/button-group/button-group.component.scss +89 -0
  39. package/components/button-group/index.d.ts +2 -0
  40. package/components/button-group/shared/button-group-option.model.d.ts +6 -0
  41. package/components/checkbox/checkbox.component.d.ts +74 -0
  42. package/components/checkbox/checkbox.component.scss +147 -0
  43. package/components/checkbox/index.d.ts +1 -0
  44. package/components/chips/chips.component.d.ts +46 -0
  45. package/components/chips/chips.component.scss +127 -0
  46. package/components/chips/index.d.ts +1 -0
  47. package/components/confirm-dialog/confirm-dialog.component.d.ts +17 -0
  48. package/components/confirm-dialog/confirm-dialog.component.scss +121 -0
  49. package/components/confirm-dialog/index.d.ts +4 -0
  50. package/components/confirm-dialog/shared/confirm-dialog-types.enum.d.ts +7 -0
  51. package/components/confirm-dialog/shared/confirm-dialog.model.d.ts +25 -0
  52. package/components/confirm-dialog/shared/confirm-dialog.service.d.ts +17 -0
  53. package/components/date-picker/date-picker.component.d.ts +55 -0
  54. package/components/date-picker/date-picker.component.scss +27 -0
  55. package/components/date-picker/index.d.ts +1 -0
  56. package/components/date-range-picker/date-range-picker.component.d.ts +66 -0
  57. package/components/date-range-picker/date-range-picker.component.scss +89 -0
  58. package/components/date-range-picker/index.d.ts +6 -0
  59. package/components/date-range-picker/shared/calendar/calendar.component.d.ts +27 -0
  60. package/components/date-range-picker/shared/calendar/calendar.component.scss +13 -0
  61. package/components/date-range-picker/shared/default-preset-date-options.d.ts +2 -0
  62. package/components/date-range-picker/shared/preset-key.enum.d.ts +11 -0
  63. package/components/date-range-picker/shared/range-selection-strategy.service.d.ts +11 -0
  64. package/components/date-range-picker/shared/select-date-option.interface.d.ts +32 -0
  65. package/components/date-range-picker/shared/selected-date-event.interface.d.ts +6 -0
  66. package/components/datetime-picker/datetime-picker.component.d.ts +68 -0
  67. package/components/datetime-picker/datetime-picker.component.scss +28 -0
  68. package/components/datetime-picker/index.d.ts +3 -0
  69. package/components/datetime-picker/shared/datetime-picker-intl.d.ts +29 -0
  70. package/components/datetime-picker/shared/moment-datetime-formats.d.ts +2 -0
  71. package/components/disable-auto-fill/disable-auto-fill.directive.d.ts +11 -0
  72. package/components/disable-auto-fill/index.d.ts +1 -0
  73. package/components/echarts/echarts.directive.d.ts +100 -0
  74. package/components/echarts/index.d.ts +4 -0
  75. package/components/echarts/shared/echarts-change-filter.d.ts +11 -0
  76. package/components/echarts/shared/echarts-config.interface.d.ts +5 -0
  77. package/components/echarts/shared/echarts-theme.type.d.ts +1 -0
  78. package/components/empty/empty.component.d.ts +13 -0
  79. package/components/empty/empty.component.scss +36 -0
  80. package/components/empty/index.d.ts +1 -0
  81. package/components/expansion-panel/expansion-panel.component.d.ts +36 -0
  82. package/components/expansion-panel/expansion-panel.component.scss +99 -0
  83. package/components/expansion-panel/index.d.ts +1 -0
  84. package/components/field-error/field-error.component.d.ts +95 -0
  85. package/components/field-error/field-error.component.scss +7 -0
  86. package/components/field-error/index.d.ts +2 -0
  87. package/components/field-error/shared/field-error-custom-validators.type.d.ts +2 -0
  88. package/components/flex-layout/flex-layout.directive.d.ts +44 -0
  89. package/components/flex-layout/index.d.ts +1 -0
  90. package/components/form-wrapper/form-wrapper.component.d.ts +15 -0
  91. package/components/form-wrapper/form-wrapper.component.scss +121 -0
  92. package/components/form-wrapper/index.d.ts +1 -0
  93. package/components/helpful-tip/helpful-tip.component.d.ts +11 -0
  94. package/components/helpful-tip/helpful-tip.component.scss +14 -0
  95. package/components/helpful-tip/index.d.ts +1 -0
  96. package/components/icon/icon.component.d.ts +61 -0
  97. package/components/icon/icon.component.scss +29 -0
  98. package/components/icon/index.d.ts +1 -0
  99. package/components/index.d.ts +46 -0
  100. package/components/input/index.d.ts +4 -0
  101. package/components/input/input.component.d.ts +81 -0
  102. package/components/input/input.component.scss +27 -0
  103. package/components/input/shared/input-prefix.directive.d.ts +5 -0
  104. package/components/input/shared/input-suffix.directive.d.ts +5 -0
  105. package/components/input/shared/input.directive.d.ts +26 -0
  106. package/components/input-currency/index.d.ts +1 -0
  107. package/components/input-currency/input-currency.component.d.ts +64 -0
  108. package/components/input-currency/input-currency.component.scss +27 -0
  109. package/components/input-group/index.d.ts +2 -0
  110. package/components/input-group/input-group-addon.component.d.ts +8 -0
  111. package/components/input-group/input-group.component.d.ts +14 -0
  112. package/components/input-group/input-group.component.scss +118 -0
  113. package/components/input-phone/index.d.ts +1 -0
  114. package/components/input-phone/input-phone.component.d.ts +62 -0
  115. package/components/input-phone/input-phone.component.scss +27 -0
  116. package/components/loading/index.d.ts +1 -0
  117. package/components/loading/loading.component.d.ts +13 -0
  118. package/components/loading/loading.component.scss +145 -0
  119. package/components/lozenge/index.d.ts +3 -0
  120. package/components/lozenge/lozenge.component.d.ts +20 -0
  121. package/components/lozenge/lozenge.component.scss +99 -0
  122. package/components/lozenge/shared/lozenge-fill.type.d.ts +4 -0
  123. package/components/lozenge/shared/lozenge-variant.type.d.ts +1 -0
  124. package/components/password-requeriments/index.d.ts +3 -0
  125. package/components/password-requeriments/password-requeriments.component.d.ts +27 -0
  126. package/components/password-requeriments/password-requeriments.component.scss +53 -0
  127. package/components/password-requeriments/shared/password-requeriments.interface.d.ts +5 -0
  128. package/components/password-requeriments/shared/password-validation.util.d.ts +71 -0
  129. package/components/popover/index.d.ts +4 -0
  130. package/components/popover/popover-target.directive.d.ts +8 -0
  131. package/components/popover/popover-trigger.directive.d.ts +135 -0
  132. package/components/popover/popover.component.d.ts +121 -0
  133. package/components/popover/popover.component.scss +26 -0
  134. package/components/popover/popover.module.d.ts +9 -0
  135. package/components/popover/shared/popover-animations.d.ts +14 -0
  136. package/components/popover/shared/popover-errors.d.ts +14 -0
  137. package/components/popover/shared/popover-types.type.d.ts +4 -0
  138. package/components/popover/shared/popover.interface.d.ts +24 -0
  139. package/components/radio-button/radio-button.component.scss +0 -0
  140. package/components/radio-group/index.d.ts +2 -0
  141. package/components/radio-group/radio-group.component.d.ts +57 -0
  142. package/components/radio-group/radio-group.component.scss +69 -0
  143. package/components/radio-group/shared/option-radio-group.type.d.ts +1 -0
  144. package/components/scroll-fade/index.d.ts +1 -0
  145. package/components/scroll-fade/scroll-fade.directive.d.ts +24 -0
  146. package/components/select/index.d.ts +4 -0
  147. package/components/select/select.component.d.ts +85 -0
  148. package/components/select/select.component.scss +52 -0
  149. package/components/select/shared/mat-select-media-tracker.d.ts +15 -0
  150. package/components/select/shared/mat-select-options-helper.d.ts +6 -0
  151. package/components/select/shared/mat-select-styles.scss +429 -0
  152. package/components/select/shared/mat-select.directive.d.ts +127 -0
  153. package/components/select-enum/index.d.ts +3 -0
  154. package/components/select-enum/select-enum.component.d.ts +65 -0
  155. package/components/select-enum/select-enum.component.scss +41 -0
  156. package/components/select-enum/shared/option-select-enum.type.d.ts +6 -0
  157. package/components/select-enum/shared/select-check-all.component.d.ts +15 -0
  158. package/components/sidenav/index.d.ts +1 -0
  159. package/components/sidenav/shared/sidenav-arrow-animations.d.ts +1 -0
  160. package/components/sidenav/sidenav.component.d.ts +47 -0
  161. package/components/sidenav/sidenav.component.scss +187 -0
  162. package/components/skeleton/index.d.ts +1 -0
  163. package/components/skeleton/skeleton.component.d.ts +37 -0
  164. package/components/skeleton/skeleton.component.scss +76 -0
  165. package/components/stepper/index.d.ts +2 -0
  166. package/components/stepper/step.component.d.ts +24 -0
  167. package/components/stepper/stepper.component.d.ts +20 -0
  168. package/components/stepper/stepper.component.scss +120 -0
  169. package/components/table/index.d.ts +9 -0
  170. package/components/table/shared/table-column-action-type.enum.d.ts +1 -0
  171. package/components/table/shared/table-column-align-type.enum.d.ts +6 -0
  172. package/components/table/shared/table-column-builder.model.d.ts +109 -0
  173. package/components/table/shared/table-column-condition.enum.d.ts +2 -0
  174. package/components/table/shared/table-column-partial.model.d.ts +6 -0
  175. package/components/table/shared/table-column.model.d.ts +80 -0
  176. package/components/table/shared/table-menu-item-context-builder.model.d.ts +61 -0
  177. package/components/table/shared/table-menu-item-context.model.d.ts +45 -0
  178. package/components/table/table.component.d.ts +184 -0
  179. package/components/table/table.component.scss +255 -0
  180. package/components/tabs/index.d.ts +2 -0
  181. package/components/tabs/tab-group.component.d.ts +24 -0
  182. package/components/tabs/tab.component.d.ts +30 -0
  183. package/components/tabs/tabs.component.scss +170 -0
  184. package/components/tag/index.d.ts +1 -0
  185. package/components/tag/tag.component.d.ts +26 -0
  186. package/components/tag/tag.component.scss +78 -0
  187. package/components/text-ellipsis/index.d.ts +1 -0
  188. package/components/text-ellipsis/text-ellipsis.directive.d.ts +15 -0
  189. package/components/textarea/index.d.ts +1 -0
  190. package/components/textarea/textarea.component.d.ts +72 -0
  191. package/components/textarea/textarea.component.scss +31 -0
  192. package/components/toast/index.d.ts +4 -0
  193. package/components/toast/shared/toast-types.enum.d.ts +7 -0
  194. package/components/toast/shared/toast.model.d.ts +7 -0
  195. package/components/toast/shared/toast.service.d.ts +12 -0
  196. package/components/toast/toast.component.d.ts +18 -0
  197. package/components/toast/toast.component.scss +135 -0
  198. package/components/toggle-switch/index.d.ts +1 -0
  199. package/components/toggle-switch/toggle-switch.component.d.ts +49 -0
  200. package/components/toggle-switch/toggle-switch.component.scss +105 -0
  201. package/components/toolbar/index.d.ts +1 -0
  202. package/components/toolbar/toolbar.component.d.ts +9 -0
  203. package/components/toolbar/toolbar.component.scss +22 -0
  204. package/components/top-nav/index.d.ts +1 -0
  205. package/components/top-nav/top-nav.component.d.ts +9 -0
  206. package/components/top-nav/top-nav.component.scss +18 -0
  207. package/components/tree-table/index.d.ts +8 -0
  208. package/components/tree-table/shared/tree-table-arrow-animations.d.ts +1 -0
  209. package/components/tree-table/shared/tree-table-column-builder.model.d.ts +55 -0
  210. package/components/tree-table/shared/tree-table-column-condition.enum.d.ts +2 -0
  211. package/components/tree-table/shared/tree-table-column-partial.model.d.ts +6 -0
  212. package/components/tree-table/shared/tree-table-column.model.d.ts +40 -0
  213. package/components/tree-table/shared/tree-table-menu-item-context-builder.model.d.ts +61 -0
  214. package/components/tree-table/shared/tree-table-menu-item-context.model.d.ts +45 -0
  215. package/components/tree-table/tree-table.component.d.ts +91 -0
  216. package/components/tree-table/tree-table.component.scss +216 -0
  217. package/components/user-profile/index.d.ts +1 -0
  218. package/components/user-profile/shared/user-profile-arrow-animations.d.ts +1 -0
  219. package/components/user-profile/user-profile.component.d.ts +28 -0
  220. package/components/user-profile/user-profile.component.scss +76 -0
  221. package/decorators/debounce.decorator.d.ts +33 -0
  222. package/decorators/index.d.ts +1 -0
  223. package/enums/index.d.ts +3 -0
  224. package/enums/menu-type.enum.d.ts +6 -0
  225. package/enums/sort-direction.enum.d.ts +5 -0
  226. package/enums/type-operation-dialog.enum.d.ts +12 -0
  227. package/fesm2022/gipisistemas-ngx-core.mjs +19132 -0
  228. package/fesm2022/gipisistemas-ngx-core.mjs.map +1 -0
  229. package/guards/auth.guard.d.ts +3 -0
  230. package/guards/index.d.ts +2 -0
  231. package/guards/public.guard.d.ts +3 -0
  232. package/index.d.ts +5 -0
  233. package/interceptors/auth.interceptor.d.ts +2 -0
  234. package/interceptors/error.interceptor.d.ts +13 -0
  235. package/interceptors/index.d.ts +2 -0
  236. package/interfaces/index.d.ts +1 -0
  237. package/interfaces/permissions.interface.d.ts +10 -0
  238. package/package.json +59 -0
  239. package/pipes/index.d.ts +1 -0
  240. package/pipes/money.pipe.d.ts +20 -0
  241. package/public-api.d.ts +13 -0
  242. package/services/cacheable.service.d.ts +41 -0
  243. package/services/dialog.service.d.ts +65 -0
  244. package/services/file-saver.service.d.ts +11 -0
  245. package/services/filter-indexed-db.service.d.ts +100 -0
  246. package/services/filter-url.service.d.ts +81 -0
  247. package/services/index.d.ts +8 -0
  248. package/services/moment-date-adapter.service.d.ts +8 -0
  249. package/services/native-date-adapter.service.d.ts +8 -0
  250. package/services/svg-register.service.d.ts +33 -0
  251. package/theming/_breakpoints.scss +20 -0
  252. package/theming/_index.scss +19 -0
  253. package/theming/_palettes.scss +112 -0
  254. package/theming/_theme.scss +189 -0
  255. package/theming/_utils.scss +1424 -0
  256. package/tokens/allowed-public-routes.token.d.ts +26 -0
  257. package/tokens/app-messages.token.d.ts +13 -0
  258. package/tokens/base-auth-service.token.d.ts +5 -0
  259. package/tokens/echarts-core.token.d.ts +4 -0
  260. package/tokens/index.d.ts +6 -0
  261. package/tokens/ngx-currency-options.token.d.ts +5 -0
  262. package/tokens/paginator-intl.token.d.ts +5 -0
  263. package/types/booleanish.type.d.ts +1 -0
  264. package/types/implicit-template.type.d.ts +4 -0
  265. package/types/index.d.ts +8 -0
  266. package/types/mixable-object.type.d.ts +1 -0
  267. package/types/nullable.type.d.ts +1 -0
  268. package/types/numberish.type.d.ts +1 -0
  269. package/types/page-event.type.d.ts +6 -0
  270. package/types/uuid.type.d.ts +1 -0
  271. package/types/void-listener.type.d.ts +1 -0
  272. package/utils/array.util.d.ts +13 -0
  273. package/utils/css.util.d.ts +12 -0
  274. package/utils/currency.util.d.ts +83 -0
  275. package/utils/date.util.d.ts +166 -0
  276. package/utils/document.util.d.ts +126 -0
  277. package/utils/email.util.d.ts +19 -0
  278. package/utils/index.d.ts +14 -0
  279. package/utils/number-to-words.util.d.ts +17 -0
  280. package/utils/number.util.d.ts +40 -0
  281. package/utils/object.util.d.ts +83 -0
  282. package/utils/phone.util.d.ts +103 -0
  283. package/utils/states.util.d.ts +182 -0
  284. package/utils/storage.util.d.ts +78 -0
  285. package/utils/string.util.d.ts +89 -0
  286. package/utils/uuid.util.d.ts +33 -0
@@ -0,0 +1,1424 @@
1
+ @use 'sass:map';
2
+ @use 'sass:string';
3
+ @use './palettes' as gipi-palettes;
4
+
5
+ // Get the color by passing the theme, palette name and shade
6
+ @function get-color($theme, $palette-name, $shade: 500) {
7
+ $palettes: map.get($theme, palettes);
8
+ $palette: map.get($palettes, $palette-name);
9
+
10
+ @if $palette == null {
11
+ @warn "A paleta `#{$palette-name}` não foi encontrada no tema. Tema atual tem as paletas: #{map.keys($palettes)}";
12
+ @return null;
13
+ }
14
+
15
+ $color: map.get($palette, $shade);
16
+
17
+ @if $color == null {
18
+ @warn "A tonalidade `#{$shade}` não foi encontrada na paleta `#{$palette-name}`. Paleta disponível: #{map.keys($palette)}";
19
+ }
20
+
21
+ @return $color;
22
+ }
23
+
24
+ @function get-font-family($theme) {
25
+ @if map.has-key($theme, typography) {
26
+ $typography: map.get($theme, typography);
27
+
28
+ @if map.has-key($typography, font-family) {
29
+ @return string.unquote(map.get($typography, font-family));
30
+ }
31
+ }
32
+ @return string.unquote('Roboto, sans-serif');
33
+ }
34
+
35
+ @function get-font-size($theme) {
36
+ @if map.has-key($theme, typography) {
37
+ $typography: map.get($theme, typography);
38
+
39
+ @if map.has-key($typography, font-size) {
40
+ @return map.get($typography, font-size);
41
+ }
42
+ }
43
+ @return 1.4rem;
44
+ }
45
+
46
+ @function get-font-color($theme) {
47
+ @if map.has-key($theme, typography) {
48
+ $typography: map.get($theme, typography);
49
+
50
+ @if map.has-key($typography, color) {
51
+ @return map.get($typography, color);
52
+ }
53
+ }
54
+ @return map.get(gipi-palettes.$palette-black, 200);
55
+ }
56
+
57
+ @function get-shadow($shade) {
58
+ @if map-has-key(gipi-palettes.$palette-shadows, $shade) {
59
+ @return map-get(gipi-palettes.$palette-shadows, $shade);
60
+ }
61
+ @return null;
62
+ }
63
+
64
+ @mixin host() {
65
+ :host {
66
+ display: block;
67
+ width: 100%;
68
+ min-width: 0;
69
+ max-width: 100%;
70
+ flex: 1;
71
+ }
72
+ }
73
+
74
+ @mixin truncate-line($important: null) {
75
+ $important-flag: if($important == '!important' or $important == true, ' !important', '');
76
+ display: -webkit-box#{$important-flag};
77
+ -webkit-box-orient: vertical#{$important-flag};
78
+ overflow: hidden#{$important-flag};
79
+ text-overflow: ellipsis#{$important-flag};
80
+ line-clamp: 1#{$important-flag};
81
+ -webkit-line-clamp: 1#{$important-flag};
82
+ }
83
+
84
+ @mixin user-select($value) {
85
+ -webkit-user-select: $value;
86
+ user-select: $value;
87
+ }
88
+
89
+ @mixin input-placeholder {
90
+ &::placeholder {
91
+ @content;
92
+ }
93
+
94
+ &::-moz-placeholder {
95
+ @content;
96
+ }
97
+
98
+ &::-webkit-input-placeholder {
99
+ @content;
100
+ }
101
+ }
102
+
103
+ @mixin smooth-font {
104
+ -moz-osx-font-smoothing: grayscale;
105
+ -webkit-font-smoothing: antialiased;
106
+ }
107
+
108
+ @mixin background-image($url-webp, $url-fallback) {
109
+ background-image: url(#{$url-fallback});
110
+
111
+ @supports (background-image: url(#{$url-webp})) {
112
+ background-image: url(#{$url-webp});
113
+ }
114
+ }
115
+
116
+ @mixin novelties($theme: ()) {
117
+ $font-family: get-font-family($theme);
118
+ $primary-500: get-color($theme, primary, 500);
119
+ $z-index: 1002;
120
+
121
+ position: relative;
122
+
123
+ &::before {
124
+ content: 'Novo';
125
+ position: absolute;
126
+ top: 120%;
127
+ left: 50%;
128
+ transform: translateX(-50%);
129
+ z-index: $z-index;
130
+ padding: 2px 8px;
131
+ border-radius: 4px;
132
+ text-align: center;
133
+ font-family: $font-family;
134
+ font-size: 10px;
135
+ line-height: 12px;
136
+ color: #{get-color($theme, white, 100)};
137
+ background-color: $primary-500;
138
+ }
139
+
140
+ &::after {
141
+ content: '';
142
+ position: absolute;
143
+ top: calc(120% - 10px);
144
+ left: 50%;
145
+ z-index: $z-index;
146
+ transform: translateX(-50%);
147
+ border-width: 5px;
148
+ border-style: solid;
149
+ border-color: transparent transparent $primary-500;
150
+ }
151
+ }
152
+
153
+ @mixin tooltip($theme: ()) {
154
+ $font-family: get-font-family($theme);
155
+
156
+ .mat-mdc-tooltip-panel {
157
+ z-index: 9999 !important;
158
+ }
159
+
160
+ .mat-mdc-tooltip-surface {
161
+ line-height: unset !important;
162
+ white-space: pre-wrap !important;
163
+ }
164
+
165
+ :root {
166
+ --mdc-plain-tooltip-container-color: #2f3033;
167
+ --mdc-plain-tooltip-supporting-text-color: #f2f0f4;
168
+ --mdc-plain-tooltip-container-shape: 4px;
169
+ --mdc-plain-tooltip-supporting-text-font: $font-family;
170
+ --mdc-plain-tooltip-supporting-text-size: 1.2rem;
171
+ --mdc-plain-tooltip-supporting-text-weight: 500;
172
+ --mdc-plain-tooltip-supporting-text-line-height: unset !important;
173
+ --mdc-plain-tooltip-supporting-text-tracking: normal;
174
+ }
175
+ }
176
+
177
+ @mixin divider($theme: ()) {
178
+ .mat-divider {
179
+ --mat-divider-color: #{get-color($theme, black, 300)} !important;
180
+ --mat-divider-width: 1px !important;
181
+
182
+ &.mat-divider-vertical {
183
+ height: 65% !important;
184
+ margin: 0 0.4rem !important;
185
+ }
186
+ }
187
+ }
188
+
189
+ @mixin select-panel($theme: ()) {
190
+ $font-family: get-font-family($theme);
191
+ $font-size: get-font-size($theme);
192
+ $font-color: get-font-color($theme);
193
+ $white-100: get-color($theme, white, 100);
194
+
195
+ .mat-mdc-select-panel {
196
+ @include overlay();
197
+
198
+ padding: 0 !important;
199
+ margin-top: 4px !important;
200
+ }
201
+
202
+ .mat-mdc-option:not(:disabled),
203
+ .mat-mdc-option:not(.mdc-list-item--disabled) {
204
+ font-family: $font-family !important;
205
+ font-size: $font-size !important;
206
+ color: $font-color !important;
207
+ transition: all 0.2s !important;
208
+ min-height: 3.6rem !important;
209
+ padding: 0 0.8rem !important;
210
+ border-left: 4px solid transparent !important;
211
+
212
+ .mdc-list-item__primary-text {
213
+ font-family: $font-family !important;
214
+ font-size: $font-size !important;
215
+ color: $font-color !important;
216
+ line-height: 2rem !important;
217
+
218
+ @include truncate-line(!important);
219
+ }
220
+
221
+ &:hover:not(.mdc-list-item--disabled):not(.mat-mdc-option-active):not(
222
+ .mdc-list-item--selected
223
+ ) {
224
+ background: #{get-color($theme, secondary, 50)} !important;
225
+ }
226
+
227
+ &:not(.mat-mdc-option-multiple) {
228
+ &.mdc-list-item--selected,
229
+ &.mat-mdc-option-active {
230
+ border-left-color: #{get-color($theme, primary, 500)} !important;
231
+ background-color: #{get-color($theme, primary, 50)} !important;
232
+ }
233
+
234
+ .mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after {
235
+ border-left-color: #{get-color($theme, primary, 500)} !important;
236
+ border-bottom-color: #{get-color($theme, primary, 500)} !important;
237
+ }
238
+ }
239
+
240
+ &.mat-mdc-option-multiple {
241
+ .mat-pseudo-checkbox:not(.mat-pseudo-checkbox-checked) {
242
+ border-color: #{get-color($theme, black, 300)} !important;
243
+ }
244
+
245
+ &.mdc-list-item--selected {
246
+ // background-color: #{get-color($theme, primary, 50)} !important;
247
+ // background-color: #{get-color($theme, white, 100)} !important;
248
+ }
249
+
250
+ &:focus:not(:hover),
251
+ &.mat-mdc-option-active:not(:hover) {
252
+ background-color: unset !important;
253
+ }
254
+
255
+ &:focus:hover,
256
+ &.mat-mdc-option-active:hover {
257
+ background-color: #{get-color($theme, secondary, 50)} !important;
258
+ }
259
+
260
+ .mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked,
261
+ .mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate {
262
+ --mat-full-pseudo-checkbox-selected-icon-color: #{get-color($theme, primary, 500)} !important;
263
+ background-color: #{get-color($theme, primary, 500)} !important;
264
+ }
265
+
266
+ .mat-pseudo-checkbox.mat-pseudo-checkbox-checked::after {
267
+ --mat-full-pseudo-checkbox-selected-checkmark-color: #{get-color(
268
+ $theme,
269
+ white,
270
+ 100
271
+ )} !important;
272
+ border-left-color: #{get-color($theme, white, 100)} !important;
273
+ border-bottom-color: #{get-color($theme, white, 100)} !important;
274
+ }
275
+ }
276
+ }
277
+
278
+ :root {
279
+ --mat-select-panel-background-color: #ffffff;
280
+ --mat-option-selected-state-layer-color: #e4e4e7;
281
+ --mat-option-hover-state-layer-color: #f5f5f6;
282
+ }
283
+ }
284
+
285
+ @mixin autofill($font-color, $background-color: #ffffff) {
286
+ &:is(:-webkit-autofill, :autofill),
287
+ &:is(:-webkit-autofill, :autofill):hover,
288
+ &:is(:-webkit-autofill, :autofill):focus,
289
+ &:is(:-webkit-autofill, :autofill):active {
290
+ -webkit-text-fill-color: $font-color;
291
+ -webkit-box-shadow: 0 0 0 1000px $background-color inset;
292
+ }
293
+ }
294
+
295
+ @mixin overlay {
296
+ background: #ffffff !important;
297
+ border: 1px solid #e4e4e7 !important;
298
+ box-shadow:
299
+ 0 0 #0000,
300
+ 0 0 #0000,
301
+ 0 4px 6px -1px rgba(0, 0, 0, 0.1),
302
+ 0 2px 4px -2px rgba(0, 0, 0, 0.1) !important;
303
+ }
304
+
305
+ @mixin button-reset($theme: ()) {
306
+ cursor: pointer;
307
+ outline: none;
308
+ border: none;
309
+ overflow: hidden;
310
+ white-space: nowrap;
311
+ text-decoration: none;
312
+ -webkit-tap-highlight-color: transparent;
313
+
314
+ &[disabled],
315
+ &:disabled,
316
+ &.disabled {
317
+ @include button-disabled($theme);
318
+ }
319
+
320
+ &:not([disabled]):active,
321
+ &:not(:disabled):active,
322
+ &:not(.disabled):active {
323
+ opacity: 0.8;
324
+ }
325
+
326
+ &::-moz-focus-inner {
327
+ border: 0;
328
+ }
329
+ }
330
+
331
+ @mixin button-disabled($theme: ()) {
332
+ $secondary-200: get-color($theme, secondary, 200);
333
+ $secondary-500: get-color($theme, secondary, 500);
334
+
335
+ cursor: not-allowed !important;
336
+ box-shadow: none !important;
337
+ background-color: $secondary-200 !important;
338
+ border-color: $secondary-200 !important;
339
+ color: $secondary-500 !important;
340
+ opacity: 1 !important;
341
+
342
+ .material-symbols-sharp,
343
+ .material-symbols-outlined,
344
+ .material-symbols-rounded,
345
+ .g-icon,
346
+ .g-icon > mat-icon,
347
+ > mat-icon {
348
+ color: $secondary-500 !important;
349
+
350
+ svg,
351
+ svg path,
352
+ svg g path {
353
+ color: $secondary-500 !important;
354
+ fill: $secondary-500 !important;
355
+ }
356
+ }
357
+ }
358
+
359
+ @mixin dialog($theme: ()) {
360
+ .mat-mdc-dialog-container {
361
+ max-width: 100% !important;
362
+ max-height: 100% !important;
363
+ }
364
+
365
+ .mat-mdc-dialog-surface {
366
+ border-radius: 10px !important;
367
+ overflow-y: hidden !important;
368
+ }
369
+ }
370
+
371
+ @mixin mat-paginator($theme: ()) {
372
+ $font-family: get-font-family($theme);
373
+ $font-size: get-font-size($theme);
374
+ $font-color: get-font-color($theme);
375
+ $mat-form-field-height: 3.6rem;
376
+ $white-100: get-color($theme, white, 100);
377
+ $black-300: get-color($theme, black, 300);
378
+ $black-400: get-color($theme, black, 400);
379
+ $secondary-50: get-color($theme, secondary, 50);
380
+ $secondary-100: get-color($theme, secondary, 100);
381
+ $secondary-200: get-color($theme, secondary, 200);
382
+ $secondary-300: get-color($theme, secondary, 300);
383
+ $secondary-500: get-color($theme, secondary, 500);
384
+
385
+ .mat-mdc-paginator {
386
+ display: block !important;
387
+ background-color: $white-100 !important;
388
+ font-family: $font-family !important;
389
+ font-size: 1.2rem !important;
390
+ line-height: 1.6rem !important;
391
+ font-weight: 600 !important;
392
+ color: $black-300 !important;
393
+ letter-spacing: normal !important;
394
+ --mat-form-field-container-height: $mat-form-field-height;
395
+ --mat-form-field-container-vertical-padding: 1rem;
396
+
397
+ .mat-mdc-paginator-container {
398
+ padding: 0 1.6rem !important;
399
+ min-height: 4.4rem !important;
400
+ align-items: center !important;
401
+ justify-content: center !important;
402
+ }
403
+
404
+ .mat-mdc-paginator-range-actions {
405
+ gap: 1rem !important;
406
+ }
407
+
408
+ .mat-mdc-paginator-range-label {
409
+ font-weight: 600 !important;
410
+ line-height: 4rem !important;
411
+ margin: 0 !important;
412
+ margin-inline: 1rem !important;
413
+ min-width: 10rem !important;
414
+ text-align: center !important;
415
+ }
416
+
417
+ .mat-mdc-paginator-navigation-first,
418
+ .mat-mdc-paginator-navigation-previous,
419
+ .mat-mdc-paginator-navigation-next,
420
+ .mat-mdc-paginator-navigation-last {
421
+ width: 2.8rem !important;
422
+ height: 2.8rem !important;
423
+ padding: 0 !important;
424
+ font-size: 2rem !important;
425
+ border-radius: 0.4rem !important;
426
+ display: flex !important;
427
+ align-items: center !important;
428
+ justify-content: center !important;
429
+ border: 1px solid $black-300 !important;
430
+
431
+ &:hover {
432
+ background-color: $secondary-100 !important;
433
+ }
434
+
435
+ > svg {
436
+ width: 2.2rem !important;
437
+ height: 2.2rem !important;
438
+ color: $black-300 !important;
439
+ fill: $black-300 !important;
440
+ }
441
+
442
+ &.mat-mdc-button-disabled {
443
+ cursor: not-allowed !important;
444
+ box-shadow: none !important;
445
+ background-color: $white-100 !important;
446
+ border-color: transparent !important;
447
+ color: $secondary-100 !important;
448
+ opacity: 1 !important;
449
+
450
+ svg,
451
+ svg path,
452
+ svg g path {
453
+ color: $secondary-100 !important;
454
+ fill: $secondary-100 !important;
455
+ }
456
+ }
457
+
458
+ .mat-mdc-button-persistent-ripple {
459
+ border-radius: 0.4rem !important;
460
+ }
461
+ }
462
+
463
+ .mat-mdc-paginator-navigation-first {
464
+ order: 1 !important;
465
+ }
466
+ .mat-mdc-paginator-navigation-previous {
467
+ order: 2 !important;
468
+ }
469
+ .mat-mdc-paginator-range-label {
470
+ order: 3 !important;
471
+ }
472
+ .mat-mdc-paginator-navigation-next {
473
+ order: 4 !important;
474
+ }
475
+ .mat-mdc-paginator-navigation-last {
476
+ order: 6 !important;
477
+ }
478
+
479
+ .mat-mdc-paginator-page-size {
480
+ position: absolute !important;
481
+ right: 1.6rem !important;
482
+
483
+ display: flex !important;
484
+ align-items: center !important;
485
+ gap: 1rem !important;
486
+ margin: 0 !important;
487
+
488
+ .mat-mdc-paginator-page-size-label {
489
+ margin: 0 !important;
490
+ }
491
+
492
+ .mat-mdc-paginator-page-size-select {
493
+ margin: 0 !important;
494
+
495
+ font-family: $font-family !important;
496
+ font-size: 1.2rem !important;
497
+ font-weight: 400 !important;
498
+ line-height: 100% !important;
499
+ color: $font-color !important;
500
+ letter-spacing: normal !important;
501
+ min-height: 2.8rem !important;
502
+ height: 2.8rem !important;
503
+ max-height: 2.8rem !important;
504
+ background-color: #{$white-100} !important;
505
+
506
+ .mat-mdc-text-field-wrapper,
507
+ .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex {
508
+ min-height: 2.8rem !important;
509
+ height: 2.8rem !important;
510
+ max-height: 2.8rem !important;
511
+ padding: 0 !important;
512
+
513
+ .mat-mdc-form-field-infix {
514
+ width: auto !important;
515
+ min-height: 2.8rem !important;
516
+ height: 2.8rem !important;
517
+ max-height: 2.8rem !important;
518
+ padding: 0 0.8rem !important;
519
+ }
520
+ }
521
+
522
+ &:not(.mat-form-field-disabled) {
523
+ // Bordas do input no mat-form-field
524
+ .mat-mdc-text-field-wrapper
525
+ .mat-mdc-form-field-flex
526
+ .mdc-notched-outline
527
+ .mat-mdc-notch-piece {
528
+ transition:
529
+ border-color ease-in-out 0.15s,
530
+ box-shadow ease-in-out 0.15s;
531
+
532
+ border-width: 1px !important;
533
+ border-color: $black-400;
534
+ }
535
+
536
+ &:hover
537
+ .mat-mdc-text-field-wrapper
538
+ .mat-mdc-form-field-flex
539
+ .mdc-notched-outline
540
+ .mat-mdc-notch-piece {
541
+ border-color: $black-300;
542
+ }
543
+
544
+ &:focus,
545
+ &:focus-within,
546
+ &.mat-focused,
547
+ &.mdc-text-field--focused {
548
+ box-shadow:
549
+ inset 0 1px 1px rgba(0, 0, 0, 0.075),
550
+ 0 0 8px rgba(101, 101, 101, 0.6);
551
+
552
+ .mat-mdc-text-field-wrapper
553
+ .mat-mdc-form-field-flex
554
+ .mdc-notched-outline
555
+ .mat-mdc-notch-piece {
556
+ border-color: $black-300;
557
+ }
558
+ }
559
+ }
560
+
561
+ &.mat-form-field-disabled {
562
+ @include user-select(none);
563
+
564
+ cursor: not-allowed;
565
+ background-color: $secondary-50 !important;
566
+ color: $secondary-300 !important;
567
+
568
+ // Bordas do input no mat-form-field
569
+ .mat-mdc-text-field-wrapper
570
+ .mat-mdc-form-field-flex
571
+ .mdc-notched-outline
572
+ .mat-mdc-notch-piece {
573
+ border-width: 1px;
574
+ border-color: $secondary-200 !important;
575
+ }
576
+ }
577
+
578
+ .mat-mdc-form-field-subscript-wrapper {
579
+ display: none !important;
580
+ }
581
+
582
+ .mat-mdc-select,
583
+ .mat-mdc-select .mat-mdc-select-trigger {
584
+ min-height: 2.8rem !important;
585
+ height: 2.8rem !important;
586
+ max-height: 2.8rem !important;
587
+ }
588
+
589
+ .mat-mdc-select-arrow {
590
+ color: $font-color !important;
591
+ }
592
+
593
+ .mat-mdc-select-value {
594
+ color: $font-color !important;
595
+ font-size: 1.2rem !important;
596
+ line-height: 2.8rem !important;
597
+
598
+ .mat-mdc-select-placeholder {
599
+ @include input-placeholder {
600
+ color: $secondary-500 !important;
601
+ }
602
+ }
603
+ }
604
+ }
605
+ }
606
+ }
607
+ }
608
+
609
+ @mixin mat-form-field-reset($theme: (), $isTextarea: false) {
610
+ $font-family: get-font-family($theme);
611
+ $font-size: get-font-size($theme);
612
+ $font-color: get-font-color($theme);
613
+ $mat-form-field-height: 3.6rem;
614
+
615
+ --mdc-outlined-text-field-container-shape: 0.4rem;
616
+
617
+ $white-100: get-color($theme, white, 100);
618
+
619
+ // Not disabled
620
+ $black-300: get-color($theme, black, 300);
621
+ $black-400: get-color($theme, black, 400);
622
+
623
+ // Disabled
624
+ $secondary-50: get-color($theme, secondary, 50);
625
+ $secondary-200: get-color($theme, secondary, 200);
626
+ $secondary-300: get-color($theme, secondary, 300);
627
+ $secondary-500: get-color($theme, secondary, 500);
628
+
629
+ .mat-mdc-form-field {
630
+ font-family: $font-family !important;
631
+ font-size: $font-size !important;
632
+ font-weight: 400 !important;
633
+ line-height: 100% !important;
634
+ color: $font-color !important;
635
+ letter-spacing: normal !important;
636
+ background-color: $white-100 !important;
637
+
638
+ @if not $isTextarea {
639
+ min-height: $mat-form-field-height !important;
640
+ height: $mat-form-field-height !important;
641
+ max-height: $mat-form-field-height !important;
642
+ }
643
+
644
+ .mat-mdc-text-field-wrapper {
645
+ border-radius: 0rem !important;
646
+ padding: 0 !important;
647
+
648
+ @if not $isTextarea {
649
+ overflow: hidden !important;
650
+ min-height: $mat-form-field-height !important;
651
+ height: $mat-form-field-height !important;
652
+ max-height: $mat-form-field-height !important;
653
+ } @else {
654
+ overflow: visible !important;
655
+ }
656
+
657
+ @if $isTextarea {
658
+ .mat-mdc-form-field-infix {
659
+ padding: 1rem !important;
660
+ }
661
+ }
662
+
663
+ .mat-mdc-form-field-flex,
664
+ .mat-mdc-form-field-flex .mat-mdc-form-field-infix {
665
+ border-radius: 0rem !important;
666
+
667
+ @if not $isTextarea {
668
+ padding: 0 !important;
669
+ overflow: hidden !important;
670
+ min-height: $mat-form-field-height !important;
671
+ height: $mat-form-field-height !important;
672
+ max-height: $mat-form-field-height !important;
673
+ } @else {
674
+ overflow: visible !important;
675
+ height: auto !important;
676
+ min-height: auto !important;
677
+ max-height: none !important;
678
+ }
679
+ }
680
+ }
681
+
682
+ &:not(.mat-form-field-disabled) {
683
+ // Bordas do input no mat-form-field
684
+ .mat-mdc-text-field-wrapper
685
+ .mat-mdc-form-field-flex
686
+ .mdc-notched-outline
687
+ .mat-mdc-notch-piece {
688
+ transition:
689
+ border-color ease-in-out 0.15s,
690
+ box-shadow ease-in-out 0.15s;
691
+
692
+ border-width: 1px !important;
693
+ border-color: $black-400;
694
+ }
695
+
696
+ &:hover
697
+ .mat-mdc-text-field-wrapper
698
+ .mat-mdc-form-field-flex
699
+ .mdc-notched-outline
700
+ .mat-mdc-notch-piece {
701
+ border-color: $black-300;
702
+ }
703
+
704
+ &:focus,
705
+ &:focus-within,
706
+ &.mat-focused {
707
+ box-shadow:
708
+ inset 0 1px 1px rgba(0, 0, 0, 0.075),
709
+ 0 0 8px rgba(101, 101, 101, 0.6);
710
+
711
+ .mat-mdc-text-field-wrapper
712
+ .mat-mdc-form-field-flex
713
+ .mdc-notched-outline
714
+ .mat-mdc-notch-piece {
715
+ border-color: $black-300;
716
+ }
717
+ }
718
+ }
719
+
720
+ &.mat-form-field-disabled {
721
+ @include user-select(none);
722
+
723
+ cursor: not-allowed;
724
+ background-color: $secondary-50 !important;
725
+ color: $secondary-300 !important;
726
+
727
+ // Bordas do input no mat-form-field
728
+ .mat-mdc-text-field-wrapper
729
+ .mat-mdc-form-field-flex
730
+ .mdc-notched-outline
731
+ .mat-mdc-notch-piece {
732
+ border-width: 1px;
733
+ border-color: $secondary-200 !important;
734
+ }
735
+ }
736
+
737
+ .mat-mdc-form-field-subscript-wrapper {
738
+ display: none !important;
739
+ }
740
+
741
+ .mat-mdc-form-field-input-control {
742
+ font-family: $font-family !important;
743
+ font-size: $font-size !important;
744
+ caret-color: $font-color !important;
745
+
746
+ @if not $isTextarea {
747
+ padding-inline: 1rem !important;
748
+ height: 100% !important;
749
+ } @else {
750
+ max-height: 12rem !important;
751
+ min-height: 6rem !important;
752
+ padding: 0 !important;
753
+ }
754
+
755
+ @include input-placeholder {
756
+ color: $secondary-500 !important;
757
+ }
758
+
759
+ &:not(:disabled) {
760
+ color: $font-color !important;
761
+ }
762
+
763
+ &:disabled {
764
+ @include user-select(none);
765
+
766
+ cursor: not-allowed !important;
767
+ background-color: $secondary-50 !important;
768
+ color: $secondary-300 !important;
769
+ }
770
+ }
771
+
772
+ .mat-mdc-select {
773
+ font-family: $font-family !important;
774
+ font-size: $font-size !important;
775
+ font-weight: 400 !important;
776
+ line-height: 100% !important;
777
+ letter-spacing: normal !important;
778
+ padding-inline: 1rem !important;
779
+ min-height: $mat-form-field-height !important;
780
+ height: $mat-form-field-height !important;
781
+ max-height: $mat-form-field-height !important;
782
+
783
+ .mat-mdc-select-trigger {
784
+ min-height: $mat-form-field-height !important;
785
+ height: $mat-form-field-height !important;
786
+ max-height: $mat-form-field-height !important;
787
+ }
788
+
789
+ &:not(.mat-mdc-select-disabled) {
790
+ color: $font-color !important;
791
+
792
+ .mat-mdc-select-arrow {
793
+ color: $font-color !important;
794
+ }
795
+ }
796
+
797
+ &.mat-mdc-select-disabled {
798
+ @include user-select(none);
799
+
800
+ cursor: not-allowed;
801
+ background-color: $secondary-50 !important;
802
+ color: $secondary-300 !important;
803
+
804
+ .mat-mdc-select-arrow {
805
+ color: $secondary-300 !important;
806
+ }
807
+ }
808
+ }
809
+
810
+ .mat-mdc-form-field-icon-prefix,
811
+ .mat-mdc-form-field-icon-suffix {
812
+ padding: 0 0.4rem !important;
813
+ min-width: 3.6rem !important;
814
+ height: 3.6rem !important;
815
+ display: flex !important;
816
+ align-items: center !important;
817
+ justify-content: center !important;
818
+
819
+ .mat-datepicker-toggle,
820
+ .mat-datepicker-toggle .mdc-icon-button {
821
+ display: flex !important;
822
+ align-items: center !important;
823
+ justify-content: center !important;
824
+ width: 3.6rem !important;
825
+ height: 3.6rem !important;
826
+
827
+ > svg {
828
+ width: 2rem !important;
829
+ height: 2rem !important;
830
+ font-size: 2rem !important;
831
+ }
832
+
833
+ .mat-mdc-button-touch-target {
834
+ display: none !important;
835
+ }
836
+ }
837
+ }
838
+
839
+ &:not(.mat-form-field-disabled) {
840
+ .mat-mdc-form-field-icon-prefix,
841
+ .mat-mdc-form-field-icon-suffix {
842
+ .material-symbols-rounded,
843
+ .g-icon {
844
+ color: $font-color !important;
845
+ }
846
+
847
+ .mat-datepicker-toggle,
848
+ .mat-datepicker-toggle .mdc-icon-button {
849
+ color: $font-color !important;
850
+
851
+ > svg {
852
+ color: $font-color !important;
853
+ }
854
+ }
855
+ }
856
+ }
857
+
858
+ .mat-form-field-disabled {
859
+ .mat-mdc-form-field-icon-prefix,
860
+ .mat-mdc-form-field-icon-suffix {
861
+ @include user-select(none);
862
+
863
+ cursor: not-allowed;
864
+ background-color: $secondary-50 !important;
865
+ color: $secondary-300 !important;
866
+
867
+ &:hover {
868
+ background-color: transparent !important;
869
+ }
870
+ }
871
+ }
872
+
873
+ // .mdc-notched-outline__leading {
874
+ // border-top-left-radius: 0.4rem !important;
875
+ // border-bottom-left-radius: 0.4rem !important;
876
+ // }
877
+
878
+ // .mdc-notched-outline__trailing {
879
+ // border-top-right-radius: 0.4rem !important;
880
+ // border-bottom-right-radius: 0.4rem !important;
881
+ // }
882
+ }
883
+ }
884
+
885
+ @mixin mat-date-picker-reset($theme: ()) {
886
+ $font-family: get-font-family($theme);
887
+ $font-size: get-font-size($theme);
888
+ $font-color: get-font-color($theme);
889
+
890
+ .mat-datepicker-content {
891
+ border-radius: 4px !important;
892
+ background-color: #{get-color($theme, white, 100)} !important;
893
+ color: $font-color !important;
894
+
895
+ @include overlay();
896
+ }
897
+
898
+ .mat-datepicker-content-container {
899
+ display: flex !important;
900
+ flex-direction: row-reverse !important;
901
+ justify-content: space-between !important;
902
+ }
903
+
904
+ .mat-datepicker-actions {
905
+ padding: 0 !important;
906
+ }
907
+
908
+ .mat-date-range-input-container {
909
+ height: 100%;
910
+ }
911
+
912
+ .mat-date-range-input-wrapper {
913
+ width: 100%;
914
+ }
915
+
916
+ .mat-calendar-controls {
917
+ gap: 1rem !important;
918
+ margin: 0 0 10% 0 !important;
919
+ }
920
+
921
+ .mat-calendar-period-button {
922
+ padding: 0 1.2rem !important;
923
+ margin-inline: 0 !important;
924
+ height: 3.6rem !important;
925
+ font-family: $font-family !important;
926
+ color: $font-color !important;
927
+ font-size: 1.2rem !important;
928
+ font-weight: 700 !important;
929
+ background-color: transparent !important;
930
+ border-radius: 0.4rem !important;
931
+
932
+ .mat-calendar-arrow {
933
+ margin-top: -2.3px !important;
934
+ }
935
+
936
+ &:hover {
937
+ background-color: #{get-color($theme, secondary, 100)} !important;
938
+ }
939
+ }
940
+
941
+ .mat-calendar-previous-button,
942
+ .mat-calendar-next-button {
943
+ display: flex !important;
944
+ align-items: center !important;
945
+ justify-content: center !important;
946
+ padding: 0 !important;
947
+ width: 3.6rem !important;
948
+ height: 3.6rem !important;
949
+ font-family: $font-family !important;
950
+ color: $font-color !important;
951
+ background-color: transparent !important;
952
+ border-radius: 0.4rem !important;
953
+
954
+ background-color: #{get-color($theme, primary, 500)} !important;
955
+ color: #{get-color($theme, white, 100)} !important;
956
+
957
+ &:hover,
958
+ &:active {
959
+ background-color: #{get-color($theme, primary, 600)} !important;
960
+ }
961
+
962
+ &:disabled {
963
+ background-color: #{get-color($theme, secondary, 200)} !important;
964
+ color: #{get-color($theme, secondary, 500)} !important;
965
+ }
966
+ }
967
+
968
+ .mat-mdc-button-ripple,
969
+ .mat-mdc-button-persistent-ripple {
970
+ display: none !important;
971
+ }
972
+
973
+ .mat-calendar-table-header {
974
+ .mat-calendar-table-header-divider::after {
975
+ left: 4px !important;
976
+ right: 4px !important;
977
+ background: $font-color !important;
978
+ }
979
+
980
+ th {
981
+ color: $font-color !important;
982
+ font-size: 1.2rem !important;
983
+ font-weight: 700 !important;
984
+ }
985
+ }
986
+
987
+ .mat-calendar-body-cell {
988
+ @include user-select(none);
989
+
990
+ font-family: $font-family !important;
991
+ font-size: 1.2rem !important;
992
+ color: $font-color !important;
993
+
994
+ .mat-calendar-body-cell-content {
995
+ border-radius: 0.4rem !important;
996
+ --mat-datepicker-calendar-date-outline-color: transparent;
997
+ // --mat-datepicker-calendar-date-hover-state-background-color: #{get-color($theme, white, 100)};
998
+
999
+ &.mat-calendar-body-selected {
1000
+ // --mat-datepicker-calendar-date-hover-state-background-color: #{get-color($theme, white, 100)};
1001
+ --mat-datepicker-calendar-date-selected-state-background-color: #{get-color(
1002
+ $theme,
1003
+ primary,
1004
+ 500
1005
+ )};
1006
+ --mat-datepicker-calendar-date-selected-state-text-color: #{get-color(
1007
+ $theme,
1008
+ white,
1009
+ 100
1010
+ )};
1011
+ --mat-datepicker-calendar-date-today-outline-color: #{get-color($theme, white, 100)};
1012
+ --mat-datepicker-calendar-date-today-selected-state-outline-color: #{get-color(
1013
+ $theme,
1014
+ white,
1015
+ 100
1016
+ )};
1017
+ --mat-datepicker-calendar-date-text-color: #{get-color($theme, white, 100)};
1018
+
1019
+ &.mat-calendar-body-today {
1020
+ box-shadow: inset 0 0 0 1px #{get-color($theme, white, 100)} !important;
1021
+ }
1022
+ }
1023
+
1024
+ &:not(.mat-calendar-body-selected) {
1025
+ --mat-datepicker-calendar-date-selected-state-background-color: #{get-color(
1026
+ $theme,
1027
+ white,
1028
+ 400
1029
+ )};
1030
+ --mat-datepicker-calendar-date-selected-state-text-color: #{$font-color};
1031
+ --mat-datepicker-calendar-date-today-outline-color: #{get-color(
1032
+ $theme,
1033
+ primary,
1034
+ 500
1035
+ )};
1036
+ --mat-datepicker-calendar-date-today-selected-state-outline-color: #{get-color(
1037
+ $theme,
1038
+ primary,
1039
+ 500
1040
+ )};
1041
+ --mat-datepicker-calendar-date-text-color: #{$font-color};
1042
+
1043
+ &.mat-calendar-body-today {
1044
+ --mat-datepicker-calendar-date-hover-state-background-color: #{get-color(
1045
+ $theme,
1046
+ primary,
1047
+ 500
1048
+ )};
1049
+ --mat-datepicker-calendar-date-today-outline-color: #{get-color(
1050
+ $theme,
1051
+ primary,
1052
+ 500
1053
+ )};
1054
+ --mat-datepicker-calendar-date-text-color: #{get-color($theme, primary, 500)};
1055
+
1056
+ &:hover {
1057
+ --mat-datepicker-calendar-date-today-outline-color: #{get-color(
1058
+ $theme,
1059
+ primary,
1060
+ 500
1061
+ )};
1062
+ --mat-datepicker-calendar-date-hover-state-background-color: #{get-color(
1063
+ $theme,
1064
+ white,
1065
+ 100
1066
+ )};
1067
+ --mat-datepicker-calendar-date-text-color: #{get-color($theme, white, 100)} !important;
1068
+ }
1069
+ }
1070
+ }
1071
+ }
1072
+
1073
+ // &:not(.mat-calendar-body-in-range) .mat-calendar-body-cell-content {
1074
+ // background-color: #{get-color($theme, white, 400)} !important;
1075
+ // }
1076
+
1077
+ &.mat-calendar-body-in-preview.mat-calendar-body-in-preview-start,
1078
+ &.mat-calendar-body-in-preview.mat-calendar-body-in-preview-end {
1079
+ .mat-calendar-body-cell-content {
1080
+ --mat-datepicker-calendar-date-text-color: #{get-color($theme, white, 100)} !important;
1081
+
1082
+ background-color: #{get-color($theme, primary, 500)} !important;
1083
+ color: #{get-color($theme, white, 100)} !important;
1084
+ }
1085
+ }
1086
+
1087
+ &.mat-calendar-body-in-range {
1088
+ &::before {
1089
+ background-color: #{get-color($theme, pastels, primary)} !important;
1090
+ }
1091
+
1092
+ .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {
1093
+ background-color: transparent !important;
1094
+ }
1095
+ }
1096
+
1097
+ // &.mat-calendar-body-in-range {
1098
+ // &.mat-calendar-body-active.mat-calendar-body-range-start,
1099
+ // &.mat-calendar-body-active.mat-calendar-body-range-end {
1100
+ // .mat-calendar-body-cell-content {
1101
+ // background-color: #{get-color($theme, primary, 500)} !important;
1102
+ // color: #{get-color($theme, white, 100)} !important;
1103
+ // }
1104
+ // }
1105
+ // }
1106
+ }
1107
+
1108
+ // .mat-calendar-body-cell.mat-calendar-body-in-range {
1109
+ // &.mat-calendar-body-active {
1110
+ // &::before {
1111
+ // background: #{get-color($theme, pastels, primary)} !important;
1112
+ // }
1113
+
1114
+ // .mat-calendar-body-cell-content {
1115
+ // background-color: transparent !important;
1116
+ // color: $font-color !important;
1117
+ // }
1118
+ // }
1119
+
1120
+ // &.mat-calendar-body-selected .mat-calendar-body-cell-content {
1121
+ // background-color: #{get-color($theme, primary, 500)} !important;
1122
+ // color: #{get-color($theme, white, 100)} !important;
1123
+ // }
1124
+ // }
1125
+
1126
+ // .mat-calendar-body-cell:not(.mat-calendar-body-in-range) {
1127
+ // .mat-calendar-body-cell-content {
1128
+ // color: $font-color !important;
1129
+ // border-radius: 0.4rem !important;
1130
+ // background-color: #{get-color($theme, white, 400)} !important;
1131
+
1132
+ // &.mat-calendar-body-selected {
1133
+ // background-color: #{get-color($theme, primary, 500)} !important;
1134
+ // color: #{get-color($theme, white, 100)} !important;
1135
+ // }
1136
+
1137
+ // &.mat-calendar-body-today:not(.mat-calendar-body-selected) {
1138
+ // background-color: #{get-color($theme, primary, 50)} !important;
1139
+ // border-color: #{get-color($theme, primary, 500)} !important;
1140
+ // color: #{get-color($theme, primary, 500)} !important;
1141
+ // }
1142
+
1143
+ // &.mat-calendar-body-selected.mat-calendar-body-today {
1144
+ // box-shadow: inset 0 0 0 1px #{get-color($theme, white, 100)} !important;
1145
+ // }
1146
+ // }
1147
+
1148
+ // &:not(.mat-calendar-body-disabled):hover {
1149
+ // .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),
1150
+ // .mat-calendar-body-cell-content:not(.mat-calendar-body-today) {
1151
+ // background-color: #{get-color($theme, secondary, 100)} !important;
1152
+ // }
1153
+
1154
+ // .mat-calendar-body-cell-content.mat-calendar-body-today {
1155
+ // background-color: #{get-color($theme, primary, 100)} !important;
1156
+ // }
1157
+
1158
+ // .mat-calendar-body-cell-content.mat-calendar-body-selected {
1159
+ // background-color: #{get-color($theme, primary, 600)} !important;
1160
+ // }
1161
+ // }
1162
+ // }
1163
+
1164
+ .mat-calendar-body-label {
1165
+ font-size: 1.2rem !important;
1166
+ font-weight: 400 !important;
1167
+ padding-inline: 0.4rem !important;
1168
+ color: $font-color !important;
1169
+ text-transform: capitalize !important;
1170
+ }
1171
+ }
1172
+
1173
+ @mixin mat-radio-button-reset($theme: ()) {
1174
+ $font-family: get-font-family($theme);
1175
+ $font-size: get-font-size($theme);
1176
+ $font-color: get-font-color($theme);
1177
+ $secondary-300: get-color($theme, secondary, 300);
1178
+ $primary-500: get-color($theme, primary, 500);
1179
+
1180
+ .mat-mdc-radio-button {
1181
+ display: flex;
1182
+ align-items: center;
1183
+ justify-content: center;
1184
+ }
1185
+
1186
+ .mat-mdc-radio-button .mat-internal-form-field,
1187
+ .mat-mdc-radio-button .mdc-form-field {
1188
+ .mdc-label,
1189
+ .mdc-form-field {
1190
+ color: $font-color !important;
1191
+ font-family: $font-family !important;
1192
+ font-size: $font-size !important;
1193
+ line-height: 1.8rem !important;
1194
+ letter-spacing: normal !important;
1195
+ font-weight: 400 !important;
1196
+ cursor: pointer !important;
1197
+ }
1198
+
1199
+ .mdc-label {
1200
+ padding-left: 0 !important;
1201
+ }
1202
+
1203
+ .mdc-radio {
1204
+ width: 1.8rem !important;
1205
+ height: 1.8rem !important;
1206
+ padding: 0 !important;
1207
+ padding-right: 1rem !important;
1208
+
1209
+ .mat-mdc-radio-touch-target {
1210
+ display: none !important;
1211
+ }
1212
+
1213
+ .mdc-radio__native-control {
1214
+ width: 1.8rem !important;
1215
+ height: 1.8rem !important;
1216
+ }
1217
+
1218
+ .mdc-radio__background {
1219
+ width: 1.8rem !important;
1220
+ height: 1.8rem !important;
1221
+ color: transparent !important;
1222
+
1223
+ &::before {
1224
+ display: none !important;
1225
+ }
1226
+ }
1227
+
1228
+ .mat-ripple {
1229
+ display: none !important;
1230
+ }
1231
+ }
1232
+ }
1233
+
1234
+ .mat-mdc-radio-button .mdc-radio__inner-circle {
1235
+ top: -1px !important;
1236
+ left: -1px !important;
1237
+ }
1238
+
1239
+ .mat-mdc-radio-button
1240
+ .mdc-radio__native-control:enabled:not(:checked)
1241
+ + .mdc-radio__background
1242
+ > .mdc-radio__outer-circle {
1243
+ border-color: $secondary-300 !important;
1244
+ }
1245
+
1246
+ .mat-mdc-radio-button
1247
+ .mdc-radio__native-control:enabled:checked
1248
+ + .mdc-radio__background
1249
+ > .mdc-radio__outer-circle,
1250
+ .mat-mdc-radio-button
1251
+ .mdc-radio__native-control:enabled:checked
1252
+ + .mdc-radio__background
1253
+ > .mdc-radio__inner-circle {
1254
+ border-color: $primary-500 !important;
1255
+ }
1256
+ }
1257
+
1258
+ @mixin mat-badge-reset($theme: ()) {
1259
+ $font-family: get-font-family($theme);
1260
+ $font-size: get-font-size($theme);
1261
+ $white-100: get-color($theme, white, 100);
1262
+ $primary-500: get-color($theme, primary, 500);
1263
+
1264
+ .mat-badge-content {
1265
+ background-color: $primary-500 !important;
1266
+ color: $white-100 !important;
1267
+ font-family: $font-family !important;
1268
+ font-weight: 700 !important;
1269
+ font-size: 1.2rem !important;
1270
+ padding: 0 4px !important;
1271
+ }
1272
+
1273
+ .mat-badge-small .mat-badge-content {
1274
+ &.mat-badge-overlap .mat-badge-content {
1275
+ margin: -0.5rem !important;
1276
+ }
1277
+
1278
+ width: 1rem !important;
1279
+ height: 1rem !important;
1280
+ min-width: 1rem !important;
1281
+ min-height: 1rem !important;
1282
+ line-height: 1rem !important;
1283
+ }
1284
+
1285
+ .mat-badge-medium {
1286
+ &.mat-badge-overlap .mat-badge-content {
1287
+ margin: -0.8rem !important;
1288
+ }
1289
+
1290
+ .mat-badge-content {
1291
+ width: 1.4rem !important;
1292
+ height: 1.4rem !important;
1293
+ min-width: 1.4rem !important;
1294
+ min-height: 1.4rem !important;
1295
+ line-height: 1.4rem !important;
1296
+ }
1297
+ }
1298
+
1299
+ .mat-badge-large .mat-badge-content {
1300
+ &.mat-badge-overlap .mat-badge-content {
1301
+ margin: -1rem !important;
1302
+ }
1303
+
1304
+ width: 1.8rem !important;
1305
+ height: 1.8rem !important;
1306
+ min-width: 1.8rem !important;
1307
+ min-height: 1.8rem !important;
1308
+ line-height: 1.8rem !important;
1309
+ }
1310
+ }
1311
+
1312
+ @mixin field-label($theme: ()) {
1313
+ $font-family: get-font-family($theme);
1314
+ $font-size: get-font-size($theme);
1315
+ $font-color: get-font-color($theme);
1316
+
1317
+ $black-300: get-color($theme, black, 300);
1318
+ $danger-500: get-color($theme, danger, 500);
1319
+
1320
+ font-family: $font-family;
1321
+ font-size: $font-size;
1322
+ line-height: $font-size;
1323
+ color: $font-color;
1324
+
1325
+ display: flex;
1326
+ align-items: flex-start;
1327
+ gap: 0.2rem;
1328
+
1329
+ > span {
1330
+ color: $danger-500;
1331
+ }
1332
+ }
1333
+
1334
+ // ---------------------------------------------------------------------------------------------------------------
1335
+ // | Classe | Significado | Muda Quando? |
1336
+ // ---------------------------------------------------------------------------------------------------------------
1337
+ // | ng-untouched | O usuário ainda não tocou o campo. | Quando o usuário clica no campo e sai. |
1338
+ // | ng-touched | O usuário tocou e saiu do campo. | Assim que o usuário sair do campo. |
1339
+ // | ng-pristine | O campo não foi modificado. | Assim que o usuário alterar o valor. |
1340
+ // | ng-dirty | O campo foi modificado. | Assim que o usuário digita algo. |
1341
+ // | ng-valid | O campo passou nas validações. | Quando todas as regras de validação forem atendidas. |
1342
+ // | ng-invalid | O campo falhou em alguma validação. | Quando alguma regra de validação falha. |
1343
+ // ---------------------------------------------------------------------------------------------------------------
1344
+ @mixin input-base($theme: ()) {
1345
+ $font-family: get-font-family($theme);
1346
+ $font-size: get-font-size($theme);
1347
+ $font-color: get-font-color($theme);
1348
+ $input-field-height: 3.6rem;
1349
+
1350
+ $white-100: get-color($theme, white, 100);
1351
+
1352
+ // Not disabled
1353
+ $black-300: get-color($theme, black, 300);
1354
+ $black-400: get-color($theme, black, 400);
1355
+
1356
+ // Disabled
1357
+ $secondary-50: get-color($theme, secondary, 50);
1358
+ $secondary-200: get-color($theme, secondary, 200);
1359
+ $secondary-300: get-color($theme, secondary, 300);
1360
+
1361
+ flex: 1 1 100%;
1362
+ display: flex;
1363
+ align-items: center;
1364
+ gap: 1rem;
1365
+ padding: 0 1rem;
1366
+ width: 100%;
1367
+ height: $input-field-height;
1368
+ font-family: $font-family;
1369
+ font-size: $font-size;
1370
+ line-height: 130%;
1371
+ color: $font-color;
1372
+ background-color: $white-100;
1373
+ background-image: none;
1374
+ vertical-align: middle;
1375
+ border: 1px solid $black-400;
1376
+ border-radius: 4px;
1377
+ outline: 0;
1378
+ overflow: hidden;
1379
+ transition:
1380
+ border-color ease-in-out 0.15s,
1381
+ box-shadow ease-in-out 0.15s;
1382
+
1383
+ // Para quando o próprio input usa o mixin
1384
+ &:not(:disabled):hover {
1385
+ border-color: $black-300;
1386
+ }
1387
+
1388
+ &:not(:disabled):focus-within,
1389
+ &:not(:disabled):focus {
1390
+ border-color: $black-300;
1391
+ box-shadow:
1392
+ inset 0 1px 1px rgba(0, 0, 0, 0.075),
1393
+ 0 0 8px rgba(101, 101, 101, 0.6);
1394
+ }
1395
+
1396
+ &:disabled {
1397
+ @include user-select(none);
1398
+ cursor: not-allowed !important;
1399
+ background-color: $secondary-50 !important;
1400
+ color: $secondary-300 !important;
1401
+ border-color: $secondary-200 !important;
1402
+ }
1403
+
1404
+ // Para elementos que CONTÊM um input
1405
+ &:has(input:not(:disabled)):hover {
1406
+ border-color: $black-300;
1407
+ }
1408
+
1409
+ &:has(input:not(:disabled)):focus-within,
1410
+ &:has(input:not(:disabled)):focus {
1411
+ border-color: $black-300;
1412
+ box-shadow:
1413
+ inset 0 1px 1px rgba(0, 0, 0, 0.075),
1414
+ 0 0 6px rgba(150, 150, 150, 0.6);
1415
+ }
1416
+
1417
+ &:has(input:disabled) {
1418
+ @include user-select(none);
1419
+ cursor: not-allowed !important;
1420
+ background-color: $secondary-50 !important;
1421
+ color: $secondary-300 !important;
1422
+ border-color: $secondary-200 !important;
1423
+ }
1424
+ }