@goplasmatic/datalogic-ui 5.2.0 → 5.3.0

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 (186) hide show
  1. package/README.md +163 -32
  2. package/dist/components/logic-editor/DataLogicEditor.d.ts +1 -1
  3. package/dist/components/logic-editor/DataLogicEditor.d.ts.map +1 -1
  4. package/dist/components/logic-editor/EditorToolbar.d.ts +8 -1
  5. package/dist/components/logic-editor/EditorToolbar.d.ts.map +1 -1
  6. package/dist/components/logic-editor/KeyboardHandler.d.ts.map +1 -1
  7. package/dist/components/logic-editor/config/arity.d.ts +3 -0
  8. package/dist/components/logic-editor/config/arity.d.ts.map +1 -0
  9. package/dist/components/logic-editor/config/categories.d.ts +7 -2
  10. package/dist/components/logic-editor/config/categories.d.ts.map +1 -1
  11. package/dist/components/logic-editor/config/docs.d.ts +11 -0
  12. package/dist/components/logic-editor/config/docs.d.ts.map +1 -0
  13. package/dist/components/logic-editor/config/literalPanel.d.ts +4 -0
  14. package/dist/components/logic-editor/config/literalPanel.d.ts.map +1 -1
  15. package/dist/components/logic-editor/config/operators/arithmetic-basic.d.ts.map +1 -1
  16. package/dist/components/logic-editor/config/operators/arithmetic-functions.d.ts.map +1 -1
  17. package/dist/components/logic-editor/config/operators/array-iteration.d.ts.map +1 -1
  18. package/dist/components/logic-editor/config/operators/array-manipulation.d.ts.map +1 -1
  19. package/dist/components/logic-editor/config/operators/array.d.ts +1 -1
  20. package/dist/components/logic-editor/config/operators/control.d.ts.map +1 -1
  21. package/dist/components/logic-editor/config/operators/datetime.d.ts.map +1 -1
  22. package/dist/components/logic-editor/config/operators/error.d.ts.map +1 -1
  23. package/dist/components/logic-editor/config/operators/flagd.d.ts +3 -0
  24. package/dist/components/logic-editor/config/operators/flagd.d.ts.map +1 -0
  25. package/dist/components/logic-editor/config/operators/index.d.ts +2 -1
  26. package/dist/components/logic-editor/config/operators/index.d.ts.map +1 -1
  27. package/dist/components/logic-editor/config/operators/logical.d.ts.map +1 -1
  28. package/dist/components/logic-editor/config/operators/string-core.d.ts.map +1 -1
  29. package/dist/components/logic-editor/config/operators/string-transform.d.ts.map +1 -1
  30. package/dist/components/logic-editor/config/operators/utility.d.ts.map +1 -1
  31. package/dist/components/logic-editor/config/operators/validation.d.ts.map +1 -1
  32. package/dist/components/logic-editor/config/operators/variable.d.ts.map +1 -1
  33. package/dist/components/logic-editor/config/operators.types.d.ts +13 -11
  34. package/dist/components/logic-editor/config/operators.types.d.ts.map +1 -1
  35. package/dist/components/logic-editor/constants/colors.d.ts.map +1 -1
  36. package/dist/components/logic-editor/context/debugger/DebuggerProvider.d.ts +6 -1
  37. package/dist/components/logic-editor/context/debugger/DebuggerProvider.d.ts.map +1 -1
  38. package/dist/components/logic-editor/context/debugger/hooks.d.ts +3 -1
  39. package/dist/components/logic-editor/context/debugger/hooks.d.ts.map +1 -1
  40. package/dist/components/logic-editor/context/debugger/types.d.ts +18 -0
  41. package/dist/components/logic-editor/context/debugger/types.d.ts.map +1 -1
  42. package/dist/components/logic-editor/context/editor/EditorContext.d.ts.map +1 -1
  43. package/dist/components/logic-editor/context/editor/useNodeCreation.d.ts.map +1 -1
  44. package/dist/components/logic-editor/context/editor/useNodeEdgeInsert.d.ts +16 -0
  45. package/dist/components/logic-editor/context/editor/useNodeEdgeInsert.d.ts.map +1 -1
  46. package/dist/components/logic-editor/context/editor/useNodeOperations.d.ts.map +1 -1
  47. package/dist/components/logic-editor/context/index.d.ts +0 -1
  48. package/dist/components/logic-editor/context/index.d.ts.map +1 -1
  49. package/dist/components/logic-editor/context-menu/CanvasContextMenu.d.ts +1 -1
  50. package/dist/components/logic-editor/context-menu/CanvasContextMenu.d.ts.map +1 -1
  51. package/dist/components/logic-editor/context-menu/index.d.ts +0 -1
  52. package/dist/components/logic-editor/context-menu/index.d.ts.map +1 -1
  53. package/dist/components/logic-editor/context-menu/menu-helpers.d.ts +2 -1
  54. package/dist/components/logic-editor/context-menu/menu-helpers.d.ts.map +1 -1
  55. package/dist/components/logic-editor/context-menu/useContextMenuItems.d.ts.map +1 -1
  56. package/dist/components/logic-editor/debugger-controls/DebuggerControls.d.ts.map +1 -1
  57. package/dist/components/logic-editor/debugger-controls/StepTimeline.d.ts +14 -0
  58. package/dist/components/logic-editor/debugger-controls/StepTimeline.d.ts.map +1 -0
  59. package/dist/components/logic-editor/debugger-controls/index.d.ts +2 -0
  60. package/dist/components/logic-editor/debugger-controls/index.d.ts.map +1 -1
  61. package/dist/components/logic-editor/debugger-controls/keyboard-guard.d.ts +6 -0
  62. package/dist/components/logic-editor/debugger-controls/keyboard-guard.d.ts.map +1 -0
  63. package/dist/components/logic-editor/edges/EdgeOperatorPicker.d.ts.map +1 -1
  64. package/dist/components/logic-editor/hooks/index.d.ts +2 -3
  65. package/dist/components/logic-editor/hooks/index.d.ts.map +1 -1
  66. package/dist/components/logic-editor/hooks/useDebugClassName.d.ts +2 -0
  67. package/dist/components/logic-editor/hooks/useDebugClassName.d.ts.map +1 -1
  68. package/dist/components/logic-editor/hooks/useLogicEditor.d.ts +15 -8
  69. package/dist/components/logic-editor/hooks/useLogicEditor.d.ts.map +1 -1
  70. package/dist/components/logic-editor/hooks/useWasmEvaluator.d.ts +72 -4
  71. package/dist/components/logic-editor/hooks/useWasmEvaluator.d.ts.map +1 -1
  72. package/dist/components/logic-editor/index.d.ts +3 -4
  73. package/dist/components/logic-editor/index.d.ts.map +1 -1
  74. package/dist/components/logic-editor/nodes/DebugInfoBubble.d.ts +9 -2
  75. package/dist/components/logic-editor/nodes/DebugInfoBubble.d.ts.map +1 -1
  76. package/dist/components/logic-editor/nodes/shared/NodeDebugBubble.d.ts +2 -1
  77. package/dist/components/logic-editor/nodes/shared/NodeDebugBubble.d.ts.map +1 -1
  78. package/dist/components/logic-editor/panel-inputs/PanelRenderer.d.ts +12 -1
  79. package/dist/components/logic-editor/panel-inputs/PanelRenderer.d.ts.map +1 -1
  80. package/dist/components/logic-editor/panel-inputs/index.d.ts +1 -1
  81. package/dist/components/logic-editor/panel-inputs/index.d.ts.map +1 -1
  82. package/dist/components/logic-editor/properties-panel/ArgumentItem.d.ts.map +1 -1
  83. package/dist/components/logic-editor/properties-panel/ArgumentsSection.d.ts.map +1 -1
  84. package/dist/components/logic-editor/properties-panel/HelpSection.d.ts +8 -2
  85. package/dist/components/logic-editor/properties-panel/HelpSection.d.ts.map +1 -1
  86. package/dist/components/logic-editor/properties-panel/utils/argument-parser.d.ts +4 -0
  87. package/dist/components/logic-editor/properties-panel/utils/argument-parser.d.ts.map +1 -1
  88. package/dist/components/logic-editor/properties-panel/utils/expression-rebuilder.d.ts +6 -2
  89. package/dist/components/logic-editor/properties-panel/utils/expression-rebuilder.d.ts.map +1 -1
  90. package/dist/components/logic-editor/properties-panel/utils.d.ts.map +1 -1
  91. package/dist/components/logic-editor/services/argument-service.d.ts +4 -1
  92. package/dist/components/logic-editor/services/argument-service.d.ts.map +1 -1
  93. package/dist/components/logic-editor/services/index.d.ts +1 -1
  94. package/dist/components/logic-editor/services/index.d.ts.map +1 -1
  95. package/dist/components/logic-editor/services/inline-edit-service.d.ts +13 -0
  96. package/dist/components/logic-editor/services/inline-edit-service.d.ts.map +1 -0
  97. package/dist/components/logic-editor/services/node-mutation-service.d.ts +3 -2
  98. package/dist/components/logic-editor/services/node-mutation-service.d.ts.map +1 -1
  99. package/dist/components/logic-editor/services/node-transform-service.d.ts +14 -4
  100. package/dist/components/logic-editor/services/node-transform-service.d.ts.map +1 -1
  101. package/dist/components/logic-editor/types/editor.d.ts +51 -19
  102. package/dist/components/logic-editor/types/editor.d.ts.map +1 -1
  103. package/dist/components/logic-editor/types/index.d.ts +1 -1
  104. package/dist/components/logic-editor/types/index.d.ts.map +1 -1
  105. package/dist/components/logic-editor/types/jsonlogic.d.ts +1 -1
  106. package/dist/components/logic-editor/types/jsonlogic.d.ts.map +1 -1
  107. package/dist/components/logic-editor/types/trace.d.ts +16 -5
  108. package/dist/components/logic-editor/types/trace.d.ts.map +1 -1
  109. package/dist/components/logic-editor/utils/Icon.d.ts.map +1 -1
  110. package/dist/components/logic-editor/utils/converters/if-else-converter.d.ts +29 -3
  111. package/dist/components/logic-editor/utils/converters/if-else-converter.d.ts.map +1 -1
  112. package/dist/components/logic-editor/utils/converters/index.d.ts.map +1 -1
  113. package/dist/components/logic-editor/utils/converters/operator-converter.d.ts +1 -1
  114. package/dist/components/logic-editor/utils/converters/operator-converter.d.ts.map +1 -1
  115. package/dist/components/logic-editor/utils/converters/structure-converter.d.ts +4 -0
  116. package/dist/components/logic-editor/utils/converters/structure-converter.d.ts.map +1 -1
  117. package/dist/components/logic-editor/utils/converters/structure-paths.d.ts +52 -0
  118. package/dist/components/logic-editor/utils/converters/structure-paths.d.ts.map +1 -0
  119. package/dist/components/logic-editor/utils/converters/switch-cells.d.ts +40 -0
  120. package/dist/components/logic-editor/utils/converters/switch-cells.d.ts.map +1 -0
  121. package/dist/components/logic-editor/utils/converters/switch-converter.d.ts +1 -1
  122. package/dist/components/logic-editor/utils/converters/switch-converter.d.ts.map +1 -1
  123. package/dist/components/logic-editor/utils/converters/variable-cells.d.ts +62 -0
  124. package/dist/components/logic-editor/utils/converters/variable-cells.d.ts.map +1 -0
  125. package/dist/components/logic-editor/utils/converters/variable-converter.d.ts +1 -3
  126. package/dist/components/logic-editor/utils/converters/variable-converter.d.ts.map +1 -1
  127. package/dist/components/logic-editor/utils/index.d.ts +1 -1
  128. package/dist/components/logic-editor/utils/index.d.ts.map +1 -1
  129. package/dist/components/logic-editor/utils/layout.d.ts.map +1 -1
  130. package/dist/components/logic-editor/utils/menu-builder.d.ts +7 -1
  131. package/dist/components/logic-editor/utils/menu-builder.d.ts.map +1 -1
  132. package/dist/components/logic-editor/utils/node-cloning.d.ts +9 -1
  133. package/dist/components/logic-editor/utils/node-cloning.d.ts.map +1 -1
  134. package/dist/components/logic-editor/utils/node-deletion.d.ts +17 -0
  135. package/dist/components/logic-editor/utils/node-deletion.d.ts.map +1 -1
  136. package/dist/components/logic-editor/utils/node-factory.d.ts +7 -3
  137. package/dist/components/logic-editor/utils/node-factory.d.ts.map +1 -1
  138. package/dist/components/logic-editor/utils/node-updaters.d.ts +6 -0
  139. package/dist/components/logic-editor/utils/node-updaters.d.ts.map +1 -1
  140. package/dist/components/logic-editor/utils/nodeShape.d.ts.map +1 -1
  141. package/dist/components/logic-editor/utils/nodes-to-jsonlogic.d.ts.map +1 -1
  142. package/dist/components/logic-editor/utils/signal.d.ts.map +1 -1
  143. package/dist/components/logic-editor/utils/trace/child-matching.d.ts +47 -1
  144. package/dist/components/logic-editor/utils/trace/child-matching.d.ts.map +1 -1
  145. package/dist/components/logic-editor/utils/trace/index.d.ts +3 -2
  146. package/dist/components/logic-editor/utils/trace/index.d.ts.map +1 -1
  147. package/dist/components/logic-editor/utils/trace/node-creators/if-else.d.ts +1 -1
  148. package/dist/components/logic-editor/utils/trace/node-creators/if-else.d.ts.map +1 -1
  149. package/dist/components/logic-editor/utils/trace/node-creators/index.d.ts +0 -1
  150. package/dist/components/logic-editor/utils/trace/node-creators/index.d.ts.map +1 -1
  151. package/dist/components/logic-editor/utils/trace/node-creators/structure.d.ts +8 -1
  152. package/dist/components/logic-editor/utils/trace/node-creators/structure.d.ts.map +1 -1
  153. package/dist/components/logic-editor/utils/trace/node-creators/switch.d.ts +9 -4
  154. package/dist/components/logic-editor/utils/trace/node-creators/switch.d.ts.map +1 -1
  155. package/dist/components/logic-editor/utils/trace/node-creators/variable.d.ts +14 -2
  156. package/dist/components/logic-editor/utils/trace/node-creators/variable.d.ts.map +1 -1
  157. package/dist/components/logic-editor/utils/trace/node-creators/vertical-cell.d.ts +3 -1
  158. package/dist/components/logic-editor/utils/trace/node-creators/vertical-cell.d.ts.map +1 -1
  159. package/dist/components/logic-editor/utils/trace/trace-failure.d.ts +29 -0
  160. package/dist/components/logic-editor/utils/trace/trace-failure.d.ts.map +1 -0
  161. package/dist/components/logic-editor/utils/trace/trace-ids.d.ts +6 -0
  162. package/dist/components/logic-editor/utils/trace/trace-ids.d.ts.map +1 -0
  163. package/dist/components/logic-editor/utils/trace/trace-to-nodes.d.ts +5 -1
  164. package/dist/components/logic-editor/utils/trace/trace-to-nodes.d.ts.map +1 -1
  165. package/dist/datalogic_wasm-BWLewicv.cjs +1107 -0
  166. package/dist/datalogic_wasm-B_6dx9ev.js +1106 -0
  167. package/dist/index.cjs +6979 -3844
  168. package/dist/index.js +6975 -3844
  169. package/dist/lib.d.ts +5 -1
  170. package/dist/lib.d.ts.map +1 -1
  171. package/dist/styles.css +440 -0
  172. package/package.json +26 -23
  173. package/dist/components/logic-editor/context/EvaluationContext.d.ts +0 -5
  174. package/dist/components/logic-editor/context/EvaluationContext.d.ts.map +0 -1
  175. package/dist/components/logic-editor/context-menu/AddArgumentMenu.d.ts +0 -24
  176. package/dist/components/logic-editor/context-menu/AddArgumentMenu.d.ts.map +0 -1
  177. package/dist/components/logic-editor/hooks/useDebugEvaluation.d.ts +0 -16
  178. package/dist/components/logic-editor/hooks/useDebugEvaluation.d.ts.map +0 -1
  179. package/dist/components/logic-editor/utils/expression-builder.d.ts +0 -16
  180. package/dist/components/logic-editor/utils/expression-builder.d.ts.map +0 -1
  181. package/dist/components/logic-editor/utils/trace/evaluation-results.d.ts +0 -15
  182. package/dist/components/logic-editor/utils/trace/evaluation-results.d.ts.map +0 -1
  183. package/dist/components/logic-editor/utils/trace/node-creators/operator.d.ts +0 -11
  184. package/dist/components/logic-editor/utils/trace/node-creators/operator.d.ts.map +0 -1
  185. package/dist/datalogic_wasm-CQhNPxpU.js +0 -1146
  186. package/dist/datalogic_wasm-Da8EOl2Z.cjs +0 -1149
