@texturehq/edges 1.28.0 → 1.28.2

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.cts CHANGED
@@ -2,15 +2,15 @@ import { BreadcrumbProps, BreadcrumbsProps, DateValue, CalendarProps as Calendar
2
2
  export { BreadcrumbProps, BreadcrumbsProps, DialogTrigger } from 'react-aria-components';
3
3
  import * as React$1 from 'react';
4
4
  import React__default, { RefObject, ComponentType, ReactNode, HTMLAttributes, ComponentProps, CSSProperties, Component, ErrorInfo } from 'react';
5
- import { V as FieldValue, W as BooleanFormat, X as FormattedValue, Z as CurrentFormat, _ as DateFormat, $ as DistanceFormat, a0 as EnergyFormat, a1 as CurrencyFormat, a2 as NumberFormat, a3 as PhoneFormat, a4 as PowerFormat, a5 as FormatterFunction, a6 as ResistanceFormat, a7 as TemperatureFormat, a8 as TemperatureUnitString, a9 as TemperatureUnit, aa as TextFormat, ab as VoltageFormat, ac as FieldFormat, e as BaseDataPoint, B as BadgeProps, v as YFormatType, r as TooltipData, ad as DeviceState, ae as GridState, af as ComponentFormatter, ag as LayerSpec, ah as CustomPinsSpec, ai as GeoJsonLayerSpec, aj as RasterLayerSpec, ak as VectorLayerSpec, al as ClusteredVectorLayerSpec } from './colors-CvEXhBTp.cjs';
6
- export { A as ActionItem, am as ActionMenu, a as ActionMenuProps, b as AppShell, c as AppShellProps, an as Avatar, d as AvatarProps, ao as Badge, ap as BaseFormat, aq as ChartContext, C as ChartMargin, ar as CodeEditor, f as CodeEditorProps, g as CodeLanguage, h as CodeTheme, as as ColorSpec, at as ComponentFormatOptions, au as CurrentUnit, av as CustomFormat, aw as DateFormatStyle, ax as DistanceUnit, E as ENTITY_CONFIG, ay as EnergyUnit, i as EntityConfig, j as EntityType, H as Heading, az as InteractiveMap, I as InteractiveMapProps, aA as LayerFeature, aB as LayerStyle, L as Loader, k as Logo, aC as MAP_TYPES, M as MapPoint, aD as Meter, l as MeterProps, aE as MetricFormat, aF as PercentageFormat, aG as PowerUnit, aH as RenderType, aI as ResistanceUnit, S as SegmentOption, aJ as SegmentedControl, m as SegmentedControlProps, n as SideNav, o as SideNavItem, p as SideNavProps, aK as StaticMap, q as StaticMapProps, T as TextLink, aL as TextTransform, aM as TextTruncatePosition, s as TooltipSeries, t as TopNav, u as TopNavProps, aN as VoltageUnit, Y as YFormatSettings, aO as ZoomStops, aP as activeDeviceStates, w as clearColorCache, x as createCategoryColorMap, y as createXScale, z as createYScale, D as defaultMargin, aQ as deviceStateLabels, aR as deviceStateMetricFormats, aS as formatComponentValue, F as getContrastingTextColor, G as getDefaultChartColor, J as getDefaultColors, aT as getDeviceStateDisplayLabel, aT as getDeviceStateLabel, K as getEntityConfig, N as getEntityIcon, O as getEntityLabel, aU as getGridStateLabel, P as getResolvedColor, Q as getThemeCategoricalColors, R as getYFormatSettings, aV as gridStateLabels, aW as isActiveDeviceState, aW as isActiveState, U as isLightColor, aX as useChartContext, aY as useComponentFormatter } from './colors-CvEXhBTp.cjs';
5
+ import { V as FieldValue, W as BooleanFormat, X as FormattedValue, Z as CurrentFormat, _ as DateFormat, $ as DistanceFormat, a0 as EnergyFormat, a1 as CurrencyFormat, a2 as NumberFormat, a3 as PhoneFormat, a4 as PowerFormat, a5 as FormatterFunction, a6 as ResistanceFormat, a7 as TemperatureFormat, a8 as TemperatureUnitString, a9 as TemperatureUnit, aa as TextFormat, ab as VoltageFormat, ac as FieldFormat, e as BaseDataPoint, B as BadgeProps, v as YFormatType, r as TooltipData, ad as DeviceState, ae as GridState, af as ComponentFormatter, ag as LayerSpec, ah as CustomPinsSpec, ai as GeoJsonLayerSpec, aj as RasterLayerSpec, ak as VectorLayerSpec, al as ClusteredVectorLayerSpec } from './colors-BHVIdEzL.cjs';
6
+ export { A as ActionItem, am as ActionMenu, a as ActionMenuProps, b as AppShell, c as AppShellProps, an as Avatar, d as AvatarProps, ao as Badge, ap as BaseFormat, aq as ChartContext, C as ChartMargin, ar as CodeEditor, f as CodeEditorProps, g as CodeLanguage, h as CodeTheme, as as ColorSpec, at as ComponentFormatOptions, au as CurrentUnit, av as CustomFormat, aw as DateFormatStyle, ax as DistanceUnit, E as ENTITY_CONFIG, ay as EnergyUnit, i as EntityConfig, j as EntityType, H as Heading, az as InteractiveMap, I as InteractiveMapProps, aA as LayerFeature, aB as LayerStyle, L as Loader, k as Logo, aC as MAP_TYPES, M as MapPoint, aD as Meter, l as MeterProps, aE as MetricFormat, aF as PercentageFormat, aG as PowerUnit, aH as RenderType, aI as ResistanceUnit, S as SegmentOption, aJ as SegmentedControl, m as SegmentedControlProps, n as SideNav, o as SideNavItem, p as SideNavProps, aK as StaticMap, q as StaticMapProps, T as TextLink, aL as TextTransform, aM as TextTruncatePosition, s as TooltipSeries, t as TopNav, u as TopNavProps, aN as VoltageUnit, Y as YFormatSettings, aO as ZoomStops, aP as activeDeviceStates, w as clearColorCache, x as createCategoryColorMap, y as createXScale, z as createYScale, D as defaultMargin, aQ as deviceStateLabels, aR as deviceStateMetricFormats, aS as formatComponentValue, F as getContrastingTextColor, G as getDefaultChartColor, J as getDefaultColors, aT as getDeviceStateDisplayLabel, aT as getDeviceStateLabel, K as getEntityConfig, N as getEntityIcon, O as getEntityLabel, aU as getGridStateLabel, P as getResolvedColor, Q as getThemeCategoricalColors, R as getYFormatSettings, aV as gridStateLabels, aW as isActiveDeviceState, aW as isActiveState, U as isLightColor, aX as useChartContext, aY as useComponentFormatter } from './colors-BHVIdEzL.cjs';
7
7
  import { Virtualizer } from '@tanstack/react-virtual';
8
8
  import * as react_jsx_runtime from 'react/jsx-runtime';
9
9
  import { I as Icon, S as Size, d as IconName$2, B as BaseInputProps } from './RichTextEditor-7jc4jO7e.cjs';
10
10
  export { e as BaseProps, C as ClearButton, a as DateField, D as DateFieldProps, f as Description, g as DescriptionPlacement, h as DescriptionProps, i as FieldError, j as FieldErrorProps, k as FieldGroup, l as FieldGroupProps, b as FileUpload, F as FileUploadProps, m as Input, n as InputProps, o as InputStyleProps, p as InputWrapper, L as Label, q as LabelProps, c as RichTextEditor, R as RichTextEditorProps, r as getFieldGroupStyles, s as getInputBackgroundStyles, t as getInputBaseStyles, u as getInputStateStyles, v as useInputFocus } from './RichTextEditor-7jc4jO7e.cjs';
11
11
  import { D as DialogAction, a as DialogHeaderConfig, b as DialogFooterConfig } from './index-BdDvAxFM.cjs';
12
12
  export { c as Dialog, d as DialogForm, e as DialogProps, f as Drawer, g as DrawerForm, h as DrawerProps, F as FormActions, i as FormDivider, j as FormGrid, k as FormSection, l as FormStepper, S as SaveBar, U as UnsavedChangesPrompt, u as useWizard } from './index-BdDvAxFM.cjs';
13
- export { A as Autocomplete, B as Button, C as Checkbox, a as CheckboxGroup, b as ColorField, g as ColorFieldProps, N as NumberField, h as Radio, i as RadioCard, R as RadioCardGroup, j as RadioCardGroupProps, k as RadioCardProps, c as RadioGroup, S as Select, l as SelectItem, d as Switch, T as TextArea, e as TextField, m as TimeField } from './TimeField-BqhXKWUT.cjs';
13
+ export { A as Autocomplete, B as Button, C as Checkbox, a as CheckboxGroup, b as ColorField, g as ColorFieldProps, N as NumberField, h as Radio, i as RadioCard, R as RadioCardGroup, j as RadioCardGroupProps, k as RadioCardProps, c as RadioGroup, S as Select, l as SelectItem, d as Switch, T as TextArea, e as TextField, m as TimeField } from './TimeField-ydXvd3yT.cjs';
14
14
  import { ScaleTime, ScaleLinear, ScaleBand } from 'd3-scale';
15
15
  import '@visx/vendor/d3-scale';
16
16
  import 'react-map-gl';
@@ -1434,7 +1434,7 @@ interface UseTableExportReturn {
1434
1434
  * />
1435
1435
  * ```
1436
1436
  */
1437
- declare function useTableExport<T>({ columns, data, metadata, }: UseTableExportOptions<T>): UseTableExportReturn;
1437
+ declare function useTableExport<T>({ columns, data, metadata }: UseTableExportOptions<T>): UseTableExportReturn;
1438
1438
 
1439
1439
  type ActivityFeedVariant = "timeline" | "stacked";
1440
1440
  type ActivityFeedSize = "md" | "sm";
@@ -1793,17 +1793,17 @@ interface CardFooterProps {
1793
1793
  align?: "start" | "end" | "center" | "between";
1794
1794
  isLoading?: boolean;
1795
1795
  }
1796
- declare function Card({ variant, className, children, isLoading, layout, }: CardProps): react_jsx_runtime.JSX.Element;
1796
+ declare function Card({ variant, className, children, isLoading, layout }: CardProps): react_jsx_runtime.JSX.Element;
1797
1797
  declare namespace Card {
1798
1798
  var Header: typeof CardHeader;
1799
1799
  var Media: typeof CardMedia;
1800
1800
  var Content: typeof CardContent;
1801
1801
  var Footer: typeof CardFooter;
1802
1802
  }
1803
- declare function CardHeader({ title, subtitle, actions, className, isLoading, }: CardHeaderProps): react_jsx_runtime.JSX.Element | null;
1804
- declare function CardMedia({ src, alt, aspectRatio, className, children, isLoading, }: CardMediaProps): react_jsx_runtime.JSX.Element | null;
1805
- declare function CardContent({ className, children, isLoading, fill, }: CardContentProps): react_jsx_runtime.JSX.Element | null;
1806
- declare function CardFooter({ className, children, align, isLoading, }: CardFooterProps): react_jsx_runtime.JSX.Element | null;
1803
+ declare function CardHeader({ title, subtitle, actions, className, isLoading }: CardHeaderProps): react_jsx_runtime.JSX.Element | null;
1804
+ declare function CardMedia({ src, alt, aspectRatio, className, children, isLoading }: CardMediaProps): react_jsx_runtime.JSX.Element | null;
1805
+ declare function CardContent({ className, children, isLoading, fill }: CardContentProps): react_jsx_runtime.JSX.Element | null;
1806
+ declare function CardFooter({ className, children, align, isLoading }: CardFooterProps): react_jsx_runtime.JSX.Element | null;
1807
1807
 
1808
1808
  interface CarouselRootProps extends React$1.HTMLAttributes<HTMLDivElement> {
1809
1809
  /** Current active page (controlled) */
@@ -2803,6 +2803,15 @@ interface DataControlsProps {
2803
2803
  stickyTop?: string;
2804
2804
  /** Z-index for sticky positioning (default: 10) */
2805
2805
  zIndex?: number;
2806
+ /**
2807
+ * Controls the interaction style for sort in narrow containers.
2808
+ *
2809
+ * - `"auto"` (default): Narrow containers use compact sort (icon button → tray).
2810
+ * - `"desktop"`: Use inline Select dropdown for sort even in narrow containers.
2811
+ * Useful when DataControls lives in a narrow panel on a desktop viewport
2812
+ * (e.g., a side panel or split pane aside).
2813
+ */
2814
+ interactionMode?: "auto" | "desktop";
2806
2815
  /** Additional CSS classes */
2807
2816
  className?: string;
2808
2817
  /** Inline styles */
@@ -2850,7 +2859,7 @@ interface DataControlsProps {
2850
2859
  * ```
2851
2860
  */
2852
2861
  declare function DataControls({ search, searchMobileMode: _searchMobileMode, // Deprecated: kept for backward compatibility
2853
- filters, onRemoveFilter, onClearAllFilters, onManageFilters, maxVisibleFilterChips, sort, resultsCount, leftControls, onManageColumns, columnPicker, customControls, actions, sticky, stickyTop, zIndex, className, style, }: DataControlsProps): react_jsx_runtime.JSX.Element | null;
2862
+ filters, onRemoveFilter, onClearAllFilters, onManageFilters, maxVisibleFilterChips, sort, resultsCount, leftControls, onManageColumns, columnPicker, customControls, actions, interactionMode, sticky, stickyTop, zIndex, className, style, }: DataControlsProps): react_jsx_runtime.JSX.Element | null;
2854
2863
 
