@paygreen/pgui 3.0.0-beta → 3.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.
- package/README.md +3 -0
- package/dist/components/actions-button/actions-button.d.ts +2 -1
- package/dist/components/data-list/datalist.d.ts +1 -2
- package/dist/components/data-table/data-table.d.ts +2 -2
- package/dist/components/date-picker/date-picker.d.ts +2 -3
- package/dist/components/index.d.ts +4 -0
- package/dist/components/input-mask/input-mask.d.ts +2 -1
- package/dist/components/input-password/input-password.d.ts +34 -0
- package/dist/components/input-phone/input-phone.d.ts +3 -3
- package/dist/components/input-search/input-search.d.ts +14 -0
- package/dist/components/loader/loader.d.ts +6 -4
- package/dist/components/logos/logoPaygreenByLemonway.d.ts +1 -2
- package/dist/components/modal/modal.d.ts +49 -12
- package/dist/components/pagination/pagination.d.ts +7 -2
- package/dist/components/select/select.d.ts +39 -19
- package/dist/components/sidebar/sidebar.d.ts +17 -3
- package/dist/components/tooltip/tooltip.d.ts +11 -0
- package/dist/components/ui/toaster.d.ts +2 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +10 -10
- package/dist/index.mjs +3407 -2360
- package/dist/pgui.css +1 -1
- package/dist/theme/index.d.ts +2 -1
- package/dist/theme/recipes/alert-recipe.d.ts +2 -0
- package/dist/theme/recipes/card-recipe.d.ts +3 -6
- package/dist/theme/recipes/index.d.ts +0 -17
- package/dist/theme/semanticTokens/colors.d.ts +374 -21
- package/dist/theme/semanticTokens/index.d.ts +374 -21
- package/dist/theme/tokens/colors.d.ts +291 -9
- package/dist/theme/tokens/index.d.ts +290 -13
- package/package.json +3 -5
- package/src/components/date-picker/date-picker.css +64 -45
- package/src/components/select/select.css +33 -9
- package/dist/theme/tokens/gradients.d.ts +0 -6
package/README.md
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ReactElement } from 'react';
|
|
1
2
|
import { IconButtonProps } from '@chakra-ui/react';
|
|
2
3
|
/**
|
|
3
4
|
* Props for the ActionsButton component
|
|
@@ -6,7 +7,7 @@ export interface ActionsButtonProps extends Omit<IconButtonProps, 'aria-label' |
|
|
|
6
7
|
/** Accessible label for the action button (used for aria-label) */
|
|
7
8
|
label: string;
|
|
8
9
|
/** Optional custom icon to display instead of the default three dots */
|
|
9
|
-
icon?:
|
|
10
|
+
icon?: ReactElement;
|
|
10
11
|
}
|
|
11
12
|
/**
|
|
12
13
|
* ActionsButton component - A semantic action button for triggering contextual menus
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { default as React } from 'react';
|
|
2
1
|
import { AccordionItemProps, AccordionRootProps, FlexProps } from '@chakra-ui/react';
|
|
3
2
|
/**
|
|
4
3
|
* Record mapping column names to their configuration properties
|
|
@@ -68,7 +67,7 @@ interface DataListProps extends AccordionRootProps {
|
|
|
68
67
|
*/
|
|
69
68
|
declare const DataList: {
|
|
70
69
|
({ multiple, collapsible, isHover, ...rest }: DataListProps): import("react/jsx-runtime").JSX.Element;
|
|
71
|
-
Cell:
|
|
70
|
+
Cell: import('react').NamedExoticComponent<DataListCellProps>;
|
|
72
71
|
Row({ isVisible, isDisabled, ...rest }: DataListRowProps): import("react/jsx-runtime").JSX.Element;
|
|
73
72
|
Header({ ...rest }: DataListHeaderProps): import("react/jsx-runtime").JSX.Element;
|
|
74
73
|
Footer({ ...rest }: DataListFooterProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
2
|
import { ColumnDef, ColumnFiltersState, SortingState } from '@tanstack/react-table';
|
|
3
3
|
import { PaginationProps } from '../pagination/pagination';
|
|
4
4
|
/**
|
|
@@ -25,7 +25,7 @@ export interface DataTableProps<TData> {
|
|
|
25
25
|
/** Enable column sorting functionality */
|
|
26
26
|
enableSorting?: boolean;
|
|
27
27
|
/** Content to display when no data is available */
|
|
28
|
-
emptyState?:
|
|
28
|
+
emptyState?: ReactNode;
|
|
29
29
|
/** Enable responsive behavior (mobile cards view) */
|
|
30
30
|
responsive?: boolean;
|
|
31
31
|
/** Mobile view mode when responsive is enabled */
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { Locale } from 'date-fns';
|
|
2
1
|
/**
|
|
3
2
|
* Props for the DatePicker component
|
|
4
3
|
*/
|
|
@@ -15,8 +14,8 @@ export interface DatePickerProps {
|
|
|
15
14
|
isDateTime?: boolean;
|
|
16
15
|
/** Placeholder text for the input */
|
|
17
16
|
placeholderText?: string;
|
|
18
|
-
/** Locale for date formatting and translations */
|
|
19
|
-
locale?:
|
|
17
|
+
/** Locale string for date formatting and translations ('en', 'fr', 'en-gb') */
|
|
18
|
+
locale?: 'en' | 'fr';
|
|
20
19
|
/** Minimum selectable date */
|
|
21
20
|
minDate?: Date;
|
|
22
21
|
/** Maximum selectable date */
|
|
@@ -4,7 +4,9 @@ export * from './data-table/data-table';
|
|
|
4
4
|
export * from './date-picker/date-picker';
|
|
5
5
|
export * from './field-wrapper/field-wrapper';
|
|
6
6
|
export * from './input-mask/input-mask';
|
|
7
|
+
export * from './input-password/input-password';
|
|
7
8
|
export * from './input-phone/input-phone';
|
|
9
|
+
export * from './input-search/input-search';
|
|
8
10
|
export * from './input/input';
|
|
9
11
|
export * from './loader/loader';
|
|
10
12
|
export * from './logos/logoPaygreenByLemonway';
|
|
@@ -12,4 +14,6 @@ export * from './modal/modal';
|
|
|
12
14
|
export * from './pagination/pagination';
|
|
13
15
|
export * from './select/select';
|
|
14
16
|
export * from './sidebar/sidebar';
|
|
17
|
+
export * from './tooltip/tooltip';
|
|
15
18
|
export * from './ui/color-mode';
|
|
19
|
+
export * from './ui/toaster';
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ChangeEvent } from 'react';
|
|
1
2
|
import { InputProps } from '../input/input';
|
|
2
3
|
/**
|
|
3
4
|
* Props for the InputMask component
|
|
@@ -8,7 +9,7 @@ export interface InputMaskProps extends Omit<InputProps, 'onChange'> {
|
|
|
8
9
|
/** Additional options for the mask behavior */
|
|
9
10
|
maskOptions?: any;
|
|
10
11
|
/** Callback fired when the input value changes */
|
|
11
|
-
onChange?: (e:
|
|
12
|
+
onChange?: (e: ChangeEvent<HTMLInputElement>) => void;
|
|
12
13
|
}
|
|
13
14
|
/**
|
|
14
15
|
* A reusable input component that extends the base Input with mask functionality
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { GroupProps, InputProps, StackProps } from '@chakra-ui/react';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
interface PasswordStrengthMeterProps extends StackProps {
|
|
4
|
+
max?: number;
|
|
5
|
+
value: number;
|
|
6
|
+
}
|
|
7
|
+
declare const PasswordStrengthMeter: React.ForwardRefExoticComponent<PasswordStrengthMeterProps & React.RefAttributes<HTMLDivElement>>;
|
|
8
|
+
export interface PasswordVisibilityProps {
|
|
9
|
+
/**
|
|
10
|
+
* The default visibility state of the password input.
|
|
11
|
+
*/
|
|
12
|
+
defaultVisible?: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* The controlled visibility state of the password input.
|
|
15
|
+
*/
|
|
16
|
+
visible?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Callback invoked when the visibility state changes.
|
|
19
|
+
*/
|
|
20
|
+
onVisibleChange?: (visible: boolean) => void;
|
|
21
|
+
/**
|
|
22
|
+
* Custom icons for the visibility toggle button.
|
|
23
|
+
*/
|
|
24
|
+
visibilityIcon?: {
|
|
25
|
+
on: React.ReactNode;
|
|
26
|
+
off: React.ReactNode;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export interface InputPasswordProps extends InputProps, PasswordVisibilityProps {
|
|
30
|
+
rootProps?: GroupProps;
|
|
31
|
+
label?: string;
|
|
32
|
+
}
|
|
33
|
+
declare const InputPassword: React.ForwardRefExoticComponent<InputPasswordProps & React.RefAttributes<HTMLInputElement>>;
|
|
34
|
+
export { InputPassword, PasswordStrengthMeter };
|
|
@@ -11,7 +11,7 @@ export interface InputPhoneProps {
|
|
|
11
11
|
/** Placeholder text for the input */
|
|
12
12
|
placeholder?: string;
|
|
13
13
|
/** Whether the input is disabled */
|
|
14
|
-
|
|
14
|
+
disabled?: boolean;
|
|
15
15
|
/** Additional props to pass to the input element */
|
|
16
16
|
inputProps?: Record<string, unknown>;
|
|
17
17
|
/** Callback fired when the phone number changes */
|
|
@@ -19,7 +19,7 @@ export interface InputPhoneProps {
|
|
|
19
19
|
/** Whether the input is required */
|
|
20
20
|
isRequired?: boolean;
|
|
21
21
|
/** Whether the input is invalid */
|
|
22
|
-
|
|
22
|
+
invalid?: boolean;
|
|
23
23
|
/** Error message to display when invalid */
|
|
24
24
|
errorMessage?: string;
|
|
25
25
|
/** Custom labels for the country search component */
|
|
@@ -56,7 +56,7 @@ declare const formatPhoneIntl: (val: string) => string;
|
|
|
56
56
|
* ```
|
|
57
57
|
*/
|
|
58
58
|
declare const InputPhone: {
|
|
59
|
-
({ locale, label, value, placeholder,
|
|
59
|
+
({ locale, label, value, placeholder, disabled, inputProps, onChange, isRequired, invalid, errorMessage, searchLabels, ...props }: InputPhoneProps): import("react/jsx-runtime").JSX.Element;
|
|
60
60
|
displayName: string;
|
|
61
61
|
};
|
|
62
62
|
export { formatPhoneIntl, InputPhone, isValidPhone };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { InputProps } from '@chakra-ui/react';
|
|
3
|
+
type CustomProps = {
|
|
4
|
+
value?: string;
|
|
5
|
+
defaultValue?: string;
|
|
6
|
+
onChange?(value?: string): void;
|
|
7
|
+
delay?: number;
|
|
8
|
+
clearLabel?: string;
|
|
9
|
+
inputProps?: object;
|
|
10
|
+
isDisabled?: boolean;
|
|
11
|
+
customEndElement?: React.ReactNode;
|
|
12
|
+
};
|
|
13
|
+
export declare const InputSearch: React.ForwardRefExoticComponent<Omit<InputProps, keyof CustomProps> & CustomProps & React.RefAttributes<HTMLInputElement>>;
|
|
14
|
+
export {};
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import { default as React } from 'react';
|
|
2
1
|
import { SpinnerProps } from '@chakra-ui/react';
|
|
3
2
|
/**
|
|
4
3
|
* Props for the Loader component
|
|
5
4
|
*/
|
|
6
5
|
export interface LoaderProps extends SpinnerProps {
|
|
7
6
|
/** Whether the loader should be visible and spinning */
|
|
8
|
-
|
|
7
|
+
loading?: boolean;
|
|
9
8
|
/** Size of the spinner */
|
|
10
9
|
size?: 'sm' | 'md' | 'lg' | 'xl';
|
|
11
10
|
/** Custom color for the spinner (overrides theme colors) */
|
|
@@ -16,8 +15,11 @@ export interface LoaderProps extends SpinnerProps {
|
|
|
16
15
|
*
|
|
17
16
|
* @example
|
|
18
17
|
* ```tsx
|
|
19
|
-
* <Loader
|
|
18
|
+
* <Loader size="lg" loading={false} />
|
|
20
19
|
* ```
|
|
21
20
|
*/
|
|
22
|
-
declare const Loader:
|
|
21
|
+
declare const Loader: {
|
|
22
|
+
({ loading, size, color, ...rest }: LoaderProps): import("react/jsx-runtime").JSX.Element | null;
|
|
23
|
+
displayName: string;
|
|
24
|
+
};
|
|
23
25
|
export { Loader };
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { FC } from 'react';
|
|
2
1
|
/**
|
|
3
2
|
* Props for the LogoPayGreenByLemonway component
|
|
4
3
|
*/
|
|
@@ -22,5 +21,5 @@ export interface LogoPayGreenByLemonwayProps {
|
|
|
22
21
|
* />
|
|
23
22
|
* ```
|
|
24
23
|
*/
|
|
25
|
-
declare const LogoPayGreenByLemonway:
|
|
24
|
+
declare const LogoPayGreenByLemonway: ({ color, width, height, ...rest }: LogoPayGreenByLemonwayProps) => import("react/jsx-runtime").JSX.Element;
|
|
26
25
|
export { LogoPayGreenByLemonway };
|
|
@@ -7,7 +7,7 @@ export interface ModalProps {
|
|
|
7
7
|
/** Whether the modal is open or closed */
|
|
8
8
|
open: boolean;
|
|
9
9
|
/** Function to control the modal open/closed state */
|
|
10
|
-
setOpen: (
|
|
10
|
+
setOpen: (open: boolean) => void;
|
|
11
11
|
/** Content to be rendered inside the modal */
|
|
12
12
|
children: ReactNode;
|
|
13
13
|
}
|
|
@@ -17,26 +17,63 @@ export type ModalPropsWithExtensions = ModalProps & Partial<DrawerRootProps> & P
|
|
|
17
17
|
*
|
|
18
18
|
* @example
|
|
19
19
|
* ```tsx
|
|
20
|
-
* <Modal open={isOpen} setOpen={setIsOpen}>
|
|
21
|
-
* <Modal.
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
* </Modal>
|
|
20
|
+
* <Modal.Root open={isOpen} setOpen={setIsOpen}>
|
|
21
|
+
* <Modal.Trigger asChild>
|
|
22
|
+
* <Button>Open Modal</Button>
|
|
23
|
+
* </Modal.Trigger>
|
|
24
|
+
* <Modal.Content>
|
|
25
|
+
* <Modal.Header>Title</Modal.Header>
|
|
26
|
+
* <Modal.Body>Content goes here</Modal.Body>
|
|
27
|
+
* <Modal.Footer>
|
|
28
|
+
* <Modal.ActionTrigger asChild>
|
|
29
|
+
* <Button onClick={() => setIsOpen(false)}>Close</Button>
|
|
30
|
+
* </Modal.ActionTrigger>
|
|
31
|
+
* </Modal.Footer>
|
|
32
|
+
* </Modal.Content>
|
|
33
|
+
* </Modal.Root>
|
|
27
34
|
* ```
|
|
28
35
|
*/
|
|
29
|
-
declare const
|
|
36
|
+
declare const ModalRoot: {
|
|
30
37
|
({ open, setOpen, children, ...rest }: ModalPropsWithExtensions): import("react/jsx-runtime").JSX.Element;
|
|
31
|
-
|
|
38
|
+
Trigger({ children, ...rest }: {
|
|
32
39
|
children: ReactNode;
|
|
40
|
+
[key: string]: any;
|
|
33
41
|
}): import("react/jsx-runtime").JSX.Element;
|
|
34
|
-
|
|
42
|
+
Header({ children, ...rest }: {
|
|
35
43
|
children: ReactNode;
|
|
36
44
|
}): import("react/jsx-runtime").JSX.Element;
|
|
37
|
-
|
|
45
|
+
Body({ children, ...rest }: {
|
|
38
46
|
children: ReactNode;
|
|
39
47
|
}): import("react/jsx-runtime").JSX.Element;
|
|
48
|
+
Footer({ children, ...rest }: {
|
|
49
|
+
children: ReactNode;
|
|
50
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
51
|
+
ActionTrigger({ children, ...rest }: {
|
|
52
|
+
children: ReactNode;
|
|
53
|
+
[key: string]: any;
|
|
54
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
55
|
+
Backdrop(props: any): import("react/jsx-runtime").JSX.Element;
|
|
56
|
+
Positioner(props: any): import("react/jsx-runtime").JSX.Element;
|
|
57
|
+
Portal({ children, ...rest }: {
|
|
58
|
+
children: ReactNode;
|
|
59
|
+
[key: string]: any;
|
|
60
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
61
|
+
ContentWrapper({ children, ...rest }: {
|
|
62
|
+
children: ReactNode;
|
|
63
|
+
[key: string]: any;
|
|
64
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
40
65
|
displayName: string;
|
|
41
66
|
};
|
|
67
|
+
declare const Modal: typeof ModalRoot & {
|
|
68
|
+
Root: typeof ModalRoot;
|
|
69
|
+
Trigger: typeof ModalRoot.Trigger;
|
|
70
|
+
Header: typeof ModalRoot.Header;
|
|
71
|
+
Body: typeof ModalRoot.Body;
|
|
72
|
+
Footer: typeof ModalRoot.Footer;
|
|
73
|
+
Backdrop: typeof ModalRoot.Backdrop;
|
|
74
|
+
Positioner: typeof ModalRoot.Positioner;
|
|
75
|
+
ContentWrapper: typeof ModalRoot.ContentWrapper;
|
|
76
|
+
ActionTrigger: typeof ModalRoot.ActionTrigger;
|
|
77
|
+
Portal: typeof ModalRoot.Portal;
|
|
78
|
+
};
|
|
42
79
|
export { Modal };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ColorPalette } from '@chakra-ui/react';
|
|
2
2
|
/**
|
|
3
3
|
* Props for the Pagination component
|
|
4
4
|
*/
|
|
@@ -13,6 +13,8 @@ export interface PaginationProps {
|
|
|
13
13
|
totalItems: number;
|
|
14
14
|
/** Whether a page is currently loading - disables all interactions when true */
|
|
15
15
|
isLoadingPage?: boolean;
|
|
16
|
+
/** Color palette for the pagination */
|
|
17
|
+
colorPalette?: ColorPalette;
|
|
16
18
|
}
|
|
17
19
|
/**
|
|
18
20
|
* Pagination component for navigating through paginated data
|
|
@@ -27,5 +29,8 @@ export interface PaginationProps {
|
|
|
27
29
|
* />
|
|
28
30
|
* ```
|
|
29
31
|
*/
|
|
30
|
-
declare const Pagination:
|
|
32
|
+
declare const Pagination: {
|
|
33
|
+
({ page, setPage, pageSize, totalItems, isLoadingPage, colorPalette, }: PaginationProps): import("react/jsx-runtime").JSX.Element;
|
|
34
|
+
displayName: string;
|
|
35
|
+
};
|
|
31
36
|
export { Pagination };
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Props as ReactSelectProps } from 'react-select';
|
|
1
|
+
import { ActionMeta, MultiValue, Props as ReactSelectProps, SingleValue } from 'react-select';
|
|
3
2
|
/**
|
|
4
3
|
* Option interface for Select component
|
|
5
4
|
*/
|
|
@@ -12,33 +11,54 @@ export interface SelectOptionType {
|
|
|
12
11
|
isDisabled?: boolean;
|
|
13
12
|
}
|
|
14
13
|
/**
|
|
15
|
-
* Props for
|
|
14
|
+
* Props for single-select mode
|
|
16
15
|
*/
|
|
17
|
-
export interface
|
|
16
|
+
export interface SingleSelectProps extends Omit<ReactSelectProps<SelectOptionType, false>, 'options' | 'isMulti' | 'onChange' | 'value'> {
|
|
18
17
|
/** Array of options to display */
|
|
19
18
|
options?: SelectOptionType[];
|
|
20
|
-
/** Enable multi-selection */
|
|
21
|
-
isMulti?:
|
|
19
|
+
/** Enable multi-selection - must be false or undefined */
|
|
20
|
+
isMulti?: false;
|
|
21
|
+
/** Current value for controlled component */
|
|
22
|
+
value?: SingleValue<SelectOptionType> | null;
|
|
23
|
+
/** onChange handler for controlled component */
|
|
24
|
+
onChange?: (value: SingleValue<SelectOptionType> | null, actionMeta: ActionMeta<SelectOptionType>) => void;
|
|
22
25
|
/** Enable async loading of options */
|
|
23
26
|
isAsync?: boolean;
|
|
24
27
|
/** Enable creating new options */
|
|
25
28
|
isCreatable?: boolean;
|
|
26
|
-
/** Custom test ID for testing */
|
|
27
|
-
'data-testid'?: string;
|
|
28
29
|
/** Function to load options asynchronously */
|
|
29
30
|
loadOptions?: (inputValue: string) => Promise<SelectOptionType[]>;
|
|
31
|
+
/** Name attribute for form integration */
|
|
32
|
+
name?: string;
|
|
33
|
+
/** Whether the select is in invalid state */
|
|
34
|
+
invalid?: boolean;
|
|
30
35
|
}
|
|
31
36
|
/**
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
* @example
|
|
35
|
-
* ```tsx
|
|
36
|
-
* <Select
|
|
37
|
-
* options={[{value: 'option1', label: 'Option 1'}]}
|
|
38
|
-
* placeholder="Choose an option..."
|
|
39
|
-
* isClearable
|
|
40
|
-
* />
|
|
41
|
-
* ```
|
|
37
|
+
* Props for multi-select mode
|
|
42
38
|
*/
|
|
43
|
-
|
|
39
|
+
export interface MultiSelectProps extends Omit<ReactSelectProps<SelectOptionType, true>, 'options' | 'isMulti' | 'onChange' | 'value'> {
|
|
40
|
+
/** Array of options to display */
|
|
41
|
+
options?: SelectOptionType[];
|
|
42
|
+
/** Enable multi-selection - must be true */
|
|
43
|
+
isMulti: true;
|
|
44
|
+
/** Current value for controlled component - never null in multi mode, always an array */
|
|
45
|
+
value?: MultiValue<SelectOptionType>;
|
|
46
|
+
/** onChange handler for controlled component - never receives null in multi mode */
|
|
47
|
+
onChange?: (value: MultiValue<SelectOptionType>, actionMeta: ActionMeta<SelectOptionType>) => void;
|
|
48
|
+
/** Enable async loading of options */
|
|
49
|
+
isAsync?: boolean;
|
|
50
|
+
/** Enable creating new options */
|
|
51
|
+
isCreatable?: boolean;
|
|
52
|
+
/** Function to load options asynchronously */
|
|
53
|
+
loadOptions?: (inputValue: string) => Promise<SelectOptionType[]>;
|
|
54
|
+
/** Name attribute for form integration */
|
|
55
|
+
name?: string;
|
|
56
|
+
/** Whether the select is in invalid state */
|
|
57
|
+
invalid?: boolean;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Union type for Select component props
|
|
61
|
+
*/
|
|
62
|
+
export type SelectProps = SingleSelectProps | MultiSelectProps;
|
|
63
|
+
declare const Select: import('react').ForwardRefExoticComponent<SelectProps & import('react').RefAttributes<any>>;
|
|
44
64
|
export { Select };
|
|
@@ -26,7 +26,7 @@ interface NavItemProps {
|
|
|
26
26
|
/** Text label for the navigation item */
|
|
27
27
|
label: string;
|
|
28
28
|
/** Whether the navigation item is currently active/selected */
|
|
29
|
-
|
|
29
|
+
hidden?: boolean;
|
|
30
30
|
/** Whether the item has a submenu (shows chevron down icon) */
|
|
31
31
|
hasSubmenu?: boolean;
|
|
32
32
|
/** Number to display in a badge (for notifications or counts) */
|
|
@@ -39,6 +39,8 @@ interface NavItemProps {
|
|
|
39
39
|
onClick?: () => void;
|
|
40
40
|
/** Whether the item is disabled */
|
|
41
41
|
disabled?: boolean;
|
|
42
|
+
/** Link to navigate to when the item is clicked */
|
|
43
|
+
link?: string;
|
|
42
44
|
}
|
|
43
45
|
/**
|
|
44
46
|
* Props for navigation sections that group related navigation items
|
|
@@ -48,6 +50,8 @@ interface NavSectionProps {
|
|
|
48
50
|
title?: string;
|
|
49
51
|
/** Array of navigation items to display in this section */
|
|
50
52
|
items: NavItemProps[];
|
|
53
|
+
/** Whether the section is hidden */
|
|
54
|
+
hidden?: boolean;
|
|
51
55
|
/** Optional icon to display next to the section title */
|
|
52
56
|
icon?: React.ElementType;
|
|
53
57
|
}
|
|
@@ -55,8 +59,15 @@ interface NavSectionProps {
|
|
|
55
59
|
* Props for the sidebar body component that contains navigation sections
|
|
56
60
|
*/
|
|
57
61
|
interface SidebarBodyProps {
|
|
58
|
-
|
|
59
|
-
|
|
62
|
+
navSections: NavSectionProps[] | null;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Props for the sidebar root component
|
|
66
|
+
*/
|
|
67
|
+
interface SidebarRootProps extends SidebarProps {
|
|
68
|
+
pathname: string;
|
|
69
|
+
navItemsAs?: React.ElementType;
|
|
70
|
+
navItemsProps?: (item: NavItemProps) => Record<string, any>;
|
|
60
71
|
}
|
|
61
72
|
/**
|
|
62
73
|
* Main props for the Sidebar component
|
|
@@ -70,6 +81,8 @@ export interface SidebarProps extends Omit<DrawerRootProps, 'open'> {
|
|
|
70
81
|
setOpen: (val: boolean) => void;
|
|
71
82
|
/** Reference to the container element where the drawer portal should be rendered */
|
|
72
83
|
containerRef: RefObject<HTMLElement | null> | undefined;
|
|
84
|
+
/** Path to the active item */
|
|
85
|
+
activePath?: string;
|
|
73
86
|
/** Child components (Header, Body, Footer) to render inside the sidebar */
|
|
74
87
|
children: ReactNode;
|
|
75
88
|
/** Custom theme configuration for styling */
|
|
@@ -99,5 +112,6 @@ declare const Sidebar: {
|
|
|
99
112
|
Footer({ children, ...props }: {
|
|
100
113
|
children: ReactNode;
|
|
101
114
|
} & Partial<BoxProps>): import("react/jsx-runtime").JSX.Element;
|
|
115
|
+
Root: ({ pathname, navItemsAs, navItemsProps, ...props }: SidebarRootProps) => import("react/jsx-runtime").JSX.Element;
|
|
102
116
|
};
|
|
103
117
|
export { Sidebar };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Tooltip as ChakraTooltip } from '@chakra-ui/react';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
export interface TooltipProps extends ChakraTooltip.RootProps {
|
|
4
|
+
showArrow?: boolean;
|
|
5
|
+
portalled?: boolean;
|
|
6
|
+
portalRef?: React.RefObject<HTMLElement>;
|
|
7
|
+
content: React.ReactNode;
|
|
8
|
+
contentProps?: ChakraTooltip.ContentProps;
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare const Tooltip: React.ForwardRefExoticComponent<TooltipProps & React.RefAttributes<HTMLDivElement>>;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export * from './components';
|
|
2
|
-
export
|
|
2
|
+
export { default as PGUISystemContext } from './theme';
|