drizzle-cube 0.2.8 → 0.2.9

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 (55) hide show
  1. package/dist/client/charts.js +2 -2
  2. package/dist/client/chunks/chart-activitygridchart-config-DVH-sdYZ.js +244 -0
  3. package/dist/client/chunks/chart-activitygridchart-config-DVH-sdYZ.js.map +1 -0
  4. package/dist/client/chunks/{chart-areachart-config-DWN1E5ej.js → chart-areachart-config-C2iwLEgm.js} +2 -2
  5. package/dist/client/chunks/{chart-areachart-config-DWN1E5ej.js.map → chart-areachart-config-C2iwLEgm.js.map} +1 -1
  6. package/dist/client/chunks/{chart-barchart-config-DZA0xTns.js → chart-barchart-config-CAsUZfHw.js} +2 -2
  7. package/dist/client/chunks/{chart-barchart-config-DZA0xTns.js.map → chart-barchart-config-CAsUZfHw.js.map} +1 -1
  8. package/dist/client/chunks/{chart-bubblechart-config-C79lfDSO.js → chart-bubblechart-config-DRuY0m7S.js} +2 -2
  9. package/dist/client/chunks/{chart-bubblechart-config-C79lfDSO.js.map → chart-bubblechart-config-DRuY0m7S.js.map} +1 -1
  10. package/dist/client/chunks/{chart-datatable-config-DqGw99R3.js → chart-datatable-config-C0MoGDgo.js} +2 -2
  11. package/dist/client/chunks/{chart-datatable-config-DqGw99R3.js.map → chart-datatable-config-C0MoGDgo.js.map} +1 -1
  12. package/dist/client/chunks/{chart-datatable-Mo4gYCwa.js → chart-datatable-zyVFtRJ_.js} +2 -2
  13. package/dist/client/chunks/{chart-datatable-Mo4gYCwa.js.map → chart-datatable-zyVFtRJ_.js.map} +1 -1
  14. package/dist/client/chunks/{chart-kpidelta-config-B-Y-LHmd.js → chart-kpidelta-config-Bq2Ph_Sp.js} +2 -2
  15. package/dist/client/chunks/{chart-kpidelta-config-B-Y-LHmd.js.map → chart-kpidelta-config-Bq2Ph_Sp.js.map} +1 -1
  16. package/dist/client/chunks/{chart-kpinumber-config-BaNaJMI6.js → chart-kpinumber-config-OMNhJXdH.js} +2 -2
  17. package/dist/client/chunks/{chart-kpinumber-config-BaNaJMI6.js.map → chart-kpinumber-config-OMNhJXdH.js.map} +1 -1
  18. package/dist/client/chunks/{chart-kpitext-config-BNywYqEW.js → chart-kpitext-config-BLiwQIVN.js} +2 -2
  19. package/dist/client/chunks/{chart-kpitext-config-BNywYqEW.js.map → chart-kpitext-config-BLiwQIVN.js.map} +1 -1
  20. package/dist/client/chunks/{chart-linechart-config-BL_1mjHF.js → chart-linechart-config-CVbDAvCB.js} +2 -2
  21. package/dist/client/chunks/{chart-linechart-config-BL_1mjHF.js.map → chart-linechart-config-CVbDAvCB.js.map} +1 -1
  22. package/dist/client/chunks/{chart-markdownchart-config-DtZOfYu4.js → chart-markdownchart-config-uttA9Th4.js} +2 -2
  23. package/dist/client/chunks/{chart-markdownchart-config-DtZOfYu4.js.map → chart-markdownchart-config-uttA9Th4.js.map} +1 -1
  24. package/dist/client/chunks/{chart-piechart-config-Bg4jeIFo.js → chart-piechart-config-J748ISAR.js} +2 -2
  25. package/dist/client/chunks/{chart-piechart-config-Bg4jeIFo.js.map → chart-piechart-config-J748ISAR.js.map} +1 -1
  26. package/dist/client/chunks/{chart-radarchart-config-d6dLkI7B.js → chart-radarchart-config-CU_MwXOg.js} +2 -2
  27. package/dist/client/chunks/{chart-radarchart-config-d6dLkI7B.js.map → chart-radarchart-config-CU_MwXOg.js.map} +1 -1
  28. package/dist/client/chunks/{chart-radialbarchart-config-BGf97-BV.js → chart-radialbarchart-config-D0eEa2hb.js} +2 -2
  29. package/dist/client/chunks/{chart-radialbarchart-config-BGf97-BV.js.map → chart-radialbarchart-config-D0eEa2hb.js.map} +1 -1
  30. package/dist/client/chunks/{chart-scatterchart-config-DEIB74ot.js → chart-scatterchart-config-Bh0qBq9F.js} +2 -2
  31. package/dist/client/chunks/{chart-scatterchart-config-DEIB74ot.js.map → chart-scatterchart-config-Bh0qBq9F.js.map} +1 -1
  32. package/dist/client/chunks/{chart-treemapchart-config-ppKPTB96.js → chart-treemapchart-config-Bl0wYGhB.js} +2 -2
  33. package/dist/client/chunks/{chart-treemapchart-config-ppKPTB96.js.map → chart-treemapchart-config-Bl0wYGhB.js.map} +1 -1
  34. package/dist/client/chunks/{charts-MJLpxe3r.js → charts-BUq4jszb.js} +18 -18
  35. package/dist/client/chunks/{charts-MJLpxe3r.js.map → charts-BUq4jszb.js.map} +1 -1
  36. package/dist/client/chunks/{components-CXA6-jJq.js → components-DnhfrXo3.js} +22 -21
  37. package/dist/client/chunks/{components-CXA6-jJq.js.map → components-DnhfrXo3.js.map} +1 -1
  38. package/dist/client/components/AnalysisBuilder/AnalysisFilterSection.d.ts +3 -1
  39. package/dist/client/components/AnalysisBuilder/AnalysisQueryPanel.d.ts +2 -1
  40. package/dist/client/components/AnalysisBuilder/AnalysisResultsPanel.d.ts +2 -1
  41. package/dist/client/components/AnalysisBuilder/BreakdownItemCard.d.ts +3 -1
  42. package/dist/client/components/AnalysisBuilder/BreakdownSection.d.ts +3 -2
  43. package/dist/client/components/AnalysisBuilder/MetricItemCard.d.ts +3 -1
  44. package/dist/client/components/AnalysisBuilder/MetricsSection.d.ts +3 -2
  45. package/dist/client/components/AnalysisBuilder/types.d.ts +42 -0
  46. package/dist/client/components.js +3 -3
  47. package/dist/client/icons/registry.d.ts +1 -1
  48. package/dist/client/icons.js +1 -1
  49. package/dist/client/index.js +2138 -1874
  50. package/dist/client/index.js.map +1 -1
  51. package/dist/client/styles.css +1 -1
  52. package/dist/client-bundle-stats.html +1 -1
  53. package/package.json +1 -1
  54. package/dist/client/chunks/chart-activitygridchart-config-BngZDVh_.js +0 -236
  55. package/dist/client/chunks/chart-activitygridchart-config-BngZDVh_.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "drizzle-cube",
