mirror of https://github.com/Budibase/budibase.git
9 changed files with 133 additions and 27 deletions
@ -0,0 +1,71 @@ |
|||
<script> |
|||
import "@spectrum-css/slider/dist/index-vars.css" |
|||
import { createEventDispatcher } from "svelte" |
|||
|
|||
export let value = false |
|||
export let id = null |
|||
export let disabled = false |
|||
export let min = 0 |
|||
export let max = 100 |
|||
export let step = 1 |
|||
|
|||
const dispatch = createEventDispatcher() |
|||
const onChange = event => { |
|||
dispatch("change", event.target.value) |
|||
} |
|||
</script> |
|||
|
|||
<div> |
|||
<input |
|||
type="range" |
|||
{min} |
|||
{max} |
|||
{step} |
|||
{value} |
|||
{disabled} |
|||
{id} |
|||
on:change={onChange} |
|||
/> |
|||
</div> |
|||
|
|||
<style> |
|||
div { |
|||
display: grid; |
|||
place-items: center; |
|||
} |
|||
|
|||
input { |
|||
width: 100%; |
|||
padding: 0; |
|||
margin: 0; |
|||
-webkit-appearance: none; |
|||
background: transparent; |
|||
} |
|||
input::-webkit-slider-thumb { |
|||
-webkit-appearance: none; |
|||
} |
|||
input:focus { |
|||
outline: none; |
|||
} |
|||
|
|||
input[type="range"]::-webkit-slider-thumb, |
|||
input[type="range"]::-moz-range-thumb { |
|||
-webkit-appearance: none; |
|||
border: 2px solid var(--spectrum-global-color-gray-700); |
|||
height: 12px; |
|||
width: 12px; |
|||
border-radius: 50%; |
|||
background: var(--background); |
|||
cursor: pointer; |
|||
transition: background 130ms ease-out; |
|||
} |
|||
|
|||
input[type="range"]::-webkit-slider-runnable-track, |
|||
input[type="range"]::-moz-range-track { |
|||
width: 100%; |
|||
height: 2px; |
|||
cursor: pointer; |
|||
background: var(--spectrum-global-color-gray-300); |
|||
border-radius: 2px; |
|||
} |
|||
</style> |
|||
@ -0,0 +1,24 @@ |
|||
<script> |
|||
import Field from "./Field.svelte" |
|||
import Slider from "./Core/Slider.svelte" |
|||
import { createEventDispatcher } from "svelte" |
|||
|
|||
export let value = null |
|||
export let label = null |
|||
export let labelPosition = "above" |
|||
export let min = 0 |
|||
export let max = 100 |
|||
export let step = 1 |
|||
export let disabled = false |
|||
export let error = null |
|||
|
|||
const dispatch = createEventDispatcher() |
|||
const onChange = e => { |
|||
value = e.detail |
|||
dispatch("change", e.detail) |
|||
} |
|||
</script> |
|||
|
|||
<Field {label} {labelPosition} {error}> |
|||
<Slider {disabled} {value} {min} {max} {step} on:change={onChange} /> |
|||
</Field> |
|||
Loading…
Reference in new issue