@zeturn/watercolor-react 1.2.4 → 1.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.d.ts CHANGED
@@ -7,6 +7,7 @@ import type {
7
7
  InputHTMLAttributes,
8
8
  ReactElement,
9
9
  ReactNode,
10
+ CSSProperties,
10
11
  TdHTMLAttributes,
11
12
  ThHTMLAttributes,
12
13
  } from 'react'
@@ -27,7 +28,9 @@ import type {
27
28
  WatercolorThemeConfig,
28
29
  } from '@zeturn/watercolor-core'
29
30
 
30
- type WatercolorComponent = ComponentType<Record<string, unknown>>
31
+ type FloatingPlacement = 'top' | 'bottom' | 'left' | 'right' | 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end' | 'left-start' | 'left-end' | 'right-start' | 'right-end'
32
+ type HtmlComponentProps<T extends HTMLElement = HTMLElement> = HTMLAttributes<T> & { className?: string; style?: CSSProperties; children?: ReactNode }
33
+ type PolymorphicComponent<TDefault extends ElementType, OwnProps> = <T extends ElementType = TDefault>(props: PolymorphicProps<T, OwnProps>) => ReactElement | null
31
34
  type PolymorphicProps<T extends ElementType, OwnProps> = OwnProps &
32
35
  Omit<ComponentPropsWithoutRef<T>, keyof OwnProps | 'as'> & { as?: T }
33
36
  type CompositionBaseProps = { children?: ReactNode; className?: string }
@@ -52,6 +55,9 @@ export interface ButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement
52
55
  ripple?: boolean
53
56
  }
54
57
 
58
+ export interface FabProps extends Omit<ButtonProps, 'variant'> { variant?: 'circular' | 'extended'; color?: ComponentColor | 'default'; label?: ReactNode; icon?: ReactNode }
59
+ export interface IconButtonProps extends Omit<ButtonProps, 'variant' | 'buttonStyle' | 'fullWidth'> { color?: ComponentColor | 'default'; edge?: boolean | 'start' | 'end'; icon?: ReactNode }
60
+
55
61
  export interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'color' | 'value'> {
56
62
  value?: string | number | readonly string[]
57
63
  readonly?: boolean
@@ -242,6 +248,67 @@ export interface TableCellProps extends Omit<TdHTMLAttributes<HTMLTableCellEleme
242
248
  variant?: 'head' | 'body' | 'footer'
243
249
  }
244
250
 
