@spectrum-web-components/story-decorator 0.5.4-express.0 → 0.5.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.
- package/custom-elements.json +1 -40
- package/package.json +6 -6
- package/src/StoryDecorator.d.ts +3 -7
- package/src/StoryDecorator.js +76 -111
- package/src/StoryDecorator.js.map +1 -1
- package/src/types.d.ts +1 -2
- package/src/types.js.map +1 -1
package/custom-elements.json
CHANGED
|
@@ -79,13 +79,6 @@
|
|
|
79
79
|
"text": "'ltr' | 'rtl'"
|
|
80
80
|
}
|
|
81
81
|
},
|
|
82
|
-
{
|
|
83
|
-
"kind": "variable",
|
|
84
|
-
"name": "theme",
|
|
85
|
-
"type": {
|
|
86
|
-
"text": "ThemeVariant"
|
|
87
|
-
}
|
|
88
|
-
},
|
|
89
82
|
{
|
|
90
83
|
"kind": "variable",
|
|
91
84
|
"name": "color",
|
|
@@ -109,15 +102,6 @@
|
|
|
109
102
|
"description": "",
|
|
110
103
|
"name": "StoryDecorator",
|
|
111
104
|
"members": [
|
|
112
|
-
{
|
|
113
|
-
"kind": "field",
|
|
114
|
-
"name": "theme",
|
|
115
|
-
"type": {
|
|
116
|
-
"text": "ThemeVariant"
|
|
117
|
-
},
|
|
118
|
-
"privacy": "public",
|
|
119
|
-
"attribute": "theme"
|
|
120
|
-
},
|
|
121
105
|
{
|
|
122
106
|
"kind": "field",
|
|
123
107
|
"name": "color",
|
|
@@ -166,7 +150,7 @@
|
|
|
166
150
|
},
|
|
167
151
|
{
|
|
168
152
|
"kind": "field",
|
|
169
|
-
"name": "
|
|
153
|
+
"name": "theme",
|
|
170
154
|
"type": {
|
|
171
155
|
"text": "Theme"
|
|
172
156
|
},
|
|
@@ -279,14 +263,6 @@
|
|
|
279
263
|
},
|
|
280
264
|
"privacy": "private"
|
|
281
265
|
},
|
|
282
|
-
{
|
|
283
|
-
"kind": "field",
|
|
284
|
-
"name": "themeControl",
|
|
285
|
-
"type": {
|
|
286
|
-
"text": "TemplateResult"
|
|
287
|
-
},
|
|
288
|
-
"privacy": "private"
|
|
289
|
-
},
|
|
290
266
|
{
|
|
291
267
|
"kind": "field",
|
|
292
268
|
"name": "colorControl",
|
|
@@ -321,13 +297,6 @@
|
|
|
321
297
|
}
|
|
322
298
|
],
|
|
323
299
|
"attributes": [
|
|
324
|
-
{
|
|
325
|
-
"name": "theme",
|
|
326
|
-
"type": {
|
|
327
|
-
"text": "ThemeVariant"
|
|
328
|
-
},
|
|
329
|
-
"fieldName": "theme"
|
|
330
|
-
},
|
|
331
300
|
{
|
|
332
301
|
"name": "color",
|
|
333
302
|
"type": {
|
|
@@ -379,14 +348,6 @@
|
|
|
379
348
|
"module": "src/StoryDecorator.ts"
|
|
380
349
|
}
|
|
381
350
|
},
|
|
382
|
-
{
|
|
383
|
-
"kind": "js",
|
|
384
|
-
"name": "theme",
|
|
385
|
-
"declaration": {
|
|
386
|
-
"name": "theme",
|
|
387
|
-
"module": "src/StoryDecorator.ts"
|
|
388
|
-
}
|
|
389
|
-
},
|
|
390
351
|
{
|
|
391
352
|
"kind": "js",
|
|
392
353
|
"name": "color",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spectrum-web-components/story-decorator",
|
|
3
|
-
"version": "0.5.4
|
|
3
|
+
"version": "0.5.4",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -47,11 +47,11 @@
|
|
|
47
47
|
"dependencies": {
|
|
48
48
|
"@spectrum-web-components/base": "^0.5.3",
|
|
49
49
|
"@spectrum-web-components/field-label": "^0.7.5",
|
|
50
|
-
"@spectrum-web-components/menu": "^0.12.3
|
|
51
|
-
"@spectrum-web-components/overlay": "^0.15.1
|
|
52
|
-
"@spectrum-web-components/picker": "^0.10.4
|
|
50
|
+
"@spectrum-web-components/menu": "^0.12.3",
|
|
51
|
+
"@spectrum-web-components/overlay": "^0.15.1",
|
|
52
|
+
"@spectrum-web-components/picker": "^0.10.4",
|
|
53
53
|
"@spectrum-web-components/switch": "^0.9.5",
|
|
54
|
-
"@spectrum-web-components/theme": "^0.10.
|
|
54
|
+
"@spectrum-web-components/theme": "^0.10.0",
|
|
55
55
|
"tslib": "^2.0.0"
|
|
56
56
|
},
|
|
57
57
|
"types": "./src/index.d.ts",
|
|
@@ -60,5 +60,5 @@
|
|
|
60
60
|
"./sp-*.js",
|
|
61
61
|
"./sp-*.ts"
|
|
62
62
|
],
|
|
63
|
-
"gitHead": "
|
|
63
|
+
"gitHead": "90109a167310260905a734919249c225a404bc74"
|
|
64
64
|
}
|
package/src/StoryDecorator.d.ts
CHANGED
|
@@ -1,28 +1,25 @@
|
|
|
1
1
|
import { SpectrumElement, TemplateResult } from '@spectrum-web-components/base';
|
|
2
2
|
import '@spectrum-web-components/theme/sp-theme.js';
|
|
3
3
|
import '@spectrum-web-components/theme/src/themes.js';
|
|
4
|
-
import '@spectrum-web-components/theme/src/express/themes.js';
|
|
5
4
|
import '@spectrum-web-components/field-label/sp-field-label.js';
|
|
6
5
|
import '@spectrum-web-components/picker/sp-picker.js';
|
|
7
6
|
import '@spectrum-web-components/menu/sp-menu.js';
|
|
8
7
|
import '@spectrum-web-components/menu/sp-menu-item.js';
|
|
9
8
|
import '@spectrum-web-components/switch/sp-switch.js';
|
|
10
|
-
import { Color, Scale
|
|
9
|
+
import { Color, Scale } from '@spectrum-web-components/theme';
|
|
11
10
|
import './types.js';
|
|
12
11
|
export declare let dir: 'ltr' | 'rtl';
|
|
13
|
-
export declare let theme: ThemeVariant;
|
|
14
12
|
export declare let color: Color;
|
|
15
13
|
export declare let scale: Scale;
|
|
16
14
|
export declare let reduceMotion: boolean;
|
|
17
15
|
export declare class StoryDecorator extends SpectrumElement {
|
|
18
|
-
static
|
|
19
|
-
theme: ThemeVariant;
|
|
16
|
+
static styles: import("@spectrum-web-components/base").CSSResult[];
|
|
20
17
|
color: Color;
|
|
21
18
|
scale: Scale;
|
|
22
19
|
direction: 'ltr' | 'rtl';
|
|
23
20
|
reduceMotion: boolean;
|
|
24
21
|
screenshot: boolean;
|
|
25
|
-
private
|
|
22
|
+
private theme;
|
|
26
23
|
ready: boolean;
|
|
27
24
|
startManagingContentDirection(el: HTMLElement): Promise<void>;
|
|
28
25
|
stopManagingContentDirection(el: HTMLElement): Promise<void>;
|
|
@@ -33,7 +30,6 @@ export declare class StoryDecorator extends SpectrumElement {
|
|
|
33
30
|
target: HTMLSlotElement;
|
|
34
31
|
}): Promise<void>;
|
|
35
32
|
private get manageTheme();
|
|
36
|
-
private get themeControl();
|
|
37
33
|
private get colorControl();
|
|
38
34
|
private get scaleControl();
|
|
39
35
|
private get dirControl();
|
package/src/StoryDecorator.js
CHANGED
|
@@ -15,7 +15,6 @@ import { property, queryAsync, } from '@spectrum-web-components/base/src/decorat
|
|
|
15
15
|
import { ifDefined } from '@spectrum-web-components/base/src/directives.js';
|
|
16
16
|
import '@spectrum-web-components/theme/sp-theme.js';
|
|
17
17
|
import '@spectrum-web-components/theme/src/themes.js';
|
|
18
|
-
import '@spectrum-web-components/theme/src/express/themes.js';
|
|
19
18
|
import '@spectrum-web-components/field-label/sp-field-label.js';
|
|
20
19
|
import '@spectrum-web-components/picker/sp-picker.js';
|
|
21
20
|
import '@spectrum-web-components/menu/sp-menu.js';
|
|
@@ -26,12 +25,10 @@ import './types.js';
|
|
|
26
25
|
const queryString = window.location.search;
|
|
27
26
|
const urlParams = new URLSearchParams(queryString);
|
|
28
27
|
export let dir = urlParams.get('sp_dir') || 'ltr';
|
|
29
|
-
export let theme = urlParams.get('sp_theme') || 'spectrum';
|
|
30
28
|
export let color = urlParams.get('sp_color') || 'light';
|
|
31
29
|
export let scale = urlParams.get('sp_scale') || 'medium';
|
|
32
30
|
export let reduceMotion = urlParams.get('sp_reduceMotion') === 'true';
|
|
33
31
|
window.__swc_hack_knobs__ = window.__swc_hack_knobs__ || {
|
|
34
|
-
defaultThemeVariant: theme,
|
|
35
32
|
defaultColor: color,
|
|
36
33
|
defaultScale: scale,
|
|
37
34
|
defaultDirection: dir,
|
|
@@ -54,7 +51,7 @@ const reduceMotionProperties = css `
|
|
|
54
51
|
--swc-test-duration: 1ms;
|
|
55
52
|
`;
|
|
56
53
|
ActiveOverlay.prototype.renderTheme = function (content) {
|
|
57
|
-
const { color, scale,
|
|
54
|
+
const { color, scale, lang } = this.theme;
|
|
58
55
|
return html `
|
|
59
56
|
${window.__swc_hack_knobs__.defaultReduceMotion
|
|
60
57
|
? html `
|
|
@@ -66,7 +63,6 @@ ActiveOverlay.prototype.renderTheme = function (content) {
|
|
|
66
63
|
`
|
|
67
64
|
: html ``}
|
|
68
65
|
<sp-theme
|
|
69
|
-
theme=${ifDefined(theme)}
|
|
70
66
|
color=${ifDefined(color)}
|
|
71
67
|
scale=${ifDefined(scale)}
|
|
72
68
|
lang=${ifDefined(lang)}
|
|
@@ -79,7 +75,6 @@ ActiveOverlay.prototype.renderTheme = function (content) {
|
|
|
79
75
|
export class StoryDecorator extends SpectrumElement {
|
|
80
76
|
constructor() {
|
|
81
77
|
super(...arguments);
|
|
82
|
-
this.theme = window.__swc_hack_knobs__.defaultThemeVariant;
|
|
83
78
|
this.color = window.__swc_hack_knobs__.defaultColor;
|
|
84
79
|
this.scale = window.__swc_hack_knobs__.defaultScale;
|
|
85
80
|
this.direction = window.__swc_hack_knobs__.defaultDirection;
|
|
@@ -87,98 +82,17 @@ export class StoryDecorator extends SpectrumElement {
|
|
|
87
82
|
this.screenshot = false;
|
|
88
83
|
this.ready = false;
|
|
89
84
|
}
|
|
90
|
-
static get styles() {
|
|
91
|
-
return [
|
|
92
|
-
css `
|
|
93
|
-
:host(:focus) {
|
|
94
|
-
outline: none;
|
|
95
|
-
}
|
|
96
|
-
sp-theme {
|
|
97
|
-
overflow-x: hidden;
|
|
98
|
-
display: block;
|
|
99
|
-
box-sizing: border-box;
|
|
100
|
-
width: 100%;
|
|
101
|
-
min-height: 100vh;
|
|
102
|
-
padding: var(--spectrum-global-dimension-size-100)
|
|
103
|
-
var(--spectrum-global-dimension-size-100)
|
|
104
|
-
calc(
|
|
105
|
-
2 * var(--spectrum-alias-focus-ring-size) +
|
|
106
|
-
var(--spectrum-alias-item-height-m)
|
|
107
|
-
);
|
|
108
|
-
box-sizing: border-box;
|
|
109
|
-
background-color: var(--spectrum-global-color-gray-100);
|
|
110
|
-
color: var(
|
|
111
|
-
--spectrum-body-text-color,
|
|
112
|
-
var(--spectrum-alias-text-color)
|
|
113
|
-
);
|
|
114
|
-
}
|
|
115
|
-
:host([screenshot]) sp-theme {
|
|
116
|
-
padding: var(--spectrum-global-dimension-size-100);
|
|
117
|
-
--swc-test-caret-color: transparent;
|
|
118
|
-
}
|
|
119
|
-
:host([reduce-motion]) sp-theme {
|
|
120
|
-
${reduceMotionProperties}
|
|
121
|
-
}
|
|
122
|
-
.manage-theme {
|
|
123
|
-
position: fixed;
|
|
124
|
-
bottom: 0;
|
|
125
|
-
left: var(--spectrum-global-dimension-size-200);
|
|
126
|
-
right: var(--spectrum-global-dimension-size-200);
|
|
127
|
-
display: flex;
|
|
128
|
-
align-items: center;
|
|
129
|
-
justify-content: flex-end;
|
|
130
|
-
box-sizing: border-box;
|
|
131
|
-
background-color: var(--spectrum-global-color-gray-100);
|
|
132
|
-
padding-bottom: calc(
|
|
133
|
-
2 * var(--spectrum-alias-focus-ring-size)
|
|
134
|
-
);
|
|
135
|
-
}
|
|
136
|
-
[dir='ltr'] sp-field-label {
|
|
137
|
-
padding-left: 0;
|
|
138
|
-
padding-right: var(
|
|
139
|
-
--spectrum-fieldlabel-side-padding-x,
|
|
140
|
-
var(--spectrum-global-dimension-size-100)
|
|
141
|
-
);
|
|
142
|
-
margin-left: var(--spectrum-global-dimension-size-400);
|
|
143
|
-
}
|
|
144
|
-
[dir='ltr'] sp-switch {
|
|
145
|
-
margin-left: var(--spectrum-global-dimension-size-400);
|
|
146
|
-
margin-right: 0;
|
|
147
|
-
padding: 0;
|
|
148
|
-
}
|
|
149
|
-
[dir='rtl'] sp-field-label {
|
|
150
|
-
padding-right: 0;
|
|
151
|
-
padding-left: var(
|
|
152
|
-
--spectrum-fieldlabel-side-padding-x,
|
|
153
|
-
var(--spectrum-global-dimension-size-100)
|
|
154
|
-
);
|
|
155
|
-
margin-right: var(--spectrum-global-dimension-size-400);
|
|
156
|
-
}
|
|
157
|
-
[dir='rtl'] sp-switch {
|
|
158
|
-
margin-right: var(--spectrum-global-dimension-size-400);
|
|
159
|
-
margin-left: 0;
|
|
160
|
-
padding: 0;
|
|
161
|
-
}
|
|
162
|
-
`,
|
|
163
|
-
];
|
|
164
|
-
}
|
|
165
85
|
async startManagingContentDirection(el) {
|
|
166
|
-
(await this.
|
|
86
|
+
(await this.theme).startManagingContentDirection(el);
|
|
167
87
|
}
|
|
168
88
|
async stopManagingContentDirection(el) {
|
|
169
|
-
(await this.
|
|
89
|
+
(await this.theme).stopManagingContentDirection(el);
|
|
170
90
|
}
|
|
171
91
|
updateTheme({ target }) {
|
|
172
92
|
const { id } = target;
|
|
173
93
|
const { value } = target;
|
|
174
94
|
const { checked } = target;
|
|
175
95
|
switch (id) {
|
|
176
|
-
case 'theme':
|
|
177
|
-
this.theme =
|
|
178
|
-
theme =
|
|
179
|
-
window.__swc_hack_knobs__.defaultThemeVariant =
|
|
180
|
-
value;
|
|
181
|
-
break;
|
|
182
96
|
case 'color':
|
|
183
97
|
this.color =
|
|
184
98
|
color =
|
|
@@ -216,7 +130,6 @@ export class StoryDecorator extends SpectrumElement {
|
|
|
216
130
|
render() {
|
|
217
131
|
return html `
|
|
218
132
|
<sp-theme
|
|
219
|
-
theme=${this.theme}
|
|
220
133
|
color=${this.color}
|
|
221
134
|
scale=${this.scale}
|
|
222
135
|
dir=${this.direction}
|
|
@@ -247,26 +160,11 @@ export class StoryDecorator extends SpectrumElement {
|
|
|
247
160
|
get manageTheme() {
|
|
248
161
|
return html `
|
|
249
162
|
<div class="manage-theme" part="controls">
|
|
250
|
-
${this.
|
|
251
|
-
${this.
|
|
163
|
+
${this.colorControl} ${this.scaleControl} ${this.dirControl}
|
|
164
|
+
${this.reduceMotionControl}
|
|
252
165
|
</div>
|
|
253
166
|
`;
|
|
254
167
|
}
|
|
255
|
-
get themeControl() {
|
|
256
|
-
return html `
|
|
257
|
-
<sp-field-label for="theme">Spectrum</sp-field-label>
|
|
258
|
-
<sp-picker
|
|
259
|
-
id="theme"
|
|
260
|
-
placement="top"
|
|
261
|
-
quiet
|
|
262
|
-
.value=${this.theme}
|
|
263
|
-
@change=${this.updateTheme}
|
|
264
|
-
>
|
|
265
|
-
<sp-menu-item value="spectrum">Classic</sp-menu-item>
|
|
266
|
-
<sp-menu-item value="express">Express</sp-menu-item>
|
|
267
|
-
</sp-picker>
|
|
268
|
-
`;
|
|
269
|
-
}
|
|
270
168
|
get colorControl() {
|
|
271
169
|
return html `
|
|
272
170
|
<sp-field-label for="color">Theme</sp-field-label>
|
|
@@ -328,9 +226,76 @@ export class StoryDecorator extends SpectrumElement {
|
|
|
328
226
|
`;
|
|
329
227
|
}
|
|
330
228
|
}
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
229
|
+
StoryDecorator.styles = [
|
|
230
|
+
css `
|
|
231
|
+
:host(:focus) {
|
|
232
|
+
outline: none;
|
|
233
|
+
}
|
|
234
|
+
sp-theme {
|
|
235
|
+
overflow-x: hidden;
|
|
236
|
+
display: block;
|
|
237
|
+
box-sizing: border-box;
|
|
238
|
+
width: 100%;
|
|
239
|
+
min-height: 100vh;
|
|
240
|
+
padding: var(--spectrum-global-dimension-size-100)
|
|
241
|
+
var(--spectrum-global-dimension-size-100)
|
|
242
|
+
calc(
|
|
243
|
+
2 * var(--spectrum-alias-focus-ring-size) +
|
|
244
|
+
var(--spectrum-alias-item-height-m)
|
|
245
|
+
);
|
|
246
|
+
background-color: var(--spectrum-global-color-gray-100);
|
|
247
|
+
color: var(
|
|
248
|
+
--spectrum-body-text-color,
|
|
249
|
+
var(--spectrum-alias-text-color)
|
|
250
|
+
);
|
|
251
|
+
}
|
|
252
|
+
:host([screenshot]) sp-theme {
|
|
253
|
+
padding: var(--spectrum-global-dimension-size-100);
|
|
254
|
+
--swc-test-caret-color: transparent;
|
|
255
|
+
}
|
|
256
|
+
:host([reduce-motion]) sp-theme {
|
|
257
|
+
${reduceMotionProperties}
|
|
258
|
+
}
|
|
259
|
+
.manage-theme {
|
|
260
|
+
position: fixed;
|
|
261
|
+
bottom: 0;
|
|
262
|
+
left: var(--spectrum-global-dimension-size-200);
|
|
263
|
+
right: var(--spectrum-global-dimension-size-200);
|
|
264
|
+
display: flex;
|
|
265
|
+
align-items: center;
|
|
266
|
+
justify-content: flex-end;
|
|
267
|
+
box-sizing: border-box;
|
|
268
|
+
background-color: var(--spectrum-global-color-gray-100);
|
|
269
|
+
padding-bottom: calc(2 * var(--spectrum-alias-focus-ring-size));
|
|
270
|
+
}
|
|
271
|
+
[dir='ltr'] sp-field-label {
|
|
272
|
+
padding-left: 0;
|
|
273
|
+
padding-right: var(
|
|
274
|
+
--spectrum-fieldlabel-side-padding-x,
|
|
275
|
+
var(--spectrum-global-dimension-size-100)
|
|
276
|
+
);
|
|
277
|
+
margin-left: var(--spectrum-global-dimension-size-400);
|
|
278
|
+
}
|
|
279
|
+
[dir='ltr'] sp-switch {
|
|
280
|
+
margin-left: var(--spectrum-global-dimension-size-400);
|
|
281
|
+
margin-right: 0;
|
|
282
|
+
padding: 0;
|
|
283
|
+
}
|
|
284
|
+
[dir='rtl'] sp-field-label {
|
|
285
|
+
padding-right: 0;
|
|
286
|
+
padding-left: var(
|
|
287
|
+
--spectrum-fieldlabel-side-padding-x,
|
|
288
|
+
var(--spectrum-global-dimension-size-100)
|
|
289
|
+
);
|
|
290
|
+
margin-right: var(--spectrum-global-dimension-size-400);
|
|
291
|
+
}
|
|
292
|
+
[dir='rtl'] sp-switch {
|
|
293
|
+
margin-right: var(--spectrum-global-dimension-size-400);
|
|
294
|
+
margin-left: 0;
|
|
295
|
+
padding: 0;
|
|
296
|
+
}
|
|
297
|
+
`,
|
|
298
|
+
];
|
|
334
299
|
__decorate([
|
|
335
300
|
property({ type: String })
|
|
336
301
|
], StoryDecorator.prototype, "color", void 0);
|
|
@@ -348,5 +313,5 @@ __decorate([
|
|
|
348
313
|
], StoryDecorator.prototype, "screenshot", void 0);
|
|
349
314
|
__decorate([
|
|
350
315
|
queryAsync('sp-theme')
|
|
351
|
-
], StoryDecorator.prototype, "
|
|
316
|
+
], StoryDecorator.prototype, "theme", void 0);
|
|
352
317
|
//# sourceMappingURL=StoryDecorator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StoryDecorator.js","sourceRoot":"","sources":["StoryDecorator.ts"],"names":[],"mappings":"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","sourcesContent":["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport {\n css,\n html,\n nothing,\n SpectrumElement,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport {\n property,\n queryAsync,\n} from '@spectrum-web-components/base/src/decorators.js';\nimport { ifDefined } from '@spectrum-web-components/base/src/directives.js';\nimport '@spectrum-web-components/theme/sp-theme.js';\nimport '@spectrum-web-components/theme/src/themes.js';\nimport '@spectrum-web-components/theme/src/express/themes.js';\nimport '@spectrum-web-components/field-label/sp-field-label.js';\nimport '@spectrum-web-components/picker/sp-picker.js';\nimport '@spectrum-web-components/menu/sp-menu.js';\nimport '@spectrum-web-components/menu/sp-menu-item.js';\nimport '@spectrum-web-components/switch/sp-switch.js';\nimport { Picker } from '@spectrum-web-components/picker';\nimport { Switch } from '@spectrum-web-components/switch';\nimport {\n Color,\n Scale,\n Theme,\n ThemeVariant,\n} from '@spectrum-web-components/theme';\nimport { ActiveOverlay } from '@spectrum-web-components/overlay';\nimport './types.js';\n\nconst queryString = window.location.search;\nconst urlParams = new URLSearchParams(queryString);\n\nexport let dir: 'ltr' | 'rtl' =\n (urlParams.get('sp_dir') as 'ltr' | 'rtl') || 'ltr';\nexport let theme: ThemeVariant =\n (urlParams.get('sp_theme') as ThemeVariant) || 'spectrum';\nexport let color: Color = (urlParams.get('sp_color') as Color) || 'light';\nexport let scale: Scale = (urlParams.get('sp_scale') as Scale) || 'medium';\nexport let reduceMotion = urlParams.get('sp_reduceMotion') === 'true';\n\nwindow.__swc_hack_knobs__ = window.__swc_hack_knobs__ || {\n defaultThemeVariant: theme,\n defaultColor: color,\n defaultScale: scale,\n defaultDirection: dir,\n defaultReduceMotion: reduceMotion,\n};\n\nconst reduceMotionProperties = css`\n --spectrum-global-animation-duration-100: 0ms;\n --spectrum-global-animation-duration-200: 0ms;\n --spectrum-global-animation-duration-300: 0ms;\n --spectrum-global-animation-duration-400: 0ms;\n --spectrum-global-animation-duration-500: 0ms;\n --spectrum-global-animation-duration-600: 0ms;\n --spectrum-global-animation-duration-700: 0ms;\n --spectrum-global-animation-duration-800: 0ms;\n --spectrum-global-animation-duration-900: 0ms;\n --spectrum-global-animation-duration-1000: 0ms;\n --spectrum-global-animation-duration-2000: 0ms;\n --spectrum-global-animation-duration-4000: 0ms;\n --spectrum-coachmark-animation-indicator-ring-duration: 0ms;\n --swc-test-duration: 1ms;\n`;\n\nActiveOverlay.prototype.renderTheme = function (\n content: TemplateResult\n): TemplateResult {\n const { color, scale, theme, lang } = this.theme;\n return html`\n ${window.__swc_hack_knobs__.defaultReduceMotion\n ? html`\n <style>\n sp-theme {\n ${reduceMotionProperties}\n }\n </style>\n `\n : html``}\n <sp-theme\n theme=${ifDefined(theme)}\n color=${ifDefined(color)}\n scale=${ifDefined(scale)}\n lang=${ifDefined(lang)}\n part=\"theme\"\n >\n ${content}\n </sp-theme>\n `;\n};\n\nexport class StoryDecorator extends SpectrumElement {\n static get styles() {\n return [\n css`\n :host(:focus) {\n outline: none;\n }\n sp-theme {\n overflow-x: hidden;\n display: block;\n box-sizing: border-box;\n width: 100%;\n min-height: 100vh;\n padding: var(--spectrum-global-dimension-size-100)\n var(--spectrum-global-dimension-size-100)\n calc(\n 2 * var(--spectrum-alias-focus-ring-size) +\n var(--spectrum-alias-item-height-m)\n );\n box-sizing: border-box;\n background-color: var(--spectrum-global-color-gray-100);\n color: var(\n --spectrum-body-text-color,\n var(--spectrum-alias-text-color)\n );\n }\n :host([screenshot]) sp-theme {\n padding: var(--spectrum-global-dimension-size-100);\n --swc-test-caret-color: transparent;\n }\n :host([reduce-motion]) sp-theme {\n ${reduceMotionProperties}\n }\n .manage-theme {\n position: fixed;\n bottom: 0;\n left: var(--spectrum-global-dimension-size-200);\n right: var(--spectrum-global-dimension-size-200);\n display: flex;\n align-items: center;\n justify-content: flex-end;\n box-sizing: border-box;\n background-color: var(--spectrum-global-color-gray-100);\n padding-bottom: calc(\n 2 * var(--spectrum-alias-focus-ring-size)\n );\n }\n [dir='ltr'] sp-field-label {\n padding-left: 0;\n padding-right: var(\n --spectrum-fieldlabel-side-padding-x,\n var(--spectrum-global-dimension-size-100)\n );\n margin-left: var(--spectrum-global-dimension-size-400);\n }\n [dir='ltr'] sp-switch {\n margin-left: var(--spectrum-global-dimension-size-400);\n margin-right: 0;\n padding: 0;\n }\n [dir='rtl'] sp-field-label {\n padding-right: 0;\n padding-left: var(\n --spectrum-fieldlabel-side-padding-x,\n var(--spectrum-global-dimension-size-100)\n );\n margin-right: var(--spectrum-global-dimension-size-400);\n }\n [dir='rtl'] sp-switch {\n margin-right: var(--spectrum-global-dimension-size-400);\n margin-left: 0;\n padding: 0;\n }\n `,\n ];\n }\n\n @property({ type: String })\n public theme: ThemeVariant = window.__swc_hack_knobs__.defaultThemeVariant;\n\n @property({ type: String })\n public color: Color = window.__swc_hack_knobs__.defaultColor;\n\n @property({ type: String })\n public scale: Scale = window.__swc_hack_knobs__.defaultScale;\n\n @property({ type: String, reflect: true, attribute: 'dir' })\n public direction: 'ltr' | 'rtl' =\n window.__swc_hack_knobs__.defaultDirection;\n\n @property({ type: Boolean, attribute: 'reduce-motion', reflect: true })\n public reduceMotion = window.__swc_hack_knobs__.defaultReduceMotion;\n\n @property({ type: Boolean, reflect: true })\n public screenshot = false;\n\n @queryAsync('sp-theme')\n private themeRoot!: Theme;\n\n public ready = false;\n\n public async startManagingContentDirection(el: HTMLElement): Promise<void> {\n (await this.themeRoot).startManagingContentDirection(el);\n }\n\n public async stopManagingContentDirection(el: HTMLElement): Promise<void> {\n (await this.themeRoot).stopManagingContentDirection(el);\n }\n\n private updateTheme({ target }: Event & { target: Picker | Switch }): void {\n const { id } = target;\n const { value } = target as Picker;\n const { checked } = target as Switch;\n switch (id) {\n case 'theme':\n this.theme =\n theme =\n window.__swc_hack_knobs__.defaultThemeVariant =\n value as ThemeVariant;\n break;\n case 'color':\n this.color =\n color =\n window.__swc_hack_knobs__.defaultColor =\n value as Color;\n break;\n case 'scale':\n this.scale =\n scale =\n window.__swc_hack_knobs__.defaultScale =\n value as Scale;\n break;\n case 'dir':\n this.direction =\n dir =\n window.__swc_hack_knobs__.defaultDirection =\n value as 'ltr' | 'rtl';\n document.documentElement.dir = dir;\n break;\n case 'reduceMotion':\n this.reduceMotion =\n reduceMotion =\n window.__swc_hack_knobs__.defaultReduceMotion =\n checked as boolean;\n break;\n }\n }\n\n protected handleKeydown(event: KeyboardEvent): void {\n const path = event.composedPath();\n const hasInput = path.some((node) => node instanceof HTMLInputElement);\n if (hasInput) {\n event.stopPropagation();\n }\n }\n\n protected render(): TemplateResult {\n return html`\n <sp-theme\n theme=${this.theme}\n color=${this.color}\n scale=${this.scale}\n dir=${this.direction}\n part=\"container\"\n @keydown=${this.handleKeydown}\n >\n <slot @slotchange=${this.checkReady}></slot>\n ${this.screenshot ? nothing : this.manageTheme}\n </sp-theme>\n `;\n }\n\n protected async checkReady({\n target,\n }: Event & { target: HTMLSlotElement }): Promise<void> {\n this.ready = false;\n const descendents = target.assignedElements({\n flatten: true,\n }) as SpectrumElement[];\n const litElementDescendents = descendents.filter(\n (el) =>\n el.tagName.search('-') !== -1 &&\n typeof el.updateComplete !== 'undefined'\n );\n const updates = litElementDescendents.map((el) => el.updateComplete);\n await Promise.all(updates);\n new Promise((res) => {\n setTimeout(res);\n }).then(async () => {\n await (document.fonts ? document.fonts.ready : Promise.resolve());\n setTimeout(() => (this.ready = true));\n });\n }\n\n private get manageTheme(): TemplateResult {\n return html`\n <div class=\"manage-theme\" part=\"controls\">\n ${this.themeControl} ${this.colorControl} ${this.scaleControl}\n ${this.dirControl} ${this.reduceMotionControl}\n </div>\n `;\n }\n\n private get themeControl(): TemplateResult {\n return html`\n <sp-field-label for=\"theme\">Spectrum</sp-field-label>\n <sp-picker\n id=\"theme\"\n placement=\"top\"\n quiet\n .value=${this.theme}\n @change=${this.updateTheme}\n >\n <sp-menu-item value=\"spectrum\">Classic</sp-menu-item>\n <sp-menu-item value=\"express\">Express</sp-menu-item>\n </sp-picker>\n `;\n }\n\n private get colorControl(): TemplateResult {\n return html`\n <sp-field-label for=\"color\">Theme</sp-field-label>\n <sp-picker\n id=\"color\"\n placement=\"top\"\n quiet\n .value=${this.color}\n @change=${this.updateTheme}\n >\n <sp-menu-item value=\"lightest\">Lightest</sp-menu-item>\n <sp-menu-item value=\"light\">Light</sp-menu-item>\n <sp-menu-item value=\"dark\">Dark</sp-menu-item>\n <sp-menu-item value=\"darkest\">Darkest</sp-menu-item>\n </sp-picker>\n `;\n }\n\n private get scaleControl(): TemplateResult {\n return html`\n <sp-field-label for=\"scale\">Scale</sp-field-label>\n <sp-picker\n id=\"scale\"\n label=\"Scale\"\n placement=\"top\"\n quiet\n .value=${this.scale}\n @change=${this.updateTheme}\n >\n <sp-menu-item value=\"medium\">Medium</sp-menu-item>\n <sp-menu-item value=\"large\">Large</sp-menu-item>\n </sp-picker>\n `;\n }\n\n private get dirControl(): TemplateResult {\n return html`\n <sp-field-label for=\"dir\">Direction</sp-field-label>\n <sp-picker\n id=\"dir\"\n label=\"Direction\"\n placement=\"top\"\n quiet\n .value=${this.direction}\n @change=${this.updateTheme}\n >\n <sp-menu-item value=\"ltr\">LTR</sp-menu-item>\n <sp-menu-item value=\"rtl\">RTL</sp-menu-item>\n </sp-picker>\n `;\n }\n\n private get reduceMotionControl(): TemplateResult {\n return html`\n <sp-switch\n id=\"reduceMotion\"\n ?checked=${this.reduceMotion}\n @change=${this.updateTheme}\n >\n Reduce Motion\n </sp-switch>\n `;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"StoryDecorator.js","sourceRoot":"","sources":["StoryDecorator.ts"],"names":[],"mappings":"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","sourcesContent":["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport {\n css,\n html,\n nothing,\n SpectrumElement,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport {\n property,\n queryAsync,\n} from '@spectrum-web-components/base/src/decorators.js';\nimport { ifDefined } from '@spectrum-web-components/base/src/directives.js';\nimport '@spectrum-web-components/theme/sp-theme.js';\nimport '@spectrum-web-components/theme/src/themes.js';\nimport '@spectrum-web-components/field-label/sp-field-label.js';\nimport '@spectrum-web-components/picker/sp-picker.js';\nimport '@spectrum-web-components/menu/sp-menu.js';\nimport '@spectrum-web-components/menu/sp-menu-item.js';\nimport '@spectrum-web-components/switch/sp-switch.js';\nimport { Picker } from '@spectrum-web-components/picker';\nimport { Switch } from '@spectrum-web-components/switch';\nimport { Color, Scale, Theme } from '@spectrum-web-components/theme';\nimport { ActiveOverlay } from '@spectrum-web-components/overlay';\nimport './types.js';\n\nconst queryString = window.location.search;\nconst urlParams = new URLSearchParams(queryString);\n\nexport let dir: 'ltr' | 'rtl' =\n (urlParams.get('sp_dir') as 'ltr' | 'rtl') || 'ltr';\nexport let color: Color = (urlParams.get('sp_color') as Color) || 'light';\nexport let scale: Scale = (urlParams.get('sp_scale') as Scale) || 'medium';\nexport let reduceMotion = urlParams.get('sp_reduceMotion') === 'true';\n\nwindow.__swc_hack_knobs__ = window.__swc_hack_knobs__ || {\n defaultColor: color,\n defaultScale: scale,\n defaultDirection: dir,\n defaultReduceMotion: reduceMotion,\n};\n\nconst reduceMotionProperties = css`\n --spectrum-global-animation-duration-100: 0ms;\n --spectrum-global-animation-duration-200: 0ms;\n --spectrum-global-animation-duration-300: 0ms;\n --spectrum-global-animation-duration-400: 0ms;\n --spectrum-global-animation-duration-500: 0ms;\n --spectrum-global-animation-duration-600: 0ms;\n --spectrum-global-animation-duration-700: 0ms;\n --spectrum-global-animation-duration-800: 0ms;\n --spectrum-global-animation-duration-900: 0ms;\n --spectrum-global-animation-duration-1000: 0ms;\n --spectrum-global-animation-duration-2000: 0ms;\n --spectrum-global-animation-duration-4000: 0ms;\n --spectrum-coachmark-animation-indicator-ring-duration: 0ms;\n --swc-test-duration: 1ms;\n`;\n\nActiveOverlay.prototype.renderTheme = function (\n content: TemplateResult\n): TemplateResult {\n const { color, scale, lang } = this.theme;\n return html`\n ${window.__swc_hack_knobs__.defaultReduceMotion\n ? html`\n <style>\n sp-theme {\n ${reduceMotionProperties}\n }\n </style>\n `\n : html``}\n <sp-theme\n color=${ifDefined(color)}\n scale=${ifDefined(scale)}\n lang=${ifDefined(lang)}\n part=\"theme\"\n >\n ${content}\n </sp-theme>\n `;\n};\n\nexport class StoryDecorator extends SpectrumElement {\n static styles = [\n css`\n :host(:focus) {\n outline: none;\n }\n sp-theme {\n overflow-x: hidden;\n display: block;\n box-sizing: border-box;\n width: 100%;\n min-height: 100vh;\n padding: var(--spectrum-global-dimension-size-100)\n var(--spectrum-global-dimension-size-100)\n calc(\n 2 * var(--spectrum-alias-focus-ring-size) +\n var(--spectrum-alias-item-height-m)\n );\n background-color: var(--spectrum-global-color-gray-100);\n color: var(\n --spectrum-body-text-color,\n var(--spectrum-alias-text-color)\n );\n }\n :host([screenshot]) sp-theme {\n padding: var(--spectrum-global-dimension-size-100);\n --swc-test-caret-color: transparent;\n }\n :host([reduce-motion]) sp-theme {\n ${reduceMotionProperties}\n }\n .manage-theme {\n position: fixed;\n bottom: 0;\n left: var(--spectrum-global-dimension-size-200);\n right: var(--spectrum-global-dimension-size-200);\n display: flex;\n align-items: center;\n justify-content: flex-end;\n box-sizing: border-box;\n background-color: var(--spectrum-global-color-gray-100);\n padding-bottom: calc(2 * var(--spectrum-alias-focus-ring-size));\n }\n [dir='ltr'] sp-field-label {\n padding-left: 0;\n padding-right: var(\n --spectrum-fieldlabel-side-padding-x,\n var(--spectrum-global-dimension-size-100)\n );\n margin-left: var(--spectrum-global-dimension-size-400);\n }\n [dir='ltr'] sp-switch {\n margin-left: var(--spectrum-global-dimension-size-400);\n margin-right: 0;\n padding: 0;\n }\n [dir='rtl'] sp-field-label {\n padding-right: 0;\n padding-left: var(\n --spectrum-fieldlabel-side-padding-x,\n var(--spectrum-global-dimension-size-100)\n );\n margin-right: var(--spectrum-global-dimension-size-400);\n }\n [dir='rtl'] sp-switch {\n margin-right: var(--spectrum-global-dimension-size-400);\n margin-left: 0;\n padding: 0;\n }\n `,\n ];\n\n @property({ type: String })\n public color: Color = window.__swc_hack_knobs__.defaultColor;\n\n @property({ type: String })\n public scale: Scale = window.__swc_hack_knobs__.defaultScale;\n\n @property({ type: String, reflect: true, attribute: 'dir' })\n public direction: 'ltr' | 'rtl' =\n window.__swc_hack_knobs__.defaultDirection;\n\n @property({ type: Boolean, attribute: 'reduce-motion', reflect: true })\n public reduceMotion = window.__swc_hack_knobs__.defaultReduceMotion;\n\n @property({ type: Boolean, reflect: true })\n public screenshot = false;\n\n @queryAsync('sp-theme')\n private theme!: Theme;\n\n public ready = false;\n\n public async startManagingContentDirection(el: HTMLElement): Promise<void> {\n (await this.theme).startManagingContentDirection(el);\n }\n\n public async stopManagingContentDirection(el: HTMLElement): Promise<void> {\n (await this.theme).stopManagingContentDirection(el);\n }\n\n private updateTheme({ target }: Event & { target: Picker | Switch }): void {\n const { id } = target;\n const { value } = target as Picker;\n const { checked } = target as Switch;\n switch (id) {\n case 'color':\n this.color =\n color =\n window.__swc_hack_knobs__.defaultColor =\n value as Color;\n break;\n case 'scale':\n this.scale =\n scale =\n window.__swc_hack_knobs__.defaultScale =\n value as Scale;\n break;\n case 'dir':\n this.direction =\n dir =\n window.__swc_hack_knobs__.defaultDirection =\n value as 'ltr' | 'rtl';\n document.documentElement.dir = dir;\n break;\n case 'reduceMotion':\n this.reduceMotion =\n reduceMotion =\n window.__swc_hack_knobs__.defaultReduceMotion =\n checked as boolean;\n break;\n }\n }\n\n protected handleKeydown(event: KeyboardEvent): void {\n const path = event.composedPath();\n const hasInput = path.some((node) => node instanceof HTMLInputElement);\n if (hasInput) {\n event.stopPropagation();\n }\n }\n\n protected render(): TemplateResult {\n return html`\n <sp-theme\n color=${this.color}\n scale=${this.scale}\n dir=${this.direction}\n part=\"container\"\n @keydown=${this.handleKeydown}\n >\n <slot @slotchange=${this.checkReady}></slot>\n ${this.screenshot ? nothing : this.manageTheme}\n </sp-theme>\n `;\n }\n\n protected async checkReady({\n target,\n }: Event & { target: HTMLSlotElement }): Promise<void> {\n this.ready = false;\n const descendents = target.assignedElements({\n flatten: true,\n }) as SpectrumElement[];\n const litElementDescendents = descendents.filter(\n (el) =>\n el.tagName.search('-') !== -1 &&\n typeof el.updateComplete !== 'undefined'\n );\n const updates = litElementDescendents.map((el) => el.updateComplete);\n await Promise.all(updates);\n new Promise((res) => {\n setTimeout(res);\n }).then(async () => {\n await (document.fonts ? document.fonts.ready : Promise.resolve());\n setTimeout(() => (this.ready = true));\n });\n }\n\n private get manageTheme(): TemplateResult {\n return html`\n <div class=\"manage-theme\" part=\"controls\">\n ${this.colorControl} ${this.scaleControl} ${this.dirControl}\n ${this.reduceMotionControl}\n </div>\n `;\n }\n\n private get colorControl(): TemplateResult {\n return html`\n <sp-field-label for=\"color\">Theme</sp-field-label>\n <sp-picker\n id=\"color\"\n placement=\"top\"\n quiet\n .value=${this.color}\n @change=${this.updateTheme}\n >\n <sp-menu-item value=\"lightest\">Lightest</sp-menu-item>\n <sp-menu-item value=\"light\">Light</sp-menu-item>\n <sp-menu-item value=\"dark\">Dark</sp-menu-item>\n <sp-menu-item value=\"darkest\">Darkest</sp-menu-item>\n </sp-picker>\n `;\n }\n\n private get scaleControl(): TemplateResult {\n return html`\n <sp-field-label for=\"scale\">Scale</sp-field-label>\n <sp-picker\n id=\"scale\"\n label=\"Scale\"\n placement=\"top\"\n quiet\n .value=${this.scale}\n @change=${this.updateTheme}\n >\n <sp-menu-item value=\"medium\">Medium</sp-menu-item>\n <sp-menu-item value=\"large\">Large</sp-menu-item>\n </sp-picker>\n `;\n }\n\n private get dirControl(): TemplateResult {\n return html`\n <sp-field-label for=\"dir\">Direction</sp-field-label>\n <sp-picker\n id=\"dir\"\n label=\"Direction\"\n placement=\"top\"\n quiet\n .value=${this.direction}\n @change=${this.updateTheme}\n >\n <sp-menu-item value=\"ltr\">LTR</sp-menu-item>\n <sp-menu-item value=\"rtl\">RTL</sp-menu-item>\n </sp-picker>\n `;\n }\n\n private get reduceMotionControl(): TemplateResult {\n return html`\n <sp-switch\n id=\"reduceMotion\"\n ?checked=${this.reduceMotion}\n @change=${this.updateTheme}\n >\n Reduce Motion\n </sp-switch>\n `;\n }\n}\n"]}
|
package/src/types.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { Color, Scale
|
|
1
|
+
import { Color, Scale } from '@spectrum-web-components/theme';
|
|
2
2
|
declare global {
|
|
3
3
|
interface Window {
|
|
4
4
|
__swc_hack_knobs__: {
|
|
5
|
-
defaultThemeVariant: ThemeVariant;
|
|
6
5
|
defaultColor: Color;
|
|
7
6
|
defaultScale: Scale;
|
|
8
7
|
defaultDirection: 'ltr' | 'rtl';
|
package/src/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":"","sourcesContent":["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nimport { Color, Scale
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":"","sourcesContent":["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nimport { Color, Scale } from '@spectrum-web-components/theme';\n\ndeclare global {\n interface Window {\n __swc_hack_knobs__: {\n defaultColor: Color;\n defaultScale: Scale;\n defaultDirection: 'ltr' | 'rtl';\n defaultReduceMotion: boolean;\n };\n }\n}\n"]}
|