@datarecce/ui 1.53.0-nightly.20260615 → 1.53.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/advanced.d.ts +3 -3
- package/dist/advanced.js +1 -1
- package/dist/components-CX4IKLp2.js +3 -0
- package/dist/{components-DhHBt0fL.js.map → components-CX4IKLp2.js.map} +1 -1
- package/dist/components-run.js +1 -1
- package/dist/components.d.ts +3 -3
- package/dist/components.js +1 -1
- package/dist/hooks.js +1 -1
- package/dist/{index-DNkSLklg.d.ts → index-BI0TA-5T.d.ts} +2 -2
- package/dist/{index-DNkSLklg.d.ts.map → index-BI0TA-5T.d.ts.map} +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +1 -1
- package/dist/{lineage-CwiFPVvR.d.ts → lineage-DQYm0BLV.d.ts} +3 -3
- package/dist/{lineage-CwiFPVvR.d.ts.map → lineage-DQYm0BLV.d.ts.map} +1 -1
- package/dist/lineage-yiiuC0Il.js +7 -0
- package/dist/lineage-yiiuC0Il.js.map +1 -0
- package/dist/{primitives-BjWGLhDI.d.ts → primitives-CMRs10su.d.ts} +2 -2
- package/dist/{primitives-BjWGLhDI.d.ts.map → primitives-CMRs10su.d.ts.map} +1 -1
- package/dist/primitives.d.ts +1 -1
- package/dist/primitives.js +1 -1
- package/dist/result.js +1 -1
- package/dist/{src-D-gy72sb.js → src-BjFwHKOB.js} +2 -2
- package/dist/{src-D-gy72sb.js.map → src-BjFwHKOB.js.map} +1 -1
- package/dist/theme-wN7zbYoG.js +3 -0
- package/dist/theme-wN7zbYoG.js.map +1 -0
- package/dist/theme.js +1 -1
- package/dist/types.d.ts +2 -2
- package/dist/utils-D1bvitEj.js +6 -0
- package/dist/{utils-h0d712cQ.js.map → utils-D1bvitEj.js.map} +1 -1
- package/dist/utils.js +1 -1
- package/package.json +1 -1
- package/dist/components-DhHBt0fL.js +0 -3
- package/dist/lineage-CTqImE8Y.js +0 -7
- package/dist/lineage-CTqImE8Y.js.map +0 -1
- package/dist/theme-u98ih3Tv.js +0 -3
- package/dist/theme-u98ih3Tv.js.map +0 -1
- package/dist/utils-h0d712cQ.js +0 -6
package/dist/theme-u98ih3Tv.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import{n as e}from"./colors-4aGxuAVw.js";import{createTheme as t}from"@mui/material/styles";import{themeQuartz as n}from"ag-grid-community";const r=`system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif`,i=n.withParams({backgroundColor:`#ffffff`,headerBackgroundColor:`#f5f5f5`,rowHoverColor:`#ffffff`,borderColor:`#e0e0e0`,foregroundColor:`#1e1e1e`,fontFamily:`monospace`,fontSize:13,headerFontFamily:r,headerFontSize:13,headerFontWeight:700,cellHorizontalPadding:8,wrapperBorderRadius:0}),a=n.withParams({backgroundColor:`#1e1e1e`,headerBackgroundColor:`#383838`,rowHoverColor:`#1e1e1e`,borderColor:`#4a4a4a`,foregroundColor:`#e0e0e0`,fontFamily:`monospace`,fontSize:13,headerFontFamily:r,headerFontSize:13,headerFontWeight:700,cellHorizontalPadding:8,wrapperBorderRadius:0});function o(e){return{gridColor:e?`#4b5563`:`#d1d5db`,textColor:e?`#e5e7eb`:`#374151`,borderColor:e?`#6b7280`:`#9ca3af`,tooltipBackgroundColor:e?`#1f2937`:`#ffffff`,tooltipTextColor:e?`#e5e7eb`:`#111827`,barLabelColor:e?`#ffffff`:`#1f2937`,secondaryTextColor:e?`#e5e7eb`:`#6b7280`,overlayBackgroundColor:e?`#1f2937cc`:`#ffffffcc`}}function s(e,t=!0){let n=o(e);return{grid:{color:t?n.gridColor:void 0,display:t},ticks:{color:n.textColor},border:{color:n.borderColor}}}function c(e){let t=o(e);return{legend:{labels:{color:t.textColor}},title:{color:t.textColor},tooltip:{backgroundColor:t.tooltipBackgroundColor,titleColor:t.tooltipTextColor,bodyColor:t.tooltipTextColor,borderColor:t.borderColor,borderWidth:1}}}const l=`#63B3ED`,u=`#F6AD55`,d=`${l}A5`,f=`${u}A5`,p=`#90CDF4`,m=`#FBD38D`,h=`${p}A5`,g=`${m}A5`,_=l,v=p;function y(e){return{current:e?p:l,base:e?m:u,currentWithAlpha:e?h:d,baseWithAlpha:e?g:f,info:e?v:_}}function b(e,t){return[{props:{color:e,variant:`contained`},style:{backgroundColor:`var(--mui-palette-${e}-main, ${t[500]})`,color:`var(--mui-palette-${e}-contrastText, #ffffff)`,"&:hover":{backgroundColor:`var(--mui-palette-${e}-dark, ${t[600]})`}}},{props:{color:e,variant:`outlined`},style:{"&&":{borderColor:`var(--mui-palette-${e}-main, ${t[500]})`,color:`var(--mui-palette-${e}-dark, ${t[600]})`},"&:hover":{borderColor:`var(--mui-palette-${e}-dark, ${t[600]})`,backgroundColor:`color-mix(in srgb, var(--mui-palette-${e}-light, ${t[50]}) 30%, transparent)`}}},{props:{color:e,variant:`text`},style:{"&&":{color:`var(--mui-palette-${e}-dark, ${t[600]})`},"&:hover":{backgroundColor:`color-mix(in srgb, var(--mui-palette-${e}-light, ${t[50]}) 30%, transparent)`}}}]}function x(e,t){return[{props:{color:e,variant:`filled`},style:{backgroundColor:`var(--mui-palette-${e}-main, ${t[500]})`,color:`var(--mui-palette-${e}-contrastText, #ffffff)`,"&:hover":{backgroundColor:`var(--mui-palette-${e}-dark, ${t[600]})`},"&.MuiChip-clickable:hover":{backgroundColor:`var(--mui-palette-${e}-dark, ${t[600]})`}}},{props:{color:e,variant:`outlined`},style:{"&&":{borderColor:`var(--mui-palette-${e}-main, ${t[500]})`,color:`var(--mui-palette-${e}-dark, ${t[600]})`},"&:hover":{backgroundColor:`color-mix(in srgb, var(--mui-palette-${e}-light, ${t[50]}) 25%, transparent)`}}}]}function S(e,t){return[{props:{color:e},style:{"& .MuiBadge-badge":{backgroundColor:`var(--mui-palette-${e}-main, ${t[500]})`,color:`var(--mui-palette-${e}-contrastText, #ffffff)`}}}]}function C(e,t){return[{props:{color:e},style:{color:`var(--mui-palette-${e}-main, ${t[500]})`}}]}const w=[...b(`brand`,e.brand),...b(`iochmara`,e.iochmara),...b(`cyan`,e.cyan),...b(`amber`,e.amber),...b(`green`,e.green),...b(`red`,e.red),...b(`rose`,e.rose),...b(`fuchsia`,e.fuchsia),...b(`neutral`,e.neutral)],T=[...x(`brand`,e.brand),...x(`iochmara`,e.iochmara),...x(`cyan`,e.cyan),...x(`amber`,e.amber),...x(`green`,e.green),...x(`red`,e.red),...x(`rose`,e.rose),...x(`fuchsia`,e.fuchsia),...x(`neutral`,e.neutral)],E=[...S(`brand`,e.brand),...S(`iochmara`,e.iochmara)],D=[...C(`brand`,e.brand),...C(`iochmara`,e.iochmara)],O={typography:{fontFamily:[`-apple-system`,`BlinkMacSystemFont`,`"Segoe UI"`,`Roboto`,`"Helvetica Neue"`,`Arial`,`sans-serif`,`"Apple Color Emoji"`,`"Segoe UI Emoji"`,`"Segoe UI Symbol"`].join(`,`),fontSize:14,h1:{fontWeight:600},h2:{fontWeight:600},h3:{fontWeight:600},h4:{fontWeight:600},h5:{fontWeight:600},h6:{fontWeight:600},button:{textTransform:`none`,fontWeight:500}},shape:{borderRadius:8},components:{MuiButton:{defaultProps:{disableElevation:!0},styleOverrides:{root:{borderRadius:6,boxShadow:`none`,textTransform:`none`,fontWeight:500,"&:hover":{boxShadow:`none`}},sizeSmall:{fontSize:`0.8125rem`,padding:`4px 10px`},sizeMedium:{padding:`0.5rem 1rem`,fontSize:`1rem`},sizeLarge:{padding:`0.75rem 1.5rem`,fontSize:`1.125rem`},contained:{"&:hover":{boxShadow:`none`}},outlined:{borderWidth:`1px`,"&:hover":{borderWidth:`1px`}}},variants:[{props:{size:`xsmall`},style:{fontSize:`0.75rem`,padding:`2px 8px`,minHeight:24}},...w]},MuiChip:{styleOverrides:{root:{borderRadius:6,fontWeight:500},sizeSmall:{fontSize:`0.75rem`,height:24},sizeMedium:{height:32,fontSize:`0.875rem`}},variants:[{props:{size:`xsmall`},style:{fontSize:`0.6875rem`,height:20,"& .MuiChip-label":{padding:`0 6px`}}},...T]},MuiBadge:{variants:[...E],styleOverrides:{badge:{fontWeight:500,fontSize:`0.75rem`}}},MuiAlert:{styleOverrides:{root:{borderRadius:6,"&.MuiAlert-standard.MuiAlert-colorSuccess":{backgroundColor:`var(--mui-palette-success-light)`,color:`var(--mui-palette-success-dark)`,"& .MuiAlert-icon":{color:`var(--mui-palette-success-dark)`}},"&.MuiAlert-standard.MuiAlert-colorWarning":{backgroundColor:`var(--mui-palette-warning-light)`,color:`var(--mui-palette-warning-dark)`,"& .MuiAlert-icon":{color:`var(--mui-palette-warning-dark)`}},"&.MuiAlert-standard.MuiAlert-colorError":{backgroundColor:`var(--mui-palette-error-light)`,color:`var(--mui-palette-error-dark)`,"& .MuiAlert-icon":{color:`var(--mui-palette-error-dark)`}},"&.MuiAlert-standard.MuiAlert-colorInfo":{backgroundColor:`var(--mui-palette-info-light)`,color:`var(--mui-palette-info-dark)`,"& .MuiAlert-icon":{color:`var(--mui-palette-info-dark)`}}}}},MuiTabs:{styleOverrides:{indicator:{height:2}}},MuiTab:{styleOverrides:{root:{textTransform:`none`,fontWeight:500,minHeight:48}}},MuiAvatar:{styleOverrides:{root:{fontWeight:500}}},MuiCircularProgress:{defaultProps:{color:`primary`},variants:[...D]},MuiLink:{defaultProps:{underline:`hover`},styleOverrides:{root:{fontWeight:500,color:`var(--mui-palette-secondary-main)`,textDecorationColor:`var(--mui-palette-secondary-light)`,"&:hover":{color:`var(--mui-palette-secondary-dark)`}}}},MuiPopover:{styleOverrides:{paper:{borderRadius:8,boxShadow:`0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)`}}},MuiDivider:{styleOverrides:{root:{borderColor:`var(--mui-palette-divider)`}}},MuiBreadcrumbs:{styleOverrides:{separator:{color:`var(--mui-palette-text-secondary)`}}},MuiCard:{styleOverrides:{root:{borderRadius:8,boxShadow:`0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1)`}}},MuiPaper:{styleOverrides:{root:{backgroundImage:`none`}}},MuiTooltip:{styleOverrides:{tooltip:{fontSize:`0.75rem`}}},MuiIconButton:{styleOverrides:{root:{borderRadius:6},sizeSmall:{padding:4},sizeMedium:{padding:8},sizeLarge:{padding:12}}},MuiTextField:{defaultProps:{variant:`outlined`,size:`small`},styleOverrides:{root:{"& .MuiOutlinedInput-root":{borderRadius:6}}}},MuiOutlinedInput:{styleOverrides:{root:{borderRadius:6,"&:hover .MuiOutlinedInput-notchedOutline":{borderColor:`var(--mui-palette-secondary-light)`},"&.Mui-focused .MuiOutlinedInput-notchedOutline":{borderColor:`var(--mui-palette-secondary-main)`,borderWidth:2}},notchedOutline:{borderColor:`var(--mui-palette-divider)`}}},MuiCheckbox:{defaultProps:{color:`primary`},styleOverrides:{root:{borderRadius:4}}},MuiSwitch:{defaultProps:{color:`primary`}},MuiDialog:{styleOverrides:{paper:{borderRadius:8}}},MuiDialogTitle:{styleOverrides:{root:{fontWeight:600,fontSize:`1.125rem`}}},MuiMenu:{styleOverrides:{paper:{borderRadius:8,boxShadow:`0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)`}}},MuiMenuItem:{styleOverrides:{root:{fontSize:`0.875rem`,padding:`0.5rem 0.75rem`,"&:hover":{backgroundColor:`var(--mui-palette-action-hover)`},"&.Mui-selected":{backgroundColor:`var(--mui-palette-action-selected)`,"&:hover":{backgroundColor:`var(--mui-palette-action-selected)`}}}}},MuiAutocomplete:{styleOverrides:{paper:{borderRadius:6,boxShadow:`0 4px 6px -1px rgba(0, 0, 0, 0.15), 0 2px 4px -2px rgba(0, 0, 0, 0.1)`,backgroundColor:e.neutral[200],".dark &":{backgroundColor:e.neutral[700]}},listbox:{padding:`4px 0`},option:{fontSize:`0.875rem`,padding:`0.5rem 0.75rem`,'&[aria-selected="true"]':{backgroundColor:`var(--mui-palette-action-selected)`},"&.Mui-focused":{backgroundColor:`var(--mui-palette-action-hover)`}}}}}},k=t({cssVariables:{colorSchemeSelector:`class`},colorSchemes:{light:{palette:{mode:`light`,primary:{main:e.iochmara[500],light:e.iochmara[300],dark:e.iochmara[600],contrastText:`#ffffff`},secondary:{main:e.cyan[500],light:e.cyan[400],dark:e.cyan[600],contrastText:`#ffffff`},brand:{light:e.brand[400],main:e.brand[500],dark:e.brand[600],contrastText:`#ffffff`},iochmara:{light:e.iochmara[400],main:e.iochmara[500],dark:e.iochmara[600],contrastText:`#ffffff`},cyan:{main:e.cyan[500],light:e.cyan[300],dark:e.cyan[600],contrastText:`#ffffff`},amber:{main:e.amber[500],light:e.amber[300],dark:e.amber[600],contrastText:`#ffffff`},green:{main:e.green[500],light:e.green[300],dark:e.green[600],contrastText:`#ffffff`},red:{main:e.red[500],light:e.red[300],dark:e.red[600],contrastText:`#ffffff`},rose:{main:e.rose[500],light:e.rose[300],dark:e.rose[600],contrastText:`#ffffff`},fuchsia:{main:e.fuchsia[500],light:e.fuchsia[300],dark:e.fuchsia[600],contrastText:`#ffffff`},neutral:{main:e.neutral[600],light:e.neutral[300],dark:e.neutral[700],contrastText:`#ffffff`},grey:e.neutral,success:e.success,warning:e.warning,error:e.error,info:e.info,background:{default:`#ffffff`,paper:e.neutral[50]},text:{primary:e.neutral[900],secondary:e.neutral[600],disabled:e.neutral[400]},divider:e.neutral[200]}},dark:{palette:{mode:`dark`,primary:{main:e.iochmara[500],light:e.iochmara[300],dark:e.iochmara[600],contrastText:`#ffffff`},secondary:{main:e.cyan[500],light:e.cyan[400],dark:e.cyan[600],contrastText:`#ffffff`},brand:{light:e.brand[300],main:e.brand[400],dark:e.brand[600],contrastText:`#ffffff`},iochmara:{light:e.iochmara[300],main:e.iochmara[400],dark:e.iochmara[600],contrastText:`#ffffff`},cyan:{main:e.cyan[400],light:e.cyan[300],dark:e.cyan[600],contrastText:`#ffffff`},amber:{main:e.amber[400],light:e.amber[300],dark:e.amber[600],contrastText:`#000000`},green:{main:e.green[400],light:e.green[300],dark:e.green[600],contrastText:`#ffffff`},red:{main:e.red[400],light:e.red[300],dark:e.red[600],contrastText:`#ffffff`},rose:{main:e.rose[400],light:e.rose[300],dark:e.rose[600],contrastText:`#ffffff`},fuchsia:{main:e.fuchsia[400],light:e.fuchsia[300],dark:e.fuchsia[600],contrastText:`#ffffff`},neutral:{main:e.neutral[400],light:e.neutral[300],dark:e.neutral[200],contrastText:e.neutral[900]},grey:e.neutral,success:{light:e.success.light,main:e.success.main,dark:e.success.dark,contrastText:`#000000`},warning:{light:e.warning.light,main:e.warning.main,dark:e.warning.dark,contrastText:`#000000`},error:{light:e.error.light,main:e.error.main,dark:e.error.dark,contrastText:`#ffffff`},info:{light:e.info.light,main:e.info.main,dark:e.info.dark,contrastText:`#ffffff`},background:{default:e.neutral[900],paper:e.neutral[800]},text:{primary:e.neutral[50],secondary:e.neutral[400],disabled:e.neutral[600]},divider:e.neutral[700]}}},...O});export{i as _,f as a,h as c,v as d,y as f,a as g,s as h,g as i,d as l,c as m,u as n,l as o,o as p,m as r,p as s,k as t,_ as u};
|
|
3
|
-
//# sourceMappingURL=theme-u98ih3Tv.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"theme-u98ih3Tv.js","names":[],"sources":["../src/components/data/agGridTheme.ts","../src/theme/chartTheme.ts","../src/theme/theme.ts"],"sourcesContent":["\"use client\";\n\n/**\n * @file agGridTheme.ts\n * @description AG Grid theme configuration for data grids\n *\n * Provides light and dark themes using AG Grid's themeQuartz as a base.\n */\n\nimport { themeQuartz } from \"ag-grid-community\";\n\n// System font stack for headers\nconst systemFontStack =\n 'system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif';\n\n/**\n * Light theme for AG Grid data grids\n */\nexport const dataGridThemeLight = themeQuartz.withParams({\n backgroundColor: \"#ffffff\",\n headerBackgroundColor: \"#f5f5f5\",\n rowHoverColor: \"#ffffff\",\n borderColor: \"#e0e0e0\",\n foregroundColor: \"#1e1e1e\",\n fontFamily: \"monospace\",\n fontSize: 13,\n headerFontFamily: systemFontStack,\n headerFontSize: 13,\n headerFontWeight: 700,\n cellHorizontalPadding: 8,\n wrapperBorderRadius: 0,\n});\n\n/**\n * Dark theme for AG Grid data grids\n */\nexport const dataGridThemeDark = themeQuartz.withParams({\n backgroundColor: \"#1e1e1e\",\n headerBackgroundColor: \"#383838\",\n rowHoverColor: \"#1e1e1e\",\n borderColor: \"#4a4a4a\",\n foregroundColor: \"#e0e0e0\",\n fontFamily: \"monospace\",\n fontSize: 13,\n headerFontFamily: systemFontStack,\n headerFontSize: 13,\n headerFontWeight: 700,\n cellHorizontalPadding: 8,\n wrapperBorderRadius: 0,\n});\n","/**\n * Shared chart theme utilities — single source of truth for both\n * Chart.js-backed charts (`HistogramChart`, `TopKBarChart`) and the\n * SVG-rendered paired histogram cells.\n */\n\nexport interface ChartThemeColors {\n gridColor: string;\n textColor: string;\n borderColor: string;\n tooltipBackgroundColor: string;\n tooltipTextColor: string;\n /** Text color for labels drawn inside bars (must contrast with pastel bar fills) */\n barLabelColor: string;\n /** Subdued text color for secondary labels like percentages */\n secondaryTextColor: string;\n /** Semi-transparent background for chips/badges drawn over bars (e.g. trimmed-top-K marker). */\n overlayBackgroundColor: string;\n}\n\n/**\n * Get theme-aware colors for Chart.js charts\n * @param isDark - Whether dark mode is active\n * @returns Theme colors for Chart.js configuration\n */\nexport function getChartThemeColors(isDark: boolean): ChartThemeColors {\n return {\n gridColor: isDark ? \"#4b5563\" : \"#d1d5db\",\n textColor: isDark ? \"#e5e7eb\" : \"#374151\",\n borderColor: isDark ? \"#6b7280\" : \"#9ca3af\",\n tooltipBackgroundColor: isDark ? \"#1f2937\" : \"#ffffff\",\n tooltipTextColor: isDark ? \"#e5e7eb\" : \"#111827\",\n barLabelColor: isDark ? \"#ffffff\" : \"#1f2937\",\n secondaryTextColor: isDark ? \"#e5e7eb\" : \"#6b7280\",\n // 80% (cc) opacity: legible over a tall bar without reading as a hard block.\n overlayBackgroundColor: isDark ? \"#1f2937cc\" : \"#ffffffcc\",\n };\n}\n\n/**\n * Get Chart.js scale options with theme-aware colors\n * @param isDark - Whether dark mode is active\n * @param showGrid - Whether to show grid lines\n * @returns Partial scale options for Chart.js\n */\nexport function getThemedScaleOptions(isDark: boolean, showGrid = true) {\n const colors = getChartThemeColors(isDark);\n return {\n grid: {\n color: showGrid ? colors.gridColor : undefined,\n display: showGrid,\n },\n ticks: {\n color: colors.textColor,\n },\n border: {\n color: colors.borderColor,\n },\n };\n}\n\n/**\n * Get Chart.js plugin options with theme-aware colors\n * @param isDark - Whether dark mode is active\n * @returns Plugin options for Chart.js (legend, title, tooltip)\n */\nexport function getThemedPluginOptions(isDark: boolean) {\n const colors = getChartThemeColors(isDark);\n return {\n legend: {\n labels: {\n color: colors.textColor,\n },\n },\n title: {\n color: colors.textColor,\n },\n tooltip: {\n backgroundColor: colors.tooltipBackgroundColor,\n titleColor: colors.tooltipTextColor,\n bodyColor: colors.tooltipTextColor,\n borderColor: colors.borderColor,\n borderWidth: 1,\n },\n };\n}\n\n// Bar color constants - Light mode\nexport const CURRENT_BAR_COLOR = \"#63B3ED\";\nexport const BASE_BAR_COLOR = \"#F6AD55\";\nexport const CURRENT_BAR_COLOR_WITH_ALPHA = `${CURRENT_BAR_COLOR}A5`;\nexport const BASE_BAR_COLOR_WITH_ALPHA = `${BASE_BAR_COLOR}A5`;\n\n// Bar color constants - Dark mode (slightly brighter for better visibility)\nexport const CURRENT_BAR_COLOR_DARK = \"#90CDF4\";\nexport const BASE_BAR_COLOR_DARK = \"#FBD38D\";\nexport const CURRENT_BAR_COLOR_DARK_WITH_ALPHA = `${CURRENT_BAR_COLOR_DARK}A5`;\nexport const BASE_BAR_COLOR_DARK_WITH_ALPHA = `${BASE_BAR_COLOR_DARK}A5`;\n\n// `info`-style accent color used by some chart legends. Equal to the current\n// bar color today but kept as a named export so consumers can pull a stable\n// \"info\" accent without binding to the base/current palette.\nexport const INFO_VAL_COLOR = CURRENT_BAR_COLOR;\nexport const INFO_VAL_COLOR_DARK = CURRENT_BAR_COLOR_DARK;\n\n/**\n * Bar colors for base/current comparison.\n */\nexport interface ChartBarColors {\n current: string;\n base: string;\n currentWithAlpha: string;\n baseWithAlpha: string;\n /** Accent color for `info`-styled legends; matches `current` today. */\n info: string;\n}\n\n/**\n * Get theme-aware bar colors for charts.\n * @param isDark - Whether dark mode is active\n */\nexport function getChartBarColors(isDark: boolean): ChartBarColors {\n return {\n current: isDark ? CURRENT_BAR_COLOR_DARK : CURRENT_BAR_COLOR,\n base: isDark ? BASE_BAR_COLOR_DARK : BASE_BAR_COLOR,\n currentWithAlpha: isDark\n ? CURRENT_BAR_COLOR_DARK_WITH_ALPHA\n : CURRENT_BAR_COLOR_WITH_ALPHA,\n baseWithAlpha: isDark\n ? BASE_BAR_COLOR_DARK_WITH_ALPHA\n : BASE_BAR_COLOR_WITH_ALPHA,\n info: isDark ? INFO_VAL_COLOR_DARK : INFO_VAL_COLOR,\n };\n}\n","/**\n * MUI Theme configuration with CSS Variables mode\n *\n * This theme uses MUI 7's CSS Variables mode with `colorSchemeSelector: 'class'`\n * to toggle between light and dark modes using the `.dark` class on the document.\n * This integrates with the ThemeContext which manages the class toggle.\n *\n * Color values and component variants are aligned with the main Recce theme at\n * ui/src/components/ui/mui-theme.ts for consistency.\n */\n\nimport { createTheme, type ThemeOptions } from \"@mui/material/styles\";\n\nimport { colors } from \"./colors\";\n\n// Custom color names type for variant generation\ntype CustomColorName =\n | \"brand\"\n | \"iochmara\"\n | \"cyan\"\n | \"amber\"\n | \"green\"\n | \"red\"\n | \"rose\"\n | \"fuchsia\"\n | \"neutral\";\n\n// Type for color scales with numeric keys (50, 100, 200, etc.)\ninterface ColorScale {\n readonly [key: number]: string;\n readonly 50: string;\n readonly 100: string;\n readonly 200: string;\n readonly 300: string;\n readonly 400: string;\n readonly 500: string;\n readonly 600: string;\n readonly 700: string;\n readonly 800: string;\n readonly 900: string;\n readonly 950: string;\n}\n\n/**\n * Helper to generate button color variants for a given color\n * Creates contained, outlined, and text variant styles\n *\n * Uses the `&&` selector pattern to increase CSS specificity, ensuring our\n * custom color variant styles override MUI's default outlined/text button styles.\n * MUI's default styles have high specificity that would otherwise win the cascade.\n *\n * @see https://mui.com/material-ui/customization/theme-components/#specificity\n */\nfunction createButtonColorVariants<T extends CustomColorName>(\n colorName: T,\n colorScale: ColorScale,\n) {\n return [\n // Contained variant (solid) - uses CSS variables for light/dark mode\n {\n props: { color: colorName, variant: \"contained\" as const },\n style: {\n backgroundColor: `var(--mui-palette-${colorName}-main, ${colorScale[500]})`,\n color: `var(--mui-palette-${colorName}-contrastText, #ffffff)`,\n \"&:hover\": {\n backgroundColor: `var(--mui-palette-${colorName}-dark, ${colorScale[600]})`,\n },\n },\n },\n // Outlined variant - uses && for higher specificity over MUI defaults\n {\n props: { color: colorName, variant: \"outlined\" as const },\n style: {\n // && increases specificity to override MUI's default outlined styles\n \"&&\": {\n borderColor: `var(--mui-palette-${colorName}-main, ${colorScale[500]})`,\n color: `var(--mui-palette-${colorName}-dark, ${colorScale[600]})`,\n },\n \"&:hover\": {\n borderColor: `var(--mui-palette-${colorName}-dark, ${colorScale[600]})`,\n backgroundColor: `color-mix(in srgb, var(--mui-palette-${colorName}-light, ${colorScale[50]}) 30%, transparent)`,\n },\n },\n },\n // Text variant (ghost) - uses && for higher specificity over MUI defaults\n {\n props: { color: colorName, variant: \"text\" as const },\n style: {\n // && increases specificity to override MUI's default text styles\n \"&&\": {\n color: `var(--mui-palette-${colorName}-dark, ${colorScale[600]})`,\n },\n \"&:hover\": {\n backgroundColor: `color-mix(in srgb, var(--mui-palette-${colorName}-light, ${colorScale[50]}) 30%, transparent)`,\n },\n },\n },\n ];\n}\n\n/**\n * Helper to generate Chip color variants\n * Uses CSS variables for automatic light/dark mode support\n *\n * Uses the `&&` selector pattern for outlined variant to ensure our custom\n * color styles override MUI's default chip outlined styles.\n */\nfunction createChipColorVariants<T extends CustomColorName>(\n colorName: T,\n colorScale: ColorScale,\n) {\n return [\n // Filled variant - uses CSS variables for light/dark mode\n {\n props: { color: colorName, variant: \"filled\" as const },\n style: {\n backgroundColor: `var(--mui-palette-${colorName}-main, ${colorScale[500]})`,\n color: `var(--mui-palette-${colorName}-contrastText, #ffffff)`,\n \"&:hover\": {\n backgroundColor: `var(--mui-palette-${colorName}-dark, ${colorScale[600]})`,\n },\n \"&.MuiChip-clickable:hover\": {\n backgroundColor: `var(--mui-palette-${colorName}-dark, ${colorScale[600]})`,\n },\n },\n },\n // Outlined variant - uses && for higher specificity over MUI defaults\n {\n props: { color: colorName, variant: \"outlined\" as const },\n style: {\n // && increases specificity to override MUI's default outlined styles\n \"&&\": {\n borderColor: `var(--mui-palette-${colorName}-main, ${colorScale[500]})`,\n color: `var(--mui-palette-${colorName}-dark, ${colorScale[600]})`,\n },\n \"&:hover\": {\n backgroundColor: `color-mix(in srgb, var(--mui-palette-${colorName}-light, ${colorScale[50]}) 25%, transparent)`,\n },\n },\n },\n ];\n}\n\n/**\n * Helper to generate Badge color variants\n * Uses CSS variables for automatic light/dark mode support\n */\nfunction createBadgeColorVariant<T extends CustomColorName>(\n colorName: T,\n colorScale: ColorScale,\n) {\n return [\n {\n props: { color: colorName },\n style: {\n \"& .MuiBadge-badge\": {\n backgroundColor: `var(--mui-palette-${colorName}-main, ${colorScale[500]})`,\n color: `var(--mui-palette-${colorName}-contrastText, #ffffff)`,\n },\n },\n },\n ];\n}\n\n/**\n * Helper to generate CircularProgress color variants\n * Uses CSS variables for automatic light/dark mode support\n */\nfunction createProgressColorVariant<T extends CustomColorName>(\n colorName: T,\n colorScale: ColorScale,\n) {\n return [\n {\n props: { color: colorName },\n style: {\n color: `var(--mui-palette-${colorName}-main, ${colorScale[500]})`,\n },\n },\n ];\n}\n\n// Generate all button color variants\nconst buttonColorVariants = [\n ...createButtonColorVariants(\"brand\", colors.brand),\n ...createButtonColorVariants(\"iochmara\", colors.iochmara),\n ...createButtonColorVariants(\"cyan\", colors.cyan),\n ...createButtonColorVariants(\"amber\", colors.amber),\n ...createButtonColorVariants(\"green\", colors.green),\n ...createButtonColorVariants(\"red\", colors.red),\n ...createButtonColorVariants(\"rose\", colors.rose),\n ...createButtonColorVariants(\"fuchsia\", colors.fuchsia),\n ...createButtonColorVariants(\"neutral\", colors.neutral),\n];\n\n// Generate all chip color variants\nconst chipColorVariants = [\n ...createChipColorVariants(\"brand\", colors.brand),\n ...createChipColorVariants(\"iochmara\", colors.iochmara),\n ...createChipColorVariants(\"cyan\", colors.cyan),\n ...createChipColorVariants(\"amber\", colors.amber),\n ...createChipColorVariants(\"green\", colors.green),\n ...createChipColorVariants(\"red\", colors.red),\n ...createChipColorVariants(\"rose\", colors.rose),\n ...createChipColorVariants(\"fuchsia\", colors.fuchsia),\n ...createChipColorVariants(\"neutral\", colors.neutral),\n];\n\n// Generate all badge color variants\nconst badgeColorVariants = [\n ...createBadgeColorVariant(\"brand\", colors.brand),\n ...createBadgeColorVariant(\"iochmara\", colors.iochmara),\n];\n\n// Generate all progress color variants\nconst progressColorVariants = [\n ...createProgressColorVariant(\"brand\", colors.brand),\n ...createProgressColorVariant(\"iochmara\", colors.iochmara),\n];\n\n// Module augmentations are in js/mui-augmentations.d.ts (included via tsconfig)\n\n/**\n * System font stack for optimal cross-platform rendering\n */\nconst systemFontStack = [\n \"-apple-system\",\n \"BlinkMacSystemFont\",\n '\"Segoe UI\"',\n \"Roboto\",\n '\"Helvetica Neue\"',\n \"Arial\",\n \"sans-serif\",\n '\"Apple Color Emoji\"',\n '\"Segoe UI Emoji\"',\n '\"Segoe UI Symbol\"',\n].join(\",\");\n\n/**\n * Shared theme options for both light and dark modes\n */\nconst sharedThemeOptions: ThemeOptions = {\n typography: {\n fontFamily: systemFontStack,\n // Slightly smaller default sizes for data-dense UIs\n fontSize: 14,\n h1: { fontWeight: 600 },\n h2: { fontWeight: 600 },\n h3: { fontWeight: 600 },\n h4: { fontWeight: 600 },\n h5: { fontWeight: 600 },\n h6: { fontWeight: 600 },\n button: {\n textTransform: \"none\", // No uppercase for buttons\n fontWeight: 500,\n },\n },\n shape: {\n borderRadius: 8, // Rounded corners\n },\n components: {\n MuiButton: {\n defaultProps: {\n disableElevation: true, // Match Chakra's flat button style\n },\n styleOverrides: {\n root: {\n borderRadius: 6,\n boxShadow: \"none\",\n textTransform: \"none\",\n fontWeight: 500,\n \"&:hover\": {\n boxShadow: \"none\",\n },\n },\n sizeSmall: {\n fontSize: \"0.8125rem\",\n padding: \"4px 10px\",\n },\n sizeMedium: {\n padding: \"0.5rem 1rem\",\n fontSize: \"1rem\",\n },\n sizeLarge: {\n padding: \"0.75rem 1.5rem\",\n fontSize: \"1.125rem\",\n },\n contained: {\n \"&:hover\": {\n boxShadow: \"none\",\n },\n },\n outlined: {\n borderWidth: \"1px\",\n \"&:hover\": {\n borderWidth: \"1px\",\n },\n },\n },\n variants: [\n // Size variant: xsmall\n {\n props: { size: \"xsmall\" },\n style: {\n fontSize: \"0.75rem\",\n padding: \"2px 8px\",\n minHeight: 24,\n },\n },\n // Color variants for brand and iochmara\n ...buttonColorVariants,\n ],\n },\n MuiChip: {\n styleOverrides: {\n root: {\n borderRadius: 6,\n fontWeight: 500,\n },\n sizeSmall: {\n fontSize: \"0.75rem\",\n height: 24,\n },\n sizeMedium: {\n height: 32,\n fontSize: \"0.875rem\",\n },\n },\n variants: [\n // Size variant: xsmall\n {\n props: { size: \"xsmall\" },\n style: {\n fontSize: \"0.6875rem\",\n height: 20,\n \"& .MuiChip-label\": {\n padding: \"0 6px\",\n },\n },\n },\n // Color variants for brand and iochmara\n ...chipColorVariants,\n ],\n },\n MuiBadge: {\n variants: [\n // Color variants for brand and iochmara\n ...badgeColorVariants,\n ],\n styleOverrides: {\n badge: {\n fontWeight: 500,\n fontSize: \"0.75rem\",\n },\n },\n },\n // Alert overrides\n MuiAlert: {\n styleOverrides: {\n root: {\n borderRadius: 6,\n \"&.MuiAlert-standard.MuiAlert-colorSuccess\": {\n backgroundColor: \"var(--mui-palette-success-light)\",\n color: \"var(--mui-palette-success-dark)\",\n \"& .MuiAlert-icon\": {\n color: \"var(--mui-palette-success-dark)\",\n },\n },\n \"&.MuiAlert-standard.MuiAlert-colorWarning\": {\n backgroundColor: \"var(--mui-palette-warning-light)\",\n color: \"var(--mui-palette-warning-dark)\",\n \"& .MuiAlert-icon\": {\n color: \"var(--mui-palette-warning-dark)\",\n },\n },\n \"&.MuiAlert-standard.MuiAlert-colorError\": {\n backgroundColor: \"var(--mui-palette-error-light)\",\n color: \"var(--mui-palette-error-dark)\",\n \"& .MuiAlert-icon\": {\n color: \"var(--mui-palette-error-dark)\",\n },\n },\n \"&.MuiAlert-standard.MuiAlert-colorInfo\": {\n backgroundColor: \"var(--mui-palette-info-light)\",\n color: \"var(--mui-palette-info-dark)\",\n \"& .MuiAlert-icon\": {\n color: \"var(--mui-palette-info-dark)\",\n },\n },\n },\n },\n },\n // Tabs overrides\n MuiTabs: {\n styleOverrides: {\n indicator: {\n height: 2,\n },\n },\n },\n MuiTab: {\n styleOverrides: {\n root: {\n textTransform: \"none\",\n fontWeight: 500,\n minHeight: 48,\n },\n },\n },\n // Avatar overrides\n MuiAvatar: {\n styleOverrides: {\n root: {\n fontWeight: 500,\n },\n },\n },\n MuiCircularProgress: {\n defaultProps: {\n color: \"primary\",\n },\n variants: [\n // Color variants for brand and iochmara\n ...progressColorVariants,\n ],\n },\n // Link overrides\n MuiLink: {\n defaultProps: {\n underline: \"hover\",\n },\n styleOverrides: {\n root: {\n fontWeight: 500,\n color: \"var(--mui-palette-secondary-main)\",\n textDecorationColor: \"var(--mui-palette-secondary-light)\",\n \"&:hover\": {\n color: \"var(--mui-palette-secondary-dark)\",\n },\n },\n },\n },\n // Popover overrides\n MuiPopover: {\n styleOverrides: {\n paper: {\n borderRadius: 8,\n boxShadow:\n \"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)\",\n },\n },\n },\n // Divider overrides\n MuiDivider: {\n styleOverrides: {\n root: {\n borderColor: \"var(--mui-palette-divider)\",\n },\n },\n },\n // Breadcrumbs overrides\n MuiBreadcrumbs: {\n styleOverrides: {\n separator: {\n color: \"var(--mui-palette-text-secondary)\",\n },\n },\n },\n MuiCard: {\n styleOverrides: {\n root: {\n borderRadius: 8,\n boxShadow:\n \"0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1)\",\n },\n },\n },\n MuiPaper: {\n styleOverrides: {\n root: {\n backgroundImage: \"none\", // Remove default gradient\n },\n },\n },\n MuiTooltip: {\n styleOverrides: {\n tooltip: {\n fontSize: \"0.75rem\",\n },\n },\n },\n // IconButton overrides\n MuiIconButton: {\n styleOverrides: {\n root: {\n borderRadius: 6,\n },\n sizeSmall: {\n padding: 4,\n },\n sizeMedium: {\n padding: 8,\n },\n sizeLarge: {\n padding: 12,\n },\n },\n },\n // TextField overrides\n MuiTextField: {\n defaultProps: {\n variant: \"outlined\",\n size: \"small\",\n },\n styleOverrides: {\n root: {\n \"& .MuiOutlinedInput-root\": {\n borderRadius: 6,\n },\n },\n },\n },\n // OutlinedInput overrides\n MuiOutlinedInput: {\n styleOverrides: {\n root: {\n borderRadius: 6,\n \"&:hover .MuiOutlinedInput-notchedOutline\": {\n borderColor: \"var(--mui-palette-secondary-light)\",\n },\n \"&.Mui-focused .MuiOutlinedInput-notchedOutline\": {\n borderColor: \"var(--mui-palette-secondary-main)\",\n borderWidth: 2,\n },\n },\n notchedOutline: {\n borderColor: \"var(--mui-palette-divider)\",\n },\n },\n },\n // Checkbox overrides\n MuiCheckbox: {\n defaultProps: {\n color: \"primary\",\n },\n styleOverrides: {\n root: {\n borderRadius: 4,\n },\n },\n },\n // Switch overrides\n MuiSwitch: {\n defaultProps: {\n color: \"primary\",\n },\n },\n // Dialog overrides\n MuiDialog: {\n styleOverrides: {\n paper: {\n borderRadius: 8,\n },\n },\n },\n MuiDialogTitle: {\n styleOverrides: {\n root: {\n fontWeight: 600,\n fontSize: \"1.125rem\",\n },\n },\n },\n // Menu overrides\n MuiMenu: {\n styleOverrides: {\n paper: {\n borderRadius: 8,\n boxShadow:\n \"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)\",\n },\n },\n },\n MuiMenuItem: {\n styleOverrides: {\n root: {\n fontSize: \"0.875rem\",\n padding: \"0.5rem 0.75rem\",\n \"&:hover\": {\n backgroundColor: \"var(--mui-palette-action-hover)\",\n },\n \"&.Mui-selected\": {\n backgroundColor: \"var(--mui-palette-action-selected)\",\n \"&:hover\": {\n backgroundColor: \"var(--mui-palette-action-selected)\",\n },\n },\n },\n },\n },\n // Autocomplete overrides\n MuiAutocomplete: {\n styleOverrides: {\n paper: {\n borderRadius: 6,\n boxShadow:\n \"0 4px 6px -1px rgba(0, 0, 0, 0.15), 0 2px 4px -2px rgba(0, 0, 0, 0.1)\",\n backgroundColor: colors.neutral[200],\n \".dark &\": {\n backgroundColor: colors.neutral[700],\n },\n },\n listbox: {\n padding: \"4px 0\",\n },\n option: {\n fontSize: \"0.875rem\",\n padding: \"0.5rem 0.75rem\",\n '&[aria-selected=\"true\"]': {\n backgroundColor: \"var(--mui-palette-action-selected)\",\n },\n \"&.Mui-focused\": {\n backgroundColor: \"var(--mui-palette-action-hover)\",\n },\n },\n },\n },\n },\n};\n\n/**\n * MUI Theme with CSS Variables mode enabled\n *\n * Uses `colorSchemeSelector: 'class'` to switch themes via `.dark` class,\n * which is toggled by the ThemeContext provider.\n *\n * Usage:\n * ```tsx\n * import { ThemeProvider } from '@mui/material/styles';\n * import { theme } from '@datarecce/ui/theme';\n *\n * <ThemeProvider theme={theme}>\n * <App />\n * </ThemeProvider>\n * ```\n */\nexport const theme = createTheme({\n cssVariables: {\n colorSchemeSelector: \"class\", // Use .dark class for dark mode\n },\n colorSchemes: {\n light: {\n palette: {\n mode: \"light\",\n primary: {\n main: colors.iochmara[500],\n light: colors.iochmara[300],\n dark: colors.iochmara[600],\n contrastText: \"#ffffff\",\n },\n secondary: {\n main: colors.cyan[500],\n light: colors.cyan[400],\n dark: colors.cyan[600],\n contrastText: \"#ffffff\",\n },\n brand: {\n light: colors.brand[400],\n main: colors.brand[500],\n dark: colors.brand[600],\n contrastText: \"#ffffff\",\n },\n iochmara: {\n light: colors.iochmara[400],\n main: colors.iochmara[500],\n dark: colors.iochmara[600],\n contrastText: \"#ffffff\",\n },\n cyan: {\n main: colors.cyan[500],\n light: colors.cyan[300],\n dark: colors.cyan[600],\n contrastText: \"#ffffff\",\n },\n amber: {\n main: colors.amber[500],\n light: colors.amber[300],\n dark: colors.amber[600],\n contrastText: \"#ffffff\",\n },\n green: {\n main: colors.green[500],\n light: colors.green[300],\n dark: colors.green[600],\n contrastText: \"#ffffff\",\n },\n red: {\n main: colors.red[500],\n light: colors.red[300],\n dark: colors.red[600],\n contrastText: \"#ffffff\",\n },\n rose: {\n main: colors.rose[500],\n light: colors.rose[300],\n dark: colors.rose[600],\n contrastText: \"#ffffff\",\n },\n fuchsia: {\n main: colors.fuchsia[500],\n light: colors.fuchsia[300],\n dark: colors.fuchsia[600],\n contrastText: \"#ffffff\",\n },\n neutral: {\n main: colors.neutral[600],\n light: colors.neutral[300],\n dark: colors.neutral[700],\n contrastText: \"#ffffff\",\n },\n grey: colors.neutral, // Color scale (50, 100, etc.) - MUI's built-in grey\n success: colors.success,\n warning: colors.warning,\n error: colors.error,\n info: colors.info,\n background: {\n default: \"#ffffff\",\n paper: colors.neutral[50],\n },\n text: {\n primary: colors.neutral[900],\n secondary: colors.neutral[600],\n disabled: colors.neutral[400],\n },\n divider: colors.neutral[200],\n },\n },\n dark: {\n palette: {\n mode: \"dark\",\n primary: {\n main: colors.iochmara[500],\n light: colors.iochmara[300],\n dark: colors.iochmara[600],\n contrastText: \"#ffffff\",\n },\n secondary: {\n main: colors.cyan[500],\n light: colors.cyan[400],\n dark: colors.cyan[600],\n contrastText: \"#ffffff\",\n },\n brand: {\n light: colors.brand[300],\n main: colors.brand[400],\n dark: colors.brand[600],\n contrastText: \"#ffffff\",\n },\n iochmara: {\n light: colors.iochmara[300],\n main: colors.iochmara[400],\n dark: colors.iochmara[600],\n contrastText: \"#ffffff\",\n },\n cyan: {\n main: colors.cyan[400],\n light: colors.cyan[300],\n dark: colors.cyan[600],\n contrastText: \"#ffffff\",\n },\n amber: {\n main: colors.amber[400],\n light: colors.amber[300],\n dark: colors.amber[600],\n contrastText: \"#000000\",\n },\n green: {\n main: colors.green[400],\n light: colors.green[300],\n dark: colors.green[600],\n contrastText: \"#ffffff\",\n },\n red: {\n main: colors.red[400],\n light: colors.red[300],\n dark: colors.red[600],\n contrastText: \"#ffffff\",\n },\n rose: {\n main: colors.rose[400],\n light: colors.rose[300],\n dark: colors.rose[600],\n contrastText: \"#ffffff\",\n },\n fuchsia: {\n main: colors.fuchsia[400],\n light: colors.fuchsia[300],\n dark: colors.fuchsia[600],\n contrastText: \"#ffffff\",\n },\n neutral: {\n main: colors.neutral[400],\n light: colors.neutral[300],\n dark: colors.neutral[200],\n contrastText: colors.neutral[900],\n },\n grey: colors.neutral, // Color scale (50, 100, etc.) - MUI's built-in grey\n success: {\n light: colors.success.light,\n main: colors.success.main,\n dark: colors.success.dark,\n contrastText: \"#000000\",\n },\n warning: {\n light: colors.warning.light,\n main: colors.warning.main,\n dark: colors.warning.dark,\n contrastText: \"#000000\",\n },\n error: {\n light: colors.error.light,\n main: colors.error.main,\n dark: colors.error.dark,\n contrastText: \"#ffffff\",\n },\n info: {\n light: colors.info.light,\n main: colors.info.main,\n dark: colors.info.dark,\n contrastText: \"#ffffff\",\n },\n background: {\n default: colors.neutral[900],\n paper: colors.neutral[800],\n },\n text: {\n primary: colors.neutral[50],\n secondary: colors.neutral[400],\n disabled: colors.neutral[600],\n },\n divider: colors.neutral[700],\n },\n },\n },\n ...sharedThemeOptions,\n});\n\n/**\n * Theme type export for consumers who need to type their theme\n */\nexport type RecceTheme = typeof theme;\n"],"mappings":"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CjB,MAAO,kCACP,mBAAoB,CAClB,MAAO,iCACT,CACF,EACA,4CAA6C,CAC3C,gBAAiB,mCACjB,MAAO,kCACP,mBAAoB,CAClB,MAAO,iCACT,CACF,EACA,0CAA2C,CACzC,gBAAiB,iCACjB,MAAO,gCACP,mBAAoB,CAClB,MAAO,+BACT,CACF,EACA,yCAA0C,CACxC,gBAAiB,gCACjB,MAAO,+BACP,mBAAoB,CAClB,MAAO,8BACT,CACF,CACF,CACF,CACF,EAEA,QAAS,CACP,eAAgB,CACd,UAAW,CACT,OAAQ,CACV,CACF,CACF,EACA,OAAQ,CACN,eAAgB,CACd,KAAM,CACJ,cAAe,OACf,WAAY,IACZ,UAAW,EACb,CACF,CACF,EAEA,UAAW,CACT,eAAgB,CACd,KAAM,CACJ,WAAY,GACd,CACF,CACF,EACA,oBAAqB,CACnB,aAAc,CACZ,MAAO,SACT,EACA,SAAU,CAER,GAAG,CACL,CACF,EAEA,QAAS,CACP,aAAc,CACZ,UAAW,OACb,EACA,eAAgB,CACd,KAAM,CACJ,WAAY,IACZ,MAAO,oCACP,oBAAqB,qCACrB,UAAW,CACT,MAAO,mCACT,CACF,CACF,CACF,EAEA,WAAY,CACV,eAAgB,CACd,MAAO,CACL,aAAc,EACd,UACE,sEACJ,CACF,CACF,EAEA,WAAY,CACV,eAAgB,CACd,KAAM,CACJ,YAAa,4BACf,CACF,CACF,EAEA,eAAgB,CACd,eAAgB,CACd,UAAW,CACT,MAAO,mCACT,CACF,CACF,EACA,QAAS,CACP,eAAgB,CACd,KAAM,CACJ,aAAc,EACd,UACE,mEACJ,CACF,CACF,EACA,SAAU,CACR,eAAgB,CACd,KAAM,CACJ,gBAAiB,MACnB,CACF,CACF,EACA,WAAY,CACV,eAAgB,CACd,QAAS,CACP,SAAU,SACZ,CACF,CACF,EAEA,cAAe,CACb,eAAgB,CACd,KAAM,CACJ,aAAc,CAChB,EACA,UAAW,CACT,QAAS,CACX,EACA,WAAY,CACV,QAAS,CACX,EACA,UAAW,CACT,QAAS,EACX,CACF,CACF,EAEA,aAAc,CACZ,aAAc,CACZ,QAAS,WACT,KAAM,O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"}
|
package/dist/utils-h0d712cQ.js
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import{n as e}from"./colors-4aGxuAVw.js";import{createContext as t,memo as n,useCallback as r,useContext as i,useEffect as a,useId as o,useState as s}from"react";import{Fragment as c,jsx as l,jsxs as u}from"react/jsx-runtime";import d from"@mui/material/Box";import f from"@mui/material/Tooltip";import p from"@mui/material/IconButton";import m from"@mui/material/Typography";import h from"@mui/material/Alert";import g from"@mui/material/CircularProgress";import _ from"@mui/material/Snackbar";import v from"@mui/material/Stack";import{PiCopy as y,PiDotsThreeVertical as b}from"react-icons/pi";import ee from"@mui/material/Menu";import te from"@mui/material/MenuItem";import{format as ne,formatDistance as x,parseISO as re}from"date-fns";import{VscClose as ie,VscKebabVertical as ae,VscKey as oe,VscPin as se,VscPinned as ce}from"react-icons/vsc";import S from"file-saver";import le from"write-excel-file/universal";import C from"lodash";import{useCopyToClipboard as ue}from"usehooks-ts";import de from"react-split";const fe={INTEGER:`integer`,INT:`integer`,BIGINT:`integer`,SMALLINT:`integer`,TINYINT:`integer`,INT64:`integer`,INT32:`integer`,INT16:`integer`,INT8:`integer`,INT4:`integer`,INT2:`integer`,MEDIUMINT:`integer`,SERIAL:`integer`,BIGSERIAL:`integer`,SMALLSERIAL:`integer`,DOUBLE:`number`,FLOAT:`number`,REAL:`number`,NUMERIC:`number`,DECIMAL:`number`,NUMBER:`number`,FLOAT64:`number`,FLOAT32:`number`,"DOUBLE PRECISION":`number`,VARCHAR:`text`,TEXT:`text`,STRING:`text`,CHAR:`text`,"CHARACTER VARYING":`text`,CHARACTER:`text`,NCHAR:`text`,NVARCHAR:`text`,VARCHAR2:`text`,NVARCHAR2:`text`,CLOB:`text`,NCLOB:`text`,TINYTEXT:`text`,MEDIUMTEXT:`text`,LONGTEXT:`text`,BOOLEAN:`boolean`,BOOL:`boolean`,DATE:`date`,TIMESTAMP:`datetime`,DATETIME:`datetime`,TIMESTAMP_NTZ:`datetime`,TIMESTAMP_LTZ:`datetime`,TIMESTAMP_TZ:`datetime`,TIMESTAMPTZ:`datetime`,"TIMESTAMP WITH TIME ZONE":`datetime`,"TIMESTAMP WITHOUT TIME ZONE":`datetime`,"TIMESTAMP WITH LOCAL TIME ZONE":`datetime`,DATETIME2:`datetime`,SMALLDATETIME:`datetime`,DATETIMEOFFSET:`datetime`,TIME:`time`,TIMETZ:`time`,"TIME WITH TIME ZONE":`time`,"TIME WITHOUT TIME ZONE":`time`,BINARY:`binary`,VARBINARY:`binary`,BYTES:`binary`,BLOB:`binary`,BYTEA:`binary`,TINYBLOB:`binary`,MEDIUMBLOB:`binary`,LONGBLOB:`binary`,JSON:`json`,JSONB:`json`,VARIANT:`json`,OBJECT:`json`,STRUCT:`json`,MAP:`json`,ARRAY:`array`,LIST:`array`,GEOGRAPHY:`geography`,GEOMETRY:`geography`,POINT:`geography`,LINESTRING:`geography`,POLYGON:`geography`,MULTIPOINT:`geography`,MULTILINESTRING:`geography`,MULTIPOLYGON:`geography`,GEOMETRYCOLLECTION:`geography`,SDO_GEOMETRY:`geography`};function pe(e){let t=e.trim().toUpperCase();if(!t)return`unknown`;if(/^TINYINT\s*\(\s*1\s*\)$/.test(t))return`boolean`;let n=t.indexOf(`(`);return fe[n===-1?t:t.slice(0,n).trimEnd()]??`unknown`}const w=.6,me=18/30;function T({size:e=`1em`,style:t,className:n,children:r}){return u(`svg`,{viewBox:`0 0 30 18`,width:e,height:typeof e==`number`?e*me:`${me}em`,style:t,className:n,"aria-hidden":`true`,children:[l(`rect`,{x:w,y:w,width:30-w*2,height:18-w*2,rx:3,fill:`none`,stroke:`currentColor`,strokeWidth:1.2}),r]})}function E({text:e,size:t,style:n,className:r}){return l(T,{size:t,style:n,className:r,children:l(`text`,{x:30/2,y:18/2,textAnchor:`middle`,dominantBaseline:`central`,fontSize:10.5,fontFamily:`monospace`,fontWeight:500,fill:`currentColor`,children:e})})}function he(e){return l(E,{text:`123`,...e})}function ge(e){return l(E,{text:`1.2`,...e})}function _e(e){return l(E,{text:`abc`,...e})}function ve(e){return l(E,{text:`T/F`,...e})}function ye({size:e,style:t,className:n}){let r=o(),i=w,a=w;return u(T,{size:e,style:t,className:n,children:[u(`mask`,{id:r,children:[l(`rect`,{x:i,y:a,width:15-i,height:16.8,fill:`white`}),l(`text`,{x:15/2,y:18/2,textAnchor:`middle`,dominantBaseline:`central`,fontSize:10,fontFamily:`monospace`,fontWeight:700,fill:`black`,children:`0`})]}),l(`path`,{d:`M15 ${a} H3.6 Q${i} ${a} ${i} 3.6 V14.400000000000002 Q${i} 17.400000000000002 3.6 17.400000000000002 H15 Z`,fill:`currentColor`,mask:`url(#${r})`}),l(`text`,{x:22.5,y:18/2,textAnchor:`middle`,dominantBaseline:`central`,fontSize:10,fontFamily:`monospace`,fontWeight:700,fill:`currentColor`,children:`1`})]})}function be(e){return l(E,{text:`{ }`,...e})}function xe({size:e,style:t,className:n}){return u(T,{size:e,style:t,className:n,children:[u(`g`,{stroke:`currentColor`,fill:`none`,strokeWidth:1.2,strokeLinecap:`round`,children:[l(`line`,{x1:6,y1:5,x2:4,y2:5}),l(`line`,{x1:4,y1:5,x2:4,y2:13}),l(`line`,{x1:4,y1:13,x2:6,y2:13}),l(`line`,{x1:24,y1:5,x2:26,y2:5}),l(`line`,{x1:26,y1:5,x2:26,y2:13}),l(`line`,{x1:26,y1:13,x2:24,y2:13})]}),l(`text`,{x:30/2,y:18/2,textAnchor:`middle`,dominantBaseline:`central`,fontSize:9,fontFamily:`monospace`,fontWeight:500,fill:`currentColor`,children:`1,2`})]})}function Se(e){return l(E,{text:`···`,...e})}function Ce({size:e,style:t,className:n}){return l(T,{size:e,style:t,className:n,children:u(`g`,{stroke:`currentColor`,fill:`none`,strokeWidth:1,strokeLinecap:`round`,strokeLinejoin:`round`,transform:`translate(9, 2.5)`,children:[l(`rect`,{x:0,y:2,width:11,height:9.5,rx:1.2}),l(`line`,{x1:3,y1:.5,x2:3,y2:3.5}),l(`line`,{x1:8,y1:.5,x2:8,y2:3.5}),l(`line`,{x1:0,y1:5.5,x2:11,y2:5.5})]})})}function we({size:e,style:t,className:n}){return l(T,{size:e,style:t,className:n,children:u(`g`,{stroke:`currentColor`,fill:`none`,strokeWidth:1,strokeLinecap:`round`,strokeLinejoin:`round`,transform:`translate(4, 2.5)`,children:[l(`rect`,{x:0,y:2,width:9.5,height:8.5,rx:1.2}),l(`line`,{x1:2.5,y1:.5,x2:2.5,y2:3.5}),l(`line`,{x1:7,y1:.5,x2:7,y2:3.5}),l(`line`,{x1:0,y1:5,x2:9.5,y2:5}),l(`circle`,{cx:17,cy:8.5,r:3.2}),l(`line`,{x1:17,y1:6.8,x2:17,y2:8.5}),l(`line`,{x1:17,y1:8.5,x2:18.3,y2:9.5})]})})}function Te({size:e,style:t,className:n}){return l(T,{size:e,style:t,className:n,children:u(`g`,{stroke:`currentColor`,fill:`none`,strokeWidth:1,strokeLinecap:`round`,strokeLinejoin:`round`,transform:`translate(10, 3.5)`,children:[l(`circle`,{cx:5,cy:5.5,r:5}),l(`line`,{x1:5,y1:3,x2:5,y2:5.5}),l(`line`,{x1:5,y1:5.5,x2:7,y2:6.8})]})})}function Ee({size:e,style:t,className:n}){return l(T,{size:e,style:t,className:n,children:u(`g`,{stroke:`currentColor`,fill:`none`,strokeWidth:1,strokeLinecap:`round`,strokeLinejoin:`round`,children:[l(`path`,{d:`M15 14.5 C15 14.5 10.5 11 10.5 8 A4.5 4.5 0 0 1 19.5 8 C19.5 11 15 14.5 15 14.5 Z`,strokeWidth:1.2}),l(`circle`,{cx:15,cy:8,r:1.5,fill:`currentColor`,stroke:`none`})]})})}function De(e){let{name:t,status:n,baseType:r,currentType:i,cllAvailable:a,impacted:o}=e,s;switch(n){case`added`:s=i?`${t} added ${i}`:`${t} added`;break;case`removed`:return`deleted ${t}`;case`type_changed`:s=`${t}, was ${r} now ${i}`;break;case`definition_changed`:s=i?`${t} ${i} changed definition`:`${t} changed definition`;break;case`definition_unknown`:s=i?`${t} ${i} change status unknown`:`${t} change status unknown`;break;case`unchanged`:s=i?`${t} ${i}`:t;break;default:s=r&&i&&r!==i?`${t}, was ${r} now ${i}`:i?`${t} ${i}`:t;break}return o&&(s+=` · impacted`),a&&(s+=` · Click for column lineage`),s}const Oe={integer:he,number:ge,text:_e,boolean:ve,date:Ce,datetime:we,time:Te,binary:ye,json:be,array:xe,geography:Ee,unknown:Se};function ke({type:e,size:t,style:n,className:r,disableTooltip:i}){let a=Oe[pe(e)],o=l(`span`,{"data-testid":`data-type-icon`,style:{display:`inline-flex`,alignItems:`center`,lineHeight:0},children:l(a,{size:t,style:n,className:r})});return i?o:l(f,{title:e,placement:`top`,arrow:!0,children:o})}const D=t(null);D.displayName=`RecceThemeContext`;function Ae(){let e=i(D);if(!e)throw Error(`useRecceTheme must be used within RecceProvider`);return e}function je(){return i(D)}function Me({children:e,defaultMode:t=`system`}){let[n,r]=s(t),[i,o]=s(()=>typeof window>`u`?`light`:t===`system`?window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`:t);return a(()=>{if(n===`system`){let e=window.matchMedia(`(prefers-color-scheme: dark)`);o(e.matches?`dark`:`light`);let t=e=>{o(e.matches?`dark`:`light`)};return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)}else o(n)},[n]),a(()=>{typeof window>`u`||document.documentElement.classList.toggle(`dark`,i===`dark`)},[i]),l(D.Provider,{value:{mode:n,resolvedMode:i,setMode:r},children:e})}const Ne=t(null);let O=0;function Pe({children:e}){let[t,n]=s([]),i=r(e=>{let t=e.id||`toast-${++O}`,r={id:t,open:!0,duration:e.type===`loading`?null:e.duration??5e3,closable:e.closable??!0,...e};return n(e=>[...e.filter(e=>e.id!==t),r]),t},[]),a=r(e=>{n(t=>t.map(t=>t.id===e?{...t,open:!1}:t)),setTimeout(()=>{n(t=>t.filter(t=>t.id!==e))},300)},[]),o={toast:i,success:e=>i({...e,type:`success`}),error:e=>i({...e,type:`error`}),warning:e=>i({...e,type:`warning`}),info:e=>i({...e,type:`info`}),loading:e=>i({...e,type:`loading`}),dismiss:a,update:r((e,t)=>{n(n=>n.map(n=>n.id===e?{...n,...t}:n))},[])};return u(Ne.Provider,{value:o,children:[e,t.map(e=>l(_,{open:e.open,autoHideDuration:e.duration,onClose:()=>e.closable&&a(e.id),anchorOrigin:{vertical:`bottom`,horizontal:`right`},children:l(h,{severity:e.type===`loading`?`info`:e.type||`info`,onClose:e.closable?()=>a(e.id):void 0,icon:e.type===`loading`?l(g,{size:20,color:`inherit`}):void 0,sx:{width:`100%`,minWidth:300},children:u(v,{spacing:.5,children:[e.title&&l(m,{variant:`subtitle2`,sx:{fontWeight:`bold`},children:e.title}),e.description&&l(m,{variant:`body2`,component:`div`,children:e.description})]})})},e.id))]})}function Fe(){let e=i(Ne);if(!e)throw Error(`useToaster must be used within ToasterProvider`);return e}const k=new Set,A={create:e=>{let t=e.id||`toast-${++O}`;return k.forEach(n=>n({type:`create`,options:{...e,id:t}})),t},success:e=>A.create({...e,type:`success`}),error:e=>A.create({...e,type:`error`}),warning:e=>A.create({...e,type:`warning`}),info:e=>A.create({...e,type:`info`}),loading:e=>A.create({...e,type:`loading`}),dismiss:e=>{k.forEach(t=>t({type:`dismiss`,id:e}))},remove:e=>{k.forEach(t=>t({type:`dismiss`,id:e}))},update:(e,t)=>{k.forEach(n=>n({type:`update`,id:e,options:t}))},subscribe:e=>(k.add(e),()=>k.delete(e))};function Ie(){let[e,t]=s([]);s(()=>A.subscribe(e=>{if(e.type===`create`&&e.options){let n={id:e.options.id||`toast-${++O}`,open:!0,duration:e.options.type===`loading`?void 0:e.options.duration??5e3,closable:e.options.closable??!0,...e.options};t(e=>[...e.filter(e=>e.id!==n.id),n])}else if(e.type===`dismiss`&&e.id){let n=e.id;t(e=>e.map(e=>e.id===n?{...e,open:!1}:e)),setTimeout(()=>{t(e=>e.filter(e=>e.id!==n))},300)}else e.type===`update`&&e.id&&e.options&&t(t=>t.map(t=>t.id===e.id?{...t,...e.options}:t))}));let n=e=>{t(t=>t.map(t=>t.id===e?{...t,open:!1}:t)),setTimeout(()=>{t(t=>t.filter(t=>t.id!==e))},300)};return l(c,{children:e.map(e=>l(_,{open:e.open,autoHideDuration:e.duration,onClose:()=>e.closable&&n(e.id),anchorOrigin:{vertical:`bottom`,horizontal:`right`},children:l(h,{severity:e.type===`loading`?`info`:e.type||`info`,onClose:e.closable?()=>n(e.id):void 0,icon:e.type===`loading`?l(g,{size:20,color:`inherit`}):void 0,sx:{width:`100%`,minWidth:300},children:u(v,{spacing:.5,children:[e.title&&l(m,{variant:`subtitle2`,sx:{fontWeight:`bold`},children:e.title}),e.description&&l(m,{variant:`body2`,component:`div`,children:e.description})]})})},e.id))})}function j(){let e=je(),[t,n]=s(!1),[r,i]=s(!1);return a(()=>{if(n(!0),!e){let e=()=>{i(document.documentElement.classList.contains(`dark`))};e();let t=new MutationObserver(e);return t.observe(document.documentElement,{attributes:!0,attributeFilter:[`class`]}),()=>t.disconnect()}},[e]),t?e?e.resolvedMode===`dark`:r:!1}function M(e,t=`en-US`,n){return typeof e==`number`?new Intl.NumberFormat(t,n).format(e):e}function Le(e){let t=e>0&&e<=.001,n=e<1&&e>=.999,r=(t=e)=>M(t,`en-US`,{style:`percent`,minimumFractionDigits:1});return t?`<${r(.001)}`:n?`>${r(.999)}`:r()}function Re(e){if(typeof e!=`number`)return e;{let t=Math.abs(e),n=10**-2,r=10**3,i=10**6,a=10**9,o=10**12,s=10**15,c=t>=n,l=t>=1,u=t>=r,d=t>=i,f=t>=a,p=t>=o,m=t>=s;if(m||p)return new Intl.NumberFormat(`en-US`,{style:`unit`,unit:`liter`,unitDisplay:`narrow`,maximumFractionDigits:m?0:2}).format(e/0xe8d4a51000).replace(`L`,`T`);if(f||d||u){let t={base:f?a:d?i:r,unit:f?`B`:d?`M`:`K`};return new Intl.NumberFormat(`en-US`,{style:`unit`,unit:`liter`,unitDisplay:`narrow`,maximumFractionDigits:1}).format(e/t.base).replace(`L`,t.unit)}else if(l)return new Intl.NumberFormat(`en-US`,{maximumFractionDigits:2}).format(e);else return new Intl.NumberFormat(`en-US`,{maximumFractionDigits:c?3:2,notation:c||t===0?`standard`:`scientific`}).format(e)}}function ze(e,t){return`${e}_${t}`}function Be(e,t,n){return n?.has(ze(e,t))??!1}function Ve(e,t){S(new Blob([e],{type:`text/csv;charset=utf-8`}),t)}function He(e,t){S(new Blob([e],{type:`text/tab-separated-values;charset=utf-8`}),t)}function Ue(e,t){S(e,t)}async function We(e){if(typeof navigator>`u`||!navigator.clipboard?.writeText)throw Error(`Clipboard API not available. Ensure you're using HTTPS or localhost.`);await navigator.clipboard.writeText(e)}function Ge(e){return e==null?null:typeof e==`object`?{value:JSON.stringify(e),type:String}:typeof e==`number`?{value:e,type:Number}:typeof e==`boolean`?{value:e,type:Boolean}:{value:String(e),type:String}}function Ke(e,t){return le([e.map(e=>({value:e,type:String})),...t.map(e=>e.map(Ge))]).toBlob()}function qe(e,t){return(e==null?``:String(e))===(t==null?``:String(t))?e:`${e==null?``:`(${e})`} ${t==null?``:`(${t})`}`.trim()}function N(e){return!e?.columns||!e.data?null:{columns:e.columns.map(e=>e.name),rows:e.data.map(e=>[...e])}}function Je(e){return N(e)}function Ye(e){return N(e)}function Xe(e,t){let n=e,r=t?.displayMode??`inline`,i=t?.primaryKeys??[];return n?.diff?Ze(n.diff,r,i):Qe(n,r)}function Ze(e,t,n){if(!e?.columns||!e?.data)return null;let r=e.columns.findIndex(e=>e.key.toLowerCase()===`in_a`),i=e.columns.findIndex(e=>e.key.toLowerCase()===`in_b`),a=e.columns.filter(e=>e.key.toLowerCase()!==`in_a`&&e.key.toLowerCase()!==`in_b`),o=a.map(e=>e.name),s=a.map(t=>e.columns.findIndex(e=>e.key===t.key)),c=n.map(t=>e.columns.findIndex(e=>e.key===t)).filter(e=>e>=0),l=e=>s.map(t=>e[t]),u=e=>c.length===0?``:c.map(t=>String(e[t]??``)).join(`|||`),d=new Map,f=[];if(e.data.forEach((e,t)=>{let n=r>=0?e[r]:!0,a=i>=0?e[i]:!0,o=u(e);o===``&&(o=String(t)),d.has(o)||(d.set(o,{base:null,current:null}),f.push(o));let s=d.get(o);if(!s)return;let c=l(e);n&&(s.base=c),a&&(s.current=c)}),t===`side_by_side`){let e=[];o.forEach(t=>{e.push(`base__${t}`,`current__${t}`)});let t=[];for(let e of f){let n=d.get(e);if(!n)continue;let r=n.base,i=n.current,a=[];o.forEach((e,t)=>{a.push(r?r[t]:null),a.push(i?i[t]:null)}),t.push(a)}return{columns:e,rows:t}}let p=[...o],m=[];for(let e of f){let t=d.get(e);if(!t)continue;let n=t.base,r=t.current,i=[];o.forEach((e,t)=>{let a=n?n[t]:null,o=r?r[t]:null;i.push(qe(a,o))}),m.push(i)}return{columns:p,rows:m}}function Qe(e,t){let n=e?.current||e?.base;if(!n)return null;if(!e?.base||!e?.current)return N(n);let r=e.current.columns.map(e=>e.name);if(t===`side_by_side`){let t=[];r.forEach(e=>{t.push(`base__${e}`,`current__${e}`)});let n=[],i=Math.max(e.base.data.length,e.current.data.length);for(let t=0;t<i;t++){let i=[],a=t<e.base.data.length?e.base.data[t]:null,o=t<e.current.data.length?e.current.data[t]:null;r.forEach((e,t)=>{i.push(a?a[t]:null),i.push(o?o[t]:null)}),n.push(i)}return{columns:t,rows:n}}let i=[...r],a=[],o=Math.max(e.base.data.length,e.current.data.length);for(let t=0;t<o;t++){let n=t<e.base.data.length?e.base.data[t]:null,i=t<e.current.data.length?e.current.data[t]:null,o=[];r.forEach((e,t)=>{let r=n?n[t]:null,a=i?i[t]:null;o.push(qe(r,a))}),a.push(o)}return{columns:i,rows:a}}function $e(e){let t=e,n=t?.current||t?.base;if(!n)return null;if(t?.base&&t?.current){let e=[`_source`,...t.current.columns.map(e=>e.name)],n=[];return t.base.data.forEach(e=>{n.push([`base`,...e])}),t.current.data.forEach(e=>{n.push([`current`,...e])}),{columns:e,rows:n}}return N(n)}function et(e){let t=e;if(!t||typeof t!=`object`)return null;let n=[`node`,`base_count`,`current_count`,`diff`,`diff_percent`],r=[];for(let[e,n]of Object.entries(t))if(n&&typeof n==`object`){let t=n.base,i=n.curr,a=t!=null&&i!=null?i-t:null,o=t&&a!==null?(a/t*100).toFixed(2)+`%`:null;r.push([e,t,i,a,o])}return{columns:n,rows:r}}function tt(e){let t=e;return t?.data?N(t.data):null}function nt(e){return N(e)}function rt(e){let t=e,n=!!t?.base?.values,r=!!t?.current?.values;if(!n&&!r)return null;let i=[`_source`,`value`,`count`],a=[];return t?.base?.values&&t.base.values.forEach((e,n)=>{a.push([`base`,e,t.base.counts[n]])}),t?.current?.values&&t.current.values.forEach((e,n)=>{a.push([`current`,e,t.current.counts[n]])}),{columns:i,rows:a}}const it={query:Je,query_base:Ye,query_diff:Xe,profile:$e,profile_diff:$e,row_count:et,row_count_diff:et,value_diff:tt,value_diff_detail:nt,top_k_diff:rt};function at(e,t,n){let r=it[e];if(!r)return null;try{return r(t,n)}catch(t){return console.error(`Failed to extract CSV data for run type "${e}":`,t),null}}function ot(e){return e in it}function st(e){if(e==null)return``;let t=typeof e==`object`?JSON.stringify(e):String(e);return t.includes(`,`)||t.includes(`"`)||t.includes(`
|
|
3
|
-
`)||t.includes(`\r`)?`"${t.replace(/"/g,`""`)}"`:t}function ct(e,t){return``+[e.map(st).join(`,`),...t.map(e=>e.map(st).join(`,`))].join(`\r
|
|
4
|
-
`)}function lt(e){return e==null?``:(typeof e==`object`?JSON.stringify(e):String(e)).replace(/[\t\r\n]+/g,` `)}function ut(e,t){return[e.map(lt).join(` `),...t.map(e=>e.map(lt).join(` `))].join(`\r
|
|
5
|
-
`)}function dt(e){let t=e===1?`row`:`rows`;if(e<1e3)return`${e} ${t}`;if(e<1e6){let n=e/1e3;return n>=999.95?`1M ${t}`:`${n%1==0?String(n):n.toFixed(1)}k ${t}`}let n=e/1e6;return`${n%1==0?String(n):n.toFixed(1)}M ${t}`}function ft(){let e=new Date;return`${e.getFullYear()}${String(e.getMonth()+1).padStart(2,`0`)}${String(e.getDate()).padStart(2,`0`)}-${String(e.getHours()).padStart(2,`0`)}${String(e.getMinutes()).padStart(2,`0`)}${String(e.getSeconds()).padStart(2,`0`)}`}function pt(e,t){let n=ft(),r=e.replace(/_/g,`-`),i;return t?.node_names&&Array.isArray(t.node_names)&&t.node_names.length===1?i=String(t.node_names[0]):t?.model&&typeof t.model==`string`&&(i=t.model),i?(i=i.replace(/[^a-zA-Z0-9_.-]/g,`-`).toLowerCase(),`${r}-${i}-${n}.csv`):`${r}-result-${n}.csv`}function mt(e){let{primaryKeys:t,pinnedColumns:n,allColumns:r,excludeColumns:i=[]}=e,a=[],o=new Set,s=e=>i.includes(e);return t.forEach(e=>{!o.has(e)&&!s(e)&&(a.push(e),o.add(e))}),n.forEach(e=>{!o.has(e)&&!s(e)&&(a.push(e),o.add(e))}),r.forEach(e=>{!o.has(e)&&!s(e)&&(a.push(e),o.add(e))}),a}function ht(e,t,n){return!t||!n?!0:e===`added`||e===`removed`||e===`modified`}function P(e,t){return t.includes(e)}function gt(e,t){return t.includes(e)}function F(e,t){return t.includes(e)}function _t(e,t){return e[t]}function I(e){let{columnMap:t,primaryKeys:n,pinnedColumns:r,columnsRenderMode:i,changedOnly:a=!1,rowStats:o,excludeColumns:s=[],strictMode:c=!1}=e,l=(o?.modified??0)>0,u=[];return n.forEach(e=>{let n=_t(t,e);if(!n){if(c)throw Error(`Primary key column "${e}" not found in columnMap`);return}u.push({key:e,name:e,columnType:n.colType,columnStatus:n.status,columnRenderMode:i[e],frozen:!0,isPrimaryKey:!0})}),r.forEach(e=>{if(P(e,n)||F(e,s))return;let r=_t(t,e);if(!r){if(c)throw Error(`Pinned column "${e}" not found in columnMap`);return}u.push({key:e,name:e,columnType:r.colType,columnStatus:r.status,columnRenderMode:i[e],frozen:!0})}),Object.entries(t).forEach(([e,t])=>{P(e,n)||gt(e,r)||F(e,s)||ht(t.status,a,l)&&u.push({key:e,name:e,columnType:t.colType,columnStatus:t.status,columnRenderMode:i[e]})}),u}function vt(e){let{columnMap:t,primaryKeys:n,pinnedColumns:r,columnsRenderMode:i,excludeColumns:a=[],strictMode:o=!1}=e,s=[];return n.forEach(e=>{let n=t[e];if(!n){if(o)throw Error(`Primary key column "${e}" not found in columnMap`);return}s.push({key:e,name:e,columnType:n.colType,columnRenderMode:i[e],frozen:!0,isPrimaryKey:!0})}),r.forEach(e=>{if(n.includes(e)||a.includes(e))return;let r=t[e];if(!r){if(o)throw Error(`Pinned column "${e}" not found in columnMap`);return}s.push({key:r.key,name:e,columnType:r.colType,columnRenderMode:i[e],frozen:!0})}),Object.entries(t).forEach(([e,t])=>{n.includes(e)||r.includes(e)||a.includes(e)||s.push({key:t.key,name:e,columnType:t.colType,columnRenderMode:i[e]})}),s}function L(e,t){return[{value:`Show raw value`,onClick:()=>{t({[e]:`raw`})}},{value:`Show 2 decimal points`,onClick:()=>{t({[e]:2})}},{value:`Show as percentage`,onClick:()=>{t({[e]:`percent`})}},{value:`Show with net change`,onClick:()=>{t({[e]:`delta`})}}]}function R({value:t,colorPalette:n,grayOut:r,noCopy:i,fontSize:a,onCopy:o}){let[c,f]=s(!1),p=j();return u(d,{sx:{display:`flex`,p:`2px 5px`,minWidth:`30px`,maxWidth:`200px`,overflow:`hidden`,textOverflow:`ellipsis`,color:p?e[n][300]:e[n][800],bgcolor:p?e[n][900]:e[n][100],alignItems:`center`,gap:`2px`,borderRadius:`8px`,fontSize:a,flexShrink:i?0:`inherit`},onMouseEnter:()=>{f(!0)},onMouseLeave:()=>{f(!1)},children:[l(d,{sx:{overflow:`hidden`,textOverflow:`ellipsis`,color:r?`text.disabled`:`inherit`},children:t}),l(yt,{value:t,noCopy:i,grayOut:r,isHovered:c,onCopy:o})]})}function yt({value:e,noCopy:t,grayOut:n,isHovered:r,onCopy:i}){return t||n||!r?null:l(f,{title:`Copy Value`,children:l(p,{"aria-label":`Copy`,size:`small`,onClick:()=>{i?i(e):typeof navigator<`u`&&navigator.clipboard&&navigator.clipboard.writeText(e)},sx:{minWidth:`0.625rem`,height:`0.625rem`,display:`flex`,alignItems:`center`,justifyContent:`center`,p:0,color:`inherit`},children:l(y,{size:`0.625rem`})})})}function bt({name:e,columnStatus:t,columnType:n,primaryKeys:r=[],onPrimaryKeyChange:i,pinnedColumns:a=[],onPinnedColumnsChange:o,onColumnsRenderModeChanged:f}){let[m,h]=s(null),g=!!m,_=e=>{h(e.currentTarget)},v=()=>{h(null)};if(e===`index`)return l(c,{});let y=r.includes(e),b=a.includes(e),ne=t!==`added`&&t!==`removed`,x=[];return f&&(x=L(e,f)),u(d,{sx:{display:`flex`,alignItems:`center`,gap:`10px`,width:`100%`},className:`grid-header`,children:[y&&l(oe,{}),l(d,{sx:{flex:1,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:e}),ne&&i&&l(d,{component:y?ie:oe,className:y?`close-icon`:`key-icon`,sx:{display:y?`block`:`none`,cursor:`pointer`},onClick:y?()=>{i&&i(r.filter(t=>t!==e))}:()=>{i&&i([...r.filter(e=>e!==`index`),e])}}),!y&&o&&l(d,{component:b?ce:se,className:b?`unpin-icon`:`pin-icon`,sx:{display:b?`block`:`none`,cursor:`pointer`},onClick:b?()=>{o&&o(a.filter(t=>t!==e))}:()=>{o&&o([...a,e])}}),!y&&n===`number`&&x.length>0&&u(c,{children:[l(p,{"aria-label":`Options`,size:`small`,className:`!size-4 !min-w-4`,onClick:_,children:l(ae,{})}),l(ee,{anchorEl:m,open:g,onClose:v,children:x.map(e=>l(te,{onClick:()=>{e.onClick(),v()},children:e.value},e.value))})]})]})}function xt({name:e,pinnedColumns:t=[],onPinnedColumnsChange:n=()=>{},columnType:r,onColumnsRenderModeChanged:i}){let[a,o]=s(null),f=!!a,m=e=>{o(e.currentTarget)},h=()=>{o(null)},g=[];i&&(g=L(e,i));let _=t.includes(e);return u(d,{sx:{display:`flex`,alignItems:`center`,width:`100%`},className:`grid-header`,children:[l(d,{sx:{flex:1},children:e}),l(d,{component:_?ce:se,className:_?`unpin-icon`:`pin-icon`,sx:{display:_?`block`:`none`,cursor:`pointer`},onClick:_?()=>{n(t.filter(t=>t!==e))}:()=>{n([...t,e])}}),r===`number`&&u(c,{children:[l(p,{"aria-label":`Options`,size:`small`,className:`size-6!`,sx:{p:0},onClick:m,children:l(b,{})}),l(ee,{anchorEl:a,open:f,onClose:h,children:g.map(e=>l(te,{onClick:()=>{e.onClick(),h()},children:e.value},e.value))})]})]})}function z(e){return e.data.map((t,n)=>({...e.columns.reduce((e,n,r)=>(e[n.key]=t[r],e),{}),__status:void 0,_index:n+1}))}function St(e){let t=Number(e);return!Number.isNaN(t)&&Number.isFinite(t)?t:Ct(e)}function Ct(e){let t=0;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);t=(t<<5)-t+r,t&=t}return Math.abs(t)}function wt(e,t){let n=t.toLowerCase();if(n in e)return e[n];let r=Object.keys(e).find(e=>e.toLowerCase()===n);return r?e[r]:void 0}function Tt(e,t){let n=e[t.toLowerCase()];return n||=e[t.toUpperCase()],n||=e[t],n}function B(e,t){let n=[...e],r=[...t],i=[];for(;n.length>0&&r.length>0;)if(i.includes(n[0]))n.shift();else if(i.includes(r[0]))r.shift();else if(n[0]===r[0])i.push(n[0]),n.shift(),r.shift();else if(r.includes(n[0])){let e=r.indexOf(n[0]);for(let t=0;t<e;t++)i.includes(r[t])||i.push(r[t]);i.push(n[0]),n.shift(),r.splice(0,e+1)}else i.push(n[0]),n.shift();return n.forEach(e=>{i.includes(e)||i.push(e)}),r.forEach(e=>{i.includes(e)||i.push(e)}),i}function V(e,t){let n=B(e,t),r={};for(let i of n)e.includes(i)?t.includes(i)?r[i]=void 0:r[i]=`removed`:r[i]=`added`;let i={};e.forEach((e,t)=>{i[e]=t});let a=-1;for(let e of n){let t=i[e];t!=null&&(t>a?a=t:r[e]=`reordered`)}return r}function Et(e){let t={};return e.columns.forEach((e,n)=>{t[e.name]={key:e.key,index:n,colType:e.type}}),t}function Dt(e){let t={};if(e.columns.forEach((e,n)=>{t[e.key]={key:e.key,index:n,colType:e.type}}),!t.in_a)throw Error(`Joined DataFrame missing required 'in_a' column`);if(!t.in_b)throw Error(`Joined DataFrame missing required 'in_b' column`);return t}function Ot(e,t){let n={},r=V(e.columns.map(e=>e.key),t.columns.map(e=>e.key));return Object.entries(r).forEach(([r,i])=>{let a=e.columns.find(e=>e.key===r),o=t.columns.find(e=>e.key===r);n[r]={status:i,baseColumnKey:a?.key??`unknown`,currentColumnKey:o?.key??`unknown`,colType:a?.type??o?.type??`unknown`,key:a?.key??o?.key??`unknown`}}),n}function H(e,t){let n=[];for(let r of t){let t=e.find(e=>e.key===r);if(!t)throw Error(`Column ${r} not found`);n.push(t.key)}return n}function U(e,t,n){if(t.length===0)return String(n._index);let r=[];for(let i of t){let t=e.find(e=>e.key===i);if(!t)throw Error(`Primary Column ${i} not found`);let a=n[i];r.push(`${t.name}=${a}`)}return r.join(`|`)}function kt(e,t,n,r){if(!e)return`added`;if(!t)return`removed`;let i=e===t;for(let[a,o]of Object.entries(n)){if(a===`index`||r.includes(a))continue;let n,s;if(i){let r=`base__${o.key}`,i=`current__${o.key}`;n=e[r],s=t[i]}else n=e[o.key],s=t[o.key];if(!C.isEqual(n,s))return`modified`}}function W(e,t=2){let n=M(Object.is(e,-0)?0:e,`en-US`,{maximumFractionDigits:t,roundingMode:`halfEven`})??String(e);return n===`-0`?`0`:n}function G(e,t){return Number.isNaN(e)?`NaN`:Number.isFinite(e)?t===`raw`?String(e):typeof t==`number`?W(e,t):t===`percent`?M(e,`en-US`,{style:`percent`,maximumFractionDigits:2})??String(e):W(e,2):e>0?`∞`:`-∞`}function K(e,t,n,r){let i=wt(e,t);if(i==null)return[`-`,!0];let a,o=!1;return typeof i==`boolean`?a=i.toString():i===``?(a=`(empty)`,o=!0):a=typeof i==`number`?G(i,r):n===`number`?G(parseFloat(i),r):String(i),[a,o]}function At(e,t,n,r){let i=e.__status;if(i===`removed`)return`diff-cell-removed`;if(i===`added`)return`diff-cell-added`;if(t===`added`||t===`removed`)return;let a=`base__${n}`.toLowerCase(),o=`current__${n}`.toLowerCase();if(!C.isEqual(e[a],e[o]))return r?`diff-cell-removed`:`diff-cell-added`}function jt(e){if(e===`added`)return`diff-header-added`;if(e===`removed`)return`diff-header-removed`}const Mt=e=>{let t=e.colDef,n=t?.context?.columnType,r=t?.context?.columnRenderMode,i=t?.field??``;if(!e.data)return null;let[a,o]=K(e.data,i,n,r);return l(m,{component:`span`,style:{color:o?`gray`:`inherit`},children:a})};function Nt(){function e(e){A.create({description:e,type:`info`,duration:5e3,closable:!0})}function t(e,t){A.create({title:e,description:String(t),type:`error`,duration:5e3,closable:!0})}return{successToast:e,failToast:t}}function Pt(e){let[,t]=ue(),{successToast:n}=Nt(),r=e=>{t(e),n(`${e} copied`)};return l(R,{...e,onCopy:r})}function Ft(e={}){let t=e.DiffTextComponent??R;return e=>{let n=e.colDef,r=n?.context?.columnType,i=n?.context?.columnRenderMode,a=n?.field??``;if(!e.data)return null;let o=e.data,s=`base__${a}`.toLowerCase(),c=`current__${a}`.toLowerCase();if(!Object.hasOwn(o,s)&&!Object.hasOwn(o,c))return`-`;let p=Object.hasOwn(o,s),h=Object.hasOwn(o,c),[g,_]=K(o,`base__${a}`.toLowerCase(),r,i),[v,y]=K(o,`current__${a}`.toLowerCase(),r,i);if(o[s]===o[c])return l(m,{component:`span`,style:{color:y?`gray`:`inherit`},children:v});if(i===`delta`&&(r===`number`||r===`integer`)&&p&&h){let e=Lt(o[s]),n=Lt(o[c]);if(Number.isFinite(e)&&Number.isFinite(n)){let r=n-e,i=e===0?0:r/e*100,a=W(n),o=W(r),s=`(${r>=0?`+`:``}${o})`;return l(f,{title:`Base: ${e}\nCurrent: ${n}\nChange: ${r>=0?`+`:``}${r} (${i>=0?`+`:``}${i.toFixed(2)}%)`,slotProps:{tooltip:{sx:{whiteSpace:`pre-line`}}},enterDelay:300,placement:`top`,children:u(d,{sx:{gap:`5px`,display:`flex`,alignItems:`center`,lineHeight:`normal`,height:`100%`},children:[l(t,{value:a,colorPalette:`green`,grayOut:y}),l(m,{sx:{color:r>=0?`green.600`:`red.600`,fontSize:`0.75rem`},children:s})]})})}}return u(d,{sx:{display:`flex`,gap:`5px`,alignItems:`center`,lineHeight:`normal`,height:`100%`},children:[p&&l(t,{value:g,colorPalette:`red`,grayOut:_}),h&&l(t,{value:v,colorPalette:`green`,grayOut:y})]})}}const It=Ft({DiffTextComponent:Pt});function Lt(e){if(typeof e==`number`)return e;if(typeof e==`string`){let t=Number.parseFloat(e);return Number.isNaN(t)?0:t}return 0}function Rt({children:e,direction:t=`horizontal`,sizes:n,minSizes:r=0,maxSizes:i,gutterSize:a=5,snapOffset:o=30,dragInterval:s=1,onDragEnd:c,onDrag:u,theme:f,style:p,className:m}){let h=j(),g=f?f===`dark`:h,_={display:`flex`,flexDirection:t===`horizontal`?`row`:`column`,height:`100%`,width:`100%`,...p};return l(d,{className:m,sx:{height:`100%`,width:`100%`,"& .gutter":{backgroundColor:`divider`,backgroundRepeat:`no-repeat`,backgroundPosition:`50%`,transition:`background-color 0.15s ease`,"&:hover":{backgroundColor:g?`grey.600`:`grey.300`}},"& .gutter.gutter-horizontal":{cursor:`col-resize`},"& .gutter.gutter-vertical":{cursor:`row-resize`}},children:l(de,{style:_,direction:t,sizes:n,minSize:r,maxSize:i,gutterSize:a,snapOffset:o,dragInterval:s,onDragEnd:c,onDrag:u,children:e})})}const q=n(Rt);q.displayName=`SplitPane`;function zt(e){let{style:t,children:n,gutterSize:r=5,minSize:i,maxSize:a,sizes:o,snapOffset:s,dragInterval:c,onDragEnd:u,onDrag:d,className:f}=e;return l(q,{direction:`horizontal`,gutterSize:r,minSizes:i,maxSizes:a,sizes:o,snapOffset:typeof s==`number`?s:void 0,dragInterval:c,onDragEnd:u,onDrag:d,style:t,className:f,children:n})}function Bt(e){let{style:t,children:n,gutterSize:r=5,minSize:i,maxSize:a,sizes:o,snapOffset:s,dragInterval:c,onDragEnd:u,onDrag:d,className:f}=e;return l(q,{direction:`vertical`,gutterSize:r,minSizes:i,maxSizes:a,sizes:o,snapOffset:typeof s==`number`?s:void 0,dragInterval:c,onDragEnd:u,onDrag:d,style:t,className:f,children:n})}function Vt({color:e}){return l(d,{component:`span`,sx:{display:`inline-block`,width:`10px`,height:`10px`,bgcolor:e,mr:1,borderRadius:`4px`}})}function Ht(e,t){return n=>{let r=n.data;if(!r)return;let i=r.__status;if(i===`removed`)return`diff-cell-removed`;if(i===`added`)return`diff-cell-added`;if(t===`added`||t===`removed`)return;let a=`base__${e}`.toLowerCase(),o=`current__${e}`.toLowerCase();if(!C.isEqual(r[a],r[o]))return`diff-cell-removed`}}function Ut(e,t){return n=>{let r=n.data;if(!r)return;let i=r.__status;if(i===`removed`)return`diff-cell-removed`;if(i===`added`)return`diff-cell-added`;if(t===`added`||t===`removed`)return;let a=`base__${e}`.toLowerCase(),o=`current__${e}`.toLowerCase();if(!C.isEqual(r[a],r[o]))return`diff-cell-added`}}function J(e){let{name:t,columnStatus:n,columnType:r,columnRenderMode:i,displayMode:a,baseTitle:o=`Base`,currentTitle:s=`Current`,headerProps:c={},renderComponents:u}=e,{DataFrameColumnGroupHeader:d,defaultRenderCell:f,inlineRenderCell:p}=u,m=jt(n),h=()=>l(d,{name:t,columnStatus:n,columnType:r,...c});if(a===`inline`)return{field:t,headerName:t,headerClass:m,headerComponent:h,cellRenderer:p,context:{columnType:r,columnRenderMode:i}};let g=Ht(t,n),_=Ut(t,n);return{headerName:t,headerClass:m,headerGroupComponent:h,context:{columnType:r,columnRenderMode:i},children:[{field:`base__${t}`,headerName:o,headerClass:m,cellClass:g,cellRenderer:f,context:{columnType:r,columnRenderMode:i}},{field:`current__${t}`,headerName:s,headerClass:m,cellClass:_,cellRenderer:f,context:{columnType:r,columnRenderMode:i}}]}}function Wt(){return{field:`_index`,headerName:``,width:50,maxWidth:100,cellClass:`index-column`,resizable:!1,pinned:`left`}}function Gt(e,t,n){let{key:r,name:i,columnType:a,columnStatus:o,columnRenderMode:s}=e,{DataFrameColumnGroupHeader:c,defaultRenderCell:u}=n;return{field:r,headerName:i,headerComponent:()=>l(c,{name:i,columnStatus:o??``,columnType:a,...t}),pinned:`left`,cellClass:e=>{if(e.data?.__status)return`diff-header-${e.data.__status}`},cellRenderer:u,context:{columnType:a,columnRenderMode:s}}}function Kt(e,t,n,r,i,a){let{name:o,columnType:s,columnStatus:c,columnRenderMode:l}=e;return J({name:o,columnStatus:c??``,columnType:s,columnRenderMode:l,displayMode:t,baseTitle:i,currentTitle:a,headerProps:n,renderComponents:r})}function Y(e){let{columns:t,displayMode:n,headerProps:r,baseTitle:i,currentTitle:a,allowIndexFallback:o=!1,renderComponents:s}=e,c=[],l=!1;!t.some(e=>e.isPrimaryKey)&&o&&(c.push(Wt()),l=!0);for(let e of t)if(e.isPrimaryKey)c.push(Gt(e,r,s));else{let t=Kt(e,n,r,s,i,a);c.push({...t,pinned:e.frozen?`left`:void 0})}return{columns:c,usedIndexFallback:l}}function qt(e){return`baseColumnKey`in e&&`currentColumnKey`in e}function Jt(e,t){return t.includes(e)}function Yt(e){return qt(e)?{baseKey:e.baseColumnKey,currentKey:e.currentColumnKey}:{baseKey:e.key,currentKey:e.key}}function Xt(e,t,n,r,i){n.forEach(n=>{let a=n.key;Jt(a,i)?e[String(a).toLowerCase()]=t[a]:e[`${r}${a}`.toLowerCase()]=t[a]})}function Zt(e,t,n,r){let i=!1;for(let[a,o]of Object.entries(n)){if(a===`index`||Jt(a,r))continue;let{baseKey:n,currentKey:s}=Yt(o);if(n===`unknown`||s===`unknown`)continue;let c=e[n],l=t[s];C.isEqual(c,l)||(i=!0,o.status=`modified`)}return i}function X(e){let{baseMap:t,currentMap:n,baseColumns:r,currentColumns:i,columnMap:a,primaryKeys:o,changedOnly:s=!1}=e,c=V(Object.keys(t),Object.keys(n)),l={added:0,removed:0,modified:0},u=Object.entries(c).map(([e])=>{let s=t[e],c=n[e],u={_index:St(e),__status:void 0};return s&&Xt(u,s,r,`base__`,o),c&&Xt(u,c,i,`current__`,o),s?c?Zt(s,c,a,o)&&(u.__status=`modified`,l.modified++):(u.__status=`removed`,l.removed++):(u.__status=`added`,l.added++),u});return s&&(u=u.filter(e=>e.__status===`added`||e.__status===`removed`||e.__status===`modified`)),{rows:u,rowStats:l}}var Z=class extends Error{context;details;constructor(e,t,n){super(t?`[${t}] ${e}`:e),this.context=t,this.details=n,this.name=`DataGridValidationError`}};function Q(e,t=`DataFrame`){if(e!=null){if(typeof e!=`object`)throw new Z(`Expected an object, got ${typeof e}`,t);if(!(`columns`in e))throw new Z(`Missing 'columns' property`,t,{receivedKeys:Object.keys(e)});if(!Array.isArray(e.columns))throw new Z(`'columns' must be an array, got ${typeof e.columns}`,t);if(!(`data`in e))throw new Z(`Missing 'data' property`,t,{receivedKeys:Object.keys(e)});if(!Array.isArray(e.data))throw new Z(`'data' must be an array, got ${typeof e.data}`,t);Qt(e.columns,t),e.data.length>0&&$t(e,t)}}function Qt(e,t=`DataFrame`){e.forEach((e,n)=>{if(!e||typeof e!=`object`)throw new Z(`Column at index ${n} is not an object`,t,{column:e});if(typeof e.key!=`string`||e.key===``)throw new Z(`Column at index ${n} has invalid 'key': expected non-empty string, got ${JSON.stringify(e.key)}`,t,{column:e});if(typeof e.name!=`string`)throw new Z(`Column '${e.key}' has invalid 'name': expected string, got ${typeof e.name}`,t,{column:e});if(typeof e.type!=`string`)throw new Z(`Column '${e.key}' has invalid 'type': expected string, got ${typeof e.type}`,t,{column:e})})}function $t(e,t=`DataFrame`){let n=e.columns.length;for(let r=0;r<e.data.length;r++){let i=e.data[r];if(!Array.isArray(i))throw new Z(`Row at index ${r} is not an array`,t,{row:i,rowType:typeof i});if(i.length!==n)throw new Z(`Row ${r} has ${i.length} values but expected ${n} (column count)`,t,{rowIndex:r,rowLength:i.length,columnCount:n,columns:e.columns.map(e=>e.key)})}}function en(e,t,n={}){let{required:r=!1,caseInsensitive:i=!1,context:a=`primaryKeys`}=n;if(r&&(!e||e.length===0))throw new Z(`Primary keys are required but none were provided`,a);if(!e||e.length===0)return;let o=t.map(e=>e.key),s=i?o.map(e=>e.toLowerCase()):o;for(let t of e){let e=i?t.toLowerCase():t;if(!(i?s.includes(e):o.includes(t)))throw new Z(`Primary key column '${t}' not found in columns`,a,{requestedKey:t,availableColumns:o,caseInsensitive:i})}let c=new Set;for(let t of e){let n=i?t.toLowerCase():t;if(c.has(n))throw new Z(`Duplicate primary key: '${t}'`,a,{primaryKeys:e});c.add(n)}}function tn(e,t){Q(e,`dataframe`),e&&t?.primaryKeys&&en(t.primaryKeys,e.columns,{context:`toDataGrid`})}function nn(e,t,n){if(Q(e,`base`),Q(t,`current`),n?.primaryKeys&&n.primaryKeys.length>0){let r=e?.columns??[],i=t?.columns??[],a=new Set([...r.map(e=>e.key),...i.map(e=>e.key)]);for(let e of n.primaryKeys)if(!a.has(e))throw new Z(`Primary key column '${e}' not found in either base or current DataFrame`,`toDataDiffGrid`,{requestedKey:e,baseColumns:r.map(e=>e.key),currentColumns:i.map(e=>e.key)})}}function rn(e,t){if(!e)throw new Z(`DataFrame is required for value diff`);if(Q(e),!t||t.length===0)throw new Z(`Primary keys are required for value diff`);en(t,e.columns,{required:!0,context:`toValueDiffGrid`});let n=e.columns.map(e=>e.key);if(!n.includes(`in_a`))throw new Z(`Value diff DataFrame must include lowercase 'in_a' column`);if(!n.includes(`in_b`))throw new Z(`Value diff DataFrame must include lowercase 'in_b' column`)}function an(e,t,n,r){nn(e,t,n);let i=e??{columns:[],data:[]},a=t??{columns:[],data:[]},o=n?.primaryKeys??[],s=n?.pinnedColumns??[],c=n?.changedOnly??!1,l=n?.displayMode??`side_by_side`,u=n?.columnsRenderMode??{},d=z(i),f=z(a),p=Ot(i,a),m={},h={},g=!1,_=!1;if(o.length===0)d.forEach(e=>{m[String(e._index)]=e}),f.forEach(e=>{h[String(e._index)]=e});else{let e=H(i.columns,o);d.forEach(t=>{let n=U(i.columns,e,t);n in m&&(g=!0),m[n]=t});let t=H(a.columns,o);f.forEach(e=>{let n=U(a.columns,t,e);n in h&&(_=!0),h[n]=e})}let{rows:v,rowStats:y}=X({baseMap:m,currentMap:h,baseColumns:i.columns,currentColumns:a.columns,columnMap:p,primaryKeys:o,changedOnly:c}),{columns:b}=Y({columns:I({columnMap:p,primaryKeys:o,pinnedColumns:s,columnsRenderMode:u,changedOnly:c,rowStats:y,excludeColumns:[`index`],strictMode:!1}),displayMode:l,allowIndexFallback:!0,baseTitle:n?.baseTitle,currentTitle:n?.currentTitle,headerProps:{primaryKeys:o,pinnedColumns:s,onPrimaryKeyChange:n?.onPrimaryKeyChange,onPinnedColumnsChange:n?.onPinnedColumnsChange,onColumnsRenderModeChanged:n?.onColumnsRenderModeChanged},renderComponents:r?.renderComponents??{DataFrameColumnGroupHeader:()=>null,defaultRenderCell:()=>null,inlineRenderCell:()=>null}});return{columns:b,rows:v,invalidPKeyBase:g,invalidPKeyCurrent:_}}function on(){return{field:`_index`,headerName:``,width:50,cellClass:`index-column`,resizable:!1,pinned:`left`}}function sn(e,t,n){let{key:r,name:i,columnType:a,columnRenderMode:o}=e,{DataFrameColumnGroupHeader:s,defaultRenderCell:c}=n;return{field:r,headerName:i,headerComponent:()=>l(s,{name:i,columnStatus:``,columnType:a,pinnedColumns:t.pinnedColumns,onPinnedColumnsChange:t.onPinnedColumnsChange,onColumnsRenderModeChanged:t.onColumnsRenderModeChanged}),pinned:`left`,cellRenderer:c,context:{columnType:a,columnRenderMode:o}}}function cn(e,t,n){let{key:r,name:i,columnType:a,columnRenderMode:o}=e,{DataFrameColumnHeader:s,defaultRenderCell:c}=n;return{field:r,headerName:i,headerComponent:()=>l(s,{name:i,columnType:a,pinnedColumns:t.pinnedColumns,onPinnedColumnsChange:t.onPinnedColumnsChange,onColumnsRenderModeChanged:t.onColumnsRenderModeChanged}),cellRenderer:c,context:{columnType:a,columnRenderMode:o}}}function ln(e){let{columns:t,headerProps:n,allowIndexFallback:r=!0,renderComponents:i}=e,a=[],o=!1;!t.some(e=>e.isPrimaryKey)&&r&&(a.push(on()),o=!0);for(let e of t)if(e.isPrimaryKey)a.push(sn(e,n,i));else{let t=cn(e,n,i);a.push({...t,pinned:e.frozen?`left`:void 0})}return{columns:a,usedIndexFallback:o}}function un(e,t,n){tn(e,t);let r=t.primaryKeys??[],i=t.pinnedColumns??[],a=t.columnsRenderMode??{},{columns:o}=ln({columns:vt({columnMap:Et(e),primaryKeys:r,pinnedColumns:i,columnsRenderMode:a}),headerProps:{pinnedColumns:i,onPinnedColumnsChange:t.onPinnedColumnsChange,onColumnsRenderModeChanged:t.onColumnsRenderModeChanged},allowIndexFallback:!0,renderComponents:n.renderComponents});return{columns:o,rows:z(e)}}function dn(e,t,n,r){rn(e,t);let i=n?.pinnedColumns??[],a=n?.changedOnly??!1,o=n?.displayMode??`inline`,s=n?.columnsRenderMode??{},c=z(e),l=Dt(e),u={},d={},f=H(e.columns,t),p=l.in_a.key,m=l.in_b.key;c.forEach(t=>{let n=U(e.columns,f,t);t[p]&&(u[n.toLowerCase()]=t),t[m]&&(d[n.toLowerCase()]=t)});let{rows:h,rowStats:g}=X({baseMap:u,currentMap:d,baseColumns:e.columns,currentColumns:e.columns,columnMap:l,primaryKeys:t,changedOnly:a}),{columns:_}=Y({columns:I({columnMap:l,primaryKeys:t,pinnedColumns:i,columnsRenderMode:s,changedOnly:a,rowStats:g,excludeColumns:[`in_a`,`in_b`],strictMode:!0}),displayMode:o,allowIndexFallback:!1,baseTitle:n?.baseTitle,currentTitle:n?.currentTitle,headerProps:{primaryKeys:t,pinnedColumns:i,onPinnedColumnsChange:n?.onPinnedColumnsChange,onColumnsRenderModeChanged:n?.onColumnsRenderModeChanged},renderComponents:r?.renderComponents??{DataFrameColumnGroupHeader:()=>null,defaultRenderCell:()=>null,inlineRenderCell:()=>null}});return{columns:_,rows:h}}const $={DataFrameColumnGroupHeader:bt,defaultRenderCell:Mt,inlineRenderCell:It},fn={DataFrameColumnGroupHeader:bt,DataFrameColumnHeader:xt,defaultRenderCell:Mt};function pn(e){return J({...e,renderComponents:$})}function mn(e){return Y({...e,renderComponents:$})}function hn(e,t,n){return an(e,t,n,{renderComponents:$})}function gn(e,t,n){return dn(e,t,n,{renderComponents:$})}function _n(e,t){return un(e,t,{renderComponents:fn})}function vn(e){return ln({...e,renderComponents:fn})}function yn(e,t){if(e===0&&t!==0)return`N/A`;if(e<t){let n=(t-e)/e*100;return`+${n>=.1?n.toFixed(1):` <0.1 `}%`}else if(e>t){let n=(e-t)/e*100;return`-${n>=.1?n.toFixed(1):` <0.1 `}%`}else return`0`}function bn(e,t){return e!==null&&t!==null?e===t?`0`:yn(e,t):e===t?`N/A`:e===null?`Added`:t===null?`Removed`:`N/A`}function xn(e){return{columns:[{key:`name`,name:`Name`,type:`text`},{key:`base`,name:`Base Rows`,type:`number`},{key:`current`,name:`Current Rows`,type:`number`},{key:`delta`,name:`Delta`,type:`text`}],data:Object.entries(e).map(([e,t])=>{let n=typeof t.base==`number`?t.base:null,r=typeof t.curr==`number`?t.curr:null;return[e,n,r,bn(n,r)]})}}function Sn(e){return{columns:[{key:`name`,name:`Name`,type:`text`},{key:`current`,name:`Row Count`,type:`number`}],data:Object.entries(e).map(([e,t])=>[e,typeof t.curr==`number`?t.curr:null])}}function Cn(e,t){if(e===null&&t!==null)return`added`;if(e!==null&&t===null)return`removed`;if(e!==null&&t!==null&&e!==t)return`modified`}function wn(e){return{columns:[{field:`name`,headerName:`Name`,resizable:!0},{field:`current`,headerName:`Row Count`,resizable:!0}],rows:z(Sn(e)).map(e=>({...e,current:e.current??`N/A`,__status:void 0}))}}function Tn(){return e=>{let t=e.data;if(!t)return;let n=t.base,r=t.current,i=n===`N/A`?null:n,a=r===`N/A`?null:r;if(i!==a){if(i===null||typeof i==`number`&&typeof a==`number`&&i<a)return`diff-cell-added`;if(a===null||typeof i==`number`&&typeof a==`number`&&i>a)return`diff-cell-removed`}}}function En(e){let t=z(xn(e)).map(e=>{let t=e.base,n=e.current;return{...e,base:t??`N/A`,current:n??`N/A`,__status:Cn(typeof t==`number`?t:null,typeof n==`number`?n:null)}}),n=Tn();return{columns:[{field:`name`,headerName:`Name`,resizable:!0,cellClass:n},{field:`base`,headerName:`Base Rows`,resizable:!0,cellClass:n},{field:`current`,headerName:`Current Rows`,resizable:!0,cellClass:n},{field:`delta`,headerName:`Delta`,resizable:!0,cellClass:n}],rows:t}}function Dn(e){let t=new Set,n=new Set;if(e?.nodes){let r=Object.values(e.nodes);for(let e of r)e.data.schema&&(e.data.changeStatus!==`added`&&t.add(e.data.schema),e.data.changeStatus!==`removed`&&n.add(e.data.schema))}return[t,n]}function On(e,t){let n=B(e,t);if(n.length===0)return[];if(e.length===0||t.length===0)return n.map((e,t)=>t===n.length-1?e:e+`,`);let r=``;return n.forEach(n=>{e.includes(n)&&t.includes(n)&&(r=n)}),n.map((i,a)=>{let o;return o=e.includes(i)?t.includes(i)?i:`--- ${i} (Removed)`:`--- ${i} (Added)`,i===r||a===n.length-1?o:o+`,`})}function kn(e){let t=Math.floor(e);return{hours:Math.floor(t/3600),minutes:Math.floor(t%3600/60),seconds:t%60}}function An({hours:e,minutes:t,seconds:n}){return e>0?`${e}:${t.toString().padStart(2,`0`)}:${n.toString().padStart(2,`0`)}`:`${t}:${n.toString().padStart(2,`0`)}`}function jn({hours:e,minutes:t,seconds:n}){let r=[];return e>0&&r.push(`${e} hour${e===1?``:`s`}`),t>0&&r.push(`${t} min${t===1?``:`s`}`),e===0&&(r.length===0||n>0)&&r.push(`${n} second${n===1?``:`s`}`),r.join(` `)}function Mn(e,t=`verbose`){let n=kn(e);return t===`compact`?An(n):jn(n)}function Nn(e){if(!Number.isFinite(e))return String(e);let{hours:t,minutes:n,seconds:r}=kn((Math.floor(e)%86400+86400)%86400),i=e=>e.toString().padStart(2,`0`);return`${i(t)}:${i(n)}:${i(r)}`}function Pn(e){let t=new Date(e*1e3);return Number.isNaN(t.getTime())?String(e):t.toLocaleDateString(void 0,{year:`numeric`,month:`short`,day:`numeric`,timeZone:`UTC`})}function Fn(e){return ne(re(e),`yyyy-MM-dd'T'HH:mm:ss`)}function In(e){return x(re(e),new Date,{addSuffix:!0})}function Ln(e,t){if(!e||!t)return;let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!0;for(let e=0;e<n.length;e++)if(n[e]!==r[e])return!0;for(let n of r)if(!e[n]||e[n].type!==t[n]?.type)return!0;return!1}function Rn(e,t){return e?.organization_name&&e.web_url?`${e.web_url}/organizations/${e.organization_name}/settings`:t}export{Ot as $,$t as A,ot as At,Ut as B,M as Bt,pn as C,ht as Ct,ln as D,ct as Dt,un as E,dt as Et,tn as F,He as Ft,Vt as G,Fe as Gt,ChangedOnlyCheckbox as H,Ie as Ht,rn as I,ze as It,q as J,je as Jt,zt as K,Me as Kt,X as L,Be as Lt,Q as M,We as Mt,en as N,Ve as Nt,an as O,ut as Ot,nn as P,Ue as Pt,Dt as Q,Y as R,Re as Rt,_n as S,P as St,dn as T,ft as Tt,DiffDisplayModeSwitch as U,Pe as Ut,J as V,j as Vt,ToggleSwitch as W,A as Wt,Nt as X,De as Xt,Pt as Y,ke as Yt,Et as Z,pe as Zt,mn as _,mt as _t,Nn as a,U as at,fn as b,F as bt,On as c,B as ct,wn as d,wt as dt,G as et,bn as f,Tt as ft,yn as g,L as gt,Sn as h,R as ht,Pn as i,jt as it,Qt as j,Ke as jt,Z as k,at as kt,Dn as l,V as lt,xn as m,St as mt,Ln as n,W as nt,In as o,K as ot,Cn as p,Ct as pt,Bt as q,Ae as qt,Mn as r,At as rt,Fn as s,H as st,Rn as t,kt as tt,En as u,z as ut,vn as v,I as vt,gn as w,pt as wt,hn as x,gt as xt,$ as y,vt as yt,Ht as z,Le as zt};
|
|
6
|
-
//# sourceMappingURL=utils-h0d712cQ.js.map
|