@validationcloud/fractal-ui 1.52.0 → 1.54.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/dist/components/echarts-renderer/calculate-title-layout.d.ts +8 -0
  2. package/dist/components/echarts-renderer/calculate-title-layout.test.d.ts +1 -0
  3. package/dist/components/echarts-renderer/detect-horizontal-bars.d.ts +13 -0
  4. package/dist/components/echarts-renderer/mavrik-chart.d.ts +19 -0
  5. package/dist/components/echarts-renderer/mavrik-theme-horizontal.json.d.ts +277 -0
  6. package/dist/components/echarts-renderer/mavrik-theme.d.ts +242 -0
  7. package/dist/components/echarts-renderer/mavrik-theme.json.d.ts +6 -2
  8. package/dist/components/echarts-renderer/sanitize-chart-options.d.ts +6 -0
  9. package/dist/components/echarts-renderer/use-chart-instance.d.ts +0 -1
  10. package/dist/components/echarts-renderer/watermark-graphic.d.ts +12 -0
  11. package/dist/components/select/select.d.ts +23 -0
  12. package/dist/index.d.ts +3 -1
  13. package/dist/index.js +67 -61
  14. package/dist/lib/render-mavrik-chart-to-image.d.ts +33 -0
  15. package/dist/node_modules/.pnpm/@floating-ui_core@1.7.3/node_modules/@floating-ui/core/dist/floating-ui.core.js +527 -0
  16. package/dist/node_modules/.pnpm/@floating-ui_dom@1.7.4/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +402 -0
  17. package/dist/node_modules/.pnpm/@floating-ui_react-dom@2.1.6_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js +208 -0
  18. package/dist/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js +136 -0
  19. package/dist/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +130 -0
  20. package/dist/node_modules/.pnpm/@radix-ui_number@1.1.1/node_modules/@radix-ui/number/dist/index.js +6 -0
  21. package/dist/node_modules/.pnpm/@radix-ui_primitive@1.1.2/node_modules/@radix-ui/primitive/dist/index.js +9 -0
  22. package/dist/node_modules/.pnpm/@radix-ui_react-arrow@1.1.3_@types_react-dom@19.2.3_@types_react@19.2.6__@types_react@1_d580df0584800d3ed24dd50bc4bb768c/node_modules/@radix-ui/react-arrow/dist/index.js +24 -0
  23. package/dist/node_modules/.pnpm/@radix-ui_react-collection@1.1.3_@types_react-dom@19.2.3_@types_react@19.2.6__@types_re_965c21727754e936eeb7d35183788fa0/node_modules/@radix-ui/react-collection/dist/index.js +49 -0
  24. package/dist/node_modules/.pnpm/@radix-ui_react-context@1.1.2_@types_react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-context/dist/index.js +53 -0
  25. package/dist/node_modules/.pnpm/@radix-ui_react-direction@1.1.1_@types_react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-direction/dist/index.js +10 -0
  26. package/dist/node_modules/.pnpm/@radix-ui_react-dismissable-layer@1.1.6_@types_react-dom@19.2.3_@types_react@19.2.6__@t_c6844451b48448597731ceee2c7ec947/node_modules/@radix-ui/react-dismissable-layer/dist/index.js +128 -0
  27. package/dist/node_modules/.pnpm/@radix-ui_react-focus-guards@1.1.2_@types_react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-focus-guards/dist/index.js +18 -0
  28. package/dist/node_modules/.pnpm/@radix-ui_react-focus-scope@1.1.3_@types_react-dom@19.2.3_@types_react@19.2.6__@types_r_1236dc37c73a65e17034434472fa319b/node_modules/@radix-ui/react-focus-scope/dist/index.js +137 -0
  29. package/dist/node_modules/.pnpm/@radix-ui_react-id@1.1.1_@types_react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-id/dist/index.js +13 -0
  30. package/dist/node_modules/.pnpm/@radix-ui_react-popper@1.2.3_@types_react-dom@19.2.3_@types_react@19.2.6__@types_react@_875fb0de6110028421a3e7790df757e0/node_modules/@radix-ui/react-popper/dist/index.js +219 -0
  31. package/dist/node_modules/.pnpm/@radix-ui_react-portal@1.1.5_@types_react-dom@19.2.3_@types_react@19.2.6__@types_react@_5324bcb5f7050b43e9225714ff37edcd/node_modules/@radix-ui/react-portal/dist/index.js +16 -0
  32. package/dist/node_modules/.pnpm/@radix-ui_react-primitive@2.0.3_@types_react-dom@19.2.3_@types_react@19.2.6__@types_rea_87a4386c2964ee4c9c162dadc854f596/node_modules/@radix-ui/react-primitive/dist/index.js +35 -0
  33. package/dist/node_modules/.pnpm/@radix-ui_react-select@2.1.7_@types_react-dom@19.2.3_@types_react@19.2.6__@types_react@_6ddc7a756051e26689ab8a69ff12c731/node_modules/@radix-ui/react-select/dist/index.js +821 -0
  34. package/dist/node_modules/.pnpm/@radix-ui_react-slot@1.2.0_@types_react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-slot/dist/index.js +48 -0
  35. package/dist/node_modules/.pnpm/@radix-ui_react-use-callback-ref@1.1.1_@types_react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-use-callback-ref/dist/index.js +10 -0
  36. package/dist/node_modules/.pnpm/@radix-ui_react-use-controllable-state@1.1.1_@types_react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-use-controllable-state/dist/index.js +32 -0
  37. package/dist/node_modules/.pnpm/@radix-ui_react-use-escape-keydown@1.1.1_@types_react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js +14 -0
  38. package/dist/node_modules/.pnpm/@radix-ui_react-use-layout-effect@1.1.1_@types_react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-use-layout-effect/dist/index.js +6 -0
  39. package/dist/node_modules/.pnpm/@radix-ui_react-use-previous@1.1.1_@types_react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-use-previous/dist/index.js +8 -0
  40. package/dist/node_modules/.pnpm/@radix-ui_react-use-size@1.1.1_@types_react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-use-size/dist/index.js +27 -0
  41. package/dist/node_modules/.pnpm/@radix-ui_react-visually-hidden@1.1.3_@types_react-dom@19.2.3_@types_react@19.2.6__@typ_06b3b0029799d875b5a80b38402a9c14/node_modules/@radix-ui/react-visually-hidden/dist/index.js +30 -0
  42. package/dist/node_modules/.pnpm/aria-hidden@1.2.6/node_modules/aria-hidden/dist/es2015/index.js +52 -0
  43. package/dist/node_modules/.pnpm/get-nonce@1.0.1/node_modules/get-nonce/dist/es2015/index.js +7 -0
  44. package/dist/node_modules/.pnpm/react-remove-scroll-bar@2.3.8_@types_react@19.2.6_react@19.2.0/node_modules/react-remove-scroll-bar/dist/es2015/component.js +71 -0
  45. package/dist/node_modules/.pnpm/react-remove-scroll-bar@2.3.8_@types_react@19.2.6_react@19.2.0/node_modules/react-remove-scroll-bar/dist/es2015/constants.js +7 -0
  46. package/dist/node_modules/.pnpm/react-remove-scroll-bar@2.3.8_@types_react@19.2.6_react@19.2.0/node_modules/react-remove-scroll-bar/dist/es2015/utils.js +25 -0
  47. package/dist/node_modules/.pnpm/react-remove-scroll@2.7.1_@types_react@19.2.6_react@19.2.0/node_modules/react-remove-scroll/dist/es2015/Combination.js +11 -0
  48. package/dist/node_modules/.pnpm/react-remove-scroll@2.7.1_@types_react@19.2.6_react@19.2.0/node_modules/react-remove-scroll/dist/es2015/SideEffect.js +112 -0
  49. package/dist/node_modules/.pnpm/react-remove-scroll@2.7.1_@types_react@19.2.6_react@19.2.0/node_modules/react-remove-scroll/dist/es2015/UI.js +31 -0
  50. package/dist/node_modules/.pnpm/react-remove-scroll@2.7.1_@types_react@19.2.6_react@19.2.0/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js +16 -0
  51. package/dist/node_modules/.pnpm/react-remove-scroll@2.7.1_@types_react@19.2.6_react@19.2.0/node_modules/react-remove-scroll/dist/es2015/handleScroll.js +68 -0
  52. package/dist/node_modules/.pnpm/react-remove-scroll@2.7.1_@types_react@19.2.6_react@19.2.0/node_modules/react-remove-scroll/dist/es2015/medium.js +5 -0
  53. package/dist/node_modules/.pnpm/react-remove-scroll@2.7.1_@types_react@19.2.6_react@19.2.0/node_modules/react-remove-scroll/dist/es2015/sidecar.js +7 -0
  54. package/dist/node_modules/.pnpm/react-style-singleton@2.2.3_@types_react@19.2.6_react@19.2.0/node_modules/react-style-singleton/dist/es2015/component.js +11 -0
  55. package/dist/node_modules/.pnpm/react-style-singleton@2.2.3_@types_react@19.2.6_react@19.2.0/node_modules/react-style-singleton/dist/es2015/hook.js +15 -0
  56. package/dist/node_modules/.pnpm/react-style-singleton@2.2.3_@types_react@19.2.6_react@19.2.0/node_modules/react-style-singleton/dist/es2015/singleton.js +30 -0
  57. package/dist/node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.js +27 -0
  58. package/dist/node_modules/.pnpm/use-callback-ref@1.3.3_@types_react@19.2.6_react@19.2.0/node_modules/use-callback-ref/dist/es2015/assignRef.js +6 -0
  59. package/dist/node_modules/.pnpm/use-callback-ref@1.3.3_@types_react@19.2.6_react@19.2.0/node_modules/use-callback-ref/dist/es2015/useMergeRef.js +26 -0
  60. package/dist/node_modules/.pnpm/use-callback-ref@1.3.3_@types_react@19.2.6_react@19.2.0/node_modules/use-callback-ref/dist/es2015/useRef.js +25 -0
  61. package/dist/node_modules/.pnpm/use-sidecar@1.1.3_@types_react@19.2.6_react@19.2.0/node_modules/use-sidecar/dist/es2015/exports.js +18 -0
  62. package/dist/node_modules/.pnpm/use-sidecar@1.1.3_@types_react@19.2.6_react@19.2.0/node_modules/use-sidecar/dist/es2015/medium.js +67 -0
  63. package/dist/server.js +1 -1
  64. package/dist/src/assets/vc-logo.svg.js +4 -0
  65. package/dist/src/components/echarts-renderer/calculate-title-layout.js +72 -0
  66. package/dist/src/components/echarts-renderer/detect-horizontal-bars.js +13 -0
  67. package/dist/src/components/echarts-renderer/mavrik-chart.js +12 -0
  68. package/dist/src/components/echarts-renderer/mavrik-theme-horizontal.json.js +33 -0
  69. package/dist/src/components/echarts-renderer/mavrik-theme.js +23 -0
  70. package/dist/src/components/echarts-renderer/sanitize-chart-options.js +9 -0
  71. package/dist/src/components/echarts-renderer/use-chart-instance.js +63 -0
  72. package/dist/src/components/echarts-renderer/watermark-graphic.js +25 -0
  73. package/dist/src/components/select/select.js +105 -0
  74. package/dist/src/lib/render-chart-to-image.js +51 -0
  75. package/package.json +20 -15
  76. package/dist/components/echarts-renderer/mavrik-theme.js +0 -11
  77. package/dist/components/echarts-renderer/use-chart-instance.js +0 -46
  78. package/dist/lib/render-chart-to-image.js +0 -34
  79. /package/dist/{assets → src/assets}/animated-loader.svg.js +0 -0
  80. /package/dist/{assets → src/assets}/default-avatar.svg.js +0 -0
  81. /package/dist/{assets → src/assets}/not-found.svg.js +0 -0
  82. /package/dist/{components → src/components}/animated-loader/animated-loader.js +0 -0
  83. /package/dist/{components → src/components}/badge/badge.js +0 -0
  84. /package/dist/{components → src/components}/box/box.js +0 -0
  85. /package/dist/{components → src/components}/button/button.js +0 -0
  86. /package/dist/{components → src/components}/client-modal/client-modal.js +0 -0
  87. /package/dist/{components → src/components}/copy-button/copy-button.js +0 -0
  88. /package/dist/{components → src/components}/decorated-icon/decorated-icon.js +0 -0
  89. /package/dist/{components → src/components}/dropdown-menu/dropdown-menu.js +0 -0
  90. /package/dist/{components → src/components}/echarts-renderer/echarts-chart-option.js +0 -0
  91. /package/dist/{components → src/components}/echarts-renderer/echarts-renderer.js +0 -0
  92. /package/dist/{components → src/components}/echarts-renderer/echarts-theme-option.js +0 -0
  93. /package/dist/{components → src/components}/echarts-renderer/mavrik-theme.json.js +0 -0
  94. /package/dist/{components → src/components}/error-boundary/error-boundary.js +0 -0
  95. /package/dist/{components → src/components}/icon/icon.js +0 -0
  96. /package/dist/{components → src/components}/icon-button/icon-button.js +0 -0
  97. /package/dist/{components → src/components}/input-button/input-button.js +0 -0
  98. /package/dist/{components → src/components}/mount-svg-sprite/mount-svg-sprite.js +0 -0
  99. /package/dist/{components → src/components}/not-found-component/not-found-component.js +0 -0
  100. /package/dist/{components → src/components}/page-padding/page-padding.js +0 -0
  101. /package/dist/{components → src/components}/protocol-logo/protocol-logo.js +0 -0
  102. /package/dist/{components → src/components}/scroll-area/index.js +0 -0
  103. /package/dist/{components → src/components}/scroll-area/scroll-area-viewport.js +0 -0
  104. /package/dist/{components → src/components}/scroll-area/scroll-area.js +0 -0
  105. /package/dist/{components → src/components}/skeleton/skeleton.js +0 -0
  106. /package/dist/{components → src/components}/switch/switch.js +0 -0
  107. /package/dist/{components → src/components}/text-input/text-input.js +0 -0
  108. /package/dist/{components → src/components}/tooltip/tooltip.js +0 -0
  109. /package/dist/{components → src/components}/tooltip-provider/tooltip-provider.js +0 -0
  110. /package/dist/{components → src/components}/touch-target/touch-target.js +0 -0
  111. /package/dist/{components → src/components}/user-dropdown/user-dropdown.js +0 -0
  112. /package/dist/{components → src/components}/user-dropdown-mobile/user-dropdown-mobile.js +0 -0
  113. /package/dist/{hooks → src/hooks}/use-scroll-to-bottom.js +0 -0
  114. /package/dist/{internal → src/internal}/modal-header.js +0 -0
  115. /package/dist/{internal → src/internal}/modal.js +0 -0
  116. /package/dist/{internal → src/internal}/react-portal.js +0 -0
  117. /package/dist/{internal → src/internal}/round-button.js +0 -0
  118. /package/dist/{lib → src/lib}/tailwind-merge.js +0 -0
  119. /package/dist/{utils → src/utils}/disable-password-managers.js +0 -0
