@muraldevkit/ui-toolkit 2.21.2 → 2.22.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.
@@ -0,0 +1,34 @@
1
+ @use '@muraldevkit/ds-foundation/src/styles/contextual-variables/z-index' as *;
2
+ .MrlMenu {
3
+ background: var(--mrl-color-background);
4
+ border-radius: var(--mrl-border-radius-functional-large);
5
+ box-shadow: var(--mrl-shadows-raised);
6
+ flex-direction: column;
7
+ opacity: 0;
8
+ overflow-y: hidden;
9
+ z-index: $mrl-zIndex-menus;
10
+ ul[role='menu'] {
11
+ min-height: var(--mrl-spacing-10);
12
+ padding: var(--mrl-spacing-04);
13
+ }
14
+ &--scrolling {
15
+ padding-bottom: var(--mrl-spacing-04);
16
+ padding-top: var(--mrl-spacing-03);
17
+ ul[role='menu'] {
18
+ overflow-y: auto;
19
+ padding: var(--mrl-spacing-02) var(--mrl-spacing-04) var(--mrl-spacing-02)
20
+ var(--mrl-spacing-04);
21
+ }
22
+ }
23
+ &.compact {
24
+ ul[role='menu'] {
25
+ padding: var(--mrl-spacing-03);
26
+ }
27
+ :global(.mrl-divider) {
28
+ margin: var(--mrl-spacing-03) 0;
29
+ }
30
+ }
31
+ &.open {
32
+ display: flex;
33
+ }
34
+ }
@@ -0,0 +1,3 @@
1
+ .MrlMenuGroup--label {
2
+ margin-bottom: var(--mrl-spacing-03);
3
+ }
@@ -0,0 +1,91 @@
1
+ @use '@muraldevkit/ds-foundation/src/styles/_mixins' as *;
2
+ @use '../../divider/divider.mixins.scss' as *;
3
+ @use '../../divider/divider.variables.scss' as *;
4
+ $menu-padding: var(--mrl-space-stack-controls);
5
+ $submenu-spacing: calc(100% + calc($menu-padding / 2));
6
+ $menu-icon-min-width: var(--mrl-spacing-06);
7
+ $space-inset-small: calc(var(--mrl-spacing-03) - var(--mrl-spacing-01));
8
+ .MrlMenuItem {
9
+ border-radius: var(--mrl-border-radius-content-large);
10
+ list-style-type: none;
11
+ margin: 0;
12
+ margin-bottom: var(--mrl-spacing-01);
13
+ position: relative;
14
+ text-align: left;
15
+ text-indent: 0;
16
+ white-space: nowrap;
17
+ > .subMenu {
18
+ bottom: calc($menu-padding / 2);
19
+ display: none;
20
+ left: $submenu-spacing;
21
+ position: absolute;
22
+ top: calc($menu-padding / -2);
23
+ &::before {
24
+ bottom: calc($menu-padding / 2);
25
+ content: '';
26
+ cursor: pointer;
27
+ height: 100%;
28
+ left: calc($menu-padding * -1);
29
+ position: absolute;
30
+ top: calc($menu-padding / 2);
31
+ width: calc($menu-padding + 0.125rem);
32
+ }
33
+ }
34
+ [aria-expanded='true'] + .subMenu {
35
+ display: flex;
36
+ }
37
+ &:last-child {
38
+ margin-bottom: 0;
39
+ }
40
+ }
41
+ .MrlMenuItem--item {
42
+ @include mrl-text-interactive('xsmall');
43
+ align-items: center;
44
+ background: none;
45
+ border: none;
46
+ border-radius: var(--mrl-border-radius-content-large);
47
+ color: var(--mrl-color-text);
48
+ cursor: pointer;
49
+ display: flex;
50
+ height: 100%;
51
+ justify-content: space-between;
52
+ padding: var(--mrl-space-inline-related) var(--mrl-space-inline-sibling);
53
+ white-space: nowrap;
54
+ width: 100%;
55
+ .mrl-svg {
56
+ min-width: $menu-icon-min-width;
57
+ }
58
+ &.isLink {
59
+ justify-content: flex-start;
60
+ }
61
+ &.withSubmenu {
62
+ padding: calc(var(--mrl-space-stack-siblings) / 2)
63
+ calc(var(--mrl-spacing-02) + var(--mrl-spacing-03)) calc(var(--mrl-space-stack-siblings) / 2)
64
+ var(--mrl-space-inset);
65
+ }
66
+ &:focus-visible {
67
+ outline: var(--mrl-line-width-focus) solid var(--mrl-color-focus);
68
+ outline-offset: var(--mrl-spacing-01);
69
+ }
70
+ &.selected {
71
+ background: var(--mrl-color-background-inverse-hover);
72
+ color: var(--mrl-color-text-inverse);
73
+ }
74
+ &:hover:not(.selected, [aria-disabled='true']) {
75
+ background: var(--mrl-color-background-highlight-hover);
76
+ color: var(--mrl-color-text-hover);
77
+ .rightLabel {
78
+ display: inline;
79
+ visibility: visible;
80
+ }
81
+ }
82
+ &:active:not(.selected, [aria-disabled='true']) {
83
+ background: var(--mrl-color-background-highlight-emph-active);
84
+ color: var(--mrl-color-text-active);
85
+ }
86
+ &[aria-disabled='true'] {
87
+ background: transparent;
88
+ color: var(--mrl-color-text-disabled);
89
+ pointer-events: none;
90
+ }
91
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@muraldevkit/ui-toolkit",
3
- "version": "2.21.2",
3
+ "version": "2.22.0",
4
4
  "description": "Mural's UI Toolkit",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -31,6 +31,8 @@
31
31
  "serve": "storybook dev -p 6006",
32
32
  "test": "jest",
33
33
  "test:scan": "npx test-storybook --maxWorkers=2",
34
+ "test:single": "jest $1",
35
+ "test:single:watch": "jest --watch $1",
34
36
  "test:watch": "jest --watchAll",
35
37
  "test:watch:file": "jest --watch $npm_config_file",
36
38
  "test:updateSnapshot": "jest --updateSnapshot",
@@ -46,7 +48,8 @@
46
48
  "@muraldevkit/ds-icons-animated": "^1.0.1",
47
49
  "lottie-web": "^5.9.6",
48
50
  "react": ">=16.9",
49
- "react-dom": ">=16.9"
51
+ "react-dom": ">=16.9",
52
+ "@react-spring/web": "9.4.2"
50
53
  },
51
54
  "devDependencies": {
52
55
  "@babel/core": "7.21.4",
@@ -124,6 +127,7 @@
124
127
  "webpack-dev-server": "4.13.3"
125
128
  },
126
129
  "dependencies": {
130
+ "@react-spring/web": "9.4.2",
127
131
  "classnames": "2.2.5",
128
132
  "lodash.debounce": "4.0.8",
129
133
  "react": ">=16.9",