@ofgdev/ui-components 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 (45) hide show
  1. package/README.md +102 -0
  2. package/dist/Accordion/Accordion.d.ts +9 -0
  3. package/dist/BackIcon/BackIcon.d.ts +1 -0
  4. package/dist/Button/Button.d.ts +10 -0
  5. package/dist/Card/Card.d.ts +6 -0
  6. package/dist/CardButton/CardButton.d.ts +8 -0
  7. package/dist/CheckBoxInput/CheckBoxInput.d.ts +12 -0
  8. package/dist/CheckBoxTab/CheckBoxTabGroup.d.ts +28 -0
  9. package/dist/CheckBoxTab/CheckBoxTabItem.d.ts +10 -0
  10. package/dist/CheckBoxTab/index.d.ts +3 -0
  11. package/dist/CompleteIcon/CompleteIcon.d.ts +1 -0
  12. package/dist/DSProvider.d.ts +4 -0
  13. package/dist/DatePicker/DatePicker.d.ts +17 -0
  14. package/dist/Heading/Heading.d.ts +10 -0
  15. package/dist/Modal/Modal.d.ts +20 -0
  16. package/dist/MultiSelect/MultiSelect.d.ts +23 -0
  17. package/dist/NumberInput/NumberInput.d.ts +14 -0
  18. package/dist/ProgressBar/ProgressBar.d.ts +8 -0
  19. package/dist/RadioInput/RadioInput.d.ts +16 -0
  20. package/dist/Select/Select.d.ts +23 -0
  21. package/dist/SliderInput/SliderInput.d.ts +19 -0
  22. package/dist/Stepper/Icons.d.ts +17 -0
  23. package/dist/Stepper/Step.d.ts +12 -0
  24. package/dist/Stepper/StepContent.d.ts +5 -0
  25. package/dist/Stepper/Stepper.d.ts +8 -0
  26. package/dist/Stepper/SubStep.d.ts +8 -0
  27. package/dist/Stepper/index.d.ts +4 -0
  28. package/dist/Stepper/types.d.ts +6 -0
  29. package/dist/Table/Table.d.ts +6 -0
  30. package/dist/Table/TableBody.d.ts +7 -0
  31. package/dist/Table/TableCell.d.ts +8 -0
  32. package/dist/Table/TableHeader.d.ts +7 -0
  33. package/dist/Table/TableRow.d.ts +9 -0
  34. package/dist/Table/index.d.ts +5 -0
  35. package/dist/Text/Text.d.ts +10 -0
  36. package/dist/TextInput/TextInput.d.ts +12 -0
  37. package/dist/Toast/Toast.d.ts +13 -0
  38. package/dist/helper/cx.d.ts +1 -0
  39. package/dist/helper/formatValue.d.ts +8 -0
  40. package/dist/index.cjs.js +30 -0
  41. package/dist/index.d.ts +24 -0
  42. package/dist/index.es.js +3072 -0
  43. package/dist/styles.d.ts +2 -0
  44. package/dist/ui-components.css +1 -0
  45. package/package.json +49 -0
