@reliability-design/web 1.0.2 → 1.0.3

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 (54) hide show
  1. package/dist/components/rel-accordion/rel-accordion.ts +27 -22
  2. package/dist/components/rel-alert/rel-alert.ts +98 -66
  3. package/dist/components/rel-avatar/rel-avatar.ts +8 -15
  4. package/dist/components/rel-badge/rel-badge.ts +23 -16
  5. package/dist/components/rel-breadcrumb/rel-breadcrumb.ts +12 -12
  6. package/dist/components/rel-button/rel-button.ts +39 -59
  7. package/dist/components/rel-card/rel-card.ts +11 -10
  8. package/dist/components/rel-cardmedia/rel-cardmedia.ts +11 -17
  9. package/dist/components/rel-checkbox/rel-checkbox.ts +18 -35
  10. package/dist/components/rel-chip/rel-chip.ts +37 -128
  11. package/dist/components/rel-container/rel-container.ts +1 -6
  12. package/dist/components/rel-divider/rel-divider.ts +37 -37
  13. package/dist/components/rel-layout/rel-layout.ts +12 -14
  14. package/dist/components/rel-progress/rel-progress.ts +26 -15
  15. package/dist/components/rel-radio/rel-radio.ts +32 -72
  16. package/dist/components/rel-snackbar/rel-snackbar.ts +6 -0
  17. package/dist/components/rel-stepper/rel-stepper.ts +23 -2
  18. package/dist/components/rel-switch/rel-switch.ts +7 -5
  19. package/dist/components/rel-tab/rel-tab.ts +10 -8
  20. package/dist/components/rel-textfield/rel-textfield.ts +2 -2
  21. package/dist/index.d.mts +11 -7
  22. package/dist/index.d.ts +11 -7
  23. package/dist/index.js +367 -475
  24. package/dist/index.js.map +1 -1
  25. package/dist/index.mjs +383 -489
  26. package/dist/index.mjs.map +1 -1
  27. package/dist/vars-6ZIUPIU4.css +184 -0
  28. package/package.json +2 -2
  29. package/dist/components/rel-accordion/rel-accordion.stories.ts +0 -313
  30. package/dist/components/rel-alert/rel-alert.stories.ts +0 -412
  31. package/dist/components/rel-avatar/rel-avatar.stories.ts +0 -327
  32. package/dist/components/rel-badge/rel-badge.stories.ts +0 -350
  33. package/dist/components/rel-breadcrumb/rel-breadcrumb.stories.ts +0 -306
  34. package/dist/components/rel-button/rel-button.stories.ts +0 -356
  35. package/dist/components/rel-card/rel-card.stories.ts +0 -299
  36. package/dist/components/rel-cardmedia/rel-cardmedia.stories.ts +0 -368
  37. package/dist/components/rel-checkbox/rel-checkbox.stories.ts +0 -414
  38. package/dist/components/rel-chip/rel-chip.stories.ts +0 -552
  39. package/dist/components/rel-container/rel-container.stories.ts +0 -239
  40. package/dist/components/rel-divider/rel-divider.stories.ts +0 -229
  41. package/dist/components/rel-layout/rel-layout.stories.ts +0 -713
  42. package/dist/components/rel-menu/rel-menu.stories.ts +0 -910
  43. package/dist/components/rel-progress/rel-progress.stories.ts +0 -817
  44. package/dist/components/rel-radio/rel-radio.stories.ts +0 -1048
  45. package/dist/components/rel-segmented-button/rel-segmented-button.stories.ts +0 -1079
  46. package/dist/components/rel-select/rel-select.stories.ts +0 -1201
  47. package/dist/components/rel-slider/rel-slider.stories.ts +0 -730
  48. package/dist/components/rel-snackbar/rel-snackbar.stories.ts +0 -808
  49. package/dist/components/rel-stepper/rel-stepper.stories.ts +0 -752
  50. package/dist/components/rel-switch/rel-switch.stories.ts +0 -441
  51. package/dist/components/rel-tab/rel-tab.stories.ts +0 -492
  52. package/dist/components/rel-textfield/rel-textfield.stories.ts +0 -710
  53. package/dist/components/rel-toast/rel-toast.stories.ts +0 -394
  54. package/dist/components/rel-tooltip/rel-tooltip.stories.ts +0 -364
