@dinofront/design_system 0.1.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 (115) hide show
  1. package/README.md +65 -0
  2. package/dist/components/Accordion/Accordion.d.ts +3 -0
  3. package/dist/components/Accordion/Accordion.types.d.ts +21 -0
  4. package/dist/components/Accordion/index.d.ts +2 -0
  5. package/dist/components/Avatar/Avatar.d.ts +3 -0
  6. package/dist/components/Avatar/Avatar.types.d.ts +18 -0
  7. package/dist/components/Avatar/index.d.ts +2 -0
  8. package/dist/components/Badge/Badge.d.ts +2 -0
  9. package/dist/components/Badge/Badge.types.d.ts +14 -0
  10. package/dist/components/Badge/index.d.ts +2 -0
  11. package/dist/components/Button/Button.d.ts +2 -0
  12. package/dist/components/Button/Button.types.d.ts +15 -0
  13. package/dist/components/Button/index.d.ts +2 -0
  14. package/dist/components/ButtonGroup/ButtonGroup.d.ts +2 -0
  15. package/dist/components/ButtonGroup/ButtonGroup.types.d.ts +6 -0
  16. package/dist/components/ButtonGroup/index.d.ts +2 -0
  17. package/dist/components/Card/Card.d.ts +2 -0
  18. package/dist/components/Card/Card.types.d.ts +14 -0
  19. package/dist/components/Card/index.d.ts +2 -0
  20. package/dist/components/Checkbox/Checkbox.d.ts +2 -0
  21. package/dist/components/Checkbox/Checkbox.types.d.ts +11 -0
  22. package/dist/components/Checkbox/index.d.ts +2 -0
  23. package/dist/components/DatePicker/DatePicker.d.ts +2 -0
  24. package/dist/components/DatePicker/DatePicker.types.d.ts +24 -0
  25. package/dist/components/DatePicker/index.d.ts +2 -0
  26. package/dist/components/Drawer/Drawer.d.ts +2 -0
  27. package/dist/components/Drawer/Drawer.types.d.ts +23 -0
  28. package/dist/components/Drawer/index.d.ts +2 -0
  29. package/dist/components/DropdownMenu/DropdownMenu.d.ts +7 -0
  30. package/dist/components/DropdownMenu/DropdownMenu.types.d.ts +37 -0
  31. package/dist/components/DropdownMenu/index.d.ts +2 -0
  32. package/dist/components/Filter/Filter.d.ts +2 -0
  33. package/dist/components/Filter/Filter.types.d.ts +17 -0
  34. package/dist/components/Filter/index.d.ts +2 -0
  35. package/dist/components/IconTile/IconTile.d.ts +2 -0
  36. package/dist/components/IconTile/IconTile.types.d.ts +13 -0
  37. package/dist/components/IconTile/index.d.ts +2 -0
  38. package/dist/components/InfoField/InfoField.d.ts +2 -0
  39. package/dist/components/InfoField/InfoField.types.d.ts +16 -0
  40. package/dist/components/InfoField/index.d.ts +2 -0
  41. package/dist/components/InlineAlert/InlineAlert.d.ts +2 -0
  42. package/dist/components/InlineAlert/InlineAlert.types.d.ts +15 -0
  43. package/dist/components/InlineAlert/index.d.ts +2 -0
  44. package/dist/components/Input/Input.d.ts +2 -0
  45. package/dist/components/Input/Input.types.d.ts +15 -0
  46. package/dist/components/Input/index.d.ts +2 -0
  47. package/dist/components/Modal/Modal.d.ts +2 -0
  48. package/dist/components/Modal/Modal.types.d.ts +21 -0
  49. package/dist/components/Modal/index.d.ts +2 -0
  50. package/dist/components/MultiSelect/MultiSelect.d.ts +2 -0
  51. package/dist/components/MultiSelect/MultiSelect.types.d.ts +44 -0
  52. package/dist/components/MultiSelect/index.d.ts +2 -0
  53. package/dist/components/NotificationBadge/NotificationBadge.d.ts +2 -0
  54. package/dist/components/NotificationBadge/NotificationBadge.types.d.ts +15 -0
  55. package/dist/components/NotificationBadge/index.d.ts +2 -0
  56. package/dist/components/Pagination/Pagination.d.ts +2 -0
  57. package/dist/components/Pagination/Pagination.types.d.ts +14 -0
  58. package/dist/components/Pagination/index.d.ts +2 -0
  59. package/dist/components/PersonCard/PersonCard.d.ts +2 -0
  60. package/dist/components/PersonCard/PersonCard.types.d.ts +20 -0
  61. package/dist/components/PersonCard/index.d.ts +2 -0
  62. package/dist/components/Radio/Radio.d.ts +3 -0
  63. package/dist/components/Radio/Radio.types.d.ts +22 -0
  64. package/dist/components/Radio/index.d.ts +2 -0
  65. package/dist/components/Select/Select.d.ts +2 -0
  66. package/dist/components/Select/Select.types.d.ts +24 -0
  67. package/dist/components/Select/index.d.ts +2 -0
  68. package/dist/components/Sidebar/Sidebar.d.ts +3 -0
  69. package/dist/components/Sidebar/Sidebar.types.d.ts +25 -0
  70. package/dist/components/Sidebar/index.d.ts +2 -0
  71. package/dist/components/Snackbar/Snackbar.d.ts +3 -0
  72. package/dist/components/Snackbar/Snackbar.types.d.ts +28 -0
  73. package/dist/components/Snackbar/index.d.ts +2 -0
  74. package/dist/components/Status/Status.d.ts +2 -0
  75. package/dist/components/Status/Status.types.d.ts +12 -0
  76. package/dist/components/Status/index.d.ts +2 -0
  77. package/dist/components/Switch/Switch.d.ts +2 -0
  78. package/dist/components/Switch/Switch.types.d.ts +9 -0
  79. package/dist/components/Switch/index.d.ts +2 -0
  80. package/dist/components/Table/Table.d.ts +8 -0
  81. package/dist/components/Table/Table.types.d.ts +55 -0
  82. package/dist/components/Table/index.d.ts +2 -0
  83. package/dist/components/Tabs/Tabs.d.ts +5 -0
  84. package/dist/components/Tabs/Tabs.types.d.ts +26 -0
  85. package/dist/components/Tabs/index.d.ts +2 -0
  86. package/dist/components/Text/Text.d.ts +2 -0
  87. package/dist/components/Text/Text.types.d.ts +15 -0
  88. package/dist/components/Text/index.d.ts +2 -0
  89. package/dist/components/TextArea/TextArea.d.ts +2 -0
  90. package/dist/components/TextArea/TextArea.types.d.ts +10 -0
  91. package/dist/components/TextArea/index.d.ts +2 -0
  92. package/dist/components/Tooltip/Tooltip.d.ts +2 -0
  93. package/dist/components/Tooltip/Tooltip.types.d.ts +15 -0
  94. package/dist/components/Tooltip/index.d.ts +2 -0
  95. package/dist/components/Upload/Upload.d.ts +3 -0
  96. package/dist/components/Upload/Upload.types.d.ts +24 -0
  97. package/dist/components/Upload/index.d.ts +2 -0
  98. package/dist/index.d.ts +35 -0
  99. package/dist/index.js +2663 -0
  100. package/dist/index.js.map +1 -0
  101. package/dist/lib/cn.d.ts +8 -0
  102. package/dist/styles.css +2624 -0
  103. package/dist/tailwind/preset.d.ts +41 -0
  104. package/dist/tailwind/preset.js +151 -0
  105. package/dist/tailwind/preset.js.map +1 -0
  106. package/dist/tailwind/tokens.d.ts +141 -0
  107. package/dist/tokens/colors.d.ts +286 -0
  108. package/dist/tokens/index.d.ts +5 -0
  109. package/dist/tokens/radius.d.ts +15 -0
  110. package/dist/tokens/shadows.d.ts +13 -0
  111. package/dist/tokens/spacing.d.ts +18 -0
  112. package/dist/tokens/typography.d.ts +161 -0
  113. package/dist/types/base.d.ts +5 -0
  114. package/dist/types/index.d.ts +1 -0
  115. package/package.json +78 -0