@@ -0,0 +1,8 @@
1
+ import { EChartsOption } from 'echarts';
2
+ import { EChartsThemeOption } from './echarts-theme-option';
3
+ /**
4
+ * Calculates adjusted ECharts options with proper title layout.
5
+ * Sets title width based on grid/title margins and truncates with ellipsis if too long.
6
+ * Merges options with theme settings (options take precedence).
7
+ */
8
+ export declare function calculateTitleLayout(options: EChartsOption, containerWidth: number, theme?: EChartsThemeOption): EChartsOption;
@@ -0,0 +1,13 @@
1
+ import { EChartsOption } from 'echarts';
2
+ /**
3
+ * Detects if a chart configuration represents a horizontal bar chart.
4
+ *
5
+ * A horizontal bar chart has bars extending horizontally (left to right),
6
+ * which means the category axis is on the Y-axis instead of the X-axis.
7
+ *
8
+ * Detection logic:
9
+ * 1. Chart must have at least one bar series
10
+ * 2. The Y-axis must be of type 'category' (or have data which implies category)
11
+ * 3. The X-axis must NOT be of type 'category'
12
+ */
13
+ export declare function hasHorizontalBars(option: EChartsOption): boolean;
@@ -0,0 +1,19 @@
1
+ import { EChartsOption } from 'echarts';
2
+ import { EChartsRendererRef } from './echarts-renderer';
3
+ export type MavrikChartProps = {
4
+ readonly option: EChartsOption;
5
+ readonly className?: string;
6
+ } & Omit<React.ComponentPropsWithoutRef<'div'>, 'children'>;
7
+ /**
8
+ * ECharts renderer with Mavrik theme applied.
9
+ *
10
+ * Automatically selects the correct theme variant based on chart type:
11
+ * - Vertical bars: gradient flows top-to-bottom
12
+ * - Horizontal bars: gradient flows left-to-right
13
+ *
14
+ * For custom themes, use EChartsRenderer directly.
15
+ */
16
+ export declare const MavrikChart: import('react').ForwardRefExoticComponent<{
17
+ readonly option: EChartsOption;
18
+ readonly className?: string;
19
+ } & Omit<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, "children"> & import('react').RefAttributes<EChartsRendererRef>>;
@@ -0,0 +1,277 @@
1
+ declare const _default: {
2
+ "color": [
3
+ {
4
+ "type": "linear",
5
+ "x": 0,
6
+ "y": 0,
7
+ "x2": 1,
8
+ "y2": 0,
9
+ "colorStops": [
10
+ {
11
+ "offset": 0,
12
+ "color": "#C14E64"
13
+ },
14
+ {
15
+ "offset": 1,
16
+ "color": "#DF687D"
17
+ }
18
+ ]
19
+ },
20
+ {
21
+ "type": "linear",
22
+ "x": 0,
23
+ "y": 0,
24
+ "x2": 1,
25
+ "y2": 0,
26
+ "colorStops": [
27
+ {
28
+ "offset": 0,
29
+ "color": "#FFFFFF"
30
+ },
31
+ {
32
+ "offset": 1,
33
+ "color": "#FFFFFF"
34
+ }
35
+ ]
36
+ },
37
+ {
38
+ "type": "linear",
39
+ "x": 0,
40
+ "y": 0,
41
+ "x2": 1,
42
+ "y2": 0,
43
+ "colorStops": [
44
+ {
45
+ "offset": 0,
46
+ "color": "#1E6FDA"
47
+ },
48
+ {
49
+ "offset": 1,
50
+ "color": "#3F8CFF"
51
+ }
52
+ ]
53
+ }
54
+ ],
55
+ "backgroundColor": "#242731",
56
+ "textStyle": {
57
+ "fontFamily": "Poppins, sans-serif",
58
+ "fontWeight": 500
59
+ },
60
+ "title": {
61
+ "top": 32,
62
+ "left": 32,
63
+ "textStyle": {
64
+ "color": "#FFFFFF",
65
+ "fontSize": 16,
66
+ "fontWeight": 600
67
+ },
68
+ "subtextStyle": {
69
+ "color": "#A7A9AD"
70
+ }
71
+ },
72
+ "line": {
73
+ "itemStyle": {
74
+ "borderWidth": 1
75
+ },
76
+ "lineStyle": {
77
+ "width": 2
78
+ },
79
+ "areaStyle": {
80
+ "opacity": 0.15
81
+ },
82
+ "showSymbol": false,
83
+ "symbolSize": 5,
84
+ "symbol": "circle",
85
+ "smooth": false,
86
+ "sampling": "lttb"
87
+ },
88
+ "bar": {
89
+ "barGap": "25%",
90
+ "barCategoryGap": "25%"
91
+ },
92
+ "categoryAxis": {
93
+ "axisLine": {
94
+ "show": true,
95
+ "lineStyle": {
96
+ "color": "#3A3D46",
97
+ "type": "dashed"
98
+ }
99
+ },
100
+ "axisTick": {
101
+ "show": false
102
+ },
103
+ "axisLabel": {
104
+ "show": true,
105
+ "color": "#A7A9AD",
106
+ "hideOverlap": true
107
+ },
108
+ "nameLocation": "middle",
109
+ "nameTextStyle": {
110
+ "color": "#A7A9AD",
111
+ "fontSize": 11,
112
+ "fontWeight": 400
113
+ },
114
+ "splitLine": {
115
+ "show": false
116
+ }
117
+ },
118
+ "valueAxis": {
119
+ "axisLine": {
120
+ "show": false
121
+ },
122
+ "axisTick": {
123
+ "show": false
124
+ },
125
+ "axisLabel": {
126
+ "show": true,
127
+ "color": "#A7A9AD",
128
+ "hideOverlap": true
129
+ },
130
+ "nameLocation": "middle",
131
+ "nameTextStyle": {
132
+ "color": "#A7A9AD",
133
+ "fontSize": 11,
134
+ "fontWeight": 400
135
+ },
136
+ "splitLine": {
137
+ "show": true,
138
+ "lineStyle": {
139
+ "color": [
140
+ "#3A3D46"
141
+ ],
142
+ "type": "dashed"
143
+ }
144
+ }
145
+ },
146
+ "logAxis": {
147
+ "axisLine": {
148
+ "show": false
149
+ },
150
+ "axisTick": {
151
+ "show": false
152
+ },
153
+ "axisLabel": {
154
+ "show": true,
155
+ "color": "#A7A9AD",
156
+ "hideOverlap": true
157
+ },
158
+ "nameLocation": "middle",
159
+ "nameTextStyle": {
160
+ "color": "#A7A9AD",
161
+ "fontSize": 11,
162
+ "fontWeight": 400
163
+ },
164
+ "splitLine": {
165
+ "show": true,
166
+ "lineStyle": {
167
+ "color": [
168
+ "#3A3D46"
169
+ ],
170
+ "type": "dashed"
171
+ }
172
+ }
173
+ },
174
+ "timeAxis": {
175
+ "axisLine": {
176
+ "show": true,
177
+ "lineStyle": {
178
+ "color": "#3A3D46"
179
+ }
180
+ },
181
+ "axisTick": {
182
+ "show": false
183
+ },
184
+ "axisLabel": {
185
+ "show": true,
186
+ "color": "#A7A9AD",
187
+ "hideOverlap": true
188
+ },
189
+ "nameLocation": "middle",
190
+ "nameTextStyle": {
191
+ "color": "#A7A9AD",
192
+ "fontSize": 11,
193
+ "fontWeight": 400
194
+ },
195
+ "splitLine": {
196
+ "show": false
197
+ }
198
+ },
199
+ "legend": {
200
+ "top": 82,
201
+ "left": "auto",
202
+ "right": 32,
203
+ "icon": "circle",
204
+ "itemGap": 22,
205
+ "itemWidth": 12,
206
+ "itemHeight": 12,
207
+ "textStyle": {
208
+ "color": "#A7A9AD",
209
+ "fontSize": 11
210
+ }
211
+ },
212
+ "grid": {
213
+ "top": 132,
214
+ "left": 32,
215
+ "right": 32,
216
+ "bottom": 32,
217
+ "outerBoundsMode": "same",
218
+ "outerBoundsContain": "axisLabel"
219
+ },
220
+ "dataZoom": {
221
+ "backgroundColor": "rgba(36, 39, 49, 0)",
222
+ "borderColor": "#3A3D46",
223
+ "borderRadius": 4,
224
+ "dataBackground": {
225
+ "lineStyle": {
226
+ "color": "#606060",
227
+ "width": 1
228
+ },
229
+ "areaStyle": {
230
+ "color": "rgba(96, 96, 96, 0.3)"
231
+ }
232
+ },
233
+ "selectedDataBackground": {
234
+ "lineStyle": {
235
+ "color": "#b36674",
236
+ "width": 1
237
+ },
238
+ "areaStyle": {
239
+ "color": "rgba(164, 91, 105, 0.5)"
240
+ }
241
+ },
242
+ "fillerColor": "rgba(82, 45, 52, 0.35)",
243
+ "handleStyle": {
244
+ "color": "#C14E64",
245
+ "borderColor": "#C14E64"
246
+ },
247
+ "moveHandleStyle": {
248
+ "color": "#b36674"
249
+ },
250
+ "brushStyle": {
251
+ "color": "rgba(95, 58, 65, 0.2)"
252
+ },
253
+ "emphasis": {
254
+ "handleStyle": {
255
+ "color": "rgb(209, 123, 140)",
256
+ "borderColor": "rgb(209, 123, 140)"
257
+ }
258
+ },
259
+ "handleSize": "100%",
260
+ "textStyle": {
261
+ "color": "#A7A9AD"
262
+ }
263
+ },
264
+ "markPoint": {
265
+ "label": {
266
+ "color": "#A7A9AD"
267
+ },
268
+ "emphasis": {
269
+ "label": {
270
+ "color": "#FFFFFF"
271
+ }
272
+ }
273
+ }
274
+ }
275
+ ;
276
+
277
+ export default _default;
@@ -1,3 +1,5 @@
1
+ import { EChartsOption } from 'echarts';
2
+ /** Default Mavrik theme with vertical gradients (for vertical bars and other charts) */
1
3
  export declare const MAVRIK_THEME: {
2
4
  readonly name: "mavrik";
3
5
  readonly config: {
@@ -229,3 +231,243 @@ export declare const MAVRIK_THEME: {
229
231
  };
230
232
  };
231
233
  };
