@blockscout/ui-toolkit 2.0.3 → 2.1.0-alpha.2

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/README.md CHANGED
@@ -70,9 +70,13 @@ import { themeConfig } from '@blockscout/ui-toolkit';
70
70
 
71
71
  const customOverrides = {
72
72
  // Add your custom theme overrides here
73
- colors: {
74
- brand: {
75
- primary: '#your-color',
73
+ theme: {
74
+ semanticTokens: {
75
+ colors: {
76
+ brand: {
77
+ primary: { value: '#5353D3' }
78
+ },
79
+ },
76
80
  },
77
81
  },
78
82
  };
@@ -11,7 +11,7 @@ interface LinkPropsChakra extends ChakraLinkProps {
11
11
  noIcon?: boolean;
12
12
  disabled?: boolean;
13
13
  }
14
- interface LinkPropsNext extends Pick<NextLinkProps, 'shallow' | 'prefetch' | 'scroll'> {
14
+ interface LinkPropsNext extends Partial<Pick<NextLinkProps, 'shallow' | 'prefetch' | 'scroll'>> {
15
15
  }
16
16
  export interface LinkProps extends LinkPropsChakra, LinkPropsNext {
17
17
  }
@@ -1,10 +1,13 @@
1
1
  import { ListCollection, Select as ChakraSelect } from '@chakra-ui/react';
2
2
  import * as React from 'react';
3
- export interface SelectOption<Value extends string = string> {
4
- value: Value;
3
+ export type SelectOption<Value extends string = string> = ({
5
4
  label: string;
5
+ } | {
6
+ renderLabel: () => React.ReactNode;
7
+ }) & {
8
+ value: Value;
6
9
  icon?: React.ReactNode;
7
- }
10
+ };
8
11
  export interface SelectControlProps extends ChakraSelect.ControlProps {
9
12
  noIndicator?: boolean;
10
13
  triggerProps?: ChakraSelect.TriggerProps;
@@ -2,8 +2,7 @@ import { default as React } from 'react';
2
2
  import { FieldValues, Path } from 'react-hook-form';
3
3
  import { FormFieldPropsBase } from './types';
4
4
  import { CheckboxProps } from '../../../chakra/checkbox';
5
- interface Props<FormFields extends FieldValues, Name extends Path<FormFields> = Path<FormFields>> extends Pick<FormFieldPropsBase<FormFields, Name>, 'rules' | 'name' | 'onChange' | 'readOnly'>, Omit<CheckboxProps, 'name' | 'onChange'> {
5
+ export interface FormFieldCheckboxProps<FormFields extends FieldValues, Name extends Path<FormFields> = Path<FormFields>> extends Pick<FormFieldPropsBase<FormFields, Name>, 'rules' | 'name' | 'onChange' | 'readOnly' | 'controllerProps'>, Omit<CheckboxProps, 'name' | 'onChange'> {
6
6
  label: string;
7
7
  }
8
- export declare const FormFieldCheckbox: <FormFields extends FieldValues, Name extends Path<FormFields> = Path<FormFields>>({ name, label, rules, onChange, readOnly, ...rest }: Props<FormFields, Name>) => React.JSX.Element;
9
- export {};
8
+ export declare const FormFieldCheckbox: <FormFields extends FieldValues, Name extends Path<FormFields> = Path<FormFields>>({ name, label, rules, onChange, readOnly, controllerProps, ...rest }: FormFieldCheckboxProps<FormFields, Name>) => React.JSX.Element;
@@ -0,0 +1,12 @@
1
+ import { default as React } from 'react';
2
+ import { FieldValues, Path } from 'react-hook-form';
3
+ import { FormFieldPropsBase } from './types';
4
+ import { CheckboxGroupProps, CheckboxProps } from '../../../chakra/checkbox';
5
+ export interface FormFieldCheckboxGroupProps<FormFields extends FieldValues, Name extends Path<FormFields> = Path<FormFields>> extends Pick<FormFieldPropsBase<FormFields, Name>, 'rules' | 'name' | 'onChange' | 'readOnly' | 'controllerProps'>, Omit<CheckboxGroupProps, 'name' | 'onChange'> {
6
+ options: Array<{
7
+ label: string;
8
+ value: string;
9
+ }>;
10
+ itemProps?: CheckboxProps;
11
+ }
12
+ export declare const FormFieldCheckboxGroup: <FormFields extends FieldValues, Name extends Path<FormFields>>(props: FormFieldCheckboxGroupProps<FormFields, Name>) => React.JSX.Element;
@@ -2,8 +2,7 @@ import { BoxProps } from '@chakra-ui/react';
2
2
  import { default as React } from 'react';
3
3
  import { FieldValues, Path } from 'react-hook-form';
4
4
  import { FormFieldPropsBase } from './types';
5
- interface Props<FormFields extends FieldValues, Name extends Path<FormFields> = Path<FormFields>> extends FormFieldPropsBase<FormFields, Name> {
5
+ export interface FormFieldColorProps<FormFields extends FieldValues, Name extends Path<FormFields> = Path<FormFields>> extends FormFieldPropsBase<FormFields, Name> {
6
6
  sampleDefaultBgColor?: BoxProps['bgColor'];
7
7
  }
8
- export declare const FormFieldColor: <FormFields extends FieldValues, Name extends Path<FormFields> = Path<FormFields>>({ name, placeholder, rules, onBlur, group, inputProps, size, disabled, sampleDefaultBgColor, ...restProps }: Props<FormFields, Name>) => React.JSX.Element;
9
- export {};
8
+ export declare const FormFieldColor: <FormFields extends FieldValues, Name extends Path<FormFields> = Path<FormFields>>({ name, placeholder, rules, onBlur, group, inputProps, size, disabled, sampleDefaultBgColor, controllerProps, ...restProps }: FormFieldColorProps<FormFields, Name>) => React.JSX.Element;
@@ -0,0 +1,4 @@
1
+ import { default as React } from 'react';
2
+ import { FieldValues } from 'react-hook-form';
3
+ import { FormFieldPropsBase } from './types';
4
+ export declare const FormFieldNumber: <FormFields extends FieldValues>({ inputProps, ...rest }: FormFieldPropsBase<FormFields>) => React.JSX.Element;
@@ -0,0 +1,14 @@
1
+ import { default as React } from 'react';
2
+ import { FieldValues, Path } from 'react-hook-form';
3
+ import { FormFieldPropsBase } from './types';
4
+ import { ExcludeUndefined } from '../../../../types/utils';
5
+ import { RadioGroupProps, RadioProps } from '../../../chakra/radio';
6
+ export interface FormFieldRadioProps<FormFields extends FieldValues, Name extends Path<FormFields>> extends Pick<FormFieldPropsBase<FormFields>, 'rules' | 'controllerProps'>, RadioGroupProps {
7
+ name: Name;
8
+ options: Array<{
9
+ value: ExcludeUndefined<FormFields[Name]>;
10
+ label: string;
11
+ }>;
12
+ itemProps?: RadioProps;
13
+ }
14
+ export declare const FormFieldRadio: <FormFields extends FieldValues, Name extends Path<FormFields>>({ name, options, itemProps, onValueChange, disabled, controllerProps, ...rest }: FormFieldRadioProps<FormFields, Name>) => React.JSX.Element;
@@ -2,6 +2,5 @@ import { default as React } from 'react';
2
2
  import { Path, FieldValues } from 'react-hook-form';
3
3
  import { FormFieldPropsBase } from './types';
4
4
  import { SelectProps } from '../../../chakra/select';
5
- type Props<FormFields extends FieldValues, Name extends Path<FormFields>> = FormFieldPropsBase<FormFields, Name> & SelectProps;
6
- export declare const FormFieldSelect: <FormFields extends FieldValues, Name extends Path<FormFields>>(props: Props<FormFields, Name>) => React.JSX.Element;
7
- export {};
5
+ export type FormFieldSelectProps<FormFields extends FieldValues, Name extends Path<FormFields>> = FormFieldPropsBase<FormFields, Name> & SelectProps;
6
+ export declare const FormFieldSelect: <FormFields extends FieldValues, Name extends Path<FormFields>>(props: FormFieldSelectProps<FormFields, Name>) => React.JSX.Element;
@@ -2,6 +2,5 @@ import { default as React } from 'react';
2
2
  import { Path, FieldValues } from 'react-hook-form';
3
3
  import { FormFieldPropsBase } from './types';
4
4
  import { SelectAsyncProps } from '../../../chakra/select';
5
- type Props<FormFields extends FieldValues, Name extends Path<FormFields>> = FormFieldPropsBase<FormFields, Name> & SelectAsyncProps;
6
- export declare const FormFieldSelectAsync: <FormFields extends FieldValues, Name extends Path<FormFields>>(props: Props<FormFields, Name>) => React.JSX.Element;
7
- export {};
5
+ export type FormFieldSelectAsyncProps<FormFields extends FieldValues, Name extends Path<FormFields>> = FormFieldPropsBase<FormFields, Name> & SelectAsyncProps;
6
+ export declare const FormFieldSelectAsync: <FormFields extends FieldValues, Name extends Path<FormFields>>(props: FormFieldSelectAsyncProps<FormFields, Name>) => React.JSX.Element;
@@ -0,0 +1,6 @@
1
+ import { default as React } from 'react';
2
+ import { FieldValues, Path } from 'react-hook-form';
3
+ import { FormFieldPropsBase } from './types';
4
+ import { SwitchProps } from '../../../chakra/switch';
5
+ export type FormFieldSwitchProps<FormFields extends FieldValues, Name extends Path<FormFields>> = Pick<FormFieldPropsBase<FormFields, Name>, 'name' | 'placeholder' | 'rules' | 'controllerProps'> & SwitchProps;
6
+ export declare const FormFieldSwitch: <FormFields extends FieldValues, Name extends Path<FormFields>>({ name, placeholder, onCheckedChange, rules, controllerProps, disabled, ...rest }: FormFieldSwitchProps<FormFields, Name>) => React.JSX.Element;
@@ -1,8 +1,7 @@
1
1
  import { default as React } from 'react';
2
2
  import { FieldValues, Path } from 'react-hook-form';
3
3
  import { FormFieldPropsBase } from './types';
4
- interface Props<FormFields extends FieldValues, Name extends Path<FormFields> = Path<FormFields>> extends FormFieldPropsBase<FormFields, Name> {
4
+ export interface FormFieldTextProps<FormFields extends FieldValues, Name extends Path<FormFields> = Path<FormFields>> extends FormFieldPropsBase<FormFields, Name> {
5
5
  asComponent?: 'Input' | 'Textarea';
6
6
  }
7
- export declare const FormFieldText: <FormFields extends FieldValues, Name extends Path<FormFields> = Path<FormFields>>({ name, placeholder, rules, onBlur, group, inputProps, asComponent, size: sizeProp, disabled, floating: floatingProp, ...restProps }: Props<FormFields, Name>) => React.JSX.Element;
8
- export {};
7
+ export declare const FormFieldText: <FormFields extends FieldValues, Name extends Path<FormFields> = Path<FormFields>>({ name, placeholder, rules, onBlur, group, inputProps, asComponent, size: sizeProp, disabled, floating: floatingProp, controllerProps, ...restProps }: FormFieldTextProps<FormFields, Name>) => React.JSX.Element;
@@ -2,9 +2,14 @@ export * from './image/FormFieldImagePreview';
2
2
  export * from './image/useImageField';
3
3
  export * from './FormFieldAddress';
4
4
  export * from './FormFieldCheckbox';
5
+ export * from './FormFieldCheckboxGroup';
5
6
  export * from './FormFieldColor';
6
7
  export * from './FormFieldEmail';
8
+ export * from './FormFieldNumber';
9
+ export * from './FormFieldRadio';
7
10
  export * from './FormFieldSelect';
8
11
  export * from './FormFieldSelectAsync';
12
+ export * from './FormFieldSwitch';
9
13
  export * from './FormFieldText';
10
14
  export * from './FormFieldUrl';
15
+ export * from './types';
@@ -1,5 +1,5 @@
1
1
  import { default as React } from 'react';
2
- import { ControllerRenderProps, FieldValues, Path, RegisterOptions } from 'react-hook-form';
2
+ import { ControllerRenderProps, FieldPathValue, FieldValues, Path, RegisterOptions } from 'react-hook-form';
3
3
  import { FieldProps } from '../../../chakra/field';
4
4
  import { InputProps } from '../../../chakra/input';
5
5
  import { InputGroupProps } from '../../../chakra/input-group';
@@ -11,6 +11,10 @@ export interface FormFieldPropsBase<FormFields extends FieldValues, Name extends
11
11
  onBlur?: () => void;
12
12
  onChange?: () => void;
13
13
  inputProps?: InputProps | TextareaProps;
14
+ controllerProps?: {
15
+ shouldUnregister?: boolean;
16
+ defaultValue?: FieldPathValue<FormFields, Name>;
17
+ };
14
18
  group?: Omit<InputGroupProps, 'children' | 'endElement'> & {
15
19
  endElement?: React.ReactNode | (({ field }: {
16
20
  field: ControllerRenderProps<FormFields, Name>;