@genexus/mercury 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/bundles/css/all.css +1 -1
  2. package/dist/bundles/css/base/base.css +1 -1
  3. package/dist/bundles/css/base/icons.css +1 -1
  4. package/dist/bundles/css/chameleon/scrollbar.css +1 -1
  5. package/dist/bundles/css/components/accordion.css +1 -1
  6. package/dist/bundles/css/components/chat.css +1 -1
  7. package/dist/bundles/css/components/checkbox.css +1 -1
  8. package/dist/bundles/css/components/code.css +1 -1
  9. package/dist/bundles/css/components/combo-box.css +1 -1
  10. package/dist/bundles/css/components/dialog.css +1 -1
  11. package/dist/bundles/css/components/edit.css +1 -1
  12. package/dist/bundles/css/components/flexible-layout.css +1 -0
  13. package/dist/bundles/css/components/icon.css +1 -1
  14. package/dist/bundles/css/components/list-box.css +1 -1
  15. package/dist/bundles/css/components/markdown-viewer.css +1 -1
  16. package/dist/bundles/css/components/navigation-list.css +1 -0
  17. package/dist/bundles/css/components/radio-group.css +1 -1
  18. package/dist/bundles/css/components/segmented-control.css +1 -0
  19. package/dist/bundles/css/components/sidebar.css +1 -0
  20. package/dist/bundles/css/components/slider.css +1 -1
  21. package/dist/bundles/css/components/tab.css +1 -1
  22. package/dist/bundles/css/components/tabular-grid.css +1 -1
  23. package/dist/bundles/css/components/ticket-list.css +1 -1
  24. package/dist/bundles/css/components/tree-view.css +1 -1
  25. package/dist/bundles/css/resets/box-sizing.css +1 -1
  26. package/dist/bundles/css/utils/form.css +1 -1
  27. package/dist/bundles/css/utils/layout.css +1 -1
  28. package/dist/bundles/css/utils/typography.css +1 -1
  29. package/dist/bundles/scss/components/flexible-layout.scss +3 -0
  30. package/dist/bundles/scss/components/navigation-list.scss +3 -0
  31. package/dist/bundles/scss/components/segmented-control.scss +3 -0
  32. package/dist/bundles/scss/components/sidebar.scss +3 -0
  33. package/dist/bundles.d.ts +33 -1
  34. package/dist/bundles.js +4 -0
  35. package/dist/mercury.scss +368 -4
  36. package/package.json +1 -1
package/dist/mercury.scss CHANGED
@@ -4885,6 +4885,120 @@
4885
4885
  }
4886
4886
  }
4887
4887
 
