@ebay/skin 15.0.0 → 15.1.0-1

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 (49) hide show
  1. package/.github/PULL_REQUEST_TEMPLATE.md +1 -0
  2. package/_cdn/skin/v15.1.0-1/skin-default.min.css +6 -0
  3. package/_cdn/skin/v15.1.0-1/skin-full.min.css +6 -0
  4. package/_cdn/skin/v15.1.0-1/skin-headless.min.css +6 -0
  5. package/_cdn/skin/v15.1.0-1/skin-legacy.min.css +6 -0
  6. package/dist/combobox/combobox.css +6 -0
  7. package/dist/drawer-dialog/drawer-dialog.css +11 -5
  8. package/dist/filter-menu/filter-menu.css +54 -45
  9. package/dist/filter-menu-button/filter-menu-button.css +24 -0
  10. package/dist/floating-label/floating-label.css +12 -0
  11. package/dist/fullscreen-dialog/fullscreen-dialog.css +3 -0
  12. package/dist/inline-notice/inline-notice.css +1 -1
  13. package/dist/lightbox-dialog/lightbox-dialog.css +3 -0
  14. package/dist/listbox/listbox.css +6 -0
  15. package/dist/listbox-button/listbox-button.css +22 -0
  16. package/dist/menu/menu.css +2 -0
  17. package/dist/page-notice/page-notice.css +4 -1
  18. package/dist/panel-dialog/panel-dialog.css +3 -0
  19. package/dist/section-notice/section-notice.css +47 -17
  20. package/dist/tourtip/tourtip.css +28 -0
  21. package/package.json +21 -21
  22. package/src/less/drawer-dialog/drawer-dialog.less +10 -5
  23. package/src/less/drawer-dialog/stories/drawer-dialog.stories.js +12 -174
  24. package/src/less/filter-menu/filter-menu.less +16 -52
  25. package/src/less/filter-menu/stories/filter-menu.stories.js +40 -0
  26. package/src/less/floating-label/floating-label.less +15 -0
  27. package/src/less/floating-label/stories/floating-label.stories.js +1 -1
  28. package/src/less/inline-notice/inline-notice.less +1 -1
  29. package/src/less/lightbox-dialog/stories/lightbox-dialog.stories.js +23 -0
  30. package/src/less/listbox-button/listbox-button.less +20 -0
  31. package/src/less/listbox-button/stories/base.stories.js +48 -41
  32. package/src/less/listbox-button/stories/cascade.stories.js +21 -18
  33. package/src/less/listbox-button/stories/dimensions.stories.js +7 -6
  34. package/src/less/menu/menu.less +2 -0
  35. package/src/less/mixins/private/dialog-mixins.less +3 -0
  36. package/src/less/mixins/private/filter-menu-mixins.less +13 -0
  37. package/src/less/mixins/private/listbox-mixins.less +7 -0
  38. package/src/less/page-notice/page-notice.less +5 -1
  39. package/src/less/page-notice/stories/page-notice.stories.js +16 -0
  40. package/src/less/section-notice/section-notice.less +56 -17
  41. package/src/less/section-notice/stories/rtl.stories.js +66 -0
  42. package/src/less/section-notice/stories/section-notice.stories.js +59 -0
  43. package/src/less/section-notice/stories/test.stories.js +24 -0
  44. package/src/less/tourtip/stories/tourtip.stories.js +51 -0
  45. package/src/less/tourtip/tourtip.less +40 -0
  46. package/_cdn/skin/v15.0.0/skin-default.min.css +0 -6
  47. package/_cdn/skin/v15.0.0/skin-full.min.css +0 -6
  48. package/_cdn/skin/v15.0.0/skin-headless.min.css +0 -6
  49. package/_cdn/skin/v15.0.0/skin-legacy.min.css +0 -6