3
- "version": "0.2.8",
3
+ "version": "0.2.9",
4
4
  "description": "Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.",
5
5
  "main": "./dist/server/index.js",
6
6
  "types": "./dist/server/index.d.ts",
@@ -1,236 +0,0 @@
1
- import { jsx as s } from "react/jsx-runtime";
2
- import { d as r, a as h, b as d, c as y, e as p, f as $, g as f, h as g, i as u, j as v, k as b, l as T, m as D, n as k, o as w, p as A, q as x, r as C, s as M, t as I, u as B, v as N, w as O, x as R, y as S, z as F, A as G, B as K, C as _, D as j, E as q, F as L, G as z, H as P, I as U, J as V, K as H, L as W, M as E, N as Z, O as J, P as Q, Q as X, R as Y, S as aa, T as ta, U as ea, V as oa, W as ia, X as ca, Y as ra, Z as na, _ as sa, $ as da, a0 as ya, a1 as ga, a2 as ua, a3 as ma, a4 as la, a5 as ha, a6 as pa, a7 as $a, a8 as fa, a9 as va, aa as ba, ab as Ta, ac as m } from "./icons-B2XSxpVK.js";
3
- const l = {
4
- // Action icons
5
- close: { icon: Ta, category: "action" },
6
- add: { icon: ba, category: "action" },
7
- edit: { icon: va, category: "action" },
8
- delete: { icon: fa, category: "action" },
9
- refresh: { icon: r, category: "action" },
10
- copy: { icon: $a, category: "action" },
11
- duplicate: { icon: pa, category: "action" },
12
- settings: { icon: ha, category: "action" },
13
- filter: { icon: la, category: "action" },
14
- share: { icon: ma, category: "action" },
15
- expand: { icon: g, category: "action" },
16
- collapse: { icon: u, category: "action" },
17
- search: { icon: ua, category: "action" },
18
- menu: { icon: ga, category: "action" },
19
- run: { icon: ya, category: "action" },
20
- check: { icon: da, category: "action" },
21
- link: { icon: sa, category: "action" },
22
- eye: { icon: na, category: "action" },
23
- eyeOff: { icon: ra, category: "action" },
24
- adjustments: { icon: ca, category: "action" },
25
- desktop: { icon: ia, category: "action" },
26
- table: { icon: oa, category: "action" },
27
- sun: { icon: ea, category: "action" },
28
- moon: { icon: ta, category: "action" },
29
- ellipsisHorizontal: { icon: aa, category: "action" },
30
- documentText: { icon: Y, category: "action" },
31
- bookOpen: { icon: X, category: "action" },
32
- codeBracket: { icon: Q, category: "action" },
33
- // Field type icons (solid for visual distinction)
34
- measure: { icon: J, category: "field" },
35
- dimension: { icon: Z, category: "field" },
36
- timeDimension: { icon: E, category: "field" },
37
- segment: { icon: W, category: "field" },
38
- // Chart type icons (Tabler - keeping existing visuals)
39
- chartBar: { icon: H, category: "chart" },
40
- chartLine: { icon: V, category: "chart" },
41
- chartArea: { icon: U, category: "chart" },
42
- chartPie: { icon: P, category: "chart" },
43
- chartScatter: { icon: z, category: "chart" },
44
- chartBubble: { icon: L, category: "chart" },
45
- chartRadar: { icon: q, category: "chart" },
46
- chartRadialBar: { icon: j, category: "chart" },
47
- chartTreemap: { icon: _, category: "chart" },
48
- chartTable: { icon: K, category: "chart" },
49
- chartActivityGrid: { icon: G, category: "chart" },
50
- chartKpiNumber: { icon: F, category: "chart" },
51
- chartKpiDelta: { icon: S, category: "chart" },
52
- chartKpiText: { icon: R, category: "chart" },
53
- chartMarkdown: { icon: O, category: "chart" },
54
- // Measure type icons (solid)
55
- measureCount: { icon: N, category: "measure" },
56
- measureCountDistinct: { icon: B, category: "measure" },
57
- measureCountDistinctApprox: { icon: I, category: "measure" },
58
- measureSum: { icon: M, category: "measure" },
59
- measureAvg: { icon: C, category: "measure" },
60
- measureMin: { icon: d, category: "measure" },
61
- measureMax: { icon: y, category: "measure" },
62
- measureRunningTotal: { icon: x, category: "measure" },
63
- measureCalculated: { icon: A, category: "measure" },
64
- measureNumber: { icon: w, category: "measure" },
65
- // State icons
66
- success: { icon: k, category: "state" },
67
- warning: { icon: D, category: "state" },
68
- error: { icon: T, category: "state" },
69
- info: { icon: b, category: "state" },
70
- loading: { icon: r, category: "state" },
71
- sparkles: { icon: v, category: "state" },
72
- // Navigation icons
73
- chevronUp: { icon: u, category: "navigation" },
74
- chevronDown: { icon: g, category: "navigation" },
75
- chevronLeft: { icon: f, category: "navigation" },
76
- chevronRight: { icon: $, category: "navigation" },
77
- chevronUpDown: { icon: p, category: "navigation" },
78
- arrowUp: { icon: y, category: "navigation" },
79
- arrowDown: { icon: d, category: "navigation" },
80
- arrowRight: { icon: h, category: "navigation" },
81
- arrowPath: { icon: r, category: "navigation" }
82
- };
83
- let o = { ...l };
84
- function xa() {
85
- return o;
86
- }
87
- function c(t) {
88
- const e = o[t];
89
- return e ? ({ className: a, ...i }) => /* @__PURE__ */ s(m, { icon: e.icon, className: a, ...i }) : (console.warn(`Icon "${t}" not found in registry, using fallback`), ({ className: a, ...i }) => /* @__PURE__ */ s(m, { icon: o.info.icon, className: a, ...i }));
90
- }
91
- function Ca(t) {
92
- return o[t]?.icon ?? o.info.icon;
93
- }
94
- function Ma(t, e) {
95
- o[t] && (o[t] = {
96
- ...o[t],
97
- icon: e
98
- });
99
- }
100
- function Ia(t) {
101
- for (const [e, a] of Object.entries(t))
102
- if (a && e in o) {
103
- const i = e;
104
- if ("body" in a)
105
- o[i] = {
106
- ...o[i],
107
- icon: a
108
- };
109
- else {
110
- const n = a;
111
- o[i] = {
112
- ...o[i],
113
- ...n,
114
- icon: n.icon ?? o[i].icon
115
- };
116
- }
117
- }
118
- }
119
- function Ba() {
120
- o = { ...l };
121
- }
122
- function Na(t) {
123
- const e = {};
124
- for (const [a, i] of Object.entries(o))
125
- i.category === t && (e[a] = c(a));
126
- return e;
127
- }
128
- function Oa(t) {
129
- const a = {
130
- count: "measureCount",
131
- countDistinct: "measureCountDistinct",
132
- countDistinctApprox: "measureCountDistinctApprox",
133
- sum: "measureSum",
134
- avg: "measureAvg",
135
- min: "measureMin",
136
- max: "measureMax",
137
- runningTotal: "measureRunningTotal",
138
- calculated: "measureCalculated",
139
- number: "measureNumber"
140
- }[t || ""] || "measureCount";
141
- return c(a);
142
- }
143
- function Da(t) {
144
- const a = {
145
- bar: "chartBar",
146
- line: "chartLine",
147
- area: "chartArea",
148
- pie: "chartPie",
149
- scatter: "chartScatter",
150
- bubble: "chartBubble",
151
- radar: "chartRadar",
152
- radialBar: "chartRadialBar",
153
- treemap: "chartTreemap",
154
- table: "chartTable",
155
- activityGrid: "chartActivityGrid",
156
- kpiNumber: "chartKpiNumber",
157
- kpiDelta: "chartKpiDelta",
158
- kpiText: "chartKpiText",
159
- markdown: "chartMarkdown"
160
- }[t] || "chartBar";
161
- return c(a);
162
- }
163
- function Ra(t) {
164
- const a = {
165
- measure: "measure",
166
- dimension: "dimension",
167
- timeDimension: "timeDimension",
168
- time: "timeDimension",
169
- segment: "segment"
170
- }[t] || "dimension";
171
- return c(a);
172
- }
173
- const ka = {
174
- icon: Da("activityGrid"),
175
- description: "GitHub-style activity grid showing temporal patterns across different time scales",
176
- useCase: "Best for visualizing activity patterns over time. Supports hour (3hr blocks × days), day (days × weeks), week (weeks × months), month (months × quarters), and quarter (quarters × years) granularities",
177
- dropZones: [
178
- {
179
- key: "dateField",
180
- label: "Time Dimension",
181
- description: "Time field that determines grid structure (granularity affects layout)",
182
- mandatory: !0,
183
- maxItems: 1,
184
- acceptTypes: ["timeDimension"],
185
- emptyText: "Drop a time dimension (granularity affects grid structure)"
186
- },
187
- {
188
- key: "valueField",
189
- label: "Activity Measure",
190
- description: "Measure used for activity intensity (color coding)",
191
- mandatory: !0,
192
- maxItems: 1,
193
- acceptTypes: ["measure"],
194
- emptyText: "Drop a measure for activity intensity"
195
- }
196
- ],
197
- displayOptions: ["showLabels", "showTooltip", "hideHeader"],
198
- displayOptionsConfig: [
199
- {
200
- key: "fitToWidth",
201
- label: "Fit to Width",
202
- type: "boolean",
203
- defaultValue: !1,
204
- description: "Automatically size blocks to fill portlet width and height while maintaining aspect ratio"
205
- }
206
- ],
207
- validate: (t) => {
208
- const { dateField: e, valueField: a } = t;
209
- return !e || Array.isArray(e) && e.length === 0 ? {
210
- isValid: !1,
211
- message: "Time dimension is required for activity grid"
212
- } : !a || Array.isArray(a) && a.length === 0 ? {
213
- isValid: !1,
214
- message: "Activity measure is required for intensity mapping"
215
- } : { isValid: !0 };
216
- }
217
- }, Sa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
218
- __proto__: null,
219
- activityGridChartConfig: ka
220
- }, Symbol.toStringTag, { value: "Module" }));
221
- export {
222
- Sa as A,
223
- l as D,
224
- Oa as a,
225
- c as b,
226
- Ra as c,
227
- Ca as d,
228
- Ba as e,
229
- xa as f,
230
- Da as g,
231
- Na as h,
232
- ka as i,
233
- Ia as r,
234
- Ma as s
235
- };
236
- //# sourceMappingURL=chart-activitygridchart-config-BngZDVh_.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chart-activitygridchart-config-BngZDVh_.js","sources":["../../../src/client/icons/defaultIcons.ts","../../../src/client/icons/registry.tsx","../../../src/client/components/charts/ActivityGridChart.config.tsx"],"sourcesContent":["/**\n * Default icon definitions using Iconify icon sets\n * Uses HeroIcons (outline/solid) and Tabler icons via Iconify\n */\n\n// HeroIcons Outline\nimport xMark from '@iconify-icons/heroicons-outline/x-mark'\nimport plus from '@iconify-icons/heroicons-outline/plus'\nimport pencil from '@iconify-icons/heroicons-outline/pencil'\nimport trash from '@iconify-icons/heroicons-outline/trash'\nimport arrowPath from '@iconify-icons/heroicons-outline/arrow-path'\nimport clipboardDocument from '@iconify-icons/heroicons-outline/clipboard-document'\nimport documentDuplicate from '@iconify-icons/heroicons-outline/document-duplicate'\nimport cog from '@iconify-icons/heroicons-outline/cog'\nimport funnel from '@iconify-icons/heroicons-outline/funnel'\nimport share from '@iconify-icons/heroicons-outline/share'\nimport chevronUp from '@iconify-icons/heroicons-outline/chevron-up'\nimport chevronDown from '@iconify-icons/heroicons-outline/chevron-down'\nimport chevronLeft from '@iconify-icons/heroicons-outline/chevron-left'\nimport chevronRight from '@iconify-icons/heroicons-outline/chevron-right'\nimport magnifyingGlass from '@iconify-icons/heroicons-outline/magnifying-glass'\nimport bars3 from '@iconify-icons/heroicons-outline/bars-3'\nimport checkCircle from '@iconify-icons/heroicons-outline/check-circle'\nimport exclamationTriangle from '@iconify-icons/heroicons-outline/exclaimation-triangle'\nimport exclamationCircle from '@iconify-icons/heroicons-outline/exclamation-circle'\nimport sparkles from '@iconify-icons/heroicons-outline/sparkles'\nimport eye from '@iconify-icons/heroicons-outline/eye'\nimport eyeSlash from '@iconify-icons/heroicons-outline/eye-slash'\nimport adjustmentsHorizontal from '@iconify-icons/heroicons-outline/adjustments-horizontal'\nimport computerDesktop from '@iconify-icons/heroicons-outline/computer-desktop'\nimport tableCells from '@iconify-icons/heroicons-outline/table-cells'\nimport link from '@iconify-icons/heroicons-outline/link'\nimport arrowRight from '@iconify-icons/heroicons-outline/arrow-right'\nimport sun from '@iconify-icons/heroicons-outline/sun'\nimport moon from '@iconify-icons/heroicons-outline/moon'\nimport ellipsisHorizontal from '@iconify-icons/heroicons-outline/ellipsis-horizontal'\nimport documentText from '@iconify-icons/heroicons-outline/document-text'\nimport bookOpen from '@iconify-icons/heroicons-outline/book-open'\nimport codeBracket from '@iconify-icons/heroicons-outline/code-bracket'\n\n// HeroIcons Solid (for field type indicators and measures)\nimport chartBarSolid from '@iconify-icons/heroicons-solid/chart-bar'\nimport tagSolid from '@iconify-icons/heroicons-solid/tag'\nimport calendarSolid from '@iconify-icons/heroicons-solid/calendar'\nimport rectangleGroupSolid from '@iconify-icons/heroicons-solid/rectangle-group'\nimport playSolid from '@iconify-icons/heroicons-solid/play'\nimport checkSolid from '@iconify-icons/heroicons-solid/check'\nimport scaleSolid from '@iconify-icons/heroicons-solid/scale'\nimport arrowDownCircleSolid from '@iconify-icons/heroicons-solid/arrow-down-circle'\nimport arrowUpCircleSolid from '@iconify-icons/heroicons-solid/arrow-up-circle'\nimport arrowTrendingUpSolid from '@iconify-icons/heroicons-solid/arrow-trending-up'\nimport beakerSolid from '@iconify-icons/heroicons-solid/beaker'\nimport bars3BottomLeftSolid from '@iconify-icons/heroicons-solid/bars-3-bottom-left'\nimport fingerPrintSolid from '@iconify-icons/heroicons-solid/finger-print'\nimport chartBarSquareSolid from '@iconify-icons/heroicons-solid/chart-bar-square'\nimport plusCircleSolid from '@iconify-icons/heroicons-solid/plus-circle'\nimport hashtagSolid from '@iconify-icons/heroicons-solid/hashtag'\n\n// Tabler icons for chart types (already using these)\nimport chartBarTabler from '@iconify-icons/tabler/chart-bar'\nimport chartLine from '@iconify-icons/tabler/chart-line'\nimport chartAreaLine from '@iconify-icons/tabler/chart-area-line'\nimport chartPie from '@iconify-icons/tabler/chart-pie'\nimport chartDots2 from '@iconify-icons/tabler/chart-dots-2'\nimport chartBubble from '@iconify-icons/tabler/chart-bubble'\nimport chartRadar from '@iconify-icons/tabler/chart-radar'\nimport radar2 from '@iconify-icons/tabler/radar-2'\nimport chartTreemap from '@iconify-icons/tabler/chart-treemap'\nimport table from '@iconify-icons/tabler/table'\nimport calendarStats from '@iconify-icons/tabler/calendar-stats'\nimport number from '@iconify-icons/tabler/number'\nimport trendingUp from '@iconify-icons/tabler/trending-up'\nimport typography from '@iconify-icons/tabler/typography'\nimport fileText from '@iconify-icons/tabler/file-text'\nimport infoCircle from '@iconify-icons/tabler/info-circle'\nimport selector from '@iconify-icons/tabler/selector'\n\nimport type { IconRegistry } from './types'\n\n/**\n * Default icon registry with all icons used in drizzle-cube\n */\nexport const DEFAULT_ICONS: IconRegistry = {\n // Action icons\n close: { icon: xMark, category: 'action' },\n add: { icon: plus, category: 'action' },\n edit: { icon: pencil, category: 'action' },\n delete: { icon: trash, category: 'action' },\n refresh: { icon: arrowPath, category: 'action' },\n copy: { icon: clipboardDocument, category: 'action' },\n duplicate: { icon: documentDuplicate, category: 'action' },\n settings: { icon: cog, category: 'action' },\n filter: { icon: funnel, category: 'action' },\n share: { icon: share, category: 'action' },\n expand: { icon: chevronDown, category: 'action' },\n collapse: { icon: chevronUp, category: 'action' },\n search: { icon: magnifyingGlass, category: 'action' },\n menu: { icon: bars3, category: 'action' },\n run: { icon: playSolid, category: 'action' },\n check: { icon: checkSolid, category: 'action' },\n link: { icon: link, category: 'action' },\n eye: { icon: eye, category: 'action' },\n eyeOff: { icon: eyeSlash, category: 'action' },\n adjustments: { icon: adjustmentsHorizontal, category: 'action' },\n desktop: { icon: computerDesktop, category: 'action' },\n table: { icon: tableCells, category: 'action' },\n sun: { icon: sun, category: 'action' },\n moon: { icon: moon, category: 'action' },\n ellipsisHorizontal: { icon: ellipsisHorizontal, category: 'action' },\n documentText: { icon: documentText, category: 'action' },\n bookOpen: { icon: bookOpen, category: 'action' },\n codeBracket: { icon: codeBracket, category: 'action' },\n\n // Field type icons (solid for visual distinction)\n measure: { icon: chartBarSolid, category: 'field' },\n dimension: { icon: tagSolid, category: 'field' },\n timeDimension: { icon: calendarSolid, category: 'field' },\n segment: { icon: rectangleGroupSolid, category: 'field' },\n\n // Chart type icons (Tabler - keeping existing visuals)\n chartBar: { icon: chartBarTabler, category: 'chart' },\n chartLine: { icon: chartLine, category: 'chart' },\n chartArea: { icon: chartAreaLine, category: 'chart' },\n chartPie: { icon: chartPie, category: 'chart' },\n chartScatter: { icon: chartDots2, category: 'chart' },\n chartBubble: { icon: chartBubble, category: 'chart' },\n chartRadar: { icon: chartRadar, category: 'chart' },\n chartRadialBar: { icon: radar2, category: 'chart' },\n chartTreemap: { icon: chartTreemap, category: 'chart' },\n chartTable: { icon: table, category: 'chart' },\n chartActivityGrid: { icon: calendarStats, category: 'chart' },\n chartKpiNumber: { icon: number, category: 'chart' },\n chartKpiDelta: { icon: trendingUp, category: 'chart' },\n chartKpiText: { icon: typography, category: 'chart' },\n chartMarkdown: { icon: fileText, category: 'chart' },\n\n // Measure type icons (solid)\n measureCount: { icon: bars3BottomLeftSolid, category: 'measure' },\n measureCountDistinct: { icon: fingerPrintSolid, category: 'measure' },\n measureCountDistinctApprox: { icon: chartBarSquareSolid, category: 'measure' },\n measureSum: { icon: plusCircleSolid, category: 'measure' },\n measureAvg: { icon: scaleSolid, category: 'measure' },\n measureMin: { icon: arrowDownCircleSolid, category: 'measure' },\n measureMax: { icon: arrowUpCircleSolid, category: 'measure' },\n measureRunningTotal: { icon: arrowTrendingUpSolid, category: 'measure' },\n measureCalculated: { icon: beakerSolid, category: 'measure' },\n measureNumber: { icon: hashtagSolid, category: 'measure' },\n\n // State icons\n success: { icon: checkCircle, category: 'state' },\n warning: { icon: exclamationTriangle, category: 'state' },\n error: { icon: exclamationCircle, category: 'state' },\n info: { icon: infoCircle, category: 'state' },\n loading: { icon: arrowPath, category: 'state' },\n sparkles: { icon: sparkles, category: 'state' },\n\n // Navigation icons\n chevronUp: { icon: chevronUp, category: 'navigation' },\n chevronDown: { icon: chevronDown, category: 'navigation' },\n chevronLeft: { icon: chevronLeft, category: 'navigation' },\n chevronRight: { icon: chevronRight, category: 'navigation' },\n chevronUpDown: { icon: selector, category: 'navigation' },\n arrowUp: { icon: arrowUpCircleSolid, category: 'navigation' },\n arrowDown: { icon: arrowDownCircleSolid, category: 'navigation' },\n arrowRight: { icon: arrowRight, category: 'navigation' },\n arrowPath: { icon: arrowPath, category: 'navigation' },\n}\n","/**\n * Icon Registry - Centralized icon management following the theme pattern\n * Allows users to override any icon with their own implementations\n */\n\nimport { Icon } from '@iconify/react'\nimport type { IconifyIcon } from '@iconify/types'\nimport type { ComponentType } from 'react'\nimport { DEFAULT_ICONS } from './defaultIcons'\nimport type { IconRegistry, IconName, IconDefinition, IconCategory, IconProps, PartialIconRegistry } from './types'\n\n// Internal mutable registry - starts with defaults\nlet _registry: IconRegistry = { ...DEFAULT_ICONS }\n\n/**\n * Get the full icon registry\n */\nexport function getIconRegistry(): IconRegistry {\n return _registry\n}\n\n/**\n * Get a specific icon as a React component\n * @param name The icon name from the registry\n * @returns A React component that renders the icon\n */\nexport function getIcon(name: IconName): ComponentType<IconProps> {\n const iconDef = _registry[name]\n if (!iconDef) {\n console.warn(`Icon \"${name}\" not found in registry, using fallback`)\n return ({ className, ...props }: IconProps) => (\n <Icon icon={_registry.info.icon} className={className} {...props} />\n )\n }\n\n return ({ className, ...props }: IconProps) => (\n <Icon icon={iconDef.icon} className={className} {...props} />\n )\n}\n\n/**\n * Get icon data directly (for use with Iconify's Icon component)\n * @param name The icon name from the registry\n * @returns The IconifyIcon data\n */\nexport function getIconData(name: IconName): IconifyIcon {\n return _registry[name]?.icon ?? _registry.info.icon\n}\n\n/**\n * Override a single icon in the registry\n * @param name The icon name to override\n * @param icon The new IconifyIcon data\n */\nexport function setIcon(name: IconName, icon: IconifyIcon): void {\n if (_registry[name]) {\n _registry[name] = {\n ..._registry[name],\n icon\n }\n }\n}\n\n/**\n * Register multiple icon overrides at once\n * @param overrides Partial registry with icons to override\n */\nexport function registerIcons(overrides: PartialIconRegistry): void {\n for (const [key, value] of Object.entries(overrides)) {\n if (value && key in _registry) {\n const iconKey = key as IconName\n\n // Check if it's a raw IconifyIcon or a full IconDefinition\n if ('body' in value) {\n // It's an IconifyIcon\n _registry[iconKey] = {\n ..._registry[iconKey],\n icon: value as IconifyIcon\n }\n } else {\n // It's a partial IconDefinition\n const partial = value as Partial<IconDefinition>\n _registry[iconKey] = {\n ..._registry[iconKey],\n ...partial,\n icon: partial.icon ?? _registry[iconKey].icon\n }\n }\n }\n }\n}\n\n/**\n * Reset the registry to default icons\n */\nexport function resetIcons(): void {\n _registry = { ...DEFAULT_ICONS }\n}\n\n/**\n * Get all icons in a specific category\n * @param category The icon category to filter by\n * @returns Record of icon names to their components\n */\nexport function getIconsByCategory(category: IconCategory): Record<string, ComponentType<IconProps>> {\n const result: Record<string, ComponentType<IconProps>> = {}\n\n for (const [key, value] of Object.entries(_registry)) {\n if (value.category === category) {\n result[key] = getIcon(key as IconName)\n }\n }\n\n return result\n}\n\n/**\n * Helper to get measure type icon component\n * @param measureType The measure type (count, avg, sum, etc.)\n * @returns React component for the icon\n */\nexport function getMeasureTypeIcon(measureType: string | undefined): ComponentType<IconProps> {\n const typeMap: Record<string, IconName> = {\n count: 'measureCount',\n countDistinct: 'measureCountDistinct',\n countDistinctApprox: 'measureCountDistinctApprox',\n sum: 'measureSum',\n avg: 'measureAvg',\n min: 'measureMin',\n max: 'measureMax',\n runningTotal: 'measureRunningTotal',\n calculated: 'measureCalculated',\n number: 'measureNumber'\n }\n\n const iconName = typeMap[measureType || ''] || 'measureCount'\n return getIcon(iconName)\n}\n\n/**\n * Helper to get chart type icon component\n * @param chartType The chart type (bar, line, pie, etc.)\n * @returns React component for the icon\n */\nexport function getChartTypeIcon(chartType: string): ComponentType<IconProps> {\n const typeMap: Record<string, IconName> = {\n bar: 'chartBar',\n line: 'chartLine',\n area: 'chartArea',\n pie: 'chartPie',\n scatter: 'chartScatter',\n bubble: 'chartBubble',\n radar: 'chartRadar',\n radialBar: 'chartRadialBar',\n treemap: 'chartTreemap',\n table: 'chartTable',\n activityGrid: 'chartActivityGrid',\n kpiNumber: 'chartKpiNumber',\n kpiDelta: 'chartKpiDelta',\n kpiText: 'chartKpiText',\n markdown: 'chartMarkdown'\n }\n\n const iconName = typeMap[chartType] || 'chartBar'\n return getIcon(iconName)\n}\n\n/**\n * Helper to get field type icon component\n * @param fieldType The field type (measure, dimension, timeDimension)\n * @returns React component for the icon\n */\nexport function getFieldTypeIcon(fieldType: string): ComponentType<IconProps> {\n const typeMap: Record<string, IconName> = {\n measure: 'measure',\n dimension: 'dimension',\n timeDimension: 'timeDimension',\n time: 'timeDimension',\n segment: 'segment'\n }\n\n const iconName = typeMap[fieldType] || 'dimension'\n return getIcon(iconName)\n}\n","import type { ChartTypeConfig } from '../../charts/chartConfigs'\nimport { getChartTypeIcon } from '../../icons'\n\n/**\n * Configuration for the activity grid chart type\n */\nexport const activityGridChartConfig: ChartTypeConfig = {\n icon: getChartTypeIcon('activityGrid'),\n description: 'GitHub-style activity grid showing temporal patterns across different time scales',\n useCase: 'Best for visualizing activity patterns over time. Supports hour (3hr blocks × days), day (days × weeks), week (weeks × months), month (months × quarters), and quarter (quarters × years) granularities',\n dropZones: [\n {\n key: 'dateField',\n label: 'Time Dimension',\n description: 'Time field that determines grid structure (granularity affects layout)',\n mandatory: true,\n maxItems: 1,\n acceptTypes: ['timeDimension'],\n emptyText: 'Drop a time dimension (granularity affects grid structure)'\n },\n {\n key: 'valueField',\n label: 'Activity Measure',\n description: 'Measure used for activity intensity (color coding)',\n mandatory: true,\n maxItems: 1,\n acceptTypes: ['measure'],\n emptyText: 'Drop a measure for activity intensity'\n }\n ],\n displayOptions: ['showLabels', 'showTooltip', 'hideHeader'],\n displayOptionsConfig: [\n {\n key: 'fitToWidth',\n label: 'Fit to Width',\n type: 'boolean',\n defaultValue: false,\n description: 'Automatically size blocks to fill portlet width and height while maintaining aspect ratio'\n }\n ],\n validate: (config) => {\n const { dateField, valueField } = config\n \n if (!dateField || (Array.isArray(dateField) && dateField.length === 0)) {\n return {\n isValid: false,\n message: 'Time dimension is required for activity grid'\n }\n }\n \n if (!valueField || (Array.isArray(valueField) && valueField.length === 0)) {\n return {\n isValid: false,\n message: 'Activity measure is required for intensity mapping'\n }\n }\n \n return { isValid: true }\n }\n}"],"names":["DEFAULT_ICONS","xMark","plus","pencil","trash","arrowPath","clipboardDocument","documentDuplicate","cog","funnel","share","chevronDown","chevronUp","magnifyingGlass","bars3","playSolid","checkSolid","link","eye","eyeSlash","adjustmentsHorizontal","computerDesktop","tableCells","sun","moon","ellipsisHorizontal","documentText","bookOpen","codeBracket","chartBarSolid","tagSolid","calendarSolid","rectangleGroupSolid","chartBarTabler","chartLine","chartAreaLine","chartPie","chartDots2","chartBubble","chartRadar","radar2","chartTreemap","table","calendarStats","number","trendingUp","typography","fileText","bars3BottomLeftSolid","fingerPrintSolid","chartBarSquareSolid","plusCircleSolid","scaleSolid","arrowDownCircleSolid","arrowUpCircleSolid","arrowTrendingUpSolid","beakerSolid","hashtagSolid","checkCircle","exclamationTriangle","exclamationCircle","infoCircle","sparkles","chevronLeft","chevronRight","selector","arrowRight","_registry","getIconRegistry","getIcon","name","iconDef","className","props","jsx","Icon","getIconData","setIcon","icon","registerIcons","overrides","key","value","iconKey","partial","resetIcons","getIconsByCategory","category","result","getMeasureTypeIcon","measureType","iconName","getChartTypeIcon","chartType","getFieldTypeIcon","fieldType","activityGridChartConfig","config","dateField","valueField"],"mappings":"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"}