@genexus/mercury 0.4.17 → 0.4.19

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);
@@ -2625,7 +2675,7 @@ Body Spacing
2625
2675
  @mixin heading-tokens() {
2626
2676
  // heading base
2627
2677
  --heading-base__font-family: var(--mer-font-family--title);
2628
- --heading__color: transparent;
2678
+ --heading__color: inherit;
2629
2679
 
2630
2680
  //h1
2631
2681
  --heading-h1__font-size: var(--mer-font__size--xl);
@@ -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();
@@ -3964,7 +4038,6 @@ Body Spacing
3964
4038
  /// @param {String} $combo-box--disabled-selector [".combo-box[disabled]"] -
3965
4039
  /// @param {String} $combo-box__placeholder-selector [".combo-box::part(placeholder)"] -
3966
4040
  /// @param {String} $window-selector [".combo-box::part(window)"] -
3967
- /// @param {String} $window__content-selector [".combo-box::part(window__content)"] -
3968
4041
  /// @param {String} $group-selector [".combo-box::part(group)"] -
3969
4042
  /// @param {String} $group__content-selector [".combo-box::part(group__content)"] -
3970
4043
  /// @param {String} $group__header-selector [".combo-box::part(group__header)"] -
@@ -3983,7 +4056,6 @@ Body Spacing
3983
4056
  $combo-box--disabled-selector: ".combo-box[disabled]",
3984
4057
  $combo-box__placeholder-selector: ".combo-box::part(placeholder)",
3985
4058
  $window-selector: ".combo-box::part(window)",
3986
- $window__content-selector: ".combo-box::part(window__content)",
3987
4059
  $group-selector: ".combo-box::part(group)",
3988
4060
  $group__content-selector: ".combo-box::part(group__content)",
3989
4061
  $group__header-selector: ".combo-box::part(group__header)",
@@ -3999,8 +4071,6 @@ Body Spacing
3999
4071
  $add--placeholder-var: true,
4000
4072
  $add--error: true
4001
4073
  ) {
4002
- // TODO: IMPROVE STYLE. Unanimo's implementation does not work well in Sidebar Menus
4003
-
4004
4074
  #{$combo-box-selector} {
4005
4075
  @extend %combo-box;
4006
4076
 
@@ -4035,11 +4105,7 @@ Body Spacing
4035
4105
  // - - - - - - - - - - - - - - - - - - - -
4036
4106
  // Window
4037
4107
  // - - - - - - - - - - - - - - - - - - - -
4038
-
4039
4108
  #{$window-selector} {
4040
- }
4041
-
4042
- #{$window__content-selector} {
4043
4109
  @include items-container-colors();
4044
4110
  @include items-container-padding();
4045
4111
  @include items-container-dropdown();
@@ -4050,7 +4116,6 @@ Body Spacing
4050
4116
  // - - - - - - - - - - - - - - - - - - - -
4051
4117
  // Group
4052
4118
  // - - - - - - - - - - - - - - - - - - - -
4053
-
4054
4119
  #{$group__header-selector} {
4055
4120
  @include item-colors-enabled();
4056
4121
  @include item-font-header();
@@ -4303,11 +4368,11 @@ Body Spacing
4303
4368
  --ch-edit-gap: var(--control__icon-gap);
4304
4369
  --ch-edit__image-size: var(--mer-icon__box--md);
4305
4370
 
4306
- @include control-colors-enabled();
4307
4371
  @include control-border();
4372
+ @include control-colors-enabled();
4308
4373
  @include control-font-weight-regular();
4309
- @include control-height-regular();
4310
- @include control-padding-inline();
4374
+ @include control-font-size-small();
4375
+ @include control-padding-inline-block();
4311
4376
 
4312
4377
  &--focus {
4313
4378
  @include focus-border();
@@ -5755,7 +5820,7 @@ Body Spacing
5755
5820
  %tabular-grid-column__bar {
5756
5821
  --grid-label__gap: 0;
5757
5822
  @include grid-row-colors-enabled();
5758
- @include control-padding-inline-block();
5823
+ @include grid-cell-padding-inline-block();
5759
5824
  @include control-font-weight-semi-bold();
5760
5825
  gap: var(--grid-common__gap);
5761
5826
  width: 100%;
@@ -5848,7 +5913,7 @@ Body Spacing
5848
5913
 
5849
5914
  %tabular-grid-cell {
5850
5915
  @include grid-cell-border-inline-block();
5851
- @include control-padding-inline-block();
5916
+ @include grid-cell-padding-inline-block();
5852
5917
  @include grid-row-colors-enabled();
5853
5918
  --item__bg-color: var(--items-container__bg-color);
5854
5919
  border: 0; //WA
@@ -6392,6 +6457,152 @@ Body Spacing
6392
6457
  }
6393
6458
  }
6394
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
+
6395
6606
  @mixin tree-view-tokens() {
6396
6607
  // - - - - - - - - - - - - - - - - - - - -
6397
6608
  // Tree View
@@ -14968,6 +15179,7 @@ Body Spacing
14968
15179
  // tabular grid
14969
15180
  @if $tabular-grid {
14970
15181
  @include tabular-grid();
15182
+ @include tabular-grid-cell-layout();
14971
15183
  @include property-grid(); // property-grid extends tabular-grid
14972
15184
  }
14973
15185
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@genexus/mercury",
3
- "version": "0.4.17",
3
+ "version": "0.4.19",
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": {