@@ -167,6 +167,18 @@ span.filter-menu-button__radio svg.icon--radio-checked {
167
167
  .filter-menu-button__item:hover {
168
168
  background-color: var(--color-state-primary-hover, color-state-primary-hover);
169
169
  }
170
+ .filter-menu-button__item:disabled,
171
+ .filter-menu-button__item[aria-disabled="true"] {
172
+ color: var(--filter-menu-item-foreground-color-disabled, var(--color-foreground-disabled));
173
+ }
174
+ .filter-menu-button__item:disabled span > svg,
175
+ .filter-menu-button__item[aria-disabled="true"] span > svg {
176
+ color: var(--filter-menu-item-icon-color-disabled, var(--color-foreground-disabled));
177
+ }
178
+ .filter-menu-button__item:disabled:hover,
179
+ .filter-menu-button__item[aria-disabled="true"]:hover {
180
+ background-color: inherit;
181
+ }
170
182
  .filter-menu-button__item:hover {
171
183
  background-color: var(--color-state-primary-hover);
172
184
  }
@@ -215,6 +227,18 @@ button.filter-menu-button__footer {
215
227
  button.filter-menu-button__footer:hover {
216
228
  background-color: var(--color-state-primary-hover, color-state-primary-hover);
217
229
  }
230
+ button.filter-menu-button__footer:disabled,
231
+ button.filter-menu-button__footer[aria-disabled="true"] {
232
+ color: var(--filter-menu-item-foreground-color-disabled, var(--color-foreground-disabled));
233
+ }
234
+ button.filter-menu-button__footer:disabled span > svg,
235
+ button.filter-menu-button__footer[aria-disabled="true"] span > svg {
236
+ color: var(--filter-menu-item-icon-color-disabled, var(--color-foreground-disabled));
237
+ }
238
+ button.filter-menu-button__footer:disabled:hover,
239
+ button.filter-menu-button__footer[aria-disabled="true"]:hover {
240
+ background-color: inherit;
241
+ }
218
242
  button.filter-menu-button__footer:focus,
219
243
  button.filter-menu-button__footer:hover {
220
244
  background-color: var(--color-state-primary-hover);
@@ -23,9 +23,18 @@ label.floating-label__label {
23
23
  width: calc(100% - 40px);
24
24
  z-index: 1;
25
25
  }
26
+ .floating-label--opaque label.floating-label__label {
27
+ background-color: var(--floating-label-background-color, var(--color-background-secondary));
28
+ padding-top: 3px;
29
+ top: -3px;
30
+ width: calc(100% - 40px);
31
+ }
26
32
  label.floating-label__label--focus {
27
33
  color: var(--color-background-inverse);
28
34
  }
35
+ .floating-label--opaque label.floating-label__label--focus {
36
+ background-color: var(--floating-label-focus-background-color, var(--color-background-primary));
37
+ }
29
38
  .floating-label--large label.floating-label__label {
30
39
  transform: scale(0.75, 0.75) translate(0, 3px);
31
40
  }
@@ -42,6 +51,9 @@ label.floating-label__label--animate {
42
51
  label.floating-label__label--disabled {
43
52
  color: var(--floating-label-disabled-color, var(--color-foreground-disabled));
44
53
  }
54
+ .floating-label--opaque label.floating-label__label--disabled {
55
+ background-color: var(--floating-label-disabled-background-color, var(--color-background-secondary));
56
+ }
45
57
  label.floating-label__label--invalid {
46
58
  color: var(--floating-label-invalid-color, var(--color-foreground-attention));
47
59
  }
@@ -42,6 +42,9 @@
42
42
  align-self: center;
43
43
  flex: 1 1 auto;
44
44
  margin: 0;
45
+ overflow: hidden;
46
+ text-overflow: ellipsis;
47
+ white-space: nowrap;
45
48
  }
46
49
  .fullscreen-dialog__header > :last-child:not(:only-child) {
47
50
  margin-left: 16px;
@@ -13,7 +13,7 @@ span.inline-notice {
13
13
  margin-top: 4px;
14
14
  }
15
15
  .inline-notice p {
16
- margin: 4px 0;
16
+ margin: 3px 0;
17
17
  }
18
18
  .inline-notice a,
19
19
  .inline-notice button.fake-link {
@@ -41,6 +41,9 @@
41
41
  align-self: center;
42
42
  flex: 1 1 auto;
43
43
  margin: 0;
44
+ overflow: hidden;
45
+ text-overflow: ellipsis;
46
+ white-space: nowrap;
44
47
  }
45
48
  .lightbox-dialog__header > :last-child:not(:only-child) {
46
49
  margin-left: 16px;
@@ -47,6 +47,12 @@ div.listbox__option[role="option"]:hover {
47
47
  div.listbox__option[role="option"]:active {
48
48
  font-weight: bold;
49
49
  }
50
+ div.listbox__option[role="option"]:disabled,
51
+ div.listbox__option[role="option"][aria-disabled="true"] {
52
+ color: var(--listbox-option-disabled-foreground-color, var(--color-foreground-disabled));
53
+ background-color: unset;
54
+ font-weight: unset;
55
+ }
50
56
  span.listbox__value {
51
57
  overflow: hidden;
52
58
  text-overflow: ellipsis;
@@ -56,6 +56,17 @@ button.expand-btn[aria-expanded="true"] ~ div.listbox-button__listbox,
56
56
  .listbox-button button.btn--borderless[aria-expanded="true"] ~ .listbox-button__listbox {
57
57
  top: 41px;
58
58
  }
59
+ .listbox-button .btn__label {
60
+ color: var(--listbox-button-label-color, var(--color-foreground-secondary));
61
+ margin-right: 3px;
62
+ }
63
+ .listbox-button--expanded .btn__label {
64
+ color: var(--listbox-button-label-color, var(--color-foreground-primary));
65
+ }
66
+ .listbox-button .btn__text {
67
+ font-weight: bold;
68
+ margin-right: auto;
69
+ }
59
70
  .listbox-button__options[role="listbox"]:focus .listbox-button__option--active[role="option"] {
60
71
  background-color: var(--color-state-primary-hover);
61
72
  }
@@ -103,6 +114,12 @@ div.listbox-button__option[role="option"]:hover {
103
114
  div.listbox-button__option[role="option"]:active {
104
115
  font-weight: bold;
105
116
  }
117
+ div.listbox-button__option[role="option"]:disabled,
118
+ div.listbox-button__option[role="option"][aria-disabled="true"] {
119
+ color: var(--listbox-option-disabled-foreground-color, var(--color-foreground-disabled));
120
+ background-color: unset;
121
+ font-weight: unset;
122
+ }
106
123
  div.listbox-button__option[role="option"]:first-child {
107
124
  border-top-left-radius: var(--listbox-button-listbox-border-radius, var(--border-radius-50));
108
125
  border-top-right-radius: var(--listbox-button-listbox-border-radius, var(--border-radius-50));
@@ -127,3 +144,8 @@ span.listbox-button__value {
127
144
  margin-left: 0;
128
145
  margin-right: 8px;
129
146
  }
147
+ [dir="rtl"] .listbox-button .btn__label {
148
+ color: var(--listbox-button-label-color, var(--color-foreground-secondary));
149
+ margin-left: 3px;
150
+ margin-right: 0;
151
+ }
@@ -88,6 +88,8 @@ a.fake-menu__item:not([href]),
88
88
  button.fake-menu__item[disabled],
89
89
  div.menu__item[role^="menuitem"][aria-disabled="true"] {
90
90
  color: var(--menu-menuitem-disabled-foreground-color, var(--color-foreground-disabled));
91
+ background-color: unset;
92
+ font-weight: unset;
91
93
  }
92
94
  div.menu__item[role^="menuitem"][aria-checked="true"] svg.icon--tick-small {
93
95
  opacity: 1;
@@ -86,9 +86,12 @@ span[role="region"].page-notice {
86
86
  grid-row: 1;
87
87
  text-align: right;
88
88
  }
89
- /* support legacy 6.5 notice with heading + paragaphs */
90
89
  .page-notice__main p {
91
90
  font-size: 0.875rem;
91
+ margin: 2px 0 0;
92
+ }
93
+ /* support legacy 6.5 notice with heading + paragaphs */
94
+ .page-notice__main .page-notice__title ~ p {
92
95
  margin: 4px 0 0;
93
96
  }
94
97
  p.page-notice__cta {
@@ -45,6 +45,9 @@
45
45
  align-self: center;
46
46
  flex: 1 1 auto;
47
47
  margin: 0;
48
+ overflow: hidden;
49
+ text-overflow: ellipsis;
50
+ white-space: nowrap;
48
51
  }
49
52
  .panel-dialog__header > :last-child:not(:only-child) {
50
53
  margin-left: 16px;
@@ -2,22 +2,25 @@
2
2
  background-color: var(--section-notice-default-background-color, var(--color-background-secondary));
3
3
  border-radius: var(--section-notice-border-radius, var(--border-radius-50));
4
4
  font-size: 0.875rem;
5
- justify-content: flex-start;
6
5
  margin: 8px 0;
7
6
  padding: 16px;
8
7
  }
9
8
  div[role="region"].section-notice,
10
9
  section.section-notice {
11
- display: flex;
10
+ display: grid;
11
+ grid-template-columns: 32px auto auto auto;
12
12
  }
13
13
  span[role="region"].section-notice {
14
- display: inline-flex;
14
+ display: grid;
15
15
  }
16
16
  .section-notice__title {
17
17
  font-size: 0.875rem;
18
18
  font-weight: normal;
19
19
  margin: 0;
20
20
  }
21
+ .section-notice__cta a {
22
+ white-space: nowrap;
23
+ }
21
24
  /* legacy version with separate bold heading */
22
25
  .section-notice__title:not(:only-child) {
23
26
  font-weight: bold;
@@ -38,27 +41,38 @@ span[role="region"].section-notice {
38
41
  .section-notice a:hover {
39
42
  color: var(--section-notice-foreground-color, var(--color-foreground-primary));
40
43
  }
44
+ .section-notice .icon {
45
+ vertical-align: top;
46
+ }
41
47
  .section-notice__header {
42
- align-items: center;
43
- display: flex;
44
- justify-content: center;
45
- padding-right: 12px;
48
+ grid-column: 1;
49
+ grid-row: 1;
50
+ height: 16px;
51
+ padding-right: 16px;
46
52
  }
47
- .section-notice__main,
48
- .section-notice__footer {
49
- display: flex;
50
- flex-direction: column;
51
- justify-content: center;
53
+ .section-notice__main {
54
+ grid-column: 2;
55
+ grid-row: 1;
56
+ padding-right: 16px;
52
57
  }
53
58
  .section-notice__footer {
54
- flex-shrink: 0;
55
- margin-left: auto;
56
- padding-left: 0;
57
- width: auto;
59
+ grid-column: 4;
60
+ grid-row: 1;
61
+ justify-self: end;
58
62
  }
59
- /* support legacy 6.5 notice with heading + paragaphs */
60
63
  .section-notice__main p {
61
64
  font-size: 0.875rem;
65
+ margin: 0;
66
+ }
67
+ p.section-notice__cta {
68
+ grid-column: 2;
69
+ grid-row: 2;
70
+ justify-self: start;
71
+ margin-right: 16px;
72
+ margin-top: 16px;
73
+ }
74
+ /* support legacy 6.5 notice with heading + paragaphs */
75
+ .section-notice__main .section-notice__title ~ p {
62
76
  margin: 4px 0 0;
63
77
  }
64
78
  /* LARGE SCREEN ADJUSTMENTS */
@@ -68,6 +82,14 @@ span[role="region"].section-notice {
68
82
  flex-wrap: nowrap;
69
83
  margin: 16px 0;
70
84
  }
85
+ p.section-notice__cta {
86
+ grid-column: 4;
87
+ grid-row: 1;
88
+ justify-self: end;
89
+ margin-bottom: 0;
90
+ margin-top: 0;
91
+ padding-right: 16px;
92
+ }
71
93
  .section-notice__footer {
72
94
  margin-top: 0;
73
95
  padding-left: 16px;
@@ -78,8 +100,16 @@ span[role="region"].section-notice {
78
100
  padding-right: 0;
79
101
  }
80
102
  [dir="rtl"] .section-notice__footer {
103
+ justify-self: start;
81
104
  margin-left: initial;
82
105
  margin-right: auto;
83
106
  padding-left: initial;
84
107
  padding-right: 0;
85
108
  }
109
+ [dir="rtl"] .section-notice__main {
110
+ padding-right: 0;
111
+ }
112
+ [dir="rtl"] p.page-notice__cta {
113
+ margin-left: 16px;
114
+ padding-left: 16px;
115
+ }
@@ -33,6 +33,7 @@ span.tourtip__mask {
33
33
  display: flex;
34
34
  padding: 8px 16px;
35
35
  word-break: break-word;
36
+ flex-wrap: wrap;
36
37
  }
37
38
  .tourtip__cell a {
38
39
  color: var(--tourtip-foreground-color, var(--color-foreground-primary));
@@ -42,6 +43,7 @@ span.tourtip__mask {
42
43
  }
43
44
  .tourtip__content {
44
45
  flex-grow: 1;
46
+ flex-basis: 0;
45
47
  }
46
48
  .tourtip__content p {
47
49
  margin: 0;
@@ -59,6 +61,7 @@ button.tourtip__close {
59
61
  padding: 0;
60
62
  white-space: nowrap;
61
63
  width: 32px;
64
+ outline-offset: -2px;
62
65
  }
63
66
  button.tourtip__close > svg {
64
67
  fill: currentColor;
@@ -143,6 +146,31 @@ span.tourtip__heading {
143
146
  .tourtip--expanded .tourtip__overlay {
144
147
  display: block;
145
148
  }
149
+ .tourtip__footer {
150
+ align-items: center;
151
+ display: flex;
152
+ justify-content: end;
153
+ margin-top: 16px;
154
+ width: 100%;
155
+ }
156
+ .tourtip__footer > button:not(:last-child),
157
+ .tourtip__footer > a:not(:last-child) {
158
+ margin-right: 8px;
159
+ }
160
+ .tourtip__footer > .fake-link,
161
+ .tourtip__footer > a {
162
+ color: var(--color-foreground-primary);
163
+ text-decoration: none;
164
+ }
165
+ .tourtip__footer > .fake-link:hover:not(:disabled),
166
+ .tourtip__footer > a:hover:not(:disabled) {
167
+ color: var(--color-foreground-primary);
168
+ text-decoration: underline;
169
+ }
170
+ .tourtip__index {
171
+ color: var(--tourtip-index-color, var(--color-foreground-secondary));
172
+ flex: 1;
173
+ }
146
174
  @media (min-width: 601px) {
147
175
  .tourtip__overlay {
148
176
  max-width: 400px;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ebay/skin",
3
3
  "description": "Skin - CSS modules that represent the brand eBay",
4
- "version": "15.0.0",
4
+ "version": "15.1.0-1",
5
5
  "license": "MIT",
6
6
  "main": "./index.js",
7
7
  "maintainers": [
@@ -48,31 +48,32 @@
48
48
  "verify": "node scripts verify",
49
49
  "version": "node scripts/jekyll-config && npm run build:storybook && npm run build && git add -A dist docs",
50
50
  "transpile": "babel docs/src/js --out-dir docs/_babel",
51
- "snapshots": "npx gulp runSnapshots --stories $STORIES",
52
- "snapshots:dry": "npx gulp runSnapshots --dry yes --stories $STORIES",
53
- "snapshots:execute": "percy storybook ./docs/storybook --include",
54
- "snapshots:execute:dry": "percy storybook ./docs/storybook --dry-run --include",
55
- "snapshots:all": "percy storybook ./docs/storybook --include '.*'",
56
- "snapshots:all:dry": "percy storybook --dry-run ./docs/storybook --include '.*'",
51
+ "build:snapshots": "npm run copy:assetsToStorybook && cross-env STORYBOOK_DS=6 build-storybook -o ./.storybook-percy",
52
+ "snapshots": "npm run build:snapshots && npx gulp runSnapshots --stories $STORIES",
53
+ "snapshots:dry": "npm run build:snapshots && npx gulp runSnapshots --dry yes --stories $STORIES",
54
+ "snapshots:execute": "npm run build:snapshots && percy storybook ./.storybook-percy --include",
55
+ "snapshots:execute:dry": "percy storybook ./.storybook-percy --dry-run --include",
56
+ "snapshots:all": "npm run build:snapshots && percy storybook ./.storybook-percy --include '.*'",
57
+ "snapshots:all:dry": "npm run build:snapshots && percy storybook --dry-run ./.storybook-percy --include '.*'",
57
58
  "storybook": "npm run copy:assetsToStorybook && cross-env STORYBOOK_DS=6 start-storybook -s ."
58
59
  },
59
60
  "devDependencies": {
60
61
  "@babel/cli": "^7.18.10",
61
- "@babel/core": "^7.18.13",
62
- "@babel/preset-env": "^7.18.10",
63
- "@commitlint/cli": "^17.0.2",
64
- "@commitlint/config-conventional": "^17.0.2",
65
- "@ebay/browserslist-config": "^2.2.0",
66
- "@percy/cli": "^1.10.0",
62
+ "@babel/core": "^7.19.1",
63
+ "@babel/preset-env": "^7.19.1",
64
+ "@commitlint/cli": "^17.1.2",
65
+ "@commitlint/config-conventional": "^17.1.0",
66
+ "@ebay/browserslist-config": "^2.4.1",
67
+ "@percy/cli": "^1.10.4",
67
68
  "@percy/storybook": "^4.3.1",
68
- "@storybook/builder-webpack5": "^6.5.10",
69
- "@storybook/html": "^6.5.10",
70
- "@storybook/manager-webpack5": "^6.5.10",
69
+ "@storybook/builder-webpack5": "^6.5.12",
70
+ "@storybook/html": "^6.5.12",
71
+ "@storybook/manager-webpack5": "^6.5.12",
71
72
  "babel-loader": "^8.2.5",
72
73
  "browser-sync": "^2.27.10",
73
74
  "btoa": "^1",
74
75
  "cross-env": "^7",
75
- "eslint": "^8.22.0",
76
+ "eslint": "^8.24.0",
76
77
  "eslint-config-ebay": "^1",
77
78
  "eslint-config-prettier": "^8",
78
79
  "eslint-plugin-prettier": "^4",
@@ -116,21 +117,20 @@
116
117
  "mkdirp": "^1",
117
118
  "ncp": "^2",
118
119
  "npm-run-all": "^4",
119
- "percy": "~0.28.1",
120
120
  "postcss-less": "^6.0.0",
121
121
  "postcss-loader": "^7.0.0",
122
122
  "prettier": "^2.7.1",
123
123
  "rimraf": "^3",
124
- "stylelint": "^14.11.0",
124
+ "stylelint": "^14.12.1",
125
125
  "stylelint-config-prettier": "^9",
126
126
  "stylelint-config-standard": "^28",
127
- "stylelint-no-unsupported-browser-features": "^5.0.1",
127
+ "stylelint-no-unsupported-browser-features": "^5.0.4",
128
128
  "stylelint-order": "^5",
129
129
  "stylelint-prettier": "^2",
130
130
  "svgo": "^2.7.0",
131
131
  "webpack": "^5.74.0",
132
132
  "webpack-cli": "^4.10.0",
133
- "winston": "^3.7.2",
133
+ "winston": "^3.8.2",
134
134
  "xmlserializer": "^0.6.1",
135
135
  "yargs": "^17.5.1"
136
136
  },
@@ -16,6 +16,10 @@
16
16
  .dialog-header-content();
17
17
  }
18
18
 
19
+ .drawer-dialog__header .fake-link {
20
+ text-decoration: none;
21
+ }
22
+
19
23
  .drawer-dialog__handle {
20
24
  background-color: transparent;
21
25
  border: none;
@@ -30,12 +34,12 @@
30
34
 
31
35
  // Added :after class in order to increase parent hit box
32
36
  .drawer-dialog__handle::after {
33
- .background-color-token(dialog-handle-color, color-foreground-secondary);
34
- border-radius: 5px;
37
+ .background-color-token(dialog-handle-color, color-stroke-default);
38
+ border-radius: 3px;
35
39
  content: "";
36
40
  display: block;
37
- height: 3px;
38
- width: 20px;
41
+ height: 2px;
42
+ width: 24px;
39
43
  }
40
44
 
41
45
  .drawer-dialog__main {
@@ -61,7 +65,8 @@
61
65
  }
62
66
 
63
67
  // inherits from .icon-btn
64
- button.drawer-dialog__close {
68
+ // Added icon button selector so it doesn't override fake-link
69
+ button.icon-button.drawer-dialog__close {
65
70
  background-color: transparent;
66
71
  border: 0;
67
72
  height: auto;