import { PAccordion, install as installPAccordion } from '@/components/Accordion'
import { PAutoHeightTransition, install as installPAutoHeightTransition } from '@/components/AutoHeightTransition'
import { PBaseInput, install as installPBaseInput } from '@/components/BaseInput'
import { PBreadCrumbs, install as installPBreadCrumbs } from '@/components/BreadCrumbs'
import { PButton, install as installPButton } from '@/components/Button'
import { PButtonGroup, install as installPButtonGroup } from '@/components/ButtonGroup'
import { PCalendar, install as installPCalendar } from '@/components/Calendar'
import { PCard, install as installPCard } from '@/components/Card'
import { PCascadePanel, PCascadePanels, install as installPCascadePanels } from '@/components/CascadeMenu'
import { PCheckbox, install as installPCheckbox } from '@/components/Checkbox'
import { PCheckboxGroup, install as installPCheckboxGroup } from '@/components/CheckboxGroup'
import { PCode, install as installPCode } from '@/components/Code'
import { PCodeHighlight, install as installPCodeHighlight } from '@/components/CodeHighlight'
import { PCodeInput, install as installPCodeInput } from '@/components/CodeInput'
import { PCombobox, install as installPCombobox } from '@/components/Combobox'
import { PCommand, install as installPCommand, PCommandBase, installPCommandBase, PCommandEmpty, installPCommandEmpty, PCommandGroup, installPCommandGroup, PCommandInput, installPCommandInput, PCommandItem, installPCommandItem, PCommandList, installPCommandList, PCommandSeparator, installPCommandSeparator, PCommandShortcut, installPCommandShortcut } from '@/components/Command'
import { PContent, install as installPContent } from '@/components/Content'
import { PContextAccordionItem, install as installPContextAccordionItem } from '@/components/ContextAccordionItem'
import { PContextDivider, install as installPContextDivider } from '@/components/ContextDivider'
import { PContextMenu, install as installPContextMenu } from '@/components/ContextMenu'
import { PContextNavItem, install as installPContextNavItem } from '@/components/ContextNavItem'
import { PContextSidebar, install as installPContextSidebar } from '@/components/ContextSidebar'
import { PDateInput, install as installPDateInput } from '@/components/DateInput'
import { PDatePicker, install as installPDatePicker } from '@/components/DatePicker'
import { PDateRangeInput, install as installPDateRangeInput } from '@/components/DateRangeInput'
import { PDateRangePicker, install as installPDateRangePicker } from '@/components/DateRangePicker'
import { PDateRangeSelect, install as installPDateRangeSelect, getDateRangeSelectValueLabel } from '@/components/DateRangeSelect'
import { PDialog, install as installPDialog } from '@/components/Dialog'
import { PDivider, install as installPDivider } from '@/components/Divider'
import { PDraggableList, install as installPDraggableList } from '@/components/DraggableList'
import { PDrawer, install as installPDrawer } from '@/components/Drawer'
import { PDropdownMenu, PDropdownMenuItem, installPDropdownMenu, installPDropdownMenuItem } from '@/components/DropdownMenu'
import { PEmptyResults, install as installPEmptyResults } from '@/components/EmptyResults'
import { PEmptyState, install as installPEmptyState } from '@/components/EmptyState'
import { PErrorBoundary, install as installPErrorBoundary } from '@/components/ErrorBoundary'
import { PForm, install as installPForm } from '@/components/Form'
import { PFrame, install as installPFrame } from '@/components/Frame'
import { PGlobalNavItem, install as installPGlobalNavItem } from '@/components/GlobalNavItem'
import { PGlobalSidebar, install as installPGlobalSidebar } from '@/components/GlobalSidebar'
import { PHashLink, install as installPHashLink } from '@/components/HashLink'
import { PHeading, install as installPHeading } from '@/components/Heading'
import { PIcon, install as installPIcon } from '@/components/Icon'
import { PIconButtonMenu, install as installPIconButtonMenu } from '@/components/IconButtonMenu'
import { PIconText, install as installPIconText } from '@/components/IconText'
import { PKeyValue, install as installPKeyValue } from '@/components/KeyValue'
import { PLabel, install as installPLabel } from '@/components/Label'
import { PLineNumbers, install as installPLineNumbers } from '@/components/LineNumbers'
import { PLink, install as installPLink } from '@/components/Link'
import { PListHeader, install as installPListHeader } from '@/components/ListHeader'
import { PListItem, install as installPListItem } from '@/components/ListItem'
import { PListItemInput, install as installPListItemInput } from '@/components/ListItemInput'
import { PListTruncate, install as installPListTruncate } from '@/components/ListTruncate'
import { PLoadingIcon, install as installPLoadingIcon } from '@/components/LoadingIcon'
import { PMarkdownRenderer, install as installPMarkdownRenderer } from '@/components/MarkdownRenderer'
import { PMessage, install as installPMessage } from '@/components/Message'
import { PModal, install as installPModal } from '@/components/Modal'
import { PNativeDateInput, install as installPNativeDateInput } from '@/components/NativeDateInput'
import { PNativeSelect, install as installPNativeSelect } from '@/components/NativeSelect'
import { PNativeTimeInput, install as installPNativeTimeInput } from '@/components/NativeTimeInput'
import { PNavigationBar, install as installPNavigationBar } from '@/components/NavigationBar'
import { PNumberInput, install as installPNumberInput } from '@/components/NumberInput'
import { POverflowMenu, install as installPOverflowMenu } from '@/components/OverflowMenu'
import { POverflowMenuItem, install as installPOverflowMenuItem } from '@/components/OverflowMenuItem'
import { PPager, install as installPPager } from '@/components/Pager'
import { PPopOver, install as installPPopOver } from '@/components/PopOver'
import { PRadio, install as installPRadio } from '@/components/Radio'
import { PRadioGroup, install as installPRadioGroup } from '@/components/RadioGroup'
import { PSanitizeHtml, install as installPSanitizeHtml } from '@/components/SanitizeHtml'
import { PSelect, install as installPSelect } from '@/components/Select'
import { PSelectAllCheckbox, install as installPSelectAllCheckbox } from '@/components/SelectAllCheckbox'
import { PSelectOption, install as installPSelectOption } from '@/components/SelectOption'
import { PSelectOptionGroup, install as installPSelectOptionGroup } from '@/components/SelectOptionGroup'
import { PStepper, install as installPStepper } from '@/components/Stepper'
import { PTab, install as installPTab } from '@/components/Tab'
import { PTable, PTableBody, PTableData, PTableFoot, PTableHead, PTableHeader, PTableRow, install as installPTable } from '@/components/Table'
import { PTabs, PTabNavigation, PTabSelect, PTabsContent, PTabsList, PTabsRoot, PTabsTrigger, install as installPTabs } from '@/components/Tabs'
import { PTag, install as installPTag } from '@/components/Tag'
import { PTags, install as installPTags } from '@/components/Tags'
import { PTagsArea, install as installPTagsArea } from '@/components/TagsArea'
import { PTagsInput, install as installPTagsInput } from '@/components/TagsInput'
import { PTagWrapper, install as installPTagWrapper } from '@/components/TagWrapper'
import { PTerminal, install as installPTerminal } from '@/components/Terminal'
import { PTextarea, install as installPTextarea } from '@/components/Textarea'
import { PTextInput, install as installPTextInput } from '@/components/TextInput'
import { PTextTruncate, install as installPTextTruncate } from '@/components/TextTruncate'
import { PThemeToggle, install as installPThemeToggle } from '@/components/ThemeToggle'
import { PTimeline, PTimelineItem, PTimelinePoint, install as installPTimeline } from '@/components/Timeline'
import { PToast, install as installPToast } from '@/components/Toast'
import { PToggle, install as installPToggle } from '@/components/Toggle'
import { PTooltip, PTooltipContent, PTooltipProvider, PTooltipRoot, PTooltipTrigger, install as installPTooltip } from '@/components/Tooltip'
import { PTypeAhead, install as installPTypeAhead } from '@/components/TypeAhead'
import { PUnwrap, install as installPUnwrap } from '@/components/Unwrap'
import { PVirtualScroller, install as installPVirtualScroller, getVirtualScroller } from '@/components/VirtualScroller'
import { PWindow, install as installPWindow } from '@/components/Window'
import { PWizard, install as installPWizard } from '@/components/Wizard'

