tw-react-components 0.0.132

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 (78) hide show
  1. package/LICENCE +21 -0
  2. package/README.md +3 -0
  3. package/index.cjs.d.ts +1 -0
  4. package/index.cjs.default.js +1 -0
  5. package/index.cjs.js +1881 -0
  6. package/index.cjs.mjs +2 -0
  7. package/index.esm.d.ts +1 -0
  8. package/index.esm.js +1790 -0
  9. package/package.json +32 -0
  10. package/src/components/Badge/index.d.ts +9 -0
  11. package/src/components/Block/index.d.ts +15 -0
  12. package/src/components/Button/index.d.ts +20 -0
  13. package/src/components/Card/index.d.ts +8 -0
  14. package/src/components/DataTable/index.d.ts +68 -0
  15. package/src/components/Dialog/ConfirmDialog.d.ts +11 -0
  16. package/src/components/Dialog/Dialog.d.ts +21 -0
  17. package/src/components/Dialog/FormDialog.d.ts +16 -0
  18. package/src/components/Dialog/ListSorterDialog.d.ts +12 -0
  19. package/src/components/Dialog/PdfViewerDialog.d.ts +10 -0
  20. package/src/components/Dialog/index.d.ts +5 -0
  21. package/src/components/DropdownMenu/index.d.ts +31 -0
  22. package/src/components/Flex/index.d.ts +25 -0
  23. package/src/components/Form/controls/FormGroup.d.ts +6 -0
  24. package/src/components/Form/controls/Label.d.ts +10 -0
  25. package/src/components/Form/controls/custom/date-time/DateSelector.d.ts +14 -0
  26. package/src/components/Form/controls/custom/date-time/DaysView.d.ts +13 -0
  27. package/src/components/Form/controls/custom/date-time/MonthsView.d.ts +12 -0
  28. package/src/components/Form/controls/custom/date-time/TimeSelector.d.ts +10 -0
  29. package/src/components/Form/controls/custom/date-time/YearsView.d.ts +11 -0
  30. package/src/components/Form/controls/custom/date-time/index.d.ts +27 -0
  31. package/src/components/Form/controls/custom/index.d.ts +2 -0
  32. package/src/components/Form/controls/custom/select/index.d.ts +38 -0
  33. package/src/components/Form/controls/index.d.ts +5 -0
  34. package/src/components/Form/controls/primitive/BasicInput.d.ts +37 -0
  35. package/src/components/Form/controls/primitive/CheckBoxInput.d.ts +4 -0
  36. package/src/components/Form/controls/primitive/EmailInput.d.ts +4 -0
  37. package/src/components/Form/controls/primitive/NumberInput.d.ts +4 -0
  38. package/src/components/Form/controls/primitive/PasswordInput.d.ts +4 -0
  39. package/src/components/Form/controls/primitive/TextInput.d.ts +4 -0
  40. package/src/components/Form/controls/primitive/TextareaInput.d.ts +4 -0
  41. package/src/components/Form/controls/primitive/index.d.ts +7 -0
  42. package/src/components/Form/controls/with-form.d.ts +51 -0
  43. package/src/components/Form/index.d.ts +1 -0
  44. package/src/components/Hint/index.d.ts +24 -0
  45. package/src/components/Layout/index.d.ts +10 -0
  46. package/src/components/List/index.d.ts +22 -0
  47. package/src/components/ListSorter/index.d.ts +11 -0
  48. package/src/components/Navbar/index.d.ts +6 -0
  49. package/src/components/Pagination/index.d.ts +9 -0
  50. package/src/components/Popover/index.d.ts +8 -0
  51. package/src/components/Sidebar/SidebarItem.d.ts +10 -0
  52. package/src/components/Sidebar/index.d.ts +26 -0
  53. package/src/components/Spinner/index.d.ts +7 -0
  54. package/src/components/Switch/index.d.ts +4 -0
  55. package/src/components/Table/index.d.ts +9 -0
  56. package/src/components/Tabs/index.d.ts +7 -0
  57. package/src/components/ThemeSwitcher/index.d.ts +6 -0
  58. package/src/components/Tooltip/index.d.ts +9 -0
  59. package/src/components/index.d.ts +24 -0
  60. package/src/components/types.d.ts +19 -0
  61. package/src/contexts/LayoutContext.d.ts +13 -0
  62. package/src/contexts/index.d.ts +1 -0
  63. package/src/helpers/cn.d.ts +2 -0
  64. package/src/helpers/compareDates.d.ts +2 -0
  65. package/src/helpers/generalComparator.d.ts +1 -0
  66. package/src/helpers/getDisplayDate.d.ts +1 -0
  67. package/src/helpers/index.d.ts +7 -0
  68. package/src/helpers/isEmpty.d.ts +1 -0
  69. package/src/helpers/mergeRefs.d.ts +2 -0
  70. package/src/helpers/resolveTargetObject.d.ts +1 -0
  71. package/src/hooks/index.d.ts +6 -0
  72. package/src/hooks/useDays.d.ts +5 -0
  73. package/src/hooks/useLongPress.d.ts +7 -0
  74. package/src/hooks/useMonths.d.ts +5 -0
  75. package/src/hooks/useOnSwipe.d.ts +4 -0
  76. package/src/hooks/useOutsideClick.d.ts +2 -0
  77. package/src/hooks/usePagination.d.ts +1 -0
  78. package/src/index.d.ts +4 -0
