@genexus/mercury 0.4.6 → 0.4.7

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
@@ -63,6 +63,20 @@
63
63
  gap: $gap;
64
64
  }
65
65
 
66
+ // - - - - - - - - - - - - - - - - - - - -
67
+ // Ellipsis
68
+ // - - - - - - - - - - - - - - - - - - - -
69
+
70
+ @mixin ellipsis() {
71
+ display: block;
72
+ overflow: hidden;
73
+ text-overflow: ellipsis;
74
+ white-space: nowrap;
75
+ }
76
+ %ellipsis {
77
+ @include ellipsis();
78
+ }
79
+
66
80
  /// Replace `$search` with `$replace` in `$string`
67
81
  /// @param {String} $string - Initial string
68
82
  /// @param {String} $search - Substring to replace
@@ -216,6 +230,20 @@
216
230
  gap: $gap;
217
231
  }
218
232
 
233
+ // - - - - - - - - - - - - - - - - - - - -
234
+ // Ellipsis
235
+ // - - - - - - - - - - - - - - - - - - - -
236
+
237
+ @mixin ellipsis() {
238
+ display: block;
239
+ overflow: hidden;
240
+ text-overflow: ellipsis;
241
+ white-space: nowrap;
242
+ }
243
+ %ellipsis {
244
+ @include ellipsis();
245
+ }
246
+
219
247
 
