@texturehq/edges 1.17.0 → 1.18.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/dist/index.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- import { Key, ValidationResult, BreadcrumbProps, BreadcrumbsProps, ButtonProps as ButtonProps$1, DateValue, CalendarProps as CalendarProps$1, CheckboxProps as CheckboxProps$1, CheckboxRenderProps, CheckboxGroupProps as CheckboxGroupProps$1, DisclosurePanelProps, DisclosureProps, DisclosureGroupProps, DateRangePickerProps as DateRangePickerProps$1, TextProps, FormProps, ListBoxProps as ListBoxProps$1, ListBoxItemProps, ModalOverlayProps, NumberFieldProps as NumberFieldProps$1, PopoverProps as PopoverProps$1, ProgressBarProps as ProgressBarProps$1, RadioProps, RadioGroupProps as RadioGroupProps$1, RangeCalendarProps as RangeCalendarProps$1, SelectProps as SelectProps$1, SwitchProps as SwitchProps$1, TabProps as TabProps$1, TabListProps as TabListProps$1, TabPanelProps, TabsProps as TabsProps$2, TextFieldProps as TextFieldProps$1, TimeFieldProps as TimeFieldProps$1, TimeValue, TooltipProps as TooltipProps$1 } from 'react-aria-components';
1
+ import { Key, ValidationResult, BreadcrumbProps, BreadcrumbsProps, ButtonProps as ButtonProps$1, DateValue, CalendarProps as CalendarProps$1, CheckboxProps as CheckboxProps$1, CheckboxRenderProps, CheckboxGroupProps as CheckboxGroupProps$1, DisclosurePanelProps, DisclosureProps, DisclosureGroupProps, TextProps, TextFieldProps as TextFieldProps$1, DateRangePickerProps as DateRangePickerProps$1, FormProps, ListBoxProps as ListBoxProps$1, ListBoxItemProps, ModalOverlayProps, NumberFieldProps as NumberFieldProps$1, PopoverProps as PopoverProps$1, ProgressBarProps as ProgressBarProps$1, RadioProps, RadioGroupProps as RadioGroupProps$1, RangeCalendarProps as RangeCalendarProps$1, SelectProps as SelectProps$1, SwitchProps as SwitchProps$1, TabProps as TabProps$1, TabListProps as TabListProps$1, TabPanelProps, TabsProps as TabsProps$2, TimeFieldProps as TimeFieldProps$1, TimeValue, TooltipProps as TooltipProps$1 } from 'react-aria-components';
2
2
  export { BreadcrumbProps, BreadcrumbsProps, DialogTrigger } from 'react-aria-components';
3
3
  import * as React$1 from 'react';
4
- import React__default, { RefObject, HTMLAttributes, ReactNode, ComponentProps, CSSProperties, ComponentType, Component, ErrorInfo } from 'react';
5
- import { F as FieldValue, B as BooleanFormat, a as FormattedValue, C as CurrentFormat, D as DateFormat, b as DistanceFormat, E as EnergyFormat, c as CurrencyFormat, N as NumberFormat, P as PhoneFormat, d as PowerFormat, e as FormatterFunction, R as ResistanceFormat, T as TemperatureUnitString, f as TemperatureUnit, g as TemperatureFormat, h as TextFormat, V as VoltageFormat, i as FieldFormat, j as BaseDataPoint, I as Icon, k as BadgeProps, Y as YFormatType, l as TooltipData, m as IconName$3, n as DeviceState, G as GridState, o as ComponentFormatter, L as LayerSpec, p as CustomPinsSpec, q as GeoJsonLayerSpec, r as RasterLayerSpec, s as VectorLayerSpec, t as ClusteredVectorLayerSpec } from './colors-wUwMI6WH.js';
6
- export { A as ActionItem, v as ActionMenu, u as ActionMenuProps, x as AppShell, w as AppShellProps, z as Avatar, y as AvatarProps, H as Badge, aN as BaseFormat, au as ChartContext, aw as ChartMargin, O as CodeEditor, J as CodeEditorProps, K as CodeLanguage, M as CodeTheme, $ as ColorSpec, aK as ComponentFormatOptions, aV as CurrentUnit, aY as CustomFormat, S as DateField, Q as DateFieldProps, aR as DateFormatStyle, aX as DistanceUnit, ap as ENTITY_CONFIG, aS as EnergyUnit, an as EntityConfig, ao as EntityType, W as FileUpload, U as FileUploadProps, X as Heading, a7 as InteractiveMap, a0 as InteractiveMapProps, a1 as LayerFeature, a2 as LayerStyle, Z as Loader, _ as Logo, a8 as MAP_TYPES, a3 as MapPoint, ab as Meter, aa as MeterProps, aZ as MetricFormat, aQ as PercentageFormat, aT as PowerUnit, a4 as RenderType, aW as ResistanceUnit, ad as RichTextEditor, ac as RichTextEditorProps, af as SegmentOption, ag as SegmentedControl, ae as SegmentedControlProps, aj as SideNav, ah as SideNavItem, ai as SideNavProps, a9 as StaticMap, a5 as StaticMapProps, ak as TextLink, aO as TextTransform, aP as TextTruncatePosition, at as TooltipSeries, am as TopNav, al as TopNavProps, aU as VoltageUnit, aB as YFormatSettings, a6 as ZoomStops, a$ as activeDeviceStates, aC as clearColorCache, aD as createCategoryColorMap, ax as createXScale, ay as createYScale, az as defaultMargin, b0 as deviceStateLabels, a_ as deviceStateMetricFormats, aL as formatComponentValue, aE as getContrastingTextColor, aF as getDefaultChartColor, aG as getDefaultColors, b2 as getDeviceStateDisplayLabel, b2 as getDeviceStateLabel, aq as getEntityConfig, ar as getEntityIcon, as as getEntityLabel, b4 as getGridStateLabel, aH as getResolvedColor, aI as getThemeCategoricalColors, aA as getYFormatSettings, b3 as gridStateLabels, b1 as isActiveDeviceState, b1 as isActiveState, aJ as isLightColor, av as useChartContext, aM as useComponentFormatter } from './colors-wUwMI6WH.js';
4
+ import React__default, { RefObject, HTMLAttributes, ReactNode, ComponentProps, ComponentType, CSSProperties, Component, ErrorInfo } from 'react';
5
+ import { F as FieldValue, B as BooleanFormat, a as FormattedValue, C as CurrentFormat, D as DateFormat, b as DistanceFormat, E as EnergyFormat, c as CurrencyFormat, N as NumberFormat, P as PhoneFormat, d as PowerFormat, e as FormatterFunction, R as ResistanceFormat, T as TemperatureUnitString, f as TemperatureUnit, g as TemperatureFormat, h as TextFormat, V as VoltageFormat, i as FieldFormat, j as BaseDataPoint, I as Icon, k as BadgeProps, Y as YFormatType, l as TooltipData, m as IconName$3, n as DeviceState, G as GridState, o as ComponentFormatter, L as LayerSpec, p as CustomPinsSpec, q as GeoJsonLayerSpec, r as RasterLayerSpec, s as VectorLayerSpec, t as ClusteredVectorLayerSpec } from './colors-Kck1-4Zq.js';
6
+ export { A as ActionItem, v as ActionMenu, u as ActionMenuProps, x as AppShell, w as AppShellProps, z as Avatar, y as AvatarProps, H as Badge, aN as BaseFormat, au as ChartContext, aw as ChartMargin, O as CodeEditor, J as CodeEditorProps, K as CodeLanguage, M as CodeTheme, $ as ColorSpec, aK as ComponentFormatOptions, aV as CurrentUnit, aY as CustomFormat, S as DateField, Q as DateFieldProps, aR as DateFormatStyle, aX as DistanceUnit, ap as ENTITY_CONFIG, aS as EnergyUnit, an as EntityConfig, ao as EntityType, W as FileUpload, U as FileUploadProps, X as Heading, a7 as InteractiveMap, a0 as InteractiveMapProps, a1 as LayerFeature, a2 as LayerStyle, Z as Loader, _ as Logo, a8 as MAP_TYPES, a3 as MapPoint, ab as Meter, aa as MeterProps, aZ as MetricFormat, aQ as PercentageFormat, aT as PowerUnit, a4 as RenderType, aW as ResistanceUnit, ad as RichTextEditor, ac as RichTextEditorProps, af as SegmentOption, ag as SegmentedControl, ae as SegmentedControlProps, aj as SideNav, ah as SideNavItem, ai as SideNavProps, a9 as StaticMap, a5 as StaticMapProps, ak as TextLink, aO as TextTransform, aP as TextTruncatePosition, at as TooltipSeries, am as TopNav, al as TopNavProps, aU as VoltageUnit, aB as YFormatSettings, a6 as ZoomStops, a$ as activeDeviceStates, aC as clearColorCache, aD as createCategoryColorMap, ax as createXScale, ay as createYScale, az as defaultMargin, b0 as deviceStateLabels, a_ as deviceStateMetricFormats, aL as formatComponentValue, aE as getContrastingTextColor, aF as getDefaultChartColor, aG as getDefaultColors, b2 as getDeviceStateDisplayLabel, b2 as getDeviceStateLabel, aq as getEntityConfig, ar as getEntityIcon, as as getEntityLabel, b4 as getGridStateLabel, aH as getResolvedColor, aI as getThemeCategoricalColors, aA as getYFormatSettings, b3 as gridStateLabels, b1 as isActiveDeviceState, b1 as isActiveState, aJ as isLightColor, av as useChartContext, aM as useComponentFormatter } from './colors-Kck1-4Zq.js';
7
7
  import { Virtualizer } from '@tanstack/react-virtual';
8
8
  import * as react_jsx_runtime from 'react/jsx-runtime';
9
9
  import { ScaleTime, ScaleLinear } from 'd3-scale';
@@ -1781,6 +1781,253 @@ declare namespace CollapseContent {
1781
1781
  var displayName: string;
1782
1782
  }
1783
1783
 
