@fayz-ai/ui 0.14.0 → 0.16.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 (115) hide show
  1. package/dist/{ChartWidgetInner-GDE5PBTR.js → ChartWidgetInner-IOLIUYTB.js} +21 -8
  2. package/dist/ChartWidgetInner-IOLIUYTB.js.map +1 -0
  3. package/dist/analytics/AnalyticsCard.d.ts.map +1 -1
  4. package/dist/analytics/AnalyticsControls.d.ts.map +1 -1
  5. package/dist/analytics/context.d.ts +15 -1
  6. package/dist/analytics/context.d.ts.map +1 -1
  7. package/dist/analytics/index.d.ts +1 -1
  8. package/dist/analytics/index.d.ts.map +1 -1
  9. package/dist/chunk-3OVZ5JJQ.js +540 -0
  10. package/dist/chunk-3OVZ5JJQ.js.map +1 -0
  11. package/dist/{chunk-UZYXFEQS.js → chunk-4GK6IHOI.js} +16 -3
  12. package/dist/chunk-4GK6IHOI.js.map +1 -0
  13. package/dist/{chunk-46UZAKFJ.js → chunk-5VF45NLE.js} +7 -6
  14. package/dist/chunk-5VF45NLE.js.map +1 -0
  15. package/dist/{chunk-5KAGNW45.js → chunk-6BJTH3L6.js} +5 -5
  16. package/dist/chunk-6BJTH3L6.js.map +1 -0
  17. package/dist/chunk-AASANYXN.js +601 -0
  18. package/dist/chunk-AASANYXN.js.map +1 -0
  19. package/dist/{chunk-2EFRFYGF.js → chunk-E44WOPCR.js} +198 -39
  20. package/dist/chunk-E44WOPCR.js.map +1 -0
  21. package/dist/chunk-HKGTF2YA.js +117 -0
  22. package/dist/chunk-HKGTF2YA.js.map +1 -0
  23. package/dist/chunk-OKZ6WQB3.js +57 -0
  24. package/dist/chunk-OKZ6WQB3.js.map +1 -0
  25. package/dist/{chunk-MVH64JFG.js → chunk-PZU7XC2M.js} +780 -719
  26. package/dist/chunk-PZU7XC2M.js.map +1 -0
  27. package/dist/{chunk-77CUIMOI.js → chunk-SDPYDWWV.js} +459 -226
  28. package/dist/chunk-SDPYDWWV.js.map +1 -0
  29. package/dist/dashboard/ChartWidgetInner.d.ts.map +1 -1
  30. package/dist/dashboard/index.js +5 -4
  31. package/dist/hooks/useIsWide.d.ts +16 -0
  32. package/dist/hooks/useIsWide.d.ts.map +1 -0
  33. package/dist/icons.d.ts.map +1 -1
  34. package/dist/icons.js +1 -1
  35. package/dist/index.d.ts +5 -3
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +51 -17
  38. package/dist/index.js.map +1 -1
  39. package/dist/layout/AppShell.d.ts +31 -3
  40. package/dist/layout/AppShell.d.ts.map +1 -1
  41. package/dist/layout/ModulePage.d.ts +4 -0
  42. package/dist/layout/ModulePage.d.ts.map +1 -1
  43. package/dist/layout/SaveBar.d.ts.map +1 -1
  44. package/dist/layout/Sidebar.d.ts +27 -4
  45. package/dist/layout/Sidebar.d.ts.map +1 -1
  46. package/dist/layout/Topbar.d.ts +14 -3
  47. package/dist/layout/Topbar.d.ts.map +1 -1
  48. package/dist/layout/index.d.ts +1 -1
  49. package/dist/layout/index.d.ts.map +1 -1
  50. package/dist/layout/index.js +5 -4
  51. package/dist/primitives/SearchCombobox.d.ts +9 -1
  52. package/dist/primitives/SearchCombobox.d.ts.map +1 -1
  53. package/dist/primitives/checkbox.d.ts +4 -0
  54. package/dist/primitives/checkbox.d.ts.map +1 -1
  55. package/dist/primitives/color-palette.d.ts +24 -0
  56. package/dist/primitives/color-palette.d.ts.map +1 -0
  57. package/dist/primitives/header-tabs.d.ts +11 -1
  58. package/dist/primitives/header-tabs.d.ts.map +1 -1
  59. package/dist/primitives/image-drop.d.ts +28 -0
  60. package/dist/primitives/image-drop.d.ts.map +1 -0
  61. package/dist/primitives/index.d.ts +11 -3
  62. package/dist/primitives/index.d.ts.map +1 -1
  63. package/dist/primitives/index.js +7 -5
  64. package/dist/primitives/list-view.d.ts +11 -1
  65. package/dist/primitives/list-view.d.ts.map +1 -1
  66. package/dist/primitives/modal.d.ts.map +1 -1
  67. package/dist/primitives/option-select.d.ts +46 -0
  68. package/dist/primitives/option-select.d.ts.map +1 -0
  69. package/dist/primitives/page-actions.d.ts +55 -0
  70. package/dist/primitives/page-actions.d.ts.map +1 -0
  71. package/dist/primitives/page-header.d.ts +5 -2
  72. package/dist/primitives/page-header.d.ts.map +1 -1
  73. package/dist/primitives/page-toolbar.d.ts +20 -1
  74. package/dist/primitives/page-toolbar.d.ts.map +1 -1
  75. package/dist/primitives/refresh-button.d.ts.map +1 -1
  76. package/dist/primitives/row-actions.d.ts +11 -0
  77. package/dist/primitives/row-actions.d.ts.map +1 -0
  78. package/dist/primitives/sheet.d.ts.map +1 -1
  79. package/dist/primitives/step-progress.d.ts +20 -0
  80. package/dist/primitives/step-progress.d.ts.map +1 -0
  81. package/dist/primitives/use-row-selection.d.ts +50 -0
  82. package/dist/primitives/use-row-selection.d.ts.map +1 -0
  83. package/dist/primitives/whatsapp-icon.d.ts +7 -0
  84. package/dist/primitives/whatsapp-icon.d.ts.map +1 -0
  85. package/dist/stores/index.d.ts +1 -1
  86. package/dist/stores/index.d.ts.map +1 -1
  87. package/dist/stores/layout.store.d.ts +1 -0
  88. package/dist/stores/layout.store.d.ts.map +1 -1
  89. package/dist/stores/page-header.store.d.ts +39 -5
  90. package/dist/stores/page-header.store.d.ts.map +1 -1
  91. package/dist/styles.css +186 -3
  92. package/dist/wizard/Wizard.d.ts +38 -0
  93. package/dist/wizard/Wizard.d.ts.map +1 -0
  94. package/dist/wizard/WizardField.d.ts +22 -0
  95. package/dist/wizard/WizardField.d.ts.map +1 -0
  96. package/dist/wizard/index.d.ts +6 -0
  97. package/dist/wizard/index.d.ts.map +1 -0
  98. package/dist/wizard/index.js +5 -0
  99. package/dist/wizard/index.js.map +1 -0
  100. package/dist/wizard/logic.d.ts +39 -0
  101. package/dist/wizard/logic.d.ts.map +1 -0
  102. package/dist/wizard/types.d.ts +95 -0
  103. package/dist/wizard/types.d.ts.map +1 -0
  104. package/dist/wizard/useWizard.d.ts +47 -0
  105. package/dist/wizard/useWizard.d.ts.map +1 -0
  106. package/package.json +12 -6
  107. package/dist/ChartWidgetInner-GDE5PBTR.js.map +0 -1
  108. package/dist/chunk-2EFRFYGF.js.map +0 -1
  109. package/dist/chunk-46UZAKFJ.js.map +0 -1
  110. package/dist/chunk-5KAGNW45.js.map +0 -1
  111. package/dist/chunk-77CUIMOI.js.map +0 -1
  112. package/dist/chunk-LFZFBN3P.js +0 -142
  113. package/dist/chunk-LFZFBN3P.js.map +0 -1
  114. package/dist/chunk-MVH64JFG.js.map +0 -1
  115. package/dist/chunk-UZYXFEQS.js.map +0 -1
