@servlyadmin/runtime-core 0.1.27 → 0.1.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -19524,14 +19524,8 @@ function resolveFunctionBinding(binding, context) {
19524
19524
  }
19525
19525
  function attachEventHandlers(domElement, element, eventHandlers, context, elementState, isRootElement = false, state) {
19526
19526
  const elementId = element.i;
19527
- const isDebug = true;
19528
- if (isDebug) {
19529
- console.log(`[Servly:attachEventHandlers] Element: ${elementId}, isRoot: ${isRootElement}, renderStackSize: ${state?.renderingStack?.size}`);
19530
- }
19531
- if (eventHandlers && eventHandlers[elementId]) {
19532
- const handlers = eventHandlers[elementId];
19533
- if (isDebug) console.log(`[Servly:attachEventHandlers] Explicit handlers for ${elementId}:`, Object.keys(handlers));
19534
- for (const [eventName, handler] of Object.entries(handlers)) {
19527
+ if (eventHandlers?.[elementId]) {
19528
+ for (const [eventName, handler] of Object.entries(eventHandlers[elementId])) {
19535
19529
  const domEventName = eventName.replace(/^on/, "").toLowerCase();
19536
19530
  elementState.eventListeners.set(domEventName, handler);
19537
19531
  domElement.addEventListener(domEventName, handler);
@@ -19540,9 +19534,8 @@ function attachEventHandlers(domElement, element, eventHandlers, context, elemen
19540
19534
  const config = element.configuration || {};
19541
19535
  for (const eventPropName of Object.keys(EVENT_HANDLERS)) {
19542
19536
  const handlerConfig = config[eventPropName];
19543
- if (handlerConfig && handlerConfig.plugins && handlerConfig.plugins.length > 0) {
19537
+ if (handlerConfig?.plugins?.length) {
19544
19538
  const domEventName = toDomEventName(eventPropName);
19545
- if (isDebug) console.log(`[Servly:attachEventHandlers] Servly plugin handler ${eventPropName} on ${elementId}`);
19546
19539
  if (!elementState.eventListeners.has(domEventName)) {
19547
19540
  if (state?.eventSystem) {
19548
19541
  const handler = state.eventSystem.createHandler(elementId, handlerConfig, context);
@@ -19552,7 +19545,6 @@ function attachEventHandlers(domElement, element, eventHandlers, context, elemen
19552
19545
  const handler = (e) => {
19553
19546
  if (handlerConfig.preventDefault) e.preventDefault();
19554
19547
  if (handlerConfig.stopPropagation) e.stopPropagation();
19555
- console.log(`[Servly] Event ${eventPropName} triggered on ${elementId}`, handlerConfig.plugins);
19556
19548
  };
19557
19549
  elementState.eventListeners.set(domEventName, handler);
19558
19550
  domElement.addEventListener(domEventName, handler);
@@ -19565,39 +19557,35 @@ function attachEventHandlers(domElement, element, eventHandlers, context, elemen
19565
19557
  for (const [propName, binding] of Object.entries(bindings)) {
19566
19558
  if (propName.startsWith("on") && propName.length > 2) {
19567
19559
  const handler = resolveFunctionBinding(binding, context);
19568
- if (handler) {
19560
+ if (handler && !elementState.eventListeners.has(propName.slice(2).toLowerCase())) {
19569
19561
  const domEventName = propName.slice(2).toLowerCase();
19570
- if (isDebug) console.log(`[Servly:attachEventHandlers] Binding handler ${propName} on ${elementId}`);
19571
- if (!elementState.eventListeners.has(domEventName)) {
19572
- elementState.eventListeners.set(domEventName, handler);
19573
- domElement.addEventListener(domEventName, handler);
19574
- }
19562
+ elementState.eventListeners.set(domEventName, handler);
19563
+ domElement.addEventListener(domEventName, handler);
19575
19564
  }
19576
19565
  }
19577
19566
  }
19578
19567
  }
19579
19568
  if (isRootElement && context.props && state?.renderingStack?.size === 0) {
19580
- const contextFunctionProps = Object.entries(context.props).filter(([k, v]) => k.startsWith("on") && typeof v === "function");
19581
- if (isDebug && contextFunctionProps.length > 0) {
19582
- console.log(`[Servly:attachEventHandlers] ROOT element ${elementId} attaching context props:`, contextFunctionProps.map(([k]) => k));
19583
- }
19584
- for (const [propName, value] of contextFunctionProps) {
19585
- const domEventName = propName.slice(2).toLowerCase();
19586
- if (!elementState.eventListeners.has(domEventName)) {
19587
- const handler = value;
19588
- elementState.eventListeners.set(domEventName, handler);
19589
- domElement.addEventListener(domEventName, handler);
19590
- if (isDebug) console.log(`[Servly:attachEventHandlers] Attached ${propName} to root element ${elementId}`);
19569
+ for (const [propName, value] of Object.entries(context.props)) {
19570
+ if (propName.startsWith("on") && typeof value === "function") {
19571
+ const domEventName = propName.slice(2).toLowerCase();
19572
+ if (!elementState.eventListeners.has(domEventName)) {
19573
+ elementState.eventListeners.set(domEventName, value);
19574
+ domElement.addEventListener(domEventName, value);
19575
+ }
19591
19576
  }
19592
19577
  }
19593
- } else if (isDebug && isRootElement) {
19594
- console.log(`[Servly:attachEventHandlers] ROOT element ${elementId} NOT attaching context props (renderStackSize=${state?.renderingStack?.size})`);
19595
19578
  }
19596
- if (elementState.eventListeners.size > 0) {
19597
- const handlers = Array.from(elementState.eventListeners.keys()).join(",");
19598
- domElement.setAttribute("data-handlers", handlers);
19599
- domElement.setAttribute("data-is-root", isRootElement ? "true" : "false");
19600
- domElement.style.outline = isRootElement ? "2px solid red" : "";
19579
+ if (!isRootElement && elementState.eventListeners.size > 0) {
19580
+ for (const [eventName, originalHandler] of elementState.eventListeners) {
19581
+ const wrappedHandler = (e) => {
19582
+ e.stopPropagation();
19583
+ return originalHandler(e);
19584
+ };
19585
+ domElement.removeEventListener(eventName, originalHandler);
19586
+ domElement.addEventListener(eventName, wrappedHandler);
19587
+ elementState.eventListeners.set(eventName, wrappedHandler);
19588
+ }
19601
19589
  }
19602
19590
  }
19603
19591
  function detachEventHandlers(elementState) {
@@ -19776,9 +19764,6 @@ function getValueByPath2(obj, path) {
19776
19764
  return current;
19777
19765
  }
19778
19766
  function renderElement(element, tree, context, eventHandlers, elementStates, state, isRootElement = false) {
19779
- if (element.isComponentView) {
19780
- console.log("[Servly] Element has isComponentView=true:", element.i, "componentId:", element.componentId);
19781
- }
19782
19767
  if (element.isComponentView) {
19783
19768
  return renderComponentViewElement(element, tree, context, eventHandlers, elementStates, state, isRootElement);
19784
19769
  }
@@ -19790,8 +19775,11 @@ function renderElement(element, tree, context, eventHandlers, elementStates, sta
19790
19775
  }
19791
19776
  const elementBindings = element.configuration?.bindings?.inputs;
19792
19777
  const resolvedInputs = elementBindings ? resolveComponentViewInputs(elementBindings, context, context.props) : {};
19778
+ const nonFunctionInputs = Object.fromEntries(
19779
+ Object.entries(resolvedInputs).filter(([, v]) => typeof v !== "function")
19780
+ );
19793
19781
  const elementContext = {
19794
- props: { ...context.props, ...resolvedInputs },
19782
+ props: { ...context.props, ...nonFunctionInputs },
19795
19783
  state: context.state,
19796
19784
  context: context.context
19797
19785
  };
@@ -19847,45 +19835,24 @@ function renderIconElement(element, context, eventHandlers, elementStates, state
19847
19835
  return wrapper;
19848
19836
  }
19849
19837
  function renderComponentViewElement(element, tree, context, eventHandlers, elementStates, state, isRootElement) {
19850
- console.log("[Servly] renderComponentViewElement called:", {
19851
- elementId: element.i,
19852
- componentId: element.componentId,
19853
- isComponentView: element.isComponentView,
19854
- hasViews: !!state.views,
19855
- viewsKeys: state.views ? Array.from(state.views.keys()).slice(0, 5) : []
19856
- });
19857
19838
  const componentViewId = `${element.componentId}-${element.i}`;
19858
19839
  if (globalRenderingStack.has(componentViewId)) {
19859
19840
  const placeholder = document.createElement("div");
19860
19841
  placeholder.className = "border-2 border-red-500 border-dashed p-4 bg-red-50";
19861
- placeholder.innerHTML = `<p class="text-red-600 text-sm">Recursive component: ${element.componentId}</p>`;
19842
+ placeholder.innerHTML = `<p class="text-red-600 text-sm">\u{1F504} Recursive: ${element.componentId}</p>`;
19862
19843
  return placeholder;
19863
19844
  }
19864
19845
  let viewLayout;
19865
19846
  if (state.views?.has(element.componentId)) {
19866
- const view = state.views.get(element.componentId);
19867
- viewLayout = view?.layout;
19868
- console.log("[Servly] Found view in views map:", element.componentId, "layout length:", viewLayout?.length);
19869
- }
19870
- if (!viewLayout && state.componentRegistry) {
19847
+ viewLayout = state.views.get(element.componentId)?.layout;
19848
+ } else if (state.componentRegistry) {
19871
19849
  const component = state.componentRegistry.get(element.componentId);
19872
- if (component) {
19873
- viewLayout = component.layout;
19874
- console.log("[Servly] Found view in registry:", element.componentId);
19875
- }
19876
- }
19877
- if (!viewLayout && state.views === void 0 && state.viewsArray) {
19878
- const viewsArray = state.viewsArray;
19879
- const found = viewsArray.find((v) => v.id === element.componentId);
19880
- if (found) {
19881
- viewLayout = found.layout;
19882
- }
19850
+ if (component) viewLayout = component.layout;
19883
19851
  }
19884
19852
  if (!viewLayout) {
19885
- console.warn(`[Servly] Component not found: ${element.componentId}. Element ID: ${element.i}. Available in views: ${state.views ? Array.from(state.views.keys()).join(", ") : "none"}. Registry has: ${state.componentRegistry?.has(element.componentId) ? "yes" : "no"}`);
19886
19853
  const placeholder = document.createElement("div");
19887
19854
  placeholder.className = "border-2 border-yellow-500 border-dashed p-4 bg-yellow-50";
19888
- placeholder.innerHTML = `<p class="text-yellow-600 text-sm">Component not found: ${element.componentId}</p>`;
19855
+ placeholder.innerHTML = `<p class="text-yellow-600 text-sm">\u26A0\uFE0F Not found: ${element.componentId}</p>`;
19889
19856
  return placeholder;
19890
19857
  }
19891
19858
  const bindings = element.configuration?.bindings?.inputs || {};
@@ -19902,11 +19869,6 @@ function renderComponentViewElement(element, tree, context, eventHandlers, eleme
19902
19869
  wrapper.className = "contents";
19903
19870
  const viewTree = buildTree(viewLayout);
19904
19871
  const viewRoots = viewLayout.filter((el) => !el.parent || el.parent === null);
19905
- console.log("[Servly] viewRoots found:", {
19906
- count: viewRoots.length,
19907
- rootIds: viewRoots.map((r) => r.i),
19908
- allElementIds: viewLayout.map((el) => ({ id: el.i, parent: el.parent }))
19909
- });
19910
19872
  const nestedState = {
19911
19873
  ...state,
19912
19874
  elements: viewLayout,
@@ -19917,7 +19879,6 @@ function renderComponentViewElement(element, tree, context, eventHandlers, eleme
19917
19879
  };
19918
19880
  nestedState.renderingStack.add(componentViewId);
19919
19881
  for (const root of viewRoots) {
19920
- console.log("[Servly] Rendering root element:", root.i, "componentId:", root.componentId, "type:", root.type);
19921
19882
  const rootElement = renderElement(
19922
19883
  root,
19923
19884
  viewTree,
@@ -19927,7 +19888,6 @@ function renderComponentViewElement(element, tree, context, eventHandlers, eleme
19927
19888
  nestedState,
19928
19889
  true
19929
19890
  );
19930
- console.log("[Servly] Root element rendered:", rootElement?.tagName, "innerHTML length:", rootElement?.innerHTML?.length);
19931
19891
  wrapper.appendChild(rootElement);
19932
19892
  }
19933
19893
  const elementState = {
@@ -19939,12 +19899,6 @@ function renderComponentViewElement(element, tree, context, eventHandlers, eleme
19939
19899
  eventListeners: /* @__PURE__ */ new Map()
19940
19900
  };
19941
19901
  elementStates.set(element.i, elementState);
19942
- console.log("[Servly] Returning wrapper:", {
19943
- id: wrapper.id,
19944
- className: wrapper.className,
19945
- childCount: wrapper.children.length,
19946
- innerHTML: wrapper.innerHTML.substring(0, 200)
19947
- });
19948
19902
  return wrapper;
19949
19903
  } finally {
19950
19904
  globalRenderingStack.delete(componentViewId);
package/dist/index.js CHANGED
@@ -2728,14 +2728,8 @@ function resolveFunctionBinding(binding, context) {
2728
2728
  }
2729
2729
  function attachEventHandlers(domElement, element, eventHandlers, context, elementState, isRootElement = false, state) {
2730
2730
  const elementId = element.i;
2731
- const isDebug = true;
2732
- if (isDebug) {
2733
- console.log(`[Servly:attachEventHandlers] Element: ${elementId}, isRoot: ${isRootElement}, renderStackSize: ${state?.renderingStack?.size}`);
2734
- }
2735
- if (eventHandlers && eventHandlers[elementId]) {
2736
- const handlers = eventHandlers[elementId];
2737
- if (isDebug) console.log(`[Servly:attachEventHandlers] Explicit handlers for ${elementId}:`, Object.keys(handlers));
2738
- for (const [eventName, handler] of Object.entries(handlers)) {
2731
+ if (eventHandlers?.[elementId]) {
2732
+ for (const [eventName, handler] of Object.entries(eventHandlers[elementId])) {
2739
2733
  const domEventName = eventName.replace(/^on/, "").toLowerCase();
2740
2734
  elementState.eventListeners.set(domEventName, handler);
2741
2735
  domElement.addEventListener(domEventName, handler);
@@ -2744,9 +2738,8 @@ function attachEventHandlers(domElement, element, eventHandlers, context, elemen
2744
2738
  const config = element.configuration || {};
2745
2739
  for (const eventPropName of Object.keys(EVENT_HANDLERS)) {
2746
2740
  const handlerConfig = config[eventPropName];
2747
- if (handlerConfig && handlerConfig.plugins && handlerConfig.plugins.length > 0) {
2741
+ if (handlerConfig?.plugins?.length) {
2748
2742
  const domEventName = toDomEventName(eventPropName);
2749
- if (isDebug) console.log(`[Servly:attachEventHandlers] Servly plugin handler ${eventPropName} on ${elementId}`);
2750
2743
  if (!elementState.eventListeners.has(domEventName)) {
2751
2744
  if (state?.eventSystem) {
2752
2745
  const handler = state.eventSystem.createHandler(elementId, handlerConfig, context);
@@ -2756,7 +2749,6 @@ function attachEventHandlers(domElement, element, eventHandlers, context, elemen
2756
2749
  const handler = (e) => {
2757
2750
  if (handlerConfig.preventDefault) e.preventDefault();
2758
2751
  if (handlerConfig.stopPropagation) e.stopPropagation();
2759
- console.log(`[Servly] Event ${eventPropName} triggered on ${elementId}`, handlerConfig.plugins);
2760
2752
  };
2761
2753
  elementState.eventListeners.set(domEventName, handler);
2762
2754
  domElement.addEventListener(domEventName, handler);
@@ -2769,39 +2761,35 @@ function attachEventHandlers(domElement, element, eventHandlers, context, elemen
2769
2761
  for (const [propName, binding] of Object.entries(bindings)) {
2770
2762
  if (propName.startsWith("on") && propName.length > 2) {
2771
2763
  const handler = resolveFunctionBinding(binding, context);
2772
- if (handler) {
2764
+ if (handler && !elementState.eventListeners.has(propName.slice(2).toLowerCase())) {
2773
2765
  const domEventName = propName.slice(2).toLowerCase();
2774
- if (isDebug) console.log(`[Servly:attachEventHandlers] Binding handler ${propName} on ${elementId}`);
2775
- if (!elementState.eventListeners.has(domEventName)) {
2776
- elementState.eventListeners.set(domEventName, handler);
2777
- domElement.addEventListener(domEventName, handler);
2778
- }
2766
+ elementState.eventListeners.set(domEventName, handler);
2767
+ domElement.addEventListener(domEventName, handler);
2779
2768
  }
2780
2769
  }
2781
2770
  }
2782
2771
  }
2783
2772
  if (isRootElement && context.props && state?.renderingStack?.size === 0) {
2784
- const contextFunctionProps = Object.entries(context.props).filter(([k, v]) => k.startsWith("on") && typeof v === "function");
2785
- if (isDebug && contextFunctionProps.length > 0) {
2786
- console.log(`[Servly:attachEventHandlers] ROOT element ${elementId} attaching context props:`, contextFunctionProps.map(([k]) => k));
2787
- }
2788
- for (const [propName, value] of contextFunctionProps) {
2789
- const domEventName = propName.slice(2).toLowerCase();
2790
- if (!elementState.eventListeners.has(domEventName)) {
2791
- const handler = value;
2792
- elementState.eventListeners.set(domEventName, handler);
2793
- domElement.addEventListener(domEventName, handler);
2794
- if (isDebug) console.log(`[Servly:attachEventHandlers] Attached ${propName} to root element ${elementId}`);
2773
+ for (const [propName, value] of Object.entries(context.props)) {
2774
+ if (propName.startsWith("on") && typeof value === "function") {
2775
+ const domEventName = propName.slice(2).toLowerCase();
2776
+ if (!elementState.eventListeners.has(domEventName)) {
2777
+ elementState.eventListeners.set(domEventName, value);
2778
+ domElement.addEventListener(domEventName, value);
2779
+ }
2795
2780
  }
2796
2781
  }
2797
- } else if (isDebug && isRootElement) {
2798
- console.log(`[Servly:attachEventHandlers] ROOT element ${elementId} NOT attaching context props (renderStackSize=${state?.renderingStack?.size})`);
2799
2782
  }
2800
- if (elementState.eventListeners.size > 0) {
2801
- const handlers = Array.from(elementState.eventListeners.keys()).join(",");
2802
- domElement.setAttribute("data-handlers", handlers);
2803
- domElement.setAttribute("data-is-root", isRootElement ? "true" : "false");
2804
- domElement.style.outline = isRootElement ? "2px solid red" : "";
2783
+ if (!isRootElement && elementState.eventListeners.size > 0) {
2784
+ for (const [eventName, originalHandler] of elementState.eventListeners) {
2785
+ const wrappedHandler = (e) => {
2786
+ e.stopPropagation();
2787
+ return originalHandler(e);
2788
+ };
2789
+ domElement.removeEventListener(eventName, originalHandler);
2790
+ domElement.addEventListener(eventName, wrappedHandler);
2791
+ elementState.eventListeners.set(eventName, wrappedHandler);
2792
+ }
2805
2793
  }
2806
2794
  }
2807
2795
  function detachEventHandlers(elementState) {
@@ -2980,9 +2968,6 @@ function getValueByPath2(obj, path) {
2980
2968
  return current;
2981
2969
  }
2982
2970
  function renderElement(element, tree, context, eventHandlers, elementStates, state, isRootElement = false) {
2983
- if (element.isComponentView) {
2984
- console.log("[Servly] Element has isComponentView=true:", element.i, "componentId:", element.componentId);
2985
- }
2986
2971
  if (element.isComponentView) {
2987
2972
  return renderComponentViewElement(element, tree, context, eventHandlers, elementStates, state, isRootElement);
2988
2973
  }
@@ -2994,8 +2979,11 @@ function renderElement(element, tree, context, eventHandlers, elementStates, sta
2994
2979
  }
2995
2980
  const elementBindings = element.configuration?.bindings?.inputs;
2996
2981
  const resolvedInputs = elementBindings ? resolveComponentViewInputs(elementBindings, context, context.props) : {};
2982
+ const nonFunctionInputs = Object.fromEntries(
2983
+ Object.entries(resolvedInputs).filter(([, v]) => typeof v !== "function")
2984
+ );
2997
2985
  const elementContext = {
2998
- props: { ...context.props, ...resolvedInputs },
2986
+ props: { ...context.props, ...nonFunctionInputs },
2999
2987
  state: context.state,
3000
2988
  context: context.context
3001
2989
  };
@@ -3051,45 +3039,24 @@ function renderIconElement(element, context, eventHandlers, elementStates, state
3051
3039
  return wrapper;
3052
3040
  }
3053
3041
  function renderComponentViewElement(element, tree, context, eventHandlers, elementStates, state, isRootElement) {
3054
- console.log("[Servly] renderComponentViewElement called:", {
3055
- elementId: element.i,
3056
- componentId: element.componentId,
3057
- isComponentView: element.isComponentView,
3058
- hasViews: !!state.views,
3059
- viewsKeys: state.views ? Array.from(state.views.keys()).slice(0, 5) : []
3060
- });
3061
3042
  const componentViewId = `${element.componentId}-${element.i}`;
3062
3043
  if (globalRenderingStack.has(componentViewId)) {
3063
3044
  const placeholder = document.createElement("div");
3064
3045
  placeholder.className = "border-2 border-red-500 border-dashed p-4 bg-red-50";
3065
- placeholder.innerHTML = `<p class="text-red-600 text-sm">Recursive component: ${element.componentId}</p>`;
3046
+ placeholder.innerHTML = `<p class="text-red-600 text-sm">\u{1F504} Recursive: ${element.componentId}</p>`;
3066
3047
  return placeholder;
3067
3048
  }
3068
3049
  let viewLayout;
3069
3050
  if (state.views?.has(element.componentId)) {
3070
- const view = state.views.get(element.componentId);
3071
- viewLayout = view?.layout;
3072
- console.log("[Servly] Found view in views map:", element.componentId, "layout length:", viewLayout?.length);
3073
- }
3074
- if (!viewLayout && state.componentRegistry) {
3051
+ viewLayout = state.views.get(element.componentId)?.layout;
3052
+ } else if (state.componentRegistry) {
3075
3053
  const component = state.componentRegistry.get(element.componentId);
3076
- if (component) {
3077
- viewLayout = component.layout;
3078
- console.log("[Servly] Found view in registry:", element.componentId);
3079
- }
3080
- }
3081
- if (!viewLayout && state.views === void 0 && state.viewsArray) {
3082
- const viewsArray = state.viewsArray;
3083
- const found = viewsArray.find((v) => v.id === element.componentId);
3084
- if (found) {
3085
- viewLayout = found.layout;
3086
- }
3054
+ if (component) viewLayout = component.layout;
3087
3055
  }
3088
3056
  if (!viewLayout) {
3089
- console.warn(`[Servly] Component not found: ${element.componentId}. Element ID: ${element.i}. Available in views: ${state.views ? Array.from(state.views.keys()).join(", ") : "none"}. Registry has: ${state.componentRegistry?.has(element.componentId) ? "yes" : "no"}`);
3090
3057
  const placeholder = document.createElement("div");
3091
3058
  placeholder.className = "border-2 border-yellow-500 border-dashed p-4 bg-yellow-50";
3092
- placeholder.innerHTML = `<p class="text-yellow-600 text-sm">Component not found: ${element.componentId}</p>`;
3059
+ placeholder.innerHTML = `<p class="text-yellow-600 text-sm">\u26A0\uFE0F Not found: ${element.componentId}</p>`;
3093
3060
  return placeholder;
3094
3061
  }
3095
3062
  const bindings = element.configuration?.bindings?.inputs || {};
@@ -3106,11 +3073,6 @@ function renderComponentViewElement(element, tree, context, eventHandlers, eleme
3106
3073
  wrapper.className = "contents";
3107
3074
  const viewTree = buildTree(viewLayout);
3108
3075
  const viewRoots = viewLayout.filter((el) => !el.parent || el.parent === null);
3109
- console.log("[Servly] viewRoots found:", {
3110
- count: viewRoots.length,
3111
- rootIds: viewRoots.map((r) => r.i),
3112
- allElementIds: viewLayout.map((el) => ({ id: el.i, parent: el.parent }))
3113
- });
3114
3076
  const nestedState = {
3115
3077
  ...state,
3116
3078
  elements: viewLayout,
@@ -3121,7 +3083,6 @@ function renderComponentViewElement(element, tree, context, eventHandlers, eleme
3121
3083
  };
3122
3084
  nestedState.renderingStack.add(componentViewId);
3123
3085
  for (const root of viewRoots) {
3124
- console.log("[Servly] Rendering root element:", root.i, "componentId:", root.componentId, "type:", root.type);
3125
3086
  const rootElement = renderElement(
3126
3087
  root,
3127
3088
  viewTree,
@@ -3131,7 +3092,6 @@ function renderComponentViewElement(element, tree, context, eventHandlers, eleme
3131
3092
  nestedState,
3132
3093
  true
3133
3094
  );
3134
- console.log("[Servly] Root element rendered:", rootElement?.tagName, "innerHTML length:", rootElement?.innerHTML?.length);
3135
3095
  wrapper.appendChild(rootElement);
3136
3096
  }
3137
3097
  const elementState = {
@@ -3143,12 +3103,6 @@ function renderComponentViewElement(element, tree, context, eventHandlers, eleme
3143
3103
  eventListeners: /* @__PURE__ */ new Map()
3144
3104
  };
3145
3105
  elementStates.set(element.i, elementState);
3146
- console.log("[Servly] Returning wrapper:", {
3147
- id: wrapper.id,
3148
- className: wrapper.className,
3149
- childCount: wrapper.children.length,
3150
- innerHTML: wrapper.innerHTML.substring(0, 200)
3151
- });
3152
3106
  return wrapper;
3153
3107
  } finally {
3154
3108
  globalRenderingStack.delete(componentViewId);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servlyadmin/runtime-core",
3
- "version": "0.1.27",
3
+ "version": "0.1.29",
4
4
  "description": "Framework-agnostic core renderer for Servly components",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",