File tree Expand file tree Collapse file tree 8 files changed +465
-25
lines changed
components/src/renderers/disclosure Expand file tree Collapse file tree 8 files changed +465
-25
lines changed Original file line number Diff line number Diff line change @@ -21,7 +21,7 @@ ComponentRegistry.register('toggle-group',
2121
2222 return (
2323 < ToggleGroup
24- type = { schema . type || 'single' }
24+ type = { schema . selectionType || 'single' }
2525 variant = { schema . variant }
2626 size = { schema . size }
2727 value = { schema . value }
@@ -41,11 +41,11 @@ ComponentRegistry.register('toggle-group',
4141 label : 'Toggle Group' ,
4242 inputs : [
4343 {
44- name : 'type ' ,
44+ name : 'selectionType ' ,
4545 type : 'enum' ,
4646 enum : [ 'single' , 'multiple' ] ,
4747 defaultValue : 'single' ,
48- label : 'Type'
48+ label : 'Selection Type'
4949 } ,
5050 {
5151 name : 'variant' ,
@@ -64,7 +64,7 @@ ComponentRegistry.register('toggle-group',
6464 { name : 'className' , type : 'string' , label : 'CSS Class' }
6565 ] ,
6666 defaultProps : {
67- type : 'single' ,
67+ selectionType : 'single' ,
6868 variant : 'default' ,
6969 size : 'default' ,
7070 items : [
Original file line number Diff line number Diff line change @@ -609,6 +609,51 @@ export interface TimelineSchema extends BaseSchema {
609609 position ?: 'left' | 'right' | 'alternate' ;
610610}
611611
612+ /**
613+ * Breadcrumb item
614+ */
615+ export interface BreadcrumbItem {
616+ /**
617+ * Item label
618+ */
619+ label : string ;
620+ /**
621+ * Item href/link
622+ */
623+ href ?: string ;
624+ }
625+
626+ /**
627+ * Breadcrumb component
628+ */
629+ export interface BreadcrumbSchema extends BaseSchema {
630+ type : 'breadcrumb' ;
631+ /**
632+ * Breadcrumb items
633+ */
634+ items : BreadcrumbItem [ ] ;
635+ /**
636+ * Separator character
637+ * @default '/'
638+ */
639+ separator ?: string ;
640+ }
641+
642+ /**
643+ * Keyboard key component
644+ */
645+ export interface KbdSchema extends BaseSchema {
646+ type : 'kbd' ;
647+ /**
648+ * Key label (single key)
649+ */
650+ label ?: string ;
651+ /**
652+ * Key labels (multiple keys)
653+ */
654+ keys ?: string | string [ ] ;
655+ }
656+
612657/**
613658 * Union type of all data display schemas
614659 */
@@ -624,7 +669,9 @@ export type DataDisplaySchema =
624669 | ChartSchema
625670 | TimelineSchema
626671 | HtmlSchema
627- | StatisticSchema ;
672+ | StatisticSchema
673+ | BreadcrumbSchema
674+ | KbdSchema ;
628675
629676/**
630677 * Raw HTML component
Original file line number Diff line number Diff line change @@ -113,9 +113,74 @@ export interface CollapsibleSchema extends BaseSchema {
113113 onOpenChange ?: ( open : boolean ) => void ;
114114}
115115
116+ /**
117+ * Toggle group item
118+ */
119+ export interface ToggleGroupItem {
120+ /**
121+ * Item value
122+ */
123+ value : string ;
124+ /**
125+ * Item label
126+ */
127+ label : string ;
128+ /**
129+ * Item icon
130+ */
131+ icon ?: string ;
132+ /**
133+ * Whether item is disabled
134+ */
135+ disabled ?: boolean ;
136+ }
137+
138+ /**
139+ * Toggle group component
140+ */
141+ export interface ToggleGroupSchema extends BaseSchema {
142+ type : 'toggle-group' ;
143+ /**
144+ * Toggle group selection mode
145+ * @default 'single'
146+ */
147+ selectionType ?: 'single' | 'multiple' ;
148+ /**
149+ * Toggle group variant
150+ * @default 'default'
151+ */
152+ variant ?: 'default' | 'outline' ;
153+ /**
154+ * Toggle group size
155+ * @default 'default'
156+ */
157+ size ?: 'default' | 'sm' | 'lg' ;
158+ /**
159+ * Toggle group items
160+ */
161+ items ?: ToggleGroupItem [ ] ;
162+ /**
163+ * Default selected value(s)
164+ */
165+ defaultValue ?: string | string [ ] ;
166+ /**
167+ * Controlled selected value(s)
168+ */
169+ value ?: string | string [ ] ;
170+ /**
171+ * Whether toggle group is disabled
172+ */
173+ disabled ?: boolean ;
174+ /**
175+ * Change handler
176+ */
177+ onValueChange ?: ( value : string | string [ ] ) => void ;
178+ }
179+
116180/**
117181 * Union type of all disclosure schemas
118182 */
119183export type DisclosureSchema =
120184 | AccordionSchema
121- | CollapsibleSchema ;
185+ | CollapsibleSchema
186+ | ToggleGroupSchema ;
Original file line number Diff line number Diff line change @@ -167,6 +167,69 @@ export interface ToasterSchema extends BaseSchema {
167167 limit ?: number ;
168168}
169169
170+ /**
171+ * Spinner component
172+ */
173+ export interface SpinnerSchema extends BaseSchema {
174+ type : 'spinner' ;
175+ /**
176+ * Spinner size
177+ * @default 'md'
178+ */
179+ size ?: 'sm' | 'md' | 'lg' | 'xl' ;
180+ }
181+
182+ /**
183+ * Empty state component
184+ */
185+ export interface EmptySchema extends BaseSchema {
186+ type : 'empty' ;
187+ /**
188+ * Empty state title
189+ */
190+ title ?: string ;
191+ /**
192+ * Empty state description
193+ */
194+ description ?: string ;
195+ /**
196+ * Icon to display
197+ */
198+ icon ?: string ;
199+ }
200+
201+ /**
202+ * Sonner toast component (using sonner library)
203+ */
204+ export interface SonnerSchema extends BaseSchema {
205+ type : 'sonner' ;
206+ /**
207+ * Toast message/title
208+ */
209+ message ?: string ;
210+ /**
211+ * Toast title (alias for message)
212+ */
213+ title ?: string ;
214+ /**
215+ * Toast description
216+ */
217+ description ?: string ;
218+ /**
219+ * Toast variant
220+ * @default 'default'
221+ */
222+ variant ?: 'default' | 'success' | 'error' | 'warning' | 'info' ;
223+ /**
224+ * Button label to trigger toast
225+ */
226+ buttonLabel ?: string ;
227+ /**
228+ * Button variant
229+ */
230+ buttonVariant ?: 'default' | 'secondary' | 'destructive' | 'outline' | 'ghost' | 'link' ;
231+ }
232+
170233/**
171234 * Union type of all feedback schemas
172235 */
@@ -175,4 +238,7 @@ export type FeedbackSchema =
175238 | ProgressSchema
176239 | SkeletonSchema
177240 | ToastSchema
178- | ToasterSchema ;
241+ | ToasterSchema
242+ | SpinnerSchema
243+ | EmptySchema
244+ | SonnerSchema ;
Original file line number Diff line number Diff line change @@ -940,6 +940,126 @@ export interface LabelSchema extends BaseSchema {
940940 htmlFor ?: string ;
941941}
942942
943+ /**
944+ * Combobox option
945+ */
946+ export interface ComboboxOption {
947+ /**
948+ * Option value
949+ */
950+ value : string ;
951+ /**
952+ * Option label (displayed to user)
953+ */
954+ label : string ;
955+ /**
956+ * Whether option is disabled
957+ */
958+ disabled ?: boolean ;
959+ }
960+
961+ /**
962+ * Combobox component (searchable select)
963+ */
964+ export interface ComboboxSchema extends BaseSchema {
965+ type : 'combobox' ;
966+ /**
967+ * Field name for form submission
968+ */
969+ name ?: string ;
970+ /**
971+ * Combobox label
972+ */
973+ label ?: string ;
974+ /**
975+ * Placeholder text
976+ */
977+ placeholder ?: string ;
978+ /**
979+ * Combobox options
980+ */
981+ options ?: ComboboxOption [ ] ;
982+ /**
983+ * Default selected value
984+ */
985+ defaultValue ?: string ;
986+ /**
987+ * Controlled value
988+ */
989+ value ?: string ;
990+ /**
991+ * Whether field is disabled
992+ */
993+ disabled ?: boolean ;
994+ /**
995+ * Help text or description
996+ */
997+ description ?: string ;
998+ /**
999+ * Error message
1000+ */
1001+ error ?: string ;
1002+ /**
1003+ * Change handler
1004+ */
1005+ onChange ?: ( value : string ) => void ;
1006+ }
1007+
1008+ /**
1009+ * Command menu item
1010+ */
1011+ export interface CommandItem {
1012+ /**
1013+ * Item value
1014+ */
1015+ value : string ;
1016+ /**
1017+ * Item label (displayed to user)
1018+ */
1019+ label : string ;
1020+ /**
1021+ * Item icon
1022+ */
1023+ icon ?: string ;
1024+ }
1025+
1026+ /**
1027+ * Command menu group
1028+ */
1029+ export interface CommandGroup {
1030+ /**
1031+ * Group heading
1032+ */
1033+ heading ?: string ;
1034+ /**
1035+ * Group items
1036+ */
1037+ items : CommandItem [ ] ;
1038+ }
1039+
1040+ /**
1041+ * Command component (command palette)
1042+ */
1043+ export interface CommandSchema extends BaseSchema {
1044+ type : 'command' ;
1045+ /**
1046+ * Placeholder text
1047+ */
1048+ placeholder ?: string ;
1049+ /**
1050+ * Empty state text
1051+ */
1052+ emptyText ?: string ;
1053+ /**
1054+ * Command groups
1055+ */
1056+ groups ?: CommandGroup [ ] ;
1057+ /**
1058+ * Change handler
1059+ */
1060+ onChange ?: ( value : string ) => void ;
1061+ }
1062+
9431063/**
9441064 * Union type of all form schemas
9451065 */
@@ -958,5 +1078,7 @@ export type FormComponentSchema =
9581078 | CalendarSchema
9591079 | InputOTPSchema
9601080 | FormSchema
961- | LabelSchema ;
1081+ | LabelSchema
1082+ | ComboboxSchema
1083+ | CommandSchema ;
9621084
You can’t perform that action at this time.
0 commit comments