Skip to content

Commit

Permalink
export label class and examples
Browse files Browse the repository at this point in the history
  • Loading branch information
vasucp1207 committed Jul 22, 2023
1 parent 8c64726 commit b1de6ee
Show file tree
Hide file tree
Showing 24 changed files with 219 additions and 11 deletions.
13 changes: 13 additions & 0 deletions docs/components/checkbox.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import CheckboxDefault from './checkbox/examples/CheckboxDefault.vue'
import CheckboxDisabled from './checkbox/examples/CheckboxDisabled.vue'
import CheckboxChecked from './checkbox/examples/CheckboxChecked.vue'
import CheckboxLink from './checkbox/examples/CheckboxLink.vue'
import CustomClasses from './checkbox/examples/CustomClasses.vue'
</script>
# Vue Checkbox - Flowbite

Expand Down Expand Up @@ -67,3 +68,15 @@ const ref1 = ref(true)
```

<CheckboxLink />

## Override classes

Override default input field class with `classes` and `labelClass` for label.

```vue
<template>
<Input classes="focus:ring-green-500 focus:border-green-500 dark:focus:ring-green-500 dark:focus:border-green-500" placeholder="enter your first name" label="First name" />
</template>
```

<CustomClasses />
7 changes: 7 additions & 0 deletions docs/components/checkbox/examples/CustomClasses.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<template>
<Checkbox classes="!w-6 !h-6 text-green-500 rounded dark:ring-offset-gray-800 focus:ring-green-500" label="Default checkbox" />
</template>

<script setup>
import Checkbox from '../../../../src/components/Checkbox/Checkbox.vue'
</script>
13 changes: 13 additions & 0 deletions docs/components/fileInput.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import FileInpHelper from './fileInput/examples/FileInpHelper.vue'
import FileInpSize from './fileInput/examples/FileInpSize.vue'
import FileInpDropZone from './fileInput/examples/FileInpDropZone.vue'
import MultipleFile from './fileInput/examples/MultipleFile.vue'
import CustomClasses from './fileInput/examples/CustomClasses.vue'
</script>

# Vue FileInput - Flowbite
Expand Down Expand Up @@ -101,3 +102,15 @@ import FileInput from 'flowbite-vue'
```

<FileInpDropZone />

## Override classes

Override default input field class with `classes` and `labelClass` for label.

```vue
<template>
<FileInput classes="focus:ring-green-500 focus:border-green-500 dark:focus:ring-green-500 dark:focus:border-green-500" label="Upload file" />
</template>
```

<CustomClasses />
8 changes: 8 additions & 0 deletions docs/components/fileInput/examples/CustomClasses.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<template>
<FileInput classes="focus:ring-green-500 focus:border-green-500 dark:focus:ring-green-500 dark:focus:border-green-500" label="Upload file" />
</template>

<script setup>
import FileInput from '../../../../src/components/FileInput/FileInput.vue'
</script>

13 changes: 13 additions & 0 deletions docs/components/input.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import InputHelperExample from './input/examples/InputHelperExample.vue';
import InputPrefixExample from './input/examples/InputPrefixExample.vue';
import InputSuffixExample from './input/examples/InputSuffixExample.vue'
import InputRequiredExample from './input/examples/InputRequiredExample.vue'
import CustomClasses from './input/examples/CustomClasses.vue'
</script>

# Vue Input - Flowbite
Expand Down Expand Up @@ -124,3 +125,15 @@ import { Input, Button } from 'flowbite-vue'
```

<InputSuffixExample />

## Override classes

Override default input field class with `classes` and `labelClass` for label.

```vue
<template>
<Input classes="focus:ring-green-500 focus:border-green-500 dark:focus:ring-green-500 dark:focus:border-green-500" placeholder="enter your first name" label="First name" />
</template>
```

<CustomClasses />
7 changes: 7 additions & 0 deletions docs/components/input/examples/CustomClasses.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<template>
<Input classes="focus:ring-green-500 focus:border-green-500 dark:focus:ring-green-500 dark:focus:border-green-500" placeholder="enter your first name" label="First name" />
</template>
<script lang="ts" setup>
import { Input } from '../../../../src/index'
</script>

18 changes: 17 additions & 1 deletion docs/components/radio.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import HorizontalListRadio from './radio/examples/HorizontalListRadio.vue'
import InlineRadio from './radio/examples/InlineRadio.vue'
import LinkRadio from './radio/examples/LinkRadio.vue'
import BorderedRadio from './radio/examples/BorderedRadio.vue'
import CustomClasses from './radio/examples/CustomClasses.vue'
</script>

# Vue Toggle Radio - Flowbite
Expand Down Expand Up @@ -129,4 +130,19 @@ const picked = ref('one')
</template>
```