234
+ /** Mavrik theme variant with horizontal gradients (for horizontal bar charts) */
235
+ export declare const MAVRIK_THEME_HORIZONTAL: {
236
+ readonly name: "mavrik-horizontal";
237
+ readonly config: {
238
+ color: {
239
+ type: string;
240
+ x: number;
241
+ y: number;
242
+ x2: number;
243
+ y2: number;
244
+ colorStops: {
245
+ offset: number;
246
+ color: string;
247
+ }[];
248
+ }[];
249
+ backgroundColor: string;
250
+ textStyle: {
251
+ fontFamily: string;
252
+ fontWeight: number;
253
+ };
254
+ title: {
255
+ top: number;
256
+ left: number;
257
+ textStyle: {
258
+ color: string;
259
+ fontSize: number;
260
+ fontWeight: number;
261
+ };
262
+ subtextStyle: {
263
+ color: string;
264
+ };
265
+ };
266
+ line: {
267
+ itemStyle: {
268
+ borderWidth: number;
269
+ };
270
+ lineStyle: {
271
+ width: number;
272
+ };
273
+ areaStyle: {
274
+ opacity: number;
275
+ };
276
+ showSymbol: boolean;
277
+ symbolSize: number;
278
+ symbol: string;
279
+ smooth: boolean;
280
+ sampling: string;
281
+ };
282
+ bar: {
283
+ barGap: string;
284
+ barCategoryGap: string;
285
+ };
286
+ categoryAxis: {
287
+ axisLine: {
288
+ show: boolean;
289
+ lineStyle: {
290
+ color: string;
291
+ type: string;
292
+ };
293
+ };
294
+ axisTick: {
295
+ show: boolean;
296
+ };
297
+ axisLabel: {
298
+ show: boolean;
299
+ color: string;
300
+ hideOverlap: boolean;
301
+ };
302
+ nameLocation: string;
303
+ nameTextStyle: {
304
+ color: string;
305
+ fontSize: number;
306
+ fontWeight: number;
307
+ };
308
+ splitLine: {
309
+ show: boolean;
310
+ };
311
+ };
312
+ valueAxis: {
313
+ axisLine: {
314
+ show: boolean;
315
+ };
316
+ axisTick: {
317
+ show: boolean;
318
+ };
319
+ axisLabel: {
320
+ show: boolean;
321
+ color: string;
322
+ hideOverlap: boolean;
323
+ };
324
+ nameLocation: string;
325
+ nameTextStyle: {
326
+ color: string;
327
+ fontSize: number;
328
+ fontWeight: number;
329
+ };
330
+ splitLine: {
331
+ show: boolean;
332
+ lineStyle: {
333
+ color: string[];
334
+ type: string;
335
+ };
336
+ };
337
+ };
338
+ logAxis: {
339
+ axisLine: {
340
+ show: boolean;
341
+ };
342
+ axisTick: {
343
+ show: boolean;
344
+ };
345
+ axisLabel: {
346
+ show: boolean;
347
+ color: string;
348
+ hideOverlap: boolean;
349
+ };
350
+ nameLocation: string;
351
+ nameTextStyle: {
352
+ color: string;
353
+ fontSize: number;
354
+ fontWeight: number;
355
+ };
356
+ splitLine: {
357
+ show: boolean;
358
+ lineStyle: {
359
+ color: string[];
360
+ type: string;
361
+ };
362
+ };
363
+ };
364
+ timeAxis: {
365
+ axisLine: {
366
+ show: boolean;
367
+ lineStyle: {
368
+ color: string;
369
+ };
370
+ };
371
+ axisTick: {
372
+ show: boolean;
373
+ };
374
+ axisLabel: {
375
+ show: boolean;
376
+ color: string;
377
+ hideOverlap: boolean;
378
+ };
379
+ nameLocation: string;
380
+ nameTextStyle: {
381
+ color: string;
382
+ fontSize: number;
383
+ fontWeight: number;
384
+ };
385
+ splitLine: {
386
+ show: boolean;
387
+ };
388
+ };
389
+ legend: {
390
+ top: number;
391
+ left: string;
392
+ right: number;
393
+ icon: string;
394
+ itemGap: number;
395
+ itemWidth: number;
396
+ itemHeight: number;
397
+ textStyle: {
398
+ color: string;
399
+ fontSize: number;
400
+ };
401
+ };
402
+ grid: {
403
+ top: number;
404
+ left: number;
405
+ right: number;
406
+ bottom: number;
407
+ outerBoundsMode: string;
408
+ outerBoundsContain: string;
409
+ };
410
+ dataZoom: {
411
+ backgroundColor: string;
412
+ borderColor: string;
413
+ borderRadius: number;
414
+ dataBackground: {
415
+ lineStyle: {
416
+ color: string;
417
+ width: number;
418
+ };
419
+ areaStyle: {
420
+ color: string;
421
+ };
422
+ };
423
+ selectedDataBackground: {
424
+ lineStyle: {
425
+ color: string;
426
+ width: number;
427
+ };
428
+ areaStyle: {
429
+ color: string;
430
+ };
431
+ };
432
+ fillerColor: string;
433
+ handleStyle: {
434
+ color: string;
435
+ borderColor: string;
436
+ };
437
+ moveHandleStyle: {
438
+ color: string;
439
+ };
440
+ brushStyle: {
441
+ color: string;
442
+ };
443
+ emphasis: {
444
+ handleStyle: {
445
+ color: string;
446
+ borderColor: string;
447
+ };
448
+ };
449
+ handleSize: string;
450
+ textStyle: {
451
+ color: string;
452
+ };
453
+ };
454
+ markPoint: {
455
+ label: {
456
+ color: string;
457
+ };
458
+ emphasis: {
459
+ label: {
460
+ color: string;
461
+ };
462
+ };
463
+ };
464
+ };
465
+ };
466
+ export type MavrikTheme = typeof MAVRIK_THEME | typeof MAVRIK_THEME_HORIZONTAL;
467
+ /**
468
+ * Selects the appropriate Mavrik theme variant based on chart options.
469
+ *
470
+ * - Returns horizontal gradient theme for horizontal bar charts
471
+ * - Returns vertical gradient theme for all other chart types
472
+ */
473
+ export declare function selectMavrikTheme(option: EChartsOption): MavrikTheme;
@@ -136,7 +136,9 @@ declare const _default: {
136
136
  "splitLine": {
137
137
  "show": true,
138
138
  "lineStyle": {
139
- "color": ["#3A3D46"],
139
+ "color": [
140
+ "#3A3D46"
141
+ ],
140
142
  "type": "dashed"
141
143
  }
142
144
  }
@@ -162,7 +164,9 @@ declare const _default: {
162
164
  "splitLine": {
163
165
  "show": true,
164
166
  "lineStyle": {
165
- "color": ["#3A3D46"],
167
+ "color": [
168
+ "#3A3D46"
169
+ ],
166
170
  "type": "dashed"
167
171
  }
168
172
  }
@@ -0,0 +1,6 @@
1
+ import { EChartsOption } from 'echarts';
2
+ /**
3
+ * Removes problematic interactive components from chart options.
4
+ * These components have known issues with ECharts' cleanup lifecycle.
5
+ */
6
+ export declare function sanitizeChartOptions(option: EChartsOption): EChartsOption;
@@ -9,7 +9,6 @@ export type UseChartInstanceProps = {
9
9
  };
10
10
  export type UseChartInstanceReturn = {
11
11
  containerRef: React.RefObject<HTMLDivElement | null>;
12
- isReady: boolean;
13
12
  downloadChart: () => Promise<void>;
14
13
  };
15
14
  /**
@@ -0,0 +1,12 @@
1
+ import { GraphicComponentOption } from 'echarts';
2
+ /**
3
+ * Watermark graphic element for ECharts charts.
4
+ * This is applied via setOption(), not via theme (themes don't properly merge graphic components).
5
+ */
6
+ export declare const WATERMARK_GRAPHIC: GraphicComponentOption;
7
+ /**
8
+ * Merges watermark graphic into existing ECharts options.
9
+ */
10
+ export declare function addWatermarkToOptions<T extends {
11
+ graphic?: GraphicComponentOption | GraphicComponentOption[];
12
+ }>(options: T): T;
@@ -0,0 +1,23 @@
1
+ /**
2
+ * SelectItem is a wrapper around Radix's Select.Item component, meant to be used with the Select component.
3
+ * It applies project-specific styling to the Radix's component.
4
+ *
5
+ * When `textValue` is provided:
6
+ * - The trigger will display `textValue` when this item is selected
7
+ * - The `children` will be displayed as custom content in the dropdown
8
+ */
9
+ export declare const SelectItem: import('react').ForwardRefExoticComponent<Omit<import('@radix-ui/react-select').SelectItemProps & import('react').RefAttributes<HTMLDivElement>, "ref"> & import('react').RefAttributes<HTMLDivElement | null>>;
10
+ /**
11
+ * Select is a wrapper around Radix's Select component.
12
+ * It applies project-specific styling to the Radix's component.
13
+ * The component is meant to be used with SelectItem provided as children.
14
+ *
15
+ * @see {@link https://radix-ui.com/primitives/docs/components/select}
16
+ */
17
+ export declare const Select: import('react').ForwardRefExoticComponent<{
18
+ variant?: "primary" | "secondary" | "ghost";
19
+ size?: "small" | "large";
20
+ className?: string;
21
+ contentClassName?: string;
22
+ placeholder?: string;
23
+ } & import('@radix-ui/react-select').SelectProps & import('react').RefAttributes<HTMLButtonElement | null>>;
package/dist/index.d.ts CHANGED
@@ -6,7 +6,8 @@ export { EChartsRenderer, type EChartsRendererProps, type EChartsRendererRef, ty
6
6
  export { EChartsThemeOption, isEChartsThemeOption } from './components/echarts-renderer/echarts-theme-option';
7
7
  export { EChartsChartOption, isEChartsChartOption } from './components/echarts-renderer/echarts-chart-option';
8
8
  export { useChartInstance, type UseChartInstanceProps, type UseChartInstanceReturn, } from './components/echarts-renderer/use-chart-instance';
9
- export { MAVRIK_THEME } from './components/echarts-renderer/mavrik-theme';
9
+ export { MavrikChart, type MavrikChartProps } from './components/echarts-renderer/mavrik-chart';
10
+ export { MAVRIK_THEME, MAVRIK_THEME_HORIZONTAL } from './components/echarts-renderer/mavrik-theme';
10
11
  export { ClientModal } from './components/client-modal/client-modal';
11
12
  export { CopyButton } from './components/copy-button/copy-button';
12
13
  export { DecoratedIcon } from './components/decorated-icon/decorated-icon';
@@ -20,6 +21,7 @@ export { MountSvgSprite } from './components/mount-svg-sprite/mount-svg-sprite';
20
21
  export { NotFoundComponent } from './components/not-found-component/not-found-component';
21
22
  export { PagePadding } from './components/page-padding/page-padding';
22
23
  export { ProtocolLogo } from './components/protocol-logo/protocol-logo';
24
+ export { Select, SelectItem } from './components/select/select';
23
25
  export { Skeleton } from './components/skeleton/skeleton';
24
26
  export { Switch } from './components/switch/switch';
25
27
  export { TextInput } from './components/text-input/text-input';