@@ -0,0 +1,24 @@
1
+ /// <reference types="react" />
2
+ import { BadgeProps, BadgeVariant } from '../Badge';
3
+ import { Color, Size } from '../types';
4
+ export type HintPlacement = 'top-left' | 'top-right' | 'bottom-right' | 'bottom-left';
5
+ export type HintVariant = BadgeVariant;
6
+ export type HintDotProps = {
7
+ size?: Size;
8
+ placement?: HintPlacement;
9
+ color?: Color;
10
+ ping?: boolean;
11
+ };
12
+ export type HintBadgeProps = BadgeProps & {
13
+ placement?: HintPlacement;
14
+ };
15
+ export declare const Hint: import("react").ForwardRefExoticComponent<{
16
+ children?: import("react").ReactNode;
17
+ } & import("react").RefAttributes<HTMLDivElement>> & {
18
+ Dot: import("react").ForwardRefExoticComponent<HintDotProps & import("react").RefAttributes<HTMLDivElement>>;
19
+ Badge: import("react").ForwardRefExoticComponent<Omit<import("..").ButtonProps, "variant"> & {
20
+ variant?: BadgeVariant | undefined;
21
+ } & {
22
+ placement?: HintPlacement | undefined;
23
+ } & import("react").RefAttributes<HTMLButtonElement>>;
24
+ };
@@ -0,0 +1,10 @@
1
+ import { FC, PropsWithChildren } from 'react';
2
+ import { NavbarProps } from '../Navbar';
3
+ import { SidebarProps } from '../Sidebar';
4
+ type Props = {
5
+ className?: string;
6
+ sidebarProps: SidebarProps;
7
+ navbarProps: NavbarProps;
8
+ };
9
+ export declare const Layout: FC<PropsWithChildren<Props>>;
10
+ export {};
@@ -0,0 +1,22 @@
1
+ /// <reference types="react" />
2
+ import { LucideIcon } from 'lucide-react';
3
+ import { Size } from '../types';
4
+ export declare const List: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>> & {
5
+ Item: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
6
+ size?: Size | undefined;
7
+ inset?: boolean | undefined;
8
+ } & import("react").RefAttributes<HTMLDivElement>>;
9
+ Label: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
10
+ size?: Size | undefined;
11
+ inset?: boolean | undefined;
12
+ } & import("react").RefAttributes<HTMLDivElement>>;
13
+ Indicator: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
14
+ icon: LucideIcon;
15
+ iconClassName: string;
16
+ } & import("react").RefAttributes<HTMLDivElement>>;
17
+ Icon: import("react").ForwardRefExoticComponent<{
18
+ className?: string | undefined;
19
+ icon: LucideIcon;
20
+ } & import("react").RefAttributes<SVGSVGElement>>;
21
+ Separator: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
22
+ };
@@ -0,0 +1,11 @@
1
+ import { SyntheticListenerMap } from '@dnd-kit/core/dist/hooks/utilities';
2
+ import { ReactElement, ReactNode } from 'react';
3
+ export type ListSorterItem = number | string | boolean | Record<'rank', number>;
4
+ export type ListSorterProps<T extends ListSorterItem> = {
5
+ className?: string;
6
+ items: T[];
7
+ idResolver: (item: T, index: number) => string;
8
+ renderer: (item: T, index: number, listeners?: SyntheticListenerMap) => ReactNode;
9
+ onChange: (items: T[]) => void;
10
+ };
11
+ export declare function ListSorter<T extends ListSorterItem>({ className, items, idResolver, renderer, onChange, }: ListSorterProps<T>): ReactElement;
@@ -0,0 +1,6 @@
1
+ import { FC, ReactNode } from 'react';
2
+ export type NavbarProps = {
3
+ leftSlot?: ReactNode;
4
+ rightSlot?: ReactNode;
5
+ };
6
+ export declare const Navbar: FC<NavbarProps>;
@@ -0,0 +1,9 @@
1
+ import { Dispatch, FC, SetStateAction } from 'react';
2
+ export type PaginationProps = {
3
+ disabled?: boolean;
4
+ pageSize?: number;
5
+ totalItems: number;
6
+ currentPage: number;
7
+ setCurrentPage: Dispatch<SetStateAction<number>>;
8
+ };
9
+ export declare const Pagination: FC<PaginationProps>;
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ import * as PopoverPrimitive from '@radix-ui/react-popover';
3
+ export declare const Popover: import("react").FC<PopoverPrimitive.PopoverProps> & {
4
+ Trigger: import("react").ForwardRefExoticComponent<PopoverPrimitive.PopoverTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
5
+ Content: import("react").ForwardRefExoticComponent<Omit<PopoverPrimitive.PopoverContentProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & {
6
+ container?: HTMLElement | null | undefined;
7
+ } & import("react").RefAttributes<HTMLDivElement>>;
8
+ };
@@ -0,0 +1,10 @@
1
+ import { FC } from 'react';
2
+ import { type SidebarItem } from '.';
3
+ export type SidebarItemProps = SidebarItem & {
4
+ active?: boolean;
5
+ isChild?: boolean;
6
+ basePath: string;
7
+ sidebarOpen: boolean;
8
+ onClick?: () => void;
9
+ };
10
+ export declare const SidebarItemComp: FC<SidebarItemProps>;
@@ -0,0 +1,26 @@
1
+ import { LucideIcon } from 'lucide-react';
2
+ import { ReactNode } from 'react';
3
+ export type SidebarSeparator = {
4
+ type: 'separator';
5
+ title?: string;
6
+ hidden?: boolean;
7
+ };
8
+ export type SidebarItem = {
9
+ type?: 'item';
10
+ pathname: string;
11
+ title: string;
12
+ label?: ReactNode;
13
+ Icon: LucideIcon;
14
+ hidden?: boolean;
15
+ items?: SidebarItem[];
16
+ };
17
+ export type SidebarProps = {
18
+ open?: boolean;
19
+ className?: string;
20
+ items: (SidebarItem | SidebarSeparator)[];
21
+ basePath?: string;
22
+ smallLogo?: ReactNode;
23
+ fullLogo?: ReactNode;
24
+ footer?: ReactNode;
25
+ };
26
+ export declare const Sidebar: import("react").ForwardRefExoticComponent<SidebarProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,7 @@
1
+ import { FC } from 'react';
2
+ type Props = {
3
+ className?: string;
4
+ fullScreen?: boolean;
5
+ };
6
+ export declare const Spinner: FC<Props>;
7
+ export {};
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import * as SwitchPrimitives from '@radix-ui/react-switch';
3
+ declare const Switch: import("react").ForwardRefExoticComponent<Omit<SwitchPrimitives.SwitchProps & import("react").RefAttributes<HTMLButtonElement>, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
4
+ export { Switch };
@@ -0,0 +1,9 @@
1
+ import { FC } from 'react';
2
+ export declare const Table: FC<import("react").DetailedHTMLProps<import("react").TableHTMLAttributes<HTMLTableElement>, HTMLTableElement>> & {
3
+ Head: FC<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLTableSectionElement>, HTMLTableSectionElement>>;
4
+ HeadCell: FC<import("react").DetailedHTMLProps<import("react").ThHTMLAttributes<HTMLTableHeaderCellElement>, HTMLTableHeaderCellElement>>;
5
+ Body: FC<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLTableSectionElement>, HTMLTableSectionElement>>;
6
+ Row: FC<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLTableRowElement>, HTMLTableRowElement>>;
7
+ Cell: FC<import("react").DetailedHTMLProps<import("react").TdHTMLAttributes<HTMLTableDataCellElement>, HTMLTableDataCellElement>>;
8
+ Footer: FC<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLTableSectionElement>, HTMLTableSectionElement>>;
9
+ };
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ import * as TabsPrimitive from '@radix-ui/react-tabs';
3
+ export declare const Tabs: import("react").ForwardRefExoticComponent<Omit<TabsPrimitive.TabsProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>> & {
4
+ List: import("react").ForwardRefExoticComponent<Omit<TabsPrimitive.TabsListProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
5
+ Trigger: import("react").ForwardRefExoticComponent<Omit<TabsPrimitive.TabsTriggerProps & import("react").RefAttributes<HTMLButtonElement>, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
6
+ Content: import("react").ForwardRefExoticComponent<TabsPrimitive.TabsContentProps & import("react").RefAttributes<HTMLDivElement>>;
7
+ };
@@ -0,0 +1,6 @@
1
+ import { FC } from 'react';
2
+ type Props = {
3
+ className?: string;
4
+ };
5
+ export declare const ThemeSwitcher: FC<Props>;
6
+ export {};
@@ -0,0 +1,9 @@
1
+ import * as TooltipPrimitive from '@radix-ui/react-tooltip';
2
+ import { FC, PropsWithChildren, ReactNode } from 'react';
3
+ export type TooltipProps = PropsWithChildren<{
4
+ className?: string;
5
+ content: ReactNode;
6
+ asChild?: boolean;
7
+ placement?: TooltipPrimitive.TooltipContentProps['side'];
8
+ }>;
9
+ export declare const Tooltip: FC<TooltipProps>;
@@ -0,0 +1,24 @@
1
+ export * from './Badge';
2
+ export * from './Block';
3
+ export * from './Button';
4
+ export * from './Card';
5
+ export * from './DataTable';
6
+ export * from './Dialog';
7
+ export * from './DropdownMenu';
8
+ export * from './Flex';
9
+ export * from './Form';
10
+ export * from './Hint';
11
+ export * from './Layout';
12
+ export * from './List';
13
+ export * from './ListSorter';
14
+ export * from './Navbar';
15
+ export * from './Pagination';
16
+ export * from './Popover';
17
+ export * from './Sidebar';
18
+ export * from './Spinner';
19
+ export * from './Switch';
20
+ export * from './Table';
21
+ export * from './Tabs';
22
+ export * from './ThemeSwitcher';
23
+ export * from './Tooltip';
24
+ export * from './types';
@@ -0,0 +1,19 @@
1
+ export type Size = 'small' | 'medium';
2
+ export type Color = 'slate' | 'gray' | 'zinc' | 'neutral' | 'stone' | 'red' | 'orange' | 'amber' | 'yellow' | 'lime' | 'green' | 'emerald' | 'teal' | 'cyan' | 'sky' | 'blue' | 'indigo' | 'violet' | 'fuchsia' | 'purple' | 'pink' | 'rose';
3
+ type NextDepth = {
4
+ '1': never;
5
+ '2': '1';
6
+ '3': '2';
7
+ '4': '3';
8
+ '5': '4';
9
+ '6': '5';
10
+ '7': '6';
11
+ '8': '7';
12
+ '9': '8';
13
+ '10': '9';
14
+ };
15
+ export type Paths<T, Depth extends keyof NextDepth = '10'> = Depth extends keyof NextDepth ? T extends ReadonlyArray<infer R> ? `${number}` | `${number}.${Paths<R, NextDepth[Depth]>}` : T extends object ? {
16
+ [K in keyof T]: `${Exclude<K, symbol>}${'' | `.${Paths<T[K], NextDepth[Depth]>}`}`;
17
+ }[keyof T] : never : never;
18
+ export type ResolvePath<T, Path extends Paths<T>> = Path extends '' ? T : Path extends `${infer Field}.${infer Rest}` ? T extends ReadonlyArray<infer R> ? Rest extends Paths<R> ? ResolvePath<R, Rest> : never : Field extends keyof T ? Rest extends Paths<T[Field]> ? ResolvePath<T[Field], Rest> : never : never : Path extends number ? T extends ReadonlyArray<infer R> ? R : never : Path extends `${infer Field}` ? T extends ReadonlyArray<infer R> ? R : Field extends keyof T ? T[Field] : never : T;
19
+ export {};
@@ -0,0 +1,13 @@
1
+ import { FC, PropsWithChildren } from 'react';
2
+ export type LayoutContext = {
3
+ theme: ThemeState;
4
+ sidebarOpen: boolean;
5
+ toggleTheme: () => void;
6
+ setSidebarOpen: (open: boolean) => void;
7
+ };
8
+ export declare const LayoutContext: import("react").Context<LayoutContext | undefined>;
9
+ export declare const LayoutContextProvider: FC<PropsWithChildren>;
10
+ export declare function useLayoutContext(): LayoutContext;
11
+ export type ThemeState = 'dark' | 'light';
12
+ export declare const THEME_KEY = "tw-react-components__theme";
13
+ export declare const SIDEBAR_KEY = "tw-react-components__sidebar";
@@ -0,0 +1 @@
1
+ export * from './LayoutContext';
@@ -0,0 +1,2 @@
1
+ import { type ClassValue } from 'clsx';
2
+ export declare function cn(...inputs: ClassValue[]): string;
@@ -0,0 +1,2 @@
1
+ import { OpUnitType } from 'dayjs';
2
+ export declare function compareDates(date1: Date, date2: Date, startOf?: OpUnitType): number;
@@ -0,0 +1 @@
1
+ export declare function generalComparator(a: any, b: any): number;
@@ -0,0 +1 @@
1
+ export declare function getDisplayDate(date: Date, format: string, locale?: string): string;
@@ -0,0 +1,7 @@
1
+ export * from './cn';
2
+ export * from './compareDates';
3
+ export * from './generalComparator';
4
+ export * from './getDisplayDate';
5
+ export * from './isEmpty';
6
+ export * from './mergeRefs';
7
+ export * from './resolveTargetObject';
@@ -0,0 +1 @@
1
+ export declare function isEmpty(s: any): boolean;
@@ -0,0 +1,2 @@
1
+ import { LegacyRef, MutableRefObject, RefCallback } from 'react';
2
+ export declare function mergeRefs<T = any>(refs: Array<MutableRefObject<T> | LegacyRef<T> | undefined | null>): RefCallback<T>;
@@ -0,0 +1 @@
1
+ export declare function resolveTargetObject(payload: any, fieldChain: string[]): any;
@@ -0,0 +1,6 @@
1
+ export * from './useDays';
2
+ export * from './useLongPress';
3
+ export * from './useMonths';
4
+ export * from './useOnSwipe';
5
+ export * from './useOutsideClick';
6
+ export * from './usePagination';
@@ -0,0 +1,5 @@
1
+ export declare function useDays(locale?: string): {
2
+ name: string;
3
+ shortName: string;
4
+ index: number;
5
+ }[];
@@ -0,0 +1,7 @@
1
+ export declare function useLongPress(callback: () => void, ms?: number): {
2
+ onMouseDown: () => void;
3
+ onMouseUp: () => void;
4
+ onMouseLeave: () => void;
5
+ onTouchStart: () => void;
6
+ onTouchEnd: () => void;
7
+ };
@@ -0,0 +1,5 @@
1
+ export declare function useMonths(locale?: string): {
2
+ name: string;
3
+ shortName: string;
4
+ index: number;
5
+ }[];
@@ -0,0 +1,4 @@
1
+ import { RefObject } from 'react';
2
+ type SwipeDirection = 'up' | 'left' | 'bottom' | 'right';
3
+ export declare function useOnSwipe(element: RefObject<HTMLElement>, onSwipe: (direction: SwipeDirection) => any | false, minSwipeDistance?: number): void;
4
+ export {};
@@ -0,0 +1,2 @@
1
+ import { RefObject } from 'react';
2
+ export declare function useOutsideClick(ref: RefObject<HTMLDivElement>, callback: () => void): void;
@@ -0,0 +1 @@
1
+ export declare function usePagination(currentIndex: number, totalPages: number): (number | '...')[];
package/src/index.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ export * from './components';
2
+ export * from './contexts';
3
+ export * from './helpers';
4
+ export * from './hooks';