220
248
  /*----------------------
221
249
  Focus
@@ -272,6 +300,7 @@ Control
272
300
  @mixin control-colors-enabled() {
273
301
  background-color: var(--control__bg-color);
274
302
  color: var(--control__color);
303
+ --ch-placeholder-color: var(--control-placeholder__color);
275
304
  // enabled border color is defined in control-border()
276
305
  }
277
306
  @mixin control-colors-hover() {
@@ -281,6 +310,7 @@ Control
281
310
  --control__bg-color: var(--control__background-color--disabled);
282
311
  --control__border-color: var(--control__border-color--disabled);
283
312
  --control__color: var(--control__color--disabled);
313
+ --ch-placeholder-color: var(--control-placeholder__color--disabled);
284
314
  }
285
315
  @mixin control-colors-error() {
286
316
  --control__border-color: var(--control__border-color--error);
@@ -292,6 +322,13 @@ Control
292
322
  border-color: var(--control__border-color);
293
323
  border-radius: var(--control__border-radius);
294
324
  }
325
+ @mixin control-remove-border() {
326
+ // This resets the border applied
327
+ // (for controls inside the property grid)
328
+ --control__border-width: 0;
329
+ --control__border-color: transparent;
330
+ --control__border-radius: 0;
331
+ }
295
332
  // Font
296
333
  @mixin control-font-weight-regular() {
297
334
  font-weight: var(--control__font-weight--regular);
@@ -1045,9 +1082,9 @@ Body Spacing
1045
1082
 
1046
1083
  // - - - - - - - Placeholder - - - - - - -
1047
1084
 
1048
- --control-placeholder__color: var(
1049
- --ch-placeholder-color,
1050
- var(--mer-text__neutral)
1085
+ --control-placeholder__color: var(--ch-placeholder-color);
1086
+ --control-placeholder__color--disabled: var(
1087
+ --mer-form-input__color--disabled
1051
1088
  );
1052
1089
  --control-placeholder__font-style: italic;
1053
1090
 
@@ -1110,7 +1147,7 @@ Body Spacing
1110
1147
  // field
1111
1148
  --field__row-gap: var(--mer-spacing--xs);
1112
1149
  --field__column-gap: var(--mer-spacing--md);
1113
- --field-inline-label__margin-block-start: var(--mer-spacing--2xs);
1150
+ --field-inline-label__margin-block-start: 6px; // 6px is the proper value, but it does not exists on the mercury ds.
1114
1151
  }
1115
1152
 
1116
1153
  @mixin semantic-icon() {
@@ -1359,12 +1396,6 @@ Body Spacing
1359
1396
  }
1360
1397
 
1361
1398
 
1362
- // Tokens Other
1363
- :root {
1364
- --ch-placeholder-color: var(--mer-text__neutral);
1365
- }
1366
-
1367
-
1368
1399
  // Base classes
1369
1400
  @mixin button-common-styles() {
1370
1401
  display: inline-grid;
@@ -1430,6 +1461,20 @@ Body Spacing
1430
1461
  gap: $gap;
1431
1462
  }
1432
1463
 
1464
+ // - - - - - - - - - - - - - - - - - - - -
1465
+ // Ellipsis
1466
+ // - - - - - - - - - - - - - - - - - - - -
1467
+
1468
+ @mixin ellipsis() {
1469
+ display: block;
1470
+ overflow: hidden;
1471
+ text-overflow: ellipsis;
1472
+ white-space: nowrap;
1473
+ }
1474
+ %ellipsis {
1475
+ @include ellipsis();
1476
+ }
1477
+
1433
1478
 
1434
1479
  /*----------------------
1435
1480
  Focus
@@ -1486,6 +1531,7 @@ Control
1486
1531
  @mixin control-colors-enabled() {
1487
1532
  background-color: var(--control__bg-color);
1488
1533
  color: var(--control__color);
1534
+ --ch-placeholder-color: var(--control-placeholder__color);
1489
1535
  // enabled border color is defined in control-border()
1490
1536
  }
1491
1537
  @mixin control-colors-hover() {
@@ -1495,6 +1541,7 @@ Control
1495
1541
  --control__bg-color: var(--control__background-color--disabled);
1496
1542
  --control__border-color: var(--control__border-color--disabled);
1497
1543
  --control__color: var(--control__color--disabled);
1544
+ --ch-placeholder-color: var(--control-placeholder__color--disabled);
1498
1545
  }
1499
1546
  @mixin control-colors-error() {
1500
1547
  --control__border-color: var(--control__border-color--error);
@@ -1506,6 +1553,13 @@ Control
1506
1553
  border-color: var(--control__border-color);
1507
1554
  border-radius: var(--control__border-radius);
1508
1555
  }
1556
+ @mixin control-remove-border() {
1557
+ // This resets the border applied
1558
+ // (for controls inside the property grid)
1559
+ --control__border-width: 0;
1560
+ --control__border-color: transparent;
1561
+ --control__border-radius: 0;
1562
+ }
1509
1563
  // Font
1510
1564
  @mixin control-font-weight-regular() {
1511
1565
  font-weight: var(--control__font-weight--regular);
@@ -2152,17 +2206,17 @@ Body Spacing
2152
2206
  /// @param {String} $field-selector [".field"] -
2153
2207
  /// @param {String} $field-block-selector [".field-block"] -
2154
2208
  /// @param {String} $field-inline-selector [".field-inline"] -
2155
- /// @param {String} $field-inline__label-selector [".field-inline > .label"] -
2209
+ /// @param {String} $field-inline__label-selector [".field-inline .label"] -
2156
2210
  /// @param {String} $field-group-cols-2-selector [".field-group-cols-2"] -
2157
- /// @param {String} $field-group-cols-2__label-selector [".field-group-cols-2 > .label"] -
2211
+ /// @param {String} $field-group-cols-2__label-selector [".field-group-cols-2 .label"] -
2158
2212
  @mixin field(
2159
2213
  $field-group-selector: ".field-group",
2160
2214
  $field-selector: ".field",
2161
2215
  $field-block-selector: ".field-block",
2162
2216
  $field-inline-selector: ".field-inline",
2163
- $field-inline__label-selector: ".field-inline > .label",
2217
+ $field-inline__label-selector: ".field-inline .label",
2164
2218
  $field-group-cols-2-selector: ".field-group-cols-2",
2165
- $field-group-cols-2__label-selector: ".field-group-cols-2 > .label"
2219
+ $field-group-cols-2__label-selector: ".field-group-cols-2 .label"
2166
2220
  ) {
2167
2221
  #{$field-group-selector} {
2168
2222
  @extend %field-group;
@@ -2193,89 +2247,6 @@ Body Spacing
2193
2247
  }
2194
2248
  }
2195
2249
 
2196
- %form-input {
2197
- @include control-colors-enabled();
2198
- @include control-border();
2199
- @include control-font-weight-regular();
2200
- @include control-height-regular();
2201
- @include control-padding-inline();
2202
-
2203
- &--focus {
2204
- @include focus-border();
2205
- }
2206
-
2207
- &--hover {
2208
- @include control-colors-hover();
2209
- }
2210
-
2211
- &--disabled {
2212
- @include control-colors-disabled();
2213
- }
2214
-
2215
- &--disabled-placeholder {
2216
- --mer-form-input__color--placeholder: var(
2217
- --mer-form-input__color--disabled
2218
- );
2219
- }
2220
-
2221
- &--error {
2222
- border-color: var(--mer-form-input__border-color--error);
2223
- }
2224
- }
2225
-
2226
- %form-input__placeholder {
2227
- font-style: italic;
2228
- color: var(--mer-form-input__color--placeholder);
2229
- }
2230
-
2231
- /// @group Form
2232
- /// @param {String} $selector [".form-input"] -
2233
- /// @param {Boolean} $add--disabled [true] -
2234
- /// @param {Boolean} $add--placeholder [true] -
2235
- /// @param {Boolean} $add--placeholder-var [true] -
2236
- /// @param {Boolean} $add--error [true] -
2237
- @mixin form-input(
2238
- $selector: ".form-input",
2239
- $add--disabled: true,
2240
- $add--placeholder: true,
2241
- $add--placeholder-var: false,
2242
- $add--error: true
2243
- ) {
2244
- #{$selector} {
2245
- @extend %form-input;
2246
-
2247
- &:hover {
2248
- @extend %form-input--hover;
2249
- }
2250
-
2251
- @if $add--placeholder-var {
2252
- }
2253
-
2254
- @if $add--placeholder {
2255
- &::placeholder {
2256
- @include control-placeholder();
2257
- }
2258
- }
2259
-
2260
- &:focus {
2261
- @extend %form-input--focus;
2262
- }
2263
-
2264
- @if $add--disabled {
2265
- &:disabled,
2266
- &--disabled {
2267
- @extend %form-input--disabled;
2268
- }
2269
- }
2270
-
2271
- @if $add--error {
2272
- &--error {
2273
- @include control-colors-error();
2274
- }
2275
- }
2276
- }
2277
- }
2278
-
2279
2250
  // - - - - - - - - - - - - - - - - - - - -
2280
2251
  // Icon Sizes
2281
2252
  // - - - - - - - - - - - - - - - - - - - -
@@ -2468,7 +2439,10 @@ Body Spacing
2468
2439
  }
2469
2440
 
2470
2441
 
2471
- // heading
2442
+ /*----------------------
2443
+ Heading
2444
+ ----------------------*/
2445
+
2472
2446
  %heading {
2473
2447
  &-base {
2474
2448
  @include heading-tokens();
@@ -2620,6 +2594,18 @@ Body Spacing
2620
2594
  }
2621
2595
  }