<BorderedRadio />
<BorderedRadio />

## Override classes

Override default radio field class with `classes` and `labelClass` for label.

```vue
<template>
<div>
<Radio classes="!w-6 !h-6 text-green-600 focus:ring-green-500 dark:focus:ring-green-500 dark:ring-offset-gray-800" name="default radio" v-model="picked" value="one" label="Default radio" />
<Radio classes="!w-6 !h-6 text-green-600 focus:ring-green-500 dark:focus:ring-green-500 dark:ring-offset-gray-800" name="default radio" v-model="picked" value="two" label="Checked state" />
</div>
</template>
```

<CustomClasses />
14 changes: 14 additions & 0 deletions docs/components/radio/examples/CustomClasses.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<template>
<div>
<Radio classes="!w-6 !h-6 text-green-600 focus:ring-green-500 dark:focus:ring-green-500 dark:ring-offset-gray-800" name="default radio" v-model="picked" value="one" label="Default radio" />
<Radio classes="!w-6 !h-6 text-green-600 focus:ring-green-500 dark:focus:ring-green-500 dark:ring-offset-gray-800" name="default radio" v-model="picked" value="two" label="Checked state" />
</div>
</template>

<script setup>
import Radio from '../../../../src/components/Radio/Radio.vue'
import { ref } from 'vue'
const picked = ref('one')
</script>

14 changes: 13 additions & 1 deletion docs/components/range.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import DisabledRange from './range/examples/DisabledRange.vue'
import MinMaxRange from './range/examples/MinMaxRange.vue'
import StepsRange from './range/examples/StepsRange.vue'
import SizeRange from './range/examples/SizeRange.vue'
import CustomClasses from './range/examples/CustomClasses.vue'
</script>

# Vue Toggle Range - Flowbite
Expand All @@ -28,7 +29,6 @@ import { ref } from 'vue'
const value = ref('10')
</script>
```

<DefaultRange />
Expand Down Expand Up @@ -77,3 +77,15 @@ const value = ref('10')
```

<SizeRange />

## Override classes

Override default range field class with `classes` and `labelClass` for label.

```vue
<template>
<Range classes="dark:bg-blue-200 bg-blue-200" v-model="value" />
</template>
```

<CustomClasses />
12 changes: 12 additions & 0 deletions docs/components/range/examples/CustomClasses.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<template>
<div>
<Range classes="dark:bg-blue-200 bg-blue-200" v-model="value" />
</div>
</template>

<script setup>
import Range from '../../../../src/components/Range/Range.vue'
import { ref } from 'vue'
const value = ref('10')
</script>
15 changes: 14 additions & 1 deletion docs/components/select.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import SelectExample from './select/examples/SelectExample.vue';
import DisabledSelect from './select/examples/DisabledSelect.vue';
import SelectSize from './select/examples/SelectSize.vue';
import UnderlinedSelect from './select/examples/UnderlinedSelect.vue';
import CustomClasses from './select/examples/CustomClasses.vue'
</script>