export {
  PAccordion,
  PAutoHeightTransition,
  PBaseInput,
  PBreadCrumbs,
  PButton,
  PButtonGroup,
  PCalendar,
  PCard,
  PCascadePanel,
  PCascadePanels,
  PCheckbox,
  PCheckboxGroup,
  PCode,
  PCodeHighlight,
  PCodeInput,
  PCombobox,
  PCommand,
  PCommandBase,
  PCommandEmpty,
  PCommandGroup,
  PCommandInput,
  PCommandItem,
  PCommandList,
  PCommandSeparator,
  PCommandShortcut,
  PContent,
  PContextAccordionItem,
  PContextDivider,
  PContextMenu,
  PContextNavItem,
  PContextSidebar,
  PDateInput,
  PDatePicker,
  PDateRangeInput,
  PDateRangePicker,
  PDateRangeSelect,
  PDialog,
  PDivider,
  PDraggableList,
  PDrawer,
  PDropdownMenu,
  PDropdownMenuItem,
  PEmptyResults,
  PEmptyState,
  PErrorBoundary,
  PForm,
  PFrame,
  PGlobalNavItem,
  PGlobalSidebar,
  PHashLink,
  PHeading,
  PIcon,
  PIconButtonMenu,
  PIconText,
  PKeyValue,
  PLabel,
  PLineNumbers,
  PLink,
  PListHeader,
  PListItem,
  PListItemInput,
  PListTruncate,
  PLoadingIcon,
  PMarkdownRenderer,
  PMessage,
  PModal,
  PNativeDateInput,
  PNativeSelect,
  PNativeTimeInput,
  PNavigationBar,
  PNumberInput,
  POverflowMenu,
  POverflowMenuItem,
  PPager,
  PPopOver,
  PRadio,
  PRadioGroup,
  PSanitizeHtml,
  PSelect,
  PSelectAllCheckbox,
  PSelectOption,
  PSelectOptionGroup,
  PStepper,
  PTab,
  PTable,
  PTableBody,
  PTableData,
  PTableFoot,
  PTableHead,
  PTableHeader,
  PTableRow,
  PTabNavigation,
  PTabs,
  PTabsContent,
  PTabsList,
  PTabsRoot,
  PTabsTrigger,
  PTabSelect,
  PTag,
  PTags,
  PTagsArea,
  PTagsInput,
  PTagWrapper,
  PTerminal,
  PTextarea,
  PTextInput,
  PTextTruncate,
  PThemeToggle,
  PTimeline,
  PTimelineItem,
  PTimelinePoint,
  PToast,
  PToggle,
  PTooltip,
  PTooltipContent,
  PTooltipProvider,
  PTooltipRoot,
  PTooltipTrigger,
  PTypeAhead,
  PUnwrap,
  PVirtualScroller,
  PWindow,
  PWizard
}

