@carto/ps-react-ui 4.3.0-widgets.0 → 5.0.0-widgets.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (262) hide show
  1. package/dist/components.js +25 -23
  2. package/dist/components.js.map +1 -1
  3. package/dist/exports-Cr43OCul.js +51 -0
  4. package/dist/exports-Cr43OCul.js.map +1 -0
  5. package/dist/{lasso-tool-BC-rsMMW.js → lasso-tool-CYn3ivf-.js} +165 -183
  6. package/dist/lasso-tool-CYn3ivf-.js.map +1 -0
  7. package/dist/options-D9wflre6.js +49 -0
  8. package/dist/options-D9wflre6.js.map +1 -0
  9. package/dist/row-C_m1ovHv.js +35 -0
  10. package/dist/row-C_m1ovHv.js.map +1 -0
  11. package/dist/series-6xp-KQ0S.js +91 -0
  12. package/dist/series-6xp-KQ0S.js.map +1 -0
  13. package/dist/{smart-tooltip-BSlcAkBM.js → smart-tooltip-BEtBaIdz.js} +2 -2
  14. package/dist/{smart-tooltip-BSlcAkBM.js.map → smart-tooltip-BEtBaIdz.js.map} +1 -1
  15. package/dist/styles-dOu_pRNb.js +77 -0
  16. package/dist/styles-dOu_pRNb.js.map +1 -0
  17. package/dist/tooltip-BDnrRKrp.js +25 -0
  18. package/dist/tooltip-BDnrRKrp.js.map +1 -0
  19. package/dist/types/hooks/index.d.ts +2 -0
  20. package/dist/types/hooks/use-debounce.d.ts +19 -0
  21. package/dist/types/hooks/use-widget-ref.d.ts +17 -0
  22. package/dist/types/widgets/_shared/chart-config/config-factory.d.ts +5 -11
  23. package/dist/types/widgets/_shared/chart-config/option-builders.d.ts +3 -8
  24. package/dist/types/widgets/actions/change-column/change-column-icon.d.ts +1 -0
  25. package/dist/types/widgets/actions/change-column/change-column.d.ts +16 -0
  26. package/dist/types/widgets/actions/change-column/sortable-column-item.d.ts +9 -0
  27. package/dist/types/widgets/actions/change-column/types.d.ts +19 -0
  28. package/dist/types/widgets/actions/download/download.d.ts +1 -1
  29. package/dist/types/widgets/actions/download/exports.d.ts +1 -1
  30. package/dist/types/widgets/actions/download/types.d.ts +3 -11
  31. package/dist/types/widgets/actions/fullscreen/fullscreen.d.ts +1 -1
  32. package/dist/types/widgets/actions/fullscreen/styles.d.ts +6 -0
  33. package/dist/types/widgets/actions/fullscreen/types.d.ts +8 -9
  34. package/dist/types/widgets/actions/index.d.ts +14 -1
  35. package/dist/types/widgets/actions/lock-selection/lock-selection.d.ts +19 -0
  36. package/dist/types/widgets/actions/lock-selection/types.d.ts +38 -0
  37. package/dist/types/widgets/actions/relative-data/relative-data.d.ts +18 -0
  38. package/dist/types/widgets/actions/relative-data/style.d.ts +8 -0
  39. package/dist/types/widgets/actions/relative-data/types.d.ts +27 -0
  40. package/dist/types/widgets/actions/relative-data/utils.d.ts +9 -0
  41. package/dist/types/widgets/actions/relative-data/utils.test.d.ts +1 -0
  42. package/dist/types/widgets/actions/searcher/searcher-toggle.d.ts +18 -0
  43. package/dist/types/widgets/actions/searcher/searcher.d.ts +21 -0
  44. package/dist/types/widgets/actions/searcher/types.d.ts +62 -0
  45. package/dist/types/widgets/actions/shared/styles.d.ts +11 -0
  46. package/dist/types/widgets/actions/stack-toggle/grouped-bar-chart-icon.d.ts +1 -0
  47. package/dist/types/widgets/actions/stack-toggle/stack-toggle.d.ts +16 -0
  48. package/dist/types/widgets/actions/stack-toggle/types.d.ts +25 -0
  49. package/dist/types/widgets/actions/zoom-toggle/index.d.ts +2 -0
  50. package/dist/types/widgets/actions/zoom-toggle/style.d.ts +13 -0
  51. package/dist/types/widgets/actions/zoom-toggle/types.d.ts +41 -0
  52. package/dist/types/widgets/actions/zoom-toggle/zoom-toggle.d.ts +18 -0
  53. package/dist/types/widgets/bar/config.d.ts +5 -4
  54. package/dist/types/widgets/bar/index.d.ts +2 -2
  55. package/dist/types/widgets/bar/types.d.ts +6 -12
  56. package/dist/types/widgets/category/category-ui.d.ts +2 -0
  57. package/dist/types/widgets/category/components/category-bar.d.ts +7 -0
  58. package/dist/types/widgets/category/components/category-legend.d.ts +6 -0
  59. package/dist/types/widgets/category/components/category-row-multi.d.ts +11 -0
  60. package/dist/types/widgets/category/components/category-row-other.d.ts +6 -0
  61. package/dist/types/widgets/category/components/category-row-single.d.ts +11 -0
  62. package/dist/types/widgets/category/components/index.d.ts +10 -0
  63. package/dist/types/widgets/category/config.d.ts +15 -0
  64. package/dist/types/widgets/category/index.d.ts +6 -0
  65. package/dist/types/widgets/category/skeleton.d.ts +1 -0
  66. package/dist/types/widgets/category/style.d.ts +121 -0
  67. package/dist/types/widgets/category/types.d.ts +33 -0
  68. package/dist/types/widgets/echart/echart-ui.d.ts +1 -1
  69. package/dist/types/widgets/echart/index.d.ts +2 -2
  70. package/dist/types/widgets/echart/options.d.ts +2 -3
  71. package/dist/types/widgets/echart/types.d.ts +11 -10
  72. package/dist/types/widgets/echart/utils.d.ts +22 -16
  73. package/dist/types/widgets/formula/components/row.d.ts +1 -1
  74. package/dist/types/widgets/formula/config.d.ts +4 -2
  75. package/dist/types/widgets/formula/index.d.ts +2 -1
  76. package/dist/types/widgets/formula/types.d.ts +6 -18
  77. package/dist/types/widgets/histogram/config.d.ts +5 -4
  78. package/dist/types/widgets/histogram/index.d.ts +2 -2
  79. package/dist/types/widgets/histogram/types.d.ts +6 -12
  80. package/dist/types/widgets/index.d.ts +2 -4
  81. package/dist/types/widgets/markdown/config.d.ts +4 -2
  82. package/dist/types/widgets/markdown/index.d.ts +2 -2
  83. package/dist/types/widgets/markdown/markdown-ui.d.ts +1 -1
  84. package/dist/types/widgets/markdown/types.d.ts +6 -16
  85. package/dist/types/widgets/note/note.d.ts +1 -1
  86. package/dist/types/widgets/note/style.d.ts +12 -1
  87. package/dist/types/widgets/note/types.d.ts +4 -3
  88. package/dist/types/widgets/pie/config.d.ts +5 -4
  89. package/dist/types/widgets/pie/index.d.ts +2 -2
  90. package/dist/types/widgets/pie/types.d.ts +6 -12
  91. package/dist/types/widgets/range/config.d.ts +6 -2
  92. package/dist/types/widgets/range/index.d.ts +2 -1
  93. package/dist/types/widgets/range/types.d.ts +6 -17
  94. package/dist/types/widgets/root/index.d.ts +2 -1
  95. package/dist/types/widgets/root/root.d.ts +1 -1
  96. package/dist/types/widgets/root/types.d.ts +6 -12
  97. package/dist/types/widgets/root/utils.d.ts +1 -0
  98. package/dist/types/widgets/scatterplot/config.d.ts +5 -4
  99. package/dist/types/widgets/scatterplot/index.d.ts +2 -2
  100. package/dist/types/widgets/scatterplot/types.d.ts +6 -12
  101. package/dist/types/widgets/selection-summary/index.d.ts +2 -0
  102. package/dist/types/widgets/selection-summary/selection-summary.d.ts +2 -0
  103. package/dist/types/widgets/selection-summary/style.d.ts +9 -0
  104. package/dist/types/widgets/selection-summary/types.d.ts +13 -0
  105. package/dist/types/widgets/spread/config.d.ts +10 -2
  106. package/dist/types/widgets/spread/index.d.ts +2 -1
  107. package/dist/types/widgets/spread/types.d.ts +6 -18
  108. package/dist/types/widgets/stores/index.d.ts +2 -0
  109. package/dist/types/widgets/stores/types.d.ts +175 -11
  110. package/dist/types/widgets/stores/widget-store.d.ts +2 -27
  111. package/dist/types/widgets/subheader/index.d.ts +2 -0
  112. package/dist/types/widgets/subheader/style.d.ts +19 -0
  113. package/dist/types/widgets/subheader/subheader.d.ts +2 -0
  114. package/dist/types/widgets/subheader/types.d.ts +10 -0
  115. package/dist/types/widgets/table/components/cell-header.d.ts +5 -0
  116. package/dist/types/widgets/table/components/cell.d.ts +16 -0
  117. package/dist/types/widgets/table/components/index.d.ts +4 -0
  118. package/dist/types/widgets/table/components/pagination-actions.d.ts +5 -0
  119. package/dist/types/widgets/table/components/pagination.d.ts +5 -0
  120. package/dist/types/widgets/table/components/row.d.ts +5 -0
  121. package/dist/types/widgets/table/config.d.ts +11 -0
  122. package/dist/types/widgets/table/helpers.d.ts +38 -0
  123. package/dist/types/widgets/table/helpers.test.d.ts +1 -0
  124. package/dist/types/widgets/table/hooks/index.d.ts +6 -0
  125. package/dist/types/widgets/table/hooks/use-pagination.d.ts +45 -0
  126. package/dist/types/widgets/table/hooks/use-pagination.test.d.ts +1 -0
  127. package/dist/types/widgets/table/hooks/use-selection.d.ts +32 -0
  128. package/dist/types/widgets/table/hooks/use-selection.test.d.ts +1 -0
  129. package/dist/types/widgets/table/hooks/use-sort.d.ts +29 -0
  130. package/dist/types/widgets/table/hooks/use-sort.test.d.ts +1 -0
  131. package/dist/types/widgets/table/index.d.ts +13 -0
  132. package/dist/types/widgets/table/serializer.d.ts +16 -0
  133. package/dist/types/widgets/table/skeleton.d.ts +10 -0
  134. package/dist/types/widgets/table/style.d.ts +33 -0
  135. package/dist/types/widgets/table/table-ui.d.ts +32 -0
  136. package/dist/types/widgets/table/types.d.ts +201 -0
  137. package/dist/types/widgets/timeseries/config.d.ts +5 -4
  138. package/dist/types/widgets/timeseries/index.d.ts +2 -2
  139. package/dist/types/widgets/timeseries/types.d.ts +6 -12
  140. package/dist/types/widgets/toolbar-actions/index.d.ts +2 -0
  141. package/dist/types/widgets/toolbar-actions/styles.d.ts +37 -0
  142. package/dist/types/widgets/toolbar-actions/toolbar-actions.d.ts +8 -0
  143. package/dist/types/widgets/toolbar-actions/types.d.ts +45 -0
  144. package/dist/types/widgets/wrapper/index.d.ts +2 -2
  145. package/dist/types/widgets/wrapper/styles.d.ts +6 -0
  146. package/dist/types/widgets/wrapper/types.d.ts +7 -5
  147. package/dist/types/widgets/wrapper/wrapper-ui.d.ts +1 -1
  148. package/dist/types/widgets/wrapper/wrapper.d.ts +1 -1
  149. package/dist/utils-Dv5Z47UQ.js +144 -0
  150. package/dist/utils-Dv5Z47UQ.js.map +1 -0
  151. package/dist/widget-store-DNyVElxd.js +190 -0
  152. package/dist/widget-store-DNyVElxd.js.map +1 -0
  153. package/dist/widgets/actions.js +825 -6
  154. package/dist/widgets/actions.js.map +1 -1
  155. package/dist/widgets/bar.js +189 -4
  156. package/dist/widgets/bar.js.map +1 -1
  157. package/dist/widgets/category.js +460 -0
  158. package/dist/widgets/category.js.map +1 -0
  159. package/dist/widgets/echart.js +120 -8
  160. package/dist/widgets/echart.js.map +1 -1
  161. package/dist/widgets/formula.js +117 -20
  162. package/dist/widgets/formula.js.map +1 -1
  163. package/dist/widgets/histogram.js +172 -4
  164. package/dist/widgets/histogram.js.map +1 -1
  165. package/dist/widgets/markdown.js +127 -0
  166. package/dist/widgets/markdown.js.map +1 -0
  167. package/dist/widgets/note.js +121 -2
  168. package/dist/widgets/note.js.map +1 -1
  169. package/dist/widgets/pie.js +213 -4
  170. package/dist/widgets/pie.js.map +1 -1
  171. package/dist/widgets/range.js +210 -12
  172. package/dist/widgets/range.js.map +1 -1
  173. package/dist/widgets/root.js +65 -2
  174. package/dist/widgets/root.js.map +1 -1
  175. package/dist/widgets/scatterplot.js +219 -4
  176. package/dist/widgets/scatterplot.js.map +1 -1
  177. package/dist/widgets/selection-summary.js +40 -0
  178. package/dist/widgets/selection-summary.js.map +1 -0
  179. package/dist/widgets/skeleton-loader.js +21 -2
  180. package/dist/widgets/skeleton-loader.js.map +1 -1
  181. package/dist/widgets/spread.js +162 -17
  182. package/dist/widgets/spread.js.map +1 -1
  183. package/dist/widgets/stores.js +5 -0
  184. package/dist/widgets/stores.js.map +1 -0
  185. package/dist/widgets/subheader.js +52 -0
  186. package/dist/widgets/subheader.js.map +1 -0
  187. package/dist/widgets/table.js +691 -0
  188. package/dist/widgets/table.js.map +1 -0
  189. package/dist/widgets/timeseries.js +171 -4
  190. package/dist/widgets/timeseries.js.map +1 -1
  191. package/dist/widgets/toolbar-actions.js +6106 -0
  192. package/dist/widgets/toolbar-actions.js.map +1 -0
  193. package/dist/widgets/wrapper.js +292 -6
  194. package/dist/widgets/wrapper.js.map +1 -1
  195. package/dist/widgets.js +2 -83
  196. package/dist/widgets.js.map +1 -1
  197. package/package.json +38 -6
  198. package/dist/const-BLV7Tvte.js +0 -758
  199. package/dist/const-BLV7Tvte.js.map +0 -1
  200. package/dist/download-KroQ0SWg.js +0 -195
  201. package/dist/download-KroQ0SWg.js.map +0 -1
  202. package/dist/echart-CqfROFu3.js +0 -214
  203. package/dist/echart-CqfROFu3.js.map +0 -1
  204. package/dist/formula-ui-ChzvMEOG.js +0 -52
  205. package/dist/formula-ui-ChzvMEOG.js.map +0 -1
  206. package/dist/lasso-tool-BC-rsMMW.js.map +0 -1
  207. package/dist/markdown-n_tOtoiT.js +0 -27
  208. package/dist/markdown-n_tOtoiT.js.map +0 -1
  209. package/dist/markdown-ui-BBrzzd7Y.js +0 -62
  210. package/dist/markdown-ui-BBrzzd7Y.js.map +0 -1
  211. package/dist/note-DF-n70TX.js +0 -101
  212. package/dist/note-DF-n70TX.js.map +0 -1
  213. package/dist/range-ui-CtUX11Xm.js +0 -146
  214. package/dist/range-ui-CtUX11Xm.js.map +0 -1
  215. package/dist/root-L_WZnJY5.js +0 -46
  216. package/dist/root-L_WZnJY5.js.map +0 -1
  217. package/dist/row-DQaSxmDV.js +0 -18
  218. package/dist/row-DQaSxmDV.js.map +0 -1
  219. package/dist/series-CsyEPq-X.js +0 -83
  220. package/dist/series-CsyEPq-X.js.map +0 -1
  221. package/dist/skeleton-BSPcEvfq.js +0 -27
  222. package/dist/skeleton-BSPcEvfq.js.map +0 -1
  223. package/dist/skeleton-C4rOYTy-.js +0 -78
  224. package/dist/skeleton-C4rOYTy-.js.map +0 -1
  225. package/dist/skeleton-C9Jqc241.js +0 -82
  226. package/dist/skeleton-C9Jqc241.js.map +0 -1
  227. package/dist/skeleton-D-zHBBIw.js +0 -64
  228. package/dist/skeleton-D-zHBBIw.js.map +0 -1
  229. package/dist/skeleton-DMP-IwaJ.js +0 -109
  230. package/dist/skeleton-DMP-IwaJ.js.map +0 -1
  231. package/dist/skeleton-DRorqowB.js +0 -22
  232. package/dist/skeleton-DRorqowB.js.map +0 -1
  233. package/dist/skeleton-DsZhv-AH.js +0 -89
  234. package/dist/skeleton-DsZhv-AH.js.map +0 -1
  235. package/dist/skeleton-Dx3FCer0.js +0 -13
  236. package/dist/skeleton-Dx3FCer0.js.map +0 -1
  237. package/dist/skeleton-QVDdb1c2.js +0 -21
  238. package/dist/skeleton-QVDdb1c2.js.map +0 -1
  239. package/dist/skeleton-loader-DWC1-EAx.js +0 -23
  240. package/dist/skeleton-loader-DWC1-EAx.js.map +0 -1
  241. package/dist/spread-ui-BjzH190y.js +0 -82
  242. package/dist/spread-ui-BjzH190y.js.map +0 -1
  243. package/dist/style-BGeCtQkP.js +0 -19
  244. package/dist/style-BGeCtQkP.js.map +0 -1
  245. package/dist/style-C7v1iwqD.js +0 -34
  246. package/dist/style-C7v1iwqD.js.map +0 -1
  247. package/dist/styles-cohnxh9F.js +0 -23
  248. package/dist/styles-cohnxh9F.js.map +0 -1
  249. package/dist/types/widgets/config-loader/index.d.ts +0 -2
  250. package/dist/types/widgets/config-loader/types.d.ts +0 -12
  251. package/dist/types/widgets/config-loader/use-config.d.ts +0 -5
  252. package/dist/types/widgets/widget/const.d.ts +0 -2
  253. package/dist/types/widgets/widget/types.d.ts +0 -47
  254. package/dist/types/widgets/widget/widget.d.ts +0 -2
  255. package/dist/use-config-BYEOiIcu.js +0 -43
  256. package/dist/use-config-BYEOiIcu.js.map +0 -1
  257. package/dist/widget-store-yDO2ul8g.js +0 -44
  258. package/dist/widget-store-yDO2ul8g.js.map +0 -1
  259. package/dist/widgets/config-loader.js +0 -5
  260. package/dist/widgets/config-loader.js.map +0 -1
  261. package/dist/wrapper-57csMybC.js +0 -265
  262. package/dist/wrapper-57csMybC.js.map +0 -1
