diff --git a/docs/content/2.components/select.md b/docs/content/2.components/select.md new file mode 100644 index 0000000..7858d21 --- /dev/null +++ b/docs/content/2.components/select.md @@ -0,0 +1,25 @@ +--- +description: The select component is used to create a dropdown list of options +--- + +## Usage + +::ComponentPreview +--- +props: + placeholder: huh? + options: [{label: 'Option 1', value: 'option1'}, {label: 'Option 2', value: 'option2'}, {label: 'Option 3', value: 'option3', disabled: true}] +--- +:: + +## API + +### Props + +::ComponentProps +:: + +### Theme + +::ComponentDefaults +:: diff --git a/src/runtime/components/forms/Select.vue b/src/runtime/components/forms/Select.vue new file mode 100644 index 0000000..95ceb5e --- /dev/null +++ b/src/runtime/components/forms/Select.vue @@ -0,0 +1,156 @@ + + + diff --git a/src/runtime/themes/forms/select.ts b/src/runtime/themes/forms/select.ts new file mode 100644 index 0000000..c784241 --- /dev/null +++ b/src/runtime/themes/forms/select.ts @@ -0,0 +1,5 @@ +import input from './input' + +export default { + ...input, +} diff --git a/src/runtime/themes/index.ts b/src/runtime/themes/index.ts index dd9656e..52d1342 100644 --- a/src/runtime/themes/index.ts +++ b/src/runtime/themes/index.ts @@ -10,6 +10,7 @@ export { default as mark } from './elements/mark' export { default as input } from './forms/input' export { default as textarea } from './forms/textarea' export { default as toggle } from './forms/toggle' +export { default as select } from './forms/select' // overlays export { default as message } from './overlays/message' diff --git a/src/runtime/types/index.ts b/src/runtime/types/index.ts index 532ee79..8270430 100644 --- a/src/runtime/types/index.ts +++ b/src/runtime/types/index.ts @@ -5,5 +5,6 @@ export * from './textarea' export * from './kbd' export * from './toggle' export * from './mark' +export * from './select' export * from './utils' diff --git a/src/runtime/types/select.d.ts b/src/runtime/types/select.d.ts new file mode 100644 index 0000000..ec5ae06 --- /dev/null +++ b/src/runtime/types/select.d.ts @@ -0,0 +1,8 @@ +import type { AppConfig } from 'nuxt/schema' +import type { select } from '../themes' +import type { ExtractDeepKey } from './utils' +import type colors from '#ray-colors' + +export type SelectColor = (typeof colors)[number] +export type SelectSize = keyof typeof select.size | ExtractDeepKey +export type SelectVariant = keyof typeof select.variant | ExtractDeepKey