@ebay/skin 16.1.0 → 16.2.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 (46) hide show
  1. package/.storybook/main.js +36 -47
  2. package/.storybook/manager.js +0 -3
  3. package/.storybook/preview-head.html +18 -0
  4. package/.storybook/preview.js +1 -0
  5. package/_cdn/skin/v16.2.0/skin-default.min.css +6 -0
  6. package/_cdn/skin/v16.2.0/skin-full.min.css +6 -0
  7. package/_cdn/skin/v16.2.0/skin-headless.min.css +6 -0
  8. package/_cdn/skin/v16.2.0/skin-legacy.min.css +6 -0
  9. package/avatar.browser.json +1 -0
  10. package/avatar.css +1 -0
  11. package/avatar.js +1 -0
  12. package/avatar.mjs +1 -0
  13. package/dist/avatar/avatar.css +100 -0
  14. package/dist/legacy-tokens/ds4-light.css +14 -0
  15. package/dist/segmented-buttons/segmented-buttons.css +62 -0
  16. package/dist/svg/icon/icon-avatar-signed-out.svg +5 -0
  17. package/dist/svg/icons.svg +18 -0
  18. package/dist/tokens/evo-light.css +14 -0
  19. package/dist/variables/variables.less +1 -0
  20. package/index.browser.json +2 -0
  21. package/index.css +2 -0
  22. package/index.js +2 -0
  23. package/index.mjs +2 -0
  24. package/package.json +29 -29
  25. package/segmented-buttons.browser.json +1 -0
  26. package/segmented-buttons.css +1 -0
  27. package/segmented-buttons.js +1 -0
  28. package/segmented-buttons.mjs +1 -0
  29. package/src/less/avatar/avatar.less +111 -0
  30. package/src/less/avatar/stories/avatar.stories.js +265 -0
  31. package/src/less/bundles/skin-headless.less +2 -0
  32. package/src/less/button/button.less +2 -0
  33. package/src/less/cta-button/cta-button.less +2 -0
  34. package/src/less/mixins/private/button-mixins.less +4 -0
  35. package/src/less/segmented-buttons/segmented-buttons.less +69 -0
  36. package/src/less/segmented-buttons/stories/segmented-buttons.stories.js +100 -0
  37. package/src/less/variables/variables.less +1 -0
  38. package/src/svg/icon/icon-avatar-signed-out.svg +5 -0
  39. package/src/svg/icons.svg +18 -0
  40. package/src/tokens/evo-light.css +14 -0
  41. package/svg.svg +18 -0
  42. package/_cdn/skin/v16.1.0/skin-default.min.css +0 -6
  43. package/_cdn/skin/v16.1.0/skin-full.min.css +0 -6
  44. package/_cdn/skin/v16.1.0/skin-headless.min.css +0 -6
  45. package/_cdn/skin/v16.1.0/skin-legacy.min.css +0 -6
  46. package/src/less/index.stories.js +0 -1
