@nar-bus/lena-ui-shared 1.3.4 → 1.3.6

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
@@ -16,17 +16,23 @@ import { CSSProperties } from 'react';
16
16
  import { DayPicker } from 'react-day-picker';
17
17
  import * as DialogPrimitive from '@radix-ui/react-dialog';
18
18
  import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
19
+ import { Feature } from 'geojson';
20
+ import { FeatureCollection } from 'geojson';
19
21
  import { FieldPath } from 'react-hook-form';
20
22
  import { FieldValues } from 'react-hook-form';
21
23
  import { Group } from 'react-resizable-panels';
22
24
  import { JSX } from 'react/jsx-runtime';
25
+ import { default as L_2 } from 'leaflet';
23
26
  import * as LabelPrimitive from '@radix-ui/react-label';
27
+ import { Layer } from 'leaflet';
28
+ import { LeafletMouseEvent } from 'leaflet';
24
29
  import { LucideIcon } from 'lucide-react';
30
+ import { MultiPolygon } from 'geojson';
25
31
  import { NamedExoticComponent } from 'react';
26
32
  import { Panel } from 'react-resizable-panels';
33
+ import { Polygon } from 'geojson';
27
34
  import * as PopoverPrimitive from '@radix-ui/react-popover';
28
35
  import * as ProgressPrimitive from '@radix-ui/react-progress';
29
- import { QueryKey } from '@tanstack/react-query';
30
36
  import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
31
37
  import * as React_2 from 'react';
32
38
  import { ReactNode } from 'react';
@@ -41,11 +47,15 @@ import * as TabsPrimitive from '@radix-ui/react-tabs';
41
47
  import { ToasterProps } from 'sonner';
42
48
  import * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group';
43
49
  import * as TogglePrimitive from '@radix-ui/react-toggle';
50
+ import { TooltipOptions } from 'leaflet';
44
51
  import * as TooltipPrimitive from '@radix-ui/react-tooltip';
45
52
  import { UseBoundStore } from 'zustand';
53
+ import { useMap } from 'react-leaflet';
46
54
  import { VariantProps } from 'class-variance-authority';
47
55
  import { z } from 'zod';
48
56
 
57
+ declare type AccentPosition = 'left' | 'top';
58
+
49
59
  export declare function Accordion({ ...props }: React_2.ComponentProps<typeof AccordionPrimitive.Root>): JSX.Element;
50
60
 
51
61
  export declare function AccordionContent({ className, children, ...props }: React_2.ComponentProps<typeof AccordionPrimitive.Content>): JSX.Element;
@@ -62,7 +72,7 @@ export declare interface ActiveFiltersBarProps {
62
72
  onFiltersChange: (filters: FilterState[]) => void;
63
73
  }
64
74
 
65
- export declare function AdvancedJsonEditor({ value, onChange, onSave, title, icon: Icon, defaultOpen, maxViewHeight, rows, placeholder, defaultMode, allowModeSwitch, schema, editable, disabled, disabledReason, isSaving, showLineNumbers, showValidation, showStats, }: AdvancedJsonEditorProps): JSX.Element;
75
+ export declare function AdvancedJsonEditor({ value, onChange, onSave, title, icon: Icon, defaultOpen, maxViewHeight, rows, placeholder, defaultMode, allowModeSwitch, schema, editable, disabled, disabledReason, isSaving, showLineNumbers, showValidation, showStats, showToolbarActions, }: AdvancedJsonEditorProps): JSX.Element;
66
76
 
