@repobit/dex-system-design 0.22.12 → 0.23.2

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 (39) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/package.json +4 -3
  3. package/src/components/Button/button.stories.js +292 -120
  4. package/src/components/accordion/accordion-bg.css.js +7 -2
  5. package/src/components/accordion/accordion-bg.stories.js +268 -449
  6. package/src/components/accordion/accordion.stories.js +259 -265
  7. package/src/components/anchor/anchor.stories.js +160 -159
  8. package/src/components/awards/awards-icon.js +44 -0
  9. package/src/components/awards/awards.css.js +328 -0
  10. package/src/components/awards/awards.js +224 -0
  11. package/src/components/awards/awards.stories.js +447 -0
  12. package/src/components/back/back.stories.js +100 -375
  13. package/src/components/badge/badge.stories.js +241 -129
  14. package/src/components/breadcrumb/breadcrumb.stories.js +218 -219
  15. package/src/components/cards/card.stories.js +174 -622
  16. package/src/components/carousel/carousel.stories.js +196 -225
  17. package/src/components/checkbox/checkbox.stories.js +136 -51
  18. package/src/components/compare/compare.css.js +237 -0
  19. package/src/components/compare/compare.js +253 -0
  20. package/src/components/compare/compare.stories.js +372 -0
  21. package/src/components/display/display.stories.js +91 -297
  22. package/src/components/divider/divider.stories.js +160 -342
  23. package/src/components/footer/footer.stories.js +177 -402
  24. package/src/components/header/header.stories.js +130 -338
  25. package/src/components/heading/heading.js +8 -5
  26. package/src/components/heading/heading.stories.js +162 -471
  27. package/src/components/highlight/highlight.stories.js +153 -38
  28. package/src/components/image/image.stories.js +135 -563
  29. package/src/components/input/custom-form.stories.js +761 -224
  30. package/src/components/link/link.js +29 -12
  31. package/src/components/link/link.stories.js +130 -468
  32. package/src/components/modal/modal.stories.js +174 -28
  33. package/src/components/paragraph/paragraph.css.js +10 -1
  34. package/src/components/paragraph/paragraph.stories.js +85 -410
  35. package/src/components/picture/picture.stories.js +147 -561
  36. package/src/components/radio/radio.stories.js +230 -81
  37. package/src/components/tabs/tabs.stories.js +126 -10
  38. package/src/components/termsOfUse/terms.stories.js +223 -8
  39. package/src/tokens/tokens.js +1 -0
@@ -3,382 +3,200 @@ import './divider-horizontal.js';
3
3
  import './divider-vertical.js';
4
4
 