251
+ export interface AccordionItem { key?: string | number; title?: ReactNode; content?: ReactNode; disabled?: boolean; [key: string]: unknown }
252
+ export interface AccordionProps extends HtmlComponentProps<HTMLDivElement> { items?: readonly AccordionItem[]; multiple?: boolean; variant?: 'default' | 'bordered' | 'separated'; onToggle?: (key: string | number, expanded: boolean) => void }
253
+ export interface AlertProps extends HtmlComponentProps<HTMLDivElement> { type?: 'success' | 'warning' | 'error' | 'info'; severity?: 'success' | 'warning' | 'error' | 'info'; variant?: 'filled' | 'outlined' | 'standard'; title?: ReactNode; message?: ReactNode; closable?: boolean; onClose?: () => void; icon?: ReactNode; action?: ReactNode }
254
+ export interface AppBarProps extends HtmlComponentProps<HTMLElement> { position?: 'static' | 'fixed' | 'absolute' | 'sticky' | 'relative'; color?: string; elevation?: number; variant?: 'elevation' | 'outlined' | 'minimal' }
255
+ export interface AutocompleteProps<Value = unknown> extends Omit<SelectProps, 'value' | 'onChange' | 'onSearch'> { value?: Value | Value[] | null; onChange?: (value: Value | Value[] | null) => void; readonly?: boolean; freeSolo?: boolean; minSearchLength?: number; noOptionsText?: ReactNode; onInputChange?: (value: string) => void; filterOptions?: (options: readonly SelectOption[], query: string) => readonly SelectOption[]; renderInput?: (props: Record<string, unknown>) => ReactNode; getOptionLabel?: (option: Value | SelectOption) => string; getOptionValue?: (option: Value | SelectOption) => string | number }
256
+ export interface AvatarProps extends HtmlComponentProps<HTMLDivElement> { src?: string; alt?: string; size?: ComponentSize | 'xs' | 'xl' | number; variant?: 'circular' | 'rounded' | 'square'; color?: ComponentColor | 'default'; children?: ReactNode }
257
+ export interface BadgeProps extends HtmlComponentProps<HTMLSpanElement> { variant?: ComponentColor | 'primary' | 'default'; size?: ComponentSize; dot?: boolean; children?: ReactNode }
258
+ export interface BannerProps extends HtmlComponentProps<HTMLDivElement> { type?: 'info' | 'success' | 'warning' | 'error'; title?: ReactNode; message?: ReactNode; closable?: boolean; onClose?: () => void; sticky?: boolean; zIndex?: number; icon?: ReactNode; actions?: ReactNode }
259
+ export interface BlockquoteProps extends HtmlComponentProps<HTMLElement> { cite?: ReactNode; variant?: 'default' | 'minimal' | 'card'; noBorder?: boolean; interactive?: boolean; size?: ComponentSize | 'medium'; color?: ComponentColor | 'default' }
260
+ export interface BoxProps<T extends ElementType = 'div'> extends PolymorphicProps<T, { children?: ReactNode; className?: string; style?: CSSProperties; p?: unknown; pt?: unknown; pr?: unknown; pb?: unknown; pl?: unknown; px?: unknown; py?: unknown; m?: unknown; mt?: unknown; mr?: unknown; mb?: unknown; ml?: unknown; mx?: unknown; my?: unknown; display?: CSSProperties['display']; flexDirection?: CSSProperties['flexDirection']; justifyContent?: CSSProperties['justifyContent']; alignItems?: CSSProperties['alignItems']; flexWrap?: CSSProperties['flexWrap']; gap?: CSSProperties['gap']; bgcolor?: string; color?: string; border?: string | number; borderRadius?: string | number; width?: CSSProperties['width']; height?: CSSProperties['height']; minWidth?: CSSProperties['minWidth']; minHeight?: CSSProperties['minHeight']; maxWidth?: CSSProperties['maxWidth']; maxHeight?: CSSProperties['maxHeight'] }> { component?: T }
261
+ export interface BreadcrumbItem { label?: ReactNode; href?: string; icon?: ReactNode; disabled?: boolean; current?: boolean; [key: string]: unknown }
262
+ export interface BreadcrumbProps extends Omit<HtmlComponentProps<HTMLElement>, 'onClick'> { items?: readonly BreadcrumbItem[]; separator?: ReactNode; variant?: 'default' | 'compact'; showHome?: boolean; homeIcon?: ReactNode; maxItems?: number; onItemClick?: (item: BreadcrumbItem, index: number) => void }
263
+ export interface CardProps extends HtmlComponentProps<HTMLDivElement> { title?: ReactNode; variant?: 'minimal' | 'default' | 'outlined' | 'elevated'; color?: ComponentColor | 'default'; size?: ComponentSize | 'medium'; interactive?: boolean; noBorder?: boolean; header?: ReactNode; footer?: ReactNode }
264
+ export interface CardActionsProps extends HtmlComponentProps<HTMLDivElement> { disableSpacing?: boolean; disablePadding?: boolean; justifyContent?: CSSProperties['justifyContent'] }
265
+ export interface CardContentProps extends HtmlComponentProps<HTMLDivElement> { disablePadding?: boolean; padding?: 'none' | 'compact' | 'normal' | 'comfortable' }
266
+ export interface ChipProps extends HtmlComponentProps<HTMLDivElement> { label?: ReactNode; avatar?: ReactNode; deletable?: boolean; disabled?: boolean; clickable?: boolean; variant?: 'filled' | 'outlined' | 'minimal'; size?: ComponentSize; color?: ComponentColor | 'default'; deleteIcon?: ReactNode; onDelete?: () => void }
267
+ export interface CircularProgressProps extends HtmlComponentProps<HTMLDivElement> { value?: number; size?: number | string; thickness?: number; variant?: 'determinate' | 'indeterminate'; color?: ComponentColor | 'inherit'; showValue?: boolean; overlay?: boolean; centered?: boolean; inline?: boolean }
268
+ export interface ColorPickerProps extends Omit<HtmlComponentProps<HTMLDivElement>, 'onChange'> { value?: string; onChange?: (value: string) => void; size?: ComponentSize; shape?: 'circle' | 'square' | 'rounded'; disabled?: boolean }
269
+ export interface CodeBlockProps extends Omit<HtmlComponentProps<HTMLElement>, 'title' | 'onCopy'> { code?: string; language?: string; title?: ReactNode; showLanguage?: boolean; showLineNumbers?: boolean; showCopyButton?: boolean; diff?: boolean; wrap?: boolean; maxHeight?: string | number; onCopy?: (code: string) => void }
270
+ export interface ContainerProps extends HtmlComponentProps<HTMLDivElement> { maxWidth?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | false | string; fluid?: boolean; fixed?: boolean }
271
+ export interface CopyProps extends HtmlComponentProps<HTMLButtonElement> { text?: string; value?: string; copied?: boolean; error?: boolean; label?: ReactNode; copiedLabel?: ReactNode; errorLabel?: ReactNode; onCopy?: (value: string) => void; icon?: ReactNode }
272
+ export interface DatePickerProps extends Omit<HtmlComponentProps<HTMLDivElement>, 'onChange'> { value?: Date | string | null; onChange?: (value: Date) => void; placeholder?: string; disabled?: boolean; size?: ComponentSize; variant?: 'default' | FieldVariant; format?: string; showToday?: boolean; minDate?: Date | string | null; maxDate?: Date | string | null }
273
+ export interface DividerProps extends HtmlComponentProps<HTMLHRElement> { variant?: 'solid' | 'dashed' | 'dotted'; orientation?: 'horizontal' | 'vertical'; flexItem?: boolean }
274
+ export interface FeatureProps extends HtmlComponentProps<HTMLDivElement> { title?: ReactNode; description?: ReactNode; icon?: ReactNode; iconSize?: number; size?: ComponentSize; align?: 'left' | 'center' | 'right'; background?: string; variant?: 'default' | 'minimal' | 'card'; bgColor?: string; reverse?: boolean; vertical?: boolean; ctaLabel?: ReactNode; ctaHref?: string; onCtaClick?: (event: unknown) => void }
275
+ export interface FeedItem { title?: ReactNode; description?: ReactNode; avatar?: ReactNode; time?: ReactNode; children?: FeedItem[]; [key: string]: unknown }
276
+ export interface FeedProps extends Omit<HtmlComponentProps<HTMLDivElement>, 'onClick'> { item?: FeedItem; items?: readonly FeedItem[]; showAvatar?: boolean; variant?: 'timeline' | 'list'; color?: string; dotSize?: number; lineWidth?: number; onItemClick?: (item: FeedItem) => void }
277
+ export interface FileInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'onChange'> { onChange?: (files: FileList | File[]) => void; onInvalid?: (files: FileList | File[]) => void; label?: ReactNode; helperText?: ReactNode; accept?: string; multiple?: boolean; className?: string }
278
+ export interface FormControlProps extends HtmlComponentProps<HTMLDivElement> { disabled?: boolean; error?: boolean; required?: boolean; variant?: FieldVariant; size?: ComponentSize; fullWidth?: boolean; margin?: 'none' | 'dense' | 'normal' }
279
+ export interface FormControlLabelProps extends HtmlComponentProps<HTMLLabelElement> { label?: ReactNode; labelPlacement?: 'start' | 'end' | 'top' | 'bottom'; disabled?: boolean; required?: boolean; checked?: boolean; value?: unknown; control?: ReactNode; onChange?: (...args: unknown[]) => void }
280
+ export interface FormGroupProps extends HtmlComponentProps<HTMLDivElement> { row?: boolean; spacing?: 'compact' | 'normal' | 'comfortable' }
281
+ export interface FormHelperTextProps extends HtmlComponentProps<HTMLParagraphElement> { disabled?: boolean; error?: boolean; filled?: boolean; focused?: boolean; margin?: 'none' | 'dense' | 'normal'; required?: boolean; variant?: FieldVariant; id?: string; size?: ComponentSize }
282
+ export interface GridProps extends HtmlComponentProps<HTMLDivElement> { container?: boolean; item?: boolean; xs?: number | boolean; sm?: number | boolean; md?: number | boolean; lg?: number | boolean; xl?: number | boolean; spacing?: number | string; direction?: CSSProperties['flexDirection']; justifyContent?: CSSProperties['justifyContent']; alignItems?: CSSProperties['alignItems'] }
283
+ export interface HoverCardProps extends HtmlComponentProps<HTMLDivElement> { triggerText?: ReactNode; cardData?: Record<string, unknown>; variant?: 'default' | 'outlined' | 'filled' | 'minimal'; size?: ComponentSize; cardSize?: ComponentSize | 'xl'; position?: FloatingPlacement; delay?: number; hideDelay?: number; showArrow?: boolean; disabled?: boolean; onShow?: () => void; onHide?: () => void; onAction?: (...args: unknown[]) => void; card?: ReactNode }
284
+ export interface IconProps extends HtmlComponentProps<HTMLSpanElement> { name?: string; size?: number | string; color?: string; children?: ReactNode }
285
+ export interface ImageGalleryImage { src: string; alt?: string; title?: ReactNode; description?: ReactNode; [key: string]: unknown }
286
+ export interface ImageGalleryProps extends HtmlComponentProps<HTMLDivElement> { images?: readonly ImageGalleryImage[]; title?: ReactNode; layout?: 'grid' | 'masonry' | 'carousel'; size?: ComponentSize | 'xl'; columns?: number; gap?: number; showInfo?: boolean; showCount?: boolean; showDownload?: boolean; showPagination?: boolean; itemsPerPage?: number; lazyLoad?: boolean; loading?: boolean; onSelect?: (image: ImageGalleryImage, index: number) => void; onDownload?: (image: ImageGalleryImage) => void; onLightboxOpen?: (event: unknown) => void; onLightboxClose?: () => void }
287
+ export interface ListProps extends HtmlComponentProps<HTMLUListElement> { dense?: boolean; disablePadding?: boolean; nav?: boolean; subheader?: ReactNode }
288
+ export interface ListItemProps<T extends ElementType = 'li'> extends PolymorphicProps<T, { children?: ReactNode; className?: string; button?: boolean; disabled?: boolean; divider?: boolean; selected?: boolean; disableGutters?: boolean; multiselect?: boolean }> { component?: T }
289
+ export interface ListItemIconProps extends HtmlComponentProps<HTMLSpanElement> { position?: 'start' | 'end' }
290
+ export interface ListItemTextProps extends HtmlComponentProps<HTMLSpanElement> { primary?: ReactNode; secondary?: ReactNode; inset?: boolean }
291
+ export interface NumberAnimationProps extends HtmlComponentProps<HTMLSpanElement> { active?: boolean; duration?: number; from?: number; to?: number; locale?: string; precision?: number; showSeparator?: boolean; prefix?: ReactNode; suffix?: ReactNode; separator?: string; formatter?: (value: number) => ReactNode; easing?: 'linear' | 'easeIn' | 'easeOut' | 'easeInOut' | string; onFinish?: () => void }
292
+ export interface PaginationProps extends Omit<HtmlComponentProps<HTMLElement>, 'onChange'> { value?: number; page?: number; onChange?: (page: number) => void; total?: number; pageSize?: number; siblingCount?: number; boundaryCount?: number; size?: ComponentSize | 'xl' }
293
+ export interface PaperProps<T extends ElementType = 'div'> extends PolymorphicProps<T, { children?: ReactNode; className?: string; style?: CSSProperties; variant?: 'elevation' | 'outlined' | 'minimal'; elevation?: number; square?: boolean; hoverable?: boolean; clickable?: boolean; color?: ComponentColor | 'default'; size?: ComponentSize | null; shape?: string | null; gradient?: boolean; frosted?: boolean; textured?: boolean }> { component?: T }
294
+ export interface PopoverProps extends HtmlComponentProps<HTMLDivElement> { open?: boolean; onOpenChange?: (open: boolean) => void; triggerText?: ReactNode; trigger?: ReactNode; placement?: FloatingPlacement; offset?: number }
295
+ export interface PricingPlan { title?: ReactNode; price?: ReactNode; features?: readonly ReactNode[]; highlighted?: boolean; [key: string]: unknown }
296
+ export interface PricingTableProps extends HtmlComponentProps<HTMLDivElement> { plans?: readonly PricingPlan[]; columns?: number }
297
+ export interface ProgressProps extends HtmlComponentProps<HTMLDivElement> { value?: number; label?: ReactNode; showPercent?: boolean; color?: ComponentColor; size?: ComponentSize; animated?: boolean }
298
+ export interface RatingProps extends Omit<HtmlComponentProps<HTMLDivElement>, 'onChange'> { value?: number; max?: number; readOnly?: boolean; onChange?: (value: number) => void; ariaLabel?: string }
299
+ export interface SkeletonProps<T extends ElementType = 'div'> extends PolymorphicProps<T, { children?: ReactNode; className?: string; style?: CSSProperties; animation?: false | 'pulse' | 'wave'; height?: number | string; width?: number | string; variant?: 'text' | 'rectangular' | 'rounded' | 'circular' }> { component?: T }
300
+ export interface SliderProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'onChange' | 'value' | 'defaultValue'> { value?: number; defaultValue?: number; min?: number; max?: number; step?: number; label?: ReactNode; valueLabelDisplay?: 'off' | 'auto' | 'on'; onChange?: (value: number) => void; className?: string; style?: CSSProperties }
301
+ export interface SlideOverProps extends HtmlComponentProps<HTMLDivElement> { open?: boolean; onClose?: () => void; placement?: 'left' | 'right' | 'top' | 'bottom'; width?: number | string; header?: ReactNode; footer?: ReactNode }
302
+ export interface SnackbarProps extends HtmlComponentProps<HTMLDivElement> { open?: boolean; message?: ReactNode; severity?: 'success' | 'warning' | 'error' | 'info'; closable?: boolean; showIcon?: boolean; showProgress?: boolean; autoHideDuration?: number; action?: ReactNode; onClose?: () => void; onAction?: () => void }
303
+ export interface StatusProps extends HtmlComponentProps<HTMLSpanElement> { status?: 'default' | 'success' | 'warning' | 'error' | 'info' | string; size?: ComponentSize; showText?: boolean; animated?: boolean; animationType?: 'auto' | 'glow' | 'spin' | 'bounce' | 'shake' | 'ripple'; text?: ReactNode }
304
+ export interface ToolbarProps extends HtmlComponentProps<HTMLDivElement> { variant?: 'regular' | 'dense'; disableGutters?: boolean }
305
+ export interface TooltipProps extends HtmlComponentProps<HTMLDivElement> { text?: ReactNode; placement?: 'top' | 'bottom' | 'left' | 'right'; children?: ReactNode }
306
+ export interface TypographyProps<T extends ElementType = 'p'> extends PolymorphicProps<T, { children?: ReactNode; className?: string; style?: CSSProperties; variant?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'subtitle1' | 'subtitle2' | 'body1' | 'body2' | 'caption' | 'overline'; component?: T; color?: string; align?: CSSProperties['textAlign']; gutterBottom?: boolean; noWrap?: boolean }> { component?: T }
307
+ export interface TypingTextProps extends HtmlComponentProps<HTMLSpanElement> { text?: string; speed?: number; pause?: number; loop?: boolean; erase?: boolean; showCursor?: boolean }
308
+ export interface VerificationCodeInputProps extends Omit<HtmlComponentProps<HTMLDivElement>, 'onChange'> { length?: number; value?: string; onChange?: (value: string) => void; onComplete?: (value: string) => void; autoFocus?: boolean }
309
+ export interface VideoPlayerProps extends HtmlComponentProps<HTMLDivElement> { src: string; autoplay?: boolean; loop?: boolean; muted?: boolean; poster?: string; controls?: boolean }
310
+ export interface WatermarkProps extends HtmlComponentProps<HTMLDivElement> { content?: ReactNode; image?: string; fullscreen?: boolean; gap?: [number, number]; offset?: [number, number]; rotate?: number; zIndex?: number; opacity?: number; debug?: boolean; cross?: boolean }
311
+
245
312
  export interface ThemeContextValue extends ThemeSnapshot {
246
313
  setMode: (mode: ThemeMode) => void
247
314
  toggleMode: () => void
@@ -342,66 +409,67 @@ export type {
342
409
  SplitRatio,
343
410
  } from '@zeturn/watercolor-core'
344
411
 
345
- export const Accordion: WatercolorComponent
346
- export const Alert: WatercolorComponent
347
- export const AppBar: WatercolorComponent
348
- export const Autocomplete: WatercolorComponent
349
- export const Avatar: WatercolorComponent
350
- export const Badge: WatercolorComponent
351
- export const Banner: WatercolorComponent
352
- export const Blockquote: WatercolorComponent
353
- export const Box: WatercolorComponent
354
- export const Breadcrumb: WatercolorComponent
412
+ export const Accordion: ComponentType<AccordionProps>
413
+ export const Alert: ComponentType<AlertProps>
414
+ export const AppBar: ComponentType<AppBarProps>
415
+ export const Autocomplete: ComponentType<AutocompleteProps>
416
+ export const Avatar: ComponentType<AvatarProps>
417
+ export const Badge: ComponentType<BadgeProps>
418
+ export const Banner: ComponentType<BannerProps>
419
+ export const Blockquote: ComponentType<BlockquoteProps>
420
+ export const Box: <T extends ElementType = 'div'>(props: BoxProps<T>) => ReactElement | null
421
+ export const Breadcrumb: ComponentType<BreadcrumbProps>
355
422
  export const Button: ComponentType<ButtonProps>
356
- export const Card: WatercolorComponent
357
- export const CardActions: WatercolorComponent
358
- export const CardContent: WatercolorComponent
423
+ export const Card: ComponentType<CardProps>
424
+ export const CardActions: ComponentType<CardActionsProps>
425
+ export const CardContent: ComponentType<CardContentProps>
359
426
  export const Checkbox: ComponentType<CheckboxProps>
360
- export const Chip: WatercolorComponent
361
- export const CircularProgress: WatercolorComponent
362
- export const ColorPicker: WatercolorComponent
363
- export const Container: WatercolorComponent
364
- export const Copy: WatercolorComponent
365
- export const DatePicker: WatercolorComponent
366
- export const Fab: WatercolorComponent
367
- export const Feed: WatercolorComponent
368
- export const Feature: WatercolorComponent
369
- export const FileInput: WatercolorComponent
370
- export const FormControl: WatercolorComponent
371
- export const FormControlLabel: WatercolorComponent
372
- export const FormGroup: WatercolorComponent
373
- export const FormHelperText: WatercolorComponent
374
- export const Grid: WatercolorComponent
375
- export const HoverCard: WatercolorComponent
376
- export const Icon: WatercolorComponent
377
- export const IconButton: WatercolorComponent
378
- export const ImageGallery: WatercolorComponent
427
+ export const Chip: ComponentType<ChipProps>
428
+ export const CircularProgress: ComponentType<CircularProgressProps>
429
+ export const ColorPicker: ComponentType<ColorPickerProps>
430
+ export const CodeBlock: ComponentType<CodeBlockProps>
431
+ export const Container: ComponentType<ContainerProps>
432
+ export const Copy: ComponentType<CopyProps>
433
+ export const DatePicker: ComponentType<DatePickerProps>
434
+ export const Fab: ComponentType<FabProps>
435
+ export const Feed: ComponentType<FeedProps>
436
+ export const Feature: ComponentType<FeatureProps>
437
+ export const FileInput: ComponentType<FileInputProps>
438
+ export const FormControl: ComponentType<FormControlProps>
439
+ export const FormControlLabel: ComponentType<FormControlLabelProps>
440
+ export const FormGroup: ComponentType<FormGroupProps>
441
+ export const FormHelperText: ComponentType<FormHelperTextProps>
442
+ export const Grid: ComponentType<GridProps>
443
+ export const HoverCard: ComponentType<HoverCardProps>
444
+ export const Icon: ComponentType<IconProps>
445
+ export const IconButton: ComponentType<IconButtonProps>
446
+ export const ImageGallery: ComponentType<ImageGalleryProps>
379
447
  export const Inline: <T extends ElementType = 'div'>(props: InlineProps<T>) => ReactElement | null
380
448
  export const Input: ComponentType<InputProps>
381
- export const List: WatercolorComponent
382
- export const ListItem: WatercolorComponent
383
- export const ListItemIcon: WatercolorComponent
384
- export const ListItemText: WatercolorComponent
449
+ export const List: ComponentType<ListProps>
450
+ export const ListItem: <T extends ElementType = 'li'>(props: ListItemProps<T>) => ReactElement | null
451
+ export const ListItemIcon: ComponentType<ListItemIconProps>
452
+ export const ListItemText: ComponentType<ListItemTextProps>
385
453
  export const Menu: ComponentType<MenuProps>
386
454
  export const Modal: ComponentType<ModalProps>
387
- export const NumberAnimation: WatercolorComponent
388
- export const Pagination: WatercolorComponent
455
+ export const NumberAnimation: ComponentType<NumberAnimationProps>
456
+ export const Pagination: ComponentType<PaginationProps>
389
457
  export const Page: <T extends ElementType = 'div'>(props: PageProps<T>) => ReactElement | null
390
- export const Paper: WatercolorComponent
391
- export const Popover: WatercolorComponent
392
- export const PricingTable: WatercolorComponent
393
- export const Progress: WatercolorComponent
458
+ export const Paper: <T extends ElementType = 'div'>(props: PaperProps<T>) => ReactElement | null
459
+ export const Popover: ComponentType<PopoverProps>
460
+ export const PricingTable: ComponentType<PricingTableProps>
461
+ export const Progress: ComponentType<ProgressProps>
394
462
  export const Radio: <Value = string | number | boolean>(props: RadioProps<Value>) => ReactElement | null
395
463
  export const RadioGroup: <Value = string | number | boolean>(props: RadioGroupProps<Value>) => ReactElement | null
396
- export const Rating: WatercolorComponent
464
+ export const Rating: ComponentType<RatingProps>
397
465
  export const Select: <Value extends SelectValue = SelectValue>(props: SelectProps<Value>) => ReactElement | null
398
- export const Skeleton: WatercolorComponent
399
- export const Slider: WatercolorComponent
400
- export const SlideOver: WatercolorComponent
466
+ export const Skeleton: <T extends ElementType = 'div'>(props: SkeletonProps<T>) => ReactElement | null
467
+ export const Slider: ComponentType<SliderProps>
468
+ export const SlideOver: ComponentType<SlideOverProps>
401
469
  export const Split: <T extends ElementType = 'div'>(props: SplitProps<T>) => ReactElement | null
402
470
  export const Stack: <T extends ElementType = 'div'>(props: StackProps<T>) => ReactElement | null
403
- export const Snackbar: WatercolorComponent
404
- export const Status: WatercolorComponent
471
+ export const Snackbar: ComponentType<SnackbarProps>
472
+ export const Status: ComponentType<StatusProps>
405
473
  export const Switch: ComponentType<SwitchProps>
406
474
  export const Table: ComponentType<TableProps> & {
407
475
  Head: ComponentType<TableHeadProps>
@@ -415,13 +483,13 @@ export const TableHead: ComponentType<TableHeadProps>
415
483
  export const TableRow: ComponentType<TableRowProps>
416
484
  export const Tabs: ComponentType<TabsProps>
417
485
  export const TextField: ComponentType<TextFieldProps>
418
- export const Toolbar: WatercolorComponent
419
- export const Tooltip: WatercolorComponent
420
- export const Typography: WatercolorComponent
421
- export const TypingText: WatercolorComponent
422
- export const VerificationCodeInput: WatercolorComponent
423
- export const VideoPlayer: WatercolorComponent
424
- export const Watermark: WatercolorComponent
486
+ export const Toolbar: ComponentType<ToolbarProps>
487
+ export const Tooltip: ComponentType<TooltipProps>
488
+ export const Typography: <T extends ElementType = 'p'>(props: TypographyProps<T>) => ReactElement | null
489
+ export const TypingText: ComponentType<TypingTextProps>
490
+ export const VerificationCodeInput: ComponentType<VerificationCodeInputProps>
491
+ export const VideoPlayer: ComponentType<VideoPlayerProps>
492
+ export const Watermark: ComponentType<WatermarkProps>
425
493
  export const LocaleProvider: ComponentType<LocaleProviderProps>
426
494
  export const defaultLocaleMessages: WatercolorLocaleMessages
427
495
  export function useLocale(): LocaleContextValue
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeturn/watercolor-react",
3
- "version": "1.2.4",
3
+ "version": "1.2.7",
4
4
  "type": "module",
5
5
  "license": "ISC",
6
6
  "main": "dist/watercolor-react.es.js",
@@ -41,11 +41,11 @@
41
41
  "directory": "packages/react"
42
42
  },
43
43
  "peerDependencies": {
44
- "@zeturn/watercolor-icons-feather": "1.2.4",
45
- "@zeturn/watercolor-icons-heroicons-react": "1.2.4",
46
- "@zeturn/watercolor-icons-lucide-react": "1.2.4",
47
- "@zeturn/watercolor-icons-phosphor-react": "1.2.4",
48
- "@zeturn/watercolor-icons-tabler-react": "1.2.4",
44
+ "@zeturn/watercolor-icons-feather": "1.2.7",
45
+ "@zeturn/watercolor-icons-heroicons-react": "1.2.7",
46
+ "@zeturn/watercolor-icons-lucide-react": "1.2.7",
47
+ "@zeturn/watercolor-icons-phosphor-react": "1.2.7",
48
+ "@zeturn/watercolor-icons-tabler-react": "1.2.7",
49
49
  "react": "^18.0.0 || ^19.0.0",
50
50
  "react-dom": "^18.0.0 || ^19.0.0"
51
51
  },
@@ -67,7 +67,7 @@
67
67
  }
68
68
  },
69
69
  "dependencies": {
70
- "@zeturn/watercolor-core": "1.2.4",
70
+ "@zeturn/watercolor-core": "1.2.7",
71
71
  "prop-types": "^15.8.1"
72
72
  },
73
73
  "devDependencies": {