/* Overlay part C: thin wrap — Levels modal + inject onEditLedgerLevels.
 * Load AFTER modal + table overlays. Captures priors via window (no function-decl hoist).
 */
(function () {
  var BaseTable = window.LedgerTable;
  var BaseInner = window.W_SignalsSectionInner;
  if (typeof BaseTable !== 'function' || typeof BaseInner !== 'function') {
    console.error('[ledger-levels] missing LedgerTable or W_SignalsSectionInner');
    return;
  }

  window.LedgerTable = function LedgerTable(props) {
    var onEditLedgerLevels = props.onEditLedgerLevels
      || (typeof window.__openLedgerLevels === 'function' ? window.__openLedgerLevels : undefined);
    return React.createElement(BaseTable, Object.assign({}, props, { onEditLedgerLevels: onEditLedgerLevels }));
  };

  window.W_SignalsSectionInner = function W_SignalsSectionInner(props) {
    var st = useS(null);
    var editLedgerLevelsTarget = st[0];
    var setEditLedgerLevelsTarget = st[1];
    // Sync before child table renders so Levels shows on first paint.
    window.__openLedgerLevels = function (row) { setEditLedgerLevelsTarget(row); };
    useE(function () {
      return function () { try { delete window.__openLedgerLevels; } catch (e) {} };
    }, []);
    var isAdmin = props.viewMode === 'admin';
    return React.createElement(React.Fragment, null,
      React.createElement(BaseInner, props),
      isAdmin
        ? React.createElement(EditLedgerLevelsModal, {
            target: editLedgerLevelsTarget,
            onClose: function () { setEditLedgerLevelsTarget(null); },
            onSaved: function () { setEditLedgerLevelsTarget(null); window.location.reload(); },
          })
        : null
    );
  };
})();