package/dist/lib.d.ts CHANGED
@@ -1,6 +1,10 @@
1
1
  export { DataLogicEditor } from './components/logic-editor/DataLogicEditor';
2
- export type { DataLogicEditorProps, JsonLogicValue, LogicNode, LogicEdge, LogicNodeData, OperatorNodeData, VariableNodeData, LiteralNodeData, NodeEvaluationResult, EvaluationResultsMap, OperatorCategory, } from './components/logic-editor/types';
2
+ export type { DataLogicEditorProps, DataLogicEvaluationConfig, DataLogicCustomOperator, JsonLogicValue, LogicNode, LogicEdge, LogicNodeData, OperatorNodeData, VariableNodeData, LiteralNodeData, StructureNodeData, StructureElement, CellData, ConversionResult, StructuredError, TracedResult, OperatorCategory, } from './components/logic-editor/types';
3
+ export type { FlowDirection } from './components/logic-editor/context';
4
+ export type { IconName } from './components/logic-editor/utils/icons';
5
+ export type { JsonLogicToNodesOptions } from './components/logic-editor/utils';
3
6
  export { CATEGORY_COLORS } from './components/logic-editor/constants';
4
7
  export { operators as OPERATORS } from './components/logic-editor/config/operators';
5
8
  export { jsonLogicToNodes, applyTreeLayout } from './components/logic-editor/utils';
