@texturehq/edges 1.13.1 → 1.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -498,11 +498,42 @@ interface AvatarProps {
498
498
  */
499
499
  declare function Avatar({ src, alt, firstName, lastName, fullName, onClick, size, shape, variant, className, status, bordered, }: AvatarProps): react_jsx_runtime.JSX.Element;
500
500
 
501
+ type DeviceState = "unknown" | "on" | "off" | "idle" | "charging" | "discharging" | "heat" | "eco" | "cool" | "auto";
502
+ type MetricFormat = "percentage" | "kW" | "temperature";
503
+ declare const deviceStateMetricFormats: Record<DeviceState, MetricFormat | undefined>;
504
+ /**
505
+ * Device states that represent active/operational conditions
506
+ * Used for pulsing indicators, priority sorting, etc.
507
+ */
508
+ declare const activeDeviceStates: readonly DeviceState[];
509
+ /**
510
+ * Human-readable labels for device states
511
+ */
512
+ declare const deviceStateLabels: Record<DeviceState, string>;
513
+ /**
514
+ * Check if a device state represents an active/operational state
515
+ */
516
+ declare function isActiveState(state: DeviceState): boolean;
517
+ /**
518
+ * Get human-readable label for a device state
519
+ */
520
+ declare function getDeviceStateLabel(state: DeviceState): string;
521
+
522
+ type GridState = "importing" | "exporting";
523
+ /**
524
+ * Human-readable labels for grid states
525
+ */
526
+ declare const gridStateLabels: Record<GridState, string>;
527
+ /**
528
+ * Get human-readable label for a grid state
529
+ */
530
+ declare function getGridStateLabel(state: GridState): string;
531
+
501
532
  interface BadgeProps {
502
533
  /** The content to display inside the badge */
503
534
  children: React__default.ReactNode;
504
535
  /** Visual variant of the badge */
505
- variant?: "default" | "success" | "error" | "warning" | "info" | "primary" | "secondary" | "neutral";
536
+ variant?: "default" | "success" | "error" | "warning" | "info" | "primary" | "secondary" | "neutral" | DeviceState | GridState;
506
537
  /** Size of the badge */
507
538
  size?: "sm" | "md" | "lg";
508
539
  /** Shape of the badge */
@@ -511,6 +542,8 @@ interface BadgeProps {
511
542
  dot?: boolean;
512
543
  /** Position of the dot */
513
544
  dotPosition?: "left" | "right";
545
+ /** Whether the dot should pulse (animated) */
546
+ dotPulse?: boolean;
514
547
  /** Additional CSS classes */
515
548
  className?: string;
516
549
  }
@@ -519,8 +552,11 @@ interface BadgeProps {
519
552
  *
520
553
  * A non-interactive label for displaying status, counts, or categories.
521
554
  * Use for read-only indicators. For interactive elements, use Chip instead.
555
+ *
556
+ * Supports device states (charging, discharging, heat, cool, etc.) and
557
+ * grid states (importing, exporting) as variant values.
522
558
  */
523
- declare function Badge({ children, variant, size, shape, dot, dotPosition, className, }: BadgeProps): react_jsx_runtime.JSX.Element;
559
+ declare function Badge({ children, variant, size, shape, dot, dotPosition, dotPulse, className, }: BadgeProps): react_jsx_runtime.JSX.Element;
524
560
 
525
561
  type CodeLanguage = "json" | "javascript" | "typescript" | "html" | "css" | "markdown" | "yaml" | "xml" | "python" | "sql";
526
562
  type CodeTheme = "github" | "github_dark";
@@ -1605,7 +1641,7 @@ interface TextLinkProps {
1605
1641
  className?: string;
1606
1642
  external?: boolean;
1607
1643
  title?: string;
1608
- variant?: "default" | "primary" | "muted" | "unstyled";
1644
+ variant?: "default" | "brand" | "muted" | "unstyled";
1609
1645
  onClick?: (e: React.MouseEvent<HTMLAnchorElement>) => void;
1610
1646
  asButton?: boolean;
1611
1647
  onPress?: () => void;
@@ -1662,4 +1698,4 @@ declare const isLightColor: (color: string) => boolean;
1662
1698
  */
1663
1699
  declare const getContrastingTextColor: (backgroundColor: string) => string;
1664
1700
 
1665
- export { type LayerFeature as $, type ActionItem as A, type BooleanFormat as B, type CurrentFormat as C, type DateFormat as D, type EnergyFormat as E, type FieldValue as F, type GeoJsonLayerSpec as G, type CodeLanguage as H, Icon as I, type CodeTheme as J, CodeEditor as K, type LayerSpec as L, type DateFieldProps as M, type NumberFormat as N, DateField as O, type PhoneFormat as P, type FileUploadProps as Q, type ResistanceFormat as R, FileUpload as S, type TemperatureUnitString as T, Heading as U, type VoltageFormat as V, Loader as W, Logo as X, type YFormatType as Y, type ColorSpec as Z, type InteractiveMapProps as _, type FormattedValue as a, type LayerStyle as a0, type MapPoint as a1, type RenderType as a2, type StaticMapProps as a3, type ZoomStops as a4, InteractiveMap as a5, MAP_TYPES as a6, StaticMap as a7, type MeterProps as a8, Meter as a9, getThemeCategoricalColors as aA, isLightColor as aB, type ComponentFormatOptions as aC, formatComponentValue as aD, useComponentFormatter as aE, type BaseFormat as aF, type TextTransform as aG, type TextTruncatePosition as aH, type DateFormatStyle as aI, type EnergyUnit as aJ, type PowerUnit as aK, type VoltageUnit as aL, type CurrentUnit as aM, type ResistanceUnit as aN, type DistanceUnit as aO, type CustomFormat as aP, type RichTextEditorProps as aa, RichTextEditor as ab, type SegmentedControlProps as ac, type SegmentOption as ad, SegmentedControl as ae, type SideNavItem as af, type SideNavProps as ag, SideNav as ah, TextLink as ai, type TopNavProps as aj, TopNav as ak, type TooltipSeries as al, ChartContext as am, useChartContext as an, type ChartMargin as ao, createXScale as ap, createYScale as aq, defaultMargin as ar, getYFormatSettings as as, type YFormatSettings as at, clearColorCache as au, createCategoryColorMap as av, getContrastingTextColor as aw, getDefaultChartColor as ax, getDefaultColors as ay, getResolvedColor as az, type DistanceFormat as b, type CurrencyFormat as c, type PowerFormat as d, type FormatterFunction as e, type TemperatureUnit as f, type TemperatureFormat as g, type TextFormat as h, type FieldFormat as i, type BaseDataPoint as j, type TooltipData as k, type IconName as l, type ComponentFormatter as m, type CustomPinsSpec as n, type RasterLayerSpec as o, type VectorLayerSpec as p, type ClusteredVectorLayerSpec as q, type ActionMenuProps as r, ActionMenu as s, type AppShellProps as t, AppShell as u, type AvatarProps as v, Avatar as w, type BadgeProps as x, Badge as y, type CodeEditorProps as z };
1701
+ export { type ColorSpec as $, type ActionItem as A, type BooleanFormat as B, type CurrentFormat as C, type DateFormat as D, type EnergyFormat as E, type FieldValue as F, type GridState as G, Badge as H, Icon as I, type CodeEditorProps as J, type CodeLanguage as K, type LayerSpec as L, type CodeTheme as M, type NumberFormat as N, CodeEditor as O, type PhoneFormat as P, type DateFieldProps as Q, type ResistanceFormat as R, DateField as S, type TemperatureUnitString as T, type FileUploadProps as U, type VoltageFormat as V, FileUpload as W, Heading as X, type YFormatType as Y, Loader as Z, Logo as _, type FormattedValue as a, type InteractiveMapProps as a0, type LayerFeature as a1, type LayerStyle as a2, type MapPoint as a3, type RenderType as a4, type StaticMapProps as a5, type ZoomStops as a6, InteractiveMap as a7, MAP_TYPES as a8, StaticMap as a9, getDefaultColors as aA, getResolvedColor as aB, getThemeCategoricalColors as aC, isLightColor as aD, type ComponentFormatOptions as aE, formatComponentValue as aF, useComponentFormatter as aG, type BaseFormat as aH, type TextTransform as aI, type TextTruncatePosition as aJ, type DateFormatStyle as aK, type EnergyUnit as aL, type PowerUnit as aM, type VoltageUnit as aN, type CurrentUnit as aO, type ResistanceUnit as aP, type DistanceUnit as aQ, type CustomFormat as aR, type MetricFormat as aS, deviceStateMetricFormats as aT, activeDeviceStates as aU, deviceStateLabels as aV, isActiveState as aW, getDeviceStateLabel as aX, gridStateLabels as aY, getGridStateLabel as aZ, type MeterProps as aa, Meter as ab, type RichTextEditorProps as ac, RichTextEditor as ad, type SegmentedControlProps as ae, type SegmentOption as af, SegmentedControl as ag, type SideNavItem as ah, type SideNavProps as ai, SideNav as aj, TextLink as ak, type TopNavProps as al, TopNav as am, type TooltipSeries as an, ChartContext as ao, useChartContext as ap, type ChartMargin as aq, createXScale as ar, createYScale as as, defaultMargin as at, getYFormatSettings as au, type YFormatSettings as av, clearColorCache as aw, createCategoryColorMap as ax, getContrastingTextColor as ay, getDefaultChartColor as az, type DistanceFormat as b, type CurrencyFormat as c, type PowerFormat as d, type FormatterFunction as e, type TemperatureUnit as f, type TemperatureFormat as g, type TextFormat as h, type FieldFormat as i, type BaseDataPoint as j, type BadgeProps as k, type TooltipData as l, type IconName as m, type DeviceState as n, type ComponentFormatter as o, type CustomPinsSpec as p, type GeoJsonLayerSpec as q, type RasterLayerSpec as r, type VectorLayerSpec as s, type ClusteredVectorLayerSpec as t, type ActionMenuProps as u, ActionMenu as v, type AppShellProps as w, AppShell as x, type AvatarProps as y, Avatar as z };
@@ -498,11 +498,42 @@ interface AvatarProps {
498
498
  */
499
499
  declare function Avatar({ src, alt, firstName, lastName, fullName, onClick, size, shape, variant, className, status, bordered, }: AvatarProps): react_jsx_runtime.JSX.Element;
500
500
 
501
+ type DeviceState = "unknown" | "on" | "off" | "idle" | "charging" | "discharging" | "heat" | "eco" | "cool" | "auto";
502
+ type MetricFormat = "percentage" | "kW" | "temperature";
503
+ declare const deviceStateMetricFormats: Record<DeviceState, MetricFormat | undefined>;
504
+ /**
505
+ * Device states that represent active/operational conditions
506
+ * Used for pulsing indicators, priority sorting, etc.
507
+ */
508
+ declare const activeDeviceStates: readonly DeviceState[];
509
+ /**
510
+ * Human-readable labels for device states
511
+ */
512
+ declare const deviceStateLabels: Record<DeviceState, string>;
513
+ /**
514
+ * Check if a device state represents an active/operational state
515
+ */
516
+ declare function isActiveState(state: DeviceState): boolean;
517
+ /**
518
+ * Get human-readable label for a device state
519
+ */
520
+ declare function getDeviceStateLabel(state: DeviceState): string;
521
+
522
+ type GridState = "importing" | "exporting";
523
+ /**
524
+ * Human-readable labels for grid states
525
+ */
526
+ declare const gridStateLabels: Record<GridState, string>;
527
+ /**
528
+ * Get human-readable label for a grid state
529
+ */
530
+ declare function getGridStateLabel(state: GridState): string;
531
+
501
532
  interface BadgeProps {
502
533
  /** The content to display inside the badge */
503
534
  children: React__default.ReactNode;
504
535
  /** Visual variant of the badge */
505
- variant?: "default" | "success" | "error" | "warning" | "info" | "primary" | "secondary" | "neutral";
536
+ variant?: "default" | "success" | "error" | "warning" | "info" | "primary" | "secondary" | "neutral" | DeviceState | GridState;
506
537
  /** Size of the badge */
507
538
  size?: "sm" | "md" | "lg";
508
539
  /** Shape of the badge */
@@ -511,6 +542,8 @@ interface BadgeProps {
511
542
  dot?: boolean;
512
543
  /** Position of the dot */
513
544
  dotPosition?: "left" | "right";
545
+ /** Whether the dot should pulse (animated) */
546
+ dotPulse?: boolean;
514
547
  /** Additional CSS classes */
515
548
  className?: string;
516
549
  }
@@ -519,8 +552,11 @@ interface BadgeProps {
519
552
  *
520
553
  * A non-interactive label for displaying status, counts, or categories.
521
554
  * Use for read-only indicators. For interactive elements, use Chip instead.
555
+ *
556
+ * Supports device states (charging, discharging, heat, cool, etc.) and
557
+ * grid states (importing, exporting) as variant values.
522
558
  */
523
- declare function Badge({ children, variant, size, shape, dot, dotPosition, className, }: BadgeProps): react_jsx_runtime.JSX.Element;
559
+ declare function Badge({ children, variant, size, shape, dot, dotPosition, dotPulse, className, }: BadgeProps): react_jsx_runtime.JSX.Element;
524
560
 
525
561
  type CodeLanguage = "json" | "javascript" | "typescript" | "html" | "css" | "markdown" | "yaml" | "xml" | "python" | "sql";
526
562
  type CodeTheme = "github" | "github_dark";
@@ -1605,7 +1641,7 @@ interface TextLinkProps {
1605
1641
  className?: string;
1606
1642
  external?: boolean;
1607
1643
  title?: string;
1608
- variant?: "default" | "primary" | "muted" | "unstyled";
1644
+ variant?: "default" | "brand" | "muted" | "unstyled";
1609
1645
  onClick?: (e: React.MouseEvent<HTMLAnchorElement>) => void;
1610
1646
  asButton?: boolean;
1611
1647
  onPress?: () => void;
@@ -1662,4 +1698,4 @@ declare const isLightColor: (color: string) => boolean;
1662
1698
  */
1663
1699
  declare const getContrastingTextColor: (backgroundColor: string) => string;
1664
1700
 
1665
- export { type LayerFeature as $, type ActionItem as A, type BooleanFormat as B, type CurrentFormat as C, type DateFormat as D, type EnergyFormat as E, type FieldValue as F, type GeoJsonLayerSpec as G, type CodeLanguage as H, Icon as I, type CodeTheme as J, CodeEditor as K, type LayerSpec as L, type DateFieldProps as M, type NumberFormat as N, DateField as O, type PhoneFormat as P, type FileUploadProps as Q, type ResistanceFormat as R, FileUpload as S, type TemperatureUnitString as T, Heading as U, type VoltageFormat as V, Loader as W, Logo as X, type YFormatType as Y, type ColorSpec as Z, type InteractiveMapProps as _, type FormattedValue as a, type LayerStyle as a0, type MapPoint as a1, type RenderType as a2, type StaticMapProps as a3, type ZoomStops as a4, InteractiveMap as a5, MAP_TYPES as a6, StaticMap as a7, type MeterProps as a8, Meter as a9, getThemeCategoricalColors as aA, isLightColor as aB, type ComponentFormatOptions as aC, formatComponentValue as aD, useComponentFormatter as aE, type BaseFormat as aF, type TextTransform as aG, type TextTruncatePosition as aH, type DateFormatStyle as aI, type EnergyUnit as aJ, type PowerUnit as aK, type VoltageUnit as aL, type CurrentUnit as aM, type ResistanceUnit as aN, type DistanceUnit as aO, type CustomFormat as aP, type RichTextEditorProps as aa, RichTextEditor as ab, type SegmentedControlProps as ac, type SegmentOption as ad, SegmentedControl as ae, type SideNavItem as af, type SideNavProps as ag, SideNav as ah, TextLink as ai, type TopNavProps as aj, TopNav as ak, type TooltipSeries as al, ChartContext as am, useChartContext as an, type ChartMargin as ao, createXScale as ap, createYScale as aq, defaultMargin as ar, getYFormatSettings as as, type YFormatSettings as at, clearColorCache as au, createCategoryColorMap as av, getContrastingTextColor as aw, getDefaultChartColor as ax, getDefaultColors as ay, getResolvedColor as az, type DistanceFormat as b, type CurrencyFormat as c, type PowerFormat as d, type FormatterFunction as e, type TemperatureUnit as f, type TemperatureFormat as g, type TextFormat as h, type FieldFormat as i, type BaseDataPoint as j, type TooltipData as k, type IconName as l, type ComponentFormatter as m, type CustomPinsSpec as n, type RasterLayerSpec as o, type VectorLayerSpec as p, type ClusteredVectorLayerSpec as q, type ActionMenuProps as r, ActionMenu as s, type AppShellProps as t, AppShell as u, type AvatarProps as v, Avatar as w, type BadgeProps as x, Badge as y, type CodeEditorProps as z };
1701
+ export { type ColorSpec as $, type ActionItem as A, type BooleanFormat as B, type CurrentFormat as C, type DateFormat as D, type EnergyFormat as E, type FieldValue as F, type GridState as G, Badge as H, Icon as I, type CodeEditorProps as J, type CodeLanguage as K, type LayerSpec as L, type CodeTheme as M, type NumberFormat as N, CodeEditor as O, type PhoneFormat as P, type DateFieldProps as Q, type ResistanceFormat as R, DateField as S, type TemperatureUnitString as T, type FileUploadProps as U, type VoltageFormat as V, FileUpload as W, Heading as X, type YFormatType as Y, Loader as Z, Logo as _, type FormattedValue as a, type InteractiveMapProps as a0, type LayerFeature as a1, type LayerStyle as a2, type MapPoint as a3, type RenderType as a4, type StaticMapProps as a5, type ZoomStops as a6, InteractiveMap as a7, MAP_TYPES as a8, StaticMap as a9, getDefaultColors as aA, getResolvedColor as aB, getThemeCategoricalColors as aC, isLightColor as aD, type ComponentFormatOptions as aE, formatComponentValue as aF, useComponentFormatter as aG, type BaseFormat as aH, type TextTransform as aI, type TextTruncatePosition as aJ, type DateFormatStyle as aK, type EnergyUnit as aL, type PowerUnit as aM, type VoltageUnit as aN, type CurrentUnit as aO, type ResistanceUnit as aP, type DistanceUnit as aQ, type CustomFormat as aR, type MetricFormat as aS, deviceStateMetricFormats as aT, activeDeviceStates as aU, deviceStateLabels as aV, isActiveState as aW, getDeviceStateLabel as aX, gridStateLabels as aY, getGridStateLabel as aZ, type MeterProps as aa, Meter as ab, type RichTextEditorProps as ac, RichTextEditor as ad, type SegmentedControlProps as ae, type SegmentOption as af, SegmentedControl as ag, type SideNavItem as ah, type SideNavProps as ai, SideNav as aj, TextLink as ak, type TopNavProps as al, TopNav as am, type TooltipSeries as an, ChartContext as ao, useChartContext as ap, type ChartMargin as aq, createXScale as ar, createYScale as as, defaultMargin as at, getYFormatSettings as au, type YFormatSettings as av, clearColorCache as aw, createCategoryColorMap as ax, getContrastingTextColor as ay, getDefaultChartColor as az, type DistanceFormat as b, type CurrencyFormat as c, type PowerFormat as d, type FormatterFunction as e, type TemperatureUnit as f, type TemperatureFormat as g, type TextFormat as h, type FieldFormat as i, type BaseDataPoint as j, type BadgeProps as k, type TooltipData as l, type IconName as m, type DeviceState as n, type ComponentFormatter as o, type CustomPinsSpec as p, type GeoJsonLayerSpec as q, type RasterLayerSpec as r, type VectorLayerSpec as s, type ClusteredVectorLayerSpec as t, type ActionMenuProps as u, ActionMenu as v, type AppShellProps as w, AppShell as x, type AvatarProps as y, Avatar as z };
package/dist/server.cjs CHANGED
@@ -73,5 +73,5 @@
73
73
  });
74
74
  }
75
75
  })();
76
- `}})]})}function he({src:e,alt:t,firstName:r,lastName:n,fullName:o,onClick:a,size:l="md",shape:d="circle",variant:m="user",className:f,status:g,bordered:C=false}){let M={xs:"h-6 w-6 text-xs",sm:"h-8 w-8 text-sm",md:"h-10 w-10 text-base",lg:"h-12 w-12 text-lg",xl:"h-16 w-16 text-xl"},u={xs:"h-1.5 w-1.5",sm:"h-2 w-2",md:"h-2.5 w-2.5",lg:"h-3 w-3",xl:"h-4 w-4"},h={xs:"bottom-0 right-0",sm:"bottom-0 right-0",md:"bottom-0 right-0",lg:"bottom-0.5 right-0.5",xl:"bottom-1 right-1"},S={online:"bg-feedback-success-background border-feedback-success-border",offline:"bg-text-muted border-border-muted",away:"bg-feedback-warning-background border-feedback-warning-border",busy:"bg-feedback-error-background border-feedback-error-border"},T={user:"bg-action-brand/10 text-action-brand",team:"bg-feedback-info-background text-feedback-info-text",organization:"bg-feedback-success-background text-feedback-success-text"},L=d==="circle"?"rounded-full":"rounded-md",U=tailwindMerge.twMerge("relative inline-flex items-center justify-center overflow-hidden transition-opacity",M[l],L,a&&"cursor-pointer hover:opacity-80",C&&"ring-2 ring-background-surface",f),E=(()=>{if(r||n){let F=r?.[0]||"",H=n?.[0]||"";return (F+H).toUpperCase()}if(o){let F=o.split(" "),H=F[0]?.[0]||"",me=F[F.length-1]?.[0]||"";return H===me?H.toUpperCase():(H+me).toUpperCase()}return ""})(),pe=()=>{let F={xs:14,sm:16,md:20,lg:24,xl:32}[l];switch(m){case "team":return jsxRuntime.jsx(lucideReact.Users,{size:F});case "organization":return jsxRuntime.jsx(lucideReact.Building2,{size:F});default:return jsxRuntime.jsx(lucideReact.User,{size:F})}},mt=()=>e?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("img",{src:e,alt:t||o||"Avatar",className:"h-full w-full object-cover",style:{fontSize:0}}),jsxRuntime.jsx("div",{className:"absolute inset-0 flex items-center justify-center -z-10",children:E?jsxRuntime.jsx("span",{className:"font-semibold",children:E}):pe()})]}):E?jsxRuntime.jsx("span",{className:"font-semibold",children:E}):pe();return jsxRuntime.jsxs("div",{className:"relative inline-block",children:[jsxRuntime.jsx("div",{className:tailwindMerge.twMerge(U,e?"":T[m]),onClick:a,role:a?"button":void 0,tabIndex:a?0:void 0,children:mt()}),g&&jsxRuntime.jsx("span",{className:tailwindMerge.twMerge("absolute border-2 border-background-surface",L,u[l],h[l],S[g]),"aria-label":`Status: ${g}`})]})}var St={xs:"text-lg font-semibold",sm:"text-xl font-semibold",md:"text-2xl font-semibold",lg:"text-3xl font-semibold",xl:"text-4xl font-semibold"},Vt={page:"h-16 leading-[62px]"};function xe({tag:e="h1",size:t="lg",height:r,className:n="",children:o}){let a=St[t],l=r?Vt[r]:"";return jsxRuntime.jsx(e,{className:tailwindMerge.twMerge(a,l,n),children:o})}var Ce=({className:e,size:t=24,color:r="text-action-brand"})=>jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("inline-block animate-spin rounded-full border-2 border-solid border-current border-r-transparent",r,e),style:{width:t,height:t},role:"status","aria-label":"loading",children:jsxRuntime.jsx("span",{className:"sr-only",children:"Loading..."})});var Mt=({href:e,children:t,className:r="",external:n=false,title:o,variant:a="default",onClick:l,asButton:d=false,onPress:m,showArrow:f=false})=>{let g=n?{target:"_blank",rel:"noopener noreferrer"}:{},u=`hover:underline hover:decoration-1 hover:underline-offset-4 hover:decoration-current cursor-pointer ${{default:"text-text-link-default hover:text-text-link-hover visited:text-text-link-default",primary:"text-action-brand hover:text-action-brand-hover visited:text-action-brand",muted:"text-text-muted hover:text-text-muted visited:text-text-muted",unstyled:""}[a]} ${r}`,h=jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[t,f&&jsxRuntime.jsxs("span",{children:["\xA0","\u2192"]})]});return d?jsxRuntime.jsx("button",{type:"button",className:u,onClick:m,title:o,children:h}):jsxRuntime.jsx("a",{href:e||"#",className:u,...g,title:o,onClick:l,children:h})};var W=new Map,$=(e,t="#000000")=>{if(typeof window>"u")return t;let r=e.startsWith("var(")?e.slice(4,-1):e.startsWith("--")?e:`--${e}`;if(!e.startsWith("--")&&!e.startsWith("var(")&&!r.startsWith("--color-")&&(r=`--color-${r.slice(2)}`),W.has(r))return W.get(r);try{let n=document.body||document.documentElement,a=getComputedStyle(n).getPropertyValue(r).trim();if(a)return W.set(r,a),a;let l=document.createElement("div");l.style.color=`var(${r})`,document.body.appendChild(l);let d=getComputedStyle(l).color;return document.body.removeChild(l),d&&d!=="rgb(0, 0, 0)"?(W.set(r,d),d):t}catch(n){return console.warn(`Failed to resolve color for ${e}:`,n),t}},Rt=()=>{W.clear();},Se=()=>{let e=[];for(let t=1;t<=6;t++){let r=$(`--color-viz-categorical-${t}`);r&&e.push(r);}return e.length===0?Ve():e},Ve=()=>["#444ae1","#10b981","#f59e0b","#ef4444","#8b5cf6","#06b6d4","#ec4899","#f97316","#14b8a6","#6366f1"],Lt=()=>$("--color-viz-default","#444ae1"),Ht=(e,t)=>{let r={},n=Se();return e.forEach((o,a)=>{t&&t[o]?r[o]=t[o]:r[o]=n[a%n.length];}),r};var we=e=>{let t=e.match(/\d+/g);if(!t||t.length<3)return true;let[r,n,o]=t.map(Number);return (.299*r+.587*n+.114*o)/255>.5},Dt=e=>we(e)?$("--text-body","#333333"):$("--neutral-white","#ffffff");var Y=class{constructor(){fe(this,"formatters",new Map);}register(t,r){this.formatters.set(t,r);}format(t,r,...n){let o=this.formatters.get(t);return o?o(r,...n):(console.warn(`No formatter registered for key: ${t}`),null)}has(t){return this.formatters.has(t)}keys(){return Array.from(this.formatters.keys())}unregister(t){this.formatters.delete(t);}clear(){this.formatters.clear();}},i=new Y;var V=(e,t="Yes",r="No")=>e==null?null:e?t:r,Wt=e=>V(e,"Enabled","Disabled"),$t=e=>V(e,"On","Off"),vt=e=>V(e,"Active","Inactive"),Pt=e=>V(e,"True","False"),Et=e=>V(e,"\u2713","\u2717"),w=e=>{if(e==null)return null;if(typeof e=="boolean")return e;if(typeof e=="string"){let t=e.toLowerCase().trim();return t==="true"||t==="yes"||t==="1"||t==="on"||t==="enabled"?true:t==="false"||t==="no"||t==="0"||t==="off"||t==="disabled"?false:null}return typeof e=="number"?e!==0:null},ke=(e,t)=>{if(t.hideWhenNull&&e==null)return null;if(e==null)return t.nullText??null;let r=w(e);return r===null?t.nullText??null:V(r,t.trueText??"Yes",t.falseText??"No")};i.register("boolean",(e,t,r)=>{let n=w(e);return n!==null?V(n,typeof t=="string"?t:"Yes",typeof r=="string"?r:"No"):null});i.register("yesNo",e=>{let t=w(e);return t!==null?V(t,"Yes","No"):null});i.register("enabledDisabled",e=>{let t=w(e);return t!==null?Wt(t):null});i.register("onOff",e=>{let t=w(e);return t!==null?$t(t):null});i.register("activeInactive",e=>{let t=w(e);return t!==null?vt(t):null});i.register("trueFalse",e=>{let t=w(e);return t!==null?Pt(t):null});i.register("checkmark",e=>{let t=w(e);return t!==null?Et(t):null});function G({value:e,formatter:t,emptyClassName:r="text-text-muted",emptyText:n="\u2014"}){if(e==null)return jsxRuntime.jsx("span",{className:r,children:n});if(typeof t=="function")return t(e);if(t&&typeof t=="object"){let o=v(e,t);return e instanceof Date&&o?jsxRuntime.jsx("time",{dateTime:e.toISOString(),title:e.toISOString(),children:o}):o||jsxRuntime.jsx("span",{className:r,children:n})}if(!t){if(typeof e=="string")return e;if(e instanceof Date){let o=v(e,{type:"date"});return jsxRuntime.jsx("time",{dateTime:e.toISOString(),title:e.toISOString(),children:o})}if(typeof e=="number")return v(e,{type:"number"});if(typeof e=="boolean")return v(e,{type:"boolean"})}return String(e)}var s=e=>e==null,It=(e,t=0)=>s(e)?null:`${e.toFixed(t)}%`,Zt=e=>s(e)?null:Math.round(e).toString(),At=(e,t=1)=>s(e)?null:e.toFixed(t),_t=(e,t,r=true)=>{if(s(e))return null;let n={useGrouping:r};return t!==void 0&&(n.minimumFractionDigits=t,n.maximumFractionDigits=t),new Intl.NumberFormat("en-US",n).format(e)},Ot=(e,t="short")=>s(e)?null:new Intl.NumberFormat("en-US",{notation:"compact",compactDisplay:t}).format(e),Ut=(e,t=2)=>s(e)?null:e.toExponential(t),Me=(e,t="USD",r)=>{if(s(e))return null;let n={style:"currency",currency:t,currencyDisplay:r?.currencyDisplay??"symbol",useGrouping:r?.thousandsSeparator??true};return r?.minimumFractionDigits!==void 0&&(n.minimumFractionDigits=r.minimumFractionDigits),r?.maximumFractionDigits!==void 0&&(n.maximumFractionDigits=r.maximumFractionDigits),new Intl.NumberFormat("en-US",n).format(e)},Te=(e,t)=>{if(t.hideWhenNull&&e==null||t.hideWhenZero&&e===0)return null;if(e==null)return t.nullText??null;let r=typeof e=="string"?parseFloat(e):Number(e);if(isNaN(r))return t.nullText??null;let n={useGrouping:t.thousandsSeparator??false};return t.decimals!==void 0&&(n.minimumFractionDigits=t.decimals,n.maximumFractionDigits=t.decimals),t.notation&&(n.notation=t.notation,t.notation==="compact"&&t.compactDisplay&&(n.compactDisplay=t.compactDisplay)),t.sign&&(n.signDisplay=t.sign),new Intl.NumberFormat("en-US",n).format(r)},Re=(e,t)=>{if(t.hideWhenNull&&e==null||t.hideWhenZero&&e===0)return null;if(e==null)return t.nullText??null;let r=typeof e=="string"?parseFloat(e):Number(e);return isNaN(r)?t.nullText??null:Me(r,t.currency,t)};i.register("percentage",(e,t)=>typeof e=="number"?It(e,typeof t=="number"?t:0):null);i.register("integer",e=>typeof e=="number"?Zt(e):null);i.register("float",(e,t)=>typeof e=="number"?At(e,typeof t=="number"?t:1):null);i.register("number",(e,t,r)=>{let n=typeof e=="string"?parseFloat(e):Number(e);return isNaN(n)?null:_t(n,typeof t=="number"?t:void 0,typeof r=="boolean"?r:true)});i.register("compact",(e,t)=>typeof e=="number"?Ot(e,t==="long"?"long":"short"):null);i.register("scientific",(e,t)=>typeof e=="number"?Ut(e,typeof t=="number"?t:2):null);i.register("currency",(e,t,r)=>typeof e=="number"?Me(e,typeof t=="string"?t:"USD",typeof r=="object"&&r!==null?r:{}):null);var Le=(e,t=0)=>{if(s(e))return null;let r=e*1e3;return t===0?`${Math.round(r)} mA`:`${r.toFixed(t)} mA`},K=(e,t=1)=>s(e)?null:`${e.toFixed(t)} A`,He=(e,t=2)=>s(e)?null:`${(e/1e3).toFixed(t)} kA`,Bt=(e,t)=>{if(s(e))return null;let r=Math.abs(e);return r>=1e3?He(e,t??2):r<1?Le(e,t??0):K(e,t??1)},J=(e,t)=>{if(t.hideWhenNull&&e==null||t.hideWhenZero&&e===0)return null;if(e==null)return t.nullText??null;let r=typeof e=="string"?parseFloat(e):Number(e);if(isNaN(r))return t.nullText??null;let n=t.decimals;if(t.unit)switch(t.unit){case "kA":return He(r,n??2);case "mA":return Le(r,n??0);case "A":return K(r,n??1)}return t.autoScale!==false?Bt(r,n):K(r,n??1)};i.register("current",J);var R=e=>{if(e==null)return null;if(e instanceof Date)return luxon.DateTime.fromJSDate(e);if(typeof e=="string"){let t=luxon.DateTime.fromISO(e);return t.isValid?t:null}if(typeof e=="number"){let t=luxon.DateTime.fromMillis(e);return t.isValid?t:null}return null},jt=(e,t=false,r)=>{if(!e)return null;let n=R(e);if(!n)return "Invalid Date";let o=r?n.setZone(r):n;return t?o.toLocaleString(luxon.DateTime.DATETIME_SHORT):o.toLocaleString(luxon.DateTime.DATE_SHORT)},zt=e=>{if(!e)return null;let t=R(e);return t?t.toRelative():"Invalid Date"},Yt=(e,t)=>{if(!e)return null;let r=R(e);return r?(t?r.setZone(t):r).toLocaleString(luxon.DateTime.DATETIME_MED_WITH_WEEKDAY):"Invalid Date"},Gt=e=>{if(!e)return null;let t=R(e);return t?t.toISO():null},Kt=(e,t,r)=>{if(!e)return null;let n=R(e);return n?(r?n.setZone(r):n).toFormat(t):"Invalid Date"};var De=(e,t)=>{if(t.hideWhenNull&&e==null)return null;if(e==null)return t.nullText??null;let r=R(e);if(!r)return t.nullText??"Invalid Date";let n=t.timezone?r.setZone(t.timezone):r;if(t.relative)return n.toRelative();if(t.format)return n.toFormat(t.format);if(t.dateStyle||t.timeStyle){let o={};if(t.dateStyle)switch(t.dateStyle){case "short":o.date=luxon.DateTime.DATE_SHORT;break;case "medium":o.date=luxon.DateTime.DATE_MED;break;case "long":o.date=luxon.DateTime.DATE_FULL;break;case "full":o.date=luxon.DateTime.DATE_HUGE;break}if(t.timeStyle)switch(t.timeStyle){case "short":o.time=luxon.DateTime.TIME_SIMPLE;break;case "medium":o.time=luxon.DateTime.TIME_WITH_SECONDS;break;case "long":case "full":o.time=luxon.DateTime.TIME_WITH_SHORT_OFFSET;break}if(o.date&&o.time)return n.toLocaleString({...o.date,...o.time});if(o.date)return n.toLocaleString(o.date);if(o.time)return n.toLocaleString(o.time)}return n.toLocaleString(luxon.DateTime.DATETIME_SHORT)};i.register("date",(e,t,r)=>jt(e,typeof t=="boolean"?t:false,typeof r=="string"?r:void 0));i.register("relativeTime",e=>zt(e));i.register("fullDateTime",(e,t)=>Yt(e,typeof t=="string"?t:void 0));i.register("isoString",e=>Gt(e));i.register("customDateFormat",(e,t,r)=>typeof t=="string"?Kt(e,t,typeof r=="string"?r:void 0):null);var q=(e,t=1)=>s(e)?null:`${e.toFixed(t)} m`,Jt=(e,t=1)=>s(e)?null:`${(e*100).toFixed(t)} cm`,qt=(e,t=0)=>s(e)?null:`${(e*1e3).toFixed(t)} mm`,X=(e,t=1)=>s(e)?null:`${(e/1e3).toFixed(t)} km`,Q=(e,t=0)=>s(e)?null:`${e.toFixed(t)} ft`,Xt=(e,t=1)=>s(e)?null:`${e.toFixed(t)} in`,ee=(e,t=1)=>s(e)?null:`${e.toFixed(t)} mi`,te=(e,t=0)=>s(e)?null:`${e.toFixed(t)} yd`;var We=e=>e*5280;var $e=(e,t=false,r=1)=>{if(s(e))return null;let n=Math.abs(e);return t?n>=1e3?X(e,r):n<.01?qt(e,0):n<1?Jt(e,r):q(e,r):n<.01?Q(We(e),0):n<.1?te(We(e)/3,0):ee(e,r)},ve=(e,t)=>{if(t.hideWhenNull&&e==null||t.hideWhenZero&&e===0)return null;if(e==null)return t.nullText??null;let r=typeof e=="string"?parseFloat(e):Number(e);if(isNaN(r))return t.nullText??null;let n=t.decimals??1;if(t.autoScale){let o=t.unit==="m"||t.unit==="km";return $e(r,o,n)}switch(t.unit){case "km":return X(r,n);case "ft":return Q(r,n);case "mi":return ee(r,n);case "yd":return te(r,n);case "m":default:return q(r,n)}};i.register("miles",(e,t)=>typeof e=="number"?ee(e,typeof t=="number"?t:1):null);i.register("kilometers",(e,t)=>typeof e=="number"?X(e,typeof t=="number"?t:1):null);i.register("meters",(e,t)=>typeof e=="number"?q(e,typeof t=="number"?t:1):null);i.register("feet",(e,t)=>typeof e=="number"?Q(e,typeof t=="number"?t:0):null);i.register("yards",(e,t)=>typeof e=="number"?te(e,typeof t=="number"?t:0):null);i.register("inches",(e,t)=>typeof e=="number"?Xt(e,typeof t=="number"?t:1):null);i.register("autoScaleDistance",(e,t,r)=>typeof e=="number"?$e(e,typeof t=="boolean"?t:false,typeof r=="number"?r:1):null);var re=(e,t=1)=>s(e)?null:`${e.toFixed(t)} Wh`,ne=(e,t=1)=>s(e)?null:`${(e/1e3).toFixed(t)} kWh`,Pe=(e,t=1)=>s(e)?null:`${(e/1e6).toFixed(t)} MWh`,Ee=(e,t=1)=>s(e)?null:`${(e/1e9).toFixed(t)} GWh`,Ie=(e,t=1)=>{if(s(e))return null;let r=Math.abs(e);return r>=1e9?Ee(e,t):r>=1e6?Pe(e,t):r>=1e3?ne(e,t):re(e,t)},oe=(e,t)=>{if(t.hideWhenNull&&e==null||t.hideWhenZero&&e===0)return null;if(e==null)return t.nullText??null;let r=typeof e=="string"?parseFloat(e):Number(e);if(isNaN(r))return t.nullText??null;let n=t.decimals??1;if(t.unit)switch(t.unit){case "GWh":return Ee(r,n);case "MWh":return Pe(r,n);case "kWh":return ne(r,n);case "Wh":return re(r,n)}return t.autoScale!==false?Ie(r,n):re(r,n)};i.register("kWh",e=>typeof e=="number"?ne(e):null);i.register("autoScaleEnergy",(e,t)=>typeof e=="number"?Ie(e,typeof t=="number"?t:1):null);i.register("energy",oe);var _=e=>{if(!e)return null;let t=e.replace(/\D/g,"");return t.length===10?t.replace(/(\d{3})(\d{3})(\d{4})/,"($1) $2-$3"):t.length===11&&t.startsWith("1")?t.replace(/1(\d{3})(\d{3})(\d{4})/,"+1 ($1) $2-$3"):e},ie=e=>{if(!e)return null;let t=e.replace(/[^\d+]/g,"");return t.startsWith("+")?t.length===12&&t.startsWith("+1")?t.replace(/\+1(\d{3})(\d{3})(\d{4})/,"+1 ($1) $2-$3"):t.length===13&&t.startsWith("+44")?t.replace(/\+44(\d{2})(\d{4})(\d{4})/,"+44 $1 $2 $3"):t.replace(/(\+\d{1,3})(\d{3,4})(\d{3,4})(\d{3,4})?/,"$1 $2 $3 $4").trim():_(e)},Ze=e=>e?e.startsWith("+")||e.length>11?ie(e):_(e):null,Ae=(e,t)=>{if(t.hideWhenNull&&e==null)return null;if(e==null)return t.nullText??null;let r=String(e);if(t.international)return ie(r);switch(t.country){case "US":case "CA":return _(r);default:return Ze(r)}};i.register("phoneNumber",e=>typeof e=="string"?Ze(e):null);i.register("usPhone",e=>typeof e=="string"?_(e):null);i.register("internationalPhone",e=>typeof e=="string"?ie(e):null);var se=(e,t=0)=>s(e)?null:t===0?`${Math.round(e)} W`:`${e.toFixed(t)} W`,_e=(e,t=1)=>s(e)?null:`${(e/1e3).toFixed(t)} kW`,Oe=(e,t=1)=>s(e)?null:`${(e/1e6).toFixed(t)} MW`,Ue=(e,t=2)=>s(e)?null:`${(e/1e9).toFixed(t)} GW`,Qt=(e,t)=>{if(s(e))return null;let r=Math.abs(e);return r>=1e9?Ue(e,t??2):r>=1e6?Oe(e,t??1):r>=1e3?_e(e,t??1):se(e,t??0)},le=(e,t)=>{if(t.hideWhenNull&&e==null||t.hideWhenZero&&e===0)return null;if(e==null)return t.nullText??null;let r=typeof e=="string"?parseFloat(e):Number(e);if(isNaN(r))return t.nullText??null;let n=t.decimals;if(t.unit)switch(t.unit){case "GW":return Ue(r,n??2);case "MW":return Oe(r,n??1);case "kW":return _e(r,n??1);case "W":return se(r,n??0)}return t.autoScale!==false?Qt(r,n):se(r,n??0)};i.register("power",le);var ue=(e,t=1)=>s(e)?null:`${(e*1e3).toFixed(t)} m\u03A9`,O=(e,t=1)=>s(e)?null:`${e.toFixed(t)} \u03A9`,Be=(e,t=1)=>s(e)?null:`${(e/1e3).toFixed(t)} k\u03A9`,je=(e,t=2)=>s(e)?null:`${(e/1e6).toFixed(t)} M\u03A9`,er=(e,t)=>{if(s(e))return null;let r=Math.abs(e);return r>=1e6?je(e,t??2):r>=1e3?Be(e,t??1):r<1?ue(e,t??1):O(e,t??1)},ae=(e,t)=>{if(t.hideWhenNull&&e==null||t.hideWhenZero&&e===0)return null;if(e==null)return t.nullText??null;let r=typeof e=="string"?parseFloat(e):Number(e);if(isNaN(r))return t.nullText??null;let n=t.decimals;if(t.unit)switch(t.unit){case "M\u03A9":return je(r,n??2);case "k\u03A9":return Be(r,n??1);case "m\u03A9":return ue(r,n??1);case "\u03A9":return O(r,n??1)}return t.autoScale!==false?er(r,n):O(r,n??1)};i.register("resistance",ae);i.register("ohms",e=>typeof e=="number"?O(e):null);i.register("milliohms",e=>typeof e=="number"?ue(e):null);var ze=e=>{switch(e){case "FAHRENHEIT":return "F";case "CELSIUS":return "C";case "KELVIN":return "K";default:return "F"}},Ye=(e,t=0)=>s(e)?null:`${e.toFixed(t)}\xB0F`,Ge=(e,t=true,r=0)=>s(e)?null:`${(t?(e-32)*(5/9):e).toFixed(r)}\xB0C`,Ke=(e,t=true,r=0)=>s(e)?null:`${(t?(e-32)*(5/9)+273.15:e+273.15).toFixed(r)}K`;var Je=(e,t="F",r=0)=>{if(s(e))return null;switch(typeof t=="string"&&t.length>1?ze(t):t){case "C":return Ge(e,true,r);case "K":return Ke(e,true,r);case "F":default:return Ye(e,r)}},qe=(e,t)=>{if(t.hideWhenNull&&e==null)return null;if(e==null)return t.nullText??null;let r=typeof e=="string"?parseFloat(e):Number(e);if(isNaN(r))return t.nullText??null;let n=t.decimals??0,o=t.unit??"F";if(t.showUnit===false)switch(typeof o=="string"&&o.length>1?ze(o):o){case "C":return ((r-32)*.5555555555555556).toFixed(n);case "K":return ((r-32)*.5555555555555556+273.15).toFixed(n);case "F":default:return r.toFixed(n)}return Je(r,o,n)};i.register("temperature",(e,t,r)=>typeof e=="number"?Je(e,typeof t=="string"?t:"F",typeof r=="number"?r:0):null);i.register("fahrenheit",(e,t)=>typeof e=="number"?Ye(e,typeof t=="number"?t:0):null);i.register("celsius",(e,t,r)=>typeof e=="number"?Ge(e,typeof t=="boolean"?t:true,typeof r=="number"?r:0):null);i.register("kelvin",(e,t,r)=>typeof e=="number"?Ke(e,typeof t=="boolean"?t:true,typeof r=="number"?r:0):null);var tr=(e,t)=>!!(t.hideWhenNull&&e==null||t.hideWhenZero&&e===0),Xe=e=>e?.toUpperCase()??"",Qe=e=>e?.toLowerCase()??"",et=e=>e?e.charAt(0).toUpperCase()+e.slice(1).toLowerCase():"",tt=e=>{if(!e)return "";let t=new Set(["a","an","the","and","but","or","for","nor","on","at","of","to","with","in","as","by"]);return e.toLowerCase().split(/\s+/).map((r,n)=>t.has(r)&&n!==0?r:r.charAt(0).toUpperCase()+r.slice(1)).join(" ")},rt=e=>e?e.split(/\s+/).map(t=>t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join(" "):"",nt=e=>e?e.charAt(0).toUpperCase()+e.slice(1):"",ot=e=>e?e.replace(/([A-Z])/g," $1").replace(/^./,t=>t.toUpperCase()).trim():"",it=e=>e?e.toLowerCase().split("_").map(t=>nt(t)).join(" "):"",rr=e=>e?e.includes("_")?it(e):e.toUpperCase()===e?nt(e.toLowerCase()):ot(e):"",st=(e,t=16)=>{if(!e)return "";if(t<5||e.length<=t)return e;let r=t-3,n=Math.ceil(r/2),o=Math.floor(r/2);return `${e.slice(0,n)}...${e.slice(-o)}`},lt=(e,t=8)=>e?e.length<=t?e:`...${e.slice(-t)}`:"",ut=(e,t=16,r="...")=>e?e.length<=t?e:e.slice(0,t)+r:"",nr=e=>{if(!e)return "";let t=e.toString(),r=t.slice(-4),n=t.length-4;return n>0?"*".repeat(n)+r:t},at=(e,t)=>{if(tr(e,t))return null;if(e==null)return t.nullText??null;let r=String(e);if(t.transform&&(Array.isArray(t.transform)?t.transform:[t.transform]).forEach(o=>{switch(o){case "uppercase":r=Xe(r);break;case "lowercase":r=Qe(r);break;case "capitalize":r=rt(r);break;case "titleCase":r=tt(r);break;case "sentenceCase":r=et(r);break}}),t.truncate){let{length:n,position:o,ellipsis:a="..."}=t.truncate;switch(o){case "start":r=lt(r,n);break;case "middle":r=st(r,n);break;case "end":r=ut(r,n,a);break}}return r};i.register("uppercase",e=>Xe(String(e)));i.register("lowercase",e=>Qe(String(e)));i.register("sentenceCase",e=>et(String(e)));i.register("titleCase",e=>tt(String(e)));i.register("capitalize",e=>rt(String(e)));i.register("camelCaseToWords",e=>ot(String(e)));i.register("snakeCaseToWords",e=>it(String(e)));i.register("enumToSentenceCase",e=>rr(String(e)));i.register("truncateMiddle",(e,t)=>st(String(e),typeof t=="number"?t:16));i.register("truncateStart",(e,t)=>lt(String(e),typeof t=="number"?t:8));i.register("truncateEnd",(e,t,r)=>ut(String(e),typeof t=="number"?t:16,typeof r=="string"?r:"..."));i.register("secret",e=>nr(String(e)));var ct=(e,t=0)=>{if(s(e))return null;let r=e*1e3;return t===0?`${Math.round(r)} mV`:`${r.toFixed(t)} mV`},ce=(e,t=0)=>s(e)?null:t===0?`${Math.round(e)} V`:`${e.toFixed(t)} V`,dt=(e,t=1)=>s(e)?null:`${(e/1e3).toFixed(t)} kV`,or=(e,t)=>{if(s(e))return null;let r=Math.abs(e);return r>=1e3?dt(e,t??1):r<1?ct(e,t??0):ce(e,t??0)},de=(e,t)=>{if(t.hideWhenNull&&e==null||t.hideWhenZero&&e===0)return null;if(e==null)return t.nullText??null;let r=typeof e=="string"?parseFloat(e):Number(e);if(isNaN(r))return t.nullText??null;let n=t.decimals;if(t.unit)switch(t.unit){case "kV":return dt(r,n??1);case "mV":return ct(r,n??0);case "V":return ce(r,n??0)}return t.autoScale!==false?or(r,n):ce(r,n??0)};i.register("voltage",de);var v=(e,t)=>{switch(t.type){case "text":return at(e,t);case "number":return Te(e,t);case "currency":return Re(e,t);case "date":return De(e,t);case "boolean":return ke(e,t);case "energy":return oe(e,t);case "power":return le(e,t);case "voltage":return de(e,t);case "current":return J(e,t);case "resistance":return ae(e,t);case "temperature":return qe(e,t);case "distance":return ve(e,t);case "phone":return Ae(e,t);case "custom":{let r=t;return r.hideWhenNull&&e==null?null:e==null?r.nullText??null:r.formatter(e,r.options)}default:return e!=null?String(e):null}};var P={top:20,right:20,bottom:50,left:60};function pt(e={type:"number"}){let t=l=>{if(l==null)return "-";let d=G({value:l,formatter:e});if(d===null)return "-";if(typeof d=="string")return d;if(typeof d=="number")return d.toString();if(typeof d=="object"&&d!==null&&"props"in d){let m=g=>{if(g==null)return "";if(typeof g=="string")return g;if(typeof g=="number")return g.toString();if(typeof g=="object"&&"props"in g){let C=g.props;if(C?.children)return Array.isArray(C.children)?C.children.map(m).join(""):m(C.children)}return ""};return m(d)||l.toString()}return l.toString()},r=l=>{if(l==null)return "-";if(typeof e=="string"){let d=G({value:l,formatter:e});return d===null?"-":String(d)}if(typeof e=="object"&&e.type)switch(e.type){case "energy":case "power":case "voltage":case "current":case "resistance":case "temperature":case "distance":return t(l);case "currency":return t(l);default:return t(l)}return t(l)},n,o,a;if(typeof e=="object"&&e.type)switch(e.type){case "number":"min"in e&&(n=e.min),"max"in e&&(o=e.max);break}return {format:t,tickFormat:r,min:n,max:o,tickInterval:a}}var cr=(e,t)=>{let r=d3Array.extent(e,n=>n.xValue);return scale.scaleTime({range:[P.left,t-P.right],domain:r,nice:true})},dr=(e,t,r)=>{let n=pt(r),o=d3Array.min(e,m=>m.yValue)||0,a=d3Array.max(e,m=>m.yValue)||0,l=n.min!==void 0?n.min:o>=0?0:o*1.1,d=n.max!==void 0?n.max:a<=0?0:a*1.1;return scale.scaleLinear({range:[t-P.bottom,P.top],domain:[l,d],nice:true})};exports.AppShell=ht;exports.Avatar=he;exports.Heading=xe;exports.Loader=Ce;exports.Logo=I;exports.SideNav=Z;exports.TextLink=Mt;exports.TopNav=D;exports.clearColorCache=Rt;exports.createCategoryColorMap=Ht;exports.createXScale=cr;exports.createYScale=dr;exports.defaultMargin=P;exports.getContrastingTextColor=Dt;exports.getDefaultChartColor=Lt;exports.getDefaultColors=Ve;exports.getResolvedColor=$;exports.getThemeCategoricalColors=Se;exports.getYFormatSettings=pt;exports.isLightColor=we;//# sourceMappingURL=server.cjs.map
76
+ `}})]})}function he({src:e,alt:t,firstName:r,lastName:n,fullName:o,onClick:a,size:l="md",shape:d="circle",variant:m="user",className:f,status:g,bordered:C=false}){let M={xs:"h-6 w-6 text-xs",sm:"h-8 w-8 text-sm",md:"h-10 w-10 text-base",lg:"h-12 w-12 text-lg",xl:"h-16 w-16 text-xl"},u={xs:"h-1.5 w-1.5",sm:"h-2 w-2",md:"h-2.5 w-2.5",lg:"h-3 w-3",xl:"h-4 w-4"},h={xs:"bottom-0 right-0",sm:"bottom-0 right-0",md:"bottom-0 right-0",lg:"bottom-0.5 right-0.5",xl:"bottom-1 right-1"},S={online:"bg-feedback-success-background border-feedback-success-border",offline:"bg-text-muted border-border-muted",away:"bg-feedback-warning-background border-feedback-warning-border",busy:"bg-feedback-error-background border-feedback-error-border"},T={user:"bg-action-brand/10 text-action-brand",team:"bg-feedback-info-background text-feedback-info-text",organization:"bg-feedback-success-background text-feedback-success-text"},L=d==="circle"?"rounded-full":"rounded-md",U=tailwindMerge.twMerge("relative inline-flex items-center justify-center overflow-hidden transition-opacity",M[l],L,a&&"cursor-pointer hover:opacity-80",C&&"ring-2 ring-background-surface",f),E=(()=>{if(r||n){let F=r?.[0]||"",H=n?.[0]||"";return (F+H).toUpperCase()}if(o){let F=o.split(" "),H=F[0]?.[0]||"",me=F[F.length-1]?.[0]||"";return H===me?H.toUpperCase():(H+me).toUpperCase()}return ""})(),pe=()=>{let F={xs:14,sm:16,md:20,lg:24,xl:32}[l];switch(m){case "team":return jsxRuntime.jsx(lucideReact.Users,{size:F});case "organization":return jsxRuntime.jsx(lucideReact.Building2,{size:F});default:return jsxRuntime.jsx(lucideReact.User,{size:F})}},mt=()=>e?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("img",{src:e,alt:t||o||"Avatar",className:"h-full w-full object-cover",style:{fontSize:0}}),jsxRuntime.jsx("div",{className:"absolute inset-0 flex items-center justify-center -z-10",children:E?jsxRuntime.jsx("span",{className:"font-semibold",children:E}):pe()})]}):E?jsxRuntime.jsx("span",{className:"font-semibold",children:E}):pe();return jsxRuntime.jsxs("div",{className:"relative inline-block",children:[jsxRuntime.jsx("div",{className:tailwindMerge.twMerge(U,e?"":T[m]),onClick:a,role:a?"button":void 0,tabIndex:a?0:void 0,children:mt()}),g&&jsxRuntime.jsx("span",{className:tailwindMerge.twMerge("absolute border-2 border-background-surface",L,u[l],h[l],S[g]),"aria-label":`Status: ${g}`})]})}var St={xs:"text-lg font-semibold",sm:"text-xl font-semibold",md:"text-2xl font-semibold",lg:"text-3xl font-semibold",xl:"text-4xl font-semibold"},Vt={page:"h-16 leading-[62px]"};function xe({tag:e="h1",size:t="lg",height:r,className:n="",children:o}){let a=St[t],l=r?Vt[r]:"";return jsxRuntime.jsx(e,{className:tailwindMerge.twMerge(a,l,n),children:o})}var Ce=({className:e,size:t=24,color:r="text-action-brand"})=>jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("inline-block animate-spin rounded-full border-2 border-solid border-current border-r-transparent",r,e),style:{width:t,height:t},role:"status","aria-label":"loading",children:jsxRuntime.jsx("span",{className:"sr-only",children:"Loading..."})});var Mt=({href:e,children:t,className:r="",external:n=false,title:o,variant:a="default",onClick:l,asButton:d=false,onPress:m,showArrow:f=false})=>{let g=n?{target:"_blank",rel:"noopener noreferrer"}:{},u=`hover:underline hover:decoration-1 hover:underline-offset-4 hover:decoration-current cursor-pointer ${{default:"text-action-primary hover:text-action-primary-hover visited:text-action-primary",brand:"text-action-brand hover:text-action-brand-hover visited:text-action-brand",muted:"text-text-muted hover:text-text-muted visited:text-text-muted",unstyled:""}[a]} ${r}`,h=jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[t,f&&jsxRuntime.jsxs("span",{children:["\xA0","\u2192"]})]});return d?jsxRuntime.jsx("button",{type:"button",className:u,onClick:m,title:o,children:h}):jsxRuntime.jsx("a",{href:e||"#",className:u,...g,title:o,onClick:l,children:h})};var W=new Map,$=(e,t="#000000")=>{if(typeof window>"u")return t;let r=e.startsWith("var(")?e.slice(4,-1):e.startsWith("--")?e:`--${e}`;if(!e.startsWith("--")&&!e.startsWith("var(")&&!r.startsWith("--color-")&&(r=`--color-${r.slice(2)}`),W.has(r))return W.get(r);try{let n=document.body||document.documentElement,a=getComputedStyle(n).getPropertyValue(r).trim();if(a)return W.set(r,a),a;let l=document.createElement("div");l.style.color=`var(${r})`,document.body.appendChild(l);let d=getComputedStyle(l).color;return document.body.removeChild(l),d&&d!=="rgb(0, 0, 0)"?(W.set(r,d),d):t}catch(n){return console.warn(`Failed to resolve color for ${e}:`,n),t}},Rt=()=>{W.clear();},Se=()=>{let e=[];for(let t=1;t<=6;t++){let r=$(`--color-viz-categorical-${t}`);r&&e.push(r);}return e.length===0?Ve():e},Ve=()=>["#444ae1","#10b981","#f59e0b","#ef4444","#8b5cf6","#06b6d4","#ec4899","#f97316","#14b8a6","#6366f1"],Lt=()=>$("--color-viz-default","#444ae1"),Ht=(e,t)=>{let r={},n=Se();return e.forEach((o,a)=>{t&&t[o]?r[o]=t[o]:r[o]=n[a%n.length];}),r};var we=e=>{let t=e.match(/\d+/g);if(!t||t.length<3)return true;let[r,n,o]=t.map(Number);return (.299*r+.587*n+.114*o)/255>.5},Dt=e=>we(e)?$("--text-body","#333333"):$("--neutral-white","#ffffff");var Y=class{constructor(){fe(this,"formatters",new Map);}register(t,r){this.formatters.set(t,r);}format(t,r,...n){let o=this.formatters.get(t);return o?o(r,...n):(console.warn(`No formatter registered for key: ${t}`),null)}has(t){return this.formatters.has(t)}keys(){return Array.from(this.formatters.keys())}unregister(t){this.formatters.delete(t);}clear(){this.formatters.clear();}},i=new Y;var V=(e,t="Yes",r="No")=>e==null?null:e?t:r,Wt=e=>V(e,"Enabled","Disabled"),$t=e=>V(e,"On","Off"),vt=e=>V(e,"Active","Inactive"),Pt=e=>V(e,"True","False"),Et=e=>V(e,"\u2713","\u2717"),w=e=>{if(e==null)return null;if(typeof e=="boolean")return e;if(typeof e=="string"){let t=e.toLowerCase().trim();return t==="true"||t==="yes"||t==="1"||t==="on"||t==="enabled"?true:t==="false"||t==="no"||t==="0"||t==="off"||t==="disabled"?false:null}return typeof e=="number"?e!==0:null},ke=(e,t)=>{if(t.hideWhenNull&&e==null)return null;if(e==null)return t.nullText??null;let r=w(e);return r===null?t.nullText??null:V(r,t.trueText??"Yes",t.falseText??"No")};i.register("boolean",(e,t,r)=>{let n=w(e);return n!==null?V(n,typeof t=="string"?t:"Yes",typeof r=="string"?r:"No"):null});i.register("yesNo",e=>{let t=w(e);return t!==null?V(t,"Yes","No"):null});i.register("enabledDisabled",e=>{let t=w(e);return t!==null?Wt(t):null});i.register("onOff",e=>{let t=w(e);return t!==null?$t(t):null});i.register("activeInactive",e=>{let t=w(e);return t!==null?vt(t):null});i.register("trueFalse",e=>{let t=w(e);return t!==null?Pt(t):null});i.register("checkmark",e=>{let t=w(e);return t!==null?Et(t):null});var s=e=>e==null,It=(e,t=0)=>s(e)?null:`${e.toFixed(t)}%`,Zt=e=>s(e)?null:Math.round(e).toString(),At=(e,t=1)=>s(e)?null:e.toFixed(t),_t=(e,t,r=true)=>{if(s(e))return null;let n={useGrouping:r};return t!==void 0&&(n.minimumFractionDigits=t,n.maximumFractionDigits=t),new Intl.NumberFormat("en-US",n).format(e)},Ot=(e,t="short")=>s(e)?null:new Intl.NumberFormat("en-US",{notation:"compact",compactDisplay:t}).format(e),Ut=(e,t=2)=>s(e)?null:e.toExponential(t),Me=(e,t="USD",r)=>{if(s(e))return null;let n={style:"currency",currency:t,currencyDisplay:r?.currencyDisplay??"symbol",useGrouping:r?.thousandsSeparator??true};return r?.minimumFractionDigits!==void 0&&(n.minimumFractionDigits=r.minimumFractionDigits),r?.maximumFractionDigits!==void 0&&(n.maximumFractionDigits=r.maximumFractionDigits),new Intl.NumberFormat("en-US",n).format(e)},Te=(e,t)=>{if(t.hideWhenNull&&e==null||t.hideWhenZero&&e===0)return null;if(e==null)return t.nullText??null;let r=typeof e=="string"?parseFloat(e):Number(e);if(isNaN(r))return t.nullText??null;let n={useGrouping:t.thousandsSeparator??false};return t.decimals!==void 0&&(n.minimumFractionDigits=t.decimals,n.maximumFractionDigits=t.decimals),t.notation&&(n.notation=t.notation,t.notation==="compact"&&t.compactDisplay&&(n.compactDisplay=t.compactDisplay)),t.sign&&(n.signDisplay=t.sign),new Intl.NumberFormat("en-US",n).format(r)},Re=(e,t)=>{if(t.hideWhenNull&&e==null||t.hideWhenZero&&e===0)return null;if(e==null)return t.nullText??null;let r=typeof e=="string"?parseFloat(e):Number(e);return isNaN(r)?t.nullText??null:Me(r,t.currency,t)};i.register("percentage",(e,t)=>typeof e=="number"?It(e,typeof t=="number"?t:0):null);i.register("integer",e=>typeof e=="number"?Zt(e):null);i.register("float",(e,t)=>typeof e=="number"?At(e,typeof t=="number"?t:1):null);i.register("number",(e,t,r)=>{let n=typeof e=="string"?parseFloat(e):Number(e);return isNaN(n)?null:_t(n,typeof t=="number"?t:void 0,typeof r=="boolean"?r:true)});i.register("compact",(e,t)=>typeof e=="number"?Ot(e,t==="long"?"long":"short"):null);i.register("scientific",(e,t)=>typeof e=="number"?Ut(e,typeof t=="number"?t:2):null);i.register("currency",(e,t,r)=>typeof e=="number"?Me(e,typeof t=="string"?t:"USD",typeof r=="object"&&r!==null?r:{}):null);function G({value:e,formatter:t,emptyClassName:r="text-text-muted",emptyText:n="\u2014"}){if(e==null)return jsxRuntime.jsx("span",{className:r,children:n});if(typeof t=="function")return t(e);if(t&&typeof t=="object"){let o=v(e,t);return e instanceof Date&&o?jsxRuntime.jsx("time",{dateTime:e.toISOString(),title:e.toISOString(),children:o}):o||jsxRuntime.jsx("span",{className:r,children:n})}if(!t){if(typeof e=="string")return e;if(e instanceof Date){let o=v(e,{type:"date"});return jsxRuntime.jsx("time",{dateTime:e.toISOString(),title:e.toISOString(),children:o})}if(typeof e=="number")return v(e,{type:"number"});if(typeof e=="boolean")return v(e,{type:"boolean"})}return String(e)}var Le=(e,t=0)=>{if(s(e))return null;let r=e*1e3;return t===0?`${Math.round(r)} mA`:`${r.toFixed(t)} mA`},K=(e,t=1)=>s(e)?null:`${e.toFixed(t)} A`,He=(e,t=2)=>s(e)?null:`${(e/1e3).toFixed(t)} kA`,Bt=(e,t)=>{if(s(e))return null;let r=Math.abs(e);return r>=1e3?He(e,t??2):r<1?Le(e,t??0):K(e,t??1)},J=(e,t)=>{if(t.hideWhenNull&&e==null||t.hideWhenZero&&e===0)return null;if(e==null)return t.nullText??null;let r=typeof e=="string"?parseFloat(e):Number(e);if(isNaN(r))return t.nullText??null;let n=t.decimals;if(t.unit)switch(t.unit){case "kA":return He(r,n??2);case "mA":return Le(r,n??0);case "A":return K(r,n??1)}return t.autoScale!==false?Bt(r,n):K(r,n??1)};i.register("current",J);var R=e=>{if(e==null)return null;if(e instanceof Date)return luxon.DateTime.fromJSDate(e);if(typeof e=="string"){let t=luxon.DateTime.fromISO(e);return t.isValid?t:null}if(typeof e=="number"){let t=luxon.DateTime.fromMillis(e);return t.isValid?t:null}return null},jt=(e,t=false,r)=>{if(!e)return null;let n=R(e);if(!n)return "Invalid Date";let o=r?n.setZone(r):n;return t?o.toLocaleString(luxon.DateTime.DATETIME_SHORT):o.toLocaleString(luxon.DateTime.DATE_SHORT)},zt=e=>{if(!e)return null;let t=R(e);return t?t.toRelative():"Invalid Date"},Yt=(e,t)=>{if(!e)return null;let r=R(e);return r?(t?r.setZone(t):r).toLocaleString(luxon.DateTime.DATETIME_MED_WITH_WEEKDAY):"Invalid Date"},Gt=e=>{if(!e)return null;let t=R(e);return t?t.toISO():null},Kt=(e,t,r)=>{if(!e)return null;let n=R(e);return n?(r?n.setZone(r):n).toFormat(t):"Invalid Date"};var De=(e,t)=>{if(t.hideWhenNull&&e==null)return null;if(e==null)return t.nullText??null;let r=R(e);if(!r)return t.nullText??"Invalid Date";let n=t.timezone?r.setZone(t.timezone):r;if(t.relative)return n.toRelative();if(t.format)return n.toFormat(t.format);if(t.dateStyle||t.timeStyle){let o={};if(t.dateStyle)switch(t.dateStyle){case "short":o.date=luxon.DateTime.DATE_SHORT;break;case "medium":o.date=luxon.DateTime.DATE_MED;break;case "long":o.date=luxon.DateTime.DATE_FULL;break;case "full":o.date=luxon.DateTime.DATE_HUGE;break}if(t.timeStyle)switch(t.timeStyle){case "short":o.time=luxon.DateTime.TIME_SIMPLE;break;case "medium":o.time=luxon.DateTime.TIME_WITH_SECONDS;break;case "long":case "full":o.time=luxon.DateTime.TIME_WITH_SHORT_OFFSET;break}if(o.date&&o.time)return n.toLocaleString({...o.date,...o.time});if(o.date)return n.toLocaleString(o.date);if(o.time)return n.toLocaleString(o.time)}return n.toLocaleString(luxon.DateTime.DATETIME_SHORT)};i.register("date",(e,t,r)=>jt(e,typeof t=="boolean"?t:false,typeof r=="string"?r:void 0));i.register("relativeTime",e=>zt(e));i.register("fullDateTime",(e,t)=>Yt(e,typeof t=="string"?t:void 0));i.register("isoString",e=>Gt(e));i.register("customDateFormat",(e,t,r)=>typeof t=="string"?Kt(e,t,typeof r=="string"?r:void 0):null);var q=(e,t=1)=>s(e)?null:`${e.toFixed(t)} m`,Jt=(e,t=1)=>s(e)?null:`${(e*100).toFixed(t)} cm`,qt=(e,t=0)=>s(e)?null:`${(e*1e3).toFixed(t)} mm`,X=(e,t=1)=>s(e)?null:`${(e/1e3).toFixed(t)} km`,Q=(e,t=0)=>s(e)?null:`${e.toFixed(t)} ft`,Xt=(e,t=1)=>s(e)?null:`${e.toFixed(t)} in`,ee=(e,t=1)=>s(e)?null:`${e.toFixed(t)} mi`,te=(e,t=0)=>s(e)?null:`${e.toFixed(t)} yd`;var We=e=>e*5280;var $e=(e,t=false,r=1)=>{if(s(e))return null;let n=Math.abs(e);return t?n>=1e3?X(e,r):n<.01?qt(e,0):n<1?Jt(e,r):q(e,r):n<.01?Q(We(e),0):n<.1?te(We(e)/3,0):ee(e,r)},ve=(e,t)=>{if(t.hideWhenNull&&e==null||t.hideWhenZero&&e===0)return null;if(e==null)return t.nullText??null;let r=typeof e=="string"?parseFloat(e):Number(e);if(isNaN(r))return t.nullText??null;let n=t.decimals??1;if(t.autoScale){let o=t.unit==="m"||t.unit==="km";return $e(r,o,n)}switch(t.unit){case "km":return X(r,n);case "ft":return Q(r,n);case "mi":return ee(r,n);case "yd":return te(r,n);case "m":default:return q(r,n)}};i.register("miles",(e,t)=>typeof e=="number"?ee(e,typeof t=="number"?t:1):null);i.register("kilometers",(e,t)=>typeof e=="number"?X(e,typeof t=="number"?t:1):null);i.register("meters",(e,t)=>typeof e=="number"?q(e,typeof t=="number"?t:1):null);i.register("feet",(e,t)=>typeof e=="number"?Q(e,typeof t=="number"?t:0):null);i.register("yards",(e,t)=>typeof e=="number"?te(e,typeof t=="number"?t:0):null);i.register("inches",(e,t)=>typeof e=="number"?Xt(e,typeof t=="number"?t:1):null);i.register("autoScaleDistance",(e,t,r)=>typeof e=="number"?$e(e,typeof t=="boolean"?t:false,typeof r=="number"?r:1):null);var re=(e,t=1)=>s(e)?null:`${e.toFixed(t)} Wh`,ne=(e,t=1)=>s(e)?null:`${(e/1e3).toFixed(t)} kWh`,Pe=(e,t=1)=>s(e)?null:`${(e/1e6).toFixed(t)} MWh`,Ee=(e,t=1)=>s(e)?null:`${(e/1e9).toFixed(t)} GWh`,Ie=(e,t=1)=>{if(s(e))return null;let r=Math.abs(e);return r>=1e9?Ee(e,t):r>=1e6?Pe(e,t):r>=1e3?ne(e,t):re(e,t)},oe=(e,t)=>{if(t.hideWhenNull&&e==null||t.hideWhenZero&&e===0)return null;if(e==null)return t.nullText??null;let r=typeof e=="string"?parseFloat(e):Number(e);if(isNaN(r))return t.nullText??null;let n=t.decimals??1;if(t.unit)switch(t.unit){case "GWh":return Ee(r,n);case "MWh":return Pe(r,n);case "kWh":return ne(r,n);case "Wh":return re(r,n)}return t.autoScale!==false?Ie(r,n):re(r,n)};i.register("kWh",e=>typeof e=="number"?ne(e):null);i.register("autoScaleEnergy",(e,t)=>typeof e=="number"?Ie(e,typeof t=="number"?t:1):null);i.register("energy",oe);var _=e=>{if(!e)return null;let t=e.replace(/\D/g,"");return t.length===10?t.replace(/(\d{3})(\d{3})(\d{4})/,"($1) $2-$3"):t.length===11&&t.startsWith("1")?t.replace(/1(\d{3})(\d{3})(\d{4})/,"+1 ($1) $2-$3"):e},ie=e=>{if(!e)return null;let t=e.replace(/[^\d+]/g,"");return t.startsWith("+")?t.length===12&&t.startsWith("+1")?t.replace(/\+1(\d{3})(\d{3})(\d{4})/,"+1 ($1) $2-$3"):t.length===13&&t.startsWith("+44")?t.replace(/\+44(\d{2})(\d{4})(\d{4})/,"+44 $1 $2 $3"):t.replace(/(\+\d{1,3})(\d{3,4})(\d{3,4})(\d{3,4})?/,"$1 $2 $3 $4").trim():_(e)},Ze=e=>e?e.startsWith("+")||e.length>11?ie(e):_(e):null,Ae=(e,t)=>{if(t.hideWhenNull&&e==null)return null;if(e==null)return t.nullText??null;let r=String(e);if(t.international)return ie(r);switch(t.country){case "US":case "CA":return _(r);default:return Ze(r)}};i.register("phoneNumber",e=>typeof e=="string"?Ze(e):null);i.register("usPhone",e=>typeof e=="string"?_(e):null);i.register("internationalPhone",e=>typeof e=="string"?ie(e):null);var se=(e,t=0)=>s(e)?null:t===0?`${Math.round(e)} W`:`${e.toFixed(t)} W`,_e=(e,t=1)=>s(e)?null:`${(e/1e3).toFixed(t)} kW`,Oe=(e,t=1)=>s(e)?null:`${(e/1e6).toFixed(t)} MW`,Ue=(e,t=2)=>s(e)?null:`${(e/1e9).toFixed(t)} GW`,Qt=(e,t)=>{if(s(e))return null;let r=Math.abs(e);return r>=1e9?Ue(e,t??2):r>=1e6?Oe(e,t??1):r>=1e3?_e(e,t??1):se(e,t??0)},le=(e,t)=>{if(t.hideWhenNull&&e==null||t.hideWhenZero&&e===0)return null;if(e==null)return t.nullText??null;let r=typeof e=="string"?parseFloat(e):Number(e);if(isNaN(r))return t.nullText??null;let n=t.decimals;if(t.unit)switch(t.unit){case "GW":return Ue(r,n??2);case "MW":return Oe(r,n??1);case "kW":return _e(r,n??1);case "W":return se(r,n??0)}return t.autoScale!==false?Qt(r,n):se(r,n??0)};i.register("power",le);var ue=(e,t=1)=>s(e)?null:`${(e*1e3).toFixed(t)} m\u03A9`,O=(e,t=1)=>s(e)?null:`${e.toFixed(t)} \u03A9`,Be=(e,t=1)=>s(e)?null:`${(e/1e3).toFixed(t)} k\u03A9`,je=(e,t=2)=>s(e)?null:`${(e/1e6).toFixed(t)} M\u03A9`,er=(e,t)=>{if(s(e))return null;let r=Math.abs(e);return r>=1e6?je(e,t??2):r>=1e3?Be(e,t??1):r<1?ue(e,t??1):O(e,t??1)},ae=(e,t)=>{if(t.hideWhenNull&&e==null||t.hideWhenZero&&e===0)return null;if(e==null)return t.nullText??null;let r=typeof e=="string"?parseFloat(e):Number(e);if(isNaN(r))return t.nullText??null;let n=t.decimals;if(t.unit)switch(t.unit){case "M\u03A9":return je(r,n??2);case "k\u03A9":return Be(r,n??1);case "m\u03A9":return ue(r,n??1);case "\u03A9":return O(r,n??1)}return t.autoScale!==false?er(r,n):O(r,n??1)};i.register("resistance",ae);i.register("ohms",e=>typeof e=="number"?O(e):null);i.register("milliohms",e=>typeof e=="number"?ue(e):null);var ze=e=>{switch(e){case "FAHRENHEIT":return "F";case "CELSIUS":return "C";case "KELVIN":return "K";default:return "F"}},Ye=(e,t=0)=>s(e)?null:`${e.toFixed(t)}\xB0F`,Ge=(e,t=true,r=0)=>s(e)?null:`${(t?(e-32)*(5/9):e).toFixed(r)}\xB0C`,Ke=(e,t=true,r=0)=>s(e)?null:`${(t?(e-32)*(5/9)+273.15:e+273.15).toFixed(r)}K`;var Je=(e,t="F",r=0)=>{if(s(e))return null;switch(typeof t=="string"&&t.length>1?ze(t):t){case "C":return Ge(e,true,r);case "K":return Ke(e,true,r);case "F":default:return Ye(e,r)}},qe=(e,t)=>{if(t.hideWhenNull&&e==null)return null;if(e==null)return t.nullText??null;let r=typeof e=="string"?parseFloat(e):Number(e);if(isNaN(r))return t.nullText??null;let n=t.decimals??0,o=t.unit??"F";if(t.showUnit===false)switch(typeof o=="string"&&o.length>1?ze(o):o){case "C":return ((r-32)*.5555555555555556).toFixed(n);case "K":return ((r-32)*.5555555555555556+273.15).toFixed(n);case "F":default:return r.toFixed(n)}return Je(r,o,n)};i.register("temperature",(e,t,r)=>typeof e=="number"?Je(e,typeof t=="string"?t:"F",typeof r=="number"?r:0):null);i.register("fahrenheit",(e,t)=>typeof e=="number"?Ye(e,typeof t=="number"?t:0):null);i.register("celsius",(e,t,r)=>typeof e=="number"?Ge(e,typeof t=="boolean"?t:true,typeof r=="number"?r:0):null);i.register("kelvin",(e,t,r)=>typeof e=="number"?Ke(e,typeof t=="boolean"?t:true,typeof r=="number"?r:0):null);var tr=(e,t)=>!!(t.hideWhenNull&&e==null||t.hideWhenZero&&e===0),Xe=e=>e?.toUpperCase()??"",Qe=e=>e?.toLowerCase()??"",et=e=>e?e.charAt(0).toUpperCase()+e.slice(1).toLowerCase():"",tt=e=>{if(!e)return "";let t=new Set(["a","an","the","and","but","or","for","nor","on","at","of","to","with","in","as","by"]);return e.toLowerCase().split(/\s+/).map((r,n)=>t.has(r)&&n!==0?r:r.charAt(0).toUpperCase()+r.slice(1)).join(" ")},rt=e=>e?e.split(/\s+/).map(t=>t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join(" "):"",nt=e=>e?e.charAt(0).toUpperCase()+e.slice(1):"",ot=e=>e?e.replace(/([A-Z])/g," $1").replace(/^./,t=>t.toUpperCase()).trim():"",it=e=>e?e.toLowerCase().split("_").map(t=>nt(t)).join(" "):"",rr=e=>e?e.includes("_")?it(e):e.toUpperCase()===e?nt(e.toLowerCase()):ot(e):"",st=(e,t=16)=>{if(!e)return "";if(t<5||e.length<=t)return e;let r=t-3,n=Math.ceil(r/2),o=Math.floor(r/2);return `${e.slice(0,n)}...${e.slice(-o)}`},lt=(e,t=8)=>e?e.length<=t?e:`...${e.slice(-t)}`:"",ut=(e,t=16,r="...")=>e?e.length<=t?e:e.slice(0,t)+r:"",nr=e=>{if(!e)return "";let t=e.toString(),r=t.slice(-4),n=t.length-4;return n>0?"*".repeat(n)+r:t},at=(e,t)=>{if(tr(e,t))return null;if(e==null)return t.nullText??null;let r=String(e);if(t.transform&&(Array.isArray(t.transform)?t.transform:[t.transform]).forEach(o=>{switch(o){case "uppercase":r=Xe(r);break;case "lowercase":r=Qe(r);break;case "capitalize":r=rt(r);break;case "titleCase":r=tt(r);break;case "sentenceCase":r=et(r);break}}),t.truncate){let{length:n,position:o,ellipsis:a="..."}=t.truncate;switch(o){case "start":r=lt(r,n);break;case "middle":r=st(r,n);break;case "end":r=ut(r,n,a);break}}return r};i.register("uppercase",e=>Xe(String(e)));i.register("lowercase",e=>Qe(String(e)));i.register("sentenceCase",e=>et(String(e)));i.register("titleCase",e=>tt(String(e)));i.register("capitalize",e=>rt(String(e)));i.register("camelCaseToWords",e=>ot(String(e)));i.register("snakeCaseToWords",e=>it(String(e)));i.register("enumToSentenceCase",e=>rr(String(e)));i.register("truncateMiddle",(e,t)=>st(String(e),typeof t=="number"?t:16));i.register("truncateStart",(e,t)=>lt(String(e),typeof t=="number"?t:8));i.register("truncateEnd",(e,t,r)=>ut(String(e),typeof t=="number"?t:16,typeof r=="string"?r:"..."));i.register("secret",e=>nr(String(e)));var ct=(e,t=0)=>{if(s(e))return null;let r=e*1e3;return t===0?`${Math.round(r)} mV`:`${r.toFixed(t)} mV`},ce=(e,t=0)=>s(e)?null:t===0?`${Math.round(e)} V`:`${e.toFixed(t)} V`,dt=(e,t=1)=>s(e)?null:`${(e/1e3).toFixed(t)} kV`,or=(e,t)=>{if(s(e))return null;let r=Math.abs(e);return r>=1e3?dt(e,t??1):r<1?ct(e,t??0):ce(e,t??0)},de=(e,t)=>{if(t.hideWhenNull&&e==null||t.hideWhenZero&&e===0)return null;if(e==null)return t.nullText??null;let r=typeof e=="string"?parseFloat(e):Number(e);if(isNaN(r))return t.nullText??null;let n=t.decimals;if(t.unit)switch(t.unit){case "kV":return dt(r,n??1);case "mV":return ct(r,n??0);case "V":return ce(r,n??0)}return t.autoScale!==false?or(r,n):ce(r,n??0)};i.register("voltage",de);var v=(e,t)=>{switch(t.type){case "text":return at(e,t);case "number":return Te(e,t);case "currency":return Re(e,t);case "date":return De(e,t);case "boolean":return ke(e,t);case "energy":return oe(e,t);case "power":return le(e,t);case "voltage":return de(e,t);case "current":return J(e,t);case "resistance":return ae(e,t);case "temperature":return qe(e,t);case "distance":return ve(e,t);case "phone":return Ae(e,t);case "custom":{let r=t;return r.hideWhenNull&&e==null?null:e==null?r.nullText??null:r.formatter(e,r.options)}default:return e!=null?String(e):null}};var P={top:20,right:20,bottom:50,left:60};function pt(e={type:"number"}){let t=l=>{if(l==null)return "-";let d=G({value:l,formatter:e});if(d===null)return "-";if(typeof d=="string")return d;if(typeof d=="number")return d.toString();if(typeof d=="object"&&d!==null&&"props"in d){let m=g=>{if(g==null)return "";if(typeof g=="string")return g;if(typeof g=="number")return g.toString();if(typeof g=="object"&&"props"in g){let C=g.props;if(C?.children)return Array.isArray(C.children)?C.children.map(m).join(""):m(C.children)}return ""};return m(d)||l.toString()}return l.toString()},r=l=>{if(l==null)return "-";if(typeof e=="string"){let d=G({value:l,formatter:e});return d===null?"-":String(d)}if(typeof e=="object"&&e.type)switch(e.type){case "energy":case "power":case "voltage":case "current":case "resistance":case "temperature":case "distance":return t(l);case "currency":return t(l);default:return t(l)}return t(l)},n,o,a;if(typeof e=="object"&&e.type)switch(e.type){case "number":"min"in e&&(n=e.min),"max"in e&&(o=e.max);break}return {format:t,tickFormat:r,min:n,max:o,tickInterval:a}}var cr=(e,t)=>{let r=d3Array.extent(e,n=>n.xValue);return scale.scaleTime({range:[P.left,t-P.right],domain:r,nice:true})},dr=(e,t,r)=>{let n=pt(r),o=d3Array.min(e,m=>m.yValue)||0,a=d3Array.max(e,m=>m.yValue)||0,l=n.min!==void 0?n.min:o>=0?0:o*1.1,d=n.max!==void 0?n.max:a<=0?0:a*1.1;return scale.scaleLinear({range:[t-P.bottom,P.top],domain:[l,d],nice:true})};exports.AppShell=ht;exports.Avatar=he;exports.Heading=xe;exports.Loader=Ce;exports.Logo=I;exports.SideNav=Z;exports.TextLink=Mt;exports.TopNav=D;exports.clearColorCache=Rt;exports.createCategoryColorMap=Ht;exports.createXScale=cr;exports.createYScale=dr;exports.defaultMargin=P;exports.getContrastingTextColor=Dt;exports.getDefaultChartColor=Lt;exports.getDefaultColors=Ve;exports.getResolvedColor=$;exports.getThemeCategoricalColors=Se;exports.getYFormatSettings=pt;exports.isLightColor=we;//# sourceMappingURL=server.cjs.map
77
77
  //# sourceMappingURL=server.cjs.map