Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
03a60b8
feat(SliderArea): add SliderArea component
GrandMagus02 Feb 12, 2026
028c2fd
refactor(SliderArea): change data structure from objects to arrays fo…
GrandMagus02 Feb 12, 2026
2eb42b8
fix(SliderArea): update test description and change prop binding for …
GrandMagus02 Feb 12, 2026
969f1c1
fix(SliderArea): replace alert function with window.alert for browser…
GrandMagus02 Feb 12, 2026
2e87e19
fix(SliderArea): ensure safe removal of thumb element on unmount
GrandMagus02 Feb 12, 2026
414df96
refactor(SliderArea): remove unused context interface and imports fro…
GrandMagus02 Feb 12, 2026
ef3ec4f
fix(SliderArea): updated test setup to clear mocks and correct submit…
GrandMagus02 Feb 12, 2026
f6d97ec
feat(SliderArea): implement 2D slider with separate X and Y
GrandMagus02 Feb 13, 2026
1ad5af7
feat(SliderArea): add SliderAreaThumbX and SliderAreaThumbY component…
GrandMagus02 Feb 13, 2026
cc2df56
feat(SliderArea): enhance SliderArea with new props and key event han…
GrandMagus02 Feb 14, 2026
6876b28
docs(SliderArea): add SliderArea component to docs
GrandMagus02 Feb 14, 2026
90ad285
docs(SliderArea): correct descriptions for key event handling and upd…
GrandMagus02 Feb 14, 2026
a2b5f0d
fix(SliderArea): rename props in stories
GrandMagus02 Feb 14, 2026
cd3a403
fix(SliderArea): update key event handling tests and adjust hidden in…
GrandMagus02 Feb 14, 2026
d787b66
docs(SliderArea): correct typo in self-closing element description
GrandMagus02 Feb 14, 2026
3c3ee27
fix(SliderArea): simplify modelValue type in SliderAreaRoot component
GrandMagus02 Feb 14, 2026
8a279a9
Merge remote-tracking branch 'upstream/v2' into feat/slider-area
GrandMagus02 Mar 14, 2026
f889f4d
refactor(SliderArea): replace SliderAreaTrack with SliderAreaArea and…
GrandMagus02 Mar 14, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/.vitepress/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,7 @@ export default defineConfig({
{ text: 'Pin Input', link: '/docs/components/pin-input' },
{ text: 'Radio Group', link: '/docs/components/radio-group' },
{ text: 'Select', link: '/docs/components/select' },
{ text: 'Slider Area', link: '/docs/components/slider-area' },
{ text: 'Slider', link: '/docs/components/slider' },
{ text: 'Switch', link: '/docs/components/switch' },
{ text: 'Tags Input', link: '/docs/components/tags-input' },
Expand Down
4 changes: 4 additions & 0 deletions docs/components/Demos.vue
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ import ScrollAreaDemo from './demo/ScrollArea/tailwind/index.vue'
import SelectDemo from './demo/Select/tailwind/index.vue'
import SeparatorDemo from './demo/Separator/tailwind/index.vue'
import SliderDemo from './demo/Slider/tailwind/index.vue'
import SliderAreaDemo from './demo/SliderArea/tailwind/index.vue'
import SplitterDemo from './demo/Splitter/tailwind/index.vue'
import StepperDemo from './demo/Stepper/tailwind/index.vue'
import SwitchDemo from './demo/Switch/tailwind/index.vue'
Expand Down Expand Up @@ -146,6 +147,9 @@ import DemoContainer from './DemoContainer.vue'
<DemoContainer title="slider">
<SliderDemo />
</DemoContainer>
<DemoContainer title="slider area">
<SliderAreaDemo />
</DemoContainer>
<DemoContainer title="splitter">
<SplitterDemo />
</DemoContainer>
Expand Down
22 changes: 22 additions & 0 deletions docs/components/demo/SliderArea/css/index.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<script setup lang="ts">
import { SliderAreaArea, SliderAreaRegion, SliderAreaRoot, SliderAreaThumb } from 'reka-ui'
import { ref } from 'vue'
import './styles.css'

const sliderValue = ref([[50, 50]])
</script>

<template>
<SliderAreaRoot
v-model="sliderValue"
class="SliderAreaRoot"
>
<SliderAreaArea class="SliderAreaArea">
<SliderAreaRegion class="SliderAreaRegion" />
</SliderAreaArea>
<SliderAreaThumb
class="SliderAreaThumb"
aria-label="Position"
/>
</SliderAreaRoot>
</template>
41 changes: 41 additions & 0 deletions docs/components/demo/SliderArea/css/styles.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
@import '@radix-ui/colors/black-alpha.css';
@import '@radix-ui/colors/grass.css';

.SliderAreaRoot {
position: relative;
display: block;
user-select: none;
touch-action: none;
width: 200px;
height: 200px;
}

.SliderAreaArea {
background-color: var(--black-a10);
display: block;
position: relative;
width: 100%;
height: 100%;
border-radius: 6px;
}

.SliderAreaRegion {
background-color: rgba(255, 255, 255, 0.25);
border-radius: 4px;
}

.SliderAreaThumb {
display: block;
width: 20px;
height: 20px;
background-color: white;
box-shadow: 0 2px 10px var(--black-a7);
border-radius: 10px;
}
.SliderAreaThumb:hover {
background-color: var(--grass-3);
}
.SliderAreaThumb:focus {
outline: none;
box-shadow: 0 0 0 5px var(--black-a8);
}
25 changes: 25 additions & 0 deletions docs/components/demo/SliderArea/tailwind/index.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<script setup lang="ts">
import { SliderAreaArea, SliderAreaRegion, SliderAreaRoot, SliderAreaThumb } from 'reka-ui'
import { ref } from 'vue'

const sliderValue = ref([[50, 50]])
</script>

<template>
<SliderAreaRoot
v-model="sliderValue"
class="relative block select-none touch-none w-[200px] h-[200px]"
:max-x="100"
:max-y="100"
:step-x="1"
:step-y="1"
>
<SliderAreaArea class="bg-stone-500/30 block relative w-full h-full overflow-hidden rounded-md">
<SliderAreaRegion class="bg-grass8 rounded-sm" />
</SliderAreaArea>
<SliderAreaThumb
class="block w-6 h-6 bg-white rounded-full hover:bg-stone-50 shadow-sm focus:outline-none focus:shadow-[0_0_0_2px] focus:shadow-grass9"
aria-label="Position"
/>
</SliderAreaRoot>
</template>
14 changes: 14 additions & 0 deletions docs/components/demo/SliderArea/tailwind/tailwind.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
const { blackA } = require('@radix-ui/colors')

/** @type {import('tailwindcss').Config} */
module.exports = {
content: ['./**/*.vue'],
theme: {
extend: {
colors: {
...blackA,
},
},
},
plugins: [],
}
Loading