@maxhealth.tech/prefab 0.1.2
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/CHANGELOG.md +51 -0
- package/LICENSE +21 -0
- package/README.md +340 -0
- package/dist/actions/client.d.ts +98 -0
- package/dist/actions/client.d.ts.map +1 -0
- package/dist/actions/client.js +188 -0
- package/dist/actions/client.js.map +1 -0
- package/dist/actions/index.d.ts +6 -0
- package/dist/actions/index.d.ts.map +1 -0
- package/dist/actions/index.js +3 -0
- package/dist/actions/index.js.map +1 -0
- package/dist/actions/mcp.d.ts +37 -0
- package/dist/actions/mcp.d.ts.map +1 -0
- package/dist/actions/mcp.js +64 -0
- package/dist/actions/mcp.js.map +1 -0
- package/dist/actions/types.d.ts +16 -0
- package/dist/actions/types.d.ts.map +1 -0
- package/dist/actions/types.js +8 -0
- package/dist/actions/types.js.map +1 -0
- package/dist/app.d.ts +65 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +120 -0
- package/dist/app.js.map +1 -0
- package/dist/auto/chart.d.ts +36 -0
- package/dist/auto/chart.d.ts.map +1 -0
- package/dist/auto/chart.js +50 -0
- package/dist/auto/chart.js.map +1 -0
- package/dist/auto/comparison.d.ts +32 -0
- package/dist/auto/comparison.d.ts.map +1 -0
- package/dist/auto/comparison.js +66 -0
- package/dist/auto/comparison.js.map +1 -0
- package/dist/auto/form.d.ts +50 -0
- package/dist/auto/form.d.ts.map +1 -0
- package/dist/auto/form.js +68 -0
- package/dist/auto/form.js.map +1 -0
- package/dist/auto/index.d.ts +84 -0
- package/dist/auto/index.d.ts.map +1 -0
- package/dist/auto/index.js +240 -0
- package/dist/auto/index.js.map +1 -0
- package/dist/auto/metrics.d.ts +44 -0
- package/dist/auto/metrics.d.ts.map +1 -0
- package/dist/auto/metrics.js +55 -0
- package/dist/auto/metrics.js.map +1 -0
- package/dist/auto/progress.d.ts +38 -0
- package/dist/auto/progress.d.ts.map +1 -0
- package/dist/auto/progress.js +72 -0
- package/dist/auto/progress.js.map +1 -0
- package/dist/auto/timeline.d.ts +41 -0
- package/dist/auto/timeline.d.ts.map +1 -0
- package/dist/auto/timeline.js +72 -0
- package/dist/auto/timeline.js.map +1 -0
- package/dist/components/alert/index.d.ts +14 -0
- package/dist/components/alert/index.d.ts.map +1 -0
- package/dist/components/alert/index.js +31 -0
- package/dist/components/alert/index.js.map +1 -0
- package/dist/components/card/index.d.ts +12 -0
- package/dist/components/card/index.d.ts.map +1 -0
- package/dist/components/card/index.js +33 -0
- package/dist/components/card/index.js.map +1 -0
- package/dist/components/charts/index.d.ts +57 -0
- package/dist/components/charts/index.d.ts.map +1 -0
- package/dist/components/charts/index.js +91 -0
- package/dist/components/charts/index.js.map +1 -0
- package/dist/components/control/index.d.ts +48 -0
- package/dist/components/control/index.d.ts.map +1 -0
- package/dist/components/control/index.js +47 -0
- package/dist/components/control/index.js.map +1 -0
- package/dist/components/data/index.d.ts +53 -0
- package/dist/components/data/index.d.ts.map +1 -0
- package/dist/components/data/index.js +88 -0
- package/dist/components/data/index.js.map +1 -0
- package/dist/components/form/index.d.ts +103 -0
- package/dist/components/form/index.d.ts.map +1 -0
- package/dist/components/form/index.js +247 -0
- package/dist/components/form/index.js.map +1 -0
- package/dist/components/interactive/index.d.ts +33 -0
- package/dist/components/interactive/index.d.ts.map +1 -0
- package/dist/components/interactive/index.js +59 -0
- package/dist/components/interactive/index.js.map +1 -0
- package/dist/components/layout/index.d.ts +61 -0
- package/dist/components/layout/index.d.ts.map +1 -0
- package/dist/components/layout/index.js +86 -0
- package/dist/components/layout/index.js.map +1 -0
- package/dist/components/media/index.d.ts +17 -0
- package/dist/components/media/index.d.ts.map +1 -0
- package/dist/components/media/index.js +41 -0
- package/dist/components/media/index.js.map +1 -0
- package/dist/components/table/index.d.ts +28 -0
- package/dist/components/table/index.d.ts.map +1 -0
- package/dist/components/table/index.js +56 -0
- package/dist/components/table/index.js.map +1 -0
- package/dist/components/typography/index.d.ts +34 -0
- package/dist/components/typography/index.d.ts.map +1 -0
- package/dist/components/typography/index.js +93 -0
- package/dist/components/typography/index.js.map +1 -0
- package/dist/core/component.d.ts +67 -0
- package/dist/core/component.d.ts.map +1 -0
- package/dist/core/component.js +122 -0
- package/dist/core/component.js.map +1 -0
- package/dist/core/index.d.ts +5 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +3 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/validate.d.ts +30 -0
- package/dist/core/validate.d.ts.map +1 -0
- package/dist/core/validate.js +178 -0
- package/dist/core/validate.js.map +1 -0
- package/dist/index.d.ts +48 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +48 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/display.d.ts +102 -0
- package/dist/mcp/display.d.ts.map +1 -0
- package/dist/mcp/display.js +124 -0
- package/dist/mcp/display.js.map +1 -0
- package/dist/mcp/index.d.ts +7 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +5 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/types.d.ts +35 -0
- package/dist/mcp/types.d.ts.map +1 -0
- package/dist/mcp/types.js +8 -0
- package/dist/mcp/types.js.map +1 -0
- package/dist/renderer/actions.d.ts +36 -0
- package/dist/renderer/actions.d.ts.map +1 -0
- package/dist/renderer/actions.js +296 -0
- package/dist/renderer/actions.js.map +1 -0
- package/dist/renderer/app.d.ts +87 -0
- package/dist/renderer/app.d.ts.map +1 -0
- package/dist/renderer/app.js +166 -0
- package/dist/renderer/app.js.map +1 -0
- package/dist/renderer/bridge.d.ts +91 -0
- package/dist/renderer/bridge.d.ts.map +1 -0
- package/dist/renderer/bridge.js +302 -0
- package/dist/renderer/bridge.js.map +1 -0
- package/dist/renderer/components/alert.d.ts +5 -0
- package/dist/renderer/components/alert.d.ts.map +1 -0
- package/dist/renderer/components/alert.js +44 -0
- package/dist/renderer/components/alert.js.map +1 -0
- package/dist/renderer/components/card.d.ts +5 -0
- package/dist/renderer/components/card.d.ts.map +1 -0
- package/dist/renderer/components/card.js +38 -0
- package/dist/renderer/components/card.js.map +1 -0
- package/dist/renderer/components/charts.d.ts +8 -0
- package/dist/renderer/components/charts.d.ts.map +1 -0
- package/dist/renderer/components/charts.js +232 -0
- package/dist/renderer/components/charts.js.map +1 -0
- package/dist/renderer/components/control.d.ts +5 -0
- package/dist/renderer/components/control.d.ts.map +1 -0
- package/dist/renderer/components/control.js +140 -0
- package/dist/renderer/components/control.js.map +1 -0
- package/dist/renderer/components/data.d.ts +5 -0
- package/dist/renderer/components/data.d.ts.map +1 -0
- package/dist/renderer/components/data.js +268 -0
- package/dist/renderer/components/data.js.map +1 -0
- package/dist/renderer/components/form.d.ts +5 -0
- package/dist/renderer/components/form.d.ts.map +1 -0
- package/dist/renderer/components/form.js +523 -0
- package/dist/renderer/components/form.js.map +1 -0
- package/dist/renderer/components/index.d.ts +5 -0
- package/dist/renderer/components/index.d.ts.map +1 -0
- package/dist/renderer/components/index.js +32 -0
- package/dist/renderer/components/index.js.map +1 -0
- package/dist/renderer/components/interactive.d.ts +5 -0
- package/dist/renderer/components/interactive.d.ts.map +1 -0
- package/dist/renderer/components/interactive.js +324 -0
- package/dist/renderer/components/interactive.js.map +1 -0
- package/dist/renderer/components/layout.d.ts +5 -0
- package/dist/renderer/components/layout.d.ts.map +1 -0
- package/dist/renderer/components/layout.js +113 -0
- package/dist/renderer/components/layout.js.map +1 -0
- package/dist/renderer/components/media.d.ts +5 -0
- package/dist/renderer/components/media.d.ts.map +1 -0
- package/dist/renderer/components/media.js +132 -0
- package/dist/renderer/components/media.js.map +1 -0
- package/dist/renderer/components/table.d.ts +5 -0
- package/dist/renderer/components/table.d.ts.map +1 -0
- package/dist/renderer/components/table.js +101 -0
- package/dist/renderer/components/table.js.map +1 -0
- package/dist/renderer/components/typography.d.ts +5 -0
- package/dist/renderer/components/typography.d.ts.map +1 -0
- package/dist/renderer/components/typography.js +90 -0
- package/dist/renderer/components/typography.js.map +1 -0
- package/dist/renderer/engine.d.ts +53 -0
- package/dist/renderer/engine.d.ts.map +1 -0
- package/dist/renderer/engine.js +112 -0
- package/dist/renderer/engine.js.map +1 -0
- package/dist/renderer/index.d.ts +94 -0
- package/dist/renderer/index.d.ts.map +1 -0
- package/dist/renderer/index.js +215 -0
- package/dist/renderer/index.js.map +1 -0
- package/dist/renderer/rx.d.ts +37 -0
- package/dist/renderer/rx.d.ts.map +1 -0
- package/dist/renderer/rx.js +360 -0
- package/dist/renderer/rx.js.map +1 -0
- package/dist/renderer/state.d.ts +34 -0
- package/dist/renderer/state.d.ts.map +1 -0
- package/dist/renderer/state.js +132 -0
- package/dist/renderer/state.js.map +1 -0
- package/dist/renderer/theme.d.ts +13 -0
- package/dist/renderer/theme.d.ts.map +1 -0
- package/dist/renderer/theme.js +69 -0
- package/dist/renderer/theme.js.map +1 -0
- package/dist/renderer/transport.d.ts +22 -0
- package/dist/renderer/transport.d.ts.map +1 -0
- package/dist/renderer/transport.js +69 -0
- package/dist/renderer/transport.js.map +1 -0
- package/dist/renderer.min.js +83 -0
- package/dist/rx/index.d.ts +2 -0
- package/dist/rx/index.d.ts.map +1 -0
- package/dist/rx/index.js +2 -0
- package/dist/rx/index.js.map +1 -0
- package/dist/rx/rx.d.ts +81 -0
- package/dist/rx/rx.d.ts.map +1 -0
- package/dist/rx/rx.js +196 -0
- package/dist/rx/rx.js.map +1 -0
- package/package.json +84 -0
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interactive component renderers — Tabs, Accordion, Dialog, Popover, Tooltip, etc.
|
|
3
|
+
*/
|
|
4
|
+
import { registerComponent, renderChildren, renderNode, resolveStr, el } from '../engine.js';
|
|
5
|
+
export function registerInteractiveComponents() {
|
|
6
|
+
registerComponent('Tabs', renderTabs);
|
|
7
|
+
registerComponent('Tab', renderTab);
|
|
8
|
+
registerComponent('Accordion', renderAccordion);
|
|
9
|
+
registerComponent('AccordionItem', renderAccordionItem);
|
|
10
|
+
registerComponent('Dialog', renderDialog);
|
|
11
|
+
registerComponent('Popover', renderPopover);
|
|
12
|
+
registerComponent('Tooltip', renderTooltip);
|
|
13
|
+
registerComponent('HoverCard', renderHoverCard);
|
|
14
|
+
registerComponent('Carousel', renderCarousel);
|
|
15
|
+
}
|
|
16
|
+
function renderTabs(node, ctx) {
|
|
17
|
+
const wrapper = el('div', 'pf-tabs');
|
|
18
|
+
const tabBar = el('div', 'pf-tabs-bar');
|
|
19
|
+
tabBar.setAttribute('role', 'tablist');
|
|
20
|
+
tabBar.style.display = 'flex';
|
|
21
|
+
tabBar.style.gap = '4px';
|
|
22
|
+
tabBar.style.borderBottom = '2px solid var(--border, #e5e7eb)';
|
|
23
|
+
tabBar.style.marginBottom = '12px';
|
|
24
|
+
const panels = [];
|
|
25
|
+
const buttons = [];
|
|
26
|
+
if (node.children) {
|
|
27
|
+
for (let i = 0; i < node.children.length; i++) {
|
|
28
|
+
const tab = node.children[i];
|
|
29
|
+
const tabId = `pf-tab-${Math.random().toString(36).slice(2, 8)}`;
|
|
30
|
+
const panelId = `pf-panel-${Math.random().toString(36).slice(2, 8)}`;
|
|
31
|
+
const btn = document.createElement('button');
|
|
32
|
+
btn.type = 'button';
|
|
33
|
+
btn.className = 'pf-tab-trigger';
|
|
34
|
+
btn.textContent = tab.title ?? `Tab ${i + 1}`;
|
|
35
|
+
btn.setAttribute('role', 'tab');
|
|
36
|
+
btn.setAttribute('aria-selected', i === 0 ? 'true' : 'false');
|
|
37
|
+
btn.setAttribute('aria-controls', panelId);
|
|
38
|
+
btn.id = tabId;
|
|
39
|
+
btn.tabIndex = i === 0 ? 0 : -1;
|
|
40
|
+
btn.style.padding = '8px 16px';
|
|
41
|
+
btn.style.border = 'none';
|
|
42
|
+
btn.style.background = 'none';
|
|
43
|
+
btn.style.cursor = 'pointer';
|
|
44
|
+
btn.style.borderBottom = '2px solid transparent';
|
|
45
|
+
btn.style.marginBottom = '-2px';
|
|
46
|
+
btn.style.fontSize = '14px';
|
|
47
|
+
const panel = el('div', 'pf-tab-panel');
|
|
48
|
+
panel.style.display = i === 0 ? 'block' : 'none';
|
|
49
|
+
panel.setAttribute('role', 'tabpanel');
|
|
50
|
+
panel.setAttribute('aria-labelledby', tabId);
|
|
51
|
+
panel.id = panelId;
|
|
52
|
+
panel.tabIndex = 0;
|
|
53
|
+
renderChildren(tab, panel, ctx);
|
|
54
|
+
btn.addEventListener('click', () => {
|
|
55
|
+
activateTab(i);
|
|
56
|
+
});
|
|
57
|
+
if (i === 0) {
|
|
58
|
+
btn.style.borderBottomColor = 'var(--primary, #3b82f6)';
|
|
59
|
+
btn.style.fontWeight = '600';
|
|
60
|
+
}
|
|
61
|
+
buttons.push(btn);
|
|
62
|
+
panels.push(panel);
|
|
63
|
+
tabBar.appendChild(btn);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
// Shared tab activation
|
|
67
|
+
function activateTab(index) {
|
|
68
|
+
panels.forEach(p => p.style.display = 'none');
|
|
69
|
+
buttons.forEach(b => {
|
|
70
|
+
b.style.borderBottomColor = 'transparent';
|
|
71
|
+
b.style.fontWeight = 'normal';
|
|
72
|
+
b.setAttribute('aria-selected', 'false');
|
|
73
|
+
b.tabIndex = -1;
|
|
74
|
+
});
|
|
75
|
+
panels[index].style.display = 'block';
|
|
76
|
+
buttons[index].style.borderBottomColor = 'var(--primary, #3b82f6)';
|
|
77
|
+
buttons[index].style.fontWeight = '600';
|
|
78
|
+
buttons[index].setAttribute('aria-selected', 'true');
|
|
79
|
+
buttons[index].tabIndex = 0;
|
|
80
|
+
buttons[index].focus();
|
|
81
|
+
}
|
|
82
|
+
// Keyboard navigation (arrow keys)
|
|
83
|
+
tabBar.addEventListener('keydown', (e) => {
|
|
84
|
+
const current = buttons.indexOf(e.target);
|
|
85
|
+
if (current < 0)
|
|
86
|
+
return;
|
|
87
|
+
let next;
|
|
88
|
+
if (e.key === 'ArrowRight')
|
|
89
|
+
next = (current + 1) % buttons.length;
|
|
90
|
+
else if (e.key === 'ArrowLeft')
|
|
91
|
+
next = (current - 1 + buttons.length) % buttons.length;
|
|
92
|
+
else if (e.key === 'Home')
|
|
93
|
+
next = 0;
|
|
94
|
+
else if (e.key === 'End')
|
|
95
|
+
next = buttons.length - 1;
|
|
96
|
+
else
|
|
97
|
+
return;
|
|
98
|
+
e.preventDefault();
|
|
99
|
+
activateTab(next);
|
|
100
|
+
});
|
|
101
|
+
wrapper.appendChild(tabBar);
|
|
102
|
+
for (const panel of panels)
|
|
103
|
+
wrapper.appendChild(panel);
|
|
104
|
+
return wrapper;
|
|
105
|
+
}
|
|
106
|
+
function renderTab(node, ctx) {
|
|
107
|
+
// Tabs handles Tab children directly; standalone fallback
|
|
108
|
+
const e = el('div', 'pf-tab');
|
|
109
|
+
renderChildren(node, e, ctx);
|
|
110
|
+
return e;
|
|
111
|
+
}
|
|
112
|
+
function renderAccordion(node, ctx) {
|
|
113
|
+
const e = el('div', 'pf-accordion');
|
|
114
|
+
renderChildren(node, e, ctx);
|
|
115
|
+
return e;
|
|
116
|
+
}
|
|
117
|
+
function renderAccordionItem(node, ctx) {
|
|
118
|
+
const wrapper = el('div', 'pf-accordion-item');
|
|
119
|
+
wrapper.style.borderBottom = '1px solid var(--border, #e5e7eb)';
|
|
120
|
+
const contentId = `pf-acc-${Math.random().toString(36).slice(2, 8)}`;
|
|
121
|
+
const trigger = document.createElement('button');
|
|
122
|
+
trigger.type = 'button';
|
|
123
|
+
trigger.className = 'pf-accordion-trigger';
|
|
124
|
+
trigger.textContent = node.title ?? '';
|
|
125
|
+
trigger.setAttribute('aria-expanded', 'false');
|
|
126
|
+
trigger.setAttribute('aria-controls', contentId);
|
|
127
|
+
trigger.style.width = '100%';
|
|
128
|
+
trigger.style.textAlign = 'left';
|
|
129
|
+
trigger.style.padding = '12px 0';
|
|
130
|
+
trigger.style.border = 'none';
|
|
131
|
+
trigger.style.background = 'none';
|
|
132
|
+
trigger.style.cursor = 'pointer';
|
|
133
|
+
trigger.style.fontSize = '14px';
|
|
134
|
+
trigger.style.fontWeight = '500';
|
|
135
|
+
const content = el('div', 'pf-accordion-content');
|
|
136
|
+
content.id = contentId;
|
|
137
|
+
content.setAttribute('role', 'region');
|
|
138
|
+
content.setAttribute('aria-labelledby', trigger.id);
|
|
139
|
+
content.style.display = 'none';
|
|
140
|
+
content.style.paddingBottom = '12px';
|
|
141
|
+
renderChildren(node, content, ctx);
|
|
142
|
+
trigger.addEventListener('click', () => {
|
|
143
|
+
const open = content.style.display !== 'none';
|
|
144
|
+
content.style.display = open ? 'none' : 'block';
|
|
145
|
+
trigger.setAttribute('aria-expanded', open ? 'false' : 'true');
|
|
146
|
+
});
|
|
147
|
+
wrapper.appendChild(trigger);
|
|
148
|
+
wrapper.appendChild(content);
|
|
149
|
+
return wrapper;
|
|
150
|
+
}
|
|
151
|
+
function renderDialog(node, ctx) {
|
|
152
|
+
const wrapper = el('div', 'pf-dialog-wrapper');
|
|
153
|
+
// Trigger button
|
|
154
|
+
if (node.trigger != null) {
|
|
155
|
+
const triggerEl = renderNode(node.trigger, ctx);
|
|
156
|
+
triggerEl.addEventListener('click', () => {
|
|
157
|
+
dialog.showModal();
|
|
158
|
+
});
|
|
159
|
+
wrapper.appendChild(triggerEl);
|
|
160
|
+
}
|
|
161
|
+
const dialog = document.createElement('dialog');
|
|
162
|
+
dialog.className = 'pf-dialog';
|
|
163
|
+
dialog.setAttribute('aria-modal', 'true');
|
|
164
|
+
dialog.style.maxWidth = '500px';
|
|
165
|
+
dialog.style.width = '100%';
|
|
166
|
+
dialog.style.border = '1px solid var(--border, #e5e7eb)';
|
|
167
|
+
dialog.style.borderRadius = 'var(--radius, 8px)';
|
|
168
|
+
dialog.style.padding = '24px';
|
|
169
|
+
if (node.title != null) {
|
|
170
|
+
const title = el('h2', 'pf-dialog-title');
|
|
171
|
+
title.textContent = resolveStr(node.title, ctx);
|
|
172
|
+
title.id = `pf-dialog-title-${Math.random().toString(36).slice(2, 8)}`;
|
|
173
|
+
dialog.setAttribute('aria-labelledby', title.id);
|
|
174
|
+
dialog.appendChild(title);
|
|
175
|
+
}
|
|
176
|
+
if (node.description != null) {
|
|
177
|
+
const desc = el('p', 'pf-dialog-desc');
|
|
178
|
+
desc.textContent = resolveStr(node.description, ctx);
|
|
179
|
+
desc.style.color = 'var(--muted-foreground, #6b7280)';
|
|
180
|
+
dialog.appendChild(desc);
|
|
181
|
+
}
|
|
182
|
+
const body = el('div', 'pf-dialog-body');
|
|
183
|
+
renderChildren(node, body, ctx);
|
|
184
|
+
dialog.appendChild(body);
|
|
185
|
+
if (node.dismissible !== false) {
|
|
186
|
+
dialog.addEventListener('click', (e) => {
|
|
187
|
+
if (e.target === dialog)
|
|
188
|
+
dialog.close();
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
// Listen for close-overlay events
|
|
192
|
+
document.addEventListener('prefab:close-overlay', () => dialog.close());
|
|
193
|
+
wrapper.appendChild(dialog);
|
|
194
|
+
return wrapper;
|
|
195
|
+
}
|
|
196
|
+
function renderPopover(node, ctx) {
|
|
197
|
+
const wrapper = el('div', 'pf-popover');
|
|
198
|
+
wrapper.style.position = 'relative';
|
|
199
|
+
wrapper.style.display = 'inline-block';
|
|
200
|
+
const content = el('div', 'pf-popover-content');
|
|
201
|
+
content.style.display = 'none';
|
|
202
|
+
content.style.position = 'absolute';
|
|
203
|
+
content.style.zIndex = '50';
|
|
204
|
+
content.style.padding = '12px';
|
|
205
|
+
content.style.border = '1px solid var(--border, #e5e7eb)';
|
|
206
|
+
content.style.borderRadius = 'var(--radius, 8px)';
|
|
207
|
+
content.style.backgroundColor = 'var(--popover, #fff)';
|
|
208
|
+
content.style.boxShadow = '0 4px 6px -1px rgb(0 0 0 / 0.1)';
|
|
209
|
+
if (node.title != null) {
|
|
210
|
+
const title = el('div', 'pf-popover-title');
|
|
211
|
+
title.textContent = resolveStr(node.title, ctx);
|
|
212
|
+
title.style.fontWeight = '600';
|
|
213
|
+
title.style.marginBottom = '4px';
|
|
214
|
+
content.appendChild(title);
|
|
215
|
+
}
|
|
216
|
+
renderChildren(node, content, ctx);
|
|
217
|
+
wrapper.addEventListener('click', () => {
|
|
218
|
+
content.style.display = content.style.display === 'none' ? 'block' : 'none';
|
|
219
|
+
});
|
|
220
|
+
wrapper.appendChild(content);
|
|
221
|
+
return wrapper;
|
|
222
|
+
}
|
|
223
|
+
function renderTooltip(node, ctx) {
|
|
224
|
+
const wrapper = el('div', 'pf-tooltip');
|
|
225
|
+
wrapper.style.position = 'relative';
|
|
226
|
+
wrapper.style.display = 'inline-block';
|
|
227
|
+
const tipId = `pf-tip-${Math.random().toString(36).slice(2, 8)}`;
|
|
228
|
+
const tip = el('div', 'pf-tooltip-content');
|
|
229
|
+
tip.id = tipId;
|
|
230
|
+
tip.setAttribute('role', 'tooltip');
|
|
231
|
+
tip.textContent = resolveStr(node.content ?? '', ctx);
|
|
232
|
+
tip.style.display = 'none';
|
|
233
|
+
tip.style.position = 'absolute';
|
|
234
|
+
tip.style.bottom = '100%';
|
|
235
|
+
tip.style.left = '50%';
|
|
236
|
+
tip.style.transform = 'translateX(-50%)';
|
|
237
|
+
tip.style.padding = '4px 8px';
|
|
238
|
+
tip.style.borderRadius = '4px';
|
|
239
|
+
tip.style.backgroundColor = 'var(--popover, #1f2937)';
|
|
240
|
+
tip.style.color = '#fff';
|
|
241
|
+
tip.style.fontSize = '12px';
|
|
242
|
+
tip.style.whiteSpace = 'nowrap';
|
|
243
|
+
tip.style.zIndex = '50';
|
|
244
|
+
renderChildren(node, wrapper, ctx);
|
|
245
|
+
wrapper.setAttribute('aria-describedby', tipId);
|
|
246
|
+
wrapper.addEventListener('mouseenter', () => { tip.style.display = 'block'; });
|
|
247
|
+
wrapper.addEventListener('mouseleave', () => { tip.style.display = 'none'; });
|
|
248
|
+
wrapper.addEventListener('focus', () => { tip.style.display = 'block'; }, true);
|
|
249
|
+
wrapper.addEventListener('blur', () => { tip.style.display = 'none'; }, true);
|
|
250
|
+
wrapper.appendChild(tip);
|
|
251
|
+
return wrapper;
|
|
252
|
+
}
|
|
253
|
+
function renderHoverCard(node, ctx) {
|
|
254
|
+
// Similar to popover but triggered on hover
|
|
255
|
+
const wrapper = el('div', 'pf-hover-card');
|
|
256
|
+
wrapper.style.position = 'relative';
|
|
257
|
+
wrapper.style.display = 'inline-block';
|
|
258
|
+
const content = el('div', 'pf-hover-card-content');
|
|
259
|
+
content.style.display = 'none';
|
|
260
|
+
content.style.position = 'absolute';
|
|
261
|
+
content.style.zIndex = '50';
|
|
262
|
+
content.style.padding = '16px';
|
|
263
|
+
content.style.border = '1px solid var(--border, #e5e7eb)';
|
|
264
|
+
content.style.borderRadius = 'var(--radius, 8px)';
|
|
265
|
+
content.style.backgroundColor = 'var(--card, #fff)';
|
|
266
|
+
content.style.boxShadow = '0 4px 6px -1px rgb(0 0 0 / 0.1)';
|
|
267
|
+
content.style.minWidth = '200px';
|
|
268
|
+
renderChildren(node, content, ctx);
|
|
269
|
+
wrapper.addEventListener('mouseenter', () => { content.style.display = 'block'; });
|
|
270
|
+
wrapper.addEventListener('mouseleave', () => { content.style.display = 'none'; });
|
|
271
|
+
wrapper.appendChild(content);
|
|
272
|
+
return wrapper;
|
|
273
|
+
}
|
|
274
|
+
function renderCarousel(node, ctx) {
|
|
275
|
+
const wrapper = el('div', 'pf-carousel');
|
|
276
|
+
wrapper.style.position = 'relative';
|
|
277
|
+
wrapper.style.overflow = 'hidden';
|
|
278
|
+
wrapper.setAttribute('role', 'region');
|
|
279
|
+
wrapper.setAttribute('aria-roledescription', 'carousel');
|
|
280
|
+
wrapper.setAttribute('aria-label', resolveStr(node.label ?? 'Carousel', ctx));
|
|
281
|
+
const track = el('div', 'pf-carousel-track');
|
|
282
|
+
track.style.display = 'flex';
|
|
283
|
+
track.style.transition = 'transform 0.3s ease';
|
|
284
|
+
renderChildren(node, track, ctx);
|
|
285
|
+
// Style children as slides
|
|
286
|
+
let current = 0;
|
|
287
|
+
const slideCount = node.children?.length ?? 0;
|
|
288
|
+
const prev = document.createElement('button');
|
|
289
|
+
prev.type = 'button';
|
|
290
|
+
prev.textContent = '‹';
|
|
291
|
+
prev.className = 'pf-carousel-prev';
|
|
292
|
+
prev.setAttribute('aria-label', 'Previous slide');
|
|
293
|
+
prev.style.position = 'absolute';
|
|
294
|
+
prev.style.left = '4px';
|
|
295
|
+
prev.style.top = '50%';
|
|
296
|
+
prev.style.transform = 'translateY(-50%)';
|
|
297
|
+
prev.style.zIndex = '10';
|
|
298
|
+
const next = document.createElement('button');
|
|
299
|
+
next.type = 'button';
|
|
300
|
+
next.textContent = '›';
|
|
301
|
+
next.className = 'pf-carousel-next';
|
|
302
|
+
next.setAttribute('aria-label', 'Next slide');
|
|
303
|
+
next.style.position = 'absolute';
|
|
304
|
+
next.style.right = '4px';
|
|
305
|
+
next.style.top = '50%';
|
|
306
|
+
next.style.transform = 'translateY(-50%)';
|
|
307
|
+
next.style.zIndex = '10';
|
|
308
|
+
const update = () => {
|
|
309
|
+
track.style.transform = `translateX(-${current * 100}%)`;
|
|
310
|
+
};
|
|
311
|
+
prev.addEventListener('click', () => {
|
|
312
|
+
current = Math.max(0, current - 1);
|
|
313
|
+
update();
|
|
314
|
+
});
|
|
315
|
+
next.addEventListener('click', () => {
|
|
316
|
+
current = Math.min(slideCount - 1, current + 1);
|
|
317
|
+
update();
|
|
318
|
+
});
|
|
319
|
+
wrapper.appendChild(track);
|
|
320
|
+
wrapper.appendChild(prev);
|
|
321
|
+
wrapper.appendChild(next);
|
|
322
|
+
return wrapper;
|
|
323
|
+
}
|
|
324
|
+
//# sourceMappingURL=interactive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../../src/renderer/components/interactive.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../src/renderer/components/layout.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,wBAAgB,wBAAwB,IAAI,IAAI,CAY/C"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Layout component renderers — Column, Row, Grid, Container, Div, Span, etc.
|
|
3
|
+
*/
|
|
4
|
+
import { registerComponent, renderChildren, el } from '../engine.js';
|
|
5
|
+
export function registerLayoutComponents() {
|
|
6
|
+
registerComponent('Column', renderColumn);
|
|
7
|
+
registerComponent('Row', renderRow);
|
|
8
|
+
registerComponent('Grid', renderGrid);
|
|
9
|
+
registerComponent('GridItem', renderGridItem);
|
|
10
|
+
registerComponent('Container', renderContainer);
|
|
11
|
+
registerComponent('Div', renderDiv);
|
|
12
|
+
registerComponent('Span', renderSpan);
|
|
13
|
+
registerComponent('Dashboard', renderGrid);
|
|
14
|
+
registerComponent('DashboardItem', renderGridItem);
|
|
15
|
+
registerComponent('Pages', renderPages);
|
|
16
|
+
registerComponent('Page', renderDiv);
|
|
17
|
+
}
|
|
18
|
+
function renderColumn(node, ctx) {
|
|
19
|
+
const e = el('div', 'pf-column');
|
|
20
|
+
e.style.display = 'flex';
|
|
21
|
+
e.style.flexDirection = 'column';
|
|
22
|
+
const gap = extractGap(node);
|
|
23
|
+
if (gap != null)
|
|
24
|
+
e.style.gap = `${gap * 4}px`;
|
|
25
|
+
if (node.align != null)
|
|
26
|
+
e.style.alignItems = mapAlign(node.align);
|
|
27
|
+
if (node.justify != null)
|
|
28
|
+
e.style.justifyContent = mapJustify(node.justify);
|
|
29
|
+
renderChildren(node, e, ctx);
|
|
30
|
+
return e;
|
|
31
|
+
}
|
|
32
|
+
function renderRow(node, ctx) {
|
|
33
|
+
const e = el('div', 'pf-row');
|
|
34
|
+
e.style.display = 'flex';
|
|
35
|
+
e.style.flexDirection = 'row';
|
|
36
|
+
const gap = extractGap(node);
|
|
37
|
+
if (gap != null)
|
|
38
|
+
e.style.gap = `${gap * 4}px`;
|
|
39
|
+
if (node.align != null)
|
|
40
|
+
e.style.alignItems = mapAlign(node.align);
|
|
41
|
+
if (node.justify != null)
|
|
42
|
+
e.style.justifyContent = mapJustify(node.justify);
|
|
43
|
+
if (node.wrap != null)
|
|
44
|
+
e.style.flexWrap = 'wrap';
|
|
45
|
+
renderChildren(node, e, ctx);
|
|
46
|
+
return e;
|
|
47
|
+
}
|
|
48
|
+
function renderGrid(node, ctx) {
|
|
49
|
+
const e = el('div', 'pf-grid');
|
|
50
|
+
e.style.display = 'grid';
|
|
51
|
+
const cols = node.columns ?? 3;
|
|
52
|
+
e.style.gridTemplateColumns = `repeat(${cols}, 1fr)`;
|
|
53
|
+
const gap = extractGap(node);
|
|
54
|
+
if (gap != null)
|
|
55
|
+
e.style.gap = `${gap * 4}px`;
|
|
56
|
+
renderChildren(node, e, ctx);
|
|
57
|
+
return e;
|
|
58
|
+
}
|
|
59
|
+
function renderGridItem(node, ctx) {
|
|
60
|
+
const e = el('div', 'pf-grid-item');
|
|
61
|
+
if (node.colSpan != null)
|
|
62
|
+
e.style.gridColumn = `span ${node.colSpan}`;
|
|
63
|
+
if (node.rowSpan != null)
|
|
64
|
+
e.style.gridRow = `span ${node.rowSpan}`;
|
|
65
|
+
renderChildren(node, e, ctx);
|
|
66
|
+
return e;
|
|
67
|
+
}
|
|
68
|
+
function renderContainer(node, ctx) {
|
|
69
|
+
const e = el('div', 'pf-container');
|
|
70
|
+
e.style.maxWidth = node.maxWidth ?? '1200px';
|
|
71
|
+
e.style.margin = '0 auto';
|
|
72
|
+
if (node.padding != null)
|
|
73
|
+
e.style.padding = `${node.padding * 4}px`;
|
|
74
|
+
renderChildren(node, e, ctx);
|
|
75
|
+
return e;
|
|
76
|
+
}
|
|
77
|
+
function renderDiv(node, ctx) {
|
|
78
|
+
const e = el('div', 'pf-div');
|
|
79
|
+
renderChildren(node, e, ctx);
|
|
80
|
+
return e;
|
|
81
|
+
}
|
|
82
|
+
function renderSpan(node, ctx) {
|
|
83
|
+
const e = el('span', 'pf-span');
|
|
84
|
+
renderChildren(node, e, ctx);
|
|
85
|
+
return e;
|
|
86
|
+
}
|
|
87
|
+
function renderPages(node, ctx) {
|
|
88
|
+
const e = el('div', 'pf-pages');
|
|
89
|
+
renderChildren(node, e, ctx);
|
|
90
|
+
return e;
|
|
91
|
+
}
|
|
92
|
+
// ── Helpers ──────────────────────────────────────────────────────────────────
|
|
93
|
+
const GAP_CLASS_RE = /\bgap-(\d+)\b/;
|
|
94
|
+
/** Extract gap value from node.gap prop or cssClass "gap-N" pattern */
|
|
95
|
+
function extractGap(node) {
|
|
96
|
+
if (node.gap != null)
|
|
97
|
+
return node.gap;
|
|
98
|
+
if (typeof node.cssClass === 'string') {
|
|
99
|
+
const match = GAP_CLASS_RE.exec(node.cssClass);
|
|
100
|
+
if (match)
|
|
101
|
+
return Number(match[1]);
|
|
102
|
+
}
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
function mapAlign(value) {
|
|
106
|
+
const m = { start: 'flex-start', end: 'flex-end', center: 'center', stretch: 'stretch', baseline: 'baseline' };
|
|
107
|
+
return m[value] ?? value;
|
|
108
|
+
}
|
|
109
|
+
function mapJustify(value) {
|
|
110
|
+
const m = { start: 'flex-start', end: 'flex-end', center: 'center', between: 'space-between', around: 'space-around', evenly: 'space-evenly' };
|
|
111
|
+
return m[value] ?? value;
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=layout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../../../src/renderer/components/layout.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../../src/renderer/components/media.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,wBAAgB,uBAAuB,IAAI,IAAI,CAQ9C"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Media component renderers — Image, Audio, Video, Embed, Svg, DropZone, Mermaid
|
|
3
|
+
*/
|
|
4
|
+
import { registerComponent, resolveStr, el } from '../engine.js';
|
|
5
|
+
export function registerMediaComponents() {
|
|
6
|
+
registerComponent('Image', renderImage);
|
|
7
|
+
registerComponent('Audio', renderAudio);
|
|
8
|
+
registerComponent('Video', renderVideo);
|
|
9
|
+
registerComponent('Embed', renderEmbed);
|
|
10
|
+
registerComponent('Svg', renderSvg);
|
|
11
|
+
registerComponent('DropZone', renderDropZone);
|
|
12
|
+
registerComponent('Mermaid', renderMermaid);
|
|
13
|
+
}
|
|
14
|
+
function renderImage(node, ctx) {
|
|
15
|
+
const img = document.createElement('img');
|
|
16
|
+
img.className = 'pf-image';
|
|
17
|
+
img.src = resolveStr(node.src, ctx);
|
|
18
|
+
if (node.alt != null)
|
|
19
|
+
img.alt = resolveStr(node.alt, ctx);
|
|
20
|
+
if (node.width != null)
|
|
21
|
+
img.width = node.width;
|
|
22
|
+
if (node.height != null)
|
|
23
|
+
img.height = node.height;
|
|
24
|
+
img.style.maxWidth = '100%';
|
|
25
|
+
return img;
|
|
26
|
+
}
|
|
27
|
+
function renderAudio(node, ctx) {
|
|
28
|
+
const audio = document.createElement('audio');
|
|
29
|
+
audio.className = 'pf-audio';
|
|
30
|
+
audio.src = resolveStr(node.src, ctx);
|
|
31
|
+
audio.controls = true;
|
|
32
|
+
return audio;
|
|
33
|
+
}
|
|
34
|
+
function renderVideo(node, ctx) {
|
|
35
|
+
const video = document.createElement('video');
|
|
36
|
+
video.className = 'pf-video';
|
|
37
|
+
video.src = resolveStr(node.src, ctx);
|
|
38
|
+
video.controls = true;
|
|
39
|
+
if (node.width != null)
|
|
40
|
+
video.width = node.width;
|
|
41
|
+
if (node.height != null)
|
|
42
|
+
video.height = node.height;
|
|
43
|
+
video.style.maxWidth = '100%';
|
|
44
|
+
return video;
|
|
45
|
+
}
|
|
46
|
+
function renderEmbed(node, ctx) {
|
|
47
|
+
const wrapper = el('div', 'pf-embed');
|
|
48
|
+
const iframe = document.createElement('iframe');
|
|
49
|
+
iframe.src = resolveStr(node.src, ctx);
|
|
50
|
+
iframe.style.width = '100%';
|
|
51
|
+
iframe.style.height = node.height != null ? `${node.height}px` : '400px';
|
|
52
|
+
iframe.style.border = 'none';
|
|
53
|
+
iframe.setAttribute('sandbox', 'allow-scripts');
|
|
54
|
+
wrapper.appendChild(iframe);
|
|
55
|
+
return wrapper;
|
|
56
|
+
}
|
|
57
|
+
/** SVG element/attribute allowlist for sanitization. */
|
|
58
|
+
const SVG_ALLOWED_TAGS = new Set([
|
|
59
|
+
'svg', 'g', 'path', 'rect', 'circle', 'ellipse', 'line', 'polyline',
|
|
60
|
+
'polygon', 'text', 'tspan', 'textpath', 'defs', 'use', 'symbol',
|
|
61
|
+
'clippath', 'mask', 'pattern', 'lineargradient', 'radialgradient',
|
|
62
|
+
'stop', 'filter', 'fegaussianblur', 'feoffset', 'femerge',
|
|
63
|
+
'femergenode', 'fecolormatrix', 'feblend', 'title', 'desc',
|
|
64
|
+
]);
|
|
65
|
+
function renderSvg(node, ctx) {
|
|
66
|
+
const wrapper = el('div', 'pf-svg');
|
|
67
|
+
const content = resolveStr(node.content, ctx);
|
|
68
|
+
if (!content.includes('<svg'))
|
|
69
|
+
return wrapper;
|
|
70
|
+
// Parse via DOMParser to avoid innerHTML XSS
|
|
71
|
+
const doc = new DOMParser().parseFromString(content, 'image/svg+xml');
|
|
72
|
+
const svg = doc.querySelector('svg');
|
|
73
|
+
if (!svg)
|
|
74
|
+
return wrapper;
|
|
75
|
+
sanitizeSvgNode(svg);
|
|
76
|
+
wrapper.appendChild(document.importNode(svg, true));
|
|
77
|
+
return wrapper;
|
|
78
|
+
}
|
|
79
|
+
function sanitizeSvgNode(node) {
|
|
80
|
+
// Remove disallowed elements
|
|
81
|
+
const children = Array.from(node.children);
|
|
82
|
+
for (const child of children) {
|
|
83
|
+
if (!SVG_ALLOWED_TAGS.has(child.tagName.toLowerCase())) {
|
|
84
|
+
child.remove();
|
|
85
|
+
continue;
|
|
86
|
+
}
|
|
87
|
+
// Strip event handler attributes (on*) and dangerous attrs
|
|
88
|
+
for (const attr of Array.from(child.attributes)) {
|
|
89
|
+
const name = attr.name.toLowerCase();
|
|
90
|
+
if (name.startsWith('on') || name === 'href' && attr.value.trim().toLowerCase().startsWith('javascript:')) {
|
|
91
|
+
child.removeAttribute(attr.name);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
sanitizeSvgNode(child);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
function renderDropZone(node, ctx) {
|
|
98
|
+
const e = el('div', 'pf-dropzone');
|
|
99
|
+
e.style.border = '2px dashed var(--border, #d1d5db)';
|
|
100
|
+
e.style.borderRadius = 'var(--radius, 8px)';
|
|
101
|
+
e.style.padding = '32px';
|
|
102
|
+
e.style.textAlign = 'center';
|
|
103
|
+
e.style.cursor = 'pointer';
|
|
104
|
+
e.textContent = resolveStr(node.label ?? 'Drop files here', ctx);
|
|
105
|
+
e.addEventListener('dragover', (ev) => {
|
|
106
|
+
ev.preventDefault();
|
|
107
|
+
e.style.borderColor = 'var(--primary, #3b82f6)';
|
|
108
|
+
});
|
|
109
|
+
e.addEventListener('dragleave', () => {
|
|
110
|
+
e.style.borderColor = 'var(--border, #d1d5db)';
|
|
111
|
+
});
|
|
112
|
+
e.addEventListener('drop', (ev) => {
|
|
113
|
+
ev.preventDefault();
|
|
114
|
+
e.style.borderColor = 'var(--border, #d1d5db)';
|
|
115
|
+
// File handling would go here
|
|
116
|
+
});
|
|
117
|
+
return e;
|
|
118
|
+
}
|
|
119
|
+
function renderMermaid(node, ctx) {
|
|
120
|
+
const e = el('div', 'pf-mermaid');
|
|
121
|
+
e.setAttribute('data-mermaid', 'true');
|
|
122
|
+
const content = resolveStr(node.content, ctx);
|
|
123
|
+
// Store raw mermaid content; actual rendering requires mermaid.js
|
|
124
|
+
e.textContent = content;
|
|
125
|
+
// Attempt to render if mermaid is available globally
|
|
126
|
+
if (typeof globalThis.mermaid !== 'undefined') {
|
|
127
|
+
e.classList.add('mermaid');
|
|
128
|
+
e.textContent = content;
|
|
129
|
+
}
|
|
130
|
+
return e;
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=media.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media.js","sourceRoot":"","sources":["../../../src/renderer/components/media.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,cAAc,CAAA;AAGhE,MAAM,UAAU,uBAAuB;IACrC,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;IACvC,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;IACvC,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;IACvC,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;IACvC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;IACnC,iBAAiB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAA;IAC7C,iBAAiB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;AAC7C,CAAC;AAED,SAAS,WAAW,CAAC,IAAmB,EAAE,GAAkB;IAC1D,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;IACzC,GAAG,CAAC,SAAS,GAAG,UAAU,CAAA;IAC1B,GAAG,CAAC,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACnC,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI;QAAE,GAAG,CAAC,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACzD,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;QAAE,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,KAAe,CAAA;IACxD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI;QAAE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,MAAgB,CAAA;IAC3D,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAA;IAC3B,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAS,WAAW,CAAC,IAAmB,EAAE,GAAkB;IAC1D,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;IAC7C,KAAK,CAAC,SAAS,GAAG,UAAU,CAAA;IAC5B,KAAK,CAAC,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACrC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAA;IACrB,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,WAAW,CAAC,IAAmB,EAAE,GAAkB;IAC1D,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;IAC7C,KAAK,CAAC,SAAS,GAAG,UAAU,CAAA;IAC5B,KAAK,CAAC,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACrC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAA;IACrB,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;QAAE,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAe,CAAA;IAC1D,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI;QAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAgB,CAAA;IAC7D,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAA;IAC7B,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,WAAW,CAAC,IAAmB,EAAE,GAAkB;IAC1D,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;IACrC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;IAC/C,MAAM,CAAC,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACtC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAA;IAC3B,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAgB,IAAI,CAAC,CAAC,CAAC,OAAO,CAAA;IAClF,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAA;IAC5B,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,eAAe,CAAC,CAAA;IAC/C,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;IAC3B,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,wDAAwD;AACxD,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC/B,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU;IACnE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ;IAC/D,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB;IACjE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,UAAU,EAAE,SAAS;IACzD,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM;CAC3D,CAAC,CAAA;AAEF,SAAS,SAAS,CAAC,IAAmB,EAAE,GAAkB;IACxD,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;IACnC,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAC7C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,OAAO,CAAA;IAE7C,6CAA6C;IAC7C,MAAM,GAAG,GAAG,IAAI,SAAS,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;IACrE,MAAM,GAAG,GAAG,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;IACpC,IAAI,CAAC,GAAG;QAAE,OAAO,OAAO,CAAA;IAExB,eAAe,CAAC,GAAG,CAAC,CAAA;IACpB,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;IACnD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,SAAS,eAAe,CAAC,IAAa;IACpC,6BAA6B;IAC7B,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC1C,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YACvD,KAAK,CAAC,MAAM,EAAE,CAAA;YACd,SAAQ;QACV,CAAC;QACD,2DAA2D;QAC3D,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;YACpC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC1G,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAClC,CAAC;QACH,CAAC;QACD,eAAe,CAAC,KAAK,CAAC,CAAA;IACxB,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,IAAmB,EAAE,GAAkB;IAC7D,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;IAClC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,mCAAmC,CAAA;IACpD,CAAC,CAAC,KAAK,CAAC,YAAY,GAAG,oBAAoB,CAAA;IAC3C,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAA;IACxB,CAAC,CAAC,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAA;IAC5B,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAA;IAC1B,CAAC,CAAC,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI,iBAAiB,EAAE,GAAG,CAAC,CAAA;IAEhE,CAAC,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE;QACpC,EAAE,CAAC,cAAc,EAAE,CAAA;QACnB,CAAC,CAAC,KAAK,CAAC,WAAW,GAAG,yBAAyB,CAAA;IACjD,CAAC,CAAC,CAAA;IAEF,CAAC,CAAC,gBAAgB,CAAC,WAAW,EAAE,GAAG,EAAE;QACnC,CAAC,CAAC,KAAK,CAAC,WAAW,GAAG,wBAAwB,CAAA;IAChD,CAAC,CAAC,CAAA;IAEF,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE;QAChC,EAAE,CAAC,cAAc,EAAE,CAAA;QACnB,CAAC,CAAC,KAAK,CAAC,WAAW,GAAG,wBAAwB,CAAA;QAC9C,8BAA8B;IAChC,CAAC,CAAC,CAAA;IAEF,OAAO,CAAC,CAAA;AACV,CAAC;AAED,SAAS,aAAa,CAAC,IAAmB,EAAE,GAAkB;IAC5D,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,CAAA;IACjC,CAAC,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;IACtC,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAC7C,kEAAkE;IAClE,CAAC,CAAC,WAAW,GAAG,OAAO,CAAA;IAEvB,qDAAqD;IACrD,IAAI,OAAQ,UAAsC,CAAC,OAAO,KAAK,WAAW,EAAE,CAAC;QAC3E,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QAC1B,CAAC,CAAC,WAAW,GAAG,OAAO,CAAA;IACzB,CAAC;IAED,OAAO,CAAC,CAAA;AACV,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../src/renderer/components/table.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,wBAAgB,uBAAuB,IAAI,IAAI,CAU9C"}
|