package/README.md ADDED
@@ -0,0 +1,102 @@
1
+ # OWM UI Components
2
+
3
+ A React component library with separate CSS loading for better compatibility with sandboxed environments like HubSpot modules.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install owm-ui-components
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ### 1. Import Components
14
+
15
+ ```tsx
16
+ import { Button, Card, TextInput } from "@ofgdev/ui-components";
17
+ ```
18
+
19
+ ### 2. Import CSS
20
+
21
+ You have several options for loading the CSS:
22
+
23
+ #### Option A: Import CSS using the css export (Recommended for React apps)
24
+
25
+ ```tsx
26
+ // In your main App.tsx or index.tsx
27
+ import "@ofgdev/css";
28
+ ```
29
+
30
+ #### Option B: Import CSS directly from the dist folder (Recommended for HubSpot modules)
31
+
32
+ ```tsx
33
+ // Import the CSS file directly
34
+ import "@ofgdev/dist/ui-components.css";
35
+ ```
36
+
37
+ ### 3. Use Components
38
+
39
+ ```tsx
40
+ import React from "react";
41
+ import { Button } from "@ofgdev/ui-components";
42
+
43
+ function App() {
44
+ return (
45
+ <div>
46
+ <Button variant="primary">Click me</Button>
47
+ <Button variant="secondary" size="small">
48
+ Small Button
49
+ </Button>
50
+ </div>
51
+ );
52
+ }
53
+ ```
54
+
55
+ ## HubSpot Modules
56
+
57
+ For HubSpot React modules, use Option B above to import the CSS directly. This ensures the styles are properly loaded in the sandboxed environment.
58
+
59
+ ```tsx
60
+ // In your HubSpot module
61
+ import React from "react";
62
+ import { Button } from "@ofgdev/ui-components";
63
+ import "@ofgdev/dist/ui-components.css";
64
+
65
+ export default function MyHubSpotModule() {
66
+ return (
67
+ <div>
68
+ <Button variant="primary">HubSpot Button</Button>
69
+ </div>
70
+ );
71
+ }
72
+ ```
73
+
74
+ ## Available Components
75
+
76
+ - `Button` - Various button variants and sizes
77
+ - `Card` - Container component
78
+ - `TextInput` - Form input component
79
+ - `ProgressBar` - Progress indicator
80
+ - `Stepper` - Step-by-step navigation
81
+ - `TagCheckBox` - Checkbox with tag styling
82
+ - `TagCheckBoxGroup` - Group of tag checkboxes
83
+
84
+ ## CSS Variables
85
+
86
+ The library uses CSS custom properties for theming. Make sure your app has the `ds-theme` class or the CSS variables are available in your global scope.
87
+
88
+ ```css
89
+ .ds-theme {
90
+ --color-primary: #2c3b4e;
91
+ --color-secondary: #5e8081;
92
+ /* ... other variables */
93
+ }
94
+ ```
95
+
96
+ ## Troubleshooting
97
+
98
+ If you're experiencing issues with styles not loading in HubSpot modules:
99
+
100
+ 1. Make sure you're importing the CSS file directly: `import '@ofgdev/dist/ui-components.css'`
101
+ 2. Ensure the CSS variables are available in your global scope
102
+ 3. Check that the `ds-theme` class is applied to your container element
@@ -0,0 +1,9 @@
1
+ import { default as React } from 'react';
2
+ interface AccordionProps {
3
+ className?: string;
4
+ children?: React.ReactNode;
5
+ label: string;
6
+ defaultOpen?: boolean;
7
+ }
8
+ export declare const Accordion: ({ className, children, label, defaultOpen, ...props }: AccordionProps) => import("react/jsx-runtime").JSX.Element;
9
+ export default Accordion;
@@ -0,0 +1 @@
1
+ export declare const BackIcon: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ import { default as React } from 'react';
2
+ export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
3
+ variant?: "primary" | "secondary" | "ghost-primary" | "ghost-secondary" | "ghost-tertiary";
4
+ size?: "default" | "small";
5
+ className?: string;
6
+ children: React.ReactNode;
7
+ isLoading?: boolean;
8
+ loadingText?: string;
9
+ }
10
+ export declare const Button: React.FC<ButtonProps>;
@@ -0,0 +1,6 @@
1
+ interface CardProps {
2
+ className?: string;
3
+ children?: React.ReactNode;
4
+ }
5
+ export declare const Card: ({ className, children, ...props }: CardProps) => import("react/jsx-runtime").JSX.Element;
6
+ export default Card;
@@ -0,0 +1,8 @@
1
+ interface CardButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
2
+ className?: string;
3
+ children?: React.ReactNode;
4
+ label: string;
5
+ subText?: string;
6
+ }
7
+ export declare const CardButton: ({ className, children, label, subText, ...props }: CardButtonProps) => import("react/jsx-runtime").JSX.Element;
8
+ export default CardButton;
@@ -0,0 +1,12 @@
1
+ interface CheckBoxInputProps extends React.InputHTMLAttributes<HTMLInputElement> {
2
+ label?: string;
3
+ labelSize?: import('../Heading/Heading').HeadingSize;
4
+ labelTop?: string;
5
+ vertical?: boolean;
6
+ errorMessage?: string;
7
+ description?: string;
8
+ required?: boolean;
9
+ optional?: boolean;
10
+ }
11
+ export declare const CheckBoxInput: ({ className, label, labelSize, vertical, name, errorMessage, description, required, labelTop, optional, defaultChecked, ...props }: CheckBoxInputProps) => import("react/jsx-runtime").JSX.Element;
12
+ export default CheckBoxInput;
@@ -0,0 +1,28 @@
1
+ import { default as React } from 'react';
2
+ type CheckBoxTabGroupProps = {
3
+ name?: string;
4
+ className?: string;
5
+ children: React.ReactNode;
6
+ defaultValue?: string | string[];
7
+ value?: string | string[];
8
+ onChange?: (value: string | string[]) => void;
9
+ multiple?: boolean;
10
+ errorMessage?: string;
11
+ description?: string;
12
+ required?: boolean;
13
+ optional?: boolean;
14
+ label?: string;
15
+ labelSize?: import('../Heading/Heading').HeadingSize;
16
+ };
17
+ interface CheckBoxTabGroupContextType {
18
+ name?: string;
19
+ selectedItems: string | string[];
20
+ updateSelection: (value: string, checked: boolean) => void;
21
+ multiple: boolean;
22
+ }
23
+ export interface CheckBoxTabGroupRef {
24
+ getSelectedValues: () => string | string[];
25
+ }
26
+ export declare const CheckBoxTabGroupContext: React.Context<CheckBoxTabGroupContextType | null>;
27
+ export declare const CheckBoxTabGroup: React.ForwardRefExoticComponent<CheckBoxTabGroupProps & React.RefAttributes<CheckBoxTabGroupRef>>;
28
+ export default CheckBoxTabGroup;
@@ -0,0 +1,10 @@
1
+ import { default as React } from 'react';
2
+ type CheckBoxTabItemProps = Omit<React.InputHTMLAttributes<HTMLInputElement>, "onChange" | "checked"> & {
3
+ className?: string;
4
+ label: string;
5
+ value: string;
6
+ name?: string;
7
+ onChange?: (checked: boolean, value: string) => void;
8
+ };
9
+ export declare const CheckBoxTabItem: ({ className, label, value, name, onChange, ...props }: CheckBoxTabItemProps) => import("react/jsx-runtime").JSX.Element;
10
+ export default CheckBoxTabItem;
@@ -0,0 +1,3 @@
1
+ export { CheckBoxTabGroup } from './CheckBoxTabGroup';
2
+ export { CheckBoxTabItem } from './CheckBoxTabItem';
3
+ export type { CheckBoxTabGroupRef } from './CheckBoxTabGroup';
@@ -0,0 +1 @@
1
+ export declare const CompleteIcon: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,4 @@
1
+ import { default as React } from 'react';
2
+ export declare const DSProvider: React.FC<{
3
+ children: React.ReactNode;
4
+ }>;
@@ -0,0 +1,17 @@
1
+ interface DatePickerProps {
2
+ value?: string;
3
+ onChange?: (date: string) => void;
4
+ placeholder?: string;
5
+ disabledDates?: string[];
6
+ minDate?: string;
7
+ maxDate?: string;
8
+ label?: string;
9
+ labelSize?: import('../Heading/Heading').HeadingSize;
10
+ required?: boolean;
11
+ errorMessage?: string;
12
+ description?: string;
13
+ optional?: boolean;
14
+ format?: string;
15
+ }
16
+ export declare function DatePicker({ value, onChange, placeholder, disabledDates, minDate, label, labelSize, maxDate, required, errorMessage, description, optional, format, }: DatePickerProps): import("react/jsx-runtime").JSX.Element;
17
+ export {};
@@ -0,0 +1,10 @@
1
+ import { default as React } from 'react';
2
+ export type HeadingSize = "8xl" | "5xl" | "3xl" | "2xl" | "lg" | "md" | "sm" | "xs" | "xxs";
3
+ export interface HeadingProps {
4
+ children: React.ReactNode;
5
+ size?: HeadingSize;
6
+ as?: keyof React.JSX.IntrinsicElements;
7
+ className?: string;
8
+ }
9
+ export declare const Heading: React.FC<HeadingProps>;
10
+ export default Heading;
@@ -0,0 +1,20 @@
1
+ interface ModalProps {
2
+ className?: string;
3
+ children?: React.ReactNode;
4
+ primaryButtonText?: string;
5
+ secondaryButtonText?: string;
6
+ secondaryButtonIsLoading?: boolean;
7
+ secondaryButtonLoadingMessage?: string;
8
+ onPrimaryButtonClick?: () => void;
9
+ onSecondaryButtonClick?: () => void;
10
+ secondaryButtonClassName?: string;
11
+ primaryButtonClassName?: string;
12
+ primaryButtonIsLoading?: boolean;
13
+ primaryButtonLoadingMessage?: string;
14
+ onClose?: () => void;
15
+ title?: string;
16
+ titleClassName?: string;
17
+ isOpen?: boolean;
18
+ }
19
+ export declare const Modal: ({ className, primaryButtonText, secondaryButtonText, onPrimaryButtonClick, onSecondaryButtonClick, secondaryButtonClassName, primaryButtonClassName, primaryButtonIsLoading, secondaryButtonIsLoading, children, title, titleClassName, isOpen, primaryButtonLoadingMessage, secondaryButtonLoadingMessage, onClose, ...props }: ModalProps) => import("react/jsx-runtime").JSX.Element;
20
+ export default Modal;
@@ -0,0 +1,23 @@
1
+ import { default as React } from 'react';
2
+ interface Option {
3
+ value: string | number;
4
+ label: string;
5
+ }
6
+ interface SelectProps {
7
+ options: Option[];
8
+ value?: (string | number)[];
9
+ onChange?: (value: (string | number)[]) => void;
10
+ placeholder?: string;
11
+ className?: string;
12
+ name?: string;
13
+ label?: string;
14
+ labelSize?: import('../Heading/Heading').HeadingSize;
15
+ disabled?: boolean;
16
+ errorMessage?: string;
17
+ description?: string;
18
+ required?: boolean;
19
+ optional?: boolean;
20
+ defaultValue?: (string | number)[];
21
+ }
22
+ export declare const MultiSelect: React.FC<SelectProps>;
23
+ export default MultiSelect;
@@ -0,0 +1,14 @@
1
+ interface NumberInputProps extends React.InputHTMLAttributes<HTMLInputElement> {
2
+ prefix?: string;
3
+ suffix?: string;
4
+ label?: string;
5
+ labelSize?: import('../Heading/Heading').HeadingSize;
6
+ format?: "currency" | "percentage" | "number";
7
+ formatOnChange?: boolean;
8
+ errorMessage?: string;
9
+ description?: string;
10
+ required?: boolean;
11
+ optional?: boolean;
12
+ }
13
+ export declare const NumberInput: ({ className, value, prefix, suffix, label, labelSize, format, min, max, onChange, onBlur, formatOnChange, errorMessage, description, required, optional, defaultValue, ...props }: NumberInputProps) => import("react/jsx-runtime").JSX.Element;
14
+ export default NumberInput;
@@ -0,0 +1,8 @@
1
+ interface ProgressBarProps {
2
+ className?: string;
3
+ value?: number;
4
+ max?: number;
5
+ min?: number;
6
+ }
7
+ export declare const ProgressBar: ({ className, value, max, min, ...props }: ProgressBarProps) => import("react/jsx-runtime").JSX.Element;
8
+ export default ProgressBar;
@@ -0,0 +1,16 @@
1
+ interface Option {
2
+ value: string;
3
+ label: string | number;
4
+ }
5
+ interface RadioInputProps extends React.InputHTMLAttributes<HTMLInputElement> {
6
+ label?: string;
7
+ labelSize?: import('../Heading/Heading').HeadingSize;
8
+ options: Option[];
9
+ vertical?: boolean;
10
+ errorMessage?: string;
11
+ description?: string;
12
+ optional?: boolean;
13
+ defaultValue?: string | number;
14
+ }
15
+ export declare const RadioInput: ({ className, options, label, labelSize, vertical, errorMessage, description, required, optional, name, defaultValue, ...props }: RadioInputProps) => import("react/jsx-runtime").JSX.Element;
16
+ export default RadioInput;
@@ -0,0 +1,23 @@
1
+ import { default as React } from 'react';
2
+ interface Option {
3
+ value: string | number;
4
+ label: string;
5
+ }
6
+ interface SelectProps {
7
+ options: Option[];
8
+ value?: string | number;
9
+ onChange?: (value: string | number) => void;
10
+ placeholder?: string;
11
+ className?: string;
12
+ name?: string;
13
+ label?: string;
14
+ labelSize?: import('../Heading/Heading').HeadingSize;
15
+ disabled?: boolean;
16
+ errorMessage?: string;
17
+ description?: string;
18
+ required?: boolean;
19
+ optional?: boolean;
20
+ defaultValue?: string | number;
21
+ }
22
+ export declare const Select: React.FC<SelectProps>;
23
+ export default Select;
@@ -0,0 +1,19 @@
1
+ interface SliderInputProps extends React.InputHTMLAttributes<HTMLInputElement> {
2
+ prefix?: string;
3
+ suffix?: string;
4
+ showLabel?: boolean;
5
+ label?: string;
6
+ labelSize?: import('../Heading/Heading').HeadingSize;
7
+ min?: number;
8
+ max?: number;
9
+ value?: number;
10
+ displayValue?: string;
11
+ inputSize?: "sm" | "md" | "lg";
12
+ format?: "currency" | "percentage" | "number";
13
+ errorMessage?: string;
14
+ description?: string;
15
+ required?: boolean;
16
+ optional?: boolean;
17
+ }
18
+ export declare const SliderInput: ({ className, prefix, suffix, min, max, value, step, onChange, onBlur, name, showLabel, displayValue, labelSize, label, inputSize, format, defaultValue, errorMessage, description, required, optional, ...props }: SliderInputProps) => import("react/jsx-runtime").JSX.Element;
19
+ export default SliderInput;
@@ -0,0 +1,17 @@
1
+ import { default as React } from 'react';
2
+ export declare const CheckIcon: React.FC<{
3
+ stroke?: string;
4
+ className?: string;
5
+ }>;
6
+ export declare const CollapseIcon: React.FC<{
7
+ fill?: string;
8
+ className?: string;
9
+ }>;
10
+ export declare const AddIcon: React.FC<{
11
+ stroke?: string;
12
+ className?: string;
13
+ }>;
14
+ export declare const LockedIcon: React.FC<{
15
+ stroke?: string;
16
+ className?: string;
17
+ }>;
@@ -0,0 +1,12 @@
1
+ import { default as React } from 'react';
2
+ import { StepComponentProps } from './types';
3
+ interface StepProps extends StepComponentProps {
4
+ title: string;
5
+ children?: React.ReactNode;
6
+ collapsible?: boolean;
7
+ defaultExpanded?: boolean;
8
+ isLocked: boolean;
9
+ onAddSubStep?: () => void;
10
+ }
11
+ export declare const Step: React.FC<StepProps>;
12
+ export {};
@@ -0,0 +1,5 @@
1
+ export declare const StepContent: ({ children, step, currentStep, }: {
2
+ step: number | string | null;
3
+ currentStep?: number | string | null;
4
+ children: React.JSX.Element;
5
+ }) => import("react").JSX.Element | null;
@@ -0,0 +1,8 @@
1
+ import { default as React } from 'react';
2
+ export interface StepperProps {
3
+ children: React.ReactNode;
4
+ currentStep?: number;
5
+ onStepChange?: (index: number) => void;
6
+ className?: string;
7
+ }
8
+ export declare const Stepper: React.FC<StepperProps>;
@@ -0,0 +1,8 @@
1
+ import { default as React } from 'react';
2
+ export interface SubStepProps {
3
+ label: string;
4
+ current?: boolean;
5
+ completed?: boolean;
6
+ position?: string;
7
+ }
8
+ export declare const SubStep: React.FC<SubStepProps>;
@@ -0,0 +1,4 @@
1
+ export * from './Step';
2
+ export * from './StepContent';
3
+ export * from './Stepper';
4
+ export * from './SubStep';
@@ -0,0 +1,6 @@
1
+ export interface StepComponentProps {
2
+ stepIndex?: number;
3
+ current?: boolean;
4
+ completed?: boolean;
5
+ onStepClick?: () => void;
6
+ }
@@ -0,0 +1,6 @@
1
+ import { HTMLAttributes, ReactNode } from 'react';
2
+ interface Props extends HTMLAttributes<HTMLTableElement> {
3
+ children: ReactNode;
4
+ }
5
+ export declare const Table: ({ children, className }: Props) => import("react/jsx-runtime").JSX.Element;
6
+ export default Table;
@@ -0,0 +1,7 @@
1
+ import { HTMLAttributes, ReactNode } from 'react';
2
+ interface Props extends HTMLAttributes<HTMLTableSectionElement> {
3
+ className?: string;
4
+ children?: ReactNode;
5
+ }
6
+ export declare const TableBody: ({ children, className }: Props) => import("react/jsx-runtime").JSX.Element;
7
+ export default TableBody;
@@ -0,0 +1,8 @@
1
+ import { ReactNode } from 'react';
2
+ interface Props extends React.TdHTMLAttributes<HTMLTableCellElement> {
3
+ item?: string | number | undefined;
4
+ className?: string;
5
+ children?: ReactNode;
6
+ }
7
+ export declare const TableCell: ({ item, children, className }: Props) => import("react/jsx-runtime").JSX.Element;
8
+ export {};
@@ -0,0 +1,7 @@
1
+ import { HTMLAttributes } from 'react';
2
+ interface Props extends HTMLAttributes<HTMLTableCellElement> {
3
+ items: string[];
4
+ thClassName?: string;
5
+ }
6
+ export declare const TableHeader: ({ items, className, thClassName }: Props) => import("react/jsx-runtime").JSX.Element;
7
+ export {};
@@ -0,0 +1,9 @@
1
+ import { ReactNode } from 'react';
2
+ interface Props extends React.HTMLAttributes<HTMLTableRowElement> {
3
+ className?: string;
4
+ children?: ReactNode;
5
+ show?: boolean;
6
+ isCollapsible?: boolean;
7
+ }
8
+ export declare const TableRow: ({ children, className, isCollapsible, show, ...rest }: Props) => import("react/jsx-runtime").JSX.Element;
9
+ export {};
@@ -0,0 +1,5 @@
1
+ export * from './Table';
2
+ export * from './TableHeader';
3
+ export * from './TableCell';
4
+ export * from './TableBody';
5
+ export * from './TableRow';
@@ -0,0 +1,10 @@
1
+ import { default as React } from 'react';
2
+ export type TextSize = "8xl" | "5xl" | "3xl" | "2xl" | "lg" | "md" | "sm" | "xs" | "xxs";
3
+ export interface TextProps {
4
+ children: React.ReactNode;
5
+ size?: TextSize;
6
+ as?: keyof React.JSX.IntrinsicElements;
7
+ className?: string;
8
+ }
9
+ export declare const Text: React.FC<TextProps>;
10
+ export default Text;
@@ -0,0 +1,12 @@
1
+ interface TextInputProps extends React.InputHTMLAttributes<HTMLInputElement> {
2
+ value?: string;
3
+ prefix?: string;
4
+ suffix?: string;
5
+ label?: string;
6
+ labelSize?: import('../Heading/Heading').HeadingSize;
7
+ errorMessage?: string;
8
+ description?: string;
9
+ optional?: boolean;
10
+ }
11
+ export declare const TextInput: ({ className, prefix, suffix, label, labelSize, errorMessage, description, required, optional, ...props }: TextInputProps) => import("react/jsx-runtime").JSX.Element;
12
+ export default TextInput;
@@ -0,0 +1,13 @@
1
+ interface ToastProps {
2
+ className?: string;
3
+ children?: React.ReactNode;
4
+ type?: "success" | "error" | "info" | "default";
5
+ message?: string;
6
+ title?: string;
7
+ titleClassName?: string;
8
+ messageClassName?: string;
9
+ isOpen?: boolean;
10
+ showProgressBar?: boolean;
11
+ }
12
+ export declare const Toast: ({ className, children, type, message, title, titleClassName, messageClassName, isOpen, showProgressBar, }: ToastProps) => import("react/jsx-runtime").JSX.Element;
13
+ export default Toast;
@@ -0,0 +1 @@
1
+ export declare function cx(...args: (string | false | null | undefined | (string | false | null | undefined)[])[]): string;
@@ -0,0 +1,8 @@
1
+ declare function formatValue(value: number, format?: "currency" | "percentage" | "number", locale?: string): {
2
+ value: string;
3
+ formatted: string;
4
+ } | {
5
+ value: number;
6
+ formatted: string;
7
+ };
8
+ export default formatValue;