astro-tractstack 2.0.17 → 2.0.19

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 (63) hide show
  1. package/dist/index.js +18 -0
  2. package/package.json +1 -1
  3. package/templates/src/components/codehooks/FeaturedArticleSetup.tsx +1 -1
  4. package/templates/src/components/codehooks/ListContentSetup.tsx +1 -1
  5. package/templates/src/components/compositor/Compositor.tsx +1 -0
  6. package/templates/src/components/compositor/Node.tsx +41 -17
  7. package/templates/src/components/compositor/nodes/GhostInsertBlock.tsx +9 -6
  8. package/templates/src/components/compositor/nodes/GridLayout.tsx +124 -0
  9. package/templates/src/components/compositor/nodes/GridLayout_eraser.tsx +33 -0
  10. package/templates/src/components/compositor/nodes/Markdown.tsx +67 -37
  11. package/templates/src/components/compositor/nodes/Markdown_eraser.tsx +56 -0
  12. package/templates/src/components/compositor/preview/FeaturedArticlePreview.tsx +8 -2
  13. package/templates/src/components/edit/PanelSwitch.tsx +232 -75
  14. package/templates/src/components/edit/SettingsPanel.tsx +0 -1
  15. package/templates/src/components/edit/pane/AddPanePanel_codehook.tsx +3 -3
  16. package/templates/src/components/edit/pane/AddPanePanel_new.tsx +402 -167
  17. package/templates/src/components/edit/pane/AddPanePanel_reuse.tsx +2 -2
  18. package/templates/src/components/edit/pane/ConfigPanePanel.tsx +1 -7
  19. package/templates/src/components/edit/pane/PanePanel_impression.tsx +1 -1
  20. package/templates/src/components/edit/pane/RestylePaneModal.tsx +8 -5
  21. package/templates/src/components/edit/pane/steps/AiDesignStep.tsx +6 -6
  22. package/templates/src/components/edit/pane/steps/CopyInputStep.tsx +3 -3
  23. package/templates/src/components/edit/pane/steps/DesignLibraryStep.tsx +4 -4
  24. package/templates/src/components/edit/panels/StyleElementPanel.tsx +11 -4
  25. package/templates/src/components/edit/panels/StyleElementPanel_add.tsx +8 -8
  26. package/templates/src/components/edit/panels/StyleElementPanel_remove.tsx +14 -4
  27. package/templates/src/components/edit/panels/StyleElementPanel_update.tsx +16 -4
  28. package/templates/src/components/edit/panels/StyleImagePanel.tsx +7 -3
  29. package/templates/src/components/edit/panels/StyleImagePanel_add.tsx +9 -2
  30. package/templates/src/components/edit/panels/StyleImagePanel_remove.tsx +5 -2
  31. package/templates/src/components/edit/panels/StyleImagePanel_update.tsx +5 -2
  32. package/templates/src/components/edit/panels/StyleLiElementPanel.tsx +7 -3
  33. package/templates/src/components/edit/panels/StyleLiElementPanel_add.tsx +9 -2
  34. package/templates/src/components/edit/panels/StyleLiElementPanel_remove.tsx +5 -2
  35. package/templates/src/components/edit/panels/StyleLiElementPanel_update.tsx +5 -2
  36. package/templates/src/components/edit/panels/StyleParentPanel.tsx +530 -171
  37. package/templates/src/components/edit/panels/StyleParentPanel_add.tsx +77 -42
  38. package/templates/src/components/edit/panels/StyleParentPanel_deleteLayer.tsx +38 -22
  39. package/templates/src/components/edit/panels/StyleParentPanel_remove.tsx +171 -66
  40. package/templates/src/components/edit/panels/StyleParentPanel_update.tsx +166 -98
  41. package/templates/src/components/edit/panels/StyleWidgetPanel.tsx +7 -3
  42. package/templates/src/components/edit/panels/StyleWidgetPanel_add.tsx +9 -2
  43. package/templates/src/components/edit/panels/StyleWidgetPanel_remove.tsx +5 -2
  44. package/templates/src/components/edit/panels/StyleWidgetPanel_update.tsx +6 -2
  45. package/templates/src/components/edit/state/SaveModal.tsx +10 -2
  46. package/templates/src/components/edit/state/SaveToLibraryModal.tsx +6 -6
  47. package/templates/src/components/fields/PaneBreakShapeSelector.tsx +1 -1
  48. package/templates/src/components/widgets/ImpressionWrapper.tsx +4 -1
  49. package/templates/src/constants/prompts.json +23 -2
  50. package/templates/src/stores/nodes.ts +356 -212
  51. package/templates/src/stores/storykeep.ts +3 -1
  52. package/templates/src/types/compositorTypes.ts +56 -3
  53. package/templates/src/types/tractstack.ts +1 -0
  54. package/templates/src/utils/compositor/TemplateNodes.ts +8 -0
  55. package/templates/src/utils/compositor/aiPaneParser.ts +263 -83
  56. package/templates/src/utils/compositor/designLibraryHelper.ts +12 -9
  57. package/templates/src/utils/compositor/nodesHelper.ts +229 -0
  58. package/templates/src/utils/compositor/reduceNodesClassNames.ts +40 -1
  59. package/templates/src/utils/compositor/typeGuards.ts +7 -0
  60. package/templates/src/utils/etl/extractor.ts +1 -5
  61. package/templates/src/utils/etl/index.ts +1 -0
  62. package/templates/src/utils/etl/transformer.ts +70 -25
  63. package/utils/inject-files.ts +18 -0
