@texturehq/edges 1.13.0 → 1.13.1

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,8 +2,8 @@ import { Key, ValidationResult, BreadcrumbProps, BreadcrumbsProps, ButtonProps a
2
2
  export { BreadcrumbProps, BreadcrumbsProps, DialogTrigger } from 'react-aria-components';
3
3
  import * as React$1 from 'react';
4
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, Y as YFormatType, k as TooltipData, l as IconName$2, m as ComponentFormatter, L as LayerSpec, n as CustomPinsSpec, G as GeoJsonLayerSpec, o as RasterLayerSpec, p as VectorLayerSpec, q as ClusteredVectorLayerSpec } from './server-8T44SFVa.cjs';
6
- export { A as ActionItem, s as ActionMenu, r as ActionMenuProps, u as AppShell, t as AppShellProps, w as Avatar, v as AvatarProps, y as Badge, x as BadgeProps, aF as BaseFormat, am as ChartContext, ao as ChartMargin, K as CodeEditor, z as CodeEditorProps, H as CodeLanguage, J as CodeTheme, Z as ColorSpec, aC as ComponentFormatOptions, aM as CurrentUnit, aP as CustomFormat, O as DateField, M as DateFieldProps, aI as DateFormatStyle, aO as DistanceUnit, aJ as EnergyUnit, S as FileUpload, Q as FileUploadProps, U as Heading, a5 as InteractiveMap, _ as InteractiveMapProps, $ as LayerFeature, a0 as LayerStyle, W as Loader, X as Logo, a6 as MAP_TYPES, a1 as MapPoint, a9 as Meter, a8 as MeterProps, aK as PowerUnit, a2 as RenderType, aN as ResistanceUnit, ab as RichTextEditor, aa as RichTextEditorProps, ad as SegmentOption, ae as SegmentedControl, ac as SegmentedControlProps, ah as SideNav, af as SideNavItem, ag as SideNavProps, a7 as StaticMap, a3 as StaticMapProps, ai as TextLink, aG as TextTransform, aH as TextTruncatePosition, al as TooltipSeries, ak as TopNav, aj as TopNavProps, aL as VoltageUnit, at as YFormatSettings, a4 as ZoomStops, au as clearColorCache, av as createCategoryColorMap, ap as createXScale, aq as createYScale, ar as defaultMargin, aD as formatComponentValue, aw as getContrastingTextColor, ax as getDefaultChartColor, ay as getDefaultColors, az as getResolvedColor, aA as getThemeCategoricalColors, as as getYFormatSettings, aB as isLightColor, an as useChartContext, aE as useComponentFormatter } from './server-8T44SFVa.cjs';
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, Y as YFormatType, k as TooltipData, l as IconName$2, m as ComponentFormatter, L as LayerSpec, n as CustomPinsSpec, G as GeoJsonLayerSpec, o as RasterLayerSpec, p as VectorLayerSpec, q as ClusteredVectorLayerSpec } from './server-BV15KAF4.cjs';
6
+ export { A as ActionItem, s as ActionMenu, r as ActionMenuProps, u as AppShell, t as AppShellProps, w as Avatar, v as AvatarProps, y as Badge, x as BadgeProps, aF as BaseFormat, am as ChartContext, ao as ChartMargin, K as CodeEditor, z as CodeEditorProps, H as CodeLanguage, J as CodeTheme, Z as ColorSpec, aC as ComponentFormatOptions, aM as CurrentUnit, aP as CustomFormat, O as DateField, M as DateFieldProps, aI as DateFormatStyle, aO as DistanceUnit, aJ as EnergyUnit, S as FileUpload, Q as FileUploadProps, U as Heading, a5 as InteractiveMap, _ as InteractiveMapProps, $ as LayerFeature, a0 as LayerStyle, W as Loader, X as Logo, a6 as MAP_TYPES, a1 as MapPoint, a9 as Meter, a8 as MeterProps, aK as PowerUnit, a2 as RenderType, aN as ResistanceUnit, ab as RichTextEditor, aa as RichTextEditorProps, ad as SegmentOption, ae as SegmentedControl, ac as SegmentedControlProps, ah as SideNav, af as SideNavItem, ag as SideNavProps, a7 as StaticMap, a3 as StaticMapProps, ai as TextLink, aG as TextTransform, aH as TextTruncatePosition, al as TooltipSeries, ak as TopNav, aj as TopNavProps, aL as VoltageUnit, at as YFormatSettings, a4 as ZoomStops, au as clearColorCache, av as createCategoryColorMap, ap as createXScale, aq as createYScale, ar as defaultMargin, aD as formatComponentValue, aw as getContrastingTextColor, ax as getDefaultChartColor, ay as getDefaultColors, az as getResolvedColor, aA as getThemeCategoricalColors, as as getYFormatSettings, aB as isLightColor, an as useChartContext, aE as useComponentFormatter } from './server-BV15KAF4.cjs';
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';
@@ -743,6 +743,289 @@ declare function isExportSupported(type: ExportType): boolean;
743
743
  */