@@ -1,730 +0,0 @@
1
- import type { Meta, StoryObj } from '@storybook/web-components-vite';
2
- import { html } from 'lit';
3
- import './rel-slider';
4
-
5
- /**
6
- * The Slider component provides an interactive range input with continuous and discrete modes.
7
- * Built with Lit web components for framework-agnostic usage with full token support.
8
- *
9
- * ## Features
10
- * - **Two Modes**: Continuous (smooth) and discrete (stepped with ticks)
11
- * - **Track Styles**: Solid or dotted active track
12
- * - **Value Bubble**: Optional marker showing current value
13
- * - **Tick Marks**: Optional tick marks for discrete mode
14
- * - **Tick Labels**: Optional labels for tick positions
15
- * - **Disabled State**: Non-interactive state
16
- * - **Token-Based Styling**: Uses design system tokens
17
- * - **Accessible**: Proper range input semantics
18
- */
19
- const meta: Meta = {
20
- title: 'Components/Slider',
21
- tags: ['autodocs'],
22
- component: 'rel-slider',
23
- argTypes: {
24
- type: {
25
- control: { type: 'select' },
26
- options: ['continuous', 'discrete'],
27
- description: 'Slider behavior mode',
28
- table: {
29
- defaultValue: { summary: 'continuous' },
30
- type: { summary: 'continuous | discrete' },
31
- },
32
- },
33
- track: {
34
- control: { type: 'select' },
35
- options: ['solid', 'dotted'],
36
- description: 'Active track style',
37
- table: {
38
- defaultValue: { summary: 'solid' },
39
- type: { summary: 'solid | dotted' },
40
- },
41
- },
42
- disabled: {
43
- control: { type: 'boolean' },
44
- description: 'Disabled state',
45
- table: {
46
- defaultValue: { summary: 'false' },
47
- },
48
- },
49
- showTickLabels: {
50
- control: { type: 'boolean' },
51
- description: 'Show tick labels (discrete mode only)',
52
- table: {
53
- defaultValue: { summary: 'false' },
54
- },
55
- },
56
- showBubble: {
57
- control: { type: 'boolean' },
58
- description: 'Show value bubble marker',
59
- table: {
60
- defaultValue: { summary: 'true' },
61
- },
62
- },
63
- },
64
- };
65
-
66
- export default meta;
67
- type Story = StoryObj;
68
-
69
- /**
70
- * Default continuous slider
71
- */
72
- export const Default: Story = {
73
- render: () => {
74
- const slider = document.createElement('rel-slider') as any;
75
- slider.value = 50;
76
- slider.addEventListener('valueChange', (e: CustomEvent) => {
77
- console.log('Value:', e.detail.value);
78
- });
79
-
80
- return slider;
81
- },
82
- };
83
-
84
- /**
85
- * Continuous slider with default behavior
86
- */
87
- export const Continuous: Story = {
88
- render: () => {
89
- const slider = document.createElement('rel-slider') as any;
90
- slider.type = 'continuous';
91
- slider.value = 30;
92
-
93
- return slider;
94
- },
95
- };
96
-
97
- /**
98
- * Discrete slider with tick marks
99
- */
100
- export const Discrete: Story = {
101
- render: () => {
102
- const slider = document.createElement('rel-slider') as any;
103
- slider.type = 'discrete';
104
- slider.min = 0;
105
- slider.max = 100;
106
- slider.step = 10;
107
- slider.value = 40;
108
-
109
- return slider;
110
- },
111
- };
112
-
113
- /**
114
- * Discrete slider with tick labels
115
- */
116
- export const DiscreteWithLabels: Story = {
117
- render: () => {
118
- const slider = document.createElement('rel-slider') as any;
119
- slider.type = 'discrete';
120
- slider.min = 0;
121
- slider.max = 100;
122
- slider.step = 25;
123
- slider.value = 50;
124
- slider.showTickLabels = true;
125
-
126
- return slider;
127
- },
128
- };
129
-
130
- /**
131
- * Slider with dotted track style
132
- */
133
- export const DottedTrack: Story = {
134
- render: () => {
135
- const slider = document.createElement('rel-slider') as any;
136
- slider.track = 'dotted';
137
- slider.value = 60;
138
-
139
- return slider;
140
- },
141
- };
142
-
143
- /**
144
- * Discrete slider with dotted track
145
- */
146
- export const DiscreteWithDottedTrack: Story = {
147
- render: () => {
148
- const slider = document.createElement('rel-slider') as any;
149
- slider.type = 'discrete';
150
- slider.track = 'dotted';
151
- slider.min = 0;
152
- slider.max = 100;
153
- slider.step = 20;
154
- slider.value = 60;
155
- slider.showTickLabels = true;
156
-
157
- return slider;
158
- },
159
- };
160
-
161
- /**
162
- * Disabled slider
163
- */
164
- export const Disabled: Story = {
165
- render: () => {
166
- const slider = document.createElement('rel-slider') as any;
167
- slider.value = 45;
168
- slider.disabled = true;
169
-
170
- return slider;
171
- },
172
- };
173
-
174
- /**
175
- * Disabled discrete slider
176
- */
177
- export const DisabledDiscrete: Story = {
178
- render: () => {
179
- const slider = document.createElement('rel-slider') as any;
180
- slider.type = 'discrete';
181
- slider.min = 0;
182
- slider.max = 100;
183
- slider.step = 20;
184
- slider.value = 60;
185
- slider.disabled = true;
186
- slider.showTickLabels = true;
187
-
188
- return slider;
189
- },
190
- };
191
-
192
- /**
193
- * Custom range (0-10)
194
- */
195
- export const CustomRange: Story = {
196
- render: () => {
197
- const slider = document.createElement('rel-slider') as any;
198
- slider.type = 'discrete';
199
- slider.min = 0;
200
- slider.max = 10;
201
- slider.step = 1;
202
- slider.value = 5;
203
- slider.showTickLabels = true;
204
-
205
- return slider;
206
- },
207
- };
208
-
209
- /**
210
- * Continuous slider without bubble
211
- */
212
- export const ContinuousWithoutBubble: Story = {
213
- render: () => {
214
- const slider = document.createElement('rel-slider') as any;
215
- slider.type = 'continuous';
216
- slider.value = 35;
217
- slider.showBubble = false;
218
-
219
- return slider;
220
- },
221
- };
222
-
223
- /**
224
- * Discrete slider without bubble
225
- */
226
- export const DiscreteWithoutBubble: Story = {
227
- render: () => {
228
- const slider = document.createElement('rel-slider') as any;
229
- slider.type = 'discrete';
230
- slider.min = 0;
231
- slider.max = 100;
232
- slider.step = 10;
233
- slider.value = 40;
234
- slider.showBubble = false;
235
-
236
- return slider;
237
- },
238
- };
239
-
240
- /**
241
- * Continuous slider with solid track (default)
242
- */
243
- export const ContinuousSolidTrack: Story = {
244
- render: () => {
245
- const slider = document.createElement('rel-slider') as any;
246
- slider.type = 'continuous';
247
- slider.track = 'solid';
248
- slider.value = 55;
249
-
250
- return slider;
251
- },
252
- };
253
-
254
- /**
255
- * Continuous slider with dotted track
256
- */
257
- export const ContinuousDottedTrack: Story = {
258
- render: () => {
259
- const slider = document.createElement('rel-slider') as any;
260
- slider.type = 'continuous';
261
- slider.track = 'dotted';
262
- slider.value = 65;
263
-
264
- return slider;
265
- },
266
- };
267
-
268
- /**
269
- * Discrete slider with solid track
270
- */
271
- export const DiscreteSolidTrack: Story = {
272
- render: () => {
273
- const slider = document.createElement('rel-slider') as any;
274
- slider.type = 'discrete';
275
- slider.track = 'solid';
276
- slider.min = 0;
277
- slider.max = 100;
278
- slider.step = 20;
279
- slider.value = 60;
280
-
281
- return slider;
282
- },
283
- };
284
-
285
- /**
286
- * Discrete slider with tick labels but no bubble
287
- */
288
- export const DiscreteLabelsNoBubble: Story = {
289
- render: () => {
290
- const slider = document.createElement('rel-slider') as any;
291
- slider.type = 'discrete';
292
- slider.min = 0;
293
- slider.max = 100;
294
- slider.step = 25;
295
- slider.value = 75;
296
- slider.showTickLabels = true;
297
- slider.showBubble = false;
298
-
299
- return slider;
300
- },
301
- };
302
-
303
- /**
304
- * Range with negative values (-50 to 50)
305
- */
306
- export const NegativeRange: Story = {
307
- render: () => {
308
- const slider = document.createElement('rel-slider') as any;
309
- slider.type = 'discrete';
310
- slider.min = -50;
311
- slider.max = 50;
312
- slider.step = 10;
313
- slider.value = 0;
314
- slider.showTickLabels = true;
315
-
316
- return slider;
317
- },
318
- };
319
-
320
- /**
321
- * Small range (0-10) with step 1
322
- */
323
- export const SmallRangeStep1: Story = {
324
- render: () => {
325
- const slider = document.createElement('rel-slider') as any;
326
- slider.type = 'discrete';
327
- slider.min = 0;
328
- slider.max = 10;
329
- slider.step = 1;
330
- slider.value = 7;
331
- slider.showTickLabels = true;
332
-
333
- return slider;
334
- },
335
- };
336
-
337
- /**
338
- * Large range (0-100) with step 5
339
- */
340
- export const LargeRangeStep5: Story = {
341
- render: () => {
342
- const slider = document.createElement('rel-slider') as any;
343
- slider.type = 'discrete';
344
- slider.min = 0;
345
- slider.max = 100;
346
- slider.step = 5;
347
- slider.value = 45;
348
- slider.showTickLabels = true;
349
-
350
- return slider;
351
- },
352
- };
353
-
354
- /**
355
- * Decimal step (0.1) for precision control
356
- */
357
- export const DecimalStep: Story = {
358
- render: () => {
359
- const slider = document.createElement('rel-slider') as any;
360
- slider.type = 'continuous';
361
- slider.min = 0;
362
- slider.max = 10;
363
- slider.step = 0.1;
364
- slider.value = 5.5;
365
-
366
- return slider;
367
- },
368
- };
369
-
370
- /**
371
- * Large step size (step 10)
372
- */
373
- export const LargeStep: Story = {
374
- render: () => {
375
- const slider = document.createElement('rel-slider') as any;
376
- slider.type = 'discrete';
377
- slider.min = 0;
378
- slider.max = 100;
379
- slider.step = 10;
380
- slider.value = 50;
381
- slider.showTickLabels = true;
382
-
383
- return slider;
384
- },
385
- };
386
-
387
- /**
388
- * Disabled continuous slider with dotted track
389
- */
390
- export const DisabledContinuousDotted: Story = {
391
- render: () => {
392
- const slider = document.createElement('rel-slider') as any;
393
- slider.type = 'continuous';
394
- slider.track = 'dotted';
395
- slider.value = 60;
396
- slider.disabled = true;
397
-
398
- return slider;
399
- },
400
- };
401
-
402
- /**
403
- * Disabled discrete slider with dotted track
404
- */
405
- export const DisabledDiscreteDotted: Story = {
406
- render: () => {
407
- const slider = document.createElement('rel-slider') as any;
408
- slider.type = 'discrete';
409
- slider.track = 'dotted';
410
- slider.min = 0;
411
- slider.max = 100;
412
- slider.step = 20;
413
- slider.value = 40;
414
- slider.showTickLabels = true;
415
- slider.disabled = true;
416
-
417
- return slider;
418
- },
419
- };
420
-
421
- /**
422
- * Discrete with all features: labels, dotted track, bubble
423
- */
424
- export const DiscreteAllFeatures: Story = {
425
- render: () => {
426
- const slider = document.createElement('rel-slider') as any;
427
- slider.type = 'discrete';
428
- slider.track = 'dotted';
429
- slider.min = 0;
430
- slider.max = 100;
431
- slider.step = 20;
432
- slider.value = 60;
433
- slider.showTickLabels = true;
434
- slider.showBubble = true;
435
-
436
- return slider;
437
- },
438
- };
439
-
440
- /**
441
- * Continuous with minimal features: no bubble, solid track
442
- */
443
- export const ContinuousMinimal: Story = {
444
- render: () => {
445
- const slider = document.createElement('rel-slider') as any;
446
- slider.type = 'continuous';
447
- slider.track = 'solid';
448
- slider.value = 50;
449
- slider.showBubble = false;
450
-
451
- return slider;
452
- },
453
- };
454
-
455
- /**
456
- * Volume control
457
- */
458
- export const VolumeControl: Story = {
459
- render: () => html`
460
- <div style="max-width: 400px; background: white; padding: 24px; border-radius: 12px; box-shadow: var(--rel-shadows-shadow-200);">
461
- <h3 style="margin: 0 0 24px; color: var(--rel-colors-gray-heading); font-size: 16px;">Volume</h3>
462
- ${(() => {
463
- const slider = document.createElement('rel-slider') as any;
464
- slider.type = 'continuous';
465
- slider.min = 0;
466
- slider.max = 100;
467
- slider.value = 75;
468
- slider.addEventListener('valueChange', (e: CustomEvent) => {
469
- console.log('Volume:', e.detail.value);
470
- });
471
-
472
- return slider;
473
- })()}
474
- </div>
475
- `,
476
- };
477
-
478
- /**
479
- * Brightness control
480
- */
481
- export const BrightnessControl: Story = {
482
- render: () => html`
483
- <div style="max-width: 400px; background: white; padding: 24px; border-radius: 12px; box-shadow: var(--rel-shadows-shadow-200);">
484
- <h3 style="margin: 0 0 24px; color: var(--rel-colors-gray-heading); font-size: 16px;">Brightness</h3>
485
- ${(() => {
486
- const slider = document.createElement('rel-slider') as any;
487
- slider.type = 'discrete';
488
- slider.min = 0;
489
- slider.max = 100;
490
- slider.step = 10;
491
- slider.value = 50;
492
- slider.showTickLabels = true;
493
- slider.addEventListener('valueChange', (e: CustomEvent) => {
494
- console.log('Brightness:', e.detail.value);
495
- });
496
-
497
- return slider;
498
- })()}
499
- </div>
500
- `,
501
- };
502
-
503
- /**
504
- * Rating selector
505
- */
506
- export const RatingSelector: Story = {
507
- render: () => html`
508
- <div style="max-width: 400px; background: white; padding: 24px; border-radius: 12px; box-shadow: var(--rel-shadows-shadow-200);">
509
- <h3 style="margin: 0 0 8px; color: var(--rel-colors-gray-heading); font-size: 16px;">Rate Your Experience</h3>
510
- <p style="margin: 0 0 24px; color: var(--rel-colors-gray-placeholder); font-size: 14px;">Slide to select a rating from 1 to 5</p>
511
- ${(() => {
512
- const slider = document.createElement('rel-slider') as any;
513
- slider.type = 'discrete';
514
- slider.min = 1;
515
- slider.max = 5;
516
- slider.step = 1;
517
- slider.value = 3;
518
- slider.showTickLabels = true;
519
- slider.addEventListener('valueChange', (e: CustomEvent) => {
520
- console.log('Rating:', e.detail.value);
521
- });
522
-
523
- return slider;
524
- })()}
525
- </div>
526
- `,
527
- };
528
-
529
- /**
530
- * Price range filter
531
- */
532
- export const PriceRange: Story = {
533
- render: () => html`
534
- <div style="max-width: 500px; background: white; padding: 24px; border-radius: 12px; box-shadow: var(--rel-shadows-shadow-200);">
535
- <h3 style="margin: 0 0 8px; color: var(--rel-colors-gray-heading); font-size: 16px;">Filter by Price</h3>
536
- <p style="margin: 0 0 24px; color: var(--rel-colors-gray-placeholder); font-size: 14px;">Select maximum price</p>
537
- ${(() => {
538
- const slider = document.createElement('rel-slider') as any;
539
- slider.type = 'discrete';
540
- slider.min = 0;
541
- slider.max = 500;
542
- slider.step = 50;
543
- slider.value = 200;
544
- slider.showTickLabels = true;
545
- slider.track = 'dotted';
546
- slider.addEventListener('valueChange', (e: CustomEvent) => {
547
- console.log('Max price:', e.detail.value);
548
- });
549
-
550
- return slider;
551
- })()}
552
- </div>
553
- `,
554
- };
555
-
556
- /**
557
- * Temperature control
558
- */
559
- export const TemperatureControl: Story = {
560
- render: () => html`
561
- <div style="max-width: 500px; background: white; padding: 24px; border-radius: 12px; box-shadow: var(--rel-shadows-shadow-200);">
562
- <h3 style="margin: 0 0 8px; color: var(--rel-colors-gray-heading); font-size: 16px;">Temperature</h3>
563
- <p style="margin: 0 0 24px; color: var(--rel-colors-gray-placeholder); font-size: 14px;">Set thermostat temperature (°F)</p>
564
- ${(() => {
565
- const slider = document.createElement('rel-slider') as any;
566
- slider.type = 'discrete';
567
- slider.min = 60;
568
- slider.max = 80;
569
- slider.step = 2;
570
- slider.value = 72;
571
- slider.showTickLabels = true;
572
- slider.addEventListener('valueChange', (e: CustomEvent) => {
573
- console.log('Temperature:', e.detail.value, '°F');
574
- });
575
-
576
- return slider;
577
- })()}
578
- </div>
579
- `,
580
- };
581
-
582
- /**
583
- * Progress indicator
584
- */
585
- export const ProgressIndicator: Story = {
586
- render: () => html`
587
- <div style="max-width: 500px; background: white; padding: 24px; border-radius: 12px; box-shadow: var(--rel-shadows-shadow-200);">
588
- <h3 style="margin: 0 0 8px; color: var(--rel-colors-gray-heading); font-size: 16px;">Task Completion</h3>
589
- <p style="margin: 0 0 24px; color: var(--rel-colors-gray-placeholder); font-size: 14px;">Adjust completion percentage</p>
590
- ${(() => {
591
- const slider = document.createElement('rel-slider') as any;
592
- slider.type = 'continuous';
593
- slider.min = 0;
594
- slider.max = 100;
595
- slider.value = 65;
596
- slider.track = 'dotted';
597
- slider.addEventListener('valueChange', (e: CustomEvent) => {
598
- console.log('Completion:', e.detail.value, '%');
599
- });
600
-
601
- return slider;
602
- })()}
603
- </div>
604
- `,
605
- };
606
-
607
- /**
608
- * Multiple sliders in a settings form
609
- */
610
- export const SettingsForm: Story = {
611
- render: () => html`
612
- <div style="max-width: 600px; background: white; padding: 24px; border-radius: 12px; box-shadow: var(--rel-shadows-shadow-200);">
613
- <h3 style="margin: 0 0 24px; color: var(--rel-colors-gray-heading); font-size: 18px;">Audio Settings</h3>
614
-
615
- <div style="margin-bottom: 32px;">
616
- <h4 style="margin: 0 0 16px; color: var(--rel-colors-gray-heading); font-size: 14px;">Volume</h4>
617
- ${(() => {
618
- const slider = document.createElement('rel-slider') as any;
619
- slider.type = 'continuous';
620
- slider.min = 0;
621
- slider.max = 100;
622
- slider.value = 80;
623
-
624
- return slider;
625
- })()}
626
- </div>
627
-
628
- <div style="margin-bottom: 32px;">
629
- <h4 style="margin: 0 0 16px; color: var(--rel-colors-gray-heading); font-size: 14px;">Bass</h4>
630
- ${(() => {
631
- const slider = document.createElement('rel-slider') as any;
632
- slider.type = 'discrete';
633
- slider.min = -10;
634
- slider.max = 10;
635
- slider.step = 2;
636
- slider.value = 0;
637
- slider.showTickLabels = true;
638
-
639
- return slider;
640
- })()}
641
- </div>
642
-
643
- <div>
644
- <h4 style="margin: 0 0 16px; color: var(--rel-colors-gray-heading); font-size: 14px;">Treble</h4>
645
- ${(() => {
646
- const slider = document.createElement('rel-slider') as any;
647
- slider.type = 'discrete';
648
- slider.min = -10;
649
- slider.max = 10;
650
- slider.step = 2;
651
- slider.value = 2;
652
- slider.showTickLabels = true;
653
-
654
- return slider;
655
- })()}
656
- </div>
657
- </div>
658
- `,
659
- };
660
-
661
- /**
662
- * All states showcase
663
- */
664
- export const AllStates: Story = {
665
- render: () => html`
666
- <div style="display: flex; flex-direction: column; gap: 48px;">
667
- <div>
668
- <h4 style="margin: 0 0 16px; color: var(--rel-colors-gray-heading); font-size: 16px;">Continuous</h4>
669
- ${(() => {
670
- const slider = document.createElement('rel-slider') as any;
671
- slider.type = 'continuous';
672
- slider.value = 40;
673
-
674
- return slider;
675
- })()}
676
- </div>
677
-
678
- <div>
679
- <h4 style="margin: 0 0 16px; color: var(--rel-colors-gray-heading); font-size: 16px;">Discrete</h4>
680
- ${(() => {
681
- const slider = document.createElement('rel-slider') as any;
682
- slider.type = 'discrete';
683
- slider.min = 0;
684
- slider.max = 100;
685
- slider.step = 20;
686
- slider.value = 60;
687
-
688
- return slider;
689
- })()}
690
- </div>
691
-
692
- <div>
693
- <h4 style="margin: 0 0 16px; color: var(--rel-colors-gray-heading); font-size: 16px;">Discrete with Labels</h4>
694
- ${(() => {
695
- const slider = document.createElement('rel-slider') as any;
696
- slider.type = 'discrete';
697
- slider.min = 0;
698
- slider.max = 100;
699
- slider.step = 25;
700
- slider.value = 50;
701
- slider.showTickLabels = true;
702
-
703
- return slider;
704
- })()}
705
- </div>
706
-
707
- <div>
708
- <h4 style="margin: 0 0 16px; color: var(--rel-colors-gray-heading); font-size: 16px;">Dotted Track</h4>
709
- ${(() => {
710
- const slider = document.createElement('rel-slider') as any;
711
- slider.track = 'dotted';
712
- slider.value = 70;
713
-
714
- return slider;
715
- })()}
716
- </div>
717
-
718
- <div>
719
- <h4 style="margin: 0 0 16px; color: var(--rel-colors-gray-heading); font-size: 16px;">Disabled</h4>
720
- ${(() => {
721
- const slider = document.createElement('rel-slider') as any;
722
- slider.value = 45;
723
- slider.disabled = true;
724
-
725
- return slider;
726
- })()}
727
- </div>
728
- </div>
729
- `,
730
- };