@@ -2,7 +2,10 @@ import { useEffect } from 'react';
2
2
  import { useStore } from '@nanostores/react';
3
3
  import { settingsPanelStore } from '@/stores/storykeep';
4
4
  import { getCtx } from '@/stores/nodes';
5
- import { isMarkdownPaneFragmentNode } from '@/utils/compositor/typeGuards';
5
+ import {
6
+ isGridLayoutNode,
7
+ isMarkdownPaneFragmentNode,
8
+ } from '@/utils/compositor/typeGuards';
6
9
  import StyleBreakPanel from './panels/StyleBreakPanel';
7
10
  import StyleParentPanel from './panels/StyleParentPanel';
8
11
  import StyleParentAddPanel from './panels/StyleParentPanel_add';
@@ -36,6 +39,7 @@ import { getSettingsPanelTitle } from '@/utils/helpers';
36
39
  import type { BrandConfig } from '@/types/tractstack';
37
40
  import type {
38
41
  FlatNode,
42
+ GridLayoutNode,
39
43
  MarkdownPaneFragmentNode,
40
44
  } from '@/types/compositorTypes';
41
45
 
@@ -81,9 +85,18 @@ const PanelSwitch = ({
81
85
  const childNodes = childNodeIds
82
86
  .map((id) => allNodes.get(id))
83
87
  .filter((node): node is FlatNode => !!node);
84
- const markdownNode = childNodes.find((node) => node.nodeType === 'Markdown');
88
+ const markdownNode =
89
+ clickedNode &&
90
+ signal.targetProperty &&
91
+ signal.targetProperty === 'gridClasses' &&
92
+ isMarkdownPaneFragmentNode(clickedNode)
93
+ ? clickedNode
94
+ : childNodes.find(isMarkdownPaneFragmentNode);
95
+ const gridLayoutNode = childNodes.find(isGridLayoutNode);
85
96
 
86
97
  if (markdownNode && !isMarkdownPaneFragmentNode(markdownNode)) return null;
98
+ if (gridLayoutNode && !isGridLayoutNode(gridLayoutNode)) return null;
99
+ const styleContextNode = markdownNode || gridLayoutNode;
87
100
 
88
101
  switch (signal.action) {
89
102
  case 'style-break':
@@ -107,39 +120,75 @@ const PanelSwitch = ({
107
120
  config={config}
108
121
  />
109
122
  );
123
+ else if (gridLayoutNode && paneNode)
124
+ return (
125
+ <StyleParentPanel
126
+ node={gridLayoutNode}
127
+ parentNode={paneNode}
128
+ layer={signal.layer || 0}
129
+ config={config}
130
+ />
131
+ );
110
132
  break;
111
133
 
112
- case 'style-parent-add':
134
+ case 'style-parent-add': {
113
135
  if (markdownNode)
114
136
  return (
115
- <StyleParentAddPanel node={markdownNode} layer={signal.layer || 0} />
137
+ <StyleParentAddPanel
138
+ node={markdownNode}
139
+ layer={signal.layer || 0}
140
+ targetProperty={(signal as any).targetProperty}
141
+ />
142
+ );
143
+ else if (gridLayoutNode)
144
+ return (
145
+ <StyleParentAddPanel
146
+ node={gridLayoutNode}
147
+ layer={signal.layer || 0}
148
+ targetProperty={(signal as any).targetProperty}
149
+ />
116
150
  );
117
151
  break;
152
+ }
118
153
 
119
- case 'style-parent-remove':
120
- if (markdownNode && signal.className)
154
+ case 'style-parent-remove': {
155
+ if (
156
+ clickedNode &&
157
+ (isMarkdownPaneFragmentNode(clickedNode) ||
158
+ isGridLayoutNode(clickedNode)) &&
159
+ signal.className
160
+ )
121
161
  return (
122
162
  <StyleParentRemovePanel
123
- node={markdownNode}
163
+ node={clickedNode}
124
164
  layer={signal.layer || 0}
125
165
  className={signal.className}
166
+ targetProperty={(signal as any).targetProperty}
126
167
  />
127
168
  );
128
169
  break;
170
+ }
129
171
 
130
- case 'style-parent-update':
131
- if (markdownNode && signal.className)
172
+ case 'style-parent-update': {
173
+ if (
174
+ clickedNode &&
175
+ (isMarkdownPaneFragmentNode(clickedNode) ||
176
+ isGridLayoutNode(clickedNode)) &&
177
+ signal.className
178
+ )
132
179
  return (
133
180
  <StyleParentUpdatePanel
134
- node={markdownNode}
181
+ node={clickedNode}
135
182
  layer={signal.layer || 0}
136
183
  className={signal.className}
137
184
  config={config}
185
+ targetProperty={(signal as any).targetProperty}
138
186
  />
139
187
  );
140
188
  break;
189
+ }
141
190
 
142
- case 'style-parent-delete-layer':
191
+ case 'style-parent-delete-layer': {
143
192
  if (markdownNode)
144
193
  return (
145
194
  <StyleParentDeleteLayerPanel
@@ -148,6 +197,7 @@ const PanelSwitch = ({
148
197
  />
149
198
  );
150
199
  break;
200
+ }
151
201
 
152
202
  case 'style-link':
153
203
  if (clickedNode) return <StyleLinkPanel node={clickedNode} />;
@@ -187,33 +237,35 @@ const PanelSwitch = ({
187
237
  break;
188
238
 
189
239
  case 'style-element':
190
- if (clickedNode && markdownNode)
240
+ if (clickedNode && styleContextNode)
191
241
  return (
192
242
  <StyleElementPanel
193
243
  node={clickedNode}
194
- parentNode={markdownNode as MarkdownPaneFragmentNode}
244
+ parentNode={
245
+ styleContextNode as MarkdownPaneFragmentNode | GridLayoutNode
246
+ }
195
247
  onTitleChange={onTitleChange}
196
248
  />
197
249
  );
198
250
  break;
199
251
 
200
252
  case 'style-element-add':
201
- if (clickedNode && markdownNode)
253
+ if (clickedNode && styleContextNode)
202
254
  return (
203
255
  <StyleElementAddPanel
204
256
  node={clickedNode}
205
- parentNode={markdownNode}
257
+ parentNode={styleContextNode}
206
258
  onTitleChange={onTitleChange}
207
259
  />
208
260
  );
209
261
  break;
210
262
 
211
263
  case 'style-element-remove':
212
- if (clickedNode && markdownNode && signal.className)
264
+ if (clickedNode && styleContextNode && signal.className)
213
265
  return (
214
266
  <StyleElementRemovePanel
215
267
  node={clickedNode}
216
- parentNode={markdownNode}
268
+ parentNode={styleContextNode}
217
269
  className={signal.className}
218
270
  onTitleChange={onTitleChange}
219
271
  />
@@ -221,11 +273,11 @@ const PanelSwitch = ({
221
273
  break;
222
274
 
223
275
  case 'style-element-update':
224
- if (clickedNode && markdownNode && signal.className)
276
+ if (clickedNode && styleContextNode && signal.className)
225
277
  return (
226
278
  <StyleElementUpdatePanel
227
279
  node={clickedNode}
228
- parentNode={markdownNode}
280
+ parentNode={styleContextNode}
229
281
  className={signal.className}
230
282
  onTitleChange={onTitleChange}
231
283
  config={config}
@@ -234,32 +286,58 @@ const PanelSwitch = ({
234
286
  break;
235
287
 
236
288
  case 'style-image': {
237
- if (clickedNode?.parentId) {
238
- const containerNode = allNodes.get(clickedNode.parentId);
289
+ let imageNode: FlatNode | undefined;
290
+ let containerNode: FlatNode | undefined;
291
+ let outerContainerNode: FlatNode | undefined;
292
+
293
+ if (
294
+ clickedNode &&
295
+ (clickedNode.tagName === 'ul' || clickedNode.tagName === 'ol')
296
+ ) {
297
+ outerContainerNode = clickedNode;
298
+ const liNodeIds = ctx.getChildNodeIDs(outerContainerNode.id);
299
+ if (liNodeIds.length > 0) {
300
+ containerNode = allNodes.get(liNodeIds[0]) as FlatNode;
301
+ if (containerNode) {
302
+ const imgNodeIds = ctx.getChildNodeIDs(containerNode.id);
303
+ if (imgNodeIds.length > 0) {
304
+ imageNode = allNodes.get(imgNodeIds[0]) as FlatNode;
305
+ }
306
+ }
307
+ }
308
+ } else if (clickedNode?.parentId) {
309
+ imageNode = clickedNode;
310
+ containerNode = allNodes.get(clickedNode.parentId) as FlatNode;
239
311
  if (containerNode?.parentId) {
240
- const outerContainerNode = allNodes.get(containerNode.parentId);
241
- if (markdownNode && containerNode && outerContainerNode)
242
- return (
243
- <StyleImagePanel
244
- node={clickedNode}
245
- parentNode={markdownNode}
246
- containerNode={containerNode as FlatNode}
247
- outerContainerNode={outerContainerNode as FlatNode}
248
- />
249
- );
312
+ outerContainerNode = allNodes.get(containerNode.parentId) as FlatNode;
250
313
  }
251
314
  }
315
+ if (
316
+ styleContextNode &&
317
+ imageNode &&
318
+ containerNode &&
319
+ outerContainerNode
320
+ ) {
321
+ return (
322
+ <StyleImagePanel
323
+ node={imageNode}
324
+ parentNode={styleContextNode}
325
+ containerNode={containerNode}
326
+ outerContainerNode={outerContainerNode}
327
+ />
328
+ );
329
+ }
252
330
  break;
253
331
  }
254
332
 
255
333
  case 'style-img-add':
256
334
  case 'style-img-container-add':
257
335
  case 'style-img-outer-add':
258
- if (clickedNode && markdownNode && signal.childId)
336
+ if (clickedNode && styleContextNode && signal.childId)
259
337
  return (
260
338
  <StyleImageAddPanel
261
339
  node={clickedNode}
262
- parentNode={markdownNode}
340
+ parentNode={styleContextNode}
263
341
  childId={signal.childId}
264
342
  />
265
343
  );
@@ -268,11 +346,11 @@ const PanelSwitch = ({
268
346
  case 'style-img-update':
269
347
  case 'style-img-container-update':
270
348
  case 'style-img-outer-update':
271
- if (clickedNode && markdownNode && signal.className && signal.childId)
349
+ if (clickedNode && styleContextNode && signal.className && signal.childId)
272
350
  return (
273
351
  <StyleImageUpdatePanel
274
352
  node={clickedNode}
275
- parentNode={markdownNode}
353
+ parentNode={styleContextNode}
276
354
  className={signal.className}
277
355
  childId={signal.childId}
278
356
  config={config}
@@ -281,36 +359,74 @@ const PanelSwitch = ({
281
359
  break;
282
360
 
283
361
  case 'style-img-remove':
362
+ if (clickedNode && styleContextNode && signal.className)
363
+ return (
364
+ <StyleImageRemovePanel
365
+ node={clickedNode}
366
+ parentNode={styleContextNode}
367
+ className={signal.className}
368
+ />
369
+ );
370
+ break;
371
+
284
372
  case 'style-img-container-remove':
285
373
  case 'style-img-outer-remove':
286
- if (clickedNode && markdownNode && signal.className && signal.childId)
374
+ if (clickedNode && styleContextNode && signal.className && signal.childId)
287
375
  return (
288
376
  <StyleImageRemovePanel
289
377
  node={clickedNode}
290
- parentNode={markdownNode}
378
+ parentNode={styleContextNode}
291
379
  className={signal.className}
292
380
  childId={signal.childId}
293
381
  />
294
382
  );
295
383
  break;
296
384
 
297
- case 'style-widget':
298
- if (clickedNode?.parentId) {
299
- const containerNode = allNodes.get(clickedNode.parentId);
385
+ case 'style-widget': {
386
+ let widgetNode: FlatNode | undefined;
387
+ let containerNode: FlatNode | undefined;
388
+ let outerContainerNode: FlatNode | undefined;
389
+
390
+ if (
391
+ clickedNode &&
392
+ (clickedNode.tagName === 'ul' || clickedNode.tagName === 'ol')
393
+ ) {
394
+ outerContainerNode = clickedNode;
395
+ const liNodeIds = ctx.getChildNodeIDs(outerContainerNode.id);
396
+ if (liNodeIds.length > 0) {
397
+ containerNode = allNodes.get(liNodeIds[0]) as FlatNode;
398
+ if (containerNode) {
399
+ const codeNodeIds = ctx.getChildNodeIDs(containerNode.id);
400
+ if (codeNodeIds.length > 0) {
401
+ widgetNode = allNodes.get(codeNodeIds[0]) as FlatNode;
402
+ }
403
+ }
404
+ }
405
+ } else if (clickedNode?.parentId) {
406
+ widgetNode = clickedNode;
407
+ containerNode = allNodes.get(clickedNode.parentId) as FlatNode;
300
408
  if (containerNode?.parentId) {
301
- const outerContainerNode = allNodes.get(containerNode.parentId);
302
- if (markdownNode && containerNode && outerContainerNode)
303
- return (
304
- <StyleWidgetPanel
305
- node={clickedNode}
306
- parentNode={markdownNode}
307
- containerNode={containerNode as FlatNode}
308
- outerContainerNode={outerContainerNode as FlatNode}
309
- />
310
- );
409
+ outerContainerNode = allNodes.get(containerNode.parentId) as FlatNode;
311
410
  }
312
411
  }
412
+
413
+ if (
414
+ styleContextNode &&
415
+ widgetNode &&
416
+ containerNode &&
417
+ outerContainerNode
418
+ ) {
419
+ return (
420
+ <StyleWidgetPanel
421
+ node={widgetNode}
422
+ parentNode={styleContextNode}
423
+ containerNode={containerNode}
424
+ outerContainerNode={outerContainerNode}
425
+ />
426
+ );
427
+ }
313
428
  break;
429
+ }
314
430
 
315
431
  case 'style-code-config':
316
432
  if (clickedNode)
@@ -320,24 +436,35 @@ const PanelSwitch = ({
320
436
  case 'style-code-add':
321
437
  case 'style-code-container-add':
322
438
  case 'style-code-outer-add':
323
- if (clickedNode && markdownNode)
439
+ if (clickedNode && styleContextNode)
324
440
  return (
325
441
  <StyleWidgetAddPanel
326
442
  node={clickedNode}
327
- parentNode={markdownNode}
443
+ parentNode={styleContextNode}
328
444
  childId={signal?.childId}
329
445
  />
330
446
  );
331
447
  break;
332
448
 
333
449
  case 'style-code-update':
450
+ if (clickedNode && styleContextNode && signal.className)
451
+ return (
452
+ <StyleWidgetUpdatePanel
453
+ node={clickedNode}
454
+ parentNode={styleContextNode}
455
+ className={signal.className}
456
+ config={config}
457
+ />
458
+ );
459
+ break;
460
+
334
461
  case 'style-code-container-update':
335
462
  case 'style-code-outer-update':
336
- if (clickedNode && markdownNode && signal.childId && signal.className)
463
+ if (clickedNode && styleContextNode && signal.childId && signal.className)
337
464
  return (
338
465
  <StyleWidgetUpdatePanel
339
466
  node={clickedNode}
340
- parentNode={markdownNode}
467
+ parentNode={styleContextNode}
341
468
  className={signal.className}
342
469
  childId={signal.childId}
343
470
  config={config}
@@ -346,13 +473,23 @@ const PanelSwitch = ({
346
473
  break;
347
474
 
348
475
  case 'style-code-remove':
476
+ if (clickedNode && styleContextNode && signal.className)
477
+ return (
478
+ <StyleWidgetRemovePanel
479
+ node={clickedNode}
480
+ parentNode={styleContextNode}
481
+ className={signal.className}
482
+ />
483
+ );
484
+ break;
485
+
349
486
  case 'style-code-container-remove':
350
487
  case 'style-code-outer-remove':
351
- if (clickedNode && markdownNode && signal.childId && signal.className)
488
+ if (clickedNode && styleContextNode && signal.childId && signal.className)
352
489
  return (
353
490
  <StyleWidgetRemovePanel
354
491
  node={clickedNode}
355
- parentNode={markdownNode}
492
+ parentNode={styleContextNode}
356
493
  className={signal.className}
357
494
  childId={signal.childId}
358
495
  />
@@ -363,14 +500,14 @@ const PanelSwitch = ({
363
500
  if (clickedNode?.parentId) {
364
501
  const outerContainerNode = allNodes.get(clickedNode.parentId);
365
502
  if (
366
- markdownNode &&
503
+ styleContextNode &&
367
504
  outerContainerNode &&
368
505
  signal.action === 'style-li-element'
369
506
  )
370
507
  return (
371
508
  <StyleLiElementPanel
372
509
  node={clickedNode}
373
- parentNode={markdownNode}
510
+ parentNode={styleContextNode}
374
511
  outerContainerNode={outerContainerNode as FlatNode}
375
512
  />
376
513
  );
@@ -378,24 +515,43 @@ const PanelSwitch = ({
378
515
  break;
379
516
 
380
517
  case 'style-li-element-add':
518
+ if (clickedNode && styleContextNode)
519
+ return (
520
+ <StyleLiElementAddPanel
521
+ node={clickedNode}
522
+ parentNode={styleContextNode}
523
+ />
524
+ );
525
+ break;
526
+
381
527
  case 'style-li-container-add':
382
- if (clickedNode && markdownNode && signal.childId)
528
+ if (clickedNode && styleContextNode)
383
529
  return (
384
530
  <StyleLiElementAddPanel
385
531
  node={clickedNode}
386
- parentNode={markdownNode}
387
- childId={signal.childId}
532
+ parentNode={styleContextNode}
388
533
  />
389
534
  );
390
535
  break;
391
536
 
392
537
  case 'style-li-element-update':
538
+ if (clickedNode && styleContextNode && signal.className)
539
+ return (
540
+ <StyleLiElementUpdatePanel
541
+ node={clickedNode}
542
+ parentNode={styleContextNode}
543
+ className={signal.className}
544
+ config={config}
545
+ />
546
+ );
547
+ break;
548
+
393
549
  case 'style-li-container-update':
394
- if (clickedNode && markdownNode && signal.className && signal.childId)
550
+ if (clickedNode && styleContextNode && signal.className && signal.childId)
395
551
  return (
396
552
  <StyleLiElementUpdatePanel
397
553
  node={clickedNode}
398
- parentNode={markdownNode}
554
+ parentNode={styleContextNode}
399
555
  className={signal.className}
400
556
  childId={signal.childId}
401
557
  config={config}
@@ -404,12 +560,22 @@ const PanelSwitch = ({
404
560
  break;
405
561
 
406
562
  case 'style-li-element-remove':
563
+ if (clickedNode && styleContextNode && signal.className)
564
+ return (
565
+ <StyleLiElementRemovePanel
566
+ node={clickedNode}
567
+ parentNode={styleContextNode}
568
+ className={signal.className}
569
+ />
570
+ );
571
+ break;
572
+
407
573
  case 'style-li-container-remove':
408
- if (clickedNode && markdownNode && signal.className && signal.childId)
574
+ if (clickedNode && styleContextNode && signal.className && signal.childId)
409
575
  return (
410
576
  <StyleLiElementRemovePanel
411
577
  node={clickedNode}
412
- parentNode={markdownNode}
578
+ parentNode={styleContextNode}
413
579
  className={signal.className}
414
580
  childId={signal.childId}
415
581
  />
@@ -429,16 +595,7 @@ const PanelSwitch = ({
429
595
  default:
430
596
  settingsPanelStore.set(null);
431
597
  }
432
- console.log(
433
- `SettingsPanel miss`,
434
- signal,
435
- clickedNode,
436
- paneId,
437
- paneNode,
438
- childNodeIds,
439
- childNodes,
440
- availableCodeHooks
441
- );
598
+ console.warn(`SettingsPanel switch miss`, signal, clickedNode);
442
599
  return null;
443
600
  };
444
601
 
@@ -16,7 +16,6 @@ const SettingsPanel = ({ config, availableCodeHooks }: SettingsPanelProps) => {
16
16
  const signal = useStore(settingsPanelStore);
17
17
  const ctx = getCtx();
18
18
  const { value: toolModeVal } = useStore(ctx.toolModeValStore);
19
-
20
19
  const isLinkInsertSignal = signal?.action === 'style-link';
21
20
  const shouldShow =
22
21
  toolModeVal === 'styles' || (toolModeVal === 'text' && isLinkInsertSignal);
@@ -174,7 +174,7 @@ const AddPaneCodeHookPanel = ({
174
174
  <style>{comboboxItemStyles}</style>
175
175
  <div className="w-full rounded-md bg-white p-1.5">
176
176
  <div className="flex flex-wrap items-center gap-2">
177
- <div className="flex min-w-[200px] flex-wrap items-center gap-2">
177
+ <div className="flex min-w-48 flex-wrap items-center gap-2">
178
178
  <button
179
179
  onClick={() => setMode(PaneAddMode.DEFAULT)}
180
180
  className="w-fit flex-none rounded bg-gray-100 px-3 py-1 text-sm text-gray-700 transition-colors hover:bg-gray-200 focus:bg-gray-200"
@@ -187,7 +187,7 @@ const AddPaneCodeHookPanel = ({
187
187
  </div>
188
188
  </div>
189
189
 
190
- <div className="min-w-[300px] flex-1">
190
+ <div className="min-w-72 flex-1">
191
191
  <Combobox.Root
192
192
  collection={collection}
193
193
  value={selected ? [selected] : []}
@@ -247,7 +247,7 @@ const AddPaneCodeHookPanel = ({
247
247
  </div>
248
248
 
249
249
  {selected && (
250
- <div className="flex min-w-[200px] flex-wrap gap-2">
250
+ <div className="flex min-w-48 flex-wrap gap-2">
251
251
  <button
252
252
  onClick={handleUseCodeHook}
253
253
  className="rounded bg-cyan-600 px-3 py-2 text-sm text-white transition-colors hover:bg-cyan-700 focus:bg-cyan-700"