@reliability-design/web 1.0.2 → 1.0.6
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/dist/components/rel-accordion/README.md +132 -0
- package/dist/components/rel-accordion/rel-accordion.ts +61 -29
- package/dist/components/rel-alert/README.md +141 -0
- package/dist/components/rel-alert/rel-alert.ts +110 -67
- package/dist/components/rel-avatar/README.md +119 -0
- package/dist/components/rel-avatar/rel-avatar.ts +8 -15
- package/dist/components/rel-badge/README.md +86 -0
- package/dist/components/rel-badge/rel-badge.ts +28 -21
- package/dist/components/rel-breadcrumb/README.md +102 -0
- package/dist/components/rel-breadcrumb/rel-breadcrumb.ts +24 -18
- package/dist/components/rel-button/README.md +130 -0
- package/dist/components/rel-button/rel-button.ts +39 -59
- package/dist/components/rel-calendar/README.md +109 -0
- package/dist/components/rel-calendar/index.ts +1 -0
- package/dist/components/rel-calendar/rel-calendar.ts +467 -0
- package/dist/components/rel-card/README.md +94 -0
- package/dist/components/rel-card/rel-card.ts +21 -11
- package/dist/components/rel-cardmedia/README.md +127 -0
- package/dist/components/rel-cardmedia/rel-cardmedia.ts +22 -18
- package/dist/components/rel-carousel/README.md +166 -0
- package/dist/components/rel-carousel/index.ts +1 -0
- package/dist/components/rel-carousel/rel-carousel.ts +469 -0
- package/dist/components/rel-chart/README.md +286 -0
- package/dist/components/rel-chart/index.ts +1 -0
- package/dist/components/rel-chart/rel-chart.ts +736 -0
- package/dist/components/rel-checkbox/README.md +77 -0
- package/dist/components/rel-checkbox/rel-checkbox.ts +36 -45
- package/dist/components/rel-chip/README.md +114 -0
- package/dist/components/rel-chip/rel-chip.ts +47 -122
- package/dist/components/rel-container/README.md +99 -0
- package/dist/components/rel-container/rel-container.ts +1 -6
- package/dist/components/rel-date-picker/README.md +253 -0
- package/dist/components/rel-date-picker/index.ts +1 -0
- package/dist/components/rel-date-picker/rel-date-picker.ts +916 -0
- package/dist/components/rel-divider/README.md +100 -0
- package/dist/components/rel-divider/rel-divider.ts +37 -37
- package/dist/components/rel-drawer/README.md +200 -0
- package/dist/components/rel-drawer/index.ts +1 -0
- package/dist/components/rel-drawer/rel-drawer.ts +621 -0
- package/dist/components/rel-kbd/README.md +151 -0
- package/dist/components/rel-kbd/rel-kbd.ts +118 -0
- package/dist/components/rel-layout/README.md +88 -0
- package/dist/components/rel-layout/rel-layout.ts +12 -14
- package/dist/components/rel-menu/README.md +151 -0
- package/dist/components/rel-menu/rel-menu.ts +18 -10
- package/dist/components/rel-menubar/README.md +329 -0
- package/dist/components/rel-menubar/index.ts +2 -0
- package/dist/components/rel-menubar/rel-menubar-menu.ts +16 -0
- package/dist/components/rel-menubar/rel-menubar.ts +576 -0
- package/dist/components/rel-nav-menu/README.md +289 -0
- package/dist/components/rel-nav-menu/index.ts +3 -0
- package/dist/components/rel-nav-menu/rel-nav-menu-item.ts +143 -0
- package/dist/components/rel-nav-menu/rel-nav-menu-panel.ts +53 -0
- package/dist/components/rel-nav-menu/rel-nav-menu.ts +331 -0
- package/dist/components/rel-navbar/README.md +126 -0
- package/dist/components/rel-navbar/rel-navbar.ts +91 -0
- package/dist/components/rel-otp/README.md +440 -0
- package/dist/components/rel-otp/index.ts +1 -0
- package/dist/components/rel-otp/rel-otp.ts +504 -0
- package/dist/components/rel-pagination/README.md +410 -0
- package/dist/components/rel-pagination/index.ts +1 -0
- package/dist/components/rel-pagination/rel-pagination.ts +376 -0
- package/dist/components/rel-popover/README.md +568 -0
- package/dist/components/rel-popover/index.ts +2 -0
- package/dist/components/rel-popover/rel-popover-content.ts +55 -0
- package/dist/components/rel-popover/rel-popover.ts +327 -0
- package/dist/components/rel-progress/README.md +110 -0
- package/dist/components/rel-progress/rel-progress.ts +58 -20
- package/dist/components/rel-quote-page/README.md +166 -0
- package/dist/components/rel-quote-page/rel-quote-page.ts +816 -0
- package/dist/components/rel-radio/README.md +120 -0
- package/dist/components/rel-radio/rel-radio.ts +41 -73
- package/dist/components/rel-resizable/README.md +140 -0
- package/dist/components/rel-resizable/index.ts +3 -0
- package/dist/components/rel-resizable/rel-resizable-group.ts +374 -0
- package/dist/components/rel-resizable/rel-resizable-handle.ts +149 -0
- package/dist/components/rel-resizable/rel-resizable-panel.ts +47 -0
- package/dist/components/rel-segmented-button/README.md +141 -0
- package/dist/components/rel-segmented-button/rel-segmented-button.ts +18 -13
- package/dist/components/rel-select/README.md +107 -0
- package/dist/components/rel-select/rel-select.ts +14 -14
- package/dist/components/rel-sheet/README.md +224 -0
- package/dist/components/rel-sheet/rel-sheet.ts +683 -0
- package/dist/components/rel-sidebar/README.md +209 -0
- package/dist/components/rel-sidebar/rel-sidebar.ts +1158 -0
- package/dist/components/rel-slider/README.md +135 -0
- package/dist/components/rel-slider/rel-slider.ts +19 -7
- package/dist/components/rel-snackbar/README.md +134 -0
- package/dist/components/rel-snackbar/rel-snackbar.ts +73 -2
- package/dist/components/rel-stepper/README.md +160 -0
- package/dist/components/rel-stepper/rel-stepper.ts +29 -8
- package/dist/components/rel-switch/README.md +102 -0
- package/dist/components/rel-switch/rel-switch.ts +22 -11
- package/dist/components/rel-tab/README.md +163 -0
- package/dist/components/rel-tab/rel-tab.ts +46 -22
- package/dist/components/rel-table/README.md +178 -0
- package/dist/components/rel-table/rel-table-body.ts +16 -0
- package/dist/components/rel-table/rel-table-caption.ts +22 -0
- package/dist/components/rel-table/rel-table-cell.ts +49 -0
- package/dist/components/rel-table/rel-table-footer.ts +18 -0
- package/dist/components/rel-table/rel-table-head.ts +33 -0
- package/dist/components/rel-table/rel-table-header.ts +16 -0
- package/dist/components/rel-table/rel-table-row.ts +32 -0
- package/dist/components/rel-table/rel-table.ts +47 -0
- package/dist/components/rel-textfield/README.md +90 -0
- package/dist/components/rel-textfield/rel-textfield.ts +37 -21
- package/dist/components/rel-toast/README.md +148 -0
- package/dist/components/rel-toast/rel-toast.ts +32 -14
- package/dist/components/rel-tooltip/README.md +103 -0
- package/dist/components/rel-tooltip/rel-tooltip.ts +9 -9
- package/dist/index.d.mts +846 -7
- package/dist/index.d.ts +846 -7
- package/dist/index.js +10860 -1803
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +10820 -1809
- package/dist/index.mjs.map +1 -1
- package/dist/styles/vars.css +293 -183
- package/dist/vars-ITL2K3KO.css +294 -0
- package/package.json +2 -2
- package/dist/components/rel-accordion/rel-accordion.stories.ts +0 -313
- package/dist/components/rel-alert/rel-alert.stories.ts +0 -412
- package/dist/components/rel-avatar/rel-avatar.stories.ts +0 -327
- package/dist/components/rel-badge/rel-badge.stories.ts +0 -350
- package/dist/components/rel-breadcrumb/rel-breadcrumb.stories.ts +0 -306
- package/dist/components/rel-button/rel-button.stories.ts +0 -356
- package/dist/components/rel-card/rel-card.stories.ts +0 -299
- package/dist/components/rel-cardmedia/rel-cardmedia.stories.ts +0 -368
- package/dist/components/rel-checkbox/rel-checkbox.stories.ts +0 -414
- package/dist/components/rel-chip/rel-chip.stories.ts +0 -552
- package/dist/components/rel-container/rel-container.stories.ts +0 -239
- package/dist/components/rel-divider/rel-divider.stories.ts +0 -229
- package/dist/components/rel-layout/rel-layout.stories.ts +0 -713
- package/dist/components/rel-menu/rel-menu.stories.ts +0 -910
- package/dist/components/rel-progress/rel-progress.stories.ts +0 -817
- package/dist/components/rel-radio/rel-radio.stories.ts +0 -1048
- package/dist/components/rel-segmented-button/rel-segmented-button.stories.ts +0 -1079
- package/dist/components/rel-select/rel-select.stories.ts +0 -1201
- package/dist/components/rel-slider/rel-slider.stories.ts +0 -730
- package/dist/components/rel-snackbar/rel-snackbar.stories.ts +0 -808
- package/dist/components/rel-stepper/rel-stepper.stories.ts +0 -752
- package/dist/components/rel-switch/rel-switch.stories.ts +0 -441
- package/dist/components/rel-tab/rel-tab.stories.ts +0 -492
- package/dist/components/rel-textfield/rel-textfield.stories.ts +0 -710
- package/dist/components/rel-toast/rel-toast.stories.ts +0 -394
- 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
|
-
};
|