4888
+ %flexible-layout {
4889
+ --ch-tab-close-button__background-image-size: var(--mer-icon__size--md);
4890
+ --ch-tab-close-button__image-size: var(--mer-icon__box--md);
4891
+
4892
+ --spacing-body-block-start: var(--mer-spacing--md);
4893
+ --spacing-body-block-end: var(--mer-spacing--md);
4894
+ --spacing-body-inline-start: var(--mer-spacing--md);
4895
+ --spacing-body-inline-end: var(--mer-spacing--md);
4896
+
4897
+ &-tab-caption {
4898
+ background-color: color-mix(
4899
+ in srgb,
4900
+ var(--colors-foundation__gray--300) 20%,
4901
+ transparent
4902
+ );
4903
+
4904
+ &--selected {
4905
+ background-color: color-mix(
4906
+ in srgb,
4907
+ var(--colors-foundation__gray--300) 50%,
4908
+ transparent
4909
+ );
4910
+ }
4911
+ }
4912
+
4913
+ &-tab-list--inline {
4914
+ background-color: var(--mer-color__neutral-gray--600);
4915
+ inline-size: 48px;
4916
+ gap: 4px;
4917
+ }
4918
+
4919
+ &-tab-list--block {
4920
+ background-color: var(--mer-color__neutral-gray--700);
4921
+ overflow: auto;
4922
+ }
4923
+
4924
+ &-droppable-area {
4925
+ background-color: color-mix(
4926
+ in srgb,
4927
+ var(--accents__secondary--hover) 25%,
4928
+ transparent
4929
+ );
4930
+ }
4931
+
4932
+ &-bar {
4933
+ color: var(--mer-border-color__on-surface);
4934
+ }
4935
+ }
4936
+
4937
+ @mixin flexible-layout(
4938
+ $flexible-layout-selector: ".flexible-layout",
4939
+ $flexible-layout__bar-selector: ".flexible-layout::part(bar)",
4940
+ $tab-selector: ".flexible-layout::part(leaf)",
4941
+ $tab-caption-selector: ".flexible-layout::part(button)",
4942
+ $tab-caption--block-selector: ".flexible-layout::part(button block)",
4943
+ $tab-caption--inline-selector: ".flexible-layout::part(button inline)",
4944
+ $tab-caption--selected-selector: ".flexible-layout::part(button selected)",
4945
+ $tab-caption--disabled-selector: ".flexible-layout::part(button disabled)",
4946
+ $tab-caption__close-button-selector: ".flexible-layout::part(close-button)",
4947
+ $tab-list--inline-selector: ".flexible-layout::part(tab-list inline)",
4948
+ $tab-list--block-selector: ".flexible-layout::part(tab-list block)",
4949
+ $droppable-area-selector: ".flexible-layout::part(droppable-area)",
4950
+ $add--disabled: true
4951
+ ) {
4952
+ @include tab(
4953
+ $tab-selector: #{$tab-selector},
4954
+ $tab-caption-selector: #{$tab-caption-selector},
4955
+ $tab-caption--block-selector: #{$tab-caption--block-selector},
4956
+ $tab-caption--inline-selector: #{$tab-caption--inline-selector},
4957
+ $tab-caption--selected-selector: #{$tab-caption--selected-selector},
4958
+ $tab-caption__close-button-selector: #{$tab-caption__close-button-selector},
4959
+ $add--tab: false,
4960
+ $add--tab-list: false,
4961
+ $add--disabled: $add--disabled
4962
+ );
4963
+
4964
+ #{$flexible-layout-selector} {
4965
+ @extend %flexible-layout;
4966
+ }
4967
+
4968
+ #{$flexible-layout__bar-selector} {
4969
+ @extend %flexible-layout-bar;
4970
+ }
4971
+
4972
+ // - - - - - - - - - - - - - - - - - - - -
4973
+ // Tab Caption
4974
+ // - - - - - - - - - - - - - - - - - - - -
4975
+ #{$tab-caption-selector} {
4976
+ @extend %flexible-layout-tab-caption;
4977
+ }
4978
+
4979
+ #{$tab-caption--selected-selector} {
4980
+ @extend %flexible-layout-tab-caption--selected;
4981
+ }
4982
+
4983
+ // - - - - - - - - - - - - - - - - - - - -
4984
+ // Tab List
4985
+ // - - - - - - - - - - - - - - - - - - - -
4986
+ #{$tab-list--inline-selector} {
4987
+ @extend %flexible-layout-tab-list--inline;
4988
+ }
4989
+
4990
+ #{$tab-list--block-selector} {
4991
+ @extend %flexible-layout-tab-list--block;
4992
+ }
4993
+
4994
+ // - - - - - - - - - - - - - - - - - - - -
4995
+ // Droppable area
4996
+ // - - - - - - - - - - - - - - - - - - - -
4997
+ #{$droppable-area-selector} {
4998
+ @extend %flexible-layout-droppable-area;
4999
+ }
5000
+ }
5001
+
4888
5002
  %icon {
4889
5003
  &--small {
4890
5004
  --ch-image-size: var(--mer-icon__box--sm);
@@ -5446,6 +5560,99 @@
5446
5560
  }
5447
5561
  }
5448
5562
 