@@ -0,0 +1,62 @@
1
+ .segmented-buttons {
2
+ border: 1px solid var(--color-stroke-default);
3
+ border-radius: 24px;
4
+ max-width: 720px;
5
+ min-width: 215px;
6
+ padding: 4px;
7
+ }
8
+ .segmented-buttons > ul {
9
+ display: flex;
10
+ list-style: none;
11
+ margin: 0;
12
+ padding: 0;
13
+ }
14
+ .segmented-buttons > ul > li {
15
+ display: flex;
16
+ flex: 1;
17
+ }
18
+ .segmented-buttons > ul > li:not(:first-child) {
19
+ margin-left: 8px;
20
+ }
21
+ .segmented-buttons__button {
22
+ background-color: transparent;
23
+ border: none;
24
+ border-radius: var(--btn-border-radius, calc(40px / 2));
25
+ font-size: 0.875rem;
26
+ min-height: 40px;
27
+ padding: 8px 16px;
28
+ width: 100%;
29
+ }
30
+ .segmented-buttons__button-cell {
31
+ align-items: center;
32
+ display: flex;
33
+ width: 100%;
34
+ justify-content: center;
35
+ }
36
+ .segmented-buttons__button svg.icon {
37
+ align-self: center;
38
+ }
39
+ .segmented-buttons__button svg.icon:first-child {
40
+ margin-right: 8px;
41
+ }
42
+ .segmented-buttons__button svg.icon:last-child {
43
+ margin-left: 8px;
44
+ }
45
+ .segmented-buttons__button svg.icon:only-child {
46
+ margin: 0;
47
+ }
48
+ .segmented-buttons__button[aria-current] {
49
+ background-color: var(--color-foreground-primary);
50
+ color: var(--color-foreground-on-inverse);
51
+ }
52
+ .segmented-buttons__button:not([aria-current]):active {
53
+ background-color: var(--color-state-primary-active);
54
+ }
55
+ .segmented-buttons__button:not([aria-current]):hover,
56
+ .segmented-buttons__button:not([aria-current]):focus {
57
+ background-color: var(--color-state-primary-hover);
58
+ }
59
+ [dir="rtl"] .segmented-buttons > ul > li:not(:first-child) {
60
+ margin-left: 0;
61
+ margin-right: 8px;
62
+ }
@@ -0,0 +1,5 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40">
2
+ <circle cx="20" cy="20" r="20" fill="var(--color-background-secondary, #F7F7F7)"/>
3
+ <circle cx="20" cy="17.5" r="8.333" fill="var(--color-foreground-secondary, #707070)"/>
4
+ <path d="M7.67 35.748c2-4.84 6.767-8.248 12.33-8.248s10.33 3.407 12.33 8.249A19.914 19.914 0 0 1 20 40a19.914 19.914 0 0 1-12.33-4.252Z" fill="var(--color-foreground-secondary, #707070)"/>
5
+ </svg>
@@ -380,6 +380,24 @@
380
380
  d="M11 0a1 1 0 0 1 1 1v2a1 1 0 1 1-2 0V1a1 1 0 0 1 1-1ZM2.293 2.293a1 1 0 0 1 1.414 0l2 2a1 1 0 0 1-1.414 1.414l-2-2a1 1 0 0 1 0-1.414Zm15 1a1 1 0 1 1 1.414 1.414l-2 2a1 1 0 1 1-1.414-1.414l2-2ZM9.916 9.209l-.707.707 2.73 2.73.707-.706-2.73-2.73Zm4.144 4.145-.706.707 7.73 7.73.707-.707-7.73-7.73ZM8.855 7.442a1.5 1.5 0 0 1 2.121 0l12.582 12.582a1.5 1.5 0 0 1 0 2.12l-1.413 1.415a1.5 1.5 0 0 1-2.122 0L7.441 10.977a1.5 1.5 0 0 1 0-2.122l1.414-1.413ZM0 11a1 1 0 0 1 1-1h2a1 1 0 1 1 0 2H1a1 1 0 0 1-1-1Zm6.707 4.293a1 1 0 0 1 0 1.414l-2 2a1 1 0 0 1-1.414-1.414l2-2a1 1 0 0 1 1.414 0Z"
381
381
  />
382
382
  </symbol>
383
+ <symbol viewBox="0 0 40 40" id="icon-avatar-signed-out">
384
+ <circle
385
+ cx="20"
386
+ cy="20"
387
+ r="20"
388
+ fill="var(--color-background-secondary, #F7F7F7)"
389
+ />
390
+ <circle
391
+ cx="20"
392
+ cy="17.5"
393
+ r="8.333"
394
+ fill="var(--color-foreground-secondary, #707070)"
395
+ />
396
+ <path
397
+ d="M7.67 35.748c2-4.84 6.767-8.248 12.33-8.248s10.33 3.407 12.33 8.249A19.914 19.914 0 0 1 20 40a19.914 19.914 0 0 1-12.33-4.252Z"
398
+ fill="var(--color-foreground-secondary, #707070)"
399
+ />
400
+ </symbol>
383
401
  <symbol viewBox="0 0 24 24" id="icon-bag-24">