1784
+ interface InputStyleProps {
1785
+ /** Whether the input is in an invalid state */
1786
+ isInvalid?: boolean;
1787
+ /** Whether the input is disabled */
1788
+ isDisabled?: boolean;
1789
+ /** Whether the input should have a transparent background */
1790
+ transparent?: boolean;
1791
+ /** The size variant of the input */
1792
+ size?: Size;
1793
+ /** Whether the input is currently focused */
1794
+ isFocused?: boolean;
1795
+ /** Additional CSS classes to apply */
1796
+ className?: string;
1797
+ }
1798
+ interface BaseProps {
1799
+ /** The size variant of the component */
1800
+ size?: Size;
1801
+ /** Additional CSS classes to apply */
1802
+ className?: string;
1803
+ }
1804
+ interface BaseInputProps extends BaseProps {
1805
+ /** Whether the input should have a transparent background */
1806
+ transparent?: boolean;
1807
+ /** Whether to show a clear button when the input has a value */
1808
+ isClearable?: boolean;
1809
+ /** Callback when the clear button is clicked */
1810
+ onClear?: () => void;
1811
+ /** Whether to show a search icon */
1812
+ showSearchIcon?: boolean;
1813
+ }
1814
+ interface LabelProps extends BaseProps {
1815
+ /** The label content */
1816
+ children: React__default.ReactNode;
1817
+ /** Optional tooltip text to show next to the label */
1818
+ tooltip?: string;
1819
+ /** Whether to show a required field indicator (*) */
1820
+ isRequired?: boolean;
1821
+ /** The ID of the input this label is associated with */
1822
+ htmlFor?: string;
1823
+ }
1824
+ interface FieldErrorProps extends BaseProps {
1825
+ /** The error message to display */
1826
+ children: React__default.ReactNode;
1827
+ }
1828
+ interface InputProps extends Omit<React__default.InputHTMLAttributes<HTMLInputElement>, "size">, InputStyleProps {
1829
+ /** The size variant of the input */
1830
+ size?: Size;
1831
+ }
1832
+ interface DescriptionProps extends Omit<TextProps, "className">, BaseProps {
1833
+ /** The description content */
1834
+ children: React__default.ReactNode;
1835
+ }
1836
+ interface FieldGroupProps extends Omit<React__default.HTMLAttributes<HTMLDivElement>, "children">, InputStyleProps {
1837
+ /** Whether any child of the group is focused */
1838
+ isFocusWithin?: boolean;
1839
+ /** Children can be either a ReactNode or a render function */
1840
+ children?: React__default.ReactNode | ((props: InputStyleProps) => React__default.ReactNode);
1841
+ }
1842
+ /**
1843
+ * Hook for managing input focus state
1844
+ */
1845
+ declare function useInputFocus(): {
1846
+ isFocused: boolean;
1847
+ handleFocus: (e: React__default.FocusEvent<HTMLInputElement>, onFocus?: (e: React__default.FocusEvent<HTMLInputElement>) => void) => void;
1848
+ handleBlur: (e: React__default.FocusEvent<HTMLInputElement>, onBlur?: (e: React__default.FocusEvent<HTMLInputElement>) => void) => void;
1849
+ };
1850
+ /**
1851
+ * Wrapper component for input containers
1852
+ */
1853
+ declare function InputWrapper({ children, className, }: {
1854
+ children: React__default.ReactNode;
1855
+ className?: string;
1856
+ }): react_jsx_runtime.JSX.Element;
1857
+ /**
1858
+ * Clear button component for inputs
1859
+ */
1860
+ declare function ClearButton({ onClick, size, className, }: {
1861
+ onClick: () => void;
1862
+ size?: Size;
1863
+ className?: string;
1864
+ }): react_jsx_runtime.JSX.Element;
1865
+ /**
1866
+ * Generates state-specific styles for inputs based on their current state
1867
+ * (invalid, disabled, focused).
1868
+ *
1869
+ * State Priority:
1870
+ * 1. Disabled (overrides all other states)
1871
+ * 2. Invalid + Focused
1872
+ * 3. Invalid
1873
+ * 4. Focused
1874
+ * 5. Default
1875
+ *
1876
+ * @example
1877
+ * ```tsx
1878
+ * const styles = getInputStateStyles({ isInvalid: true, isFocused: true });
1879
+ * ```
1880
+ */
1881
+ declare function getInputStateStyles(props: {
1882
+ isInvalid?: boolean;
1883
+ isDisabled?: boolean;
1884
+ isFocused?: boolean;
1885
+ }): "border rounded-[var(--control-border-radius)] !outline-none border-border-muted" | "border rounded-[var(--control-border-radius)] !outline-none border-feedback-error-border shadow-[inset_0_0_0_1px_var(--color-feedback-error-border)]" | "border rounded-[var(--control-border-radius)] !outline-none border-feedback-error-border" | "border rounded-[var(--control-border-radius)] !outline-none border-border-focus shadow-[inset_0_0_0_1px_var(--color-border-focus)]" | "border rounded-[var(--control-border-radius)] !outline-none border-border-default";
1886
+ /**
1887
+ * Generates background styles based on the transparent and disabled props.
1888
+ * Uses Tailwind classes for consistent styling across light/dark modes.
1889
+ */
1890
+ declare function getInputBackgroundStyles(props: {
1891
+ transparent?: boolean;
1892
+ isDisabled?: boolean;
1893
+ }): "bg-transparent" | "bg-background-muted" | "bg-background-input";
1894
+ /**
1895
+ * Generates the complete set of base styles for input components.
1896
+ * This includes state styles, background, sizing, and custom classes.
1897
+ *
1898
+ * @example
1899
+ * ```tsx
1900
+ * const styles = getInputBaseStyles({
1901
+ * isInvalid: formState.hasError,
1902
+ * isDisabled: isLoading,
1903
+ * size: "md"
1904
+ * });
1905
+ * ```
1906
+ */
1907
+ declare function getInputBaseStyles(props: InputStyleProps): string;
1908
+ /**
1909
+ * Generates styles for grouped form elements (like input with buttons)
1910
+ *
1911
+ * @example
1912
+ * ```tsx
1913
+ * <div className={getFieldGroupStyles({ size: "md" })}>
1914
+ * <Input />
1915
+ * <Button>Submit</Button>
1916
+ * </div>
1917
+ * ```
1918
+ */
1919
+ declare function getFieldGroupStyles(props: FieldGroupProps): string;
1920
+ /**
1921
+ * Label component for form fields. Supports tooltips and required field indicators.
1922
+ *
1923
+ * @example
1924
+ * ```tsx
1925
+ * <Label
1926
+ * htmlFor="email"
1927
+ * tooltip="Enter your work email"
1928
+ * isRequired
1929
+ * >
1930
+ * Email Address
1931
+ * </Label>
1932
+ * ```
1933
+ */
1934
+ declare function Label({ children, size, tooltip, isRequired, className, htmlFor, }: LabelProps): react_jsx_runtime.JSX.Element;
1935
+ /**
1936
+ * Description component for providing additional context about a form field.
1937
+ *
1938
+ * @example
1939
+ * ```tsx
1940
+ * <Description>Must be at least 8 characters</Description>
1941
+ * ```
1942
+ */
1943
+ declare function Description({ size, className, children, ...props }: DescriptionProps): react_jsx_runtime.JSX.Element;
1944
+ /**
1945
+ * Error message component for form fields. Automatically handles
1946
+ * accessibility attributes for screen readers.
1947
+ *
1948
+ * @example
1949
+ * ```tsx
1950
+ * {hasError && <FieldError>This field is required</FieldError>}
1951
+ * ```
1952
+ */
1953
+ declare function FieldError({ children, size, className }: FieldErrorProps): react_jsx_runtime.JSX.Element;
1954
+ /**
1955
+ * Base input component with consistent styling and state handling.
1956
+ * Extends the native input element with our custom styling system.
1957
+ *
1958
+ * @example
1959
+ * ```tsx
1960
+ * <Input
1961
+ * size="md"
1962
+ * isInvalid={hasError}
1963
+ * isDisabled={isLoading}
1964
+ * transparent={false}
1965
+ * />
1966
+ * ```
1967
+ */
1968
+ declare function Input({ size, isInvalid, isDisabled, isFocused, transparent, className, ...props }: InputProps): react_jsx_runtime.JSX.Element;
1969
+ /**
1970
+ * Container for grouping form elements with consistent styling.
1971
+ * Useful for creating compound components like input with buttons.
1972
+ *
1973
+ * @example
1974
+ * ```tsx
1975
+ * <FieldGroup>
1976
+ * <Input placeholder="Search..." />
1977
+ * <Button>Search</Button>
1978
+ * </FieldGroup>
1979
+ * ```
1980
+ */
1981
+ declare function FieldGroup(props: FieldGroupProps): react_jsx_runtime.JSX.Element;
1982
+
1983
+ /**
1984
+ * ColorField Props
1985
+ */
1986
+ interface ColorFieldProps extends Omit<TextFieldProps$1, "isRequired" | "size" | "className">, BaseInputProps {
1987
+ /** Label text displayed above the color field */
1988
+ label?: string;
1989
+ /** Helper text displayed below the color field */
1990
+ description?: string;
1991
+ /** Error message or function to generate error message */
1992
+ errorMessage?: string | ((validation: ValidationResult) => string);
1993
+ /** Placeholder text for the input */
1994
+ placeholder?: string;
1995
+ /** Optional tooltip text to show next to the label */
1996
+ tooltip?: string;
1997
+ /** Whether the field is required */
1998
+ isRequired?: boolean;
1999
+ /** Additional CSS classes to apply */
2000
+ className?: string;
2001
+ /** Validation result object */
2002
+ validationResult?: ValidationResult;
2003
+ /** The current hex color value (controlled) */
2004
+ value?: string;
2005
+ /** Default hex color value (uncontrolled) */
2006
+ defaultValue?: string;
2007
+ /** Callback when the color changes */
2008
+ onChange?: (color: string) => void;
2009
+ /** Whether to show the color swatch preview */
2010
+ showColorSwatch?: boolean;
2011
+ }
2012
+ /**
2013
+ * ColorField Component
2014
+ *
2015
+ * A form control that allows users to input hex color codes manually
2016
+ * or select colors using a visual color picker. Integrates seamlessly
2017
+ * with the Edges design system.
2018
+ *
2019
+ * @example
2020
+ * ```tsx
2021
+ * <ColorField
2022
+ * label="Brand Color"
2023
+ * value={color}
2024
+ * onChange={setColor}
2025
+ * description="Choose your primary brand color"
2026
+ * />
2027
+ * ```
2028
+ */
2029
+ declare function ColorField({ label, description, errorMessage, size, tooltip, isRequired, transparent, className, validationResult, value: controlledValue, defaultValue, onChange, placeholder, showColorSwatch, ...props }: ColorFieldProps): react_jsx_runtime.JSX.Element;
2030
+
1784
2031
  interface ConfirmProps {
1785
2032
  /**
1786
2033
  * Whether the confirm dialog is open
@@ -1875,35 +2122,244 @@ interface ConnectionStatusBadgeProps extends Omit<BadgeProps, "variant" | "child
1875
2122
  */
1876
2123
  declare function ConnectionStatusBadge({ isConnected, connectedAt, disconnectedAt, showTimestamp, isLoading, size, shape, ...badgeProps }: ConnectionStatusBadgeProps): react_jsx_runtime.JSX.Element;
1877
2124
 
1878
- interface CopyToClipboardProps {
1879
- /**
1880
- * The value to copy to clipboard. If not provided, will use the text content of children
1881
- */
1882
- value?: string;
1883
- /**
1884
- * The content to display
2125
+ interface ContactCardProps {
2126
+ /** First name */
2127
+ firstName: string;
2128
+ /** Last name */
2129
+ lastName: string;
2130
+ /** Email address (optional) */
2131
+ email?: string;
2132
+ /** Phone number (optional) */
2133
+ phone?: string;
2134
+ /** Avatar image URL (optional) */
2135
+ avatarUrl?: string;
2136
+ /** Link to contact detail page (optional) */
2137
+ href?: string;
2138
+ /** Custom link component (e.g., Next.js Link) */
2139
+ LinkComponent?: ComponentType<{
2140
+ href: string;
2141
+ className?: string;
2142
+ children: React.ReactNode;
2143
+ }>;
2144
+ /** Card variant */
2145
+ variant?: "outlined" | "elevated" | "filled" | "ghost";
2146
+ /** Show email address
2147
+ * @default true
1885
2148
  */
1886
- children: React__default.ReactNode;
1887
- /**
1888
- * Optional className for the container
2149
+ showEmail?: boolean;
2150
+ /** Show phone number
2151
+ * @default false
1889
2152
  */
2153
+ showPhone?: boolean;
2154
+ /** Loading state */
2155
+ isLoading?: boolean;
2156
+ /** Additional classes for the card */
1890
2157
  className?: string;
1891
- /**
1892
- * Size of the copy button, defaults to "sm"
1893
- */
1894
- size?: "sm" | "md";
1895
- }
1896
- declare function CopyToClipboard({ value, children, className, size }: CopyToClipboardProps): react_jsx_runtime.JSX.Element;
1897
-
1898
- interface AreaSeriesProps {
1899
- data: BaseDataPoint[];
1900
- color?: string;
1901
- label?: string;
1902
- categoryColors?: Record<string, string>;
1903
- categoryLabels?: Record<string, string>;
2158
+ /** Additional classes for the card content (for padding control, etc.) */
2159
+ contentClassName?: string;
1904
2160
  }
1905
2161
  /**
1906
- * AreaSeries
2162
+ * ContactCard
2163
+ *
2164
+ * A card component for displaying contact information with avatar.
2165
+ * Includes name, optional email, and optional phone number.
2166
+ *
2167
+ * @example
2168
+ * ```tsx
2169
+ * <ContactCard
2170
+ * firstName="John"
2171
+ * lastName="Doe"
2172
+ * email="john.doe@example.com"
2173
+ * phone="+1 (555) 123-4567"
2174
+ * showEmail
2175
+ * showPhone
2176
+ * href="/contacts/123"
2177
+ * />
2178
+ * ```
2179
+ */
2180
+ declare function ContactCard({ firstName, lastName, email, phone, avatarUrl, href, LinkComponent, variant, showEmail, showPhone, isLoading, className, contentClassName, }: ContactCardProps): react_jsx_runtime.JSX.Element;
2181
+
2182
+ type SortDirection = "asc" | "desc";
2183
+ type CellAlignment = "left" | "center" | "right";
2184
+ type TableDensity = "compact" | "default" | "relaxed";
2185
+ type CellEmphasis = "strong" | "high" | "normal" | "low";
2186
+ type LinkBehavior = "none" | "hover" | "visible";
2187
+ type TableLayout = "auto" | "fixed" | "responsive";
2188
+ type TableWidth = "full" | "auto" | "contained";
2189
+ type MobileRenderer = "auto" | "cards" | "custom" | "none";
2190
+ type MobileBreakpoint = "sm" | "md" | "lg" | "xl";
2191
+ interface SortConfig {
2192
+ columnId: string;
2193
+ direction: SortDirection;
2194
+ }
2195
+ interface CellContext {
2196
+ isLoading: boolean;
2197
+ isSelected?: boolean;
2198
+ isHovered?: boolean;
2199
+ rowIndex: number;
2200
+ columnIndex: number;
2201
+ density: TableDensity;
2202
+ }
2203
+ interface CellComponentProps<T = any> {
2204
+ value: any;
2205
+ row: T;
2206
+ context: CellContext;
2207
+ [key: string]: any;
2208
+ }
2209
+ type CellComponent<T = any> = ComponentType<CellComponentProps<T>>;
2210
+ interface MobileConfig {
2211
+ priority?: 1 | 2 | 3;
2212
+ format?: "primary" | "secondary" | "badge" | "inline";
2213
+ label?: boolean;
2214
+ icon?: string;
2215
+ }
2216
+ interface Column<T> {
2217
+ id: string;
2218
+ label: string;
2219
+ accessor?: keyof T | ((row: T) => any);
2220
+ align?: CellAlignment;
2221
+ width?: string | number;
2222
+ minWidth?: string | number;
2223
+ maxWidth?: string | number;
2224
+ flex?: number;
2225
+ cell?: CellComponent<T>;
2226
+ cellProps?: Record<string, any> | ((value: any, row: T) => Record<string, any>);
2227
+ render?: (value: any, row: T, context: CellContext) => ReactNode;
2228
+ sortable?: boolean;
2229
+ mobile?: MobileConfig | false;
2230
+ popover?: string | ((value: unknown, row: T) => ReactNode) | {
2231
+ content: string | ((value: unknown, row: T) => ReactNode);
2232
+ placement?: "top" | "bottom" | "left" | "right";
2233
+ showArrow?: boolean;
2234
+ trigger?: "hover" | "click";
2235
+ };
2236
+ }
2237
+ interface DataTableProps<T> {
2238
+ columns: Column<T>[];
2239
+ data: T[];
2240
+ className?: string;
2241
+ density?: TableDensity;
2242
+ width?: TableWidth;
2243
+ height?: string | number;
2244
+ maxHeight?: string | number;
2245
+ layout?: TableLayout;
2246
+ mobileRenderer?: MobileRenderer;
2247
+ customMobileRowRender?: (row: T, index: number) => ReactNode;
2248
+ mobileBreakpoint?: MobileBreakpoint;
2249
+ isLoading?: boolean;
2250
+ loadingState?: LoadingState;
2251
+ loadingRowCount?: number;
2252
+ onLoadMore?: () => void | Promise<void>;
2253
+ hasMore?: boolean;
2254
+ enableVirtualization?: boolean;
2255
+ estimatedRowHeight?: number;
2256
+ loadingIndicator?: ReactNode;
2257
+ stickyHeader?: boolean;
2258
+ onRowClick?: (row: T) => void;
2259
+ getRowId?: (row: T) => string;
2260
+ hideHeader?: boolean;
2261
+ onSort?: (sortConfig: SortConfig | null) => void;
2262
+ "aria-label"?: string;
2263
+ }
2264
+
2265
+ interface ContactMetaDisplayProps {
2266
+ /** First name */
2267
+ firstName: string;
2268
+ /** Last name */
2269
+ lastName: string;
2270
+ /** Email address (optional) */
2271
+ email?: string;
2272
+ /** Avatar image URL (optional) */
2273
+ avatarUrl?: string;
2274
+ /** Layout variant - stacked (vertical) or inline (horizontal) */
2275
+ layout?: "stacked" | "inline";
2276
+ /** Size variant */
2277
+ size?: "xs" | "sm" | "md" | "lg";
2278
+ /** Link to contact detail page (optional) */
2279
+ href?: string;
2280
+ /** Custom link component (e.g., Next.js Link) */
2281
+ LinkComponent?: ComponentType<{
2282
+ href: string;
2283
+ className?: string;
2284
+ children: React.ReactNode;
2285
+ }>;
2286
+ /** Link variant for the name */
2287
+ linkVariant?: "default" | "brand" | "muted" | "unstyled";
2288
+ /** Text emphasis level - "strong"/"high" for bold, "normal" for regular, "low" for muted */
2289
+ emphasis?: CellEmphasis;
2290
+ /** Show email address (only for stacked layout) */
2291
+ showEmail?: boolean;
2292
+ /** Loading state */
2293
+ isLoading?: boolean;
2294
+ /** Additional classes */
2295
+ className?: string;
2296
+ }
2297
+ /**
2298
+ * ContactMetaDisplay
2299
+ *
2300
+ * Reusable component for displaying contact information with avatar.
2301
+ * Supports stacked and inline layouts with size variants and optional linking.
2302
+ *
2303
+ * **Stacked layout**: Avatar, name above, optional email below
2304
+ * **Inline layout**: Avatar + name only (horizontal)
2305
+ *
2306
+ * Use this component directly in cards, lists, or other layouts.
2307
+ * For DataTable cells, use ContactMetaCell which wraps this component.
2308
+ *
2309
+ * @example
2310
+ * ```tsx
2311
+ * // Stacked layout (default)
2312
+ * <ContactMetaDisplay
2313
+ * firstName="John"
2314
+ * lastName="Doe"
2315
+ * email="john@example.com"
2316
+ * layout="stacked"
2317
+ * size="md"
2318
+ * showEmail
2319
+ * href="/contacts/123"
2320
+ * />
2321
+ *
2322
+ * // Inline layout
2323
+ * <ContactMetaDisplay
2324
+ * firstName="John"
2325
+ * lastName="Doe"
2326
+ * layout="inline"
2327
+ * size="sm"
2328
+ * href="/contacts/123"
2329
+ * />
2330
+ * ```
2331
+ */
2332
+ declare function ContactMetaDisplay({ firstName, lastName, email, avatarUrl, layout, size, href, LinkComponent, linkVariant, emphasis, showEmail, isLoading, className, }: ContactMetaDisplayProps): react_jsx_runtime.JSX.Element;
2333
+
2334
+ interface CopyToClipboardProps {
2335
+ /**
2336
+ * The value to copy to clipboard. If not provided, will use the text content of children
2337
+ */
2338
+ value?: string;
2339
+ /**
2340
+ * The content to display
2341
+ */
2342
+ children: React__default.ReactNode;
2343
+ /**
2344
+ * Optional className for the container
2345
+ */
2346
+ className?: string;
2347
+ /**
2348
+ * Size of the copy button, defaults to "sm"
2349
+ */
2350
+ size?: "sm" | "md";
2351
+ }
2352
+ declare function CopyToClipboard({ value, children, className, size }: CopyToClipboardProps): react_jsx_runtime.JSX.Element;
2353
+
2354
+ interface AreaSeriesProps {
2355
+ data: BaseDataPoint[];
2356
+ color?: string;
2357
+ label?: string;
2358
+ categoryColors?: Record<string, string>;
2359
+ categoryLabels?: Record<string, string>;
2360
+ }
2361
+ /**
2362
+ * AreaSeries
1907
2363
  *
1908
2364
  * Chart component for rendering area charts with gradient fill.
1909
2365
  * Displays data as a filled area with optional line path, supporting animations and custom colors.
@@ -2441,83 +2897,6 @@ interface SearchControlProps {
2441
2897
  */
2442
2898
  declare function SearchControl({ value, onChange, onClear, placeholder, size, className, }: SearchControlProps): react_jsx_runtime.JSX.Element;
2443
2899
 
2444
- type SortDirection = "asc" | "desc";
2445
- type CellAlignment = "left" | "center" | "right";
2446
- type TableDensity = "compact" | "default" | "relaxed";
2447
- type CellEmphasis = "strong" | "high" | "normal" | "low";
2448
- type LinkBehavior = "none" | "hover" | "visible";
2449
- type TableLayout = "auto" | "fixed" | "responsive";
2450
- type TableWidth = "full" | "auto" | "contained";
2451
- type MobileRenderer = "auto" | "cards" | "custom" | "none";
2452
- type MobileBreakpoint = "sm" | "md" | "lg" | "xl";
2453
- interface SortConfig {
2454
- columnId: string;
2455
- direction: SortDirection;
2456
- }
2457
- interface CellContext {
2458
- isLoading: boolean;
2459
- isSelected?: boolean;
2460
- isHovered?: boolean;
2461
- rowIndex: number;
2462
- columnIndex: number;
2463
- density: TableDensity;
2464
- }
2465
- interface CellComponentProps<T = any> {
2466
- value: any;
2467
- row: T;
2468
- context: CellContext;
2469
- [key: string]: any;
2470
- }
2471
- type CellComponent<T = any> = ComponentType<CellComponentProps<T>>;
2472
- interface MobileConfig {
2473
- priority?: 1 | 2 | 3;
2474
- format?: "primary" | "secondary" | "badge" | "inline";
2475
- label?: boolean;
2476
- icon?: string;
2477
- }
2478
- interface Column<T> {
2479
- id: string;
2480
- label: string;
2481
- accessor?: keyof T | ((row: T) => any);
2482
- align?: CellAlignment;
2483
- width?: string | number;
2484
- minWidth?: string | number;
2485
- maxWidth?: string | number;
2486
- flex?: number;
2487
- cell?: CellComponent<T>;
2488
- cellProps?: Record<string, any> | ((value: any, row: T) => Record<string, any>);
2489
- render?: (value: any, row: T, context: CellContext) => ReactNode;
2490
- sortable?: boolean;
2491
- mobile?: MobileConfig | false;
2492
- }
2493
- interface DataTableProps<T> {
2494
- columns: Column<T>[];
2495
- data: T[];
2496
- className?: string;
2497
- density?: TableDensity;
2498
- width?: TableWidth;
2499
- height?: string | number;
2500
- maxHeight?: string | number;
2501
- layout?: TableLayout;
2502
- mobileRenderer?: MobileRenderer;
2503
- customMobileRowRender?: (row: T, index: number) => ReactNode;
2504
- mobileBreakpoint?: MobileBreakpoint;
2505
- isLoading?: boolean;
2506
- loadingState?: LoadingState;
2507
- loadingRowCount?: number;
2508
- onLoadMore?: () => void | Promise<void>;
2509
- hasMore?: boolean;
2510
- enableVirtualization?: boolean;
2511
- estimatedRowHeight?: number;
2512
- loadingIndicator?: ReactNode;
2513
- stickyHeader?: boolean;
2514
- onRowClick?: (row: T) => void;
2515
- getRowId?: (row: T) => string;
2516
- hideHeader?: boolean;
2517
- onSort?: (sortConfig: SortConfig | null) => void;
2518
- "aria-label"?: string;
2519
- }
2520
-
2521
2900
  /**
2522
2901
  * Action configuration for ActionCell
2523
2902
  */
@@ -2543,6 +2922,81 @@ interface ActionCellProps<T = any> extends CellComponentProps<T> {
2543
2922
  */
2544
2923
  declare function ActionCell<T = any>({ row, context, actions, align, size, }: ActionCellProps<T>): react_jsx_runtime.JSX.Element | null;
2545
2924
 
2925
+ interface BadgeCellProps<T = any> extends CellComponentProps<T> {
2926
+ /** The variant to use - can be static or a function that maps value to variant */
2927
+ variant?: BadgeProps["variant"] | ((value: any, row: T) => BadgeProps["variant"]);
2928
+ /** Optional label override - if not provided, will use the value */
2929
+ label?: string | ((value: any, row: T) => string);
2930
+ /** Badge size */
2931
+ size?: BadgeProps["size"];
2932
+ /** Badge shape */
2933
+ shape?: BadgeProps["shape"];
2934
+ /** Whether to show a dot indicator */
2935
+ dot?: boolean | ((value: any, row: T) => boolean);
2936
+ /** Position of the dot */
2937
+ dotPosition?: BadgeProps["dotPosition"];
2938
+ /** Whether the dot should pulse */
2939
+ dotPulse?: boolean | ((value: any, row: T) => boolean);
2940
+ /** Alignment of the cell content */
2941
+ align?: "left" | "center" | "right";
2942
+ /** Text to show for null/undefined values */
2943
+ emptyText?: string;
2944
+ /** Additional CSS classes */
2945
+ className?: string;
2946
+ }
2947
+ /**
2948
+ * BadgeCell
2949
+ *
2950
+ * A flexible DataTable cell component for displaying any value as a Badge.
2951
+ * Supports mapping values to semantic variants (success, error, warning, etc.)
2952
+ * and customizing the display label.
2953
+ *
2954
+ * @example
2955
+ * ```tsx
2956
+ * // Simple usage with static variant
2957
+ * {
2958
+ * id: "status",
2959
+ * label: "Status",
2960
+ * accessor: "status",
2961
+ * cell: BadgeCell,
2962
+ * cellProps: {
2963
+ * variant: "success",
2964
+ * }
2965
+ * }
2966
+ *
2967
+ * // Map value to variant
2968
+ * {
2969
+ * id: "status",
2970
+ * label: "Status",
2971
+ * accessor: "status",
2972
+ * cell: BadgeCell,
2973
+ * cellProps: {
2974
+ * variant: (value) => {
2975
+ * if (value === "active") return "success";
2976
+ * if (value === "error") return "error";
2977
+ * if (value === "pending") return "warning";
2978
+ * return "neutral";
2979
+ * },
2980
+ * label: (value) => value.toUpperCase(),
2981
+ * }
2982
+ * }
2983
+ *
2984
+ * // With dot indicator
2985
+ * {
2986
+ * id: "online",
2987
+ * label: "Status",
2988
+ * accessor: "onlineStatus",
2989
+ * cell: BadgeCell,
2990
+ * cellProps: {
2991
+ * variant: (value) => value === "online" ? "success" : "neutral",
2992
+ * dot: true,
2993
+ * dotPulse: (value) => value === "online",
2994
+ * }
2995
+ * }
2996
+ * ```
2997
+ */
2998
+ declare function BadgeCell<T = any>({ value, row, context, variant, label, size, shape, dot, dotPosition, dotPulse, align, emptyText, className, }: BadgeCellProps<T>): react_jsx_runtime.JSX.Element;
2999
+
2546
3000
  interface BooleanCellProps<T = any> extends CellComponentProps<T> {
2547
3001
  format?: "icon" | "text" | "badge";
2548
3002
  trueText?: string;
@@ -2562,13 +3016,73 @@ interface BooleanCellProps<T = any> extends CellComponentProps<T> {
2562
3016
  */
2563
3017
  declare function BooleanCell<T = any>({ value, context, format, trueText, falseText, trueIcon, falseIcon, showFalse, align, emphasis, className, }: BooleanCellProps<T>): react_jsx_runtime.JSX.Element | null;
2564
3018
 
2565
- /**
2566
- * Get alignment classes for cell content
2567
- */
2568
- declare function getCellAlignmentClasses(align?: CellAlignment): string;
2569
- /**
2570
- * Get text styling based on emphasis level
2571
- */
3019
+ interface ContactMetaCellProps<T = unknown> extends CellComponentProps<T> {
3020
+ /** First name (can be a function to extract from row) */
3021
+ firstName: string | ((row: T) => string);
3022
+ /** Last name (can be a function to extract from row) */
3023
+ lastName: string | ((row: T) => string);
3024
+ /** Email address (optional, can be a function to extract from row) */
3025
+ email?: string | ((row: T) => string | undefined);
3026
+ /** Avatar image URL (optional, can be a function to extract from row) */
3027
+ avatarUrl?: string | ((row: T) => string | undefined);
3028
+ /** Layout variant - stacked (vertical) or inline (horizontal) */
3029
+ layout?: "stacked" | "inline";
3030
+ /** Size variant */
3031
+ size?: "xs" | "sm" | "md" | "lg";
3032
+ /** Link to contact detail page (optional) */
3033
+ href?: string | ((row: T) => string);
3034
+ /** Custom link component (e.g., Next.js Link) */
3035
+ LinkComponent?: ComponentType<{
3036
+ href: string;
3037
+ className?: string;
3038
+ children: React.ReactNode;
3039
+ }>;
3040
+ /** Link variant for the name */
3041
+ linkVariant?: "default" | "brand" | "muted" | "unstyled";
3042
+ /** Text emphasis level - "strong"/"high" for bold, "normal" for regular, "low" for muted */
3043
+ emphasis?: CellEmphasis;
3044
+ /** Show email address (only for stacked layout) */
3045
+ showEmail?: boolean;
3046
+ /** Alignment */
3047
+ align?: "left" | "center" | "right";
3048
+ /** Additional classes */
3049
+ className?: string;
3050
+ }
3051
+ /**
3052
+ * ContactMetaCell
3053
+ *
3054
+ * DataTable cell component for displaying contact information with avatar.
3055
+ * Wraps ContactMetaDisplay for use in DataTable columns with layout="stacked" by default.
3056
+ *
3057
+ * @example
3058
+ * ```tsx
3059
+ * // In DataTable column definition
3060
+ * {
3061
+ * id: "contact",
3062
+ * label: "Contact",
3063
+ * cell: ContactMetaCell,
3064
+ * cellProps: {
3065
+ * firstName: (row) => row.firstName,
3066
+ * lastName: (row) => row.lastName,
3067
+ * email: (row) => row.email,
3068
+ * avatarUrl: (row) => row.avatarUrl,
3069
+ * href: (row) => `/contacts/${row.id}`,
3070
+ * showEmail: true,
3071
+ * layout: "stacked",
3072
+ * size: "sm"
3073
+ * }
3074
+ * }
3075
+ * ```
3076
+ */
3077
+ declare function ContactMetaCell<T = unknown>({ row, context, firstName, lastName, email, avatarUrl, layout, size, href, LinkComponent, linkVariant, showEmail, emphasis, align, className, }: ContactMetaCellProps<T>): react_jsx_runtime.JSX.Element;
3078
+
3079
+ /**
3080
+ * Get alignment classes for cell content
3081
+ */
3082
+ declare function getCellAlignmentClasses(align?: CellAlignment): string;
3083
+ /**
3084
+ * Get text styling based on emphasis level
3085
+ */
2572
3086
  declare function getCellTextClasses(emphasis?: CellEmphasis, isLink?: boolean): string;
2573
3087
  /**
2574
3088
  * Get container classes for cells
@@ -2649,12 +3163,24 @@ interface DeviceMetaCellProps<T = unknown> extends CellComponentProps<T> {
2649
3163
  deviceType: DeviceType | ((row: T) => DeviceType);
2650
3164
  /** URL to manufacturer logo (optional, can be a function to extract from row) */
2651
3165
  logoUrl?: string | ((row: T) => string | undefined);
3166
+ /** Layout variant - stacked (vertical) or inline (horizontal) */
3167
+ layout?: "stacked" | "inline";
3168
+ /** Size variant */
3169
+ size?: "xs" | "sm" | "md" | "lg";
2652
3170
  /** Link to device detail page (optional) */
2653
3171
  href?: string | ((row: T) => string);
3172
+ /** Custom link component (e.g., Next.js Link) */
3173
+ LinkComponent?: ComponentType<{
3174
+ href: string;
3175
+ className?: string;
3176
+ children: React.ReactNode;
3177
+ }>;
2654
3178
  /** Link variant for the manufacturer name */
2655
3179
  linkVariant?: "default" | "brand" | "muted" | "unstyled";
2656
- /** Show device type icon next to model name */
3180
+ /** Show device type icon next to model name (stacked) or hide logo (inline) */
2657
3181
  showDeviceTypeIcon?: boolean;
3182
+ /** Show logo in stacked layout (can be hidden for compact view) */
3183
+ showLogo?: boolean;
2658
3184
  /** Alignment */
2659
3185
  align?: "left" | "center" | "right";
2660
3186
  /** Additional classes */
@@ -2664,8 +3190,7 @@ interface DeviceMetaCellProps<T = unknown> extends CellComponentProps<T> {
2664
3190
  * DeviceMetaCell
2665
3191
  *
2666
3192
  * DataTable cell component for displaying device metadata (manufacturer, model, logo).
2667
- * Displays manufacturer logo (with device type icon fallback) and device information.
2668
- * Manufacturer name can be linked to device detail page.
3193
+ * Wraps DeviceMetaDisplay for use in DataTable columns with layout="stacked" by default.
2669
3194
  *
2670
3195
  * @example
2671
3196
  * ```tsx
@@ -2680,12 +3205,13 @@ interface DeviceMetaCellProps<T = unknown> extends CellComponentProps<T> {
2680
3205
  * deviceType: (row) => row.type,
2681
3206
  * logoUrl: (row) => row.manufacturerProfile?.logo,
2682
3207
  * href: (row) => `/devices/${row.id}`,
2683
- * linkVariant: "default"
3208
+ * layout: "stacked",
3209
+ * size: "sm"
2684
3210
  * }
2685
3211
  * }
2686
3212
  * ```
2687
3213
  */
2688
- declare function DeviceMetaCell<T = unknown>({ row, context, manufacturer, model, deviceType, logoUrl, href, linkVariant, showDeviceTypeIcon, align, className, }: DeviceMetaCellProps<T>): react_jsx_runtime.JSX.Element;
3214
+ declare function DeviceMetaCell<T = unknown>({ row, context, manufacturer, model, deviceType, logoUrl, layout, size, href, LinkComponent, linkVariant, showDeviceTypeIcon, showLogo, emphasis, align, className, }: DeviceMetaCellProps<T>): react_jsx_runtime.JSX.Element;
2689
3215
 
2690
3216
  interface DeviceStateCellProps<T = any> extends Omit<CellComponentProps<T>, "value"> {
2691
3217
  /** The device state value */
@@ -2801,6 +3327,57 @@ interface FormattedCellProps<T = any> extends CellComponentProps<T> {
2801
3327
  */
2802
3328
  declare function FormattedCell<T = any>({ value, row, context, formatter, align, emphasis, href, linkBehavior, className, emptyText, emptyClassName, }: FormattedCellProps<T>): string | number | bigint | boolean | Iterable<React__default.ReactNode> | Promise<string | number | bigint | boolean | React__default.ReactPortal | React__default.ReactElement<unknown, string | React__default.JSXElementConstructor<any>> | Iterable<React__default.ReactNode> | null | undefined> | react_jsx_runtime.JSX.Element | null | undefined;
2803
3329
 
3330
+ interface HorizontalBarCellProps extends CellComponentProps {
3331
+ value: number;
3332
+ min: number;
3333
+ max: number;
3334
+ color?: string | "auto";
3335
+ backgroundColor?: string | "none";
3336
+ colorScale?: {
3337
+ type: "sequential" | "diverging";
3338
+ scheme?: string;
3339
+ center?: number;
3340
+ };
3341
+ showLabel?: boolean;
3342
+ formatLabel?: (value: number) => string;
3343
+ height?: number;
3344
+ minWidth?: number;
3345
+ segments?: number;
3346
+ segmentGap?: number;
3347
+ }
3348
+ /**
3349
+ * HorizontalBarCell
3350
+ *
3351
+ * Horizontal comparison bar with automatic color scaling.
3352
+ * Perfect for showing relative values with color-coded performance indicators.
3353
+ * Supports segmented "power meter" style with optional gradient coloring.
3354
+ */
3355
+ declare const HorizontalBarCell: React__default.NamedExoticComponent<HorizontalBarCellProps>;
3356
+
3357
+ type MiniBarDatum = (BaseDataPoint & {
3358
+ category?: string;
3359
+ }) | {
3360
+ x: Date;
3361
+ y: number;
3362
+ category?: string;
3363
+ };
3364
+ interface MiniBarCellProps extends CellComponentProps {
3365
+ data?: MiniBarDatum[];
3366
+ color?: string;
3367
+ categoryColors?: Record<string, string>;
3368
+ categoryLabels?: Record<string, string>;
3369
+ width?: number;
3370
+ height?: number;
3371
+ }
3372
+ /**
3373
+ * MiniBarCell
3374
+ *
3375
+ * Mini vertical bar chart for table cells.
3376
+ * Uses the same BaseDataPoint[] data structure as full BarSeries components.
3377
+ * Supports category-based coloring for conditional visualization.
3378
+ */
3379
+ declare const MiniBarCell: React__default.NamedExoticComponent<MiniBarCellProps>;
3380
+
2804
3381
  interface NumberCellProps<T = any> extends CellComponentProps<T> {
2805
3382
  format?: "number" | "currency" | "percent" | "compact";
2806
3383
  decimals?: number;
@@ -2823,6 +3400,29 @@ interface NumberCellProps<T = any> extends CellComponentProps<T> {
2823
3400
  */
2824
3401
  declare function NumberCell<T = any>({ value, row, context, format, decimals, prefix, suffix, emptyText, align, emphasis, href, linkBehavior, showPositiveSign, colorCode, className, }: NumberCellProps<T>): react_jsx_runtime.JSX.Element;
2825
3402
 
3403
+ interface PercentBarCellProps extends CellComponentProps {
3404
+ value: number;
3405
+ showLabel?: boolean;
3406
+ color?: string | "auto";
3407
+ backgroundColor?: string | "none";
3408
+ height?: number;
3409
+ segments?: number;
3410
+ segmentGap?: number;
3411
+ colorScale?: {
3412
+ type: "sequential" | "diverging";
3413
+ scheme?: string;
3414
+ center?: number;
3415
+ };
3416
+ }
3417
+ /**
3418
+ * PercentBarCell
3419
+ *
3420
+ * Horizontal bar showing percentage (0-100%).
3421
+ * Perfect for battery charge, progress indicators, and utilization metrics.
3422
+ * Supports segmented "LED meter" style with optional gradient coloring.
3423
+ */
3424
+ declare const PercentBarCell: React__default.NamedExoticComponent<PercentBarCellProps>;
3425
+
2826
3426
  interface SelectCellProps<T = any> extends CellComponentProps<T> {
2827
3427
  isSelected?: boolean;
2828
3428
  onSelect?: (row: T, checked: boolean) => void;
@@ -2837,6 +3437,82 @@ interface SelectCellProps<T = any> extends CellComponentProps<T> {
2837
3437
  */
2838
3438
  declare function SelectCell<T = any>({ row, context, isSelected, onSelect, isDisabled, align, }: SelectCellProps<T>): react_jsx_runtime.JSX.Element;
2839
3439
 
3440
+ interface SiteMetaCellProps<T = unknown> extends CellComponentProps<T> {
3441
+ /** Street address (can be a function to extract from row) */
3442
+ streetAddress: string | ((row: T) => string);
3443
+ /** City name (optional, can be a function to extract from row) */
3444
+ city?: string | ((row: T) => string | undefined);
3445
+ /** State/province (optional, can be a function to extract from row) */
3446
+ state?: string | ((row: T) => string | undefined);
3447
+ /** Postal/ZIP code (optional, can be a function to extract from row) */
3448
+ postalCode?: string | ((row: T) => string | undefined);
3449
+ /** Layout variant - stacked (vertical) or inline (horizontal) */
3450
+ layout?: "stacked" | "inline";
3451
+ /** Size variant */
3452
+ size?: "xs" | "sm" | "md" | "lg";
3453
+ /** Link to site detail page (optional) */
3454
+ href?: string | ((row: T) => string);
3455
+ /** Custom link component (e.g., Next.js Link) */
3456
+ LinkComponent?: ComponentType<{
3457
+ href: string;
3458
+ className?: string;
3459
+ children: React.ReactNode;
3460
+ }>;
3461
+ /** Link variant for the street address */
3462
+ linkVariant?: "default" | "brand" | "muted" | "unstyled";
3463
+ /** Text emphasis level - "strong"/"high" for bold, "normal" for regular, "low" for muted */
3464
+ emphasis?: CellEmphasis;
3465
+ /** Alignment */
3466
+ align?: "left" | "center" | "right";
3467
+ /** Additional classes */
3468
+ className?: string;
3469
+ }
3470
+ /**
3471
+ * SiteMetaCell
3472
+ *
3473
+ * DataTable cell component for displaying site location information.
3474
+ * Wraps SiteMetaDisplay for use in DataTable columns with layout="stacked" by default.
3475
+ *
3476
+ * @example
3477
+ * ```tsx
3478
+ * // In DataTable column definition
3479
+ * {
3480
+ * id: "site",
3481
+ * label: "Site",
3482
+ * cell: SiteMetaCell,
3483
+ * cellProps: {
3484
+ * streetAddress: (row) => row.location.streetOne,
3485
+ * city: (row) => row.location.city,
3486
+ * state: (row) => row.location.state,
3487
+ * postalCode: (row) => row.location.postalCode,
3488
+ * href: (row) => `/sites/${row.id}`,
3489
+ * layout: "stacked",
3490
+ * size: "sm"
3491
+ * }
3492
+ * }
3493
+ * ```
3494
+ */
3495
+ declare function SiteMetaCell<T = unknown>({ row, context, streetAddress, city, state, postalCode, layout, size, href, LinkComponent, linkVariant, emphasis, align, className, }: SiteMetaCellProps<T>): react_jsx_runtime.JSX.Element;
3496
+
3497
+ interface SparklineCellProps extends CellComponentProps {
3498
+ data?: BaseDataPoint[];
3499
+ type?: "line" | "area" | "both";
3500
+ color?: string;
3501
+ strokeWidth?: number;
3502
+ categoryColors?: Record<string, string>;
3503
+ categoryLabels?: Record<string, string>;
3504
+ width?: number;
3505
+ height?: number;
3506
+ }
3507
+ /**
3508
+ * SparklineCell
3509
+ *
3510
+ * Mini line and/or area chart for time series previews in table cells.
3511
+ * Uses the same BaseDataPoint[] data structure as full LineSeries/AreaSeries components.
3512
+ * Supports category-based coloring for conditional visualization.
3513
+ */
3514
+ declare const SparklineCell: React__default.NamedExoticComponent<SparklineCellProps>;
3515
+
2840
3516
  interface TextCellProps<T = any> extends CellComponentProps<T> {
2841
3517
  prefix?: string;
2842
3518
  suffix?: string;
@@ -2933,12 +3609,26 @@ interface DeviceMetaDisplayProps {
2933
3609
  deviceType: DeviceType;
2934
3610
  /** URL to manufacturer logo (optional) */
2935
3611
  logoUrl?: string;
3612
+ /** Layout variant - stacked (vertical) or inline (horizontal) */
3613
+ layout?: "stacked" | "inline";
3614
+ /** Size variant */
3615
+ size?: "xs" | "sm" | "md" | "lg";
2936
3616
  /** Link to device detail page (optional) */
2937
3617
  href?: string;
3618
+ /** Custom link component (e.g., Next.js Link) */
3619
+ LinkComponent?: ComponentType<{
3620
+ href: string;
3621
+ className?: string;
3622
+ children: React.ReactNode;
3623
+ }>;
2938
3624
  /** Link variant for the manufacturer name */
2939
3625
  linkVariant?: "default" | "brand" | "muted" | "unstyled";
2940
- /** Show device type icon next to model name */
3626
+ /** Show device type icon next to model name (stacked) or hide logo (inline) */
2941
3627
  showDeviceTypeIcon?: boolean;
3628
+ /** Show logo in stacked layout (can be hidden for compact view) */
3629
+ showLogo?: boolean;
3630
+ /** Text emphasis level - "strong"/"high" for bold, "normal" for regular, "low" for muted */
3631
+ emphasis?: CellEmphasis;
2942
3632
  /** Loading state */
2943
3633
  isLoading?: boolean;
2944
3634
  /** Additional classes */
@@ -2948,25 +3638,39 @@ interface DeviceMetaDisplayProps {
2948
3638
  * DeviceMetaDisplay
2949
3639
  *
2950
3640
  * Reusable component for displaying device metadata (manufacturer, model, logo).
2951
- * Displays manufacturer logo (with device type icon fallback) and device information.
2952
- * Manufacturer name can be linked to device detail page.
3641
+ * Supports stacked and inline layouts with size variants and optional linking.
3642
+ *
3643
+ * **Stacked layout**: Large icon/logo, manufacturer name above, device type icon + model below
3644
+ * **Inline layout**: Small icon + "Manufacturer Model" as single text string
2953
3645
  *
2954
3646
  * Use this component directly in cards, lists, or other layouts.
2955
3647
  * For DataTable cells, use DeviceMetaCell which wraps this component.
2956
3648
  *
2957
3649
  * @example
2958
3650
  * ```tsx
3651
+ * // Stacked layout (default)
2959
3652
  * <DeviceMetaDisplay
2960
3653
  * manufacturer="Tesla"
2961
3654
  * model="Powerwall 2"
2962
3655
  * deviceType="battery"
3656
+ * layout="stacked"
3657
+ * size="md"
2963
3658
  * logoUrl="https://..."
2964
3659
  * href="/devices/123"
2965
- * showDeviceTypeIcon
3660
+ * />
3661
+ *
3662
+ * // Inline layout
3663
+ * <DeviceMetaDisplay
3664
+ * manufacturer="Tesla"
3665
+ * model="Powerwall 2"
3666
+ * deviceType="battery"
3667
+ * layout="inline"
3668
+ * size="sm"
3669
+ * href="/devices/123"
2966
3670
  * />
2967
3671
  * ```
2968
3672
  */
2969
- declare function DeviceMetaDisplay({ manufacturer, model, deviceType, logoUrl, href, linkVariant, showDeviceTypeIcon, isLoading, className, }: DeviceMetaDisplayProps): react_jsx_runtime.JSX.Element;
3673
+ declare function DeviceMetaDisplay({ manufacturer, model, deviceType, logoUrl, layout, size, href, LinkComponent, linkVariant, showDeviceTypeIcon, showLogo, emphasis, isLoading, className, }: DeviceMetaDisplayProps): react_jsx_runtime.JSX.Element;
2970
3674
 
2971
3675
  interface DeviceStateBadgeProps extends Omit<BadgeProps, "variant" | "children"> {
2972
3676
  /** The device state to display */
@@ -3083,365 +3787,166 @@ type WithBackArrow = BaseDialogHeaderProps & {
3083
3787
  hasBackArrow: true;
3084
3788
  onBack: () => void;
3085
3789
  };
3086
- type WithoutBackArrow = BaseDialogHeaderProps & {
3087
- hasBackArrow?: false;
3088
- onBack?: never;
3089
- };
3090
- /**
3091
- * DialogHeader
3092
- *
3093
- * Header area for dialogs with optional back arrow.
3094
- */
3095
- type DialogHeaderProps = WithBackArrow | WithoutBackArrow;
3096
- declare const DialogHeader: React__default.FC<DialogHeaderProps>;
3097
-
3098
- interface DrawerProps extends DialogHeaderConfig, DialogFooterConfig {
3099
- /**
3100
- * Drawer content
3101
- */
3102
- children?: React__default.ReactNode;
3103
- /**
3104
- * Whether the drawer is open
3105
- */
3106
- isOpen: boolean;
3107
- /**
3108
- * Side to slide in from
3109
- * @default "right"
3110
- */
3111
- slideInFrom?: "left" | "right";
3112
- /**
3113
- * Whether to use a transparent backdrop
3114
- * @default false
3115
- */
3116
- transparentOverlay?: boolean;
3117
- /**
3118
- * Callback when the drawer is closed
3119
- */
3120
- onClose?: () => void;
3121
- /**
3122
- * Additional CSS classes
3123
- */
3124
- className?: string;
3125
- /**
3126
- * Whether to include padding inside the content area
3127
- * @default true
3128
- */
3129
- contentPadding?: boolean;
3130
- /**
3131
- * Maximum width of the drawer
3132
- * @default "400px"
3133
- */
3134
- maxWidth?: string;
3135
- }
3136
- /**
3137
- * Drawer
3138
- *
3139
- * Sliding panel that anchors to screen edges.
3140
- */
3141
- declare function Drawer({ children, title, headerContent, titleAlign, hideCloseIcon, hasBackArrow, onBack, isOpen, slideInFrom, transparentOverlay, onClose, className, primaryAction, secondaryAction, footerContent, contentPadding, maxWidth, }: DrawerProps): react_jsx_runtime.JSX.Element | null;
3142
- declare namespace Drawer {
3143
- var displayName: string;
3144
- }
3145
-
3146
- type EmptyStateSize = "sm" | "md" | "lg";
3147
- type EmptyStateAlignment = "center" | "start";
3148
- interface EmptyStateAction {
3149
- /** Label for the action button/link */
3150
- label: string;
3151
- /** Click handler for the action */
3152
- onPress?: () => void;
3153
- /** Optional href for link-style actions */
3154
- href?: string;
3155
- /** Whether the action is loading */
3156
- isLoading?: boolean;
3157
- /** Whether the action is disabled */
3158
- isDisabled?: boolean;
3159
- }
3160
- interface EmptyStateProps {
3161
- /** Icon name from Icon component to show at the top of the empty state. */
3162
- icon?: IconName$3;
3163
- /** Primary title describing the state. */
3164
- title: ReactNode;
3165
- /** Optional description providing more context. */
3166
- description?: ReactNode;
3167
- /** Primary action (rendered as a button). */
3168
- primaryAction?: EmptyStateAction;
3169
- /** Secondary action (rendered as a text link). */
3170
- secondaryAction?: EmptyStateAction;
3171
- /** Optional custom action area. Use this for complete control over actions. Overrides primaryAction and secondaryAction. */
3172
- actions?: ReactNode;
3173
- /** Controls the component padding and typography. */
3174
- size?: EmptyStateSize;
3175
- /** Aligns the content horizontally. */
3176
- alignment?: EmptyStateAlignment;
3177
- /** When true the component expands to fill the available height and vertically centers content. */
3178
- fullHeight?: boolean;
3179
- /** Additional className to merge with default styles. */
3180
- className?: string;
3181
- }
3182
- /**
3183
- * EmptyState
3184
- *
3185
- * Minimal, composable empty state surface for communicating lack of data.
3186
- * Supports optional icon, description and opinionated action patterns.
3187
- *
3188
- * Use `primaryAction` (button) and `secondaryAction` (text link) for consistent styling,
3189
- * or use `actions` for complete control over the action area.
3190
- */
3191
- declare function EmptyState({ icon, title, description, primaryAction, secondaryAction, actions, size, alignment, fullHeight, className, }: EmptyStateProps): react_jsx_runtime.JSX.Element;
3192
-
3193
- type EnrollmentStatus = "enrolled" | "eligible" | "not_eligible" | "pending" | "opted_out";
3194
- interface EnrollmentStatusBadgeProps extends Omit<BadgeProps, "variant" | "children"> {
3195
- /** Enrollment status */
3196
- status: EnrollmentStatus;
3197
- /** Program name (shown in tooltip) */
3198
- programName?: string;
3199
- /** Loading state */
3200
- isLoading?: boolean;
3201
- }
3202
- /**
3203
- * EnrollmentStatusBadge
3204
- *
3205
- * Displays device enrollment status for programs.
3206
- * Color-coded status with optional program name in tooltip.
3207
- *
3208
- * Status mapping:
3209
- * - enrolled → success (green)
3210
- * - eligible → info (blue)
3211
- * - pending → warning (yellow)
3212
- * - not_eligible → neutral (gray)
3213
- * - opted_out → neutral (gray)
3214
- *
3215
- * @example
3216
- * ```tsx
3217
- * <EnrollmentStatusBadge status="enrolled" programName="Demand Response Q4" />
3218
- * <EnrollmentStatusBadge status="eligible" />
3219
- * <EnrollmentStatusBadge status="pending" />
3220
- * ```
3221
- */
3222
- declare function EnrollmentStatusBadge({ status, programName, isLoading, size, shape, ...badgeProps }: EnrollmentStatusBadgeProps): react_jsx_runtime.JSX.Element;
3223
-
3224
- interface Props {
3225
- children: ReactNode;
3226
- fallback?: ReactNode;
3227
- title?: string;
3228
- }
3229
- interface State {
3230
- hasError: boolean;
3231
- error?: Error;
3232
- }
3233
- /**
3234
- * ErrorBoundary
3235
- *
3236
- * React error boundary component for graceful error handling.
3237
- * Catches JavaScript errors in child components and displays a fallback UI with retry option.
3238
- */
3239
- declare class ErrorBoundary extends Component<Props, State> {
3240
- state: State;
3241
- static getDerivedStateFromError(error: Error): State;
3242
- componentDidCatch(error: Error, errorInfo: ErrorInfo): void;
3243
- private handleRetry;
3244
- render(): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | React$1.ReactPortal | React$1.ReactElement<unknown, string | React$1.JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | react_jsx_runtime.JSX.Element | null | undefined;
3245
- }
3246
-
3247
- interface InputStyleProps {
3248
- /** Whether the input is in an invalid state */
3249
- isInvalid?: boolean;
3250
- /** Whether the input is disabled */
3251
- isDisabled?: boolean;
3252
- /** Whether the input should have a transparent background */
3253
- transparent?: boolean;
3254
- /** The size variant of the input */
3255
- size?: Size;
3256
- /** Whether the input is currently focused */
3257
- isFocused?: boolean;
3258
- /** Additional CSS classes to apply */
3259
- className?: string;
3260
- }
3261
- interface BaseProps {
3262
- /** The size variant of the component */
3263
- size?: Size;
3264
- /** Additional CSS classes to apply */
3265
- className?: string;
3266
- }
3267
- interface BaseInputProps extends BaseProps {
3268
- /** Whether the input should have a transparent background */
3269
- transparent?: boolean;
3270
- /** Whether to show a clear button when the input has a value */
3271
- isClearable?: boolean;
3272
- /** Callback when the clear button is clicked */
3273
- onClear?: () => void;
3274
- /** Whether to show a search icon */
3275
- showSearchIcon?: boolean;
3276
- }
3277
- interface LabelProps extends BaseProps {
3278
- /** The label content */
3279
- children: React__default.ReactNode;
3280
- /** Optional tooltip text to show next to the label */
3281
- tooltip?: string;
3282
- /** Whether to show a required field indicator (*) */
3283
- isRequired?: boolean;
3284
- /** The ID of the input this label is associated with */
3285
- htmlFor?: string;
3286
- }
3287
- interface FieldErrorProps extends BaseProps {
3288
- /** The error message to display */
3289
- children: React__default.ReactNode;
3290
- }
3291
- interface InputProps extends Omit<React__default.InputHTMLAttributes<HTMLInputElement>, "size">, InputStyleProps {
3292
- /** The size variant of the input */
3293
- size?: Size;
3294
- }
3295
- interface DescriptionProps extends Omit<TextProps, "className">, BaseProps {
3296
- /** The description content */
3297
- children: React__default.ReactNode;
3298
- }
3299
- interface FieldGroupProps extends Omit<React__default.HTMLAttributes<HTMLDivElement>, "children">, InputStyleProps {
3300
- /** Whether any child of the group is focused */
3301
- isFocusWithin?: boolean;
3302
- /** Children can be either a ReactNode or a render function */
3303
- children?: React__default.ReactNode | ((props: InputStyleProps) => React__default.ReactNode);
3304
- }
3305
- /**
3306
- * Hook for managing input focus state
3307
- */
3308
- declare function useInputFocus(): {
3309
- isFocused: boolean;
3310
- handleFocus: (e: React__default.FocusEvent<HTMLInputElement>, onFocus?: (e: React__default.FocusEvent<HTMLInputElement>) => void) => void;
3311
- handleBlur: (e: React__default.FocusEvent<HTMLInputElement>, onBlur?: (e: React__default.FocusEvent<HTMLInputElement>) => void) => void;
3312
- };
3313
- /**
3314
- * Wrapper component for input containers
3315
- */
3316
- declare function InputWrapper({ children, className, }: {
3317
- children: React__default.ReactNode;
3318
- className?: string;
3319
- }): react_jsx_runtime.JSX.Element;
3320
- /**
3321
- * Clear button component for inputs
3322
- */
3323
- declare function ClearButton({ onClick, size, className, }: {
3324
- onClick: () => void;
3325
- size?: Size;
3326
- className?: string;
3327
- }): react_jsx_runtime.JSX.Element;
3328
- /**
3329
- * Generates state-specific styles for inputs based on their current state
3330
- * (invalid, disabled, focused).
3331
- *
3332
- * State Priority:
3333
- * 1. Disabled (overrides all other states)
3334
- * 2. Invalid + Focused
3335
- * 3. Invalid
3336
- * 4. Focused
3337
- * 5. Default
3338
- *
3339
- * @example
3340
- * ```tsx
3341
- * const styles = getInputStateStyles({ isInvalid: true, isFocused: true });
3342
- * ```
3343
- */
3344
- declare function getInputStateStyles(props: {
3345
- isInvalid?: boolean;
3346
- isDisabled?: boolean;
3347
- isFocused?: boolean;
3348
- }): "border rounded-[var(--control-border-radius)] !outline-none border-border-muted" | "border rounded-[var(--control-border-radius)] !outline-none border-feedback-error-border shadow-[inset_0_0_0_1px_var(--color-feedback-error-border)]" | "border rounded-[var(--control-border-radius)] !outline-none border-feedback-error-border" | "border rounded-[var(--control-border-radius)] !outline-none border-border-focus shadow-[inset_0_0_0_1px_var(--color-border-focus)]" | "border rounded-[var(--control-border-radius)] !outline-none border-border-default";
3349
- /**
3350
- * Generates background styles based on the transparent and disabled props.
3351
- * Uses Tailwind classes for consistent styling across light/dark modes.
3352
- */
3353
- declare function getInputBackgroundStyles(props: {
3354
- transparent?: boolean;
3355
- isDisabled?: boolean;
3356
- }): "bg-transparent" | "bg-background-muted" | "bg-background-input";
3357
- /**
3358
- * Generates the complete set of base styles for input components.
3359
- * This includes state styles, background, sizing, and custom classes.
3360
- *
3361
- * @example
3362
- * ```tsx
3363
- * const styles = getInputBaseStyles({
3364
- * isInvalid: formState.hasError,
3365
- * isDisabled: isLoading,
3366
- * size: "md"
3367
- * });
3368
- * ```
3369
- */
3370
- declare function getInputBaseStyles(props: InputStyleProps): string;
3790
+ type WithoutBackArrow = BaseDialogHeaderProps & {
3791
+ hasBackArrow?: false;
3792
+ onBack?: never;
3793
+ };
3371
3794
  /**
3372
- * Generates styles for grouped form elements (like input with buttons)
3795
+ * DialogHeader
3373
3796
  *
3374
- * @example
3375
- * ```tsx
3376
- * <div className={getFieldGroupStyles({ size: "md" })}>
3377
- * <Input />
3378
- * <Button>Submit</Button>
3379
- * </div>
3380
- * ```
3797
+ * Header area for dialogs with optional back arrow.
3381
3798
  */
3382
- declare function getFieldGroupStyles(props: FieldGroupProps): string;
3799
+ type DialogHeaderProps = WithBackArrow | WithoutBackArrow;
3800
+ declare const DialogHeader: React__default.FC<DialogHeaderProps>;
3801
+
3802
+ interface DrawerProps extends DialogHeaderConfig, DialogFooterConfig {
3803
+ /**
3804
+ * Drawer content
3805
+ */
3806
+ children?: React__default.ReactNode;
3807
+ /**
3808
+ * Whether the drawer is open
3809
+ */
3810
+ isOpen: boolean;
3811
+ /**
3812
+ * Side to slide in from
3813
+ * @default "right"
3814
+ */
3815
+ slideInFrom?: "left" | "right";
3816
+ /**
3817
+ * Whether to use a transparent backdrop
3818
+ * @default false
3819
+ */
3820
+ transparentOverlay?: boolean;
3821
+ /**
3822
+ * Callback when the drawer is closed
3823
+ */
3824
+ onClose?: () => void;
3825
+ /**
3826
+ * Additional CSS classes
3827
+ */
3828
+ className?: string;
3829
+ /**
3830
+ * Whether to include padding inside the content area
3831
+ * @default true
3832
+ */
3833
+ contentPadding?: boolean;
3834
+ /**
3835
+ * Maximum width of the drawer
3836
+ * @default "400px"
3837
+ */
3838
+ maxWidth?: string;
3839
+ }
3383
3840
  /**
3384
- * Label component for form fields. Supports tooltips and required field indicators.
3841
+ * Drawer
3385
3842
  *
3386
- * @example
3387
- * ```tsx
3388
- * <Label
3389
- * htmlFor="email"
3390
- * tooltip="Enter your work email"
3391
- * isRequired
3392
- * >
3393
- * Email Address
3394
- * </Label>
3395
- * ```
3843
+ * Sliding panel that anchors to screen edges.
3396
3844
  */
3397
- declare function Label({ children, size, tooltip, isRequired, className, htmlFor, }: LabelProps): react_jsx_runtime.JSX.Element;
3845
+ declare function Drawer({ children, title, headerContent, titleAlign, hideCloseIcon, hasBackArrow, onBack, isOpen, slideInFrom, transparentOverlay, onClose, className, primaryAction, secondaryAction, footerContent, contentPadding, maxWidth, }: DrawerProps): react_jsx_runtime.JSX.Element | null;
3846
+ declare namespace Drawer {
3847
+ var displayName: string;
3848
+ }
3849
+
3850
+ type EmptyStateSize = "sm" | "md" | "lg";
3851
+ type EmptyStateAlignment = "center" | "start";
3852
+ interface EmptyStateAction {
3853
+ /** Label for the action button/link */
3854
+ label: string;
3855
+ /** Click handler for the action */
3856
+ onPress?: () => void;
3857
+ /** Optional href for link-style actions */
3858
+ href?: string;
3859
+ /** Whether the action is loading */
3860
+ isLoading?: boolean;
3861
+ /** Whether the action is disabled */
3862
+ isDisabled?: boolean;
3863
+ }
3864
+ interface EmptyStateProps {
3865
+ /** Icon name from Icon component to show at the top of the empty state. */
3866
+ icon?: IconName$3;
3867
+ /** Primary title describing the state. */
3868
+ title: ReactNode;
3869
+ /** Optional description providing more context. */
3870
+ description?: ReactNode;
3871
+ /** Primary action (rendered as a button). */
3872
+ primaryAction?: EmptyStateAction;
3873
+ /** Secondary action (rendered as a text link). */
3874
+ secondaryAction?: EmptyStateAction;
3875
+ /** Optional custom action area. Use this for complete control over actions. Overrides primaryAction and secondaryAction. */
3876
+ actions?: ReactNode;
3877
+ /** Controls the component padding and typography. */
3878
+ size?: EmptyStateSize;
3879
+ /** Aligns the content horizontally. */
3880
+ alignment?: EmptyStateAlignment;
3881
+ /** When true the component expands to fill the available height and vertically centers content. */
3882
+ fullHeight?: boolean;
3883
+ /** Additional className to merge with default styles. */
3884
+ className?: string;
3885
+ }
3398
3886
  /**
3399
- * Description component for providing additional context about a form field.
3887
+ * EmptyState
3400
3888
  *
3401
- * @example
3402
- * ```tsx
3403
- * <Description>Must be at least 8 characters</Description>
3404
- * ```
3405
- */
3406
- declare function Description({ size, className, children, ...props }: DescriptionProps): react_jsx_runtime.JSX.Element;
3407
- /**
3408
- * Error message component for form fields. Automatically handles
3409
- * accessibility attributes for screen readers.
3889
+ * Minimal, composable empty state surface for communicating lack of data.
3890
+ * Supports optional icon, description and opinionated action patterns.
3410
3891
  *
3411
- * @example
3412
- * ```tsx
3413
- * {hasError && <FieldError>This field is required</FieldError>}
3414
- * ```
3892
+ * Use `primaryAction` (button) and `secondaryAction` (text link) for consistent styling,
3893
+ * or use `actions` for complete control over the action area.
3415
3894
  */
3416
- declare function FieldError({ children, size, className }: FieldErrorProps): react_jsx_runtime.JSX.Element;
3895
+ declare function EmptyState({ icon, title, description, primaryAction, secondaryAction, actions, size, alignment, fullHeight, className, }: EmptyStateProps): react_jsx_runtime.JSX.Element;
3896
+
3897
+ type EnrollmentStatus = "enrolled" | "eligible" | "not_eligible" | "pending" | "opted_out";
3898
+ interface EnrollmentStatusBadgeProps extends Omit<BadgeProps, "variant" | "children"> {
3899
+ /** Enrollment status */
3900
+ status: EnrollmentStatus;
3901
+ /** Program name (shown in tooltip) */
3902
+ programName?: string;
3903
+ /** Loading state */
3904
+ isLoading?: boolean;
3905
+ }
3417
3906
  /**
3418
- * Base input component with consistent styling and state handling.
3419
- * Extends the native input element with our custom styling system.
3907
+ * EnrollmentStatusBadge
3908
+ *
3909
+ * Displays device enrollment status for programs.
3910
+ * Color-coded status with optional program name in tooltip.
3911
+ *
3912
+ * Status mapping:
3913
+ * - enrolled → success (green)
3914
+ * - eligible → info (blue)
3915
+ * - pending → warning (yellow)
3916
+ * - not_eligible → neutral (gray)
3917
+ * - opted_out → neutral (gray)
3420
3918
  *
3421
3919
  * @example
3422
3920
  * ```tsx
3423
- * <Input
3424
- * size="md"
3425
- * isInvalid={hasError}
3426
- * isDisabled={isLoading}
3427
- * transparent={false}
3428
- * />
3921
+ * <EnrollmentStatusBadge status="enrolled" programName="Demand Response Q4" />
3922
+ * <EnrollmentStatusBadge status="eligible" />
3923
+ * <EnrollmentStatusBadge status="pending" />
3429
3924
  * ```
3430
3925
  */
3431
- declare function Input({ size, isInvalid, isDisabled, isFocused, transparent, className, ...props }: InputProps): react_jsx_runtime.JSX.Element;
3926
+ declare function EnrollmentStatusBadge({ status, programName, isLoading, size, shape, ...badgeProps }: EnrollmentStatusBadgeProps): react_jsx_runtime.JSX.Element;
3927
+
3928
+ interface Props {
3929
+ children: ReactNode;
3930
+ fallback?: ReactNode;
3931
+ title?: string;
3932
+ }
3933
+ interface State {
3934
+ hasError: boolean;
3935
+ error?: Error;
3936
+ }
3432
3937
  /**
3433
- * Container for grouping form elements with consistent styling.
3434
- * Useful for creating compound components like input with buttons.
3938
+ * ErrorBoundary
3435
3939
  *
3436
- * @example
3437
- * ```tsx
3438
- * <FieldGroup>
3439
- * <Input placeholder="Search..." />
3440
- * <Button>Search</Button>
3441
- * </FieldGroup>
3442
- * ```
3940
+ * React error boundary component for graceful error handling.
3941
+ * Catches JavaScript errors in child components and displays a fallback UI with retry option.
3443
3942
  */
3444
- declare function FieldGroup(props: FieldGroupProps): react_jsx_runtime.JSX.Element;
3943
+ declare class ErrorBoundary extends Component<Props, State> {
3944
+ state: State;
3945
+ static getDerivedStateFromError(error: Error): State;
3946
+ componentDidCatch(error: Error, errorInfo: ErrorInfo): void;
3947
+ private handleRetry;
3948
+ render(): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | React$1.ReactPortal | React$1.ReactElement<unknown, string | React$1.JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | react_jsx_runtime.JSX.Element | null | undefined;
3949
+ }
3445
3950
 
3446
3951
  interface FirmwareVersionBadgeProps extends Omit<BadgeProps, "variant" | "children"> {
3447
3952
  /** Firmware version string */
@@ -3672,7 +4177,7 @@ interface KpiProps {
3672
4177
  /** Layout orientation */
3673
4178
  orientation?: KpiOrientation;
3674
4179
  /** Loading state */
3675
- loading?: boolean;
4180
+ isLoading?: boolean;
3676
4181
  /** Empty state */
3677
4182
  empty?: boolean;
3678
4183
  /** Error state */
@@ -3688,7 +4193,7 @@ interface KpiProps {
3688
4193
  /** Custom trend renderer */
3689
4194
  renderTrend?: (points?: TrendPoint[]) => React__default.ReactNode;
3690
4195
  }
3691
- declare function Kpi({ label, value, formatter, delta, deltaPeriodLabel, deltaIntent, trend, status, helpText, size, orientation, loading, empty, error, onClick, className, renderValue, renderDelta, renderTrend, }: KpiProps): react_jsx_runtime.JSX.Element;
4196
+ declare function Kpi({ label, value, formatter, delta, deltaPeriodLabel, deltaIntent, trend, status, helpText, size, orientation, isLoading, empty, error, onClick, className, renderValue, renderDelta, renderTrend, }: KpiProps): react_jsx_runtime.JSX.Element;
3692
4197
 
3693
4198
  /**
3694
4199
  * KpiGroup Component — Layout container for multiple KPIs
@@ -3730,11 +4235,11 @@ interface KpiGroupProps {
3730
4235
  /** Optional header content */
3731
4236
  header?: React__default.ReactNode;
3732
4237
  /** Loading state for all children */
3733
- loading?: boolean;
4238
+ isLoading?: boolean;
3734
4239
  /** Additional CSS classes */
3735
4240
  className?: string;
3736
4241
  }
3737
- declare function KpiGroup({ children, cols, gap, align, equalizeHeights, header, loading, className, }: KpiGroupProps): react_jsx_runtime.JSX.Element;
4242
+ declare function KpiGroup({ children, cols, gap, align, equalizeHeights, header, isLoading, className, }: KpiGroupProps): react_jsx_runtime.JSX.Element;
3738
4243
  declare namespace KpiGroup {
3739
4244
  var displayName: string;
3740
4245
  }
@@ -4678,8 +5183,223 @@ interface SelectProps<T extends SelectItem> extends Omit<SelectProps$1<T>, "chil
4678
5183
  validationResult?: ValidationResult;
4679
5184
  /** Whether to use transparent background */
4680
5185
  transparent?: boolean;
5186
+ /** Placement of the dropdown menu relative to the trigger. Defaults to "bottom start" */
5187
+ placement?: "bottom" | "bottom left" | "bottom right" | "bottom start" | "bottom end" | "top" | "top left" | "top right" | "top start" | "top end" | "left" | "left top" | "left bottom" | "start" | "start top" | "start bottom" | "right" | "right top" | "right bottom" | "end" | "end top" | "end bottom";
5188
+ /** Whether the menu should flip to the opposite side when there's not enough space. Defaults to true */
5189
+ shouldFlip?: boolean;
5190
+ /**
5191
+ * Controls the menu width behavior relative to the trigger.
5192
+ * - "match": Menu width matches trigger width exactly (default)
5193
+ * - "auto": Menu width grows to fit content, with minimum of trigger width
5194
+ * @default "match"
5195
+ */
5196
+ menuWidth?: "match" | "auto";
5197
+ }
5198
+ declare function Select<T extends SelectItem>({ label, description, errorMessage, children, items, renderItem, size, selectedKey: controlledSelectedKey, defaultSelectedKey, onSelectionChange, placeholder, showErrors, tooltip, isRequired, transparent, placement, shouldFlip, menuWidth, ...props }: SelectProps<T>): react_jsx_runtime.JSX.Element;
5199
+
5200
+ interface SiteCardProps {
5201
+ /** Street address */
5202
+ streetAddress: string;
5203
+ /** City name (optional) */
5204
+ city?: string;
5205
+ /** State/province (optional) */
5206
+ state?: string;
5207
+ /** Postal/ZIP code (optional) */
5208
+ postalCode?: string;
5209
+ /** Longitude for map display */
5210
+ longitude?: number;
5211
+ /** Latitude for map display */
5212
+ latitude?: number;
5213
+ /** Link to site detail page (optional) */
5214
+ href?: string;
5215
+ /** Custom link component (e.g., Next.js Link) */
5216
+ LinkComponent?: ComponentType<{
5217
+ href: string;
5218
+ className?: string;
5219
+ children: React.ReactNode;
5220
+ }>;
5221
+ /** Card variant */
5222
+ variant?: "outlined" | "elevated" | "filled" | "ghost";
5223
+ /** Show map (requires longitude/latitude) */
5224
+ showMap?: boolean;
5225
+ /** Map height */
5226
+ mapHeight?: number | string;
5227
+ /** Mapbox access token (required for map display) */
5228
+ mapboxAccessToken?: string;
5229
+ /** Loading state */
5230
+ isLoading?: boolean;
5231
+ /** Additional classes for the card */
5232
+ className?: string;
5233
+ /** Additional classes for the card content (for padding control, etc.) */
5234
+ contentClassName?: string;
5235
+ }
5236
+ /**
5237
+ * SiteCard
5238
+ *
5239
+ * A card component for displaying site/location information.
5240
+ * Can include an optional static map showing the site's location.
5241
+ *
5242
+ * @example
5243
+ * ```tsx
5244
+ * <SiteCard
5245
+ * streetAddress="123 Main St"
5246
+ * city="San Francisco"
5247
+ * state="CA"
5248
+ * postalCode="94102"
5249
+ * longitude={-122.4194}
5250
+ * latitude={37.7749}
5251
+ * showMap
5252
+ * href="/sites/123"
5253
+ * />
5254
+ * ```
5255
+ */
5256
+ declare function SiteCard({ streetAddress, city, state, postalCode, longitude, latitude, href, LinkComponent, variant, showMap, mapHeight, mapboxAccessToken, isLoading, className, contentClassName, }: SiteCardProps): react_jsx_runtime.JSX.Element;
5257
+
5258
+ interface SiteContactCardProps {
5259
+ /** Site information */
5260
+ site: {
5261
+ streetAddress: string;
5262
+ city?: string;
5263
+ state?: string;
5264
+ postalCode?: string;
5265
+ longitude?: number;
5266
+ latitude?: number;
5267
+ href?: string;
5268
+ };
5269
+ /** Contact information (optional) */
5270
+ contact?: {
5271
+ firstName: string;
5272
+ lastName: string;
5273
+ email?: string;
5274
+ phone?: string;
5275
+ avatarUrl?: string;
5276
+ href?: string;
5277
+ };
5278
+ /** Custom link component (e.g., Next.js Link) */
5279
+ LinkComponent?: ComponentType<{
5280
+ href: string;
5281
+ className?: string;
5282
+ children: React.ReactNode;
5283
+ }>;
5284
+ /** Card variant */
5285
+ variant?: "outlined" | "elevated" | "filled" | "ghost";
5286
+ /** Show map (requires site longitude/latitude) */
5287
+ showMap?: boolean;
5288
+ /** Map height */
5289
+ mapHeight?: number | string;
5290
+ /** Mapbox access token (required for map display) */
5291
+ mapboxAccessToken?: string;
5292
+ /** Show contact email
5293
+ * @default true
5294
+ */
5295
+ showEmail?: boolean;
5296
+ /** Show contact phone
5297
+ * @default false
5298
+ */
5299
+ showPhone?: boolean;
5300
+ /** Loading state */
5301
+ isLoading?: boolean;
5302
+ /** Additional classes for the card */
5303
+ className?: string;
5304
+ /** Additional classes for the card content (for padding control, etc.) */
5305
+ contentClassName?: string;
5306
+ }
5307
+ /**
5308
+ * SiteContactCard
5309
+ *
5310
+ * A combined card component for displaying both site and contact information.
5311
+ * Shows site details with optional map, followed by associated contact information.
5312
+ *
5313
+ * @example
5314
+ * ```tsx
5315
+ * <SiteContactCard
5316
+ * site={{
5317
+ * streetAddress: "123 Main St",
5318
+ * city: "San Francisco",
5319
+ * state: "CA",
5320
+ * postalCode: "94102",
5321
+ * longitude: -122.4194,
5322
+ * latitude: 37.7749,
5323
+ * href: "/sites/123"
5324
+ * }}
5325
+ * contact={{
5326
+ * firstName: "John",
5327
+ * lastName: "Doe",
5328
+ * email: "john.doe@example.com",
5329
+ * phone: "+1 (555) 123-4567",
5330
+ * href: "/contacts/123"
5331
+ * }}
5332
+ * showMap
5333
+ * />
5334
+ * ```
5335
+ */
5336
+ declare function SiteContactCard({ site, contact, LinkComponent, variant, showMap, mapHeight, mapboxAccessToken, showEmail, showPhone, isLoading, className, contentClassName, }: SiteContactCardProps): react_jsx_runtime.JSX.Element;
5337
+
5338
+ interface SiteMetaDisplayProps {
5339
+ /** Street address (combined street lines) */
5340
+ streetAddress: string;
5341
+ /** City name (optional) */
5342
+ city?: string;
5343
+ /** State/province (optional) */
5344
+ state?: string;
5345
+ /** Postal/ZIP code (optional) */
5346
+ postalCode?: string;
5347
+ /** Layout variant - stacked (vertical) or inline (horizontal) */
5348
+ layout?: "stacked" | "inline";
5349
+ /** Size variant */
5350
+ size?: "xs" | "sm" | "md" | "lg";
5351
+ /** Link to site detail page (optional) */
5352
+ href?: string;
5353
+ /** Custom link component (e.g., Next.js Link) */
5354
+ LinkComponent?: ComponentType<{
5355
+ href: string;
5356
+ className?: string;
5357
+ children: React.ReactNode;
5358
+ }>;
5359
+ /** Link variant for the address */
5360
+ linkVariant?: "default" | "brand" | "muted" | "unstyled";
5361
+ /** Text emphasis level - "strong"/"high" for bold, "normal" for regular, "low" for muted */
5362
+ emphasis?: CellEmphasis;
5363
+ /** Loading state */
5364
+ isLoading?: boolean;
5365
+ /** Additional classes */
5366
+ className?: string;
4681
5367
  }
4682
- declare function Select<T extends SelectItem>({ label, description, errorMessage, children, items, renderItem, size, selectedKey: controlledSelectedKey, defaultSelectedKey, onSelectionChange, placeholder, showErrors, tooltip, isRequired, transparent, ...props }: SelectProps<T>): react_jsx_runtime.JSX.Element;
5368
+ /**
5369
+ * SiteMetaDisplay
5370
+ *
5371
+ * Reusable component for displaying site location information.
5372
+ * Supports stacked and inline layouts with size variants and optional linking.
5373
+ *
5374
+ * **Stacked layout**: MapPin icon, street address above, city/state/zip below
5375
+ * **Inline layout**: MapPin icon + street address only (no city/state)
5376
+ *
5377
+ * Use this component directly in cards, lists, or other layouts.
5378
+ * For DataTable cells, use SiteMetaCell which wraps this component.
5379
+ *
5380
+ * @example
5381
+ * ```tsx
5382
+ * // Stacked layout (default)
5383
+ * <SiteMetaDisplay
5384
+ * streetAddress="123 Main St"
5385
+ * city="San Francisco"
5386
+ * state="CA"
5387
+ * postalCode="94102"
5388
+ * layout="stacked"
5389
+ * size="md"
5390
+ * href="/sites/123"
5391
+ * />
5392
+ *
5393
+ * // Inline layout
5394
+ * <SiteMetaDisplay
5395
+ * streetAddress="123 Main St"
5396
+ * layout="inline"
5397
+ * size="sm"
5398
+ * href="/sites/123"
5399
+ * />
5400
+ * ```
5401
+ */
5402
+ declare function SiteMetaDisplay({ streetAddress, city, state, postalCode, layout, size, href, LinkComponent, linkVariant, emphasis, isLoading, className, }: SiteMetaDisplayProps): react_jsx_runtime.JSX.Element;
4683
5403
 
4684
5404
  interface SkeletonProps {
4685
5405
  width?: number | string;
@@ -5162,7 +5882,7 @@ interface TimelineProps {
5162
5882
  declare function Timeline({ children, className }: TimelineProps): react_jsx_runtime.JSX.Element;
5163
5883
 
5164
5884
  type IconName$1 = React.ComponentProps<typeof Icon>["name"];
5165
- type TimelineItemVariant = "default" | "active" | "muted";
5885
+ type TimelineItemVariant = "default" | "active" | "muted" | "success" | "error" | "warning" | "info";
5166
5886
  interface TimelineItemProps {
5167
5887
  children: ReactNode;
5168
5888
  /** Visual variant of the timeline item */
@@ -5336,4 +6056,4 @@ type StatTone = "success" | "warning" | "error" | "info" | "neutral";
5336
6056
  */
5337
6057
  declare function getStateTone(state: DeviceState): StatTone;
5338
6058
 
5339
- export { type Action, ActionCell, type ActionCellProps, ActivityFeed, ActivityFeedGroup, type ActivityFeedGroupProps, type ActivityFeedProps, type ActivityFeedSize, type ActivityFeedVariant, ActivityItem, type ActivityItemProps, type ActivityItemSurface, type ActivityItemTone, Alert, type AlertProps, AreaSeries, AutoMobileRenderer, Autocomplete, BREAKPOINTS, BadgeProps, BarSeries, BaseDataPoint, type BaseInputProps, type BaseProps, BooleanCell, type BooleanCellProps, BooleanFormat, BreadcrumbItem, type BreadcrumbItemProps, Breadcrumbs, type Breakpoint, type BreakpointState, Button, Calendar, Card, CardContent, type CardContentProps, CardFooter, type CardFooterProps, CardHeader, type CardHeaderProps, CardMedia, type CardMediaProps, CardMobileRenderer, type CardProps, type CardVariant, type CellAlignment, type CellComponent, type CellComponentProps, type CellContext, type CellEmphasis, ChartAxis, ChartBottomBar, ChartContainer, ChartEventMarkers, type ChartEventMarkersProps, type ChartExportMetadata, ChartTooltip, Checkbox, CheckboxGroup, Chip, ClearButton, Collapse, CollapseContent, type CollapseContentProps, type CollapseDensity, CollapseHeader, type CollapseHeaderProps, CollapseItem, type CollapseItemProps, type CollapseProps, type CollapseVariant, ColorModeProvider, type Column, ComponentFormatter, Confirm, type ConfirmProps, ConnectionStatusBadge, type ConnectionStatusBadgeProps, CopyToClipboard, CurrencyFormat, CurrentFormat, CustomPinsSpec, DataControls, type Filter as DataControlsFilter, type DataControlsProps, type SortOption as DataControlsSortOption, DataTable, type DataTableProps, DateCell, type DateCellProps, DateFormat, DateRangePicker, Description, type DescriptionProps, DeviceHealthBadge, type DeviceHealthBadgeProps, DeviceMetaCell, type DeviceMetaCellProps, DeviceMetaDisplay, type DeviceMetaDisplayProps, DeviceState, DeviceStateBadge, type DeviceStateBadgeProps, DeviceStateCell, type DeviceStateCellProps, DeviceStateWithMetric, type DeviceStateWithMetricProps, type DeviceType, DeviceTypeIcon, type DeviceTypeIconProps, Dialog, type DialogAction, type DialogFooterConfig, DialogHeader, type DialogHeaderConfig, type DialogHeaderProps, type DialogProps, DistanceFormat, Drawer, type DrawerProps, EmptyState, type EmptyStateAction, type EmptyStateAlignment, type EmptyStateProps, type EmptyStateSize, EnergyFormat, type EnrollmentStatus, EnrollmentStatusBadge, type EnrollmentStatusBadgeProps, ErrorBoundary, type EventMarker, type ExportType, type FacetConfig, type FacetCounts, type FacetType, FieldError, type FieldErrorProps, FieldFormat, FieldGroup, type FieldGroupProps, FieldValue, type FilterChip, FilterChips, type FilterChipsProps, type FilterCondition, FilterDialog, type FilterDialogProps, type FilterGroup, type FilterOperator, type FilterState, FirmwareVersionBadge, type FirmwareVersionBadgeProps, Form, FormatRegistry, FormattedCell, FormattedValue, FormatterFunction, FunnelSeries, type FunnelSeriesProps, type FunnelStage as FunnelSeriesStage, GeoJsonLayerSpec, Grid, type GridAlign, type GridCols, type GridFlow, type GridGap, type GridItemProps, type GridJustify, type GridProps, type GridSpan, GridState, GridStateBadge, type GridStateBadgeProps, type HealthStatus, Icon, InfiniteScrollIndicator, type InfiniteScrollIndicatorProps, Input, type InputProps, type InputStyleProps, InputWrapper, Kpi, KpiGroup, type KpiGroupAlign, type KpiGroupCols, type KpiGroupGap, type KpiGroupProps, type KpiOrientation, type KpiProps, type KpiSize, type KpiStatus, Label, type LabelProps, LayerSpec, LineSeries, type LinkBehavior, List, ListBox, ListBoxItem, ListItem, type ListItemProps, ListPane, type ListPaneProps, type ListProps, type LoadingState, type MobileBreakpoint, type MobileConfig, type MobileRenderer, ModalBackdrop, type ModalBackdropProps, Notice, NoticeContainer, type NoticeContainerProps, type NoticeOptions, type NoticeProps, NoticeProvider, type NoticeProviderProps, type NoticeVariant, NumberCell, type NumberCellProps, NumberField, NumberFormat, type PageAsideProps, type PageBreadcrumbItem, type PageContentProps, type PageHeaderProps, PageLayout, type PageLayoutProps, type PageScrollableContentProps, PhoneFormat, PlaceSearch, Popover, PowerFormat, type PresetRange, ProgressBar, Radio, RadioCard, RadioCardGroup, type RadioCardGroupProps, type RadioCardProps, RadioGroup, RangeCalendar, RasterLayerSpec, ResistanceFormat, type ResponsiveValue, ResultsCount, type ResultsCountProps, SKELETON_SIZES, type SearchConfig, SearchControl, type SearchControlProps, Section, SectionNav, type SectionNavItem, type SectionNavOrientation, type SectionNavProps, type SectionProps, type SectionSpacing, type SectionVariant, Select, SelectCell, type SelectCellProps, Skeleton, Slider, type SortConfig, SortControl, type SortControlProps, type SortDirection, type SortState, SplitPane, type SplitPaneOrientation, type SplitPanePanelProps, type SplitPaneProps, type StatAlign, type StatFormatter, type StatItem, type StatLayout, StatList, type StatListProps, type StatThreshold, type StatTone$1 as StatTone, type StatValue, Switch, Tab, TabList, TabPanel, type TableDensity, type TableLayout, type TableWidth, Tabs, type TabsProps$1 as TabsProps, TemperatureFormat, TemperatureUnit, TemperatureUnitString, TextArea, TextAreaWithChips, TextCell, type TextCellProps, TextField, TextFormat, TimeControls, type TimeControlsProps, TimeField, type TimeRange, Timeline, TimelineItem, type TimelineItemProps, type TimelineItemVariant, ToggleButton, Tooltip, TooltipData, Tray, type TrayProps, type TrendPoint, type UseBreakpointReturn, type UseClientDataControlsOptions, type UseClientDataControlsResult, type UseDataControlsClientOptions, type UseDataControlsOptions, type UseDataControlsResult, type UseDataControlsServerOptions, type UseInfiniteScrollOptions, type UseInfiniteScrollReturn, type UseServerDataControlsOptions, VectorLayerSpec, VoltageFormat, type WindowSize, type WindowSizeOption, YFormatType, addFilterCondition, autoScaleCurrent, autoScaleDistance, autoScaleEnergy, autoScalePower, autoScaleResistance, autoScaleVoltage, camelCaseToWords, capitalize, celsiusToFahrenheit, celsiusToKelvin, centimetersToInches, createEmptyFilter, createFilter, createFilters, createFormat, enumToSentenceCase, exportChart, fahrenheitToCelsius, fahrenheitToKelvin, feetToMeters, feetToMiles, filterToChips, formatBoolean, formatCapacity, formatCurrency, formatCurrent, formatDate, formatDistance, formatEmptyValue, formatEnergy, formatFieldValue, formatInternationalPhone, formatNumber, formatPercent, formatPhone, formatPhoneNumber, formatPower, formatPowerRating, formatResistance, formatTemperature, formatText, formatUSPhone, formatVoltage, getBadgeClasses, getBooleanBadgeVariant, getCellAlignmentClasses, getCellContainerClasses, getCellTextClasses, getDateParts, getExportFormatName, getFieldGroupStyles, getFilterFields, getInputBackgroundStyles, getInputBaseStyles, getInputStateStyles, getLinkClasses, getNumericColorClasses, getSkeletonSize, getStateTone, inchesToCentimeters, isCustomPinsLayer, isExportSupported, isFilterEmpty, isGeoJsonLayer, isNil, isRasterLayer, isVectorLayer, kelvinToCelsius, kelvinToFahrenheit, kilometersToMiles, layer, metersToFeet, metersToMiles, metersToYards, milesToFeet, milesToKilometers, milesToMeters, parseBoolean, removeFilterCondition, resolveValue, snakeCaseToWords, temperatureStringToSymbol, toA, toActiveInactive, toAmps, toBoolean, toCelsius, toCentimeters, toCheckmark, toCompactNumber, toCurrency, toCustomDateFormat, toDateString, toEnabledDisabled, toFahrenheit, toFeet, toFloat, toFormattedNumber, toFullDateTime, toGW, toGWh, toGigawatts, toISOString, toInches, toInteger, toKA, toKV, toKW, toKelvin, toKiloamps, toKilohms, toKilometers, toKilovolts, toKilowatts, toLowerCase, toMA, toMV, toMW, toMWh, toMegawatts, toMegohms, toMeters, toMiles, toMilliamps, toMillimeters, toMilliohms, toMillivolts, toNauticalMiles, toOhms, toOnOff, toPercentage, toRelativeTime, toScientificNotation, toSecret, toSentenceCase, toTemperature, toTitleCase, toTrueFalse, toUpperCase, toV, toVolts, toW, toWatts, toWh, toYards, tokWh, truncateEnd, truncateMiddle, truncateStart, ucFirst, useBreakpoint, useClientDataControls, useColorMode, useDataControls, useDebounce, useInfiniteScroll, useInputFocus, useLocalStorage, useMediaQuery, useNotice, useServerDataControls, wrapWithLink, yardsToMeters };
6059
+ export { type Action, ActionCell, type ActionCellProps, ActivityFeed, ActivityFeedGroup, type ActivityFeedGroupProps, type ActivityFeedProps, type ActivityFeedSize, type ActivityFeedVariant, ActivityItem, type ActivityItemProps, type ActivityItemSurface, type ActivityItemTone, Alert, type AlertProps, AreaSeries, AutoMobileRenderer, Autocomplete, BREAKPOINTS, BadgeCell, type BadgeCellProps, BadgeProps, BarSeries, BaseDataPoint, type BaseInputProps, type BaseProps, BooleanCell, type BooleanCellProps, BooleanFormat, BreadcrumbItem, type BreadcrumbItemProps, Breadcrumbs, type Breakpoint, type BreakpointState, Button, Calendar, Card, CardContent, type CardContentProps, CardFooter, type CardFooterProps, CardHeader, type CardHeaderProps, CardMedia, type CardMediaProps, CardMobileRenderer, type CardProps, type CardVariant, type CellAlignment, type CellComponent, type CellComponentProps, type CellContext, type CellEmphasis, ChartAxis, ChartBottomBar, ChartContainer, ChartEventMarkers, type ChartEventMarkersProps, type ChartExportMetadata, ChartTooltip, Checkbox, CheckboxGroup, Chip, ClearButton, Collapse, CollapseContent, type CollapseContentProps, type CollapseDensity, CollapseHeader, type CollapseHeaderProps, CollapseItem, type CollapseItemProps, type CollapseProps, type CollapseVariant, ColorField, type ColorFieldProps, ColorModeProvider, type Column, ComponentFormatter, Confirm, type ConfirmProps, ConnectionStatusBadge, type ConnectionStatusBadgeProps, ContactCard, type ContactCardProps, ContactMetaCell, ContactMetaDisplay, type ContactMetaDisplayProps, CopyToClipboard, CurrencyFormat, CurrentFormat, CustomPinsSpec, DataControls, type Filter as DataControlsFilter, type DataControlsProps, type SortOption as DataControlsSortOption, DataTable, type DataTableProps, DateCell, type DateCellProps, DateFormat, DateRangePicker, Description, type DescriptionProps, DeviceHealthBadge, type DeviceHealthBadgeProps, DeviceMetaCell, type DeviceMetaCellProps, DeviceMetaDisplay, type DeviceMetaDisplayProps, DeviceState, DeviceStateBadge, type DeviceStateBadgeProps, DeviceStateCell, type DeviceStateCellProps, DeviceStateWithMetric, type DeviceStateWithMetricProps, type DeviceType, DeviceTypeIcon, type DeviceTypeIconProps, Dialog, type DialogAction, type DialogFooterConfig, DialogHeader, type DialogHeaderConfig, type DialogHeaderProps, type DialogProps, DistanceFormat, Drawer, type DrawerProps, EmptyState, type EmptyStateAction, type EmptyStateAlignment, type EmptyStateProps, type EmptyStateSize, EnergyFormat, type EnrollmentStatus, EnrollmentStatusBadge, type EnrollmentStatusBadgeProps, ErrorBoundary, type EventMarker, type ExportType, type FacetConfig, type FacetCounts, type FacetType, FieldError, type FieldErrorProps, FieldFormat, FieldGroup, type FieldGroupProps, FieldValue, type FilterChip, FilterChips, type FilterChipsProps, type FilterCondition, FilterDialog, type FilterDialogProps, type FilterGroup, type FilterOperator, type FilterState, FirmwareVersionBadge, type FirmwareVersionBadgeProps, Form, FormatRegistry, FormattedCell, FormattedValue, FormatterFunction, FunnelSeries, type FunnelSeriesProps, type FunnelStage as FunnelSeriesStage, GeoJsonLayerSpec, Grid, type GridAlign, type GridCols, type GridFlow, type GridGap, type GridItemProps, type GridJustify, type GridProps, type GridSpan, GridState, GridStateBadge, type GridStateBadgeProps, type HealthStatus, HorizontalBarCell, type HorizontalBarCellProps, Icon, InfiniteScrollIndicator, type InfiniteScrollIndicatorProps, Input, type InputProps, type InputStyleProps, InputWrapper, Kpi, KpiGroup, type KpiGroupAlign, type KpiGroupCols, type KpiGroupGap, type KpiGroupProps, type KpiOrientation, type KpiProps, type KpiSize, type KpiStatus, Label, type LabelProps, LayerSpec, LineSeries, type LinkBehavior, List, ListBox, ListBoxItem, ListItem, type ListItemProps, ListPane, type ListPaneProps, type ListProps, type LoadingState, MiniBarCell, type MiniBarCellProps, type MobileBreakpoint, type MobileConfig, type MobileRenderer, ModalBackdrop, type ModalBackdropProps, Notice, NoticeContainer, type NoticeContainerProps, type NoticeOptions, type NoticeProps, NoticeProvider, type NoticeProviderProps, type NoticeVariant, NumberCell, type NumberCellProps, NumberField, NumberFormat, type PageAsideProps, type PageBreadcrumbItem, type PageContentProps, type PageHeaderProps, PageLayout, type PageLayoutProps, type PageScrollableContentProps, PercentBarCell, type PercentBarCellProps, PhoneFormat, PlaceSearch, Popover, PowerFormat, type PresetRange, ProgressBar, Radio, RadioCard, RadioCardGroup, type RadioCardGroupProps, type RadioCardProps, RadioGroup, RangeCalendar, RasterLayerSpec, ResistanceFormat, type ResponsiveValue, ResultsCount, type ResultsCountProps, SKELETON_SIZES, type SearchConfig, SearchControl, type SearchControlProps, Section, SectionNav, type SectionNavItem, type SectionNavOrientation, type SectionNavProps, type SectionProps, type SectionSpacing, type SectionVariant, Select, SelectCell, type SelectCellProps, SiteCard, type SiteCardProps, SiteContactCard, type SiteContactCardProps, SiteMetaCell, SiteMetaDisplay, type SiteMetaDisplayProps, Skeleton, Slider, type SortConfig, SortControl, type SortControlProps, type SortDirection, type SortState, SparklineCell, type SparklineCellProps, SplitPane, type SplitPaneOrientation, type SplitPanePanelProps, type SplitPaneProps, type StatAlign, type StatFormatter, type StatItem, type StatLayout, StatList, type StatListProps, type StatThreshold, type StatTone$1 as StatTone, type StatValue, Switch, Tab, TabList, TabPanel, type TableDensity, type TableLayout, type TableWidth, Tabs, type TabsProps$1 as TabsProps, TemperatureFormat, TemperatureUnit, TemperatureUnitString, TextArea, TextAreaWithChips, TextCell, type TextCellProps, TextField, TextFormat, TimeControls, type TimeControlsProps, TimeField, type TimeRange, Timeline, TimelineItem, type TimelineItemProps, type TimelineItemVariant, ToggleButton, Tooltip, TooltipData, Tray, type TrayProps, type TrendPoint, type UseBreakpointReturn, type UseClientDataControlsOptions, type UseClientDataControlsResult, type UseDataControlsClientOptions, type UseDataControlsOptions, type UseDataControlsResult, type UseDataControlsServerOptions, type UseInfiniteScrollOptions, type UseInfiniteScrollReturn, type UseServerDataControlsOptions, VectorLayerSpec, VoltageFormat, type WindowSize, type WindowSizeOption, YFormatType, addFilterCondition, autoScaleCurrent, autoScaleDistance, autoScaleEnergy, autoScalePower, autoScaleResistance, autoScaleVoltage, camelCaseToWords, capitalize, celsiusToFahrenheit, celsiusToKelvin, centimetersToInches, createEmptyFilter, createFilter, createFilters, createFormat, enumToSentenceCase, exportChart, fahrenheitToCelsius, fahrenheitToKelvin, feetToMeters, feetToMiles, filterToChips, formatBoolean, formatCapacity, formatCurrency, formatCurrent, formatDate, formatDistance, formatEmptyValue, formatEnergy, formatFieldValue, formatInternationalPhone, formatNumber, formatPercent, formatPhone, formatPhoneNumber, formatPower, formatPowerRating, formatResistance, formatTemperature, formatText, formatUSPhone, formatVoltage, getBadgeClasses, getBooleanBadgeVariant, getCellAlignmentClasses, getCellContainerClasses, getCellTextClasses, getDateParts, getExportFormatName, getFieldGroupStyles, getFilterFields, getInputBackgroundStyles, getInputBaseStyles, getInputStateStyles, getLinkClasses, getNumericColorClasses, getSkeletonSize, getStateTone, inchesToCentimeters, isCustomPinsLayer, isExportSupported, isFilterEmpty, isGeoJsonLayer, isNil, isRasterLayer, isVectorLayer, kelvinToCelsius, kelvinToFahrenheit, kilometersToMiles, layer, metersToFeet, metersToMiles, metersToYards, milesToFeet, milesToKilometers, milesToMeters, parseBoolean, removeFilterCondition, resolveValue, snakeCaseToWords, temperatureStringToSymbol, toA, toActiveInactive, toAmps, toBoolean, toCelsius, toCentimeters, toCheckmark, toCompactNumber, toCurrency, toCustomDateFormat, toDateString, toEnabledDisabled, toFahrenheit, toFeet, toFloat, toFormattedNumber, toFullDateTime, toGW, toGWh, toGigawatts, toISOString, toInches, toInteger, toKA, toKV, toKW, toKelvin, toKiloamps, toKilohms, toKilometers, toKilovolts, toKilowatts, toLowerCase, toMA, toMV, toMW, toMWh, toMegawatts, toMegohms, toMeters, toMiles, toMilliamps, toMillimeters, toMilliohms, toMillivolts, toNauticalMiles, toOhms, toOnOff, toPercentage, toRelativeTime, toScientificNotation, toSecret, toSentenceCase, toTemperature, toTitleCase, toTrueFalse, toUpperCase, toV, toVolts, toW, toWatts, toWh, toYards, tokWh, truncateEnd, truncateMiddle, truncateStart, ucFirst, useBreakpoint, useClientDataControls, useColorMode, useDataControls, useDebounce, useInfiniteScroll, useInputFocus, useLocalStorage, useMediaQuery, useNotice, useServerDataControls, wrapWithLink, yardsToMeters };