5563
+ %navigation-list {
5564
+ --ch-navigation-list-item__tooltip-separation-x: var(--mer-spacing--2xs);
5565
+
5566
+ --ch-navigation-list-item-custom-padding-inline-start: calc(
5567
+ var(--mer-spacing--xs) + var(--mer-spacing--3xs)
5568
+ );
5569
+ --ch-navigation-list-item-gap: var(--mer-spacing--xs);
5570
+ --ch-navigation-list-item-expand-collapse-duration: 200ms;
5571
+
5572
+ --ch-navigation-list-item__image-size: 20px;
5573
+ --ch-navigation-list-item__expandable-button-size: 20px;
5574
+ --ch-navigation-list-item__expandable-button-image-size: calc(
5575
+ var(--mer-spacing--md) - var(--mer-spacing--3xs)
5576
+ );
5577
+
5578
+ color: var(--item__color);
5579
+
5580
+ &-item-action {
5581
+ padding-block: var(--mer-spacing--xs);
5582
+ padding-inline-end: var(--mer-spacing--xs);
5583
+ }
5584
+
5585
+ &-item-tooltip {
5586
+ padding-block: var(--mer-spacing--2xs);
5587
+ padding-inline: var(--mer-spacing--xs);
5588
+ background-color: var(--mer-color__neutral-gray--800);
5589
+ border-radius: var(--mer-border__radius--sm);
5590
+ color: var(--mer-color__neutral-gray--300);
5591
+ font-size: var(--mer-font__size--xs);
5592
+ }
5593
+
5594
+ &-item-action {
5595
+ &--focus-visible {
5596
+ outline: 1px solid;
5597
+ outline-offset: -1px;
5598
+ }
5599
+ }
5600
+
5601
+ &-item-button {
5602
+ &--hover {
5603
+ color: var(--item__color--hover);
5604
+ }
5605
+ }
5606
+
5607
+ &-item-link {
5608
+ &--selected {
5609
+ background-color: var(--item__bg-color--selected-hover);
5610
+ }
5611
+
5612
+ &--hover-not-selected {
5613
+ background-color: var(--item__bg-color--hover);
5614
+ }
5615
+ }
5616
+ }
5617
+
5618
+ @mixin navigation-list(
5619
+ $navigation-list-selector: ".navigation-list",
5620
+ $item-action-selector: ".navigation-list::part(item__action)",
5621
+ $item-button-selector: ".navigation-list::part(item__button)",
5622
+ $item-link-not-selected-selector:
5623
+ ".navigation-list::part(item__link not-selected)",
5624
+ $item-link-selected-selector: ".navigation-list::part(item__link selected)",
5625
+ $item-tooltip-selector: ".navigation-list::part(item__caption tooltip)"
5626
+ ) {
5627
+ #{$navigation-list-selector} {
5628
+ @extend %navigation-list;
5629
+ }
5630
+
5631
+ #{$item-action-selector} {
5632
+ @extend %navigation-list-item-action;
5633
+
5634
+ &:focus-visible {
5635
+ @extend %navigation-list-item-action--focus-visible;
5636
+ }
5637
+ }
5638
+
5639
+ #{$item-button-selector}:hover {
5640
+ @extend %navigation-list-item-button--hover;
5641
+ }
5642
+
5643
+ #{$item-link-selected-selector} {
5644
+ @extend %navigation-list-item-link--selected;
5645
+ }
5646
+
5647
+ #{$item-link-not-selected-selector}:hover {
5648
+ @extend %navigation-list-item-link--hover-not-selected;
5649
+ }
5650
+
5651
+ #{$item-tooltip-selector} {
5652
+ @extend %navigation-list-item-tooltip;
5653
+ }
5654
+ }
5655
+
5449
5656
  // node type
5450
5657
  @mixin cell-node-type-text() {
5451
5658
  @include grid-cell-padding-inline-block();
@@ -6236,6 +6443,129 @@
6236
6443
  }
6237
6444
  }
6238
6445
 