384
402
  <path
385
403
  d="M17.996 6.775A6 6 0 0 0 6 7v2H4a1 1 0 0 0-.986.836l-2 12A1 1 0 0 0 2 23h20a1 1 0 0 0 .986-1.164l-2-12A1 1 0 0 0 20 9h-2V7l-.004-.225ZM16 11v2l.007.117A1 1 0 0 0 18 13v-2h1.153l1.667 10H3.18l1.667-10H6v2l.007.117A1 1 0 0 0 8 13v-2h8Zm0-2H8V7l.005-.2A4 4 0 0 1 16 7v2Z"
@@ -71,4 +71,18 @@
71
71
  --color-data-viz-tooltip-shadow-secondary: #0000002b;
72
72
  --color-scrim-image: rgba(0, 0, 0, 0.04);
73
73
  --color-scrim-background: rgba(0, 0, 0, 0.32);
74
+ --color-marketing-lime-foreground-4: var(--color-lime-7);
75
+ --color-marketing-lime-background-4: var(--color-lime-4);
76
+ --color-marketing-green-foreground-3: var(--color-green-7);
77
+ --color-marketing-green-background-3: var(--color-green-3);
78
+ --color-marketing-teal-foreground-3: var(--color-teal-7);
79
+ --color-marketing-teal-background-3: var(--color-teal-3);
80
+ --color-marketing-teal-foreground-5: var(--color-neutral-0);
81
+ --color-marketing-teal-background-5: var(--color-teal-5);
82
+ --color-marketing-yellow-foreground-3: var(--color-yellow-7);
83
+ --color-marketing-yellow-background-3: var(--color-yellow-3);
84
+ --color-marketing-orange-foreground-3: var(--color-orange-7);
85
+ --color-marketing-orange-background-3: var(--color-orange-3);
86
+ --color-marketing-magenta-foreground-4: var(--color-neutral-0);
87
+ --color-marketing-magenta-background-4: var(--color-magenta-4);
74
88
  }
@@ -43,6 +43,7 @@
43
43
  @font-size-30: 1.875rem;
44
44
  @font-size-36: 2.25rem;
45
45
  @font-size-46: 2.875rem;
46
+ @font-size-64: 4rem;
46
47
 
47
48
  @spacing-25: @spacing-100 * 0.25;
