Skip to content

Commit

Permalink
feat(number): support type
Browse files Browse the repository at this point in the history
  • Loading branch information
qianmoQ committed Nov 5, 2024
1 parent a1867d8 commit baf89da
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 8 deletions.
35 changes: 35 additions & 0 deletions docs/components/number.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,13 +64,48 @@ const value = ref(0)

:::

## Type

::: raw

<CodeRunner title="Type">
<div class="space-y-2">
<ShadcnNumber v-model="value" size="small" type="primary"/>
<ShadcnNumber v-model="value" size="default" type="warning"/>
<ShadcnNumber v-model="value" size="large" type="success"/>
<ShadcnNumber v-model="value" size="large" type="error"/>
</div>
</CodeRunner>

:::

::: details Show code

```vue
<template>
<ShadcnNumber v-model="value" size="small" type="primary"/>
<ShadcnNumber v-model="value" size="default" type="warning"/>
<ShadcnNumber v-model="value" size="large" type="success"/>
<ShadcnNumber v-model="value" size="large" type="error"/>
</template>
<script setup lang="ts">
import { ref } from 'vue';
const value = ref(0)
</script>
```

:::

## Props

<ApiTable title="Number Props"
:headers="['Attribute', 'Description', 'Type', 'Default Value', 'List']"
:columns="[
['modelValue', 'Number value', 'number', '-', '-'],
['size', 'Size of the number', 'string', 'default', 'small | default | large'],
['type', 'Type of the number', 'string', 'default', 'primary | warning | success | error'],
]">
</ApiTable>

Expand Down
11 changes: 5 additions & 6 deletions src/App.vue
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
<template>
<div class="p-32">
<div class="p-32 space-y-2">
Value: {{ value }}
<ShadcnSpace wrap>
<ShadcnNumber v-model="value" size="small"/>
<ShadcnNumber v-model="value" size="default"/>
<ShadcnNumber v-model="value" size="large" @on-blur="console.log($event)"/>
</ShadcnSpace>
<ShadcnNumber v-model="value" size="small" type="primary"/>
<ShadcnNumber v-model="value" size="default" type="warning"/>
<ShadcnNumber v-model="value" size="large" type="success"/>
<ShadcnNumber v-model="value" size="large" type="error"/>
</div>
</template>

Expand Down
7 changes: 5 additions & 2 deletions src/ui/number/ShadcnNumber.vue
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
<template>
<div class="relative">
<div :class="['flex items-center justify-between border rounded p-3',
Size[size]
Size[size],
HoverType[type]
]">
<!-- Input field for direct number entry -->
<input :class="['w-full outline-none text-sm',
Expand All @@ -21,10 +22,12 @@ import { NumberEmits, NumberProps } from './types'
import { isNumber } from '@/utils/number.ts'
import { Size } from '@/ui/common/size.ts'
import { FormItemContext } from '@/ui/form/context.ts'
import { HoverType } from '@/ui/common/type.ts'
const emit = defineEmits<NumberEmits>()
const props = withDefaults(defineProps<NumberProps>(), {
size: 'default'
size: 'default',
type: 'primary'
})
// Create a reactive reference for the modelValue
Expand Down
2 changes: 2 additions & 0 deletions src/ui/number/types.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
import { Size } from '@/ui/common/size.ts'
import { HoverType } from '@/ui/common/type.ts'

export interface NumberProps
{
modelValue?: number | string
name?: string
size?: keyof typeof Size
type?: keyof typeof HoverType
}

export type NumberEmits = {
Expand Down

0 comments on commit baf89da

Please sign in to comment.