6446
+ @include button-primary(
6447
+ $selector: "%segmented-control-item--selected",
6448
+ $add--disabled: false
6449
+ );
6450
+
6451
+ %segmented-control-item-base {
6452
+ padding-inline: var(--mer-spacing--md);
6453
+ border-radius: unset;
6454
+ }
6455
+
6456
+ @include button-secondary(
6457
+ $selector: "%segmented-control-item--unselected",
6458
+ $add--disabled: false
6459
+ );
6460
+
6461
+ %segmented-control-item--first {
6462
+ border-start-start-radius: var(--mer-border__radius--xs);
6463
+ border-end-start-radius: var(--mer-border__radius--xs);
6464
+ border-inline-end-width: 0;
6465
+ }
6466
+
6467
+ %segmented-control-item--between {
6468
+ border-inline-end-width: 0;
6469
+ }
6470
+
6471
+ %segmented-control-item--last {
6472
+ border-start-end-radius: var(--mer-border__radius--xs);
6473
+ border-end-end-radius: var(--mer-border__radius--xs);
6474
+ border-inline-end-width: 1px;
6475
+ }
6476
+
6477
+ /// @group Segmented Control
6478
+ /// @param {String} $selected-item-selector [".segmented-control-item::part(selected)"] -
6479
+ /// @param {String} $selected-disabled-item-selector [".segmented-control-item::part(selected disabled)"] -
6480
+ /// @param {String} $unselected-item-selector [".segmented-control-item::part(unselected)"] -
6481
+ /// @param {String} $unselected-disabled-item-selector [".segmented-control-item::part(unselected disabled)"] -
6482
+ /// @param {String} $first-item-selector [".segmented-control-item::part(first)"] -
6483
+ /// @param {String} $between-item-selector [".segmented-control-item::part(between)"] -
6484
+ /// @param {String} $last-item-selector [".segmented-control-item::part(last)"] -
6485
+ /// @param {Boolean} $add--disabled [true] -
6486
+ @mixin segmented-control(
6487
+ $selected-item-selector: ".segmented-control-item::part(selected)",
6488
+
6489
+ $selected-disabled-item-selector:
6490
+ ".segmented-control-item::part(selected disabled)",
6491
+
6492
+ $unselected-item-selector: ".segmented-control-item::part(unselected)",
6493
+
6494
+ $unselected-disabled-item-selector:
6495
+ ".segmented-control-item::part(unselected disabled)",
6496
+
6497
+ $first-item-selector: ".segmented-control-item::part(first)",
6498
+
6499
+ $between-item-selector: ".segmented-control-item::part(between)",
6500
+
6501
+ $last-item-selector: ".segmented-control-item::part(last)",
6502
+
6503
+ $add--disabled: true
6504
+ ) {
6505
+ #{$selected-item-selector},
6506
+ #{$unselected-item-selector} {
6507
+ @extend %segmented-control-item-base;
6508
+ }
6509
+
6510
+ @include button-primary(
6511
+ $selector: #{$selected-item-selector},
6512
+ $add--disabled: false
6513
+ );
6514
+
6515
+ @include button-secondary(
6516
+ $selector: #{$unselected-item-selector},
6517
+ $add--disabled: false
6518
+ );
6519
+
6520
+ @if $add--disabled {
6521
+ #{$selected-disabled-item-selector} {
6522
+ @extend %button-primary--disabled;
6523
+ }
6524
+
6525
+ #{$unselected-disabled-item-selector} {
6526
+ @extend %button-secondary--disabled;
6527
+ }
6528
+ }
6529
+
6530
+ #{$first-item-selector} {
6531
+ @extend %segmented-control-item--first;
6532
+ }
6533
+
6534
+ #{$between-item-selector} {
6535
+ @extend %segmented-control-item--between;
6536
+ }
6537
+
6538
+ #{$last-item-selector} {
6539
+ @extend %segmented-control-item--last;
6540
+ }
6541
+ }
6542
+
6543
+ %sidebar {
6544
+ --ch-sidebar-inline-size--collapsed: 42px;
6545
+ --ch-sidebar__chevron-size: 24px;
6546
+ --ch-sidebar__chevron-image-size: 16px;
6547
+
6548
+ background-color: var(--mer-color__neutral-gray--800);
6549
+ color: var(--mer-color__neutral-gray--300);
6550
+
6551
+ &-expand-button {
6552
+ padding: var(--mer-spacing--xs);
6553
+ }
6554
+ }
6555
+
6556
+ @mixin sidebar(
6557
+ $sidebar-selector: ".sidebar",
6558
+ $expand-button-selector: ".sidebar::part(expand-button)"
6559
+ ) {
6560
+ #{$sidebar-selector} {
6561
+ @extend %sidebar;
6562
+ }
6563
+
6564
+ #{$expand-button-selector} {
6565
+ @extend %sidebar-expand-button;
6566
+ }
6567
+ }
6568
+
6239
6569
  %slider__slider {
6240
6570
  // - - - - - - - - - - - - - - - - - - - -
6241
6571
  // Chameleon (do not change the name)
@@ -6427,10 +6757,14 @@
6427
6757
  $tab-list-selector: ".tab::part(tab-list)",
6428
6758
  $tab-list--block-selector: ".tab::part(tab-list block)",
6429
6759
  $tab-list--inline-selector: ".tab::part(tab-list inline)",
6760
+ $add--tab: true,
6761
+ $add--tab-list: true,
6430
6762
  $add--disabled: true
6431
6763
  ) {
6432
- #{$tab-selector} {
6433
- @extend %tab;
6764
+ @if $add--tab {
6765
+ #{$tab-selector} {
6766
+ @extend %tab;
6767
+ }
6434
6768
  }
