UPD: UI Animations
This commit is contained in:
@@ -1,16 +1,19 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="p-2 border-solid border-0 border-b">
|
<div class="p-2 border-solid border-0 border-b">
|
||||||
<div class="flex rounded-lg overflow-hidden border border-zinc-800">
|
<div class="flex rounded-lg overflow-hidden border border-zinc-800">
|
||||||
<TabSelectButton
|
<TransitionGroup name="flex">
|
||||||
v-for="(option, key) in options" :key="key"
|
<TabSelectButton
|
||||||
:ref="(el) => buttons[key] = el"
|
v-for="(option, key) in options" :key="key"
|
||||||
:title="$t(option.titleKey)"
|
:ref="(el) => buttons[key] = el"
|
||||||
:icon="option.icon" :selected="model===key"
|
:title="$t(option.titleKey)"
|
||||||
@select="model=key">
|
:icon="option.icon" :selected="model===key"
|
||||||
<template v-if="$slots[key]" #replace>
|
class="min-w-0 overflow-hidden"
|
||||||
<slot :name="key" />
|
@select="model=key">
|
||||||
</template>
|
<template v-if="$slots[key]" #replace>
|
||||||
</TabSelectButton>
|
<slot :name="key" />
|
||||||
|
</template>
|
||||||
|
</TabSelectButton>
|
||||||
|
</TransitionGroup>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -73,4 +76,15 @@ defineProps({
|
|||||||
}),
|
}),
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
<style scoped>
|
||||||
|
.flex-enter-active,
|
||||||
|
.flex-leave-active {
|
||||||
|
transition: flex-grow 75ms;
|
||||||
|
}
|
||||||
|
|
||||||
|
.flex-enter-from,
|
||||||
|
.flex-leave-to {
|
||||||
|
flex-grow: 0.000001;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
<template>
|
<template>
|
||||||
<ConfigSection title="Key Light" :icon-component="Lightbulb">
|
<ConfigSection title="Key Colors" :icon-component="Palette">
|
||||||
<PaletteInput v-model="keyColors" />
|
<PaletteInput v-model="keyColors" />
|
||||||
</ConfigSection>
|
</ConfigSection>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import { Lightbulb } from 'lucide-vue-next'
|
import { Palette } from 'lucide-vue-next'
|
||||||
import ConfigSection from '@/components/common/ConfigSection.vue'
|
import ConfigSection from '@/components/common/ConfigSection.vue'
|
||||||
import PaletteInput from '@/components/common/PaletteInput.vue'
|
import PaletteInput from '@/components/common/PaletteInput.vue'
|
||||||
import Color from 'color'
|
import Color from 'color'
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
<template>
|
<template>
|
||||||
<ConfigSection title="Key Mapping" :icon-component="Keyboard">
|
<ConfigSection title="Key Mapping" :icon-component="PlusSquare">
|
||||||
<WIP />
|
<WIP />
|
||||||
</ConfigSection>
|
</ConfigSection>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import { Keyboard } from 'lucide-vue-next'
|
import { PlusSquare } from 'lucide-vue-next'
|
||||||
import ConfigSection from '@/components/common/ConfigSection.vue'
|
import ConfigSection from '@/components/common/ConfigSection.vue'
|
||||||
import WIP from '@/components/WIP.vue'
|
import WIP from '@/components/WIP.vue'
|
||||||
</script>
|
</script>
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
<template>
|
<template>
|
||||||
<ConfigSection title="Ring Light" :icon-component="Lightbulb">
|
<ConfigSection title="Ring Colors" :icon-component="Palette">
|
||||||
<PaletteInput v-model="ringColors" />
|
<PaletteInput v-model="ringColors" />
|
||||||
</ConfigSection>
|
</ConfigSection>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import { Lightbulb } from 'lucide-vue-next'
|
import { Palette } from 'lucide-vue-next'
|
||||||
import ConfigSection from '@/components/common/ConfigSection.vue'
|
import ConfigSection from '@/components/common/ConfigSection.vue'
|
||||||
import PaletteInput from '@/components/common/PaletteInput.vue'
|
import PaletteInput from '@/components/common/PaletteInput.vue'
|
||||||
import Color from 'color'
|
import Color from 'color'
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
<template>
|
<template>
|
||||||
<ConfigSection title="Knob Mapping" :icon-component="GaugeCircle">
|
<ConfigSection title="Knob Mapping" :icon-component="PlusCircle">
|
||||||
<WIP />
|
<WIP />
|
||||||
</ConfigSection>
|
</ConfigSection>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import { GaugeCircle } from 'lucide-vue-next'
|
import { PlusCircle } from 'lucide-vue-next'
|
||||||
import ConfigSection from '@/components/common/ConfigSection.vue'
|
import ConfigSection from '@/components/common/ConfigSection.vue'
|
||||||
import WIP from '@/components/WIP.vue'
|
import WIP from '@/components/WIP.vue'
|
||||||
</script>
|
</script>
|
||||||
@@ -53,7 +53,7 @@
|
|||||||
<DeviceKeys
|
<DeviceKeys
|
||||||
v-if="store.connected"
|
v-if="store.connected"
|
||||||
class="absolute w-[72.7%] top-[77.2%] gap-[2.8%] left-0 right-0 mx-auto"
|
class="absolute w-[72.7%] top-[77.2%] gap-[2.8%] left-0 right-0 mx-auto"
|
||||||
:selected="store.selectedFeature === 'key' && store.selectedKey"
|
:selected="store.selectedFeature === 'key' ? store.selectedKey : ''"
|
||||||
@select="store.selectKey" />
|
@select="store.selectKey" />
|
||||||
</Transition>
|
</Transition>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -57,6 +57,9 @@
|
|||||||
v-bind="dragOptions"
|
v-bind="dragOptions"
|
||||||
@change="(event)=>onProfileDrop(event, categoryIndex)"
|
@change="(event)=>onProfileDrop(event, categoryIndex)"
|
||||||
>
|
>
|
||||||
|
<div v-if="category.profiles.length === 0">
|
||||||
|
HELLO THERE!
|
||||||
|
</div>
|
||||||
<template #item="{ element }">
|
<template #item="{ element }">
|
||||||
<ProfileButton
|
<ProfileButton
|
||||||
:key="element.id"
|
:key="element.id"
|
||||||
|
|||||||
Reference in New Issue
Block a user