export {
  getVirtualScroller,
  getDateRangeSelectValueLabel
}

export const installs = [
  installPAccordion,
  installPAutoHeightTransition,
  installPBaseInput,
  installPBreadCrumbs,
  installPButton,
  installPButtonGroup,
  installPCalendar,
  installPCard,
  installPCascadePanels,
  installPCheckbox,
  installPCheckboxGroup,
  installPCode,
  installPCodeHighlight,
  installPCodeInput,
  installPCombobox,
  installPCommand,
  installPCommandBase,
  installPCommandEmpty,
  installPCommandGroup,
  installPCommandInput,
  installPCommandItem,
  installPCommandList,
  installPCommandSeparator,
  installPCommandShortcut,
  installPContent,
  installPContextAccordionItem,
  installPContextDivider,
  installPContextMenu,
  installPContextNavItem,
  installPContextSidebar,
  installPDateInput,
  installPDatePicker,
  installPDateRangeInput,
  installPDateRangePicker,
  installPDateRangeSelect,
  installPDialog,
  installPDivider,
  installPDraggableList,
  installPDrawer,
  installPDropdownMenu,
  installPDropdownMenuItem,
  installPEmptyResults,
  installPEmptyState,
  installPErrorBoundary,
  installPForm,
  installPFrame,
  installPGlobalNavItem,
  installPGlobalSidebar,
  installPHashLink,
  installPHeading,
  installPIcon,
  installPIconButtonMenu,
  installPIconText,
  installPKeyValue,
  installPLabel,
  installPLineNumbers,
  installPLink,
  installPListHeader,
  installPListItem,
  installPListItemInput,
  installPListTruncate,
  installPLoadingIcon,
  installPMarkdownRenderer,
  installPMessage,
  installPModal,
  installPNativeDateInput,
  installPNativeSelect,
  installPNativeTimeInput,
  installPNavigationBar,
  installPNumberInput,
  installPOverflowMenu,
  installPOverflowMenuItem,
  installPPager,
  installPPopOver,
  installPRadio,
  installPRadioGroup,
  installPSanitizeHtml,
  installPSelect,
  installPSelectAllCheckbox,
  installPSelectOption,
  installPSelectOptionGroup,
  installPStepper,
  installPTab,
  installPTable,
  installPTabs,
  installPTag,
  installPTags,
  installPTagsArea,
  installPTagsInput,
  installPTagWrapper,
  installPTerminal,
  installPTextarea,
  installPTextInput,
  installPTextTruncate,
  installPThemeToggle,
  installPTimeline,
  installPToast,
  installPToggle,
  installPTooltip,
  installPTypeAhead,
  installPUnwrap,
  installPVirtualScroller,
  installPWindow,
  installPWizard,
]