@@ -1,15 +1,9 @@
1
1
  import { ReactNode } from 'react';
2
- import { WrapperUIProps } from '../wrapper';
3
- import { WidgetsStoreProps } from '../stores/types';
4
- export interface RootProps {
5
- id: WidgetsStoreProps['id'];
6
- type: WidgetsStoreProps['type'];
2
+ import { WidgetsStoreProps, WidgetState } from '../stores/types';
3
+ export interface RootProps<T> extends WidgetsStoreProps {
7
4
  children: ReactNode;
8
- title: WrapperUIProps['title'];
9
- data?: unknown;
10
- isLoading?: WidgetsStoreProps['isLoading'];
11
- isFetching?: WidgetsStoreProps['isFetching'];
12
- collapsed?: WrapperUIProps['collapsed'];
13
- collapsible?: WrapperUIProps['disabled'];
14
- disabled?: WrapperUIProps['disabled'];
5
+ config?: T;
6
+ }
7
+ export interface ConfigProps {
8
+ refUI?: WidgetState['refUI'];
15
9
  }
@@ -0,0 +1 @@
1
+ export declare function mergeWidgetConfig<T>(...options: [T | undefined, T | undefined]): T;
@@ -1,4 +1,5 @@
1
- import { ScatterplotConfig, ScatterplotWidgetData } from './types';
2
- export declare const scatterplotConfig: (config: ScatterplotConfig & {
3
- refUI?: import('react').Ref<HTMLElement | null>;
4
- }) => import('../_shared/chart-config/config-factory').ChartWidgetConfigResult<ScatterplotWidgetData, ScatterplotConfig, "scatterplot">;
1
+ import { ScatterplotConfig, ScatterplotWidgetConfig, ScatterplotWidgetData } from './types';
2
+ import { DownloadItem } from '../actions';
3
+ import { ConfigProps } from '../root/types';
4
+ export declare function scatterplotDownloadConfig({ refUI, }: ConfigProps): DownloadItem<ScatterplotWidgetData>[];
5
+ export declare function scatterplotConfig(props: ScatterplotConfig): ScatterplotWidgetConfig;
@@ -1,3 +1,3 @@
1
- export type { ScatterplotProps, ScatterplotWidgetData, ScatterplotWidgetState, ScatterplotWidgetConfig, } from './types';
2
- export { scatterplotConfig } from './config';
1
+ export type { ScatterplotWidgetData, ScatterplotWidgetState, ScatterplotWidgetConfig, ScatterplotConfig, } from './types';
2
+ export { scatterplotConfig, scatterplotDownloadConfig } from './config';
3
3
  export { ScatterplotSkeleton } from './skeleton';
@@ -1,15 +1,9 @@
1
- import { BaseWidgetProps } from '../widget/types';
2
- import { BaseConfig } from '../config-loader';
3
- import { EchartWidgetConfig, EchartWidgetState } from '../echart';
4
- export interface ScatterplotProps extends BaseWidgetProps<ScatterplotWidgetConfig> {
5
- type: 'scatterplot';
6
- data: ScatterplotWidgetData | undefined;
7
- }
1
+ import { EchartWidgetState } from '../echart';
2
+ import { EchartWidgetOptionProps, EchartWidgetProps } from '../echart/types';
3
+ import { ConfigProps } from '../root';
8
4
  export type ScatterplotWidgetData = [number, number][][];
9
5
  export type ScatterplotWidgetState = EchartWidgetState;
10
- export type ScatterplotWidgetConfig = ScatterplotConfig & EchartWidgetConfig<ScatterplotWidgetData> & {
11
- type: ScatterplotProps['type'];
6
+ export type ScatterplotWidgetConfig = EchartWidgetProps & {
7
+ type: 'scatterplot';
12
8
  };
13
- export interface ScatterplotConfig extends Omit<BaseConfig, 'data'> {
14
- data?: ScatterplotWidgetData;
15
- }
9
+ export type ScatterplotConfig = ConfigProps & EchartWidgetOptionProps<ScatterplotWidgetData>;
@@ -0,0 +1,2 @@
1
+ export { SelectionSummary } from './selection-summary';
2
+ export type { SelectedProps, SelectionSummaryLabels } from './types';
@@ -0,0 +1,2 @@
1
+ import { SelectedProps } from './types';
2
+ export declare function SelectionSummary({ selections, onClear, labels, }: SelectedProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,9 @@
1
+ import { Theme } from '@mui/material';
2
+ export declare const styles: {
3
+ root: {
4
+ display: "flex";
5
+ alignItems: "center";
6
+ flex: string;
7
+ gap: ({ spacing }: Theme) => string;
8
+ };
9
+ };
@@ -0,0 +1,13 @@
1
+ export interface SelectedProps {
2
+ selections: number;
3
+ onClear?: () => void;
4
+ labels?: Partial<SelectionSummaryLabels>;
5
+ }
6
+ export interface SelectionSummaryLabels {
7
+ /** Label for "All selected" state */
8
+ allSelected: string;
9
+ /** Label for number of selections */
10
+ selections: (count: number) => string;
11
+ /** Label for clear button */
12
+ clear: string;
13
+ }
@@ -1,2 +1,10 @@
1
- import { SpreadConfig, SpreadWidgetConfig } from './types';
2
- export declare function spreadConfig({ refUI, data, ...props }: SpreadConfig): SpreadWidgetConfig;
1
+ import { DownloadItem } from '../actions';
2
+ import { ConfigProps } from '../root/types';
3
+ import { SpreadWidgetConfig, SpreadWidgetData } from './types';
4
+ import { SeriesConfig } from '../formula/types';
5
+ export interface SpreadConfigProps {
6
+ formatter?: (value: number) => string;
7
+ series?: SeriesConfig[];
8
+ }
9
+ export declare function spreadDownloadConfig({ refUI, }: ConfigProps): DownloadItem<SpreadWidgetData>[];
10
+ export declare function spreadConfig(): SpreadWidgetConfig;
@@ -1,8 +1,9 @@
1
1
  export { SpreadUI } from './spread-ui';
2
2
  export { SpreadSkeleton } from './skeleton';
3
+ export { spreadConfig, spreadDownloadConfig } from './config';
3
4
  export { MinValue } from './components/min-value';
4
5
  export { MaxValue } from './components/max-value';
5
6
  export { Separator } from './components/separator';
6
7
  export { Item, Row, Prefix, Suffix, Series } from '../formula';
7
- export type { RowProps, ValueProps, SpreadWidgetState, ItemProps, SpreadDataItem, SpreadUIProps, } from './types';
8
+ export type { RowProps, ValueProps, SpreadWidgetState, SpreadWidgetConfig, SpreadWidgetData, SpreadDownloadConfig, ItemProps, SpreadDataItem, SpreadUIProps, } from './types';
8
9
  export type { SeriesConfig } from '../formula/types';
@@ -1,16 +1,9 @@
1
1
  import { TypographyProps } from '@mui/material';
2
2
  import { ReactNode } from 'react';
3
3
  import { BaseWidgetState, WidgetsStoreProps } from '../stores/types';
4
- import { DownloadState } from '../actions';
5
- import { DownloadConfigProps } from '../actions/download/types';
6
4
  import { WrapperState } from '../wrapper/types';
7
- import { BaseWidgetProps } from '../widget/types';
8
- import { BaseConfig } from '../config-loader';
5
+ import { DownloadItem } from '../actions/download/types';
9
6
  import { SeriesConfig } from '../formula/types';
10
- export interface SpreadProps extends BaseWidgetProps<SpreadWidgetConfig> {
11
- type: 'spread';
12
- data: SpreadWidgetData | undefined;
13
- }
14
7
  export interface SpreadUIProps {
15
8
  id: WidgetsStoreProps['id'];
16
9
  }
@@ -37,16 +30,11 @@ export interface ItemProps {
37
30
  TypographyProps?: TypographyProps;
38
31
  }
39
32
  export type SpreadWidgetData = SpreadDataItem[];
40
- export type SpreadWidgetState = BaseWidgetState<WrapperState<DownloadState<SpreadProps & {
33
+ export type SpreadWidgetState = BaseWidgetState<WrapperState<SpreadWidgetConfig> & {
34
+ data: SpreadWidgetData;
35
+ }>;
36
+ export interface SpreadWidgetConfig {
41
37
  formatter?: (value: number) => string;
42
38
  series?: SeriesConfig[];
43
- }, SpreadWidgetData>>>;
44
- export type SpreadWidgetConfig = BaseConfig & DownloadConfigProps<SpreadWidgetData> & {
45
- type: SpreadProps['type'];
46
- formatter?: SpreadWidgetState['formatter'];
47
- series?: SeriesConfig[];
48
- };
49
- export interface SpreadConfig extends Omit<BaseConfig, 'data'> {
50
- data?: SpreadWidgetData;
51
- series?: SeriesConfig[];
52
39
  }
40
+ export type SpreadDownloadConfig = DownloadItem<SpreadWidgetData>[];
@@ -0,0 +1,2 @@
1
+ export { useWidgetStore } from './widget-store';
2
+ export type { BaseWidgetState, WidgetsStoreProps, WidgetState, WidgetStore, WidgetStoreActions, WidgetStoreState, } from './types';
@@ -1,25 +1,132 @@
1
1
  import { RefObject } from 'react';
2
+ /**
3
+ * Sort direction for table columns
4
+ */
5
+ export type StoreSortDirection = 'asc' | 'desc';
6
+ /**
7
+ * Pagination mode for tables
8
+ */
9
+ export type StorePaginationMode = 'local' | 'remote';
10
+ /**
11
+ * Sort mode for tables
12
+ */
13
+ export type StoreSortMode = 'local' | 'remote';
14
+ /**
15
+ * Table pagination state stored in widget store
16
+ */
17
+ export interface TablePaginationStoreState {
18
+ /** Current page (0-indexed) */
19
+ page: number;
20
+ /** Rows per page */
21
+ rowsPerPage: number;
22
+ /** Available rows per page options */
23
+ rowsPerPageOptions: number[];
24
+ /** Pagination mode: local or remote */
25
+ mode: StorePaginationMode;
26
+ }
27
+ /**
28
+ * Table sort state stored in widget store
29
+ */
30
+ export interface TableSortStoreState {
31
+ /** Column ID being sorted */
32
+ columnId: string | null;
33
+ /** Sort direction */
34
+ direction: StoreSortDirection;
35
+ /** Sort mode: local or remote */
36
+ mode: StoreSortMode;
37
+ }
38
+ /**
39
+ * Table selection state stored in widget store
40
+ */
41
+ export interface TableSelectionStoreState {
42
+ /** Set of selected row IDs */
43
+ selectedIds: Set<string | number>;
44
+ }
45
+ /**
46
+ * Combined table state for widget store
47
+ */
48
+ export interface TableStoreState {
49
+ pagination?: TablePaginationStoreState;
50
+ sort?: TableSortStoreState;
51
+ selection?: TableSelectionStoreState;
52
+ }
2
53
  export interface WidgetsStoreProps {
3
54
  /** Unique identifier for the widget */
4
55
  id: string;
5
56
  /** Type of widget */
6
57
  type: string;
7
- /** Widget title/label */
8
- title?: string;
58
+ /** Widget data - flexible to accommodate different widget types */
59
+ data: unknown;
9
60
  /** Loading state */
10
61
  isLoading: boolean;
11
62
  /** Fetching state (e.g., for async data) */
12
- isFetching?: boolean;
63
+ isFetching: boolean;
13
64
  /** Error message if any */
14
65
  error?: string;
15
66
  /** Whether widget is visible */
16
- visible: boolean;
17
- /** Widget data - flexible to accommodate different widget types */
18
- data?: unknown;
19
- /** Additional notes about the widget */
20
- note?: string;
67
+ visible?: boolean;
21
68
  /** Reference to the widget ui instance */
22
69
  refUI?: RefObject<HTMLElement | null>;
70
+ /** Registered tools for the widget's transformation pipeline */
71
+ registeredTools?: ToolRegistration[];
72
+ }
73
+ /**
74
+ * Tool transformation function type
75
+ * Can be synchronous or asynchronous to support remote operations
76
+ */
77
+ export type ToolTransformFunction = (data: unknown, config?: Record<string, unknown>) => Promise<unknown> | unknown;
78
+ /**
79
+ * Tool registration for widget pipeline
80
+ *
81
+ * @example Basic tool registration
82
+ * ```typescript
83
+ * registerTool(widgetId, {
84
+ * id: 'searcher',
85
+ * order: 10,
86
+ * enabled: true,
87
+ * fn: (data) => filterData(data),
88
+ * })
89
+ * ```
90
+ *
91
+ * @example Tool with dependencies
92
+ * ```typescript
93
+ * registerTool(widgetId, {
94
+ * id: 'lock-selection',
95
+ * order: 20,
96
+ * enabled: true,
97
+ * fn: (data) => lockData(data),
98
+ * disables: ['searcher', 'relative-data'], // Disable these when active
99
+ * })
100
+ * ```
101
+ *
102
+ * Dependency Management:
103
+ * - Multiple tools can disable the same target (reference counting)
104
+ * - Target is only re-enabled when ALL disabling tools are inactive
105
+ * - Original enabled state is preserved and restored
106
+ * - Circular dependencies are detected and throw errors
107
+ */
108
+ export interface ToolRegistration {
109
+ /** Unique tool identifier (e.g., 'searcher', 'relative-data') */
110
+ id: string;
111
+ /** Execution priority - lower numbers execute first */
112
+ order: number;
113
+ /** Transformation function */
114
+ fn: ToolTransformFunction;
115
+ /** Whether tool is currently enabled */
116
+ enabled: boolean;
117
+ /** Tool-specific configuration */
118
+ config?: Record<string, unknown>;
119
+ /**
120
+ * Array of tool IDs to disable when this tool is active.
121
+ * During pipeline execution, if this tool is enabled, any tools listed
122
+ * in this array will be excluded from the pipeline.
123
+ *
124
+ * @example
125
+ * ```typescript
126
+ * disables: ['searcher', 'relative-data']
127
+ * ```
128
+ */
129
+ disables?: string[];
23
130
  }
24
131
  /**
25
132
  * Base widget state interface
@@ -30,7 +137,7 @@ export type BaseWidgetState<T> = WidgetsStoreProps & T;
30
137
  */
31
138
  export type WidgetState = BaseWidgetState<unknown>;
32
139
  /**
33
- * Widget store state
140
+ * Widget store state with tool registration
34
141
  */
35
142
  export interface WidgetStoreState {
36
143
  /** Map of widget id to widget state */
@@ -44,9 +151,9 @@ export interface WidgetStoreActions {
44
151
  * Add or update a widget in the store
45
152
  * @param id - Widget ID
46
153
  * @param widget - Widget state properties to merge (accepts any object structure)
47
- * @template T - Optional type parameter for backward compatibility (unused)
154
+ * @template T - Type of the widget state for type-safe access
48
155
  */
49
- setWidget: <T extends WidgetState>(id: WidgetState['id'], widget: Partial<Omit<T, 'id'>>) => void;
156
+ setWidget: <T = any>(id: WidgetState['id'], widget: Partial<T>) => void;
50
157
  /**
51
158
  * Remove a widget from the store
52
159
  * @param id - Widget ID to remove
@@ -62,6 +169,63 @@ export interface WidgetStoreActions {
62
169
  * @returns Widget state or undefined if not found
63
170
  */
64
171
  getWidget: <T extends WidgetState = WidgetState>(id: WidgetState['id']) => T | undefined;
172
+ /**
173
+ * Set table pagination state for a widget
174
+ * @param id - Widget ID
175
+ * @param pagination - Partial pagination state to merge
176
+ */
177
+ setTablePagination: (id: WidgetState['id'], pagination: Partial<TablePaginationStoreState>) => void;
178
+ /**
179
+ * Set table sort state for a widget
180
+ * @param id - Widget ID
181
+ * @param sort - Partial sort state to merge
182
+ */
183
+ setTableSort: (id: WidgetState['id'], sort: Partial<TableSortStoreState>) => void;
184
+ /**
185
+ * Set table selection state for a widget
186
+ * @param id - Widget ID
187
+ * @param selection - Partial selection state to merge
188
+ */
189
+ setTableSelection: (id: WidgetState['id'], selection: Partial<TableSelectionStoreState>) => void;
190
+ /**
191
+ * Get table state for a widget
192
+ * @param id - Widget ID
193
+ * @returns Table state or undefined if not found
194
+ */
195
+ getTableState: (id: WidgetState['id']) => TableStoreState | undefined;
196
+ /**
197
+ * Register a tool with the widget's transformation pipeline
198
+ * @param widgetId - Widget ID
199
+ * @param tool - Tool registration object
200
+ */
201
+ registerTool: (widgetId: string, tool: ToolRegistration) => void;
202
+ /**
203
+ * Unregister a tool from the widget's transformation pipeline
204
+ * @param widgetId - Widget ID
205
+ * @param toolId - Tool ID to remove
206
+ */
207
+ unregisterTool: (widgetId: string, toolId: string) => void;
208
+ /**
209
+ * Update tool configuration
210
+ * @param widgetId - Widget ID
211
+ * @param toolId - Tool ID
212
+ * @param config - New configuration to merge
213
+ */
214
+ updateToolConfig: (widgetId: string, toolId: string, config: Record<string, unknown>) => void;
215
+ /**
216
+ * Set tool enabled state
217
+ * @param widgetId - Widget ID
218
+ * @param toolId - Tool ID
219
+ * @param enabled - Whether tool should be enabled
220
+ */
221
+ setToolEnabled: (widgetId: string, toolId: string, enabled: boolean) => void;
222
+ /**
223
+ * Execute the tool transformation pipeline
224
+ * Supports both synchronous and asynchronous tools
225
+ * @param widgetId - Widget ID
226
+ * @param sourceData - Original data to transform
227
+ */
228
+ executeToolPipeline: (widgetId: string, sourceData: unknown) => Promise<void>;
65
229
  }
66
230
  /**
67
231
  * Complete widget store interface
@@ -1,4 +1,4 @@
1
- import { WidgetState, WidgetStore } from './types';
1
+ import { WidgetStore } from './types';
2
2
  /**
3
3
  * Zustand store for managing widget state across the application.
4
4
  *
@@ -36,29 +36,4 @@ import { WidgetState, WidgetStore } from './types';
36
36
  * const formulaWidgets = getWidgetsByType('formula')
37
37
  * ```
38
38
  */
39
- export declare const useWidgetStore: import('zustand').UseBoundStore<Omit<import('zustand').StoreApi<WidgetStore>, "setState" | "devtools"> & {
40
- setState(partial: WidgetStore | Partial<WidgetStore> | ((state: WidgetStore) => WidgetStore | Partial<WidgetStore>), replace?: false | undefined, action?: (string | {
41
- [x: string]: unknown;
42
- [x: number]: unknown;
43
- [x: symbol]: unknown;
44
- type: string;
45
- }) | undefined): void;
46
- setState(state: WidgetStore | ((state: WidgetStore) => WidgetStore), replace: true, action?: (string | {
47
- [x: string]: unknown;
48
- [x: number]: unknown;
49
- [x: symbol]: unknown;
50
- type: string;
51
- }) | undefined): void;
52
- devtools: {
53
- cleanup: () => void;
54
- };
55
- }>;
56
- /** Hook to get a specific widget by ID
57
- * @param id - Widget ID
58
- * @returns Widget state or undefined if not found
59
- * @example
60
- * ```tsx
61
- * const widget = useWidget('widget-1')
62
- * ```
63
- */
64
- export declare const useWidget: <T extends WidgetState>(id: string) => T | undefined;
39
+ export declare const useWidgetStore: import('zustand').UseBoundStore<import('zustand').StoreApi<WidgetStore>>;
@@ -0,0 +1,2 @@
1
+ export { Subheader } from './subheader';
2
+ export type { SubheaderComponentProps } from './types';
@@ -0,0 +1,19 @@
1
+ import { Theme } from '@mui/material';
2
+ export declare const styles: {
3
+ root: {
4
+ display: "flex";
5
+ alignItems: "center";
6
+ gap: ({ spacing }: Theme) => string;
7
+ minHeight: ({ spacing }: Theme) => string;
8
+ };
9
+ slotLeft: {
10
+ flexShrink: number;
11
+ };
12
+ slotRight: {
13
+ flexGrow: number;
14
+ display: "flex";
15
+ justifyContent: "flex-end";
16
+ alignItems: "center";
17
+ gap: ({ spacing }: Theme) => string;
18
+ };
19
+ };
@@ -0,0 +1,2 @@
1
+ import { SubheaderComponentProps } from './types';
2
+ export declare function Subheader({ slotLeft, slotRight, sx, }: SubheaderComponentProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ import { SxProps, Theme } from '@mui/material';
2
+ import { ReactNode } from 'react';
3
+ export interface SubheaderComponentProps {
4
+ /** Content for the left slot */
5
+ slotLeft?: ReactNode;
6
+ /** Content for the right slot*/
7
+ slotRight?: ReactNode;
8
+ /** Custom styles */
9
+ sx?: SxProps<Theme>;
10
+ }
@@ -0,0 +1,5 @@
1
+ import { CellHeaderProps } from '../types';
2
+ /**
3
+ * Table cell header component with optional sorting and select-all checkbox
4
+ */
5
+ export declare function CellHeader({ column, sortState, onSort, isSelectAll, isAllSelected, isIndeterminate, onSelectAll, }: CellHeaderProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,16 @@
1
+ import { TableColumn } from '../types';
2
+ /**
3
+ * Props for Cell component
4
+ */
5
+ export interface CellProps {
6
+ /** Column definition */
7
+ column: TableColumn;
8
+ /** Cell value */
9
+ value: unknown;
10
+ }
11
+ /**
12
+ * Table cell component with automatic markdown support for string values
13
+ * Markdown is rendered when the raw value is a string and no formatter is defined.
14
+ * If a formatter is used, its output is rendered directly without markdown parsing.
15
+ */
16
+ export declare function Cell({ column, value }: CellProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,4 @@
1
+ export { CellHeader } from './cell-header';
2
+ export { Row } from './row';
3
+ export { Pagination } from './pagination';
4
+ export { PaginationActions } from './pagination-actions';
@@ -0,0 +1,5 @@
1
+ import { PaginationActionsProps } from '../types';
2
+ /**
3
+ * Custom pagination actions with first/prev/next/last buttons
4
+ */
5
+ export declare function PaginationActions({ count, page, rowsPerPage, onPageChange, }: PaginationActionsProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ import { PaginationProps } from '../types';
2
+ /**
3
+ * Table pagination component
4
+ */
5
+ export declare function Pagination({ page, rowsPerPage, total, rowsPerPageOptions, onPageChange, onRowsPerPageChange, }: PaginationProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ import { RowProps } from '../types';
2
+ /**
3
+ * Table row component with selection and hover support
4
+ */
5
+ export declare function Row({ row, columns, isSelected, selectable, onClick, onSelect, onMouseEnter, onMouseLeave, }: RowProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,11 @@
1
+ import { ConfigProps } from '../root/types';
2
+ import { TableDownloadConfig, TableWidgetConfig, TableColumn } from './types';
3
+ /**
4
+ * Default table download configuration
5
+ * Supports PNG export (screenshot) and CSV export (data)
6
+ */
7
+ export declare function tableDownloadConfig({ refUI, }: ConfigProps): TableDownloadConfig;
8
+ /**
9
+ * Default table widget configuration
10
+ */
11
+ export declare function tableConfig(columns?: TableColumn[]): TableWidgetConfig;
@@ -0,0 +1,38 @@
1
+ import { ReactNode } from 'react';
2
+ /**
3
+ * Get formatted cell value for display
4
+ * Handles primitives, arrays, objects, and custom formatters
5
+ *
6
+ * @param cellValue - Raw cell value
7
+ * @param formatter - Optional formatter function
8
+ * @returns Formatted value for display
9
+ */
10
+ export declare function getCellValue<T>(cellValue: T): ReactNode;
11
+ /**
12
+ * Compare two values for sorting
13
+ * Handles strings, numbers, and other types
14
+ *
15
+ * @param a - First value
16
+ * @param b - Second value
17
+ * @param direction - Sort direction
18
+ * @returns Comparison result (-1, 0, 1)
19
+ */
20
+ export declare function compareValues(a: unknown, b: unknown, direction: 'asc' | 'desc'): number;
21
+ /**
22
+ * Sort data array by column
23
+ *
24
+ * @param data - Data array to sort
25
+ * @param columnId - Column ID to sort by
26
+ * @param direction - Sort direction
27
+ * @returns Sorted data array (new array, does not mutate original)
28
+ */
29
+ export declare function sortData<T extends Record<string, unknown>>(data: T[], columnId: string, direction: 'asc' | 'desc'): T[];
30
+ /**
31
+ * Paginate data array
32
+ *
33
+ * @param data - Data array to paginate
34
+ * @param page - Current page (0-indexed)
35
+ * @param rowsPerPage - Number of rows per page
36
+ * @returns Paginated data slice
37
+ */
38
+ export declare function paginateData<T>(data: T[], page: number, rowsPerPage: number): T[];
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ export { usePagination } from './use-pagination';
2
+ export { useSort } from './use-sort';
3
+ export { useSelection } from './use-selection';
4
+ export type { UsePaginationOptions, UsePaginationResult, } from './use-pagination';
5
+ export type { UseSortOptions, UseSortResult } from './use-sort';
6
+ export type { UseSelectionOptions, UseSelectionResult } from './use-selection';
@@ -0,0 +1,45 @@
1
+ import { TableRow, PaginationMode } from '../types';
2
+ export interface UsePaginationOptions {
3
+ /** Pagination mode: local or remote */
4
+ mode: PaginationMode;
5
+ /** Initial page (0-indexed) */
6
+ initialPage?: number;
7
+ /** Initial rows per page */
8
+ initialRowsPerPage?: number;
9
+ /** Available rows per page options */
10
+ rowsPerPageOptions?: number[];
11
+ /** Total rows (for remote pagination) */
12
+ total?: number;
13
+ /** Callback when page changes (for remote pagination) */
14
+ onPageChange?: (page: number, rowsPerPage: number) => void;
15
+ }
16
+ export interface UsePaginationResult<T> {
17
+ /** Current page (0-indexed) */
18
+ page: number;
19
+ /** Rows per page */
20
+ rowsPerPage: number;
21
+ /** Total row count */
22
+ total: number;
23
+ /** Available rows per page options */
24
+ rowsPerPageOptions: number[];
25
+ /** Paginated data (for local mode) */
26
+ paginatedData: T[];
27
+ /** Set current page */
28
+ setPage: (page: number) => void;
29
+ /** Set rows per page */
30
+ setRowsPerPage: (rowsPerPage: number) => void;
31
+ /** Go to first page */
32
+ goToFirstPage: () => void;
33
+ /** Go to last page */
34
+ goToLastPage: () => void;
35
+ /** Go to next page */
36
+ goToNextPage: () => void;
37
+ /** Go to previous page */
38
+ goToPreviousPage: () => void;
39
+ }
40
+ /**
41
+ * Hook for managing table pagination
42
+ * Supports both local (client-side) and remote (server-side) pagination
43
+ * State is persisted in the widget store for the given widgetId
44
+ */
45
+ export declare function usePagination<T extends TableRow>(widgetId: string, data: T[], options: UsePaginationOptions): UsePaginationResult<T>;