6435
6769
 
6436
6770
  #{$tab-caption-selector} {
@@ -6472,8 +6806,10 @@
6472
6806
  }
6473
6807
  }
6474
6808
 
6475
- #{$tab-list-selector} {
6476
- @extend %tab-list;
6809
+ @if $add--tab-list {
6810
+ #{$tab-list-selector} {
6811
+ @extend %tab-list;
6812
+ }
6477
6813
  }
6478
6814
 
6479
6815
  #{$tab-list--block-selector} {
@@ -8089,10 +8425,14 @@
8089
8425
  $combo-box: true,
8090
8426
  $dialog: true,
8091
8427
  $edit: true,
8428
+ $flexible-layout: true,
8092
8429
  $icon: true,
8093
8430
  $list-box: true,
8094
8431
  $markdown-viewer: true,
8432
+ $navigation-list: true,
8095
8433
  $radio-group: true,
8434
+ $segmented-control: true,
8435
+ $sidebar: true,
8096
8436
  $slider: true,
8097
8437
  $tab: true,
8098
8438
  $tabular-grid: true,
@@ -16346,6 +16686,10 @@
16346
16686
  @include form-input();
16347
16687
  }
16348
16688
 
16689
+ @if $flexible-layout {
16690
+ @include flexible-layout();
16691
+ }
16692
+
16349
16693
  @if $icon {
16350
16694
  @include icon();
16351
16695
  }
@@ -16358,10 +16702,22 @@
16358
16702
  @include markdown-viewer();
16359
16703
  }
16360
16704
 
16705
+ @if $navigation-list {
16706
+ @include navigation-list();
16707
+ }
16708
+
16361
16709
  @if $radio-group {
16362
16710
  @include radio-group();
16363
16711
  }
16364
16712
 
16713
+ @if $segmented-control {
16714
+ @include segmented-control();
16715
+ }
16716
+
16717
+ @if $sidebar {
16718
+ @include sidebar();
16719
+ }
16720
+
16365
16721
  @if $slider {
16366
16722
  @include slider();
16367
16723
  }
@@ -16439,10 +16795,14 @@
16439
16795
  $combo-box: false,
16440
16796
  $dialog: false,
16441
16797
  $edit: false,
16798
+ $flexible-layout: false,
16442
16799
  $icon: false,
16443
16800
  $list-box: false,
16444
16801
  $markdown-viewer: false,
16802
+ $navigation-list: false,
16445
16803
  $radio-group: false,
16804
+ $segmented-control: false,
16805
+ $sidebar: false,
16446
16806
  $slider: false,
16447
16807
  $tab: false,
16448
16808
  $tabular-grid: false,
@@ -16503,10 +16863,14 @@
16503
16863
  $combo-box: $combo-box,
16504
16864
  $dialog: $dialog,
16505
16865
  $edit: $edit,
16866
+ $flexible-layout: $flexible-layout,
16506
16867
  $icon: $icon,
16507
16868
  $list-box: $list-box,
16508
16869
  $markdown-viewer: $markdown-viewer,
16870
+ $navigation-list: $navigation-list,
16509
16871
  $radio-group: $radio-group,
16872
+ $segmented-control: $segmented-control,
16873
+ $sidebar: $sidebar,
16510
16874
  $slider: $slider,
16511
16875
  $tab: $tab,
16512
16876
  $tabular-grid: $tabular-grid,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@genexus/mercury",
3
- "version": "0.7.0",
3
+ "version": "0.8.0",
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",