5
5
  export default {
6
- title : 'Atoms/Divider',
7
- tags : ['autodocs'],
6
+ title : 'Components/Divider',
7
+ tags : ['autodocs'],
8
+ parameters: {
9
+ docs: {
10
+ description: {
11
+ component: `
12
+ Two divider components are available:
13
+
14
+ - \`<bd-divider-horizontal>\` — a horizontal \`<hr>\` line with configurable width, color, and opacity
15
+ - \`<bd-divider-vertical>\` — a vertical \`<div>\` line with configurable height, thickness, color, and opacity
16
+
17
+ ### Usage
18
+ \`\`\`html
19
+ <bd-divider-horizontal width="100%" color="#026DFF" opacity="0.5"></bd-divider-horizontal>
20
+ <bd-divider-vertical height="24px" thickness="2px" color="#E53935" opacity="1"></bd-divider-vertical>
21
+ \`\`\`
22
+ `
23
+ }
24
+ }
25
+ },
8
26
  argTypes: {
9
- // Common props
10
- component: {
11
- control : { type: 'select' },
12
- options : ['horizontal', 'vertical'],
13
- description: 'Which divider to render'
27
+ width: {
28
+ control : 'text',
29
+ description: '(Horizontal) Width of the line e.g. "100%", "200px"',
30
+ table : { type: { summary: 'string' }, defaultValue: { summary: '' }, category: 'Horizontal' }
14
31
  },
15
- color: {
32
+ hColor: {
16
33
  control : 'color',
17
- description: 'Color of the divider line'
18
- },
19
- opacity: {
20
- control : { type: 'range', min: 0, max: 1, step: 0.1 },
21
- description: 'Opacity of the divider (0 = transparent, 1 = opaque)'
34
+ description: '(Horizontal) Border color',
35
+ table : { type: { summary: 'string' }, defaultValue: { summary: 'var(--color-neutral-400)' }, category: 'Horizontal' }
22
36
  },
23
-
24
- // Horizontal divider props
25
- width: {
37
+ hOpacity: {
26
38
  control : 'text',
27
- if : { arg: 'component', eq: 'horizontal' },
28
- description: 'Width of the horizontal divider (e.g. 100%, 200px)'
39
+ description: '(Horizontal) Opacity value between 0 and 1',
40
+ table : { type: { summary: 'string' }, defaultValue: { summary: '0.25' }, category: 'Horizontal' }
29
41
  },
30
-
31
- // Vertical divider props
32
42
  height: {
33
43
  control : 'text',
34
- if : { arg: 'component', eq: 'vertical' },
35
- description: 'Height of the vertical divider (e.g. 100%, 40px)'
44
+ description: '(Vertical) Height of the divider e.g. "15px"',
45
+ table : { type: { summary: 'string' }, defaultValue: { summary: '15px' }, category: 'Vertical' }
36
46
  },
37
47
  thickness: {
38
48
  control : 'text',
39
- if : { arg: 'component', eq: 'vertical' },
40
- description: 'Thickness (visual width) of the vertical divider (e.g. 1px, 4px)'
41
- }
42
- },
43
- args: {
44
- component: 'horizontal',
45
- width : '100%',
46
- height : '100px',
47
- thickness: '1px',
48
- color : 'var(--color-neutral-400)',
49
- opacity : 1.0
50
- }
51
- };
52
-
53
- const Template = ({ component, width, height, thickness, color, opacity }) => {
54
- return component === 'horizontal'
55
- ? html`<bd-divider-horizontal
56
- .width=${width}
57
- .color=${color}
58
- .opacity=${opacity}
59
- ></bd-divider-horizontal>`
60
- : html`<bd-divider-vertical
61
- .height=${height}
62
- .thickness=${thickness}
63
- .color=${color}
64
- .opacity=${opacity}
65
- ></bd-divider-vertical>`;
66
- };
67
-
68
- // ============ HORIZONTAL DIVIDERS ============
69
-
70
- export const Default = Template.bind({});
71
- Default.args = {
72
- component: 'horizontal',
73
- width : '100%',
74
- color : 'var(--color-neutral-400)',
75
- opacity : 1.0
76
- };
77
- Default.parameters = {
78
- docs: {
79
- description: {
80
- story: 'Default horizontal divider with full width and neutral color.'
81
- }
82
- }
83
- };
84
-
85
- export const HorizontalCustomWidth = Template.bind({});
86
- HorizontalCustomWidth.args = {
87
- component: 'horizontal',
88
- width : '200px',
89
- color : 'var(--color-neutral-400)',
90
- opacity : 1.0
91
- };
92
- HorizontalCustomWidth.parameters = {
93
- docs: {
94
- description: {
95
- story: 'Horizontal divider with custom width (200px). Useful for creating shorter divider lines.'
49
+ description: '(Vertical) Width/thickness of the line e.g. "1px"',
50
+ table : { type: { summary: 'string' }, defaultValue: { summary: '1px' }, category: 'Vertical' }
51
+ },
52
+ vColor: {
53
+ control : 'color',
54
+ description: '(Vertical) Background color of the divider div',
55
+ table : { type: { summary: 'string' }, defaultValue: { summary: 'var(--color-neutral-400)' }, category: 'Vertical' }
56
+ },
57
+ vOpacity: {
58
+ control : 'text',
59
+ description: '(Vertical) Opacity value between 0 and 1',
60
+ table : { type: { summary: 'string' }, defaultValue: { summary: '1.00' }, category: 'Vertical' }
96
61
  }
97
62
  }
98
63
  };
99
64
 
100
- export const HorizontalCustomColor = Template.bind({});
101
- HorizontalCustomColor.args = {
102
- component: 'horizontal',
103
- width : '100%',
104
- color : '#3b82f6',
105
- opacity : 1.0
106
- };
107
- HorizontalCustomColor.parameters = {
108
- docs: {
109
- description: {
110
- story: 'Horizontal divider with custom blue color. Can be used to match brand colors or create visual emphasis.'
111
- }
112
- }
113
- };
65
+ // ─── Horizontal Stories ────────────────────────────────────────────────────
114
66
 
115
- export const HorizontalFaded = Template.bind({});
116
- HorizontalFaded.args = {
117
- component: 'horizontal',
118
- width : '100%',
119
- color : 'var(--color-neutral-400)',
120
- opacity : 0.5
121
- };
122
- HorizontalFaded.parameters = {
123
- docs: {
124
- description: {
125
- story: 'Horizontal divider with reduced opacity (50%) for a subtle, faded appearance.'
126
- }
127
- }
67
+ export const HorizontalDefault = {
68
+ name : 'Horizontal — Default',
69
+ render : () => html`<bd-divider-horizontal></bd-divider-horizontal>`,
70
+ parameters: { docs: { description: { story: 'Default horizontal divider with default color and 0.25 opacity.' } } }
128
71
  };
129
72
 
130
- // ============ VERTICAL DIVIDERS ============
131
-
132
- export const VerticalDefault = Template.bind({});
133
- VerticalDefault.args = {
134
- component: 'vertical',
135
- height : '100px',
136
- thickness: '1px',
137
- color : 'var(--color-neutral-400)',
138
- opacity : 1.0
139
- };
140
- VerticalDefault.parameters = {
141
- docs: {
142
- description: {
143
- story: 'Default vertical divider with standard height and thickness.'
144
- }
145
- }
73
+ export const HorizontalFullWidth = {
74
+ name : 'Horizontal — Full Width',
75
+ render : () => html`<bd-divider-horizontal width="100%"></bd-divider-horizontal>`,
76
+ parameters: { docs: { description: { story: 'Full-width horizontal divider.' } } }
146
77
  };
147
78
 
148
- export const VerticalThick = Template.bind({});
149
- VerticalThick.args = {
150
- component: 'vertical',
151
- height : '100px',
152
- thickness: '4px',
153
- color : 'var(--color-neutral-400)',
154
- opacity : 1.0
155
- };
156
- VerticalThick.parameters = {
157
- docs: {
158
- description: {
159
- story: 'Vertical divider with increased thickness (4px) for more visual weight.'
160
- }
161
- }
79
+ export const HorizontalCustomColor = {
80
+ name : 'Horizontal — Custom Color',
81
+ render: () => html`
82
+ <div style="display:flex; flex-direction:column; gap:16px;">
83
+ <bd-divider-horizontal width="100%" color="#026DFF" opacity="1"></bd-divider-horizontal>
84
+ <bd-divider-horizontal width="100%" color="#E53935" opacity="1"></bd-divider-horizontal>
85
+ <bd-divider-horizontal width="100%" color="white" opacity="1" style="background:#333; padding:4px;"></bd-divider-horizontal>
86
+ </div>
87
+ `,
88
+ parameters: { docs: { description: { story: 'Horizontal dividers with custom color values at full opacity.' } } }
89
+ };
90
+
91
+ export const HorizontalOpacities = {
92
+ name : 'Horizontal — Opacity Variants',
93
+ render: () => html`
94
+ <div style="display:flex; flex-direction:column; gap:12px;">
95
+ <bd-divider-horizontal width="100%" color="#026DFF" opacity="1"></bd-divider-horizontal>
96
+ <bd-divider-horizontal width="100%" color="#026DFF" opacity="0.5"></bd-divider-horizontal>
97
+ <bd-divider-horizontal width="100%" color="#026DFF" opacity="0.25"></bd-divider-horizontal>
98
+ <bd-divider-horizontal width="100%" color="#026DFF" opacity="0.1"></bd-divider-horizontal>
99
+ </div>
100
+ `,
101
+ parameters: { docs: { description: { story: 'Four opacity levels: 1, 0.5, 0.25, 0.1.' } } }
162
102
  };
163
103
 
164
- export const VerticalTall = Template.bind({});
165
- VerticalTall.args = {
166
- component: 'vertical',
167
- height : '200px',
168
- thickness: '2px',
169
- color : 'var(--color-neutral-400)',
170
- opacity : 1.0
171
- };
172
- VerticalTall.parameters = {
173
- docs: {
174
- description: {
175
- story: 'Tall vertical divider (200px) suitable for sidebar separators or tall content sections.'
176
- }
177
- }
104
+ export const HorizontalFixedWidth = {
105
+ name : 'Horizontal — Fixed Width',
106
+ render : () => html`<bd-divider-horizontal width="200px" color="#026DFF" opacity="1"></bd-divider-horizontal>`,
107
+ parameters: { docs: { description: { story: 'Horizontal divider with a fixed pixel width of 200px.' } } }
178
108
  };
179
109
 
180
- export const VerticalBrandColor = Template.bind({});
181
- VerticalBrandColor.args = {
182
- component: 'vertical',
183
- height : '100px',
184
- thickness: '2px',
185
- color : '#8b5cf6',
186
- opacity : 1.0
187
- };
188
- VerticalBrandColor.parameters = {
189
- docs: {
190
- description: {
191
- story: 'Vertical divider with brand purple color for consistent theming.'
192
- }
193
- }
194
- };
110
+ // ─── Vertical Stories ──────────────────────────────────────────────────────
195
111
 
196
- export const VerticalSubtle = Template.bind({});
197
- VerticalSubtle.args = {
198
- component: 'vertical',
199
- height : '100px',
200
- thickness: '1px',
201
- color : 'var(--color-neutral-400)',
202
- opacity : 0.3
203
- };
204
- VerticalSubtle.parameters = {
205
- docs: {
206
- description: {
207
- story: 'Subtle vertical divider with low opacity (30%) for minimal visual intrusion.'
208
- }
209
- }
112
+ export const VerticalDefault = {
113
+ name : 'Vertical — Default',
114
+ render: () => html`
115
+ <div style="display:flex; align-items:center; gap:8px; height:40px;">
116
+ <span>Left</span>
117
+ <bd-divider-vertical></bd-divider-vertical>
118
+ <span>Right</span>
119
+ </div>
120
+ `,
121
+ parameters: { docs: { description: { story: 'Default vertical divider between two text elements.' } } }
122
+ };
123
+
124
+ export const VerticalCustomHeight = {
125
+ name : 'Vertical — Custom Height',
126
+ render: () => html`
127
+ <div style="display:flex; align-items:center; gap:8px; height:60px;">
128
+ <span>Home</span>
129
+ <bd-divider-vertical height="40px"></bd-divider-vertical>
130
+ <span>Products</span>
131
+ <bd-divider-vertical height="40px"></bd-divider-vertical>
132
+ <span>Contact</span>
133
+ </div>
134
+ `,
135
+ parameters: { docs: { description: { story: 'Vertical dividers with 40px height between nav-like items.' } } }
210
136
  };
211
137
 
212
- // ============ SHOWCASE EXAMPLES ============
213
-
214
- export const AllHorizontalVariants = () => html`
215
- <div style="display: flex; flex-direction: column; gap: 2rem; max-width: 600px; margin: 0 auto; padding: 2rem;">
216
- <bd-h as="h3" style="margin-bottom: 1rem;">Horizontal Divider Variants</bd-h>
217
-
218
- <div style="display: flex; flex-direction: column; gap: 1rem;">
219
- <div>
220
- <bd-p kind="small" style="margin-bottom: 0.5rem;">Default (100% width)</bd-p>
221
- <bd-divider-horizontal></bd-divider-horizontal>
222
- </div>
223
-
224
- <div>
225
- <bd-p kind="small" style="margin-bottom: 0.5rem;">Custom Width (200px)</bd-p>
226
- <bd-divider-horizontal width="200px"></bd-divider-horizontal>
227
- </div>
228
-
229
- <div>
230
- <bd-p kind="small" style="margin-bottom: 0.5rem;">Brand Color</bd-p>
231
- <bd-divider-horizontal color="#3b82f6"></bd-divider-horizontal>
232
- </div>
233
-
234
- <div>
235
- <bd-p kind="small" style="margin-bottom: 0.5rem;">Faded (50% opacity)</bd-p>
236
- <bd-divider-horizontal opacity="0.5"></bd-divider-horizontal>
237
- </div>
238
-
239
- <div>
240
- <bd-p kind="small" style="margin-bottom: 0.5rem;">Thick Red</bd-p>
241
- <bd-divider-horizontal color="#ef4444" opacity="0.8"></bd-divider-horizontal>
242
- </div>
138
+ export const VerticalCustomThickness = {
139
+ name : 'Vertical — Custom Thickness',
140
+ render: () => html`
141
+ <div style="display:flex; align-items:center; gap:16px; height:40px;">
142
+ <bd-divider-vertical height="30px" thickness="1px" color="#026DFF" opacity="1"></bd-divider-vertical>
143
+ <bd-divider-vertical height="30px" thickness="2px" color="#026DFF" opacity="1"></bd-divider-vertical>
144
+ <bd-divider-vertical height="30px" thickness="4px" color="#026DFF" opacity="1"></bd-divider-vertical>
243
145
  </div>
244
- </div>
245
- `;
246
- AllHorizontalVariants.parameters = {
247
- docs: {
248
- description: {
249
- story: 'Collection of different horizontal divider variants showing various width, color, and opacity combinations.'
250
- }
251
- }
146
+ `,
147
+ parameters: { docs: { description: { story: 'Three thickness values: 1px, 2px, 4px.' } } }
252
148
  };
253
149
 
254
- export const AllVerticalVariants = () => html`
255
- <div style="display: flex; gap: 3rem; align-items: center; max-width: 800px; margin: 0 auto; padding: 2rem;">
256
- <bd-h as="h3" style="margin-bottom: 1rem;">Vertical Divider Variants</bd-h>
257
-
258
- <div style="display: flex; gap: 2rem; align-items: center;">
259
- <div style="display: flex; flex-direction: column; align-items: center; gap: 1rem;">
260
- <bd-p kind="small">Default</bd-p>
261
- <bd-divider-vertical></bd-divider-vertical>
262
- </div>
263
-
264
- <div style="display: flex; flex-direction: column; align-items: center; gap: 1rem;">
265
- <bd-p kind="small">Thick (4px)</bd-p>
266
- <bd-divider-vertical thickness="4px"></bd-divider-vertical>
267
- </div>
268
-
269
- <div style="display: flex; flex-direction: column; align-items: center; gap: 1rem;">
270
- <bd-p kind="small">Brand Color</bd-p>
271
- <bd-divider-vertical color="#8b5cf6" thickness="2px"></bd-divider-vertical>
272
- </div>
273
-
274
- <div style="display: flex; flex-direction: column; align-items: center; gap: 1rem;">
275
- <bd-p kind="small">Subtle (30%)</bd-p>
276
- <bd-divider-vertical opacity="0.3"></bd-divider-vertical>
277
- </div>
278
-
279
- <div style="display: flex; flex-direction: column; align-items: center; gap: 1rem;">
280
- <bd-p kind="small">Tall (150px)</bd-p>
281
- <bd-divider-vertical height="150px"></bd-divider-vertical>
282
- </div>
150
+ export const VerticalCustomColor = {
151
+ name : 'Vertical Custom Color',
152
+ render: () => html`
153
+ <div style="display:flex; align-items:center; gap:16px; height:40px;">
154
+ <bd-divider-vertical height="30px" thickness="2px" color="#026DFF" opacity="1"></bd-divider-vertical>
155
+ <bd-divider-vertical height="30px" thickness="2px" color="#E53935" opacity="1"></bd-divider-vertical>
156
+ <bd-divider-vertical height="30px" thickness="2px" color="#43A047" opacity="1"></bd-divider-vertical>
283
157
  </div>
284
- </div>
285
- `;
286
- AllVerticalVariants.parameters = {
287
- docs: {
288
- description: {
289
- story: 'Collection of different vertical divider variants showing various height, thickness, color, and opacity combinations.'
290
- }
291
- }
158
+ `,
159
+ parameters: { docs: { description: { story: 'Blue, red, and green vertical dividers.' } } }
292
160
  };
293
161
 
294
- export const UsageExamples = () => html`
295
- <div style="max-width: 800px; margin: 0 auto; padding: 2rem;">
296
- <bd-h as="h2" style="margin-bottom: 2rem;">Practical Usage Examples</bd-h>
297
-
298
- <!-- Example 1: Content sections with horizontal dividers -->
299
- <div style="margin-bottom: 3rem;">
300
- <bd-h as="h3" style="margin-bottom: 1rem;">Content Sections</bd-h>
301
- <div style="display: flex; flex-direction: column; gap: 2rem;">
302
- <div>
303
- <bd-h as="h4">Section 1</bd-h>
304
- <bd-p kind="regular">This is the first content section with some sample text.</bd-p>
305
- </div>
306
-
307
- <bd-divider-horizontal opacity="0.3"></bd-divider-horizontal>
308
-
309
- <div>
310
- <bd-h as="h4">Section 2</bd-h>
311
- <bd-p kind="regular">This is the second content section separated by a subtle divider.</bd-p>
312
- </div>
313
-
314
- <bd-divider-horizontal color="#3b82f6" opacity="0.6"></bd-divider-horizontal>
315
-
316
- <div>
317
- <bd-h as="h4">Section 3</bd-h>
318
- <bd-p kind="regular">This section uses a branded blue divider for emphasis.</bd-p>
319
- </div>
320
- </div>
321
- </div>
322
-
323
- <!-- Example 2: Toolbar with vertical dividers -->
324
- <div style="margin-bottom: 3rem;">
325
- <bd-h as="h3" style="margin-bottom: 1rem;">Toolbar Layout</bd-h>
326
- <div style="display: flex; align-items: center; gap: 1rem; padding: 1rem; background: #f8fafc; border-radius: 8px;">
327
- <button style="padding: 0.5rem 1rem; border: 1px solid #d1d5db; border-radius: 4px; background: white;">File</button>
328
- <button style="padding: 0.5rem 1rem; border: 1px solid #d1d5db; border-radius: 4px; background: white;">Edit</button>
329
- <button style="padding: 0.5rem 1rem; border: 1px solid #d1d5db; border-radius: 4px; background: white;">View</button>
330
-
331
- <bd-divider-vertical height="20px" opacity="0.4"></bd-divider-vertical>
332
-
333
- <button style="padding: 0.5rem 1rem; border: 1px solid #d1d5db; border-radius: 4px; background: white;">Save</button>
334
- <button style="padding: 0.5rem 1rem; border: 1px solid #d1d5db; border-radius: 4px; background: white;">Undo</button>
335
-
336
- <bd-divider-vertical height="20px" opacity="0.4"></bd-divider-vertical>
337
-
338
- <button style="padding: 0.5rem 1rem; border: 1px solid #d1d5db; border-radius: 4px; background: white;">Help</button>
339
- </div>
340
- </div>
341
-
342
- <!-- Example 3: Card layout with custom dividers -->
162
+ // ─── Combined ──────────────────────────────────────────────────────────────
163
+
164
+ export const BothTypes = {
165
+ name : 'Both Types Together',
166
+ render: () => html`
343
167
  <div>
344
- <bd-h as="h3" style="margin-bottom: 1rem;">Card Layout</bd-h>
345
- <div style="display: grid; grid-template-columns: 1fr auto 1fr; gap: 2rem; align-items: center;">
346
- <div style="padding: 1.5rem; background: white; border: 1px solid #e2e8f0; border-radius: 8px;">
347
- <bd-h as="h4">Left Card</bd-h>
348
- <bd-p kind="small">Some content on the left side</bd-p>
349
- </div>
350
-
351
- <bd-divider-vertical height="80px" color="#64748b" opacity="0.5"></bd-divider-vertical>
352
-
353
- <div style="padding: 1.5rem; background: white; border: 1px solid #e2e8f0; border-radius: 8px;">
354
- <bd-h as="h4">Right Card</bd-h>
355
- <bd-p kind="small">Some content on the right side</bd-p>
356
- </div>
168
+ <div style="display:flex; align-items:center; gap:12px; margin-bottom:16px;">
169
+ <span>Home</span>
170
+ <bd-divider-vertical height="20px" thickness="1px" color="#026DFF" opacity="1"></bd-divider-vertical>
171
+ <span>Products</span>
172
+ <bd-divider-vertical height="20px" thickness="1px" color="#026DFF" opacity="1"></bd-divider-vertical>
173
+ <span>Contact</span>
357
174
  </div>
175
+ <bd-divider-horizontal width="100%" color="#026DFF" opacity="0.25"></bd-divider-horizontal>
176
+ <p style="margin-top:16px;">Content below the divider.</p>
358
177
  </div>
359
- </div>
360
- `;
361
- UsageExamples.parameters = {
362
- docs: {
363
- description: {
364
- story: 'Practical examples showing how dividers can be used in real-world scenarios like content sections, toolbars, and card layouts.'
365
- }
366
- }
367
- };
368
-
369
- export const InteractivePlayground = Template.bind({});
370
- InteractivePlayground.args = {
371
- component: 'horizontal',
372
- width : '100%',
373
- height : '100px',
374
- thickness: '1px',
375
- color : 'var(--color-neutral-400)',
376
- opacity : 1.0
377
- };
378
- InteractivePlayground.parameters = {
379
- docs: {
380
- description: {
381
- story: 'Interactive playground where you can test all divider properties in real-time. Switch between horizontal and vertical dividers and customize their appearance.'
382
- }
383
- }
178
+ `,
179
+ parameters: { docs: { description: { story: 'Both divider types used together — vertical between nav links, horizontal as a section separator.' } } }
180
+ };
181
+
182
+ export const PlaygroundHorizontal = {
183
+ name : '🛝 Playground Horizontal',
184
+ args : { width: '100%', hColor: '#026DFF', hOpacity: '0.5' },
185
+ render: (args) => html`
186
+ <bd-divider-horizontal width="${args.width}" color="${args.hColor}" opacity="${args.hOpacity}"></bd-divider-horizontal>
187
+ `,
188
+ parameters: { docs: { description: { story: 'Interactive horizontal divider playground.' } } }
189
+ };
190
+
191
+ export const PlaygroundVertical = {
192
+ name : '🛝 Playground — Vertical',
193
+ args : { height: '30px', thickness: '1px', vColor: '#026DFF', vOpacity: '1' },
194
+ render: (args) => html`
195
+ <div style="display:flex; align-items:center; gap:8px; height:50px;">
196
+ <span>Left</span>
197
+ <bd-divider-vertical height="${args.height}" thickness="${args.thickness}" color="${args.vColor}" opacity="${args.vOpacity}"></bd-divider-vertical>
198
+ <span>Right</span>
199
+ </div>
200
+ `,
201
+ parameters: { docs: { description: { story: 'Interactive vertical divider playground.' } } }
384
202
  };