@@ -3,19 +3,32 @@ import { jsx, jsxs } from 'react/jsx-runtime';
3
3
 
4
4
  // src/dashboard/ChartWidgetInner.tsx
5
5
  var PALETTE = [
6
- "hsl(var(--info))",
7
- "hsl(var(--magic))",
8
- "hsl(var(--success))",
9
- "hsl(var(--warning))",
10
- "hsl(var(--destructive))"
6
+ "hsl(var(--chart-1,var(--info)))",
7
+ "hsl(var(--chart-2,var(--magic)))",
8
+ "hsl(var(--chart-3,var(--success)))",
9
+ "hsl(var(--chart-4,var(--warning)))",
10
+ "hsl(var(--chart-5,var(--destructive)))"
11
11
  ];
12
12
  var AXIS = "hsl(var(--muted-foreground))";
13
13
  var GRID = "hsl(var(--border))";
14
14
  function ChartWidgetInner({ type, data, series, categoryKey, height }) {
15
15
  const color = (i, explicit) => explicit ?? PALETTE[i % PALETTE.length];
16
+ const pieKey = series[0]?.dataKey ?? "value";
17
+ const pieData = type === "pie" ? data.filter((row) => Number(row[pieKey]) > 0) : data;
16
18
  return /* @__PURE__ */ jsx(ResponsiveContainer, { width: "100%", height, children: type === "pie" ? /* @__PURE__ */ jsxs(PieChart, { children: [
17
19
  /* @__PURE__ */ jsx(Tooltip, {}),
18
- /* @__PURE__ */ jsx(Pie, { data, dataKey: series[0]?.dataKey ?? "value", nameKey: categoryKey, innerRadius: 50, outerRadius: 80, paddingAngle: 2, children: data.map((_, i) => /* @__PURE__ */ jsx(Cell, { fill: color(i, series[0]?.color) }, i)) }),
20
+ /* @__PURE__ */ jsx(
21
+ Pie,
22
+ {
23
+ data: pieData,
24
+ dataKey: pieKey,
25
+ nameKey: categoryKey,
26
+ innerRadius: 50,
27
+ outerRadius: 80,
28
+ paddingAngle: pieData.length > 1 ? 2 : 0,
29
+ children: pieData.map((_, i) => /* @__PURE__ */ jsx(Cell, { fill: color(i, series[0]?.color) }, i))
30
+ }
31
+ ),
19
32
  /* @__PURE__ */ jsx(Legend, {})
20
33
  ] }) : type === "bar" ? /* @__PURE__ */ jsxs(BarChart, { data, children: [
21
34
  /* @__PURE__ */ jsx(CartesianGrid, { strokeDasharray: "3 3", stroke: GRID, vertical: false }),
@@ -42,5 +55,5 @@ function ChartWidgetInner({ type, data, series, categoryKey, height }) {
42
55
  }
43
56
 
44
57
  export { ChartWidgetInner as default };
45
- //# sourceMappingURL=ChartWidgetInner-GDE5PBTR.js.map
46
- //# sourceMappingURL=ChartWidgetInner-GDE5PBTR.js.map
58
+ //# sourceMappingURL=ChartWidgetInner-IOLIUYTB.js.map
59
+ //# sourceMappingURL=ChartWidgetInner-IOLIUYTB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/dashboard/ChartWidgetInner.tsx"],"names":[],"mappings":"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","file":"ChartWidgetInner-IOLIUYTB.js","sourcesContent":["import * as React from 'react'\nimport {\n ResponsiveContainer,\n LineChart, Line,\n BarChart, Bar,\n AreaChart, Area,\n PieChart, Pie, Cell,\n XAxis, YAxis, CartesianGrid, Tooltip, Legend,\n} from 'recharts'\nimport type { ChartSeries, ChartType } from './types'\n\n/**\n * Series palette, in order.\n *\n * The status colours are the FALLBACK, not the definition: an app with a design\n * system of its own states `--chart-1..5` and the charts adopt its viz ramp.\n * Rebinding `--info` instead was the only lever before, and it repaints link\n * buttons, info badges and notification icons along with the chart — series\n * colour and \"this is informational\" are not the same decision.\n */\nconst PALETTE = [\n 'hsl(var(--chart-1,var(--info)))',\n 'hsl(var(--chart-2,var(--magic)))',\n 'hsl(var(--chart-3,var(--success)))',\n 'hsl(var(--chart-4,var(--warning)))',\n 'hsl(var(--chart-5,var(--destructive)))',\n]\nconst AXIS = 'hsl(var(--muted-foreground))'\nconst GRID = 'hsl(var(--border))'\n\nexport interface ChartWidgetInnerProps {\n type: ChartType\n data: Array<Record<string, string | number>>\n series: ChartSeries[]\n categoryKey: string\n height: number\n}\n\n// recharts-backed chart body. Default export + own module so ChartWidget can\n// React.lazy it — recharts (~400 KB min) then lives in an async chunk instead\n// of every consumer's entry bundle.\nexport default function ChartWidgetInner({ type, data, series, categoryKey, height }: ChartWidgetInnerProps) {\n const color = (i: number, explicit?: string) => explicit ?? PALETTE[i % PALETTE.length]\n\n // A pie only draws what has size. Two things collapse it otherwise, and both\n // are ordinary states, not edge cases:\n //\n // a zero slice — \"revenue by course\" when one course has not sold yet — is\n // a legend entry with no arc, so it reads as a missing wedge rather than a\n // zero; drop it and let the legend say what is actually on the chart.\n //\n // one slice left holding 100% — the common shape for a young tenant — is a\n // 360° sector, and recharts subtracts `paddingAngle` from EVERY sector,\n // including that one. Start and end angles meet, and the whole chart renders\n // as a flat line. Padding between slices needs at least two slices.\n const pieKey = series[0]?.dataKey ?? 'value'\n const pieData = type === 'pie' ? data.filter((row) => Number(row[pieKey]) > 0) : data\n\n return (\n <ResponsiveContainer width=\"100%\" height={height}>\n {type === 'pie' ? (\n <PieChart>\n <Tooltip />\n <Pie\n data={pieData} dataKey={pieKey} nameKey={categoryKey}\n innerRadius={50} outerRadius={80}\n paddingAngle={pieData.length > 1 ? 2 : 0}\n >\n {pieData.map((_, i) => <Cell key={i} fill={color(i, series[0]?.color)} />)}\n </Pie>\n <Legend />\n </PieChart>\n ) : type === 'bar' ? (\n <BarChart data={data}>\n <CartesianGrid strokeDasharray=\"3 3\" stroke={GRID} vertical={false} />\n <XAxis dataKey={categoryKey} stroke={AXIS} fontSize={12} tickLine={false} axisLine={false} />\n <YAxis stroke={AXIS} fontSize={12} tickLine={false} axisLine={false} width={36} />\n <Tooltip cursor={{ fill: GRID, opacity: 0.3 }} />\n {series.length > 1 && <Legend />}\n {series.map((s, i) => (\n <Bar key={s.dataKey} dataKey={s.dataKey} name={s.label ?? s.dataKey} fill={color(i, s.color)} radius={[4, 4, 0, 0]} />\n ))}\n </BarChart>\n ) : type === 'area' ? (\n <AreaChart data={data}>\n <CartesianGrid strokeDasharray=\"3 3\" stroke={GRID} vertical={false} />\n <XAxis dataKey={categoryKey} stroke={AXIS} fontSize={12} tickLine={false} axisLine={false} />\n <YAxis stroke={AXIS} fontSize={12} tickLine={false} axisLine={false} width={36} />\n <Tooltip />\n {series.length > 1 && <Legend />}\n {series.map((s, i) => (\n <Area key={s.dataKey} dataKey={s.dataKey} name={s.label ?? s.dataKey} stroke={color(i, s.color)} fill={color(i, s.color)} fillOpacity={0.15} />\n ))}\n </AreaChart>\n ) : (\n <LineChart data={data}>\n <CartesianGrid strokeDasharray=\"3 3\" stroke={GRID} vertical={false} />\n <XAxis dataKey={categoryKey} stroke={AXIS} fontSize={12} tickLine={false} axisLine={false} />\n <YAxis stroke={AXIS} fontSize={12} tickLine={false} axisLine={false} width={36} />\n <Tooltip />\n {series.length > 1 && <Legend />}\n {series.map((s, i) => (\n <Line key={s.dataKey} dataKey={s.dataKey} name={s.label ?? s.dataKey} stroke={color(i, s.color)} strokeWidth={2} dot={false} />\n ))}\n </LineChart>\n )}\n </ResponsiveContainer>\n )\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"AnalyticsCard.d.ts","sourceRoot":"","sources":["../../src/analytics/AnalyticsCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAE,gBAAgB,EAAkC,MAAM,eAAe,CAAA;AAyBrF,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,gBAAgB,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AA4ID,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,kBAAkB,qBA4I9E"}
1
+ {"version":3,"file":"AnalyticsCard.d.ts","sourceRoot":"","sources":["../../src/analytics/AnalyticsCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EACV,gBAAgB,EACjB,MAAM,eAAe,CAAA;AAyBtB,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,gBAAgB,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAuKD,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,kBAAkB,qBA4I9E"}
@@ -1 +1 @@
1
- {"version":3,"file":"AnalyticsControls.d.ts","sourceRoot":"","sources":["../../src/analytics/AnalyticsControls.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAE,kBAAkB,EAAyB,MAAM,eAAe,CAAA;AAuI9E,MAAM,WAAW,0BAA0B;IACzC,oEAAoE;IACpE,OAAO,EAAE,kBAAkB,EAAE,CAAA;CAC9B;AAED,wBAAgB,qBAAqB,CAAC,EAAE,OAAO,EAAE,EAAE,0BAA0B,4BAwG5E;AAuED,MAAM,WAAW,sBAAsB;IACrC,8EAA8E;IAC9E,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAA;IAC9B,sEAAsE;IACtE,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,sDAAsD;IACtD,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,gEAAgE;IAChE,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC3B,6DAA6D;IAC7D,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,iBAAiB,CAAC,EAAE,OAAY,EAAE,WAAkB,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,sBAAsB,qBAwDpI"}
1
+ {"version":3,"file":"AnalyticsControls.d.ts","sourceRoot":"","sources":["../../src/analytics/AnalyticsControls.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAE,kBAAkB,EAAyB,MAAM,eAAe,CAAA;AAuI9E,MAAM,WAAW,0BAA0B;IACzC,oEAAoE;IACpE,OAAO,EAAE,kBAAkB,EAAE,CAAA;CAC9B;AAED,wBAAgB,qBAAqB,CAAC,EAAE,OAAO,EAAE,EAAE,0BAA0B,4BAwG5E;AAuED,MAAM,WAAW,sBAAsB;IACrC,8EAA8E;IAC9E,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAA;IAC9B,sEAAsE;IACtE,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,sDAAsD;IACtD,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,gEAAgE;IAChE,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC3B,6DAA6D;IAC7D,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,iBAAiB,CAAC,EAAE,OAAY,EAAE,WAAkB,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,sBAAsB,qBAyDpI"}
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import type { AnalyticsCardDef, AnalyticsProvider, AnalyticsQueryState, AnalyticsResult, AnalyticsCompare, AnalyticsDateRange } from '@fayz-ai/core';
2
+ import type { AnalyticsCardDef, AnalyticsProvider, AnalyticsQueryState, AnalyticsResult, AnalyticsCompare, AnalyticsDateRange, AnalyticsRow } from '@fayz-ai/core';
3
3
  import { type AnalyticsRangePreset } from './range';
4
4
  import { type AnalyticsCurrency } from './derive';
5
5
  export interface AnalyticsContextValue {
@@ -55,4 +55,18 @@ export declare function useAnalyticsCard(card: AnalyticsCardDef, options?: {
55
55
  stateOverride?: Partial<AnalyticsQueryState>;
56
56
  enabled?: boolean;
57
57
  }): UseAnalyticsCardResult;
58
+ /**
59
+ * Fetch EVERY row the card's current query returns, not just the page on
60
+ * screen — what an export needs.
61
+ *
62
+ * The viewer paginates at 50, and a spreadsheet holding 50 of 4,000 leads is
63
+ * worse than no spreadsheet: nothing on the file says it is a fragment, so it
64
+ * gets mailed to an accountant as if it were the whole month. Pages through the
65
+ * same provider with the same filters, the same range and the same sort, so the
66
+ * file and the screen answer the same question.
67
+ *
68
+ * `compare` is dropped: the previous window costs a round trip and never lands
69
+ * in the file.
70
+ */
71
+ export declare function useAnalyticsCardRows(card: AnalyticsCardDef): (limit?: number) => Promise<AnalyticsRow[]>;
58
72
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/analytics/context.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/analytics/context.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export { AnalyticsContextProvider, useAnalyticsContext, useAnalyticsContextOptional, useAnalyticsCard } from './context';
1
+ export { AnalyticsContextProvider, useAnalyticsContext, useAnalyticsContextOptional, useAnalyticsCard, useAnalyticsCardRows } from './context';
2
2
  export type { AnalyticsContextValue, AnalyticsContextProviderProps, UseAnalyticsCardResult } from './context';
3
3
  export { AnalyticsCard } from './AnalyticsCard';
4
4
  export type { AnalyticsCardProps } from './AnalyticsCard';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/analytics/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AACxH,YAAY,EAAE,qBAAqB,EAAE,6BAA6B,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAC7G,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAC/D,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC9E,YAAY,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAA;AAC7F,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AACjE,YAAY,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAA;AACtD,OAAO,EACL,kBAAkB,EAAE,eAAe,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,QAAQ,GACvF,MAAM,SAAS,CAAA;AAChB,YAAY,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AACnD,OAAO,EACL,GAAG,EAAE,aAAa,EAAE,gBAAgB,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,eAAe,EAC1F,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EACjE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,GAC5D,MAAM,UAAU,CAAA;AACjB,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/analytics/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAC9I,YAAY,EAAE,qBAAqB,EAAE,6BAA6B,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAC7G,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAC/D,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC9E,YAAY,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAA;AAC7F,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AACjE,YAAY,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAA;AACtD,OAAO,EACL,kBAAkB,EAAE,eAAe,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,QAAQ,GACvF,MAAM,SAAS,CAAA;AAChB,YAAY,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AACnD,OAAO,EACL,GAAG,EAAE,aAAa,EAAE,gBAAgB,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,eAAe,EAC1F,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EACjE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,GAC5D,MAAM,UAAU,CAAA;AACjB,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA"}