text: import addons from '@storybook/addons';
  import WrapStory from './WrapStory.marko';
  
  import {
    knob,
    text,
    boolean,
    number,
    color,
    object,
    array,
    date,
    select,
    selectV2,
    button,
    manager,
  } from '../base';
  
  export { knob, text, boolean, number, color, object, array, date, select, selectV2, button };
  
  export const markoHandler = (channel, knobStore) => getStory => context => {
    const initialContent = getStory(context);
    const props = { context, storyFn: getStory, channel, knobStore, initialContent };
  
    return WrapStory.renderSync({ props });
  };
  
  function wrapperKnobs(options) {
    const channel = addons.getChannel();
    manager.setChannel(channel);
  
    if (options) channel.emit('addon:knobs:setOptions', options);
  
    return markoHandler(channel, manager.knobStore);
  }
  
  export function withKnobs(storyFn, context) {
    return wrapperKnobs()(storyFn)(context);
  }
  
  export function withKnobsOptions(options = {}) {
    return (storyFn, context) => wrapperKnobs(options)(storyFn)(context);
  }
  