48
49
  @spacing-50: @spacing-100 * 0.5;
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "dependencies": [
3
3
  "require: ./alert-dialog.js",
4
+ "require: ./avatar.js",
4
5
  "require: ./badge.js",
5
6
  "require: ./breadcrumbs.js",
6
7
  "require: ./button.js",
@@ -43,6 +44,7 @@
43
44
  "require: ./radio.js",
44
45
  "require: ./section-notice.js",
45
46
  "require: ./section-title.js",
47
+ "require: ./segmented-buttons.js",
46
48
  "require: ./select.js",
47
49
  "require: ./signal.js",
48
50
  "require: ./snackbar-dialog.js",
package/index.css CHANGED
@@ -1,4 +1,5 @@
1
1
  @import "./alert-dialog.css";
2
+ @import "./avatar.css";
2
3
  @import "./badge.css";
3
4
  @import "./breadcrumbs.css";
4
5
  @import "./button.css";
@@ -41,6 +42,7 @@
41
42
  @import "./radio.css";
42
43
  @import "./section-notice.css";
43
44
  @import "./section-title.css";
45
+ @import "./segmented-buttons.css";
44
46
  @import "./select.css";
45
47
  @import "./signal.css";
46
48
  @import "./snackbar-dialog.css";
package/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  require('./alert-dialog.js');
2
+ require('./avatar.js');
2
3
  require('./badge.js');
3
4
  require('./breadcrumbs.js');
4
5
  require('./button.js');
@@ -41,6 +42,7 @@ require('./progress-stepper.js');
41
42
  require('./radio.js');
42
43
  require('./section-notice.js');
43
44
  require('./section-title.js');
45
+ require('./segmented-buttons.js');
44
46
  require('./select.js');
45
47
  require('./signal.js');
46
48
  require('./snackbar-dialog.js');
package/index.mjs CHANGED
@@ -1,4 +1,5 @@
1
1
  import './alert-dialog.css';
2
+ import './avatar.css';
2
3
  import './badge.css';
3
4
  import './breadcrumbs.css';
4
5
  import './button.css';
@@ -41,6 +42,7 @@ import './progress-stepper.css';
41
42
  import './radio.css';
42
43
  import './section-notice.css';
43
44
  import './section-title.css';
45
+ import './segmented-buttons.css';
44
46
  import './select.css';
45
47
  import './signal.css';
46
48
  import './snackbar-dialog.css';
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": "16.1.0",
4
+ "version": "16.2.0",
5
5
  "license": "MIT",
6
6
  "main": "./index.js",
7
7
  "maintainers": [
@@ -27,8 +27,8 @@
27
27
  "build:jekyll": "bundler exec jekyll build --incremental --config docs/_config.yml,docs/_config.localhost.yml",
28
28
  "build:site": "npm run copy:svgToDocs && npm run build:jekyll",
29
29
  "build:storybook": "npm run copy:assetsToStorybook && npm run build:storybook:ds6",
30
- "build:storybook:ds4": "cross-env STORYBOOK_DS=4 build-storybook -o ./docs/ds4/storybook",
31
- "build:storybook:ds6": "cross-env STORYBOOK_DS=6 build-storybook -o ./docs/storybook",
30
+ "build:storybook:ds4": "cross-env STORYBOOK_DS=4 storybook build -o ./docs/ds4/storybook",
31
+ "build:storybook:ds6": "cross-env STORYBOOK_DS=6 storybook build -o ./docs/storybook",
32
32
  "clean": "rimraf _cdn _site .cache .tmp .jekyll npm-debug.log.* .DS_Store",
33
33
  "compileModule": "npx gulp compileModule --name $NAME",
34
34
  "bundle": "npm run bundle:js && npm run bundle:css",
@@ -49,32 +49,31 @@
49
49
  "verify": "node scripts verify",
50
50
  "version": "node scripts/jekyll-config && npm run build:storybook && npm run build && git add -A dist docs",
51
51
  "transpile": "babel docs/src/js --out-dir docs/_babel",
52
- "build:snapshots": "npm run copy:assetsToStorybook && cross-env STORYBOOK_DS=6 build-storybook -o ./.storybook-percy",
52
+ "build:snapshots": "npm run copy:assetsToStorybook && cross-env STORYBOOK_DS=6 storybook build -o ./.storybook-percy",
53
53
  "snapshots": "npm run build:snapshots && npx gulp runSnapshots --stories $STORIES",
54
54
  "snapshots:dry": "npm run build:snapshots && npx gulp runSnapshots --dry yes --stories $STORIES",
55
55
  "snapshots:execute": "npm run build:snapshots && percy storybook ./.storybook-percy --include",
56
56
  "snapshots:execute:dry": "percy storybook ./.storybook-percy --dry-run --include",
57
57
  "snapshots:all": "npm run build:snapshots && percy storybook ./.storybook-percy --include '.*'",
58
58
  "snapshots:all:dry": "npm run build:snapshots && percy storybook --dry-run ./.storybook-percy --include '.*'",
59
- "storybook": "npm run copy:assetsToStorybook && cross-env STORYBOOK_DS=6 start-storybook -s ."
59
+ "storybook": "npm run copy:assetsToStorybook && cross-env STORYBOOK_DS=6 storybook dev -c .storybook"
60
60
  },
61
61
  "devDependencies": {
62
- "@babel/cli": "^7.20.7",
63
- "@babel/core": "^7.21.4",
64
- "@babel/preset-env": "^7.21.4",
65
- "@commitlint/cli": "^17.5.1",
66
- "@commitlint/config-conventional": "^17.4.2",
67
- "@ebay/browserslist-config": "^2.4.1",
68
- "@percy/cli": "^1.21.0",
69
- "@percy/storybook": "^4.3.4",
70
- "@storybook/builder-webpack5": "^6.5.16",
71
- "@storybook/html": "^6.5.16",
72
- "@storybook/manager-webpack5": "^6.5.16",
62
+ "@babel/cli": "^7.21.5",
63
+ "@babel/core": "^7.21.8",
64
+ "@babel/preset-env": "^7.21.5",
65
+ "@commitlint/cli": "^17.6.3",
66
+ "@commitlint/config-conventional": "^17.6.3",
67
+ "@ebay/browserslist-config": "^2.6.0",
68
+ "@percy/cli": "^1.24.1",
69
+ "@percy/storybook": "^4.3.6",
70
+ "@storybook/html": "^7.0.12",
71
+ "@storybook/html-webpack5": "^7.0.12",
73
72
  "babel-loader": "^9.1.2",
74
- "browser-sync": "^2.29.1",
73
+ "browser-sync": "^2.29.3",
75
74
  "btoa": "^1",
76
75
  "cross-env": "^7",
77
- "eslint": "^8.37.0",
76
+ "eslint": "^8.40.0",
78
77
  "eslint-config-ebay": "^1",
79
78
  "eslint-config-prettier": "^8",
80
79
  "eslint-plugin-prettier": "^4",
@@ -85,11 +84,11 @@
85
84
  "gulp-rename": "^2",
86
85
  "husky": "^8.0.3",
87
86
  "jekyll": "^3.0.0-beta1",
88
- "jsdom": "^21.1.0",
87
+ "jsdom": "^22.0.0",
89
88
  "less-loader": "^11.1.0",
90
89
  "less-plugin-autoprefix": "^2",
91
90
  "less-plugin-clean-css": "^1.5.1",
92
- "lint-staged": "^13.0.2",
91
+ "lint-staged": "^13.2.2",
93
92
  "makeup-alert-dialog": "~0.2.0",
94
93
  "makeup-combobox": "~0.3.0",
95
94
  "makeup-confirm-dialog": "~0.2.0",
@@ -113,24 +112,25 @@
113
112
  "makeup-snackbar-dialog": "0.1.0",
114
113
  "makeup-switch": "~0.2.0",
115
114
  "makeup-toast-dialog": "0.1.0",
116
- "mkdirp": "^2",
115
+ "mkdirp": "^3",
117
116
  "ncp": "^2",
118
117
  "npm-run-all": "^4",
119
118
  "postcss-less": "^6.0.0",
120
- "postcss-loader": "^7.0.2",
121
- "prettier": "^2.8.7",
122
- "rimraf": "^4",
123
- "stylelint": "^15.4.0",
124
- "stylelint-config-standard": "^32",
119
+ "postcss-loader": "^7.3.0",
120
+ "prettier": "^2.8.8",
121
+ "rimraf": "^5",
122
+ "storybook": "^7.0.12",
123
+ "stylelint": "^15.6.2",
124
+ "stylelint-config-standard": "^33",
125
125
  "stylelint-no-unsupported-browser-features": "^6.0.1",
126
126
  "stylelint-order": "^6",
127
127
  "stylelint-prettier": "^3",
128
128
  "svgo": "^3.0.1",
129
- "webpack": "^5.78.0",
130
- "webpack-cli": "^5.0.1",
129
+ "webpack": "^5.83.0",
130
+ "webpack-cli": "^5.1.1",
131
131
  "winston": "^3.8.2",
132
132
  "xmlserializer": "^0.6.1",
133
- "yargs": "^17.6.2"
133
+ "yargs": "^17.7.2"
134
134
  },
135
135
  "keywords": [
136
136
  "eBay",
@@ -0,0 +1 @@
1
+ { "dependencies": ["require: ./segmented-buttons.js"] }
@@ -0,0 +1 @@
1
+ @import "./dist/segmented-buttons/segmented-buttons.css";
@@ -0,0 +1 @@
1
+ require('./dist/segmented-buttons/segmented-buttons.css');
@@ -0,0 +1 @@
1
+ import './dist/segmented-buttons/segmented-buttons.css';
@@ -0,0 +1,111 @@
1
+ @import "../variables/variables.less";
2
+
3
+ .avatar {
4
+ align-items: center;
5
+ background-color: var(--color-marketing-teal-background-5);
6
+ border-radius: 50%;
7
+ color: var(--color-marketing-teal-foreground-5);
8
+ display: inline-flex;
9
+ font-size: @font-size-large-2;
10
+ font-weight: @font-weight-bold;
11
+ height: 48px;
12
+ justify-content: center;
13
+ line-height: 48px;
14
+ overflow: hidden;
15
+ width: 48px;
16
+ }
17
+ .avatar > svg {
18
+ height: 100%;
19
+ width: 100%;
20
+ }
21
+
22
+ .avatar > img {
23
+ height: 48px;
24
+ object-fit: cover;
25
+ width: 48px;
26
+ }
27
+
28
+ .avatar--teal {
29
+ background-color: var(--color-marketing-teal-background-5);
30
+ color: var(--color-marketing-teal-foreground-5);
31
+ }
32
+
33
+ .avatar--light-teal {
34
+ background-color: var(--color-marketing-teal-background-3);
35
+ color: var(--color-marketing-teal-foreground-3);
36
+ }
37
+
38
+ .avatar--green {
39
+ background-color: var(--color-marketing-green-background-3);
40
+ color: var(--color-marketing-green-foreground-3);
41
+ }
42
+
43
+ .avatar--lime {
44
+ background-color: var(--color-marketing-lime-background-4);
45
+ color: var(--color-marketing-lime-foreground-4);
46
+ }
47
+
48
+ .avatar--yellow {
49
+ background-color: var(--color-marketing-yellow-background-3);
50
+ color: var(--color-marketing-yellow-foreground-3);
51
+ }
52
+
53
+ .avatar--orange {
54
+ background-color: var(--color-marketing-orange-background-3);
55
+ color: var(--color-marketing-orange-foreground-3);
56
+ }
57
+
58
+ .avatar--magenta {
59
+ background-color: var(--color-marketing-magenta-background-4);
60
+ color: var(--color-marketing-magenta-foreground-4);
61
+ }
62
+
63
+ .avatar--32,
64
+ .avatar--32 > img {
65
+ font-size: @font-size-medium;
66
+ height: 32px;
67
+ line-height: 32px;
68
+ width: 32px;
69
+ }
70
+ .avatar--40,
71
+ .avatar--40 > img {
72
+ font-size: @font-size-large-1;
73
+ height: 40px;
74
+ line-height: 40px;
75
+ width: 40px;
76
+ }
77
+ .avatar--48,
78
+ .avatar--48 > img {
79
+ font-size: @font-size-large-2;
80
+ height: 48px;
81
+ line-height: 48px;
82
+ width: 48px;
83
+ }
84
+ .avatar--56,
85
+ .avatar--56 > img {
86
+ font-size: @font-size-giant-1;
87
+ height: 56px;
88
+ line-height: 56px;
89
+ width: 56px;
90
+ }
91
+ .avatar--64,
92
+ .avatar--64 > img {
93
+ font-size: @font-size-giant-2;
94
+ height: 64px;
95
+ line-height: 64px;
96
+ width: 64px;
97
+ }
98
+ .avatar--96,
99
+ .avatar--96 > img {
100
+ font-size: @font-size-giant-3;
101
+ height: 96px;
102
+ line-height: 96px;
103
+ width: 96px;
104
+ }
105
+ .avatar--128,
106
+ .avatar--128 > img {
107
+ font-size: @font-size-64;
108
+ height: 128px;
109
+ line-height: 128px;
110
+ width: 128px;
111
+ }