diff --git a/src/lib/components/ui/slider/index.ts b/src/lib/components/ui/slider/index.ts
new file mode 100644
index 0000000..3844186
--- /dev/null
+++ b/src/lib/components/ui/slider/index.ts
@@ -0,0 +1,7 @@
+import Root from "./slider.svelte";
+
+export {
+ Root,
+ //
+ Root as Slider
+};
diff --git a/src/lib/components/ui/slider/slider.svelte b/src/lib/components/ui/slider/slider.svelte
new file mode 100644
index 0000000..573d63b
--- /dev/null
+++ b/src/lib/components/ui/slider/slider.svelte
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
diff --git a/src/lib/features/token-ui/ui/token-types/ColorToken/ColorToken.svelte b/src/lib/features/token-ui/ui/token-types/ColorToken/ColorToken.svelte
index 9e9eaef..a26092b 100644
--- a/src/lib/features/token-ui/ui/token-types/ColorToken/ColorToken.svelte
+++ b/src/lib/features/token-ui/ui/token-types/ColorToken/ColorToken.svelte
@@ -10,6 +10,7 @@
import { createEventDispatcher } from 'svelte'
import { Input } from '$lib/components/ui/input'
import type { ColorTokenValue } from '$lib/features/token-management/color/types/internal-color-value.type'
+ import { Slider } from '$lib/components/ui/slider'
export let tokenValue: ColorTokenValue
export let tokenId: string
@@ -20,7 +21,11 @@
let hexInput: HTMLInputElement
- $: argb = Hct.from(tokenValue[0], tokenValue[1], tokenValue[2]).argb
+ let hue = tokenValue[0] ? [tokenValue[0]] : [0];
+ let chroma = tokenValue[1] ? [tokenValue[1]] : [0];
+ let tone = tokenValue[2] ? [tokenValue[2]] : [0];
+
+ $: argb = Hct.from(hue[0], chroma[0], tone[0]).argb
$: hex = Color(argb).hex()
const handleHexChange = (e: Event) => {
@@ -33,7 +38,9 @@
const newArgbColor = Color(value).rgbNumber()
const hct = Hct.fromInt(newArgbColor)
- tokenValue = [hct.hue, hct.chroma, hct.tone]
+ hue[0] = hct.hue
+ chroma[0] = hct.chroma
+ tone[0] = hct.tone
hex = target.value
} catch (error) {
hexInput.value = hex
@@ -41,17 +48,21 @@
}
}
- $: hueBackground = generateHueBackgroundGradient(tokenValue[1], tokenValue[2])
+ $: hueBackground = generateHueBackgroundGradient(chroma[0], tone[0])
$: chromaBackground = generateChromaBackgroundGradient(
- tokenValue[0],
- tokenValue[2]
+ hue[0],
+ tone[0]
)
$: toneBackground = generateToneBackgroundGradient(
- tokenValue[0],
- tokenValue[1]
+ hue[0],
+ chroma[0]
)
+
+ $: tokenValue[0] = hue[0]
+ $: tokenValue[1] = chroma[0]
+ $: tokenValue[2] = tone[0]
@@ -80,22 +91,22 @@
type="number"
class="w-14 rounded-md bg-transparent px-1 text-xs"
{...isAlias ? { disabled: true } : {}}
- bind:value={tokenValue[0]}
+ bind:value={hue[0]}
/>
-
dispatch('colorChange', {
valueChanged: 0,
value: e.detail.diff
})}
+
/>
@@ -106,17 +117,16 @@
type="number"
class="w-14 rounded-md bg-transparent px-1 text-xs"
{...isAlias ? { disabled: true } : {}}
- bind:value={tokenValue[1]}
+ bind:value={chroma[0]}
/>
-
dispatch('colorChange', {
valueChanged: 1,
@@ -132,17 +142,16 @@
type="number"
class="w-14 rounded-md bg-transparent px-1 text-xs"
{...isAlias ? { disabled: true } : {}}
- bind:value={tokenValue[2]}
+ bind:value={tone[0]}
/>
-
dispatch('colorChange', {
valueChanged: 2,