@pure-ds/storybook 0.3.19 → 0.4.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.
- package/.storybook/addons/pds-configurator/SearchTool.js +44 -44
- package/.storybook/preview.js +6 -2
- package/dist/pds-reference.json +65 -13
- package/package.json +50 -50
- package/stories/components/PdsCalendar.stories.js +266 -263
- package/stories/components/PdsDrawer.stories.js +2 -2
- package/stories/components/PdsIcon.stories.js +2 -2
- package/stories/components/PdsJsonform.stories.js +2 -2
- package/stories/components/PdsRichtext.stories.js +367 -367
- package/stories/components/PdsScrollrow.stories.js +140 -140
- package/stories/components/PdsSplitpanel.stories.js +502 -502
- package/stories/components/PdsTabstrip.stories.js +2 -2
- package/stories/components/PdsToaster.stories.js +186 -186
- package/stories/components/PdsUpload.stories.js +66 -66
- package/stories/enhancements/Dropdowns.stories.js +185 -185
- package/stories/enhancements/InteractiveStates.stories.js +625 -625
- package/stories/enhancements/MeshGradients.stories.js +321 -320
- package/stories/enhancements/OpenGroups.stories.js +227 -227
- package/stories/enhancements/RangeSliders.stories.js +232 -232
- package/stories/enhancements/RequiredFields.stories.js +189 -189
- package/stories/enhancements/Toggles.stories.js +167 -167
- package/stories/foundations/Colors.stories.js +2 -1
- package/stories/foundations/Icons.stories.js +4 -0
- package/stories/foundations/SmartSurfaces.stories.js +485 -367
- package/stories/foundations/Spacing.stories.js +5 -1
- package/stories/foundations/Typography.stories.js +4 -0
- package/stories/foundations/ZIndex.stories.js +329 -325
- package/stories/layout/LayoutOverview.stories.js +247 -0
- package/stories/layout/LayoutSystem.stories.js +852 -0
- package/stories/patterns/BorderEffects.stories.js +74 -72
- package/stories/primitives/Accordion.stories.js +5 -3
- package/stories/primitives/Alerts.stories.js +261 -46
- package/stories/primitives/Badges.stories.js +4 -0
- package/stories/primitives/Buttons.stories.js +2 -2
- package/stories/primitives/Cards.stories.js +98 -170
- package/stories/primitives/Media.stories.js +442 -203
- package/stories/primitives/Tables.stories.js +358 -232
- package/stories/utilities/Backdrop.stories.js +197 -0
- package/stories/patterns/Layout.stories.js +0 -99
- package/stories/utilities/GridSystem.stories.js +0 -208
|
@@ -1,227 +1,227 @@
|
|
|
1
|
-
import { html } from 'lit';
|
|
2
|
-
|
|
3
|
-
const openGroupsStoryStyles = html`
|
|
4
|
-
<style>
|
|
5
|
-
.open-groups-container {
|
|
6
|
-
max-width: 37.5rem;
|
|
7
|
-
display: grid;
|
|
8
|
-
gap: var(--spacing-4);
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
.open-groups-description {
|
|
12
|
-
color: var(--surface-text-secondary);
|
|
13
|
-
margin: 0;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
.open-groups-description + .open-groups-fieldset,
|
|
17
|
-
.open-groups-description + .open-groups-form-fieldset {
|
|
18
|
-
margin-top: var(--spacing-4);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
.open-groups-fieldset {
|
|
22
|
-
display: grid;
|
|
23
|
-
gap: var(--spacing-3);
|
|
24
|
-
margin: 0;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
.open-groups-form {
|
|
28
|
-
max-width: 37.5rem;
|
|
29
|
-
display: grid;
|
|
30
|
-
gap: var(--spacing-4);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
.open-groups-form-fieldset {
|
|
34
|
-
display: grid;
|
|
35
|
-
gap: var(--spacing-3);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
.open-groups-actions {
|
|
39
|
-
display: flex;
|
|
40
|
-
gap: var(--spacing-3);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
.open-groups-card {
|
|
44
|
-
max-width: 37.5rem;
|
|
45
|
-
display: grid;
|
|
46
|
-
gap: var(--spacing-4);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
.open-groups-card-actions {
|
|
50
|
-
margin-top: var(--spacing-4);
|
|
51
|
-
}
|
|
52
|
-
</style>
|
|
53
|
-
`;
|
|
54
|
-
|
|
55
|
-
export default {
|
|
56
|
-
title: 'Enhancements/Open Groups',
|
|
57
|
-
tags: ['
|
|
58
|
-
parameters: {
|
|
59
|
-
pds: {
|
|
60
|
-
tags: ['forms', 'interaction']
|
|
61
|
-
},
|
|
62
|
-
docs: {
|
|
63
|
-
description: {
|
|
64
|
-
component:
|
|
65
|
-
'Dynamic checkbox/radio groups that allow users to add custom options at runtime using the data-open attribute'
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
export const RadioGroupOpen = () => html`
|
|
72
|
-
${openGroupsStoryStyles}
|
|
73
|
-
<section class="open-groups-container">
|
|
74
|
-
<h3>Select Your Preferences</h3>
|
|
75
|
-
<p class="open-groups-description">
|
|
76
|
-
Choose from existing options or add your own
|
|
77
|
-
</p>
|
|
78
|
-
<fieldset role="group" data-open >
|
|
79
|
-
<legend>Favorite Programming Language</legend>
|
|
80
|
-
<label>
|
|
81
|
-
<span data-label>JavaScript</span>
|
|
82
|
-
<input value="javascript" name="language" type="radio">
|
|
83
|
-
</label>
|
|
84
|
-
<label>
|
|
85
|
-
<span data-label>Python</span>
|
|
86
|
-
<input value="python" name="language" type="radio">
|
|
87
|
-
</label>
|
|
88
|
-
<label>
|
|
89
|
-
<span data-label>TypeScript</span>
|
|
90
|
-
<input value="typescript" name="language" type="radio">
|
|
91
|
-
</label>
|
|
92
|
-
</fieldset>
|
|
93
|
-
</section>
|
|
94
|
-
`;
|
|
95
|
-
|
|
96
|
-
export const CheckboxGroupOpen = () => html`
|
|
97
|
-
${openGroupsStoryStyles}
|
|
98
|
-
<section class="open-groups-container">
|
|
99
|
-
<h3>Select Features</h3>
|
|
100
|
-
<p class="open-groups-description">
|
|
101
|
-
Select multiple features and add custom ones
|
|
102
|
-
</p>
|
|
103
|
-
<fieldset role="group" data-open>
|
|
104
|
-
<legend>Desired Features</legend>
|
|
105
|
-
<label>
|
|
106
|
-
<span data-label>Dark Mode</span>
|
|
107
|
-
<input value="dark-mode" name="features" type="checkbox">
|
|
108
|
-
</label>
|
|
109
|
-
<label>
|
|
110
|
-
<span data-label>Notifications</span>
|
|
111
|
-
<input value="notifications" name="features" type="checkbox">
|
|
112
|
-
</label>
|
|
113
|
-
<label>
|
|
114
|
-
<span data-label>Analytics</span>
|
|
115
|
-
<input value="analytics" name="features" type="checkbox">
|
|
116
|
-
</label>
|
|
117
|
-
</fieldset>
|
|
118
|
-
</section>
|
|
119
|
-
`;
|
|
120
|
-
|
|
121
|
-
export const InForm = () => html`
|
|
122
|
-
${openGroupsStoryStyles}
|
|
123
|
-
<form
|
|
124
|
-
class="open-groups-form"
|
|
125
|
-
@submit="${(event) => {
|
|
126
|
-
event.preventDefault();
|
|
127
|
-
window.toastFormData(new FormData(event.target));
|
|
128
|
-
}}"
|
|
129
|
-
>
|
|
130
|
-
<h3>Survey Form</h3>
|
|
131
|
-
|
|
132
|
-
<fieldset role="group" data-open>
|
|
133
|
-
<legend>How did you hear about us?</legend>
|
|
134
|
-
<label>
|
|
135
|
-
<span data-label>Social Media</span>
|
|
136
|
-
<input value="social" name="source" type="radio">
|
|
137
|
-
</label>
|
|
138
|
-
<label>
|
|
139
|
-
<span data-label>Search Engine</span>
|
|
140
|
-
<input value="search" name="source" type="radio">
|
|
141
|
-
</label>
|
|
142
|
-
<label>
|
|
143
|
-
<span data-label>Friend</span>
|
|
144
|
-
<input value="friend" name="source" type="radio">
|
|
145
|
-
</label>
|
|
146
|
-
</fieldset>
|
|
147
|
-
|
|
148
|
-
<fieldset role="group" data-open>
|
|
149
|
-
<legend>Interests (select all that apply)</legend>
|
|
150
|
-
<label>
|
|
151
|
-
<span data-label>Web Development</span>
|
|
152
|
-
<input value="webdev" name="interests" type="checkbox">
|
|
153
|
-
</label>
|
|
154
|
-
<label>
|
|
155
|
-
<span data-label>Design</span>
|
|
156
|
-
<input value="design" name="interests" type="checkbox">
|
|
157
|
-
</label>
|
|
158
|
-
<label>
|
|
159
|
-
<span data-label>Marketing</span>
|
|
160
|
-
<input value="marketing" name="interests" type="checkbox">
|
|
161
|
-
</label>
|
|
162
|
-
</fieldset>
|
|
163
|
-
|
|
164
|
-
<div class="open-groups-actions">
|
|
165
|
-
<button type="submit" class="btn-primary">Submit Survey</button>
|
|
166
|
-
</div>
|
|
167
|
-
</form>
|
|
168
|
-
`;
|
|
169
|
-
|
|
170
|
-
export const PrefilledValues = () => html`
|
|
171
|
-
${openGroupsStoryStyles}
|
|
172
|
-
<section class="open-groups-container">
|
|
173
|
-
<h3>Tag Editor</h3>
|
|
174
|
-
<p class="open-groups-description">
|
|
175
|
-
Select existing tags or create new ones by typing and pressing Enter
|
|
176
|
-
</p>
|
|
177
|
-
<fieldset role="group" data-open >
|
|
178
|
-
<legend>Article Tags</legend>
|
|
179
|
-
<label>
|
|
180
|
-
<span data-label>JavaScript</span>
|
|
181
|
-
<input value="javascript" name="tags" type="checkbox" checked>
|
|
182
|
-
</label>
|
|
183
|
-
<label>
|
|
184
|
-
<span data-label>Tutorial</span>
|
|
185
|
-
<input value="tutorial" name="tags" type="checkbox" checked>
|
|
186
|
-
</label>
|
|
187
|
-
<label>
|
|
188
|
-
<span data-label>Beginner</span>
|
|
189
|
-
<input value="beginner" name="tags" type="checkbox">
|
|
190
|
-
</label>
|
|
191
|
-
<label>
|
|
192
|
-
<span data-label>Advanced</span>
|
|
193
|
-
<input value="advanced" name="tags" type="checkbox">
|
|
194
|
-
</label>
|
|
195
|
-
</fieldset>
|
|
196
|
-
</section>
|
|
197
|
-
`;
|
|
198
|
-
|
|
199
|
-
export const InCard = () => html`
|
|
200
|
-
${openGroupsStoryStyles}
|
|
201
|
-
<article class="card open-groups-card">
|
|
202
|
-
<h3>Customize Your Experience</h3>
|
|
203
|
-
<p class="open-groups-description">
|
|
204
|
-
Choose your preferences and add custom options as needed
|
|
205
|
-
</p>
|
|
206
|
-
|
|
207
|
-
<fieldset role="group" data-open>
|
|
208
|
-
<legend>Notification Channels</legend>
|
|
209
|
-
<label>
|
|
210
|
-
<span data-label>Email</span>
|
|
211
|
-
<input value="email" name="channels" type="checkbox" checked>
|
|
212
|
-
</label>
|
|
213
|
-
<label>
|
|
214
|
-
<span data-label>SMS</span>
|
|
215
|
-
<input value="sms" name="channels" type="checkbox">
|
|
216
|
-
</label>
|
|
217
|
-
<label>
|
|
218
|
-
<span data-label>Push</span>
|
|
219
|
-
<input value="push" name="channels" type="checkbox" checked>
|
|
220
|
-
</label>
|
|
221
|
-
</fieldset>
|
|
222
|
-
|
|
223
|
-
<div class="open-groups-card-actions">
|
|
224
|
-
<button class="btn-primary">Save Preferences</button>
|
|
225
|
-
</div>
|
|
226
|
-
</article>
|
|
227
|
-
`;
|
|
1
|
+
import { html } from 'lit';
|
|
2
|
+
|
|
3
|
+
const openGroupsStoryStyles = html`
|
|
4
|
+
<style>
|
|
5
|
+
.open-groups-container {
|
|
6
|
+
max-width: 37.5rem;
|
|
7
|
+
display: grid;
|
|
8
|
+
gap: var(--spacing-4);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.open-groups-description {
|
|
12
|
+
color: var(--surface-text-secondary);
|
|
13
|
+
margin: 0;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.open-groups-description + .open-groups-fieldset,
|
|
17
|
+
.open-groups-description + .open-groups-form-fieldset {
|
|
18
|
+
margin-top: var(--spacing-4);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.open-groups-fieldset {
|
|
22
|
+
display: grid;
|
|
23
|
+
gap: var(--spacing-3);
|
|
24
|
+
margin: 0;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.open-groups-form {
|
|
28
|
+
max-width: 37.5rem;
|
|
29
|
+
display: grid;
|
|
30
|
+
gap: var(--spacing-4);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.open-groups-form-fieldset {
|
|
34
|
+
display: grid;
|
|
35
|
+
gap: var(--spacing-3);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.open-groups-actions {
|
|
39
|
+
display: flex;
|
|
40
|
+
gap: var(--spacing-3);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.open-groups-card {
|
|
44
|
+
max-width: 37.5rem;
|
|
45
|
+
display: grid;
|
|
46
|
+
gap: var(--spacing-4);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.open-groups-card-actions {
|
|
50
|
+
margin-top: var(--spacing-4);
|
|
51
|
+
}
|
|
52
|
+
</style>
|
|
53
|
+
`;
|
|
54
|
+
|
|
55
|
+
export default {
|
|
56
|
+
title: 'Enhancements/Open Groups',
|
|
57
|
+
tags: ['fieldset', 'radio', 'checkbox', 'dynamic', 'custom-option'],
|
|
58
|
+
parameters: {
|
|
59
|
+
pds: {
|
|
60
|
+
tags: ['fieldset', 'radio', 'checkbox', 'dynamic', 'custom-option', 'data-open', 'forms', 'interaction', 'enhancement']
|
|
61
|
+
},
|
|
62
|
+
docs: {
|
|
63
|
+
description: {
|
|
64
|
+
component:
|
|
65
|
+
'Dynamic checkbox/radio groups that allow users to add custom options at runtime using the data-open attribute'
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
export const RadioGroupOpen = () => html`
|
|
72
|
+
${openGroupsStoryStyles}
|
|
73
|
+
<section class="open-groups-container">
|
|
74
|
+
<h3>Select Your Preferences</h3>
|
|
75
|
+
<p class="open-groups-description">
|
|
76
|
+
Choose from existing options or add your own
|
|
77
|
+
</p>
|
|
78
|
+
<fieldset role="group" data-open >
|
|
79
|
+
<legend>Favorite Programming Language</legend>
|
|
80
|
+
<label>
|
|
81
|
+
<span data-label>JavaScript</span>
|
|
82
|
+
<input value="javascript" name="language" type="radio">
|
|
83
|
+
</label>
|
|
84
|
+
<label>
|
|
85
|
+
<span data-label>Python</span>
|
|
86
|
+
<input value="python" name="language" type="radio">
|
|
87
|
+
</label>
|
|
88
|
+
<label>
|
|
89
|
+
<span data-label>TypeScript</span>
|
|
90
|
+
<input value="typescript" name="language" type="radio">
|
|
91
|
+
</label>
|
|
92
|
+
</fieldset>
|
|
93
|
+
</section>
|
|
94
|
+
`;
|
|
95
|
+
|
|
96
|
+
export const CheckboxGroupOpen = () => html`
|
|
97
|
+
${openGroupsStoryStyles}
|
|
98
|
+
<section class="open-groups-container">
|
|
99
|
+
<h3>Select Features</h3>
|
|
100
|
+
<p class="open-groups-description">
|
|
101
|
+
Select multiple features and add custom ones
|
|
102
|
+
</p>
|
|
103
|
+
<fieldset role="group" data-open>
|
|
104
|
+
<legend>Desired Features</legend>
|
|
105
|
+
<label>
|
|
106
|
+
<span data-label>Dark Mode</span>
|
|
107
|
+
<input value="dark-mode" name="features" type="checkbox">
|
|
108
|
+
</label>
|
|
109
|
+
<label>
|
|
110
|
+
<span data-label>Notifications</span>
|
|
111
|
+
<input value="notifications" name="features" type="checkbox">
|
|
112
|
+
</label>
|
|
113
|
+
<label>
|
|
114
|
+
<span data-label>Analytics</span>
|
|
115
|
+
<input value="analytics" name="features" type="checkbox">
|
|
116
|
+
</label>
|
|
117
|
+
</fieldset>
|
|
118
|
+
</section>
|
|
119
|
+
`;
|
|
120
|
+
|
|
121
|
+
export const InForm = () => html`
|
|
122
|
+
${openGroupsStoryStyles}
|
|
123
|
+
<form
|
|
124
|
+
class="open-groups-form"
|
|
125
|
+
@submit="${(event) => {
|
|
126
|
+
event.preventDefault();
|
|
127
|
+
window.toastFormData(new FormData(event.target));
|
|
128
|
+
}}"
|
|
129
|
+
>
|
|
130
|
+
<h3>Survey Form</h3>
|
|
131
|
+
|
|
132
|
+
<fieldset role="group" data-open>
|
|
133
|
+
<legend>How did you hear about us?</legend>
|
|
134
|
+
<label>
|
|
135
|
+
<span data-label>Social Media</span>
|
|
136
|
+
<input value="social" name="source" type="radio">
|
|
137
|
+
</label>
|
|
138
|
+
<label>
|
|
139
|
+
<span data-label>Search Engine</span>
|
|
140
|
+
<input value="search" name="source" type="radio">
|
|
141
|
+
</label>
|
|
142
|
+
<label>
|
|
143
|
+
<span data-label>Friend</span>
|
|
144
|
+
<input value="friend" name="source" type="radio">
|
|
145
|
+
</label>
|
|
146
|
+
</fieldset>
|
|
147
|
+
|
|
148
|
+
<fieldset role="group" data-open>
|
|
149
|
+
<legend>Interests (select all that apply)</legend>
|
|
150
|
+
<label>
|
|
151
|
+
<span data-label>Web Development</span>
|
|
152
|
+
<input value="webdev" name="interests" type="checkbox">
|
|
153
|
+
</label>
|
|
154
|
+
<label>
|
|
155
|
+
<span data-label>Design</span>
|
|
156
|
+
<input value="design" name="interests" type="checkbox">
|
|
157
|
+
</label>
|
|
158
|
+
<label>
|
|
159
|
+
<span data-label>Marketing</span>
|
|
160
|
+
<input value="marketing" name="interests" type="checkbox">
|
|
161
|
+
</label>
|
|
162
|
+
</fieldset>
|
|
163
|
+
|
|
164
|
+
<div class="open-groups-actions">
|
|
165
|
+
<button type="submit" class="btn-primary">Submit Survey</button>
|
|
166
|
+
</div>
|
|
167
|
+
</form>
|
|
168
|
+
`;
|
|
169
|
+
|
|
170
|
+
export const PrefilledValues = () => html`
|
|
171
|
+
${openGroupsStoryStyles}
|
|
172
|
+
<section class="open-groups-container">
|
|
173
|
+
<h3>Tag Editor</h3>
|
|
174
|
+
<p class="open-groups-description">
|
|
175
|
+
Select existing tags or create new ones by typing and pressing Enter
|
|
176
|
+
</p>
|
|
177
|
+
<fieldset role="group" data-open >
|
|
178
|
+
<legend>Article Tags</legend>
|
|
179
|
+
<label>
|
|
180
|
+
<span data-label>JavaScript</span>
|
|
181
|
+
<input value="javascript" name="tags" type="checkbox" checked>
|
|
182
|
+
</label>
|
|
183
|
+
<label>
|
|
184
|
+
<span data-label>Tutorial</span>
|
|
185
|
+
<input value="tutorial" name="tags" type="checkbox" checked>
|
|
186
|
+
</label>
|
|
187
|
+
<label>
|
|
188
|
+
<span data-label>Beginner</span>
|
|
189
|
+
<input value="beginner" name="tags" type="checkbox">
|
|
190
|
+
</label>
|
|
191
|
+
<label>
|
|
192
|
+
<span data-label>Advanced</span>
|
|
193
|
+
<input value="advanced" name="tags" type="checkbox">
|
|
194
|
+
</label>
|
|
195
|
+
</fieldset>
|
|
196
|
+
</section>
|
|
197
|
+
`;
|
|
198
|
+
|
|
199
|
+
export const InCard = () => html`
|
|
200
|
+
${openGroupsStoryStyles}
|
|
201
|
+
<article class="card open-groups-card">
|
|
202
|
+
<h3>Customize Your Experience</h3>
|
|
203
|
+
<p class="open-groups-description">
|
|
204
|
+
Choose your preferences and add custom options as needed
|
|
205
|
+
</p>
|
|
206
|
+
|
|
207
|
+
<fieldset role="group" data-open>
|
|
208
|
+
<legend>Notification Channels</legend>
|
|
209
|
+
<label>
|
|
210
|
+
<span data-label>Email</span>
|
|
211
|
+
<input value="email" name="channels" type="checkbox" checked>
|
|
212
|
+
</label>
|
|
213
|
+
<label>
|
|
214
|
+
<span data-label>SMS</span>
|
|
215
|
+
<input value="sms" name="channels" type="checkbox">
|
|
216
|
+
</label>
|
|
217
|
+
<label>
|
|
218
|
+
<span data-label>Push</span>
|
|
219
|
+
<input value="push" name="channels" type="checkbox" checked>
|
|
220
|
+
</label>
|
|
221
|
+
</fieldset>
|
|
222
|
+
|
|
223
|
+
<div class="open-groups-card-actions">
|
|
224
|
+
<button class="btn-primary">Save Preferences</button>
|
|
225
|
+
</div>
|
|
226
|
+
</article>
|
|
227
|
+
`;
|