{
  "version": 3,
  "sources": ["../src/index.ts"],
  "sourcesContent": ["import { Builder } from '@tko/builder'\n\nimport { VirtualProvider } from '@tko/provider.virtual'\nimport { DataBindProvider } from '@tko/provider.databind'\nimport { ComponentProvider } from '@tko/provider.component'\nimport { AttributeProvider } from '@tko/provider.attr'\nimport { MultiProvider } from '@tko/provider.multi'\nimport { TextMustacheProvider, AttributeMustacheProvider } from '@tko/provider.mustache'\nimport { NativeProvider } from '@tko/provider.native'\n\nimport { bindings as coreBindings } from '@tko/binding.core'\nimport { bindings as templateBindings } from '@tko/binding.template'\nimport { bindings as ifBindings } from '@tko/binding.if'\nimport { bindings as foreachBindings } from '@tko/binding.foreach'\nimport { bindings as componentBindings } from '@tko/binding.component'\n\nimport { filters } from '@tko/filter.punches'\n\nimport components from '@tko/utils.component'\nimport { createElement, Fragment } from '@tko/utils.jsx'\nimport { JsxObserver } from '@tko/utils.jsx'\n\nimport { options } from '@tko/utils'\n\ndeclare const BUILD_VERSION: string\n\n/** Use === and !== instead of == and != in binding expressions */\noptions.strictEquality = true\n\nconst builder = new Builder({\n  filters,\n  extenders: {},\n  options: {},\n  provider: new MultiProvider({\n    providers: [\n      new ComponentProvider(),\n      new NativeProvider(),\n      new AttributeMustacheProvider(),\n      new TextMustacheProvider(),\n      new DataBindProvider(),\n      new VirtualProvider(),\n      new AttributeProvider()\n    ]\n  }),\n  bindings: [\n    coreBindings,\n    templateBindings,\n    ifBindings,\n    foreachBindings,\n    componentBindings,\n    { each: foreachBindings.foreach }\n  ]\n})\n\nconst version = BUILD_VERSION\n\nexport default builder.create({\n  jsx: {\n    createElement,\n    Fragment,\n    /** Public render function that converts JSX to DOM nodes */\n    render(jsx: any) {\n      const fragment = document.createDocumentFragment()\n      const observer = new JsxObserver(jsx, fragment)\n      // Return the first child if single node, or the fragment if multiple\n      const node = fragment.childNodes.length === 1 ? fragment.firstChild : fragment\n      return {\n        node,\n        dispose: () => observer.dispose()\n      }\n    }\n  },\n  components,\n  version,\n  Component: components.ComponentABC\n})\n"],
  "mappings": ";;AAAA,SAAS,eAAe;AAExB,SAAS,uBAAuB;AAChC,SAAS,wBAAwB;AACjC,SAAS,yBAAyB;AAClC,SAAS,yBAAyB;AAClC,SAAS,qBAAqB;AAC9B,SAAS,sBAAsB,iCAAiC;AAChE,SAAS,sBAAsB;AAE/B,SAAS,YAAY,oBAAoB;AACzC,SAAS,YAAY,wBAAwB;AAC7C,SAAS,YAAY,kBAAkB;AACvC,SAAS,YAAY,uBAAuB;AAC5C,SAAS,YAAY,yBAAyB;AAE9C,SAAS,eAAe;AAExB,OAAO,gBAAgB;AACvB,SAAS,eAAe,gBAAgB;AACxC,SAAS,mBAAmB;AAE5B,SAAS,eAAe;AAKxB,QAAQ,iBAAiB;AAEzB,MAAM,UAAU,IAAI,QAAQ;AAAA,EAC1B;AAAA,EACA,WAAW,CAAC;AAAA,EACZ,SAAS,CAAC;AAAA,EACV,UAAU,IAAI,cAAc;AAAA,IAC1B,WAAW;AAAA,MACT,IAAI,kBAAkB;AAAA,MACtB,IAAI,eAAe;AAAA,MACnB,IAAI,0BAA0B;AAAA,MAC9B,IAAI,qBAAqB;AAAA,MACzB,IAAI,iBAAiB;AAAA,MACrB,IAAI,gBAAgB;AAAA,MACpB,IAAI,kBAAkB;AAAA,IACxB;AAAA,EACF,CAAC;AAAA,EACD,UAAU;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,EAAE,MAAM,gBAAgB,QAAQ;AAAA,EAClC;AACF,CAAC;AAED,MAAM,UAAU;AAEhB,eAAe,QAAQ,OAAO;AAAA,EAC5B,KAAK;AAAA,IACH;AAAA,IACA;AAAA;AAAA,IAEA,OAAO,KAAU;AACf,YAAM,WAAW,SAAS,uBAAuB;AACjD,YAAM,WAAW,IAAI,YAAY,KAAK,QAAQ;AAE9C,YAAM,OAAO,SAAS,WAAW,WAAW,IAAI,SAAS,aAAa;AACtE,aAAO;AAAA,QACL;AAAA,QACA,SAAS,MAAM,SAAS,QAAQ;AAAA,MAClC;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW,WAAW;AACxB,CAAC;",
  "names": []
}
