@limetech/lime-elements 36.1.0-dev.2 → 36.1.0-dev.4

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 (72) hide show
  1. package/dist/cjs/lime-elements.cjs.js +1 -1
  2. package/dist/cjs/{limel-linear-progress.cjs.entry.js → limel-circular-progress_2.cjs.entry.js} +33 -0
  3. package/dist/cjs/limel-dialog.cjs.entry.js +1 -1
  4. package/dist/cjs/limel-flatpickr-adapter.cjs.entry.js +1 -1
  5. package/dist/cjs/limel-form.cjs.entry.js +2 -0
  6. package/dist/cjs/limel-info-tile.cjs.entry.js +95 -0
  7. package/dist/cjs/limel-input-field.cjs.entry.js +1 -1
  8. package/dist/cjs/limel-list_2.cjs.entry.js +1 -3
  9. package/dist/cjs/limel-menu-list.cjs.entry.js +1 -1
  10. package/dist/cjs/limel-select.cjs.entry.js +12 -7
  11. package/dist/cjs/limel-shortcut.cjs.entry.js +8 -8
  12. package/dist/cjs/limel-split-button.cjs.entry.js +12 -4
  13. package/dist/cjs/loader.cjs.js +1 -1
  14. package/dist/collection/collection-manifest.json +1 -0
  15. package/dist/collection/components/date-picker/flatpickr-adapter/flatpickr-adapter.css +0 -3
  16. package/dist/collection/components/dialog/dialog.css +7 -1
  17. package/dist/collection/components/dock/dock.js +0 -1
  18. package/dist/collection/components/form/widgets/code-editor.js +2 -0
  19. package/dist/collection/components/info-tile/info-tile.css +310 -0
  20. package/dist/collection/components/info-tile/info-tile.js +294 -0
  21. package/dist/collection/components/info-tile/info-tile.types.js +1 -0
  22. package/dist/collection/components/input-field/input-field.css +3 -0
  23. package/dist/collection/components/list/list.css +11 -116
  24. package/dist/collection/components/list/list.js +0 -2
  25. package/dist/collection/components/menu-list/menu-list.css +11 -116
  26. package/dist/collection/components/select/select.css +8 -7
  27. package/dist/collection/components/select/select.template.js +11 -6
  28. package/dist/collection/components/shortcut/shortcut.js +30 -63
  29. package/dist/collection/components/split-button/split-button.css +10 -1
  30. package/dist/collection/components/split-button/split-button.js +11 -3
  31. package/dist/collection/global/shared-types/link.types.js +1 -0
  32. package/dist/esm/lime-elements.js +1 -1
  33. package/dist/esm/{limel-linear-progress.entry.js → limel-circular-progress_2.entry.js} +33 -1
  34. package/dist/esm/limel-dialog.entry.js +1 -1
  35. package/dist/esm/limel-flatpickr-adapter.entry.js +1 -1
  36. package/dist/esm/limel-form.entry.js +2 -0
  37. package/dist/esm/limel-info-tile.entry.js +91 -0
  38. package/dist/esm/limel-input-field.entry.js +1 -1
  39. package/dist/esm/limel-list_2.entry.js +1 -3
  40. package/dist/esm/limel-menu-list.entry.js +1 -1
  41. package/dist/esm/limel-select.entry.js +12 -7
  42. package/dist/esm/limel-shortcut.entry.js +8 -8
  43. package/dist/esm/limel-split-button.entry.js +12 -4
  44. package/dist/esm/loader.js +1 -1
  45. package/dist/lime-elements/lime-elements.esm.js +1 -1
  46. package/dist/lime-elements/{p-ef04b849.entry.js → p-1386d86d.entry.js} +1 -1
  47. package/dist/lime-elements/{p-0dbde06f.entry.js → p-21058db5.entry.js} +4 -3
  48. package/dist/lime-elements/p-4fc38050.entry.js +1 -0
  49. package/dist/lime-elements/{p-dcd2a664.entry.js → p-5f29f099.entry.js} +1 -1
  50. package/dist/lime-elements/{p-d3ebc657.entry.js → p-8ab597a8.entry.js} +1 -1
  51. package/dist/lime-elements/p-9ea8dd5c.entry.js +1 -0
  52. package/dist/lime-elements/p-e6f84d68.entry.js +1 -0
  53. package/dist/lime-elements/{p-28dffd9e.entry.js → p-e88f7922.entry.js} +1 -1
  54. package/dist/lime-elements/p-ec4c075d.entry.js +1 -0
  55. package/dist/lime-elements/p-f1ed857b.entry.js +37 -0
  56. package/dist/lime-elements/{p-4b426b7e.entry.js → p-f33cfcb8.entry.js} +1 -1
  57. package/dist/types/components/dock/dock.d.ts +0 -1
  58. package/dist/types/components/info-tile/info-tile.d.ts +87 -0
  59. package/dist/types/components/info-tile/info-tile.types.d.ts +23 -0
  60. package/dist/types/components/shortcut/shortcut.d.ts +8 -23
  61. package/dist/types/components/split-button/split-button.d.ts +1 -0
  62. package/dist/types/components.d.ts +99 -21
  63. package/dist/types/global/shared-types/link.types.d.ts +25 -0
  64. package/dist/types/interface.d.ts +2 -0
  65. package/package.json +9 -9
  66. package/dist/cjs/limel-circular-progress.cjs.entry.js +0 -39
  67. package/dist/esm/limel-circular-progress.entry.js +0 -35
  68. package/dist/lime-elements/p-334b5f82.entry.js +0 -37
  69. package/dist/lime-elements/p-744c21f8.entry.js +0 -1
  70. package/dist/lime-elements/p-8715eac0.entry.js +0 -1
  71. package/dist/lime-elements/p-9f19e0c1.entry.js +0 -1
  72. package/dist/lime-elements/p-ace4e596.entry.js +0 -1
