crdx-components 1.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 (128) hide show
  1. package/.github/workflows/publish.yml +38 -0
  2. package/bun.lock +491 -0
  3. package/crdx-components-1.0.0.tgz +0 -0
  4. package/crdx-components-tokenized-components-1.0.1.tgz +0 -0
  5. package/ng-package.json +12 -0
  6. package/npm +0 -0
  7. package/package.json +33 -0
  8. package/src/index.ts +45 -0
  9. package/src/lib/components/breadcrumb/breadcrumb.component.css +206 -0
  10. package/src/lib/components/breadcrumb/breadcrumb.component.html +15 -0
  11. package/src/lib/components/breadcrumb/breadcrumb.component.ts +47 -0
  12. package/src/lib/components/button/button.css +371 -0
  13. package/src/lib/components/button/button.html +187 -0
  14. package/src/lib/components/button/button.ts +103 -0
  15. package/src/lib/components/card/card.css +285 -0
  16. package/src/lib/components/card/card.html +69 -0
  17. package/src/lib/components/card/card.ts +93 -0
  18. package/src/lib/components/checkbox/checkbox-showcase.component.css +42 -0
  19. package/src/lib/components/checkbox/checkbox-showcase.component.html +36 -0
  20. package/src/lib/components/checkbox/checkbox-showcase.component.ts +13 -0
  21. package/src/lib/components/checkbox/checkbox.css +10 -0
  22. package/src/lib/components/checkbox/checkbox.html +13 -0
  23. package/src/lib/components/checkbox/checkbox.ts +64 -0
  24. package/src/lib/components/circular-progress-stepper/circular-progress-stepper.css +89 -0
  25. package/src/lib/components/circular-progress-stepper/circular-progress-stepper.html +23 -0
  26. package/src/lib/components/circular-progress-stepper/circular-progress-stepper.ts +40 -0
  27. package/src/lib/components/dialogs/alert-modal/alert-modal.css +118 -0
  28. package/src/lib/components/dialogs/alert-modal/alert-modal.html +29 -0
  29. package/src/lib/components/dialogs/alert-modal/alert-modal.ts +28 -0
  30. package/src/lib/components/dialogs/confirm-modal/confirm-modal.css +219 -0
  31. package/src/lib/components/dialogs/confirm-modal/confirm-modal.html +60 -0
  32. package/src/lib/components/dialogs/confirm-modal/confirm-modal.store.ts +139 -0
  33. package/src/lib/components/dialogs/confirm-modal/confirm-modal.ts +63 -0
  34. package/src/lib/components/dialogs/container-custom/container-custom.css +11 -0
  35. package/src/lib/components/dialogs/container-custom/container-custom.html +3 -0
  36. package/src/lib/components/dialogs/container-custom/container-custom.ts +37 -0
  37. package/src/lib/components/dialogs/container-custom/custom-modal.state.ts +57 -0
  38. package/src/lib/components/dialogs/error-modal/error-modal.css +53 -0
  39. package/src/lib/components/dialogs/error-modal/error-modal.html +17 -0
  40. package/src/lib/components/dialogs/error-modal/error-modal.ts +20 -0
  41. package/src/lib/components/dialogs/side-modal/side-modal.css +80 -0
  42. package/src/lib/components/dialogs/side-modal/side-modal.html +30 -0
  43. package/src/lib/components/dialogs/side-modal/side-modal.state.ts +78 -0
  44. package/src/lib/components/dialogs/side-modal/side-modal.ts +50 -0
  45. package/src/lib/components/divider/divider.css +24 -0
  46. package/src/lib/components/divider/divider.html +7 -0
  47. package/src/lib/components/divider/divider.ts +13 -0
  48. package/src/lib/components/footer-actions/footer/footer-flow.store.ts +30 -0
  49. package/src/lib/components/footer-actions/footer/footer.html +14 -0
  50. package/src/lib/components/footer-actions/footer/footer.ts +50 -0
  51. package/src/lib/components/footer-actions/modal-footer-actions/modal-footer-actions.css +44 -0
  52. package/src/lib/components/footer-actions/modal-footer-actions/modal-footer-actions.html +7 -0
  53. package/src/lib/components/footer-actions/modal-footer-actions/modal-footer-actions.ts +12 -0
  54. package/src/lib/components/footer-actions/page-footer-actions/page-footer-actions.css +31 -0
  55. package/src/lib/components/footer-actions/page-footer-actions/page-footer-actions.html +7 -0
  56. package/src/lib/components/footer-actions/page-footer-actions/page-footer-actions.ts +12 -0
  57. package/src/lib/components/form-field/select-field.css +178 -0
  58. package/src/lib/components/form-field/select-field.html +94 -0
  59. package/src/lib/components/form-field/select-field.ts +324 -0
  60. package/src/lib/components/form-field/text-field.css +41 -0
  61. package/src/lib/components/form-field/text-field.html +38 -0
  62. package/src/lib/components/form-field/text-field.ts +102 -0
  63. package/src/lib/components/header/header.css +142 -0
  64. package/src/lib/components/header/header.html +36 -0
  65. package/src/lib/components/header/header.ts +101 -0
  66. package/src/lib/components/icon-button/icon-button.css +445 -0
  67. package/src/lib/components/icon-button/icon-button.html +15 -0
  68. package/src/lib/components/icon-button/icon-button.ts +49 -0
  69. package/src/lib/components/list-item/list-item.css +122 -0
  70. package/src/lib/components/list-item/list-item.html +79 -0
  71. package/src/lib/components/list-item/list-item.ts +104 -0
  72. package/src/lib/components/menu/menu.css +39 -0
  73. package/src/lib/components/menu/menu.html +57 -0
  74. package/src/lib/components/menu/menu.ts +159 -0
  75. package/src/lib/components/shared-table/shared-table-cell-template.directive.ts +25 -0
  76. package/src/lib/components/shared-table/shared-table.component.css +223 -0
  77. package/src/lib/components/shared-table/shared-table.component.html +96 -0
  78. package/src/lib/components/shared-table/shared-table.component.ts +172 -0
  79. package/src/lib/components/sidebar/sidebar.css +234 -0
  80. package/src/lib/components/sidebar/sidebar.html +67 -0
  81. package/src/lib/components/sidebar/sidebar.ts +92 -0
  82. package/src/lib/components/slide-toggle/slide-toggle.css +0 -0
  83. package/src/lib/components/slide-toggle/slide-toggle.html +3 -0
  84. package/src/lib/components/slide-toggle/slide-toggle.ts +18 -0
  85. package/src/lib/components/spinner/spinner.css +9 -0
  86. package/src/lib/components/spinner/spinner.html +9 -0
  87. package/src/lib/components/spinner/spinner.ts +17 -0
  88. package/src/lib/components/tooltip/tooltip.css +32 -0
  89. package/src/lib/components/tooltip/tooltip.html +3 -0
  90. package/src/lib/components/tooltip/tooltip.ts +31 -0
  91. package/src/lib/icons/configuration-countable.svg +8 -0
  92. package/src/lib/icons/edit-table.svg +3 -0
  93. package/src/lib/icons/edit.svg +3 -0
  94. package/src/lib/icons/error-circle.svg +8 -0
  95. package/src/lib/icons/hub.svg +3 -0
  96. package/src/lib/icons/icon-menu.svg +8 -0
  97. package/src/lib/icons/info-error.svg +8 -0
  98. package/src/lib/icons/keyboard_arrow_down.svg +1 -0
  99. package/src/lib/icons/logo.svg +0 -0
  100. package/src/lib/icons/logout.svg +0 -0
  101. package/src/lib/icons/notifications.svg +0 -0
  102. package/src/lib/icons/profile-user-menu.svg +0 -0
  103. package/src/lib/icons/profile.svg +0 -0
  104. package/src/lib/icons/register-icons.ts +101 -0
  105. package/src/lib/icons/visibility.svg +0 -0
  106. package/src/lib/lib-ui/lib-ui.html +1 -0
  107. package/src/lib/lib-ui/lib-ui.scss +0 -0
  108. package/src/lib/lib-ui/lib-ui.ts +9 -0
  109. package/src/lib/styles/generated/_app-tokens.scss +2757 -0
  110. package/src/lib/styles/generated/_md3-tokens.scss +179 -0
  111. package/src/lib/styles/generated/_tokens-avatars.scss +4 -0
  112. package/src/lib/styles/global-material-theme.scss +69 -0
  113. package/src/lib/styles/index.scss +16 -0
  114. package/src/lib/styles/layout.scss +29 -0
  115. package/src/lib/styles/overrides/_index.scss +11 -0
  116. package/src/lib/styles/overrides/_mat-button-overrides.scss +105 -0
  117. package/src/lib/styles/overrides/_mat-checkbox-overrides.scss +49 -0
  118. package/src/lib/styles/overrides/_mat-form-field-overrides.scss +148 -0
  119. package/src/lib/styles/overrides/_mat-icon-button-overrides.scss +20 -0
  120. package/src/lib/styles/overrides/_mat-list-overrides.scss +59 -0
  121. package/src/lib/styles/overrides/_mat-slide-toggle-overrides.scss +33 -0
  122. package/src/lib/styles/overrides/_mat-table-overrides.scss +259 -0
  123. package/src/lib/styles/overrides/_mat-tabs-overrides.scss +116 -0
  124. package/src/lib/styles/scrollbar.scss +40 -0
  125. package/src/lib/styles/text-classes.scss +116 -0
  126. package/src/lib/styles/typography.scss +14 -0
  127. package/tsconfig.json +30 -0
  128. package/tsconfig.lib.json +20 -0
