@maxhealth.tech/prefab 0.2.5 → 0.2.7

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.
package/dist/app.d.ts CHANGED
@@ -9,7 +9,7 @@ import type { ComponentJSON } from './core/component.js';
9
9
  import type { Action, ActionJSON } from './actions/types.js';
10
10
  import type { PipeFn } from './rx/pipes.js';
11
11
  /** Package version — injected by build script, updated at release time. */
12
- export declare const VERSION = "0.2.5";
12
+ export declare const VERSION = "0.2.7";
13
13
  export interface Theme {
14
14
  light?: Record<string, string>;
15
15
  dark?: Record<string, string>;
package/dist/app.js CHANGED
@@ -7,7 +7,7 @@
7
7
  import {} from './core/component.js';
8
8
  import { drainAutoState } from './rx/state-collector.js';
9
9
  /** Package version — injected by build script, updated at release time. */
10
- export const VERSION = '0.2.5';
10
+ export const VERSION = '0.2.7';
11
11
  export class PrefabApp {
12
12
  title;
13
13
  view;
@@ -9,11 +9,19 @@ export interface ChartSeries {
9
9
  color?: string;
10
10
  /** Which Y-axis this series binds to: 'left' (default) or 'right'. */
11
11
  yAxisId?: 'left' | 'right';
12
+ /** Pipe expression for this series' value in the tooltip (e.g. "currency:'EUR'"). Overrides yAxisFormat. */
13
+ tooltipFormat?: string;
12
14
  }
13
15
  export interface BaseChartProps extends ComponentProps {
14
16
  data: unknown[];
15
17
  series: ChartSeries[];
16
18
  xAxis?: string;
19
+ /** Data key used for the tooltip category label instead of xAxis. */
20
+ tooltipXKey?: string;
21
+ /** Pipe expression applied to x-axis tick labels (e.g. "date", "truncate:10"). */
22
+ xAxisFormat?: string;
23
+ /** Pipe expression applied to the category label in tooltips (e.g. "datetime"). Defaults to raw value. */
24
+ tooltipXFormat?: string;
17
25
  height?: number;
18
26
  showLegend?: boolean;
19
27
  showTooltip?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/charts/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAI7D,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CAC3B;AAID,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,IAAI,EAAE,OAAO,EAAE,CAAA;IACf,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,4EAA4E;IAC5E,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAsBD,MAAM,WAAW,aAAc,SAAQ,cAAc;IACnD,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS,CAQxD;AAID,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,CAI1D;AAID,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,CAI1D;AAID,wBAAgB,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,CAIzD;AAID,wBAAgB,UAAU,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,CAI3D;AAID,wBAAgB,YAAY,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,CAI7D;AAID,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,KAAK,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAA;IACpC,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;CACtB;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,CAU1D;AAID,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,SAAS,CAQ9D;AAID,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,CAW1D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/charts/index.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,9 @@ function chartGetProps(props, extra) {
7
7
  data: props.data,
8
8
  series: props.series,
9
9
  ...(props.xAxis && { xAxis: props.xAxis }),
10
+ ...(props.tooltipXKey && { tooltipXKey: props.tooltipXKey }),
11
+ ...(props.xAxisFormat && { xAxisFormat: props.xAxisFormat }),
12
+ ...(props.tooltipXFormat && { tooltipXFormat: props.tooltipXFormat }),
10
13
  ...(props.height !== undefined && { height: props.height }),
11
14
  ...(props.showLegend !== undefined && { showLegend: props.showLegend }),
12
15
  ...(props.showTooltip !== undefined && { showTooltip: props.showTooltip }),
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/charts/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/charts/index.ts"],"names":[],"mappings":"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"}
package/dist/prefab.css CHANGED
@@ -736,6 +736,27 @@
736
736
  .pf-chart { position: relative; }
737
737
  .pf-chart svg { display: block; width: 100%; height: auto; }
738
738
 
739
+ .pf-chart-tooltip {
740
+ position: absolute;
741
+ pointer-events: none;
742
+ z-index: 50;
743
+ background: var(--popover, #fff);
744
+ color: var(--popover-foreground, #09090b);
745
+ border: 1px solid var(--border, #e5e7eb);
746
+ border-radius: var(--radius, 0.375rem);
747
+ padding: 0.375rem 0.625rem;
748
+ font-size: 0.75rem;
749
+ line-height: 1.25rem;
750
+ box-shadow: 0 2px 8px rgb(0 0 0 / 0.12);
751
+ white-space: nowrap;
752
+ opacity: 0;
753
+ transition: opacity 0.15s ease;
754
+ }
755
+ .pf-chart-tooltip.pf-visible { opacity: 1; }
756
+ .pf-chart-tooltip-label { font-weight: 500; margin-bottom: 0.125rem; }
757
+ .pf-chart-tooltip-row { display: flex; align-items: center; gap: 0.375rem; }
758
+ .pf-chart-tooltip-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
759
+
739
760
  .pf-chart-legend { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 0.75rem; font-size: 0.75rem; }
740
761
  .pf-chart-legend-item { display: flex; align-items: center; gap: 0.375rem; }
741
762
 
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Chart tooltip — hit-zone overlays, crosshair, data dots, and tooltip popup.
3
+ *
4
+ * Extracted from charts.ts to keep each file under 700 LOC.
5
+ */
6
+ import type { ChartLayout, SeriesEntry } from './charts.js';
7
+ export interface TooltipEntry {
8
+ label: string;
9
+ value: string | number;
10
+ color: string;
11
+ }
12
+ export interface TooltipCtx {
13
+ wrapper: HTMLElement;
14
+ tooltip: HTMLElement;
15
+ svgEl: SVGSVGElement;
16
+ }
17
+ /** Create and attach a tooltip div to the chart wrapper. */
18
+ export declare function createTooltip(wrapper: HTMLElement, svg: SVGSVGElement): TooltipCtx;
19
+ /** Show the tooltip at a position relative to the SVG. */
20
+ export declare function showTooltipAt(ctx: TooltipCtx, svgX: number, _svgY: number, categoryLabel: string | undefined, entries: TooltipEntry[]): void;
21
+ /** Attach hover hit-zones for bar chart columns. */
22
+ export declare function addBarTooltipZones(ctx: TooltipCtx, svg: SVGSVGElement, data: Record<string, unknown>[], series: SeriesEntry[], layout: ChartLayout, xAxisKey: string | undefined, formatValue: (raw: unknown, s: SeriesEntry, si: number) => string, formatLabel?: (raw: unknown) => string): void;
23
+ /** Attach hover hit-zones for line/area chart data points. */
24
+ export declare function addLineTooltipZones(ctx: TooltipCtx, svg: SVGSVGElement, data: Record<string, unknown>[], allSeries: SeriesEntry[], layout: ChartLayout, xAxisKey: string | undefined, formatValue: (raw: unknown, s: SeriesEntry, si: number) => string, crosshair?: SVGLineElement, dotGroups?: SVGCircleElement[][], formatLabel?: (raw: unknown) => string): void;
25
+ //# sourceMappingURL=chart-tooltip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-tooltip.d.ts","sourceRoot":"","sources":["../../../src/renderer/components/chart-tooltip.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAI3D,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,WAAW,CAAA;IACpB,OAAO,EAAE,WAAW,CAAA;IACpB,KAAK,EAAE,aAAa,CAAA;CACrB;AAED,4DAA4D;AAC5D,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,GAAG,UAAU,CAUlF;AAED,0DAA0D;AAC1D,wBAAgB,aAAa,CAC3B,GAAG,EAAE,UAAU,EACf,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,OAAO,EAAE,YAAY,EAAE,GACtB,IAAI,CA8BN;AAMD,oDAAoD;AACpD,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,aAAa,EAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC/B,MAAM,EAAE,WAAW,EAAE,EACrB,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,WAAW,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,KAAK,MAAM,EACjE,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,GACrC,IAAI,CA+BN;AAED,8DAA8D;AAC9D,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,aAAa,EAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC/B,SAAS,EAAE,WAAW,EAAE,EACxB,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,WAAW,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,KAAK,MAAM,EACjE,SAAS,CAAC,EAAE,cAAc,EAC1B,SAAS,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAChC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,GACrC,IAAI,CAyDN"}
@@ -0,0 +1,139 @@
1
+ /**
2
+ * Chart tooltip — hit-zone overlays, crosshair, data dots, and tooltip popup.
3
+ *
4
+ * Extracted from charts.ts to keep each file under 700 LOC.
5
+ */
6
+ const COLORS = ['#3b82f6', '#10b981', '#f59e0b', '#ef4444', '#8b5cf6', '#ec4899'];
7
+ /** Create and attach a tooltip div to the chart wrapper. */
8
+ export function createTooltip(wrapper, svg) {
9
+ const tooltip = document.createElement('div');
10
+ tooltip.className = 'pf-chart-tooltip';
11
+ wrapper.appendChild(tooltip);
12
+ wrapper.addEventListener('mouseleave', () => {
13
+ tooltip.classList.remove('pf-visible');
14
+ });
15
+ return { wrapper, tooltip, svgEl: svg };
16
+ }
17
+ /** Show the tooltip at a position relative to the SVG. */
18
+ export function showTooltipAt(ctx, svgX, _svgY, categoryLabel, entries) {
19
+ const { tooltip, svgEl, wrapper } = ctx;
20
+ if (entries.length === 0)
21
+ return;
22
+ let html = '';
23
+ if (categoryLabel) {
24
+ html += `<div class="pf-chart-tooltip-label">${esc(categoryLabel)}</div>`;
25
+ }
26
+ for (const e of entries) {
27
+ html += `<div class="pf-chart-tooltip-row">`;
28
+ html += `<span class="pf-chart-tooltip-dot" style="background:${esc(e.color)}"></span>`;
29
+ html += `<span>${esc(e.label)}:</span> <strong>${esc(String(e.value))}</strong>`;
30
+ html += `</div>`;
31
+ }
32
+ tooltip.innerHTML = html;
33
+ const svgRect = svgEl.getBoundingClientRect();
34
+ const wrapRect = wrapper.getBoundingClientRect();
35
+ const viewBox = svgEl.viewBox.baseVal;
36
+ const scaleX = svgRect.width / (viewBox.width || 1);
37
+ const pixelX = svgRect.left - wrapRect.left + svgX * scaleX;
38
+ const tooltipW = tooltip.offsetWidth || 100;
39
+ let left = pixelX + 12;
40
+ if (left + tooltipW > wrapRect.width) {
41
+ left = pixelX - tooltipW - 12;
42
+ }
43
+ tooltip.style.left = `${Math.max(0, left)}px`;
44
+ tooltip.style.top = '4px';
45
+ tooltip.classList.add('pf-visible');
46
+ }
47
+ function esc(s) {
48
+ return s.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
49
+ }
50
+ /** Attach hover hit-zones for bar chart columns. */
51
+ export function addBarTooltipZones(ctx, svg, data, series, layout, xAxisKey, formatValue, formatLabel) {
52
+ const groupW = layout.plotWidth / data.length;
53
+ for (let di = 0; di < data.length; di++) {
54
+ const x = layout.plotLeft + di * groupW;
55
+ const zone = document.createElementNS('http://www.w3.org/2000/svg', 'rect');
56
+ zone.setAttribute('x', String(x));
57
+ zone.setAttribute('y', String(layout.plotTop));
58
+ zone.setAttribute('width', String(groupW));
59
+ zone.setAttribute('height', String(layout.plotHeight));
60
+ zone.setAttribute('fill', 'transparent');
61
+ zone.style.cursor = 'default';
62
+ const rawLabel = xAxisKey ? data[di][xAxisKey] : undefined;
63
+ const label = rawLabel != null
64
+ ? (formatLabel ? formatLabel(rawLabel) : String(rawLabel))
65
+ : undefined;
66
+ const entries = series.map((s, si) => ({
67
+ label: s.label ?? s.dataKey,
68
+ value: formatValue(data[di][s.dataKey], s, si),
69
+ color: s.color ?? COLORS[si % COLORS.length],
70
+ }));
71
+ const centerX = x + groupW / 2;
72
+ const show = () => showTooltipAt(ctx, centerX, layout.plotTop, label, entries);
73
+ const hide = () => ctx.tooltip.classList.remove('pf-visible');
74
+ zone.addEventListener('mouseenter', show);
75
+ zone.addEventListener('mouseleave', hide);
76
+ zone.addEventListener('touchstart', show, { passive: true });
77
+ zone.addEventListener('touchend', hide, { passive: true });
78
+ svg.appendChild(zone);
79
+ }
80
+ }
81
+ /** Attach hover hit-zones for line/area chart data points. */
82
+ export function addLineTooltipZones(ctx, svg, data, allSeries, layout, xAxisKey, formatValue, crosshair, dotGroups, formatLabel) {
83
+ const step = data.length === 1 ? layout.plotWidth : layout.plotWidth / (data.length - 1);
84
+ for (let di = 0; di < data.length; di++) {
85
+ const centerX = data.length === 1
86
+ ? (layout.plotLeft + layout.plotRight) / 2
87
+ : layout.plotLeft + (di / (data.length - 1)) * layout.plotWidth;
88
+ const zoneX = data.length === 1 ? layout.plotLeft : centerX - step / 2;
89
+ const zoneW = data.length === 1 ? layout.plotWidth : step;
90
+ const zone = document.createElementNS('http://www.w3.org/2000/svg', 'rect');
91
+ zone.setAttribute('x', String(Math.max(layout.plotLeft, zoneX)));
92
+ zone.setAttribute('y', String(layout.plotTop));
93
+ zone.setAttribute('width', String(Math.min(zoneW, layout.plotRight - Math.max(layout.plotLeft, zoneX))));
94
+ zone.setAttribute('height', String(layout.plotHeight));
95
+ zone.setAttribute('fill', 'transparent');
96
+ zone.style.cursor = 'default';
97
+ const rawLabel = xAxisKey ? data[di][xAxisKey] : undefined;
98
+ const label = rawLabel != null
99
+ ? (formatLabel ? formatLabel(rawLabel) : String(rawLabel))
100
+ : undefined;
101
+ const entries = allSeries.map((s, si) => ({
102
+ label: s.label ?? s.dataKey,
103
+ value: formatValue(data[di][s.dataKey], s, si),
104
+ color: s.color ?? COLORS[si % COLORS.length],
105
+ }));
106
+ const showHover = () => {
107
+ showTooltipAt(ctx, centerX, layout.plotTop, label, entries);
108
+ if (crosshair) {
109
+ crosshair.setAttribute('x1', String(centerX));
110
+ crosshair.setAttribute('x2', String(centerX));
111
+ crosshair.setAttribute('opacity', '1');
112
+ }
113
+ if (dotGroups) {
114
+ for (const dots of dotGroups) {
115
+ for (const dot of dots)
116
+ dot.setAttribute('data-visible', 'false');
117
+ dots[di]?.setAttribute('data-visible', 'true');
118
+ }
119
+ }
120
+ };
121
+ const hideHover = () => {
122
+ ctx.tooltip.classList.remove('pf-visible');
123
+ if (crosshair)
124
+ crosshair.setAttribute('opacity', '0');
125
+ if (dotGroups) {
126
+ for (const dots of dotGroups) {
127
+ for (const dot of dots)
128
+ dot.setAttribute('data-visible', 'false');
129
+ }
130
+ }
131
+ };
132
+ zone.addEventListener('mouseenter', showHover);
133
+ zone.addEventListener('mouseleave', hideHover);
134
+ zone.addEventListener('touchstart', showHover, { passive: true });
135
+ zone.addEventListener('touchend', hideHover, { passive: true });
136
+ svg.appendChild(zone);
137
+ }
138
+ }
139
+ //# sourceMappingURL=chart-tooltip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-tooltip.js","sourceRoot":"","sources":["../../../src/renderer/components/chart-tooltip.ts"],"names":[],"mappings":"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"}
@@ -5,4 +5,21 @@
5
5
  * For production use, these can be enhanced with a charting library.
6
6
  */
7
7
  export declare function registerChartComponents(): void;
8
+ export interface SeriesEntry {
9
+ dataKey: string;
10
+ label?: string;
11
+ color?: string;
12
+ yAxisId?: 'left' | 'right';
13
+ tooltipFormat?: string;
14
+ }
15
+ export interface ChartLayout {
16
+ /** Usable plot area after axis padding */
17
+ plotLeft: number;
18
+ plotRight: number;
19
+ plotTop: number;
20
+ plotBottom: number;
21
+ plotWidth: number;
22
+ plotHeight: number;
23
+ }
24
+ export declare function formatYValue(value: number, format?: string): string;
8
25
  //# sourceMappingURL=charts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"charts.d.ts","sourceRoot":"","sources":["../../../src/renderer/components/charts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,wBAAgB,uBAAuB,IAAI,IAAI,CAS9C"}
1
+ {"version":3,"file":"charts.d.ts","sourceRoot":"","sources":["../../../src/renderer/components/charts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,wBAAgB,uBAAuB,IAAI,IAAI,CAS9C;AAOD,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAID,MAAM,WAAW,WAAW;IAC1B,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;CACnB;AA+ID,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAMnE"}