* feat: hopp ui initialized * feat: button components added * feat: windi css integration * chore: package removed from hopp ui * feat: storybook added * feat: move all smart components hoppscotch-ui * fix: import issue from components/smart * fix: env input component import * feat: add hoppui to windicss config * fix: remove storybook * feat: move components from hoppscotch-ui * feat: storybook added * feat: storybook progress * feat: themeing storybook * feat: add stories * chore: package updated * chore: stories added * feat: stories added * feat: stories added * feat: icons resolved * feat: i18n composable resolved * feat: histoire added * chore: resolved prettier issue * feat: radio story added * feat: story added for all components * feat: new components added to stories * fix: resolved issues * feat: readme.md added * feat: context/provider added * chore: removed app component registry * chore: remove importing of all components in hopp-ui to allow code splitting * chore: fix vite config errors * chore: jsdoc added * chore: any replaced with smart-item * chore: i18n added to ui components * chore: clean up - removed a duplicate button --------- Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com> Co-authored-by: Liyas Thomas <liyascthomas@gmail.com>
71 lines
1.4 KiB
Vue
71 lines
1.4 KiB
Vue
<template>
|
|
<div
|
|
class="inline-flex items-center justify-center transition cursor-pointer flex-nowrap group hover:text-secondaryDark"
|
|
role="checkbox"
|
|
:aria-checked="on"
|
|
@click="emit('change')"
|
|
>
|
|
<input
|
|
id="checkbox"
|
|
type="checkbox"
|
|
name="checkbox"
|
|
class="checkbox"
|
|
:checked="on"
|
|
@change="emit('change')"
|
|
/>
|
|
<label
|
|
for="checkbox"
|
|
class="pl-0 font-semibold truncate align-middle cursor-pointer"
|
|
>
|
|
<slot></slot>
|
|
</label>
|
|
</div>
|
|
</template>
|
|
|
|
<script setup lang="ts">
|
|
defineProps({
|
|
on: {
|
|
type: Boolean,
|
|
default: false,
|
|
},
|
|
})
|
|
|
|
const emit = defineEmits<{
|
|
(e: "change"): void
|
|
}>()
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.checkbox[type="checkbox"] {
|
|
@apply appearance-none;
|
|
@apply hidden;
|
|
|
|
& + label {
|
|
@apply inline-flex items-center justify-center;
|
|
@apply cursor-pointer;
|
|
|
|
&::before {
|
|
@apply border-2 border-divider;
|
|
@apply rounded;
|
|
@apply group-hover: border-accentDark;
|
|
@apply inline-flex;
|
|
@apply items-center;
|
|
@apply justify-center;
|
|
@apply text-transparent;
|
|
@apply h-4;
|
|
@apply w-4;
|
|
@apply font-icon;
|
|
@apply mr-2;
|
|
@apply transition;
|
|
@apply content-["\e876"];
|
|
}
|
|
}
|
|
|
|
&:checked + label::before {
|
|
@apply bg-accent;
|
|
@apply border-accent;
|
|
@apply text-accentContrast;
|
|
}
|
|
}
|
|
</style>
|