2622
2596
 
2597
+ /*-------------------------------------
2598
+ Text States e.g.: for the property-grid
2599
+ -------------------------------------*/
2600
+
2601
+ %text-edited {
2602
+ font-weight: var(--mer-font__weight--bold);
2603
+ }
2604
+ %text-readonly {
2605
+ font-style: italic;
2606
+ color: var(--item__color--disabled);
2607
+ }
2608
+
2623
2609
 
2624
2610
  // Icons
2625
2611
  @mixin button-tokens-primary() {
@@ -3183,6 +3169,20 @@ Body Spacing
3183
3169
  gap: $gap;
3184
3170
  }
3185
3171
 
3172
+ // - - - - - - - - - - - - - - - - - - - -
3173
+ // Ellipsis
3174
+ // - - - - - - - - - - - - - - - - - - - -
3175
+
3176
+ @mixin ellipsis() {
3177
+ display: block;
3178
+ overflow: hidden;
3179
+ text-overflow: ellipsis;
3180
+ white-space: nowrap;
3181
+ }
3182
+ %ellipsis {
3183
+ @include ellipsis();
3184
+ }
3185
+
3186
3186
 
3187
3187
  /*----------------------
3188
3188
  Focus
@@ -3239,6 +3239,7 @@ Control
3239
3239
  @mixin control-colors-enabled() {
3240
3240
  background-color: var(--control__bg-color);
3241
3241
  color: var(--control__color);
3242
+ --ch-placeholder-color: var(--control-placeholder__color);
3242
3243
  // enabled border color is defined in control-border()
3243
3244
  }
3244
3245
  @mixin control-colors-hover() {
@@ -3248,6 +3249,7 @@ Control
3248
3249
  --control__bg-color: var(--control__background-color--disabled);
3249
3250
  --control__border-color: var(--control__border-color--disabled);
3250
3251
  --control__color: var(--control__color--disabled);
3252
+ --ch-placeholder-color: var(--control-placeholder__color--disabled);
3251
3253
  }
3252
3254
  @mixin control-colors-error() {
3253
3255
  --control__border-color: var(--control__border-color--error);
@@ -3259,6 +3261,13 @@ Control
3259
3261
  border-color: var(--control__border-color);
3260
3262
  border-radius: var(--control__border-radius);
3261
3263
  }
3264
+ @mixin control-remove-border() {
3265
+ // This resets the border applied
3266
+ // (for controls inside the property grid)
3267
+ --control__border-width: 0;
3268
+ --control__border-color: transparent;
3269
+ --control__border-radius: 0;
3270
+ }
3262
3271
  // Font
3263
3272
  @mixin control-font-weight-regular() {
3264
3273
  font-weight: var(--control__font-weight--regular);
@@ -3595,10 +3604,6 @@ Body Spacing
3595
3604
  }
3596
3605
  }
3597
3606
 
3598
- :root {
3599
- --ch-placeholder-color: var(--mer-text__neutral);
3600
- }
3601
-
3602
3607
 
3603
3608
  %combo-box {
3604
3609
  --ch-combo-box-separation-y: var(--mer-spacing--3xs);
@@ -3974,6 +3979,68 @@ Body Spacing
3974
3979
  }
3975
3980
  }
3976
3981
 
3982
+ %form-input {
3983
+ // ch-chameleon custom vars (do not edit their names)
3984
+ // --ch-edit-auto-fill-background-color: var(); not defined by design yet
3985
+ --ch-edit-gap: var(--control__icon-gap);
3986
+ --ch-edit__image-size: var(--mer-icon__box--md);
3987
+
3988
+ @include control-colors-enabled();
3989
+ @include control-border();
3990
+ @include control-font-weight-regular();
3991
+ @include control-height-regular();
3992
+ @include control-padding-inline();
3993
+
3994
+ &--focus {
3995
+ @include focus-border();
3996
+ }
3997
+
3998
+ &--hover {
3999
+ @include control-colors-hover();
4000
+ }
4001
+
4002
+ &--disabled {
4003
+ @include control-colors-disabled();
4004
+ }
4005
+ }
4006
+
4007
+ /// @group Form
4008
+ /// @param {String} $selector [".form-input"] -
4009
+ /// @param {String} $error-selector [".form-input-error"] -
4010
+ /// @param {Boolean} $add--disabled [true] -
4011
+ /// @param {Boolean} $add--error [true] -
4012
+ @mixin form-input(
4013
+ $selector: ".form-input",
4014
+ $error-selector: ".form-input-error",
4015
+ $add--disabled: true,
4016
+ $add--error: true,
4017
+ $add--placeholder: true
4018
+ ) {
4019
+ #{$selector} {
4020
+ @extend %form-input;
4021
+
4022
+ &:hover {
4023
+ @extend %form-input--hover;
4024
+ }
4025
+
4026
+ &:focus {
4027
+ @extend %form-input--focus;
4028
+ }
4029
+
4030
+ @if $add--disabled {
4031
+ &:disabled {
4032
+ @extend %form-input--disabled;
4033
+ }
4034
+ }
4035
+ }
4036
+
4037
+ @if $add--error {
4038
+ #{$error-selector} {
4039
+ @include control-colors-error();
4040
+ }
4041
+ }
4042
+ }
4043
+
3977
4044
  %list-box {
3978
4045
  --ch-action-list-group__expandable-button-size: 30px;
3979
4046
  // --ch-action-list-group__expandable-button-image-size: calc(100% - 4px);
@@ -4151,6 +4218,460 @@ Body Spacing
4151
4218
  }
4152
4219
  }
4153
4220
 
4221
+ // - - - - - - - - - - - - - - - - - - - -
4222
+ // ch-property-grid
4223
+ // - - - - - - - - - - - - - - - - - - - -
4224
+
4225
+ %property-grid {
4226
+ // shared properties
4227
+ &__property,
4228
+ &__value {
4229
+ align-items: center;
4230
+ }
4231
+
4232
+ &__property {
4233
+ &--readonly {
4234
+ @extend %text-readonly;
4235
+ }
4236
+ }
4237
+ &__value {
4238
+ @include control-remove-border();
4239
+ @extend %ellipsis;
4240
+
4241
+ &--readonly {
4242
+ @extend %text-readonly;
4243
+ }
4244
+ &--edited {
4245
+ @extend %text-edited;
4246
+ }
4247
+ &--editing {
4248
+ display: grid;
4249
+ padding: 0;
4250
+ }
4251
+ }
4252
+
4253
+ &-column-set {
4254
+ display: none; // Property grid should not display the column-set by design
4255
+ }
4256
+ }
4257
+
4258
+ /// @group Grid
4259
+ // ch-property-grid
4260
+ /// @param {String} $property-grid-selector [".property-grid"] -
4261
+ /// @param {String} $property-grid__main-selector [".property-grid::part(main)"] -
4262
+ // ch-property-grid-column-set
4263
+ /// @param {String} $property-grid-column-set [".property-grid-column-set"] -
4264
+ // ch-property-grid-column
4265
+ /// @param {String} $property-grid-column__bar-selector [".property-grid-column::part(bar)"] -
4266
+ /// @param {String} $property-grid-column__bar-resize-split-selector [".property-grid-column::part(bar-resize-split)"] -
4267
+ /// @param {String} $property-grid-column__selector-label-selector [".property-grid-column::part(selector-label)"] -
4268
+ /// @param {String} $property-grid-column__selector-selector [".property-grid-column::part(selector)"] -
4269
+ /// @param {String} $property-grid-column__selector--checked-selector [".property-grid-column::part(selector checked)"] -
4270
+ /// @param {String} $property-grid-column__selector--indeterminate-selector [".property-grid-column::part(selector indeterminate)"] -
4271
+ // ch-property-grid-row
4272
+ /// @param {String} $property-grid-row-selector [".property-grid-row"] -
4273
+ /// @param {String} $property-grid-row--focused-selector [".property-grid-row[focused]"] -
4274
+ /// @param {String} $property-grid-row--highlighted-selector [".property-grid-row[highlighted]"] -
4275
+ /// @param {String} $property-grid-row--selected-selector [".property-grid-row[selected]"] -
4276
+ /// @param {String} $property-grid-row--dragging-selector [".property-grid-row[dragging]"] -
4277
+ /// @param {String} $property-grid-row--highlighted__cell-selector [".property-grid-row[highlighted] > .property-grid-cell"] -
4278
+ // ch-property-grid-row > cell
4279
+ /// @param {String} $property-grid-row--selected__cell-selector [".property-grid-row[selected] > .property-grid-cell"] -
4280
+ // ch-property-grid-rowset
4281
+ /// @param {String} $property-grid-rowset-selector [".property-grid-rowset"] -
4282
+ /// @param {String} $property-grid-rowset--collapsed__legend-selector [".property-grid-rowset[collapsed] > .property-grid-rowset-legend"] -
4283
+ // ch-property-grid-rowset-legend
4284
+ /// @param {String} $property-grid-rowset-legend-selector [".property-grid-rowset-legend"] -
4285
+ /// @param {String} $property-grid-rowset-legend__caret-selector--collapsed [".property-grid-rowset[collapsed] > .property-grid-rowset-legend::part(caret)"] -
4286
+ /// @param {String} $property-grid-rowset-legend__caret-selector--expanded [".property-grid-rowset > .property-grid-rowset-legend::part(caret)"] -
4287
+ /// @param {String} $property-grid-rowset-legend__selector-label-selector [".property-grid-rowset-legend::part(selector-label)"] -
4288
+ /// @param {String} $property-grid-rowset-legend__selector-selector [".property-grid-rowset-legend::part(selector)"] -
4289
+ /// @param {String} $property-grid-rowset-legend__icon-selector [".property-grid-rowset-legend::part(icon)"] -
4290
+ // ch-property-grid-cell
4291
+ /// @param {String} $property-grid-cell-selector [".property-grid-cell"] -
4292
+ /// @param {String} $property-grid-cell--focused-selector [".property-grid-cell[focused]"] -
4293
+ /// @param {String} $property-grid-cell--selected-selector [".property-grid-cell[selected]"] -
4294
+ /// @param {String} $property-grid-cell__selector-label-selector [".property-grid-cell::part(selector-label)"] -
4295
+ /// @param {String} $property-grid-cell__selector-selector [".property-grid-cell::part(selector)"] -
4296
+ /// @param {String} $property-grid-cell__selector--checked-selector [".property-grid-cell::part(selector checked)"] -
4297
+ // ch-property-grid-cell (icons)
4298
+ /// @param {String} $property-grid-cell__actions-icon-selector [".property-grid-cell::part(actions-icon)"] -
4299
+ /// @param {String} $property-grid-cell__caret-icon-selector--collapsed [".property-grid-row:is( [collapsed], [leaf="false"]:not(:has(> .property-grid-rowset)) ) > .property-grid-cell::part(caret)"] -
4300
+ /// @param {String} $property-grid-cell__caret-icon-selector--expanded [".property-grid-row > .property-grid-cell::part(caret)"] -
4301
+ /// @param {String} $property-grid-cell__drag-icon-selector [".property-grid-cell::part(drag-icon)"] -
4302
+ /// @param {String} $property-grid-cell__node-icon-selector [".property-grid-row:has(> .property-grid-rowset) > .property-grid-cell::part(node-icon)"] -
4303
+ /// @param {String} $property-grid-cell__node-leaf-icon-selector [".property-grid-cell::part(node-icon)"] -
4304
+ // row-actions
4305
+ /// @param {String} $property-grid-row-actions-selector [".property-grid-row-actions"] -
4306
+ /// @param {String} $property-grid-row-actions__window-selector [".property-grid-row-actions::part(window)"] -
4307
+ /// @param {String} $property-grid-row-actions__main-selector [".property-grid-row-actions::part(main)"] -
4308
+ @mixin property-grid(
4309
+ // ch-property-grid
4310
+ $property-grid-selector: ".property-grid",
4311
+ $property-grid__main-selector: ".property-grid::part(main)",
4312
+ // ch-property-grid-column-set
4313
+ $property-grid-column-set: ".property-grid-column-set",
4314
+ // ch-property-grid-column
4315
+ $property-grid-column__bar-selector: ".property-grid-column::part(bar)",
4316
+ $property-grid-column__bar-resize-split-selector:
4317
+ ".property-grid-column::part(bar-resize-split)",
4318
+ $property-grid-column__selector-label-selector:
4319
+ ".property-grid-column::part(selector-label)",
4320
+ $property-grid-column__selector-selector:
4321
+ ".property-grid-column::part(selector)",
4322
+ $property-grid-column__selector--checked-selector:
4323
+ ".property-grid-column::part(selector checked)",
4324
+ $property-grid-column__selector--indeterminate-selector:
4325
+ ".property-grid-column::part(selector indeterminate)",
4326
+ // ch-property-grid-row
4327
+ $property-grid-row-selector: ".property-grid-row",
4328
+ // ch-property-grid-row
4329
+ // interaction states
4330
+ $property-grid-row--focused-selector: ".property-grid-row[focused]",
4331
+ $property-grid-row--highlighted-selector: ".property-grid-row[highlighted]",
4332
+ $property-grid-row--selected-selector: ".property-grid-row[selected]",
4333
+ $property-grid-row--dragging-selector: ".property-grid-row[dragging]",
4334
+ $property-grid-row--highlighted__cell-selector:
4335
+ ".property-grid-row[highlighted] > .property-grid-cell",
4336
+ $property-grid-row--selected__cell-selector:
4337
+ ".property-grid-row[selected] > .property-grid-cell",
4338
+ // functional states (properties and values)
4339
+ $property-grid__property-selector:
4340
+ ".property-grid-row > .property-grid-cell:nth-child(1)",
4341
+ $property-grid__value-selector:
4342
+ ".property-grid-row > .property-grid-cell:nth-child(2)",
4343
+ $property-grid__property--readonly-selector:
4344
+ ".property-grid-property-readonly > .property-grid-cell:nth-child(1)",
4345
+ $property-grid__value--readonly-selector:
4346
+ ".property-grid-value-readonly > .property-grid-cell:nth-child(2)",
4347
+ $property-grid__value--edited-selector:
4348
+ ".property-grid-value-edited > .property-grid-cell:nth-child(2)",
4349
+ $property-grid__value--editing-selector:
4350
+ ".property-grid-value-editing > .property-grid-cell:nth-child(2)",
4351
+
4352
+ // ch-property-grid-rowset
4353
+ $property-grid-rowset-selector: ".property-grid-rowset",
4354
+ $property-grid-rowset--collapsed__legend-selector:
4355
+ ".property-grid-rowset[collapsed] > .property-grid-rowset-legend",
4356
+ // ch-property-grid-rowset-legend
4357
+ $property-grid-rowset-legend-selector: ".property-grid-rowset-legend",
4358
+ $property-grid-rowset-legend__caret-selector--collapsed:
4359
+ ".property-grid-rowset[collapsed] > .property-grid-rowset-legend::part(caret)",
4360
+ $property-grid-rowset-legend__caret-selector--expanded:
4361
+ ".property-grid-rowset > .property-grid-rowset-legend::part(caret)",
4362
+ $property-grid-rowset-legend__selector-label-selector:
4363
+ ".property-grid-rowset-legend::part(selector-label)",
4364
+ $property-grid-rowset-legend__selector-selector:
4365
+ ".property-grid-rowset-legend::part(selector)",
4366
+ $property-grid-rowset-legend__icon-selector:
4367
+ ".property-grid-rowset-legend::part(icon)",
4368
+ // ch-property-grid-cell
4369
+ $property-grid-cell-selector: ".property-grid-cell",
4370
+ $property-grid-cell--focused-selector: ".property-grid-cell[focused]",
4371
+ $property-grid-cell--selected-selector: ".property-grid-cell[selected]",
4372
+ $property-grid-cell__selector-label-selector:
4373
+ ".property-grid-cell::part(selector-label)",
4374
+ $property-grid-cell__selector-selector: ".property-grid-cell::part(selector)",
4375
+ $property-grid-cell__selector--checked-selector:
4376
+ ".property-grid-cell::part(selector checked)",
4377
+ // ch-property-grid-cell (icons)
4378
+ $property-grid-cell__actions-icon-selector:
4379
+ ".property-grid-cell::part(actions-icon)",
4380
+ $property-grid-cell__caret-icon-selector--collapsed:
4381
+ ".property-grid-row:is( [collapsed], [leaf='false']:not(:has(> .property-grid-rowset)) ) > .property-grid-cell::part(caret)",
4382
+ $property-grid-cell__caret-icon-selector--expanded:
4383
+ ".property-grid-cell::part(caret)",
4384
+ $property-grid-cell__drag-icon-selector:
4385
+ ".property-grid-cell::part(drag-icon)",
4386
+ $property-grid-cell__node-icon-selector:
4387
+ ".property-grid-row:has(> .property-grid-rowset) > .property-grid-cell::part(node-icon)",
4388
+ $property-grid-cell__node-leaf-icon-selector:
4389
+ ".property-grid-cell::part(node-icon)",
4390
+ // ch-property-grid-row-actions
4391
+ $property-grid-row-actions-selector: ".property-grid-row-actions",
4392
+ $property-grid-row-actions__window-selector:
4393
+ ".property-grid-row-actions::part(window)",
4394
+ $property-grid-row-actions__main-selector:
4395
+ ".property-grid-row-actions::part(main)"
4396
+ ) {
4397
+ // - - - - - - - - - - - - - - - - - - - - - - - - -
4398
+ // icons that are present in more than one place
4399
+ // - - - - - - - - - - - - - - - - - - - - - - - - -
4400
+
4401
+ // caret collapsed
4402
+ #{$property-grid-rowset-legend__caret-selector--collapsed},
4403
+ #{$property-grid-cell__caret-icon-selector--collapsed} {
4404
+ @extend %tabular-grid__icon-size;
4405
+ @extend %tabular-grid__icon-caret-collapsed--enabled;
4406
+ &:hover {
4407
+ @extend %tabular-grid__icon-caret-collapsed--hover;
4408
+ }
4409
+ &:active {
4410
+ @extend %tabular-grid__icon-caret-collapsed--active;
4411
+ }
4412
+ }
4413
+
4414
+ // caret expanded
4415
+ #{$property-grid-rowset-legend__caret-selector--expanded},
4416
+ #{$property-grid-cell__caret-icon-selector--expanded} {
4417
+ @extend %tabular-grid__icon-size;
4418
+ @extend %tabular-grid__icon-caret-expanded--enabled;
4419
+ &:hover {
4420
+ @extend %tabular-grid__icon-caret-expanded--hover;
4421
+ }
4422
+ &:active {
4423
+ @extend %tabular-grid__icon-caret-expanded--active;
4424
+ }
4425
+ }
4426
+
4427
+ // - - - - - - - - - - - - - - - - - - - -
4428
+ // ch-property-grid
4429
+ // - - - - - - - - - - - - - - - - - - - -
4430
+
4431
+ #{$property-grid-selector} {
4432
+ @extend %tabular-grid;
4433
+ &:focus {
4434
+ outline: none;
4435
+ }
4436
+ }
4437
+
4438
+ #{$property-grid__main-selector} {
4439
+ @extend %tabular-grid__main;
4440
+ }
4441
+
4442
+ // - - - - - - - - - - - - - - - - - - - -
4443
+ // ch-property-grid-column-set
4444
+ // - - - - - - - - - - - - - - - - - - - -
4445
+
4446
+ #{$property-grid-column-set} {
4447
+ @extend %tabular-grid-column-set;
4448
+ @extend %property-grid-column-set;
4449
+ }
4450
+
4451
+ // - - - - - - - - - - - - - - - - - - - -
4452
+ // ch-property-grid-column
4453
+ // - - - - - - - - - - - - - - - - - - - -
4454
+
4455
+ #{$property-grid-column__bar-selector} {
4456
+ @extend %tabular-grid-column__bar;
4457
+ }
4458
+
4459
+ #{$property-grid-column__bar-resize-split-selector} {
4460
+ @extend %tabular-grid-column__bar-resize-split;
4461
+ &:hover {
4462
+ @extend %tabular-grid-column__bar-resize-split--hover;
4463
+ }
4464
+ }
4465
+
4466
+ // checkbox (same styles add cell checkbox)
4467
+ #{$property-grid-column__selector-label-selector} {
4468
+ @extend %tabular-grid-cell__selector-label;
4469
+ }
4470
+
4471
+ #{$property-grid-column__selector-selector} {
4472
+ @extend %tabular-grid-cell__selector;
4473
+
4474
+ &::before {
4475
+ @extend %tabular-grid-cell__selector--before;
4476
+ }
4477
+
4478
+ &::after {
4479
+ @extend %tabular-grid-cell__selector--after;
4480
+ }
4481
+
4482
+ &:focus {
4483
+ outline: none;
4484
+ }
4485
+ }
4486
+
4487
+ #{$property-grid-column__selector--checked-selector} {
4488
+ &::after {
4489
+ @extend %tabular-grid-cell__selector--after-checked;
4490
+ }
4491
+ }
4492
+
4493
+ #{$property-grid-column__selector--indeterminate-selector} {
4494
+ &::after {
4495
+ @extend %tabular-grid-cell__selector--after-indeterminate;
4496
+ }
4497
+ }
4498
+
4499
+ // - - - - - - - - - - - - - - - - - - - -
4500
+ // ch-property-grid-row
4501
+ // - - - - - - - - - - - - - - - - - - - -
4502
+
4503
+ // row
4504
+ #{$property-grid-row-selector} {
4505
+ @extend %tabular-grid-row;
4506
+ }
4507
+ #{$property-grid-row--focused-selector} {
4508
+ @extend %tabular-grid-row--focused;
4509
+ }
4510
+ #{$property-grid-row--highlighted-selector} {
4511
+ @extend %tabular-grid-row--highlighted;
4512
+ }
4513
+ #{$property-grid-row--selected-selector} {
4514
+ @extend %tabular-grid-row--selected;
4515
+ }
4516
+ #{$property-grid-row--dragging-selector} {
4517
+ @extend %tabular-grid-row--dragging;
4518
+ }
4519
+
4520
+ // row[some-state] > cell
4521
+ #{$property-grid-row--highlighted__cell-selector} {
4522
+ @extend %tabular-grid-row--highlighted__cell;
4523
+ }
4524
+ #{$property-grid-row--selected__cell-selector} {
4525
+ @extend %tabular-grid-row--selected__cell;
4526
+ }
4527
+
4528
+ // Functional States
4529
+ #{$property-grid__property-selector} {
4530
+ @extend %property-grid__property;
4531
+ }
4532
+ #{$property-grid__property--readonly-selector} {
4533
+ @extend %property-grid__property--readonly;
4534
+ }
4535
+
4536
+ #{$property-grid__value-selector} {
4537
+ @extend %property-grid__value;
4538
+ }
4539
+ #{$property-grid__value--readonly-selector} {
4540
+ @extend %property-grid__value--readonly;
4541
+ }
4542
+ #{$property-grid__value--edited-selector} {
4543
+ @extend %property-grid__value--edited;
4544
+ }
4545
+ #{$property-grid__value--editing-selector} {
4546
+ @extend %property-grid__value--editing;
4547
+ }
4548
+
4549
+ // - - - - - - - - - - - - - - - - - - - -
4550
+ // ch-property-grid-rowset
4551
+ // - - - - - - - - - - - - - - - - - - - -
4552
+
4553
+ #{$property-grid-rowset-selector} {
4554
+ @extend %tabular-grid-rowset;
4555
+ }
4556
+ #{$property-grid-rowset--collapsed__legend-selector} {
4557
+ @extend %tabular-grid-rowset--collapsed__legend;
4558
+ }
4559
+
4560
+ // - - - - - - - - - - - - - - - - - - - -
4561
+ // ch-property-grid-rowset-legend
4562
+ // - - - - - - - - - - - - - - - - - - - -
4563
+
4564
+ #{$property-grid-rowset-legend-selector} {
4565
+ @extend %tabular-grid-rowset-legend;
4566
+ &:hover {
4567
+ @extend %tabular-grid-rowset-legend--hover;
4568
+ }
4569
+ &:active {
4570
+ @extend %tabular-grid-rowset-legend--active;
4571
+ }
4572
+ }
4573
+
4574
+ #{$property-grid-rowset-legend__selector-label-selector} {
4575
+ @extend %tabular-grid-rowset-legend__selector-label;
4576
+ }
4577
+
4578
+ #{$property-grid-rowset-legend__selector-selector} {
4579
+ @extend %tabular-grid-rowset-legend__selector;
4580
+ }
4581
+
4582
+ #{$property-grid-rowset-legend__icon-selector} {
4583
+ @extend %tabular-grid-rowset-legend__icon;
4584
+ @extend %tabular-grid__icon-size;
4585
+ --icon-path: var(--icon__gemini-tools_category-group_on-surface--enabled);
4586
+ }
4587
+
4588
+ // - - - - - - - - - - - - - - - - - - - -
4589
+ // ch-property-grid-cell
4590
+ // - - - - - - - - - - - - - - - - - - - -
4591
+
4592
+ #{$property-grid-cell-selector} {
4593
+ @extend %tabular-grid-cell;
4594
+ }
4595
+
4596
+ #{$property-grid-cell--focused-selector} {
4597
+ @extend %tabular-grid-cell--focused;
4598
+ }
4599
+
4600
+ #{$property-grid-cell--selected-selector} {
4601
+ @extend %tabular-grid-cell--selected;
4602
+ }
4603
+
4604
+ // checkbox
4605
+ #{$property-grid-cell__selector-label-selector} {
4606
+ @extend %tabular-grid-cell__selector-label;
4607
+ }
4608
+
4609
+ #{$property-grid-cell__selector-selector} {
4610
+ @extend %tabular-grid-cell__selector;
4611
+ &::before {
4612
+ @extend %tabular-grid-cell__selector--before;
4613
+ }
4614
+
4615
+ &::after {
4616
+ @extend %tabular-grid-cell__selector--after;
4617
+ }
4618
+
4619
+ &:focus {
4620
+ outline: none;
4621
+ }
4622
+ }
4623
+
4624
+ #{$property-grid-cell__selector--checked-selector} {
4625
+ &::after {
4626
+ @extend %tabular-grid-cell__selector--after-checked;
4627
+ }
4628
+ }
4629
+
4630
+ // Icons
4631
+ #{$property-grid-cell__actions-icon-selector} {
4632
+ inline-size: 100%;
4633
+ @extend %tabular-grid__icon-size;
4634
+ --icon-path: var(
4635
+ --icon__gemini-tools_show-more-vertical_on-surface--enabled
4636
+ );
4637
+ border: none;
4638
+ }
4639
+
4640
+ #{$property-grid-cell__drag-icon-selector} {
4641
+ @extend %tabular-grid__icon-size;
4642
+ --icon-path: var(--icon__navigation_drag_on-surface--enabled);
4643
+ margin-inline-end: var(--grid-common__gap);
4644
+ }
4645
+
4646
+ #{$property-grid-cell__node-icon-selector} {
4647
+ @extend %tabular-grid__icon-size;
4648
+ @extend %tabular-grid__icon-node;
4649
+ }
4650
+
4651
+ #{$property-grid-cell__node-leaf-icon-selector} {
4652
+ @extend %tabular-grid__icon-size;
4653
+ @extend %tabular-grid__icon-node--leaf;
4654
+ }
4655
+
4656
+ // - - - - - - - - - - - - - - - - - - - -
4657
+ // ch-property-grid-row-actions
4658
+ // - - - - - - - - - - - - - - - - - - - -
4659
+
4660
+ #{$property-grid-row-actions-selector} {
4661
+ &[show-on-row-hover]::part(window) {
4662
+ margin-inline-end: var(--mer-spacing--xs);
4663
+ }
4664
+ }
4665
+
4666
+ #{$property-grid-row-actions__window-selector} {
4667
+ @extend %tabular-grid-row-actions__window;
4668
+ }
4669
+
4670
+ #{$property-grid-row-actions__main-selector} {
4671
+ @extend %tabular-grid-row-actions__main;
4672
+ }
4673
+ }
4674
+
4154
4675
  @mixin radio-group-tokens() {
4155
4676
  // Css properties provided by the ch-radio-group-render
4156
4677
  --ch-radio-group__radio-container-size: var(--control-tiny__size);
@@ -4919,7 +5440,7 @@ Body Spacing
4919
5440
  gap: var(--window__gap);
4920
5441
  }
4921
5442
 
4922
- /// @group TabularGrid
5443
+ /// @group Grid
4923
5444
  // ch-tabular-grid
4924
5445
  /// @param {String} $tabular-grid-selector [".tabular-grid"] -
4925
5446
  /// @param {String} $tabular-grid__main-selector [".tabular-grid::part(main)"] -
@@ -28244,7 +28765,6 @@ Body Spacing
28244
28765
  // Form control classes
28245
28766
  @if $form-controls-classes {
28246
28767
  @include field();
28247
- @include form-input();
28248
28768
  @include label();
28249
28769
  }
28250
28770
 
@@ -28323,6 +28843,7 @@ Body Spacing
28323
28843
  // tabular grid
28324
28844
  @if $tabular-grid {
28325
28845
  @include tabular-grid();
28846
+ @include property-grid(); // property-grid extends tabular-grid
28326
28847
  }
28327
28848
 
28328
28849
  // tree view