@genexus/mercury 0.1.6 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/mercury.scss CHANGED
@@ -685,8 +685,9 @@ Window
685
685
  Icon Size
686
686
  ----------------------*/
687
687
  // box (shell)
688
- --mer-icon__box--sm: var(--mer-spacing--md);
689
- --mer-icon__box--lg: var(--mer-spacing--lg);
688
+ --mer-icon__box--sm: var(--mer-spacing--sm);
689
+ --mer-icon__box--md: var(--mer-spacing--md);
690
+ // --mer-icon__box--lg: var(--mer-spacing--lg);
690
691
 
691
692
  /*----------------------------------------------------------
692
693
  Form Input (form-input-*** background-position-x RTL support)
@@ -781,6 +782,82 @@ Window
781
782
 
782
783
 
783
784
  // Base classes
785
+ @mixin label-tokens() {
786
+ --label__font-family: var(--mer-font-family--inter-semi-bold);
787
+ --label__font-size: var(--mer-font__size--2xs);
788
+ --label__color: var(--mer-text__on-surface);
789
+ --label__line-height: var(--mer-line-height--regular);
790
+ --label__block-margin: var(--mer-spacing--xs);
791
+ --label__inline-margin: var(--mer-spacing--xs);
792
+
793
+ // Disabled
794
+ --label__color--disabled: var(--mer-text__primary--disabled);
795
+ }
796
+
797
+
798
+ %label {
799
+ @include label-tokens();
800
+ font-family: var(--label__font-family);
801
+ font-size: var(--label__font-size);
802
+ color: var(--label__color);
803
+ line-height: var(--label__line-height);
804
+ }
805
+
806
+ // Positioning margin
807
+ %label--disabled {
808
+ color: var(--label__color--disabled);
809
+ }
810
+ %label--above {
811
+ margin-block-end: var(--label__block-margin);
812
+ }
813
+ %label--after {
814
+ margin-inline-start: var(--label__inline-margin);
815
+ }
816
+ %label--below {
817
+ margin-block-start: var(--label__block-margin);
818
+ }
819
+ %label--before {
820
+ margin-inline-end: var(--label__inline-margin);
821
+ }
822
+
823
+ /// @group Label
824
+ /// @param {String} $label-selector [".label"] -
825
+ /// @param {String} $label--disabled-selector [".label--disabled"] -
826
+ /// @param {String} $label--above-selector [".label--above"] -
827
+ /// @param {String} $label--after-selector [".label--after"] -
828
+ /// @param {String} $label--below-selector [".label--below"] -
829
+ /// @param {String} $label--before-selector [".label--before"] -
830
+ @mixin label(
831
+ $label-selector: ".label",
832
+ $label--disabled-selector: ".label--disabled",
833
+ $label--above-selector: ".label--above",
834
+ $label--after-selector: ".label--after",
835
+ $label--below-selector: ".label--below",
836
+ $label--before-selector: ".label--before"
837
+ ) {
838
+ #{$label-selector} {
839
+ @extend %label;
840
+ }
841
+
842
+ #{$label--disabled-selector} {
843
+ @extend %label--disabled;
844
+ }
845
+
846
+ // Positioning margin
847
+ #{$label--above-selector} {
848
+ @extend %label--above;
849
+ }
850
+ #{$label--after-selector} {
851
+ @extend %label--after;
852
+ }
853
+ #{$label--below-selector} {
854
+ @extend %label--below;
855
+ }
856
+ #{$label--before-selector} {
857
+ @extend %label--before;
858
+ }
859
+ }
860
+
784
861
  @mixin button-tokens-base() {
785
862
  //font
786
863
  --button-base__font-family: inherit;
@@ -1054,11 +1131,11 @@ Window
1054
1131
  @include button-tertiary();
1055
1132
  }
1056
1133
 
1057
- @mixin form-input-element-tokens() {
1134
+ @mixin form-input-tokens() {
1058
1135
  // Common form input element tokens
1059
- --mer-form-input__border-color: var(--mer-color__neutral-gray--500);
1060
- --mer-form-input__border-style: solid;
1061
1136
  --mer-form-input__border-width: var(--mer-border__width--sm);
1137
+ --mer-form-input__border-style: solid;
1138
+ --mer-form-input__border-color: var(--mer-color__neutral-gray--500);
1062
1139
  --mer-form-input__border: var(--mer-form-input__border-width)
1063
1140
  var(--mer-form-input__border-style) var(--mer-form-input__border-color);
1064
1141
  --mer-form-input__border-radius: var(--mer-border__radius--sm);
@@ -1070,58 +1147,114 @@ Window
1070
1147
  //--mer-form-input__padding-inline is defined globally in /tokens/semantic/_other/
1071
1148
  // (Form Input) because it the padding-inline value is required in the calculation
1072
1149
  // of background-x position for RTL support, and this calculation needs to be on the :root
1150
+
1151
+ // placeholder
1152
+ --mer-form-input__color--placeholder: var(--mer-text__on-surface);
1153
+
1154
+ // hover
1155
+ --mer-form-input__border-color--hover: var(--mer-color__neutral-gray--00);
1156
+
1157
+ // disabled
1158
+ --mer-form-input__color--disabled: var(--mer-text__on-disabled);
1159
+ --mer-form-input__bg-color--disabled: var(--mer-color__neutral-gray--1100);
1160
+ --mer-form-input__border-color--disabled: var(
1161
+ --mer-accent__primary--disabled
1162
+ );
1163
+
1164
+ // error
1165
+ --mer-form-input__border-color--error: var(--mer-border-color__error);
1073
1166
  }
1074
1167
 
1075
1168
 
1076
- // Base form-input-text sty
1077
- %form-input-base {
1078
- @include form-input-element-tokens();
1169
+ %form-input {
1170
+ @include form-input-tokens();
1079
1171
  font-family: var(--mer-form-input__font-family);
1080
1172
  border: var(--mer-form-input__border);
1081
1173
  border-radius: var(--mer-form-input__border-radius);
1082
1174
  color: var(--mer-form-input__color);
1083
1175
  font-size: var(--mer-form-input__font-size);
1084
1176
  block-size: var(--mer-control__block-size);
1085
- }
1086
-
1087
- %form-input-text-only {
1088
- @extend %form-input-base;
1089
1177
  padding-inline: var(--mer-form-input__padding-inline);
1090
- }
1091
1178
 
1092
- @mixin form-input-text-only(
1093
- $selector: ".form-input-text-only",
1094
- $add--disabled: true
1095
- ) {
1096
- #{$selector} {
1097
- @extend %form-input-text-only;
1179
+ &--focus {
1180
+ @include focus-style(false);
1098
1181
  }
1099
- }
1100
1182
 
1101
- @mixin form-input-bg-x-rtl-support() {
1102
- // has to be included in the root
1103
- :root[dir="rtl"] {
1104
- --mer-form-input__bg-position--x: calc(
1105
- 100% - var(--mer-form-input__bg-position--x-value)
1183
+ &--hover {
1184
+ border-color: var(--mer-form-input__border-color--hover);
1185
+ }
1186
+
1187
+ &--disabled {
1188
+ color: var(--mer-form-input__color--disabled);
1189
+ border-color: var(--mer-form-input__border-color--disabled);
1190
+ background-color: var(--mer-form-input__bg-color--disabled);
1191
+ }
1192
+
1193
+ &--disabled-placeholder {
1194
+ --mer-form-input__color--placeholder: var(
1195
+ --mer-form-input__color--disabled
1106
1196
  );
1107
1197
  }
1198
+
1199
+ &--error {
1200
+ border-color: var(--mer-form-input__border-color--error);
1201
+ }
1108
1202
  }
1109
- // - - - - - - - - - - - - - - - - - - - -
1110
- // Icons | Mask & Background
1111
- // - - - - - - - - - - - - - - - - - - - -
1112
1203
 
1113
- // Icon mask styles
1114
- @mixin mer-icon-mask-common-styles(
1115
- $size: "sm",
1116
- $mask-size: var(--icon-mask-size)
1204
+ %form-input__placeholder {
1205
+ font-style: italic;
1206
+ color: var(--mer-form-input__color--placeholder);
1207
+ }
1208
+
1209
+ /// @group Form
1210
+ /// @param {String} $selector [".form-input"] -
1211
+ /// @param {Boolean} $add--disabled [true] -
1212
+ /// @param {Boolean} $add--placeholder [true] -
1213
+ /// @param {Boolean} $add--placeholder-var [true] -
1214
+ /// @param {Boolean} $add--error [true] -
1215
+ @mixin form-input(
1216
+ $selector: ".form-input",
1217
+ $add--disabled: true,
1218
+ $add--placeholder: true,
1219
+ $add--placeholder-var: false,
1220
+ $add--error: true
1117
1221
  ) {
1118
- $iconSize: var(--mer-icon__box--sm);
1119
- @if $size == "lg" {
1120
- $iconSize: var(--mer-icon__box--lg);
1222
+ #{$selector} {
1223
+ @extend %form-input;
1224
+
1225
+ @if $add--placeholder-var {
1226
+ // @include form-input-placeholder-var(); TODO
1227
+ }
1228
+
1229
+ @if $add--placeholder {
1230
+ &::placeholder {
1231
+ @extend %form-input__placeholder;
1232
+ }
1233
+ }
1234
+
1235
+ &:focus {
1236
+ @extend %form-input--focus;
1237
+ }
1238
+
1239
+ @if $add--disabled {
1240
+ &:disabled,
1241
+ &--disabled {
1242
+ @extend %form-input--disabled;
1243
+ }
1244
+ }
1245
+
1246
+ @if $add--error {
1247
+ &--error {
1248
+ @extend %form-input--error;
1249
+ }
1250
+ }
1121
1251
  }
1122
- @include icon-mask-common-styles($iconSize, $iconSize, $mask-size);
1123
1252
  }
1124
1253
 
1254
+ // - - - - - - - - - - - - - - - - - - - -
1255
+ // Icon Path
1256
+ // - - - - - - - - - - - - - - - - - - - -
1257
+
1125
1258
  /// @group Icon
1126
1259
  /// @param {String} $selector [".icon-mask"] -
1127
1260
  /// @param {type} $icon-path [null] -
@@ -1136,31 +1269,7 @@ Window
1136
1269
  @if $icon-class != null {
1137
1270
  @extend #{$icon-class} !optional;
1138
1271
  }
1139
-
1140
- &::before {
1141
- @extend %icon-mask--before;
1142
- }
1143
- }
1144
- }
1145
-
1146
- %icon-mask--before {
1147
- @include mer-icon-mask-common-styles($size: "sm", $mask-size: 100%);
1148
- }
1149
-
1150
- // Icon background styles
1151
- @mixin mer-icon-background-common-styles(
1152
- $size: "sm",
1153
- $background-size: var(--icon-mask-size)
1154
- ) {
1155
- $iconSize: var(--mer-icon__box--sm);
1156
- @if $size == "lg" {
1157
- $iconSize: var(--mer-icon__box--lg);
1158
1272
  }
1159
- @include icon-background-common-styles(
1160
- $iconSize,
1161
- $iconSize,
1162
- $background-size
1163
- );
1164
1273
  }
1165
1274
 
1166
1275
  /// @group Icon
@@ -1181,21 +1290,60 @@ Window
1181
1290
  @if $icon-class != null {
1182
1291
  @extend #{$icon-class} !optional;
1183
1292
  }
1184
-
1185
- &::before {
1186
- @extend %icon-background--before;
1187
- }
1188
1293
  }
1189
1294
  }
1190
1295
 
1191
- %icon-background--before {
1192
- @include mer-icon-background-common-styles(
1193
- $size: "sm",
1296
+ // - - - - - - - - - - - - - - - - - - - -
1297
+ // Icon Sizes
1298
+ // - - - - - - - - - - - - - - - - - - - -
1299
+
1300
+ %icon-size--sm {
1301
+ @include icon-background-common-styles(
1302
+ $inline-size: var(--mer-icon__box--sm),
1303
+ $block-size: var(--mer-icon__box--sm),
1304
+ $background-size: 100%
1305
+ );
1306
+ }
1307
+ %icon-size--md {
1308
+ @include icon-background-common-styles(
1309
+ $inline-size: var(--mer-icon__box--md),
1310
+ $block-size: var(--mer-icon__box--md),
1194
1311
  $background-size: 100%
1195
1312
  );
1196
1313
  }
1197
1314
 
1198
- // Icon Input background styles
1315
+ /// @group Icon
1316
+ /// @param {String} $selector [".icon-size-sm"] -
1317
+ @mixin icon-size-sm($selector: ".icon-size-sm") {
1318
+ #{$selector} {
1319
+ ::before {
1320
+ @extend %icon-size--sm;
1321
+ }
1322
+ }
1323
+ }
1324
+ /// @group Icon
1325
+ /// @param {String} $selector [".icon-size-sm"] -
1326
+ @mixin icon-size-sm($selector: ".icon-size-md") {
1327
+ #{$selector} {
1328
+ ::before {
1329
+ @extend %icon-size--md;
1330
+ }
1331
+ }
1332
+ }
1333
+
1334
+ // - - - - - - - - - - - - - - - - - - - -
1335
+ // Form Input
1336
+ // - - - - - - - - - - - - - - - - - - - -
1337
+
1338
+ @mixin form-input-bg-x-rtl-support() {
1339
+ // has to be included in the root
1340
+ :root[dir="rtl"] {
1341
+ --mer-form-input__bg-position--x: calc(
1342
+ 100% - var(--mer-form-input__bg-position--x-value)
1343
+ );
1344
+ }
1345
+ }
1346
+
1199
1347
  @mixin icon-input-background-common-styles(
1200
1348
  $background-size: "0",
1201
1349
  $background-position-x: "0"
@@ -1762,7 +1910,7 @@ Window
1762
1910
  }
1763
1911
 
1764
1912
  &::before {
1765
- @extend %icon-mask--before;
1913
+ @extend %icon-size--md;
1766
1914
  }
1767
1915
  }
1768
1916
  }
@@ -1779,7 +1927,7 @@ Window
1779
1927
  }
1780
1928
 
1781
1929
  &::before {
1782
- @extend %icon-background--before;
1930
+ @extend %icon-size--md;
1783
1931
  }
1784
1932
  }
1785
1933
  }
@@ -1796,28 +1944,28 @@ Window
1796
1944
  }
1797
1945
 
1798
1946
  &::before {
1799
- @extend %icon-background--before;
1947
+ @extend %icon-size--md;
1800
1948
  @extend %button-icon-after-and-text--before;
1801
1949
  }
1802
1950
  }
1803
1951
  }
1804
1952
 
1805
- %form-input-element-icon {
1806
- @extend %form-input-base;
1953
+ %form-input-icon {
1954
+ @extend %form-input;
1807
1955
  padding-inline-start: calc(
1808
1956
  var(--mer-form-input__padding-inline) * 2 + var(--mer-form-input__icon-size)
1809
1957
  );
1810
1958
  }
1811
1959
 
1812
- @mixin form-input-text-icon(
1813
- $selector: ".form-input-text-icon",
1814
- $icon-path: null
1815
- ) {
1960
+ /// @group Form
1961
+ /// @param {String} $selector [".form-input--icon"] -
1962
+ /// @param {type} $icon-path [null] -
1963
+ @mixin form-input-icon($selector: ".form-input--icon", $icon-path: null) {
1816
1964
  #{$selector} {
1817
1965
  @if $icon-path != null {
1818
1966
  --icon-path: #{$icon-path};
1819
1967
  }
1820
- @extend %form-input-element-icon;
1968
+ @extend %form-input-icon;
1821
1969
  @extend %icon-input-background;
1822
1970
  }
1823
1971
  }
@@ -1826,7 +1974,8 @@ Window
1826
1974
  // Components
1827
1975
  @mixin checkbox-tokens() {
1828
1976
  // size
1829
- --ch-checkbox__container-size: var(--mer-spacing--md);
1977
+ --ch-checkbox__container-size: var(--mer-control__block-size--tiny);
1978
+ --ch-checkbox__option-size: calc(var(--mer-control__block-size--tiny) / 2);
1830
1979
 
1831
1980
  // border
1832
1981
  --mer-checkbox__border: var(--mer-border__width--sm) solid
@@ -1841,48 +1990,62 @@ Window
1841
1990
 
1842
1991
  %checkbox {
1843
1992
  @include checkbox-tokens();
1844
- font-weight: var(--mer-label__font-weight);
1993
+ // TODO (inherit this from the form-control
1994
+ font-family: var(--mer-form-input__font-family);
1995
+ font-size: var(--mer-form-input__font-size);
1996
+ line-height: var(--mer-line-height--regular);
1997
+ color: var(--mer-form-input__color);
1998
+ // END TODO (inherit this from the form-control)
1845
1999
 
1846
2000
  // Input
1847
2001
  &__input {
1848
- background-color: var(--mer-checkbox__bg-color);
1849
- border: var(--mer-checkbox__border);
1850
- border-radius: var(--mer-checkbox__border-radius);
2002
+ border: var(--mer-form-input__border);
2003
+ border-radius: var(--mer-border__radius--2xs);
1851
2004
 
1852
2005
  &--focus {
1853
- @include focus-style();
2006
+ @include focus-style(true);
2007
+ }
2008
+
2009
+ &--checked-and-indeterminate {
2010
+ border-color: var(--mer-color__neutral-gray--300);
2011
+ }
2012
+
2013
+ // Not implemented yet in the control
2014
+ &--error {
2015
+ background-color: var(--colors-Foundation-un-color__red--5);
1854
2016
  }
1855
2017
 
1856
2018
  &--disabled {
1857
- border-color: var(--mer-text__disabled);
2019
+ border-color: var(--mer-border-color__primary--disabled);
1858
2020
  }
1859
2021
  }
1860
2022
 
1861
2023
  // Option
1862
2024
  &__option {
1863
2025
  &--checked {
1864
- color: var(--mer-checkbox-check__color);
2026
+ color: var(--mer-border-color__neutral--active);
1865
2027
  }
1866
2028
 
1867
2029
  &--indeterminate {
1868
- inline-size: 8px;
1869
- block-size: 1.5px;
1870
- border-radius: 2px;
1871
- color: var(--mer-checkbox-check__color);
2030
+ color: var(--mer-color__neutral-gray--300);
2031
+ block-size: var(--mer-spacing--3xs);
2032
+ }
2033
+
2034
+ // Not implemented yet in the control
2035
+ &--error {
2036
+ color: var(--mer-color__message-red--100);
2037
+ border-color: var(--mer-border-color__error);
1872
2038
  }
1873
2039
 
1874
2040
  &--disabled {
1875
- color: var(--mer-text__disabled);
2041
+ color: var(--mer-accent__primary--disabled);
2042
+ border-color: var(-mer-border-color__primary--disabled);
1876
2043
  }
1877
2044
  }
1878
2045
 
1879
2046
  // Label
1880
- &__label {
1881
- margin-inline-start: var(--mer-label__space);
1882
-
1883
- &--disabled {
1884
- color: var(--mer-text__disabled);
1885
- }
2047
+ &__label--disabled {
2048
+ color: var(--mer-text__primary--disabled);
1886
2049
  }
1887
2050
  }
1888
2051
 
@@ -1890,12 +2053,17 @@ Window
1890
2053
  /// @param {String} $checkbox-selector [".checkbox"] -
1891
2054
  /// @param {String} $checkbox__input-selector [".checkbox::part(input)"] -
1892
2055
  /// @param {String} $checkbox__input--disabled-selector [".checkbox::part(input disabled)"] -
2056
+ /// @param {String} $checkbox__input--checked-selector [".checkbox::part(input checked)"] -
2057
+ /// @param {String} $checkbox__input--indeterminate-selector [".checkbox::part(input indeterminate)"] -
2058
+ /// @param {String} $checkbox__input--error-selector [".checkbox::part(input error)"] -
1893
2059
  /// @param {String} $checkbox__option--disabled-selector [".checkbox::part(option disabled)"] -
1894
2060
  /// @param {String} $checkbox__option--checked-selector [".checkbox::part(option checked)"] -
1895
2061
  /// @param {String} $checkbox__option--indeterminate-selector [".checkbox::part(option indeterminate)"] -
2062
+ /// @param {String} $checkbox__option--error-selector [".checkbox::part(option error)"] -
1896
2063
  /// @param {String} $checkbox__label-selector [".checkbox::part(label)"] -
1897
2064
  /// @param {String} $checkbox__label--disabled-selector [".checkbox::part(label disabled)"] -
1898
2065
  /// @param {Boolean} $add--disabled [true] -
2066
+ /// @param {Boolean} $add--error [true] -
1899
2067
  /// @param {Boolean} $add--label [true] -
1900
2068
  @mixin checkbox(
1901
2069
  $checkbox-selector: ".checkbox",
@@ -1904,6 +2072,13 @@ Window
1904
2072
 
1905
2073
  $checkbox__input--disabled-selector: ".checkbox::part(input disabled)",
1906
2074
 
2075
+ $checkbox__input--checked-selector: ".checkbox::part(input checked)",
2076
+
2077
+ $checkbox__input--indeterminate-selector:
2078
+ ".checkbox::part(input indeterminate)",
2079
+
2080
+ $checkbox__input--error-selector: ".checkbox::part(input error)",
2081
+
1907
2082
  $checkbox__option--disabled-selector: ".checkbox::part(option disabled)",
1908
2083
 
1909
2084
  $checkbox__option--checked-selector: ".checkbox::part(option checked)",
@@ -1911,20 +2086,21 @@ Window
1911
2086
  $checkbox__option--indeterminate-selector:
1912
2087
  ".checkbox::part(option indeterminate)",
1913
2088
 
2089
+ $checkbox__option--error-selector: ".checkbox::part(option error)",
2090
+
1914
2091
  $checkbox__label-selector: ".checkbox::part(label)",
1915
2092
 
1916
2093
  $checkbox__label--disabled-selector: ".checkbox::part(label disabled)",
1917
2094
 
1918
2095
  $add--disabled: true,
2096
+ $add--error: true,
1919
2097
  $add--label: true
1920
2098
  ) {
1921
2099
  #{$checkbox-selector} {
1922
2100
  @extend %checkbox;
1923
2101
  }
1924
2102
 
1925
- // - - - - - - - - - - - - - - - - - - - -
1926
- // Input
1927
- // - - - - - - - - - - - - - - - - - - - -
2103
+ // Input
1928
2104
  #{$checkbox__input-selector} {
1929
2105
  @extend %checkbox__input;
1930
2106
 
@@ -1932,10 +2108,15 @@ Window
1932
2108
  @extend %checkbox__input--focus;
1933
2109
  }
1934
2110
  }
2111
+ #{$checkbox__input--checked-selector} {
2112
+ @extend %checkbox__input--checked-and-indeterminate;
2113
+ }
1935
2114
 
1936
- // - - - - - - - - - - - - - - - - - - - -
1937
- // Option
1938
- // - - - - - - - - - - - - - - - - - - - -
2115
+ #{$checkbox__input--indeterminate-selector} {
2116
+ @extend %checkbox__input--checked-and-indeterminate;
2117
+ }
2118
+
2119
+ // Option
1939
2120
  #{$checkbox__option--checked-selector} {
1940
2121
  @extend %checkbox__option--checked;
1941
2122
  }
@@ -1944,18 +2125,15 @@ Window
1944
2125
  @extend %checkbox__option--indeterminate;
1945
2126
  }
1946
2127
 
1947
- // - - - - - - - - - - - - - - - - - - - -
1948
- // Label
1949
- // - - - - - - - - - - - - - - - - - - - -
2128
+ // Label
1950
2129
  @if $add--label {
1951
2130
  #{$checkbox__label-selector} {
1952
- @extend %checkbox__label;
2131
+ @extend %label;
2132
+ margin-inline-start: var(--label__inline-margin);
1953
2133
  }
1954
2134
  }
1955
2135
 
1956
- // - - - - - - - - - - - - - - - - - - - -
1957
- // Disabled
1958
- // - - - - - - - - - - - - - - - - - - - -
2136
+ // Disabled
1959
2137
  @if $add--disabled {
1960
2138
  // Input
1961
2139
  #{$checkbox__input--disabled-selector} {
@@ -1974,6 +2152,174 @@ Window
1974
2152
  }
1975
2153
  }
1976
2154
  }
2155
+
2156
+ // Error
2157
+ @if $add--error {
2158
+ // Input
2159
+ #{$checkbox__input--error-selector} {
2160
+ @extend %checkbox__input--error;
2161
+ }
2162
+
2163
+ // Option
2164
+ #{$checkbox__option--error-selector} {
2165
+ @extend %checkbox__option--error;
2166
+ }
2167
+ }
2168
+ }
2169
+
2170
+ @mixin radio-group-tokens() {
2171
+ // css properties provided by ch-radio-group-render component. Do not edit their names.
2172
+ --ch-radio-group__radio-container-size: var(--mer-control__block-size--tiny);
2173
+ --ch-radio-group__radio-option-size: var(--mer-spacing--xs);
2174
+ // /end
2175
+
2176
+ --radio-group_gap: var(--mer-spacing--xs);
2177
+
2178
+ // Item
2179
+
2180
+ // Container
2181
+ --radio-group-container__border-color: var();
2182
+
2183
+ // Checked
2184
+ --radio-group__color--checked: var();
2185
+ }
2186
+
2187
+
2188
+ %radio-group {
2189
+ @include radio-group-tokens();
2190
+
2191
+ // TODO : Extend form input styles
2192
+
2193
+ // Css properties provided by the ch-radio-group-render
2194
+ --ch-radio-group__radio-container-size: var(--mer-control__block-size--tiny);
2195
+ --ch-radio-group__radio-option-size: calc(var(--mer-spacing--2xs) * 1.5);
2196
+ // /End
2197
+
2198
+ color: var(--mer-body__color);
2199
+ gap: var(--radio-group_gap);
2200
+ }
2201
+
2202
+ %radio-item {
2203
+ // gas is set as margin-inline-start on the "radio__label" part
2204
+ }
2205
+
2206
+ %radio__container {
2207
+ border: var(--mer-form-input__border);
2208
+ flex-shrink: 0;
2209
+
2210
+ &--focus {
2211
+ @include focus-style(true);
2212
+ }
2213
+
2214
+ &--disabled {
2215
+ color: var(--borders-un-border-color__disabled);
2216
+ }
2217
+
2218
+ &--checked {
2219
+ color: var(--mer-form-input-check__border-color);
2220
+ }
2221
+
2222
+ // Not implemented yet in the control
2223
+ &--error {
2224
+ background-color: var(--colors-Foundation-un-color__red--100);
2225
+ color: var(--borders-un-border-color__error);
2226
+ }
2227
+ }
2228
+
2229
+ %radio__label {
2230
+ font-size: 12px;
2231
+ }
2232
+
2233
+ %radio__label--disabled {
2234
+ @extend %label--disabled;
2235
+ }
2236
+
2237
+ /// @group Radio Group
2238
+ /// @param {String} $radio-group-selector [".radio-group"] -
2239
+ /// @param {String} $radio-item-selector [".radio-group::part(radio-item)"] -
2240
+ /// @param {String} $radio-item__container-selector [".radio-group::part(radio__container)"] -
2241
+ /// @param {String} $radio-item__container--focus-selector [".radio-group::part(radio__container):focus-within"] -
2242
+ /// @param {String} $radio-item__container--disabled-selector [".radio-group::part(radio__container disabled)"] -
2243
+ /// @param {String} $radio-item__container--checked-selector [".radio-group::part(radio__container checked)"] -
2244
+ /// @param {String} $radio-item__container--error-selector [".radio-group::part(radio__container error)"] -
2245
+ /// @param {String} $radio-item__label [".radio-group::part(radio__label)"] -
2246
+ /// @param {String} $radio-item__label--disabled-selector [".radio-group::part(radio__label disabled)"] -
2247
+ /// @param {Boolean} $add--disabled [true] -
2248
+ /// @param {Boolean} $add--error [true] -
2249
+ @mixin radio-group(
2250
+ $radio-group-selector: ".radio-group",
2251
+
2252
+ $radio-item-selector: ".radio-group::part(radio-item)",
2253
+
2254
+ $radio-item__container-selector: ".radio-group::part(radio__container)",
2255
+
2256
+ $radio-item__container--focus-selector:
2257
+ ".radio-group::part(radio__container):focus-within",
2258
+
2259
+ $radio-item__container--disabled-selector:
2260
+ ".radio-group::part(radio__container disabled)",
2261
+
2262
+ $radio-item__container--checked-selector:
2263
+ ".radio-group::part(radio__container checked)",
2264
+
2265
+ $radio-item__container--error-selector:
2266
+ ".radio-group::part(radio__container error)",
2267
+
2268
+ $radio-item__label: ".radio-group::part(radio__label)",
2269
+
2270
+ $radio-item__label--disabled-selector:
2271
+ ".radio-group::part(radio__label disabled)",
2272
+
2273
+ $add--disabled: true,
2274
+
2275
+ $add--error: true
2276
+ ) {
2277
+ #{$radio-group-selector} {
2278
+ @extend %radio-group;
2279
+ }
2280
+
2281
+ #{$radio-item-selector} {
2282
+ @extend %radio-item;
2283
+ }
2284
+
2285
+ #{$radio-item__container-selector} {
2286
+ @extend %radio__container;
2287
+ }
2288
+
2289
+ #{$radio-item__container--focus-selector} {
2290
+ @extend %radio__container--focus;
2291
+ }
2292
+
2293
+ @if $add--disabled {
2294
+ #{$radio-item__container--disabled-selector} {
2295
+ @extend %radio__container--disabled;
2296
+ border-color: var(--mer-border-color__primary--disabled);
2297
+ }
2298
+ }
2299
+
2300
+ #{$radio-item__container--checked-selector} {
2301
+ @extend %radio__container--checked;
2302
+ border-color: var(--mer-color__neutral-gray--300);
2303
+ }
2304
+
2305
+ @if $add--error {
2306
+ #{$radio-item__container--error-selector} {
2307
+ @extend %radio__container--error;
2308
+ }
2309
+ }
2310
+
2311
+ @if $radio-item__label {
2312
+ #{$radio-item__label} {
2313
+ @extend %label;
2314
+ @extend %label--after;
2315
+ }
2316
+ }
2317
+
2318
+ @if $add--disabled {
2319
+ #{$radio-item__label--disabled-selector} {
2320
+ @extend %radio__label--disabled;
2321
+ }
2322
+ }
1977
2323
  }
1978
2324
 
1979
2325
  @mixin shortcuts-tokens() {
@@ -2029,13 +2375,25 @@ Window
2029
2375
  }
2030
2376
 
2031
2377
  @mixin tree-view-tokens() {
2032
- --ch-tree-view-item-custom-padding-inline-start: var(--mer-spacing--2xs);
2378
+ // - - - - - - - - - - - - - - - - - - - -
2379
+ // Tree View
2380
+ // - - - - - - - - - - - - - - - - - - - -
2381
+ --tree-view__font-size: var(--mer-body__font-size);
2382
+
2383
+ // - - - - - - - - - - - - - - - - - - - -
2384
+ // Item (Provided by the ch-tree)
2385
+ // - - - - - - - - - - - - - - - - - - - -
2386
+ --ch-tree-view-item-custom-padding-inline-start: var(--mer-spacing--xs);
2033
2387
  --ch-tree-view-item-gap: var(--mer-spacing--xs);
2034
2388
  --ch-tree-view-item__checkbox-size: var(--mer-spacing--md);
2035
2389
  --ch-tree-view-item__expandable-button-size: var(--mer-spacing--md);
2036
2390
  --ch-tree-view-item__image-size: var(--mer-spacing--md);
2037
2391
  --ch-tree-view-item__line--inset-inline-end: 4px;
2038
2392
 
2393
+ // - - - - - - - - - - - - - - - - - - - -
2394
+ // Item (Custom css properties)
2395
+ // - - - - - - - - - - - - - - - - - - - -
2396
+
2039
2397
  --tree-view__min-inline-size: max-content;
2040
2398
  --tree-view__padding: var(--mer-spacing--xs);
2041
2399
  --tree-view-item-custom__padding-inline-end: var(--mer-spacing--2xs);
@@ -2078,7 +2436,8 @@ Window
2078
2436
 
2079
2437
  %tree-view {
2080
2438
  @include tree-view-tokens();
2081
-
2439
+ font-size: var(--tree-view__font-size);
2440
+ line-height: var(--mer-line-height--regular);
2082
2441
  padding: var(--tree-view__padding);
2083
2442
  min-inline-size: var(--tree-view__min-inline-size);
2084
2443
  }
@@ -2215,6 +2574,10 @@ Window
2215
2574
  ".tree-view-primary::part(item__checkbox-input)",
2216
2575
  $item__checkbox-input--disabled-selector:
2217
2576
  ".tree-view-primary::part(item__checkbox-input disabled)",
2577
+ $item__checkbox-input--checked-selector:
2578
+ ".tree-view-primary::part(item__checkbox-input checked)",
2579
+ $item__checkbox-input--indeterminate-selector:
2580
+ ".tree-view-primary::part(item__checkbox-input indeterminate)",
2218
2581
  $item__checkbox-option--disabled-selector:
2219
2582
  ".tree-view-primary::part(item__checkbox-option disabled)",
2220
2583
  $item__checkbox-option--checked-selector:
@@ -2301,10 +2664,16 @@ Window
2301
2664
  @include checkbox(
2302
2665
  $checkbox-selector: #{$item__checkbox-selector},
2303
2666
 
2667
+ // input
2304
2668
  $checkbox__input-selector: #{$item__checkbox-input-selector},
2305
2669
 
2306
2670
  $checkbox__input--disabled-selector: #{$item__checkbox-input--disabled-selector},
2307
2671
 
2672
+ $checkbox__input--checked-selector: #{$item__checkbox-input--checked-selector},
2673
+
2674
+ $checkbox__input--indeterminate-selector: #{$item__checkbox-input--indeterminate-selector},
2675
+
2676
+ // option
2308
2677
  $checkbox__option--disabled-selector: #{$item__checkbox-option--disabled-selector},
2309
2678
 
2310
2679
  $checkbox__option--checked-selector: #{$item__checkbox-option--checked-selector},
@@ -2312,26 +2681,11 @@ Window
2312
2681
  $checkbox__option--indeterminate-selector: #{$item__checkbox-option--indeterminate-selector},
2313
2682
 
2314
2683
  $add--disabled: $add--disabled,
2684
+ $add--error: false,
2315
2685
  $add--label: false
2316
2686
  );
2317
2687
  }
2318
2688
 
2319
- // // folder
2320
- // &--folder::part(action)::before {
2321
- // background-image: url("../src/showcase/assets/icons/folder.svg");
2322
- // }
2323
- // &--folder::part(action expanded)::before {
2324
- // background-image: url("../src/showcase/assets/icons/folder-open.svg");
2325
- // }
2326
-
2327
- // // module
2328
- // &--module::part(action)::before {
2329
- // background-image: url("../src/showcase/assets/icons/module.svg");
2330
- // }
2331
- // &--module::part(action expanded)::before {
2332
- // background-image: url("../src/showcase/assets/icons/module-open.svg");
2333
- // }
2334
-
2335
2689
  @mixin tabular-grid-tokens() {
2336
2690
  // Generic tokens for texts
2337
2691
  --grid-base__font-size: var(--mer-body__font-size);
@@ -2905,7 +3259,7 @@ Window
2905
3259
  gap: var(--grid-base__icon-gap);
2906
3260
  }
2907
3261
  #{$tabular-grid-rowset-legend__caret} {
2908
- @extend %icon-background--before;
3262
+ @extend %icon-size--md;
2909
3263
  }
2910
3264
  #{$tabular-grid-rowset-legend__selector-label} {
2911
3265
  @extend %tabular-grid-rowset-legend__selector-label;
@@ -2915,7 +3269,7 @@ Window
2915
3269
  }
2916
3270
  #{$tabular-grid-rowset-legend__icon} {
2917
3271
  @extend %tabular-grid-rowset-legend__icon;
2918
- @extend %icon-background--before;
3272
+ @extend %icon-size--md;
2919
3273
  @extend %icon__gemini-tools_category-group--on-surface-enabled-dark;
2920
3274
  }
2921
3275
 
@@ -2928,7 +3282,7 @@ Window
2928
3282
  }
2929
3283
  // drag icon
2930
3284
  #{$tabular-grid-cell__drag-icon} {
2931
- @extend %icon-background--before;
3285
+ @extend %icon-size--md;
2932
3286
  @extend %icon__navigation_drag--on-surface-enabled-dark;
2933
3287
  margin-inline-end: var(--grid-base__icon-gap);
2934
3288
  }
@@ -2959,7 +3313,7 @@ Window
2959
3313
  // actions icon
2960
3314
  #{$tabular-grid-cell__actions-icon} {
2961
3315
  width: 100%;
2962
- @extend %icon-background--before;
3316
+ @extend %icon-size--md;
2963
3317
  @extend %icon__gemini-tools_show-more-vertical--on-surface-enabled-dark;
2964
3318
  border: none;
2965
3319
  }
@@ -3165,8 +3519,9 @@ Window
3165
3519
 
3166
3520
  // Base
3167
3521
  $base-classes: true,
3522
+ $label: true,
3168
3523
  $button-classes: true,
3169
- $form-input-text-classes: true,
3524
+ $form-controls-classes: true,
3170
3525
  $icon-classes: true,
3171
3526
 
3172
3527
  // Icons
@@ -3175,6 +3530,7 @@ Window
3175
3530
  // Components
3176
3531
  $components: true,
3177
3532
  $checkbox: true,
3533
+ $radio-group: true,
3178
3534
  $tree-view-primary: true,
3179
3535
  $tabular-grid: true,
3180
3536
  $code: true
@@ -18686,6 +19042,11 @@ gemini-tools: $gemini-tools,
18686
19042
  // Base classes
18687
19043
  // - - - - - - - - - - - - - - - - - - - -
18688
19044
  @if $base-classes {
19045
+ // Label classes
19046
+ @if $label {
19047
+ @include label();
19048
+ }
19049
+
18689
19050
  // Button classes
18690
19051
  @if $button-classes {
18691
19052
  // Button primary
@@ -18698,16 +19059,16 @@ gemini-tools: $gemini-tools,
18698
19059
  @include button-tertiary();
18699
19060
  }
18700
19061
 
18701
- // Form input text
18702
- @if $form-input-text-classes {
18703
- @include form-input-text-only();
19062
+ // Form control classes
19063
+ @if $form-controls-classes {
19064
+ @include form-input();
18704
19065
  }
18705
19066
 
18706
19067
  // Icon classes
18707
19068
  @if $icon-classes {
18708
19069
  @include icon-mask();
18709
19070
  @include icon-background();
18710
- @include form-input-text-icon();
19071
+ @include form-input-icon();
18711
19072
  @include form-input-bg-x-rtl-support();
18712
19073
  }
18713
19074
  }
@@ -18732,7 +19093,7 @@ gemini-tools: $gemini-tools,
18732
19093
  @include button-icon-after-and-text();
18733
19094
 
18734
19095
  // Form input text
18735
- @include form-input-text-icon();
19096
+ @include form-input-icon();
18736
19097
  }
18737
19098
 
18738
19099
  // - - - - - - - - - - - - - - - - - - -
@@ -18743,6 +19104,12 @@ gemini-tools: $gemini-tools,
18743
19104
  @if $checkbox {
18744
19105
  @include checkbox();
18745
19106
  }
19107
+
19108
+ // radio-group
19109
+ @if $radio-group {
19110
+ @include radio-group();
19111
+ }
19112
+
18746
19113
  // tree view
18747
19114
  @if $tree-view-primary {
18748
19115
  @include tree-view-primary();