@aseguragonzalez/ui 1.0.2 → 1.0.3

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 (76) hide show
  1. package/dist/components/AppShell/AppShell.d.ts +17 -0
  2. package/dist/components/Banner/Banner.d.ts +17 -0
  3. package/dist/components/BarChart/BarChart.d.ts +17 -0
  4. package/dist/components/Breadcrumb/Breadcrumb.d.ts +11 -0
  5. package/dist/components/Card/Card.d.ts +14 -0
  6. package/dist/components/Carousel/Carousel.d.ts +16 -0
  7. package/dist/components/CheckboxField/CheckboxField.d.ts +19 -0
  8. package/dist/components/Container/Container.d.ts +9 -0
  9. package/dist/components/DataTable/DataTable.d.ts +27 -0
  10. package/dist/components/DateField/DateField.d.ts +20 -0
  11. package/dist/components/DonutChart/DonutChart.d.ts +14 -0
  12. package/dist/components/EmailField/EmailField.d.ts +16 -0
  13. package/dist/components/Grid/Grid.d.ts +29 -0
  14. package/dist/components/LineChart/LineChart.d.ts +20 -0
  15. package/dist/components/Navbar/Navbar.d.ts +20 -0
  16. package/dist/components/NumberField/NumberField.d.ts +19 -0
  17. package/dist/components/PageLayout/PageLayout.d.ts +25 -0
  18. package/dist/components/PasswordField/PasswordField.d.ts +20 -0
  19. package/dist/components/PhoneField/PhoneField.d.ts +16 -0
  20. package/dist/components/RadarChart/RadarChart.d.ts +16 -0
  21. package/dist/components/RadioGroup/RadioGroup.d.ts +30 -0
  22. package/dist/components/ScatterPlot/ScatterPlot.d.ts +20 -0
  23. package/dist/components/SearchField/SearchField.d.ts +16 -0
  24. package/dist/components/Section/Section.d.ts +26 -0
  25. package/dist/components/SelectField/SelectField.d.ts +20 -0
  26. package/dist/components/Sidebar/Sidebar.d.ts +31 -0
  27. package/dist/components/Stack/Stack.d.ts +26 -0
  28. package/dist/components/TextAreaField/TextAreaField.d.ts +18 -0
  29. package/dist/components/TextField/TextField.d.ts +20 -0
  30. package/dist/components/ThemeProvider/ThemeProvider.d.ts +18 -0
  31. package/dist/components/ThemeProvider/useTheme.d.ts +1 -0
  32. package/dist/components/ToggleField/ToggleField.d.ts +16 -0
  33. package/dist/components/shared/useFieldIds.d.ts +13 -0
  34. package/dist/index.cjs +1 -1
  35. package/dist/index.css +1 -1
  36. package/dist/index.d.ts +123 -0
  37. package/dist/index.js +264 -228
  38. package/dist/patterns/AuthLayout/AuthLayout.d.ts +15 -0
  39. package/dist/patterns/ExampleApp/AppShell.d.ts +9 -0
  40. package/dist/patterns/ExampleApp/ExampleApp.d.ts +1 -0
  41. package/dist/patterns/ExampleApp/components/KpiCard.d.ts +9 -0
  42. package/dist/patterns/ExampleApp/mockData.d.ts +22 -0
  43. package/dist/patterns/ExampleApp/pages/DashboardPage.d.ts +1 -0
  44. package/dist/patterns/ExampleApp/pages/SettingsPage.d.ts +1 -0
  45. package/dist/patterns/ExampleApp/pages/UsersPage.d.ts +1 -0
  46. package/dist/primitives/Alert/Alert.d.ts +10 -0
  47. package/dist/primitives/Avatar/Avatar.d.ts +11 -0
  48. package/dist/primitives/Badge/Badge.d.ts +8 -0
  49. package/dist/primitives/Button/Button.d.ts +11 -0
  50. package/dist/primitives/Checkbox/Checkbox.d.ts +7 -0
  51. package/dist/primitives/DateInput/DateInput.d.ts +13 -0
  52. package/dist/primitives/Divider/Divider.d.ts +13 -0
  53. package/dist/primitives/EmailInput/EmailInput.d.ts +12 -0
  54. package/dist/primitives/ErrorMessage/ErrorMessage.d.ts +12 -0
  55. package/dist/primitives/Heading/Heading.d.ts +15 -0
  56. package/dist/primitives/Hint/Hint.d.ts +6 -0
  57. package/dist/primitives/Label/Label.d.ts +9 -0
  58. package/dist/primitives/Modal/Modal.d.ts +37 -0
  59. package/dist/primitives/NumberInput/NumberInput.d.ts +10 -0
  60. package/dist/primitives/PasswordInput/PasswordInput.d.ts +16 -0
  61. package/dist/primitives/PhoneInput/PhoneInput.d.ts +12 -0
  62. package/dist/primitives/ProgressBar/ProgressBar.d.ts +12 -0
  63. package/dist/primitives/RadioButton/RadioButton.d.ts +7 -0
  64. package/dist/primitives/SearchInput/SearchInput.d.ts +13 -0
  65. package/dist/primitives/Select/Select.d.ts +12 -0
  66. package/dist/primitives/Skeleton/Skeleton.d.ts +15 -0
  67. package/dist/primitives/Spinner/Spinner.d.ts +7 -0
  68. package/dist/primitives/Tabs/Tabs.d.ts +31 -0
  69. package/dist/primitives/Text/Text.d.ts +13 -0
  70. package/dist/primitives/TextArea/TextArea.d.ts +9 -0
  71. package/dist/primitives/TextInput/TextInput.d.ts +12 -0
  72. package/dist/primitives/Toast/Toast.d.ts +28 -0
  73. package/dist/primitives/Toggle/Toggle.d.ts +13 -0
  74. package/dist/primitives/Tooltip/Tooltip.d.ts +14 -0
  75. package/dist/tokens.css +381 -0
  76. package/package.json +21 -9
