From dc4b8baaf82cc77ef8cfc605a19df9faf0ad4427 Mon Sep 17 00:00:00 2001 From: doryan04 Date: Thu, 1 Feb 2024 16:23:29 +0400 Subject: [PATCH] ADDED: A few types for convenience FIXED: Fixed generic types, where used type "any" --- .../badge/badges.types.ts | 5 ++-- .../button-layout/button-layout.types.ts | 6 +++++ .../button-layout/button.types.ts | 25 ------------------- .../button/button.types.ts | 10 ++++++++ .../checkbox-layout/checkbox-layout.types.ts | 5 ++-- .../checkbox/checkbox.types.ts | 6 +++++ .../divider/divider.types.ts | 6 +++++ src/primitive-components/fab/fab.types.ts | 12 +++++++++ .../icon-button/icon-button.types.ts | 20 ++++++++++++++- src/primitive-components/icon/icon.types.ts | 7 +++--- src/primitive-components/radio/radio.types.ts | 8 ++++++ .../switch/switch.types.ts | 4 +-- .../text-field/text-field.types.ts | 5 ++-- 13 files changed, 82 insertions(+), 37 deletions(-) create mode 100644 src/primitive-components/button-layout/button-layout.types.ts delete mode 100644 src/primitive-components/button-layout/button.types.ts create mode 100644 src/primitive-components/button/button.types.ts create mode 100644 src/primitive-components/checkbox/checkbox.types.ts create mode 100644 src/primitive-components/divider/divider.types.ts create mode 100644 src/primitive-components/fab/fab.types.ts create mode 100644 src/primitive-components/radio/radio.types.ts diff --git a/src/primitive-components/badge/badges.types.ts b/src/primitive-components/badge/badges.types.ts index 817560f..c0eaace 100644 --- a/src/primitive-components/badge/badges.types.ts +++ b/src/primitive-components/badge/badges.types.ts @@ -1,5 +1,6 @@ -import { PropsWithChildren } from 'react'; +import { SVGProps } from 'react'; -export interface BadgeProps extends PropsWithChildren { +export interface BadgeProps extends SVGProps { + children?: string | undefined; disableValue?: boolean; } diff --git a/src/primitive-components/button-layout/button-layout.types.ts b/src/primitive-components/button-layout/button-layout.types.ts new file mode 100644 index 0000000..84488b7 --- /dev/null +++ b/src/primitive-components/button-layout/button-layout.types.ts @@ -0,0 +1,6 @@ +import { ButtonHTMLAttributes } from 'react'; +import { IRippleProps } from '../ripple/ripple.types'; + +export interface ButtonLayoutProps + extends IRippleProps, + ButtonHTMLAttributes {} diff --git a/src/primitive-components/button-layout/button.types.ts b/src/primitive-components/button-layout/button.types.ts deleted file mode 100644 index 5a38760..0000000 --- a/src/primitive-components/button-layout/button.types.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { PropsWithChildren } from 'react'; - -type ToggleButtonType = { - selected: string; - unselected: string; -}; - -export interface ButtonMainProps extends PropsWithChildren { - disabled?: boolean; - variant?: 'filled' | 'outlined' | 'elevated' | 'tonal' | 'text'; -} - -export interface FABMainProps extends PropsWithChildren { - icon: string; - disabled?: boolean; - size?: 'small' | 'default' | 'large' | 'extended'; - variant?: 'surface' | 'primary' | 'secondary' | 'tertiary'; -} - -export interface IconButtonMainProps extends PropsWithChildren { - icon: string; - toggled?: false | ToggleButtonType; - disabled?: boolean; - variant?: 'default' | 'filled' | 'tonal' | 'outlined'; -} diff --git a/src/primitive-components/button/button.types.ts b/src/primitive-components/button/button.types.ts new file mode 100644 index 0000000..e4fd1b8 --- /dev/null +++ b/src/primitive-components/button/button.types.ts @@ -0,0 +1,10 @@ +import { ButtonHTMLAttributes } from 'react'; +import { IRippleProps } from '../ripple/ripple.types'; + +export interface ButtonMainProps + extends ButtonHTMLAttributes { + disabled?: boolean; + variant?: 'filled' | 'outlined' | 'elevated' | 'tonal' | 'text'; +} + +export interface ButtonProps extends IRippleProps, ButtonMainProps {} diff --git a/src/primitive-components/checkbox-layout/checkbox-layout.types.ts b/src/primitive-components/checkbox-layout/checkbox-layout.types.ts index f001170..5c02c43 100644 --- a/src/primitive-components/checkbox-layout/checkbox-layout.types.ts +++ b/src/primitive-components/checkbox-layout/checkbox-layout.types.ts @@ -1,6 +1,7 @@ -import { PropsWithChildren } from 'react'; +import { InputHTMLAttributes } from 'react'; -export interface CheckboxLayoutProps extends PropsWithChildren { +export interface CheckboxLayoutProps + extends InputHTMLAttributes { indeterminate?: boolean; typeInput?: string; type?: string; diff --git a/src/primitive-components/checkbox/checkbox.types.ts b/src/primitive-components/checkbox/checkbox.types.ts new file mode 100644 index 0000000..fd0b6a6 --- /dev/null +++ b/src/primitive-components/checkbox/checkbox.types.ts @@ -0,0 +1,6 @@ +import { InputHTMLAttributes } from 'react'; +import { IRippleProps } from '../ripple/ripple.types'; + +export interface CheckboxProps + extends InputHTMLAttributes, + IRippleProps {} diff --git a/src/primitive-components/divider/divider.types.ts b/src/primitive-components/divider/divider.types.ts new file mode 100644 index 0000000..4814f85 --- /dev/null +++ b/src/primitive-components/divider/divider.types.ts @@ -0,0 +1,6 @@ +import { HTMLAttributes } from 'react'; + +export interface DividerProps extends HTMLAttributes { + orientation?: 'vertical' | 'horizontal'; + variant?: 'full-width' | 'inset' | 'middle-inset'; +} diff --git a/src/primitive-components/fab/fab.types.ts b/src/primitive-components/fab/fab.types.ts new file mode 100644 index 0000000..6d7102c --- /dev/null +++ b/src/primitive-components/fab/fab.types.ts @@ -0,0 +1,12 @@ +import React from 'react'; +import { IRippleProps } from '../ripple/ripple.types'; + +export interface FABMainProps + extends React.ButtonHTMLAttributes { + icon: string; + disabled?: boolean; + size?: 'small' | 'default' | 'large' | 'extended'; + variant?: 'surface' | 'primary' | 'secondary' | 'tertiary'; +} + +export interface FABProps extends FABMainProps, IRippleProps {} diff --git a/src/primitive-components/icon-button/icon-button.types.ts b/src/primitive-components/icon-button/icon-button.types.ts index e67d69a..a335b5c 100644 --- a/src/primitive-components/icon-button/icon-button.types.ts +++ b/src/primitive-components/icon-button/icon-button.types.ts @@ -1,4 +1,22 @@ -export type toggleIconType = { +import React from 'react'; +import { IRippleProps } from '../ripple/ripple.types'; + +export type StateToggleIconType = { state: string; icon: string; }; + +export type ToggleButtonType = { + selected: string; + unselected: string; +}; + +export interface IconButtonMainProps + extends React.ButtonHTMLAttributes { + icon: string; + toggled?: false | ToggleButtonType; + disabled?: boolean; + variant?: 'default' | 'filled' | 'tonal' | 'outlined'; +} + +export interface IconButtonProps extends IconButtonMainProps, IRippleProps {} diff --git a/src/primitive-components/icon/icon.types.ts b/src/primitive-components/icon/icon.types.ts index c4d7bd2..4121579 100644 --- a/src/primitive-components/icon/icon.types.ts +++ b/src/primitive-components/icon/icon.types.ts @@ -1,11 +1,12 @@ -import { PropsWithChildren } from 'react'; +import { SVGProps } from 'react'; -export interface IconProps extends PropsWithChildren { - fill?: boolean; +export interface IconProps extends SVGProps { grade?: number; svgSize?: number; + fillIcon?: 0 | 1; iconSize?: number; opticalSize?: number; + children?: string | undefined; type?: 'outlined' | 'rounded' | 'sharp'; weight?: 100 | 200 | 300 | 400 | 500 | 600 | 700; } diff --git a/src/primitive-components/radio/radio.types.ts b/src/primitive-components/radio/radio.types.ts new file mode 100644 index 0000000..b8a9531 --- /dev/null +++ b/src/primitive-components/radio/radio.types.ts @@ -0,0 +1,8 @@ +import { InputHTMLAttributes } from 'react'; +import { IRippleProps } from '../ripple/ripple.types'; + +export interface RadioProps + extends InputHTMLAttributes, + IRippleProps { + centralRipple?: boolean; +} diff --git a/src/primitive-components/switch/switch.types.ts b/src/primitive-components/switch/switch.types.ts index 875a0f0..3094d93 100644 --- a/src/primitive-components/switch/switch.types.ts +++ b/src/primitive-components/switch/switch.types.ts @@ -1,6 +1,6 @@ -import { PropsWithChildren } from 'react'; +import { InputHTMLAttributes } from 'react'; -export interface SwitchMainProps extends PropsWithChildren { +export interface SwitchMainProps extends InputHTMLAttributes { disabled?: boolean; icon?: boolean; selected?: boolean; diff --git a/src/primitive-components/text-field/text-field.types.ts b/src/primitive-components/text-field/text-field.types.ts index 4147a93..3ed3d6a 100644 --- a/src/primitive-components/text-field/text-field.types.ts +++ b/src/primitive-components/text-field/text-field.types.ts @@ -1,6 +1,7 @@ -import { PropsWithChildren } from 'react'; +import { InputHTMLAttributes } from 'react'; -export interface TextFieldInterface extends PropsWithChildren { +export interface TextFieldInterface + extends InputHTMLAttributes { variant: 'filled' | 'outlined'; withAfterIcon?: boolean; withBeforeIcon?: boolean;