@pure-ds/storybook 0.4.16 → 0.4.17
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/html-preview/Panel.jsx +71 -20
- package/dist/pds-reference.json +2 -7
- package/package.json +2 -2
- package/public/assets/js/app.js +617 -10565
- package/public/assets/js/lit.js +3 -1048
- package/public/assets/js/pds.js +396 -7354
- package/public/assets/pds/components/pds-calendar.js +1 -1
- package/public/assets/pds/custom-elements.json +263 -18
- package/public/assets/pds/pds-runtime-config.json +1 -1
- package/public/assets/pds/styles/pds-components.css +83 -221
- package/public/assets/pds/styles/pds-components.css.js +166 -442
- package/public/assets/pds/styles/pds-styles.css +240 -437
- package/public/assets/pds/styles/pds-styles.css.js +479 -881
- package/public/assets/pds/styles/pds-utilities.css +151 -214
- package/public/assets/pds/styles/pds-utilities.css.js +302 -428
- package/src/js/pds-core/pds-generator.js +88 -38
- package/src/js/pds-core/pds-ontology.js +1 -1
- package/stories/components/PdsCalendar.stories.js +2 -2
- package/stories/components/PdsDrawer.stories.js +15 -15
- package/stories/components/PdsJsonform.stories.js +78 -0
- package/stories/components/PdsRichtext.stories.js +4 -17
- package/stories/components/PdsScrollrow.stories.js +224 -72
- package/stories/components/PdsSplitpanel.stories.js +63 -28
- package/stories/components/PdsTabstrip.stories.js +7 -7
- package/stories/enhancements/Accordion.stories.js +2 -2
- package/stories/enhancements/Dropdowns.stories.js +13 -10
- package/stories/enhancements/RangeSliders.stories.js +9 -9
- package/stories/enhancements/RequiredFields.stories.js +8 -8
- package/stories/enhancements/Toggles.stories.js +45 -36
- package/stories/enhancements/_enhancement-header.js +2 -2
- package/stories/foundations/Colors.stories.js +13 -13
- package/stories/foundations/HTMLDefaults.stories.js +4 -4
- package/stories/foundations/Icons.stories.js +123 -288
- package/stories/foundations/MeshGradients.stories.js +161 -250
- package/stories/foundations/SmartSurfaces.stories.js +147 -64
- package/stories/foundations/Spacing.stories.js +30 -30
- package/stories/foundations/Typography.stories.js +352 -723
- package/stories/foundations/ZIndex.stories.js +124 -141
- package/stories/layout/LayoutOverview.stories.js +343 -250
- package/stories/layout/LayoutSystem.stories.js +60 -76
- package/stories/patterns/InteractiveStates.stories.js +29 -29
- package/stories/patterns/Utilities.stories.js +17 -5
- package/stories/primitives/Alerts.stories.js +6 -6
- package/stories/primitives/Cards.stories.js +22 -11
- package/stories/primitives/Forms.stories.js +17 -8
- package/stories/primitives/Media.stories.js +23 -20
- package/stories/utilities/Backdrop.stories.js +68 -27
- package/stories/utils/PdsAsk.stories.js +1 -1
- package/public/assets/js/app.js.map +0 -7
- package/public/assets/js/lit.js.map +0 -7
- package/public/assets/js/pds.js.map +0 -7
|
@@ -1,86 +1,128 @@
|
|
|
1
|
-
import { html } from
|
|
1
|
+
import { html } from "lit";
|
|
2
2
|
|
|
3
3
|
const docsParameters = {
|
|
4
4
|
description: {
|
|
5
|
-
component:
|
|
6
|
-
}
|
|
5
|
+
component: "Horizontal scrolling container with navigation buttons",
|
|
6
|
+
},
|
|
7
7
|
};
|
|
8
8
|
|
|
9
|
-
if (typeof window !==
|
|
10
|
-
import(
|
|
9
|
+
if (typeof window !== "undefined") {
|
|
10
|
+
import("../reference/reference-docs.js")
|
|
11
11
|
.then(({ createComponentDocsPage }) => {
|
|
12
|
-
docsParameters.page = createComponentDocsPage(
|
|
12
|
+
docsParameters.page = createComponentDocsPage("pds-scrollrow");
|
|
13
13
|
})
|
|
14
14
|
.catch((error) => {
|
|
15
|
-
console.warn(
|
|
15
|
+
console.warn(
|
|
16
|
+
"storybook: docs page failed to load for pds-scrollrow",
|
|
17
|
+
error
|
|
18
|
+
);
|
|
16
19
|
});
|
|
17
20
|
}
|
|
18
21
|
|
|
19
22
|
// Demo-specific styles for scrollrow cards (min-width required for scroll behavior)
|
|
20
23
|
const scrollrowStoryStyles = html`
|
|
21
24
|
<style>
|
|
22
|
-
.scrollrow-card {
|
|
23
|
-
|
|
24
|
-
.scrollrow-card--product { min-width: 17.5rem; }
|
|
25
|
-
.scrollrow-image {
|
|
26
|
-
min-width: 18.75rem;
|
|
27
|
-
height: 12.5rem;
|
|
28
|
-
object-fit: cover;
|
|
29
|
-
border-radius: var(--radius-md);
|
|
25
|
+
.story-scrollrow-card {
|
|
26
|
+
min-width: 18.75rem;
|
|
30
27
|
}
|
|
31
|
-
.scrollrow-
|
|
28
|
+
.story-scrollrow-card--sm {
|
|
29
|
+
min-width: 12.5rem;
|
|
30
|
+
}
|
|
31
|
+
.story-scrollrow-image {
|
|
32
|
+
min-width: 18.75rem;
|
|
33
|
+
height: 12.5rem;
|
|
34
|
+
object-fit: cover;
|
|
35
|
+
border-radius: var(--radius-md);
|
|
36
|
+
}
|
|
37
|
+
.story-scrollrow-avatar {
|
|
32
38
|
width: 100px;
|
|
33
39
|
height: 100px;
|
|
34
40
|
border-radius: var(--radius-full);
|
|
35
41
|
margin: 0 auto;
|
|
36
42
|
}
|
|
37
|
-
.
|
|
43
|
+
.story-product-gallery {
|
|
44
|
+
article.card {
|
|
45
|
+
min-width: 250px;
|
|
46
|
+
display: flex;
|
|
47
|
+
flex-direction: column;
|
|
48
|
+
}
|
|
49
|
+
.story-product-content {
|
|
50
|
+
flex: 1;
|
|
51
|
+
}
|
|
52
|
+
.story-product-footer {
|
|
53
|
+
margin-top: auto;
|
|
54
|
+
padding-top: var(--spacing-3);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
.story-product-image {
|
|
38
58
|
width: 100%;
|
|
39
|
-
|
|
59
|
+
aspect-ratio: 4/3;
|
|
40
60
|
object-fit: cover;
|
|
41
61
|
border-radius: var(--radius-md);
|
|
42
62
|
}
|
|
43
|
-
.
|
|
63
|
+
.story-product-price {
|
|
44
64
|
font-size: var(--font-size-xl);
|
|
45
65
|
font-weight: var(--font-weight-bold);
|
|
46
|
-
color: var(--color-primary);
|
|
66
|
+
color: var(--color-primary-600);
|
|
47
67
|
}
|
|
48
68
|
</style>
|
|
49
69
|
`;
|
|
50
70
|
|
|
51
71
|
export default {
|
|
52
|
-
title:
|
|
53
|
-
tags: [
|
|
72
|
+
title: "Components/Pds Scrollrow",
|
|
73
|
+
tags: [
|
|
74
|
+
"autodocs",
|
|
75
|
+
"scrollrow",
|
|
76
|
+
"scroll",
|
|
77
|
+
"carousel",
|
|
78
|
+
"horizontal",
|
|
79
|
+
"overflow",
|
|
80
|
+
],
|
|
54
81
|
parameters: {
|
|
55
82
|
pds: {
|
|
56
|
-
tags: [
|
|
83
|
+
tags: [
|
|
84
|
+
"scrollrow",
|
|
85
|
+
"scroll",
|
|
86
|
+
"carousel",
|
|
87
|
+
"horizontal",
|
|
88
|
+
"overflow",
|
|
89
|
+
"pds-scrollrow",
|
|
90
|
+
"layout",
|
|
91
|
+
],
|
|
57
92
|
},
|
|
58
|
-
docs: docsParameters
|
|
59
|
-
}
|
|
93
|
+
docs: docsParameters,
|
|
94
|
+
},
|
|
60
95
|
};
|
|
61
96
|
|
|
62
97
|
export const Default = () => html`
|
|
63
98
|
${scrollrowStoryStyles}
|
|
64
99
|
<pds-scrollrow>
|
|
65
|
-
${Array.from(
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
<
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
100
|
+
${Array.from(
|
|
101
|
+
{ length: 10 },
|
|
102
|
+
(_, i) => html`
|
|
103
|
+
<article class="card story-scrollrow-card stack-sm">
|
|
104
|
+
<h4>Card ${i + 1}</h4>
|
|
105
|
+
<p>This is card content that scrolls horizontally.</p>
|
|
106
|
+
<button class="btn-primary">Action</button>
|
|
107
|
+
</article>
|
|
108
|
+
`
|
|
109
|
+
)}
|
|
72
110
|
</pds-scrollrow>
|
|
73
111
|
`;
|
|
74
112
|
|
|
75
113
|
export const WithImages = () => html`
|
|
76
114
|
${scrollrowStoryStyles}
|
|
77
115
|
<pds-scrollrow>
|
|
78
|
-
${Array.from(
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
116
|
+
${Array.from(
|
|
117
|
+
{ length: 10 },
|
|
118
|
+
(_, i) => html`
|
|
119
|
+
<img
|
|
120
|
+
src="https://picsum.photos/300/200?random=${i}"
|
|
121
|
+
alt="Gallery image ${i + 1}"
|
|
122
|
+
class="story-scrollrow-image"
|
|
123
|
+
/>
|
|
124
|
+
`
|
|
125
|
+
)}
|
|
84
126
|
</pds-scrollrow>
|
|
85
127
|
`;
|
|
86
128
|
|
|
@@ -88,51 +130,161 @@ export const ProductGallery = () => html`
|
|
|
88
130
|
${scrollrowStoryStyles}
|
|
89
131
|
<div class="stack-md">
|
|
90
132
|
<h3>Featured Products</h3>
|
|
91
|
-
<pds-scrollrow snap="start">
|
|
92
|
-
${Array.from(
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
<
|
|
102
|
-
|
|
103
|
-
<
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
133
|
+
<pds-scrollrow snap="start" class="story-product-gallery">
|
|
134
|
+
${Array.from(
|
|
135
|
+
{ length: 8 },
|
|
136
|
+
(_, i) => html`
|
|
137
|
+
<article class="card stack-sm">
|
|
138
|
+
<img
|
|
139
|
+
src="https://picsum.photos/280/200?random=${100 + i}"
|
|
140
|
+
alt="Product ${i + 1}"
|
|
141
|
+
class="story-product-image"
|
|
142
|
+
/>
|
|
143
|
+
<div class="story-product-content">
|
|
144
|
+
<h4>Product ${i + 1}</h4>
|
|
145
|
+
<small class="text-muted"
|
|
146
|
+
>Premium quality product with amazing features.</small
|
|
147
|
+
>
|
|
148
|
+
</div>
|
|
149
|
+
<div class="story-product-footer flex justify-between items-center">
|
|
150
|
+
<span class="story-product-price">$${(i + 1) * 10 + 29}</span>
|
|
151
|
+
<button class="btn-primary btn-sm">
|
|
152
|
+
<pds-icon icon="shopping-cart" size="sm"></pds-icon>
|
|
153
|
+
Add
|
|
154
|
+
</button>
|
|
155
|
+
</div>
|
|
156
|
+
</article>
|
|
157
|
+
`
|
|
158
|
+
)}
|
|
109
159
|
</pds-scrollrow>
|
|
110
160
|
</div>
|
|
111
161
|
`;
|
|
112
162
|
|
|
113
|
-
ProductGallery.storyName =
|
|
163
|
+
ProductGallery.storyName = "Product Gallery";
|
|
114
164
|
|
|
115
165
|
export const UserProfiles = () => html`
|
|
116
166
|
${scrollrowStoryStyles}
|
|
117
167
|
<div class="stack-md">
|
|
118
168
|
<h3>Team Members</h3>
|
|
119
169
|
<pds-scrollrow>
|
|
120
|
-
${Array.from(
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
170
|
+
${Array.from(
|
|
171
|
+
{ length: 12 },
|
|
172
|
+
(_, i) => html`
|
|
173
|
+
<article
|
|
174
|
+
class="card surface-elevated story-scrollrow-card--sm stack-sm text-center"
|
|
175
|
+
>
|
|
176
|
+
<img
|
|
177
|
+
src="https://i.pravatar.cc/150?img=${i + 1}"
|
|
178
|
+
alt="Team member ${i + 1}"
|
|
179
|
+
class="story-scrollrow-avatar"
|
|
180
|
+
/>
|
|
181
|
+
<h4>Team Member ${i + 1}</h4>
|
|
182
|
+
<p><small class="text-muted">Role Title</small></p>
|
|
183
|
+
<button class="btn-outline btn-sm">
|
|
184
|
+
<pds-icon icon="chat-circle" size="sm"></pds-icon>
|
|
185
|
+
Message
|
|
186
|
+
</button>
|
|
187
|
+
</article>
|
|
188
|
+
`
|
|
189
|
+
)}
|
|
190
|
+
</pds-scrollrow>
|
|
191
|
+
</div>
|
|
192
|
+
`;
|
|
193
|
+
|
|
194
|
+
UserProfiles.storyName = "User Profiles";
|
|
195
|
+
|
|
196
|
+
export const CustomStyledButtons = () => html`
|
|
197
|
+
${scrollrowStoryStyles}
|
|
198
|
+
<style>
|
|
199
|
+
.story-scrollrow-custom-buttons::part(prev),
|
|
200
|
+
.story-scrollrow-custom-buttons::part(next) {
|
|
201
|
+
background: rgba(var(--color-primary-rgb), 0.15);
|
|
202
|
+
border: 2px solid var(--color-primary);
|
|
203
|
+
color: var(--color-primary);
|
|
204
|
+
border-radius: var(--radius-full);
|
|
205
|
+
backdrop-filter: blur(4px);
|
|
206
|
+
}
|
|
207
|
+
.story-scrollrow-custom-buttons::part(prev):hover,
|
|
208
|
+
.story-scrollrow-custom-buttons::part(next):hover {
|
|
209
|
+
background: rgba(var(--color-primary-rgb), 0.3);
|
|
210
|
+
}
|
|
211
|
+
</style>
|
|
212
|
+
<div class="stack-md">
|
|
213
|
+
<h3>Outlined Semitransparent Buttons</h3>
|
|
214
|
+
<pds-scrollrow class="story-scrollrow-custom-buttons">
|
|
215
|
+
${Array.from(
|
|
216
|
+
{ length: 10 },
|
|
217
|
+
(_, i) => html`
|
|
218
|
+
<article class="card story-scrollrow-card stack-sm">
|
|
219
|
+
<h4>Card ${i + 1}</h4>
|
|
220
|
+
<p>
|
|
221
|
+
Custom styled navigation buttons with outline and transparency.
|
|
222
|
+
</p>
|
|
223
|
+
<button class="btn-primary">Action</button>
|
|
224
|
+
</article>
|
|
225
|
+
`
|
|
226
|
+
)}
|
|
227
|
+
</pds-scrollrow>
|
|
228
|
+
</div>
|
|
229
|
+
`;
|
|
230
|
+
|
|
231
|
+
CustomStyledButtons.storyName = "Custom Styled Buttons";
|
|
232
|
+
|
|
233
|
+
export const ExternalButtons = () => html`
|
|
234
|
+
${scrollrowStoryStyles}
|
|
235
|
+
<style>
|
|
236
|
+
.story-scrollrow-external::part(prev),
|
|
237
|
+
.story-scrollrow-external::part(next) {
|
|
238
|
+
display: none;
|
|
239
|
+
}
|
|
240
|
+
.story-external-nav-btn {
|
|
241
|
+
background: rgba(var(--color-surface-rgb), 0.8);
|
|
242
|
+
border: 2px solid var(--color-border);
|
|
243
|
+
color: var(--color-text);
|
|
244
|
+
width: 3rem;
|
|
245
|
+
height: 3rem;
|
|
246
|
+
border-radius: var(--radius-full);
|
|
247
|
+
backdrop-filter: blur(4px);
|
|
248
|
+
cursor: pointer;
|
|
249
|
+
transition: all 0.2s ease;
|
|
250
|
+
}
|
|
251
|
+
.story-external-nav-btn:hover {
|
|
252
|
+
background: var(--color-primary);
|
|
253
|
+
border-color: var(--color-primary);
|
|
254
|
+
color: var(--color-on-primary);
|
|
255
|
+
}
|
|
256
|
+
</style>
|
|
257
|
+
<div class="stack-sm">
|
|
258
|
+
<h3>External Navigation Buttons</h3>
|
|
259
|
+
<pds-scrollrow class="story-scrollrow-external">
|
|
260
|
+
${Array.from(
|
|
261
|
+
{ length: 10 },
|
|
262
|
+
(_, i) => html`
|
|
263
|
+
<article class="card story-scrollrow-card stack-sm">
|
|
264
|
+
<h4>Card ${i + 1}</h4>
|
|
265
|
+
<p>Navigation buttons are below the scroll area.</p>
|
|
266
|
+
<button class="btn-secondary">Details</button>
|
|
267
|
+
</article>
|
|
268
|
+
`
|
|
269
|
+
)}
|
|
134
270
|
</pds-scrollrow>
|
|
271
|
+
<div class="flex justify-center gap-md">
|
|
272
|
+
<button
|
|
273
|
+
class="story-external-nav-btn"
|
|
274
|
+
part="prev"
|
|
275
|
+
onclick="this.closest('.stack-sm').querySelector('pds-scrollrow').doPage({currentTarget: this})"
|
|
276
|
+
>
|
|
277
|
+
<pds-icon icon="caret-left"></pds-icon>
|
|
278
|
+
</button>
|
|
279
|
+
<button
|
|
280
|
+
class="story-external-nav-btn"
|
|
281
|
+
part="next"
|
|
282
|
+
onclick="this.closest('.stack-sm').querySelector('pds-scrollrow').doPage({currentTarget: this})"
|
|
283
|
+
>
|
|
284
|
+
<pds-icon icon="caret-right"></pds-icon>
|
|
285
|
+
</button>
|
|
286
|
+
</div>
|
|
135
287
|
</div>
|
|
136
288
|
`;
|
|
137
289
|
|
|
138
|
-
|
|
290
|
+
ExternalButtons.storyName = "External Buttons";
|
|
@@ -16,24 +16,59 @@ if (typeof window !== 'undefined') {
|
|
|
16
16
|
});
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
//
|
|
19
|
+
// Story-specific styles for split panel demos
|
|
20
20
|
const splitpanelStoryStyles = html`
|
|
21
21
|
<style>
|
|
22
22
|
pds-splitpanel.card {
|
|
23
23
|
padding: 0;
|
|
24
24
|
}
|
|
25
25
|
[slot="left"], [slot="right"] { padding: var(--spacing-2); }
|
|
26
|
-
.splitpanel-console {
|
|
26
|
+
.story-splitpanel-console {
|
|
27
27
|
background: #1e1e1e;
|
|
28
28
|
color: #d4d4d4;
|
|
29
|
-
& .cmd { color: #4ec9b0; }
|
|
30
|
-
& .meta { color: #6a9955; }
|
|
29
|
+
& .story-cmd { color: #4ec9b0; }
|
|
30
|
+
& .story-meta { color: #6a9955; }
|
|
31
31
|
}
|
|
32
|
-
.splitpanel-stat {
|
|
32
|
+
.story-splitpanel-stat {
|
|
33
33
|
font-size: 2.5rem;
|
|
34
34
|
font-weight: 700;
|
|
35
35
|
margin: var(--spacing-2) 0;
|
|
36
36
|
}
|
|
37
|
+
/* Violations fixed */
|
|
38
|
+
.story-label-uppercase {
|
|
39
|
+
font-size: var(--font-size-xs);
|
|
40
|
+
text-transform: uppercase;
|
|
41
|
+
letter-spacing: 0.08em;
|
|
42
|
+
}
|
|
43
|
+
.story-label-sm {
|
|
44
|
+
font-size: var(--font-size-sm);
|
|
45
|
+
}
|
|
46
|
+
.story-code-block {
|
|
47
|
+
padding: var(--spacing-3);
|
|
48
|
+
border-radius: var(--radius-md);
|
|
49
|
+
font-family: var(--font-family-mono);
|
|
50
|
+
font-size: 0.875rem;
|
|
51
|
+
overflow: auto;
|
|
52
|
+
background: var(--surface-bg-secondary);
|
|
53
|
+
}
|
|
54
|
+
.story-console {
|
|
55
|
+
padding: var(--spacing-3);
|
|
56
|
+
border-radius: var(--radius-md);
|
|
57
|
+
font-family: var(--font-family-mono);
|
|
58
|
+
}
|
|
59
|
+
.story-nav-btn {
|
|
60
|
+
justify-content: flex-start;
|
|
61
|
+
}
|
|
62
|
+
.story-activity-item {
|
|
63
|
+
padding: var(--spacing-2);
|
|
64
|
+
border-radius: var(--radius-sm);
|
|
65
|
+
}
|
|
66
|
+
.story-alert-list {
|
|
67
|
+
margin-top: var(--spacing-2);
|
|
68
|
+
}
|
|
69
|
+
.story-alert-margin {
|
|
70
|
+
margin-bottom: var(--spacing-4);
|
|
71
|
+
}
|
|
37
72
|
</style>
|
|
38
73
|
`;
|
|
39
74
|
|
|
@@ -54,7 +89,7 @@ export const Default = () => html`
|
|
|
54
89
|
<div slot="left" class="stack-md">
|
|
55
90
|
<div class="stack-sm">
|
|
56
91
|
<div>
|
|
57
|
-
<p class="text-muted
|
|
92
|
+
<p class="text-muted story-label-uppercase">Leadership Sync</p>
|
|
58
93
|
<h3>Q4 Roadmap Planning</h3>
|
|
59
94
|
<p class="text-muted">Monday, 2:00 PM • Conference Room Aurora</p>
|
|
60
95
|
</div>
|
|
@@ -137,7 +172,7 @@ export const CodeEditorLayout = () => html`
|
|
|
137
172
|
<div slot="left" class="stack-md">
|
|
138
173
|
<h3>Code Editor</h3>
|
|
139
174
|
|
|
140
|
-
<pre
|
|
175
|
+
<pre class="story-code-block"><code>function greet(name) {
|
|
141
176
|
console.log('Hello, ' + name + '!');
|
|
142
177
|
}
|
|
143
178
|
|
|
@@ -158,10 +193,10 @@ greet('World');</code></pre>
|
|
|
158
193
|
<div slot="right" class="stack-md">
|
|
159
194
|
<h3>Output Console</h3>
|
|
160
195
|
|
|
161
|
-
<div class="splitpanel-console stack-xs
|
|
162
|
-
<div class="cmd">$ node script.js</div>
|
|
196
|
+
<div class="story-splitpanel-console stack-xs story-console">
|
|
197
|
+
<div class="story-cmd">$ node script.js</div>
|
|
163
198
|
<div>Hello, World!</div>
|
|
164
|
-
<div class="meta">// Execution completed in 0.23s</div>
|
|
199
|
+
<div class="story-meta">// Execution completed in 0.23s</div>
|
|
165
200
|
</div>
|
|
166
201
|
</div>
|
|
167
202
|
</pds-splitpanel>
|
|
@@ -176,19 +211,19 @@ export const DashboardLayout = () => html`
|
|
|
176
211
|
<h3>Navigation</h3>
|
|
177
212
|
|
|
178
213
|
<nav class="stack-sm">
|
|
179
|
-
<button class="btn-outline
|
|
214
|
+
<button class="btn-outline story-nav-btn">
|
|
180
215
|
<pds-icon icon="house"></pds-icon>
|
|
181
216
|
Dashboard
|
|
182
217
|
</button>
|
|
183
|
-
<button class="btn-outline
|
|
218
|
+
<button class="btn-outline story-nav-btn">
|
|
184
219
|
<pds-icon icon="bar-chart"></pds-icon>
|
|
185
220
|
Analytics
|
|
186
221
|
</button>
|
|
187
|
-
<button class="btn-outline
|
|
222
|
+
<button class="btn-outline story-nav-btn">
|
|
188
223
|
<pds-icon icon="users"></pds-icon>
|
|
189
224
|
Users
|
|
190
225
|
</button>
|
|
191
|
-
<button class="btn-outline
|
|
226
|
+
<button class="btn-outline story-nav-btn">
|
|
192
227
|
<pds-icon icon="gear"></pds-icon>
|
|
193
228
|
Settings
|
|
194
229
|
</button>
|
|
@@ -201,20 +236,20 @@ export const DashboardLayout = () => html`
|
|
|
201
236
|
<div class="grid grid-auto-sm gap-md">
|
|
202
237
|
<div>
|
|
203
238
|
<h4>Total Users</h4>
|
|
204
|
-
<div class="splitpanel-stat text-primary">1,284</div>
|
|
205
|
-
<p class="text-muted
|
|
239
|
+
<div class="story-splitpanel-stat text-primary">1,284</div>
|
|
240
|
+
<p class="text-muted story-label-sm">↑ 12% from last month</p>
|
|
206
241
|
</div>
|
|
207
242
|
|
|
208
243
|
<div>
|
|
209
244
|
<h4>Revenue</h4>
|
|
210
|
-
<div class="splitpanel-stat text-secondary">$42.5K</div>
|
|
211
|
-
<p class="text-muted
|
|
245
|
+
<div class="story-splitpanel-stat text-secondary">$42.5K</div>
|
|
246
|
+
<p class="text-muted story-label-sm">↑ 8% from last month</p>
|
|
212
247
|
</div>
|
|
213
248
|
|
|
214
249
|
<div>
|
|
215
250
|
<h4>Active Now</h4>
|
|
216
|
-
<div class="splitpanel-stat text-accent">127</div>
|
|
217
|
-
<p class="text-muted
|
|
251
|
+
<div class="story-splitpanel-stat text-accent">127</div>
|
|
252
|
+
<p class="text-muted story-label-sm">Current active users</p>
|
|
218
253
|
</div>
|
|
219
254
|
</div>
|
|
220
255
|
|
|
@@ -222,13 +257,13 @@ export const DashboardLayout = () => html`
|
|
|
222
257
|
<h3>Recent Activity</h3>
|
|
223
258
|
<div class="stack-sm">
|
|
224
259
|
${Array.from({ length: 5 }, (_, i) => html`
|
|
225
|
-
<div class="flex items-center gap-md
|
|
260
|
+
<div class="flex items-center gap-md story-activity-item">
|
|
226
261
|
<pds-icon icon="user"></pds-icon>
|
|
227
262
|
<div class="grow stack-xs">
|
|
228
263
|
<strong>User ${i + 1}</strong>
|
|
229
|
-
<span class="text-muted
|
|
264
|
+
<span class="text-muted story-label-sm">Completed an action</span>
|
|
230
265
|
</div>
|
|
231
|
-
<span class="text-muted
|
|
266
|
+
<span class="text-muted story-label-sm">${i + 1}h ago</span>
|
|
232
267
|
</div>
|
|
233
268
|
`)}
|
|
234
269
|
</div>
|
|
@@ -249,7 +284,7 @@ export const StyledToggle = () => html`
|
|
|
249
284
|
}
|
|
250
285
|
</style>
|
|
251
286
|
|
|
252
|
-
<div class="alert alert-info
|
|
287
|
+
<div class="alert alert-info story-alert-margin">
|
|
253
288
|
<div class="alert-icon">
|
|
254
289
|
<pds-icon icon="info" class="icon-info" size="lg"></pds-icon>
|
|
255
290
|
</div>
|
|
@@ -263,15 +298,15 @@ export const StyledToggle = () => html`
|
|
|
263
298
|
<div slot="left" class="stack-md">
|
|
264
299
|
<h3>Mobile Menu</h3>
|
|
265
300
|
<nav class="stack-sm">
|
|
266
|
-
<button class="btn-outline
|
|
301
|
+
<button class="btn-outline story-nav-btn">
|
|
267
302
|
<pds-icon icon="house"></pds-icon>
|
|
268
303
|
Home
|
|
269
304
|
</button>
|
|
270
|
-
<button class="btn-outline
|
|
305
|
+
<button class="btn-outline story-nav-btn">
|
|
271
306
|
<pds-icon icon="user"></pds-icon>
|
|
272
307
|
Profile
|
|
273
308
|
</button>
|
|
274
|
-
<button class="btn-outline
|
|
309
|
+
<button class="btn-outline story-nav-btn">
|
|
275
310
|
<pds-icon icon="gear"></pds-icon>
|
|
276
311
|
Settings
|
|
277
312
|
</button>
|
|
@@ -329,7 +364,7 @@ export const StyledSplitter = () => html`
|
|
|
329
364
|
<div>
|
|
330
365
|
<div class="alert-title">Styling the Splitter with ::part()</div>
|
|
331
366
|
<p>The splitter bar can be fully customized using the <code>::part(splitter)</code> CSS selector. This allows you to style:</p>
|
|
332
|
-
<ul class="stack-xs
|
|
367
|
+
<ul class="stack-xs story-alert-list">
|
|
333
368
|
<li><code>background-color</code> or <code>background</code> (for gradients)</li>
|
|
334
369
|
<li><code>width</code> (horizontal) or <code>height</code> (vertical)</li>
|
|
335
370
|
<li><code>:hover</code> state styling</li>
|
|
@@ -20,18 +20,18 @@ if (typeof window !== 'undefined') {
|
|
|
20
20
|
const tabstripStoryStyles = html`
|
|
21
21
|
<style>
|
|
22
22
|
/* Progress bar visualization - demo-specific */
|
|
23
|
-
.tabstrip-bar-track {
|
|
23
|
+
.story-tabstrip-bar-track {
|
|
24
24
|
height: 8px;
|
|
25
25
|
background: var(--surface-elevated);
|
|
26
26
|
border-radius: var(--radius-full);
|
|
27
27
|
overflow: hidden;
|
|
28
28
|
}
|
|
29
|
-
.tabstrip-bar-fill {
|
|
29
|
+
.story-tabstrip-bar-fill {
|
|
30
30
|
height: 100%;
|
|
31
31
|
border-radius: inherit;
|
|
32
32
|
}
|
|
33
33
|
/* Large stat values - demo-specific typography */
|
|
34
|
-
.tabstrip-stat-value {
|
|
34
|
+
.story-tabstrip-stat-value {
|
|
35
35
|
font-size: var(--font-size-4xl);
|
|
36
36
|
font-weight: var(--font-weight-bold);
|
|
37
37
|
}
|
|
@@ -185,8 +185,8 @@ export const Default = () => html`
|
|
|
185
185
|
<span>${source.label}</span>
|
|
186
186
|
<strong>${source.value}</strong>
|
|
187
187
|
</div>
|
|
188
|
-
<div class="tabstrip-bar-track">
|
|
189
|
-
<div class="tabstrip-bar-fill" style="width: ${source.width}; background: ${source.colorVar}"></div>
|
|
188
|
+
<div class="story-tabstrip-bar-track">
|
|
189
|
+
<div class="story-tabstrip-bar-fill" style="width: ${source.width}; background: ${source.colorVar}"></div>
|
|
190
190
|
</div>
|
|
191
191
|
</div>
|
|
192
192
|
`
|
|
@@ -216,7 +216,7 @@ export const Default = () => html`
|
|
|
216
216
|
<h4>General Settings</h4>
|
|
217
217
|
<div class="stack-sm">
|
|
218
218
|
<label>
|
|
219
|
-
<span>Product Name</span>
|
|
219
|
+
<span data-label>Product Name</span>
|
|
220
220
|
<input
|
|
221
221
|
type="text"
|
|
222
222
|
value="My Awesome Product"
|
|
@@ -225,7 +225,7 @@ export const Default = () => html`
|
|
|
225
225
|
</label>
|
|
226
226
|
|
|
227
227
|
<label>
|
|
228
|
-
<span>Product Category</span>
|
|
228
|
+
<span data-label>Product Category</span>
|
|
229
229
|
<select>
|
|
230
230
|
${tabstripCategories.map(
|
|
231
231
|
(category) => html`<option>${category}</option>`
|
|
@@ -220,11 +220,11 @@ export const SingleExpandAccordion = () => html`
|
|
|
220
220
|
<div class="card stack-md" role="region" aria-labelledby="set1">
|
|
221
221
|
<form method="post" action="#">
|
|
222
222
|
<label>
|
|
223
|
-
<span>Display Name</span>
|
|
223
|
+
<span data-label>Display Name</span>
|
|
224
224
|
<input type="text" value="John Doe" placeholder="Enter your display name" />
|
|
225
225
|
</label>
|
|
226
226
|
<label>
|
|
227
|
-
<span>Email</span>
|
|
227
|
+
<span data-label>Email</span>
|
|
228
228
|
<div class="input-icon">
|
|
229
229
|
<pds-icon icon="envelope"></pds-icon>
|
|
230
230
|
<input type="email" value="john@example.com" placeholder="your.email@example.com" />
|