@@ -0,0 +1,17 @@
1
+ import type { ReactNode } from 'react';
2
+ export type AppShellVariant = 'sidebar-only' | 'navbar-only' | 'both';
3
+ export interface AppShellProps extends React.HTMLAttributes<HTMLDivElement> {
4
+ /**
5
+ * Layout variant. If omitted, auto-detected from the `sidebar` and `navbar` slots:
6
+ * both provided → `'both'`; sidebar only → `'sidebar-only'`; navbar only → `'navbar-only'`.
7
+ */
8
+ variant?: AppShellVariant;
9
+ /** Content for the sidebar slot. */
10
+ sidebar?: ReactNode;
11
+ /** Content for the top navigation slot. */
12
+ navbar?: ReactNode;
13
+ /** Main page content. Rendered inside a `<main>` element. */
14
+ children: ReactNode;
15
+ }
16
+ declare const AppShell: import("react").ForwardRefExoticComponent<AppShellProps & import("react").RefAttributes<HTMLDivElement>>;
17
+ export { AppShell };
@@ -0,0 +1,17 @@
1
+ export type BannerVariant = 'info' | 'success' | 'warning' | 'error' | 'promotional';
2
+ export type BannerLayout = 'horizontal' | 'stacked';
3
+ export interface BannerProps extends React.HTMLAttributes<HTMLDivElement> {
4
+ /** Required headline — also used as the accessible name for landmark regions. */
5
+ headline: string;
6
+ description?: string;
7
+ variant?: BannerVariant;
8
+ layout?: BannerLayout;
9
+ /** Icon or illustration override. Defaults to the variant icon. */
10
+ media?: React.ReactNode;
11
+ /** CTA buttons or links. */
12
+ actions?: React.ReactNode;
13
+ onDismiss?: () => void;
14
+ dismissLabel?: string;
15
+ }
16
+ declare const Banner: import("react").ForwardRefExoticComponent<BannerProps & import("react").RefAttributes<HTMLDivElement>>;
17
+ export { Banner };
@@ -0,0 +1,17 @@
1
+ export interface BarChartDatum {
2
+ label: string;
3
+ value: number;
4
+ }
5
+ export interface BarChartSeries {
6
+ id: string;
7
+ label: string;
8
+ data: BarChartDatum[];
9
+ color?: string;
10
+ }
11
+ export interface BarChartProps {
12
+ title: string;
13
+ series: BarChartSeries[];
14
+ className?: string;
15
+ }
16
+ declare const BarChart: import("react").ForwardRefExoticComponent<BarChartProps & import("react").RefAttributes<HTMLDivElement>>;
17
+ export { BarChart };
@@ -0,0 +1,11 @@
1
+ export interface BreadcrumbItem {
2
+ label: string;
3
+ href?: string;
4
+ }
5
+ export interface BreadcrumbProps {
6
+ items: BreadcrumbItem[];
7
+ 'aria-label'?: string;
8
+ className?: string;
9
+ }
10
+ declare const Breadcrumb: import("react").ForwardRefExoticComponent<BreadcrumbProps & import("react").RefAttributes<HTMLElement>>;
11
+ export { Breadcrumb };
@@ -0,0 +1,14 @@
1
+ export type CardVariant = 'outlined' | 'elevated' | 'flat';
2
+ export type CardPadding = 'sm' | 'md' | 'lg';
3
+ export interface CardProps extends React.HTMLAttributes<HTMLDivElement> {
4
+ variant?: CardVariant;
5
+ padding?: CardPadding;
6
+ }
7
+ type SectionProps = React.HTMLAttributes<HTMLDivElement>;
8
+ export declare const Card: import("react").ForwardRefExoticComponent<CardProps & import("react").RefAttributes<HTMLDivElement>> & {
9
+ Media: import("react").ForwardRefExoticComponent<SectionProps & import("react").RefAttributes<HTMLDivElement>>;
10
+ Header: import("react").ForwardRefExoticComponent<SectionProps & import("react").RefAttributes<HTMLDivElement>>;
11
+ Body: import("react").ForwardRefExoticComponent<SectionProps & import("react").RefAttributes<HTMLDivElement>>;
12
+ Footer: import("react").ForwardRefExoticComponent<SectionProps & import("react").RefAttributes<HTMLDivElement>>;
13
+ };
14
+ export {};
@@ -0,0 +1,16 @@
1
+ export interface CarouselProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'aria-label'> {
2
+ /** Required accessible name for the region landmark. */
3
+ 'aria-label': string;
4
+ /** Wrap around from last to first and vice versa. */
5
+ loop?: boolean;
6
+ /** Auto-advance interval in ms. Pauses on hover/focus and when prefers-reduced-motion is set. */
7
+ autoplay?: number;
8
+ /** Number of slides visible at once. */
9
+ visibleSlides?: 1 | 2 | 3;
10
+ /** Accessible label for the previous button. */
11
+ prevLabel?: string;
12
+ /** Accessible label for the next button. */
13
+ nextLabel?: string;
14
+ }
15
+ declare const Carousel: import("react").ForwardRefExoticComponent<CarouselProps & import("react").RefAttributes<HTMLDivElement>>;
16
+ export { Carousel };
@@ -0,0 +1,19 @@
1
+ import { type CheckboxSize } from '../../primitives/Checkbox/Checkbox';
2
+ export interface CheckboxFieldProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'size' | 'id'> {
3
+ /** Visible label text adjacent to the checkbox. */
4
+ label: React.ReactNode;
5
+ hint?: string;
6
+ error?: string;
7
+ size?: CheckboxSize;
8
+ inputId?: string;
9
+ }
10
+ /**
11
+ * Composite: Checkbox + inline label + optional hint/error.
12
+ * Layout: [☑] Label text
13
+ * hint or error below
14
+ *
15
+ * For groups of checkboxes, compose several CheckboxField inside a
16
+ * <fieldset> + <legend> at the page level.
17
+ */
18
+ declare const CheckboxField: import("react").ForwardRefExoticComponent<CheckboxFieldProps & import("react").RefAttributes<HTMLInputElement>>;
19
+ export { CheckboxField };
@@ -0,0 +1,9 @@
1
+ export type ContainerSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';
2
+ export interface ContainerProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ /** Max-width breakpoint. Defaults to "lg". */
4
+ size?: ContainerSize;
5
+ /** Apply horizontal padding. Defaults to true. */
6
+ padding?: boolean;
7
+ }
8
+ declare const Container: import("react").ForwardRefExoticComponent<ContainerProps & import("react").RefAttributes<HTMLDivElement>>;
9
+ export { Container };
@@ -0,0 +1,27 @@
1
+ export type SortDirection = 'asc' | 'desc';
2
+ export interface TableColumn<TRow extends Record<string, unknown> = Record<string, unknown>> {
3
+ key: string;
4
+ header: string;
5
+ sortable?: boolean;
6
+ align?: 'left' | 'center' | 'right';
7
+ render?: (value: unknown, row: TRow) => React.ReactNode;
8
+ }
9
+ export interface DataTableProps<TRow extends Record<string, unknown> = Record<string, unknown>> {
10
+ caption: string;
11
+ columns: TableColumn<TRow>[];
12
+ data: TRow[];
13
+ defaultSortKey?: string;
14
+ defaultSortDirection?: SortDirection;
15
+ /** Controlled sort key */
16
+ sortKey?: string;
17
+ /** Controlled sort direction */
18
+ sortDirection?: SortDirection;
19
+ onSort?: (key: string, direction: SortDirection) => void;
20
+ /** Field name used as stable React key for rows. Strongly recommended to avoid index-key issues when sorting. */
21
+ rowKey?: keyof TRow;
22
+ /** Message shown when data array is empty */
23
+ emptyMessage?: string;
24
+ className?: string;
25
+ }
26
+ declare const DataTable: <TRow extends Record<string, unknown> = Record<string, unknown>>(props: DataTableProps<TRow> & React.RefAttributes<HTMLDivElement>) => React.ReactElement | null;
27
+ export { DataTable };
@@ -0,0 +1,20 @@
1
+ import { type DateInputSize } from '../../primitives/DateInput/DateInput';
2
+ export interface DateFieldProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'size' | 'id'> {
3
+ /** Visible label text. Always required — never use placeholder as a label. */
4
+ label: string;
5
+ /** Helper text shown below the input when there is no error. */
6
+ hint?: string;
7
+ /** Validation error. Replaces hint when present. */
8
+ error?: string;
9
+ size?: DateInputSize;
10
+ /** Marks the field as required visually and via aria-required. */
11
+ required?: boolean;
12
+ /** Custom id for the input. Auto-generated if omitted. */
13
+ inputId?: string;
14
+ /** ISO 8601 (YYYY-MM-DD) */
15
+ min?: string;
16
+ /** ISO 8601 (YYYY-MM-DD) */
17
+ max?: string;
18
+ }
19
+ declare const DateField: import("react").ForwardRefExoticComponent<DateFieldProps & import("react").RefAttributes<HTMLInputElement>>;
20
+ export { DateField };
@@ -0,0 +1,14 @@
1
+ export interface DonutSegment {
2
+ label: string;
3
+ value: number;
4
+ color?: string;
5
+ }
6
+ export interface DonutChartProps {
7
+ title: string;
8
+ segments: DonutSegment[];
9
+ centerLabel?: string;
10
+ centerSubLabel?: string;
11
+ className?: string;
12
+ }
13
+ declare const DonutChart: import("react").ForwardRefExoticComponent<DonutChartProps & import("react").RefAttributes<SVGSVGElement>>;
14
+ export { DonutChart };
@@ -0,0 +1,16 @@
1
+ import { type EmailInputSize } from '../../primitives/EmailInput/EmailInput';
2
+ export interface EmailFieldProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'size' | 'id'> {
3
+ /** Visible label text. Always required — never use placeholder as a label. */
4
+ label: string;
5
+ /** Helper text shown below the input when there is no error. */
6
+ hint?: string;
7
+ /** Validation error. Replaces hint when present. */
8
+ error?: string;
9
+ size?: EmailInputSize;
10
+ /** Marks the field as required visually and via aria-required. */
11
+ required?: boolean;
12
+ /** Custom id for the input. Auto-generated if omitted. */
13
+ inputId?: string;
14
+ }
15
+ declare const EmailField: import("react").ForwardRefExoticComponent<EmailFieldProps & import("react").RefAttributes<HTMLInputElement>>;
16
+ export { EmailField };
@@ -0,0 +1,29 @@
1
+ declare const spaceMap: {
2
+ readonly 0: "0";
3
+ readonly 1: "var(--ds-space-1)";
4
+ readonly 2: "var(--ds-space-2)";
5
+ readonly 3: "var(--ds-space-3)";
6
+ readonly 4: "var(--ds-space-4)";
7
+ readonly 5: "var(--ds-space-5)";
8
+ readonly 6: "var(--ds-space-6)";
9
+ readonly 8: "var(--ds-space-8)";
10
+ readonly 10: "var(--ds-space-10)";
11
+ readonly 12: "var(--ds-space-12)";
12
+ readonly 16: "var(--ds-space-16)";
13
+ };
14
+ export type GridSpacingKey = keyof typeof spaceMap;
15
+ export type GridCols = 1 | 2 | 3 | 4 | 5 | 6 | 12;
16
+ export type ResponsiveGridCols = {
17
+ mobile?: GridCols;
18
+ tablet?: GridCols;
19
+ desktop?: GridCols;
20
+ };
21
+ export interface GridProps extends React.HTMLAttributes<HTMLDivElement> {
22
+ cols?: GridCols | ResponsiveGridCols;
23
+ gap?: GridSpacingKey;
24
+ /** Independent column and row gap. Overrides `gap` if provided. */
25
+ columnGap?: GridSpacingKey;
26
+ rowGap?: GridSpacingKey;
27
+ }
28
+ declare const Grid: import("react").ForwardRefExoticComponent<GridProps & import("react").RefAttributes<HTMLDivElement>>;
29
+ export { Grid };
@@ -0,0 +1,20 @@
1
+ export interface LineChartDatum {
2
+ label: string;
3
+ value: number;
4
+ }
5
+ export interface LineChartSeries {
6
+ id: string;
7
+ label: string;
8
+ data: LineChartDatum[];
9
+ color?: string;
10
+ showArea?: boolean;
11
+ }
12
+ export interface LineChartProps {
13
+ title: string;
14
+ series: LineChartSeries[];
15
+ /** Applies area fill to all series that don't specify their own showArea */
16
+ showArea?: boolean;
17
+ className?: string;
18
+ }
19
+ declare const LineChart: import("react").ForwardRefExoticComponent<LineChartProps & import("react").RefAttributes<HTMLDivElement>>;
20
+ export { LineChart };
@@ -0,0 +1,20 @@
1
+ export interface NavItem {
2
+ key: string;
3
+ label: string;
4
+ href?: string;
5
+ isActive?: boolean;
6
+ onClick?: () => void;
7
+ }
8
+ export interface NavbarProps {
9
+ brand?: React.ReactNode;
10
+ items?: NavItem[];
11
+ actions?: React.ReactNode;
12
+ sticky?: boolean;
13
+ 'aria-label'?: string;
14
+ defaultMobileOpen?: boolean;
15
+ isMobileOpen?: boolean;
16
+ onMobileOpenChange?: (open: boolean) => void;
17
+ className?: string;
18
+ }
19
+ declare const Navbar: import("react").ForwardRefExoticComponent<NavbarProps & import("react").RefAttributes<HTMLElement>>;
20
+ export { Navbar };
@@ -0,0 +1,19 @@
1
+ import { type NumberInputSize } from '../../primitives/NumberInput/NumberInput';
2
+ export interface NumberFieldProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'size' | 'id'> {
3
+ /** Visible label text. Always required — never use placeholder as a label. */
4
+ label: string;
5
+ /** Helper text shown below the input when there is no error. */
6
+ hint?: string;
7
+ /** Validation error. Replaces hint when present. */
8
+ error?: string;
9
+ size?: NumberInputSize;
10
+ /** Marks the field as required visually and via aria-required. */
11
+ required?: boolean;
12
+ /** Custom id for the input. Auto-generated if omitted. */
13
+ inputId?: string;
14
+ min?: number;
15
+ max?: number;
16
+ step?: number;
17
+ }
18
+ declare const NumberField: import("react").ForwardRefExoticComponent<NumberFieldProps & import("react").RefAttributes<HTMLInputElement>>;
19
+ export { NumberField };
@@ -0,0 +1,25 @@
1
+ declare const spaceMap: {
2
+ readonly 0: "0";
3
+ readonly 1: "var(--ds-space-1)";
4
+ readonly 2: "var(--ds-space-2)";
5
+ readonly 3: "var(--ds-space-3)";
6
+ readonly 4: "var(--ds-space-4)";
7
+ readonly 5: "var(--ds-space-5)";
8
+ readonly 6: "var(--ds-space-6)";
9
+ readonly 8: "var(--ds-space-8)";
10
+ readonly 10: "var(--ds-space-10)";
11
+ readonly 12: "var(--ds-space-12)";
12
+ readonly 16: "var(--ds-space-16)";
13
+ };
14
+ type PageLayoutSpacingKey = keyof typeof spaceMap;
15
+ export type PageLayoutSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';
16
+ export interface PageLayoutProps extends React.HTMLAttributes<HTMLDivElement> {
17
+ /** Maximum width of the content area. Defaults to `'xl'` (1280px). */
18
+ maxWidth?: PageLayoutSize;
19
+ /** Apply horizontal and vertical padding. Defaults to `true`. */
20
+ padding?: boolean;
21
+ /** Gap between direct children. Defaults to `6`. */
22
+ gap?: PageLayoutSpacingKey;
23
+ }
24
+ declare const PageLayout: import("react").ForwardRefExoticComponent<PageLayoutProps & import("react").RefAttributes<HTMLDivElement>>;
25
+ export { PageLayout };
@@ -0,0 +1,20 @@
1
+ import { type PasswordInputSize } from '../../primitives/PasswordInput/PasswordInput';
2
+ export interface PasswordFieldProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'size' | 'id'> {
3
+ /** Visible label text. Always required — never use placeholder as a label. */
4
+ label: string;
5
+ /** Helper text shown below the input when there is no error. */
6
+ hint?: string;
7
+ /** Validation error. Replaces hint when present. */
8
+ error?: string;
9
+ size?: PasswordInputSize;
10
+ /** Marks the field as required visually and via aria-required. */
11
+ required?: boolean;
12
+ /** Accessible label for the "show password" button state. */
13
+ showPasswordLabel?: string;
14
+ /** Accessible label for the "hide password" button state. */
15
+ hidePasswordLabel?: string;
16
+ /** Custom id for the input. Auto-generated if omitted. */
17
+ inputId?: string;
18
+ }
19
+ declare const PasswordField: import("react").ForwardRefExoticComponent<PasswordFieldProps & import("react").RefAttributes<HTMLInputElement>>;
20
+ export { PasswordField };
@@ -0,0 +1,16 @@
1
+ import { type PhoneInputSize } from '../../primitives/PhoneInput/PhoneInput';
2
+ export interface PhoneFieldProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'size' | 'id'> {
3
+ /** Visible label text. Always required — never use placeholder as a label. */
4
+ label: string;
5
+ /** Helper text shown below the input when there is no error. */
6
+ hint?: string;
7
+ /** Validation error. Replaces hint when present. */
8
+ error?: string;
9
+ size?: PhoneInputSize;
10
+ /** Marks the field as required visually and via aria-required. */
11
+ required?: boolean;
12
+ /** Custom id for the input. Auto-generated if omitted. */
13
+ inputId?: string;
14
+ }
15
+ declare const PhoneField: import("react").ForwardRefExoticComponent<PhoneFieldProps & import("react").RefAttributes<HTMLInputElement>>;
16
+ export { PhoneField };
@@ -0,0 +1,16 @@
1
+ export interface RadarSeries {
2
+ id: string;
3
+ label: string;
4
+ values: number[];
5
+ color?: string;
6
+ }
7
+ export interface RadarChartProps {
8
+ title: string;
9
+ axes: string[];
10
+ series: RadarSeries[];
11
+ /** Explicit max value; defaults to the max across all series */
12
+ maxValue?: number;
13
+ className?: string;
14
+ }
15
+ declare const RadarChart: import("react").ForwardRefExoticComponent<RadarChartProps & import("react").RefAttributes<HTMLDivElement>>;
16
+ export { RadarChart };
@@ -0,0 +1,30 @@
1
+ import { type RadioButtonSize } from '../../primitives/RadioButton/RadioButton';
2
+ export interface RadioOption {
3
+ value: string;
4
+ label: string;
5
+ disabled?: boolean;
6
+ }
7
+ export interface RadioGroupProps {
8
+ /** Group label — rendered as <legend> inside <fieldset>. */
9
+ legend: string;
10
+ name: string;
11
+ options: RadioOption[];
12
+ value?: string;
13
+ defaultValue?: string;
14
+ onChange?: (value: string) => void;
15
+ hint?: string;
16
+ error?: string;
17
+ required?: boolean;
18
+ disabled?: boolean;
19
+ size?: RadioButtonSize;
20
+ className?: string;
21
+ }
22
+ /**
23
+ * Composite radio group using <fieldset> + <legend> — the WCAG-correct
24
+ * pattern for grouped form controls. Each option gets its own <label>.
25
+ */
26
+ declare function RadioGroup({ legend, name, options, value, defaultValue, onChange, hint, error, required, disabled, size, className, }: RadioGroupProps): import("react").JSX.Element;
27
+ declare namespace RadioGroup {
28
+ var displayName: string;
29
+ }
30
+ export { RadioGroup };
@@ -0,0 +1,20 @@
1
+ export interface ScatterDatum {
2
+ x: number;
3
+ y: number;
4
+ label?: string;
5
+ }
6
+ export interface ScatterSeries {
7
+ id: string;
8
+ label: string;
9
+ data: ScatterDatum[];
10
+ color?: string;
11
+ }
12
+ export interface ScatterPlotProps {
13
+ title: string;
14
+ series: ScatterSeries[];
15
+ xLabel?: string;
16
+ yLabel?: string;
17
+ className?: string;
18
+ }
19
+ declare const ScatterPlot: import("react").ForwardRefExoticComponent<ScatterPlotProps & import("react").RefAttributes<HTMLDivElement>>;
20
+ export { ScatterPlot };
@@ -0,0 +1,16 @@
1
+ import { type SearchInputSize } from '../../primitives/SearchInput/SearchInput';
2
+ export interface SearchFieldProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'size' | 'id'> {
3
+ /** Visible label text. Always required — never use placeholder as a label. */
4
+ label: string;
5
+ /** Helper text shown below the input when there is no error. */
6
+ hint?: string;
7
+ /** Validation error. Replaces hint when present. */
8
+ error?: string;
9
+ size?: SearchInputSize;
10
+ /** Marks the field as required visually and via aria-required. */
11
+ required?: boolean;
12
+ /** Custom id for the input. Auto-generated if omitted. */
13
+ inputId?: string;
14
+ }
15
+ declare const SearchField: import("react").ForwardRefExoticComponent<SearchFieldProps & import("react").RefAttributes<HTMLInputElement>>;
16
+ export { SearchField };
@@ -0,0 +1,26 @@
1
+ declare const spaceMap: {
2
+ readonly 0: "0";
3
+ readonly 1: "var(--ds-space-1)";
4
+ readonly 2: "var(--ds-space-2)";
5
+ readonly 3: "var(--ds-space-3)";
6
+ readonly 4: "var(--ds-space-4)";
7
+ readonly 5: "var(--ds-space-5)";
8
+ readonly 6: "var(--ds-space-6)";
9
+ readonly 8: "var(--ds-space-8)";
10
+ readonly 10: "var(--ds-space-10)";
11
+ readonly 12: "var(--ds-space-12)";
12
+ readonly 16: "var(--ds-space-16)";
13
+ };
14
+ type SectionSpacingKey = keyof typeof spaceMap;
15
+ export type SectionVariant = 'surface' | 'flat';
16
+ export type SectionPadding = 'none' | 'sm' | 'md' | 'lg';
17
+ export interface SectionProps extends React.HTMLAttributes<HTMLDivElement> {
18
+ /** Visual treatment. `surface` = bg + border + shadow; `flat` = subtle bg only. */
19
+ variant?: SectionVariant;
20
+ /** Inner padding. Defaults to `'md'`. */
21
+ padding?: SectionPadding;
22
+ /** Gap between child elements. Defaults to `4`. */
23
+ gap?: SectionSpacingKey;
24
+ }
25
+ declare const Section: import("react").ForwardRefExoticComponent<SectionProps & import("react").RefAttributes<HTMLDivElement>>;
26
+ export { Section };
@@ -0,0 +1,20 @@
1
+ import { type SelectSize } from '../../primitives/Select/Select';
2
+ export interface SelectOption {
3
+ value: string;
4
+ label: string;
5
+ disabled?: boolean;
6
+ }
7
+ export interface SelectFieldProps extends Omit<React.SelectHTMLAttributes<HTMLSelectElement>, 'size' | 'id'> {
8
+ label: string;
9
+ /** Structured options — use this OR children, not both. */
10
+ options?: SelectOption[];
11
+ /** Placeholder option shown when no value is selected. */
12
+ placeholder?: string;
13
+ hint?: string;
14
+ error?: string;
15
+ size?: SelectSize;
16
+ required?: boolean;
17
+ inputId?: string;
18
+ }
19
+ declare const SelectField: import("react").ForwardRefExoticComponent<SelectFieldProps & import("react").RefAttributes<HTMLSelectElement>>;
20
+ export { SelectField };
@@ -0,0 +1,31 @@
1
+ export interface SidebarItem {
2
+ key: string;
3
+ label: string;
4
+ icon?: React.ReactNode;
5
+ href?: string;
6
+ isActive?: boolean;
7
+ onClick?: () => void;
8
+ }
9
+ export interface SidebarProps {
10
+ items: SidebarItem[];
11
+ /** Always-visible slot — shown even when sidebar is collapsed. Ideal for a logo/icon. */
12
+ logo?: React.ReactNode;
13
+ /** Text/content slot — fades out when collapsed. Shown next to the logo. */
14
+ header?: React.ReactNode;
15
+ /** Pinned to the bottom of the panel, above the collapse button. */
16
+ footer?: React.ReactNode;
17
+ 'aria-label'?: string;
18
+ /** Desktop collapse — uncontrolled default */
19
+ defaultCollapsed?: boolean;
20
+ /** Desktop collapse — controlled */
21
+ isCollapsed?: boolean;
22
+ onCollapsedChange?: (collapsed: boolean) => void;
23
+ /** Mobile drawer — uncontrolled default */
24
+ defaultMobileOpen?: boolean;
25
+ /** Mobile drawer — controlled */
26
+ isMobileOpen?: boolean;
27
+ onMobileOpenChange?: (open: boolean) => void;
28
+ className?: string;
29
+ }
30
+ declare const Sidebar: import("react").ForwardRefExoticComponent<SidebarProps & import("react").RefAttributes<HTMLElement>>;
31
+ export { Sidebar };
@@ -0,0 +1,26 @@
1
+ declare const spaceMap: {
2
+ readonly 0: "0";
3
+ readonly 1: "var(--ds-space-1)";
4
+ readonly 2: "var(--ds-space-2)";
5
+ readonly 3: "var(--ds-space-3)";
6
+ readonly 4: "var(--ds-space-4)";
7
+ readonly 5: "var(--ds-space-5)";
8
+ readonly 6: "var(--ds-space-6)";
9
+ readonly 8: "var(--ds-space-8)";
10
+ readonly 10: "var(--ds-space-10)";
11
+ readonly 12: "var(--ds-space-12)";
12
+ readonly 16: "var(--ds-space-16)";
13
+ };
14
+ export type SpacingKey = keyof typeof spaceMap;
15
+ export type StackDirection = 'row' | 'column';
16
+ export type StackAlign = 'start' | 'center' | 'end' | 'stretch' | 'baseline';
17
+ export type StackJustify = 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly';
18
+ export interface StackProps extends React.HTMLAttributes<HTMLDivElement> {
19
+ direction?: StackDirection;
20
+ gap?: SpacingKey;
21
+ align?: StackAlign;
22
+ justify?: StackJustify;
23
+ wrap?: boolean;
24
+ }
25
+ declare const Stack: import("react").ForwardRefExoticComponent<StackProps & import("react").RefAttributes<HTMLDivElement>>;
26
+ export { Stack };
@@ -0,0 +1,18 @@
1
+ import { type TextAreaSize } from '../../primitives/TextArea/TextArea';
2
+ export interface TextAreaFieldProps extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, 'size' | 'id'> {
3
+ /** Visible label text. Always required — never use placeholder as a label. */
4
+ label: string;
5
+ /** Helper text shown below the textarea when there is no error. */
6
+ hint?: string;
7
+ /** Validation error. Replaces hint when present. */
8
+ error?: string;
9
+ size?: TextAreaSize;
10
+ /** Marks the field as required visually and via aria-required. */
11
+ required?: boolean;
12
+ /** Grows to fit content; disables the manual resize handle. */
13
+ autoResize?: boolean;
14
+ /** Custom id for the textarea. Auto-generated if omitted. */
15
+ inputId?: string;
16
+ }
17
+ declare const TextAreaField: import("react").ForwardRefExoticComponent<TextAreaFieldProps & import("react").RefAttributes<HTMLTextAreaElement>>;
18
+ export { TextAreaField };
@@ -0,0 +1,20 @@
1
+ import { type TextInputSize } from '../../primitives/TextInput/TextInput';
2
+ export interface TextFieldProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'size' | 'id'> {
3
+ /** Visible label text. Always required — never use placeholder as a label. */
4
+ label: string;
5
+ /** Helper text shown below the input when there is no error. */
6
+ hint?: string;
7
+ /** Validation error. Replaces hint when present. */
8
+ error?: string;
9
+ size?: TextInputSize;
10
+ /** Marks the field as required visually and via aria-required. */
11
+ required?: boolean;
12
+ /** Custom id for the input. Auto-generated if omitted. */
13
+ inputId?: string;
14
+ }
15
+ /**
16
+ * Composite field: Label + TextInput + Hint/Error.
17
+ * Manages all accessibility wiring (htmlFor, aria-describedby, aria-invalid, aria-required).
18
+ */
19
+ declare const TextField: import("react").ForwardRefExoticComponent<TextFieldProps & import("react").RefAttributes<HTMLInputElement>>;
20
+ export { TextField };
@@ -0,0 +1,18 @@
1
+ import { type ReactNode } from 'react';
2
+ export type Theme = 'light' | 'dark' | 'system';
3
+ export type ResolvedTheme = 'light' | 'dark';
4
+ export interface ThemeContextValue {
5
+ theme: Theme;
6
+ resolvedTheme: ResolvedTheme;
7
+ setTheme: (theme: Theme) => void;
8
+ }
9
+ export interface ThemeProviderProps {
10
+ children: ReactNode;
11
+ defaultTheme?: Theme;
12
+ storageKey?: string;
13
+ }
14
+ export declare const ThemeContext: import("react").Context<ThemeContextValue | null>;
15
+ export declare function ThemeProvider({ children, defaultTheme, storageKey, }: ThemeProviderProps): import("react").JSX.Element;
16
+ export declare namespace ThemeProvider {
17
+ var displayName: string;
18
+ }
@@ -0,0 +1 @@
1
+ export declare function useTheme(): import("./ThemeProvider").ThemeContextValue;