Skip to content

Commit 07951b1

Browse files
fix: automate namespaced components generation on build (#2571)
* fix: automate namespaced components generation on build * refactor: remove header and simplify template in namespaced generator * refactor: add trailing newline to generated namespaced index * fix: filter flattened components to exclude restricted items
1 parent 34153d8 commit 07951b1

3 files changed

Lines changed: 166 additions & 28 deletions

File tree

packages/plugins/package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,10 @@
1313
],
1414
"sideEffects": false,
1515
"scripts": {
16-
"build": "unbuild",
1716
"generate": "tsx ./src/namespaced/generate",
17+
"prebuild": "pnpm generate",
18+
"build": "unbuild",
19+
"prestub": "pnpm generate",
1820
"stub": "unbuild --stub"
1921
},
2022
"dependencies": {
Lines changed: 16 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,27 @@
11
import { writeFileSync } from 'node:fs'
22
import { components } from 'reka-ui/constant'
33

4-
const excludedComponent = ['configProvider', 'primitive', 'visuallyHidden']
5-
const filteredComponent = Object.keys(components).filter(i => !excludedComponent.includes(i))
6-
const flattenComponents = Object.values(components).flat()
4+
const excludedComponents = ['configProvider', 'primitive', 'visuallyHidden']
5+
const filteredComponents = (Object.keys(components) as Array<keyof typeof components>).filter(component => !excludedComponents.includes(component))
76

8-
const namespaced = filteredComponent.map((curr: keyof typeof components) => {
9-
const key = curr.charAt(0).toUpperCase() + curr.slice(1)
10-
const tmp: Record<string, string> = {}
7+
const flattenedComponents = filteredComponents.flatMap(component => components[component])
8+
const namespacedComponents = filteredComponents.map((component) => {
9+
const key = component.charAt(0).toUpperCase() + component.slice(1)
10+
const entries = components[component]
11+
.map(value => [value.replace(key, ''), value] as const)
12+
.filter(([name]) => Boolean(name))
1113

12-
const values = components[curr]
13-
values.forEach((val) => {
14-
const truncated = val.replace(key, '')
15-
if (truncated)
16-
tmp[truncated] = val
17-
})
18-
19-
if (Object.keys(tmp).length === 0) {
14+
if (entries.length === 0) {
2015
return `export { ${key} }`
2116
}
22-
else {
23-
return `export const ${key} = {\n${
24-
Object.keys(tmp).map((k) => { return ` ${k}: ${tmp[k]},\n` }).join('')
25-
}} as {\n${Object.keys(tmp).map((k) => {
26-
return ` ${k}: typeof ${tmp[k]}\n`
27-
}).join('')}}`
28-
}
29-
})
3017

31-
const template = `
32-
import { ${flattenComponents.join(', ')} } from 'reka-ui'
18+
return `export const ${key} = {\n${
19+
entries.map(([name, value]) => ` ${name}: ${value},\n`).join('')
20+
}} as {\n${
21+
entries.map(([name, value]) => ` ${name}: typeof ${value}\n`).join('')
22+
}}`
23+
})
3324

34-
${namespaced.map(component => component).join('\n\n')}
35-
`
25+
const template = `import { ${flattenedComponents.join(', ')} } from 'reka-ui'\n\n${namespacedComponents.join('\n\n')}\n`
3626

3727
writeFileSync('src/namespaced/index.ts', template, 'utf-8')

packages/plugins/src/namespaced/index.ts

Lines changed: 147 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { AccordionContent, AccordionHeader, AccordionItem, AccordionRoot, AccordionTrigger, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogOverlay, AlertDialogPortal, AlertDialogRoot, AlertDialogTitle, AlertDialogTrigger, AspectRatio, AutocompleteAnchor, AutocompleteArrow, AutocompleteCancel, AutocompleteContent, AutocompleteEmpty, AutocompleteGroup, AutocompleteInput, AutocompleteItem, AutocompleteItemIndicator, AutocompleteLabel, AutocompletePortal, AutocompleteRoot, AutocompleteSeparator, AutocompleteTrigger, AutocompleteViewport, AutocompleteVirtualizer, AvatarFallback, AvatarImage, AvatarRoot, CalendarCell, CalendarCellTrigger, CalendarGrid, CalendarGridBody, CalendarGridHead, CalendarGridRow, CalendarHeadCell, CalendarHeader, CalendarHeading, CalendarNext, CalendarPrev, CalendarRoot, CheckboxGroupRoot, CheckboxIndicator, CheckboxRoot, CollapsibleContent, CollapsibleRoot, CollapsibleTrigger, ComboboxAnchor, ComboboxArrow, ComboboxCancel, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxItemIndicator, ComboboxLabel, ComboboxPortal, ComboboxRoot, ComboboxSeparator, ComboboxTrigger, ComboboxViewport, ComboboxVirtualizer, ContextMenuArrow, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuItemIndicator, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuRoot, ContextMenuSeparator, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DateFieldInput, DateFieldRoot, DatePickerAnchor, DatePickerArrow, DatePickerCalendar, DatePickerCell, DatePickerCellTrigger, DatePickerClose, DatePickerContent, DatePickerField, DatePickerGrid, DatePickerGridBody, DatePickerGridHead, DatePickerGridRow, DatePickerHeadCell, DatePickerHeader, DatePickerHeading, DatePickerInput, DatePickerNext, DatePickerPrev, DatePickerRoot, DatePickerTrigger, DateRangeFieldInput, DateRangeFieldRoot, DateRangePickerAnchor, DateRangePickerArrow, DateRangePickerCalendar, DateRangePickerCell, DateRangePickerCellTrigger, DateRangePickerClose, DateRangePickerContent, DateRangePickerField, DateRangePickerGrid, DateRangePickerGridBody, DateRangePickerGridHead, DateRangePickerGridRow, DateRangePickerHeadCell, DateRangePickerHeader, DateRangePickerHeading, DateRangePickerInput, DateRangePickerNext, DateRangePickerPrev, DateRangePickerRoot, DateRangePickerTrigger, DialogClose, DialogContent, DialogDescription, DialogOverlay, DialogPortal, DialogRoot, DialogTitle, DialogTrigger, DropdownMenuArrow, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuFilter, DropdownMenuGroup, DropdownMenuItem, DropdownMenuItemIndicator, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuRoot, DropdownMenuSeparator, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EditableArea, EditableCancelTrigger, EditableEditTrigger, EditableInput, EditablePreview, EditableRoot, EditableSubmitTrigger, FocusScope, HoverCardArrow, HoverCardContent, HoverCardPortal, HoverCardRoot, HoverCardTrigger, Label, ListboxContent, ListboxFilter, ListboxGroup, ListboxGroupLabel, ListboxItem, ListboxItemIndicator, ListboxRoot, ListboxVirtualizer, MenubarArrow, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarItemIndicator, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarRoot, MenubarSeparator, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuRoot, NavigationMenuSub, NavigationMenuTrigger, NavigationMenuViewport, NumberFieldDecrement, NumberFieldIncrement, NumberFieldInput, NumberFieldRoot, PaginationEllipsis, PaginationFirst, PaginationLast, PaginationList, PaginationListItem, PaginationNext, PaginationPrev, PaginationRoot, PinInputInput, PinInputRoot, PopoverAnchor, PopoverArrow, PopoverClose, PopoverContent, PopoverPortal, PopoverRoot, PopoverTrigger, Presence, ProgressIndicator, ProgressRoot, RadioGroupIndicator, RadioGroupItem, RadioGroupRoot, RangeCalendarCell, RangeCalendarCellTrigger, RangeCalendarGrid, RangeCalendarGridBody, RangeCalendarGridHead, RangeCalendarGridRow, RangeCalendarHeadCell, RangeCalendarHeader, RangeCalendarHeading, RangeCalendarNext, RangeCalendarPrev, RangeCalendarRoot, RovingFocusGroup, RovingFocusItem, ScrollAreaCorner, ScrollAreaRoot, ScrollAreaScrollbar, ScrollAreaThumb, ScrollAreaViewport, SelectArrow, SelectContent, SelectGroup, SelectIcon, SelectItem, SelectItemIndicator, SelectItemText, SelectLabel, SelectPortal, SelectRoot, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SelectViewport, Separator, SliderRange, SliderRoot, SliderThumb, SliderTrack, SplitterGroup, SplitterPanel, SplitterResizeHandle, StepperDescription, StepperIndicator, StepperItem, StepperRoot, StepperSeparator, StepperTitle, StepperTrigger, SwitchRoot, SwitchThumb, TabsContent, TabsIndicator, TabsList, TabsRoot, TabsTrigger, TagsInputClear, TagsInputInput, TagsInputItem, TagsInputItemDelete, TagsInputItemText, TagsInputRoot, TimeFieldInput, TimeFieldRoot, ToastAction, ToastClose, ToastDescription, ToastPortal, ToastProvider, ToastRoot, ToastTitle, ToastViewport, Toggle, ToggleGroupItem, ToggleGroupRoot, ToolbarButton, ToolbarLink, ToolbarRoot, ToolbarSeparator, ToolbarToggleGroup, ToolbarToggleItem, TooltipArrow, TooltipContent, TooltipPortal, TooltipProvider, TooltipRoot, TooltipTrigger, TreeItem, TreeRoot, TreeVirtualizer, Viewport } from 'reka-ui'
1+
import { AccordionContent, AccordionHeader, AccordionItem, AccordionRoot, AccordionTrigger, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogOverlay, AlertDialogPortal, AlertDialogRoot, AlertDialogTitle, AlertDialogTrigger, AspectRatio, AutocompleteAnchor, AutocompleteArrow, AutocompleteCancel, AutocompleteContent, AutocompleteEmpty, AutocompleteGroup, AutocompleteInput, AutocompleteItem, AutocompleteItemIndicator, AutocompleteLabel, AutocompletePortal, AutocompleteRoot, AutocompleteSeparator, AutocompleteTrigger, AutocompleteViewport, AutocompleteVirtualizer, AvatarFallback, AvatarImage, AvatarRoot, CalendarCell, CalendarCellTrigger, CalendarGrid, CalendarGridBody, CalendarGridHead, CalendarGridRow, CalendarHeadCell, CalendarHeader, CalendarHeading, CalendarNext, CalendarPrev, CalendarRoot, CheckboxGroupRoot, CheckboxIndicator, CheckboxRoot, CollapsibleContent, CollapsibleRoot, CollapsibleTrigger, ColorAreaArea, ColorAreaRoot, ColorAreaThumb, ColorFieldInput, ColorFieldRoot, ColorSliderRoot, ColorSliderThumb, ColorSliderTrack, ColorSwatch, ColorSwatchPickerItem, ColorSwatchPickerItemIndicator, ColorSwatchPickerItemSwatch, ColorSwatchPickerRoot, ComboboxAnchor, ComboboxArrow, ComboboxCancel, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxItemIndicator, ComboboxLabel, ComboboxPortal, ComboboxRoot, ComboboxSeparator, ComboboxTrigger, ComboboxViewport, ComboboxVirtualizer, ContextMenuArrow, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuItemIndicator, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuRoot, ContextMenuSeparator, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DateFieldInput, DateFieldRoot, DatePickerAnchor, DatePickerArrow, DatePickerCalendar, DatePickerCell, DatePickerCellTrigger, DatePickerClose, DatePickerContent, DatePickerField, DatePickerGrid, DatePickerGridBody, DatePickerGridHead, DatePickerGridRow, DatePickerHeadCell, DatePickerHeader, DatePickerHeading, DatePickerInput, DatePickerNext, DatePickerPrev, DatePickerRoot, DatePickerTrigger, DateRangeFieldInput, DateRangeFieldRoot, DateRangePickerAnchor, DateRangePickerArrow, DateRangePickerCalendar, DateRangePickerCell, DateRangePickerCellTrigger, DateRangePickerClose, DateRangePickerContent, DateRangePickerField, DateRangePickerGrid, DateRangePickerGridBody, DateRangePickerGridHead, DateRangePickerGridRow, DateRangePickerHeadCell, DateRangePickerHeader, DateRangePickerHeading, DateRangePickerInput, DateRangePickerNext, DateRangePickerPrev, DateRangePickerRoot, DateRangePickerTrigger, DialogClose, DialogContent, DialogDescription, DialogOverlay, DialogPortal, DialogRoot, DialogTitle, DialogTrigger, DropdownMenuArrow, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuFilter, DropdownMenuGroup, DropdownMenuItem, DropdownMenuItemIndicator, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuRoot, DropdownMenuSeparator, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EditableArea, EditableCancelTrigger, EditableEditTrigger, EditableInput, EditablePreview, EditableRoot, EditableSubmitTrigger, FocusScope, HoverCardArrow, HoverCardContent, HoverCardPortal, HoverCardRoot, HoverCardTrigger, Label, ListboxContent, ListboxFilter, ListboxGroup, ListboxGroupLabel, ListboxItem, ListboxItemIndicator, ListboxRoot, ListboxVirtualizer, MenubarArrow, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarItemIndicator, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarRoot, MenubarSeparator, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, MonthPickerCell, MonthPickerCellTrigger, MonthPickerGrid, MonthPickerGridBody, MonthPickerGridRow, MonthPickerHeader, MonthPickerHeading, MonthPickerNext, MonthPickerPrev, MonthPickerRoot, MonthRangePickerCell, MonthRangePickerCellTrigger, MonthRangePickerGrid, MonthRangePickerGridBody, MonthRangePickerGridRow, MonthRangePickerHeader, MonthRangePickerHeading, MonthRangePickerNext, MonthRangePickerPrev, MonthRangePickerRoot, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuRoot, NavigationMenuSub, NavigationMenuTrigger, NavigationMenuViewport, NumberFieldDecrement, NumberFieldIncrement, NumberFieldInput, NumberFieldRoot, PaginationEllipsis, PaginationFirst, PaginationLast, PaginationList, PaginationListItem, PaginationNext, PaginationPrev, PaginationRoot, PinInputInput, PinInputRoot, PopoverAnchor, PopoverArrow, PopoverClose, PopoverContent, PopoverPortal, PopoverRoot, PopoverTrigger, Presence, ProgressIndicator, ProgressRoot, RadioGroupIndicator, RadioGroupItem, RadioGroupRoot, RangeCalendarCell, RangeCalendarCellTrigger, RangeCalendarGrid, RangeCalendarGridBody, RangeCalendarGridHead, RangeCalendarGridRow, RangeCalendarHeadCell, RangeCalendarHeader, RangeCalendarHeading, RangeCalendarNext, RangeCalendarPrev, RangeCalendarRoot, RovingFocusGroup, RovingFocusItem, ScrollAreaCorner, ScrollAreaRoot, ScrollAreaScrollbar, ScrollAreaThumb, ScrollAreaViewport, SelectArrow, SelectContent, SelectGroup, SelectIcon, SelectItem, SelectItemIndicator, SelectItemText, SelectLabel, SelectPortal, SelectRoot, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SelectViewport, Separator, SliderRange, SliderRoot, SliderThumb, SliderTrack, SplitterGroup, SplitterPanel, SplitterResizeHandle, StepperDescription, StepperIndicator, StepperItem, StepperRoot, StepperSeparator, StepperTitle, StepperTrigger, SwitchRoot, SwitchThumb, TabsContent, TabsIndicator, TabsList, TabsRoot, TabsTrigger, TagsInputClear, TagsInputInput, TagsInputItem, TagsInputItemDelete, TagsInputItemText, TagsInputRoot, TimeFieldInput, TimeFieldRoot, TimeRangeFieldInput, TimeRangeFieldRoot, ToastAction, ToastClose, ToastDescription, ToastPortal, ToastProvider, ToastRoot, ToastTitle, ToastViewport, Toggle, ToggleGroupItem, ToggleGroupRoot, ToolbarButton, ToolbarLink, ToolbarRoot, ToolbarSeparator, ToolbarToggleGroup, ToolbarToggleItem, TooltipArrow, TooltipContent, TooltipPortal, TooltipProvider, TooltipRoot, TooltipTrigger, TreeItem, TreeRoot, TreeVirtualizer, Viewport, YearPickerCell, YearPickerCellTrigger, YearPickerGrid, YearPickerGridBody, YearPickerGridRow, YearPickerHeader, YearPickerHeading, YearPickerNext, YearPickerPrev, YearPickerRoot, YearRangePickerCell, YearRangePickerCellTrigger, YearRangePickerGrid, YearRangePickerGridBody, YearRangePickerGridRow, YearRangePickerHeader, YearRangePickerHeading, YearRangePickerNext, YearRangePickerPrev, YearRangePickerRoot } from 'reka-ui'
22

33
export const Accordion = {
44
Content: AccordionContent,
@@ -132,6 +132,48 @@ export const Collapsible = {
132132
Content: typeof CollapsibleContent
133133
}
134134

135+
export const ColorArea = {
136+
Root: ColorAreaRoot,
137+
Area: ColorAreaArea,
138+
Thumb: ColorAreaThumb,
139+
} as {
140+
Root: typeof ColorAreaRoot
141+
Area: typeof ColorAreaArea
142+
Thumb: typeof ColorAreaThumb
143+
}
144+
145+
export const ColorField = {
146+
Root: ColorFieldRoot,
147+
Input: ColorFieldInput,
148+
} as {
149+
Root: typeof ColorFieldRoot
150+
Input: typeof ColorFieldInput
151+
}
152+
153+
export const ColorSlider = {
154+
Root: ColorSliderRoot,
155+
Track: ColorSliderTrack,
156+
Thumb: ColorSliderThumb,
157+
} as {
158+
Root: typeof ColorSliderRoot
159+
Track: typeof ColorSliderTrack
160+
Thumb: typeof ColorSliderThumb
161+
}
162+
163+
export { ColorSwatch }
164+
165+
export const ColorSwatchPicker = {
166+
Root: ColorSwatchPickerRoot,
167+
Item: ColorSwatchPickerItem,
168+
ItemSwatch: ColorSwatchPickerItemSwatch,
169+
ItemIndicator: ColorSwatchPickerItemIndicator,
170+
} as {
171+
Root: typeof ColorSwatchPickerRoot
172+
Item: typeof ColorSwatchPickerItem
173+
ItemSwatch: typeof ColorSwatchPickerItemSwatch
174+
ItemIndicator: typeof ColorSwatchPickerItemIndicator
175+
}
176+
135177
export const Combobox = {
136178
Root: ComboboxRoot,
137179
Input: ComboboxInput,
@@ -458,6 +500,54 @@ export const Menubar = {
458500
Menu: typeof MenubarMenu
459501
}
460502

503+
export const MonthPicker = {
504+
Root: MonthPickerRoot,
505+
Header: MonthPickerHeader,
506+
Heading: MonthPickerHeading,
507+
Grid: MonthPickerGrid,
508+
Cell: MonthPickerCell,
509+
Next: MonthPickerNext,
510+
Prev: MonthPickerPrev,
511+
GridBody: MonthPickerGridBody,
512+
GridRow: MonthPickerGridRow,
513+
CellTrigger: MonthPickerCellTrigger,
514+
} as {
515+
Root: typeof MonthPickerRoot
516+
Header: typeof MonthPickerHeader
517+
Heading: typeof MonthPickerHeading
518+
Grid: typeof MonthPickerGrid
519+
Cell: typeof MonthPickerCell
520+
Next: typeof MonthPickerNext
521+
Prev: typeof MonthPickerPrev
522+
GridBody: typeof MonthPickerGridBody
523+
GridRow: typeof MonthPickerGridRow
524+
CellTrigger: typeof MonthPickerCellTrigger
525+
}
526+
527+
export const MonthRangePicker = {
528+
Root: MonthRangePickerRoot,
529+
Header: MonthRangePickerHeader,
530+
Heading: MonthRangePickerHeading,
531+
Grid: MonthRangePickerGrid,
532+
Cell: MonthRangePickerCell,
533+
Next: MonthRangePickerNext,
534+
Prev: MonthRangePickerPrev,
535+
GridBody: MonthRangePickerGridBody,
536+
GridRow: MonthRangePickerGridRow,
537+
CellTrigger: MonthRangePickerCellTrigger,
538+
} as {
539+
Root: typeof MonthRangePickerRoot
540+
Header: typeof MonthRangePickerHeader
541+
Heading: typeof MonthRangePickerHeading
542+
Grid: typeof MonthRangePickerGrid
543+
Cell: typeof MonthRangePickerCell
544+
Next: typeof MonthRangePickerNext
545+
Prev: typeof MonthRangePickerPrev
546+
GridBody: typeof MonthRangePickerGridBody
547+
GridRow: typeof MonthRangePickerGridRow
548+
CellTrigger: typeof MonthRangePickerCellTrigger
549+
}
550+
461551
export const NavigationMenu = {
462552
Root: NavigationMenuRoot,
463553
Content: NavigationMenuContent,
@@ -722,6 +812,14 @@ export const TimeField = {
722812
Root: typeof TimeFieldRoot
723813
}
724814

815+
export const TimeRangeField = {
816+
Root: TimeRangeFieldRoot,
817+
Input: TimeRangeFieldInput,
818+
} as {
819+
Root: typeof TimeRangeFieldRoot
820+
Input: typeof TimeRangeFieldInput
821+
}
822+
725823
export const Toast = {
726824
Provider: ToastProvider,
727825
Root: ToastRoot,
@@ -796,6 +894,54 @@ export const Tree = {
796894

797895
export { Viewport }
798896

897+
export const YearPicker = {
898+
Root: YearPickerRoot,
899+
Header: YearPickerHeader,
900+
Heading: YearPickerHeading,
901+
Grid: YearPickerGrid,
902+
Cell: YearPickerCell,
903+
Next: YearPickerNext,
904+
Prev: YearPickerPrev,
905+
GridBody: YearPickerGridBody,
906+
GridRow: YearPickerGridRow,
907+
CellTrigger: YearPickerCellTrigger,
908+
} as {
909+
Root: typeof YearPickerRoot
910+
Header: typeof YearPickerHeader
911+
Heading: typeof YearPickerHeading
912+
Grid: typeof YearPickerGrid
913+
Cell: typeof YearPickerCell
914+
Next: typeof YearPickerNext
915+
Prev: typeof YearPickerPrev
916+
GridBody: typeof YearPickerGridBody
917+
GridRow: typeof YearPickerGridRow
918+
CellTrigger: typeof YearPickerCellTrigger
919+
}
920+
921+
export const YearRangePicker = {
922+
Root: YearRangePickerRoot,
923+
Header: YearRangePickerHeader,
924+
Heading: YearRangePickerHeading,
925+
Grid: YearRangePickerGrid,
926+
Cell: YearRangePickerCell,
927+
Next: YearRangePickerNext,
928+
Prev: YearRangePickerPrev,
929+
GridBody: YearRangePickerGridBody,
930+
GridRow: YearRangePickerGridRow,
931+
CellTrigger: YearRangePickerCellTrigger,
932+
} as {
933+
Root: typeof YearRangePickerRoot
934+
Header: typeof YearRangePickerHeader
935+
Heading: typeof YearRangePickerHeading
936+
Grid: typeof YearRangePickerGrid
937+
Cell: typeof YearRangePickerCell
938+
Next: typeof YearRangePickerNext
939+
Prev: typeof YearRangePickerPrev
940+
GridBody: typeof YearRangePickerGridBody
941+
GridRow: typeof YearRangePickerGridRow
942+
CellTrigger: typeof YearRangePickerCellTrigger
943+
}
944+
799945
export { FocusScope }
800946

801947
export const RovingFocus = {

0 commit comments

Comments
 (0)