@@ -3810,9 +3810,14 @@ a.mdc-list-item {
3810
3810
  border-radius: 0.375rem;
3811
3811
  }
3812
3812
  .mdc-deprecated-list .mdc-deprecated-list-item {
3813
+ transition: background-color 0.2s ease;
3813
3814
  box-sizing: border-box;
3814
3815
  z-index: 0;
3815
3816
  }
3817
+ .mdc-deprecated-list .mdc-deprecated-list-item:not(.mdc-deprecated-list-item--disabled):hover {
3818
+ background-color: rgb(var(--contrast-300));
3819
+ z-index: 1;
3820
+ }
3816
3821
  .mdc-deprecated-list .mdc-deprecated-list-item.mdc-deprecated-list-item--disabled {
3817
3822
  cursor: not-allowed;
3818
3823
  }
@@ -3925,132 +3930,22 @@ a.mdc-list-item {
3925
3930
  margin-right: 0.75rem;
3926
3931
  }
3927
3932
 
3928
- .mdc-deprecated-list-item.mdc-ripple-upgraded {
3929
- --mdc-ripple-fg-size: 0;
3930
- --mdc-ripple-left: 0;
3931
- --mdc-ripple-top: 0;
3932
- --mdc-ripple-fg-scale: 1;
3933
- --mdc-ripple-fg-translate-end: 0;
3934
- --mdc-ripple-fg-translate-start: 0;
3935
- -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
3936
- will-change: transform, opacity;
3937
- }
3938
- .mdc-deprecated-list-item.mdc-ripple-upgraded::before, .mdc-deprecated-list-item.mdc-ripple-upgraded::after {
3939
- position: absolute;
3940
- border-radius: 50%;
3941
- opacity: 0;
3942
- pointer-events: none;
3943
- content: "";
3944
- }
3945
- .mdc-deprecated-list-item.mdc-ripple-upgraded::before {
3946
- transition: opacity 15ms linear, background-color 15ms linear;
3947
- z-index: 1;
3948
- /* @alternate */
3949
- z-index: var(--mdc-ripple-z-index, 1);
3950
- }
3951
- .mdc-deprecated-list-item.mdc-ripple-upgraded::after {
3952
- z-index: 0;
3953
- /* @alternate */
3954
- z-index: var(--mdc-ripple-z-index, 0);
3955
- }
3956
- .mdc-deprecated-list-item.mdc-ripple-upgraded.mdc-ripple-upgraded::before {
3957
- transform: scale(var(--mdc-ripple-fg-scale, 1));
3958
- }
3959
- .mdc-deprecated-list-item.mdc-ripple-upgraded.mdc-ripple-upgraded::after {
3960
- top: 0;
3961
- /* @noflip */
3962
- /*rtl:ignore*/
3963
- left: 0;
3964
- transform: scale(0);
3965
- transform-origin: center center;
3966
- }
3967
- .mdc-deprecated-list-item.mdc-ripple-upgraded.mdc-ripple-upgraded--unbounded::after {
3968
- top: var(--mdc-ripple-top, 0);
3969
- /* @noflip */
3970
- /*rtl:ignore*/
3971
- left: var(--mdc-ripple-left, 0);
3972
- }
3973
- .mdc-deprecated-list-item.mdc-ripple-upgraded.mdc-ripple-upgraded--foreground-activation::after {
3974
- animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;
3975
- }
3976
- .mdc-deprecated-list-item.mdc-ripple-upgraded.mdc-ripple-upgraded--foreground-deactivation::after {
3977
- animation: mdc-ripple-fg-opacity-out 150ms;
3978
- transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
3979
- }
3980
- .mdc-deprecated-list-item.mdc-ripple-upgraded::before, .mdc-deprecated-list-item.mdc-ripple-upgraded::after {
3981
- top: calc(50% - 100%);
3982
- /* @noflip */
3983
- /*rtl:ignore*/
3984
- left: calc(50% - 100%);
3985
- width: 200%;
3986
- height: 200%;
3987
- }
3988
- .mdc-deprecated-list-item.mdc-ripple-upgraded.mdc-ripple-upgraded::after {
3989
- width: var(--mdc-ripple-fg-size, 100%);
3990
- height: var(--mdc-ripple-fg-size, 100%);
3991
- }
3992
- .mdc-deprecated-list-item.mdc-ripple-upgraded::before, .mdc-deprecated-list-item.mdc-ripple-upgraded::after {
3993
- background-color: #000;
3994
- /* @alternate */
3995
- background-color: var(--mdc-ripple-color, #000);
3996
- }
3997
- .mdc-deprecated-list-item.mdc-ripple-upgraded:hover::before, .mdc-deprecated-list-item.mdc-ripple-upgraded.mdc-ripple-surface--hover::before {
3998
- opacity: 0.04;
3999
- /* @alternate */
4000
- opacity: var(--mdc-ripple-hover-opacity, 0.04);
4001
- }
4002
- .mdc-deprecated-list-item.mdc-ripple-upgraded.mdc-ripple-upgraded--background-focused::before, .mdc-deprecated-list-item.mdc-ripple-upgraded:not(.mdc-ripple-upgraded):focus::before {
4003
- transition-duration: 75ms;
4004
- opacity: 0.12;
4005
- /* @alternate */
4006
- opacity: var(--mdc-ripple-focus-opacity, 0.12);
4007
- }
4008
- .mdc-deprecated-list-item.mdc-ripple-upgraded:not(.mdc-ripple-upgraded)::after {
4009
- transition: opacity 150ms linear;
4010
- }
4011
- .mdc-deprecated-list-item.mdc-ripple-upgraded:not(.mdc-ripple-upgraded):active::after {
4012
- transition-duration: 75ms;
4013
- opacity: 0.12;
4014
- /* @alternate */
4015
- opacity: var(--mdc-ripple-press-opacity, 0.12);
4016
- }
4017
- .mdc-deprecated-list-item.mdc-ripple-upgraded.mdc-ripple-upgraded {
4018
- --mdc-ripple-fg-opacity: var(--mdc-ripple-press-opacity, 0.12);
4019
- }
4020
-
4021
- .mdc-deprecated-list-item--selected .mdc-deprecated-list-item__text:before {
4022
- content: "";
3933
+ .mdc-deprecated-list-item.mdc-deprecated-list-item--selected:before {
4023
3934
  background-color: var(--mdc-theme-primary);
4024
- position: absolute;
4025
- inset: 0;
4026
3935
  opacity: 0.15;
4027
- pointer-events: none;
4028
3936
  }
4029
3937
 
4030
- @keyframes fade-out-focus-style {
4031
- 0% {
4032
- opacity: 0.12;
4033
- }
4034
- 100% {
4035
- opacity: 0;
4036
- }
4037
- }
4038
- :not(.mdc-deprecated-list--non-interactive) > :not(.mdc-deprecated-list-item--disabled).mdc-deprecated-list-item.mdc-ripple-upgraded--background-focused::before, :not(.mdc-deprecated-list--non-interactive) > :not(.mdc-deprecated-list-item--disabled).mdc-deprecated-list-item:not(.mdc-ripple-upgraded):focus::before {
4039
- animation: fade-out-focus-style 1s ease forwards;
3938
+ :not(.mdc-deprecated-list--non-interactive) > :not(.mdc-deprecated-list-item--disabled).mdc-deprecated-list-item:focus {
3939
+ outline: none;
4040
3940
  }
4041
3941
  :not(.mdc-deprecated-list--non-interactive) > :not(.mdc-deprecated-list-item--disabled).mdc-deprecated-list-item:focus-visible {
3942
+ outline: none;
4042
3943
  box-shadow: var(--shadow-depth-8-focused);
3944
+ }
3945
+ :not(.mdc-deprecated-list--non-interactive) > :not(.mdc-deprecated-list-item--disabled).mdc-deprecated-list-item:focus-visible {
4043
3946
  border-radius: 0.375rem;
4044
3947
  z-index: 1;
4045
3948
  }
4046
- :not(.mdc-deprecated-list--non-interactive) > :not(.mdc-deprecated-list-item--disabled).mdc-deprecated-list-item:focus-visible:before {
4047
- animation-duration: 0s !important;
4048
- }
4049
- :not(.mdc-deprecated-list--non-interactive) > :not(.mdc-deprecated-list-item--disabled).mdc-deprecated-list-item:before {
4050
- transition: opacity, background-color;
4051
- transition-duration: 0.2s;
4052
- transition-timing-function: ease;
4053
- }
4054
3949
 
4055
3950
  /*
4056
3951
  * This file is imported into every component!
@@ -1,5 +1,4 @@
1
1
  import { MDCList } from '@material/list';
2
- import { MDCRipple } from '@material/ripple';
3
2
  import { strings as listStrings } from '@material/list/constants';
4
3
  import { h, Host, } from '@stencil/core';
5
4
  import { ListRenderer } from './list-renderer';
@@ -34,7 +33,6 @@ export class List {
34
33
  }
35
34
  this.mdcList = new MDCList(element);
36
35
  this.mdcList.hasTypeahead = true;
37
- this.mdcList.listElements.forEach((item) => new MDCRipple(item));
38
36
  };
39
37
  this.setupListeners = () => {
40
38
  if (!this.mdcList) {
@@ -3816,9 +3816,14 @@ a.mdc-list-item {
3816
3816
  border-radius: 0.375rem;
3817
3817
  }
3818
3818
  .mdc-deprecated-list .mdc-deprecated-list-item {
3819
+ transition: background-color 0.2s ease;
3819
3820
  box-sizing: border-box;
3820
3821
  z-index: 0;
3821
3822
  }
3823
+ .mdc-deprecated-list .mdc-deprecated-list-item:not(.mdc-deprecated-list-item--disabled):hover {
3824
+ background-color: rgb(var(--contrast-300));
3825
+ z-index: 1;
3826
+ }
3822
3827
  .mdc-deprecated-list .mdc-deprecated-list-item.mdc-deprecated-list-item--disabled {
3823
3828
  cursor: not-allowed;
3824
3829
  }
@@ -3931,132 +3936,22 @@ a.mdc-list-item {
3931
3936
  margin-right: 0.75rem;
3932
3937
  }
3933
3938
 
3934
- .mdc-deprecated-list-item.mdc-ripple-upgraded {
3935
- --mdc-ripple-fg-size: 0;
3936
- --mdc-ripple-left: 0;
3937
- --mdc-ripple-top: 0;
3938
- --mdc-ripple-fg-scale: 1;
3939
- --mdc-ripple-fg-translate-end: 0;
3940
- --mdc-ripple-fg-translate-start: 0;
3941
- -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
3942
- will-change: transform, opacity;
3943
- }
3944
- .mdc-deprecated-list-item.mdc-ripple-upgraded::before, .mdc-deprecated-list-item.mdc-ripple-upgraded::after {
3945
- position: absolute;
3946
- border-radius: 50%;
3947
- opacity: 0;
3948
- pointer-events: none;
3949
- content: "";
3950
- }
3951
- .mdc-deprecated-list-item.mdc-ripple-upgraded::before {
3952
- transition: opacity 15ms linear, background-color 15ms linear;
3953
- z-index: 1;
3954
- /* @alternate */
3955
- z-index: var(--mdc-ripple-z-index, 1);
3956
- }
3957
- .mdc-deprecated-list-item.mdc-ripple-upgraded::after {
3958
- z-index: 0;
3959
- /* @alternate */
3960
- z-index: var(--mdc-ripple-z-index, 0);
3961
- }
3962
- .mdc-deprecated-list-item.mdc-ripple-upgraded.mdc-ripple-upgraded::before {
3963
- transform: scale(var(--mdc-ripple-fg-scale, 1));
3964
- }
3965
- .mdc-deprecated-list-item.mdc-ripple-upgraded.mdc-ripple-upgraded::after {
3966
- top: 0;
3967
- /* @noflip */
3968
- /*rtl:ignore*/
3969
- left: 0;
3970
- transform: scale(0);
3971
- transform-origin: center center;
3972
- }
3973
- .mdc-deprecated-list-item.mdc-ripple-upgraded.mdc-ripple-upgraded--unbounded::after {
3974
- top: var(--mdc-ripple-top, 0);
3975
- /* @noflip */
3976
- /*rtl:ignore*/
3977
- left: var(--mdc-ripple-left, 0);
3978
- }
3979
- .mdc-deprecated-list-item.mdc-ripple-upgraded.mdc-ripple-upgraded--foreground-activation::after {
3980
- animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;
3981
- }
3982
- .mdc-deprecated-list-item.mdc-ripple-upgraded.mdc-ripple-upgraded--foreground-deactivation::after {
3983
- animation: mdc-ripple-fg-opacity-out 150ms;
3984
- transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
3985
- }
3986
- .mdc-deprecated-list-item.mdc-ripple-upgraded::before, .mdc-deprecated-list-item.mdc-ripple-upgraded::after {
3987
- top: calc(50% - 100%);
3988
- /* @noflip */
3989
- /*rtl:ignore*/
3990
- left: calc(50% - 100%);
3991
- width: 200%;
3992
- height: 200%;
3993
- }
3994
- .mdc-deprecated-list-item.mdc-ripple-upgraded.mdc-ripple-upgraded::after {
3995
- width: var(--mdc-ripple-fg-size, 100%);
3996
- height: var(--mdc-ripple-fg-size, 100%);
3997
- }
3998
- .mdc-deprecated-list-item.mdc-ripple-upgraded::before, .mdc-deprecated-list-item.mdc-ripple-upgraded::after {
3999
- background-color: #000;
4000
- /* @alternate */
4001
- background-color: var(--mdc-ripple-color, #000);
4002
- }
4003
- .mdc-deprecated-list-item.mdc-ripple-upgraded:hover::before, .mdc-deprecated-list-item.mdc-ripple-upgraded.mdc-ripple-surface--hover::before {
4004
- opacity: 0.04;
4005
- /* @alternate */
4006
- opacity: var(--mdc-ripple-hover-opacity, 0.04);
4007
- }
4008
- .mdc-deprecated-list-item.mdc-ripple-upgraded.mdc-ripple-upgraded--background-focused::before, .mdc-deprecated-list-item.mdc-ripple-upgraded:not(.mdc-ripple-upgraded):focus::before {
4009
- transition-duration: 75ms;
4010
- opacity: 0.12;
4011
- /* @alternate */
4012
- opacity: var(--mdc-ripple-focus-opacity, 0.12);
4013
- }
4014
- .mdc-deprecated-list-item.mdc-ripple-upgraded:not(.mdc-ripple-upgraded)::after {
4015
- transition: opacity 150ms linear;
4016
- }
4017
- .mdc-deprecated-list-item.mdc-ripple-upgraded:not(.mdc-ripple-upgraded):active::after {
4018
- transition-duration: 75ms;
4019
- opacity: 0.12;
4020
- /* @alternate */
4021
- opacity: var(--mdc-ripple-press-opacity, 0.12);
4022
- }
4023
- .mdc-deprecated-list-item.mdc-ripple-upgraded.mdc-ripple-upgraded {
4024
- --mdc-ripple-fg-opacity: var(--mdc-ripple-press-opacity, 0.12);
4025
- }
4026
-
4027
- .mdc-deprecated-list-item--selected .mdc-deprecated-list-item__text:before {
4028
- content: "";
3939
+ .mdc-deprecated-list-item.mdc-deprecated-list-item--selected:before {
4029
3940
  background-color: var(--mdc-theme-primary);
4030
- position: absolute;
4031
- inset: 0;
4032
3941
  opacity: 0.15;
4033
- pointer-events: none;
4034
3942
  }
4035
3943
 
4036
- @keyframes fade-out-focus-style {
4037
- 0% {
4038
- opacity: 0.12;
4039
- }
4040
- 100% {
4041
- opacity: 0;
4042
- }
4043
- }
4044
- :not(.mdc-deprecated-list--non-interactive) > :not(.mdc-deprecated-list-item--disabled).mdc-deprecated-list-item.mdc-ripple-upgraded--background-focused::before, :not(.mdc-deprecated-list--non-interactive) > :not(.mdc-deprecated-list-item--disabled).mdc-deprecated-list-item:not(.mdc-ripple-upgraded):focus::before {
4045
- animation: fade-out-focus-style 1s ease forwards;
3944
+ :not(.mdc-deprecated-list--non-interactive) > :not(.mdc-deprecated-list-item--disabled).mdc-deprecated-list-item:focus {
3945
+ outline: none;
4046
3946
  }
4047
3947
  :not(.mdc-deprecated-list--non-interactive) > :not(.mdc-deprecated-list-item--disabled).mdc-deprecated-list-item:focus-visible {
3948
+ outline: none;
4048
3949
  box-shadow: var(--shadow-depth-8-focused);
3950
+ }
3951
+ :not(.mdc-deprecated-list--non-interactive) > :not(.mdc-deprecated-list-item--disabled).mdc-deprecated-list-item:focus-visible {
4049
3952
  border-radius: 0.375rem;
4050
3953
  z-index: 1;
4051
3954
  }
4052
- :not(.mdc-deprecated-list--non-interactive) > :not(.mdc-deprecated-list-item--disabled).mdc-deprecated-list-item:focus-visible:before {
4053
- animation-duration: 0s !important;
4054
- }
4055
- :not(.mdc-deprecated-list--non-interactive) > :not(.mdc-deprecated-list-item--disabled).mdc-deprecated-list-item:before {
4056
- transition: opacity, background-color;
4057
- transition-duration: 0.2s;
4058
- transition-timing-function: ease;
4059
- }
4060
3955
 
4061
3956
  /*
4062
3957
  * This file is imported into every component!
@@ -1768,19 +1768,13 @@
1768
1768
  background-color: rgba(var(--contrast-100), 0.8);
1769
1769
  }
1770
1770
  .limel-select .limel-select-trigger {
1771
+ border: none;
1771
1772
  height: 3.5rem;
1772
1773
  display: inline-flex;
1773
1774
  align-items: center;
1774
1775
  cursor: pointer;
1775
1776
  border-radius: 0.3125rem;
1776
1777
  }
1777
- .limel-select .limel-select-trigger:focus {
1778
- outline: none;
1779
- }
1780
- .limel-select .limel-select-trigger:focus-visible {
1781
- outline: none;
1782
- box-shadow: var(--shadow-depth-8-focused);
1783
- }
1784
1778
  .limel-select .limel-select-trigger .mdc-floating-label {
1785
1779
  color: rgba(var(--contrast-1200), 1);
1786
1780
  width: calc(
@@ -1811,6 +1805,13 @@
1811
1805
  box-shadow: var(--button-shadow-pressed);
1812
1806
  transform: translate3d(0, 0.08rem, 0);
1813
1807
  }
1808
+ .limel-select:not(.mdc-select--disabled) .limel-select-trigger:focus {
1809
+ outline: none;
1810
+ }
1811
+ .limel-select:not(.mdc-select--disabled) .limel-select-trigger:focus-visible {
1812
+ outline: none;
1813
+ box-shadow: var(--shadow-depth-8-focused);
1814
+ }
1814
1815
  .limel-select:not(.mdc-select--disabled) .limel-select-trigger.limel-select--focused {
1815
1816
  background-color: rgba(var(--contrast-100), 0.8);
1816
1817
  }
@@ -1,12 +1,15 @@
1
1
  import { h } from '@stencil/core';
2
2
  import { isMultiple } from '../../util/multiple';
3
3
  export const SelectTemplate = (props) => {
4
+ const value = props.value;
4
5
  let hasValue = !!props.value;
5
- if (isMultiple(props.value)) {
6
- hasValue = props.value.length > 0;
6
+ let hasEmptyText = true;
7
+ if (isMultiple(value)) {
8
+ hasValue = value.length > 0;
7
9
  }
8
10
  else if (hasValue) {
9
- hasValue = !!props.value.value;
11
+ hasValue = !!value.value;
12
+ hasEmptyText = value.text === '';
10
13
  }
11
14
  let isValid = !props.invalid;
12
15
  if (props.checkValid && props.required && !hasValue) {
@@ -23,7 +26,7 @@ export const SelectTemplate = (props) => {
23
26
  'limel-select--empty': !hasValue,
24
27
  'limel-select--with-helper-text': typeof props.helperText === 'string',
25
28
  };
26
- return (h("div", { class: classList }, h(SelectValue, Object.assign({}, props, { hasValue: hasValue, isValid: isValid })), h(HelperText, { text: props.helperText }), h(SelectDropdown, Object.assign({}, props))));
29
+ return (h("div", { class: classList }, h(SelectValue, Object.assign({}, props, { hasValue: hasValue, isValid: isValid, hasEmptyText: hasEmptyText })), h(HelperText, { text: props.helperText }), h(SelectDropdown, Object.assign({}, props))));
27
30
  };
28
31
  const SelectValue = (props) => {
29
32
  const anchorClassList = {
@@ -33,10 +36,12 @@ const SelectValue = (props) => {
33
36
  };
34
37
  const labelClassList = {
35
38
  'mdc-floating-label': true,
36
- 'mdc-floating-label--float-above': props.hasValue || props.isOpen || props.readonly,
39
+ 'mdc-floating-label--float-above': (!props.hasEmptyText && props.hasValue) ||
40
+ props.isOpen ||
41
+ props.readonly,
37
42
  'mdc-floating-label--active': props.isOpen,
38
43
  };
39
- return (h("div", { class: anchorClassList, tabindex: "0", onClick: props.open, onKeyPress: props.onTriggerPress, role: "button", "aria-haspopup": "listbox", "aria-expanded": "false", "aria-labelledby": "s-label s-selected-text", "aria-required": props.required, "aria-disabled": props.disabled }, h("span", { id: "s-label", class: labelClassList }, props.label), h("span", { class: "mdc-select__selected-text-container limel-select__selected-option" }, getSelectedIcon(props.value), h("span", { id: "s-selected-text", class: "mdc-select__selected-text limel-select__selected-option__text" }, getSelectedText(props.value, props.readonly))), h(ShowIcon, Object.assign({}, props, { isValid: props.isValid })), h("span", { class: "mdc-select__dropdown-icon" }, h("svg", { class: "mdc-select__dropdown-icon-graphic", viewBox: "7 10 10 5", focusable: "false" }, h("polygon", { stroke: "none", "fill-rule": "evenodd", points: "7 10 12 15 17 10" })))));
44
+ return (h("button", { class: anchorClassList, onClick: props.open, onKeyPress: props.onTriggerPress, "aria-haspopup": "listbox", "aria-expanded": props.isOpen, "aria-controls": props.id, "aria-labelledby": "s-label s-selected-text", "aria-required": props.required, disabled: props.disabled || props.readonly }, h("span", { id: "s-label", class: labelClassList }, props.label), h("span", { class: "mdc-select__selected-text-container limel-select__selected-option" }, getSelectedIcon(props.value), h("span", { id: "s-selected-text", class: "mdc-select__selected-text limel-select__selected-option__text" }, getSelectedText(props.value, props.readonly))), h(ShowIcon, Object.assign({}, props, { isValid: props.isValid })), h("span", { class: "mdc-select__dropdown-icon" }, h("svg", { class: "mdc-select__dropdown-icon-graphic", viewBox: "7 10 10 5", focusable: "false" }, h("polygon", { stroke: "none", "fill-rule": "evenodd", points: "7 10 12 15 17 10" })))));
40
45
  };
41
46
  const ShowIcon = (props) => {
42
47
  if (props.isValid) {
@@ -2,10 +2,11 @@ import { h } from '@stencil/core';
2
2
  /**
3
3
  * This component can be used on places such as a start page or a dashboard.
4
4
  * Clicking on the component should navigate the user to a new screen,
5
- * to which you need to provide a URL, using the `href` property.
5
+ * to which you need to provide a URL, by specifying an `href` for the `link` property.
6
6
  *
7
7
  * By default, this navigation will happen within the same browser tab.
8
- * However, it is possible to override that behavior, using the `target` property.
8
+ * However, it is possible to override that behavior, by specifying a `target`
9
+ * for the `link` property
9
10
  *
10
11
  * @exampleComponent limel-example-shortcut
11
12
  * @exampleComponent limel-example-shortcut-notification
@@ -20,14 +21,15 @@ export class Shortcut {
20
21
  }
21
22
  };
22
23
  this.getAriaLabel = () => {
23
- if (this.label && this.linkTitle) {
24
- return this.label + '. ' + this.linkTitle;
24
+ var _a, _b;
25
+ if (this.label && ((_a = this.link) === null || _a === void 0 ? void 0 : _a.title)) {
26
+ return this.label + '. ' + this.link.title;
25
27
  }
26
28
  if (this.label) {
27
29
  return this.label;
28
30
  }
29
- if (this.linkTitle) {
30
- return this.linkTitle;
31
+ if ((_b = this.link) === null || _b === void 0 ? void 0 : _b.title) {
32
+ return this.link.title;
31
33
  }
32
34
  return undefined;
33
35
  };
@@ -38,15 +40,14 @@ export class Shortcut {
38
40
  };
39
41
  this.icon = undefined;
40
42
  this.label = null;
41
- this.linkTitle = null;
42
43
  this.disabled = false;
43
- this.href = null;
44
- this.target = '_self';
45
44
  this.badge = undefined;
45
+ this.link = undefined;
46
46
  }
47
47
  render() {
48
+ var _a, _b, _c;
48
49
  return [
49
- h("a", { "aria-disabled": this.disabled, href: this.href, target: this.target, tabindex: "0", "aria-label": this.getAriaLabel(), title: this.linkTitle }, h("limel-icon", { name: this.icon })),
50
+ h("a", { "aria-disabled": this.disabled, href: (_a = this.link) === null || _a === void 0 ? void 0 : _a.href, target: (_b = this.link) === null || _b === void 0 ? void 0 : _b.target, tabindex: "0", "aria-label": this.getAriaLabel(), title: (_c = this.link) === null || _c === void 0 ? void 0 : _c.title }, h("limel-icon", { name: this.icon })),
50
51
  this.renderLabel(),
51
52
  this.renderNotification(),
52
53
  ];
@@ -100,24 +101,6 @@ export class Shortcut {
100
101
  "reflect": true,
101
102
  "defaultValue": "null"
102
103
  },
103
- "linkTitle": {
104
- "type": "string",
105
- "mutable": false,
106
- "complexType": {
107
- "original": "string",
108
- "resolved": "string",
109
- "references": {}
110
- },
111
- "required": false,
112
- "optional": true,
113
- "docs": {
114
- "tags": [],
115
- "text": "The `title` tag of the hyperlink, which can be used to\nprovide additional information about the link.\nIt improves accessibility both for sighted users\nand users with assistive technologies."
116
- },
117
- "attribute": "link-title",
118
- "reflect": true,
119
- "defaultValue": "null"
120
- },
121
104
  "disabled": {
122
105
  "type": "boolean",
123
106
  "mutable": false,
@@ -136,58 +119,42 @@ export class Shortcut {
136
119
  "reflect": true,
137
120
  "defaultValue": "false"
138
121
  },
139
- "href": {
140
- "type": "string",
122
+ "badge": {
123
+ "type": "any",
141
124
  "mutable": false,
142
125
  "complexType": {
143
- "original": "string",
144
- "resolved": "string",
126
+ "original": "number | string",
127
+ "resolved": "number | string",
145
128
  "references": {}
146
129
  },
147
130
  "required": false,
148
131
  "optional": true,
149
132
  "docs": {
150
133
  "tags": [],
151
- "text": "The url that the shortcut leads to."
152
- },
153
- "attribute": "href",
154
- "reflect": true,
155
- "defaultValue": "null"
156
- },
157
- "target": {
158
- "type": "string",
159
- "mutable": false,
160
- "complexType": {
161
- "original": "'_self' | '_blank' | '_parent' | '_top'",
162
- "resolved": "\"_blank\" | \"_parent\" | \"_self\" | \"_top\"",
163
- "references": {}
164
- },
165
- "required": false,
166
- "optional": false,
167
- "docs": {
168
- "tags": [],
169
- "text": "Where to load the linked URL, as the name for a browsing context:\n- `_self`: in the current browsing context. (Default)\n- `_blank`: in a new tab.\n- `_parent`: in the parent browsing context of the current one.\nIf no parent, behaves as `_self`.\n- `_top`: the topmost browsing context (the \"highest\" context\nthat's an ancestor of the current one). If no ancestors, behaves as `_self`."
134
+ "text": "If specified, will display a notification badge\non the shortcut."
170
135
  },
171
- "attribute": "target",
172
- "reflect": true,
173
- "defaultValue": "'_self'"
136
+ "attribute": "badge",
137
+ "reflect": true
174
138
  },
175
- "badge": {
176
- "type": "any",
139
+ "link": {
140
+ "type": "unknown",
177
141
  "mutable": false,
178
142
  "complexType": {
179
- "original": "number | string",
180
- "resolved": "number | string",
181
- "references": {}
143
+ "original": "Link",
144
+ "resolved": "Link",
145
+ "references": {
146
+ "Link": {
147
+ "location": "import",
148
+ "path": "@limetech/lime-elements"
149
+ }
150
+ }
182
151
  },
183
152
  "required": false,
184
153
  "optional": true,
185
154
  "docs": {
186
155
  "tags": [],
187
- "text": "If specified, will display a notification badge\non the shortcut."
188
- },
189
- "attribute": "badge",
190
- "reflect": true
156
+ "text": "If supplied, the shortcut will be a clickable link."
157
+ }
191
158
  }
192
159
  };
193
160
  }
@@ -4,8 +4,11 @@
4
4
  * Nothing in this file may output any CSS
5
5
  * without being explicitly called by outside code.
6
6
  */
7
- :host(limel-split-button) {
7
+ :host(limel-split-button.has-menu) {
8
8
  --button-padding-right: 2rem;
9
+ }
10
+
11
+ :host(limel-split-button) {
9
12
  display: inline-flex;
10
13
  isolation: isolate;
11
14
  }
@@ -72,4 +75,10 @@ limel-menu:hover:before, limel-menu:focus-within:before {
72
75
  }
73
76
  .menu-trigger:not(:disabled):focus-visible, .menu-trigger:not(:disabled):hover {
74
77
  background-color: rgb(var(--color-white), 0.1);
78
+ }
79
+ .menu-trigger:before {
80
+ content: "";
81
+ position: absolute;
82
+ inset: -0.25rem;
83
+ z-index: -1;
75
84
  }
@@ -17,6 +17,14 @@ import { Host, h } from '@stencil/core';
17
17
  */
18
18
  export class SplitButton {
19
19
  constructor() {
20
+ this.renderMenu = () => {
21
+ if (!this.items.length) {
22
+ return;
23
+ }
24
+ return (h("limel-menu", { class: {
25
+ primary: this.primary,
26
+ }, disabled: this.disabled, items: this.items, openDirection: "bottom" }, h("button", { class: "menu-trigger", slot: "trigger", disabled: this.disabled }, "\u22EE")));
27
+ };
20
28
  this.label = undefined;
21
29
  this.primary = false;
22
30
  this.icon = undefined;
@@ -24,9 +32,9 @@ export class SplitButton {
24
32
  this.items = [];
25
33
  }
26
34
  render() {
27
- return (h(Host, null, h("limel-button", { label: this.label, primary: this.primary, icon: this.icon, disabled: this.disabled }), h("limel-menu", { class: {
28
- primary: this.primary,
29
- }, disabled: this.disabled, items: this.items, openDirection: "bottom" }, h("button", { class: "menu-trigger", slot: "trigger", disabled: this.disabled }, "\u22EE"))));
35
+ return (h(Host, { class: {
36
+ 'has-menu': !!this.items.length,
37
+ } }, h("limel-button", { label: this.label, primary: this.primary, icon: this.icon, disabled: this.disabled }), this.renderMenu()));
30
38
  }
31
39
  static get is() { return "limel-split-button"; }
32
40
  static get encapsulation() { return "shadow"; }
@@ -0,0 +1 @@
1
+ export {};