744
744
  declare function getExportFormatName(type: ExportType): string;
745
745
 
746
+ /**
747
+ * Data Controls Types
748
+ *
749
+ * Core type definitions for client-side and server-side data filtering,
750
+ * sorting, faceting, and search operations.
751
+ */
752
+ type FilterOperator = "eq" | "neq" | "in" | "nin" | "gt" | "gte" | "lt" | "lte" | "contains" | "startsWith" | "endsWith";
753
+ interface FilterCondition {
754
+ /** Field name (supports nested paths like 'user.profile.name') */
755
+ field: string;
756
+ /** Comparison operator */
757
+ operator: FilterOperator;
758
+ /** Value to compare against */
759
+ value: string | number | boolean | (string | number)[];
760
+ }
761
+ interface FilterGroup {
762
+ /** Logical operator combining conditions */
763
+ logic: "AND" | "OR";
764
+ /** Conditions or nested filter groups */
765
+ conditions: (FilterCondition | FilterGroup)[];
766
+ }
767
+ /** Root filter state - can be empty, a single group, or nested groups */
768
+ type FilterState = FilterGroup | null;
769
+ interface SortState {
770
+ /** Field to sort by (supports nested paths) */
771
+ field: string;
772
+ /** Sort direction */
773
+ direction: "asc" | "desc";
774
+ }
775
+ interface SearchConfig {
776
+ /** Search query string */
777
+ query: string;
778
+ /** Fields to search across */
779
+ fields: string[];
780
+ /** Use fuzzy matching (Fuse.js) - default true */
781
+ fuzzy?: boolean;
782
+ /** Fuse.js matching threshold (0.0 = perfect, 1.0 = anything) - default 0.3 */
783
+ threshold?: number;
784
+ }
785
+ type FacetType = "string" | "number" | "boolean" | "date";
786
+ interface FacetConfig {
787
+ /** Field name to facet on */
788
+ field: string;
789
+ /** Display label for the facet */
790
+ label: string;
791
+ /** Data type of the field */
792
+ type?: FacetType;
793
+ /** Optional: Provide predefined values for the facet (useful for enums) */
794
+ values?: Array<{
795
+ value: string | number;
796
+ label: string;
797
+ }>;
798
+ }
799
+ interface FacetCounts {
800
+ [field: string]: {
801
+ [value: string]: number;
802
+ };
803
+ }
804
+ /**
805
+ * Create a single filter condition
806
+ */
807
+ declare function createFilter(field: string, operator: FilterOperator, value: string | number | boolean | (string | number)[]): FilterCondition;
808
+ /**
809
+ * Create a filter group from multiple conditions with AND logic
810
+ */
811
+ declare function createFilters(conditions: FilterCondition[], logic?: "AND" | "OR"): FilterGroup;
812
+ /**
813
+ * Create an empty filter state
814
+ */
815
+ declare function createEmptyFilter(): FilterGroup;
816
+ /**
817
+ * Check if a filter state is empty (no conditions)
818
+ */
819
+ declare function isFilterEmpty(filter: FilterState): boolean;
820
+ /**
821
+ * Convert structured filter state to simple display chips
822
+ * Used for backward compatibility with existing FilterChips component
823
+ */
824
+ interface FilterChip {
825
+ id: string;
826
+ label: string;
827
+ value: string;
828
+ }
829
+ declare function filterToChips(filter: FilterState, facetConfigs?: FacetConfig[]): FilterChip[];
830
+ /**
831
+ * Add a condition to a filter state
832
+ */
833
+ declare function addFilterCondition(filter: FilterState, condition: FilterCondition): FilterGroup;
834
+ /**
835
+ * Remove a condition from a filter state by field
836
+ */
837
+ declare function removeFilterCondition(filter: FilterState, field: string): FilterGroup;
838
+ /**
839
+ * Get all unique fields being filtered on
840
+ */
841
+ declare function getFilterFields(filter: FilterState): string[];
842
+
843
+ interface UseClientDataControlsOptions<T> {
844
+ /** Raw data to process */
845
+ data: T[];
846
+ /** Filter state */
847
+ filters?: FilterState;
848
+ /** Sort state */
849
+ sort?: SortState | null;
850
+ /** Search configuration */
851
+ search?: SearchConfig | null;
852
+ /** Facet configurations */
853
+ facetConfigs?: FacetConfig[];
854
+ }
855
+ interface UseClientDataControlsResult<T> {
856
+ /** Processed data (filtered, sorted, searched) */
857
+ data: T[];
858
+ /** Facet counts computed from filtered data */
859
+ facetCounts: FacetCounts;
860
+ /** Number of results after filtering/searching */
861
+ resultCount: number;
862
+ }
863
+ /**
864
+ * useClientDataControls
865
+ *
866
+ * Client-side hook for filtering, sorting, searching, and faceting data.
867
+ * Uses memoization to avoid unnecessary recomputation.
868
+ *
869
+ * Operations are applied in this order:
870
+ * 1. Search (fuzzy or exact matching)
871
+ * 2. Filter (structured conditions)
872
+ * 3. Facet computation (on filtered data)
873
+ * 4. Sort
874
+ *
875
+ * @example
876
+ * ```tsx
877
+ * const { data, facetCounts, resultCount } = useClientDataControls({
878
+ * data: rawData,
879
+ * filters: createFilters([
880
+ * createFilter('department', 'in', ['Engineering', 'Sales'])
881
+ * ]),
882
+ * sort: { field: 'name', direction: 'asc' },
883
+ * search: { query: searchQuery, fields: ['name', 'email'] },
884
+ * facetConfigs: [
885
+ * { field: 'department', label: 'Department' },
886
+ * { field: 'status', label: 'Status' }
887
+ * ]
888
+ * });
889
+ * ```
890
+ */
891
+ declare function useClientDataControls<T>({ data, filters, sort, search, facetConfigs, }: UseClientDataControlsOptions<T>): UseClientDataControlsResult<T>;
892
+
893
+ interface ServerDataState {
894
+ filters: FilterState;
895
+ sort: SortState | null;
896
+ search: SearchConfig | null;
897
+ }
898
+ interface UseServerDataControlsOptions {
899
+ /** Filter state */
900
+ filters: FilterState;
901
+ /** Sort state */
902
+ sort: SortState | null;
903
+ /** Search configuration */
904
+ search: SearchConfig | null;
905
+ /** Callback when state changes (debounced for search) */
906
+ onStateChange: (state: ServerDataState) => void;
907
+ /** Search debounce delay in ms (default: 300) */
908
+ searchDebounce?: number;
909
+ }
910
+ /**
911
+ * useServerDataControls
912
+ *
913
+ * Server-side hook that notifies the parent when filter/sort/search state changes.
914
+ * Search queries are debounced to avoid excessive API calls.
915
+ *
916
+ * This hook doesn't manipulate data - it just provides a clean way to:
917
+ * 1. Debounce search input
918
+ * 2. Notify when any state changes
919
+ * 3. Trigger server refetch
920
+ *
921
+ * @example
922
+ * ```tsx
923
+ * const [filters, setFilters] = useState(null);
924
+ * const [sort, setSort] = useState({ field: 'name', direction: 'asc' });
925
+ * const [search, setSearch] = useState({ query: '', fields: ['name'] });
926
+ *
927
+ * useServerDataControls({
928
+ * filters,
929
+ * sort,
930
+ * search,
931
+ * onStateChange: (state) => {
932
+ * // Refetch data with new parameters
933
+ * refetch({
934
+ * filters: state.filters,
935
+ * sort: state.sort,
936
+ * search: state.search?.query
937
+ * });
938
+ * }
939
+ * });
940
+ * ```
941
+ */
942
+ declare function useServerDataControls({ filters, sort, search, onStateChange, searchDebounce, }: UseServerDataControlsOptions): void;
943
+
944
+ interface UseDataControlsClientOptions<T> {
945
+ mode: "client";
946
+ /** Raw data to process (required in client mode) */
947
+ data: T[];
948
+ /** Filter state */
949
+ filters?: FilterState;
950
+ /** Sort state */
951
+ sort?: SortState | null;
952
+ /** Search configuration */
953
+ search?: SearchConfig | null;
954
+ /** Facet configurations */
955
+ facetConfigs?: FacetConfig[];
956
+ }
957
+ interface UseDataControlsServerOptions<T> {
958
+ mode: "server";
959
+ /** Data from server (already filtered/sorted) */
960
+ data: T[];
961
+ /** Filter state */
962
+ filters: FilterState;
963
+ /** Sort state */
964
+ sort: SortState | null;
965
+ /** Search configuration */
966
+ search: SearchConfig | null;
967
+ /** Callback when state changes (required in server mode) */
968
+ onStateChange: (state: ServerDataState) => void;
969
+ /** Search debounce delay in ms (default: 300) */
970
+ searchDebounce?: number;
971
+ /** Result count from server */
972
+ resultCount?: number;
973
+ /** Facet counts from server */
974
+ facetCounts?: FacetCounts;
975
+ }
976
+ type UseDataControlsOptions<T> = UseDataControlsClientOptions<T> | UseDataControlsServerOptions<T>;
977
+ interface UseDataControlsResult<T> {
978
+ /** Processed data (client mode) or server data (server mode) */
979
+ data: T[];
980
+ /** Facet counts (computed in client mode, passed through in server mode) */
981
+ facetCounts: FacetCounts;
982
+ /** Result count (computed in client mode, passed through in server mode) */
983
+ resultCount: number;
984
+ }
985
+ /**
986
+ * useDataControls
987
+ *
988
+ * Unified hook for managing data filtering, sorting, searching, and faceting.
989
+ * Supports both client-side and server-side modes.
990
+ *
991
+ * **Client Mode:**
992
+ * - Processes data locally using pure functions
993
+ * - Computes facet counts automatically
994
+ * - Best for datasets < 5000 rows
995
+ *
996
+ * **Server Mode:**
997
+ * - Notifies parent when state changes (debounced for search)
998
+ * - Passes through server-provided data and counts
999
+ * - Best for large datasets or complex queries
1000
+ *
1001
+ * @example Client Mode
1002
+ * ```tsx
1003
+ * const { data, facetCounts, resultCount } = useDataControls({
1004
+ * mode: 'client',
1005
+ * data: rawData,
1006
+ * filters: createFilters([...]),
1007
+ * sort: { field: 'name', direction: 'asc' },
1008
+ * search: { query: searchQuery, fields: ['name', 'email'] },
1009
+ * facetConfigs: [{ field: 'department', label: 'Department' }]
1010
+ * });
1011
+ * ```
1012
+ *
1013
+ * @example Server Mode
1014
+ * ```tsx
1015
+ * const { data, facetCounts, resultCount } = useDataControls({
1016
+ * mode: 'server',
1017
+ * data: serverData, // Already filtered
1018
+ * filters,
1019
+ * sort,
1020
+ * search,
1021
+ * resultCount: totalCount,
1022
+ * facetCounts: serverFacets,
1023
+ * onStateChange: (state) => refetch(state)
1024
+ * });
1025
+ * ```
1026
+ */
1027
+ declare function useDataControls<T>(options: UseDataControlsOptions<T>): UseDataControlsResult<T>;
1028
+
746
1029
  declare function useDebounce<T>(value: T, delay?: number): T;