@@ -0,0 +1,20 @@
1
+ import { HTMLAttributes, ReactNode } from 'react';
2
+ import { BaseProps } from '../../types';
3
+ export type PersonCardVariant = 'default' | 'highlight' | 'warning';
4
+ export type PersonCardSize = 'sm' | 'md';
5
+ export interface PersonCardProps extends HTMLAttributes<HTMLDivElement>, BaseProps {
6
+ name: string;
7
+ role?: string;
8
+ avatar?: string;
9
+ /** Visual treatment.
10
+ * - default: neutral border
11
+ * - highlight: brand-green tint + border (use for "you" / current user / featured)
12
+ * - warning: amber border + small status dot (use for "needs attention")
13
+ */
14
+ variant?: PersonCardVariant;
15
+ size?: PersonCardSize;
16
+ /** Optional badge rendered inline at the end of the row (e.g. "YOU"). */
17
+ badge?: ReactNode;
18
+ /** If set, renders as a button so it's clickable. */
19
+ onClick?: () => void;
20
+ }
@@ -0,0 +1,2 @@
1
+ export { PersonCard } from './PersonCard';
2
+ export type { PersonCardProps, PersonCardVariant, PersonCardSize } from './PersonCard.types';
@@ -0,0 +1,3 @@
1
+ import { RadioGroupProps, RadioProps } from './Radio.types';
2
+ export declare const RadioGroup: import('react').ForwardRefExoticComponent<RadioGroupProps & import('react').RefAttributes<HTMLDivElement>>;
3
+ export declare const Radio: import('react').ForwardRefExoticComponent<RadioProps & import('react').RefAttributes<HTMLInputElement>>;
@@ -0,0 +1,22 @@
1
+ import { ChangeEvent, InputHTMLAttributes, ReactNode } from 'react';
2
+ import { BaseProps } from '../../types';
3
+ export type RadioSize = 'md' | 'sm';
4
+ export interface RadioGroupProps extends BaseProps {
5
+ name?: string;
6
+ value?: string;
7
+ defaultValue?: string;
8
+ onChange?: (value: string) => void;
9
+ disabled?: boolean;
10
+ size?: RadioSize;
11
+ orientation?: 'horizontal' | 'vertical';
12
+ children: ReactNode;
13
+ className?: string;
14
+ }
15
+ export interface RadioProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'type' | 'name' | 'onChange'>, BaseProps {
16
+ value: string;
17
+ size?: RadioSize;
18
+ label?: ReactNode;
19
+ description?: ReactNode;
20
+ error?: boolean;
21
+ onChange?: (e: ChangeEvent<HTMLInputElement>) => void;
22
+ }
@@ -0,0 +1,2 @@
1
+ export { Radio, RadioGroup } from './Radio';
2
+ export type { RadioProps, RadioGroupProps, RadioSize } from './Radio.types';
@@ -0,0 +1,2 @@
1
+ import { SelectProps } from './Select.types';
2
+ export declare const Select: import('react').ForwardRefExoticComponent<SelectProps & import('react').RefAttributes<HTMLButtonElement>>;
@@ -0,0 +1,24 @@
1
+ import { ReactNode } from 'react';
2
+ import { BaseProps } from '../../types';
3
+ export type SelectSize = 'lg' | 'md' | 'sm';
4
+ export interface SelectOption {
5
+ value: string;
6
+ label: ReactNode;
7
+ disabled?: boolean;
8
+ }
9
+ export interface SelectProps extends BaseProps {
10
+ options: SelectOption[];
11
+ value?: string;
12
+ defaultValue?: string;
13
+ onChange?: (value: string) => void;
14
+ placeholder?: string;
15
+ label?: ReactNode;
16
+ helperText?: ReactNode;
17
+ errorText?: ReactNode;
18
+ error?: boolean;
19
+ size?: SelectSize;
20
+ disabled?: boolean;
21
+ id?: string;
22
+ className?: string;
23
+ wrapperClassName?: string;
24
+ }
@@ -0,0 +1,2 @@
1
+ export { Select } from './Select';
2
+ export type { SelectProps, SelectOption, SelectSize } from './Select.types';
@@ -0,0 +1,3 @@
1
+ import { SidebarItemProps, SidebarProps } from './Sidebar.types';
2
+ export declare const Sidebar: import('react').ForwardRefExoticComponent<SidebarProps & import('react').RefAttributes<HTMLElement>>;
3
+ export declare const SidebarItem: import('react').ForwardRefExoticComponent<SidebarItemProps & import('react').RefAttributes<HTMLButtonElement | HTMLAnchorElement>>;
@@ -0,0 +1,25 @@
1
+ import { HTMLAttributes, ReactNode } from 'react';
2
+ import { BaseProps } from '../../types';
3
+ export interface SidebarProps extends Omit<HTMLAttributes<HTMLElement>, 'title'>, BaseProps {
4
+ /** Uncontrolled initial collapsed state. */
5
+ defaultCollapsed?: boolean;
6
+ /** Controlled collapsed state. Pass alongside `onCollapsedChange` to fully control it. */
7
+ collapsed?: boolean;
8
+ onCollapsedChange?: (collapsed: boolean) => void;
9
+ children: ReactNode;
10
+ logo?: ReactNode;
11
+ title?: ReactNode;
12
+ subtitle?: ReactNode;
13
+ }
14
+ export interface SidebarItemProps extends Omit<HTMLAttributes<HTMLElement>, 'onClick'>, BaseProps {
15
+ icon?: ReactNode;
16
+ label: ReactNode;
17
+ /** Marks the item as the current selection and, when it has `children`, defaults its group open. */
18
+ active?: boolean;
19
+ badge?: ReactNode;
20
+ /** Nested items, rendered as a collapsible group below this item. */
21
+ children?: ReactNode;
22
+ onClick?: () => void;
23
+ /** Renders the item as an `<a>` instead of a `<button>` when provided. */
24
+ href?: string;
25
+ }
@@ -0,0 +1,2 @@
1
+ export { Sidebar, SidebarItem } from './Sidebar';
2
+ export type { SidebarProps, SidebarItemProps } from './Sidebar.types';
@@ -0,0 +1,3 @@
1
+ import { SnackbarContextValue, SnackbarProviderProps } from './Snackbar.types';
2
+ export declare function useSnackbar(): SnackbarContextValue;
3
+ export declare function SnackbarProvider({ children, dataTestId }: SnackbarProviderProps): import("react").JSX.Element;
@@ -0,0 +1,28 @@
1
+ import { ReactNode } from 'react';
2
+ import { BaseProps } from '../../types';
3
+ export type SnackbarVariant = 'success' | 'warning' | 'danger' | 'info' | 'neutral';
4
+ /**
5
+ * A single toast entry. `dataTestId` is optional per-toast so callers can
6
+ * tag a specific `show()` call for e2e selection (there's no other prop
7
+ * surface to hang a QA hook off — the toast itself is never a
8
+ * consumer-authored JSX element, just a data object passed to `show()`).
9
+ */
10
+ export interface SnackbarItem extends BaseProps {
11
+ id: string;
12
+ message: ReactNode;
13
+ variant?: SnackbarVariant;
14
+ duration?: number;
15
+ action?: {
16
+ label: string;
17
+ onClick: () => void;
18
+ };
19
+ }
20
+ export interface SnackbarContextValue {
21
+ show: (item: Omit<SnackbarItem, 'id'> & {
22
+ id?: string;
23
+ }) => string;
24
+ dismiss: (id: string) => void;
25
+ }
26
+ export interface SnackbarProviderProps extends BaseProps {
27
+ children: ReactNode;
28
+ }
@@ -0,0 +1,2 @@
1
+ export { SnackbarProvider, useSnackbar } from './Snackbar';
2
+ export type { SnackbarVariant, SnackbarItem, SnackbarContextValue, SnackbarProviderProps, } from './Snackbar.types';
@@ -0,0 +1,2 @@
1
+ import { StatusProps } from './Status.types';
2
+ export declare const Status: import('react').ForwardRefExoticComponent<StatusProps & import('react').RefAttributes<HTMLSpanElement>>;
@@ -0,0 +1,12 @@
1
+ import { HTMLAttributes, ReactNode } from 'react';
2
+ import { BaseProps } from '../../types';
3
+ export type StatusVariant = 'general' | 'info' | 'brand' | 'danger' | 'warning' | 'success' | 'discovery' | 'disabled';
4
+ export type StatusSize = 'lg' | 'md' | 'sm';
5
+ export interface StatusProps extends HTMLAttributes<HTMLSpanElement>, BaseProps {
6
+ variant?: StatusVariant;
7
+ size?: StatusSize;
8
+ leftIcon?: ReactNode;
9
+ rightIcon?: ReactNode;
10
+ /** Renders a leading color dot when true and no `leftIcon` is supplied. */
11
+ dot?: boolean;
12
+ }
@@ -0,0 +1,2 @@
1
+ export { Status } from './Status';
2
+ export type { StatusProps, StatusSize, StatusVariant } from './Status.types';
@@ -0,0 +1,2 @@
1
+ import { SwitchProps } from './Switch.types';
2
+ export declare const Switch: import('react').ForwardRefExoticComponent<SwitchProps & import('react').RefAttributes<HTMLInputElement>>;
@@ -0,0 +1,9 @@
1
+ import { InputHTMLAttributes, ReactNode } from 'react';
2
+ import { BaseProps } from '../../types';
3
+ export type SwitchSize = 'md' | 'sm';
4
+ export interface SwitchProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'>, BaseProps {
5
+ size?: SwitchSize;
6
+ label?: ReactNode;
7
+ description?: ReactNode;
8
+ labelPosition?: 'left' | 'right';
9
+ }
@@ -0,0 +1,2 @@
1
+ export { Switch } from './Switch';
2
+ export type { SwitchProps, SwitchSize } from './Switch.types';
@@ -0,0 +1,8 @@
1
+ import { TableProps, THeadProps, TBodyProps, TRProps, THProps, TDProps, DataTableProps } from './Table.types';
2
+ export declare const Table: import('react').ForwardRefExoticComponent<TableProps & import('react').RefAttributes<HTMLTableElement>>;
3
+ export declare const THead: import('react').ForwardRefExoticComponent<THeadProps & import('react').RefAttributes<HTMLTableSectionElement>>;
4
+ export declare const TBody: import('react').ForwardRefExoticComponent<TBodyProps & import('react').RefAttributes<HTMLTableSectionElement>>;
5
+ export declare const TR: import('react').ForwardRefExoticComponent<TRProps & import('react').RefAttributes<HTMLTableRowElement>>;
6
+ export declare const TH: import('react').ForwardRefExoticComponent<THProps & import('react').RefAttributes<HTMLTableCellElement>>;
7
+ export declare const TD: import('react').ForwardRefExoticComponent<TDProps & import('react').RefAttributes<HTMLTableCellElement>>;
8
+ export declare function DataTable<T>({ columns, rows, rowKey, empty, density, striped, hoverable, sortKey, sortDir, onSortChange, onRowClick, className, dataTestId, }: DataTableProps<T>): import("react").JSX.Element;
@@ -0,0 +1,55 @@
1
+ import { HTMLAttributes, ReactNode, ThHTMLAttributes, TdHTMLAttributes } from 'react';
2
+ import { BaseProps } from '../../types';
3
+ export type TableDensity = 'comfortable' | 'compact';
4
+ export type SortDir = 'asc' | 'desc' | null;
5
+ /** Horizontal alignment shared by `TH`, `TD`, and `TableColumn`. */
6
+ export type TableAlign = 'left' | 'center' | 'right';
7
+ export interface TableProps extends HTMLAttributes<HTMLTableElement>, BaseProps {
8
+ density?: TableDensity;
9
+ striped?: boolean;
10
+ hoverable?: boolean;
11
+ stickyHeader?: boolean;
12
+ /**
13
+ * Applied to the outer scroll container (border/background/rounding) —
14
+ * `className` is applied to the `<table>` element itself, matching where
15
+ * `ref` and the rest of `HTMLAttributes<HTMLTableElement>` land.
16
+ */
17
+ wrapperClassName?: string;
18
+ }
19
+ export interface THeadProps extends HTMLAttributes<HTMLTableSectionElement>, BaseProps {
20
+ }
21
+ export interface TBodyProps extends HTMLAttributes<HTMLTableSectionElement>, BaseProps {
22
+ }
23
+ export interface TRProps extends HTMLAttributes<HTMLTableRowElement>, BaseProps {
24
+ }
25
+ export interface THProps extends ThHTMLAttributes<HTMLTableCellElement>, BaseProps {
26
+ sortable?: boolean;
27
+ sortDir?: SortDir;
28
+ onSortChange?: (dir: SortDir) => void;
29
+ align?: TableAlign;
30
+ }
31
+ export interface TDProps extends TdHTMLAttributes<HTMLTableCellElement>, BaseProps {
32
+ align?: TableAlign;
33
+ }
34
+ export interface TableColumn<T> {
35
+ key: string;
36
+ header: ReactNode;
37
+ render?: (row: T) => ReactNode;
38
+ accessor?: (row: T) => ReactNode;
39
+ align?: TableAlign;
40
+ sortable?: boolean;
41
+ }
42
+ export interface DataTableProps<T> extends BaseProps {
43
+ columns: TableColumn<T>[];
44
+ rows: T[];
45
+ rowKey: (row: T, i: number) => string;
46
+ empty?: ReactNode;
47
+ density?: TableDensity;
48
+ striped?: boolean;
49
+ hoverable?: boolean;
50
+ sortKey?: string;
51
+ sortDir?: SortDir;
52
+ onSortChange?: (key: string, dir: SortDir) => void;
53
+ onRowClick?: (row: T) => void;
54
+ className?: string;
55
+ }
@@ -0,0 +1,2 @@
1
+ export { Table, THead, TBody, TR, TH, TD, DataTable } from './Table';
2
+ export type { TableProps, THeadProps, TBodyProps, TRProps, THProps, TDProps, TableAlign, TableColumn, DataTableProps, TableDensity, SortDir, } from './Table.types';
@@ -0,0 +1,5 @@
1
+ import { TabListProps, TabPanelProps, TabProps, TabsProps } from './Tabs.types';
2
+ export declare const Tabs: import('react').ForwardRefExoticComponent<TabsProps & import('react').RefAttributes<HTMLDivElement>>;
3
+ export declare const TabList: import('react').ForwardRefExoticComponent<TabListProps & import('react').RefAttributes<HTMLDivElement>>;
4
+ export declare const Tab: import('react').ForwardRefExoticComponent<TabProps & import('react').RefAttributes<HTMLButtonElement>>;
5
+ export declare const TabPanel: import('react').ForwardRefExoticComponent<TabPanelProps & import('react').RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,26 @@
1
+ import { ButtonHTMLAttributes, HTMLAttributes, ReactNode } from 'react';
2
+ import { BaseProps } from '../../types';
3
+ export type TabsVariant = 'underline' | 'pills' | 'boxed';
4
+ export type TabsSize = 'lg' | 'md' | 'sm';
5
+ export interface TabsProps extends HTMLAttributes<HTMLDivElement>, BaseProps {
6
+ /** Uncontrolled initial active tab value. Falls back to the first `<Tab>`'s value if omitted. */
7
+ defaultValue?: string;
8
+ /** Controlled active tab value. Pass alongside `onValueChange` to fully control which tab is active. */
9
+ value?: string;
10
+ onValueChange?: (value: string) => void;
11
+ variant?: TabsVariant;
12
+ size?: TabsSize;
13
+ }
14
+ export interface TabListProps extends HTMLAttributes<HTMLDivElement>, BaseProps {
15
+ }
16
+ export interface TabProps extends ButtonHTMLAttributes<HTMLButtonElement>, BaseProps {
17
+ /** Unique identifier matched against the parent `Tabs`'s active value. */
18
+ value: string;
19
+ icon?: ReactNode;
20
+ /** Count/indicator rendered after the label. Hidden when `undefined`, `null`, or `false`. */
21
+ badge?: ReactNode;
22
+ }
23
+ export interface TabPanelProps extends HTMLAttributes<HTMLDivElement>, BaseProps {
24
+ /** Matched against the parent `Tabs`'s active value; renders nothing (unmounted) when not active. */
25
+ value: string;
26
+ }
@@ -0,0 +1,2 @@
1
+ export { Tab, TabList, TabPanel, Tabs } from './Tabs';
2
+ export type { TabListProps, TabPanelProps, TabProps, TabsProps, TabsSize, TabsVariant, } from './Tabs.types';
@@ -0,0 +1,2 @@
1
+ import { TextProps } from './Text.types';
2
+ export declare const Text: import('react').ForwardRefExoticComponent<TextProps & import('react').RefAttributes<HTMLElement>>;
@@ -0,0 +1,15 @@
1
+ import { HTMLAttributes, ElementType } from 'react';
2
+ import { BaseProps } from '../../types';
3
+ export type TextVariant = 'h-xl' | 'h-lg' | 'h-md' | 'h-std' | 'h-sm' | 'h-xs' | 'p-lg' | 'p-md' | 'p-std' | 'p-sm' | 'p-xs' | 'label-lg' | 'label-md' | 'label-std' | 'label-sm' | 'label-xs' | 'label-xxs';
4
+ export type TextWeight = 'normal' | 'medium' | 'semibold' | 'bold';
5
+ export type TextColor = 'default' | 'secondary' | 'tertiary' | 'disabled' | 'inverse' | 'brand' | 'info' | 'success' | 'warning' | 'danger';
6
+ export interface TextProps extends HTMLAttributes<HTMLElement>, BaseProps {
7
+ /** Typographic token — pairs size + line-height from tokens.css. */
8
+ variant?: TextVariant;
9
+ weight?: TextWeight;
10
+ color?: TextColor;
11
+ /** HTML element to render. Defaults to a sensible mapping based on variant. */
12
+ as?: ElementType;
13
+ /** Truncate to a single line with ellipsis. */
14
+ truncate?: boolean;
15
+ }
@@ -0,0 +1,2 @@
1
+ export { Text } from './Text';
2
+ export type { TextProps, TextVariant, TextWeight, TextColor } from './Text.types';
@@ -0,0 +1,2 @@
1
+ import { TextAreaProps } from './TextArea.types';
2
+ export declare const TextArea: import('react').ForwardRefExoticComponent<TextAreaProps & import('react').RefAttributes<HTMLTextAreaElement>>;
@@ -0,0 +1,10 @@
1
+ import { TextareaHTMLAttributes, ReactNode } from 'react';
2
+ import { BaseProps } from '../../types';
3
+ export interface TextAreaProps extends TextareaHTMLAttributes<HTMLTextAreaElement>, BaseProps {
4
+ label?: ReactNode;
5
+ helperText?: ReactNode;
6
+ errorText?: ReactNode;
7
+ error?: boolean;
8
+ wrapperClassName?: string;
9
+ showCount?: boolean;
10
+ }
@@ -0,0 +1,2 @@
1
+ export { TextArea } from './TextArea';
2
+ export type { TextAreaProps } from './TextArea.types';
@@ -0,0 +1,2 @@
1
+ import { TooltipProps } from './Tooltip.types';
2
+ export declare const Tooltip: import('react').ForwardRefExoticComponent<TooltipProps & import('react').RefAttributes<HTMLSpanElement>>;
@@ -0,0 +1,15 @@
1
+ import { ReactElement, ReactNode } from 'react';
2
+ import { BaseProps } from '../../types';
3
+ export type TooltipSide = 'top' | 'bottom' | 'left' | 'right';
4
+ export type TooltipSize = 'lg' | 'sm';
5
+ export interface TooltipProps extends BaseProps {
6
+ /** Tooltip bubble content. */
7
+ content: ReactNode;
8
+ /** Single trigger element the tooltip attaches its hover/focus handlers to. */
9
+ children: ReactElement;
10
+ side?: TooltipSide;
11
+ size?: TooltipSize;
12
+ /** Delay in ms before the tooltip opens on hover/focus. */
13
+ delay?: number;
14
+ className?: string;
15
+ }
@@ -0,0 +1,2 @@
1
+ export { Tooltip } from './Tooltip';
2
+ export type { TooltipProps, TooltipSide, TooltipSize } from './Tooltip.types';
@@ -0,0 +1,3 @@
1
+ import { UploadItemProps, UploadProps } from './Upload.types';
2
+ export declare const Upload: import('react').ForwardRefExoticComponent<UploadProps & import('react').RefAttributes<HTMLDivElement>>;
3
+ export declare const UploadItem: import('react').ForwardRefExoticComponent<UploadItemProps & import('react').RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,24 @@
1
+ import { HTMLAttributes, ReactNode } from 'react';
2
+ import { BaseProps } from '../../types';
3
+ export interface UploadProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onClick' | 'onDrop' | 'onDragOver' | 'onDragLeave' | 'onKeyDown' | 'role' | 'tabIndex' | 'aria-disabled'>, BaseProps {
4
+ /** Forwarded to the hidden native `<input type="file">`, e.g. `"image/png,image/jpeg"`. */
5
+ accept?: string;
6
+ multiple?: boolean;
7
+ /** Shown in the default hint text (e.g. "PNG, up to 10 MB"); purely informational, not enforced. */
8
+ maxSizeMB?: number;
9
+ /** Overrides the auto-generated hint derived from `accept`/`maxSizeMB`. */
10
+ hint?: ReactNode;
11
+ onFiles?: (files: File[]) => void;
12
+ disabled?: boolean;
13
+ }
14
+ export type UploadItemStatus = 'processing' | 'completed' | 'error';
15
+ export interface UploadItemProps extends HTMLAttributes<HTMLDivElement>, BaseProps {
16
+ name: ReactNode;
17
+ meta?: ReactNode;
18
+ status?: UploadItemStatus;
19
+ /** 0-100, only rendered while `status="processing"`. */
20
+ progress?: number;
21
+ errorText?: ReactNode;
22
+ onRetry?: () => void;
23
+ onRemove?: () => void;
24
+ }
@@ -0,0 +1,2 @@
1
+ export { Upload, UploadItem } from './Upload';
2
+ export type { UploadItemProps, UploadItemStatus, UploadProps } from './Upload.types';
@@ -0,0 +1,35 @@
1
+ export * from './components/Accordion';
2
+ export * from './components/Avatar';
3
+ export * from './components/Badge';
4
+ export * from './components/Button';
5
+ export * from './components/ButtonGroup';
6
+ export * from './components/Card';
7
+ export * from './components/Checkbox';
8
+ export * from './components/DatePicker';
9
+ export * from './components/Drawer';
10
+ export * from './components/DropdownMenu';
11
+ export * from './components/Filter';
12
+ export * from './components/IconTile';
13
+ export * from './components/InfoField';
14
+ export * from './components/InlineAlert';
15
+ export * from './components/Input';
16
+ export * from './components/Modal';
17
+ export * from './components/MultiSelect';
18
+ export * from './components/NotificationBadge';
19
+ export * from './components/Pagination';
20
+ export * from './components/PersonCard';
21
+ export * from './components/Radio';
22
+ export * from './components/Select';
23
+ export * from './components/Sidebar';
24
+ export * from './components/Snackbar';
25
+ export * from './components/Status';
26
+ export * from './components/Switch';
27
+ export * from './components/Table';
28
+ export * from './components/Tabs';
29
+ export * from './components/Text';
30
+ export * from './components/TextArea';
31
+ export * from './components/Tooltip';
32
+ export * from './components/Upload';
33
+ export { cn } from './lib/cn';
34
+ export * from './tokens';
35
+ export * from './types';