@grasp-labs/ds-react-components 0.27.0 → 1.0.0

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.
Files changed (29) hide show
  1. package/dist/components/baseButton/BaseButton.d.ts +4 -4
  2. package/dist/components/baseButton/BaseButton.styles.d.ts +5 -20
  3. package/dist/components/baseTextBox/BaseTextBox.d.ts +4 -4
  4. package/dist/components/button/Button.d.ts +5 -4
  5. package/dist/components/button/Button.styles.d.ts +3 -10
  6. package/dist/components/datePicker/DatePickerTextBox.d.ts +3 -3
  7. package/dist/components/dialog/ConfirmationDialog.d.ts +2 -2
  8. package/dist/components/dynamicIcon/DynamicIcon.d.ts +1 -1
  9. package/dist/components/iconButton/IconButton.d.ts +1 -1
  10. package/dist/components/iconButton/IconButton.styles.d.ts +5 -0
  11. package/dist/components/link/Link.d.ts +2 -2
  12. package/dist/components/multiSelect/MultiSelect.d.ts +3 -3
  13. package/dist/components/select/Select.d.ts +3 -3
  14. package/dist/components/toggleButton/ToggleButton.d.ts +23 -0
  15. package/dist/components/toggleButton/ToggleButtonTrack.d.ts +23 -0
  16. package/dist/components/toggleButton/index.d.ts +4 -0
  17. package/dist/components/typography/Typography.d.ts +16 -24
  18. package/dist/components/typography/index.d.ts +1 -1
  19. package/dist/icons/iconsComponents.d.ts +55 -0
  20. package/dist/icons/{icons.d.ts → iconsLazy.d.ts} +79 -71
  21. package/dist/icons/index.d.ts +2 -1
  22. package/dist/{index-DGPKStbk.js → index-DbrsXeBO.js} +5189 -5081
  23. package/dist/index.css +1 -1
  24. package/dist/index.d.ts +1 -0
  25. package/dist/{index.esm-BWMKgcXW.js → index.esm-C32CGj2t.js} +1 -1
  26. package/dist/index.js +127 -114
  27. package/dist/tailwind-styles.css +124 -27
  28. package/package.json +1 -1
  29. package/dist/circle-filled-DDHXyiE7.js +0 -5
@@ -1,7 +1,7 @@
1
1
  import { ButtonHTMLAttributes } from 'react';
