From 9f78db7e702876fc039a58aad3d22729b259a2a8 Mon Sep 17 00:00:00 2001 From: roshan84ya Date: Mon, 17 Aug 2026 17:36:04 +0530 Subject: [PATCH 1/2] Fix #191: reachability sweep drops return-only-generic orphan records MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A function whose type parameter appears ONLY in its return (`jsonBoxed(): BoxOf`) has that return flagged — a return-only `'a` can't round-trip (rule #4). But `classify` had already registered the record it built for the discarded return, and nothing un-registered it, so an unreferenced `boxOf<'a>` reached the output (and shoved the real `readBox(): BoxOf` type off the clean base name to `boxOfV1hnll`). The per-site snapshot/rollback used for the METHOD path (#189) doesn't work here: the orphan survives through late name/key resolution at emit (#128 + stabilizeNames run after the rollback). So instead, add the post-traversal reachability sweep #178 called for: after every IR tree is final but BEFORE stabilizeNames, walk the emitted roots (component props + baseSpreads, function/const/context signatures, class members) and drop any registered entry unreachable from them. - Key-based (every module-mode ref is keyed via refTo), so a type reached only through a keyed ref whose home is late-bound is never wrongly dropped. - A deep walk (collectAllRefKeys) covers refs inside inline-record fields and record spreads that the shallow collectRefKeys skips. - Runs before naming, so a live sibling reclaims a base name an orphan squatted. - Removing an orphan can also dissolve a spurious SCC merge, giving cleaner homes. Fixture: return-only-generic-orphan. All 116 goldens compile; benchmark baselines updated (real orphan removals in blend + react-rating, metrics equal-or-better). Fixes #191 Co-Authored-By: Claude Opus 4.8 --- CHANGELOG.md | 7 + .../bindings/BlendChart.res | 2 +- .../bindings/BlendDesignSystemBindings.res | 2 +- .../bindings/ChartLegends.res | 6 +- .../bindings/ChartV2.res | 2 +- .../bindings/Charts.res | 24 +- .../bindings/ChartsTypes.res | 357 +++++++++++ .../bindings/CoreChart.res | 12 +- .../bindings/HighchartsSharedTypes.res | 560 +---------------- .../bindings/MultiSelectV2SharedTypes.res | 4 +- .../bindings/SankeyLink.res | 6 +- .../bindings/SankeyNode.res | 6 +- .../bindings/StatCard.res | 2 +- .../bindings/StatCardTypes.res | 2 +- .../bindings/_REPORT.md | 15 +- .../metrics.json | 2 +- .../bindings/BlendChart.res | 2 +- .../bindings/BlendDesignSystemBindings.res | 2 +- .../bindings/ChartLegends.res | 6 +- .../bindings/ChartV2.res | 2 +- .../bindings/Charts.res | 24 +- .../bindings/ChartsTypes.res | 360 +++++++++++ .../bindings/CoreChart.res | 12 +- .../bindings/EditorSharedTypes.res | 8 +- .../bindings/HighchartsSharedTypes.res | 567 +----------------- .../bindings/SankeyLink.res | 6 +- .../bindings/SankeyNode.res | 6 +- .../bindings/StatCard.res | 2 +- .../bindings/StatCardTypes.res | 2 +- .../bindings/Tag.res | 2 +- .../bindings/_REPORT.md | 15 +- .../metrics.json | 2 +- .../bindings/BlendChart.res | 2 +- .../bindings/BlendDesignSystemBindings.res | 2 +- .../bindings/ChartLegends.res | 6 +- .../bindings/ChartV2.res | 2 +- .../bindings/Charts.res | 24 +- .../bindings/ChartsTypes.res | 360 +++++++++++ .../bindings/CoreChart.res | 12 +- .../bindings/EditorSharedTypes.res | 8 +- .../bindings/HighchartsSharedTypes.res | 567 +----------------- .../bindings/SankeyLink.res | 6 +- .../bindings/SankeyNode.res | 6 +- .../bindings/SidebarTypes.res | 38 -- .../bindings/SidebarV2Types.res | 33 - .../bindings/StatCard.res | 2 +- .../bindings/StatCardTypes.res | 2 +- .../bindings/Tag.res | 2 +- .../bindings/_REPORT.md | 15 +- .../metrics.json | 2 +- .../package-lock.json | 317 ---------- .../bindings/DistTypes.res | 16 - .../bindings/_REPORT.md | 2 +- docs/TYPE_MAPPING.md | 12 + src/extract.mjs | 92 +++ .../expected/DemoBindings.res | 3 + .../expected/ReturnOnlyGenericOrphanTypes.res | 3 + .../expected/_REPORT.md | 47 ++ .../return-only-generic-orphan/index.d.ts | 7 + 59 files changed, 1466 insertions(+), 2149 deletions(-) create mode 100644 benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/ChartsTypes.res create mode 100644 benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/ChartsTypes.res create mode 100644 benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/ChartsTypes.res create mode 100644 test/golden/cases/return-only-generic-orphan/expected/DemoBindings.res create mode 100644 test/golden/cases/return-only-generic-orphan/expected/ReturnOnlyGenericOrphanTypes.res create mode 100644 test/golden/cases/return-only-generic-orphan/expected/_REPORT.md create mode 100644 test/golden/cases/return-only-generic-orphan/index.d.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 7549c4dc..4505fb08 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,13 @@ This project adheres to [Semantic Versioning](https://semver.org/). ### Fixed +- **Return-only generic no longer strands an orphan record** (#191) — a function whose type parameter + appears only in its return (`jsonBoxed(): BoxOf`) has that return flagged (it can't round-trip), + but the record `classify` registered while building the discarded return was left in the output as an + unreferenced type. A post-traversal reachability sweep now drops any registered type unreachable from + the emitted roots, and a concrete sibling reclaims the clean base name (`readBox(): BoxOf` → + `boxOf`, not `boxOfV1hnll`). Key-based, so a late-bound keyed ref never loses a live type. + - **Large `@unboxed` unions no longer leak every member into the public type name** (#190) — a named union with more than four runtime members now follows its upstream alias (`StatusCode` → `statusCode`) instead of producing Hono's 60-member `v100OrV101Or…OrV511OrV1`. The exact previous diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/BlendChart.res b/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/BlendChart.res index f0e4826d..42b7484d 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/BlendChart.res +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/BlendChart.res @@ -1,7 +1,7 @@ type props<'a, 'b, 'c, 't7> = { ref?: React.ref>>, allowChartUpdate?: bool, - constructorType?: HighchartsSharedTypes.chartsBlendChartPropsConstructorType, + constructorType?: ChartsTypes.chartsBlendChartPropsConstructorType, containerProps?: Dict.t<'t7>, highcharts?: InstanceTypes.highchartsModule, immutable?: bool, diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/BlendDesignSystemBindings.res b/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/BlendDesignSystemBindings.res index 279dc681..72b922a6 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/BlendDesignSystemBindings.res +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/BlendDesignSystemBindings.res @@ -11,7 +11,7 @@ @module("@juspay/blend-design-system") external addSnackbar: (SnackbarTypes.addToastOptions) => CommonTypes.stringOrNumber = "addSnackbar" @module("@juspay/blend-design-system") external getSnackbarTokens: (TokensTypes.foundationTokenType) => SnackbarTypes.responsiveSnackbarTokens = "getSnackbarTokens" @module("@juspay/blend-design-system") external getPopoverTokens: (TokensTypes.foundationTokenType) => PopoverTypes.responsivePopoverTokens = "getPopoverTokens" -@module("@juspay/blend-design-system") external getChartTokens: (TokensTypes.foundationTokenType) => HighchartsSharedTypes.responsiveChartTokens = "getChartTokens" +@module("@juspay/blend-design-system") external getChartTokens: (TokensTypes.foundationTokenType) => ChartsTypes.responsiveChartTokens = "getChartTokens" @module("@juspay/blend-design-system") external blendChartBaseInstance: InstanceTypes.highchartsModule = "BlendChartBaseInstance" @module("@juspay/blend-design-system") external getCalendarToken: (TokensTypes.foundationTokenType) => DateRangePickerTypes.responsiveCalendarTokens = "getCalendarToken" @module("@juspay/blend-design-system") external getStatCardToken: (TokensTypes.foundationTokenType) => StatCardTypes.responsiveStatCardTokens = "getStatCardToken" diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/ChartLegends.res b/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/ChartLegends.res index 9c6623bd..b5d1e4a1 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/ChartLegends.res +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/ChartLegends.res @@ -1,7 +1,7 @@ type props = { chartContainerRef: React.ref>, keys: array, - colors: array, + colors: array, handleLegendClick: string => unit, handleLegendEnter: string => unit, handleLegendLeave: unit => unit, @@ -11,8 +11,8 @@ type props = { activeKeys: Nullable.t>, stacked?: bool, isSmallScreen?: bool, - stackedLegendsData?: array, - legends?: array, + stackedLegendsData?: array, + legends?: array, } @module("@juspay/blend-design-system") diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/ChartV2.res b/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/ChartV2.res index b48295cb..bf435064 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/ChartV2.res +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/ChartV2.res @@ -1,6 +1,6 @@ type props<'a, 'b, 'c> = { allowChartUpdate?: bool, - constructorType?: HighchartsSharedTypes.chartsBlendChartPropsConstructorType, + constructorType?: ChartsTypes.chartsBlendChartPropsConstructorType, containerProps?: Dict.t<'a>, highcharts?: InstanceTypes.highchartsModule, immutable?: bool, diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/Charts.res b/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/Charts.res index aafdcae5..33578e91 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/Charts.res +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/Charts.res @@ -1,28 +1,28 @@ type props = { - chartType?: HighchartsSharedTypes.chartType, - data: array, - colors?: array, + chartType?: ChartsTypes.chartType, + data: array, + colors?: array, slot1?: React.element, slot2?: React.element, slot3?: React.element, - legendPosition?: HighchartsSharedTypes.chartLegendPosition, + legendPosition?: ChartsTypes.chartLegendPosition, chartHeaderSlot: React.element, stackedLegends?: bool, - stackedLegendsData?: array, + stackedLegendsData?: array, barsize?: float, - xAxis?: HighchartsSharedTypes.axisConfig, - yAxis?: HighchartsSharedTypes.axisConfig, - tooltip?: HighchartsSharedTypes.tooltipConfig, - noData?: HighchartsSharedTypes.noDataProps, + xAxis?: ChartsTypes.axisConfig, + yAxis?: ChartsTypes.axisConfig, + tooltip?: ChartsTypes.tooltipConfig, + noData?: ChartsTypes.noDataProps, height?: float, showHeader?: bool, showCollapseIcon?: bool, isExpanded?: bool, onExpandedChange?: bool => unit, chartName?: string, - skeleton?: HighchartsSharedTypes.chartsSkeletonProps, - legends?: array, - @as("CustomizedDot") customizedDot?: HighchartsSharedTypes.dotItemDotProps => React.element, + skeleton?: ChartsTypes.chartsSkeletonProps, + legends?: array, + @as("CustomizedDot") customizedDot?: ChartsTypes.dotItemDotProps => React.element, lineSeriesKeys?: array, } diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/ChartsTypes.res b/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/ChartsTypes.res new file mode 100644 index 00000000..66ee086b --- /dev/null +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/ChartsTypes.res @@ -0,0 +1,357 @@ +type chartType = + | @as("line") Line + | @as("bar") Bar + | @as("lineBar") LineBar + | @as("pie") Pie + | @as("scatter") Scatter + | @as("area") Area + | @as("sankey") Sankey +type axisType = + | @as("dateTime") DateTime + | @as("currency") Currency + | @as("percentage") Percentage + | @as("number") Number +type chartLegendPosition = + | @as("top") Top + | @as("right") Right +type legendsChangeType = + | @as("increase") Increase + | @as("decrease") Decrease +type chartsXAxisTitleOptionsPosition3d = + | @as("chart") Chart + | @as("flap") Flap + | @as("offset") Offset + | @as("ortho") Ortho +type chartsSeriesSetState = + | @as("") Value + | @as("normal") Normal + | @as("select") Select + | @as("hover") Hover + | @as("inactive") Inactive +type chartsPointSetState = + | @as("") Value + | @as("normal") Normal + | @as("select") Select + | @as("hover") Hover + | @as("inactive") Inactive +type chartsSeriesArcdiagramOptionsLinkColorMode = + | @as("from") From + | @as("to") To + | @as("gradient") Gradient +type chartsBorderRadiusOptionsObjectScope = + | @as("point") PointObjectScope + | @as("stack") Stack +type chartsBorderRadiusOptionsObjectWhere = + | @as("end") End + | @as("all") All +type chartsPlotOrganizationLinkOptionsType = + | @as("straight") Straight + | @as("curved") Curved + | @as("orthogonal") Orthogonal +type chartsSeriesOrganizationOptionsNodeAlignment = + | @as("center") Center + | @as("bottom") Bottom + | @as("top") Top +type chartsBlendChartPropsConstructorType = + | @as("color") Color + | @as("end") End + | @as("start") Start + | @as("width") Width + | @as("height") Height + | @as("animate") Animate + | @as("circle") Circle + | @as("rect") Rect + | @as("stop") Stop + | @as("find") Find + | @as("backgroundSize") BackgroundSize + | @as("wrap") Wrap + | @as("open") Open + | @as("chart") Chart + | @as("offset") Offset + | @as("x") X + | @as("y") Y + | @as("arc") Arc + | @as("callout") Callout + | @as("diamond") Diamond + | @as("triangle") Triangle + | @as("format") Format + | @as("addEvent") AddEvent + | @as("animObject") AnimObject + | @as("arrayMax") ArrayMax + | @as("arrayMin") ArrayMin + | @as("attr") Attr + | @as("correctFloat") CorrectFloat + | @as("createElement") CreateElement + | @as("css") Css + | @as("dateFormat") DateFormat + | @as("defined") Defined + | @as("destroyObjectProperties") DestroyObjectProperties + | @as("discardElement") DiscardElement + | @as("erase") Erase + | @as("error") Error + | @as("extend") Extend + | @as("extendClass") ExtendClass + | @as("fireEvent") FireEvent + | @as("getDeferredAnimation") GetDeferredAnimation + | @as("getMagnitude") GetMagnitude + | @as("getOptions") GetOptions + | @as("getStyle") GetStyle + | @as("isArray") IsArray + | @as("isClass") IsClass + | @as("isDOMElement") IsDOMElement + | @as("isFunction") IsFunction + | @as("isNumber") IsNumber + | @as("isObject") IsObject + | @as("isString") IsString + | @as("merge") Merge + | @as("normalizeTickInterval") NormalizeTickInterval + | @as("numberFormat") NumberFormat + | @as("objectEach") ObjectEach + | @as("pad") Pad + | @as("pick") Pick + | @as("relativeLength") RelativeLength + | @as("removeEvent") RemoveEvent + | @as("seriesType") SeriesType + | @as("setAnimation") SetAnimation + | @as("setOptions") SetOptions + | @as("splat") Splat + | @as("stableSort") StableSort + | @as("syncTimeout") SyncTimeout + | @as("uniqueKey") UniqueKey + | @as("useSerialIds") UseSerialIds + | @as("centerImage") CenterImage + | @as("dateTimeFormat") DateTimeFormat + | @as("deleteRows") DeleteRows + | @as("getColumn") GetColumn + | @as("getColumns") GetColumns + | @as("getLogTickPositions") GetLogTickPositions + | @as("getModified") GetModified + | @as("getRendererType") GetRendererType + | @as("getRow") GetRow + | @as("modifyTree") ModifyTree + | @as("registerRendererType") RegisterRendererType + | @as("registerSeriesType") RegisterSeriesType + | @as("roundedRect") RoundedRect + | @as("setColumn") SetColumn + | @as("setColumns") SetColumns + | @as("setRow") SetRow + | @as("str2dtf") Str2dtf + | @as("triangleDown") TriangleDown + | @as("unescapeEntities") UnescapeEntities + | @as("Annotation") Annotation + | @as("AnnotationControlPoint") AnnotationControlPoint + | @as("AST") AST + | @as("Axis") Axis + | @as("Chart") Chart2 + | @as("Color") Color2 + | @as("DataTable") DataTable + | @as("DataTableCore") DataTableCore + | @as("Legend") Legend + | @as("PlotLineOrBand") PlotLineOrBand + | @as("Point") PointConstructorType + | @as("Pointer") Pointer + | @as("Series") Series + | @as("StackItem") StackItem + | @as("SVGElement") SVGElement + | @as("SVGLabel") SVGLabel + | @as("SVGRenderer") SVGRenderer + | @as("Tick") Tick + | @as("Time") Time + | @as("Tooltip") Tooltip + | @as("charts") Charts + | @as("dateFormats") DateFormats + | @as("defaultOptions") DefaultOptions + | @as("theme") Theme + | @as("anchorX") AnchorX + | @as("anchorY") AnchorY + | @as("clockwise") Clockwise + | @as("context") Context + | @as("innerR") InnerR + | @as("longArc") LongArc + | @as("r") R +type chartsDataPointPrimaryConfig = { + label: string, + val: float, +} +type chartsDataPointAuxConfig = { + label: string, + val: float, + @as("type") type_?: axisType, + dateOnly?: bool, + smart?: bool, + timeZone?: string, + hour12?: bool, +} +type chartsDataPointErrorErrorDataConfig = { + label: string, + value: string, +} +type chartsDataPointErrorConfig = { + title: string, + errorData?: array, +} +type dataPoint = { + primary: chartsDataPointPrimaryConfig, + aux?: array, + error?: chartsDataPointErrorConfig, +} +type newNestedDataPoint = { + name: string, + data: Dict.t, +} +type chartsColorsConfig = { + key: string, + color: string, +} +type stackedLegendsDataPoint = { + value: float, + delta: float, + changeType: legendsChangeType, +} +type chartsTickPropsPayloadConfig = { + value: CommonTypes.stringOrNumber, + index?: int, + coordinate?: float, +} +type tickProps = { + x?: float, + y?: float, + payload?: chartsTickPropsPayloadConfig, +} +@set_index external tickPropsSet: (tickProps, string, JSON.t) => unit = "" +type axisConfig = { + label?: string, + showLabel?: bool, + interval?: CommonTypes.preserveStartOrPreserveEndOrPreserveStartEndOrNumber, + show?: bool, + @as("type") type_?: axisType, + tickFormatter?: CommonTypes.stringOrNumber => string, + customTick?: React.component, + dateOnly?: bool, + useUTC?: bool, + formatString?: string, + timeOnly?: bool, + showYear?: bool, + ticks?: array, + autoConsistentTicks?: bool, + maxTicks?: float, + smartDateTimeFormat?: bool, +} +type chartsTooltipConfigPositionConfig = { + x?: float, + y?: float, +} +type chartsTooltipConfigAllowEscapeViewBoxConfig = { + x?: bool, + y?: bool, +} +type tooltipConfig = { + position?: chartsTooltipConfigPositionConfig, + allowEscapeViewBox?: chartsTooltipConfigAllowEscapeViewBoxConfig, +} +type noDataProps = { + title?: string, + subtitle?: string, + slot?: React.element, + button?: ButtonTypes.buttonProps, +} +type chartsSkeletonProps = { + show: bool, + variant: SkeletonTypes.skeletonVariant, +} +type chartsLegendsConfig = { + title: string, + total?: string, +} +type chartsDotItemDotPropsPayloadConfig = { + name?: string, +} +type dotItemDotProps = { + cx?: float, + cy?: float, + value?: float, + payload?: chartsDotItemDotPropsPayloadConfig, +} +type chartsPayloadConfig = { + name: string, + id?: string, + color?: string, + value?: float, +} +type chartsSankeyTooltipDataPayloadConfig = { + name?: string, + value?: float, + source?: CommonTypes.stringOrNumber, + target?: CommonTypes.stringOrNumber, + sourceName?: string, + targetName?: string, + color?: string, + hoverColor?: string, +} +type sankeyTooltipData = { + payload: chartsSankeyTooltipDataPayloadConfig, +} +type sankeyLink = { + source: CommonTypes.stringOrNumber, + target: CommonTypes.stringOrNumber, + value: float, + color?: string, + hoverColor?: string, +} +type chartsChartTokensTypeHeaderPaddingConfig = { + x: string, + y: string, +} +type chartsChartTokensTypeHeaderSlotsConfig = { + gap: string, +} +type chartsChartTokensTypeHeaderConfig = { + padding: chartsChartTokensTypeHeaderPaddingConfig, + backgroundColor: string, + borderBottom: string, + borderRadius: string, + slots: chartsChartTokensTypeHeaderSlotsConfig, +} +type chartsChartTokensTypeContentLegendDropdownConfig = { + maxHeight: string, +} +type chartsChartTokensTypeContentLegendItemColorConfig = { + default: string, + hover: string, + active: string, + total: string, +} +type chartsChartTokensTypeContentLegendItemConfig = { + gap: string, + color: chartsChartTokensTypeContentLegendItemColorConfig, + fontSize: string, + fontWeight: string, +} +type chartsChartTokensTypeContentLegendConfig = { + gap: string, + dropdown: chartsChartTokensTypeContentLegendDropdownConfig, + item: chartsChartTokensTypeContentLegendItemConfig, +} +type chartsChartTokensTypeContentPaddingConfig = { + top: string, + right: string, + bottom: string, + left: string, +} +type chartsChartTokensTypeContentConfig = { + legend: chartsChartTokensTypeContentLegendConfig, + padding: chartsChartTokensTypeContentPaddingConfig, + gap: string, + backgroundColor: string, +} +type chartTokensType = { + border: string, + borderRadius: string, + header: chartsChartTokensTypeHeaderConfig, + content: chartsChartTokensTypeContentConfig, +} +type responsiveChartTokens = { + sm: chartTokensType, + lg: chartTokensType, +} +@unboxed type stringOrChartsColorsConfig = Str(string) | ChartsColorsConfig(chartsColorsConfig) diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/CoreChart.res b/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/CoreChart.res index 3f6922cb..f6aafe73 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/CoreChart.res +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/CoreChart.res @@ -1,11 +1,11 @@ type props = { - chartType?: HighchartsSharedTypes.chartType, - data: array, - colors?: array, + chartType?: ChartsTypes.chartType, + data: array, + colors?: array, barsize?: float, - xAxis?: HighchartsSharedTypes.axisConfig, - yAxis?: HighchartsSharedTypes.axisConfig, - tooltip?: HighchartsSharedTypes.tooltipConfig, + xAxis?: ChartsTypes.axisConfig, + yAxis?: ChartsTypes.axisConfig, + tooltip?: ChartsTypes.tooltipConfig, height?: CommonTypes.stringOrNumber, width?: CommonTypes.stringOrNumber, isSmallScreen?: bool, diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/HighchartsSharedTypes.res b/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/HighchartsSharedTypes.res index 56ea8809..45597ba3 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/HighchartsSharedTypes.res +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/HighchartsSharedTypes.res @@ -1,24 +1,5 @@ @@warning("-30") -type chartType = - | @as("line") Line - | @as("bar") Bar - | @as("lineBar") LineBar - | @as("pie") Pie - | @as("scatter") Scatter - | @as("area") Area - | @as("sankey") Sankey -type axisType = - | @as("dateTime") DateTime - | @as("currency") Currency - | @as("percentage") Percentage - | @as("number") Number -type chartLegendPosition = - | @as("top") Top - | @as("right") Right -type legendsChangeType = - | @as("increase") Increase - | @as("decrease") Decrease type dashStyleValue = | @as("Dash") Dash | @as("DashDot") DashDot @@ -41,7 +22,7 @@ type verticalAlignValue = | @as("middle") Middle type optionsGridLineInterpolationValue = | @as("circle") Circle - | @as("polygon") PolygonInterpolationValue + | @as("polygon") Polygon type optionsOverflowValue = | @as("justify") Justify | @as("allow") Allow @@ -63,23 +44,12 @@ type axisTitleAlignValue = | @as("middle") Middle | @as("high") High | @as("low") Low -type chartsXAxisTitleOptionsPosition3d = - | @as("chart") Chart - | @as("flap") Flap - | @as("offset") Offset - | @as("ortho") Ortho type axisTypeValue = | @as("treegrid") Treegrid | @as("linear") Linear | @as("category") Category | @as("datetime") Datetime | @as("logarithmic") Logarithmic -type chartsSeriesSetState = - | @as("") ValueSeriesSetState - | @as("normal") Normal - | @as("select") Select - | @as("hover") Hover - | @as("inactive") Inactive type svgPathCommand = | @as("a") A | @as("q") Q @@ -101,12 +71,6 @@ type svgPathCommand = | @as("T") T2 | @as("V") V2 | @as("Z") Z2 -type chartsPointSetState = - | @as("") ValuePointSetState - | @as("normal") Normal - | @as("select") Select - | @as("hover") Hover - | @as("inactive") Inactive type bubbleSizeByValue = | @as("width") Width | @as("area") Area @@ -137,7 +101,7 @@ type cursorValue = | @as("ns-resize") NsResize | @as("nw-resize") NwResize | @as("nwse-resize") NwseResize - | @as("pointer") PointerCursorValue + | @as("pointer") Pointer | @as("row-resize") RowResize | @as("s-resize") SResize | @as("se-resize") SeResize @@ -229,7 +193,7 @@ type optionsFindNearestPointByValue = | @as("x") X | @as("xy") Xy type optionsGapUnitValue = - | @as("value") ValueOptionsGapUnit + | @as("value") ValueGapUnit | @as("relative") Relative type optionsLegendSymbolValue = | @as("rectangle") Rectangle @@ -247,10 +211,6 @@ type optionsRelativeToValue = type optionsCompareValue = | @as("value") ValueOptionsCompare | @as("percent") Percent -type chartsSeriesArcdiagramOptionsLinkColorMode = - | @as("from") From - | @as("to") To - | @as("gradient") Gradient type optionsPointIntervalUnitValue = | @as("year") Year | @as("month") Month @@ -261,12 +221,6 @@ type optionsStackingValue = | @as("null") Null | @as("overlap") Overlap | @as("stream") Stream -type chartsBorderRadiusOptionsObjectScope = - | @as("point") PointObjectScope - | @as("stack") Stack -type chartsBorderRadiusOptionsObjectWhere = - | @as("end") End - | @as("all") All type optionsPointValKeyValue = | @as("open") Open | @as("high") High @@ -300,14 +254,6 @@ type organizationHangingIndentTranslationValue = | @as("inherit") Inherit | @as("cumulative") Cumulative | @as("shrink") Shrink -type chartsPlotOrganizationLinkOptionsType = - | @as("straight") Straight - | @as("curved") Curved - | @as("orthogonal") Orthogonal -type chartsSeriesOrganizationOptionsNodeAlignment = - | @as("center") Center - | @as("bottom") Bottom - | @as("top") Top type seriesOrganizationNodesLayoutValue = | @as("normal") Normal | @as("hanging") Hanging @@ -392,11 +338,6 @@ type optionsDropdownValue = | @as("always") Always | @as("never") Never | @as("responsive") Responsive -type mapGeometryTypeValue = - | @as("LineString") LineString - | @as("MultiLineString") MultiLineString - | @as("MultiPolygon") MultiPolygon - | @as("Polygon") PolygonTypeValue type synthPatchOscillatorType = | @as("pulse") Pulse | @as("square") Square @@ -409,7 +350,7 @@ type optionsMapFunctionValue = | @as("logarithmic") Logarithmic type optionsWithinValue = | @as("chart") Chart - | @as("series") SeriesWithinValue + | @as("series") Series | @as("xAxis") XAxis | @as("yAxis") YAxis type optionsValueMapFunctionValue = @@ -432,253 +373,7 @@ type symbolKeyValue = | @as("callout") Callout | @as("diamond") Diamond | @as("triangle") Triangle - | @as("triangle-down") TriangleDownKeyValue -type chartsBlendChartPropsConstructorType = - | @as("color") Color - | @as("end") End - | @as("start") Start - | @as("width") Width - | @as("height") Height - | @as("animate") Animate - | @as("circle") Circle - | @as("rect") Rect - | @as("stop") Stop - | @as("find") Find - | @as("backgroundSize") BackgroundSize - | @as("wrap") Wrap - | @as("open") Open - | @as("chart") Chart - | @as("offset") Offset - | @as("x") X - | @as("y") Y - | @as("arc") Arc - | @as("callout") Callout - | @as("diamond") Diamond - | @as("triangle") Triangle - | @as("format") Format - | @as("addEvent") AddEvent - | @as("animObject") AnimObject - | @as("arrayMax") ArrayMax - | @as("arrayMin") ArrayMin - | @as("attr") Attr - | @as("correctFloat") CorrectFloat - | @as("createElement") CreateElement - | @as("css") Css - | @as("dateFormat") DateFormat - | @as("defined") Defined - | @as("destroyObjectProperties") DestroyObjectProperties - | @as("discardElement") DiscardElement - | @as("erase") Erase - | @as("error") Error - | @as("extend") Extend - | @as("extendClass") ExtendClass - | @as("fireEvent") FireEvent - | @as("getDeferredAnimation") GetDeferredAnimation - | @as("getMagnitude") GetMagnitude - | @as("getOptions") GetOptions - | @as("getStyle") GetStyle - | @as("isArray") IsArray - | @as("isClass") IsClass - | @as("isDOMElement") IsDOMElement - | @as("isFunction") IsFunction - | @as("isNumber") IsNumber - | @as("isObject") IsObject - | @as("isString") IsString - | @as("merge") Merge - | @as("normalizeTickInterval") NormalizeTickInterval - | @as("numberFormat") NumberFormat - | @as("objectEach") ObjectEach - | @as("pad") Pad - | @as("pick") Pick - | @as("relativeLength") RelativeLength - | @as("removeEvent") RemoveEvent - | @as("seriesType") SeriesType - | @as("setAnimation") SetAnimation - | @as("setOptions") SetOptions - | @as("splat") Splat - | @as("stableSort") StableSort - | @as("syncTimeout") SyncTimeout - | @as("uniqueKey") UniqueKey - | @as("useSerialIds") UseSerialIds - | @as("centerImage") CenterImage - | @as("dateTimeFormat") DateTimeFormat - | @as("deleteRows") DeleteRows - | @as("getColumn") GetColumn - | @as("getColumns") GetColumns - | @as("getLogTickPositions") GetLogTickPositions - | @as("getModified") GetModified - | @as("getRendererType") GetRendererType - | @as("getRow") GetRow - | @as("modifyTree") ModifyTree - | @as("registerRendererType") RegisterRendererType - | @as("registerSeriesType") RegisterSeriesType - | @as("roundedRect") RoundedRect - | @as("setColumn") SetColumn - | @as("setColumns") SetColumns - | @as("setRow") SetRow - | @as("str2dtf") Str2dtf - | @as("triangleDown") TriangleDownConstructorType - | @as("unescapeEntities") UnescapeEntities - | @as("Annotation") Annotation - | @as("AnnotationControlPoint") AnnotationControlPoint - | @as("AST") AST - | @as("Axis") Axis - | @as("Chart") Chart2 - | @as("Color") Color2 - | @as("DataTable") DataTable - | @as("DataTableCore") DataTableCore - | @as("Legend") Legend - | @as("PlotLineOrBand") PlotLineOrBand - | @as("Point") PointConstructorType - | @as("Pointer") PointerConstructorType - | @as("Series") SeriesConstructorType - | @as("StackItem") StackItem - | @as("SVGElement") SVGElement - | @as("SVGLabel") SVGLabel - | @as("SVGRenderer") SVGRenderer - | @as("Tick") Tick - | @as("Time") Time - | @as("Tooltip") Tooltip - | @as("charts") Charts - | @as("dateFormats") DateFormats - | @as("defaultOptions") DefaultOptions - | @as("theme") Theme - | @as("anchorX") AnchorX - | @as("anchorY") AnchorY - | @as("clockwise") Clockwise - | @as("context") Context - | @as("innerR") InnerR - | @as("longArc") LongArc - | @as("r") R -type chartsDataPointPrimaryConfig = { - label: string, - val: float, -} -type chartsDataPointAuxConfig = { - label: string, - val: float, - @as("type") type_?: axisType, - dateOnly?: bool, - smart?: bool, - timeZone?: string, - hour12?: bool, -} -type chartsDataPointErrorErrorDataConfig = { - label: string, - value: string, -} -type chartsDataPointErrorConfig = { - title: string, - errorData?: array, -} -type dataPoint = { - primary: chartsDataPointPrimaryConfig, - aux?: array, - error?: chartsDataPointErrorConfig, -} -type newNestedDataPoint = { - name: string, - data: Dict.t, -} -type chartsColorsConfig = { - key: string, - color: string, -} -type stackedLegendsDataPoint = { - value: float, - delta: float, - changeType: legendsChangeType, -} -type chartsTickPropsPayloadConfig = { - value: CommonTypes.stringOrNumber, - index?: int, - coordinate?: float, -} -type tickProps = { - x?: float, - y?: float, - payload?: chartsTickPropsPayloadConfig, -} -@set_index external tickPropsSet: (tickProps, string, JSON.t) => unit = "" -type axisConfig = { - label?: string, - showLabel?: bool, - interval?: CommonTypes.preserveStartOrPreserveEndOrPreserveStartEndOrNumber, - show?: bool, - @as("type") type_?: axisType, - tickFormatter?: CommonTypes.stringOrNumber => string, - customTick?: React.component, - dateOnly?: bool, - useUTC?: bool, - formatString?: string, - timeOnly?: bool, - showYear?: bool, - ticks?: array, - autoConsistentTicks?: bool, - maxTicks?: float, - smartDateTimeFormat?: bool, -} -type chartsTooltipConfigPositionConfig = { - x?: float, - y?: float, -} -type chartsTooltipConfigAllowEscapeViewBoxConfig = { - x?: bool, - y?: bool, -} -type tooltipConfig = { - position?: chartsTooltipConfigPositionConfig, - allowEscapeViewBox?: chartsTooltipConfigAllowEscapeViewBoxConfig, -} -type noDataProps = { - title?: string, - subtitle?: string, - slot?: React.element, - button?: ButtonTypes.buttonProps, -} -type chartsSkeletonProps = { - show: bool, - variant: SkeletonTypes.skeletonVariant, -} -type chartsLegendsConfig = { - title: string, - total?: string, -} -type chartsDotItemDotPropsPayloadConfig = { - name?: string, -} -type dotItemDotProps = { - cx?: float, - cy?: float, - value?: float, - payload?: chartsDotItemDotPropsPayloadConfig, -} -type chartsPayloadConfig = { - name: string, - id?: string, - color?: string, - value?: float, -} -type chartsSankeyTooltipDataPayloadConfig = { - name?: string, - value?: float, - source?: CommonTypes.stringOrNumber, - target?: CommonTypes.stringOrNumber, - sourceName?: string, - targetName?: string, - color?: string, - hoverColor?: string, -} -type sankeyTooltipData = { - payload: chartsSankeyTooltipDataPayloadConfig, -} -type sankeyLink = { - source: CommonTypes.stringOrNumber, - target: CommonTypes.stringOrNumber, - value: float, - color?: string, - hoverColor?: string, -} + | @as("triangle-down") TriangleDown type axisAccessibilityOptionsObject = { description?: string, enabled?: bool, @@ -766,7 +461,7 @@ type xAxisTitleOptions = { align?: axisTitleAlignValue, margin?: float, offset?: float, - position3d?: chartsXAxisTitleOptionsPosition3d, + position3d?: ChartsTypes.chartsXAxisTitleOptionsPosition3d, reserveSpace?: bool, rotation?: float, skew3d?: bool, @@ -1546,7 +1241,7 @@ type chartParallelAxesTitleOptions = { align?: axisTitleAlignValue, margin?: float, offset?: float, - position3d?: chartsXAxisTitleOptionsPosition3d, + position3d?: ChartsTypes.chartsXAxisTitleOptionsPosition3d, reserveSpace?: bool, rotation?: float, skew3d?: bool, @@ -1651,7 +1346,7 @@ type colorAxisTitleOptions = { align?: axisTitleAlignValue, margin?: float, offset?: float, - position3d?: chartsXAxisTitleOptionsPosition3d, + position3d?: ChartsTypes.chartsXAxisTitleOptionsPosition3d, reserveSpace?: bool, rotation?: float, skew3d?: bool, @@ -3080,8 +2775,8 @@ module ChartsSeriesAtrOptionsOnPoint = { } type borderRadiusOptionsObject = { radius: CommonTypes.stringOrNumber, - scope: chartsBorderRadiusOptionsObjectScope, - where: chartsBorderRadiusOptionsObjectWhere, + scope: ChartsTypes.chartsBorderRadiusOptionsObjectScope, + where: ChartsTypes.chartsBorderRadiusOptionsObjectWhere, } @unboxed type stringOrNumberOrBorderRadiusOptionsObject = Str(string) | Num(float) | BorderRadiusOptionsObject(borderRadiusOptionsObject) module ChartsSeriesBarOptionsDataSorting = { @@ -5031,7 +4726,7 @@ type plotOrganizationLinkOptions = { color?: string, lineWidth?: float, radius?: float, - @as("type") type_?: chartsPlotOrganizationLinkOptionsType, + @as("type") type_?: ChartsTypes.chartsPlotOrganizationLinkOptionsType, } module ChartsPlotOrganizationOnPointOptionsConnectorOptions = { type t @@ -6163,7 +5858,7 @@ type plotTreegraphLinkOptions = { curveFactor?: float, lineWidth?: float, radius?: float, - @as("type") type_?: chartsPlotOrganizationLinkOptionsType, + @as("type") type_?: ChartsTypes.chartsPlotOrganizationLinkOptionsType, } module ChartsPlotTreegraphOnPointOptionsConnectorOptions = { type t @@ -10347,11 +10042,11 @@ and plotSankeyOptions<'a, 'b, 'c> = { label?: seriesLabelOptionsObject<'a, 'b, 'c>, legendSymbol?: optionsLegendSymbolValue, levels?: array>, - linkColorMode?: chartsSeriesArcdiagramOptionsLinkColorMode, + linkColorMode?: ChartsTypes.chartsSeriesArcdiagramOptionsLinkColorMode, linkedTo?: string, linkOpacity?: float, minLinkWidth?: float, - nodeAlignment?: chartsSeriesOrganizationOptionsNodeAlignment, + nodeAlignment?: ChartsTypes.chartsSeriesOrganizationOptionsNodeAlignment, nodeDistance?: CommonTypes.stringOrNumber, nodePadding?: float, nodeWidth?: CommonTypes.stringOrNumber, @@ -11532,12 +11227,12 @@ and plotOrganizationOptions<'a, 'b, 'c> = { legendSymbol?: optionsLegendSymbolValue, levels?: array>, link?: plotOrganizationLinkOptions, - linkColorMode?: chartsSeriesArcdiagramOptionsLinkColorMode, + linkColorMode?: ChartsTypes.chartsSeriesArcdiagramOptionsLinkColorMode, linkedTo?: string, linkOpacity?: float, minLinkWidth?: float, minNodeLength?: float, - nodeAlignment?: chartsSeriesOrganizationOptionsNodeAlignment, + nodeAlignment?: ChartsTypes.chartsSeriesOrganizationOptionsNodeAlignment, nodeDistance?: CommonTypes.stringOrNumber, nodePadding?: float, nodeWidth?: float, @@ -14341,7 +14036,7 @@ and plotDependencywheelOptions<'a, 'b, 'c> = { label?: seriesLabelOptionsObject<'a, 'b, 'c>, legendSymbol?: optionsLegendSymbolValue, levels?: array>, - linkColorMode?: chartsSeriesArcdiagramOptionsLinkColorMode, + linkColorMode?: ChartsTypes.chartsSeriesArcdiagramOptionsLinkColorMode, linkedTo?: string, linkOpacity?: float, minLinkWidth?: float, @@ -16276,7 +15971,7 @@ and plotArcdiagramOptions<'a, 'b, 'c> = { label?: seriesLabelOptionsObject<'a, 'b, 'c>, legendSymbol?: optionsLegendSymbolValue, levels?: array>, - linkColorMode?: chartsSeriesArcdiagramOptionsLinkColorMode, + linkColorMode?: ChartsTypes.chartsSeriesArcdiagramOptionsLinkColorMode, linkedTo?: string, linkOpacity?: float, marker?: pointMarkerOptionsObject, @@ -19941,11 +19636,11 @@ and seriesSankeyOptions<'b, 'a, 'c> = { label?: seriesLabelOptionsObject<'a, 'b, 'c>, legendSymbol?: optionsLegendSymbolValue, levels?: array, - linkColorMode?: chartsSeriesArcdiagramOptionsLinkColorMode, + linkColorMode?: ChartsTypes.chartsSeriesArcdiagramOptionsLinkColorMode, linkedTo?: string, linkOpacity?: float, minLinkWidth?: float, - nodeAlignment?: chartsSeriesOrganizationOptionsNodeAlignment, + nodeAlignment?: ChartsTypes.chartsSeriesOrganizationOptionsNodeAlignment, nodeDistance?: CommonTypes.stringOrNumber, nodePadding?: float, nodeWidth?: CommonTypes.stringOrNumber, @@ -21373,12 +21068,12 @@ and seriesOrganizationOptions<'b, 'a, 'c> = { legendSymbol?: optionsLegendSymbolValue, levels?: array, link?: plotOrganizationLinkOptions, - linkColorMode?: chartsSeriesArcdiagramOptionsLinkColorMode, + linkColorMode?: ChartsTypes.chartsSeriesArcdiagramOptionsLinkColorMode, linkedTo?: string, linkOpacity?: float, minLinkWidth?: float, minNodeLength?: float, - nodeAlignment?: chartsSeriesOrganizationOptionsNodeAlignment, + nodeAlignment?: ChartsTypes.chartsSeriesOrganizationOptionsNodeAlignment, nodeDistance?: CommonTypes.stringOrNumber, nodePadding?: float, nodeWidth?: float, @@ -24955,7 +24650,7 @@ and seriesDependencywheelOptions<'b, 'a, 'c> = { label?: seriesLabelOptionsObject<'a, 'b, 'c>, legendSymbol?: optionsLegendSymbolValue, levels?: array, - linkColorMode?: chartsSeriesArcdiagramOptionsLinkColorMode, + linkColorMode?: ChartsTypes.chartsSeriesArcdiagramOptionsLinkColorMode, linkedTo?: string, linkOpacity?: float, minLinkWidth?: float, @@ -27468,7 +27163,7 @@ and seriesArcdiagramOptions<'b, 'a, 'c> = { label?: seriesLabelOptionsObject<'a, 'b, 'c>, legendSymbol?: optionsLegendSymbolValue, levels?: array, - linkColorMode?: chartsSeriesArcdiagramOptionsLinkColorMode, + linkColorMode?: ChartsTypes.chartsSeriesArcdiagramOptionsLinkColorMode, linkedTo?: string, linkOpacity?: float, marker?: pointMarkerOptionsObject, @@ -27860,7 +27555,7 @@ and tooltipPositionerPointObject<'a, 'b, 'c> = { remove: (option, option) => unit, // ⚪ loose — was `boolean | Partial` select: (option, option) => unit, setNestedProperty: (string, string, string) => string, // ⚪ loose — was `T` - setState: (option, option) => unit, + setState: (option, option) => unit, setVisible: (option, option) => unit, tooltipFormatter: string => string, update: (stringOrNumberOrStringOrNumberArrayOrPointOptionsObject<'a, 'b, 'c>, option, option) => unit, // ⚪ loose — was `boolean | Partial` @@ -29204,7 +28899,7 @@ and point<'a, 'b, 'c> = { remove: (option, option) => unit, // ⚪ loose — was `boolean | Partial` select: (option, option) => unit, setNestedProperty: (string, string, string) => string, // ⚪ loose — was `T` - setState: (option, option) => unit, + setState: (option, option) => unit, setVisible: (option, option) => unit, tooltipFormatter: string => string, update: (string, option, option) => unit, // ⚪ loose — was `PointOptionsType` @@ -29247,7 +28942,7 @@ and series<'a, 'b, 'c> = { searchPoint: (string, option) => point<'a, 'b, 'c>, // ⚪ loose — was `PointerEvent` select: option => unit, setData: (array, option, option, option) => unit, // ⚪ loose — was `boolean | Partial` - setState: (option, option) => unit, + setState: (option, option) => unit, setVisible: (option, option) => unit, show: unit => unit, translate: unit => unit, @@ -29818,7 +29513,7 @@ and chart<'a, 'b, 'c> = { @unboxed and seriesArcDiagramDataLabelsOptionsObjectOrSeriesArcDiagramDataLabelsOptionsObjectArray<'a, 'b, 'c> = SeriesArcDiagramDataLabelsOptionsObject(seriesArcDiagramDataLabelsOptionsObject<'a, 'b, 'c>) | SeriesArcDiagramDataLabelsOptionsObjectArr(array>) @unboxed and plotAoDataLabelsOptionsOrPlotAoDataLabelsOptionsArray<'a, 'b, 'c> = PlotAoDataLabelsOptions(plotAoDataLabelsOptions<'a, 'b, 'c>) | PlotAoDataLabelsOptionsArr(array>) @unboxed and plotAdDataLabelsOptionsOrPlotAdDataLabelsOptionsArray<'a, 'b, 'c> = PlotAdDataLabelsOptions(plotAdDataLabelsOptions<'a, 'b, 'c>) | PlotAdDataLabelsOptionsArr(array>) -@unboxed and pointOrPointArray<'a, 'b, 'c> = PointPointArray(point<'a, 'b, 'c>) | PointArr(array>) +@unboxed and pointOrPointArray<'a, 'b, 'c> = Point(point<'a, 'b, 'c>) | PointArr(array>) @unboxed and stringOrNumberOrStringOrNumberArrayOrPointOptionsObject<'a, 'b, 'c> = Str(string) | Num(float) | Arr(array) | PointOptionsObject(pointOptionsObject<'a, 'b, 'c>) @unboxed and plotAbandsDataLabelsOptionsOrPlotAbandsDataLabelsOptionsArray<'a, 'b, 'c> = PlotAbandsDataLabelsOptions(plotAbandsDataLabelsOptions<'a, 'b, 'c>) | PlotAbandsDataLabelsOptionsArr(array>) @unboxed and boolOrAxisCrosshairOptions<'a, 'b, 'c> = Bool(bool) | AxisCrosshairOptions(axisCrosshairOptions<'a, 'b, 'c>) @@ -30909,202 +30604,3 @@ module AxisOptions = { external fromZAxisOptions: zAxisOptions<'a, 'b, 'c> => t = "%identity" external asZAxisOptions: t => (zAxisOptions<'a, 'b, 'c>) = "%identity" } -type defsArrowAttributesOptions = { - id?: string, - markerHeight?: float, - markerWidth?: float, - refX?: float, - refY?: float, -} -type defsReverseArrowOptions = { - attributes?: defsArrowAttributesOptions, - tagName?: string, -} -module ChartsDefsOptionsReverseArrow = { - type t - external fromASTNode: astNode => t = "%identity" - external asASTNode: t => (astNode) = "%identity" - external fromDefsReverseArrowOptions: defsReverseArrowOptions => t = "%identity" - external asDefsReverseArrowOptions: t => (defsReverseArrowOptions) = "%identity" -} -type chartsDefsOptionsArrow_t -type rec defsArrowOptions = { - attributes?: defsArrowAttributesOptions, - children?: array, - tagName?: string, -} -and defsOptions = { - arrow?: chartsDefsOptionsArrow_t, - @as("reverse-arrow") reverseArrow?: ChartsDefsOptionsReverseArrow.t, -} -module ChartsDefsOptionsArrow = { - type t = chartsDefsOptionsArrow_t - external fromASTNode: astNode => t = "%identity" - external asASTNode: t => (astNode) = "%identity" - external fromDefsArrowOptions: defsArrowOptions => t = "%identity" - external asDefsArrowOptions: t => (defsArrowOptions) = "%identity" -} -type dragDropGuideBoxOptionsObject = { - className?: string, - color?: string, // ⚪ loose — was `ColorType` - cursor?: string, - lineColor?: string, - lineWidth?: float, - zIndex?: int, -} -type plotOptionsSeriesDragDropGuideBoxOptions = { - default?: dragDropGuideBoxOptionsObject, -} -type exportingButtonsOptionsObject = { - align?: alignValue, - buttonSpacing?: float, - className?: string, - enabled?: bool, - height?: float, - menuClassName?: string, - menuItems?: array, - onclick?: JsFn.t, - symbol?: string, - symbolFill?: ColorType.t, - symbolSize?: float, - symbolStroke?: string, - symbolStrokeWidth?: float, - symbolX?: float, - symbolY?: float, - text?: string, - theme?: exportingButtonsContextButtonThemeOptions, - titleKey?: string, - useHTML?: bool, - verticalAlign?: verticalAlignValue, - width?: float, - x?: float, - y?: float, -} -type exportingButtonsOptions = { - contextButton?: exportingButtonsOptionsObject, -} -type exportingMenuItemDefinitionsDownloadCSVOptions = { - textKey?: string, -} -type exportingMenuItemDefinitionsSeparatorOptions = { - separator?: bool, -} -type exportingMenuItemDefinitionsOptions = { - downloadCSV?: exportingMenuItemDefinitionsDownloadCSVOptions, - downloadJPEG?: exportingMenuItemDefinitionsDownloadCSVOptions, - downloadPDF?: exportingMenuItemDefinitionsDownloadCSVOptions, - downloadPNG?: exportingMenuItemDefinitionsDownloadCSVOptions, - downloadSVG?: exportingMenuItemDefinitionsDownloadCSVOptions, - downloadXLS?: exportingMenuItemDefinitionsDownloadCSVOptions, - printChart?: exportingMenuItemDefinitionsDownloadCSVOptions, - separator?: exportingMenuItemDefinitionsSeparatorOptions, - viewData?: exportingMenuItemDefinitionsDownloadCSVOptions, - viewFullscreen?: exportingMenuItemDefinitionsDownloadCSVOptions, -} -type exportingMenuObject<'a, 'b, 'c> = { - onclick?: @this ((chart<'a, 'b, 'c>, option, option>) => option), // ⚠️ REVIEW — was `Event | Dictionary` — match the real type by hand - separator?: bool, - text?: string, - textKey?: string, -} -module ChartsSeriesMapDataGeometryOptionsCoordinates = { - type t - external fromArray: array => t = "%identity" - external asArray: t => (array) = "%identity" - external fromLonLatArrays: array> => t = "%identity" - external asLonLatArrays: t => (array>) = "%identity" -} -type seriesMapDataGeometryOptions = { - coordinates?: array, - @as("type") type_?: mapGeometryTypeValue, -} -module ChartsSeriesMapDataOptionsGeometry = { - type t - external fromJSON: JSON.t => t = "%identity" - external asJSON: t => (JSON.t) = "%identity" - external fromSeriesMapDataGeometryOptions: seriesMapDataGeometryOptions => t = "%identity" - external asSeriesMapDataGeometryOptions: t => (seriesMapDataGeometryOptions) = "%identity" -} -type seriesMapDataOptions<'a, 'b, 'c> = { - color?: ColorType.t, - dataLabels?: dataLabelsOptions, - drilldown?: string, - events?: pointEventsOptionsObject<'a, 'b, 'c>, - geometry?: ChartsSeriesMapDataOptionsGeometry.t, - id?: string, - labelrank?: float, - middleX?: float, - middleY?: float, - name?: string, - path?: string, - states?: seriesStatesOptionsObject, - value?: float, -} -type blendChartProps<'a, 'b, 'c> = { - allowChartUpdate?: bool, - constructorType?: chartsBlendChartPropsConstructorType, - containerProps?: Dict.t, // 🛑 BROKEN — contains `any` - highcharts?: InstanceTypes.highchartsModule, - immutable?: bool, - options?: options<'a, 'b, 'c>, - updateArgs?: array, - callback?: chart<'a, 'b, 'c> => unit, -} -@set_index external blendChartPropsSet: (blendChartProps<'a, 'b, 'c>, string, JSON.t) => unit = "" -type chartsChartTokensTypeHeaderPaddingConfig = { - x: string, - y: string, -} -type chartsChartTokensTypeHeaderSlotsConfig = { - gap: string, -} -type chartsChartTokensTypeHeaderConfig = { - padding: chartsChartTokensTypeHeaderPaddingConfig, - backgroundColor: string, - borderBottom: string, - borderRadius: string, - slots: chartsChartTokensTypeHeaderSlotsConfig, -} -type chartsChartTokensTypeContentLegendDropdownConfig = { - maxHeight: string, -} -type chartsChartTokensTypeContentLegendItemColorConfig = { - default: string, - hover: string, - active: string, - total: string, -} -type chartsChartTokensTypeContentLegendItemConfig = { - gap: string, - color: chartsChartTokensTypeContentLegendItemColorConfig, - fontSize: string, - fontWeight: string, -} -type chartsChartTokensTypeContentLegendConfig = { - gap: string, - dropdown: chartsChartTokensTypeContentLegendDropdownConfig, - item: chartsChartTokensTypeContentLegendItemConfig, -} -type chartsChartTokensTypeContentPaddingConfig = { - top: string, - right: string, - bottom: string, - left: string, -} -type chartsChartTokensTypeContentConfig = { - legend: chartsChartTokensTypeContentLegendConfig, - padding: chartsChartTokensTypeContentPaddingConfig, - gap: string, - backgroundColor: string, -} -type chartTokensType = { - border: string, - borderRadius: string, - header: chartsChartTokensTypeHeaderConfig, - content: chartsChartTokensTypeContentConfig, -} -type responsiveChartTokens = { - sm: chartTokensType, - lg: chartTokensType, -} -@unboxed type stringOrChartsColorsConfig = Str(string) | ChartsColorsConfig(chartsColorsConfig) diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/MultiSelectV2SharedTypes.res b/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/MultiSelectV2SharedTypes.res index d8c9a777..2d1e71db 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/MultiSelectV2SharedTypes.res +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/MultiSelectV2SharedTypes.res @@ -270,7 +270,7 @@ type componentTokenType = { @as("STAT_CARD") statCard?: StatCardTypes.responsiveStatCardTokens, @as("PROGRESS_BAR") progressBar?: ProgressBarTypes.responsiveProgressBarTokens, @as("DRAWER") drawer?: DrawerTypes.responsiveDrawerTokens, - @as("CHARTS") charts?: HighchartsSharedTypes.responsiveChartTokens, + @as("CHARTS") charts?: ChartsTypes.responsiveChartTokens, @as("SNACKBAR") snackbar?: SnackbarTypes.responsiveSnackbarTokens, @as("STEPPER") stepper?: StepperTypes.responsiveStepperTokens, @as("KEYVALUEPAIR") keyvaluepair?: KeyValuePairTypes.responsiveKeyValuePairTokens, @@ -332,7 +332,7 @@ type contextThemeContextTypeComponentTokensConfig = { @as("STAT_CARD") statCard: StatCardTypes.responsiveStatCardTokens, @as("PROGRESS_BAR") progressBar: ProgressBarTypes.responsiveProgressBarTokens, @as("DRAWER") drawer: DrawerTypes.responsiveDrawerTokens, - @as("CHARTS") charts: HighchartsSharedTypes.responsiveChartTokens, + @as("CHARTS") charts: ChartsTypes.responsiveChartTokens, @as("SNACKBAR") snackbar: SnackbarTypes.responsiveSnackbarTokens, @as("STEPPER") stepper: StepperTypes.responsiveStepperTokens, @as("KEYVALUEPAIR") keyvaluepair: KeyValuePairTypes.responsiveKeyValuePairTokens, diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/SankeyLink.res b/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/SankeyLink.res index 6165d042..7049da94 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/SankeyLink.res +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/SankeyLink.res @@ -7,9 +7,9 @@ type props = { targetControlX?: float, linkWidth?: float, index?: int, - payload?: HighchartsSharedTypes.sankeyLink, - linkColors?: array, - onMouseEnter?: (HighchartsSharedTypes.sankeyTooltipData, ReactEvent.Mouse.t) => unit, + payload?: ChartsTypes.sankeyLink, + linkColors?: array, + onMouseEnter?: (ChartsTypes.sankeyTooltipData, ReactEvent.Mouse.t) => unit, onMouseLeave?: unit => unit, } diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/SankeyNode.res b/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/SankeyNode.res index b4e64c74..eccb76f5 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/SankeyNode.res +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/SankeyNode.res @@ -4,10 +4,10 @@ type props = { width?: float, height?: float, index?: int, - payload?: HighchartsSharedTypes.chartsPayloadConfig, + payload?: ChartsTypes.chartsPayloadConfig, containerWidth?: float, - nodeColors?: array, - onMouseEnter?: (HighchartsSharedTypes.sankeyTooltipData, ReactEvent.Mouse.t) => unit, + nodeColors?: array, + onMouseEnter?: (ChartsTypes.sankeyTooltipData, ReactEvent.Mouse.t) => unit, onMouseLeave?: unit => unit, } diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/StatCard.res b/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/StatCard.res index 4e0104d5..c9dd32a2 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/StatCard.res +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/StatCard.res @@ -15,7 +15,7 @@ type props = { minWidth?: string, xAxis?: StatCardTypes.statCardAxisConfig, yAxis?: StatCardTypes.statCardAxisConfig, - valueFormatter?: HighchartsSharedTypes.axisType, + valueFormatter?: ChartsTypes.axisType, height?: string, direction?: StatCardTypes.statCardDirection, skeleton?: StatCardTypes.statCardSkeletonProps, diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/StatCardTypes.res b/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/StatCardTypes.res index fff3f5f2..efba79b8 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/StatCardTypes.res +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/StatCardTypes.res @@ -23,7 +23,7 @@ type chartDataPoint = { name: string, } type statCardAxisConfig = { - @as("type") type_?: HighchartsSharedTypes.axisType, + @as("type") type_?: ChartsTypes.axisType, tickFormatter?: CommonTypes.stringOrNumber => string, dateOnly?: bool, useUTC?: bool, diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/_REPORT.md b/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/_REPORT.md index 5f9f3acb..edc45fe1 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/_REPORT.md +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.36/bindings/_REPORT.md @@ -4,7 +4,7 @@ **55** function binding(s) → `BlendDesignSystemBindings.res`. -**2658** shared types deduplicated into **63** `*Types.res` modules (referenced qualified — no per-file redeclaration). +**2638** shared types deduplicated into **64** `*Types.res` modules (referenced qualified — no per-file redeclaration). ## 🔤 Constructor name collisions @@ -16,16 +16,12 @@ A bare constant, an identity payload and a `@tag`-injected object are different | Module | Constructor | Conflicting runtime representations | Renamed to | |---|---|---|---| -| `HighchartsSharedTypes` | `Point` | `"point"` / `(payload, passed through)` / `"Point"` | `PointConstructorType`, `PointObjectScope`, `PointPointArray` | -| `HighchartsSharedTypes` | `Pointer` | `"pointer"` / `"Pointer"` | `PointerConstructorType`, `PointerCursorValue` | -| `HighchartsSharedTypes` | `Polygon` | `"polygon"` / `"Polygon"` | `PolygonTypeValue`, `PolygonInterpolationValue` | -| `HighchartsSharedTypes` | `Series` | `"series"` / `"Series"` | `SeriesConstructorType`, `SeriesWithinValue` | +| `ChartsTypes` | `Point` | `"point"` / `"Point"` | `PointConstructorType`, `PointObjectScope` | | `HighchartsSharedTypes` | `Solid` | `"Solid"` / `"solid"` | `SolidStyleValue`, `SolidShapeValue` | -| `HighchartsSharedTypes` | `TriangleDown` | `"triangle-down"` / `"triangleDown"` | `TriangleDownConstructorType`, `TriangleDownKeyValue` | -| `HighchartsSharedTypes` | `Value` | `""` / `"!="` / `"value"` | `ValueAnnotationDraggable`, `ValuePointSetState`, `ValueSeriesSetState`, `ValueOptionsCompare`, `ValueOptionsGapUnit`, `ValueOptionsOperator` | +| `HighchartsSharedTypes` | `Value` | `""` / `"!="` / `"value"` | `ValueAnnotationDraggable`, `ValueOptionsCompare`, `ValueGapUnit`, `ValueOptionsOperator` | | `DataTableTypes` | `DateRange` | `"date_range"` / `"dateRange"` | `DateRangeColumnType`, `DateRangeTypeType`, `DateRangeFilterComponent` | -### Left as-is — same name, same runtime representation (113) +### Left as-is — same name, same runtime representation (109) These produce the same runtime shape whichever definition wins, so renaming them would churn every consumer for no correctness gain. Listed because the ambiguity is still there to read. @@ -34,7 +30,8 @@ These produce the same runtime shape whichever definition wins, so renaming them - `CommonTypes`: `Arr`, `Auto`, `Bool`, `Fn`, `Num`, `Str`, `StrArr` - `TagsTypes`: `Lg`, `Md`, `Sm`, `Xs` - `TooltipTypes`: `Left`, `Right` -- `HighchartsSharedTypes`: `All`, `Allow`, `Alt`, `AnnotationMockPointOptionsObject`, `Arc`, `Area`, `Arr`, `Auto`, `Bool`, `Bottom`, `Callout`, `Category`, `Center`, `Chart`, `Circle`, `Close`, `CssObject`, `Ctrl`, `Day`, `Diamond`, `End`, `Flap`, `Fn`, `High`, `Horizontal`, `Hover`, `Inactive`, `Inside`, `Justify`, `Left` … +35 more +- `ChartsTypes`: `Chart`, `End`, `Hover`, `Inactive`, `Normal`, `Offset`, `Select`, `Top`, `Value` +- `HighchartsSharedTypes`: `All`, `Allow`, `Alt`, `AnnotationMockPointOptionsObject`, `Arc`, `Area`, `Arr`, `Auto`, `Bool`, `Callout`, `Category`, `Center`, `Chart`, `Circle`, `Close`, `CssObject`, `Ctrl`, `Day`, `Diamond`, `Fn`, `High`, `Horizontal`, `Inside`, `Justify`, `Left`, `Linear`, `Logarithmic`, `Low`, `Meta`, `Middle` … +22 more - `DateRangePickerTypes`: `Custom` - `InputsTypes`: `Left`, `Lg`, `Md`, `Right`, `Sm` - `DataTableTypes`: `Avatar`, `Custom`, `Date`, `Decimal`, `Dropdown`, `Error`, `Multiselect`, `Number`, `Percentage`, `Primary`, `Progress`, `ReactElement`, `Secondary`, `Select`, `Slider`, `Success`, `Tag`, `Text`, `Warning` diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.36/metrics.json b/benchmark/baselines/_juspay_blend-design-system_0.0.36/metrics.json index dfa87f73..5bb90cdf 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.36/metrics.json +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.36/metrics.json @@ -11,5 +11,5 @@ }, "functions": 55, "classes": 0, - "files": 174 + "files": 175 } diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/BlendChart.res b/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/BlendChart.res index f0e4826d..42b7484d 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/BlendChart.res +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/BlendChart.res @@ -1,7 +1,7 @@ type props<'a, 'b, 'c, 't7> = { ref?: React.ref>>, allowChartUpdate?: bool, - constructorType?: HighchartsSharedTypes.chartsBlendChartPropsConstructorType, + constructorType?: ChartsTypes.chartsBlendChartPropsConstructorType, containerProps?: Dict.t<'t7>, highcharts?: InstanceTypes.highchartsModule, immutable?: bool, diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/BlendDesignSystemBindings.res b/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/BlendDesignSystemBindings.res index 04ac4e8c..3f272042 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/BlendDesignSystemBindings.res +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/BlendDesignSystemBindings.res @@ -9,7 +9,7 @@ @module("@juspay/blend-design-system") external normalizeBreadcrumbItems: (array) => array = "normalizeBreadcrumbItems" @module("@juspay/blend-design-system") external getButtonTokens: (TokensTypes.foundationTokenType) => ButtonTypes.responsiveButtonTokens = "getButtonTokens" @module("@juspay/blend-design-system") external getCardTokens: (TokensTypes.foundationTokenType) => CardTypes.responsiveCardTokens = "getCardTokens" -@module("@juspay/blend-design-system") external getChartTokens: (TokensTypes.foundationTokenType) => HighchartsSharedTypes.responsiveChartTokens = "getChartTokens" +@module("@juspay/blend-design-system") external getChartTokens: (TokensTypes.foundationTokenType) => ChartsTypes.responsiveChartTokens = "getChartTokens" @module("@juspay/blend-design-system") external blendChartBaseInstance: InstanceTypes.highchartsModule = "BlendChartBaseInstance" @module("@juspay/blend-design-system") external getChatInputTokens: (TokensTypes.foundationTokenType) => ChatInputTypes.responsiveChatInputTokensType = "getChatInputTokens" @module("@juspay/blend-design-system") external validateColumnData: DataTableTypes.dataTableValidateColumnDataConfig = "validateColumnData" diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/ChartLegends.res b/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/ChartLegends.res index 9c6623bd..b5d1e4a1 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/ChartLegends.res +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/ChartLegends.res @@ -1,7 +1,7 @@ type props = { chartContainerRef: React.ref>, keys: array, - colors: array, + colors: array, handleLegendClick: string => unit, handleLegendEnter: string => unit, handleLegendLeave: unit => unit, @@ -11,8 +11,8 @@ type props = { activeKeys: Nullable.t>, stacked?: bool, isSmallScreen?: bool, - stackedLegendsData?: array, - legends?: array, + stackedLegendsData?: array, + legends?: array, } @module("@juspay/blend-design-system") diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/ChartV2.res b/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/ChartV2.res index b48295cb..bf435064 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/ChartV2.res +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/ChartV2.res @@ -1,6 +1,6 @@ type props<'a, 'b, 'c> = { allowChartUpdate?: bool, - constructorType?: HighchartsSharedTypes.chartsBlendChartPropsConstructorType, + constructorType?: ChartsTypes.chartsBlendChartPropsConstructorType, containerProps?: Dict.t<'a>, highcharts?: InstanceTypes.highchartsModule, immutable?: bool, diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/Charts.res b/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/Charts.res index 3a45852e..c3e0dcf1 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/Charts.res +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/Charts.res @@ -1,28 +1,28 @@ type props = { - chartType?: HighchartsSharedTypes.chartType, - data?: Nullable.t>, - colors?: array, + chartType?: ChartsTypes.chartType, + data?: Nullable.t>, + colors?: array, slot1?: React.element, slot2?: React.element, slot3?: React.element, - legendPosition?: HighchartsSharedTypes.chartLegendPosition, + legendPosition?: ChartsTypes.chartLegendPosition, chartHeaderSlot: React.element, stackedLegends?: bool, - stackedLegendsData?: array, + stackedLegendsData?: array, barsize?: float, - xAxis?: HighchartsSharedTypes.axisConfig, - yAxis?: HighchartsSharedTypes.axisConfig, - tooltip?: HighchartsSharedTypes.tooltipConfig, - noData?: HighchartsSharedTypes.noDataProps, + xAxis?: ChartsTypes.axisConfig, + yAxis?: ChartsTypes.axisConfig, + tooltip?: ChartsTypes.tooltipConfig, + noData?: ChartsTypes.noDataProps, height?: float, showHeader?: bool, showCollapseIcon?: bool, isExpanded?: bool, onExpandedChange?: bool => unit, chartName?: string, - skeleton?: HighchartsSharedTypes.chartsSkeletonProps, - legends?: array, - @as("CustomizedDot") customizedDot?: HighchartsSharedTypes.dotItemDotProps => React.element, + skeleton?: ChartsTypes.chartsSkeletonProps, + legends?: array, + @as("CustomizedDot") customizedDot?: ChartsTypes.dotItemDotProps => React.element, lineSeriesKeys?: array, } diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/ChartsTypes.res b/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/ChartsTypes.res new file mode 100644 index 00000000..f261942e --- /dev/null +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/ChartsTypes.res @@ -0,0 +1,360 @@ +type chartType = + | @as("line") Line + | @as("bar") Bar + | @as("lineBar") LineBar + | @as("pie") Pie + | @as("scatter") Scatter + | @as("area") Area + | @as("sankey") Sankey +type axisType = + | @as("dateTime") DateTime + | @as("currency") Currency + | @as("percentage") Percentage + | @as("number") Number +type chartLegendPosition = + | @as("top") Top + | @as("right") Right +type legendsChangeType = + | @as("increase") Increase + | @as("decrease") Decrease +type chartsXAxisTitleOptionsPosition3d = + | @as("chart") Chart + | @as("flap") Flap + | @as("offset") Offset + | @as("ortho") Ortho +type chartsSeriesSetState = + | @as("") Value + | @as("normal") Normal + | @as("inactive") Inactive + | @as("hover") Hover + | @as("select") Select +type chartsPointSetState = + | @as("") Value + | @as("normal") Normal + | @as("inactive") Inactive + | @as("hover") Hover + | @as("select") Select +type chartsSeriesArcdiagramOptionsLinkColorMode = + | @as("from") From + | @as("to") To + | @as("gradient") Gradient +type chartsBorderRadiusOptionsObjectScope = + | @as("point") PointObjectScope + | @as("stack") Stack +type chartsBorderRadiusOptionsObjectWhere = + | @as("all") All + | @as("end") End +type chartsSeriesOrganizationOptionsHangingSide = + | @as("left") Left + | @as("right") Right +type chartsPlotOrganizationLinkOptionsType = + | @as("straight") Straight + | @as("curved") Curved + | @as("orthogonal") Orthogonal +type chartsSeriesOrganizationOptionsNodeAlignment = + | @as("top") Top + | @as("bottom") Bottom + | @as("center") Center +type chartsBlendChartPropsConstructorType = + | @as("width") Width + | @as("height") Height + | @as("color") Color + | @as("error") Error + | @as("open") Open + | @as("end") End + | @as("start") Start + | @as("wrap") Wrap + | @as("x") X + | @as("y") Y + | @as("circle") Circle + | @as("triangle") Triangle + | @as("find") Find + | @as("backgroundSize") BackgroundSize + | @as("chart") Chart + | @as("offset") Offset + | @as("animate") Animate + | @as("arc") Arc + | @as("callout") Callout + | @as("diamond") Diamond + | @as("format") Format + | @as("rect") Rect + | @as("addEvent") AddEvent + | @as("animObject") AnimObject + | @as("arrayMax") ArrayMax + | @as("arrayMin") ArrayMin + | @as("attr") Attr + | @as("correctFloat") CorrectFloat + | @as("createElement") CreateElement + | @as("css") Css + | @as("dateFormat") DateFormat + | @as("defined") Defined + | @as("destroyObjectProperties") DestroyObjectProperties + | @as("discardElement") DiscardElement + | @as("erase") Erase + | @as("extend") Extend + | @as("extendClass") ExtendClass + | @as("fireEvent") FireEvent + | @as("getDeferredAnimation") GetDeferredAnimation + | @as("getMagnitude") GetMagnitude + | @as("getOptions") GetOptions + | @as("getStyle") GetStyle + | @as("isArray") IsArray + | @as("isClass") IsClass + | @as("isDOMElement") IsDOMElement + | @as("isFunction") IsFunction + | @as("isNumber") IsNumber + | @as("isObject") IsObject + | @as("isString") IsString + | @as("merge") Merge + | @as("normalizeTickInterval") NormalizeTickInterval + | @as("numberFormat") NumberFormat + | @as("objectEach") ObjectEach + | @as("pad") Pad + | @as("pick") Pick + | @as("relativeLength") RelativeLength + | @as("removeEvent") RemoveEvent + | @as("seriesType") SeriesType + | @as("setAnimation") SetAnimation + | @as("setOptions") SetOptions + | @as("splat") Splat + | @as("stableSort") StableSort + | @as("stop") Stop + | @as("syncTimeout") SyncTimeout + | @as("uniqueKey") UniqueKey + | @as("useSerialIds") UseSerialIds + | @as("centerImage") CenterImage + | @as("dateTimeFormat") DateTimeFormat + | @as("deleteRows") DeleteRows + | @as("getColumn") GetColumn + | @as("getColumns") GetColumns + | @as("getLogTickPositions") GetLogTickPositions + | @as("getModified") GetModified + | @as("getRendererType") GetRendererType + | @as("getRow") GetRow + | @as("modifyTree") ModifyTree + | @as("registerRendererType") RegisterRendererType + | @as("registerSeriesType") RegisterSeriesType + | @as("roundedRect") RoundedRect + | @as("setColumn") SetColumn + | @as("setColumns") SetColumns + | @as("setRow") SetRow + | @as("str2dtf") Str2dtf + | @as("triangleDown") TriangleDown + | @as("unescapeEntities") UnescapeEntities + | @as("Annotation") Annotation + | @as("AnnotationControlPoint") AnnotationControlPoint + | @as("AST") AST + | @as("Axis") Axis + | @as("Chart") Chart2 + | @as("Color") Color2 + | @as("DataTable") DataTable + | @as("DataTableCore") DataTableCore + | @as("Legend") Legend + | @as("PlotLineOrBand") PlotLineOrBand + | @as("Point") PointConstructorType + | @as("Pointer") Pointer + | @as("Series") Series + | @as("StackItem") StackItem + | @as("SVGElement") SVGElement + | @as("SVGLabel") SVGLabel + | @as("SVGRenderer") SVGRenderer + | @as("Tick") Tick + | @as("Time") Time + | @as("Tooltip") Tooltip + | @as("charts") Charts + | @as("dateFormats") DateFormats + | @as("defaultOptions") DefaultOptions + | @as("theme") Theme + | @as("anchorX") AnchorX + | @as("anchorY") AnchorY + | @as("clockwise") Clockwise + | @as("context") Context + | @as("innerR") InnerR + | @as("longArc") LongArc + | @as("r") R +type chartsChartTokensTypeHeaderPaddingConfig = { + x: string, + y: string, +} +type chartsChartTokensTypeHeaderSlotsConfig = { + gap: string, +} +type chartsChartTokensTypeHeaderConfig = { + padding: chartsChartTokensTypeHeaderPaddingConfig, + backgroundColor: string, + borderBottom: string, + borderRadius: string, + slots: chartsChartTokensTypeHeaderSlotsConfig, +} +type chartsChartTokensTypeContentLegendDropdownConfig = { + maxHeight: string, +} +type chartsChartTokensTypeContentLegendItemColorConfig = { + active: string, + default: string, + hover: string, + total: string, +} +type chartsChartTokensTypeContentLegendItemConfig = { + gap: string, + color: chartsChartTokensTypeContentLegendItemColorConfig, + fontSize: string, + fontWeight: string, +} +type chartsChartTokensTypeContentLegendConfig = { + gap: string, + dropdown: chartsChartTokensTypeContentLegendDropdownConfig, + item: chartsChartTokensTypeContentLegendItemConfig, +} +type chartsChartTokensTypeContentPaddingConfig = { + top: string, + right: string, + bottom: string, + left: string, +} +type chartsChartTokensTypeContentConfig = { + legend: chartsChartTokensTypeContentLegendConfig, + padding: chartsChartTokensTypeContentPaddingConfig, + gap: string, + backgroundColor: string, +} +type chartTokensType = { + border: string, + borderRadius: string, + header: chartsChartTokensTypeHeaderConfig, + content: chartsChartTokensTypeContentConfig, +} +type responsiveChartTokens = { + sm: chartTokensType, + lg: chartTokensType, +} +type chartsDataPointPrimaryConfig = { + label: string, + val: float, +} +type chartsDataPointAuxConfig = { + label: string, + val: float, + @as("type") type_?: axisType, + dateOnly?: bool, + smart?: bool, + timeZone?: string, + hour12?: bool, +} +type chartsDataPointErrorErrorDataConfig = { + label: string, + value: string, +} +type chartsDataPointErrorConfig = { + title: string, + errorData?: array, +} +type dataPoint = { + primary: chartsDataPointPrimaryConfig, + aux?: array, + error?: chartsDataPointErrorConfig, +} +type newNestedDataPoint = { + name: string, + data: Dict.t, +} +type chartsColorsConfig = { + key: string, + color: string, +} +type stackedLegendsDataPoint = { + value: float, + delta: float, + changeType: legendsChangeType, +} +type chartsTickPropsPayloadConfig = { + value: CommonTypes.stringOrNumber, + index?: int, + coordinate?: float, +} +type tickProps = { + x?: float, + y?: float, + payload?: chartsTickPropsPayloadConfig, +} +@set_index external tickPropsSet: (tickProps, string, JSON.t) => unit = "" +type axisConfig = { + label?: string, + showLabel?: bool, + interval?: CommonTypes.preserveStartOrPreserveEndOrPreserveStartEndOrNumber, + show?: bool, + @as("type") type_?: axisType, + tickFormatter?: CommonTypes.stringOrNumber => string, + customTick?: React.component, + dateOnly?: bool, + useUTC?: bool, + formatString?: string, + timeOnly?: bool, + showYear?: bool, + ticks?: array, + autoConsistentTicks?: bool, + maxTicks?: float, + smartDateTimeFormat?: bool, +} +type chartsTooltipConfigPositionConfig = { + x?: float, + y?: float, +} +type chartsTooltipConfigAllowEscapeViewBoxConfig = { + x?: bool, + y?: bool, +} +type tooltipConfig = { + position?: chartsTooltipConfigPositionConfig, + allowEscapeViewBox?: chartsTooltipConfigAllowEscapeViewBoxConfig, +} +type noDataProps = { + title?: string, + subtitle?: string, + slot?: React.element, + button?: ButtonTypes.buttonProps, +} +type chartsSkeletonProps = { + show: bool, + variant: SkeletonTypes.skeletonVariant, +} +type chartsLegendsConfig = { + title: string, + total?: string, +} +type chartsDotItemDotPropsPayloadConfig = { + name?: string, +} +type dotItemDotProps = { + cx?: float, + cy?: float, + value?: float, + payload?: chartsDotItemDotPropsPayloadConfig, +} +type chartsPayloadConfig = { + name: string, + id?: string, + color?: string, + value?: float, +} +type chartsSankeyTooltipDataPayloadConfig = { + name?: string, + value?: float, + source?: CommonTypes.stringOrNumber, + target?: CommonTypes.stringOrNumber, + sourceName?: string, + targetName?: string, + color?: string, + hoverColor?: string, +} +type sankeyTooltipData = { + payload: chartsSankeyTooltipDataPayloadConfig, +} +type sankeyLink = { + source: CommonTypes.stringOrNumber, + target: CommonTypes.stringOrNumber, + value: float, + color?: string, + hoverColor?: string, +} +@unboxed type stringOrChartsColorsConfig = Str(string) | ChartsColorsConfig(chartsColorsConfig) diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/CoreChart.res b/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/CoreChart.res index 467ef74b..0ce8c6bd 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/CoreChart.res +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/CoreChart.res @@ -1,11 +1,11 @@ type props = { - chartType?: HighchartsSharedTypes.chartType, - data?: Nullable.t>, - colors?: array, + chartType?: ChartsTypes.chartType, + data?: Nullable.t>, + colors?: array, barsize?: float, - xAxis?: HighchartsSharedTypes.axisConfig, - yAxis?: HighchartsSharedTypes.axisConfig, - tooltip?: HighchartsSharedTypes.tooltipConfig, + xAxis?: ChartsTypes.axisConfig, + yAxis?: ChartsTypes.axisConfig, + tooltip?: ChartsTypes.tooltipConfig, height?: CommonTypes.stringOrNumber, width?: CommonTypes.stringOrNumber, isSmallScreen?: bool, diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/EditorSharedTypes.res b/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/EditorSharedTypes.res index 3feaa56e..c9e8f668 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/EditorSharedTypes.res +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/EditorSharedTypes.res @@ -1627,7 +1627,7 @@ type componentTokenType = { @as("STAT_CARD") statCard?: StatCardTypes.responsiveStatCardTokens, @as("PROGRESS_BAR") progressBar?: ProgressBarTypes.responsiveProgressBarTokens, @as("DRAWER") drawer?: DrawerTypes.responsiveDrawerTokens, - @as("CHARTS") charts?: HighchartsSharedTypes.responsiveChartTokens, + @as("CHARTS") charts?: ChartsTypes.responsiveChartTokens, @as("SNACKBAR") snackbar?: SnackbarTypes.responsiveSnackbarTokens, @as("STEPPER") stepper?: StepperTypes.responsiveStepperTokens, @as("KEYVALUEPAIR") keyvaluepair?: KeyValuePairTypes.responsiveKeyValuePairTokens, @@ -1707,7 +1707,7 @@ type contextThemeContextTypeComponentTokensConfig = { @as("STAT_CARD") statCard: StatCardTypes.responsiveStatCardTokens, @as("PROGRESS_BAR") progressBar: ProgressBarTypes.responsiveProgressBarTokens, @as("DRAWER") drawer: DrawerTypes.responsiveDrawerTokens, - @as("CHARTS") charts: HighchartsSharedTypes.responsiveChartTokens, + @as("CHARTS") charts: ChartsTypes.responsiveChartTokens, @as("SNACKBAR") snackbar: SnackbarTypes.responsiveSnackbarTokens, @as("STEPPER") stepper: StepperTypes.responsiveStepperTokens, @as("KEYVALUEPAIR") keyvaluepair: KeyValuePairTypes.responsiveKeyValuePairTokens, @@ -1899,7 +1899,7 @@ type embeddedSingleSelectOptions = { menuAlignment: SelectV2Types.selectV2Alignment, menuSideOffset: float, menuAlignOffset: float, - defaultSingleSelectGroupPosition: HighchartsSharedTypes.chartsSeriesOrganizationOptionsHangingSide, + defaultSingleSelectGroupPosition: ChartsTypes.chartsSeriesOrganizationOptionsHangingSide, } type inputsV2FOCUSRINGSTYLESConfig = { boxShadow: string, @@ -2603,7 +2603,7 @@ type iEditorStickyScrollOptions = { type iEditorMinimapOptions = { enabled?: bool, autohide?: codeEditorV2IEditorMinimapOptionsAutohide, - side?: HighchartsSharedTypes.chartsSeriesOrganizationOptionsHangingSide, + side?: ChartsTypes.chartsSeriesOrganizationOptionsHangingSide, size?: codeEditorV2IEditorMinimapOptionsSize, showSlider?: codeEditorV2IEditorMinimapOptionsShowSlider, renderCharacters?: bool, diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/HighchartsSharedTypes.res b/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/HighchartsSharedTypes.res index b8c7e047..397c22d8 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/HighchartsSharedTypes.res +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/HighchartsSharedTypes.res @@ -1,24 +1,5 @@ @@warning("-30") -type chartType = - | @as("line") Line - | @as("bar") Bar - | @as("lineBar") LineBar - | @as("pie") Pie - | @as("scatter") Scatter - | @as("area") Area - | @as("sankey") Sankey -type axisType = - | @as("dateTime") DateTime - | @as("currency") Currency - | @as("percentage") Percentage - | @as("number") Number -type chartLegendPosition = - | @as("top") Top - | @as("right") Right -type legendsChangeType = - | @as("increase") Increase - | @as("decrease") Decrease type dashStyleValue = | @as("Dash") Dash | @as("DashDot") DashDot @@ -41,7 +22,7 @@ type verticalAlignValue = | @as("middle") Middle type optionsGridLineInterpolationValue = | @as("circle") Circle - | @as("polygon") PolygonInterpolationValue + | @as("polygon") Polygon type optionsOverflowValue = | @as("justify") Justify | @as("allow") Allow @@ -63,23 +44,12 @@ type axisTitleAlignValue = | @as("middle") Middle | @as("high") High | @as("low") Low -type chartsXAxisTitleOptionsPosition3d = - | @as("chart") Chart - | @as("flap") Flap - | @as("offset") Offset - | @as("ortho") Ortho type axisTypeValue = | @as("linear") Linear | @as("treegrid") Treegrid | @as("category") Category | @as("datetime") Datetime | @as("logarithmic") Logarithmic -type chartsSeriesSetState = - | @as("") ValueSeriesSetState - | @as("normal") Normal - | @as("inactive") Inactive - | @as("hover") Hover - | @as("select") Select type svgPathCommand = | @as("a") A | @as("c") C @@ -101,12 +71,6 @@ type svgPathCommand = | @as("T") T2 | @as("V") V2 | @as("Z") Z2 -type chartsPointSetState = - | @as("") ValuePointSetState - | @as("normal") Normal - | @as("inactive") Inactive - | @as("hover") Hover - | @as("select") Select type bubbleSizeByValue = | @as("width") Width | @as("area") Area @@ -136,7 +100,7 @@ type cursorValue = | @as("ns-resize") NsResize | @as("nw-resize") NwResize | @as("nwse-resize") NwseResize - | @as("pointer") PointerCursorValue + | @as("pointer") Pointer | @as("progress") Progress | @as("row-resize") RowResize | @as("s-resize") SResize @@ -230,7 +194,7 @@ type optionsFindNearestPointByValue = | @as("xy") Xy type optionsGapUnitValue = | @as("relative") Relative - | @as("value") ValueOptionsGapUnit + | @as("value") ValueGapUnit type optionsLegendSymbolValue = | @as("rectangle") Rectangle | @as("areaMarker") AreaMarker @@ -247,10 +211,6 @@ type optionsRelativeToValue = type optionsCompareValue = | @as("value") ValueOptionsCompare | @as("percent") Percent -type chartsSeriesArcdiagramOptionsLinkColorMode = - | @as("from") From - | @as("to") To - | @as("gradient") Gradient type optionsPointIntervalUnitValue = | @as("year") Year | @as("month") Month @@ -261,12 +221,6 @@ type optionsStackingValue = | @as("null") Null | @as("overlap") Overlap | @as("stream") Stream -type chartsBorderRadiusOptionsObjectScope = - | @as("point") PointObjectScope - | @as("stack") Stack -type chartsBorderRadiusOptionsObjectWhere = - | @as("all") All - | @as("end") End type optionsPointValKeyValue = | @as("open") Open | @as("high") High @@ -300,17 +254,6 @@ type organizationHangingIndentTranslationValue = | @as("inherit") Inherit | @as("cumulative") Cumulative | @as("shrink") Shrink -type chartsSeriesOrganizationOptionsHangingSide = - | @as("left") Left - | @as("right") Right -type chartsPlotOrganizationLinkOptionsType = - | @as("straight") Straight - | @as("curved") Curved - | @as("orthogonal") Orthogonal -type chartsSeriesOrganizationOptionsNodeAlignment = - | @as("top") Top - | @as("bottom") Bottom - | @as("center") Center type seriesOrganizationNodesLayoutValue = | @as("normal") Normal | @as("hanging") Hanging @@ -395,11 +338,6 @@ type optionsDropdownValue = | @as("always") Always | @as("never") Never | @as("responsive") Responsive -type mapGeometryTypeValue = - | @as("LineString") LineString - | @as("MultiLineString") MultiLineString - | @as("MultiPolygon") MultiPolygon - | @as("Polygon") PolygonTypeValue type synthPatchOscillatorType = | @as("square") Square | @as("triangle") Triangle @@ -412,7 +350,7 @@ type optionsMapFunctionValue = | @as("logarithmic") Logarithmic type optionsWithinValue = | @as("chart") Chart - | @as("series") SeriesWithinValue + | @as("series") Series | @as("xAxis") XAxis | @as("yAxis") YAxis type optionsValueMapFunctionValue = @@ -435,309 +373,7 @@ type symbolKeyValue = | @as("arc") Arc | @as("callout") Callout | @as("diamond") Diamond - | @as("triangle-down") TriangleDownKeyValue -type chartsBlendChartPropsConstructorType = - | @as("width") Width - | @as("height") Height - | @as("color") Color - | @as("error") Error - | @as("open") Open - | @as("end") End - | @as("start") Start - | @as("wrap") Wrap - | @as("x") X - | @as("y") Y - | @as("circle") Circle - | @as("triangle") Triangle - | @as("find") Find - | @as("backgroundSize") BackgroundSize - | @as("chart") Chart - | @as("offset") Offset - | @as("animate") Animate - | @as("arc") Arc - | @as("callout") Callout - | @as("diamond") Diamond - | @as("format") Format - | @as("rect") Rect - | @as("addEvent") AddEvent - | @as("animObject") AnimObject - | @as("arrayMax") ArrayMax - | @as("arrayMin") ArrayMin - | @as("attr") Attr - | @as("correctFloat") CorrectFloat - | @as("createElement") CreateElement - | @as("css") Css - | @as("dateFormat") DateFormat - | @as("defined") Defined - | @as("destroyObjectProperties") DestroyObjectProperties - | @as("discardElement") DiscardElement - | @as("erase") Erase - | @as("extend") Extend - | @as("extendClass") ExtendClass - | @as("fireEvent") FireEvent - | @as("getDeferredAnimation") GetDeferredAnimation - | @as("getMagnitude") GetMagnitude - | @as("getOptions") GetOptions - | @as("getStyle") GetStyle - | @as("isArray") IsArray - | @as("isClass") IsClass - | @as("isDOMElement") IsDOMElement - | @as("isFunction") IsFunction - | @as("isNumber") IsNumber - | @as("isObject") IsObject - | @as("isString") IsString - | @as("merge") Merge - | @as("normalizeTickInterval") NormalizeTickInterval - | @as("numberFormat") NumberFormat - | @as("objectEach") ObjectEach - | @as("pad") Pad - | @as("pick") Pick - | @as("relativeLength") RelativeLength - | @as("removeEvent") RemoveEvent - | @as("seriesType") SeriesType - | @as("setAnimation") SetAnimation - | @as("setOptions") SetOptions - | @as("splat") Splat - | @as("stableSort") StableSort - | @as("stop") Stop - | @as("syncTimeout") SyncTimeout - | @as("uniqueKey") UniqueKey - | @as("useSerialIds") UseSerialIds - | @as("centerImage") CenterImage - | @as("dateTimeFormat") DateTimeFormat - | @as("deleteRows") DeleteRows - | @as("getColumn") GetColumn - | @as("getColumns") GetColumns - | @as("getLogTickPositions") GetLogTickPositions - | @as("getModified") GetModified - | @as("getRendererType") GetRendererType - | @as("getRow") GetRow - | @as("modifyTree") ModifyTree - | @as("registerRendererType") RegisterRendererType - | @as("registerSeriesType") RegisterSeriesType - | @as("roundedRect") RoundedRect - | @as("setColumn") SetColumn - | @as("setColumns") SetColumns - | @as("setRow") SetRow - | @as("str2dtf") Str2dtf - | @as("triangleDown") TriangleDownConstructorType - | @as("unescapeEntities") UnescapeEntities - | @as("Annotation") Annotation - | @as("AnnotationControlPoint") AnnotationControlPoint - | @as("AST") AST - | @as("Axis") Axis - | @as("Chart") Chart2 - | @as("Color") Color2 - | @as("DataTable") DataTable - | @as("DataTableCore") DataTableCore - | @as("Legend") Legend - | @as("PlotLineOrBand") PlotLineOrBand - | @as("Point") PointConstructorType - | @as("Pointer") PointerConstructorType - | @as("Series") SeriesConstructorType - | @as("StackItem") StackItem - | @as("SVGElement") SVGElement - | @as("SVGLabel") SVGLabel - | @as("SVGRenderer") SVGRenderer - | @as("Tick") Tick - | @as("Time") Time - | @as("Tooltip") Tooltip - | @as("charts") Charts - | @as("dateFormats") DateFormats - | @as("defaultOptions") DefaultOptions - | @as("theme") Theme - | @as("anchorX") AnchorX - | @as("anchorY") AnchorY - | @as("clockwise") Clockwise - | @as("context") Context - | @as("innerR") InnerR - | @as("longArc") LongArc - | @as("r") R -type chartsChartTokensTypeHeaderPaddingConfig = { - x: string, - y: string, -} -type chartsChartTokensTypeHeaderSlotsConfig = { - gap: string, -} -type chartsChartTokensTypeHeaderConfig = { - padding: chartsChartTokensTypeHeaderPaddingConfig, - backgroundColor: string, - borderBottom: string, - borderRadius: string, - slots: chartsChartTokensTypeHeaderSlotsConfig, -} -type chartsChartTokensTypeContentLegendDropdownConfig = { - maxHeight: string, -} -type chartsChartTokensTypeContentLegendItemColorConfig = { - active: string, - default: string, - hover: string, - total: string, -} -type chartsChartTokensTypeContentLegendItemConfig = { - gap: string, - color: chartsChartTokensTypeContentLegendItemColorConfig, - fontSize: string, - fontWeight: string, -} -type chartsChartTokensTypeContentLegendConfig = { - gap: string, - dropdown: chartsChartTokensTypeContentLegendDropdownConfig, - item: chartsChartTokensTypeContentLegendItemConfig, -} -type chartsChartTokensTypeContentPaddingConfig = { - top: string, - right: string, - bottom: string, - left: string, -} -type chartsChartTokensTypeContentConfig = { - legend: chartsChartTokensTypeContentLegendConfig, - padding: chartsChartTokensTypeContentPaddingConfig, - gap: string, - backgroundColor: string, -} -type chartTokensType = { - border: string, - borderRadius: string, - header: chartsChartTokensTypeHeaderConfig, - content: chartsChartTokensTypeContentConfig, -} -type responsiveChartTokens = { - sm: chartTokensType, - lg: chartTokensType, -} -type chartsDataPointPrimaryConfig = { - label: string, - val: float, -} -type chartsDataPointAuxConfig = { - label: string, - val: float, - @as("type") type_?: axisType, - dateOnly?: bool, - smart?: bool, - timeZone?: string, - hour12?: bool, -} -type chartsDataPointErrorErrorDataConfig = { - label: string, - value: string, -} -type chartsDataPointErrorConfig = { - title: string, - errorData?: array, -} -type dataPoint = { - primary: chartsDataPointPrimaryConfig, - aux?: array, - error?: chartsDataPointErrorConfig, -} -type newNestedDataPoint = { - name: string, - data: Dict.t, -} -type chartsColorsConfig = { - key: string, - color: string, -} -type stackedLegendsDataPoint = { - value: float, - delta: float, - changeType: legendsChangeType, -} -type chartsTickPropsPayloadConfig = { - value: CommonTypes.stringOrNumber, - index?: int, - coordinate?: float, -} -type tickProps = { - x?: float, - y?: float, - payload?: chartsTickPropsPayloadConfig, -} -@set_index external tickPropsSet: (tickProps, string, JSON.t) => unit = "" -type axisConfig = { - label?: string, - showLabel?: bool, - interval?: CommonTypes.preserveStartOrPreserveEndOrPreserveStartEndOrNumber, - show?: bool, - @as("type") type_?: axisType, - tickFormatter?: CommonTypes.stringOrNumber => string, - customTick?: React.component, - dateOnly?: bool, - useUTC?: bool, - formatString?: string, - timeOnly?: bool, - showYear?: bool, - ticks?: array, - autoConsistentTicks?: bool, - maxTicks?: float, - smartDateTimeFormat?: bool, -} -type chartsTooltipConfigPositionConfig = { - x?: float, - y?: float, -} -type chartsTooltipConfigAllowEscapeViewBoxConfig = { - x?: bool, - y?: bool, -} -type tooltipConfig = { - position?: chartsTooltipConfigPositionConfig, - allowEscapeViewBox?: chartsTooltipConfigAllowEscapeViewBoxConfig, -} -type noDataProps = { - title?: string, - subtitle?: string, - slot?: React.element, - button?: ButtonTypes.buttonProps, -} -type chartsSkeletonProps = { - show: bool, - variant: SkeletonTypes.skeletonVariant, -} -type chartsLegendsConfig = { - title: string, - total?: string, -} -type chartsDotItemDotPropsPayloadConfig = { - name?: string, -} -type dotItemDotProps = { - cx?: float, - cy?: float, - value?: float, - payload?: chartsDotItemDotPropsPayloadConfig, -} -type chartsPayloadConfig = { - name: string, - id?: string, - color?: string, - value?: float, -} -type chartsSankeyTooltipDataPayloadConfig = { - name?: string, - value?: float, - source?: CommonTypes.stringOrNumber, - target?: CommonTypes.stringOrNumber, - sourceName?: string, - targetName?: string, - color?: string, - hoverColor?: string, -} -type sankeyTooltipData = { - payload: chartsSankeyTooltipDataPayloadConfig, -} -type sankeyLink = { - source: CommonTypes.stringOrNumber, - target: CommonTypes.stringOrNumber, - value: float, - color?: string, - hoverColor?: string, -} + | @as("triangle-down") TriangleDown type axisAccessibilityOptionsObject = { description?: string, enabled?: bool, @@ -825,7 +461,7 @@ type xAxisTitleOptions = { align?: axisTitleAlignValue, margin?: float, offset?: float, - position3d?: chartsXAxisTitleOptionsPosition3d, + position3d?: ChartsTypes.chartsXAxisTitleOptionsPosition3d, reserveSpace?: bool, rotation?: float, skew3d?: bool, @@ -1605,7 +1241,7 @@ type chartParallelAxesTitleOptions = { align?: axisTitleAlignValue, margin?: float, offset?: float, - position3d?: chartsXAxisTitleOptionsPosition3d, + position3d?: ChartsTypes.chartsXAxisTitleOptionsPosition3d, reserveSpace?: bool, rotation?: float, skew3d?: bool, @@ -1710,7 +1346,7 @@ type colorAxisTitleOptions = { align?: axisTitleAlignValue, margin?: float, offset?: float, - position3d?: chartsXAxisTitleOptionsPosition3d, + position3d?: ChartsTypes.chartsXAxisTitleOptionsPosition3d, reserveSpace?: bool, rotation?: float, skew3d?: bool, @@ -3139,8 +2775,8 @@ module ChartsSeriesAtrOptionsOnPoint = { } type borderRadiusOptionsObject = { radius: CommonTypes.stringOrNumber, - scope: chartsBorderRadiusOptionsObjectScope, - where: chartsBorderRadiusOptionsObjectWhere, + scope: ChartsTypes.chartsBorderRadiusOptionsObjectScope, + where: ChartsTypes.chartsBorderRadiusOptionsObjectWhere, } @unboxed type stringOrNumberOrBorderRadiusOptionsObject = Str(string) | Num(float) | BorderRadiusOptionsObject(borderRadiusOptionsObject) module ChartsSeriesBarOptionsDataSorting = { @@ -5090,7 +4726,7 @@ type plotOrganizationLinkOptions = { color?: string, lineWidth?: float, radius?: float, - @as("type") type_?: chartsPlotOrganizationLinkOptionsType, + @as("type") type_?: ChartsTypes.chartsPlotOrganizationLinkOptionsType, } module ChartsPlotOrganizationOnPointOptionsConnectorOptions = { type t @@ -6222,7 +5858,7 @@ type plotTreegraphLinkOptions = { curveFactor?: float, lineWidth?: float, radius?: float, - @as("type") type_?: chartsPlotOrganizationLinkOptionsType, + @as("type") type_?: ChartsTypes.chartsPlotOrganizationLinkOptionsType, } module ChartsPlotTreegraphOnPointOptionsConnectorOptions = { type t @@ -10406,11 +10042,11 @@ and plotSankeyOptions<'a, 'b, 'c> = { label?: seriesLabelOptionsObject<'a, 'b, 'c>, legendSymbol?: optionsLegendSymbolValue, levels?: array>, - linkColorMode?: chartsSeriesArcdiagramOptionsLinkColorMode, + linkColorMode?: ChartsTypes.chartsSeriesArcdiagramOptionsLinkColorMode, linkedTo?: string, linkOpacity?: float, minLinkWidth?: float, - nodeAlignment?: chartsSeriesOrganizationOptionsNodeAlignment, + nodeAlignment?: ChartsTypes.chartsSeriesOrganizationOptionsNodeAlignment, nodeDistance?: CommonTypes.stringOrNumber, nodePadding?: float, nodeWidth?: CommonTypes.stringOrNumber, @@ -11583,7 +11219,7 @@ and plotOrganizationOptions<'a, 'b, 'c> = { getExtremesFromAll?: bool, hangingIndent?: float, hangingIndentTranslation?: organizationHangingIndentTranslationValue, - hangingSide?: chartsSeriesOrganizationOptionsHangingSide, + hangingSide?: ChartsTypes.chartsSeriesOrganizationOptionsHangingSide, inactiveOtherPoints?: bool, includeInDataExport?: bool, keys?: array, @@ -11591,12 +11227,12 @@ and plotOrganizationOptions<'a, 'b, 'c> = { legendSymbol?: optionsLegendSymbolValue, levels?: array>, link?: plotOrganizationLinkOptions, - linkColorMode?: chartsSeriesArcdiagramOptionsLinkColorMode, + linkColorMode?: ChartsTypes.chartsSeriesArcdiagramOptionsLinkColorMode, linkedTo?: string, linkOpacity?: float, minLinkWidth?: float, minNodeLength?: float, - nodeAlignment?: chartsSeriesOrganizationOptionsNodeAlignment, + nodeAlignment?: ChartsTypes.chartsSeriesOrganizationOptionsNodeAlignment, nodeDistance?: CommonTypes.stringOrNumber, nodePadding?: float, nodeWidth?: float, @@ -14400,7 +14036,7 @@ and plotDependencywheelOptions<'a, 'b, 'c> = { label?: seriesLabelOptionsObject<'a, 'b, 'c>, legendSymbol?: optionsLegendSymbolValue, levels?: array>, - linkColorMode?: chartsSeriesArcdiagramOptionsLinkColorMode, + linkColorMode?: ChartsTypes.chartsSeriesArcdiagramOptionsLinkColorMode, linkedTo?: string, linkOpacity?: float, minLinkWidth?: float, @@ -16335,7 +15971,7 @@ and plotArcdiagramOptions<'a, 'b, 'c> = { label?: seriesLabelOptionsObject<'a, 'b, 'c>, legendSymbol?: optionsLegendSymbolValue, levels?: array>, - linkColorMode?: chartsSeriesArcdiagramOptionsLinkColorMode, + linkColorMode?: ChartsTypes.chartsSeriesArcdiagramOptionsLinkColorMode, linkedTo?: string, linkOpacity?: float, marker?: pointMarkerOptionsObject, @@ -20000,11 +19636,11 @@ and seriesSankeyOptions<'b, 'a, 'c> = { label?: seriesLabelOptionsObject<'a, 'b, 'c>, legendSymbol?: optionsLegendSymbolValue, levels?: array, - linkColorMode?: chartsSeriesArcdiagramOptionsLinkColorMode, + linkColorMode?: ChartsTypes.chartsSeriesArcdiagramOptionsLinkColorMode, linkedTo?: string, linkOpacity?: float, minLinkWidth?: float, - nodeAlignment?: chartsSeriesOrganizationOptionsNodeAlignment, + nodeAlignment?: ChartsTypes.chartsSeriesOrganizationOptionsNodeAlignment, nodeDistance?: CommonTypes.stringOrNumber, nodePadding?: float, nodeWidth?: CommonTypes.stringOrNumber, @@ -21424,7 +21060,7 @@ and seriesOrganizationOptions<'b, 'a, 'c> = { getExtremesFromAll?: bool, hangingIndent?: float, hangingIndentTranslation?: organizationHangingIndentTranslationValue, - hangingSide?: chartsSeriesOrganizationOptionsHangingSide, + hangingSide?: ChartsTypes.chartsSeriesOrganizationOptionsHangingSide, inactiveOtherPoints?: bool, includeInDataExport?: bool, keys?: array, @@ -21432,12 +21068,12 @@ and seriesOrganizationOptions<'b, 'a, 'c> = { legendSymbol?: optionsLegendSymbolValue, levels?: array, link?: plotOrganizationLinkOptions, - linkColorMode?: chartsSeriesArcdiagramOptionsLinkColorMode, + linkColorMode?: ChartsTypes.chartsSeriesArcdiagramOptionsLinkColorMode, linkedTo?: string, linkOpacity?: float, minLinkWidth?: float, minNodeLength?: float, - nodeAlignment?: chartsSeriesOrganizationOptionsNodeAlignment, + nodeAlignment?: ChartsTypes.chartsSeriesOrganizationOptionsNodeAlignment, nodeDistance?: CommonTypes.stringOrNumber, nodePadding?: float, nodeWidth?: float, @@ -25014,7 +24650,7 @@ and seriesDependencywheelOptions<'b, 'a, 'c> = { label?: seriesLabelOptionsObject<'a, 'b, 'c>, legendSymbol?: optionsLegendSymbolValue, levels?: array, - linkColorMode?: chartsSeriesArcdiagramOptionsLinkColorMode, + linkColorMode?: ChartsTypes.chartsSeriesArcdiagramOptionsLinkColorMode, linkedTo?: string, linkOpacity?: float, minLinkWidth?: float, @@ -27527,7 +27163,7 @@ and seriesArcdiagramOptions<'b, 'a, 'c> = { label?: seriesLabelOptionsObject<'a, 'b, 'c>, legendSymbol?: optionsLegendSymbolValue, levels?: array, - linkColorMode?: chartsSeriesArcdiagramOptionsLinkColorMode, + linkColorMode?: ChartsTypes.chartsSeriesArcdiagramOptionsLinkColorMode, linkedTo?: string, linkOpacity?: float, marker?: pointMarkerOptionsObject, @@ -27919,7 +27555,7 @@ and tooltipPositionerPointObject<'a, 'b, 'c> = { remove: (option, option) => unit, // ⚪ loose — was `boolean | Partial` select: (option, option) => unit, setNestedProperty: (string, string, string) => string, // ⚪ loose — was `T` - setState: (option, option) => unit, + setState: (option, option) => unit, setVisible: (option, option) => unit, tooltipFormatter: string => string, update: (stringOrNumberOrStringOrNumberArrayOrPointOptionsObject<'a, 'b, 'c>, option, option) => unit, // ⚪ loose — was `boolean | Partial` @@ -29263,7 +28899,7 @@ and point<'a, 'b, 'c> = { remove: (option, option) => unit, // ⚪ loose — was `boolean | Partial` select: (option, option) => unit, setNestedProperty: (string, string, string) => string, // ⚪ loose — was `T` - setState: (option, option) => unit, + setState: (option, option) => unit, setVisible: (option, option) => unit, tooltipFormatter: string => string, update: (string, option, option) => unit, // ⚪ loose — was `PointOptionsType` @@ -29306,7 +28942,7 @@ and series<'a, 'b, 'c> = { searchPoint: (string, option) => point<'a, 'b, 'c>, // ⚪ loose — was `PointerEvent` select: option => unit, setData: (array, option, option, option) => unit, // ⚪ loose — was `boolean | Partial` - setState: (option, option) => unit, + setState: (option, option) => unit, setVisible: (option, option) => unit, show: unit => unit, translate: unit => unit, @@ -29877,7 +29513,7 @@ and chart<'a, 'b, 'c> = { @unboxed and seriesArcDiagramDataLabelsOptionsObjectOrSeriesArcDiagramDataLabelsOptionsObjectArray<'a, 'b, 'c> = SeriesArcDiagramDataLabelsOptionsObject(seriesArcDiagramDataLabelsOptionsObject<'a, 'b, 'c>) | SeriesArcDiagramDataLabelsOptionsObjectArr(array>) @unboxed and plotAoDataLabelsOptionsOrPlotAoDataLabelsOptionsArray<'a, 'b, 'c> = PlotAoDataLabelsOptions(plotAoDataLabelsOptions<'a, 'b, 'c>) | PlotAoDataLabelsOptionsArr(array>) @unboxed and plotAdDataLabelsOptionsOrPlotAdDataLabelsOptionsArray<'a, 'b, 'c> = PlotAdDataLabelsOptions(plotAdDataLabelsOptions<'a, 'b, 'c>) | PlotAdDataLabelsOptionsArr(array>) -@unboxed and pointOrPointArray<'a, 'b, 'c> = PointPointArray(point<'a, 'b, 'c>) | PointArr(array>) +@unboxed and pointOrPointArray<'a, 'b, 'c> = Point(point<'a, 'b, 'c>) | PointArr(array>) @unboxed and stringOrNumberOrStringOrNumberArrayOrPointOptionsObject<'a, 'b, 'c> = Str(string) | Num(float) | Arr(array) | PointOptionsObject(pointOptionsObject<'a, 'b, 'c>) @unboxed and plotAbandsDataLabelsOptionsOrPlotAbandsDataLabelsOptionsArray<'a, 'b, 'c> = PlotAbandsDataLabelsOptions(plotAbandsDataLabelsOptions<'a, 'b, 'c>) | PlotAbandsDataLabelsOptionsArr(array>) @unboxed and boolOrAxisCrosshairOptions<'a, 'b, 'c> = Bool(bool) | AxisCrosshairOptions(axisCrosshairOptions<'a, 'b, 'c>) @@ -30968,149 +30604,6 @@ module AxisOptions = { external fromZAxisOptions: zAxisOptions<'a, 'b, 'c> => t = "%identity" external asZAxisOptions: t => (zAxisOptions<'a, 'b, 'c>) = "%identity" } -type defsArrowAttributesOptions = { - id?: string, - markerHeight?: float, - markerWidth?: float, - refX?: float, - refY?: float, -} -type defsReverseArrowOptions = { - attributes?: defsArrowAttributesOptions, - tagName?: string, -} -module ChartsDefsOptionsReverseArrow = { - type t - external fromASTNode: astNode => t = "%identity" - external asASTNode: t => (astNode) = "%identity" - external fromDefsReverseArrowOptions: defsReverseArrowOptions => t = "%identity" - external asDefsReverseArrowOptions: t => (defsReverseArrowOptions) = "%identity" -} -type chartsDefsOptionsArrow_t -type rec defsArrowOptions = { - attributes?: defsArrowAttributesOptions, - children?: array, - tagName?: string, -} -and defsOptions = { - arrow?: chartsDefsOptionsArrow_t, - @as("reverse-arrow") reverseArrow?: ChartsDefsOptionsReverseArrow.t, -} -module ChartsDefsOptionsArrow = { - type t = chartsDefsOptionsArrow_t - external fromASTNode: astNode => t = "%identity" - external asASTNode: t => (astNode) = "%identity" - external fromDefsArrowOptions: defsArrowOptions => t = "%identity" - external asDefsArrowOptions: t => (defsArrowOptions) = "%identity" -} -type dragDropGuideBoxOptionsObject = { - className?: string, - color?: string, // ⚪ loose — was `ColorType` - cursor?: string, - lineColor?: string, - lineWidth?: float, - zIndex?: int, -} -type plotOptionsSeriesDragDropGuideBoxOptions = { - default?: dragDropGuideBoxOptionsObject, -} -type exportingButtonsOptionsObject = { - align?: alignValue, - buttonSpacing?: float, - className?: string, - enabled?: bool, - height?: float, - menuClassName?: string, - menuItems?: array, - onclick?: JsFn.t, - symbol?: string, - symbolFill?: ColorType.t, - symbolSize?: float, - symbolStroke?: string, - symbolStrokeWidth?: float, - symbolX?: float, - symbolY?: float, - text?: string, - theme?: exportingButtonsContextButtonThemeOptions, - titleKey?: string, - useHTML?: bool, - verticalAlign?: verticalAlignValue, - width?: float, - x?: float, - y?: float, -} -type exportingButtonsOptions = { - contextButton?: exportingButtonsOptionsObject, -} -type exportingMenuItemDefinitionsDownloadCSVOptions = { - textKey?: string, -} -type exportingMenuItemDefinitionsSeparatorOptions = { - separator?: bool, -} -type exportingMenuItemDefinitionsOptions = { - downloadCSV?: exportingMenuItemDefinitionsDownloadCSVOptions, - downloadJPEG?: exportingMenuItemDefinitionsDownloadCSVOptions, - downloadPDF?: exportingMenuItemDefinitionsDownloadCSVOptions, - downloadPNG?: exportingMenuItemDefinitionsDownloadCSVOptions, - downloadSVG?: exportingMenuItemDefinitionsDownloadCSVOptions, - downloadXLS?: exportingMenuItemDefinitionsDownloadCSVOptions, - printChart?: exportingMenuItemDefinitionsDownloadCSVOptions, - separator?: exportingMenuItemDefinitionsSeparatorOptions, - viewData?: exportingMenuItemDefinitionsDownloadCSVOptions, - viewFullscreen?: exportingMenuItemDefinitionsDownloadCSVOptions, -} -type exportingMenuObject<'a, 'b, 'c> = { - onclick?: @this ((chart<'a, 'b, 'c>, option, option>) => option), // ⚠️ REVIEW — was `Event | Dictionary` — match the real type by hand - separator?: bool, - text?: string, - textKey?: string, -} -module ChartsSeriesMapDataGeometryOptionsCoordinates = { - type t - external fromArray: array => t = "%identity" - external asArray: t => (array) = "%identity" - external fromLonLatArrays: array> => t = "%identity" - external asLonLatArrays: t => (array>) = "%identity" -} -type seriesMapDataGeometryOptions = { - coordinates?: array, - @as("type") type_?: mapGeometryTypeValue, -} -module ChartsSeriesMapDataOptionsGeometry = { - type t - external fromJSON: JSON.t => t = "%identity" - external asJSON: t => (JSON.t) = "%identity" - external fromSeriesMapDataGeometryOptions: seriesMapDataGeometryOptions => t = "%identity" - external asSeriesMapDataGeometryOptions: t => (seriesMapDataGeometryOptions) = "%identity" -} -type seriesMapDataOptions<'a, 'b, 'c> = { - color?: ColorType.t, - dataLabels?: dataLabelsOptions, - drilldown?: string, - events?: pointEventsOptionsObject<'a, 'b, 'c>, - geometry?: ChartsSeriesMapDataOptionsGeometry.t, - id?: string, - labelrank?: float, - middleX?: float, - middleY?: float, - name?: string, - path?: string, - states?: seriesStatesOptionsObject, - value?: float, -} -type blendChartProps<'a, 'b, 'c> = { - allowChartUpdate?: bool, - constructorType?: chartsBlendChartPropsConstructorType, - containerProps?: Dict.t, // 🛑 BROKEN — contains `any` - highcharts?: InstanceTypes.highchartsModule, - immutable?: bool, - options?: options<'a, 'b, 'c>, - updateArgs?: array, - callback?: chart<'a, 'b, 'c> => unit, -} -@set_index external blendChartPropsSet: (blendChartProps<'a, 'b, 'c>, string, JSON.t) => unit = "" -@unboxed type stringOrChartsColorsConfig = Str(string) | ChartsColorsConfig(chartsColorsConfig) module SetStateAction = { type t external fromPoint: point<'a, 'b, 'c> => t = "%identity" diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/SankeyLink.res b/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/SankeyLink.res index 6165d042..7049da94 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/SankeyLink.res +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/SankeyLink.res @@ -7,9 +7,9 @@ type props = { targetControlX?: float, linkWidth?: float, index?: int, - payload?: HighchartsSharedTypes.sankeyLink, - linkColors?: array, - onMouseEnter?: (HighchartsSharedTypes.sankeyTooltipData, ReactEvent.Mouse.t) => unit, + payload?: ChartsTypes.sankeyLink, + linkColors?: array, + onMouseEnter?: (ChartsTypes.sankeyTooltipData, ReactEvent.Mouse.t) => unit, onMouseLeave?: unit => unit, } diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/SankeyNode.res b/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/SankeyNode.res index b4e64c74..eccb76f5 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/SankeyNode.res +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/SankeyNode.res @@ -4,10 +4,10 @@ type props = { width?: float, height?: float, index?: int, - payload?: HighchartsSharedTypes.chartsPayloadConfig, + payload?: ChartsTypes.chartsPayloadConfig, containerWidth?: float, - nodeColors?: array, - onMouseEnter?: (HighchartsSharedTypes.sankeyTooltipData, ReactEvent.Mouse.t) => unit, + nodeColors?: array, + onMouseEnter?: (ChartsTypes.sankeyTooltipData, ReactEvent.Mouse.t) => unit, onMouseLeave?: unit => unit, } diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/StatCard.res b/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/StatCard.res index 4e0104d5..c9dd32a2 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/StatCard.res +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/StatCard.res @@ -15,7 +15,7 @@ type props = { minWidth?: string, xAxis?: StatCardTypes.statCardAxisConfig, yAxis?: StatCardTypes.statCardAxisConfig, - valueFormatter?: HighchartsSharedTypes.axisType, + valueFormatter?: ChartsTypes.axisType, height?: string, direction?: StatCardTypes.statCardDirection, skeleton?: StatCardTypes.statCardSkeletonProps, diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/StatCardTypes.res b/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/StatCardTypes.res index ba3fd1e5..9d2cc814 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/StatCardTypes.res +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/StatCardTypes.res @@ -151,7 +151,7 @@ type chartDataPoint = { name: string, } type statCardAxisConfig = { - @as("type") type_?: HighchartsSharedTypes.axisType, + @as("type") type_?: ChartsTypes.axisType, tickFormatter?: CommonTypes.stringOrNumber => string, dateOnly?: bool, useUTC?: bool, diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/Tag.res b/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/Tag.res index 63fb30b3..c0abb39b 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/Tag.res +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/Tag.res @@ -98,7 +98,7 @@ type props = { shape?: TagsTypes.tagShape, leftSlot?: React.element, rightSlot?: React.element, - splitTagPosition?: HighchartsSharedTypes.chartsSeriesOrganizationOptionsHangingSide, + splitTagPosition?: ChartsTypes.chartsSeriesOrganizationOptionsHangingSide, showSkeleton?: bool, skeletonVariant?: SkeletonTypes.skeletonVariant, ref?: React.ref>, diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/_REPORT.md b/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/_REPORT.md index e35a915f..38d0b3b5 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/_REPORT.md +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/bindings/_REPORT.md @@ -4,7 +4,7 @@ **249** function binding(s) → `BlendDesignSystemBindings.res`. -**3309** shared types deduplicated into **74** `*Types.res` modules (referenced qualified — no per-file redeclaration). +**3289** shared types deduplicated into **75** `*Types.res` modules (referenced qualified — no per-file redeclaration). ## 🔤 Constructor name collisions @@ -29,15 +29,11 @@ A bare constant, an identity payload and a `@tag`-injected object are different | `EditorSharedTypes` | `Text` | `1` / `"text"` | `TextMouseStyle`, `TextTagType`, `TextRenderMinimap` | | `EditorSharedTypes` | `WordWrapColumn` | `152` / `"wordWrapColumn"` | `WordWrapColumnWordWrap`, `WordWrapColumnEditorOption` | | `DataTableTypes` | `DateRange` | `"date_range"` / `"dateRange"` | `DateRangeColumnType`, `DateRangeTypeType`, `DateRangeFilterComponent` | -| `HighchartsSharedTypes` | `Point` | `"point"` / `(payload, passed through)` / `"Point"` | `PointConstructorType`, `PointObjectScope`, `PointPointArray` | -| `HighchartsSharedTypes` | `Pointer` | `"pointer"` / `"Pointer"` | `PointerConstructorType`, `PointerCursorValue` | -| `HighchartsSharedTypes` | `Polygon` | `"polygon"` / `"Polygon"` | `PolygonTypeValue`, `PolygonInterpolationValue` | -| `HighchartsSharedTypes` | `Series` | `"series"` / `"Series"` | `SeriesConstructorType`, `SeriesWithinValue` | +| `ChartsTypes` | `Point` | `"point"` / `"Point"` | `PointConstructorType`, `PointObjectScope` | | `HighchartsSharedTypes` | `Solid` | `"Solid"` / `"solid"` | `SolidStyleValue`, `SolidShapeValue` | -| `HighchartsSharedTypes` | `TriangleDown` | `"triangle-down"` / `"triangleDown"` | `TriangleDownConstructorType`, `TriangleDownKeyValue` | -| `HighchartsSharedTypes` | `Value` | `""` / `"!="` / `"value"` | `ValueAnnotationDraggable`, `ValuePointSetState`, `ValueSeriesSetState`, `ValueOptionsCompare`, `ValueOptionsGapUnit`, `ValueOptionsOperator` | +| `HighchartsSharedTypes` | `Value` | `""` / `"!="` / `"value"` | `ValueAnnotationDraggable`, `ValueOptionsCompare`, `ValueGapUnit`, `ValueOptionsOperator` | -### Left as-is — same name, same runtime representation (143) +### Left as-is — same name, same runtime representation (140) These produce the same runtime shape whichever definition wins, so renaming them would churn every consumer for no correctness gain. Listed because the ambiguity is still there to read. @@ -49,12 +45,13 @@ These produce the same runtime shape whichever definition wins, so renaming them - `DataTableTypes`: `Avatar`, `Custom`, `Date`, `Decimal`, `Dropdown`, `Error`, `Multiselect`, `Number`, `Percentage`, `Primary`, `Progress`, `ReactElement`, `Secondary`, `Select`, `Slider`, `Success`, `Tag`, `Text`, `Warning` - `DateRangePickerTypes`: `Custom` - `ProgressBarTypes`: `Segmented`, `Solid` -- `HighchartsSharedTypes`: `All`, `Allow`, `Alt`, `AnnotationMockPointOptionsObject`, `Arc`, `Area`, `Arr`, `Auto`, `Bool`, `Bottom`, `Callout`, `Category`, `Center`, `Chart`, `Circle`, `Close`, `CssObject`, `Ctrl`, `Day`, `Diamond`, `End`, `Flap`, `Fn`, `High`, `Horizontal`, `Hover`, `Inactive`, `Inside`, `Justify`, `Left` … +35 more +- `ChartsTypes`: `Chart`, `End`, `Hover`, `Inactive`, `Normal`, `Offset`, `Right`, `Select`, `Top`, `Value` - `SkeletonTypes`: `Circle` - `UploadTypes`: `Error`, `Success` - `ButtonV2Types`: `Default`, `Disabled` - `TooltipV2Types`: `Left`, `Right` - `CommonTypes`: `Arr`, `Auto`, `Bool`, `Fn`, `Interval`, `N0`, `N1`, `N2`, `N3`, `N4`, `Num`, `Off`, `On`, `Relative`, `Str`, `StrArr` +- `HighchartsSharedTypes`: `All`, `Allow`, `Alt`, `AnnotationMockPointOptionsObject`, `Arc`, `Area`, `Arr`, `Auto`, `Bool`, `Callout`, `Category`, `Center`, `Chart`, `Circle`, `Close`, `CssObject`, `Ctrl`, `Day`, `Diamond`, `Fn`, `High`, `Horizontal`, `Inside`, `Justify`, `Left`, `Linear`, `Logarithmic`, `Low`, `Meta`, `Middle` … +22 more - `SliderTypes`: `Bottom`, `Inline`, `Top` ## 📦 Dependencies diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/metrics.json b/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/metrics.json index 6ca60716..86918540 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/metrics.json +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.37-beta.8/metrics.json @@ -11,5 +11,5 @@ }, "functions": 249, "classes": 0, - "files": 300 + "files": 301 } diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/BlendChart.res b/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/BlendChart.res index f0e4826d..42b7484d 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/BlendChart.res +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/BlendChart.res @@ -1,7 +1,7 @@ type props<'a, 'b, 'c, 't7> = { ref?: React.ref>>, allowChartUpdate?: bool, - constructorType?: HighchartsSharedTypes.chartsBlendChartPropsConstructorType, + constructorType?: ChartsTypes.chartsBlendChartPropsConstructorType, containerProps?: Dict.t<'t7>, highcharts?: InstanceTypes.highchartsModule, immutable?: bool, diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/BlendDesignSystemBindings.res b/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/BlendDesignSystemBindings.res index 455bd714..6e9264ad 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/BlendDesignSystemBindings.res +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/BlendDesignSystemBindings.res @@ -10,7 +10,7 @@ @module("@juspay/blend-design-system") external normalizeBreadcrumbItems: (array) => array = "normalizeBreadcrumbItems" @module("@juspay/blend-design-system") external getButtonTokens: (TokensTypes.foundationTokenType) => ButtonTypes.responsiveButtonTokens = "getButtonTokens" @module("@juspay/blend-design-system") external getCardTokens: (TokensTypes.foundationTokenType) => CardTypes.responsiveCardTokens = "getCardTokens" -@module("@juspay/blend-design-system") external getChartTokens: (TokensTypes.foundationTokenType) => HighchartsSharedTypes.responsiveChartTokens = "getChartTokens" +@module("@juspay/blend-design-system") external getChartTokens: (TokensTypes.foundationTokenType) => ChartsTypes.responsiveChartTokens = "getChartTokens" @module("@juspay/blend-design-system") external blendChartBaseInstance: InstanceTypes.highchartsModule = "BlendChartBaseInstance" @module("@juspay/blend-design-system") external getChatInputTokens: (TokensTypes.foundationTokenType) => ChatInputTypes.responsiveChatInputTokensType = "getChatInputTokens" @module("@juspay/blend-design-system") external validateColumnData: DataTableTypes.dataTableValidateColumnDataConfig = "validateColumnData" diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/ChartLegends.res b/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/ChartLegends.res index bd23b31a..44901cf3 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/ChartLegends.res +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/ChartLegends.res @@ -1,7 +1,7 @@ type props = { chartContainerRef: React.ref>, keys: array, - colors: array, + colors: array, handleLegendClick: string => unit, handleLegendEnter: string => unit, handleLegendLeave: unit => unit, @@ -11,8 +11,8 @@ type props = { activeKeys: Nullable.t>, stacked?: bool, isSmallScreen?: bool, - stackedLegendsData?: array, - legends?: array, + stackedLegendsData?: array, + legends?: array, showAllLegends?: bool, } diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/ChartV2.res b/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/ChartV2.res index b48295cb..bf435064 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/ChartV2.res +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/ChartV2.res @@ -1,6 +1,6 @@ type props<'a, 'b, 'c> = { allowChartUpdate?: bool, - constructorType?: HighchartsSharedTypes.chartsBlendChartPropsConstructorType, + constructorType?: ChartsTypes.chartsBlendChartPropsConstructorType, containerProps?: Dict.t<'a>, highcharts?: InstanceTypes.highchartsModule, immutable?: bool, diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/Charts.res b/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/Charts.res index 009943bd..6b695cba 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/Charts.res +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/Charts.res @@ -1,29 +1,29 @@ type props = { - chartType?: HighchartsSharedTypes.chartType, - data?: Nullable.t>, - colors?: array, + chartType?: ChartsTypes.chartType, + data?: Nullable.t>, + colors?: array, slot1?: React.element, slot2?: React.element, slot3?: React.element, - legendPosition?: HighchartsSharedTypes.chartLegendPosition, + legendPosition?: ChartsTypes.chartLegendPosition, chartHeaderSlot: React.element, stackedLegends?: bool, - stackedLegendsData?: array, + stackedLegendsData?: array, showAllLegends?: bool, barsize?: float, - xAxis?: HighchartsSharedTypes.axisConfig, - yAxis?: HighchartsSharedTypes.axisConfig, - tooltip?: HighchartsSharedTypes.tooltipConfig, - noData?: HighchartsSharedTypes.noDataProps, + xAxis?: ChartsTypes.axisConfig, + yAxis?: ChartsTypes.axisConfig, + tooltip?: ChartsTypes.tooltipConfig, + noData?: ChartsTypes.noDataProps, height?: float, showHeader?: bool, showCollapseIcon?: bool, isExpanded?: bool, onExpandedChange?: bool => unit, chartName?: string, - skeleton?: HighchartsSharedTypes.chartsSkeletonProps, - legends?: array, - @as("CustomizedDot") customizedDot?: HighchartsSharedTypes.dotItemDotProps => React.element, + skeleton?: ChartsTypes.chartsSkeletonProps, + legends?: array, + @as("CustomizedDot") customizedDot?: ChartsTypes.dotItemDotProps => React.element, lineSeriesKeys?: array, } diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/ChartsTypes.res b/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/ChartsTypes.res new file mode 100644 index 00000000..16b4ab44 --- /dev/null +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/ChartsTypes.res @@ -0,0 +1,360 @@ +type chartType = + | @as("line") Line + | @as("bar") Bar + | @as("lineBar") LineBar + | @as("pie") Pie + | @as("scatter") Scatter + | @as("area") Area + | @as("sankey") Sankey +type axisType = + | @as("dateTime") DateTime + | @as("currency") Currency + | @as("percentage") Percentage + | @as("number") Number +type chartLegendPosition = + | @as("top") Top + | @as("right") Right +type legendsChangeType = + | @as("increase") Increase + | @as("decrease") Decrease +type chartsXAxisTitleOptionsPosition3d = + | @as("offset") Offset + | @as("chart") Chart + | @as("flap") Flap + | @as("ortho") Ortho +type chartsSeriesSetState = + | @as("") Value + | @as("normal") Normal + | @as("inactive") Inactive + | @as("hover") Hover + | @as("select") Select +type chartsPointSetState = + | @as("") Value + | @as("normal") Normal + | @as("inactive") Inactive + | @as("hover") Hover + | @as("select") Select +type chartsSeriesArcdiagramOptionsLinkColorMode = + | @as("from") From + | @as("to") To + | @as("gradient") Gradient +type chartsBorderRadiusOptionsObjectScope = + | @as("point") PointObjectScope + | @as("stack") Stack +type chartsBorderRadiusOptionsObjectWhere = + | @as("all") All + | @as("end") End +type chartsSeriesOrganizationOptionsHangingSide = + | @as("left") Left + | @as("right") Right +type chartsPlotOrganizationLinkOptionsType = + | @as("straight") Straight + | @as("curved") Curved + | @as("orthogonal") Orthogonal +type chartsSeriesOrganizationOptionsNodeAlignment = + | @as("top") Top + | @as("bottom") Bottom + | @as("center") Center +type chartsBlendChartPropsConstructorType = + | @as("width") Width + | @as("height") Height + | @as("color") Color + | @as("error") Error + | @as("open") Open + | @as("end") End + | @as("start") Start + | @as("wrap") Wrap + | @as("x") X + | @as("y") Y + | @as("circle") Circle + | @as("triangle") Triangle + | @as("find") Find + | @as("backgroundSize") BackgroundSize + | @as("offset") Offset + | @as("chart") Chart + | @as("animate") Animate + | @as("arc") Arc + | @as("callout") Callout + | @as("diamond") Diamond + | @as("format") Format + | @as("rect") Rect + | @as("addEvent") AddEvent + | @as("animObject") AnimObject + | @as("arrayMax") ArrayMax + | @as("arrayMin") ArrayMin + | @as("attr") Attr + | @as("correctFloat") CorrectFloat + | @as("createElement") CreateElement + | @as("css") Css + | @as("dateFormat") DateFormat + | @as("defined") Defined + | @as("destroyObjectProperties") DestroyObjectProperties + | @as("discardElement") DiscardElement + | @as("erase") Erase + | @as("extend") Extend + | @as("extendClass") ExtendClass + | @as("fireEvent") FireEvent + | @as("getDeferredAnimation") GetDeferredAnimation + | @as("getMagnitude") GetMagnitude + | @as("getOptions") GetOptions + | @as("getStyle") GetStyle + | @as("isArray") IsArray + | @as("isClass") IsClass + | @as("isDOMElement") IsDOMElement + | @as("isFunction") IsFunction + | @as("isNumber") IsNumber + | @as("isObject") IsObject + | @as("isString") IsString + | @as("merge") Merge + | @as("normalizeTickInterval") NormalizeTickInterval + | @as("numberFormat") NumberFormat + | @as("objectEach") ObjectEach + | @as("pad") Pad + | @as("pick") Pick + | @as("relativeLength") RelativeLength + | @as("removeEvent") RemoveEvent + | @as("seriesType") SeriesType + | @as("setAnimation") SetAnimation + | @as("setOptions") SetOptions + | @as("splat") Splat + | @as("stableSort") StableSort + | @as("stop") Stop + | @as("syncTimeout") SyncTimeout + | @as("uniqueKey") UniqueKey + | @as("useSerialIds") UseSerialIds + | @as("centerImage") CenterImage + | @as("dateTimeFormat") DateTimeFormat + | @as("deleteRows") DeleteRows + | @as("getColumn") GetColumn + | @as("getColumns") GetColumns + | @as("getLogTickPositions") GetLogTickPositions + | @as("getModified") GetModified + | @as("getRendererType") GetRendererType + | @as("getRow") GetRow + | @as("modifyTree") ModifyTree + | @as("registerRendererType") RegisterRendererType + | @as("registerSeriesType") RegisterSeriesType + | @as("roundedRect") RoundedRect + | @as("setColumn") SetColumn + | @as("setColumns") SetColumns + | @as("setRow") SetRow + | @as("str2dtf") Str2dtf + | @as("triangleDown") TriangleDown + | @as("unescapeEntities") UnescapeEntities + | @as("Annotation") Annotation + | @as("AnnotationControlPoint") AnnotationControlPoint + | @as("AST") AST + | @as("Axis") Axis + | @as("Chart") Chart2 + | @as("Color") Color2 + | @as("DataTable") DataTable + | @as("DataTableCore") DataTableCore + | @as("Legend") Legend + | @as("PlotLineOrBand") PlotLineOrBand + | @as("Point") PointConstructorType + | @as("Pointer") Pointer + | @as("Series") Series + | @as("StackItem") StackItem + | @as("SVGElement") SVGElement + | @as("SVGLabel") SVGLabel + | @as("SVGRenderer") SVGRenderer + | @as("Tick") Tick + | @as("Time") Time + | @as("Tooltip") Tooltip + | @as("charts") Charts + | @as("dateFormats") DateFormats + | @as("defaultOptions") DefaultOptions + | @as("theme") Theme + | @as("anchorX") AnchorX + | @as("anchorY") AnchorY + | @as("clockwise") Clockwise + | @as("context") Context + | @as("innerR") InnerR + | @as("longArc") LongArc + | @as("r") R +type chartsChartTokensTypeHeaderPaddingConfig = { + x: string, + y: string, +} +type chartsChartTokensTypeHeaderSlotsConfig = { + gap: string, +} +type chartsChartTokensTypeHeaderConfig = { + padding: chartsChartTokensTypeHeaderPaddingConfig, + backgroundColor: string, + borderBottom: string, + borderRadius: string, + slots: chartsChartTokensTypeHeaderSlotsConfig, +} +type chartsChartTokensTypeContentLegendDropdownConfig = { + maxHeight: string, +} +type chartsChartTokensTypeContentLegendItemColorConfig = { + active: string, + default: string, + hover: string, + total: string, +} +type chartsChartTokensTypeContentLegendItemConfig = { + gap: string, + color: chartsChartTokensTypeContentLegendItemColorConfig, + fontSize: string, + fontWeight: string, +} +type chartsChartTokensTypeContentLegendConfig = { + gap: string, + dropdown: chartsChartTokensTypeContentLegendDropdownConfig, + item: chartsChartTokensTypeContentLegendItemConfig, +} +type chartsChartTokensTypeContentPaddingConfig = { + top: string, + right: string, + bottom: string, + left: string, +} +type chartsChartTokensTypeContentConfig = { + legend: chartsChartTokensTypeContentLegendConfig, + padding: chartsChartTokensTypeContentPaddingConfig, + gap: string, + backgroundColor: string, +} +type chartTokensType = { + border: string, + borderRadius: string, + header: chartsChartTokensTypeHeaderConfig, + content: chartsChartTokensTypeContentConfig, +} +type responsiveChartTokens = { + sm: chartTokensType, + lg: chartTokensType, +} +type chartsDataPointPrimaryConfig = { + label: string, + val: float, +} +type chartsDataPointAuxConfig = { + label: string, + val: float, + @as("type") type_?: axisType, + dateOnly?: bool, + smart?: bool, + timeZone?: string, + hour12?: bool, +} +type chartsDataPointErrorErrorDataConfig = { + label: string, + value: string, +} +type chartsDataPointErrorConfig = { + title: string, + errorData?: array, +} +type dataPoint = { + primary: chartsDataPointPrimaryConfig, + aux?: array, + error?: chartsDataPointErrorConfig, +} +type newNestedDataPoint = { + name: string, + data: Dict.t, +} +type chartsColorsConfig = { + key: string, + color: string, +} +type stackedLegendsDataPoint = { + value: float, + delta: float, + changeType: legendsChangeType, +} +type chartsTickPropsPayloadConfig = { + value: CommonTypes.stringOrNumber, + index?: int, + coordinate?: float, +} +type tickProps = { + x?: float, + y?: float, + payload?: chartsTickPropsPayloadConfig, +} +@set_index external tickPropsSet: (tickProps, string, JSON.t) => unit = "" +type axisConfig = { + label?: string, + showLabel?: bool, + interval?: CommonTypes.preserveStartOrPreserveEndOrPreserveStartEndOrNumber, + show?: bool, + @as("type") type_?: axisType, + tickFormatter?: CommonTypes.stringOrNumber => string, + customTick?: React.component, + dateOnly?: bool, + useUTC?: bool, + formatString?: string, + timeOnly?: bool, + showYear?: bool, + ticks?: array, + autoConsistentTicks?: bool, + maxTicks?: float, + smartDateTimeFormat?: bool, +} +type chartsTooltipConfigPositionConfig = { + x?: float, + y?: float, +} +type chartsTooltipConfigAllowEscapeViewBoxConfig = { + x?: bool, + y?: bool, +} +type tooltipConfig = { + position?: chartsTooltipConfigPositionConfig, + allowEscapeViewBox?: chartsTooltipConfigAllowEscapeViewBoxConfig, +} +type noDataProps = { + title?: string, + subtitle?: string, + slot?: React.element, + button?: ButtonTypes.buttonProps, +} +type chartsSkeletonProps = { + show: bool, + variant: SkeletonTypes.skeletonVariant, +} +type chartsLegendsConfig = { + title: string, + total?: string, +} +type chartsDotItemDotPropsPayloadConfig = { + name?: string, +} +type dotItemDotProps = { + cx?: float, + cy?: float, + value?: float, + payload?: chartsDotItemDotPropsPayloadConfig, +} +type chartsPayloadConfig = { + name: string, + id?: string, + color?: string, + value?: float, +} +type chartsSankeyTooltipDataPayloadConfig = { + name?: string, + value?: float, + source?: CommonTypes.stringOrNumber, + target?: CommonTypes.stringOrNumber, + sourceName?: string, + targetName?: string, + color?: string, + hoverColor?: string, +} +type sankeyTooltipData = { + payload: chartsSankeyTooltipDataPayloadConfig, +} +type sankeyLink = { + source: CommonTypes.stringOrNumber, + target: CommonTypes.stringOrNumber, + value: float, + color?: string, + hoverColor?: string, +} +@unboxed type stringOrChartsColorsConfig = Str(string) | ChartsColorsConfig(chartsColorsConfig) diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/CoreChart.res b/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/CoreChart.res index 467ef74b..0ce8c6bd 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/CoreChart.res +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/CoreChart.res @@ -1,11 +1,11 @@ type props = { - chartType?: HighchartsSharedTypes.chartType, - data?: Nullable.t>, - colors?: array, + chartType?: ChartsTypes.chartType, + data?: Nullable.t>, + colors?: array, barsize?: float, - xAxis?: HighchartsSharedTypes.axisConfig, - yAxis?: HighchartsSharedTypes.axisConfig, - tooltip?: HighchartsSharedTypes.tooltipConfig, + xAxis?: ChartsTypes.axisConfig, + yAxis?: ChartsTypes.axisConfig, + tooltip?: ChartsTypes.tooltipConfig, height?: CommonTypes.stringOrNumber, width?: CommonTypes.stringOrNumber, isSmallScreen?: bool, diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/EditorSharedTypes.res b/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/EditorSharedTypes.res index 7d2b8754..baf51223 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/EditorSharedTypes.res +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/EditorSharedTypes.res @@ -1695,7 +1695,7 @@ type componentTokenType = { @as("STAT_CARD") statCard?: StatCardTypes.responsiveStatCardTokens, @as("PROGRESS_BAR") progressBar?: ProgressBarTypes.responsiveProgressBarTokens, @as("DRAWER") drawer?: DrawerTypes.responsiveDrawerTokens, - @as("CHARTS") charts?: HighchartsSharedTypes.responsiveChartTokens, + @as("CHARTS") charts?: ChartsTypes.responsiveChartTokens, @as("SNACKBAR") snackbar?: SnackbarTypes.responsiveSnackbarTokens, @as("STEPPER") stepper?: StepperTypes.responsiveStepperTokens, @as("KEYVALUEPAIR") keyvaluepair?: KeyValuePairTypes.responsiveKeyValuePairTokens, @@ -1778,7 +1778,7 @@ type contextThemeContextTypeComponentTokensConfig = { @as("STAT_CARD") statCard: StatCardTypes.responsiveStatCardTokens, @as("PROGRESS_BAR") progressBar: ProgressBarTypes.responsiveProgressBarTokens, @as("DRAWER") drawer: DrawerTypes.responsiveDrawerTokens, - @as("CHARTS") charts: HighchartsSharedTypes.responsiveChartTokens, + @as("CHARTS") charts: ChartsTypes.responsiveChartTokens, @as("SNACKBAR") snackbar: SnackbarTypes.responsiveSnackbarTokens, @as("STEPPER") stepper: StepperTypes.responsiveStepperTokens, @as("KEYVALUEPAIR") keyvaluepair: KeyValuePairTypes.responsiveKeyValuePairTokens, @@ -1969,7 +1969,7 @@ type embeddedSingleSelectOptions = { menuAlignment: SelectV2Types.selectV2Alignment, menuSideOffset: float, menuAlignOffset: float, - defaultSingleSelectGroupPosition: HighchartsSharedTypes.chartsSeriesOrganizationOptionsHangingSide, + defaultSingleSelectGroupPosition: ChartsTypes.chartsSeriesOrganizationOptionsHangingSide, } type inputsV2FOCUSRINGSTYLESConfig = { boxShadow: string, @@ -2674,7 +2674,7 @@ type iEditorStickyScrollOptions = { type iEditorMinimapOptions = { enabled?: bool, autohide?: codeEditorV2IEditorMinimapOptionsAutohide, - side?: HighchartsSharedTypes.chartsSeriesOrganizationOptionsHangingSide, + side?: ChartsTypes.chartsSeriesOrganizationOptionsHangingSide, size?: codeEditorV2IEditorMinimapOptionsSize, showSlider?: codeEditorV2IEditorMinimapOptionsShowSlider, renderCharacters?: bool, diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/HighchartsSharedTypes.res b/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/HighchartsSharedTypes.res index 2cb35eeb..f1d0201a 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/HighchartsSharedTypes.res +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/HighchartsSharedTypes.res @@ -1,24 +1,5 @@ @@warning("-30") -type chartType = - | @as("line") Line - | @as("bar") Bar - | @as("lineBar") LineBar - | @as("pie") Pie - | @as("scatter") Scatter - | @as("area") Area - | @as("sankey") Sankey -type axisType = - | @as("dateTime") DateTime - | @as("currency") Currency - | @as("percentage") Percentage - | @as("number") Number -type chartLegendPosition = - | @as("top") Top - | @as("right") Right -type legendsChangeType = - | @as("increase") Increase - | @as("decrease") Decrease type dashStyleValue = | @as("Dash") Dash | @as("DashDot") DashDot @@ -41,7 +22,7 @@ type verticalAlignValue = | @as("middle") Middle type optionsGridLineInterpolationValue = | @as("circle") Circle - | @as("polygon") PolygonInterpolationValue + | @as("polygon") Polygon type optionsOverflowValue = | @as("justify") Justify | @as("allow") Allow @@ -63,23 +44,12 @@ type axisTitleAlignValue = | @as("middle") Middle | @as("high") High | @as("low") Low -type chartsXAxisTitleOptionsPosition3d = - | @as("offset") Offset - | @as("chart") Chart - | @as("flap") Flap - | @as("ortho") Ortho type axisTypeValue = | @as("linear") Linear | @as("treegrid") Treegrid | @as("category") Category | @as("datetime") Datetime | @as("logarithmic") Logarithmic -type chartsSeriesSetState = - | @as("") ValueSeriesSetState - | @as("normal") Normal - | @as("inactive") Inactive - | @as("hover") Hover - | @as("select") Select type svgPathCommand = | @as("a") A | @as("c") C @@ -101,12 +71,6 @@ type svgPathCommand = | @as("T") T2 | @as("V") V2 | @as("Z") Z2 -type chartsPointSetState = - | @as("") ValuePointSetState - | @as("normal") Normal - | @as("inactive") Inactive - | @as("hover") Hover - | @as("select") Select type bubbleSizeByValue = | @as("width") Width | @as("area") Area @@ -136,7 +100,7 @@ type cursorValue = | @as("ns-resize") NsResize | @as("nw-resize") NwResize | @as("nwse-resize") NwseResize - | @as("pointer") PointerCursorValue + | @as("pointer") Pointer | @as("progress") Progress | @as("row-resize") RowResize | @as("s-resize") SResize @@ -229,7 +193,7 @@ type optionsFindNearestPointByValue = | @as("x") X | @as("xy") Xy type optionsGapUnitValue = - | @as("value") ValueOptionsGapUnit + | @as("value") ValueGapUnit | @as("relative") Relative type optionsLegendSymbolValue = | @as("rectangle") Rectangle @@ -247,10 +211,6 @@ type optionsRelativeToValue = type optionsCompareValue = | @as("value") ValueOptionsCompare | @as("percent") Percent -type chartsSeriesArcdiagramOptionsLinkColorMode = - | @as("from") From - | @as("to") To - | @as("gradient") Gradient type optionsPointIntervalUnitValue = | @as("year") Year | @as("month") Month @@ -261,12 +221,6 @@ type optionsStackingValue = | @as("null") Null | @as("overlap") Overlap | @as("stream") Stream -type chartsBorderRadiusOptionsObjectScope = - | @as("point") PointObjectScope - | @as("stack") Stack -type chartsBorderRadiusOptionsObjectWhere = - | @as("all") All - | @as("end") End type optionsPointValKeyValue = | @as("open") Open | @as("high") High @@ -300,17 +254,6 @@ type organizationHangingIndentTranslationValue = | @as("inherit") Inherit | @as("cumulative") Cumulative | @as("shrink") Shrink -type chartsSeriesOrganizationOptionsHangingSide = - | @as("left") Left - | @as("right") Right -type chartsPlotOrganizationLinkOptionsType = - | @as("straight") Straight - | @as("curved") Curved - | @as("orthogonal") Orthogonal -type chartsSeriesOrganizationOptionsNodeAlignment = - | @as("top") Top - | @as("bottom") Bottom - | @as("center") Center type seriesOrganizationNodesLayoutValue = | @as("normal") Normal | @as("hanging") Hanging @@ -395,11 +338,6 @@ type optionsDropdownValue = | @as("always") Always | @as("never") Never | @as("responsive") Responsive -type mapGeometryTypeValue = - | @as("LineString") LineString - | @as("MultiLineString") MultiLineString - | @as("MultiPolygon") MultiPolygon - | @as("Polygon") PolygonTypeValue type synthPatchOscillatorType = | @as("square") Square | @as("triangle") Triangle @@ -412,7 +350,7 @@ type optionsMapFunctionValue = | @as("logarithmic") Logarithmic type optionsWithinValue = | @as("chart") Chart - | @as("series") SeriesWithinValue + | @as("series") Series | @as("xAxis") XAxis | @as("yAxis") YAxis type optionsValueMapFunctionValue = @@ -435,309 +373,7 @@ type symbolKeyValue = | @as("arc") Arc | @as("callout") Callout | @as("diamond") Diamond - | @as("triangle-down") TriangleDownKeyValue -type chartsBlendChartPropsConstructorType = - | @as("width") Width - | @as("height") Height - | @as("color") Color - | @as("error") Error - | @as("open") Open - | @as("end") End - | @as("start") Start - | @as("wrap") Wrap - | @as("x") X - | @as("y") Y - | @as("circle") Circle - | @as("triangle") Triangle - | @as("find") Find - | @as("backgroundSize") BackgroundSize - | @as("offset") Offset - | @as("chart") Chart - | @as("animate") Animate - | @as("arc") Arc - | @as("callout") Callout - | @as("diamond") Diamond - | @as("format") Format - | @as("rect") Rect - | @as("addEvent") AddEvent - | @as("animObject") AnimObject - | @as("arrayMax") ArrayMax - | @as("arrayMin") ArrayMin - | @as("attr") Attr - | @as("correctFloat") CorrectFloat - | @as("createElement") CreateElement - | @as("css") Css - | @as("dateFormat") DateFormat - | @as("defined") Defined - | @as("destroyObjectProperties") DestroyObjectProperties - | @as("discardElement") DiscardElement - | @as("erase") Erase - | @as("extend") Extend - | @as("extendClass") ExtendClass - | @as("fireEvent") FireEvent - | @as("getDeferredAnimation") GetDeferredAnimation - | @as("getMagnitude") GetMagnitude - | @as("getOptions") GetOptions - | @as("getStyle") GetStyle - | @as("isArray") IsArray - | @as("isClass") IsClass - | @as("isDOMElement") IsDOMElement - | @as("isFunction") IsFunction - | @as("isNumber") IsNumber - | @as("isObject") IsObject - | @as("isString") IsString - | @as("merge") Merge - | @as("normalizeTickInterval") NormalizeTickInterval - | @as("numberFormat") NumberFormat - | @as("objectEach") ObjectEach - | @as("pad") Pad - | @as("pick") Pick - | @as("relativeLength") RelativeLength - | @as("removeEvent") RemoveEvent - | @as("seriesType") SeriesType - | @as("setAnimation") SetAnimation - | @as("setOptions") SetOptions - | @as("splat") Splat - | @as("stableSort") StableSort - | @as("stop") Stop - | @as("syncTimeout") SyncTimeout - | @as("uniqueKey") UniqueKey - | @as("useSerialIds") UseSerialIds - | @as("centerImage") CenterImage - | @as("dateTimeFormat") DateTimeFormat - | @as("deleteRows") DeleteRows - | @as("getColumn") GetColumn - | @as("getColumns") GetColumns - | @as("getLogTickPositions") GetLogTickPositions - | @as("getModified") GetModified - | @as("getRendererType") GetRendererType - | @as("getRow") GetRow - | @as("modifyTree") ModifyTree - | @as("registerRendererType") RegisterRendererType - | @as("registerSeriesType") RegisterSeriesType - | @as("roundedRect") RoundedRect - | @as("setColumn") SetColumn - | @as("setColumns") SetColumns - | @as("setRow") SetRow - | @as("str2dtf") Str2dtf - | @as("triangleDown") TriangleDownConstructorType - | @as("unescapeEntities") UnescapeEntities - | @as("Annotation") Annotation - | @as("AnnotationControlPoint") AnnotationControlPoint - | @as("AST") AST - | @as("Axis") Axis - | @as("Chart") Chart2 - | @as("Color") Color2 - | @as("DataTable") DataTable - | @as("DataTableCore") DataTableCore - | @as("Legend") Legend - | @as("PlotLineOrBand") PlotLineOrBand - | @as("Point") PointConstructorType - | @as("Pointer") PointerConstructorType - | @as("Series") SeriesConstructorType - | @as("StackItem") StackItem - | @as("SVGElement") SVGElement - | @as("SVGLabel") SVGLabel - | @as("SVGRenderer") SVGRenderer - | @as("Tick") Tick - | @as("Time") Time - | @as("Tooltip") Tooltip - | @as("charts") Charts - | @as("dateFormats") DateFormats - | @as("defaultOptions") DefaultOptions - | @as("theme") Theme - | @as("anchorX") AnchorX - | @as("anchorY") AnchorY - | @as("clockwise") Clockwise - | @as("context") Context - | @as("innerR") InnerR - | @as("longArc") LongArc - | @as("r") R -type chartsChartTokensTypeHeaderPaddingConfig = { - x: string, - y: string, -} -type chartsChartTokensTypeHeaderSlotsConfig = { - gap: string, -} -type chartsChartTokensTypeHeaderConfig = { - padding: chartsChartTokensTypeHeaderPaddingConfig, - backgroundColor: string, - borderBottom: string, - borderRadius: string, - slots: chartsChartTokensTypeHeaderSlotsConfig, -} -type chartsChartTokensTypeContentLegendDropdownConfig = { - maxHeight: string, -} -type chartsChartTokensTypeContentLegendItemColorConfig = { - active: string, - default: string, - hover: string, - total: string, -} -type chartsChartTokensTypeContentLegendItemConfig = { - gap: string, - color: chartsChartTokensTypeContentLegendItemColorConfig, - fontSize: string, - fontWeight: string, -} -type chartsChartTokensTypeContentLegendConfig = { - gap: string, - dropdown: chartsChartTokensTypeContentLegendDropdownConfig, - item: chartsChartTokensTypeContentLegendItemConfig, -} -type chartsChartTokensTypeContentPaddingConfig = { - top: string, - right: string, - bottom: string, - left: string, -} -type chartsChartTokensTypeContentConfig = { - legend: chartsChartTokensTypeContentLegendConfig, - padding: chartsChartTokensTypeContentPaddingConfig, - gap: string, - backgroundColor: string, -} -type chartTokensType = { - border: string, - borderRadius: string, - header: chartsChartTokensTypeHeaderConfig, - content: chartsChartTokensTypeContentConfig, -} -type responsiveChartTokens = { - sm: chartTokensType, - lg: chartTokensType, -} -type chartsDataPointPrimaryConfig = { - label: string, - val: float, -} -type chartsDataPointAuxConfig = { - label: string, - val: float, - @as("type") type_?: axisType, - dateOnly?: bool, - smart?: bool, - timeZone?: string, - hour12?: bool, -} -type chartsDataPointErrorErrorDataConfig = { - label: string, - value: string, -} -type chartsDataPointErrorConfig = { - title: string, - errorData?: array, -} -type dataPoint = { - primary: chartsDataPointPrimaryConfig, - aux?: array, - error?: chartsDataPointErrorConfig, -} -type newNestedDataPoint = { - name: string, - data: Dict.t, -} -type chartsColorsConfig = { - key: string, - color: string, -} -type stackedLegendsDataPoint = { - value: float, - delta: float, - changeType: legendsChangeType, -} -type chartsTickPropsPayloadConfig = { - value: CommonTypes.stringOrNumber, - index?: int, - coordinate?: float, -} -type tickProps = { - x?: float, - y?: float, - payload?: chartsTickPropsPayloadConfig, -} -@set_index external tickPropsSet: (tickProps, string, JSON.t) => unit = "" -type axisConfig = { - label?: string, - showLabel?: bool, - interval?: CommonTypes.preserveStartOrPreserveEndOrPreserveStartEndOrNumber, - show?: bool, - @as("type") type_?: axisType, - tickFormatter?: CommonTypes.stringOrNumber => string, - customTick?: React.component, - dateOnly?: bool, - useUTC?: bool, - formatString?: string, - timeOnly?: bool, - showYear?: bool, - ticks?: array, - autoConsistentTicks?: bool, - maxTicks?: float, - smartDateTimeFormat?: bool, -} -type chartsTooltipConfigPositionConfig = { - x?: float, - y?: float, -} -type chartsTooltipConfigAllowEscapeViewBoxConfig = { - x?: bool, - y?: bool, -} -type tooltipConfig = { - position?: chartsTooltipConfigPositionConfig, - allowEscapeViewBox?: chartsTooltipConfigAllowEscapeViewBoxConfig, -} -type noDataProps = { - title?: string, - subtitle?: string, - slot?: React.element, - button?: ButtonTypes.buttonProps, -} -type chartsSkeletonProps = { - show: bool, - variant: SkeletonTypes.skeletonVariant, -} -type chartsLegendsConfig = { - title: string, - total?: string, -} -type chartsDotItemDotPropsPayloadConfig = { - name?: string, -} -type dotItemDotProps = { - cx?: float, - cy?: float, - value?: float, - payload?: chartsDotItemDotPropsPayloadConfig, -} -type chartsPayloadConfig = { - name: string, - id?: string, - color?: string, - value?: float, -} -type chartsSankeyTooltipDataPayloadConfig = { - name?: string, - value?: float, - source?: CommonTypes.stringOrNumber, - target?: CommonTypes.stringOrNumber, - sourceName?: string, - targetName?: string, - color?: string, - hoverColor?: string, -} -type sankeyTooltipData = { - payload: chartsSankeyTooltipDataPayloadConfig, -} -type sankeyLink = { - source: CommonTypes.stringOrNumber, - target: CommonTypes.stringOrNumber, - value: float, - color?: string, - hoverColor?: string, -} + | @as("triangle-down") TriangleDown type axisAccessibilityOptionsObject = { description?: string, enabled?: bool, @@ -825,7 +461,7 @@ type xAxisTitleOptions = { align?: axisTitleAlignValue, margin?: float, offset?: float, - position3d?: chartsXAxisTitleOptionsPosition3d, + position3d?: ChartsTypes.chartsXAxisTitleOptionsPosition3d, reserveSpace?: bool, rotation?: float, skew3d?: bool, @@ -1605,7 +1241,7 @@ type chartParallelAxesTitleOptions = { align?: axisTitleAlignValue, margin?: float, offset?: float, - position3d?: chartsXAxisTitleOptionsPosition3d, + position3d?: ChartsTypes.chartsXAxisTitleOptionsPosition3d, reserveSpace?: bool, rotation?: float, skew3d?: bool, @@ -1710,7 +1346,7 @@ type colorAxisTitleOptions = { align?: axisTitleAlignValue, margin?: float, offset?: float, - position3d?: chartsXAxisTitleOptionsPosition3d, + position3d?: ChartsTypes.chartsXAxisTitleOptionsPosition3d, reserveSpace?: bool, rotation?: float, skew3d?: bool, @@ -3139,8 +2775,8 @@ module ChartsSeriesAtrOptionsOnPoint = { } type borderRadiusOptionsObject = { radius: CommonTypes.stringOrNumber, - scope: chartsBorderRadiusOptionsObjectScope, - where: chartsBorderRadiusOptionsObjectWhere, + scope: ChartsTypes.chartsBorderRadiusOptionsObjectScope, + where: ChartsTypes.chartsBorderRadiusOptionsObjectWhere, } @unboxed type stringOrNumberOrBorderRadiusOptionsObject = Str(string) | Num(float) | BorderRadiusOptionsObject(borderRadiusOptionsObject) module ChartsSeriesBarOptionsDataSorting = { @@ -5090,7 +4726,7 @@ type plotOrganizationLinkOptions = { color?: string, lineWidth?: float, radius?: float, - @as("type") type_?: chartsPlotOrganizationLinkOptionsType, + @as("type") type_?: ChartsTypes.chartsPlotOrganizationLinkOptionsType, } module ChartsPlotOrganizationOnPointOptionsConnectorOptions = { type t @@ -6222,7 +5858,7 @@ type plotTreegraphLinkOptions = { curveFactor?: float, lineWidth?: float, radius?: float, - @as("type") type_?: chartsPlotOrganizationLinkOptionsType, + @as("type") type_?: ChartsTypes.chartsPlotOrganizationLinkOptionsType, } module ChartsPlotTreegraphOnPointOptionsConnectorOptions = { type t @@ -10406,11 +10042,11 @@ and plotSankeyOptions<'a, 'b, 'c> = { label?: seriesLabelOptionsObject<'a, 'b, 'c>, legendSymbol?: optionsLegendSymbolValue, levels?: array>, - linkColorMode?: chartsSeriesArcdiagramOptionsLinkColorMode, + linkColorMode?: ChartsTypes.chartsSeriesArcdiagramOptionsLinkColorMode, linkedTo?: string, linkOpacity?: float, minLinkWidth?: float, - nodeAlignment?: chartsSeriesOrganizationOptionsNodeAlignment, + nodeAlignment?: ChartsTypes.chartsSeriesOrganizationOptionsNodeAlignment, nodeDistance?: CommonTypes.stringOrNumber, nodePadding?: float, nodeWidth?: CommonTypes.stringOrNumber, @@ -11583,7 +11219,7 @@ and plotOrganizationOptions<'a, 'b, 'c> = { getExtremesFromAll?: bool, hangingIndent?: float, hangingIndentTranslation?: organizationHangingIndentTranslationValue, - hangingSide?: chartsSeriesOrganizationOptionsHangingSide, + hangingSide?: ChartsTypes.chartsSeriesOrganizationOptionsHangingSide, inactiveOtherPoints?: bool, includeInDataExport?: bool, keys?: array, @@ -11591,12 +11227,12 @@ and plotOrganizationOptions<'a, 'b, 'c> = { legendSymbol?: optionsLegendSymbolValue, levels?: array>, link?: plotOrganizationLinkOptions, - linkColorMode?: chartsSeriesArcdiagramOptionsLinkColorMode, + linkColorMode?: ChartsTypes.chartsSeriesArcdiagramOptionsLinkColorMode, linkedTo?: string, linkOpacity?: float, minLinkWidth?: float, minNodeLength?: float, - nodeAlignment?: chartsSeriesOrganizationOptionsNodeAlignment, + nodeAlignment?: ChartsTypes.chartsSeriesOrganizationOptionsNodeAlignment, nodeDistance?: CommonTypes.stringOrNumber, nodePadding?: float, nodeWidth?: float, @@ -14400,7 +14036,7 @@ and plotDependencywheelOptions<'a, 'b, 'c> = { label?: seriesLabelOptionsObject<'a, 'b, 'c>, legendSymbol?: optionsLegendSymbolValue, levels?: array>, - linkColorMode?: chartsSeriesArcdiagramOptionsLinkColorMode, + linkColorMode?: ChartsTypes.chartsSeriesArcdiagramOptionsLinkColorMode, linkedTo?: string, linkOpacity?: float, minLinkWidth?: float, @@ -16335,7 +15971,7 @@ and plotArcdiagramOptions<'a, 'b, 'c> = { label?: seriesLabelOptionsObject<'a, 'b, 'c>, legendSymbol?: optionsLegendSymbolValue, levels?: array>, - linkColorMode?: chartsSeriesArcdiagramOptionsLinkColorMode, + linkColorMode?: ChartsTypes.chartsSeriesArcdiagramOptionsLinkColorMode, linkedTo?: string, linkOpacity?: float, marker?: pointMarkerOptionsObject, @@ -20000,11 +19636,11 @@ and seriesSankeyOptions<'b, 'a, 'c> = { label?: seriesLabelOptionsObject<'a, 'b, 'c>, legendSymbol?: optionsLegendSymbolValue, levels?: array, - linkColorMode?: chartsSeriesArcdiagramOptionsLinkColorMode, + linkColorMode?: ChartsTypes.chartsSeriesArcdiagramOptionsLinkColorMode, linkedTo?: string, linkOpacity?: float, minLinkWidth?: float, - nodeAlignment?: chartsSeriesOrganizationOptionsNodeAlignment, + nodeAlignment?: ChartsTypes.chartsSeriesOrganizationOptionsNodeAlignment, nodeDistance?: CommonTypes.stringOrNumber, nodePadding?: float, nodeWidth?: CommonTypes.stringOrNumber, @@ -21424,7 +21060,7 @@ and seriesOrganizationOptions<'b, 'a, 'c> = { getExtremesFromAll?: bool, hangingIndent?: float, hangingIndentTranslation?: organizationHangingIndentTranslationValue, - hangingSide?: chartsSeriesOrganizationOptionsHangingSide, + hangingSide?: ChartsTypes.chartsSeriesOrganizationOptionsHangingSide, inactiveOtherPoints?: bool, includeInDataExport?: bool, keys?: array, @@ -21432,12 +21068,12 @@ and seriesOrganizationOptions<'b, 'a, 'c> = { legendSymbol?: optionsLegendSymbolValue, levels?: array, link?: plotOrganizationLinkOptions, - linkColorMode?: chartsSeriesArcdiagramOptionsLinkColorMode, + linkColorMode?: ChartsTypes.chartsSeriesArcdiagramOptionsLinkColorMode, linkedTo?: string, linkOpacity?: float, minLinkWidth?: float, minNodeLength?: float, - nodeAlignment?: chartsSeriesOrganizationOptionsNodeAlignment, + nodeAlignment?: ChartsTypes.chartsSeriesOrganizationOptionsNodeAlignment, nodeDistance?: CommonTypes.stringOrNumber, nodePadding?: float, nodeWidth?: float, @@ -25014,7 +24650,7 @@ and seriesDependencywheelOptions<'b, 'a, 'c> = { label?: seriesLabelOptionsObject<'a, 'b, 'c>, legendSymbol?: optionsLegendSymbolValue, levels?: array, - linkColorMode?: chartsSeriesArcdiagramOptionsLinkColorMode, + linkColorMode?: ChartsTypes.chartsSeriesArcdiagramOptionsLinkColorMode, linkedTo?: string, linkOpacity?: float, minLinkWidth?: float, @@ -27527,7 +27163,7 @@ and seriesArcdiagramOptions<'b, 'a, 'c> = { label?: seriesLabelOptionsObject<'a, 'b, 'c>, legendSymbol?: optionsLegendSymbolValue, levels?: array, - linkColorMode?: chartsSeriesArcdiagramOptionsLinkColorMode, + linkColorMode?: ChartsTypes.chartsSeriesArcdiagramOptionsLinkColorMode, linkedTo?: string, linkOpacity?: float, marker?: pointMarkerOptionsObject, @@ -27919,7 +27555,7 @@ and tooltipPositionerPointObject<'a, 'b, 'c> = { remove: (option, option) => unit, // ⚪ loose — was `boolean | Partial` select: (option, option) => unit, setNestedProperty: (string, string, string) => string, // ⚪ loose — was `T` - setState: (option, option) => unit, + setState: (option, option) => unit, setVisible: (option, option) => unit, tooltipFormatter: string => string, update: (stringOrNumberOrStringOrNumberArrayOrPointOptionsObject<'a, 'b, 'c>, option, option) => unit, // ⚪ loose — was `boolean | Partial` @@ -29263,7 +28899,7 @@ and point<'a, 'b, 'c> = { remove: (option, option) => unit, // ⚪ loose — was `boolean | Partial` select: (option, option) => unit, setNestedProperty: (string, string, string) => string, // ⚪ loose — was `T` - setState: (option, option) => unit, + setState: (option, option) => unit, setVisible: (option, option) => unit, tooltipFormatter: string => string, update: (string, option, option) => unit, // ⚪ loose — was `PointOptionsType` @@ -29306,7 +28942,7 @@ and series<'a, 'b, 'c> = { searchPoint: (string, option) => point<'a, 'b, 'c>, // ⚪ loose — was `PointerEvent` select: option => unit, setData: (array, option, option, option) => unit, // ⚪ loose — was `boolean | Partial` - setState: (option, option) => unit, + setState: (option, option) => unit, setVisible: (option, option) => unit, show: unit => unit, translate: unit => unit, @@ -29877,7 +29513,7 @@ and chart<'a, 'b, 'c> = { @unboxed and seriesArcDiagramDataLabelsOptionsObjectOrSeriesArcDiagramDataLabelsOptionsObjectArray<'a, 'b, 'c> = SeriesArcDiagramDataLabelsOptionsObject(seriesArcDiagramDataLabelsOptionsObject<'a, 'b, 'c>) | SeriesArcDiagramDataLabelsOptionsObjectArr(array>) @unboxed and plotAoDataLabelsOptionsOrPlotAoDataLabelsOptionsArray<'a, 'b, 'c> = PlotAoDataLabelsOptions(plotAoDataLabelsOptions<'a, 'b, 'c>) | PlotAoDataLabelsOptionsArr(array>) @unboxed and plotAdDataLabelsOptionsOrPlotAdDataLabelsOptionsArray<'a, 'b, 'c> = PlotAdDataLabelsOptions(plotAdDataLabelsOptions<'a, 'b, 'c>) | PlotAdDataLabelsOptionsArr(array>) -@unboxed and pointOrPointArray<'a, 'b, 'c> = PointPointArray(point<'a, 'b, 'c>) | PointArr(array>) +@unboxed and pointOrPointArray<'a, 'b, 'c> = Point(point<'a, 'b, 'c>) | PointArr(array>) @unboxed and stringOrNumberOrStringOrNumberArrayOrPointOptionsObject<'a, 'b, 'c> = Str(string) | Num(float) | Arr(array) | PointOptionsObject(pointOptionsObject<'a, 'b, 'c>) @unboxed and plotAbandsDataLabelsOptionsOrPlotAbandsDataLabelsOptionsArray<'a, 'b, 'c> = PlotAbandsDataLabelsOptions(plotAbandsDataLabelsOptions<'a, 'b, 'c>) | PlotAbandsDataLabelsOptionsArr(array>) @unboxed and boolOrAxisCrosshairOptions<'a, 'b, 'c> = Bool(bool) | AxisCrosshairOptions(axisCrosshairOptions<'a, 'b, 'c>) @@ -30968,149 +30604,6 @@ module AxisOptions = { external fromZAxisOptions: zAxisOptions<'a, 'b, 'c> => t = "%identity" external asZAxisOptions: t => (zAxisOptions<'a, 'b, 'c>) = "%identity" } -type defsArrowAttributesOptions = { - id?: string, - markerHeight?: float, - markerWidth?: float, - refX?: float, - refY?: float, -} -type defsReverseArrowOptions = { - attributes?: defsArrowAttributesOptions, - tagName?: string, -} -module ChartsDefsOptionsReverseArrow = { - type t - external fromASTNode: astNode => t = "%identity" - external asASTNode: t => (astNode) = "%identity" - external fromDefsReverseArrowOptions: defsReverseArrowOptions => t = "%identity" - external asDefsReverseArrowOptions: t => (defsReverseArrowOptions) = "%identity" -} -type chartsDefsOptionsArrow_t -type rec defsArrowOptions = { - attributes?: defsArrowAttributesOptions, - children?: array, - tagName?: string, -} -and defsOptions = { - arrow?: chartsDefsOptionsArrow_t, - @as("reverse-arrow") reverseArrow?: ChartsDefsOptionsReverseArrow.t, -} -module ChartsDefsOptionsArrow = { - type t = chartsDefsOptionsArrow_t - external fromASTNode: astNode => t = "%identity" - external asASTNode: t => (astNode) = "%identity" - external fromDefsArrowOptions: defsArrowOptions => t = "%identity" - external asDefsArrowOptions: t => (defsArrowOptions) = "%identity" -} -type dragDropGuideBoxOptionsObject = { - className?: string, - color?: string, // ⚪ loose — was `ColorType` - cursor?: string, - lineColor?: string, - lineWidth?: float, - zIndex?: int, -} -type plotOptionsSeriesDragDropGuideBoxOptions = { - default?: dragDropGuideBoxOptionsObject, -} -type exportingButtonsOptionsObject = { - align?: alignValue, - buttonSpacing?: float, - className?: string, - enabled?: bool, - height?: float, - menuClassName?: string, - menuItems?: array, - onclick?: JsFn.t, - symbol?: string, - symbolFill?: ColorType.t, - symbolSize?: float, - symbolStroke?: string, - symbolStrokeWidth?: float, - symbolX?: float, - symbolY?: float, - text?: string, - theme?: exportingButtonsContextButtonThemeOptions, - titleKey?: string, - useHTML?: bool, - verticalAlign?: verticalAlignValue, - width?: float, - x?: float, - y?: float, -} -type exportingButtonsOptions = { - contextButton?: exportingButtonsOptionsObject, -} -type exportingMenuItemDefinitionsDownloadCSVOptions = { - textKey?: string, -} -type exportingMenuItemDefinitionsSeparatorOptions = { - separator?: bool, -} -type exportingMenuItemDefinitionsOptions = { - downloadCSV?: exportingMenuItemDefinitionsDownloadCSVOptions, - downloadJPEG?: exportingMenuItemDefinitionsDownloadCSVOptions, - downloadPDF?: exportingMenuItemDefinitionsDownloadCSVOptions, - downloadPNG?: exportingMenuItemDefinitionsDownloadCSVOptions, - downloadSVG?: exportingMenuItemDefinitionsDownloadCSVOptions, - downloadXLS?: exportingMenuItemDefinitionsDownloadCSVOptions, - printChart?: exportingMenuItemDefinitionsDownloadCSVOptions, - separator?: exportingMenuItemDefinitionsSeparatorOptions, - viewData?: exportingMenuItemDefinitionsDownloadCSVOptions, - viewFullscreen?: exportingMenuItemDefinitionsDownloadCSVOptions, -} -type exportingMenuObject<'a, 'b, 'c> = { - onclick?: @this ((chart<'a, 'b, 'c>, option, option>) => option), // ⚠️ REVIEW — was `Event | Dictionary` — match the real type by hand - separator?: bool, - text?: string, - textKey?: string, -} -module ChartsSeriesMapDataGeometryOptionsCoordinates = { - type t - external fromArray: array => t = "%identity" - external asArray: t => (array) = "%identity" - external fromLonLatArrays: array> => t = "%identity" - external asLonLatArrays: t => (array>) = "%identity" -} -type seriesMapDataGeometryOptions = { - coordinates?: array, - @as("type") type_?: mapGeometryTypeValue, -} -module ChartsSeriesMapDataOptionsGeometry = { - type t - external fromJSON: JSON.t => t = "%identity" - external asJSON: t => (JSON.t) = "%identity" - external fromSeriesMapDataGeometryOptions: seriesMapDataGeometryOptions => t = "%identity" - external asSeriesMapDataGeometryOptions: t => (seriesMapDataGeometryOptions) = "%identity" -} -type seriesMapDataOptions<'a, 'b, 'c> = { - color?: ColorType.t, - dataLabels?: dataLabelsOptions, - drilldown?: string, - events?: pointEventsOptionsObject<'a, 'b, 'c>, - geometry?: ChartsSeriesMapDataOptionsGeometry.t, - id?: string, - labelrank?: float, - middleX?: float, - middleY?: float, - name?: string, - path?: string, - states?: seriesStatesOptionsObject, - value?: float, -} -type blendChartProps<'a, 'b, 'c> = { - allowChartUpdate?: bool, - constructorType?: chartsBlendChartPropsConstructorType, - containerProps?: Dict.t, // 🛑 BROKEN — contains `any` - highcharts?: InstanceTypes.highchartsModule, - immutable?: bool, - options?: options<'a, 'b, 'c>, - updateArgs?: array, - callback?: chart<'a, 'b, 'c> => unit, -} -@set_index external blendChartPropsSet: (blendChartProps<'a, 'b, 'c>, string, JSON.t) => unit = "" -@unboxed type stringOrChartsColorsConfig = Str(string) | ChartsColorsConfig(chartsColorsConfig) module SetStateAction = { type t external fromPoint: point<'a, 'b, 'c> => t = "%identity" diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/SankeyLink.res b/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/SankeyLink.res index 6165d042..7049da94 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/SankeyLink.res +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/SankeyLink.res @@ -7,9 +7,9 @@ type props = { targetControlX?: float, linkWidth?: float, index?: int, - payload?: HighchartsSharedTypes.sankeyLink, - linkColors?: array, - onMouseEnter?: (HighchartsSharedTypes.sankeyTooltipData, ReactEvent.Mouse.t) => unit, + payload?: ChartsTypes.sankeyLink, + linkColors?: array, + onMouseEnter?: (ChartsTypes.sankeyTooltipData, ReactEvent.Mouse.t) => unit, onMouseLeave?: unit => unit, } diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/SankeyNode.res b/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/SankeyNode.res index b4e64c74..eccb76f5 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/SankeyNode.res +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/SankeyNode.res @@ -4,10 +4,10 @@ type props = { width?: float, height?: float, index?: int, - payload?: HighchartsSharedTypes.chartsPayloadConfig, + payload?: ChartsTypes.chartsPayloadConfig, containerWidth?: float, - nodeColors?: array, - onMouseEnter?: (HighchartsSharedTypes.sankeyTooltipData, ReactEvent.Mouse.t) => unit, + nodeColors?: array, + onMouseEnter?: (ChartsTypes.sankeyTooltipData, ReactEvent.Mouse.t) => unit, onMouseLeave?: unit => unit, } diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/SidebarTypes.res b/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/SidebarTypes.res index 1d4da1f9..9eeb2e9c 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/SidebarTypes.res +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/SidebarTypes.res @@ -124,41 +124,3 @@ type responsiveMobileNavigationTokens = { sm: mobileNavigationTokenType, lg: mobileNavigationTokenType, } -type sidebarProps<'a> = { - showLeftPanel?: bool, - children: React.element, - data: Nullable.t>, - leftPanel?: SharedTypes.leftPanelInfo, - topbar: React.element, - footer?: React.element, - sidebarTopSlot?: React.element, - sidebarCollapseKey?: string, - merchantInfo?: SharedTypes.merchantInfo, - rightActions?: React.element, - enableTopbarAutoHide?: bool, - isTopbarVisible?: bool, - onTopbarVisibilityChange?: bool => unit, - defaultIsTopbarVisible?: bool, - isExpanded?: bool, - onExpandedChange?: bool => unit, - onSidebarStateChange?: sidebarStateChangeType => unit, - defaultIsExpanded?: bool, - panelOnlyMode?: bool, - disableIntermediateState?: bool, - iconOnlyMode?: bool, - hideOnIconOnlyToggle?: bool, - showPrimaryActionButton?: bool, - primaryActionButtonProps?: ReactTypes.reactSidebarPropsPrimaryActionButtonPropsConfig, - activeItem?: Nullable.t, - onActiveItemChange?: Nullable.t => unit, - defaultActiveItem?: Nullable.t, - onHoveringChange?: bool => unit, - showHierarchyLines?: bool, - hierarchyLineBorderRadius?: string, - expandedItems?: DirectoryTypes.DirectoryExpandedItems.t, - defaultExpandedItems?: DirectoryTypes.DirectoryExpandedItems.t, - onExpandedItemsChange?: array => unit, - onItemExpand?: (DirectoryTypes.navbarItem, string) => 'a, - enableVirtualization?: bool, - virtualization?: DirectoryTypes.directoryVirtualizationConfig, -} diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/SidebarV2Types.res b/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/SidebarV2Types.res index 4e4e2c31..d3b04db4 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/SidebarV2Types.res +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/SidebarV2Types.res @@ -201,39 +201,6 @@ type secondarySidebarInfo = { buttonProps?: ReactTypes.reactSidebarPropsPrimaryActionButtonPropsConfig, footerSlot?: React.element, } -type sidebarV2Props<'a> = { - height?: string, - children?: React.element, - data?: Nullable.t>, - secondarySidebar?: secondarySidebarInfo, - topbar?: React.element, - footer?: React.element, - sidebarTopSlot?: React.element, - sidebarCollapseKey?: string, - merchantInfo?: SharedTypes.merchantInfo, - rightActions?: React.element, - enableTopbarAutoHide?: bool, - isTopbarVisible?: bool, - onTopbarVisibilityChange?: bool => unit, - defaultIsTopbarVisible?: bool, - isExpanded?: bool, - onExpandedChange?: bool => unit, - onSidebarStateChange?: sidebarV2SidebarV2PropsOnSidebarStateChange => unit, - defaultIsExpanded?: bool, - showMobilePrimaryActionButton?: bool, - mobilePrimaryActionButtonProps?: ReactTypes.reactSidebarPropsPrimaryActionButtonPropsConfig, - activeItem?: Nullable.t, - onActiveItemChange?: Nullable.t => unit, - defaultActiveItem?: Nullable.t, - showHierarchyLines?: bool, - hierarchyLineBorderRadius?: string, - expandedItems?: DirectoryTypes.DirectoryExpandedItems.t, - defaultExpandedItems?: DirectoryTypes.DirectoryExpandedItems.t, - onExpandedItemsChange?: array => unit, - onItemExpand?: (DirectoryTypes.navbarItem, string) => 'a, - enableVirtualization?: bool, - virtualization?: DirectoryTypes.directoryVirtualizationConfig, -} type sidebarV2MerchantInfoItemsConfig = { label: string, value: string, diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/StatCard.res b/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/StatCard.res index 4e0104d5..c9dd32a2 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/StatCard.res +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/StatCard.res @@ -15,7 +15,7 @@ type props = { minWidth?: string, xAxis?: StatCardTypes.statCardAxisConfig, yAxis?: StatCardTypes.statCardAxisConfig, - valueFormatter?: HighchartsSharedTypes.axisType, + valueFormatter?: ChartsTypes.axisType, height?: string, direction?: StatCardTypes.statCardDirection, skeleton?: StatCardTypes.statCardSkeletonProps, diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/StatCardTypes.res b/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/StatCardTypes.res index ba3fd1e5..9d2cc814 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/StatCardTypes.res +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/StatCardTypes.res @@ -151,7 +151,7 @@ type chartDataPoint = { name: string, } type statCardAxisConfig = { - @as("type") type_?: HighchartsSharedTypes.axisType, + @as("type") type_?: ChartsTypes.axisType, tickFormatter?: CommonTypes.stringOrNumber => string, dateOnly?: bool, useUTC?: bool, diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/Tag.res b/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/Tag.res index 63fb30b3..c0abb39b 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/Tag.res +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/Tag.res @@ -98,7 +98,7 @@ type props = { shape?: TagsTypes.tagShape, leftSlot?: React.element, rightSlot?: React.element, - splitTagPosition?: HighchartsSharedTypes.chartsSeriesOrganizationOptionsHangingSide, + splitTagPosition?: ChartsTypes.chartsSeriesOrganizationOptionsHangingSide, showSkeleton?: bool, skeletonVariant?: SkeletonTypes.skeletonVariant, ref?: React.ref>, diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/_REPORT.md b/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/_REPORT.md index 89816767..64fd2d00 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/_REPORT.md +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.37/bindings/_REPORT.md @@ -4,7 +4,7 @@ **253** function binding(s) → `BlendDesignSystemBindings.res`. -**3365** shared types deduplicated into **76** `*Types.res` modules (referenced qualified — no per-file redeclaration). +**3343** shared types deduplicated into **77** `*Types.res` modules (referenced qualified — no per-file redeclaration). ## 🔤 Constructor name collisions @@ -29,15 +29,11 @@ A bare constant, an identity payload and a `@tag`-injected object are different | `EditorSharedTypes` | `Text` | `1` / `"text"` | `TextMouseStyle`, `TextTagType`, `TextRenderMinimap` | | `EditorSharedTypes` | `WordWrapColumn` | `152` / `"wordWrapColumn"` | `WordWrapColumnWordWrap`, `WordWrapColumnEditorOption` | | `DataTableTypes` | `DateRange` | `"date_range"` / `"dateRange"` | `DateRangeColumnType`, `DateRangeTypeType`, `DateRangeFilterComponent` | -| `HighchartsSharedTypes` | `Point` | `"point"` / `(payload, passed through)` / `"Point"` | `PointConstructorType`, `PointObjectScope`, `PointPointArray` | -| `HighchartsSharedTypes` | `Pointer` | `"pointer"` / `"Pointer"` | `PointerConstructorType`, `PointerCursorValue` | -| `HighchartsSharedTypes` | `Polygon` | `"polygon"` / `"Polygon"` | `PolygonTypeValue`, `PolygonInterpolationValue` | -| `HighchartsSharedTypes` | `Series` | `"series"` / `"Series"` | `SeriesConstructorType`, `SeriesWithinValue` | +| `ChartsTypes` | `Point` | `"point"` / `"Point"` | `PointConstructorType`, `PointObjectScope` | | `HighchartsSharedTypes` | `Solid` | `"Solid"` / `"solid"` | `SolidStyleValue`, `SolidShapeValue` | -| `HighchartsSharedTypes` | `TriangleDown` | `"triangle-down"` / `"triangleDown"` | `TriangleDownConstructorType`, `TriangleDownKeyValue` | -| `HighchartsSharedTypes` | `Value` | `""` / `"!="` / `"value"` | `ValueAnnotationDraggable`, `ValuePointSetState`, `ValueSeriesSetState`, `ValueOptionsCompare`, `ValueOptionsGapUnit`, `ValueOptionsOperator` | +| `HighchartsSharedTypes` | `Value` | `""` / `"!="` / `"value"` | `ValueAnnotationDraggable`, `ValueOptionsCompare`, `ValueGapUnit`, `ValueOptionsOperator` | -### Left as-is — same name, same runtime representation (145) +### Left as-is — same name, same runtime representation (142) These produce the same runtime shape whichever definition wins, so renaming them would churn every consumer for no correctness gain. Listed because the ambiguity is still there to read. @@ -49,12 +45,13 @@ These produce the same runtime shape whichever definition wins, so renaming them - `DataTableTypes`: `Avatar`, `Custom`, `Date`, `Decimal`, `Dropdown`, `Error`, `Multiselect`, `Number`, `Percentage`, `Primary`, `Progress`, `ReactElement`, `Secondary`, `Select`, `Slider`, `Success`, `Tag`, `Text`, `Warning` - `DateRangePickerTypes`: `Custom` - `ProgressBarTypes`: `Segmented`, `Solid` -- `HighchartsSharedTypes`: `All`, `Allow`, `Alt`, `AnnotationMockPointOptionsObject`, `Arc`, `Area`, `Arr`, `Auto`, `Bool`, `Bottom`, `Callout`, `Category`, `Center`, `Chart`, `Circle`, `Close`, `CssObject`, `Ctrl`, `Day`, `Diamond`, `End`, `Flap`, `Fn`, `High`, `Horizontal`, `Hover`, `Inactive`, `Inside`, `Justify`, `Left` … +35 more +- `ChartsTypes`: `Chart`, `End`, `Hover`, `Inactive`, `Normal`, `Offset`, `Right`, `Select`, `Top`, `Value` - `SkeletonTypes`: `Circle` - `UploadTypes`: `Error`, `Success` - `ButtonV2Types`: `Default`, `Disabled` - `TooltipV2Types`: `Left`, `Right` - `CommonTypes`: `Arr`, `Auto`, `Bool`, `Fn`, `Interval`, `N0`, `N1`, `N2`, `N3`, `N4`, `Num`, `Off`, `On`, `Relative`, `Str`, `StrArr` +- `HighchartsSharedTypes`: `All`, `Allow`, `Alt`, `AnnotationMockPointOptionsObject`, `Arc`, `Area`, `Arr`, `Auto`, `Bool`, `Callout`, `Category`, `Center`, `Chart`, `Circle`, `Close`, `CssObject`, `Ctrl`, `Day`, `Diamond`, `Fn`, `High`, `Horizontal`, `Inside`, `Justify`, `Left`, `Linear`, `Logarithmic`, `Low`, `Meta`, `Middle` … +22 more - `SliderTypes`: `Bottom`, `Inline`, `Top` ## 📦 Dependencies diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.37/metrics.json b/benchmark/baselines/_juspay_blend-design-system_0.0.37/metrics.json index 254e0eb4..4253ef3a 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.37/metrics.json +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.37/metrics.json @@ -11,5 +11,5 @@ }, "functions": 253, "classes": 0, - "files": 306 + "files": 307 } diff --git a/benchmark/baselines/_juspay_blend-design-system_0.0.37/package-lock.json b/benchmark/baselines/_juspay_blend-design-system_0.0.37/package-lock.json index b11626b9..4a7a387a 100644 --- a/benchmark/baselines/_juspay_blend-design-system_0.0.37/package-lock.json +++ b/benchmark/baselines/_juspay_blend-design-system_0.0.37/package-lock.json @@ -20,8 +20,6 @@ }, "node_modules/@babel/runtime": { "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.7.tgz", - "integrity": "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==", "license": "MIT", "engines": { "node": ">=6.9.0" @@ -29,8 +27,6 @@ }, "node_modules/@dnd-kit/accessibility": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@dnd-kit/accessibility/-/accessibility-3.1.1.tgz", - "integrity": "sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw==", "license": "MIT", "dependencies": { "tslib": "^2.0.0" @@ -41,8 +37,6 @@ }, "node_modules/@dnd-kit/core": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/@dnd-kit/core/-/core-6.3.1.tgz", - "integrity": "sha512-xkGBRQQab4RLwgXxoqETICr6S5JlogafbhNsidmrkVv2YRs5MLwpjoF2qpiGjQt8S9AoxtIV603s0GIUpY5eYQ==", "license": "MIT", "dependencies": { "@dnd-kit/accessibility": "^3.1.1", @@ -56,8 +50,6 @@ }, "node_modules/@dnd-kit/sortable": { "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@dnd-kit/sortable/-/sortable-10.0.0.tgz", - "integrity": "sha512-+xqhmIIzvAYMGfBYYnbKuNicfSsk4RksY2XdmJhT+HAC01nix6fHCztU68jooFiMUB01Ky3F0FyOvhG/BZrWkg==", "license": "MIT", "dependencies": { "@dnd-kit/utilities": "^3.2.2", @@ -70,8 +62,6 @@ }, "node_modules/@dnd-kit/utilities": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@dnd-kit/utilities/-/utilities-3.2.2.tgz", - "integrity": "sha512-+MKAJEOfaBe5SmV6t34p80MMKhjvUz0vRrvVJbPT0WElzaOJ/1xs+D+KDv+tD/NE5ujfrChEcshd4fLn0wpiqg==", "license": "MIT", "dependencies": { "tslib": "^2.0.0" @@ -82,8 +72,6 @@ }, "node_modules/@emotion/is-prop-valid": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.4.0.tgz", - "integrity": "sha512-QgD4fyscGcbbKwJmqNvUMSE02OsHUa+lAWKdEUIJKgqe5IwRSKd7+KhibEWdaKwgjLj0DRSHA9biAIqGBk05lw==", "license": "MIT", "dependencies": { "@emotion/memoize": "^0.9.0" @@ -91,14 +79,10 @@ }, "node_modules/@emotion/memoize": { "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz", - "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==", "license": "MIT" }, "node_modules/@floating-ui/core": { "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.8.0.tgz", - "integrity": "sha512-0CIZ5itps/8x7BG8dEIhs53BvCUH2PCoogtakwRTut+Arm58sJooJ0AuZhLw2HJYIR5cMLNPBSS728sPho2khQ==", "license": "MIT", "dependencies": { "@floating-ui/utils": "^0.2.12" @@ -106,8 +90,6 @@ }, "node_modules/@floating-ui/dom": { "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.8.0.tgz", - "integrity": "sha512-yXSrzeHZBTZadLOlfyhCkJHNeLJnHRnRInwdZ40L7ZiaAtrBwoYlsDrX3v5zB1Utk7CLfzcOVnVVWoXEky7Ceg==", "license": "MIT", "dependencies": { "@floating-ui/core": "^1.8.0", @@ -116,8 +98,6 @@ }, "node_modules/@floating-ui/react-dom": { "version": "2.1.9", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.9.tgz", - "integrity": "sha512-JDjEFGCpImxDCA7JJKviA0M9+RtmJdj0m/NVU5IMgBK+AmZouAQQ7/+2GLH0GXXY0YMw9oXPB8hKdbPYg5QLYg==", "license": "MIT", "dependencies": { "@floating-ui/dom": "^1.8.0" @@ -129,14 +109,10 @@ }, "node_modules/@floating-ui/utils": { "version": "0.2.12", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.12.tgz", - "integrity": "sha512-HpCo8tmWzLVad5s2d19EhAz5zqrrQ6s69qd6moPMQvkOuSwDT1YgRfWSVuc4ennqrgv3OHppiOGMQ7oC13yIww==", "license": "MIT" }, "node_modules/@juspay/blend-design-system": { "version": "0.0.37", - "resolved": "https://registry.npmjs.org/@juspay/blend-design-system/-/blend-design-system-0.0.37.tgz", - "integrity": "sha512-HtdDLeFaFDg/zSLXdezYBhjkkzKwShDgb+BpYcDZQ6ZCYnNKEfxiDSBnReRYAYsRVfr0iTkLy62+LG0MihSMIQ==", "license": "MIT", "dependencies": { "@dnd-kit/core": "^6.3.1", @@ -172,8 +148,6 @@ }, "node_modules/@monaco-editor/loader": { "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@monaco-editor/loader/-/loader-1.7.0.tgz", - "integrity": "sha512-gIwR1HrJrrx+vfyOhYmCZ0/JcWqG5kbfG7+d3f/C1LXk2EvzAbHSg3MQ5lO2sMlo9izoAZ04shohfKLVT6crVA==", "license": "MIT", "dependencies": { "state-local": "^1.0.6" @@ -181,8 +155,6 @@ }, "node_modules/@monaco-editor/react": { "version": "4.7.0", - "resolved": "https://registry.npmjs.org/@monaco-editor/react/-/react-4.7.0.tgz", - "integrity": "sha512-cyzXQCtO47ydzxpQtCGSQGOC8Gk3ZUeBXFAxD+CWXYFo5OqZyZUonFl0DwUlTyAfRHntBfw2p3w4s9R6oe1eCA==", "license": "MIT", "dependencies": { "@monaco-editor/loader": "^1.5.0" @@ -195,8 +167,6 @@ }, "node_modules/@phosphor-icons/react": { "version": "2.1.10", - "resolved": "https://registry.npmjs.org/@phosphor-icons/react/-/react-2.1.10.tgz", - "integrity": "sha512-vt8Tvq8GLjheAZZYa+YG/pW7HDbov8El/MANW8pOAz4eGxrwhnbfrQZq0Cp4q8zBEu8NIhHdnr+r8thnfRSNYA==", "license": "MIT", "engines": { "node": ">=10" @@ -208,20 +178,14 @@ }, "node_modules/@radix-ui/number": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.3.tgz", - "integrity": "sha512-Road2bidD0uu/1BGDOWNdPI06g0lIRy6IF9GZcIrDK2KGItfor8IQwQa+yM2ERgHM1MmHxaxpTzk0/Jp42lNfA==", "license": "MIT" }, "node_modules/@radix-ui/primitive": { "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.7.tgz", - "integrity": "sha512-rqWnm76nYT8HoNNqEjpgJ7Pw/DrBj5iBTrmEPo6HTX5+VJyBNOqTdv4g89G63HuR5g0AaENoAcH7Is5fF2kZ8Q==", "license": "MIT" }, "node_modules/@radix-ui/react-accessible-icon": { "version": "1.1.15", - "resolved": "https://registry.npmjs.org/@radix-ui/react-accessible-icon/-/react-accessible-icon-1.1.15.tgz", - "integrity": "sha512-WTQwcAvQf5sOcuUyi90lKPbhwcvQ+j55cjrSmeaN+L2vKU3DooOvlKw2MDeiJ5IkV5N905KW0/fGojKOBhD11A==", "license": "MIT", "dependencies": { "@radix-ui/react-visually-hidden": "1.2.11" @@ -243,8 +207,6 @@ }, "node_modules/@radix-ui/react-accordion": { "version": "1.2.20", - "resolved": "https://registry.npmjs.org/@radix-ui/react-accordion/-/react-accordion-1.2.20.tgz", - "integrity": "sha512-jDhG9FvAEnlhnjrsINbNXcUa4G+L1KqSkJSunkbKEzFRcAb52jvM0PjPxPRvhe1HNc5F5yc0yzzWeeqlH4yBIg==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.7", @@ -274,8 +236,6 @@ }, "node_modules/@radix-ui/react-alert-dialog": { "version": "1.1.23", - "resolved": "https://registry.npmjs.org/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.1.23.tgz", - "integrity": "sha512-VAYOiQRqj3GPpYJE0I9J+X8Ip05cyVlNdKOFeiGS2Ou1HHGfpl0BxOyZm6nmVDyU+W+NF3/XLzmjHmVGydhwgA==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.7", @@ -301,8 +261,6 @@ }, "node_modules/@radix-ui/react-arrow": { "version": "1.1.15", - "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.15.tgz", - "integrity": "sha512-v4zggRcjadnI+ClKDuijlQEW4tw3NoaeHc/PwpKnLoLLKNUG4InLegkstooLcRIUWCs+8L22dGURCVuFfOKfnA==", "license": "MIT", "dependencies": { "@radix-ui/react-primitive": "2.1.10" @@ -324,8 +282,6 @@ }, "node_modules/@radix-ui/react-aspect-ratio": { "version": "1.1.15", - "resolved": "https://registry.npmjs.org/@radix-ui/react-aspect-ratio/-/react-aspect-ratio-1.1.15.tgz", - "integrity": "sha512-fy+dyVR+90nelK8rqIznFlxzx7uPcGbhxH8Nfr2bHb4UfSe+e3hklOC0luK0hDwVwnRX7xTRySpsrQVeW+/oNQ==", "license": "MIT", "dependencies": { "@radix-ui/react-primitive": "2.1.10" @@ -347,8 +303,6 @@ }, "node_modules/@radix-ui/react-avatar": { "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-avatar/-/react-avatar-1.2.6.tgz", - "integrity": "sha512-4ULOTJ/mqy2hT9GlWa/MFHxHSvH3nJzHnZM1waNsc5Bonv7i70aNenghXmD97S6OJ81ekXONGGt4nT1r0PfEdA==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.7", @@ -375,8 +329,6 @@ }, "node_modules/@radix-ui/react-checkbox": { "version": "1.3.11", - "resolved": "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.3.11.tgz", - "integrity": "sha512-Gnptr9pDDQxD3hgq2dtPbtrp/c2qH1mBwIzw3X/ivrMb2e1t0jMTi606fVEqFPaQR1ggXIVQWKj3P2WW9v7zGQ==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.7", @@ -404,8 +356,6 @@ }, "node_modules/@radix-ui/react-collapsible": { "version": "1.1.20", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.1.20.tgz", - "integrity": "sha512-mcGesGplBnzN2sbvJETzpCNfSMyPnb29q1GRLU+Ib7bJrpIG2ywmRoh2V5VbA2uNvKikKUlVbAPks7JDjz4A8Q==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.7", @@ -434,8 +384,6 @@ }, "node_modules/@radix-ui/react-collection": { "version": "1.1.15", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.15.tgz", - "integrity": "sha512-9W+B9NPF0NaaPh/1NJd3+KqsnlLqU9H7T2rvww+fp+T/evVXdNAyYcnfRQZFOjkR1ajQp3yORlqnI8soawLvNA==", "license": "MIT", "dependencies": { "@radix-ui/react-compose-refs": "1.1.5", @@ -460,8 +408,6 @@ }, "node_modules/@radix-ui/react-compose-refs": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.5.tgz", - "integrity": "sha512-+48PbAAbq3didjJxa+OaWY2ZwgAKsNiRGyeHKszblZMQ+kcpd9pAaT11cMkGEie0vsOi3QdeTE6d5Fe3Gn61kA==", "license": "MIT", "peerDependencies": { "@types/react": "*", @@ -475,8 +421,6 @@ }, "node_modules/@radix-ui/react-context": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.2.2.tgz", - "integrity": "sha512-RHCUGwKHDr0hDGg4X7ma4JG4/+12qxw8rkh5QKdDldlCvtja6nUx1Ef/8HVrJze81lEsgLQlqjzjGNHantgnQA==", "license": "MIT", "peerDependencies": { "@types/react": "*", @@ -490,8 +434,6 @@ }, "node_modules/@radix-ui/react-context-menu": { "version": "2.3.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context-menu/-/react-context-menu-2.3.7.tgz", - "integrity": "sha512-CtXP35dxaB5T3zXSd+E3uHe/QpXcpYnZmxp6OaIbfthtfW4wyb77M23BG+bwIJDtsMwEP/YssdsmNyZu7jhWew==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.7", @@ -517,8 +459,6 @@ }, "node_modules/@radix-ui/react-dialog": { "version": "1.1.23", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.23.tgz", - "integrity": "sha512-Ksw4WeROkO4rC9k/onilX/Ao2Cr1ku1unMNH+XSCcP4jSXYu7HDsg9n4ojMjVb22XpYjAQ9qfrFlVbru1vXDUA==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.7", @@ -554,8 +494,6 @@ }, "node_modules/@radix-ui/react-direction": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.4.tgz", - "integrity": "sha512-5pzg4FGQNpExhnhT2zlrP1wZFaYCd1K0nYWoFAdcYoYK868IEigqMX3B3f8yIoRlAhAeDWciLI6ZdCKHF9P4Vg==", "license": "MIT", "peerDependencies": { "@types/react": "*", @@ -569,8 +507,6 @@ }, "node_modules/@radix-ui/react-dismissable-layer": { "version": "1.1.19", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.19.tgz", - "integrity": "sha512-8g4pfOL9HoKKLWGiypT+dphVqjFfmcXO5GBnhsG6zI+lxAx/8feQpr+1LSN8Re3hiZ+XkLNS4O9ztK11/LzQ6w==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.7", @@ -596,8 +532,6 @@ }, "node_modules/@radix-ui/react-dropdown-menu": { "version": "2.1.24", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.24.tgz", - "integrity": "sha512-geq8l2rJkxvkXsT9RMgtUE3P8pITFpTsvYpbySi1IH4fZEABD/Gp85myayFgxk0ktljGMJnCbeFkyTusvSvv7g==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.7", @@ -625,8 +559,6 @@ }, "node_modules/@radix-ui/react-focus-guards": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.6.tgz", - "integrity": "sha512-RNOJjfZMTyBM6xYmV3IVGXkPjIhcBAuv48POevAXwrGJhkWZ9p1rFoIS1JFooPuT193AZmRsCPhpoVJxx6OPoQ==", "license": "MIT", "peerDependencies": { "@types/react": "*", @@ -640,8 +572,6 @@ }, "node_modules/@radix-ui/react-focus-scope": { "version": "1.1.16", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.16.tgz", - "integrity": "sha512-wmRZ2WWLvmt6KHy2rNPOdPUjwq5xOHY02+m+udwJTn0aNIox/rkskAvJTyTLGhPK6KgrUjlJUJpgmx/+wFiFIQ==", "license": "MIT", "dependencies": { "@radix-ui/react-compose-refs": "1.1.5", @@ -665,8 +595,6 @@ }, "node_modules/@radix-ui/react-form": { "version": "0.1.16", - "resolved": "https://registry.npmjs.org/@radix-ui/react-form/-/react-form-0.1.16.tgz", - "integrity": "sha512-Q4TLEn2A7TAypxwmd6R9EwrlXDvkfYSDMrq9/887AXAGh+G1rH+kYJKSTv+Si9Y0JPKTwKYv6PviAJosysNimA==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.7", @@ -693,8 +621,6 @@ }, "node_modules/@radix-ui/react-hover-card": { "version": "1.1.23", - "resolved": "https://registry.npmjs.org/@radix-ui/react-hover-card/-/react-hover-card-1.1.23.tgz", - "integrity": "sha512-H8qONfZd3ltrU3+jHCIgITbWo6e1iTKvP9DHdrvYbX48ooRM5FjEDTn16AMwdfuOGkWdZEhpl3PLL/Wk/AnHDQ==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.7", @@ -724,8 +650,6 @@ }, "node_modules/@radix-ui/react-id": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.4.tgz", - "integrity": "sha512-TMQp2llA+RYn7JcjnrMnz7wN4pcVttPZnRZo52PLQsoLVKzNlVwUeHmfePgTgRluXFvlD3GD5g5MOVVTJCO0qA==", "license": "MIT", "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.4" @@ -742,8 +666,6 @@ }, "node_modules/@radix-ui/react-label": { "version": "2.1.15", - "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.1.15.tgz", - "integrity": "sha512-o/rdYEwZTTo5tjknnPeyQFU45kUC4i/XyeDPP+HGyi6XqpOP6Zf5Ya5vh/Yfe9Id5JiuWnnAx2XqIeD3UYZt0g==", "license": "MIT", "dependencies": { "@radix-ui/react-primitive": "2.1.10" @@ -765,8 +687,6 @@ }, "node_modules/@radix-ui/react-menu": { "version": "2.1.24", - "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.24.tgz", - "integrity": "sha512-uW7RVuU6Lp/ZtfeY4b3kL32zccgEWvPv1+cf17ubYzHa9cL8AHokmk36cG/XEiH/smbQvumnieXX9j/e9RqJWA==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.7", @@ -805,8 +725,6 @@ }, "node_modules/@radix-ui/react-menubar": { "version": "1.1.24", - "resolved": "https://registry.npmjs.org/@radix-ui/react-menubar/-/react-menubar-1.1.24.tgz", - "integrity": "sha512-eeVs0vf7cuqXaM0qLQCPcufImiJNVBXdJDLu7ZGYl2732UH23Qat/foNGrr6vYV3/DdTsBqASoggUFgH14OcZA==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.7", @@ -837,8 +755,6 @@ }, "node_modules/@radix-ui/react-navigation-menu": { "version": "1.2.22", - "resolved": "https://registry.npmjs.org/@radix-ui/react-navigation-menu/-/react-navigation-menu-1.2.22.tgz", - "integrity": "sha512-ou7iLEJ+yrhQndkkA4U21XIdS/CS45F4iXIkTZcb6/Ne9EMsOuDudVmCwmDnfFZZ+y1FZqXRNSIgBy+YMvZVZg==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.7", @@ -873,8 +789,6 @@ }, "node_modules/@radix-ui/react-one-time-password-field": { "version": "0.1.16", - "resolved": "https://registry.npmjs.org/@radix-ui/react-one-time-password-field/-/react-one-time-password-field-0.1.16.tgz", - "integrity": "sha512-Tj9P6ntAJEw52oq/F0AGknXR4XncxEt7XU47O3xJQOiWfLzEy3d9gtgKfvjSzGxzHkfL+VzvxGu2KTFsloJqXw==", "license": "MIT", "dependencies": { "@radix-ui/number": "1.1.3", @@ -907,8 +821,6 @@ }, "node_modules/@radix-ui/react-password-toggle-field": { "version": "0.1.11", - "resolved": "https://registry.npmjs.org/@radix-ui/react-password-toggle-field/-/react-password-toggle-field-0.1.11.tgz", - "integrity": "sha512-4gvFnmDXu3dgj21CqsufzIameRvlRd4SBqaWhcrlrNhRo0Y5i/49AmRJYe1fdAM3G2VNBbmin4b0D6cdQocwgw==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.7", @@ -937,8 +849,6 @@ }, "node_modules/@radix-ui/react-popover": { "version": "1.1.23", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.23.tgz", - "integrity": "sha512-mw58MrBlyHWFisTOYignD0vf/3gdcgAR+9of1s9G/38CbFiUwH1nCDkc0AUM9IrXFgN5Ue8n45j9WCgyM1sbiQ==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.7", @@ -974,8 +884,6 @@ }, "node_modules/@radix-ui/react-popper": { "version": "1.3.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.3.7.tgz", - "integrity": "sha512-UsJrrd7w4wuKKTdvd/DNERVlwSlUcyXzjhyDwBk+3aPOsCjOY6ZSbxuw8E6lZTjjfP8Cpd0J8VVkrYUWyGYXyg==", "license": "MIT", "dependencies": { "@floating-ui/react-dom": "^2.0.0", @@ -1006,8 +914,6 @@ }, "node_modules/@radix-ui/react-portal": { "version": "1.1.17", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.17.tgz", - "integrity": "sha512-vKQLcWypUnwZVvfV7UkGahH2g6ySe8M8R+zYBwPrv5byZ9QAW6cQVvNKo7GgmD+p8aYb6D9JBuvy8/WhOno2wQ==", "license": "MIT", "dependencies": { "@radix-ui/react-primitive": "2.1.10", @@ -1030,8 +936,6 @@ }, "node_modules/@radix-ui/react-presence": { "version": "1.1.10", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.10.tgz", - "integrity": "sha512-3wyzCQ6+ubRA+D4uv9m95JYLXxmOHp05qjrkjeA7uKHHtjpPggQzc6DAb0URl7j67oR0K2foO4ip27TiX037Bw==", "license": "MIT", "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.4" @@ -1053,8 +957,6 @@ }, "node_modules/@radix-ui/react-primitive": { "version": "2.1.10", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.10.tgz", - "integrity": "sha512-MucOnzh6hR5mid6VpkbglRAMYMjKLqRnGBbjXkzjK52fuQDd1qbkx78a5P40mkcnVXJdEVxm26E9OPAiUq7nBg==", "license": "MIT", "dependencies": { "@radix-ui/react-slot": "1.3.3" @@ -1076,8 +978,6 @@ }, "node_modules/@radix-ui/react-progress": { "version": "1.1.16", - "resolved": "https://registry.npmjs.org/@radix-ui/react-progress/-/react-progress-1.1.16.tgz", - "integrity": "sha512-5XnomAsoZZCY+KNTxbIghpGqPruZvKFNlvcAljVAOdDRDsH4/OZQxhtwo5wdtoDM5R6MhJBb2sPnDuRFep3lzg==", "license": "MIT", "dependencies": { "@radix-ui/react-context": "1.2.2", @@ -1100,8 +1000,6 @@ }, "node_modules/@radix-ui/react-radio-group": { "version": "1.4.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-radio-group/-/react-radio-group-1.4.7.tgz", - "integrity": "sha512-cgYFEkntCxppHZgtSZ+7vh0wbZQ+IC7PPMw8DSnRG27B6kDd32/Zw0OJt7dGDigCoprMuWHjg2PvUn3PYvPFoQ==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.7", @@ -1131,8 +1029,6 @@ }, "node_modules/@radix-ui/react-roving-focus": { "version": "1.1.19", - "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.19.tgz", - "integrity": "sha512-V9jI6hDjT7l3jsCQD9bLNvDLM3tH/gdbOTp7Tefp3hbbgCGQoK7tUvrWiRlcoBHIZ809ElXwNQwVo0B98LuTXQ==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.7", @@ -1164,8 +1060,6 @@ }, "node_modules/@radix-ui/react-scroll-area": { "version": "1.2.18", - "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.2.18.tgz", - "integrity": "sha512-Zn5Cd171wxsO3Dfg8HaW6RifTb9CYTKQJHs/G4+LN1GfmJpaQMZQyQxMprVPHpaz7QY4l9BxK2JwQuzHsXC8nA==", "license": "MIT", "dependencies": { "@radix-ui/number": "1.1.3", @@ -1195,8 +1089,6 @@ }, "node_modules/@radix-ui/react-select": { "version": "2.3.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.3.7.tgz", - "integrity": "sha512-WFGImkmbzcfxeIwq/+4HvRN0pizBwbwQUED4I13ezQsDdfl38ZntN6TmR8XaSzPBqoCToe8rF75j6NPNDSzhbg==", "license": "MIT", "dependencies": { "@radix-ui/number": "1.1.3", @@ -1239,8 +1131,6 @@ }, "node_modules/@radix-ui/react-separator": { "version": "1.1.15", - "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.1.15.tgz", - "integrity": "sha512-jOLO4lssEzWpoDu7G+Ze4VjwMRUBt291pnZD0gmalREZipnTX3wadQo7Fy48GCTfe14/YRN6rw/rOJqrE85Wxw==", "license": "MIT", "dependencies": { "@radix-ui/react-primitive": "2.1.10" @@ -1262,8 +1152,6 @@ }, "node_modules/@radix-ui/react-slider": { "version": "1.4.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slider/-/react-slider-1.4.7.tgz", - "integrity": "sha512-mTSLf1GC/C0moWjTbvCM6Qn/gBjvlFt1azuWF2v7MN5C3Zq2U2J2lN3ZEYkpujuOU5Ro7A28wkviSxaKnG0BYg==", "license": "MIT", "dependencies": { "@radix-ui/number": "1.1.3", @@ -1295,8 +1183,6 @@ }, "node_modules/@radix-ui/react-slot": { "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.3.3.tgz", - "integrity": "sha512-qx7oqnYbxnK9kYI9m317qmFmEgo6ywqWvbTogdj7cL9p3/yx4M48p7Rnw5z3H890cL/ow/EeWJsuTykeZVXP5Q==", "license": "MIT", "dependencies": { "@radix-ui/react-compose-refs": "1.1.5" @@ -1313,8 +1199,6 @@ }, "node_modules/@radix-ui/react-switch": { "version": "1.3.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.3.7.tgz", - "integrity": "sha512-48tB/4dn2UVLBCYhTu9AuR63IHl73l/qLbLgxd86noTUor4/K4LFDAcYjK+isP5313qxaFpjPVogE7+Y0/V3Kw==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.7", @@ -1341,8 +1225,6 @@ }, "node_modules/@radix-ui/react-tabs": { "version": "1.1.21", - "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.21.tgz", - "integrity": "sha512-UKxJlZid7FVtsk/WTxj4i4uSEgj2Au+KBbS7SQyTlzMhhn+86Cz3tISZdTa87bfEfcuvZezf2ZsxD4xuEKtkog==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.7", @@ -1371,8 +1253,6 @@ }, "node_modules/@radix-ui/react-toast": { "version": "1.2.23", - "resolved": "https://registry.npmjs.org/@radix-ui/react-toast/-/react-toast-1.2.23.tgz", - "integrity": "sha512-ofhyAsYaocRGOs/n0XWdUOSVzEAG6BfrMVM8z0c0kLEWY38w/0WuMFPTJP/HVaZPYkMvHZoKIIhNcjbTCBILPg==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.7", @@ -1405,8 +1285,6 @@ }, "node_modules/@radix-ui/react-toggle": { "version": "1.1.18", - "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle/-/react-toggle-1.1.18.tgz", - "integrity": "sha512-7lonPlKfSacd20GlOBx2ltuVKz9oqWYZz+oMQyOltw6t1y2nyftj2ZmwwUHYn49kqfDWcp8dNZm5NgV+5Z+mug==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.7", @@ -1430,8 +1308,6 @@ }, "node_modules/@radix-ui/react-toggle-group": { "version": "1.1.19", - "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle-group/-/react-toggle-group-1.1.19.tgz", - "integrity": "sha512-OtnwuSVjd1Ofi+AdnvhsjQdyuhCDwYs1w9RyB5BN/OavXOVQo42SYqQjwUnbPnaiPFBpQ9aX70dWeee+v2oBLA==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.7", @@ -1459,8 +1335,6 @@ }, "node_modules/@radix-ui/react-toolbar": { "version": "1.1.19", - "resolved": "https://registry.npmjs.org/@radix-ui/react-toolbar/-/react-toolbar-1.1.19.tgz", - "integrity": "sha512-Ph0IvtYw4VB12ZnZg+YtrGs8yJQsnizwo/zu0R4Y/nWugtJzA7Pg1eWeuDR9+LSqn+xjamss+UOSOJJJ4gx8jw==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.7", @@ -1488,8 +1362,6 @@ }, "node_modules/@radix-ui/react-tooltip": { "version": "1.2.16", - "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.2.16.tgz", - "integrity": "sha512-6EamKFRRnlpdadndbZ6LMwycfwkwPte1B42hs6QA0gYhjaOKqW4PZ4pjaW9UrlDX5eVt/OjncE7BFTPL5nmZhg==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.7", @@ -1523,8 +1395,6 @@ }, "node_modules/@radix-ui/react-use-callback-ref": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.4.tgz", - "integrity": "sha512-R6OUY2e2fA6Yn6s+VSx5KBV6Nx8LQEhu+cz7LCej18rQ1HLyg9PSC9jP/ZNx0o6FAIK9c0F1kHylzSxKsdlkrQ==", "license": "MIT", "peerDependencies": { "@types/react": "*", @@ -1538,8 +1408,6 @@ }, "node_modules/@radix-ui/react-use-controllable-state": { "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.6.tgz", - "integrity": "sha512-uEQJGT97ZA/TgP/Hydw47lHu+/vQj6z/0jA+WeTbK1o9Rx45GImjpD0tc3W5ad3D6XTSR6e1yEO0FvGq6WQfVQ==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.7", @@ -1558,8 +1426,6 @@ }, "node_modules/@radix-ui/react-use-effect-event": { "version": "0.0.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.5.tgz", - "integrity": "sha512-7cshFL8HGS/7HEiHH+9kL9HBwp2sa9yX18Knwek6KYWmXwM7pegMgta2AXMQKI+rq3JnfSj9x8wYqFMTdG1Jgg==", "license": "MIT", "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.4" @@ -1576,8 +1442,6 @@ }, "node_modules/@radix-ui/react-use-escape-keydown": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.5.tgz", - "integrity": "sha512-ge3ipobwSXTj4JyVtswQ7qZj0ZHdtbGuOno/LrgAAeSxtsJ6Vs4Gz5IkPH2bmqpjcLUFoqGhA/mueuIf63UXlA==", "license": "MIT", "dependencies": { "@radix-ui/react-use-callback-ref": "1.1.4" @@ -1594,8 +1458,6 @@ }, "node_modules/@radix-ui/react-use-is-hydrated": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-is-hydrated/-/react-use-is-hydrated-0.1.3.tgz", - "integrity": "sha512-umO/aJ+82CpOnhDZUTbILCQf7kU/g0iv+oGs/Q8jw7IkhWBzaEP4sA268PhFAJTFetbwp3ICc6ktpI4TqtxcIw==", "license": "MIT", "peerDependencies": { "@types/react": "*", @@ -1609,8 +1471,6 @@ }, "node_modules/@radix-ui/react-use-layout-effect": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.4.tgz", - "integrity": "sha512-K20DkRkUwDnxEYMBPcg3Y6voLkEy5p5QQmszZgLngKKiC7dzBR/aEuK3w1qlx2JWDUNH6FluahYdgR3BP+QbYw==", "license": "MIT", "peerDependencies": { "@types/react": "*", @@ -1624,8 +1484,6 @@ }, "node_modules/@radix-ui/react-use-previous": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.4.tgz", - "integrity": "sha512-XoSLhbRbqxFtgJoi2fNHA3C6pDlY34x508vUpUGoFZfvePfHXHbE1lC4FYFMnJWgiCRroSTw6fOsXQoVS9RwZg==", "license": "MIT", "peerDependencies": { "@types/react": "*", @@ -1639,8 +1497,6 @@ }, "node_modules/@radix-ui/react-use-rect": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.4.tgz", - "integrity": "sha512-cSOCh6JlkmfjLyNcLiu2nB4v+nm+dkZ+Q5KHWk/soo4U7ZLiEQFKHK9/YmtBHjfCEaU43IBKQOc4/uJmCaiCTQ==", "license": "MIT", "dependencies": { "@radix-ui/rect": "1.1.3" @@ -1657,8 +1513,6 @@ }, "node_modules/@radix-ui/react-use-size": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.4.tgz", - "integrity": "sha512-D3anSY15EJoxrihpsXI6SMrmmonnQtR2ni7arO+Lfdg3O95b9hNXxONk8jA5C8ANdF/h5HMAxejgs8PWJ6rlhw==", "license": "MIT", "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.4" @@ -1675,8 +1529,6 @@ }, "node_modules/@radix-ui/react-visually-hidden": { "version": "1.2.11", - "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.2.11.tgz", - "integrity": "sha512-NFS86RYYZb4/exihaESBGOpMJFz8MGLAfu3mOBSGByVnVPC9JPASfYubxd/8KbkQK0sYAv8lVQDEQukDX/qXvQ==", "license": "MIT", "dependencies": { "@radix-ui/react-primitive": "2.1.10" @@ -1698,14 +1550,10 @@ }, "node_modules/@radix-ui/rect": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.3.tgz", - "integrity": "sha512-JtyZR+mqgBibTo8xea3B6ZRmzZiM/YeVBtUkas6zMuXjAlfIFIW2FgqeM9eLyvEaYX66vr6DJMK+4U6LV0KhNw==", "license": "MIT" }, "node_modules/@rescript/darwin-arm64": { "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@rescript/darwin-arm64/-/darwin-arm64-12.3.0.tgz", - "integrity": "sha512-tw0E+XcpPoFj3KizsT5qS/5O/dILi0NBZAz5I8ONK+F43qcqDJDDO+Ise45rGoNWhjwt9WOerYnOd0eUe3U9GA==", "cpu": [ "arm64" ], @@ -1768,8 +1616,6 @@ }, "node_modules/@rescript/react": { "version": "0.15.0", - "resolved": "https://registry.npmjs.org/@rescript/react/-/react-0.15.0.tgz", - "integrity": "sha512-qDrrgxYzxRL/pjug617u5Q4+aqEfV5g+GQnd+eCWb0XqPrKucaDzN5rirDUZPg8UrqU/AvCP8Ev5cFd+MJx88A==", "license": "MIT", "peerDependencies": { "@rescript/runtime": ">=12.0.0", @@ -1779,8 +1625,6 @@ }, "node_modules/@rescript/runtime": { "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@rescript/runtime/-/runtime-12.3.0.tgz", - "integrity": "sha512-8SRM2f6+LaWach8NJjYQVCCmu6KYmJCb+437L7YpaUpJBDyUOC1x0FF75shZ/Gid9guKPF3zMHrTNHLuyQkkiQ==", "license": "MIT" }, "node_modules/@rescript/win32-x64": { @@ -1801,8 +1645,6 @@ }, "node_modules/@tanstack/react-virtual": { "version": "3.14.9", - "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.14.9.tgz", - "integrity": "sha512-qZyr0FZDP8rDC4WBhsryIZmAd9bveJvFGUJJtskWaew6/0dTRS6wZxnR6VQ5bY2KwL3LjerrHqQLk3a0GKcPXQ==", "license": "MIT", "dependencies": { "@tanstack/virtual-core": "3.17.7" @@ -1818,8 +1660,6 @@ }, "node_modules/@tanstack/virtual-core": { "version": "3.17.7", - "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.17.7.tgz", - "integrity": "sha512-bp+v10y65sp2H7WpWfIMyxTNfl8ZVfxFTLRjPIFRryi6FV/J33z4IS53WO4pTk36KlvJ4iLiQz+oaydDC1xbcA==", "license": "MIT", "funding": { "type": "github", @@ -1828,26 +1668,18 @@ }, "node_modules/@types/d3-array": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz", - "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==", "license": "MIT" }, "node_modules/@types/d3-color": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", - "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", "license": "MIT" }, "node_modules/@types/d3-ease": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", - "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", "license": "MIT" }, "node_modules/@types/d3-interpolate": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", - "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", "license": "MIT", "dependencies": { "@types/d3-color": "*" @@ -1855,14 +1687,10 @@ }, "node_modules/@types/d3-path": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz", - "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", "license": "MIT" }, "node_modules/@types/d3-scale": { "version": "4.0.9", - "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz", - "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", "license": "MIT", "dependencies": { "@types/d3-time": "*" @@ -1870,8 +1698,6 @@ }, "node_modules/@types/d3-shape": { "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.8.tgz", - "integrity": "sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==", "license": "MIT", "dependencies": { "@types/d3-path": "*" @@ -1879,20 +1705,14 @@ }, "node_modules/@types/d3-time": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", - "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", "license": "MIT" }, "node_modules/@types/d3-timer": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", - "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", "license": "MIT" }, "node_modules/@types/hoist-non-react-statics": { "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.7.tgz", - "integrity": "sha512-PQTyIulDkIDro8P+IHbKCsw7U2xxBYflVzW/FgWdCAePD9xGSidgA76/GeJ6lBKoblyhf9pBY763gbrN+1dI8g==", "license": "MIT", "dependencies": { "hoist-non-react-statics": "^3.3.0" @@ -1903,8 +1723,6 @@ }, "node_modules/@types/react": { "version": "19.2.18", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.18.tgz", - "integrity": "sha512-AnzbBERsrLKtk2XSfTbYRLjQPdy116Sty4q+T+Bp3IC4l6jNBvreVPAHmpq9qhXQM7CXZPjLVmGMw9sy+hxQ3w==", "license": "MIT", "dependencies": { "csstype": "^3.2.2" @@ -1912,8 +1730,6 @@ }, "node_modules/@types/react-dom": { "version": "19.2.4", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.4.tgz", - "integrity": "sha512-Bsc+QHgp+P/F02XDzNCY9jnZNCUuLki36KT7VKrTXXLdHf+vHMNZnW1rVu5DNW/rCK+fya3DATySbLM4yhtKUw==", "license": "MIT", "peerDependencies": { "@types/react": "^19.2.0" @@ -1921,8 +1737,6 @@ }, "node_modules/@types/styled-components": { "version": "5.1.36", - "resolved": "https://registry.npmjs.org/@types/styled-components/-/styled-components-5.1.36.tgz", - "integrity": "sha512-pGMRNY5G2rNDKEv2DOiFYa7Ft1r0jrhmgBwHhOMzPTgCjO76bCot0/4uEfqj7K0Jf1KdQmDtAuaDk9EAs9foSw==", "license": "MIT", "dependencies": { "@types/hoist-non-react-statics": "*", @@ -1932,8 +1746,6 @@ }, "node_modules/aria-hidden": { "version": "1.2.6", - "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.6.tgz", - "integrity": "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==", "license": "MIT", "dependencies": { "tslib": "^2.0.0" @@ -1944,8 +1756,6 @@ }, "node_modules/camelize": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", - "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==", "license": "MIT", "peer": true, "funding": { @@ -1954,8 +1764,6 @@ }, "node_modules/clsx": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", "license": "MIT", "engines": { "node": ">=6" @@ -1963,8 +1771,6 @@ }, "node_modules/css-color-keywords": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", - "integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==", "license": "ISC", "peer": true, "engines": { @@ -1973,8 +1779,6 @@ }, "node_modules/css-to-react-native": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz", - "integrity": "sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==", "license": "MIT", "peer": true, "dependencies": { @@ -1985,14 +1789,10 @@ }, "node_modules/csstype": { "version": "3.2.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", - "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", "license": "MIT" }, "node_modules/d3-array": { "version": "3.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", - "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", "license": "ISC", "dependencies": { "internmap": "1 - 2" @@ -2003,8 +1803,6 @@ }, "node_modules/d3-color": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", "license": "ISC", "engines": { "node": ">=12" @@ -2012,8 +1810,6 @@ }, "node_modules/d3-ease": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", - "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", "license": "BSD-3-Clause", "engines": { "node": ">=12" @@ -2021,8 +1817,6 @@ }, "node_modules/d3-format": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.2.tgz", - "integrity": "sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==", "license": "ISC", "engines": { "node": ">=12" @@ -2030,8 +1824,6 @@ }, "node_modules/d3-interpolate": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", "license": "ISC", "dependencies": { "d3-color": "1 - 3" @@ -2042,8 +1834,6 @@ }, "node_modules/d3-path": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", - "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", "license": "ISC", "engines": { "node": ">=12" @@ -2051,8 +1841,6 @@ }, "node_modules/d3-scale": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", - "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", "license": "ISC", "dependencies": { "d3-array": "2.10.0 - 3", @@ -2067,8 +1855,6 @@ }, "node_modules/d3-shape": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", - "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", "license": "ISC", "dependencies": { "d3-path": "^3.1.0" @@ -2079,8 +1865,6 @@ }, "node_modules/d3-time": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", - "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", "license": "ISC", "dependencies": { "d3-array": "2 - 3" @@ -2091,8 +1875,6 @@ }, "node_modules/d3-time-format": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", - "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", "license": "ISC", "dependencies": { "d3-time": "1 - 3" @@ -2103,8 +1885,6 @@ }, "node_modules/d3-timer": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", - "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", "license": "ISC", "engines": { "node": ">=12" @@ -2112,20 +1892,14 @@ }, "node_modules/decimal.js-light": { "version": "2.5.1", - "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz", - "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==", "license": "MIT" }, "node_modules/detect-node-es": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", - "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", "license": "MIT" }, "node_modules/dom-helpers": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.8.7", @@ -2134,20 +1908,14 @@ }, "node_modules/dompurify": { "version": "3.1.7", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.1.7.tgz", - "integrity": "sha512-VaTstWtsneJY8xzy7DekmYWEOZcmzIe3Qb3zPd4STve1OBTa+e+WmS1ITQec1fZYXI3HCsOZZiSMpG6oxoWMWQ==", "license": "(MPL-2.0 OR Apache-2.0)" }, "node_modules/eventemitter3": { "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", "license": "MIT" }, "node_modules/fast-equals": { "version": "5.4.1", - "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.4.1.tgz", - "integrity": "sha512-DjlFSM5Pk9cGcL0q5QXl66eGzx0N6szNgaswwc5ZphlBohjTVJSnGgI+rJVOgOi65qUoQnDZN4nDqi33udtydQ==", "license": "MIT", "engines": { "node": ">=6.0.0" @@ -2155,8 +1923,6 @@ }, "node_modules/framer-motion": { "version": "12.43.0", - "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.43.0.tgz", - "integrity": "sha512-1eaL3RvR/kAlbG7UYcpMptEyzPoENO0c6w7ZnB3/hh2vSAz/6uGAFn6fdoqTBguNstf3MsFhJHsD/0DHiclG+g==", "license": "MIT", "dependencies": { "motion-dom": "^12.43.0", @@ -2182,8 +1948,6 @@ }, "node_modules/get-nonce": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", - "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", "license": "MIT", "engines": { "node": ">=6" @@ -2191,8 +1955,6 @@ }, "node_modules/highcharts": { "version": "12.6.0", - "resolved": "https://registry.npmjs.org/highcharts/-/highcharts-12.6.0.tgz", - "integrity": "sha512-zWwoXECOakJT2huBMqIZOjDNLLgyZFCcfZqTj2g6cvYOGxjF3nvooC+rIaF5aKiharluyGKNflfRNrzOAIjdRg==", "license": "https://www.highcharts.com/license", "peerDependencies": { "jspdf": "^4.1.0", @@ -2209,8 +1971,6 @@ }, "node_modules/highcharts-react-official": { "version": "3.2.3", - "resolved": "https://registry.npmjs.org/highcharts-react-official/-/highcharts-react-official-3.2.3.tgz", - "integrity": "sha512-2gL8bVGe6Pf75tSe6IB5Ucd0nIOJX7ZrpttQBZVrjN2J9StdVZ12aOinXHIOFvlc6EzP8CbN13WS8NUq+9mptA==", "license": "MIT", "peerDependencies": { "highcharts": ">=6.0.0", @@ -2219,8 +1979,6 @@ }, "node_modules/hoist-non-react-statics": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", "license": "BSD-3-Clause", "dependencies": { "react-is": "^16.7.0" @@ -2228,8 +1986,6 @@ }, "node_modules/internmap": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", - "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", "license": "ISC", "engines": { "node": ">=12" @@ -2237,20 +1993,14 @@ }, "node_modules/js-tokens": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "license": "MIT" }, "node_modules/lodash": { "version": "4.18.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", - "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", "license": "MIT" }, "node_modules/loose-envify": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "license": "MIT", "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" @@ -2261,8 +2011,6 @@ }, "node_modules/lucide-react": { "version": "0.511.0", - "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.511.0.tgz", - "integrity": "sha512-VK5a2ydJ7xm8GvBeKLS9mu1pVK6ucef9780JVUjw6bAjJL/QXnd4Y0p7SPeOUMC27YhzNCZvm5d/QX0Tp3rc0w==", "license": "ISC", "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" @@ -2270,8 +2018,6 @@ }, "node_modules/marked": { "version": "14.0.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-14.0.0.tgz", - "integrity": "sha512-uIj4+faQ+MgHgwUW1l2PsPglZLOLOT1uErt06dAPtx2kjteLAkbsd/0FiYg/MGS+i7ZKLb7w2WClxHkzOOuryQ==", "license": "MIT", "bin": { "marked": "bin/marked.js" @@ -2282,8 +2028,6 @@ }, "node_modules/monaco-editor": { "version": "0.54.0", - "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.54.0.tgz", - "integrity": "sha512-hx45SEUoLatgWxHKCmlLJH81xBo0uXP4sRkESUpmDQevfi+e7K1VuiSprK6UpQ8u4zOcKNiH0pMvHvlMWA/4cw==", "license": "MIT", "dependencies": { "dompurify": "3.1.7", @@ -2292,8 +2036,6 @@ }, "node_modules/motion-dom": { "version": "12.43.0", - "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.43.0.tgz", - "integrity": "sha512-azKON4d9S65PEoFUiQTMTgPheEmzf2QngdRc50AKfJp9Q9mmcBVw22c8eMq9k8kxOFHdL7+WZY7N/5F/lwiDag==", "license": "MIT", "dependencies": { "motion-utils": "^12.39.0" @@ -2301,14 +2043,10 @@ }, "node_modules/motion-utils": { "version": "12.39.0", - "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.39.0.tgz", - "integrity": "sha512-8nadJAJjTtqRkmRF36FoJTrywK9nnFmnPwnSMyxaOCU7GDjN9RTMJIxx9De8ErM+vpPhMccr/6fo5WciyQLnMQ==", "license": "MIT" }, "node_modules/object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "license": "MIT", "engines": { "node": ">=0.10.0" @@ -2316,15 +2054,11 @@ }, "node_modules/postcss-value-parser": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "license": "MIT", "peer": true }, "node_modules/prop-types": { "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", "license": "MIT", "dependencies": { "loose-envify": "^1.4.0", @@ -2334,8 +2068,6 @@ }, "node_modules/radix-ui": { "version": "1.6.7", - "resolved": "https://registry.npmjs.org/radix-ui/-/radix-ui-1.6.7.tgz", - "integrity": "sha512-QBdhh1arIEUvPC0dQ5+nwWAxt7+N+oP/9jPwjJkGFoSk/sqxg32gJtSXGtFh8frAIcS6oC9cx2Q+7KYCQLOAeA==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.7", @@ -2411,8 +2143,6 @@ }, "node_modules/react": { "version": "19.2.8", - "resolved": "https://registry.npmjs.org/react/-/react-19.2.8.tgz", - "integrity": "sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw==", "license": "MIT", "engines": { "node": ">=0.10.0" @@ -2420,8 +2150,6 @@ }, "node_modules/react-dom": { "version": "19.2.8", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.8.tgz", - "integrity": "sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ==", "license": "MIT", "dependencies": { "scheduler": "^0.27.0" @@ -2432,14 +2160,10 @@ }, "node_modules/react-is": { "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "license": "MIT" }, "node_modules/react-remove-scroll": { "version": "2.7.2", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.2.tgz", - "integrity": "sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==", "license": "MIT", "dependencies": { "react-remove-scroll-bar": "^2.3.7", @@ -2463,8 +2187,6 @@ }, "node_modules/react-remove-scroll-bar": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", - "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", "license": "MIT", "dependencies": { "react-style-singleton": "^2.2.2", @@ -2485,8 +2207,6 @@ }, "node_modules/react-smooth": { "version": "4.0.4", - "resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-4.0.4.tgz", - "integrity": "sha512-gnGKTpYwqL0Iii09gHobNolvX4Kiq4PKx6eWBCYYix+8cdw+cGo3do906l1NBPKkSWx1DghC1dlWG9L2uGd61Q==", "license": "MIT", "dependencies": { "fast-equals": "^5.0.1", @@ -2500,8 +2220,6 @@ }, "node_modules/react-style-singleton": { "version": "2.2.3", - "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", - "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", "license": "MIT", "dependencies": { "get-nonce": "^1.0.0", @@ -2522,8 +2240,6 @@ }, "node_modules/react-transition-group": { "version": "4.4.5", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", - "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", "license": "BSD-3-Clause", "dependencies": { "@babel/runtime": "^7.5.5", @@ -2538,9 +2254,6 @@ }, "node_modules/recharts": { "version": "2.15.4", - "resolved": "https://registry.npmjs.org/recharts/-/recharts-2.15.4.tgz", - "integrity": "sha512-UT/q6fwS3c1dHbXv2uFgYJ9BMFHu3fwnd7AYZaEQhXuYQ4hgsxLvsUXzGdKeZrW5xopzDCvuA2N41WJ88I7zIw==", - "deprecated": "1.x and 2.x branches are no longer active. Bump to Recharts v3 to receive latest features and bugfixes. See https://github.com/recharts/recharts/wiki/3.0-migration-guide", "license": "MIT", "dependencies": { "clsx": "^2.0.0", @@ -2562,8 +2275,6 @@ }, "node_modules/recharts-scale": { "version": "0.4.5", - "resolved": "https://registry.npmjs.org/recharts-scale/-/recharts-scale-0.4.5.tgz", - "integrity": "sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==", "license": "MIT", "dependencies": { "decimal.js-light": "^2.4.1" @@ -2571,14 +2282,10 @@ }, "node_modules/recharts/node_modules/react-is": { "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "license": "MIT" }, "node_modules/rescript": { "version": "12.3.0", - "resolved": "https://registry.npmjs.org/rescript/-/rescript-12.3.0.tgz", - "integrity": "sha512-xdnpEoDNoeYjZ8HHATwKJEfWti1Nqwx266edfUC8378a5AO1VvZElj2ZZ/SIJNFgUnohH9yDThB+CHEQfijxKw==", "license": "(LGPL-3.0-or-later AND MIT)", "workspaces": [ "packages/playground", @@ -2614,20 +2321,14 @@ }, "node_modules/rescript-webapi": { "version": "0.10.0", - "resolved": "https://registry.npmjs.org/rescript-webapi/-/rescript-webapi-0.10.0.tgz", - "integrity": "sha512-QgwMMQO7INz0SK8TX91ibGDrOCRAteOuOxhQi3CIR8FMx0wykbp2rRU/TF4GyfKagk2Nby8snPhQnstSxnmm/g==", "license": "MIT" }, "node_modules/scheduler": { "version": "0.27.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", - "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", "license": "MIT" }, "node_modules/sonner": { "version": "2.0.7", - "resolved": "https://registry.npmjs.org/sonner/-/sonner-2.0.7.tgz", - "integrity": "sha512-W6ZN4p58k8aDKA4XPcx2hpIQXBRAgyiWVkYhT7CvK6D3iAu7xjvVyhQHg2/iaKJZ1XVJ4r7XuwGL+WGEK37i9w==", "license": "MIT", "peerDependencies": { "react": "^18.0.0 || ^19.0.0 || ^19.0.0-rc", @@ -2636,14 +2337,10 @@ }, "node_modules/state-local": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/state-local/-/state-local-1.0.7.tgz", - "integrity": "sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==", "license": "MIT" }, "node_modules/styled-components": { "version": "6.5.0", - "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.5.0.tgz", - "integrity": "sha512-WLnTRAIRJsmCQfPXoEDDd1YMML+ImxQ8YGVVg60FALxsn/rpWiQWSJCZDNfu/buAcBFnTUr8ev6CBR8rb7xLiQ==", "license": "MIT", "peer": true, "dependencies": { @@ -2679,27 +2376,19 @@ }, "node_modules/stylis": { "version": "4.3.6", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.6.tgz", - "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==", "license": "MIT", "peer": true }, "node_modules/tiny-invariant": { "version": "1.3.3", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", - "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", "license": "MIT" }, "node_modules/tslib": { "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, "node_modules/use-callback-ref": { "version": "1.3.3", - "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", - "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", "license": "MIT", "dependencies": { "tslib": "^2.0.0" @@ -2719,8 +2408,6 @@ }, "node_modules/use-sidecar": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", - "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", "license": "MIT", "dependencies": { "detect-node-es": "^1.1.0", @@ -2741,8 +2428,6 @@ }, "node_modules/vaul": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vaul/-/vaul-1.1.2.tgz", - "integrity": "sha512-ZFkClGpWyI2WUQjdLJ/BaGuV6AVQiJ3uELGk3OYtP+B6yCO7Cmn9vPFXVJkRaGkOJu3m8bQMgtyzNHixULceQA==", "license": "MIT", "dependencies": { "@radix-ui/react-dialog": "^1.1.1" @@ -2754,8 +2439,6 @@ }, "node_modules/victory-vendor": { "version": "36.9.2", - "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-36.9.2.tgz", - "integrity": "sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ==", "license": "MIT AND ISC", "dependencies": { "@types/d3-array": "^3.0.3", diff --git a/benchmark/baselines/_smastrom_react-rating/bindings/DistTypes.res b/benchmark/baselines/_smastrom_react-rating/bindings/DistTypes.res index 79a3bc64..62e5afa2 100644 --- a/benchmark/baselines/_smastrom_react-rating/bindings/DistTypes.res +++ b/benchmark/baselines/_smastrom_react-rating/bindings/DistTypes.res @@ -54,19 +54,3 @@ type sharedProps = { type readOnlyProps = { halfFillMode?: hF, } -type inputProps<'a> = { - onChange?: float => 'a, - onHoverChange?: float => option unit>, - onBlur?: option => unit> => unit> => unit> => unit> => unit> => unit> => unit, // ⚪ loose — was `FocusEvent_2` - onFocus?: option => unit> => unit> => unit> => unit> => unit> => unit> => unit, // ⚪ loose — was `FocusEvent_2` - isDisabled?: bool, - resetOnSecondClick?: bool, - transition?: transitions, - isRequired?: bool, - invisibleLabel?: string, - invisibleItemLabels?: array, - visibleLabelId?: string, - visibleItemLabelIds?: array, - resetLabel?: string, - preventDefault?: distInputPropsPreventDefault, -} diff --git a/benchmark/baselines/_smastrom_react-rating/bindings/_REPORT.md b/benchmark/baselines/_smastrom_react-rating/bindings/_REPORT.md index b093d44a..1062bc32 100644 --- a/benchmark/baselines/_smastrom_react-rating/bindings/_REPORT.md +++ b/benchmark/baselines/_smastrom_react-rating/bindings/_REPORT.md @@ -4,7 +4,7 @@ **6** function binding(s) → `ReactRatingBindings.res`. -**12** shared types deduplicated into **2** `*Types.res` modules (referenced qualified — no per-file redeclaration). +**11** shared types deduplicated into **2** `*Types.res` modules (referenced qualified — no per-file redeclaration). ## 🔤 Constructor name collisions diff --git a/docs/TYPE_MAPPING.md b/docs/TYPE_MAPPING.md index a70e93f4..e6de6138 100644 --- a/docs/TYPE_MAPPING.md +++ b/docs/TYPE_MAPPING.md @@ -692,6 +692,18 @@ blend's `point.options` (the `pointOptionsObject` field disappeared) and `option `string` placeholder) — with top-level bucket counts unmoved, so the loss was invisible to the metrics. Orphan removal belongs in a reachability sweep **after** traversal, not a rollback during it. +**That sweep now exists (`sweepUnreachableEntries`, #191).** After every IR tree is final but BEFORE +`stabilizeNames`, it walks the emitted roots (component props + `baseSpreads`, function/const/context +signatures, class members) and drops any registered entry unreachable from them. It is **key-based** +(every module-mode ref is keyed via `refTo`), so a type reached only through a keyed ref whose home is +late-bound (#128) is never dropped; a deep walk (`collectAllRefKeys`) covers refs inside inline-record +fields and spreads that the shallow `collectRefKeys` skips. Running it before naming also lets a live +sibling reclaim a base name an orphan squatted (`jsonBoxed(): BoxOf` flags its return and strands +`boxOf<'a>`; the sweep drops it and `readBox(): BoxOf` reclaims the clean `boxOf`). Removing an +orphan can also dissolve a spurious SCC merge it was wedged into, giving cleaner module homes. This is +the general mechanism #178 called for; the per-site method-path rollback stays as a cheap early exit. +Fixture: [`return-only-generic-orphan`](../test/golden/cases/return-only-generic-orphan). (#191) + `opaqueUnion` also gained the **structural dedup** the other builders always had (#180): it registered unconditionally, so two `type.id`s widening to the same module each got their own — blend emitted `ColumnDefinition` and `ColumnDefinition2` with byte-identical bodies. Each `module` declares its own diff --git a/src/extract.mjs b/src/extract.mjs index c7126eea..43fa66bb 100644 --- a/src/extract.mjs +++ b/src/extract.mjs @@ -821,6 +821,75 @@ function collectRefKeys(t, out) { if (Array.isArray(t.params)) t.params.forEach((p) => collectRefKeys(p, out)) } +/** Deep-collect EVERY registry key referenced anywhere in an IR object tree — not just the type-node + * child slots `collectRefKeys` knows (it skips record `fields`, `baseSpreads`, etc.). Used by the + * reachability sweep, where under-collecting would drop a live type. Cycle-safe. (#191) */ +function collectAllRefKeys(node, out, seen) { + if (!node || typeof node !== 'object' || seen.has(node)) return + seen.add(node) + if (node.kind === 'typeRef' && node.key) out.add(node.key) + for (const k in node) { + const v = node[k] + if (v && typeof v === 'object') collectAllRefKeys(v, out, seen) + } +} + +/** Post-traversal reachability sweep (#191, #178). After all IR trees are final but BEFORE naming is + * stabilized, drop any registered entry UNREACHABLE from the emitted roots (component props, function + * signatures, class members). A speculative build that bailed — a return-only generic whose return was + * flagged (`jsonBoxed(): BoxOf`), or a rejected `@unboxed` classification (#178) — strands the + * record it registered; nothing references it, so it must never reach a `*Types.res`. Reachability is + * KEY-based (every module-mode ref is keyed via `refTo`), so an entry reached only through a keyed ref + * whose home is late-bound (#128) is never wrongly dropped. Running before `stabilizeNames` also lets a + * live sibling reclaim the clean base name the orphan squatted (`readBox(): BoxOf` -> `boxOf`, + * not `boxOfV1hnll`). `nominal` entries (class instance types) are roots: a class export emits its + * `type ` even when nothing else references it. */ +function sweepUnreachableEntries(shared, rootKeys) { + const reachable = new Set() + const stack = [...rootKeys] + // A class's instance type is emitted for the class itself — anchor every nominal as a root. + for (const e of shared.entries) if (e.kind === 'nominal') stack.push(e.key) + while (stack.length) { + const k = stack.pop() + if (reachable.has(k)) continue + reachable.add(k) + const e = shared.byKey.get(k) + if (!e) continue + const childKeys = new Set() + const seen = new Set() + for (const t of entryChildTypes(e)) collectAllRefKeys(t, childKeys, seen) + for (const d of e.deps || []) childKeys.add(d) // relinked cross-refs the tree walk can't see + for (const ck of childKeys) if (!reachable.has(ck)) stack.push(ck) + } + if (reachable.size >= shared.entries.length) return [] // nothing unreachable — the common case + const dropped = [] + shared.entries = shared.entries.filter((e) => { + if (reachable.has(e.key)) return true + dropped.push(e) + return false + }) + for (const e of dropped) { + shared.byKey.delete(e.key) + shared.names.delete(e.name) // free the squatted base name so a live sibling can reclaim it + for (const [sig, canon] of shared.bySig) if (canon === e) shared.bySig.delete(sig) + } + // Reclaim: a survivor that `uniqueName` counter-bumped off a base the orphan squatted takes the + // now-free clean base (`boxOf2` -> `boxOf`), else a churny counter lingers where nothing collides. + // stabilizeNames won't (a single-shape group keeps its current name); keyed refs (module mode) then + // resolve to the entry's current name at emit. Deterministic: lowest current name per freed base. + const freed = [...new Set(dropped.map((e) => e.base).filter(Boolean))].sort() + for (const base of freed) { + if (shared.names.has(base) || shared.compatNames?.has(base) || RESERVED_TYPE_NAMES.has(base)) continue + const re = new RegExp(`^${base.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}\\d+$`) + const cand = shared.entries.filter((e) => e.base === base && re.test(e.name)).sort((a, b) => a.name.localeCompare(b.name))[0] + if (!cand) continue + shared.names.delete(cand.name) + shared.names.add(base) + cand.name = base + } + return dropped +} + /** Collect the ReScript type-variable names ('a, 'b) an IR type tree uses, so a record * containing them can be emitted parameterized (`type foo<'a> = {…}`). */ function collectTypeVars(t, out) { @@ -2927,6 +2996,29 @@ export function extractModule(entryFile, opts = {}) { for (const g of c.ir.getters || []) if (g.type) syncRefTparams(g.type, shared.byKey, new Set()) } + // #191/#178: reachability sweep. A speculative build that bailed (return-only generic flagged, or a + // rejected @unboxed classification) can strand the record it registered. Collect the keys the emitted + // roots reference, then drop every entry unreachable from them — BEFORE naming, so a live sibling + // reclaims any base name the orphan squatted. Key-based, so a late-bound keyed ref never loses a type. + { + // Deep-walk every reference-bearing subtree of the emitted units. Props can be inline records + // (fields hold refs), a component can spread a shared base (`baseSpreads[].ref`), a function + // nests under `sig`/`value` — a shallow field-walk misses these and would drop live types. + const rootKeys = new Set(), seen = new Set() + const addRoot = (n) => collectAllRefKeys(n, rootKeys, seen) + for (const c of components) { + for (const p of c.ir.props || []) addRoot(p.type) + for (const b of c.ir.baseSpreads || []) addRoot(b.ref) + } + for (const f of functions) { addRoot(f.ir.sig); addRoot(f.ir.value); addRoot(f.ir.context) } // context: React.Context.t + for (const c of classes) { + addRoot(c.ir.ctor) + for (const m of c.ir.methods || []) addRoot(m) + for (const g of c.ir.getters || []) addRoot(g.type) + } + sweepUnreachableEntries(shared, rootKeys) + } + // #90 residual: give same-base distinct shapes an order-INDEPENDENT intrinsic name, then resync // every reference to the final name. Runs last, so the whole colliding set (post-dedup) is known. stabilizeNames(shared) // populates shared.renames; applied at emit's resolveRef chokepoint diff --git a/test/golden/cases/return-only-generic-orphan/expected/DemoBindings.res b/test/golden/cases/return-only-generic-orphan/expected/DemoBindings.res new file mode 100644 index 00000000..1d917935 --- /dev/null +++ b/test/golden/cases/return-only-generic-orphan/expected/DemoBindings.res @@ -0,0 +1,3 @@ +// 🛑 BROKEN: `jsonBoxed` has an `unknown`/`any` in its signature — emitted with `string` placeholder(s) and WON'T WORK. Needs a concrete type upstream. +@module("demo") external jsonBoxed: unit => string = "jsonBoxed" +@module("demo") external readBox: unit => ReturnOnlyGenericOrphanTypes.boxOf = "readBox" diff --git a/test/golden/cases/return-only-generic-orphan/expected/ReturnOnlyGenericOrphanTypes.res b/test/golden/cases/return-only-generic-orphan/expected/ReturnOnlyGenericOrphanTypes.res new file mode 100644 index 00000000..0efb4dc0 --- /dev/null +++ b/test/golden/cases/return-only-generic-orphan/expected/ReturnOnlyGenericOrphanTypes.res @@ -0,0 +1,3 @@ +type boxOf = { + v: string, +} diff --git a/test/golden/cases/return-only-generic-orphan/expected/_REPORT.md b/test/golden/cases/return-only-generic-orphan/expected/_REPORT.md new file mode 100644 index 00000000..2e72b951 --- /dev/null +++ b/test/golden/cases/return-only-generic-orphan/expected/_REPORT.md @@ -0,0 +1,47 @@ +# Binding report — `demo` + +**0** components · ✅ **0** usable · 🔍 **0** need review · 🛑 **0** broken + +**2** function binding(s) → `DemoBindings.res`. + +**1** shared types deduplicated into **1** `*Types.res` modules (referenced qualified — no per-file redeclaration). + +## 📦 Dependencies + +| Kind | Package | Provides | Status | +|------|---------|----------|--------| +| required | `@rescript/react + stdlib` | JsxDOM, Dom, React, ReactEvent | ✓ present | +| optional | `rescript-webapi` | File, FileList | ✗ not installed | + +## 🔧 Function bindings + +Standalone function exports, emitted as positional `@module external` bindings in `DemoBindings.res`. + +- `jsonBoxed` +- `readBox` + +## ✅ Usable + +These compile and every prop is bound type-safely — use them directly. +_(n loose)_ = some props widened to `string`; they still work, just loosely typed. + +_(none)_ + +## ⚪ Loosely typed (widened to `string`) + +These resolved to a real but complex type and were widened to `string` (they compile and work). Grouped by type so you can review each pattern once — confirm `string` is acceptable, or it may deserve a tighter mapping. + +_(none)_ + +## 🔍 Needs review + +A multi-type prop couldn't be auto-discriminated at runtime (e.g. two object shapes), so an `@unboxed` variant won't work and we **refuse to use `%identity`/unsafe casts**. The prop is emitted as a `string` placeholder with an inline `// ⚠️ REVIEW` comment — bind it by hand or fix the type upstream. + +_(none)_ + +## 🛑 Broken — needs serious component change + +These props resolved to `unknown`/`any` (usually a generic `T`). They're emitted as a placeholder so the file still compiles, but **the props will not work as typed** — they need a concrete type upstream, or generic-binding support. + +_(none)_ 🎉 + diff --git a/test/golden/cases/return-only-generic-orphan/index.d.ts b/test/golden/cases/return-only-generic-orphan/index.d.ts new file mode 100644 index 00000000..5fead14f --- /dev/null +++ b/test/golden/cases/return-only-generic-orphan/index.d.ts @@ -0,0 +1,7 @@ +// A type parameter that appears ONLY in the return position can't round-trip (contract rule #4), so +// the return is flagged (`unit => string`). The record `classify` registered while building that +// discarded return (`boxOf<'a>`) must NOT be emitted as an orphan — a post-traversal reachability +// sweep drops it, and the concrete sibling reclaims the clean base name `boxOf`. (#191) +interface BoxOf { v: T } +export declare function jsonBoxed(): BoxOf; +export declare function readBox(): BoxOf; From 99d68cc02d7b4ffa294901343e704444eddc3508 Mon Sep 17 00:00:00 2001 From: roshan84ya Date: Mon, 17 Aug 2026 18:00:53 +0530 Subject: [PATCH 2/2] Fix reachability-sweep regression: keep types reached only via setters/statics MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The class-member root walk seeded only ctor/methods/getters, but the class IR also emits setters (`@set external …Set`) and static members (`@scope(...) external`). A shared type reachable ONLY through a write-only setter or a static-only member had no other path to a root, so the sweep dropped it and the emitted external dangled — uncompilable output for any such class. (Getters+setters usually pair up, so the getter hid this; no bench package has a write-only or static-only case.) Add setters, staticMethods, and staticValues as roots (whole-element, since collectAllRefKeys deep-walks). Fixture: class-setter-static-reachable (a write-only setter + a static-only type), compile-gated. Also note the early-out counts `>=` because `reachable` can hold non-entry `deps` keys (safe-direction: skips the sweep, never drops a live type). All 117 goldens compile; the #191 orphan fix is unchanged. --- src/extract.mjs | 11 ++++- .../ClassSetterStaticReachableTypes.res | 7 +++ .../expected/InstanceTypes.res | 1 + .../expected/Widget.res | 5 ++ .../expected/_REPORT.md | 48 +++++++++++++++++++ .../class-setter-static-reachable/index.d.ts | 10 ++++ 6 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 test/golden/cases/class-setter-static-reachable/expected/ClassSetterStaticReachableTypes.res create mode 100644 test/golden/cases/class-setter-static-reachable/expected/InstanceTypes.res create mode 100644 test/golden/cases/class-setter-static-reachable/expected/Widget.res create mode 100644 test/golden/cases/class-setter-static-reachable/expected/_REPORT.md create mode 100644 test/golden/cases/class-setter-static-reachable/index.d.ts diff --git a/src/extract.mjs b/src/extract.mjs index 43fa66bb..357118e4 100644 --- a/src/extract.mjs +++ b/src/extract.mjs @@ -861,7 +861,10 @@ function sweepUnreachableEntries(shared, rootKeys) { for (const d of e.deps || []) childKeys.add(d) // relinked cross-refs the tree walk can't see for (const ck of childKeys) if (!reachable.has(ck)) stack.push(ck) } - if (reachable.size >= shared.entries.length) return [] // nothing unreachable — the common case + // `reachable` may hold keys that aren't entries (a `deps` key to an external/sink not in byKey), so + // this counts `>=`, not `===`. Worst case it over-counts and SKIPS the sweep — safe-direction: it can + // leave an orphan, never drop a live type. + if (reachable.size >= shared.entries.length) return [] const dropped = [] shared.entries = shared.entries.filter((e) => { if (reachable.has(e.key)) return true @@ -3015,6 +3018,12 @@ export function extractModule(entryFile, opts = {}) { addRoot(c.ir.ctor) for (const m of c.ir.methods || []) addRoot(m) for (const g of c.ir.getters || []) addRoot(g.type) + // A type reachable ONLY through a write-only setter or a static member must count as a root + // too — each emits a `@set`/`@scope` external — else its shared type is dropped and the + // emitted external dangles. (Getters+setters usually pair up, hiding this behind the getter.) + for (const s of c.ir.setters || []) addRoot(s) + for (const m of c.ir.staticMethods || []) addRoot(m) + for (const v of c.ir.staticValues || []) addRoot(v) } sweepUnreachableEntries(shared, rootKeys) } diff --git a/test/golden/cases/class-setter-static-reachable/expected/ClassSetterStaticReachableTypes.res b/test/golden/cases/class-setter-static-reachable/expected/ClassSetterStaticReachableTypes.res new file mode 100644 index 00000000..5d2e819a --- /dev/null +++ b/test/golden/cases/class-setter-static-reachable/expected/ClassSetterStaticReachableTypes.res @@ -0,0 +1,7 @@ +type onlyViaSetter = { + a: float, + b: string, +} +type onlyViaStatic = { + x: bool, +} diff --git a/test/golden/cases/class-setter-static-reachable/expected/InstanceTypes.res b/test/golden/cases/class-setter-static-reachable/expected/InstanceTypes.res new file mode 100644 index 00000000..f838397c --- /dev/null +++ b/test/golden/cases/class-setter-static-reachable/expected/InstanceTypes.res @@ -0,0 +1 @@ +type widget diff --git a/test/golden/cases/class-setter-static-reachable/expected/Widget.res b/test/golden/cases/class-setter-static-reachable/expected/Widget.res new file mode 100644 index 00000000..fb88021a --- /dev/null +++ b/test/golden/cases/class-setter-static-reachable/expected/Widget.res @@ -0,0 +1,5 @@ +type t = InstanceTypes.widget +@new @module("demo") external make: unit => t = "Widget" +@send external ping: (t) => float = "ping" +@set external configSet: (t, ClassSetterStaticReachableTypes.onlyViaSetter) => unit = "config" +@module("demo") @scope("Widget") external build: (~opts: ClassSetterStaticReachableTypes.onlyViaStatic) => t = "build" diff --git a/test/golden/cases/class-setter-static-reachable/expected/_REPORT.md b/test/golden/cases/class-setter-static-reachable/expected/_REPORT.md new file mode 100644 index 00000000..1134bb42 --- /dev/null +++ b/test/golden/cases/class-setter-static-reachable/expected/_REPORT.md @@ -0,0 +1,48 @@ +# Binding report — `demo` + +**0** components · ✅ **0** usable · 🔍 **0** need review · 🛑 **0** broken + +**1** class module(s) → `@new`/`@send`/`@get` bindings. + +**3** shared types deduplicated into **2** `*Types.res` modules (referenced qualified — no per-file redeclaration). + +## 📦 Dependencies + +| Kind | Package | Provides | Status | +|------|---------|----------|--------| +| required | `@rescript/react + stdlib` | JsxDOM, Dom, React, ReactEvent | ✓ present | +| optional | `rescript-webapi` | File, FileList | ✗ not installed | + +## 🏛 Class modules + +Each class binds to its own `.res` module with an abstract `type t` (`@new` constructor, `@send` methods, `@get` properties). + +| Class | Constructor | Methods | Properties | +|-------|-------------|---------|------------| +| `Widget` | ✓ | 1 | 0 | + +## ✅ Usable + +These compile and every prop is bound type-safely — use them directly. +_(n loose)_ = some props widened to `string`; they still work, just loosely typed. + +_(none)_ + +## ⚪ Loosely typed (widened to `string`) + +These resolved to a real but complex type and were widened to `string` (they compile and work). Grouped by type so you can review each pattern once — confirm `string` is acceptable, or it may deserve a tighter mapping. + +_(none)_ + +## 🔍 Needs review + +A multi-type prop couldn't be auto-discriminated at runtime (e.g. two object shapes), so an `@unboxed` variant won't work and we **refuse to use `%identity`/unsafe casts**. The prop is emitted as a `string` placeholder with an inline `// ⚠️ REVIEW` comment — bind it by hand or fix the type upstream. + +_(none)_ + +## 🛑 Broken — needs serious component change + +These props resolved to `unknown`/`any` (usually a generic `T`). They're emitted as a placeholder so the file still compiles, but **the props will not work as typed** — they need a concrete type upstream, or generic-binding support. + +_(none)_ 🎉 + diff --git a/test/golden/cases/class-setter-static-reachable/index.d.ts b/test/golden/cases/class-setter-static-reachable/index.d.ts new file mode 100644 index 00000000..8aa791b3 --- /dev/null +++ b/test/golden/cases/class-setter-static-reachable/index.d.ts @@ -0,0 +1,10 @@ +// A shared type reachable ONLY through a write-only setter (`onlyViaSetter`) or a static member +// (`onlyViaStatic`) must survive the reachability sweep — each emits a `@set`/`@scope` external, so +// dropping the type would dangle the reference. Guards the class-member root set. (#191) +export interface OnlyViaSetter { a: number; b: string } +export interface OnlyViaStatic { x: boolean } +export declare class Widget { + set config(v: OnlyViaSetter) + static build(opts: OnlyViaStatic): Widget + ping(): number +}