747
1030
 
748
1031
  type LoadingState = "idle" | "loading" | "loading-more" | "error";
@@ -1370,7 +1653,7 @@ interface CheckboxProps extends Omit<CheckboxProps$1, "children"> {
1370
1653
  children?: ReactNode | ((props: CheckboxRenderProps) => ReactNode);
1371
1654
  /**
1372
1655
  * Visual variant of the checkbox
1373
- * @default "brand"
1656
+ * @default "default"
1374
1657
  */
1375
1658
  variant?: "default" | "brand";
1376
1659
  }
@@ -1719,12 +2002,16 @@ interface SortOption {
1719
2002
  label: string;
1720
2003
  }
1721
2004
  interface SortControlProps {
1722
- /** Currently selected sort value */
2005
+ /** Currently selected sort value (field name) */
1723
2006
  value: string;
1724
2007
  /** Available sort options */
1725
2008
  options: SortOption[];
1726
2009
  /** Callback when sort selection changes */
1727
2010
  onChange: (value: string) => void;
2011
+ /** Sort direction (optional, for enhanced mode) */
2012
+ direction?: "asc" | "desc";
2013
+ /** Callback when direction changes (optional, for enhanced mode) */
2014
+ onDirectionChange?: (direction: "asc" | "desc") => void;
1728
2015
  /** Whether to show "Sort by:" label */
1729
2016
  showLabel?: boolean;
1730
2017
  /** Size variant */
@@ -1735,10 +2022,10 @@ interface SortControlProps {
1735
2022
  /**
1736
2023
  * SortControl
1737
2024
  *
1738
- * A dropdown for selecting sort order with optional label.
2025
+ * A dropdown for selecting sort order with optional direction toggle.
1739
2026
  * Wraps Select component with consistent styling for data controls.
1740
2027
  *
1741
- * Example usage:
2028
+ * **Basic Mode (backward compatible):**
1742
2029
  * ```tsx
1743
2030
  * <SortControl
1744
2031
  * value={sortBy}
@@ -1747,11 +2034,24 @@ interface SortControlProps {
1747
2034
  * { value: 'date', label: 'Date' }
1748
2035
  * ]}
1749
2036
  * onChange={setSortBy}
1750
- * showLabel={true}
2037
+ * />
2038
+ * ```
2039
+ *
2040
+ * **Enhanced Mode (with direction):**
2041
+ * ```tsx
2042
+ * <SortControl
2043
+ * value={sortField}
2044
+ * direction={sortDirection}
2045
+ * options={[
2046
+ * { value: 'name', label: 'Name' },
2047
+ * { value: 'date', label: 'Date' }
2048
+ * ]}
2049
+ * onChange={setSortField}
2050
+ * onDirectionChange={setSortDirection}
1751
2051
  * />
1752
2052
  * ```
1753
2053
  */
1754
- declare function SortControl({ value, options, onChange, showLabel, size, className, }: SortControlProps): react_jsx_runtime.JSX.Element;
2054
+ declare function SortControl({ value, options, onChange, direction, onDirectionChange, showLabel, size, className, }: SortControlProps): react_jsx_runtime.JSX.Element;
1755
2055
 
1756
2056
  interface DataControlsProps {
1757
2057
  /** Search configuration */
@@ -1779,6 +2079,8 @@ interface DataControlsProps {
1779
2079
  options: SortOption[];
1780
2080
  onChange: (value: string) => void;
1781
2081
  showLabel?: boolean;
2082
+ direction?: "asc" | "desc";
2083
+ onDirectionChange?: (direction: "asc" | "desc") => void;
1782
2084
  };
1783
2085
  /** Results count configuration */
1784
2086
  resultsCount?: {
@@ -1786,6 +2088,12 @@ interface DataControlsProps {
1786
2088
  label?: string;
1787
2089
  isLoading?: boolean;
1788
2090
  };
2091
+ /** Make controls sticky */
2092
+ sticky?: boolean;
2093
+ /** Sticky top offset - useful when stacking below sticky header (default: "0") */
2094
+ stickyTop?: string;
2095
+ /** Z-index for sticky positioning (default: 10) */
2096
+ zIndex?: number;
1789
2097
  /** Additional CSS classes */
1790
2098
  className?: string;
1791
2099
  /** Inline styles */
@@ -1801,6 +2109,11 @@ interface DataControlsProps {
1801
2109
  * All data operations (search, filter, sort) are handled server-side.
1802
2110
  * This component is purely presentational and controlled.
1803
2111
  *
2112
+ * **Features:**
2113
+ * - Optional sticky positioning for data-heavy pages
2114
+ * - Works with PageLayout sticky headers
2115
+ * - Configurable z-index and offset
2116
+ *
1804
2117
  * **Responsive Behavior:**
1805
2118
  * - Narrow containers (< 640px): Two rows - Row 1: inputs (search + filter icon), Row 2: outputs (results + sort + actions)
1806
2119
  * - Wide containers (≥ 640px): Single row with all controls visible
@@ -1828,7 +2141,55 @@ interface DataControlsProps {
1828
2141
  * ```
1829
2142
  */
1830
2143
  declare function DataControls({ search, searchMobileMode: _searchMobileMode, // Deprecated: kept for backward compatibility
1831
- filters, onRemoveFilter, onClearAllFilters, onManageFilters, maxVisibleFilterChips, sort, resultsCount, className, style, }: DataControlsProps): react_jsx_runtime.JSX.Element | null;
2144
+ filters, onRemoveFilter, onClearAllFilters, onManageFilters, maxVisibleFilterChips, sort, resultsCount, sticky, stickyTop, zIndex, className, style, }: DataControlsProps): react_jsx_runtime.JSX.Element | null;
2145
+
2146
+ interface FilterDialogProps {
2147
+ /** Whether the dialog is open */
2148
+ isOpen: boolean;
2149
+ /** Callback when dialog is closed */
2150
+ onClose: () => void;
2151
+ /** Facet configurations defining available filters */
2152
+ facetConfigs: FacetConfig[];
2153
+ /** Optional facet counts to display next to options */
2154
+ facetCounts?: FacetCounts;
2155
+ /** Current filter state */
2156
+ currentFilters: FilterState;
2157
+ /** Callback when filters are applied */
2158
+ onApply: (filters: FilterState) => void;
2159
+ /** Optional callback to clear all filters */
2160
+ onClear?: () => void;
2161
+ /** Dialog title */
2162
+ title?: string;
2163
+ }
2164
+ /**
2165
+ * FilterDialog
2166
+ *
2167
+ * A reusable dialog for applying structured filters to data.
2168
+ * Automatically renders appropriate UI based on facet type and configuration.
2169
+ *
2170
+ * **Supported Facet Types:**
2171
+ * - `string`: Checkbox group for multi-select
2172
+ * - `number`: Min/max range inputs
2173
+ * - `boolean`: Single checkbox
2174
+ *
2175
+ * @example
2176
+ * ```tsx
2177
+ * <FilterDialog
2178
+ * isOpen={isOpen}
2179
+ * onClose={() => setIsOpen(false)}
2180
+ * facetConfigs={[
2181
+ * { field: 'department', label: 'Department', type: 'string' },
2182
+ * { field: 'salary', label: 'Salary', type: 'number' }
2183
+ * ]}
2184
+ * facetCounts={{
2185
+ * department: { Engineering: 10, Sales: 5 }
2186
+ * }}
2187
+ * currentFilters={filters}
2188
+ * onApply={setFilters}
2189
+ * />
2190
+ * ```
2191
+ */
2192
+ declare function FilterDialog({ isOpen, onClose, facetConfigs, facetCounts, currentFilters, onApply, onClear, title, }: FilterDialogProps): react_jsx_runtime.JSX.Element;
1832
2193
 
1833
2194
  interface ResultsCountProps {
1834
2195
  /** Number of results/items */
@@ -2409,7 +2770,7 @@ declare function getInputStateStyles(props: {
2409
2770
  isInvalid?: boolean;
2410
2771
  isDisabled?: boolean;
2411
2772
  isFocused?: boolean;
2412
- }): "border rounded-[var(--control-border-radius)] " | "border rounded-[var(--control-border-radius)] border-border-muted focus:outline-none" | "border rounded-[var(--control-border-radius)] border-feedback-error-border outline-[1.5px] outline-[var(--control-focus-ring-color-error)]" | "border rounded-[var(--control-border-radius)] border-feedback-error-border" | "border rounded-[var(--control-border-radius)] !outline-[1.5px] !outline-[var(--control-focus-ring-color)] ![--tw-outline-style:solid]";
2773
+ }): "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";
2413
2774
  /**
2414
2775
  * Generates background styles based on the transparent and disabled props.
2415
2776
  * Uses Tailwind classes for consistent styling across light/dark modes.
@@ -3211,6 +3572,15 @@ declare function NumberField({ label, description, errorMessage, size, tooltip,
3211
3572
  * </PageLayout.Content>
3212
3573
  * </PageLayout>
3213
3574
  *
3575
+ * With Sticky Header and Scrollable Content (data-heavy pages):
3576
+ * <PageLayout className="flex flex-col min-h-0">
3577
+ * <PageLayout.Header title="..." sticky={true} stickyTop="0" />
3578
+ * <DataControls sticky={true} stickyTop="120px" />
3579
+ * <PageLayout.ScrollableContent>
3580
+ * <DataTable data={data} columns={columns} />
3581
+ * </PageLayout.ScrollableContent>
3582
+ * </PageLayout>
3583
+ *
3214
3584
  * Notes:
3215
3585
  * - Router-agnostic: Breadcrumbs accept either structured items with a Link component, or a custom ReactNode.
3216
3586
  * - Accessible: Header uses h1; Tabs are roving-`tablist`.
@@ -3218,6 +3588,9 @@ declare function NumberField({ label, description, errorMessage, size, tooltip,
3218
3588
  * - Media support: Header can include hero images, maps, or other visual content.
3219
3589
  * - Actions: Right-aligned on desktop, below subtitle on mobile.
3220
3590
  * - Section nav: Automatically extracts navigation from Section children when withSectionNav is enabled.
3591
+ * - Sticky header support: Make headers sticky for data-heavy pages with scrollable content.
3592
+ * - ScrollableContent helper: Ensures proper overflow handling with sticky elements.
3593
+ * - Works with sticky DataControls: Configurable z-index and offset for complex layouts.
3221
3594
  * - Styling: token-oriented utility classes (match to your Tailwind preset/tokens).
3222
3595
  */
3223
3596
  type PageBreadcrumbItem = BreadcrumbItemProps & {
@@ -3237,6 +3610,7 @@ declare namespace PageLayout {
3237
3610
  var Tabs: typeof Tabs$1;
3238
3611
  var Content: typeof Content;
3239
3612
  var Aside: typeof Aside$1;
3613
+ var ScrollableContent: typeof ScrollableContent;
3240
3614
  }
3241
3615
  type PageHeaderProps = {
3242
3616
  title: React__default.ReactNode;
@@ -3252,9 +3626,15 @@ type PageHeaderProps = {
3252
3626
  actions?: React__default.ReactNode[];
3253
3627
  /** Optional slot to replace the default heading element */
3254
3628
  headingAs?: "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
3629
+ /** Make header sticky at top of viewport */
3630
+ sticky?: boolean;
3631
+ /** Sticky top offset in pixels or CSS value (default: "0") */
3632
+ stickyTop?: string;
3633
+ /** Z-index for sticky positioning (default: 10) */
3634
+ zIndex?: number;
3255
3635
  className?: string;
3256
3636
  };
3257
- declare function Header({ title, subtitle, breadcrumbs, breadcrumbsNode, meta, media, actions, headingAs, className, }: PageHeaderProps): react_jsx_runtime.JSX.Element;
3637
+ declare function Header({ title, subtitle, breadcrumbs, breadcrumbsNode, meta, media, actions, headingAs, sticky, stickyTop, zIndex, className, }: PageHeaderProps): react_jsx_runtime.JSX.Element;
3258
3638
  type PageLayoutTab = {
3259
3639
  id: string;
3260
3640
  label: React__default.ReactNode;
@@ -3295,6 +3675,28 @@ type PageAsideProps = {
3295
3675
  className?: string;
3296
3676
  };
3297
3677
  declare function Aside$1({ children, sticky, className }: PageAsideProps): react_jsx_runtime.JSX.Element;
3678
+ type PageScrollableContentProps = {
3679
+ children: React__default.ReactNode;
3680
+ className?: string;
3681
+ };
3682
+ /**
3683
+ * ScrollableContent
3684
+ *
3685
+ * Helper component for creating scrollable content areas within PageLayout.
3686
+ * Commonly used with sticky headers and controls for data-heavy pages.
3687
+ *
3688
+ * Example usage:
3689
+ * ```tsx
3690
+ * <PageLayout className="flex flex-col h-screen">
3691
+ * <PageLayout.Header sticky={true} />
3692
+ * <DataControls sticky={true} stickyTop="120px" />
3693
+ * <PageLayout.ScrollableContent>
3694
+ * <DataTable data={data} columns={columns} />
3695
+ * </PageLayout.ScrollableContent>
3696
+ * </PageLayout>
3697
+ * ```
3698
+ */
3699
+ declare function ScrollableContent({ children, className }: PageScrollableContentProps): react_jsx_runtime.JSX.Element;
3298
3700
 
3299
3701
  interface Place {
3300
3702
  id: string;
@@ -4096,4 +4498,4 @@ interface ColorModeProviderProps {
4096
4498
  }
4097
4499
  declare const ColorModeProvider: React.FC<ColorModeProviderProps>;
4098
4500
 
4099
- 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, 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, 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, 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, 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, ErrorBoundary, type ExportType, FieldError, type FieldErrorProps, FieldFormat, FieldGroup, type FieldGroupProps, FieldValue, FilterChips, type FilterChipsProps, Form, FormatRegistry, FormattedValue, FormatterFunction, GeoJsonLayerSpec, Grid, type GridAlign, type GridCols, type GridFlow, type GridGap, type GridItemProps, type GridJustify, type GridProps, type GridSpan, 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, PhoneFormat, PlaceSearch, Popover, PowerFormat, ProgressBar, Radio, RadioCard, RadioCardGroup, type RadioCardGroupProps, type RadioCardProps, RadioGroup, RangeCalendar, RasterLayerSpec, ResistanceFormat, type ResponsiveValue, ResultsCount, type ResultsCountProps, SKELETON_SIZES, 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, SplitPane, type SplitPaneOrientation, type SplitPanePanelProps, type SplitPaneProps, type StatAlign, type StatFormatter, type StatItem, type StatLayout, StatList, type StatListProps, type StatThreshold, type 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, TimeField, ToggleButton, Tooltip, TooltipData, Tray, type TrayProps, type TrendPoint, type UseBreakpointReturn, type UseInfiniteScrollOptions, type UseInfiniteScrollReturn, VectorLayerSpec, VoltageFormat, YFormatType, autoScaleCurrent, autoScaleDistance, autoScaleEnergy, autoScalePower, autoScaleResistance, autoScaleVoltage, camelCaseToWords, capitalize, celsiusToFahrenheit, celsiusToKelvin, centimetersToInches, createFormat, enumToSentenceCase, exportChart, fahrenheitToCelsius, fahrenheitToKelvin, feetToMeters, feetToMiles, formatBoolean, formatCurrency, formatCurrent, formatDate, formatDistance, formatEmptyValue, formatEnergy, formatFieldValue, formatInternationalPhone, formatNumber, formatPhone, formatPhoneNumber, formatPower, formatResistance, formatTemperature, formatText, formatUSPhone, formatVoltage, getBadgeClasses, getBooleanBadgeVariant, getCellAlignmentClasses, getCellContainerClasses, getCellTextClasses, getDateParts, getExportFormatName, getFieldGroupStyles, getInputBackgroundStyles, getInputBaseStyles, getInputStateStyles, getNumericColorClasses, getSkeletonSize, inchesToCentimeters, isCustomPinsLayer, isExportSupported, isGeoJsonLayer, isNil, isRasterLayer, isVectorLayer, kelvinToCelsius, kelvinToFahrenheit, kilometersToMiles, layer, metersToFeet, metersToMiles, metersToYards, milesToFeet, milesToKilometers, milesToMeters, parseBoolean, 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, useColorMode, useDebounce, useInfiniteScroll, useInputFocus, useLocalStorage, useMediaQuery, useNotice, yardsToMeters };
4501
+ 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, 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, 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, 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, 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, ErrorBoundary, 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, Form, FormatRegistry, FormattedValue, FormatterFunction, GeoJsonLayerSpec, Grid, type GridAlign, type GridCols, type GridFlow, type GridGap, type GridItemProps, type GridJustify, type GridProps, type GridSpan, 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, 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, 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, TimeField, 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, 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, formatCurrency, formatCurrent, formatDate, formatDistance, formatEmptyValue, formatEnergy, formatFieldValue, formatInternationalPhone, formatNumber, formatPhone, formatPhoneNumber, formatPower, formatResistance, formatTemperature, formatText, formatUSPhone, formatVoltage, getBadgeClasses, getBooleanBadgeVariant, getCellAlignmentClasses, getCellContainerClasses, getCellTextClasses, getDateParts, getExportFormatName, getFieldGroupStyles, getFilterFields, getInputBackgroundStyles, getInputBaseStyles, getInputStateStyles, getNumericColorClasses, getSkeletonSize, 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, yardsToMeters };