2855
2864
  interface FilterDialogProps {
2856
2865
  /** Whether the dialog is open */
@@ -2933,7 +2942,7 @@ interface ResultsCountProps {
2933
2942
  * // Renders: loading skeleton
2934
2943
  * ```
2935
2944
  */
2936
- declare function ResultsCount({ count, label, isLoading, className, }: ResultsCountProps): react_jsx_runtime.JSX.Element;
2945
+ declare function ResultsCount({ count, label, isLoading, className }: ResultsCountProps): react_jsx_runtime.JSX.Element;
2937
2946
 
2938
2947
  interface SearchControlProps {
2939
2948
  /** Current search value */
@@ -2992,7 +3001,7 @@ interface ActionCellProps<T = any> extends CellComponentProps<T> {
2992
3001
  * DataTable cell component for rendering action buttons within table rows.
2993
3002
  * Supports multiple actions with icons, labels, and conditional visibility/disabled states.
2994
3003
  */
2995
- declare function ActionCell<T = any>({ row, context, actions, align, size, }: ActionCellProps<T>): react_jsx_runtime.JSX.Element | null;
3004
+ declare function ActionCell<T = any>({ row, context, actions, align, size }: ActionCellProps<T>): react_jsx_runtime.JSX.Element | null;
2996
3005
 
2997
3006
  interface BadgeCellProps<T = any> extends CellComponentProps<T> {
2998
3007
  /** The variant to use - can be static or a function that maps value to variant */
@@ -3241,7 +3250,7 @@ interface CustomCellProps<T = any> extends CellComponentProps<T> {
3241
3250
  * }
3242
3251
  * ```
3243
3252
  */
3244
- declare function CustomCell<T = any>({ value, row, context, render, className, }: CustomCellProps<T>): react_jsx_runtime.JSX.Element;
3253
+ declare function CustomCell<T = any>({ value, row, context, render, className }: CustomCellProps<T>): react_jsx_runtime.JSX.Element;
3245
3254
 
3246
3255
  /**
3247
3256
  * Get alignment classes for cell content
@@ -3773,11 +3782,11 @@ interface MobileRowProps<T> {
3773
3782
  * Automatic mobile card renderer
3774
3783
  * Groups columns by priority and formats them appropriately
3775
3784
  */
3776
- declare function AutoMobileRenderer<T>({ row, columns, density, isLoading, onClick, }: MobileRowProps<T>): react_jsx_runtime.JSX.Element;
3785
+ declare function AutoMobileRenderer<T>({ row, columns, density, isLoading, onClick }: MobileRowProps<T>): react_jsx_runtime.JSX.Element;
3777
3786
  /**
3778
3787
  * Simple card renderer - displays all columns in a simple stacked layout
3779
3788
  */
3780
- declare function CardMobileRenderer<T>({ row, columns, density, isLoading, onClick, }: MobileRowProps<T>): react_jsx_runtime.JSX.Element;
3789
+ declare function CardMobileRenderer<T>({ row, columns, density, isLoading, onClick }: MobileRowProps<T>): react_jsx_runtime.JSX.Element;
3781
3790
 
3782
3791
  /**
3783
3792
  * DateRangePicker
@@ -4437,7 +4446,7 @@ interface SearchResultGroupProps {
4437
4446
  * </SearchResultGroup>
4438
4447
  * ```
4439
4448
  */
4440
- declare function SearchResultGroup({ title, count, isLoading, footer, children, className, }: SearchResultGroupProps): react_jsx_runtime.JSX.Element;
4449
+ declare function SearchResultGroup({ title, count, isLoading, footer, children, className }: SearchResultGroupProps): react_jsx_runtime.JSX.Element;
4441
4450
 
4442
4451
  interface SearchResultItemProps {
4443
4452
  /**
@@ -4534,7 +4543,7 @@ interface SearchResultsListProps {
4534
4543
  * </SearchResultsList>
4535
4544
  * ```
4536
4545
  */
4537
- declare function SearchResultsList({ children, maxHeight, className, }: SearchResultsListProps): react_jsx_runtime.JSX.Element;
4546
+ declare function SearchResultsList({ children, maxHeight, className }: SearchResultsListProps): react_jsx_runtime.JSX.Element;
4538
4547
 
4539
4548
  interface SearchTriggerProps {
4540
4549
  /**
@@ -4875,7 +4884,7 @@ interface InfiniteScrollIndicatorProps {
4875
4884
  * />
4876
4885
  * ```
4877
4886
  */
4878
- declare function InfiniteScrollIndicator({ state, message, className, customIndicator, }: InfiniteScrollIndicatorProps): string | number | bigint | true | 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;
4887
+ declare function InfiniteScrollIndicator({ state, message, className, customIndicator }: InfiniteScrollIndicatorProps): string | number | bigint | true | 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;
4879
4888
 
4880
4889
  type KpiFormatter = ComponentFormatter;
4881
4890
  /**
@@ -5358,7 +5367,7 @@ interface NoticeContainerProps {
5358
5367
  * Container component that positions and animates notices.
5359
5368
  * Renders notices in a portal to ensure they appear above other content.
5360
5369
  */
5361
- declare function NoticeContainer({ notices, onDismiss, position, className, }: NoticeContainerProps): React$1.ReactPortal | null;
5370
+ declare function NoticeContainer({ notices, onDismiss, position, className }: NoticeContainerProps): React$1.ReactPortal | null;
5362
5371
 
5363
5372
  interface NoticeProviderProps {
5364
5373
  /** Child components */
@@ -5624,10 +5633,11 @@ interface PlaceSearchProps {
5624
5633
  proximity?: "ip" | [number, number];
5625
5634
  hideCountry?: boolean;
5626
5635
  showIcon?: boolean;
5636
+ useMobileTray?: boolean;
5627
5637
  className?: string;
5628
5638
  }
5629
5639
  declare function PlaceSearch({ label, selectedKey, defaultSelectedKey, onSelectionChange, placeholder, errorMessage, description, size, tooltip, isRequired, isDisabled, showErrors, autoFocus, onSelect, searchTypes, defaultFilter, validationResult, countryRestrictions, proximity, // Set IP-based location as default
5630
- hideCountry, showIcon, className, }: PlaceSearchProps): react_jsx_runtime.JSX.Element;
5640
+ hideCountry, showIcon, useMobileTray, className, }: PlaceSearchProps): react_jsx_runtime.JSX.Element;
5631
5641
 
5632
5642
  /**
5633
5643
  * Popover
@@ -6615,6 +6625,25 @@ interface BrandProviderProps {
6615
6625
  * These override the default Edges theme variables.
6616
6626
  */
6617
6627
  variables?: BrandVariables;
6628
+ /**
6629
+ * CSS variable overrides to apply when dark mode is active (`.theme-dark`).
6630
+ * Uses the same cascade map as `variables` — overriding `--color-brand-primary`
6631
+ * automatically cascades to derived tokens (action colors, link colors, etc.).
6632
+ *
6633
+ * When omitted, the dark mode theme falls back to Edges defaults.
6634
+ * This is a non-breaking addition — existing consumers are unaffected.
6635
+ *
6636
+ * @example
6637
+ * ```tsx
6638
+ * <BrandProvider
6639
+ * variables={{ '--color-brand-primary': '#2563eb' }}
6640
+ * darkVariables={{ '--color-brand-primary': '#60a5fa' }}
6641
+ * >
6642
+ * <App />
6643
+ * </BrandProvider>
6644
+ * ```
6645
+ */
6646
+ darkVariables?: BrandVariables;
6618
6647
  children: ReactNode;
6619
6648
  }
6620
6649
  /**
@@ -6625,19 +6654,29 @@ interface BrandProviderProps {
6625
6654
  * (like --color-brand-primary), this component automatically cascades
6626
6655
  * the override to derived semantic tokens (action colors, link colors, etc.).
6627
6656
  *
6657
+ * Pass `darkVariables` to provide separate overrides for dark mode (`.theme-dark`).
6658
+ * This is especially useful for ensuring accessible contrast ratios in both modes.
6659
+ *
6660
+ * Both `variables` and `darkVariables` are applied via stylesheet rules (not inline
6661
+ * styles), so dark-mode rules correctly override light-mode rules in `.theme-dark`.
6662
+ *
6628
6663
  * @example
6629
6664
  * ```tsx
6630
6665
  * <BrandProvider
6631
6666
  * variables={{
6632
- * '--color-brand-primary': '#ff6600',
6633
- * '--color-brand-dark': '#cc5200',
6667
+ * '--color-brand-primary': '#2563eb',
6668
+ * '--color-brand-dark': '#1d4ed8',
6669
+ * }}
6670
+ * darkVariables={{
6671
+ * '--color-brand-primary': '#60a5fa',
6672
+ * '--color-brand-dark': '#93c5fd',
6634
6673
  * }}
6635
6674
  * >
6636
6675
  * <App />
6637
6676
  * </BrandProvider>
6638
6677
  * ```
6639
6678
  */
6640
- declare function BrandProvider({ variables, children }: BrandProviderProps): react_jsx_runtime.JSX.Element;
6679
+ declare function BrandProvider({ variables, darkVariables, children }: BrandProviderProps): react_jsx_runtime.JSX.Element;
6641
6680
 
6642
6681
  type ColorMode = "system" | "light" | "dark";
6643
6682
  type ResolvedTheme = "light" | "dark";
package/dist/index.d.ts CHANGED
@@ -2,15 +2,15 @@ import { BreadcrumbProps, BreadcrumbsProps, DateValue, CalendarProps as Calendar
2
2
  export { BreadcrumbProps, BreadcrumbsProps, DialogTrigger } from 'react-aria-components';
3
3
  import * as React$1 from 'react';
4
4
  import React__default, { RefObject, ComponentType, ReactNode, HTMLAttributes, ComponentProps, CSSProperties, Component, ErrorInfo } from 'react';
5
- import { V as FieldValue, W as BooleanFormat, X as FormattedValue, Z as CurrentFormat, _ as DateFormat, $ as DistanceFormat, a0 as EnergyFormat, a1 as CurrencyFormat, a2 as NumberFormat, a3 as PhoneFormat, a4 as PowerFormat, a5 as FormatterFunction, a6 as ResistanceFormat, a7 as TemperatureFormat, a8 as TemperatureUnitString, a9 as TemperatureUnit, aa as TextFormat, ab as VoltageFormat, ac as FieldFormat, e as BaseDataPoint, B as BadgeProps, v as YFormatType, r as TooltipData, ad as DeviceState, ae as GridState, af as ComponentFormatter, ag as LayerSpec, ah as CustomPinsSpec, ai as GeoJsonLayerSpec, aj as RasterLayerSpec, ak as VectorLayerSpec, al as ClusteredVectorLayerSpec } from './colors-Edrb81dY.js';
6
- export { A as ActionItem, am as ActionMenu, a as ActionMenuProps, b as AppShell, c as AppShellProps, an as Avatar, d as AvatarProps, ao as Badge, ap as BaseFormat, aq as ChartContext, C as ChartMargin, ar as CodeEditor, f as CodeEditorProps, g as CodeLanguage, h as CodeTheme, as as ColorSpec, at as ComponentFormatOptions, au as CurrentUnit, av as CustomFormat, aw as DateFormatStyle, ax as DistanceUnit, E as ENTITY_CONFIG, ay as EnergyUnit, i as EntityConfig, j as EntityType, H as Heading, az as InteractiveMap, I as InteractiveMapProps, aA as LayerFeature, aB as LayerStyle, L as Loader, k as Logo, aC as MAP_TYPES, M as MapPoint, aD as Meter, l as MeterProps, aE as MetricFormat, aF as PercentageFormat, aG as PowerUnit, aH as RenderType, aI as ResistanceUnit, S as SegmentOption, aJ as SegmentedControl, m as SegmentedControlProps, n as SideNav, o as SideNavItem, p as SideNavProps, aK as StaticMap, q as StaticMapProps, T as TextLink, aL as TextTransform, aM as TextTruncatePosition, s as TooltipSeries, t as TopNav, u as TopNavProps, aN as VoltageUnit, Y as YFormatSettings, aO as ZoomStops, aP as activeDeviceStates, w as clearColorCache, x as createCategoryColorMap, y as createXScale, z as createYScale, D as defaultMargin, aQ as deviceStateLabels, aR as deviceStateMetricFormats, aS as formatComponentValue, F as getContrastingTextColor, G as getDefaultChartColor, J as getDefaultColors, aT as getDeviceStateDisplayLabel, aT as getDeviceStateLabel, K as getEntityConfig, N as getEntityIcon, O as getEntityLabel, aU as getGridStateLabel, P as getResolvedColor, Q as getThemeCategoricalColors, R as getYFormatSettings, aV as gridStateLabels, aW as isActiveDeviceState, aW as isActiveState, U as isLightColor, aX as useChartContext, aY as useComponentFormatter } from './colors-Edrb81dY.js';
5
+ import { V as FieldValue, W as BooleanFormat, X as FormattedValue, Z as CurrentFormat, _ as DateFormat, $ as DistanceFormat, a0 as EnergyFormat, a1 as CurrencyFormat, a2 as NumberFormat, a3 as PhoneFormat, a4 as PowerFormat, a5 as FormatterFunction, a6 as ResistanceFormat, a7 as TemperatureFormat, a8 as TemperatureUnitString, a9 as TemperatureUnit, aa as TextFormat, ab as VoltageFormat, ac as FieldFormat, e as BaseDataPoint, B as BadgeProps, v as YFormatType, r as TooltipData, ad as DeviceState, ae as GridState, af as ComponentFormatter, ag as LayerSpec, ah as CustomPinsSpec, ai as GeoJsonLayerSpec, aj as RasterLayerSpec, ak as VectorLayerSpec, al as ClusteredVectorLayerSpec } from './colors-BArtDuqU.js';
6
+ export { A as ActionItem, am as ActionMenu, a as ActionMenuProps, b as AppShell, c as AppShellProps, an as Avatar, d as AvatarProps, ao as Badge, ap as BaseFormat, aq as ChartContext, C as ChartMargin, ar as CodeEditor, f as CodeEditorProps, g as CodeLanguage, h as CodeTheme, as as ColorSpec, at as ComponentFormatOptions, au as CurrentUnit, av as CustomFormat, aw as DateFormatStyle, ax as DistanceUnit, E as ENTITY_CONFIG, ay as EnergyUnit, i as EntityConfig, j as EntityType, H as Heading, az as InteractiveMap, I as InteractiveMapProps, aA as LayerFeature, aB as LayerStyle, L as Loader, k as Logo, aC as MAP_TYPES, M as MapPoint, aD as Meter, l as MeterProps, aE as MetricFormat, aF as PercentageFormat, aG as PowerUnit, aH as RenderType, aI as ResistanceUnit, S as SegmentOption, aJ as SegmentedControl, m as SegmentedControlProps, n as SideNav, o as SideNavItem, p as SideNavProps, aK as StaticMap, q as StaticMapProps, T as TextLink, aL as TextTransform, aM as TextTruncatePosition, s as TooltipSeries, t as TopNav, u as TopNavProps, aN as VoltageUnit, Y as YFormatSettings, aO as ZoomStops, aP as activeDeviceStates, w as clearColorCache, x as createCategoryColorMap, y as createXScale, z as createYScale, D as defaultMargin, aQ as deviceStateLabels, aR as deviceStateMetricFormats, aS as formatComponentValue, F as getContrastingTextColor, G as getDefaultChartColor, J as getDefaultColors, aT as getDeviceStateDisplayLabel, aT as getDeviceStateLabel, K as getEntityConfig, N as getEntityIcon, O as getEntityLabel, aU as getGridStateLabel, P as getResolvedColor, Q as getThemeCategoricalColors, R as getYFormatSettings, aV as gridStateLabels, aW as isActiveDeviceState, aW as isActiveState, U as isLightColor, aX as useChartContext, aY as useComponentFormatter } from './colors-BArtDuqU.js';
7
7
  import { Virtualizer } from '@tanstack/react-virtual';
8
8
  import * as react_jsx_runtime from 'react/jsx-runtime';
9
9
  import { I as Icon, S as Size, d as IconName$2, B as BaseInputProps } from './RichTextEditor-7jc4jO7e.js';
10
10
  export { e as BaseProps, C as ClearButton, a as DateField, D as DateFieldProps, f as Description, g as DescriptionPlacement, h as DescriptionProps, i as FieldError, j as FieldErrorProps, k as FieldGroup, l as FieldGroupProps, b as FileUpload, F as FileUploadProps, m as Input, n as InputProps, o as InputStyleProps, p as InputWrapper, L as Label, q as LabelProps, c as RichTextEditor, R as RichTextEditorProps, r as getFieldGroupStyles, s as getInputBackgroundStyles, t as getInputBaseStyles, u as getInputStateStyles, v as useInputFocus } from './RichTextEditor-7jc4jO7e.js';
11
11
  import { D as DialogAction, a as DialogHeaderConfig, b as DialogFooterConfig } from './index-BdDvAxFM.js';
12
12
  export { c as Dialog, d as DialogForm, e as DialogProps, f as Drawer, g as DrawerForm, h as DrawerProps, F as FormActions, i as FormDivider, j as FormGrid, k as FormSection, l as FormStepper, S as SaveBar, U as UnsavedChangesPrompt, u as useWizard } from './index-BdDvAxFM.js';
13
- export { A as Autocomplete, B as Button, C as Checkbox, a as CheckboxGroup, b as ColorField, g as ColorFieldProps, N as NumberField, h as Radio, i as RadioCard, R as RadioCardGroup, j as RadioCardGroupProps, k as RadioCardProps, c as RadioGroup, S as Select, l as SelectItem, d as Switch, T as TextArea, e as TextField, m as TimeField } from './TimeField-BbLIbv0J.js';
13
+ export { A as Autocomplete, B as Button, C as Checkbox, a as CheckboxGroup, b as ColorField, g as ColorFieldProps, N as NumberField, h as Radio, i as RadioCard, R as RadioCardGroup, j as RadioCardGroupProps, k as RadioCardProps, c as RadioGroup, S as Select, l as SelectItem, d as Switch, T as TextArea, e as TextField, m as TimeField } from './TimeField-DUQ94xQz.js';
14
14
  import { ScaleTime, ScaleLinear, ScaleBand } from 'd3-scale';
15
15
  import '@visx/vendor/d3-scale';
16
16
  import 'react-map-gl';
@@ -1434,7 +1434,7 @@ interface UseTableExportReturn {
1434
1434
  * />
1435
1435
  * ```
1436
1436
  */
1437
- declare function useTableExport<T>({ columns, data, metadata, }: UseTableExportOptions<T>): UseTableExportReturn;
1437
+ declare function useTableExport<T>({ columns, data, metadata }: UseTableExportOptions<T>): UseTableExportReturn;
1438
1438
 
1439
1439
  type ActivityFeedVariant = "timeline" | "stacked";
1440
1440
  type ActivityFeedSize = "md" | "sm";
@@ -1793,17 +1793,17 @@ interface CardFooterProps {
1793
1793
  align?: "start" | "end" | "center" | "between";
1794
1794
  isLoading?: boolean;
1795
1795
  }
1796
- declare function Card({ variant, className, children, isLoading, layout, }: CardProps): react_jsx_runtime.JSX.Element;
1796
+ declare function Card({ variant, className, children, isLoading, layout }: CardProps): react_jsx_runtime.JSX.Element;
1797
1797
  declare namespace Card {
1798
1798
  var Header: typeof CardHeader;
1799
1799
  var Media: typeof CardMedia;
1800
1800
  var Content: typeof CardContent;
1801
1801
  var Footer: typeof CardFooter;
1802
1802
  }
1803
- declare function CardHeader({ title, subtitle, actions, className, isLoading, }: CardHeaderProps): react_jsx_runtime.JSX.Element | null;
1804
- declare function CardMedia({ src, alt, aspectRatio, className, children, isLoading, }: CardMediaProps): react_jsx_runtime.JSX.Element | null;
1805
- declare function CardContent({ className, children, isLoading, fill, }: CardContentProps): react_jsx_runtime.JSX.Element | null;
1806
- declare function CardFooter({ className, children, align, isLoading, }: CardFooterProps): react_jsx_runtime.JSX.Element | null;
1803
+ declare function CardHeader({ title, subtitle, actions, className, isLoading }: CardHeaderProps): react_jsx_runtime.JSX.Element | null;
1804
+ declare function CardMedia({ src, alt, aspectRatio, className, children, isLoading }: CardMediaProps): react_jsx_runtime.JSX.Element | null;
1805
+ declare function CardContent({ className, children, isLoading, fill }: CardContentProps): react_jsx_runtime.JSX.Element | null;
1806
+ declare function CardFooter({ className, children, align, isLoading }: CardFooterProps): react_jsx_runtime.JSX.Element | null;
1807
1807
 
1808
1808
  interface CarouselRootProps extends React$1.HTMLAttributes<HTMLDivElement> {
1809
1809
  /** Current active page (controlled) */
@@ -2803,6 +2803,15 @@ interface DataControlsProps {
2803
2803
  stickyTop?: string;
2804
2804
  /** Z-index for sticky positioning (default: 10) */
2805
2805
  zIndex?: number;
2806
+ /**
2807
+ * Controls the interaction style for sort in narrow containers.
2808
+ *
2809
+ * - `"auto"` (default): Narrow containers use compact sort (icon button → tray).
2810
+ * - `"desktop"`: Use inline Select dropdown for sort even in narrow containers.
2811
+ * Useful when DataControls lives in a narrow panel on a desktop viewport
2812
+ * (e.g., a side panel or split pane aside).
2813
+ */
2814
+ interactionMode?: "auto" | "desktop";
2806
2815
  /** Additional CSS classes */
2807
2816
  className?: string;
2808
2817
  /** Inline styles */
@@ -2850,7 +2859,7 @@ interface DataControlsProps {
2850
2859
  * ```
2851
2860
  */
2852
2861
  declare function DataControls({ search, searchMobileMode: _searchMobileMode, // Deprecated: kept for backward compatibility
2853
- filters, onRemoveFilter, onClearAllFilters, onManageFilters, maxVisibleFilterChips, sort, resultsCount, leftControls, onManageColumns, columnPicker, customControls, actions, sticky, stickyTop, zIndex, className, style, }: DataControlsProps): react_jsx_runtime.JSX.Element | null;
2862
+ filters, onRemoveFilter, onClearAllFilters, onManageFilters, maxVisibleFilterChips, sort, resultsCount, leftControls, onManageColumns, columnPicker, customControls, actions, interactionMode, sticky, stickyTop, zIndex, className, style, }: DataControlsProps): react_jsx_runtime.JSX.Element | null;
2854
2863
 
2855
2864
  interface FilterDialogProps {
2856
2865
  /** Whether the dialog is open */
@@ -2933,7 +2942,7 @@ interface ResultsCountProps {
2933
2942
  * // Renders: loading skeleton
2934
2943
  * ```
2935
2944
  */
2936
- declare function ResultsCount({ count, label, isLoading, className, }: ResultsCountProps): react_jsx_runtime.JSX.Element;
2945
+ declare function ResultsCount({ count, label, isLoading, className }: ResultsCountProps): react_jsx_runtime.JSX.Element;
2937
2946
 
2938
2947
  interface SearchControlProps {
2939
2948
  /** Current search value */
@@ -2992,7 +3001,7 @@ interface ActionCellProps<T = any> extends CellComponentProps<T> {
2992
3001
  * DataTable cell component for rendering action buttons within table rows.
2993
3002
  * Supports multiple actions with icons, labels, and conditional visibility/disabled states.
2994
3003
  */
2995
- declare function ActionCell<T = any>({ row, context, actions, align, size, }: ActionCellProps<T>): react_jsx_runtime.JSX.Element | null;
3004
+ declare function ActionCell<T = any>({ row, context, actions, align, size }: ActionCellProps<T>): react_jsx_runtime.JSX.Element | null;
2996
3005
 
2997
3006
  interface BadgeCellProps<T = any> extends CellComponentProps<T> {
2998
3007
  /** The variant to use - can be static or a function that maps value to variant */
@@ -3241,7 +3250,7 @@ interface CustomCellProps<T = any> extends CellComponentProps<T> {
3241
3250
  * }
3242
3251
  * ```
3243
3252
  */
3244
- declare function CustomCell<T = any>({ value, row, context, render, className, }: CustomCellProps<T>): react_jsx_runtime.JSX.Element;
3253
+ declare function CustomCell<T = any>({ value, row, context, render, className }: CustomCellProps<T>): react_jsx_runtime.JSX.Element;
3245
3254
 
3246
3255
  /**
3247
3256
  * Get alignment classes for cell content
@@ -3773,11 +3782,11 @@ interface MobileRowProps<T> {
3773
3782
  * Automatic mobile card renderer
3774
3783
  * Groups columns by priority and formats them appropriately
3775
3784
  */
3776
- declare function AutoMobileRenderer<T>({ row, columns, density, isLoading, onClick, }: MobileRowProps<T>): react_jsx_runtime.JSX.Element;
3785
+ declare function AutoMobileRenderer<T>({ row, columns, density, isLoading, onClick }: MobileRowProps<T>): react_jsx_runtime.JSX.Element;
3777
3786
  /**
3778
3787
  * Simple card renderer - displays all columns in a simple stacked layout
3779
3788
  */
3780
- declare function CardMobileRenderer<T>({ row, columns, density, isLoading, onClick, }: MobileRowProps<T>): react_jsx_runtime.JSX.Element;
3789
+ declare function CardMobileRenderer<T>({ row, columns, density, isLoading, onClick }: MobileRowProps<T>): react_jsx_runtime.JSX.Element;
3781
3790
 
3782
3791
  /**
3783
3792
  * DateRangePicker
@@ -4437,7 +4446,7 @@ interface SearchResultGroupProps {
4437
4446
  * </SearchResultGroup>
4438
4447
  * ```
4439
4448
  */
4440
- declare function SearchResultGroup({ title, count, isLoading, footer, children, className, }: SearchResultGroupProps): react_jsx_runtime.JSX.Element;
4449
+ declare function SearchResultGroup({ title, count, isLoading, footer, children, className }: SearchResultGroupProps): react_jsx_runtime.JSX.Element;
4441
4450
 
4442
4451
  interface SearchResultItemProps {
4443
4452
  /**
@@ -4534,7 +4543,7 @@ interface SearchResultsListProps {
4534
4543
  * </SearchResultsList>
4535
4544
  * ```
4536
4545
  */
4537
- declare function SearchResultsList({ children, maxHeight, className, }: SearchResultsListProps): react_jsx_runtime.JSX.Element;
4546
+ declare function SearchResultsList({ children, maxHeight, className }: SearchResultsListProps): react_jsx_runtime.JSX.Element;
4538
4547
 
4539
4548
  interface SearchTriggerProps {
4540
4549
  /**
@@ -4875,7 +4884,7 @@ interface InfiniteScrollIndicatorProps {
4875
4884
  * />
4876
4885
  * ```
4877
4886
  */
4878
- declare function InfiniteScrollIndicator({ state, message, className, customIndicator, }: InfiniteScrollIndicatorProps): string | number | bigint | true | 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;
4887
+ declare function InfiniteScrollIndicator({ state, message, className, customIndicator }: InfiniteScrollIndicatorProps): string | number | bigint | true | 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;
4879
4888
 
4880
4889
  type KpiFormatter = ComponentFormatter;
4881
4890
  /**
@@ -5358,7 +5367,7 @@ interface NoticeContainerProps {
5358
5367
  * Container component that positions and animates notices.
5359
5368
  * Renders notices in a portal to ensure they appear above other content.
5360
5369
  */
5361
- declare function NoticeContainer({ notices, onDismiss, position, className, }: NoticeContainerProps): React$1.ReactPortal | null;
5370
+ declare function NoticeContainer({ notices, onDismiss, position, className }: NoticeContainerProps): React$1.ReactPortal | null;
5362
5371
 
5363
5372
  interface NoticeProviderProps {
5364
5373
  /** Child components */
@@ -5624,10 +5633,11 @@ interface PlaceSearchProps {
5624
5633
  proximity?: "ip" | [number, number];
5625
5634
  hideCountry?: boolean;
5626
5635
  showIcon?: boolean;
5636
+ useMobileTray?: boolean;
5627
5637
  className?: string;
5628
5638
  }
5629
5639
  declare function PlaceSearch({ label, selectedKey, defaultSelectedKey, onSelectionChange, placeholder, errorMessage, description, size, tooltip, isRequired, isDisabled, showErrors, autoFocus, onSelect, searchTypes, defaultFilter, validationResult, countryRestrictions, proximity, // Set IP-based location as default
5630
- hideCountry, showIcon, className, }: PlaceSearchProps): react_jsx_runtime.JSX.Element;
5640
+ hideCountry, showIcon, useMobileTray, className, }: PlaceSearchProps): react_jsx_runtime.JSX.Element;
5631
5641
 
5632
5642
  /**
5633
5643
  * Popover
@@ -6615,6 +6625,25 @@ interface BrandProviderProps {
6615
6625
  * These override the default Edges theme variables.
6616
6626
  */
6617
6627
  variables?: BrandVariables;
6628
+ /**
6629
+ * CSS variable overrides to apply when dark mode is active (`.theme-dark`).
6630
+ * Uses the same cascade map as `variables` — overriding `--color-brand-primary`
6631
+ * automatically cascades to derived tokens (action colors, link colors, etc.).
6632
+ *
6633
+ * When omitted, the dark mode theme falls back to Edges defaults.
6634
+ * This is a non-breaking addition — existing consumers are unaffected.
6635
+ *
6636
+ * @example
6637
+ * ```tsx
6638
+ * <BrandProvider
6639
+ * variables={{ '--color-brand-primary': '#2563eb' }}
6640
+ * darkVariables={{ '--color-brand-primary': '#60a5fa' }}
6641
+ * >
6642
+ * <App />
6643
+ * </BrandProvider>
6644
+ * ```
6645
+ */
6646
+ darkVariables?: BrandVariables;
6618
6647
  children: ReactNode;
6619
6648
  }
6620
6649
  /**
@@ -6625,19 +6654,29 @@ interface BrandProviderProps {
6625
6654
  * (like --color-brand-primary), this component automatically cascades
6626
6655
  * the override to derived semantic tokens (action colors, link colors, etc.).
6627
6656
  *
6657
+ * Pass `darkVariables` to provide separate overrides for dark mode (`.theme-dark`).
6658
+ * This is especially useful for ensuring accessible contrast ratios in both modes.
6659
+ *
6660
+ * Both `variables` and `darkVariables` are applied via stylesheet rules (not inline
6661
+ * styles), so dark-mode rules correctly override light-mode rules in `.theme-dark`.
6662
+ *
6628
6663
  * @example
6629
6664
  * ```tsx
6630
6665
  * <BrandProvider
6631
6666
  * variables={{
6632
- * '--color-brand-primary': '#ff6600',
6633
- * '--color-brand-dark': '#cc5200',
6667
+ * '--color-brand-primary': '#2563eb',
6668
+ * '--color-brand-dark': '#1d4ed8',
6669
+ * }}
6670
+ * darkVariables={{
6671
+ * '--color-brand-primary': '#60a5fa',
6672
+ * '--color-brand-dark': '#93c5fd',
6634
6673
  * }}
6635
6674
  * >
6636
6675
  * <App />
6637
6676
  * </BrandProvider>
6638
6677
  * ```
6639
6678
  */
6640
- declare function BrandProvider({ variables, children }: BrandProviderProps): react_jsx_runtime.JSX.Element;
6679
+ declare function BrandProvider({ variables, darkVariables, children }: BrandProviderProps): react_jsx_runtime.JSX.Element;
6641
6680
 
6642
6681
  type ColorMode = "system" | "light" | "dark";
6643
6682
  type ResolvedTheme = "light" | "dark";