67
77
  export declare interface AdvancedJsonEditorProps {
68
78
  value: string;
@@ -84,6 +94,7 @@ export declare interface AdvancedJsonEditorProps {
84
94
  showLineNumbers?: boolean;
85
95
  showValidation?: boolean;
86
96
  showStats?: boolean;
97
+ showToolbarActions?: boolean;
87
98
  }
88
99
 
89
100
  export declare function Alert({ className, variant, ...props }: React_2.ComponentProps<"div"> & VariantProps<typeof alertVariants>): JSX.Element;
@@ -178,6 +189,28 @@ export declare interface AppSidebarProps {
178
189
  groups?: SidebarNavGroup[];
179
190
  }
180
191
 
192
+ /** Configuration for a single area series */
193
+ export declare interface AreaSeriesConfig {
194
+ /** Data key matching a field in the data array */
195
+ dataKey: string;
196
+ /** Display name (shown in tooltip/legend) */
197
+ name: string;
198
+ /** Stroke color */
199
+ color: string;
200
+ /** Fill gradient colors: [topColor, bottomColor] */
201
+ gradient: GradientPair;
202
+ /** Top gradient stop opacity (default: 0.3) */
203
+ topOpacity?: number;
204
+ /** Bottom gradient stop opacity (default: 0) */
205
+ bottomOpacity?: number;
206
+ /** Stroke width (default: 2) */
207
+ strokeWidth?: number;
208
+ /** Stroke dash pattern (e.g. "6 3") */
209
+ strokeDasharray?: string;
210
+ /** Curve interpolation type (default: "monotone") */
211
+ type?: 'monotone' | 'linear' | 'basis' | 'natural' | 'step';
212
+ }
213
+
181
214
  /**
182
215
  * Operators that use the `values` array instead of single `value`
183
216
  */
@@ -230,6 +263,26 @@ export declare const badgeVariants: (props?: ({
230
263
  variant?: "link" | "default" | "destructive" | "outline" | "secondary" | "ghost" | null | undefined;
231
264
  } & ClassProp) | undefined) => string;
232
265
 
266
+ /** Configuration for a single bar series */
267
+ export declare interface BarSeriesConfig {
268
+ /** Data key matching a field in the data array */
269
+ dataKey: string;
270
+ /** Display name (shown in tooltip/legend) */
271
+ name: string;
272
+ /** Gradient colors: [topColor, bottomColor] */
273
+ gradient: GradientPair;
274
+ /** Top gradient stop opacity (default: 0.95) */
275
+ topOpacity?: number;
276
+ /** Bottom gradient stop opacity (default: 0.8) */
277
+ bottomOpacity?: number;
278
+ /** Stack ID for stacked bars */
279
+ stackId?: string;
280
+ /** Border radius [topLeft, topRight, bottomLeft, bottomRight] */
281
+ radius?: [number, number, number, number];
282
+ /** Maximum bar width in px (default: 28) */
283
+ maxBarSize?: number;
284
+ }
285
+
233
286
  /**
234
287
  * Boolean cell for displaying true/false values.
235
288
  * Shows check/X icons with consistent styling.
@@ -347,6 +400,29 @@ export declare function CardTitle({ className, ...props }: React_2.ComponentProp
347
400
  */
348
401
  export declare function CellNullState(): JSX.Element;
349
402
 
403
+ /** Configuration for a single centroid label on the map */
404
+ export declare interface CentroidLabelConfig {
405
+ /** Label position [lat, lng] */
406
+ position: [number, number];
407
+ /**
408
+ * HTML content for the label.
409
+ * @security Bu değer doğrudan innerHTML olarak render edilir.
410
+ * Kullanıcı girdisi ASLA doğrudan geçilmemeli — sanitize edin.
411
+ */
412
+ html: string;
413
+ /** Icon size [width, height] (default: [50, 18]) */
414
+ iconSize?: [number, number];
415
+ }
416
+
417
+ /** Renders HTML labels at specified positions using Leaflet divIcon markers */
418
+ export declare function CentroidLabels({ labels }: CentroidLabelsProps): null;
419
+
420
+ /** Props for CentroidLabels component */
421
+ export declare interface CentroidLabelsProps {
422
+ /** Array of label configurations */
423
+ labels: CentroidLabelConfig[];
424
+ }
425
+
350
426
  export declare function Checkbox({ className, ...props }: React_2.ComponentProps<typeof CheckboxPrimitive.Root>): JSX.Element;
351
427
 
352
428
  export declare function CheckboxField<TFieldValues extends FieldValues>({ name, control, label, description, disabled, className, cols, }: CheckboxFieldProps<TFieldValues>): JSX.Element;
@@ -472,6 +548,13 @@ export declare interface CommonLabels {
472
548
  addNew: string;
473
549
  }
474
550
 
551
+ /** Compact number formatter for chart Y-axis (1500→"1,5B" TR / "1.5K" EN) */
552
+ export declare function compactNumber(v: number, locale?: 'tr' | 'en'): string;
553
+
554
+ declare function Content({ children, padding, className }: LenaPanelContentProps): JSX.Element;
555
+
556
+ declare type ContentPadding = 'none' | 'compact' | 'sm' | 'md' | 'lg';
557
+
475
558
  export declare function ContextMenu({ ...props }: React_2.ComponentProps<typeof ContextMenuPrimitive.Root>): JSX.Element;
476
559
 
477
560
  export declare function ContextMenuCheckboxItem({ className, children, checked, ...props }: React_2.ComponentProps<typeof ContextMenuPrimitive.CheckboxItem>): JSX.Element;
@@ -668,7 +751,7 @@ export declare function createEmptyFilter(field: string, operator?: FilterState[
668
751
 
669
752
  export declare function CRUDTabContent<T extends {
670
753
  id: number;
671
- }>({ isActive, columns, fieldConfig, defaultSortBy, getRowId, allQueryKey, detailKey, listKey, fetchDetail, fetchList, useSearchHook, deleteItem, isDeleting, detailPath, searchPlaceholder, emptyTitle, emptyDescription, entityType, getEntityName, viewLabel: viewLabelProp, deleteLabel: deleteLabelProp, refreshLabel: refreshLabelProp, createLabel: createLabelProp, CreateSheetComponent, hideToolbar, externalCreateSheetOpen, onExternalCreateSheetOpenChange, }: CRUDTabContentProps<T>): JSX.Element;
754
+ }>({ isActive, columns, fieldConfig, defaultSortBy, getRowId, allQueryKey, useSearchHook, deleteItem, isDeleting, detailPath, searchPlaceholder, emptyTitle, emptyDescription, entityType, getEntityName, viewLabel: viewLabelProp, deleteLabel: deleteLabelProp, refreshLabel: refreshLabelProp, createLabel: createLabelProp, CreateSheetComponent, hideToolbar, externalCreateSheetOpen, onExternalCreateSheetOpenChange, }: CRUDTabContentProps<T>): JSX.Element;
672
755
 
673
756
  export declare interface CRUDTabContentProps<T extends {
674
757
  id: number;
@@ -685,14 +768,6 @@ export declare interface CRUDTabContentProps<T extends {
685
768
  getRowId?: (row: T) => string;
686
769
  /** Query key for invalidation */
687
770
  allQueryKey: readonly string[];
688
- /** Detail query key factory */
689
- detailKey: (id: number) => readonly unknown[];
690
- /** List query key factory */
691
- listKey: (params: SearchRequest) => readonly unknown[];
692
- /** Fetch detail function for prefetch */
693
- fetchDetail: (id: number) => Promise<T>;
694
- /** Fetch list function for prefetch */
695
- fetchList: (params: SearchRequest) => Promise<PagedResponse<T>>;
696
771
  /** Search hook factory */
697
772
  useSearchHook: (params: SearchRequest, enabled: boolean) => {
698
773
  data: PagedResponse<T> | undefined;
@@ -750,7 +825,7 @@ export declare interface DataRowProps {
750
825
  size?: 'sm' | 'md';
751
826
  }
752
827
 
753
- export declare function DataTable<TData>({ columns, getRowId, data, isLoading, error, pagination, onPageChange, onPageSizeChange, onPrefetchPage, pageSizeOptions, sortBy, sortDirection, onSortChange, searchValue, onSearchChange, searchPlaceholder, searchDebounceMs, fieldConfig, filters, onFiltersChange, enableRowSelection, rowSelection, onRowSelectionChange, bulkActions, rowActions, toolbarStart, toolbarEnd, className, toolbarVariant, emptyIcon, emptyTitle, emptyDescription, onRowClick, onRowHover, rowClassName, meta, headerColor, }: DataTableComponentProps<TData>): JSX.Element;
828
+ export declare function DataTable<TData>({ columns, getRowId, data, isLoading, error, pagination, onPageChange, onPageSizeChange, pageSizeOptions, sortBy, sortDirection, onSortChange, searchValue, onSearchChange, searchPlaceholder, searchDebounceMs, fieldConfig, filters, onFiltersChange, enableRowSelection, rowSelection, onRowSelectionChange, bulkActions, rowActions, toolbarStart, toolbarEnd, className, toolbarVariant, emptyIcon, emptyTitle, emptyDescription, onRowClick, rowClassName, meta, headerColor, }: DataTableComponentProps<TData>): JSX.Element;
754
829
 
755
830
  declare interface DataTableActions {
756
831
  setGeneralSearch: (value: string) => void;
@@ -799,7 +874,6 @@ declare interface DataTableComponentProps<TData> {
799
874
  pagination: PaginationInfo;
800
875
  onPageChange: (page: number) => void;
801
876
  onPageSizeChange: (size: number) => void;
802
- onPrefetchPage?: (page: number) => void;
803
877
  pageSizeOptions?: number[];
804
878
  sortBy: string;
805
879
  sortDirection: 'ASC' | 'DESC';
@@ -825,7 +899,6 @@ declare interface DataTableComponentProps<TData> {
825
899
  emptyTitle?: string;
826
900
  emptyDescription?: string;
827
901
  onRowClick?: (row: TData) => void;
828
- onRowHover?: (row: TData) => void;
829
902
  rowClassName?: (row: TData) => string;
830
903
  meta?: Record<string, unknown>;
831
904
  /** Custom header color (CSS color value). Overrides --table-header variable */
@@ -1038,6 +1111,14 @@ declare interface DateRangeFieldProps<TFieldValues extends FieldValues> {
1038
1111
  */
1039
1112
  export declare function dateStringToTimestamp(dateStr: string, endOfDay?: boolean): number;
1040
1113
 
1114
+ export declare const DEFAULT_HOVER_STYLE: {
1115
+ readonly weight: 2.5;
1116
+ readonly color: "var(--map-hover-color)";
1117
+ readonly fillOpacity: 0.9;
1118
+ };
1119
+
1120
+ export declare const DEFAULT_MAP_BG = "var(--map-bg)";
1121
+
1041
1122
  /**
1042
1123
  * Default pagination options
1043
1124
  */
@@ -1055,6 +1136,8 @@ export declare const DEFAULT_PAGINATION: {
1055
1136
  readonly hasPrevious: false;
1056
1137
  };
1057
1138
 
1139
+ export declare const DEFAULT_TILE_URL = "https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png";
1140
+
1058
1141
  /**
1059
1142
  * Default values
1060
1143
  */
@@ -1245,6 +1328,19 @@ declare interface ErrorBoundaryState {
1245
1328
  errorInfo: React.ErrorInfo | null;
1246
1329
  }
1247
1330
 
1331
+ export { Feature }
1332
+
1333
+ export { FeatureCollection }
1334
+
1335
+ /** Style object returned by the feature style function */
1336
+ export declare interface FeatureStyleResult {
1337
+ fillColor: string;
1338
+ weight: number;
1339
+ opacity: number;
1340
+ color: string;
1341
+ fillOpacity: number;
1342
+ }
1343
+
1248
1344
  export declare interface FieldConfig {
1249
1345
  /** API field path - supports dot notation (e.g., 'gatewayModel.id') */
1250
1346
  field: string;
@@ -1372,6 +1468,8 @@ export declare interface FilterState {
1372
1468
  enabled: boolean;
1373
1469
  }
1374
1470
 
1471
+ declare function Footer({ children, className }: LenaPanelFooterProps): JSX.Element;
1472
+
1375
1473
  /**
1376
1474
  * Format backend timestamp to short datetime (e.g., "27 Oca 00:44")
1377
1475
  */
@@ -1532,6 +1630,13 @@ export declare function getStatusColor<T extends string>(value: T | null | undef
1532
1630
  */
1533
1631
  export declare function getTabDirection(tabIds: string[], fromTab: string | null, toTab: string): -1 | 0 | 1;
1534
1632
 
1633
+ /** Gradient stop pair: [topColor, bottomColor] */
1634
+ export declare type GradientPair = [topColor: string, bottomColor: string];
1635
+
1636
+ declare function Header({ children, icon: Icon, iconClassName, subtitle, actions, gradient, className, }: LenaPanelHeaderProps): JSX.Element;
1637
+
1638
+ export declare type HeaderGradient = 'teal' | 'navy' | 'cherry' | 'emerald' | 'amber' | 'violet';
1639
+
1535
1640
  export declare function HeaderQuickSearch({ placeholder, value, onValueChange, open, onOpenChange, loading, shortcutKey, shouldFilter, className, children, }: HeaderQuickSearchProps): JSX.Element;
1536
1641
 
1537
1642
  export declare interface HeaderQuickSearchProps {
@@ -1694,7 +1799,7 @@ export declare interface JsonTextEditorProps {
1694
1799
  disabled?: boolean;
1695
1800
  }
1696
1801
 
1697
- export declare function JsonToolbar({ mode, onModeChange, onFormat, onCopy, isValid, allowModeSwitch, copied, }: JsonToolbarProps): JSX.Element;
1802
+ export declare function JsonToolbar({ mode, onModeChange, onFormat, onCopy, isValid, allowModeSwitch, copied, showActions, }: JsonToolbarProps): JSX.Element;
1698
1803
 
1699
1804
  export declare interface JsonToolbarProps {
1700
1805
  mode: EditorMode;
@@ -1704,6 +1809,7 @@ export declare interface JsonToolbarProps {
1704
1809
  isValid: boolean;
1705
1810
  allowModeSwitch?: boolean;
1706
1811
  copied?: boolean;
1812
+ showActions?: boolean;
1707
1813
  }
1708
1814
 
1709
1815
  export declare function JsonTreeEditor({ value, onChange, maxHeight, disabled, }: JsonTreeEditorProps): JSX.Element;
@@ -1743,8 +1849,134 @@ declare interface JsonViewerProps {
1743
1849
  className?: string;
1744
1850
  }
1745
1851
 
1852
+ export { L_2 as L }
1853
+
1746
1854
  export declare function Label({ className, ...props }: React_2.ComponentProps<typeof LabelPrimitive.Root>): JSX.Element;
1747
1855
 
1856
+ export { Layer }
1857
+
1858
+ export { LeafletMouseEvent }
1859
+
1860
+ export declare function LenaAreaChart<T extends object>({ data, series, xAxisDataKey, height, showLegend, yAxisWidth, yAxisTickFormatter, tooltipItemColor, margin, className, }: LenaAreaChartProps<T>): JSX.Element;
1861
+
1862
+ /** Props for LenaAreaChart */
1863
+ export declare interface LenaAreaChartProps<T extends object> extends LenaChartBaseProps<T> {
1864
+ /** Area series configurations */
1865
+ series: AreaSeriesConfig[];
1866
+ }
1867
+
1868
+ export declare function LenaBarChart<T extends object>({ data, series, xAxisDataKey, height, showLegend, yAxisWidth, yAxisTickFormatter, tooltipItemColor, margin, barCategoryGap, barGap, className, }: LenaBarChartProps<T>): JSX.Element;
1869
+
1870
+ /** Props for LenaBarChart */
1871
+ export declare interface LenaBarChartProps<T extends object> extends LenaChartBaseProps<T> {
1872
+ /** Bar series configurations */
1873
+ series: BarSeriesConfig[];
1874
+ /** Gap between bar categories (default: "20%") */
1875
+ barCategoryGap?: string;
1876
+ /** Gap between bars in same category */
1877
+ barGap?: number;
1878
+ }
1879
+
1880
+ /** Common props shared by all Lena chart components */
1881
+ export declare interface LenaChartBaseProps<T extends object> {
1882
+ /** Chart data array */
1883
+ data: T[];
1884
+ /** Key in data used for the X axis (category axis) */
1885
+ xAxisDataKey: string;
1886
+ /** Chart height in px (default: 180) */
1887
+ height?: number;
1888
+ /** Show legend below the chart */
1889
+ showLegend?: boolean;
1890
+ /** Y-axis width in px (default: 40) */
1891
+ yAxisWidth?: number;
1892
+ /** Custom tooltip item style color override */
1893
+ tooltipItemColor?: string;
1894
+ /** Chart margin override */
1895
+ margin?: {
1896
+ top?: number;
1897
+ right?: number;
1898
+ left?: number;
1899
+ bottom?: number;
1900
+ };
1901
+ /** Custom Y-axis tick formatter (e.g. 420000 → "420K") */
1902
+ yAxisTickFormatter?: (value: number) => string;
1903
+ /** Additional CSS class on the outer container */
1904
+ className?: string;
1905
+ }
1906
+
1907
+ export declare function LenaChoroplethMap({ geojsonData, getFeatureStyle, onEachFeature, center, zoom, minZoom, maxZoom, tileUrl, height, interactive, background, geojsonKey, children, className, }: LenaChoroplethMapProps): JSX.Element;
1908
+
1909
+ /** Props for LenaChoroplethMap */
1910
+ export declare interface LenaChoroplethMapProps {
1911
+ /** GeoJSON FeatureCollection data */
1912
+ geojsonData: FeatureCollection;
1913
+ /** Style function called for each GeoJSON feature */
1914
+ getFeatureStyle: (feature?: Feature) => FeatureStyleResult;
1915
+ /** Event handler for each feature (tooltip binding, click etc.) */
1916
+ onEachFeature?: (feature: Feature, layer: Layer) => void;
1917
+ /** Map center [lat, lng] (default: Turkey center) */
1918
+ center?: [number, number];
1919
+ /** Initial zoom level (default: 6) */
1920
+ zoom?: number;
1921
+ /** Min zoom level */
1922
+ minZoom?: number;
1923
+ /** Max zoom level */
1924
+ maxZoom?: number;
1925
+ /** Tile layer URL template */
1926
+ tileUrl?: string;
1927
+ /** Map container height (default: '100%') */
1928
+ height?: number | string;
1929
+ /** Enable zoom/drag/scroll controls (default: false) */
1930
+ interactive?: boolean;
1931
+ /** Map background color (default: '#f8fafc') */
1932
+ background?: string;
1933
+ /** GeoJSON key for re-rendering when data/filter changes */
1934
+ geojsonKey?: string | number;
1935
+ /** Additional children rendered inside MapContainer (markers, labels etc.) */
1936
+ children?: ReactNode;
1937
+ /** CSS class for outer container */
1938
+ className?: string;
1939
+ }
1940
+
1941
+ export declare const LenaPanel: typeof _LenaPanel & {
1942
+ Header: typeof Header;
1943
+ Content: typeof Content;
1944
+ Footer: typeof Footer;
1945
+ };
1946
+
1947
+ declare function _LenaPanel({ variant, animation, animationDelay, accentBorder, accentColor, className, children, }: LenaPanelProps): JSX.Element;
1948
+
1949
+ export declare interface LenaPanelContentProps {
1950
+ children: ReactNode;
1951
+ padding?: ContentPadding;
1952
+ className?: string;
1953
+ }
1954
+
1955
+ export declare interface LenaPanelFooterProps {
1956
+ children: ReactNode;
1957
+ className?: string;
1958
+ }
1959
+
1960
+ export declare interface LenaPanelHeaderProps {
1961
+ children: ReactNode;
1962
+ icon?: LucideIcon;
1963
+ iconClassName?: string;
1964
+ subtitle?: string;
1965
+ actions?: ReactNode;
1966
+ gradient?: HeaderGradient;
1967
+ className?: string;
1968
+ }
1969
+
1970
+ export declare interface LenaPanelProps {
1971
+ variant?: PanelVariant;
1972
+ animation?: PanelAnimation;
1973
+ animationDelay?: number;
1974
+ accentBorder?: AccentPosition;
1975
+ accentColor?: string;
1976
+ className?: string;
1977
+ children: ReactNode;
1978
+ }
1979
+
1748
1980
  export declare interface LenaUILabels {
1749
1981
  dataTable: DataTableLabels;
1750
1982
  form: FormLabels;
@@ -1818,14 +2050,41 @@ export declare interface LocationMapProps {
1818
2050
  className?: string;
1819
2051
  }
1820
2052
 
2053
+ export declare const MAP_TOOLTIP_OPTIONS: Partial<TooltipOptions>;
2054
+
2055
+ /** Fixes Leaflet map sizing when rendered inside hidden tabs or collapsible panels */
2056
+ export declare function MapSizeInvalidator(): null;
2057
+
1821
2058
  export declare interface MetaInfo {
1822
2059
  timestamp: string;
1823
2060
  version: string;
1824
2061
  requestId: string;
1825
2062
  }
1826
2063
 
2064
+ export declare function MetricCard({ title, value, unit, trend, status, icon, sparklineData, className, animationDelay, isLoading, }: MetricCardProps): JSX.Element;
2065
+
2066
+ export declare interface MetricCardProps {
2067
+ title: string;
2068
+ value: string | number;
2069
+ unit?: string;
2070
+ trend?: {
2071
+ value: number;
2072
+ direction: 'up' | 'down' | 'neutral';
2073
+ };
2074
+ status?: MetricStatus;
2075
+ icon?: ReactNode;
2076
+ sparklineData?: number[];
2077
+ className?: string;
2078
+ animationDelay?: number;
2079
+ isLoading?: boolean;
2080
+ }
2081
+
2082
+ export declare type MetricStatus = 'online' | 'warning' | 'error' | 'neutral';
2083
+
1827
2084
  export declare type MountStrategy = 'eager' | 'lazy-persist' | 'lazy-remount';
1828
2085
 
2086
+ export { MultiPolygon }
2087
+
1829
2088
  export declare function MultiSelectField<TFieldValues extends FieldValues>({ name, control, label, description, required, placeholder: placeholderProp, searchPlaceholder: searchPlaceholderProp, emptyText: emptyTextProp, options, maxItems, disabled, className, cols, errorHint, }: MultiSelectFieldProps<TFieldValues>): JSX.Element;
1830
2089
 
1831
2090
  declare interface MultiSelectFieldProps<TFieldValues extends FieldValues> {
@@ -1922,7 +2181,7 @@ export declare interface OverviewPanelTopBarProps {
1922
2181
  segments: string[];
1923
2182
  actions?: ReactNode;
1924
2183
  className?: string;
1925
- variant?: 'default' | 'navy' | 'cherry' | 'emerald' | 'amber';
2184
+ variant?: 'default' | 'navy' | 'cherry' | 'emerald' | 'amber' | 'teal';
1926
2185
  }
1927
2186
 
1928
2187
  export declare interface PagedResponse<T> {
@@ -1980,6 +2239,10 @@ export declare function PaginationNext({ className, ...props }: React_2.Componen
1980
2239
 
1981
2240
  export declare function PaginationPrevious({ className, ...props }: React_2.ComponentProps<typeof PaginationLink>): JSX.Element;
1982
2241
 
2242
+ declare type PanelAnimation = 'slide-up' | 'slide-down' | 'fade' | 'none';
2243
+
2244
+ declare type PanelVariant = 'elevated' | 'flat' | 'ghost';
2245
+
1983
2246
  /**
1984
2247
  * Parse backend timestamp format (YYYYMMDDHHmmssSSS) to Date
1985
2248
  * Example: 20260127004431907 -> Date(2026, 0, 27, 0, 44, 31)
@@ -2007,6 +2270,8 @@ declare interface PasswordFieldProps<TFieldValues extends FieldValues> {
2007
2270
  errorHint?: string;
2008
2271
  }
2009
2272
 
2273
+ export { Polygon }
2274
+
2010
2275
  export declare function Popover({ ...props }: React_2.ComponentProps<typeof PopoverPrimitive.Root>): JSX.Element;
2011
2276
 
2012
2277
  export declare function PopoverContent({ className, align, sideOffset, ...props }: React_2.ComponentProps<typeof PopoverPrimitive.Content>): JSX.Element;
@@ -2644,7 +2909,7 @@ export declare function Table({ className, ...props }: React_2.ComponentProps<"t
2644
2909
 
2645
2910
  export declare const TABLE_CELL_CLASSES = "px-2.5 py-1.5 text-xs";
2646
2911
 
2647
- export declare const TABLE_CONTAINER_CLASSES = "rounded-lg border border-border/80 bg-card overflow-hidden shadow-sm";
2912
+ export declare const TABLE_CONTAINER_CLASSES = "isolate rounded-lg border border-border/80 bg-card overflow-clip shadow-sm";
2648
2913
 
2649
2914
  export declare const TABLE_HEADER_CLASSES = "px-2 py-0.5 text-xs font-semibold uppercase tracking-wider transition-colors";
2650
2915
 
@@ -2757,7 +3022,7 @@ declare interface TextFieldProps<TFieldValues extends FieldValues> {
2757
3022
  suggestions?: string[];
2758
3023
  }
2759
3024
 
2760
- export declare function Timeline({ items, className, relativeTime, maxItems, emptyMessage, animated, animationDelay, }: TimelineProps): JSX.Element;
3025
+ export declare function Timeline({ items, className, relativeTime, maxItems, emptyMessage, animated, animationDelay, variant, formatDate: formatDateProp, }: TimelineProps): JSX.Element;
2761
3026
 
2762
3027
  export declare interface TimelineItem {
2763
3028
  id: string | number;
@@ -2783,6 +3048,10 @@ declare interface TimelineProps {
2783
3048
  animated?: boolean;
2784
3049
  /** Animation delay offset in ms */
2785
3050
  animationDelay?: number;
3051
+ /** Timeline display variant */
3052
+ variant?: 'default' | 'activity';
3053
+ /** Custom date formatter (overrides built-in relative/absolute) */
3054
+ formatDate?: (date: string | Date | number) => string;
2786
3055
  }
2787
3056
 
2788
3057
  /**
@@ -2851,6 +3120,10 @@ declare interface TreeNodeOperation {
2851
3120
 
2852
3121
  export declare const trLabels: LenaUILabels;
2853
3122
 
3123
+ export declare const TURKEY_CENTER: [number, number];
3124
+
3125
+ export declare const TURKEY_ZOOM = 6;
3126
+
2854
3127
  export declare function UnderConstructionPage({ title, description, homeLabel, onGoHome, }: UnderConstructionPageProps): JSX.Element;
2855
3128
 
2856
3129
  export declare interface UnderConstructionPageProps {
@@ -3062,6 +3335,8 @@ export declare interface UseLazyTabsReturn {
3062
3335
  */
3063
3336
  export declare function useLenaLabels<K extends keyof LenaUILabels>(namespace: K, overrides?: Partial<LenaUILabels[K]>): LenaUILabels[K];
3064
3337
 
3338
+ export { useMap }
3339
+
3065
3340
  /**
3066
3341
  * Hook specifically for numeric ID params (most common case)
3067
3342
  * Returns validated numeric ID or redirects
@@ -3173,47 +3448,6 @@ export declare function useOptimisticPageResponse<T extends {
3173
3448
  deleteItem: (id: number | string) => void;
3174
3449
  };
3175
3450
 
3176
- /**
3177
- * Hook for prefetching list and detail data on hover.
3178
- * Improves perceived performance by loading data before user navigates.
3179
- *
3180
- * @example
3181
- * ```tsx
3182
- * const { prefetchDetail, prefetchPage } = usePrefetch({
3183
- * detailKey: simCardKeys.detail,
3184
- * listKey: simCardKeys.list,
3185
- * fetchDetail: getSimCard,
3186
- * fetchList: searchSimCards,
3187
- * searchParams: table.searchRequest,
3188
- * });
3189
- *
3190
- * <DataTable
3191
- * onRowHover={(row) => prefetchDetail(row.id)}
3192
- * onPrefetchPage={prefetchPage}
3193
- * />
3194
- * ```
3195
- */
3196
- export declare function usePrefetch<TData>({ detailKey, listKey, fetchDetail, fetchList, searchParams, staleTime, }: UsePrefetchOptions<TData>): {
3197
- prefetchDetail: (id: number) => void;
3198
- prefetchPage: (page: number) => void;
3199
- clearPrefetchCache: () => void;
3200
- };
3201
-
3202
- declare interface UsePrefetchOptions<TData> {
3203
- /** Query key factory for detail queries */
3204
- detailKey: (id: number) => QueryKey;
3205
- /** Query key factory for list queries */
3206
- listKey: (params: SearchRequest) => QueryKey;
3207
- /** Function to fetch detail data */
3208
- fetchDetail?: (id: number) => Promise<TData>;
3209
- /** Function to fetch list data */
3210
- fetchList?: (params: SearchRequest) => Promise<unknown>;
3211
- /** Current search params (for pagination prefetch) */
3212
- searchParams?: SearchRequest;
3213
- /** Stale time for prefetched data (default: 30s) */
3214
- staleTime?: number;
3215
- }
3216
-
3217
3451
  /**
3218
3452
  * useTabUrlSync — Synchronizes active tab state with URL search params.
3219
3453
  *