# Vue Select - Flowbite
Expand Down Expand Up @@ -73,4 +74,16 @@ const countries = [
</template>
```

<SelectSize />
<SelectSize />

## Override classes

Override default select field class with `classes` and `labelClass` for label.

```vue
<template>
<Select classes="focus:ring-green-500 focus:border-green-500 dark:focus:ring-green-500 dark:focus:border-green-500" :options="countries" label="Select a country" />
</template>
```

<CustomClasses />
13 changes: 13 additions & 0 deletions docs/components/select/examples/CustomClasses.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<template>
<Select classes="focus:ring-green-500 focus:border-green-500 dark:focus:ring-green-500 dark:focus:border-green-500" :options="countries" label="Select a country" />
</template>

<script setup>
import { Select } from '../../../../src/index'
const countries = [
{ value: 'us', name: 'United States' },
{ value: 'ca', name: 'Canada' },
{ value: 'fr', name: 'France' },
]
</script>
13 changes: 13 additions & 0 deletions docs/components/textarea.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<script setup>
import DefaultTextarea from './textarea/examples/DefaultTextarea.vue'
import CommentTextarea from './textarea/examples/CommentTextarea.vue'
import CustomClasses from './textarea/examples/CustomClasses.vue'
</script>

# Vue Textarea - Flowbite
Expand Down Expand Up @@ -63,3 +64,15 @@ import { Button, Textarea } from 'flowbite-vue'
```

<CommentTextarea />

## Override classes

Override default input field class with `classes` and `labelClass` for label.

```vue
<template>
<Textarea classes="focus:ring-green-500 focus:border-green-500 dark:focus:ring-green-500 dark:focus:border-green-500" rows="4" placeholder="Write you message..." v-model="message" label="Your message" />
</template>
```

<CustomClasses />
12 changes: 12 additions & 0 deletions docs/components/textarea/examples/CustomClasses.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<template>
<div>
<Textarea classes="focus:ring-green-500 focus:border-green-500 dark:focus:ring-green-500 dark:focus:border-green-500" rows="4" placeholder="Write you message..." v-model="message" label="Your message" />
</div>
</template>

<script setup>
import { ref } from 'vue'
import Textarea from '../../../../src/components/Textarea/Textarea.vue'
const message = ref('')
</script>
13 changes: 13 additions & 0 deletions docs/components/toggle.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import DisabledToggle from './toggle/examples/DisabledToggle.vue'
import ColorsToggle from './toggle/examples/ColorsToggle.vue'
import SizeToggle from './toggle/examples/SizeToggle.vue'
import CustomClasses from './toggle/examples/CustomClasses.vue'
</script>

# Vue Toggle - Flowbite
Expand Down Expand Up @@ -89,3 +90,15 @@ const toggle = ref(false)
```

<SizeToggle />

## Override classes

Override default toggle field class with `classes` and `labelClass` for label.

```vue
<template>
<Toggle classes="peer-focus:ring-pink-300 dark:peer-focus:ring-pink-800 peer-checked:bg-pink-600" v-model="toggle" label="Toggle me" />
</template>
```

<CustomClasses />
13 changes: 13 additions & 0 deletions docs/components/toggle/examples/CustomClasses.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<template>
<div class="flex flex-col gap-2">
<Toggle classes="peer-focus:ring-pink-300 dark:peer-focus:ring-pink-800 peer-checked:bg-pink-600" v-model="toggle" label="Toggle me" />
</div>
</template>

<script setup>
import { ref } from 'vue'
import { Toggle } from '../../../../src/index'
const toggle = ref(false)
</script>

4 changes: 3 additions & 1 deletion src/components/Checkbox/Checkbox.vue
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<template>
<label class="flex gap-3 items-center justify-start">
<label :class="props.labelClass" class="flex gap-3 items-center justify-start">
<input v-model="model" type="checkbox" :disabled="disabled" :class="[checkboxClasses, props.classes]" />
<span v-if="label" :class="labelClasses">{{ label }}</span>
<slot />
Expand All @@ -15,12 +15,14 @@ interface CheckboxProps {
label?: string,
disabled?: boolean,
classes?: string,
labelClass?: string,
}
const props = withDefaults(defineProps<CheckboxProps>(), {
modelValue: false,
label: '',
disabled: false,
classes: '',
labelClass: '',
})
const emit = defineEmits(['update:modelValue'])
Expand Down
4 changes: 3 additions & 1 deletion src/components/FileInput/FileInput.vue
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<div>
<div v-if="!dropzone">
<label>
<span :class="labelClasses">{{ label }}</span>
<span :class="[labelClasses, props.labelClass]">{{ label }}</span>
<input :class="fileInpClasses" :multiple="multiple" @change="handleChange" type="file" />
</label>
<slot />
Expand Down Expand Up @@ -46,6 +46,7 @@ interface FileInputProps {
dropzone?: boolean
multiple?: boolean
classes?: string
labelClass?: string
}
const props = withDefaults(defineProps<FileInputProps>(), {
modelValue: null,
Expand All @@ -54,6 +55,7 @@ const props = withDefaults(defineProps<FileInputProps>(), {
dropzone: false,
multiple: false,
classes: '',
labelClass: '',
})
const dropZoneText = computed(() => {
if (isArray(props.modelValue)) {
Expand Down
4 changes: 3 additions & 1 deletion src/components/Input/Input.vue
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<template>
<div>
<label v-if="label" :class="labelClasses">{{ label }}</label>
<label v-if="label" :class="[labelClasses, props.labelClass]">{{ label }}</label>
<div class="flex relative">
<div v-if="$slots.prefix" class="w-10 flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none overflow-hidden">
<slot name="prefix" />
Expand Down Expand Up @@ -37,6 +37,7 @@ interface InputProps {
required?: boolean;
modelValue: string;
classes?: string;
labelClass?: string;
}
const props = withDefaults(defineProps<InputProps>(), {
Expand All @@ -47,6 +48,7 @@ const props = withDefaults(defineProps<InputProps>(), {
required: false,
modelValue: '',
classes: '',
labelClass: '',
})
const model = useVModel(props, 'modelValue')
Expand Down
Loading

0 comments on commit b1de6ee

Please sign in to comment.