From 25e503bc83ba4c17a7531e6bdf29cb128169dfc1 Mon Sep 17 00:00:00 2001 From: Benjamin Canac Date: Tue, 4 Mar 2025 11:58:31 +0100 Subject: [PATCH] chore(components): improve tsdoc --- src/runtime/components/Alert.vue | 10 ++++++++++ src/runtime/components/Avatar.vue | 3 +++ src/runtime/components/AvatarGroup.vue | 3 +++ src/runtime/components/Badge.vue | 9 +++++++++ src/runtime/components/Breadcrumb.vue | 3 +++ src/runtime/components/Button.vue | 9 +++++++++ src/runtime/components/ButtonGroup.vue | 3 +++ src/runtime/components/Calendar.vue | 6 ++++++ src/runtime/components/Card.vue | 3 +++ src/runtime/components/Carousel.vue | 4 ++++ src/runtime/components/Checkbox.vue | 7 +++++++ src/runtime/components/Chip.vue | 10 ++++++++++ src/runtime/components/ColorPicker.vue | 3 +++ src/runtime/components/CommandPalette.vue | 4 ++++ src/runtime/components/ContextMenu.vue | 6 ++++++ src/runtime/components/DropdownMenu.vue | 6 ++++++ src/runtime/components/FormField.vue | 3 +++ src/runtime/components/Input.vue | 9 +++++++++ src/runtime/components/InputMenu.vue | 12 ++++++++++++ src/runtime/components/Kbd.vue | 6 ++++++ src/runtime/components/NavigationMenu.vue | 12 ++++++++++++ src/runtime/components/Pagination.vue | 1 + src/runtime/components/PinInput.vue | 13 +++++++++++++ src/runtime/components/Progress.vue | 10 ++++++++++ src/runtime/components/RadioGroup.vue | 6 ++++++ src/runtime/components/Select.vue | 12 ++++++++++++ src/runtime/components/SelectMenu.vue | 12 ++++++++++++ src/runtime/components/Separator.vue | 14 +++++++++++++- src/runtime/components/Slideover.vue | 4 ++++ src/runtime/components/Slider.vue | 6 ++++++ src/runtime/components/Stepper.vue | 13 +++++++++++++ src/runtime/components/Switch.vue | 6 ++++++ src/runtime/components/Table.vue | 6 ++++++ src/runtime/components/Tabs.vue | 12 ++++++++++++ src/runtime/components/Textarea.vue | 9 +++++++++ src/runtime/components/Toast.vue | 10 ++++++++++ src/runtime/components/Toaster.vue | 4 ++++ src/runtime/components/Tree.vue | 6 ++++++ 38 files changed, 274 insertions(+), 1 deletion(-) diff --git a/src/runtime/components/Alert.vue b/src/runtime/components/Alert.vue index 343bb636..ff5536ed 100644 --- a/src/runtime/components/Alert.vue +++ b/src/runtime/components/Alert.vue @@ -25,8 +25,18 @@ export interface AlertProps { */ icon?: string avatar?: AvatarProps + /** + * @defaultValue 'primary' + */ color?: AlertVariants['color'] + /** + * @defaultValue 'solid' + */ variant?: AlertVariants['variant'] + /** + * The orientation between the content and the actions. + * @defaultValue 'vertical' + */ orientation?: AlertVariants['orientation'] /** * Display a list of actions: diff --git a/src/runtime/components/Avatar.vue b/src/runtime/components/Avatar.vue index cd767f90..35860c6a 100644 --- a/src/runtime/components/Avatar.vue +++ b/src/runtime/components/Avatar.vue @@ -24,6 +24,9 @@ export interface AvatarProps { */ icon?: string text?: string + /** + * @defaultValue 'md' + */ size?: AvatarVariants['size'] class?: any ui?: Partial diff --git a/src/runtime/components/AvatarGroup.vue b/src/runtime/components/AvatarGroup.vue index 11085760..4cee503b 100644 --- a/src/runtime/components/AvatarGroup.vue +++ b/src/runtime/components/AvatarGroup.vue @@ -17,6 +17,9 @@ export interface AvatarGroupProps { * @defaultValue 'div' */ as?: any + /** + * @defaultValue 'md' + */ size?: AvatarGroupVariants['size'] /** * The maximum number of avatars to display. diff --git a/src/runtime/components/Badge.vue b/src/runtime/components/Badge.vue index 3fe9e765..40fa5270 100644 --- a/src/runtime/components/Badge.vue +++ b/src/runtime/components/Badge.vue @@ -20,8 +20,17 @@ export interface BadgeProps extends Omit diff --git a/src/runtime/components/Breadcrumb.vue b/src/runtime/components/Breadcrumb.vue index 4d96cbe7..1b53256e 100644 --- a/src/runtime/components/Breadcrumb.vue +++ b/src/runtime/components/Breadcrumb.vue @@ -12,6 +12,9 @@ const breadcrumb = tv({ extend: tv(theme), ...(appConfigBreadcrumb.ui?.breadcrum export interface BreadcrumbItem extends Omit { label?: string + /** + * @IconifyIcon + */ icon?: string avatar?: AvatarProps slot?: string diff --git a/src/runtime/components/Button.vue b/src/runtime/components/Button.vue index 5216ed3b..5486ac24 100644 --- a/src/runtime/components/Button.vue +++ b/src/runtime/components/Button.vue @@ -17,8 +17,17 @@ type ButtonVariants = VariantProps export interface ButtonProps extends UseComponentIconsProps, Omit { label?: string + /** + * @defaultValue 'primary' + */ color?: ButtonVariants['color'] + /** + * @defaultValue 'solid' + */ variant?: ButtonVariants['variant'] + /** + * @defaultValue 'md' + */ size?: ButtonVariants['size'] /** Render the button with equal padding on all sides. */ square?: boolean diff --git a/src/runtime/components/ButtonGroup.vue b/src/runtime/components/ButtonGroup.vue index 46aced22..fbf0a2ee 100644 --- a/src/runtime/components/ButtonGroup.vue +++ b/src/runtime/components/ButtonGroup.vue @@ -17,6 +17,9 @@ export interface ButtonGroupProps { * @defaultValue 'div' */ as?: any + /** + * @defaultValue 'md' + */ size?: ButtonGroupVariants['size'] /** * The orientation the buttons are laid out. diff --git a/src/runtime/components/Calendar.vue b/src/runtime/components/Calendar.vue index bfaa2b3a..d0211910 100644 --- a/src/runtime/components/Calendar.vue +++ b/src/runtime/components/Calendar.vue @@ -50,7 +50,13 @@ export interface CalendarProps extends Omi * @IconifyIcon */ prevMonthIcon?: string + /** + * @defaultValue 'primary' + */ color?: CalendarVariants['color'] + /** + * @defaultValue 'md' + */ size?: CalendarVariants['size'] /** Whether or not a range of dates can be selected */ range?: R & boolean diff --git a/src/runtime/components/Card.vue b/src/runtime/components/Card.vue index 070468c3..662d2263 100644 --- a/src/runtime/components/Card.vue +++ b/src/runtime/components/Card.vue @@ -17,6 +17,9 @@ export interface CardProps { * @defaultValue 'div' */ as?: any + /** + * @defaultValue 'outline' + */ variant?: CardVariants['variant'] class?: any ui?: Partial diff --git a/src/runtime/components/Carousel.vue b/src/runtime/components/Carousel.vue index f8a2b149..41e3b163 100644 --- a/src/runtime/components/Carousel.vue +++ b/src/runtime/components/Carousel.vue @@ -59,6 +59,10 @@ export interface CarouselProps extends Omit diff --git a/src/runtime/components/CommandPalette.vue b/src/runtime/components/CommandPalette.vue index e54046bc..06df24d4 100644 --- a/src/runtime/components/CommandPalette.vue +++ b/src/runtime/components/CommandPalette.vue @@ -18,6 +18,9 @@ export interface CommandPaletteItem extends Omit extends Pick export interface ContextMenuItem extends Omit { label?: string + /** + * @IconifyIcon + */ icon?: string color?: ContextMenuVariants['color'] avatar?: AvatarProps @@ -38,6 +41,9 @@ export interface ContextMenuItem extends Omit extends Omit { + /** + * @defaultValue 'md' + */ size?: ContextMenuVariants['size'] items?: T[] | T[][] /** diff --git a/src/runtime/components/DropdownMenu.vue b/src/runtime/components/DropdownMenu.vue index ce01c64e..28ed5902 100644 --- a/src/runtime/components/DropdownMenu.vue +++ b/src/runtime/components/DropdownMenu.vue @@ -16,6 +16,9 @@ type DropdownMenuVariants = VariantProps export interface DropdownMenuItem extends Omit { label?: string + /** + * @IconifyIcon + */ icon?: string color?: DropdownMenuVariants['color'] avatar?: AvatarProps @@ -38,6 +41,9 @@ export interface DropdownMenuItem extends Omit extends Omit { + /** + * @defaultValue 'md' + */ size?: DropdownMenuVariants['size'] items?: T[] | T[][] /** diff --git a/src/runtime/components/FormField.vue b/src/runtime/components/FormField.vue index 6d086533..afa453a2 100644 --- a/src/runtime/components/FormField.vue +++ b/src/runtime/components/FormField.vue @@ -26,6 +26,9 @@ export interface FormFieldProps { help?: string error?: string | boolean hint?: string + /** + * @defaultValue 'md' + */ size?: FormFieldVariants['size'] required?: boolean eagerValidation?: boolean diff --git a/src/runtime/components/Input.vue b/src/runtime/components/Input.vue index 594b3518..175828b0 100644 --- a/src/runtime/components/Input.vue +++ b/src/runtime/components/Input.vue @@ -26,8 +26,17 @@ export interface InputProps extends UseComponentIconsProps { type?: InputHTMLAttributes['type'] /** The placeholder text when the input is empty. */ placeholder?: string + /** + * @defaultValue 'primary' + */ color?: InputVariants['color'] + /** + * @defaultValue 'outline' + */ variant?: InputVariants['variant'] + /** + * @defaultValue 'md' + */ size?: InputVariants['size'] required?: boolean autocomplete?: InputHTMLAttributes['autocomplete'] diff --git a/src/runtime/components/InputMenu.vue b/src/runtime/components/InputMenu.vue index 6437cb97..ac58f077 100644 --- a/src/runtime/components/InputMenu.vue +++ b/src/runtime/components/InputMenu.vue @@ -16,6 +16,9 @@ const inputMenu = tv({ extend: tv(theme), ...(appConfigInputMenu.ui?.inputMenu | export interface InputMenuItem { label?: string + /** + * @IconifyIcon + */ icon?: string avatar?: AvatarProps chip?: ChipProps @@ -40,8 +43,17 @@ export interface InputMenuProps, I extends Ma type?: InputHTMLAttributes['type'] /** The placeholder text when the input is empty. */ placeholder?: string + /** + * @defaultValue 'primary' + */ color?: InputMenuVariants['color'] + /** + * @defaultValue 'outline' + */ variant?: InputMenuVariants['variant'] + /** + * @defaultValue 'md' + */ size?: InputMenuVariants['size'] required?: boolean autofocus?: boolean diff --git a/src/runtime/components/Kbd.vue b/src/runtime/components/Kbd.vue index a6a28d7f..45022e13 100644 --- a/src/runtime/components/Kbd.vue +++ b/src/runtime/components/Kbd.vue @@ -19,7 +19,13 @@ export interface KbdProps { */ as?: any value?: KbdKey | string + /** + * @defaultValue 'outline' + */ variant?: KbdVariants['variant'] + /** + * @defaultValue 'md' + */ size?: KbdVariants['size'] class?: any } diff --git a/src/runtime/components/NavigationMenu.vue b/src/runtime/components/NavigationMenu.vue index 31e702d9..27cd18e8 100644 --- a/src/runtime/components/NavigationMenu.vue +++ b/src/runtime/components/NavigationMenu.vue @@ -19,6 +19,9 @@ export interface NavigationMenuChildItem extends Omit, Pick { label?: string + /** + * @IconifyIcon + */ icon?: string avatar?: AvatarProps /** @@ -64,7 +67,13 @@ export interface NavigationMenuProps extends Pick extends Pick diff --git a/src/runtime/components/Pagination.vue b/src/runtime/components/Pagination.vue index d1e8c85f..999b4466 100644 --- a/src/runtime/components/Pagination.vue +++ b/src/runtime/components/Pagination.vue @@ -44,6 +44,7 @@ export interface PaginationProps extends Partial diff --git a/src/runtime/components/RadioGroup.vue b/src/runtime/components/RadioGroup.vue index dcc0a19b..490144ba 100644 --- a/src/runtime/components/RadioGroup.vue +++ b/src/runtime/components/RadioGroup.vue @@ -42,7 +42,13 @@ export interface RadioGroupProps extends Pick, I extends Maybe id?: string /** The placeholder text when the select is empty. */ placeholder?: string + /** + * @defaultValue 'primary' + */ color?: SelectVariants['color'] + /** + * @defaultValue 'outline' + */ variant?: SelectVariants['variant'] + /** + * @defaultValue 'md' + */ size?: SelectVariants['size'] /** * The icon displayed to open the menu. diff --git a/src/runtime/components/SelectMenu.vue b/src/runtime/components/SelectMenu.vue index 0cf3c59c..cb1df735 100644 --- a/src/runtime/components/SelectMenu.vue +++ b/src/runtime/components/SelectMenu.vue @@ -15,6 +15,9 @@ const selectMenu = tv({ extend: tv(theme), ...(appConfigSelectMenu.ui?.selectMen export interface SelectMenuItem { label?: string + /** + * @IconifyIcon + */ icon?: string avatar?: AvatarProps chip?: ChipProps @@ -40,8 +43,17 @@ export interface SelectMenuProps, I extends M * @defaultValue true */ searchInput?: boolean | InputProps + /** + * @defaultValue 'primary' + */ color?: SelectMenuVariants['color'] + /** + * @defaultValue 'outline' + */ variant?: SelectMenuVariants['variant'] + /** + * @defaultValue 'md' + */ size?: SelectMenuVariants['size'] required?: boolean /** diff --git a/src/runtime/components/Separator.vue b/src/runtime/components/Separator.vue index b6ceeddf..37b2f07e 100644 --- a/src/runtime/components/Separator.vue +++ b/src/runtime/components/Separator.vue @@ -21,12 +21,24 @@ export interface SeparatorProps extends Pick<_SeparatorProps, 'decorative'> { as?: any /** Display a label in the middle. */ label?: string - /** Display an icon in the middle. */ + /** + * Display an icon in the middle. + * @IconifyIcon + */ icon?: string /** Display an avatar in the middle. */ avatar?: AvatarProps + /** + * @defaultValue 'neutral' + */ color?: SeparatorVariants['color'] + /** + * @defaultValue 'xs' + */ size?: SeparatorVariants['size'] + /** + * @defaultValue 'solid' + */ type?: SeparatorVariants['type'] /** * The orientation of the separator. diff --git a/src/runtime/components/Slideover.vue b/src/runtime/components/Slideover.vue index 869bc1f0..4d6a9251 100644 --- a/src/runtime/components/Slideover.vue +++ b/src/runtime/components/Slideover.vue @@ -28,6 +28,10 @@ export interface SlideoverProps extends DialogRootProps { * @defaultValue true */ transition?: boolean + /** + * The side of the slideover. + * @defaultValue 'right' + */ side?: SlideoverVariants['side'] /** * Render the slideover in a portal. diff --git a/src/runtime/components/Slider.vue b/src/runtime/components/Slider.vue index 5705bdea..62f53f96 100644 --- a/src/runtime/components/Slider.vue +++ b/src/runtime/components/Slider.vue @@ -18,7 +18,13 @@ export interface SliderProps extends Pick extends Pick extends TableOptions { sticky?: boolean /** Whether the table should be in loading state. */ loading?: boolean + /** + * @defaultValue 'primary' + */ loadingColor?: TableVariants['loadingColor'] + /** + * @defaultValue 'carousel' + */ loadingAnimation?: TableVariants['loadingAnimation'] /** * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/global-filtering#table-options) diff --git a/src/runtime/components/Tabs.vue b/src/runtime/components/Tabs.vue index b1b9a8c5..02eb47b9 100644 --- a/src/runtime/components/Tabs.vue +++ b/src/runtime/components/Tabs.vue @@ -14,6 +14,9 @@ const tabs = tv({ extend: tv(theme), ...(appConfigTabs.ui?.tabs || {}) }) export interface TabsItem { label?: string + /** + * @IconifyIcon + */ icon?: string avatar?: AvatarProps slot?: string @@ -32,8 +35,17 @@ export interface TabsProps extends Pick, 'defa */ as?: any items?: T[] + /** + * @defaultValue 'primary' + */ color?: TabsVariants['color'] + /** + * @defaultValue 'pill' + */ variant?: TabsVariants['variant'] + /** + * @defaultValue 'md' + */ size?: TabsVariants['size'] /** * The orientation of the tabs. diff --git a/src/runtime/components/Textarea.vue b/src/runtime/components/Textarea.vue index ccb44145..b1d07609 100644 --- a/src/runtime/components/Textarea.vue +++ b/src/runtime/components/Textarea.vue @@ -22,8 +22,17 @@ export interface TextareaProps { name?: string /** The placeholder text when the textarea is empty. */ placeholder?: string + /** + * @defaultValue 'primary' + */ color?: TextareaVariants['color'] + /** + * @defaultValue 'outline' + */ variant?: TextareaVariants['variant'] + /** + * @defaultValue 'md' + */ size?: TextareaVariants['size'] required?: boolean autofocus?: boolean diff --git a/src/runtime/components/Toast.vue b/src/runtime/components/Toast.vue index e1490dd9..9f724910 100644 --- a/src/runtime/components/Toast.vue +++ b/src/runtime/components/Toast.vue @@ -22,9 +22,19 @@ export interface ToastProps extends Pick export interface ToasterProps extends Omit { + /** + * The position on the screen to display the toasts. + * @defaultValue 'bottom-right' + */ position?: ToasterVariants['position'] /** * Expand the toasts to show multiple toasts at once. diff --git a/src/runtime/components/Tree.vue b/src/runtime/components/Tree.vue index c212f73a..984c7d98 100644 --- a/src/runtime/components/Tree.vue +++ b/src/runtime/components/Tree.vue @@ -38,7 +38,13 @@ export interface TreeProps