declare module 'vue' {
  export interface GlobalComponents {
    PAccordion: typeof PAccordion,
    PAutoHeightTransition: typeof PAutoHeightTransition,
    PBaseInput: typeof PBaseInput,
    PBreadCrumbs: typeof PBreadCrumbs,
    PButton: typeof PButton,
    PButtonGroup: typeof PButtonGroup,
    PCalendar: typeof PCalendar,
    PCard: typeof PCard,
    PCascadePanel: typeof PCascadePanel,
    PCascadePanels: typeof PCascadePanels,
    PCheckbox: typeof PCheckbox,
    PCheckboxGroup: typeof PCheckboxGroup,
    PCode: typeof PCode,
    PCodeHighlight: typeof PCodeHighlight,
    PCodeInput: typeof PCodeInput,
    PCombobox: typeof PCombobox,
    PCommand: typeof PCommand,
    PCommandBase: typeof PCommandBase,
    PCommandEmpty: typeof PCommandEmpty,
    PCommandGroup: typeof PCommandGroup,
    PCommandInput: typeof PCommandInput,
    PCommandItem: typeof PCommandItem,
    PCommandList: typeof PCommandList,
    PCommandSeparator: typeof PCommandSeparator,
    PCommandShortcut: typeof PCommandShortcut,
    PContent: typeof PContent,
    PContextAccordionItem: typeof PContextAccordionItem,
    PContextDivider: typeof PContextDivider,
    PContextMenu: typeof PContextMenu,
    PContextNavItem: typeof PContextNavItem,
    PContextSidebar: typeof PContextSidebar,
    PDateInput: typeof PDateInput,
    PDatePicker: typeof PDatePicker,
    PDateRangeInput: typeof PDateRangeInput,
    PDateRangePicker: typeof PDateRangePicker,
    PDateRangeSelect: typeof PDateRangeSelect,
    PDialog: typeof PDialog,
    PDivider: typeof PDivider,
    PDraggableList: typeof PDraggableList,
    PDrawer: typeof PDrawer,
    PDropdownMenu: typeof PDropdownMenu,
    PDropdownMenuItem: typeof PDropdownMenuItem,
    PEmptyResults: typeof PEmptyResults,
    PEmptyState: typeof PEmptyState,
    PErrorBoundary: typeof PErrorBoundary,
    PForm: typeof PForm,
    PFrame: typeof PFrame,
    PGlobalNavItem: typeof PGlobalNavItem,
    PGlobalSidebar: typeof PGlobalSidebar,
    PHashLink: typeof PHashLink,
    PHeading: typeof PHeading,
    PIcon: typeof PIcon,
    PIconButtonMenu: typeof PIconButtonMenu,
    PIconText: typeof PIconText,
    PKeyValue: typeof PKeyValue,
    PLabel: typeof PLabel,
    PLineNumbers: typeof PLineNumbers,
    PLink: typeof PLink,
    PListHeader: typeof PListHeader,
    PListItem: typeof PListItem,
    PListItemInput: typeof PListItemInput,
    PListTruncate: typeof PListTruncate,
    PLoadingIcon: typeof PLoadingIcon,
    PMarkdownRenderer: typeof PMarkdownRenderer,
    PMessage: typeof PMessage,
    PModal: typeof PModal,
    PNativeDateInput: typeof PNativeDateInput,
    PNativeSelect: typeof PNativeSelect,
    PNativeTimeInput: typeof PNativeDateInput,
    PNavigationBar: typeof PNavigationBar,
    PNumberInput: typeof PNumberInput,
    POverflowMenu: typeof POverflowMenu,
    POverflowMenuItem: typeof POverflowMenuItem,
    PPager: typeof PPager,
    PPopOver: typeof PPopOver,
    PRadio: typeof PRadio,
    PRadioGroup: typeof PRadioGroup,
    PSanitizeHtml: typeof PSanitizeHtml,
    PSelect: typeof PSelect,
    PSelectOption: typeof PSelectOption,
    PSelectOptionGroup: typeof PSelectOptionGroup,
    PStepper: typeof PStepper,
    PTab: typeof PTab,
    PTable: typeof PTable,
    PTableBody: typeof PTableBody,
    PTableData: typeof PTableData,
    PTableFoot: typeof PTableFoot,
    PTableHead: typeof PTableHead,
    PTableHeader: typeof PTableHeader,
    PTableRow: typeof PTableRow,
    PTabNavigation: typeof PTabNavigation,
    PTabs: typeof PTabs,
    PTabsContent: typeof PTabsContent,
    PTabsList: typeof PTabsList,
    PTabsRoot: typeof PTabsRoot,
    PTabsTrigger: typeof PTabsTrigger,
    PTabSelect: typeof PTabSelect,
    PTag: typeof PTag,
    PTags: typeof PTags,
    PTagsArea: typeof PTagsArea,
    PTagsInput: typeof PTagsInput,
    PTagWrapper: typeof PTagWrapper,
    PTerminal: typeof PTerminal,
    PTextarea: typeof PTextarea,
    PTextInput: typeof PTextInput,
    PTextTruncate: typeof PTextTruncate,
    PTimeline: typeof PTimeline,
    PTimelineItem: typeof PTimelineItem,
    PTimelinePoint: typeof PTimelinePoint,
    PToast: typeof PToast,
    PToggle: typeof PToggle,
    PTooltip: typeof PTooltip,
    PTooltipContent: typeof PTooltipContent,
    PTooltipProvider: typeof PTooltipProvider,
    PTooltipRoot: typeof PTooltipRoot,
    PTooltipTrigger: typeof PTooltipTrigger,
    PTypeAhead: typeof PTypeAhead,
    PUnwrap: typeof PUnwrap,
    PVirtualScroller: typeof PVirtualScroller,
    PWindow: typeof PWindow,
    PWizard: typeof PWizard,
  }
}