9
+ export { useWasmEvaluator, DataLogicEvaluationError, summarizeEvaluationConfig, isDefaultEvaluationConfig, } from './components/logic-editor/hooks';
6
10
  //# sourceMappingURL=lib.d.ts.map
package/dist/lib.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAEA,OAAO,4CAA4C,CAAC;AAGpD,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAG5E,YAAY,EAEV,oBAAoB,EAEpB,cAAc,EAEd,SAAS,EACT,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EAEf,oBAAoB,EACpB,oBAAoB,EAEpB,gBAAgB,GACjB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,SAAS,IAAI,SAAS,EAAE,MAAM,4CAA4C,CAAC;AAGpF,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC"}
1
+ {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAEA,OAAO,4CAA4C,CAAC;AAGpD,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAG5E,YAAY,EAEV,oBAAoB,EACpB,yBAAyB,EACzB,uBAAuB,EAEvB,cAAc,EAEd,SAAS,EACT,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,QAAQ,EACR,gBAAgB,EAChB,eAAe,EACf,YAAY,EAEZ,gBAAgB,GACjB,MAAM,iCAAiC,CAAC;AACzC,YAAY,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACvE,YAAY,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AACtE,YAAY,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAG/E,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,SAAS,IAAI,SAAS,EAAE,MAAM,4CAA4C,CAAC;AAGpF,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACpF,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,iCAAiC,CAAC"}
package/dist/styles.css CHANGED
@@ -1018,6 +1018,19 @@ svg.react-flow__connectionline {
1018
1018
  color: var(--color-primary, #60a5fa);
1019
1019
  }
1020
1020
 
1021
+ .dl-edge-picker-note {
1022
+ padding: 6px 12px 8px;
1023
+ font-size: 11px;
1024
+ line-height: 1.4;
1025
+ color: var(--color-warning, #b45309);
1026
+ border-bottom: 1px solid var(--border-color, #e0e0e0);
1027
+ }
1028
+
1029
+ .logic-editor[data-theme="dark"] .dl-edge-picker-note {
1030
+ color: var(--color-warning, #fbbf24);
1031
+ border-color: var(--border-color, #3e3e3e);
1032
+ }
1033
+
1021
1034
  /* Content */
1022
1035
  .dl-edge-picker-content {
1023
1036
  max-height: 220px;
@@ -1417,6 +1430,269 @@ svg.react-flow__connectionline {
1417
1430
  width: 60px;
1418
1431
  }
1419
1432
  }
1433
+
1434
+ /* step list toggle: lit while the list is open, red dot when the trace has errors */
1435
+ .dl-debugger-timeline-toggle {
1436
+ position: relative;
1437
+ }
1438
+ .dl-debugger-timeline-toggle.is-active {
1439
+ background: var(--accent-soft);
1440
+ border-color: color-mix(in srgb, var(--accent) 55%, var(--hairline));
1441
+ color: var(--accent);
1442
+ }
1443
+ .dl-debugger-timeline-toggle.has-errors::after {
1444
+ content: "";
1445
+ position: absolute;
1446
+ top: 5px;
1447
+ right: 5px;
1448
+ width: 6px;
1449
+ height: 6px;
1450
+ border-radius: 50%;
1451
+ background: var(--debug-error-color, #ef4444);
1452
+ }
1453
+
1454
+ /* Step list: a drawer over the right edge of the board, one row per step.
1455
+ Mounted into .logic-editor-body (or .logic-editor) by StepTimeline. */
1456
+ .dl-debugger-timeline {
1457
+ position: absolute;
1458
+ top: 12px;
1459
+ right: 12px;
1460
+ bottom: 12px;
1461
+ width: 340px;
1462
+ max-width: calc(100% - 24px);
1463
+ z-index: 110;
1464
+ display: flex;
1465
+ flex-direction: column;
1466
+ border-radius: 13px;
1467
+ background: color-mix(in srgb, var(--surface) 94%, transparent);
1468
+ backdrop-filter: blur(14px);
1469
+ border: 1px solid var(--hairline);
1470
+ box-shadow: var(--shadow-lg);
1471
+ font-family: var(--font-ui);
1472
+ overflow: hidden;
1473
+ }
1474
+
1475
+ .dl-debugger-timeline-header {
1476
+ display: flex;
1477
+ align-items: center;
1478
+ gap: 8px;
1479
+ padding: 10px 10px 10px 14px;
1480
+ border-bottom: 1px solid var(--hairline-2);
1481
+ flex-shrink: 0;
1482
+ }
1483
+ .dl-debugger-timeline-title {
1484
+ font-family: var(--font-mono);
1485
+ font-size: 9.5px;
1486
+ font-weight: 700;
1487
+ letter-spacing: 0.1em;
1488
+ text-transform: uppercase;
1489
+ color: var(--muted);
1490
+ }
1491
+ .dl-debugger-timeline-count {
1492
+ font-family: var(--font-mono);
1493
+ font-size: 11px;
1494
+ font-weight: 700;
1495
+ color: var(--ink);
1496
+ padding: 1px 7px;
1497
+ border-radius: 999px;
1498
+ background: var(--surface-2);
1499
+ border: 1px solid var(--hairline);
1500
+ }
1501
+ .dl-debugger-timeline-spacer {
1502
+ flex: 1;
1503
+ }
1504
+ .dl-debugger-timeline-filter {
1505
+ display: inline-flex;
1506
+ align-items: center;
1507
+ gap: 5px;
1508
+ font-size: 11px;
1509
+ color: var(--ink-2);
1510
+ cursor: pointer;
1511
+ user-select: none;
1512
+ white-space: nowrap;
1513
+ }
1514
+ .dl-debugger-timeline-filter input {
1515
+ margin: 0;
1516
+ accent-color: var(--debug-error-color, #ef4444);
1517
+ }
1518
+ .dl-debugger-timeline-close {
1519
+ width: 26px;
1520
+ height: 26px;
1521
+ padding: 0;
1522
+ display: grid;
1523
+ place-items: center;
1524
+ border-radius: 7px;
1525
+ background: transparent;
1526
+ border: 1px solid transparent;
1527
+ color: var(--muted);
1528
+ cursor: pointer;
1529
+ flex-shrink: 0;
1530
+ }
1531
+ .dl-debugger-timeline-close:hover {
1532
+ background: var(--surface-2);
1533
+ border-color: var(--hairline);
1534
+ color: var(--ink);
1535
+ }
1536
+
1537
+ /* trace-level failure banner (compile or runtime error) */
1538
+ .dl-debugger-timeline-failure {
1539
+ display: flex;
1540
+ flex-direction: column;
1541
+ gap: 3px;
1542
+ padding: 8px 14px;
1543
+ border-bottom: 1px solid var(--hairline-2);
1544
+ background: color-mix(in srgb, var(--debug-error-color, #ef4444) 8%, transparent);
1545
+ flex-shrink: 0;
1546
+ }
1547
+ .dl-debugger-timeline-failure-kind {
1548
+ font-family: var(--font-mono);
1549
+ font-size: 9.5px;
1550
+ font-weight: 700;
1551
+ letter-spacing: 0.08em;
1552
+ text-transform: uppercase;
1553
+ color: var(--debug-error-color, #ef4444);
1554
+ }
1555
+ .dl-debugger-timeline-failure-message {
1556
+ font-family: var(--font-mono);
1557
+ font-size: 10.5px;
1558
+ line-height: 1.5;
1559
+ color: var(--ink-2);
1560
+ word-break: break-word;
1561
+ }
1562
+
1563
+ .dl-debugger-timeline-list {
1564
+ flex: 1;
1565
+ min-height: 0;
1566
+ overflow-y: auto;
1567
+ padding: 6px;
1568
+ display: flex;
1569
+ flex-direction: column;
1570
+ gap: 2px;
1571
+ }
1572
+
1573
+ /* one row per step: index, node label + expression, iteration, result */
1574
+ .dl-debugger-timeline-row {
1575
+ display: grid;
1576
+ grid-template-columns: 28px minmax(0, 1fr) auto auto;
1577
+ align-items: center;
1578
+ gap: 8px;
1579
+ width: 100%;
1580
+ padding: 6px 8px;
1581
+ border-radius: 8px;
1582
+ background: transparent;
1583
+ border: 1px solid transparent;
1584
+ color: var(--ink-2);
1585
+ text-align: left;
1586
+ cursor: pointer;
1587
+ font: inherit;
1588
+ transition: background 0.12s ease, border-color 0.12s ease;
1589
+ }
1590
+ .dl-debugger-timeline-row:hover {
1591
+ background: var(--surface-2);
1592
+ border-color: var(--hairline);
1593
+ }
1594
+ .dl-debugger-timeline-row.is-done {
1595
+ opacity: 0.7;
1596
+ }
1597
+ .dl-debugger-timeline-row.is-current {
1598
+ opacity: 1;
1599
+ background: color-mix(in srgb, var(--accent) 10%, var(--surface-2));
1600
+ border-color: color-mix(in srgb, var(--accent) 45%, var(--hairline));
1601
+ }
1602
+ .dl-debugger-timeline-row.is-error {
1603
+ color: var(--ink);
1604
+ }
1605
+ .dl-debugger-timeline-row.is-error.is-current {
1606
+ background: color-mix(in srgb, var(--debug-error-color, #ef4444) 10%, var(--surface-2));
1607
+ border-color: color-mix(in srgb, var(--debug-error-color, #ef4444) 45%, var(--hairline));
1608
+ }
1609
+
1610
+ .dl-debugger-timeline-index {
1611
+ font-family: var(--font-mono);
1612
+ font-size: 10.5px;
1613
+ font-weight: 700;
1614
+ color: var(--muted);
1615
+ text-align: right;
1616
+ }
1617
+ .dl-debugger-timeline-row.is-current .dl-debugger-timeline-index {
1618
+ color: var(--accent);
1619
+ }
1620
+ .dl-debugger-timeline-row.is-error .dl-debugger-timeline-index {
1621
+ color: var(--debug-error-color, #ef4444);
1622
+ }
1623
+
1624
+ .dl-debugger-timeline-node {
1625
+ display: flex;
1626
+ flex-direction: column;
1627
+ gap: 1px;
1628
+ min-width: 0;
1629
+ }
1630
+ .dl-debugger-timeline-label {
1631
+ font-size: 11.5px;
1632
+ font-weight: 600;
1633
+ color: var(--ink);
1634
+ white-space: nowrap;
1635
+ overflow: hidden;
1636
+ text-overflow: ellipsis;
1637
+ }
1638
+ .dl-debugger-timeline-detail {
1639
+ font-family: var(--font-mono);
1640
+ font-size: 10px;
1641
+ color: var(--muted);
1642
+ white-space: nowrap;
1643
+ overflow: hidden;
1644
+ text-overflow: ellipsis;
1645
+ }
1646
+
1647
+ .dl-debugger-timeline-iter {
1648
+ font-family: var(--font-mono);
1649
+ font-size: 9.5px;
1650
+ font-weight: 700;
1651
+ color: var(--sig-collection);
1652
+ padding: 1px 6px;
1653
+ border-radius: 999px;
1654
+ background: var(--sig-collection-bg);
1655
+ white-space: nowrap;
1656
+ }
1657
+
1658
+ .dl-debugger-timeline-result {
1659
+ font-family: var(--font-mono);
1660
+ font-size: 10.5px;
1661
+ font-weight: 600;
1662
+ max-width: 96px;
1663
+ white-space: nowrap;
1664
+ overflow: hidden;
1665
+ text-overflow: ellipsis;
1666
+ text-align: right;
1667
+ }
1668
+ .dl-debugger-timeline-result.is-error {
1669
+ color: var(--debug-error-color, #ef4444);
1670
+ padding: 1px 6px;
1671
+ border-radius: 999px;
1672
+ background: color-mix(in srgb, var(--debug-error-color, #ef4444) 12%, transparent);
1673
+ text-transform: uppercase;
1674
+ font-size: 9.5px;
1675
+ letter-spacing: 0.06em;
1676
+ }
1677
+
1678
+ .dl-debugger-timeline-empty {
1679
+ padding: 18px 12px;
1680
+ text-align: center;
1681
+ font-size: 11.5px;
1682
+ color: var(--muted);
1683
+ }
1684
+
1685
+ .dl-debugger-controls--inline .dl-debugger-timeline-toggle {
1686
+ width: 30px;
1687
+ height: 30px;
1688
+ }
1689
+
1690
+ @media (max-width: 640px) {
1691
+ .dl-debugger-timeline {
1692
+ width: auto;
1693
+ left: 12px;
1694
+ }
1695
+ }
1420
1696
  /* ==========================================================================
1421
1697
  Properties Panel Styles
1422
1698
  ========================================================================== */
@@ -1598,6 +1874,34 @@ svg.react-flow__connectionline {
1598
1874
  gap: 12px;
1599
1875
  }
1600
1876
 
1877
+ .help-header {
1878
+ display: flex;
1879
+ align-items: center;
1880
+ gap: 6px;
1881
+ font-size: 13px;
1882
+ font-weight: 500;
1883
+ color: var(--text-primary, #1a1a1a);
1884
+ }
1885
+
1886
+ .logic-editor[data-theme="dark"] .help-header {
1887
+ color: var(--text-primary, #f0f0f0);
1888
+ }
1889
+
1890
+ .help-operator-name {
1891
+ font-family: var(--font-mono);
1892
+ font-size: 11px;
1893
+ font-weight: 400;
1894
+ padding: 1px 5px;
1895
+ border-radius: 3px;
1896
+ background: var(--surface-muted, #f1f5f9);
1897
+ color: var(--text-secondary, #666);
1898
+ }
1899
+
1900
+ .logic-editor[data-theme="dark"] .help-operator-name {
1901
+ background: rgba(148, 163, 184, 0.15);
1902
+ color: var(--text-secondary, #aaa);
1903
+ }
1904
+
1601
1905
  .help-summary {
1602
1906
  margin: 0;
1603
1907
  font-size: 13px;
@@ -1648,6 +1952,30 @@ svg.react-flow__connectionline {
1648
1952
  color: #4ade80;
1649
1953
  }
1650
1954
 
1955
+ /* Link out to the operator's page on the docs site. */
1956
+ .help-badge-docs {
1957
+ background: var(--surface-muted, #f1f5f9);
1958
+ color: var(--text-secondary, #666);
1959
+ text-decoration: none;
1960
+ border: 1px solid var(--border-subtle, #e2e8f0);
1961
+ }
1962
+
1963
+ .help-badge-docs:hover {
1964
+ color: var(--dl-info, #3b82f6);
1965
+ border-color: var(--dl-info, #3b82f6);
1966
+ }
1967
+
1968
+ .logic-editor[data-theme="dark"] .help-badge-docs {
1969
+ background: rgba(148, 163, 184, 0.12);
1970
+ color: var(--text-secondary, #aaa);
1971
+ border-color: rgba(148, 163, 184, 0.25);
1972
+ }
1973
+
1974
+ .logic-editor[data-theme="dark"] .help-badge-docs:hover {
1975
+ color: #60a5fa;
1976
+ border-color: #60a5fa;
1977
+ }
1978
+
1651
1979
  .help-examples-toggle {
1652
1980
  display: flex;
1653
1981
  align-items: center;
@@ -5222,4 +5550,116 @@ svg.react-flow__connectionline {
5222
5550
  .logic-editor[data-theme="dark"] .dl-context-menu-item--danger:hover:not(:disabled) {
5223
5551
  background: rgba(239, 68, 68, 0.15);
5224
5552
  }
5553
+
5554
+ /* ============================================================================
5555
+ Toolbar: Insert button + engine settings indicator
5556
+ ============================================================================ */
5557
+
5558
+ .logic-editor-toolbar .dl-toolbar-insert {
5559
+ width: auto;
5560
+ gap: 5px;
5561
+ padding: 0 10px 0 8px;
5562
+ font: inherit;
5563
+ font-size: 12px;
5564
+ font-weight: 500;
5565
+ border: 1px solid var(--hairline, #ddd);
5566
+ color: var(--text-secondary, #666);
5567
+ }
5568
+
5569
+ .logic-editor-toolbar .dl-toolbar-insert:hover:not(:disabled) {
5570
+ border-color: var(--accent, #6366f1);
5571
+ color: var(--accent, #6366f1);
5572
+ background: var(--accent-soft, rgba(99, 102, 241, 0.08));
5573
+ }
5574
+
5575
+ .logic-editor-toolbar .dl-toolbar-config {
5576
+ flex-shrink: 1;
5577
+ min-width: 0;
5578
+ border: 1px solid var(--warning-border, #f5d48a);
5579
+ color: var(--warning-text, #92400e);
5580
+ background: var(--warning-bg, #fef3c7);
5581
+ font-family: var(--font-mono, monospace);
5582
+ font-size: 10.5px;
5583
+ padding: 2px 8px;
5584
+ border-radius: 999px;
5585
+ display: inline-flex;
5586
+ align-items: center;
5587
+ gap: 5px;
5588
+ max-width: 260px;
5589
+ white-space: nowrap;
5590
+ overflow: hidden;
5591
+ text-overflow: ellipsis;
5592
+ }
5593
+
5594
+ .logic-editor-toolbar button.dl-toolbar-config {
5595
+ cursor: pointer;
5596
+ }
5597
+
5598
+ .logic-editor-toolbar button.dl-toolbar-config:focus-visible {
5599
+ outline: none;
5600
+ box-shadow: var(--focus-ring);
5601
+ }
5602
+
5603
+ .logic-editor-toolbar .dl-toolbar-config .engine-config-badge-text {
5604
+ overflow: hidden;
5605
+ text-overflow: ellipsis;
5606
+ }
5607
+
5608
+ /* Empty / error states mention the active engine settings */
5609
+ .logic-editor-empty-config,
5610
+ .logic-editor-error-config {
5611
+ margin-top: 6px !important;
5612
+ font-family: var(--font-mono);
5613
+ font-size: 11px !important;
5614
+ font-weight: 400 !important;
5615
+ color: var(--warning-text) !important;
5616
+ }
5617
+
5618
+ @media (max-width: 1024px) {
5619
+ .logic-editor-toolbar .dl-toolbar-insert {
5620
+ width: auto;
5621
+ padding: 0 10px;
5622
+ }
5623
+
5624
+ .logic-editor-toolbar .dl-toolbar-insert span {
5625
+ display: none;
5626
+ }
5627
+
5628
+ .logic-editor-toolbar .dl-toolbar-config {
5629
+ max-width: 140px;
5630
+ }
5631
+ }
5632
+
5633
+ /* Trace-level failure banner: shown under the toolbar when the engine could
5634
+ not produce a trace at all (compile-stage error), so no node can carry the
5635
+ error bubble. Runtime failures that map onto a node are shown there. */
5636
+ .logic-editor-trace-error {
5637
+ display: flex;
5638
+ align-items: baseline;
5639
+ gap: 8px;
5640
+ flex: 0 0 auto;
5641
+ padding: 8px 12px;
5642
+ border-bottom: 1px solid var(--error-border);
5643
+ background: var(--error-bg-light);
5644
+ font-size: 12px;
5645
+ line-height: 1.4;
5646
+ color: var(--error-text);
5647
+ }
5648
+
5649
+ .logic-editor-trace-error-kind {
5650
+ flex: 0 0 auto;
5651
+ padding: 1px 6px;
5652
+ border: 1px solid var(--error-border);
5653
+ border-radius: 4px;
5654
+ font-family: var(--font-mono);
5655
+ font-size: 10px;
5656
+ font-weight: 600;
5657
+ letter-spacing: 0.02em;
5658
+ text-transform: none;
5659
+ }
5660
+
5661
+ .logic-editor-trace-error-message {
5662
+ min-width: 0;
5663
+ overflow-wrap: anywhere;
5664
+ }
5225
5665
  /*$vite$:1*/
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@goplasmatic/datalogic-ui",
3
3
  "private": false,
4
- "version": "5.2.0",
4
+ "version": "5.3.0",
5
5
  "type": "module",
6
6
  "description": "React rule builder, visual debugger, and editor for JSONLogic (json-logic) — flow-diagram view and live execution tracing, powered by the datalogic-rs WASM engine.",
7
7
  "keywords": [
@@ -68,17 +68,14 @@
68
68
  "prebuild": "npm run sync-wasm",
69
69
  "prebuild:lib": "npm run sync-wasm",
70
70
  "prebuild:embed": "npm run sync-wasm",
71
- "sync-wasm": "rm -rf vendor/datalogic && mkdir -p vendor && cp -R ../bindings/wasm/pkg vendor/datalogic"
71
+ "sync-wasm": "rm -rf vendor/datalogic && mkdir -p vendor && cp -R ../bindings/wasm/pkg vendor/datalogic",
72
+ "test": "vitest run",
73
+ "test:watch": "vitest"
72
74
  },
73
75
  "dependencies": {
74
- "@dagrejs/dagre": "^3.0.0",
75
- "@fontsource/jetbrains-mono": "^5.2.8",
76
- "@fontsource/space-grotesk": "^5.2.10",
77
- "@goplasmatic/datalogic-wasm": "5.2.0",
78
- "@msgpack/msgpack": "^3.1.3",
79
- "fflate": "^0.8.3",
80
- "lucide-react": "^1.23.0",
81
- "uuid": "^14.0.1"
76
+ "@dagrejs/dagre": "^3.1.1",
77
+ "lucide-react": "^1.34.0",
78
+ "uuid": "^14.0.2"
82
79
  },
83
80
  "peerDependencies": {
84
81
  "@xyflow/react": "^12.0.0",
@@ -87,21 +84,27 @@
87
84
  },
88
85
  "devDependencies": {
89
86
  "@eslint/js": "^10.0.1",
90
- "@types/node": "^26.1.0",
91
- "@types/react": "^19.2.17",
92
- "@types/react-dom": "^19.2.3",
93
- "@vitejs/plugin-react": "^6.0.3",
94
- "@xyflow/react": "^12.11.2",
95
- "eslint": "^10.6.0",
87
+ "@fontsource/jetbrains-mono": "^5.3.0",
88
+ "@fontsource/space-grotesk": "^5.3.0",
89
+ "@goplasmatic/datalogic-wasm": "5.3.0",
90
+ "@msgpack/msgpack": "^3.1.3",
91
+ "@types/node": "^26.3.0",
92
+ "@types/react": "^19.2.18",
93
+ "@types/react-dom": "^19.2.5",
94
+ "@vitejs/plugin-react": "^6.1.0",
95
+ "@xyflow/react": "^12.11.3",
96
+ "eslint": "^10.9.1",
96
97
  "eslint-plugin-react-hooks": "^7.1.1",
97
- "eslint-plugin-react-refresh": "^0.5.3",
98
- "globals": "^17.7.0",
99
- "react": "^19.2.7",
100
- "react-dom": "^19.2.7",
98
+ "eslint-plugin-react-refresh": "^0.5.4",
99
+ "fflate": "^0.8.3",
100
+ "globals": "^17.11.0",
101
+ "react": "^19.2.8",
102
+ "react-dom": "^19.2.8",
101
103
  "typescript": "~6.0.3",
102
- "typescript-eslint": "^8.63.0",
103
- "vite": "^8.1.3",
104
+ "typescript-eslint": "^8.68.0",
105
+ "vite": "^8.2.2",
104
106
  "vite-plugin-dts": "^5.0.3",
105
- "vite-plugin-wasm": "^3.6.0"
107
+ "vite-plugin-wasm": "^3.6.0",
108
+ "vitest": "^4.1.11"
106
109
  }
107
110
  }
@@ -1,5 +0,0 @@
1
- import { EvaluationResultsMap } from '../hooks/useLogicEditor';
2
- export declare const EvaluationContext: import('react').Context<EvaluationResultsMap>;
3
- export declare function useEvaluationResult(nodeId: string): import('../hooks').EvaluationResult | undefined;
4
- export declare function useEvaluationResults(): EvaluationResultsMap;
5
- //# sourceMappingURL=EvaluationContext.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EvaluationContext.d.ts","sourceRoot":"","sources":["../../../../src/components/logic-editor/context/EvaluationContext.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,eAAO,MAAM,iBAAiB,+CAAiD,CAAC;AAEhF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,mDAGjD;AAED,wBAAgB,oBAAoB,yBAEnC"}
@@ -1,24 +0,0 @@
1
- /**
2
- * AddArgumentMenu Component
3
- *
4
- * Dropdown menu for adding a new argument to an operator node.
5
- * Shows node type options: Literal, Variable, Operator (with submenu)
6
- *
7
- * Uses a Portal to render the menu outside of ReactFlow's transformed container,
8
- * ensuring correct positioning regardless of zoom/pan state.
9
- */
10
- export type AddArgumentNodeType = 'literal' | 'variable' | 'operator';
11
- export interface AddArgumentMenuProps {
12
- /** X position (screen coordinates) */
13
- x: number;
14
- /** Y position (screen coordinates) */
15
- y: number;
16
- /** Called when menu should close */
17
- onClose: () => void;
18
- /** Called when a node type is selected */
19
- onSelect: (type: AddArgumentNodeType, operatorName?: string) => void;
20
- /** Operator category hint for default values (unused, reserved for future) */
21
- operatorCategory?: string;
22
- }
23
- export declare const AddArgumentMenu: import('react').MemoExoticComponent<({ x, y, onClose, onSelect, }: AddArgumentMenuProps) => import('react').ReactPortal>;
24
- //# sourceMappingURL=AddArgumentMenu.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AddArgumentMenu.d.ts","sourceRoot":"","sources":["../../../../src/components/logic-editor/context-menu/AddArgumentMenu.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAEtE,MAAM,WAAW,oBAAoB;IACnC,sCAAsC;IACtC,CAAC,EAAE,MAAM,CAAC;IACV,sCAAsC;IACtC,CAAC,EAAE,MAAM,CAAC;IACV,oCAAoC;IACpC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,0CAA0C;IAC1C,QAAQ,EAAE,CAAC,IAAI,EAAE,mBAAmB,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACrE,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,eAAe,qEAKzB,oBAAoB,iCA6CrB,CAAC"}
@@ -1,16 +0,0 @@
1
- import { LogicNode } from '../types';
2
- export interface EvaluationResult {
3
- value: unknown;
4
- error: string | null;
5
- type: 'boolean' | 'number' | 'string' | 'null' | 'array' | 'object' | 'undefined';
6
- }
7
- export type EvaluationResults = Map<string, EvaluationResult>;
8
- interface UseDebugEvaluationProps {
9
- nodes: LogicNode[];
10
- data: unknown;
11
- evaluate: ((logic: unknown, data: unknown) => unknown) | null;
12
- enabled: boolean;
13
- }
14
- export declare function useDebugEvaluation({ nodes, data, evaluate, enabled, }: UseDebugEvaluationProps): EvaluationResults;
15
- export {};
16
- //# sourceMappingURL=useDebugEvaluation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useDebugEvaluation.d.ts","sourceRoot":"","sources":["../../../../src/components/logic-editor/hooks/useDebugEvaluation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,WAAW,CAAC;CACnF;AAED,MAAM,MAAM,iBAAiB,GAAG,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAE9D,UAAU,uBAAuB;IAC/B,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,IAAI,CAAC;IAC9D,OAAO,EAAE,OAAO,CAAC;CAClB;AAaD,wBAAgB,kBAAkB,CAAC,EACjC,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,OAAO,GACR,EAAE,uBAAuB,GAAG,iBAAiB,CAkC7C"}
@@ -1,16 +0,0 @@
1
- import { LogicNode, JsonLogicValue } from '../types';
2
- /**
3
- * Get the expression value for a node.
4
- * Returns the node's expression if available, otherwise constructs it from node data.
5
- */
6
- export declare function getNodeExpressionValue(node: LogicNode): JsonLogicValue;
7
- /**
8
- * Rebuild an operator node's expression from its children.
9
- * This is the single source of truth for expression generation.
10
- *
11
- * @param operator The operator name (e.g., '+', 'and', 'if')
12
- * @param childNodes The child nodes that form the operands
13
- * @returns The rebuilt expression object
14
- */
15
- export declare function rebuildOperatorExpression(operator: string, childNodes: LogicNode[]): JsonLogicValue;
16
- //# sourceMappingURL=expression-builder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"expression-builder.d.ts","sourceRoot":"","sources":["../../../../src/components/logic-editor/utils/expression-builder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,SAAS,EACT,cAAc,EAGf,MAAM,UAAU,CAAC;AAElB;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,SAAS,GAAG,cAAc,CAkBtE;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,SAAS,EAAE,GACtB,cAAc,CAYhB"}
@@ -1,15 +0,0 @@
1
- import { TracedResult } from '../../types/trace';
2
- import { ValueType } from './types';
3
- /**
4
- * Convert trace node ID to string node ID
5
- */
6
- export declare function traceIdToNodeId(id: number): string;
7
- /**
8
- * Build evaluation results map from trace execution steps
9
- */
10
- export declare function buildEvaluationResultsFromTrace(trace: TracedResult): Map<string, {
11
- value: unknown;
12
- error: string | null;
13
- type: ValueType;
14
- }>;
15
- //# sourceMappingURL=evaluation-results.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"evaluation-results.d.ts","sourceRoot":"","sources":["../../../../../src/components/logic-editor/utils/trace/evaluation-results.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,YAAY,GAClB,GAAG,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC,CA6BxE"}
@@ -1,11 +0,0 @@
1
- import { JsonLogicValue } from '../../../types';
2
- import { ExpressionNode } from '../../../types/trace';
3
- import { ParentInfo } from '../../converters/types';
4
- import { TraceContext } from '../types';
5
- type ProcessExpressionNodeFn = (exprNode: ExpressionNode, context: TraceContext, parentInfo: ParentInfo, originalExpression?: JsonLogicValue) => string;
6
- /**
7
- * Create an operator node (single-arg or unary) from trace data
8
- */
9
- export declare function createOperatorNodeFromTrace(nodeId: string, expression: JsonLogicValue, children: ExpressionNode[], context: TraceContext, parentInfo: ParentInfo, processExpressionNode: ProcessExpressionNodeFn): void;
10
- export {};
11
- //# sourceMappingURL=operator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"operator.d.ts","sourceRoot":"","sources":["../../../../../../src/components/logic-editor/utils/trace/node-creators/operator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,cAAc,EAEf,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAU7C,KAAK,uBAAuB,GAAG,CAC7B,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,YAAY,EACrB,UAAU,EAAE,UAAU,EACtB,kBAAkB,CAAC,EAAE,cAAc,KAChC,MAAM,CAAC;AAEZ;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,cAAc,EAC1B,QAAQ,EAAE,cAAc,EAAE,EAC1B,OAAO,EAAE,YAAY,EACrB,UAAU,EAAE,UAAU,EACtB,qBAAqB,EAAE,uBAAuB,GAC7C,IAAI,CAiHN"}