@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
@@ -5,18 +5,19 @@
5
5
  .background-color-token(section-notice-default-background-color, color-background-secondary);
6
6
  .border-radius-token(section-notice-border-radius, border-radius-50);
7
7
  font-size: @font-size-14;
8
- justify-content: flex-start;
9
8
  margin: 8px 0;
10
9
  padding: 16px;
11
10
  }
12
11
 
13
12
  div[role="region"].section-notice,
14
13
  section.section-notice {
15
- display: flex;
14
+ display: grid;
15
+ // provide explicit structure up front, create loose markup model
16
+ grid-template-columns: 32px auto auto auto;
16
17
  }
17
18
 
18
19
  span[role="region"].section-notice {
19
- display: inline-flex;
20
+ display: grid;
20
21
  }
21
22
 
22
23
  .section-notice__title {
@@ -25,6 +26,11 @@ span[role="region"].section-notice {
25
26
  margin: 0;
26
27
  }
27
28
 
29
+ // force links with text having more than one word to remain on same line
30
+ .section-notice__cta a {
31
+ white-space: nowrap;
32
+ }
33
+
28
34
  /* legacy version with separate bold heading */
29
35
  .section-notice__title:not(:only-child) {
30
36
  font-weight: bold;
@@ -50,30 +56,44 @@ span[role="region"].section-notice {
50
56
  .color-token(section-notice-foreground-color, color-foreground-primary);
51
57
  }
52
58
 
59
+ .section-notice .icon {
60
+ vertical-align: top;
61
+ }
62
+
53
63
  .section-notice__header {
54
- align-items: center;
55
- display: flex;
56
- justify-content: center;
57
- padding-right: @spacing-150;
64
+ grid-column: 1;
65
+ grid-row: 1;
66
+ height: @spacing-200;
67
+ padding-right: @spacing-200;
58
68
  }
59
69
 
60
- .section-notice__main,
61
- .section-notice__footer {
62
- display: flex;
63
- flex-direction: column;
64
- justify-content: center;
70
+ .section-notice__main {
71
+ grid-column: 2;
72
+ grid-row: 1;
73
+ padding-right: @spacing-200;
65
74
  }
66
75
 
67
76
  .section-notice__footer {
68
- flex-shrink: 0;
69
- margin-left: auto;
70
- padding-left: 0;
71
- width: auto;
77
+ grid-column: 4;
78
+ grid-row: 1;
79
+ justify-self: end;
72
80
  }
73
81
 
74
- /* support legacy 6.5 notice with heading + paragaphs */
75
82
  .section-notice__main p {
76
83
  font-size: @font-size-regular;
84
+ margin: 0;
85
+ }
86
+
87
+ p.section-notice__cta {
88
+ grid-column: 2;
89
+ grid-row: 2;
90
+ justify-self: start;
91
+ margin-right: @spacing-200;
92
+ margin-top: @spacing-200;
93
+ }
94
+
95
+ /* support legacy 6.5 notice with heading + paragaphs */
96
+ .section-notice__main .section-notice__title ~ p {
77
97
  margin: @spacing-50 0 0;
78
98
  }
79
99
 
@@ -86,6 +106,15 @@ span[role="region"].section-notice {
86
106
  margin: @spacing-200 0;
87
107
  }
88
108
 
109
+ p.section-notice__cta {
110
+ grid-column: 4;
111
+ grid-row: 1;
112
+ justify-self: end;
113
+ margin-bottom: 0;
114
+ margin-top: 0;
115
+ padding-right: @spacing-200;
116
+ }
117
+
89
118
  .section-notice__footer {
90
119
  margin-top: 0;
91
120
  padding-left: @spacing-200;
@@ -99,9 +128,19 @@ span[role="region"].section-notice {
99
128
  }
100
129
 
101
130
  .section-notice__footer {
131
+ justify-self: start;
102
132
  margin-left: initial;
103
133
  margin-right: auto;
104
134
  padding-left: initial;
105
135
  padding-right: 0;
106
136
  }
137
+
138
+ .section-notice__main {
139
+ padding-right: 0;
140
+ }
141
+
142
+ p.page-notice__cta {
143
+ margin-left: 16px;
144
+ padding-left: 16px;
145
+ }
107
146
  }
@@ -0,0 +1,66 @@
1
+ export default { title: 'Section Notice/RTL' };
2
+
3
+ export const confirmationWithButton = () => `
4
+ <div dir="rtl">
5
+ <section class="page-notice page-notice--confirmation" role="region" aria-label="Confirmation">
6
+ <div class="page-notice__header">
7
+ <svg class="icon icon--confirmation-filled-small" focusable="false" height="16" width="16" role="img" aria-label="Confirmation">
8
+ <use href="#icon-confirmation-filled-small"></use>
9
+ </svg>
10
+ </div>
11
+ <div class="page-notice__main">
12
+ <h2 class="page-notice__title">You have opted into eBay Pay</h2>
13
+ </div>
14
+ <div class="page-notice__footer">
15
+ <button class="fake-link">Dismiss</button>
16
+ </div>
17
+ </section>
18
+ </div>
19
+ `;
20
+
21
+ export const dismissableWithTitle = () => `
22
+ <div dir="rtl">
23
+ <section class="page-notice page-notice--information" role="region" aria-label="Information">
24
+ <div class="page-notice__header">
25
+ <svg class="icon icon--information-filled-small" focusable="false" height="16" width="16" role="img" aria-label="Information">
26
+ <use href="#icon-information-filled-small"></use>
27
+ </svg>
28
+ </div>
29
+ <div class="page-notice__main">
30
+ <h3 class="page-notice__title">Notice Title</h3>
31
+ <p>Opt into eBay payments before Jan 12th to pay no selling fees.</p>
32
+ </div>
33
+ <p class="page-notice__cta"><a href="https://www.ebay.com">Opt in</a></p>
34
+ <div class="page-notice__footer">
35
+ <button aria-label="Dismiss notification" class="fake-link page-notice__dismiss">
36
+ <svg aria-hidden="true" class="icon icon--close-small" focusable="false" height="14" width="14">
37
+ <use href="#icon-close-small"></use>
38
+ </svg>
39
+ </a>
40
+ </div>
41
+ </section>
42
+ </div>
43
+ `;
44
+
45
+ export const dismissableWithoutTitle = () => `
46
+ <div dir="rtl">
47
+ <section class="page-notice page-notice--information" role="region" aria-label="Information">
48
+ <div class="page-notice__header">
49
+ <svg class="icon icon--information-filled-small" focusable="false" height="16" width="16" role="img" aria-label="Information">
50
+ <use href="#icon-information-filled-small"></use>
51
+ </svg>
52
+ </div>
53
+ <div class="page-notice__main">
54
+ <h3 class="page-notice__title">Opt into eBay payments before Jan 12th to pay no selling fees.</h3>
55
+ </div>
56
+ <p class="page-notice__cta"><a href="https://www.ebay.com">Opt in</a></p>
57
+ <div class="page-notice__footer">
58
+ <button aria-label="Dismiss notification" class="fake-link page-notice__dismiss">
59
+ <svg aria-hidden="true" class="icon icon--close-small" focusable="false" height="14" width="14">
60
+ <use href="#icon-close-small"></use>
61
+ </svg>
62
+ </a>
63
+ </div>
64
+ </section>
65
+ </div>
66
+ `;
@@ -30,6 +30,22 @@ export const generalWithLink = () => `
30
30
  </div>
31
31
  `;
32
32
 
33
+ export const confirmationWithParagraph = () => `
34
+ <div class="section-notice section-notice--confirmation" role="region">
35
+ <div class="section-notice__header" role="region" aria-roledescription="Notice">
36
+ <svg aria-hidden="true" focusable="false" class="icon--confirmation-filled-small">
37
+ <use href="#icon-confirmation-filled-small"></use>
38
+ </svg>
39
+ </div>
40
+ <div class="section-notice__main">
41
+ <p>Your price has been updated.</p>
42
+ </div>
43
+ <div class="section-notice__footer">
44
+ <button class="fake-link">Dismiss</button>
45
+ </div>
46
+ </div>
47
+ `;
48
+
33
49
  export const confirmationWithButton = () => `
34
50
  <div class="section-notice section-notice--confirmation" role="region">
35
51
  <div class="section-notice__header" role="region" aria-roledescription="Notice">
@@ -125,3 +141,46 @@ export const informationWithLink = () => `
125
141
  </div>
126
142
  </div>
127
143
  `;
144
+
145
+ export const dismissableWithTitle = () => `
146
+ <section class="section-notice section-notice--information" role="region" aria-label="Information">
147
+ <div class="section-notice__header">
148
+ <svg class="icon icon--information-filled-small" focusable="false" height="16" width="16" role="img" aria-label="Information">
149
+ <use href="#icon-information-filled-small"></use>
150
+ </svg>
151
+ </div>
152
+ <div class="section-notice__main">
153
+ <h3 class="section-notice__title">Notice Title</h3>
154
+ <p>Opt into eBay payments before Jan 12th to pay no selling fees.</p>
155
+ </div>
156
+ <p class="section-notice__cta"><a href="https://www.ebay.com">Opt in</a></p>
157
+ <div class="section-notice__footer">
158
+ <button aria-label="Dismiss notification" class="fake-link section-notice__dismiss">
159
+ <svg aria-hidden="true" class="icon icon--close-small" focusable="false" height="10" width="10">
160
+ <use href="#icon-close"></use>
161
+ </svg>
162
+ </a>
163
+ </div>
164
+ </section>
165
+ `;
166
+
167
+ export const dismissableWithoutTitle = () => `
168
+ <section class="section-notice section-notice--information" role="region" aria-label="Information">
169
+ <div class="section-notice__header">
170
+ <svg class="icon icon--information-filled-small" focusable="false" height="16" width="16" role="img" aria-label="Information">
171
+ <use href="#icon-information-filled-small"></use>
172
+ </svg>
173
+ </div>
174
+ <div class="section-notice__main">
175
+ <h3 class="section-notice__title">Opt into eBay payments before Jan 12th to pay no selling fees.</h3>
176
+ </div>
177
+ <p class="section-notice__cta"><a href="https://www.ebay.com">Opt in</a></p>
178
+ <div class="section-notice__footer">
179
+ <button aria-label="Dismiss notification" class="fake-link section-notice__dismiss">
180
+ <svg aria-hidden="true" class="icon icon--close-small" focusable="false" height="10" width="10">
181
+ <use href="#icon-close"></use>
182
+ </svg>
183
+ </a>
184
+ </div>
185
+ </section>
186
+ `;
@@ -18,6 +18,30 @@ export const RTL = () => `
18
18
  </div>
19
19
  `;
20
20
 
21
+ export const RTLDismissable = () => `
22
+ <div dir="rtl">
23
+ <section class="page-notice page-notice--information" role="region" aria-label="Information">
24
+ <div class="page-notice__header">
25
+ <svg class="icon icon--information-filled-small" focusable="false" height="16" width="16" role="img" aria-label="Information">
26
+ <use href="#icon-information-filled-small"></use>
27
+ </svg>
28
+ </div>
29
+ <div class="page-notice__main">
30
+ <h3 class="page-notice__title">Notice Title</h3>
31
+ <p>Opt into eBay payments before Jan 12th to pay no selling fees.</p>
32
+ </div>
33
+ <p class="page-notice__cta"><a href="https://www.ebay.com">Opt in</a></p>
34
+ <div class="page-notice__footer">
35
+ <button aria-label="Dismiss notification" class="fake-link page-notice__dismiss">
36
+ <svg aria-hidden="true" class="icon icon--close-small" focusable="false" height="14" width="14">
37
+ <use href="#icon-close-small"></use>
38
+ </svg>
39
+ </a>
40
+ </div>
41
+ </section>
42
+ </div>
43
+ `;
44
+
21
45
  export const longText = () => `
22
46
  <div class="section-notice section-notice--confirmation" role="region">
23
47
  <div class="section-notice__header" role="region" aria-roledescription="Notice">
@@ -41,3 +41,54 @@ export const expanded = () => `
41
41
  </div>
42
42
  </div>
43
43
  </div>`;
44
+
45
+ export const withActions = () => `
46
+ <div class="tourtip tourtip--expanded">
47
+ <p class="tourtip__host">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
48
+ <div class="tourtip__overlay" style="left: calc(50% - 200px); right: auto; top: calc(100% + 12px); bottom: auto" role="region" aria-labelledby="tourtip-label">
49
+ <span class="tourtip__pointer tourtip__pointer--top"></span>
50
+ <div class="tourtip__mask">
51
+ <div class="tourtip__cell">
52
+ <span class="tourtip__content">
53
+ <h2 class="tourtip__heading" id="tourtip-label">Tourtip</h2>
54
+ <p>Here's something new to help you be successful at your task.</p>
55
+ </span>
56
+ <button class="icon-btn tourtip__close" type="button" aria-label="Dismiss tourtip">
57
+ <svg class="icon icon--close" focusable="false" height="24" width="24" aria-hidden="true">
58
+ <use xlink:href="#icon-close"></use>
59
+ </svg>
60
+ </button>
61
+ <div class="tourtip__footer">
62
+ <span class="tourtip__index">1 / 3</span>
63
+ <button class="fake-link">Back</button>
64
+ <button class="btn btn--primary">Next</button>
65
+ </span>
66
+ </div>
67
+ </div>
68
+ </div>
69
+ </div>`;
70
+
71
+ export const withOneAction = () => `
72
+ <div class="tourtip tourtip--expanded">
73
+ <p class="tourtip__host">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
74
+ <div class="tourtip__overlay" style="left: calc(50% - 200px); right: auto; top: calc(100% + 12px); bottom: auto" role="region" aria-labelledby="tourtip-label">
75
+ <span class="tourtip__pointer tourtip__pointer--top"></span>
76
+ <div class="tourtip__mask">
77
+ <div class="tourtip__cell">
78
+ <span class="tourtip__content">
79
+ <h2 class="tourtip__heading" id="tourtip-label">Tourtip</h2>
80
+ <p>Here's something new to help you be successful at your task.</p>
81
+ </span>
82
+ <button class="icon-btn tourtip__close" type="button" aria-label="Dismiss tourtip">
83
+ <svg class="icon icon--close" focusable="false" height="24" width="24" aria-hidden="true">
84
+ <use xlink:href="#icon-close"></use>
85
+ </svg>
86
+ </button>
87
+ <div class="tourtip__footer">
88
+ <span class="tourtip__index">2 / 3</span>
89
+ <button class="btn btn--primary">Next</button>
90
+ </span>
91
+ </div>
92
+ </div>
93
+ </div>
94
+ </div>`;
@@ -30,6 +30,8 @@ span.tourtip__mask {
30
30
  .tourtip__cell {
31
31
  .bubble-cell();
32
32
 
33
+ flex-wrap: wrap;
34
+
33
35
  a {
34
36
  .color-token(tourtip-foreground-color, color-foreground-primary);
35
37
 
@@ -41,10 +43,14 @@ span.tourtip__mask {
41
43
 
42
44
  .tourtip__content {
43
45
  .bubble-content();
46
+
47
+ flex-basis: 0;
44
48
  }
45
49
 
46
50
  button.tourtip__close {
47
51
  .bubble-close();
52
+
53
+ outline-offset: -2px;
48
54
  }
49
55
 
50
56
  button.tourtip__close > svg {
@@ -121,6 +127,40 @@ span.tourtip__heading {
121
127
  display: block;
122
128
  }
123
129
 
130
+ .tourtip__footer {
131
+ align-items: center;
132
+ display: flex;
133
+ justify-content: end;
134
+ margin-top: 16px;
135
+ width: 100%;
136
+ }
137
+
138
+ .tourtip__footer > button:not(:last-child),
139
+ .tourtip__footer > a:not(:last-child) {
140
+ margin-right: 8px;
141
+ }
142
+
143
+ // stylelint-disable no-descending-specificity
144
+ // TODO need to remove this once we update fake-links/links to allow no underline and black text
145
+ .tourtip__footer > .fake-link,
146
+ .tourtip__footer > a {
147
+ color: var(--color-foreground-primary);
148
+
149
+ text-decoration: none;
150
+
151
+ &:hover:not(:disabled) {
152
+ color: var(--color-foreground-primary);
153
+
154
+ text-decoration: underline;
155
+ }
156
+ }
157
+ // stylelint-enable no-descending-specificity
158
+
159
+ .tourtip__index {
160
+ .color-token(tourtip-index-color, color-foreground-secondary);
161
+ flex: 1;
162
+ }
163
+
124
164
  @media (min-width: 601px) {
125
165
  .tourtip__overlay {
126
166
  .bubble-large-screen();