@genexus/mercury 0.4.18 → 0.4.20

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
@@ -339,20 +339,27 @@ Control
339
339
  // Font Size
340
340
  @mixin control-font-size-small() {
341
341
  font-size: var(--control__font-size--small);
342
+ line-height: var(--control__line-height);
342
343
  }
343
344
  @mixin control-font-size-regular() {
344
345
  font-size: var(--control__font-size--regular);
346
+ line-height: var(--control__line-height);
345
347
  }
346
348
  // Height
347
349
  @mixin control-height-regular() {
348
350
  block-size: var(--control__height);
351
+ // to be removed (TODO)
352
+ // fixed block-size comes with some issues.
349
353
  }
350
354
  // Padding
351
- @mixin control-padding-inline-block() {
352
- padding-block: var(--control__padding-block);
355
+ @mixin control-padding-inline() {
353
356
  padding-inline: var(--control__padding-inline);
354
357
  }
355
- @mixin control-padding-inline() {
358
+ @mixin control-padding-block() {
359
+ padding-block: var(--control__padding-block);
360
+ }
361
+ @mixin control-padding-inline-block() {
362
+ padding-block: var(--control__padding-block);
356
363
  padding-inline: var(--control__padding-inline);
357
364
  }
358
365
  // Placeholder
@@ -521,6 +528,23 @@ Grid Item
521
528
  // as a border to the user.
522
529
  box-shadow: var(--grid-cell__box-shadow-inline-block);
523
530
  }
531
+ @mixin grid-cell-padding-inline() {
532
+ padding-inline: var(--grid-cell__padding-block);
533
+ }
534
+ @mixin grid-cell-padding-block() {
535
+ padding-block: var(--grid-cell__padding-block);
536
+ }
537
+ @mixin grid-cell-padding-inline-block() {
538
+ padding-block: var(--grid-cell__padding-block);
539
+ padding-inline: var(--grid-cell__padding-inline);
540
+ }
541
+ @mixin grid-cell-remove-padding() {
542
+ // we should redefine '--grid-cell__padding-inline' here because when a control
543
+ // is inside a a tabular-grid-cell the cell padding-inline value is required to
544
+ // be applied on the control padding-inline.
545
+ padding-block: 0;
546
+ padding-inline: 0;
547
+ }
524
548
  @mixin grid-rowset-legend-padding-block() {
525
549
  padding-block-start: var(--mer-spacing--2xs);
526
550
  padding-block-end: var(--mer-spacing--2xs);
@@ -1143,6 +1167,7 @@ Body Spacing
1143
1167
 
1144
1168
  --control__font-size--small: var(--mer-font__size--3xs);
1145
1169
  --control__font-size--regular: var(--mer-font__size--xs);
1170
+ --control__line-height: var(--mer-line-height--spaced);
1146
1171
 
1147
1172
  // - - - - - - - Height - - - - - - -
1148
1173
 
@@ -1150,7 +1175,7 @@ Body Spacing
1150
1175
 
1151
1176
  // - - - - - - - Padding - - - - - - -
1152
1177
 
1153
- --control__padding-block: var(--mer-spacing--xs);
1178
+ --control__padding-block: var(--mer-spacing--2xs);
1154
1179
  --control__padding-inline: var(--mer-spacing--xs);
1155
1180
 
1156
1181
  // - - - - - - - Gap - - - - - - -
@@ -1369,7 +1394,8 @@ Body Spacing
1369
1394
  --grid-cell__border: var(--mer-border__width--sm) solid
1370
1395
  var(--grid-cell__border-color);
1371
1396
  --grid-cell__box-shadow-inline-block: 0 0 0 1px var(--grid-cell__border-color);
1372
-
1397
+ --grid-cell__padding-block: var(--mer-spacing--xs);
1398
+ --grid-cell__padding-inline: var(--mer-spacing--sm);
1373
1399
  // - - - - - - - - - - - - - - - - - - - -
1374
1400
  // Tab Caption (Button)
1375
1401
  // - - - - - - - - - - - - - - - - - - - -
@@ -1718,20 +1744,27 @@ Control
1718
1744
  // Font Size
1719
1745
  @mixin control-font-size-small() {
1720
1746
  font-size: var(--control__font-size--small);
1747
+ line-height: var(--control__line-height);
1721
1748
  }
1722
1749
  @mixin control-font-size-regular() {
1723
1750
  font-size: var(--control__font-size--regular);
1751
+ line-height: var(--control__line-height);
1724
1752
  }
1725
1753
  // Height
1726
1754
  @mixin control-height-regular() {
1727
1755
  block-size: var(--control__height);
1756
+ // to be removed (TODO)
1757
+ // fixed block-size comes with some issues.
1728
1758
  }
1729
1759
  // Padding
1730
- @mixin control-padding-inline-block() {
1731
- padding-block: var(--control__padding-block);
1760
+ @mixin control-padding-inline() {
1732
1761
  padding-inline: var(--control__padding-inline);
1733
1762
  }
1734
- @mixin control-padding-inline() {
1763
+ @mixin control-padding-block() {
1764
+ padding-block: var(--control__padding-block);
1765
+ }
1766
+ @mixin control-padding-inline-block() {
1767
+ padding-block: var(--control__padding-block);
1735
1768
  padding-inline: var(--control__padding-inline);
1736
1769
  }
1737
1770
  // Placeholder
@@ -1900,6 +1933,23 @@ Grid Item
1900
1933
  // as a border to the user.
1901
1934
  box-shadow: var(--grid-cell__box-shadow-inline-block);
1902
1935
  }
1936
+ @mixin grid-cell-padding-inline() {
1937
+ padding-inline: var(--grid-cell__padding-block);
1938
+ }
1939
+ @mixin grid-cell-padding-block() {
1940
+ padding-block: var(--grid-cell__padding-block);
1941
+ }
1942
+ @mixin grid-cell-padding-inline-block() {
1943
+ padding-block: var(--grid-cell__padding-block);
1944
+ padding-inline: var(--grid-cell__padding-inline);
1945
+ }
1946
+ @mixin grid-cell-remove-padding() {
1947
+ // we should redefine '--grid-cell__padding-inline' here because when a control
1948
+ // is inside a a tabular-grid-cell the cell padding-inline value is required to
1949
+ // be applied on the control padding-inline.
1950
+ padding-block: 0;
1951
+ padding-inline: 0;
1952
+ }
1903
1953
  @mixin grid-rowset-legend-padding-block() {
1904
1954
  padding-block-start: var(--mer-spacing--2xs);
1905
1955
  padding-block-end: var(--mer-spacing--2xs);
@@ -3524,20 +3574,27 @@ Control
3524
3574
  // Font Size
3525
3575
  @mixin control-font-size-small() {
3526
3576
  font-size: var(--control__font-size--small);
3577
+ line-height: var(--control__line-height);
3527
3578
  }
3528
3579
  @mixin control-font-size-regular() {
3529
3580
  font-size: var(--control__font-size--regular);
3581
+ line-height: var(--control__line-height);
3530
3582
  }
3531
3583
  // Height
3532
3584
  @mixin control-height-regular() {
3533
3585
  block-size: var(--control__height);
3586
+ // to be removed (TODO)
3587
+ // fixed block-size comes with some issues.
3534
3588
  }
3535
3589
  // Padding
3536
- @mixin control-padding-inline-block() {
3537
- padding-block: var(--control__padding-block);
3590
+ @mixin control-padding-inline() {
3538
3591
  padding-inline: var(--control__padding-inline);
3539
3592
  }
3540
- @mixin control-padding-inline() {
3593
+ @mixin control-padding-block() {
3594
+ padding-block: var(--control__padding-block);
3595
+ }
3596
+ @mixin control-padding-inline-block() {
3597
+ padding-block: var(--control__padding-block);
3541
3598
  padding-inline: var(--control__padding-inline);
3542
3599
  }
3543
3600
  // Placeholder
@@ -3706,6 +3763,23 @@ Grid Item
3706
3763
  // as a border to the user.
3707
3764
  box-shadow: var(--grid-cell__box-shadow-inline-block);
3708
3765
  }
3766
+ @mixin grid-cell-padding-inline() {
3767
+ padding-inline: var(--grid-cell__padding-block);
3768
+ }
3769
+ @mixin grid-cell-padding-block() {
3770
+ padding-block: var(--grid-cell__padding-block);
3771
+ }
3772
+ @mixin grid-cell-padding-inline-block() {
3773
+ padding-block: var(--grid-cell__padding-block);
3774
+ padding-inline: var(--grid-cell__padding-inline);
3775
+ }
3776
+ @mixin grid-cell-remove-padding() {
3777
+ // we should redefine '--grid-cell__padding-inline' here because when a control
3778
+ // is inside a a tabular-grid-cell the cell padding-inline value is required to
3779
+ // be applied on the control padding-inline.
3780
+ padding-block: 0;
3781
+ padding-inline: 0;
3782
+ }
3709
3783
  @mixin grid-rowset-legend-padding-block() {
3710
3784
  padding-block-start: var(--mer-spacing--2xs);
3711
3785
  padding-block-end: var(--mer-spacing--2xs);
@@ -3938,11 +4012,11 @@ Body Spacing
3938
4012
  --ch-combo-box-group__expandable-button-image-size: var(--mer-spacing--sm);
3939
4013
  --ch-combo-box-item__background-image-size: 100%;
3940
4014
 
4015
+ @include control-border();
3941
4016
  @include control-colors-enabled();
3942
4017
  @include control-font-weight-regular();
3943
- @include control-height-regular();
3944
- @include control-border();
3945
- @include control-padding-inline();
4018
+ @include control-font-size-small();
4019
+ @include control-padding-inline-block();
3946
4020
 
3947
4021
  &:hover {
3948
4022
  @include control-colors-hover();
@@ -4294,11 +4368,11 @@ Body Spacing
4294
4368
  --ch-edit-gap: var(--control__icon-gap);
4295
4369
  --ch-edit__image-size: var(--mer-icon__box--md);
4296
4370
 
4297
- @include control-colors-enabled();
4298
4371
  @include control-border();
4372
+ @include control-colors-enabled();
4299
4373
  @include control-font-weight-regular();
4300
- @include control-height-regular();
4301
- @include control-padding-inline();
4374
+ @include control-font-size-small();
4375
+ @include control-padding-inline-block();
4302
4376
 
4303
4377
  &--focus {
4304
4378
  @include focus-border();
@@ -5746,7 +5820,7 @@ Body Spacing
5746
5820
  %tabular-grid-column__bar {
5747
5821
  --grid-label__gap: 0;
5748
5822
  @include grid-row-colors-enabled();
5749
- @include control-padding-inline-block();
5823
+ @include grid-cell-padding-inline-block();
5750
5824
  @include control-font-weight-semi-bold();
5751
5825
  gap: var(--grid-common__gap);
5752
5826
  width: 100%;
@@ -5839,7 +5913,7 @@ Body Spacing
5839
5913
 
5840
5914
  %tabular-grid-cell {
5841
5915
  @include grid-cell-border-inline-block();
5842
- @include control-padding-inline-block();
5916
+ @include grid-cell-padding-inline-block();
5843
5917
  @include grid-row-colors-enabled();
5844
5918
  --item__bg-color: var(--items-container__bg-color);
5845
5919
  border: 0; //WA
@@ -6383,6 +6457,152 @@ Body Spacing
6383
6457
  }
6384
6458
  }
6385
6459
 
6460
+ // node type
6461
+ @mixin cell-node-type-text() {
6462
+ @include grid-cell-padding-inline-block();
6463
+ }
6464
+ @mixin cell-node-type-element() {
6465
+ @include control-remove-border();
6466
+ @include grid-cell-remove-padding();
6467
+ --control__padding-inline: var(--grid-cell__padding-inline);
6468
+ // to stretch the control
6469
+ display: grid;
6470
+ align-items: stretch;
6471
+ }
6472
+ @mixin cell-node-type-element--hover() {
6473
+ outline: var(--focus__outline-width) var(--focus__outline-style)
6474
+ var(--control__border-color--hover);
6475
+ outline-offset: var(--focus__outline-offset);
6476
+ }
6477
+ // cell alignment block
6478
+ @mixin cell-alignment-block-start() {
6479
+ align-items: start;
6480
+ }
6481
+ @mixin cell-alignment-block-center() {
6482
+ align-items: center;
6483
+ }
6484
+ @mixin cell-alignment-block-end() {
6485
+ align-items: end;
6486
+ }
6487
+ // cell alignment inline
6488
+ @mixin cell-alignment-inline-start() {
6489
+ justify-content: start;
6490
+ }
6491
+ @mixin cell-alignment-inline-center() {
6492
+ justify-content: center;
6493
+ }
6494
+ @mixin cell-alignment-inline-end() {
6495
+ justify-content: center;
6496
+ }
6497
+ // cell with ellipsis
6498
+ @mixin cell-ellipsis() {
6499
+ display: inline-block;
6500
+ white-space: nowrap;
6501
+ overflow: hidden;
6502
+ text-overflow: ellipsis;
6503
+ }
6504
+
6505
+ /// @group Grid
6506
+ /// @param {String} $tabular-grid-selector [".tabular-grid"] -
6507
+ /// @param {("text" | "element")} $tabular-grid-cell-node-type ["text"] -
6508
+ /// @param {("start" | "center" | "end")} $tabular-grid-cell-block-alignment ["start"] -
6509
+ /// @param {("start" | "center" | "end")} $tabular-grid-cell-inline-alignment ["start"] -
6510
+ /// @param {Boolean} $tabular-grid-cell-apply-ellipsis [false] -
6511
+ /// @param {List} $tabular-grid-affected-columns-nth-list [null] -
6512
+
6513
+ @mixin tabular-grid-cell-layout(
6514
+ $tabular-grid-selector: ".tabular-grid",
6515
+ $tabular-grid-cell-node-type: "text",
6516
+ $tabular-grid-cell-block-alignment: "start",
6517
+ $tabular-grid-cell-inline-alignment: "start",
6518
+ $tabular-grid-cell-apply-ellipsis: false,
6519
+ $tabular-grid-affected-columns-nth-list: null
6520
+ ) {
6521
+ $selector: null;
6522
+ $cell-tag-name: "ch-tabular-grid-cell";
6523
+ $where-pseudo-class: ":where";
6524
+ $where-selector: ();
6525
+ // the selector varies depending on wether $tabular-grid-affected-columns-nth-list is null or not.
6526
+ // if it is null, all cells should be affected.
6527
+ @if $tabular-grid-affected-columns-nth-list != null {
6528
+ @each $nth in $tabular-grid-affected-columns-nth-list {
6529
+ $where-selector: append($where-selector, ":nth-child(#{$nth})", comma);
6530
+ }
6531
+ $selector: #{$tabular-grid-selector}
6532
+ #{$cell-tag-name}#{$where-pseudo-class
6533
+ }(#{$where-selector});
6534
+ } @else {
6535
+ // if no $editable-columns-nth was provided, apply to all cells
6536
+ $selector: #{$tabular-grid-selector} #{$cell-tag-name};
6537
+ }
6538
+ #{$selector} {
6539
+ // node type
6540
+ @if $tabular-grid-cell-node-type == "text" {
6541
+ @include cell-node-type-text();
6542
+ }
6543
+ @if $tabular-grid-cell-node-type == "element" {
6544
+ @include cell-node-type-element();
6545
+ }
6546
+ &:hover {
6547
+ @if $tabular-grid-cell-node-type == "element" {
6548
+ @include cell-node-type-element--hover();
6549
+ }
6550
+ }
6551
+ // block alignment (only should apply if $tabular-grid-cell-node-type == "text"
6552
+ @if $tabular-grid-cell-node-type ==
6553
+ "text" and
6554
+ $tabular-grid-cell-block-alignment ==
6555
+ "start"
6556
+ {
6557
+ @include cell-alignment-block-start();
6558
+ }
6559
+ @if $tabular-grid-cell-node-type ==
6560
+ "text" and
6561
+ $tabular-grid-cell-block-alignment ==
6562
+ "center"
6563
+ {
6564
+ @include cell-alignment-block-center();
6565
+ }
6566
+ @if $tabular-grid-cell-node-type ==
6567
+ "text" and
6568
+ $tabular-grid-cell-block-alignment ==
6569
+ "end"
6570
+ {
6571
+ @include cell-alignment-block-end();
6572
+ }
6573
+ // inline alignment
6574
+ @if $tabular-grid-cell-node-type ==
6575
+ "text" and
6576
+ $tabular-grid-cell-inline-alignment ==
6577
+ "start"
6578
+ {
6579
+ @include cell-alignment-inline-start();
6580
+ }
6581
+ @if $tabular-grid-cell-node-type ==
6582
+ "text" and
6583
+ $tabular-grid-cell-inline-alignment ==
6584
+ "center"
6585
+ {
6586
+ @include cell-alignment-inline-center();
6587
+ }
6588
+ @if $tabular-grid-cell-node-type ==
6589
+ "text" and
6590
+ $tabular-grid-cell-inline-alignment ==
6591
+ "end"
6592
+ {
6593
+ @include cell-alignment-inline-end();
6594
+ }
6595
+ // ellipsis (only should apply if $tabular-grid-cell-node-type == "text"
6596
+ @if $tabular-grid-cell-node-type ==
6597
+ "text" and
6598
+ $tabular-grid-cell-apply-ellipsis ==
6599
+ true
6600
+ {
6601
+ @include cell-ellipsis();
6602
+ }
6603
+ }
6604
+ }
6605
+
6386
6606
  @mixin tree-view-tokens() {
6387
6607
  // - - - - - - - - - - - - - - - - - - - -
6388
6608
  // Tree View
@@ -14959,6 +15179,7 @@ Body Spacing
14959
15179
  // tabular grid
14960
15180
  @if $tabular-grid {
14961
15181
  @include tabular-grid();
15182
+ @include tabular-grid-cell-layout();
14962
15183
  @include property-grid(); // property-grid extends tabular-grid
14963
15184
  }
14964
15185
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@genexus/mercury",
3
- "version": "0.4.18",
3
+ "version": "0.4.20",
4
4
  "description": "Mercury is the design system designed for GeneXus IDE Web and GeneXus Next",
5
5
  "main": "dist/mercury.scss",
6
6
  "module": "dist/assets-manager.js",
@@ -10,7 +10,7 @@
10
10
  ],
11
11
  "type": "module",
12
12
  "scripts": {
13
- "build": "tsc && npm run icons-svg && npm run icons-sass && npm run build.scss && npm run copy-tasks",
13
+ "build": "tsc && npm run icons-svg && npm run icons-sass && npm run build.scss && npm run copy-tasks && npm run showcase.scss",
14
14
  "build-no-svg": "tsc && npm run build.scss && npm run copy-tasks",
15
15
  "build.scss": "scss-bundle -e ./src/mercury.scss -o dist/mercury.scss && npm run build.bundles && npm run copy-all.css && npm run showcase.scss",
16
16
  "build.bundles": "fse copy --all --keepExisting --errorOnExist --dereference --preserveTimestamps --quiet src/bundles/scss dist/bundles/scss && sass --load-path=src --no-source-map --style compressed dist/bundles/scss:dist/bundles/css",
@@ -22,7 +22,7 @@
22
22
  "watch.scss.mac": "chokidar 'src/**/*.scss' '../common/**/*.scss' -c \"npm run build.scss\"",
23
23
  "copy-all.css": "fse copy dist/bundles/css/all.css showcase/all.css",
24
24
  "copy-tasks": "node copy-tasks.js",
25
- "showcase.scss": "sass showcase/scss/dummy-items.scss showcase/css/dummy-items.css"
25
+ "showcase.scss": "sass showcase/scss/showcase-sass.scss showcase/css/showcase-sass.css"
26
26
  },
27
27
  "license": "MIT",
28
28
  "devDependencies": {