11import type { Meta , StoryObj } from "@storybook/react" ;
22import {
33 Select ,
4- SelectContent ,
54 SelectGroup ,
6- SelectItem ,
7- SelectLabel ,
8- SelectTrigger ,
95 SelectValue ,
6+ SelectTrigger ,
7+ SelectContent ,
8+ SelectLabel ,
9+ SelectItem ,
1010 SelectSeparator ,
11+ SelectScrollUpButton ,
12+ SelectScrollDownButton ,
13+ SelectTriggerProps ,
1114} from "./index" ;
1215
1316const meta = {
1417 title : "Form/Select" ,
15- component : SelectTrigger ,
18+ component : Select ,
19+ subcomponents : {
20+ SelectGroup,
21+ SelectValue,
22+ SelectTrigger,
23+ SelectContent,
24+ SelectLabel,
25+ SelectItem,
26+ SelectSeparator,
27+ SelectScrollUpButton,
28+ SelectScrollDownButton,
29+ } ,
1630 parameters : {
1731 layout : "centered" ,
1832 } ,
1933 tags : [ "autodocs" ] ,
20- argTypes : {
21- disabled : {
22- control : "boolean" ,
23- description : "セレクトを無効化します" ,
24- defaultValue : false ,
25- } ,
26- size : {
27- control : { type : "radio" } ,
28- options : [ "sm" , "md" , "lg" ] ,
29- description : "セレクトのサイズを指定します" ,
30- defaultValue : "md" ,
31- } ,
32- isInvalid : {
33- control : "boolean" ,
34- description : "エラー状態を指定します" ,
35- defaultValue : false ,
36- } ,
37- } ,
38- } satisfies Meta < typeof SelectTrigger > ;
34+ argTypes : { } ,
35+ } satisfies Meta < typeof Select > ;
3936
4037export default meta ;
41- type Story = StoryObj < typeof SelectTrigger > ;
38+ type Story = StoryObj < SelectTriggerProps > ;
39+ const argTypes : Story [ "argTypes" ] = {
40+ disabled : {
41+ control : "boolean" ,
42+ defaultValue : false ,
43+ } ,
44+ size : {
45+ control : { type : "radio" } ,
46+ options : [ "sm" , "md" , "lg" ] ,
47+ defaultValue : "md" ,
48+ } ,
49+ isInvalid : {
50+ control : "boolean" ,
51+ defaultValue : false ,
52+ } ,
53+ } ;
4254
4355export const Default : Story = {
56+ argTypes : argTypes ,
4457 render : args => (
4558 < Select >
46- < SelectTrigger className = "w-[280px ]" { ...args } >
59+ < SelectTrigger className = "w-[480px ]" { ...args } >
4760 < SelectValue placeholder = "Select a timezone" />
4861 </ SelectTrigger >
4962 < SelectContent >
@@ -111,6 +124,7 @@ export const Small: Story = {
111124 args : {
112125 size : "sm" ,
113126 } ,
127+ argTypes : argTypes ,
114128 render : args => (
115129 < Select >
116130 < SelectTrigger className = "w-[240px]" { ...args } >
@@ -129,6 +143,7 @@ export const Medium: Story = {
129143 args : {
130144 size : "md" ,
131145 } ,
146+ argTypes : argTypes ,
132147 render : args => (
133148 < Select >
134149 < SelectTrigger className = "w-[240px]" { ...args } >
@@ -147,6 +162,7 @@ export const Large: Story = {
147162 args : {
148163 size : "lg" ,
149164 } ,
165+ argTypes : argTypes ,
150166 render : args => (
151167 < Select >
152168 < SelectTrigger className = "w-[240px]" { ...args } >
@@ -162,6 +178,7 @@ export const Large: Story = {
162178} ;
163179
164180export const Invalid : Story = {
181+ argTypes : argTypes ,
165182 render : args => (
166183 < Select >
167184 < SelectTrigger className = "w-[240px]" isInvalid { ...args } >
@@ -177,6 +194,7 @@ export const Invalid: Story = {
177194} ;
178195
179196export const Disabled : Story = {
197+ argTypes : argTypes ,
180198 render : args => (
181199 < Select >
182200 < SelectTrigger className = "w-[240px]" disabled { ...args } >
@@ -192,6 +210,7 @@ export const Disabled: Story = {
192210} ;
193211
194212export const DisabledWithInvalidState : Story = {
213+ argTypes : argTypes ,
195214 render : args => (
196215 < Select >
197216 < SelectTrigger className = "w-[240px]" disabled isInvalid { ...args } >
0 commit comments