@seed-ship/mcp-ui-solid 2.8.1 → 2.8.3

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.
@@ -2,7 +2,12 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const web = require("solid-js/web");
4
4
  const solidJs = require("solid-js");
5
- var _tmpl$ = /* @__PURE__ */ web.template(`<div class="px-4 py-3 border-t border-gray-100 dark:border-gray-700 space-y-2">`), _tmpl$2 = /* @__PURE__ */ web.template(`<div class="mt-2 overflow-x-auto"><table class="min-w-full text-xs"><thead><tr></tr></thead><tbody>`), _tmpl$3 = /* @__PURE__ */ web.template(`<div class="px-4 py-3 border-t border-gray-100 dark:border-gray-700"><div class="flex items-center gap-2 mb-2"><span class="text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wide">Preview</span><span class="px-1.5 py-0.5 text-xs font-bold bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 rounded"></span></div><p class="text-sm text-gray-700 dark:text-gray-300"></p><!$><!/>`), _tmpl$4 = /* @__PURE__ */ web.template(`<div class="w-full bg-white dark:bg-gray-800 rounded-xl border border-gray-200 dark:border-gray-700 shadow-lg overflow-visible"><div class="flex items-center justify-between px-4 py-3 border-b border-gray-100 dark:border-gray-700"><div class="flex items-center gap-2"><span class=text-base>&#128221;</span><h3 class="text-sm font-semibold text-gray-900 dark:text-white"></h3></div><span></span></div><div class="divide-y divide-gray-100 dark:divide-gray-700"></div><!$><!/><!$><!/>`), _tmpl$5 = /* @__PURE__ */ web.template(`<div><span class="flex-shrink-0 mt-0.5"></span><p>`), _tmpl$6 = /* @__PURE__ */ web.template(`<th class="px-2 py-1 text-left font-medium text-gray-500 dark:text-gray-400">`), _tmpl$7 = /* @__PURE__ */ web.template(`<tr class="border-t border-gray-100 dark:border-gray-700">`), _tmpl$8 = /* @__PURE__ */ web.template(`<td class="px-2 py-1 text-gray-700 dark:text-gray-300">`), _tmpl$9 = /* @__PURE__ */ web.template(`<span class="text-[10px] text-blue-500 dark:text-blue-400">(editable)`), _tmpl$0 = /* @__PURE__ */ web.template(`<p class="text-sm text-gray-700 dark:text-gray-300">`), _tmpl$1 = /* @__PURE__ */ web.template(`<pre class="text-xs text-gray-500 dark:text-gray-400 overflow-auto">`), _tmpl$10 = /* @__PURE__ */ web.template(`<div class="px-4 py-3"><div class="flex items-center gap-2 mb-2"><h4 class="text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wide"></h4><!$><!/></div><!$><!/>`), _tmpl$11 = /* @__PURE__ */ web.template(`<div class=space-y-1>`), _tmpl$12 = /* @__PURE__ */ web.template(`<div class="flex gap-2 text-sm"><span class="text-gray-500 dark:text-gray-400 font-mono text-xs min-w-[120px]"><!$><!/>:</span><span class="text-gray-900 dark:text-white text-xs">`), _tmpl$13 = /* @__PURE__ */ web.template(`<div class="flex flex-wrap gap-1.5">`), _tmpl$14 = /* @__PURE__ */ web.template(`<span class="inline-flex items-center gap-1 px-2.5 py-1 text-xs font-medium bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 rounded-full"><span class="text-blue-500 dark:text-blue-400"><!$><!/>:</span><!$><!/><button type=button class="ml-0.5 hover:text-blue-900 dark:hover:text-blue-100">&times;`), _tmpl$15 = /* @__PURE__ */ web.template(`<div class="flex flex-wrap gap-2">`), _tmpl$16 = /* @__PURE__ */ web.template(`<button type=button>`), _tmpl$17 = /* @__PURE__ */ web.template(`<div class="flex items-center gap-1">`), _tmpl$18 = /* @__PURE__ */ web.template(`<div>`), _tmpl$19 = /* @__PURE__ */ web.template(`<div><!$><!/><!$><!/>`);
5
+ var _tmpl$ = /* @__PURE__ */ web.template(`<svg fill=none viewBox="0 0 24 24"stroke=currentColor><path stroke-linecap=round stroke-linejoin=round stroke-width=2 d="M19 9l-7 7-7-7">`), _tmpl$2 = /* @__PURE__ */ web.template(`<button class="p-1 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 rounded-full hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors"aria-label="Close scratchpad"><svg class="w-4 h-4"fill=none viewBox="0 0 24 24"stroke=currentColor><path stroke-linecap=round stroke-linejoin=round stroke-width=2 d="M6 18L18 6M6 6l12 12">`), _tmpl$3 = /* @__PURE__ */ web.template(`<div class="px-4 py-3 border-t border-gray-100 dark:border-gray-700 space-y-2">`), _tmpl$4 = /* @__PURE__ */ web.template(`<button type=button class="px-3 py-1.5 text-xs font-medium text-blue-600 dark:text-blue-400 hover:bg-blue-50 dark:hover:bg-blue-900/20 rounded-lg transition-colors">Modify filters`), _tmpl$5 = /* @__PURE__ */ web.template(`<div class="flex flex-col items-center gap-2 py-4 text-center"><span class=text-2xl>&#128269;</span><p class="text-sm text-gray-500 dark:text-gray-400">No results for these filters</p><!$><!/>`), _tmpl$6 = /* @__PURE__ */ web.template(`<div class="px-4 py-3 border-t border-gray-100 dark:border-gray-700">`), _tmpl$7 = /* @__PURE__ */ web.template(`<div style=overflow-y:auto><div class="divide-y divide-gray-100 dark:divide-gray-700"></div><!$><!/><!$><!/>`), _tmpl$8 = /* @__PURE__ */ web.template(`<div class="w-full bg-white dark:bg-gray-800 rounded-xl border border-gray-200 dark:border-gray-700 shadow-lg overflow-visible"style="animation:scratchpad-slide-down 0.2s ease-out"><div><div class="flex items-center gap-2"><span class=text-base>&#128221;</span><h3 class="text-sm font-semibold text-gray-900 dark:text-white"></h3><!$><!/></div><div class="flex items-center gap-2"><span></span><!$><!/></div></div><!$><!/><style>
6
+ @keyframes scratchpad-slide-down {
7
+ from { opacity: 0; transform: translateY(-8px); }
8
+ to { opacity: 1; transform: translateY(0); }
9
+ }
10
+ `), _tmpl$9 = /* @__PURE__ */ web.template(`<div><span class="flex-shrink-0 mt-0.5"></span><p>`), _tmpl$0 = /* @__PURE__ */ web.template(`<div class="flex items-center gap-2 mb-2"><span class="text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wide">Preview</span><span class="px-1.5 py-0.5 text-xs font-bold bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 rounded">`), _tmpl$1 = /* @__PURE__ */ web.template(`<p class="text-sm text-gray-700 dark:text-gray-300">`), _tmpl$10 = /* @__PURE__ */ web.template(`<div class="mt-2 overflow-x-auto"><table class="min-w-full text-xs"><thead><tr></tr></thead><tbody>`), _tmpl$11 = /* @__PURE__ */ web.template(`<th class="px-2 py-1 text-left font-medium text-gray-500 dark:text-gray-400">`), _tmpl$12 = /* @__PURE__ */ web.template(`<tr class="border-t border-gray-100 dark:border-gray-700">`), _tmpl$13 = /* @__PURE__ */ web.template(`<td class="px-2 py-1 text-gray-700 dark:text-gray-300">`), _tmpl$14 = /* @__PURE__ */ web.template(`<pre class="text-xs text-gray-500 dark:text-gray-400 overflow-auto">`), _tmpl$15 = /* @__PURE__ */ web.template(`<div class="px-4 py-3"><h4 class="text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wide mb-2"></h4><!$><!/>`), _tmpl$16 = /* @__PURE__ */ web.template(`<div class=space-y-1>`), _tmpl$17 = /* @__PURE__ */ web.template(`<div class="flex gap-2 text-sm"><span class="text-gray-500 dark:text-gray-400 font-mono text-xs min-w-[120px]"><!$><!/>:</span><span class="text-gray-900 dark:text-white text-xs">`), _tmpl$18 = /* @__PURE__ */ web.template(`<p class="text-xs text-gray-400 italic">No filters applied`), _tmpl$19 = /* @__PURE__ */ web.template(`<div class="flex flex-wrap gap-1.5"><!$><!/><!$><!/>`), _tmpl$20 = /* @__PURE__ */ web.template(`<button type=button class="ml-0.5 hover:text-blue-900 dark:hover:text-blue-100 transition-colors">&times;`), _tmpl$21 = /* @__PURE__ */ web.template(`<span class="inline-flex items-center gap-1 px-2.5 py-1 text-xs font-medium bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 rounded-full"><span class="text-blue-500 dark:text-blue-400"><!$><!/>:</span><!$><!/><!$><!/>`), _tmpl$22 = /* @__PURE__ */ web.template(`<div class="flex flex-wrap gap-2">`), _tmpl$23 = /* @__PURE__ */ web.template(`<span class=mr-1>`), _tmpl$24 = /* @__PURE__ */ web.template(`<button type=button><!$><!/><!$><!/>`), _tmpl$25 = /* @__PURE__ */ web.template(`<div class="flex items-center gap-1">`), _tmpl$26 = /* @__PURE__ */ web.template(`<div>`), _tmpl$27 = /* @__PURE__ */ web.template(`<div><!$><!/><!$><!/>`);
6
11
  const STATUS_BADGES = {
7
12
  loading: {
8
13
  label: "Loading...",
@@ -22,125 +27,209 @@ const STATUS_BADGES = {
22
27
  },
23
28
  complete: {
24
29
  label: "Complete",
25
- class: "bg-gray-100 text-gray-600 dark:bg-gray-700 dark:text-gray-400"
30
+ class: "bg-green-100 text-green-600 dark:bg-green-900/30 dark:text-green-400"
26
31
  }
27
32
  };
28
33
  const ScratchpadPanel = (props) => {
34
+ const [collapsed, setCollapsed] = solidJs.createSignal(false);
29
35
  const badge = () => STATUS_BADGES[props.state.status] || STATUS_BADGES.loading;
36
+ const isClosable = () => props.closable !== false;
37
+ const isCollapsible = () => props.collapsible !== false;
38
+ solidJs.createEffect(() => {
39
+ if (props.state.status === "complete" && props.autoCloseDelay) {
40
+ const timer = setTimeout(() => {
41
+ var _a;
42
+ return (_a = props.onClose) == null ? void 0 : _a.call(props);
43
+ }, props.autoCloseDelay);
44
+ solidJs.onCleanup(() => clearTimeout(timer));
45
+ }
46
+ });
47
+ const handleHeaderClick = () => {
48
+ if (isCollapsible()) setCollapsed(!collapsed());
49
+ };
30
50
  return (() => {
31
- var _el$ = web.getNextElement(_tmpl$4), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$4.nextSibling, _el$6 = _el$3.nextSibling, _el$7 = _el$2.nextSibling, _el$19 = _el$7.nextSibling, [_el$20, _co$2] = web.getNextMarker(_el$19.nextSibling), _el$21 = _el$20.nextSibling, [_el$22, _co$3] = web.getNextMarker(_el$21.nextSibling);
51
+ var _el$ = web.getNextElement(_tmpl$8), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$4.nextSibling, _el$7 = _el$5.nextSibling, [_el$8, _co$] = web.getNextMarker(_el$7.nextSibling), _el$9 = _el$3.nextSibling, _el$0 = _el$9.firstChild, _el$10 = _el$0.nextSibling, [_el$11, _co$2] = web.getNextMarker(_el$10.nextSibling), _el$27 = _el$2.nextSibling, [_el$28, _co$6] = web.getNextMarker(_el$27.nextSibling);
52
+ _el$28.nextSibling;
53
+ _el$2.$$click = handleHeaderClick;
32
54
  web.insert(_el$5, () => props.state.title);
33
- web.insert(_el$6, () => badge().label);
34
- web.insert(_el$7, web.createComponent(solidJs.For, {
35
- get each() {
36
- return props.state.sections;
55
+ web.insert(_el$3, web.createComponent(solidJs.Show, {
56
+ get when() {
57
+ return isCollapsible();
37
58
  },
38
- children: (section) => web.createComponent(SectionRenderer, {
39
- section,
40
- get filters() {
41
- return props.state.filters;
42
- },
43
- get onFilterChange() {
44
- return props.onFilterChange;
45
- },
46
- get onAction() {
47
- return props.onAction;
48
- },
49
- get onSectionEdit() {
50
- return props.onSectionEdit;
51
- }
52
- })
53
- }));
54
- web.insert(_el$, web.createComponent(solidJs.Show, {
59
+ get children() {
60
+ var _el$6 = web.getNextElement(_tmpl$);
61
+ web.effect(() => web.setAttribute(_el$6, "class", `w-3.5 h-3.5 text-gray-400 transition-transform ${collapsed() ? "-rotate-90" : ""}`));
62
+ return _el$6;
63
+ }
64
+ }), _el$8, _co$);
65
+ web.insert(_el$0, () => badge().label);
66
+ web.insert(_el$9, web.createComponent(solidJs.Show, {
55
67
  get when() {
56
- return props.state.agentMessages.length > 0;
68
+ return web.memo(() => !!isClosable())() && props.onClose;
57
69
  },
58
70
  get children() {
59
- var _el$8 = web.getNextElement(_tmpl$);
60
- web.insert(_el$8, web.createComponent(solidJs.For, {
61
- get each() {
62
- return props.state.agentMessages;
63
- },
64
- children: (msg) => (() => {
65
- var _el$23 = web.getNextElement(_tmpl$5), _el$24 = _el$23.firstChild, _el$25 = _el$24.nextSibling;
66
- web.insert(_el$24, (() => {
67
- var _c$ = web.memo(() => msg.type === "warning");
68
- return () => _c$() ? "⚠️" : msg.type === "question" ? "💬" : "ℹ️";
69
- })());
70
- web.insert(_el$25, () => msg.text);
71
- web.effect(() => web.className(_el$23, `flex items-start gap-2 text-sm ${msg.type === "warning" ? "text-amber-600 dark:text-amber-400" : msg.type === "question" ? "text-blue-600 dark:text-blue-400" : "text-gray-600 dark:text-gray-400"}`));
72
- return _el$23;
73
- })()
74
- }));
75
- return _el$8;
71
+ var _el$1 = web.getNextElement(_tmpl$2);
72
+ _el$1.$$click = (e) => {
73
+ var _a;
74
+ e.stopPropagation();
75
+ (_a = props.onClose) == null ? void 0 : _a.call(props);
76
+ };
77
+ web.runHydrationEvents();
78
+ return _el$1;
76
79
  }
77
- }), _el$20, _co$2);
80
+ }), _el$11, _co$2);
78
81
  web.insert(_el$, web.createComponent(solidJs.Show, {
79
82
  get when() {
80
- return props.state.preview;
83
+ return !collapsed();
81
84
  },
82
85
  get children() {
83
- var _el$9 = web.getNextElement(_tmpl$3), _el$0 = _el$9.firstChild, _el$1 = _el$0.firstChild, _el$10 = _el$1.nextSibling, _el$11 = _el$0.nextSibling, _el$17 = _el$11.nextSibling, [_el$18, _co$] = web.getNextMarker(_el$17.nextSibling);
84
- web.insert(_el$10, () => props.state.preview.count.toLocaleString());
85
- web.insert(_el$11, () => props.state.preview.summary);
86
- web.insert(_el$9, web.createComponent(solidJs.Show, {
86
+ var _el$12 = web.getNextElement(_tmpl$7), _el$13 = _el$12.firstChild, _el$22 = _el$13.nextSibling, [_el$23, _co$4] = web.getNextMarker(_el$22.nextSibling), _el$24 = _el$23.nextSibling, [_el$25, _co$5] = web.getNextMarker(_el$24.nextSibling);
87
+ web.insert(_el$13, web.createComponent(solidJs.For, {
88
+ get each() {
89
+ return props.state.sections;
90
+ },
91
+ children: (section) => web.createComponent(SectionRenderer, {
92
+ section,
93
+ get filters() {
94
+ return props.state.filters;
95
+ },
96
+ get onFilterChange() {
97
+ return props.onFilterChange;
98
+ },
99
+ get onAction() {
100
+ return props.onAction;
101
+ },
102
+ get onSectionEdit() {
103
+ return props.onSectionEdit;
104
+ }
105
+ })
106
+ }));
107
+ web.insert(_el$12, web.createComponent(solidJs.Show, {
87
108
  get when() {
88
- return web.memo(() => !!props.state.preview.rows)() && props.state.preview.rows.length > 0;
109
+ return props.state.agentMessages.length > 0;
89
110
  },
90
111
  get children() {
91
- var _el$12 = web.getNextElement(_tmpl$2), _el$13 = _el$12.firstChild, _el$14 = _el$13.firstChild, _el$15 = _el$14.firstChild, _el$16 = _el$14.nextSibling;
92
- web.insert(_el$15, web.createComponent(solidJs.For, {
112
+ var _el$14 = web.getNextElement(_tmpl$3);
113
+ web.insert(_el$14, web.createComponent(solidJs.For, {
93
114
  get each() {
94
- return Object.keys(props.state.preview.rows[0]);
115
+ return props.state.agentMessages;
95
116
  },
96
- children: (key) => (() => {
97
- var _el$26 = web.getNextElement(_tmpl$6);
98
- web.insert(_el$26, key);
99
- return _el$26;
117
+ children: (msg) => (() => {
118
+ var _el$29 = web.getNextElement(_tmpl$9), _el$30 = _el$29.firstChild, _el$31 = _el$30.nextSibling;
119
+ web.insert(_el$30, (() => {
120
+ var _c$ = web.memo(() => msg.type === "warning");
121
+ return () => _c$() ? "⚠️" : msg.type === "question" ? "❓" : "ℹ️";
122
+ })());
123
+ web.insert(_el$31, () => msg.text);
124
+ web.effect(() => web.className(_el$29, `flex items-start gap-2 text-sm rounded-lg px-3 py-2 ${msg.type === "warning" ? "bg-amber-50 dark:bg-amber-900/10 text-amber-700 dark:text-amber-400" : msg.type === "question" ? "bg-blue-50 dark:bg-blue-900/10 text-blue-700 dark:text-blue-400 border border-blue-200 dark:border-blue-800" : "bg-gray-50 dark:bg-gray-700/50 text-gray-600 dark:text-gray-400"}`));
125
+ return _el$29;
100
126
  })()
101
127
  }));
102
- web.insert(_el$16, web.createComponent(solidJs.For, {
103
- get each() {
104
- return props.state.preview.rows.slice(0, 5);
128
+ return _el$14;
129
+ }
130
+ }), _el$23, _co$4);
131
+ web.insert(_el$12, web.createComponent(solidJs.Show, {
132
+ get when() {
133
+ return props.state.preview;
134
+ },
135
+ get children() {
136
+ var _el$15 = web.getNextElement(_tmpl$6);
137
+ web.insert(_el$15, web.createComponent(solidJs.Show, {
138
+ get when() {
139
+ return props.state.preview.count === 0;
105
140
  },
106
- children: (row) => (() => {
107
- var _el$27 = web.getNextElement(_tmpl$7);
108
- web.insert(_el$27, web.createComponent(solidJs.For, {
109
- get each() {
110
- return Object.values(row);
141
+ get fallback() {
142
+ return [(() => {
143
+ var _el$32 = web.getNextElement(_tmpl$0), _el$33 = _el$32.firstChild, _el$34 = _el$33.nextSibling;
144
+ web.insert(_el$34, () => props.state.preview.count.toLocaleString());
145
+ return _el$32;
146
+ })(), (() => {
147
+ var _el$35 = web.getNextElement(_tmpl$1);
148
+ web.insert(_el$35, () => props.state.preview.summary);
149
+ return _el$35;
150
+ })(), web.createComponent(solidJs.Show, {
151
+ get when() {
152
+ return web.memo(() => !!props.state.preview.rows)() && props.state.preview.rows.length > 0;
111
153
  },
112
- children: (val) => (() => {
113
- var _el$28 = web.getNextElement(_tmpl$8);
114
- web.insert(_el$28, () => String(val));
115
- return _el$28;
116
- })()
117
- }));
118
- return _el$27;
119
- })()
154
+ get children() {
155
+ var _el$36 = web.getNextElement(_tmpl$10), _el$37 = _el$36.firstChild, _el$38 = _el$37.firstChild, _el$39 = _el$38.firstChild, _el$40 = _el$38.nextSibling;
156
+ web.insert(_el$39, web.createComponent(solidJs.For, {
157
+ get each() {
158
+ return Object.keys(props.state.preview.rows[0]);
159
+ },
160
+ children: (key) => (() => {
161
+ var _el$41 = web.getNextElement(_tmpl$11);
162
+ web.insert(_el$41, key);
163
+ return _el$41;
164
+ })()
165
+ }));
166
+ web.insert(_el$40, web.createComponent(solidJs.For, {
167
+ get each() {
168
+ return props.state.preview.rows.slice(0, 5);
169
+ },
170
+ children: (row) => (() => {
171
+ var _el$42 = web.getNextElement(_tmpl$12);
172
+ web.insert(_el$42, web.createComponent(solidJs.For, {
173
+ get each() {
174
+ return Object.values(row);
175
+ },
176
+ children: (val) => (() => {
177
+ var _el$43 = web.getNextElement(_tmpl$13);
178
+ web.insert(_el$43, () => String(val));
179
+ return _el$43;
180
+ })()
181
+ }));
182
+ return _el$42;
183
+ })()
184
+ }));
185
+ return _el$36;
186
+ }
187
+ })];
188
+ },
189
+ get children() {
190
+ var _el$16 = web.getNextElement(_tmpl$5), _el$17 = _el$16.firstChild, _el$18 = _el$17.nextSibling, _el$20 = _el$18.nextSibling, [_el$21, _co$3] = web.getNextMarker(_el$20.nextSibling);
191
+ web.insert(_el$16, web.createComponent(solidJs.Show, {
192
+ get when() {
193
+ return props.onFilterChange;
194
+ },
195
+ get children() {
196
+ var _el$19 = web.getNextElement(_tmpl$4);
197
+ _el$19.$$click = () => {
198
+ var _a;
199
+ return (_a = props.onAction) == null ? void 0 : _a.call(props, "refine_filters");
200
+ };
201
+ web.runHydrationEvents();
202
+ return _el$19;
203
+ }
204
+ }), _el$21, _co$3);
205
+ return _el$16;
206
+ }
120
207
  }));
121
- return _el$12;
208
+ return _el$15;
122
209
  }
123
- }), _el$18, _co$);
124
- return _el$9;
210
+ }), _el$25, _co$5);
211
+ web.effect((_$p) => web.setStyleProperty(_el$12, "max-height", props.maxHeight || "400px"));
212
+ return _el$12;
125
213
  }
126
- }), _el$22, _co$3);
127
- web.effect(() => web.className(_el$6, `px-2 py-0.5 text-xs font-medium rounded-full ${badge().class}`));
214
+ }), _el$28, _co$6);
215
+ web.effect((_p$) => {
216
+ var _v$ = `flex items-center justify-between px-4 py-3 border-b border-gray-100 dark:border-gray-700 ${isCollapsible() ? "cursor-pointer select-none hover:bg-gray-50 dark:hover:bg-gray-750" : ""}`, _v$2 = `px-2 py-0.5 text-xs font-medium rounded-full ${badge().class}`;
217
+ _v$ !== _p$.e && web.className(_el$2, _p$.e = _v$);
218
+ _v$2 !== _p$.t && web.className(_el$0, _p$.t = _v$2);
219
+ return _p$;
220
+ }, {
221
+ e: void 0,
222
+ t: void 0
223
+ });
224
+ web.runHydrationEvents();
128
225
  return _el$;
129
226
  })();
130
227
  };
131
228
  const SectionRenderer = (props) => {
132
229
  return (() => {
133
- var _el$29 = web.getNextElement(_tmpl$10), _el$30 = _el$29.firstChild, _el$31 = _el$30.firstChild, _el$33 = _el$31.nextSibling, [_el$34, _co$4] = web.getNextMarker(_el$33.nextSibling), _el$37 = _el$30.nextSibling, [_el$38, _co$5] = web.getNextMarker(_el$37.nextSibling);
134
- web.insert(_el$31, () => props.section.title);
135
- web.insert(_el$30, web.createComponent(solidJs.Show, {
136
- get when() {
137
- return props.section.editable;
138
- },
139
- get children() {
140
- return web.getNextElement(_tmpl$9);
141
- }
142
- }), _el$34, _co$4);
143
- web.insert(_el$29, web.createComponent(solidJs.Switch, {
230
+ var _el$44 = web.getNextElement(_tmpl$15), _el$45 = _el$44.firstChild, _el$48 = _el$45.nextSibling, [_el$49, _co$7] = web.getNextMarker(_el$48.nextSibling);
231
+ web.insert(_el$45, () => props.section.title);
232
+ web.insert(_el$44, web.createComponent(solidJs.Switch, {
144
233
  get children() {
145
234
  return [web.createComponent(solidJs.Match, {
146
235
  get when() {
@@ -172,9 +261,9 @@ const SectionRenderer = (props) => {
172
261
  return props.section.type === "message";
173
262
  },
174
263
  get children() {
175
- var _el$35 = web.getNextElement(_tmpl$0);
176
- web.insert(_el$35, () => String(props.section.content));
177
- return _el$35;
264
+ var _el$46 = web.getNextElement(_tmpl$1);
265
+ web.insert(_el$46, () => String(props.section.content));
266
+ return _el$46;
178
267
  }
179
268
  }), web.createComponent(solidJs.Match, {
180
269
  get when() {
@@ -204,14 +293,14 @@ const SectionRenderer = (props) => {
204
293
  }), web.createComponent(solidJs.Match, {
205
294
  when: true,
206
295
  get children() {
207
- var _el$36 = web.getNextElement(_tmpl$1);
208
- web.insert(_el$36, () => JSON.stringify(props.section.content, null, 2));
209
- return _el$36;
296
+ var _el$47 = web.getNextElement(_tmpl$14);
297
+ web.insert(_el$47, () => JSON.stringify(props.section.content, null, 2));
298
+ return _el$47;
210
299
  }
211
300
  })];
212
301
  }
213
- }), _el$38, _co$5);
214
- return _el$29;
302
+ }), _el$49, _co$7);
303
+ return _el$44;
215
304
  })();
216
305
  };
217
306
  const DataSection = (props) => {
@@ -220,24 +309,24 @@ const DataSection = (props) => {
220
309
  return Object.entries(props.content);
221
310
  };
222
311
  return (() => {
223
- var _el$39 = web.getNextElement(_tmpl$11);
224
- web.insert(_el$39, web.createComponent(solidJs.For, {
312
+ var _el$50 = web.getNextElement(_tmpl$16);
313
+ web.insert(_el$50, web.createComponent(solidJs.For, {
225
314
  get each() {
226
315
  return entries();
227
316
  },
228
317
  children: ([key, value]) => (() => {
229
- var _el$40 = web.getNextElement(_tmpl$12), _el$41 = _el$40.firstChild, _el$43 = _el$41.firstChild, [_el$44, _co$6] = web.getNextMarker(_el$43.nextSibling);
230
- _el$44.nextSibling;
231
- var _el$45 = _el$41.nextSibling;
232
- web.insert(_el$41, key, _el$44, _co$6);
233
- web.insert(_el$45, (() => {
318
+ var _el$51 = web.getNextElement(_tmpl$17), _el$52 = _el$51.firstChild, _el$54 = _el$52.firstChild, [_el$55, _co$8] = web.getNextMarker(_el$54.nextSibling);
319
+ _el$55.nextSibling;
320
+ var _el$56 = _el$52.nextSibling;
321
+ web.insert(_el$52, key, _el$55, _co$8);
322
+ web.insert(_el$56, (() => {
234
323
  var _c$2 = web.memo(() => !!Array.isArray(value));
235
324
  return () => _c$2() ? value.join(", ") : String(value);
236
325
  })());
237
- return _el$40;
326
+ return _el$51;
238
327
  })()
239
328
  }));
240
- return _el$39;
329
+ return _el$50;
241
330
  })();
242
331
  };
243
332
  const FilterSection = (props) => {
@@ -251,27 +340,44 @@ const FilterSection = (props) => {
251
340
  };
252
341
  const entries = () => Object.entries(props.filters);
253
342
  return (() => {
254
- var _el$46 = web.getNextElement(_tmpl$13);
255
- web.insert(_el$46, web.createComponent(solidJs.For, {
343
+ var _el$57 = web.getNextElement(_tmpl$19), _el$59 = _el$57.firstChild, [_el$60, _co$9] = web.getNextMarker(_el$59.nextSibling), _el$61 = _el$60.nextSibling, [_el$62, _co$0] = web.getNextMarker(_el$61.nextSibling);
344
+ web.insert(_el$57, web.createComponent(solidJs.For, {
256
345
  get each() {
257
346
  return entries();
258
347
  },
259
348
  children: ([key, value]) => (() => {
260
- var _el$47 = web.getNextElement(_tmpl$14), _el$48 = _el$47.firstChild, _el$50 = _el$48.firstChild, [_el$51, _co$7] = web.getNextMarker(_el$50.nextSibling);
261
- _el$51.nextSibling;
262
- var _el$53 = _el$48.nextSibling, [_el$54, _co$8] = web.getNextMarker(_el$53.nextSibling), _el$52 = _el$54.nextSibling;
263
- web.insert(_el$48, key, _el$51, _co$7);
264
- web.insert(_el$47, (() => {
349
+ var _el$63 = web.getNextElement(_tmpl$21), _el$64 = _el$63.firstChild, _el$66 = _el$64.firstChild, [_el$67, _co$1] = web.getNextMarker(_el$66.nextSibling);
350
+ _el$67.nextSibling;
351
+ var _el$69 = _el$64.nextSibling, [_el$70, _co$10] = web.getNextMarker(_el$69.nextSibling), _el$71 = _el$70.nextSibling, [_el$72, _co$11] = web.getNextMarker(_el$71.nextSibling);
352
+ web.insert(_el$64, key, _el$67, _co$1);
353
+ web.insert(_el$63, (() => {
265
354
  var _c$3 = web.memo(() => !!Array.isArray(value));
266
355
  return () => _c$3() ? value.join(", ") : String(value);
267
- })(), _el$54, _co$8);
268
- _el$52.$$click = () => removeFilter(key);
269
- web.setAttribute(_el$52, "aria-label", `Remove filter ${key}`);
270
- web.runHydrationEvents();
271
- return _el$47;
356
+ })(), _el$70, _co$10);
357
+ web.insert(_el$63, web.createComponent(solidJs.Show, {
358
+ get when() {
359
+ return props.onFilterChange;
360
+ },
361
+ get children() {
362
+ var _el$68 = web.getNextElement(_tmpl$20);
363
+ _el$68.$$click = () => removeFilter(key);
364
+ web.setAttribute(_el$68, "aria-label", `Remove filter ${key}`);
365
+ web.runHydrationEvents();
366
+ return _el$68;
367
+ }
368
+ }), _el$72, _co$11);
369
+ return _el$63;
272
370
  })()
273
- }));
274
- return _el$46;
371
+ }), _el$60, _co$9);
372
+ web.insert(_el$57, web.createComponent(solidJs.Show, {
373
+ get when() {
374
+ return entries().length === 0;
375
+ },
376
+ get children() {
377
+ return web.getNextElement(_tmpl$18);
378
+ }
379
+ }), _el$62, _co$0);
380
+ return _el$57;
275
381
  })();
276
382
  };
277
383
  const ActionSection = (props) => {
@@ -280,24 +386,34 @@ const ActionSection = (props) => {
280
386
  return [];
281
387
  };
282
388
  return (() => {
283
- var _el$55 = web.getNextElement(_tmpl$15);
284
- web.insert(_el$55, web.createComponent(solidJs.For, {
389
+ var _el$73 = web.getNextElement(_tmpl$22);
390
+ web.insert(_el$73, web.createComponent(solidJs.For, {
285
391
  get each() {
286
392
  return actions();
287
393
  },
288
394
  children: (item) => (() => {
289
- var _el$56 = web.getNextElement(_tmpl$16);
290
- _el$56.$$click = () => {
395
+ var _el$74 = web.getNextElement(_tmpl$24), _el$76 = _el$74.firstChild, [_el$77, _co$12] = web.getNextMarker(_el$76.nextSibling), _el$78 = _el$77.nextSibling, [_el$79, _co$13] = web.getNextMarker(_el$78.nextSibling);
396
+ _el$74.$$click = () => {
291
397
  var _a;
292
- return (_a = props.onAction) == null ? void 0 : _a.call(props, item.action);
398
+ return (_a = props.onAction) == null ? void 0 : _a.call(props, item.value || item.action || item.label, item);
293
399
  };
294
- web.insert(_el$56, () => item.label);
295
- web.effect(() => web.className(_el$56, `px-3 py-1.5 text-sm font-medium rounded-lg transition-colors ${item.variant === "primary" ? "bg-blue-600 text-white hover:bg-blue-700" : item.variant === "danger" ? "bg-red-600 text-white hover:bg-red-700" : "border border-gray-200 dark:border-gray-600 text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700"}`));
400
+ web.insert(_el$74, web.createComponent(solidJs.Show, {
401
+ get when() {
402
+ return item.icon;
403
+ },
404
+ get children() {
405
+ var _el$75 = web.getNextElement(_tmpl$23);
406
+ web.insert(_el$75, () => item.icon);
407
+ return _el$75;
408
+ }
409
+ }), _el$77, _co$12);
410
+ web.insert(_el$74, () => item.label, _el$79, _co$13);
411
+ web.effect(() => web.className(_el$74, `px-3 py-1.5 text-sm font-medium rounded-lg transition-colors ${item.variant === "primary" ? "bg-blue-600 text-white hover:bg-blue-700" : item.variant === "danger" ? "bg-red-600 text-white hover:bg-red-700" : "border border-gray-200 dark:border-gray-600 text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700"}`));
296
412
  web.runHydrationEvents();
297
- return _el$56;
413
+ return _el$74;
298
414
  })()
299
415
  }));
300
- return _el$55;
416
+ return _el$73;
301
417
  })();
302
418
  };
303
419
  const StepsSection = (props) => {
@@ -306,8 +422,8 @@ const StepsSection = (props) => {
306
422
  return [];
307
423
  };
308
424
  return (() => {
309
- var _el$57 = web.getNextElement(_tmpl$17);
310
- web.insert(_el$57, web.createComponent(solidJs.For, {
425
+ var _el$80 = web.getNextElement(_tmpl$25);
426
+ web.insert(_el$80, web.createComponent(solidJs.For, {
311
427
  get each() {
312
428
  return steps();
313
429
  },
@@ -316,22 +432,22 @@ const StepsSection = (props) => {
316
432
  return i() > 0;
317
433
  },
318
434
  get children() {
319
- var _el$58 = web.getNextElement(_tmpl$18);
320
- web.effect(() => web.className(_el$58, `w-6 h-px ${step.status === "pending" ? "bg-gray-300 dark:bg-gray-600" : "bg-blue-400"}`));
321
- return _el$58;
435
+ var _el$81 = web.getNextElement(_tmpl$26);
436
+ web.effect(() => web.className(_el$81, `w-6 h-px ${step.status === "pending" ? "bg-gray-300 dark:bg-gray-600" : "bg-blue-400"}`));
437
+ return _el$81;
322
438
  }
323
439
  }), (() => {
324
- var _el$59 = web.getNextElement(_tmpl$19), _el$60 = _el$59.firstChild, [_el$61, _co$9] = web.getNextMarker(_el$60.nextSibling), _el$62 = _el$61.nextSibling, [_el$63, _co$0] = web.getNextMarker(_el$62.nextSibling);
325
- web.insert(_el$59, (() => {
440
+ var _el$82 = web.getNextElement(_tmpl$27), _el$83 = _el$82.firstChild, [_el$84, _co$14] = web.getNextMarker(_el$83.nextSibling), _el$85 = _el$84.nextSibling, [_el$86, _co$15] = web.getNextMarker(_el$85.nextSibling);
441
+ web.insert(_el$82, (() => {
326
442
  var _c$4 = web.memo(() => step.status === "done");
327
443
  return () => _c$4() ? "✓" : step.status === "active" ? "●" : "○";
328
- })(), _el$61, _co$9);
329
- web.insert(_el$59, () => step.label, _el$63, _co$0);
330
- web.effect(() => web.className(_el$59, `flex items-center gap-1.5 px-2 py-1 rounded text-xs font-medium ${step.status === "done" ? "text-green-600 dark:text-green-400" : step.status === "active" ? "text-blue-600 dark:text-blue-400 bg-blue-50 dark:bg-blue-900/20" : "text-gray-400"}`));
331
- return _el$59;
444
+ })(), _el$84, _co$14);
445
+ web.insert(_el$82, () => step.label, _el$86, _co$15);
446
+ web.effect(() => web.className(_el$82, `flex items-center gap-1.5 px-2 py-1 rounded text-xs font-medium ${step.status === "done" ? "text-green-600 dark:text-green-400" : step.status === "active" ? "text-blue-600 dark:text-blue-400 bg-blue-50 dark:bg-blue-900/20" : "text-gray-400"}`));
447
+ return _el$82;
332
448
  })()]
333
449
  }));
334
- return _el$57;
450
+ return _el$80;
335
451
  })();
336
452
  };
337
453
  web.delegateEvents(["click"]);