@@ -0,0 +1,179 @@
1
+ /*
2
+ * Auto-generado: node shared/lib-ui/scripts/generate-tokens-resolved.cjs
3
+ * M3 bridge: mapea tokens de Material 3 a las variables resueltas de tokens-by-component.
4
+ * --pallete-scheme-* → _tokens-pallete-scheme.scss
5
+ * --typescale-* → _tokens-typescale.scss
6
+ * --shape-* → _tokens-shape.scss
7
+ * --elevation-* → _tokens-elevation.scss
8
+ */
9
+
10
+ :root {
11
+ /* --- Sys Colors (Material 3) --- */
12
+ --md-sys-color-primary: var(--pallete-scheme-primary-primary);
13
+ --md-sys-color-on-primary: var(--pallete-scheme-primary-on-primary);
14
+ --md-sys-color-primary-container: var(--pallete-scheme-primary-primary-container);
15
+ --md-sys-color-on-primary-container: var(--pallete-scheme-primary-on-primary-container);
16
+ --md-sys-color-inverse-primary: var(--pallete-scheme-primary-inverse-primary);
17
+
18
+ --md-sys-color-secondary: var(--pallete-scheme-secondary-secondary);
19
+ --md-sys-color-on-secondary: var(--pallete-scheme-secondary-on-secondary);
20
+ --md-sys-color-secondary-container: var(--pallete-scheme-secondary-secondary-container);
21
+ --md-sys-color-on-secondary-container: var(--pallete-scheme-secondary-on-secondary-container);
22
+
23
+ --md-sys-color-tertiary: var(--pallete-scheme-tertiary-tertiary);
24
+ --md-sys-color-on-tertiary: var(--pallete-scheme-tertiary-on-tertiary);
25
+ --md-sys-color-tertiary-container: var(--pallete-scheme-tertiary-tertiary-container);
26
+ --md-sys-color-on-tertiary-container: var(--pallete-scheme-tertiary-on-tertiary-container);
27
+
28
+ --md-sys-color-error: var(--pallete-scheme-error-error);
29
+ --md-sys-color-on-error: var(--pallete-scheme-error-on-error);
30
+ --md-sys-color-error-container: var(--pallete-scheme-error-error-container);
31
+ --md-sys-color-on-error-container: var(--pallete-scheme-error-on-error-container);
32
+
33
+ --md-sys-color-surface: var(--pallete-scheme-primary-on-primary);
34
+ --md-sys-color-surface-dim: var(--pallete-scheme-surface-surface-dim);
35
+ --md-sys-color-surface-bright: var(--pallete-scheme-surface-surface-bright);
36
+ --md-sys-color-surface-container-lowest: var(--pallete-scheme-surface-surface-container-lowest);
37
+ --md-sys-color-surface-container-low: var(--pallete-scheme-surface-surface-container-low);
38
+ --md-sys-color-surface-container: var(--pallete-scheme-surface-surface-container);
39
+ --md-sys-color-surface-container-high: var(--pallete-scheme-surface-surface-container-high);
40
+ --md-sys-color-surface-container-highest: var(--pallete-scheme-surface-surface-container-highest);
41
+ --md-sys-color-on-surface: var(--pallete-scheme-surface-on-surface);
42
+ --md-sys-color-on-surface-variant: var(--pallete-scheme-surface-on-surface-variant);
43
+ --md-sys-color-outline: var(--pallete-scheme-surface-outline);
44
+ --md-sys-color-outline-variant: var(--pallete-scheme-surface-outline-variant);
45
+ --md-sys-color-scrim: var(--pallete-scheme-surface-scrim);
46
+ --md-sys-color-shadow: var(--pallete-scheme-surface-shadow);
47
+ --md-sys-color-inverse-surface: var(--pallete-scheme-surface-inverse-surface);
48
+ --md-sys-color-inverse-on-surface: var(--pallete-scheme-surface-inverse-on-surface);
49
+ --md-sys-color-surface-tint: var(--pallete-scheme-primary-primary);
50
+
51
+ /* --- Custom semantic colors (no estándar M3) --- */
52
+ --app-color-warning: var(--pallete-scheme-warning-warning);
53
+ --app-color-on-warning: var(--pallete-scheme-warning-on-warning);
54
+ --app-color-warning-container: var(--pallete-scheme-warning-warning-container);
55
+ --app-color-on-warning-container: var(--pallete-scheme-warning-on-warning-container);
56
+
57
+ --app-color-success: var(--pallete-scheme-success-success);
58
+ --app-color-on-success: var(--pallete-scheme-success-on-success);
59
+ --app-color-success-container: var(--pallete-scheme-success-success-container);
60
+ --app-color-on-success-container: var(--pallete-scheme-success-on-success-container);
61
+
62
+ --app-color-information: var(--pallete-scheme-information-information);
63
+ --app-color-on-information: var(--pallete-scheme-information-on-information);
64
+ --app-color-information-container: var(--pallete-scheme-information-information-container);
65
+ --app-color-on-information-container: var(--pallete-scheme-information-on-information-container);
66
+
67
+ --app-color-link: var(--pallete-scheme-link-link);
68
+ --app-color-on-link: var(--pallete-scheme-link-on-link);
69
+ --app-color-link-container: var(--pallete-scheme-link-link-container);
70
+ --app-color-on-link-container: var(--pallete-scheme-link-on-link-container);
71
+
72
+ /* --- Sys Typography (Material 3) --- */
73
+ --md-sys-typescale-display-large-font: var(--typescale-display-large-font);
74
+ --md-sys-typescale-display-large-weight: var(--typescale-display-large-weight);
75
+ --md-sys-typescale-display-large-size: var(--typescale-display-large-size);
76
+ --md-sys-typescale-display-large-line-height: calc(var(--typescale-display-large-line-height) * 1px);
77
+ --md-sys-typescale-display-large-tracking: var(--typescale-display-large-tracking);
78
+
79
+ --md-sys-typescale-display-medium-font: var(--typescale-display-medium-font);
80
+ --md-sys-typescale-display-medium-weight: var(--typescale-display-medium-weight);
81
+ --md-sys-typescale-display-medium-size: var(--typescale-display-medium-size);
82
+ --md-sys-typescale-display-medium-line-height: calc(var(--typescale-display-medium-line-height) * 1px);
83
+ --md-sys-typescale-display-medium-tracking: var(--typescale-display-medium-tracking);
84
+
85
+ --md-sys-typescale-display-small-font: var(--typescale-display-small-font);
86
+ --md-sys-typescale-display-small-weight: var(--typescale-display-small-weight);
87
+ --md-sys-typescale-display-small-size: var(--typescale-display-small-size);
88
+ --md-sys-typescale-display-small-line-height: calc(var(--typescale-display-small-line-height) * 1px);
89
+ --md-sys-typescale-display-small-tracking: var(--typescale-display-small-tracking);
90
+
91
+ --md-sys-typescale-headline-large-font: var(--typescale-headline-large-font);
92
+ --md-sys-typescale-headline-large-weight: var(--typescale-headline-large-weight);
93
+ --md-sys-typescale-headline-large-size: var(--typescale-headline-large-size);
94
+ --md-sys-typescale-headline-large-line-height: calc(var(--typescale-headline-large-line-height) * 1px);
95
+ --md-sys-typescale-headline-large-tracking: var(--typescale-headline-large-tracking);
96
+
97
+ --md-sys-typescale-headline-medium-font: var(--typescale-headline-medium-font);
98
+ --md-sys-typescale-headline-medium-weight: var(--typescale-headline-medium-weight);
99
+ --md-sys-typescale-headline-medium-size: var(--typescale-headline-medium-size);
100
+ --md-sys-typescale-headline-medium-line-height: calc(var(--typescale-headline-medium-line-height) * 1px);
101
+ --md-sys-typescale-headline-medium-tracking: var(--typescale-headline-medium-tracking);
102
+
103
+ --md-sys-typescale-headline-small-font: var(--typescale-headline-small-font);
104
+ --md-sys-typescale-headline-small-weight: var(--typescale-headline-small-weight);
105
+ --md-sys-typescale-headline-small-size: var(--typescale-headline-small-size);
106
+ --md-sys-typescale-headline-small-line-height: calc(var(--typescale-headline-small-line-height) * 1px);
107
+ --md-sys-typescale-headline-small-tracking: var(--typescale-headline-small-tracking);
108
+
109
+ --md-sys-typescale-title-large-font: var(--typescale-title-large-font);
110
+ --md-sys-typescale-title-large-weight: var(--typescale-title-large-weight);
111
+ --md-sys-typescale-title-large-size: var(--typescale-title-large-size);
112
+ --md-sys-typescale-title-large-line-height: calc(var(--typescale-title-large-line-height) * 1px);
113
+ --md-sys-typescale-title-large-tracking: var(--typescale-title-large-tracking);
114
+
115
+ --md-sys-typescale-title-medium-font: var(--typescale-title-medium-font);
116
+ --md-sys-typescale-title-medium-weight: var(--typescale-title-medium-weight);
117
+ --md-sys-typescale-title-medium-size: var(--typescale-title-medium-size);
118
+ --md-sys-typescale-title-medium-line-height: calc(var(--typescale-title-medium-line-height) * 1px);
119
+ --md-sys-typescale-title-medium-tracking: var(--typescale-title-medium-tracking);
120
+
121
+ --md-sys-typescale-title-small-font: var(--typescale-title-small-font);
122
+ --md-sys-typescale-title-small-weight: var(--typescale-title-small-weight);
123
+ --md-sys-typescale-title-small-size: var(--typescale-title-small-size);
124
+ --md-sys-typescale-title-small-line-height: calc(var(--typescale-title-small-line-height) * 1px);
125
+ --md-sys-typescale-title-small-tracking: var(--typescale-title-small-tracking);
126
+
127
+ --md-sys-typescale-label-large-font: var(--typescale-label-large-font);
128
+ --md-sys-typescale-label-large-weight: var(--typescale-label-large-weight);
129
+ --md-sys-typescale-label-large-size: var(--typescale-label-large-size);
130
+ --md-sys-typescale-label-large-line-height: calc(var(--typescale-label-large-line-height) * 1px);
131
+ --md-sys-typescale-label-large-tracking: var(--typescale-label-large-tracking);
132
+
133
+ --md-sys-typescale-label-medium-font: var(--typescale-label-medium-font);
134
+ --md-sys-typescale-label-medium-weight: var(--typescale-label-medium-weight);
135
+ --md-sys-typescale-label-medium-size: var(--typescale-label-medium-size);
136
+ --md-sys-typescale-label-medium-line-height: calc(var(--typescale-label-medium-line-height) * 1px);
137
+ --md-sys-typescale-label-medium-tracking: var(--typescale-label-medium-tracking);
138
+
139
+ --md-sys-typescale-label-small-font: var(--typescale-label-small-font);
140
+ --md-sys-typescale-label-small-weight: var(--typescale-label-small-weight);
141
+ --md-sys-typescale-label-small-size: var(--typescale-label-small-size);
142
+ --md-sys-typescale-label-small-line-height: calc(var(--typescale-label-small-line-height) * 1px);
143
+ --md-sys-typescale-label-small-tracking: var(--typescale-label-small-tracking);
144
+
145
+ --md-sys-typescale-body-large-font: var(--typescale-body-large-font);
146
+ --md-sys-typescale-body-large-weight: var(--typescale-body-large-weight);
147
+ --md-sys-typescale-body-large-size: var(--typescale-body-large-size);
148
+ --md-sys-typescale-body-large-line-height: calc(var(--typescale-body-large-line-height) * 1px);
149
+ --md-sys-typescale-body-large-tracking: var(--typescale-body-large-tracking);
150
+
151
+ --md-sys-typescale-body-medium-font: var(--typescale-body-medium-font);
152
+ --md-sys-typescale-body-medium-weight: var(--typescale-body-medium-weight);
153
+ --md-sys-typescale-body-medium-size: var(--typescale-body-medium-size);
154
+ --md-sys-typescale-body-medium-line-height: calc(var(--typescale-body-medium-line-height) * 1px);
155
+ --md-sys-typescale-body-medium-tracking: var(--typescale-body-medium-tracking);
156
+
157
+ --md-sys-typescale-body-small-font: var(--typescale-body-small-font);
158
+ --md-sys-typescale-body-small-weight: var(--typescale-body-small-weight);
159
+ --md-sys-typescale-body-small-size: var(--typescale-body-small-size);
160
+ --md-sys-typescale-body-small-line-height: calc(var(--typescale-body-small-line-height) * 1px);
161
+ --md-sys-typescale-body-small-tracking: var(--typescale-body-small-tracking);
162
+
163
+ /* --- Sys Shape --- */
164
+ --md-sys-shape-corner-none: calc(var(--shape-none) * 1px);
165
+ --md-sys-shape-corner-extra-small: calc(var(--shape-extra-small) * 1px);
166
+ --md-sys-shape-corner-small: calc(var(--shape-small) * 1px);
167
+ --md-sys-shape-corner-medium: calc(var(--shape-medium) * 1px);
168
+ --md-sys-shape-corner-large: calc(var(--shape-large) * 1px);
169
+ --md-sys-shape-corner-extra-large: calc(var(--shape-extra-large) * 1px);
170
+ --md-sys-shape-corner-full: calc(var(--shape-full) * 1px);
171
+
172
+ /* --- Sys Elevation --- */
173
+ --md-sys-elevation-level0: var(--elevation-0);
174
+ --md-sys-elevation-level1: var(--elevation-1);
175
+ --md-sys-elevation-level2: var(--elevation-2);
176
+ --md-sys-elevation-level3: var(--elevation-3);
177
+ --md-sys-elevation-level4: var(--elevation-4);
178
+ --md-sys-elevation-level5: var(--elevation-5);
179
+ }
@@ -0,0 +1,4 @@
1
+ :root {
2
+ --app-avatars-avatar-background: #E42313;
3
+ --app-avatars-avatar-element: #FFFFFF;
4
+ }
@@ -0,0 +1,69 @@
1
+ @use '@angular/material' as mat;
2
+
3
+ // Variables alias por componente (--buttons-wip-*, etc.) para overrides y componentes
4
+ @import url('https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined');
5
+ @import url('https://fonts.googleapis.com/css2?family=Heebo:wght@100;200;300;400;500;600;700;800;900&display=swap');
6
+ @include mat.core();
7
+
8
+ // Reset y tipografía base
9
+ body,
10
+ * {
11
+ margin: 0;
12
+ padding: 0;
13
+ box-sizing: border-box;
14
+ font-family: 'Heebo', sans-serif;
15
+ }
16
+
17
+ @include mat.theme((
18
+ color: (
19
+ theme-type: light,
20
+ primary: mat.$blue-palette,
21
+ tertiary: mat.$blue-palette,
22
+ ),
23
+ typography: (
24
+ brand-family: 'Heebo',
25
+ plain-family: 'Heebo',
26
+ ),
27
+ density: 0,
28
+ ));
29
+
30
+ @include mat.theme-overrides((
31
+ primary: var(--md-sys-color-secondary),
32
+ secondary: var(--md-sys-color-primary),
33
+ tertiary: var(--md-sys-color-tertiary),
34
+ error: var(--app-colors-rojo-primary-rojo-50),
35
+ ));
36
+
37
+ // Tipografía común en componentes Material
38
+ .mat-mdc-button,
39
+ .mat-mdc-raised-button,
40
+ .mat-mdc-outlined-button,
41
+ .mat-mdc-unelevated-button,
42
+ .mat-mdc-icon-button,
43
+ .mat-mdc-fab,
44
+ .mat-mdc-mini-fab,
45
+ .mat-mdc-tab,
46
+ .mat-mdc-tab-link,
47
+ .mat-mdc-chip,
48
+ .mat-mdc-form-field,
49
+ .mat-mdc-form-field input,
50
+ .mat-mdc-select,
51
+ .mat-mdc-select-trigger,
52
+ .mat-mdc-select-value,
53
+ .mat-mdc-option,
54
+ .mat-mdc-table,
55
+ .mat-mdc-header-cell,
56
+ .mat-mdc-cell,
57
+ .mat-mdc-paginator,
58
+ .mat-mdc-menu-item,
59
+ .mat-mdc-tooltip,
60
+ .mat-mdc-snack-bar-label,
61
+ .mdc-list-item__primary-text,
62
+ .mdc-button,
63
+ .mdc-tab,
64
+ .mdc-text-field,
65
+ .mdc-select,
66
+ .mdc-data-table,
67
+ .mdc-menu-item {
68
+ font-family: var(--md-sys-typescale-body-medium-font, 'Heebo'), sans-serif;
69
+ }
@@ -0,0 +1,16 @@
1
+ /// Punto de entrada global de estilos para los MFEs.
2
+ /// Los proyectos incluyen este archivo en build.options.styles (project.json).
3
+ /// Cadena: project.json styles[] → index.scss → global-material-theme.scss → overrides (mat-form-field, mat-button, etc.).
4
+ @use './global-material-theme.scss' as *;
5
+ @use './overrides/mat-table-overrides';
6
+ @use './overrides/mat-slide-toggle-overrides';
7
+ @use './overrides/mat-tabs-overrides';
8
+ @use './overrides/mat-form-field-overrides';
9
+ @use './overrides/mat-icon-button-overrides';
10
+ @use './overrides/mat-list-overrides';
11
+ @use './overrides/mat-checkbox-overrides';
12
+ @use './overrides/mat-button-overrides';
13
+ @use './layout.scss' as *;
14
+ @use './typography.scss' as *;
15
+ @use './text-classes.scss' as *;
16
+ @use './scrollbar.scss' as *;
@@ -0,0 +1,29 @@
1
+ /// Layout global: solo variables en :root.
2
+ /// El grid del shell (section.container, .main-content) lo define cada app (ej. layout-shell.scss).
3
+ /// Evita duplicar/conflictos con el layout del host.
4
+ :root {
5
+ --header-height: calc(var(--bars-size-small-app-bar-small-container-height, 64) * 1px);
6
+ // Opcional: altura lista/tabla como calc(100vh - header - cabecera lista - offset). Ej.: height: calc(100vh - var(--list-area-offset));
7
+ --list-area-offset: 259px; // 80 + 72 + 107 (header, cabecera, contenido)
8
+ }
9
+
10
+ .lib-confirm-modal-backdrop.cdk-overlay-backdrop.cdk-overlay-backdrop-showing {
11
+ background: rgba(0, 0, 0, 0.4);
12
+ }
13
+
14
+ .import-massive-modal-backdrop.cdk-overlay-backdrop.cdk-overlay-backdrop-showing {
15
+ background: rgba(0, 0, 0, 0.4);
16
+ }
17
+
18
+ .lib-side-modal-backdrop.cdk-overlay-backdrop.cdk-overlay-backdrop-showing {
19
+ background: rgba(0, 0, 0, 0.35);
20
+ }
21
+
22
+ /* Keep confirm dialogs centered even when opened from right side sheets. */
23
+ .lib-confirm-modal-panel.cdk-overlay-pane {
24
+ position: fixed !important;
25
+ left: 50% !important;
26
+ top: 50% !important;
27
+ transform: translate(-50%, -50%) !important;
28
+ margin: 0 !important;
29
+ }
@@ -0,0 +1,11 @@
1
+ /// Índice de overrides de Angular Material (M3).
2
+ /// Referencia: global-material-theme.scss importa cada override directamente (no usa este índice).
3
+ /// Mantener en sync con global-material-theme por si algo hace @use 'overrides'.
4
+ @forward 'mat-slide-toggle-overrides';
5
+ @forward 'mat-tabs-overrides';
6
+ @forward 'mat-form-field-overrides';
7
+ @forward 'mat-icon-button-overrides';
8
+ @forward 'mat-list-overrides';
9
+ @forward 'mat-checkbox-overrides';
10
+ @forward 'mat-button-overrides';
11
+ @forward 'mat-table-overrides';
@@ -0,0 +1,105 @@
1
+ @use '@angular/material' as mat;
2
+
3
+ /*
4
+ * Button overrides (M3). Tokens: --buttons-wip-* (generate-tokens-resolved.cjs)
5
+ *
6
+ * PATRÓN de opacidades con Material:
7
+ * *-state-layer-color → color BASE sin alpha (Material aplica el opacity encima)
8
+ * *-hover/focus/pressed-state-layer-opacity → opacidades M3 estándar (0.08 / 0.10 / 0.10)
9
+ * *-ripple-color → token rgba directo SIN color-mix (ya tiene el alpha correcto)
10
+ *
11
+ * MAL: state-layer-color: rgba(67,71,73,0.08) + hover-opacity: 0.08 = visual 0.0064 (invisible)
12
+ * BIEN: state-layer-color: #434749 + hover-opacity: 0.08 = visual 0.08
13
+ */
14
+ html {
15
+ @include mat.button-overrides((
16
+ // ── Filled ─────────────────────────────────────────────────────────────
17
+ filled-container-shape: calc(var(--buttons-wip-size-medium-button-medium-shape-round) * 1px),
18
+ filled-container-color: var(--buttons-wip-color-filled-enabled-button-filled-container-color, #E42313),
19
+ filled-label-text-color: var(--buttons-wip-color-filled-enabled-button-filled-label-color, #fff),
20
+ filled-state-layer-color: var(--buttons-wip-color-filled-enabled-button-filled-label-color, #fff),
21
+ filled-hover-state-layer-opacity: 0.08,
22
+ filled-focus-state-layer-opacity: 0.10,
23
+ filled-pressed-state-layer-opacity: 0.10,
24
+ filled-ripple-color: var(--buttons-wip-color-filled-pressed-button-elevated-pressed-ripple-color, rgba(255, 255, 255, 0.10)),
25
+ filled-container-height: calc(var(--buttons-wip-size-medium-button-medium-container-height) * 1px),
26
+ filled-label-text-font: var(--buttons-wip-size-medium-button-medium-label-text-font, Heebo),
27
+ filled-label-text-size: calc(var(--buttons-wip-size-medium-button-medium-label-text-size) * 1px),
28
+ filled-label-text-weight: var(--buttons-wip-size-medium-button-medium-label-text-weight, 500),
29
+ filled-label-text-tracking: calc(var(--buttons-wip-size-medium-button-medium-label-text-tracking) * 1px),
30
+ filled-horizontal-padding: calc(var(--buttons-wip-size-medium-button-medium-leading-space) * 1px),
31
+ filled-icon-spacing: calc(var(--buttons-wip-size-medium-button-medium-between-icon-label-space) * 1px),
32
+
33
+ // ── Outlined ───────────────────────────────────────────────────────────
34
+ outlined-container-shape: calc(var(--buttons-wip-size-medium-button-medium-shape-round) * 1px),
35
+ outlined-outline-width: calc(var(--buttons-wip-size-medium-button-medium-outline-width, 1) * 1px),
36
+ outlined-outline-color: var(--buttons-wip-color-outlined-enabled-button-outlined-outline-color, #c3c7c9),
37
+ outlined-label-text-color: var(--buttons-wip-color-outlined-enabled-button-outlined-label-color, #434749),
38
+ outlined-state-layer-color: var(--buttons-wip-color-outlined-enabled-button-outlined-label-color, #434749),
39
+ outlined-hover-state-layer-opacity: 0.08,
40
+ outlined-focus-state-layer-opacity: 0.10,
41
+ outlined-pressed-state-layer-opacity: 0.10,
42
+ outlined-ripple-color: var(--buttons-wip-color-outlined-pressed-button-outlined-pressed-ripple-color, rgba(67, 71, 73, 0.10)),
43
+ outlined-container-height: calc(var(--buttons-wip-size-medium-button-medium-container-height) * 1px),
44
+ outlined-label-text-font: var(--buttons-wip-size-medium-button-medium-label-text-font, Heebo),
45
+ outlined-label-text-size: calc(var(--buttons-wip-size-medium-button-medium-label-text-size) * 1px),
46
+ outlined-label-text-weight: var(--buttons-wip-size-medium-button-medium-label-text-weight, 500),
47
+ outlined-label-text-tracking: calc(var(--buttons-wip-size-medium-button-medium-label-text-tracking) * 1px),
48
+ outlined-horizontal-padding: calc(var(--buttons-wip-size-medium-button-medium-leading-space) * 1px),
49
+ outlined-icon-spacing: calc(var(--buttons-wip-size-medium-button-medium-between-icon-label-space) * 1px),
50
+
51
+ // ── Tonal ──────────────────────────────────────────────────────────────
52
+ tonal-container-shape: calc(var(--buttons-wip-size-medium-button-medium-shape-round) * 1px),
53
+ tonal-container-color: var(--buttons-wip-color-tonal-enabled-button-tonal-container-color, #e0e3e5),
54
+ tonal-label-text-color: var(--buttons-wip-color-tonal-enabled-button-tonal-label-color, #434749),
55
+ tonal-state-layer-color: var(--buttons-wip-color-tonal-enabled-button-tonal-label-color, #434749),
56
+ tonal-hover-state-layer-opacity: 0.08,
57
+ tonal-focus-state-layer-opacity: 0.10,
58
+ tonal-pressed-state-layer-opacity: 0.10,
59
+ tonal-ripple-color: var(--buttons-wip-color-tonal-pressed-button-tonal-pressed-ripple-color, rgba(67, 71, 73, 0.10)),
60
+ tonal-container-height: calc(var(--buttons-wip-size-medium-button-medium-container-height) * 1px),
61
+ tonal-label-text-font: var(--buttons-wip-size-medium-button-medium-label-text-font, Heebo),
62
+ tonal-label-text-size: calc(var(--buttons-wip-size-medium-button-medium-label-text-size) * 1px),
63
+ tonal-label-text-weight: var(--buttons-wip-size-medium-button-medium-label-text-weight, 500),
64
+ tonal-label-text-tracking: calc(var(--buttons-wip-size-medium-button-medium-label-text-tracking) * 1px),
65
+ tonal-horizontal-padding: calc(var(--buttons-wip-size-medium-button-medium-leading-space) * 1px),
66
+ tonal-icon-spacing: calc(var(--buttons-wip-size-medium-button-medium-between-icon-label-space) * 1px),
67
+
68
+ // ── Text ───────────────────────────────────────────────────────────────
69
+ text-container-shape: calc(var(--buttons-wip-size-medium-button-medium-shape-round) * 1px),
70
+ text-label-text-color: var(--buttons-wip-color-text-enabled-button-text-label-color, #e42313),
71
+ text-state-layer-color: var(--buttons-wip-color-text-enabled-button-text-label-color, #e42313),
72
+ text-hover-state-layer-opacity: 0.08,
73
+ text-focus-state-layer-opacity: 0.10,
74
+ text-pressed-state-layer-opacity: 0.10,
75
+ text-ripple-color: var(--buttons-wip-color-text-pressed-button-text-pressed-ripple-color, rgba(228, 35, 19, 0.10)),
76
+ text-container-height: calc(var(--buttons-wip-size-medium-button-medium-container-height) * 1px),
77
+ text-label-text-font: var(--buttons-wip-size-medium-button-medium-label-text-font, Heebo),
78
+ text-label-text-size: calc(var(--buttons-wip-size-medium-button-medium-label-text-size) * 1px),
79
+ text-label-text-weight: var(--buttons-wip-size-medium-button-medium-label-text-weight, 500),
80
+ text-label-text-tracking: calc(var(--buttons-wip-size-medium-button-medium-label-text-tracking) * 1px),
81
+ text-horizontal-padding: calc(var(--buttons-wip-size-medium-button-medium-leading-space) * 1px),
82
+ text-icon-spacing: calc(var(--buttons-wip-size-medium-button-medium-between-icon-label-space) * 1px),
83
+
84
+ // ── Protected (Elevated) ───────────────────────────────────────────────
85
+ protected-container-shape: calc(var(--buttons-wip-size-medium-button-medium-shape-round) * 1px),
86
+ protected-container-color: var(--buttons-wip-color-elevated-enabled-button-elevated-container-color, #fff),
87
+ protected-label-text-color: var(--buttons-wip-color-elevated-enabled-button-elevated-label-color, #e42313),
88
+ protected-container-elevation-shadow: 0 calc(var(--buttons-wip-color-elevated-enabled-button-elevated-elevation, 1) * 1px) calc(var(--buttons-wip-color-elevated-enabled-button-elevated-elevation, 1) * 4px) rgba(0, 0, 0, 0.18),
89
+ protected-state-layer-color: var(--buttons-wip-color-elevated-enabled-button-elevated-label-color, #e42313),
90
+ protected-hover-state-layer-opacity: 0.08,
91
+ protected-focus-state-layer-opacity: 0.10,
92
+ protected-pressed-state-layer-opacity: 0.10,
93
+ protected-hover-container-elevation-shadow: 0 3px 12px rgba(0, 0, 0, 0.2),
94
+ protected-focus-container-elevation-shadow: 0 1px 4px rgba(0, 0, 0, 0.2),
95
+ protected-pressed-container-elevation-shadow: 0 1px 4px rgba(0, 0, 0, 0.24),
96
+ protected-ripple-color: var(--buttons-wip-color-elevated-pressed-button-elevated-pressed-ripple-color, rgba(228, 35, 19, 0.10)),
97
+ protected-container-height: calc(var(--buttons-wip-size-medium-button-medium-container-height) * 1px),
98
+ protected-label-text-font: var(--buttons-wip-size-medium-button-medium-label-text-font, Heebo),
99
+ protected-label-text-size: calc(var(--buttons-wip-size-medium-button-medium-label-text-size) * 1px),
100
+ protected-label-text-weight: var(--buttons-wip-size-medium-button-medium-label-text-weight, 500),
101
+ protected-label-text-tracking: calc(var(--buttons-wip-size-medium-button-medium-label-text-tracking) * 1px),
102
+ protected-horizontal-padding: calc(var(--buttons-wip-size-medium-button-medium-leading-space) * 1px),
103
+ protected-icon-spacing: calc(var(--buttons-wip-size-medium-button-medium-between-icon-label-space) * 1px),
104
+ ));
105
+ }
@@ -0,0 +1,49 @@
1
+ @use '@angular/material' as mat;
2
+
3
+ // Asegura que el borde (outline) del checkbox sin seleccionar use siempre #181c1e,
4
+ // en lugar del valor por defecto (#434749) de los tokens.
5
+ html {
6
+ --checkboxes-enabled-container-checkbox-unselected-outline-color: #181c1e;
7
+ --checkboxes-hovered-container-checkbox-unselected-hover-outline-color: #181c1e;
8
+ --checkboxes-focused-container-checkbox-unselected-focus-outline-color: #181c1e;
9
+ --checkboxes-pressed-ripple-container-checkbox-unselected-pressed-outline-color: #181c1e;
10
+
11
+ --checkboxes-pressed-ripple-icon-checkbox-selected-pressed-icon-color: #181c1e;
12
+ @include mat.checkbox-overrides((
13
+ selected-focus-state-layer-opacity: 0.10,
14
+ selected-hover-state-layer-opacity: 0.08,
15
+ // Ripple más oscuro cuando el checkbox está seleccionado y en pressed.
16
+ selected-pressed-state-layer-opacity: 0.20,
17
+ unselected-focus-state-layer-opacity: 0.10,
18
+ unselected-hover-state-layer-opacity: 0.08,
19
+ unselected-pressed-state-layer-opacity: 0.10,
20
+ touch-target-size: calc(var(--checkboxes-enabled-state-layer-checkbox-state-layer-size, 40) * 1px),
21
+ touch-target-display: block,
22
+ state-layer-size: calc(var(--checkboxes-enabled-state-layer-checkbox-state-layer-size, 40) * 1px),
23
+ disabled-label-color: var(--md-sys-color-on-surface),
24
+ disabled-selected-checkmark-color: var(--checkboxes-disabled-icon-checkbox-selected-disabled-icon-color, #f7fafc),
25
+ disabled-selected-icon-color: var(--checkboxes-disabled-icon-checkbox-disabled-selected-icon-color, #e42313),
26
+ disabled-unselected-icon-color: var(--checkboxes-disabled-icon-checkbox-disabled-unselected-icon-color, #e42313),
27
+ label-text-color: var(--md-sys-color-on-surface),
28
+ selected-checkmark-color: var(--checkboxes-enabled-icon-checkbox-selected-icon-color, #ffffff),
29
+ selected-focus-icon-color: #181c1e,
30
+ selected-focus-state-layer-color: var(--checkboxes-focused-state-layer-checkbox-selected-focus-state-layer-color, #181c1e),
31
+ selected-hover-icon-color: #181c1e,
32
+ selected-hover-state-layer-color: #181c1e,
33
+ selected-icon-color: #181c1e,
34
+ selected-pressed-icon-color: #181c1e,
35
+ selected-pressed-state-layer-color: #181c1e,
36
+ unselected-focus-icon-color: #181c1e,
37
+ unselected-focus-state-layer-color: var(--checkboxes-focused-state-layer-checkbox-unselected-focus-state-layer-color, #181c1e),
38
+ unselected-hover-icon-color: var(--checkboxes-hovered-icon-checkbox-unselected-hover-icon-color, #181c1e),
39
+ unselected-icon-color: var(--checkboxes-enabled-icon-checkbox-unselected-icon-color, #181c1e),
40
+ unselected-pressed-state-layer-color: var(--checkboxes-pressed-ripple-state-layer-checkbox-unselected-pressed-state-layer-color, #181c1e),
41
+ label-text-font: var(--typescale-body-medium-font, 'Heebo'),
42
+ label-text-line-height: calc(var(--typescale-body-medium-line-height, 20) * 1px),
43
+ label-text-size: var(--typescale-body-medium-size, 14px),
44
+ label-text-tracking: var(--typescale-body-medium-tracking, 0.25px),
45
+ label-text-weight: var(--typescale-body-medium-weight, 400),
46
+ ));
47
+ }
48
+
49
+
@@ -0,0 +1,148 @@
1
+ @use '@angular/material' as mat;
2
+
3
+ /// Form field (text fields) overrides (M3).
4
+ /// Tokens: @tokens_variables_credix/tokenized-styles (tokens.css + components) → --text-fields-*.
5
+ /// Color borde outline enabled: Text fields/outlined/enabled/outline #74787A.
6
+ html {
7
+ --Text-fields-outlined-enabled-container-outlined-text-field-container-shape: calc(var(--text-fields-outlined-enabled-container-outlined-text-field-container-shape, 4) * 1px);
8
+ // 1px de tokens → 0.0625rem asumiendo base 16px.
9
+ --Text-fields-outlined-enabled-outline-outlined-text-field-outline-width:
10
+ 0.0625rem;
11
+ /// Variable de la dependencia; fallback #74787A (estado default outlined).
12
+ --Text-fields-outlined-enabled-outline-outline-text-field-outline-color: var(--text-fields-outlined-enabled-outline-outline-text-field-outline-color, #74787A);
13
+
14
+ @include mat.form-field-overrides((
15
+
16
+ // Token value is numeric (e.g. 1), convert explicitly to px.
17
+ filled-active-indicator-height: calc(var(--text-fields-filled-enabled-active-indicator-filled-text-field-active-indicator-height, 1) * 1px),
18
+ filled-focus-active-indicator-height: var(--text-fields-filled-focused-active-indicator-filled-text-field-focus-active-indicator-height),
19
+ filled-container-shape: var(--text-fields-filled-enabled-container-filled-text-field-container-shape),
20
+ filled-active-indicator-color: var(--text-fields-filled-enabled-active-indicator-filled-text-field-active-indicator-color),
21
+ filled-caret-color: var(--text-fields-filled-enabled-caret-filled-text-field-caret-color),
22
+ filled-container-color: var(--text-fields-filled-enabled-container-filled-text-field-container-color),
23
+ // Disabled filled: color base + opacity desde tokens
24
+ filled-disabled-active-indicator-color: color-mix(in srgb,
25
+ var(--text-fields-filled-disabled-active-indicator-filled-text-field-disabled-active-indicator-color, #181c1e)
26
+ calc(var(--text-fields-filled-disabled-active-indicator-filled-text-field-disabled-active-indicator-opacity) * 1%),
27
+ transparent),
28
+ filled-disabled-container-color: color-mix(in srgb,
29
+ var(--text-fields-filled-disabled-container-filled-text-field-disabled-container-color, #181c1e)
30
+ calc(var(--text-fields-filled-disabled-container-filled-text-field-disabled-container-opacity) * 1%),
31
+ transparent),
32
+ filled-disabled-input-text-color: color-mix(in srgb,
33
+ var(--text-fields-filled-disabled-input-text-filled-text-field-disabled-input-text-color, #181c1e)
34
+ calc(var(--text-fields-filled-disabled-input-text-filled-text-field-disabled-input-text-opacity) * 1%),
35
+ transparent),
36
+ filled-disabled-label-text-color: color-mix(in srgb,
37
+ var(--text-fields-filled-disabled-label-text-filled-text-field-disabled-label-text-color, #181c1e)
38
+ calc(var(--text-fields-filled-disabled-label-text-filled-text-field-disabled-label-text-opacity) * 1%),
39
+ transparent),
40
+ filled-error-active-indicator-color: var(--text-fields-filled-error-active-indicator-filled-text-field-error-active-indicator-color),
41
+ filled-error-caret-color: var(--text-fields-filled-error-caret-filled-text-field-error-caret-color),
42
+ filled-error-focus-active-indicator-color: var(--text-fields-filled-error-focus-filled-text-field-error-focus-active-indicator-color),
43
+ filled-error-focus-label-text-color: var(--text-fields-filled-error-focus-filled-text-field-error-focus-label-text-color),
44
+ filled-error-hover-active-indicator-color: var(--text-fields-filled-error-hover-filled-text-field-error-hover-active-indicator-color),
45
+ filled-error-hover-label-text-color: var(--text-fields-filled-error-hover-filled-text-field-error-hover-label-text-color),
46
+ filled-error-label-text-color: var(--text-fields-filled-error-label-text-filled-text-field-error-label-text-color),
47
+ filled-focus-active-indicator-color: var(--text-fields-filled-focused-active-indicator-filled-text-field-focus-active-indicator-color),
48
+ filled-focus-label-text-color: var(--text-fields-filled-focused-label-text-filled-text-field-focus-label-text-color),
49
+ filled-hover-active-indicator-color: var(--text-fields-filled-hover-active-indicator-filled-text-field-hover-active-indicator-color),
50
+ filled-hover-label-text-color: var(--text-fields-filled-hover-label-text-filled-text-field-hover-label-text-color),
51
+ filled-input-text-color: var(--text-fields-filled-enabled-input-text-filled-text-field-input-text-color),
52
+ filled-input-text-placeholder-color: var(--text-fields-filled-enabled-input-text-filled-text-field-input-text-placeholder-color),
53
+ filled-label-text-color: var(--text-fields-filled-enabled-label-text-filled-text-field-label-text-color),
54
+ filled-label-text-font: var(--text-fields-filled-enabled-label-text-filled-text-field-label-text-font),
55
+ filled-label-text-size: var(--text-fields-filled-enabled-label-text-filled-text-field-label-text-size),
56
+ filled-label-text-tracking: var(--text-fields-filled-enabled-label-text-filled-text-field-label-text-tracking),
57
+ filled-label-text-weight: var(--text-fields-filled-enabled-label-text-filled-text-field-label-text-weight),
58
+ filled-label-display: var(--text-fields-filled-enabled-label-text-filled-text-field-label-display),
59
+ filled-with-label-container-padding-top: var(--text-fields-filled-enabled-label-text-filled-text-field-with-label-container-padding-top),
60
+ filled-with-label-container-padding-bottom: var(--text-fields-filled-enabled-label-text-filled-text-field-with-label-container-padding-bottom),
61
+ // @tokens_variables_credix/tokenized-styles dist/css/components/text-fields.css (y dist/scss/components/_text-fields.scss):
62
+ // outlined-outline-width ← --text-fields-outlined-enabled-outline-outlined-text-field-outline-width (valor 1)
63
+ // outlined-focus-outline-width ← --text-fields-outlined-focused-outline-outlined-text-field-focus-outline-width (valor 3)
64
+ // outlined-container-shape ← --text-fields-outlined-enabled-container-outlined-text-field-container-shape (valor 4)
65
+ // Las dos primeras se usan vía alias --Text-fields-* en html {} que convierten a rem (1px → 0.0625rem).
66
+ outlined-outline-width: 0.0625rem,
67
+ outlined-focus-outline-width: var(--text-fields-outlined-focused-outline-outlined-text-field-focus-outline-width),
68
+ outlined-container-shape: var(--Text-fields-outlined-enabled-container-outlined-text-field-container-shape),
69
+ outlined-caret-color: var( --Text-fields-outlined-enabled-outline-outline-text-field-outline-color),
70
+ outlined-disabled-input-text-color: color-mix(in srgb,
71
+ var(--text-fields-outlined-disabled-input-text-outlined-text-field-disabled-input-text-color)
72
+ calc(var(--text-fields-outlined-disabled-input-text-outlined-text-field-disabled-input-text-opacity) * 1%),
73
+ transparent),
74
+ //outlined-disabled-outline-color: color-mix(in srgb,
75
+ // var(--text-fields-outlined-disabled-outline-outlined-text-field-disabled-outline-color)
76
+ // calc(var(--text-fields-outlined-disabled-input-text-outlined-text-field-disabled-input-text-opacity) * 1%),
77
+ // transparent),
78
+ outlined-disabled-label-text-color: color-mix(in srgb,
79
+ var(--text-fields-outlined-disabled-label-text-outlined-text-field-disabled-label-text-color)
80
+ calc(var(--text-fields-outlined-disabled-input-text-outlined-text-field-disabled-input-text-opacity) * 1%),
81
+ transparent),
82
+ // Tokens disabled globales (Material: --mat-sys-on-surface 38%). Figma: text-fields outlined disabled.
83
+ disabled-input-text-placeholder-color: color-mix(in srgb,
84
+ var(--text-fields-outlined-disabled-input-text-outlined-text-field-disabled-input-text-color)
85
+ calc(var(--text-fields-outlined-disabled-input-text-outlined-text-field-disabled-input-text-opacity) * 1%),
86
+ transparent),
87
+ disabled-leading-icon-color: color-mix(in srgb,
88
+ var(--text-fields-outlined-disabled-leading-icon-outlined-text-field-disabled-leading-icon-color)
89
+ calc(var(--text-fields-outlined-disabled-leading-icon-outlined-text-field-disabled-leading-icon-opacity, 38) * 1%),
90
+ transparent),
91
+ disabled-select-arrow-color: color-mix(in srgb,
92
+ var(--text-fields-outlined-disabled-leading-icon-outlined-text-field-disabled-leading-icon-color)
93
+ calc(var(--text-fields-outlined-disabled-leading-icon-outlined-text-field-disabled-leading-icon-opacity, 38) * 1%),
94
+ transparent),
95
+ disabled-trailing-icon-color: color-mix(in srgb,
96
+ var(--text-fields-outlined-disabled-trailing-icon-outlined-text-field-disabled-trailing-icon-color)
97
+ calc(var(--text-fields-outlined-disabled-trailing-icon-outlined-text-field-disabled-trailing-icon-opacity, 38) * 1%),
98
+ transparent),
99
+ outlined-error-caret-color: var(--text-fields-outlined-enabled-caret-outlined-text-field-error-focus-caret-color),
100
+ outlined-error-focus-label-text-color: var(--text-fields-outlined-error-focus-outlined-text-field-error-focus-label-text-color),
101
+ outlined-error-focus-outline-color: var(--text-fields-outlined-error-focus-outlined-text-field-error-focus-outline-color),
102
+ outlined-error-hover-label-text-color: var(--text-fields-outlined-error-hover-outlined-text-field-error-hover-label-text-color),
103
+ outlined-error-hover-outline-color: var(--text-fields-outlined-error-hover-outlined-text-field-error-hover-outline-color),
104
+ outlined-error-label-text-color: var(--text-fields-outlined-error-outline-outlined-text-field-error-outline-color),
105
+ outlined-error-outline-color: var(--text-fields-outlined-error-outline-outlined-text-field-error-outline-color),
106
+ error-text-color: var(--text-fields-outlined-error-outline-outlined-text-field-error-outline-color),
107
+ outlined-focus-label-text-color: var(--text-fields-outlined-focused-label-text-outlined-text-field-focus-label-text-color),
108
+ outlined-focus-outline-color: var(--text-fields-outlined-focused-outline-outlined-text-field-focus-outline-color),
109
+ outlined-hover-outline-color: var(--text-fields-outlined-hovered-outline-outlined-text-field-hover-outline-color),
110
+ outlined-input-text-color: var(--text-fields-outlined-enabled-input-text-outlined-text-field-input-text-color),
111
+ outlined-input-text-placeholder-color: var(--text-fields-outlined-enabled-input-text-outlined-text-field-input-text-placeholder-color),
112
+ outlined-label-text-color: var(--text-fields-outlined-enabled-label-text-outlined-text-field-label-text-color),
113
+ outlined-outline-color: var(--text-fields-outlined-enabled-outline-outline-text-field-outline-color),
114
+ outlined-label-text-font: var(--text-fields-outlined-enabled-label-text-outlined-text-field-label-text-font),
115
+ outlined-label-text-size: var(--text-fields-outlined-enabled-label-text-outlined-text-field-label-text-size),
116
+ outlined-label-text-tracking: var(--text-fields-outlined-enabled-label-text-outlined-text-field-label-text-tracking),
117
+ // 12px de tokens → 0.75rem asumiendo base 16px.
118
+ outlined-label-text-populated-size: calc(
119
+ var(--text-fields-outlined-enabled-label-text-outlined-text-field-label-text-populated-size, 12px) / 16 * 1rem
120
+ ),
121
+ // Hint (supporting text) tipografía según Figma outlined enabled supporting text
122
+ subscript-text-font: var(--text-fields-outlined-enabled-supporting-text-outlined-text-field-supporting-text-font),
123
+ subscript-text-size: 0.75rem,
124
+ subscript-text-line-height: calc(var(--text-fields-outlined-enabled-supporting-text-outlined-text-field-supporting-text-line-height) * 1px),
125
+ subscript-text-tracking: calc(var(--text-fields-outlined-enabled-supporting-text-outlined-text-field-supporting-text-tracking) * 1px),
126
+ subscript-text-weight: var(--text-fields-outlined-enabled-supporting-text-outlined-text-field-supporting-text-weight),
127
+ ));
128
+
129
+ // Color del hint/supporting text en outlined (token de Figma).
130
+ .mat-mdc-form-field .mat-mdc-form-field-hint-wrapper,
131
+ .mat-mdc-form-field .mat-mdc-form-field-hint,
132
+ .mat-mdc-form-field .mat-mdc-form-field-hint-start,
133
+ .mat-mdc-form-field .mat-mdc-form-field-hint-end {
134
+ color: var(--text-fields-outlined-enabled-supporting-text-outlined-text-field-supporting-text-color);
135
+ }
136
+
137
+ // Opacity desde token (38 → 0.38) para iconos SVG y mat-hint en form fields deshabilitados
138
+ .mat-mdc-form-field.mat-form-field-disabled {
139
+ .mat-icon,
140
+ .mat-mdc-form-field-icon-wrapper svg {
141
+ opacity: calc(var(--text-fields-outlined-disabled-input-text-outlined-text-field-disabled-input-text-opacity) / 100);
142
+ }
143
+ .mat-mdc-form-field-subscript-wrapper,
144
+ mat-hint {
145
+ opacity: calc(var(--text-fields-outlined-disabled-input-text-outlined-text-field-disabled-input-text-opacity) / 100);
146
+ }
147
+ }
148
+ }
@@ -0,0 +1,20 @@
1
+ @use '@angular/material' as mat;
2
+
3
+ /// Icon button overrides (M3). Tokens: tokens-by-component (icon-buttons-*).
4
+ html {
5
+ @include mat.icon-button-overrides((
6
+ icon-size: calc(var(--icon-buttons-icon-button-enabled-icon-button-icon-size, var(--app-icon-buttons-icon-button-enabled-icon-button-icon-size, 24)) * 1px),
7
+ container-shape: calc(var(--icon-buttons-icon-button-enabled-icon-button-container-shape-round, var(--app-icon-buttons-icon-button-enabled-icon-button-container-shape-round, 1000)) * 1px),
8
+ touch-target-size: calc(var(--icon-buttons-icon-button-enabled-icon-button-container-height, var(--app-icon-buttons-icon-button-enabled-icon-button-container-height, 40)) * 1px),
9
+ disabled-icon-color: var(--icon-buttons-icon-button-disabled-icon-button-disabled-icon-color, var(--app-icon-buttons-icon-button-disabled-icon-button-disabled-icon-color)),
10
+ disabled-state-layer-color: var(--icon-buttons-icon-button-disabled-icon-button-disabled-container-color, var(--app-icon-buttons-icon-button-disabled-icon-button-disabled-container-color)),
11
+ focus-state-layer-opacity: var(--icon-buttons-icon-button-focused-icon-button-focused-state-layer-opacity, var(--app-icon-buttons-icon-button-focused-icon-button-focused-state-layer-opacity)),
12
+ hover-state-layer-opacity: var(--icon-buttons-icon-button-hovered-icon-button-hovered-state-layer-opacity, var(--app-icon-buttons-icon-button-hovered-icon-button-hovered-state-layer-opacity)),
13
+ icon-color: var(--icon-buttons-icon-button-enabled-icon-button-icon-color, var(--app-icon-buttons-icon-button-enabled-icon-button-icon-color)),
14
+ pressed-state-layer-opacity: var(--icon-buttons-icon-button-pressed-icon-button-pressed-state-layer-opacity, var(--app-icon-buttons-icon-button-pressed-icon-button-pressed-state-layer-opacity)),
15
+ ripple-color: var(--icon-buttons-color-filled-pressed-icon-button-filled-pressed-ripple-color, var(--app-icon-buttons-color-filled-pressed-icon-button-filled-pressed-ripple-color)),
16
+ state-layer-color: var(--icon-buttons-icon-button-hovered-icon-button-hovered-state-layer-color, var(--app-icon-buttons-icon-button-hovered-icon-button-hovered-state-layer-color)),
17
+ touch-target-display: block,
18
+ state-layer-size: calc(var(--icon-buttons-icon-button-enabled-icon-button-container-height, var(--app-icon-buttons-icon-button-enabled-icon-button-container-height, 40)) * 1px),
19
+ ));
20
+ }