2
- export type BaseButtonProps = ButtonHTMLAttributes<HTMLButtonElement> & {
3
- variant?: "contained" | "outlined" | "text";
4
- color?: "primary" | "secondary" | "danger";
2
+ import { Variant } from './BaseButton.styles';
3
+ export type BaseButtonProps = Omit<ButtonHTMLAttributes<HTMLButtonElement>, "prefix" | "suffix"> & {
4
+ variant?: Variant;
5
5
  };
6
6
  /**
7
7
  * A foundational button component with configurable variants and color schemes.
@@ -10,4 +10,4 @@ export type BaseButtonProps = ButtonHTMLAttributes<HTMLButtonElement> & {
10
10
  * @param props - The props for the BaseButton component.
11
11
  * @returns The rendered button element.
12
12
  */
13
- export declare const BaseButton: ({ variant, color, className, children, ...props }: BaseButtonProps) => import("react/jsx-runtime").JSX.Element;
13
+ export declare const BaseButton: ({ variant, className, children, ...props }: BaseButtonProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,20 +1,5 @@
1
- export type Variant = "contained" | "outlined" | "text";
2
- export type Color = "primary" | "secondary" | "danger";
3
- export declare const colorVariantClasses: {
4
- readonly contained: {
5
- readonly primary: "border-2 border-primary bg-primary text-contrast disabled:hover:bg-primary disabled:hover:text-contrast hover:bg-contrast hover:text-text ";
6
- readonly secondary: "border-2 border-secondary bg-secondary text-text disabled:hover:bg-secondary disabled:hover:text-text hover:bg-contrast hover:text-text";
7
- readonly danger: "border-2 border-error bg-error text-contrast disabled:hover:bg-error disabled:hover:text-contrast hover:bg-contrast hover:text-error";
8
- };
9
- readonly outlined: {
10
- readonly primary: "border-2 border-primary bg-contrast text-text disabled:hover:bg-contrast disabled:hover:text-text hover:bg-primary hover:text-contrast";
11
- readonly secondary: "border-2 border-secondary bg-contrast text-text disabled:hover:bg-contrast disabled:hover:text-text hover:bg-secondary hover:text-text";
12
- readonly danger: "border-2 border-error bg-contrast text-error disabled:hover:bg-contrast disabled:hover:text-error hover:bg-error hover:text-contrast";
13
- };
14
- readonly text: {
15
- readonly primary: "text-primary hover:text-primary-light";
16
- readonly secondary: "text-text";
17
- readonly danger: "text-error";
18
- };
19
- };
20
- export declare function getBaseButtonClassName(variant: Variant, color: Color, className?: string): string;
1
+ export type Variant = "primary" | "secondary" | "text" | "danger";
2
+ export declare const baseClasses: "\n inline-flex cursor-pointer items-center justify-center select-none transition-colors leading-none\n focus-visible:outline-primary focus-visible:outline-1 focus-visible:outline-offset-1\n";
3
+ export declare const variantClasses: Record<Variant, string>;
4
+ export declare const disabledClasses: "\n disabled:cursor-not-allowed disabled:opacity-50\n";
5
+ export declare const getBaseButtonClassName: (variant: Variant, className?: string) => string;
@@ -1,10 +1,10 @@
1
1
  import { InputHTMLAttributes, JSX, ReactNode } from 'react';
2
2
  export type AcceptOnlyPattern = "number" | "integer" | "alphanumeric" | "alpha" | "decimal";
3
- export type BaseTextBoxProps = Omit<InputHTMLAttributes<HTMLInputElement>, "children"> & {
3
+ export type BaseTextBoxProps = Omit<InputHTMLAttributes<HTMLInputElement>, "children" | "prefix" | "suffix"> & {
4
4
  /** Optional prefix element (e.g. icon, button) */
5
- prefixContent?: ReactNode;
5
+ prefix?: ReactNode;
6
6
  /** Optional suffix element (e.g. icon, button) */
7
- suffixContent?: ReactNode;
7
+ suffix?: ReactNode;
8
8
  /** Whether the textbox is in an error state */
9
9
  error?: boolean;
10
10
  /** Whether the textbox is disabled */
@@ -37,4 +37,4 @@ export type BaseTextBoxProps = Omit<InputHTMLAttributes<HTMLInputElement>, "chil
37
37
  * @param ref - Ref forwarded to the native input element.
38
38
  * @returns {JSX.Element} The rendered BaseTextBox component.
39
39
  */
40
- export declare const BaseTextBox: ({ className, prefixContent, suffixContent, error, onChange, disabled, ref, id, name, rootClassName, type, acceptOnly, ...rest }: BaseTextBoxProps) => JSX.Element;
40
+ export declare const BaseTextBox: ({ className, prefix, suffix, error, onChange, disabled, ref, id, name, rootClassName, type, acceptOnly, ...rest }: BaseTextBoxProps) => JSX.Element;
@@ -1,9 +1,10 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { BaseButtonProps } from '../baseButton';
3
+ export type ButtonSize = "small" | "medium";
3
4
  export type ButtonProps = BaseButtonProps & {
4
- size?: "small" | "medium" | "large";
5
- prefixContent?: ReactNode;
6
- suffixContent?: ReactNode;
5
+ size?: ButtonSize;
6
+ prefix?: ReactNode;
7
+ suffix?: ReactNode;
7
8
  };
8
9
  /**
9
10
  * A button component with size variants and optional prefix/suffix content.
@@ -12,4 +13,4 @@ export type ButtonProps = BaseButtonProps & {
12
13
  * @param props - The props for the Button component.
13
14
  * @returns The rendered button with optional prefix/suffix content.
14
15
  */
15
- export declare const Button: ({ size, className, children, prefixContent, suffixContent, ...props }: ButtonProps) => import("react/jsx-runtime").JSX.Element;
16
+ export declare const Button: ({ size, className, children, prefix, suffix, variant, ...props }: ButtonProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,10 +1,3 @@
1
- export declare const buttonSizeClasses: {
2
- readonly small: "rounded-lg px-3 py-1 text-xs gap-1";
3
- readonly medium: "rounded-xl px-5 py-2 text-xs gap-2";
4
- readonly large: "rounded-xl px-7 py-3 text-sm gap-2";
5
- };
6
- export declare const buttonContentClasses: {
7
- readonly small: "h-4";
8
- readonly medium: "h-5";
9
- readonly large: "h-5";
10
- };
1
+ import { ButtonSize } from './Button';
2
+ export declare const buttonBaseClasses: "[&>svg]:size-4";
3
+ export declare const buttonSizeClasses: Record<ButtonSize, string>;
@@ -1,6 +1,6 @@
1
- export declare const DatePickerTextBox: import('react').ForwardRefExoticComponent<Omit<Omit<import('react').InputHTMLAttributes<HTMLInputElement>, "children"> & {
2
- prefixContent?: import('react').ReactNode;
3
- suffixContent?: import('react').ReactNode;
1
+ export declare const DatePickerTextBox: import('react').ForwardRefExoticComponent<Omit<Omit<import('react').InputHTMLAttributes<HTMLInputElement>, "prefix" | "suffix" | "children"> & {
2
+ prefix?: import('react').ReactNode;
3
+ suffix?: import('react').ReactNode;
4
4
  error?: boolean;
5
5
  disabled?: boolean;
6
6
  id?: string;
@@ -13,9 +13,9 @@ export type ConfirmationDialogProps = Omit<DialogProps, "footerActions"> & {
13
13
  confirmLabel?: string;
14
14
  /** Label for the cancel button @default "Cancel" */
15
15
  cancelLabel?: string;
16
- /** Props for the confirm button @default { variant: "contained", color: "primary" } */
16
+ /** Props for the confirm button @default { } */
17
17
  confirmButtonProps?: Omit<ButtonProps, "onClick" | "children">;
18
- /** Props for the cancel button @default { variant: "outlined", color: "secondary" } */
18
+ /** Props for the cancel button @default { variant: "secondary" } */
19
19
  cancelButtonProps?: Omit<ButtonProps, "onClick" | "children">;
20
20
  };
21
21
  /**
@@ -1,5 +1,5 @@
1
1
  import { ReactNode } from 'react';
2
- import { IconName } from '../../icons/icons';
2
+ import { IconName } from '../../icons/iconsLazy';
3
3
  import { IconProps } from '../../types/IconComponent';
4
4
  export type DynamicIconProps = IconProps & {
5
5
  name: IconName;
@@ -1,7 +1,7 @@
1
1
  import { ComponentType, SVGProps } from 'react';
2
2
  import { BaseButtonProps } from '../baseButton';
3
3
  export type IconButtonProps = Omit<BaseButtonProps, "children"> & {
4
- size?: "small" | "medium" | "large";
4
+ size?: "small" | "medium";
5
5
  icon: ComponentType<SVGProps<SVGSVGElement>>;
6
6
  "aria-label"?: string;
7
7
  };
@@ -0,0 +1,5 @@
1
+ export declare const baseClass: "[&>svg]:size-4 rounded-lg";
2
+ export declare const iconClass: {
3
+ readonly small: "size-8";
4
+ readonly medium: "size-10";
5
+ };
@@ -2,7 +2,7 @@ import { ElementType } from 'react';
2
2
  import { Variant } from '../baseButton';
3
3
  import { Button } from '../button';
4
4
  import * as React from "react";
5
- type BaseButtonProps = Pick<React.ComponentProps<typeof Button>, "color" | "size" | "className" | "children" | "prefixContent" | "suffixContent">;
5
+ type BaseButtonProps = Pick<React.ComponentProps<typeof Button>, "size" | "className" | "children" | "prefix" | "suffix">;
6
6
  type VisualConfigProps = BaseButtonProps & {
7
7
  variant?: Variant | "generic";
8
8
  };
@@ -17,5 +17,5 @@ export type LinkProps<Component extends ElementType = "a"> = VisualConfigProps &
17
17
  * @param props - The props for the Link component.
18
18
  * @returns The rendered link element.
19
19
  */
20
- export declare function Link<ComponentType extends ElementType = "a">({ as, variant, color, size, className, prefixContent, suffixContent, children, ...props }: LinkProps<ComponentType>): import("react/jsx-runtime").JSX.Element;
20
+ export declare function Link<ComponentType extends ElementType = "a">({ as, variant, size, className, prefix, suffix, children, ...props }: LinkProps<ComponentType>): import("react/jsx-runtime").JSX.Element;
21
21
  export {};
@@ -3,8 +3,8 @@ import { BaseOption } from '../../types/BaseOption';
3
3
  export type MultiSelectProps<Option extends BaseOption> = {
4
4
  value: Option[];
5
5
  setValue: (value: Option[] | ((prevState: Option[]) => Option[])) => void;
6
- prefixContent?: ReactElement;
7
- suffixContent?: ReactElement;
6
+ prefix?: ReactElement;
7
+ suffix?: ReactElement;
8
8
  options: Option[];
9
9
  id?: string;
10
10
  error?: boolean;
@@ -25,4 +25,4 @@ export type MultiSelectProps<Option extends BaseOption> = {
25
25
  * @param props - The props for the MultiSelect component.
26
26
  * @returns The rendered multi-select dropdown with tag list.
27
27
  */
28
- export declare const MultiSelect: <Option extends BaseOption>({ value, setValue, options, id, error, prefixContent, suffixContent, disabled, emptyPlaceholder, addMorePlaceholder, toggleAriaLabel, noOptionsText, ref, maxHeight, listClassName, }: MultiSelectProps<Option>) => import("react/jsx-runtime").JSX.Element;
28
+ export declare const MultiSelect: <Option extends BaseOption>({ value, setValue, options, id, error, prefix, suffix, disabled, emptyPlaceholder, addMorePlaceholder, toggleAriaLabel, noOptionsText, ref, maxHeight, listClassName, }: MultiSelectProps<Option>) => import("react/jsx-runtime").JSX.Element;
@@ -4,8 +4,8 @@ import { NoneOf } from '../../types/NoneOf';
4
4
  export type BaseSelectProps<Option> = {
5
5
  value: Option | null;
6
6
  setValue: (value: Option | null) => void;
7
- prefixContent?: ReactElement;
8
- suffixContent?: ReactElement;
7
+ prefix?: ReactElement;
8
+ suffix?: ReactElement;
9
9
  options: Option[];
10
10
  id?: string;
11
11
  error?: boolean;
@@ -37,4 +37,4 @@ export type SelectProps<Option extends BaseOption> = (BaseSelectProps<Option> &
37
37
  * @param props - The props for the Select component.
38
38
  * @returns The rendered select dropdown component.
39
39
  */
40
- export declare const Select: <Option extends BaseOption>({ value, setValue, options, id, prefixContent, suffixContent, error, disabled, placeholder, toggleAriaLabel, noOptionsText, ref, disableSearch, className, containerClassName, listClassName, maxHeight, onSearch, debounce, isLoading, loadingText, }: SelectProps<Option>) => import("react/jsx-runtime").JSX.Element;
40
+ export declare const Select: <Option extends BaseOption>({ value, setValue, options, id, prefix, suffix, error, disabled, placeholder, toggleAriaLabel, noOptionsText, ref, disableSearch, className, containerClassName, listClassName, maxHeight, onSearch, debounce, isLoading, loadingText, }: SelectProps<Option>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,23 @@
1
+ import { ReactNode } from 'react';
2
+ import { ToggleButtonColor } from './ToggleButtonTrack';
3
+ export type ToggleButtonProps = React.InputHTMLAttributes<HTMLInputElement> & {
4
+ /** Label shown when toggle is ON */
5
+ enabledLabel?: string;
6
+ /** Label shown when toggle is OFF */
7
+ disabledLabel?: string;
8
+ /** External label text */
9
+ label?: string;
10
+ /** Color scheme of the toggle */
11
+ color?: ToggleButtonColor;
12
+ /** Optional extra content (e.g. tooltip, icon) */
13
+ children?: ReactNode;
14
+ /** Ref for the input element */
15
+ ref?: React.Ref<HTMLInputElement>;
16
+ };
17
+ /**
18
+ * A toggle button component with optional inner text and external label.
19
+ * Supports multiple color schemes with smooth animations.
20
+ *
21
+ * @param props - The props for the ToggleButton component.
22
+ */
23
+ export declare const ToggleButton: ({ value, enabledLabel, disabledLabel, label, checked, disabled, color, onChange, className, children, ref, id, name, ...rest }: ToggleButtonProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,23 @@
1
+ export type ToggleButtonColor = "primary" | "error" | "warning" | "success";
2
+ export type ToggleButtonTrackProps = {
3
+ /** Whether the toggle is checked/on */
4
+ checked?: boolean;
5
+ /** Whether the toggle is disabled */
6
+ disabled?: boolean;
7
+ /** Color scheme of the toggle */
8
+ color?: ToggleButtonColor;
9
+ /** Label shown when toggle is ON (slides in from right when enabled) */
10
+ enabledLabel?: string;
11
+ /** Label shown when toggle is OFF (slides in from left when disabled) */
12
+ disabledLabel?: string;
13
+ /** Additional CSS classes */
14
+ className?: string;
15
+ };
16
+ /**
17
+ * A visual track component for toggle button states.
18
+ * Renders the track, thumb, and optional inner text.
19
+ *
20
+ * @param props - The props for the ToggleButtonTrack component.
21
+ * @returns The rendered toggle track element.
22
+ */
23
+ export declare const ToggleButtonTrack: ({ checked, disabled, color, enabledLabel, disabledLabel, className, }: ToggleButtonTrackProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,4 @@
1
+ export { ToggleButton } from './ToggleButton';
2
+ export type { ToggleButtonProps } from './ToggleButton';
3
+ export { ToggleButtonTrack } from './ToggleButtonTrack';
4
+ export type { ToggleButtonTrackProps, ToggleButtonColor, } from './ToggleButtonTrack';
@@ -1,27 +1,19 @@
1
- import { default as React } from 'react';
1
+ import { ReactNode } from 'react';
2
2
  export type TypographyProps = {
3
- children: React.ReactNode;
4
- bold?: boolean;
3
+ children: ReactNode;
5
4
  className?: string;
6
5
  };
7
- export declare const H1: ({ children, bold, className }: TypographyProps) => React.ReactElement<{
8
- className: string;
9
- }, string | React.JSXElementConstructor<any>>;
10
- export declare const H2: ({ children, bold, className }: TypographyProps) => React.ReactElement<{
11
- className: string;
12
- }, string | React.JSXElementConstructor<any>>;
13
- export declare const H3: ({ children, bold, className }: TypographyProps) => React.ReactElement<{
14
- className: string;
15
- }, string | React.JSXElementConstructor<any>>;
16
- export declare const H4: ({ children, bold, className }: TypographyProps) => React.ReactElement<{
17
- className: string;
18
- }, string | React.JSXElementConstructor<any>>;
19
- export declare const H5: ({ children, bold, className }: TypographyProps) => React.ReactElement<{
20
- className: string;
21
- }, string | React.JSXElementConstructor<any>>;
22
- export declare const H6: ({ children, bold, className }: TypographyProps) => React.ReactElement<{
23
- className: string;
24
- }, string | React.JSXElementConstructor<any>>;
25
- export declare const Label: ({ children, bold, className }: TypographyProps) => React.ReactElement<{
26
- className: string;
27
- }, string | React.JSXElementConstructor<any>>;
6
+ export type BodyProps = TypographyProps & {
7
+ bold?: boolean;
8
+ small?: boolean;
9
+ };
10
+ export type LabelProps = TypographyProps & {
11
+ bold?: boolean;
12
+ };
13
+ export declare const H1: ({ className, ...props }: TypographyProps) => import("react/jsx-runtime").JSX.Element;
14
+ export declare const H2: ({ className, ...props }: TypographyProps) => import("react/jsx-runtime").JSX.Element;
15
+ export declare const H3: ({ className, ...props }: TypographyProps) => import("react/jsx-runtime").JSX.Element;
16
+ export declare const H4: ({ className, ...props }: TypographyProps) => import("react/jsx-runtime").JSX.Element;
17
+ export declare const H5: ({ className, ...props }: TypographyProps) => import("react/jsx-runtime").JSX.Element;
18
+ export declare const Body: ({ bold, small, className, ...props }: BodyProps) => import("react/jsx-runtime").JSX.Element;
19
+ export declare const Label: ({ bold, className, ...props }: LabelProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,2 +1,2 @@
1
- export { H1, H2, H3, H4, H5, H6, Label } from './Typography';
1
+ export { H1, H2, H3, H4, H5, Body, Label } from './Typography';
2
2
  export type { TypographyProps } from './Typography';
@@ -0,0 +1,55 @@
1
+ import { IconComponent } from '../types/IconComponent';
2
+ export declare const AddressIcon: IconComponent;
3
+ export declare const ArrowDownIcon: IconComponent;
4
+ export declare const ArrowLeftIcon: IconComponent;
5
+ export declare const ArrowRightIcon: IconComponent;
6
+ export declare const ArrowUpIcon: IconComponent;
7
+ export declare const BellIcon: IconComponent;
8
+ export declare const CalendarIcon: IconComponent;
9
+ export declare const CautionIcon: IconComponent;
10
+ export declare const CheckIcon: IconComponent;
11
+ export declare const ChevronDoubleLeftIcon: IconComponent;
12
+ export declare const ChevronDoubleRightIcon: IconComponent;
13
+ export declare const CircleIcon: IconComponent;
14
+ export declare const ClockIcon: IconComponent;
15
+ export declare const CloseIcon: IconComponent;
16
+ export declare const CogWheelIcon: IconComponent;
17
+ export declare const ConnectionIcon: IconComponent;
18
+ export declare const CopyIcon: IconComponent;
19
+ export declare const CorrectIcon: IconComponent;
20
+ export declare const DashIcon: IconComponent;
21
+ export declare const DashboardIcon: IconComponent;
22
+ export declare const DatabaseIcon: IconComponent;
23
+ export declare const DeleteIcon: IconComponent;
24
+ export declare const DetailsIcon: IconComponent;
25
+ export declare const DownIcon: IconComponent;
26
+ export declare const DownloadIcon: IconComponent;
27
+ export declare const EarthIcon: IconComponent;
28
+ export declare const EditIcon: IconComponent;
29
+ export declare const ErrorIcon: IconComponent;
30
+ export declare const EyeIcon: IconComponent;
31
+ export declare const FileIcon: IconComponent;
32
+ export declare const EyeOffIcon: IconComponent;
33
+ export declare const FilterIcon: IconComponent;
34
+ export declare const HourglassIcon: IconComponent;
35
+ export declare const IdeaIcon: IconComponent;
36
+ export declare const InfoIcon: IconComponent;
37
+ export declare const LeftBarIcon: IconComponent;
38
+ export declare const LeftIcon: IconComponent;
39
+ export declare const ListIcon: IconComponent;
40
+ export declare const MoreIcon: IconComponent;
41
+ export declare const NotepadIcon: IconComponent;
42
+ export declare const NotesIcon: IconComponent;
43
+ export declare const PlayIcon: IconComponent;
44
+ export declare const PlusIcon: IconComponent;
45
+ export declare const ProfileIcon: IconComponent;
46
+ export declare const RecycleIcon: IconComponent;
47
+ export declare const ReloadIcon: IconComponent;
48
+ export declare const RightIcon: IconComponent;
49
+ export declare const SaveIcon: IconComponent;
50
+ export declare const SearchIcon: IconComponent;
51
+ export declare const ServerIcon: IconComponent;
52
+ export declare const SuccessIcon: IconComponent;
53
+ export declare const TableIcon: IconComponent;
54
+ export declare const UpIcon: IconComponent;
55
+ export declare const WarningIcon: IconComponent;