Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save alonsosilvaallende/4f2ab1647ed12dd6162565cd73f8b930 to your computer and use it in GitHub Desktop.
Save alonsosilvaallende/4f2ab1647ed12dd6162565cd73f8b930 to your computer and use it in GitHub Desktop.
Solara-Mistral-Chat-Interface.ipynb
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"provenance": [],
"authorship_tag": "ABX9TyMjs38CZsK39FHKRqu1Ft+A",
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"language_info": {
"name": "python"
},
"widgets": {
"application/vnd.jupyter.widget-state+json": {
"8566f21ebbad419b9684b4bdaf24aa14": {
"model_module": "jupyter-vue",
"model_name": "HtmlModel",
"model_module_version": "^1.11.1",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vue",
"_model_module_version": "^1.11.1",
"_model_name": "HtmlModel",
"_view_count": null,
"_view_module": "jupyter-vue",
"_view_module_version": "^1.11.1",
"_view_name": "VueView",
"attributes": {},
"children": [],
"class_": null,
"layout": null,
"slot": null,
"style_": "display: none",
"tag": "span",
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": []
}
},
"cd787c0e5208424ba5ed73f4a48b4cfa": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"9f3c73add20f4e268222e8ec9ad4d90f": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"cf6ad2d8c41a418282fab2d1c17b8cf8": {
"model_module": "jupyter-vue",
"model_name": "TemplateModel",
"model_module_version": "^1.11.1",
"state": {
"_model_module": "jupyter-vue",
"_model_module_version": "^1.11.1",
"_model_name": "TemplateModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"template": "<template>\n <component :is=\"tag\" v-bind=\"attributes\" v-html=\"unsafe_innerHTML\">\n </component>\n</template>\n"
}
},
"c0f1620c45664bea919771dc913a3888": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"attributes": {
"class": "headline"
},
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_9f3c73add20f4e268222e8ec9ad4d90f",
"methods": null,
"tag": "span",
"template": "IPY_MODEL_cf6ad2d8c41a418282fab2d1c17b8cf8",
"unsafe_innerHTML": "U"
}
},
"e30917e84ea041108e81785210c937a0": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"77df89a2055245c8b87b96a8dc4e9625": {
"model_module": "jupyter-vuetify",
"model_name": "HtmlModel",
"model_module_version": "^1.10.0",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "HtmlModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"User"
],
"class_": "message-name right",
"layout": null,
"slot": null,
"style_": "font-weight: bold;",
"tag": "span",
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": []
}
},
"93897c7805ea483eb4cd9ce15b9a1b88": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_e30917e84ea041108e81785210c937a0",
"methods": null,
"template": "\n<template>\n <div class=\"solara-markdown rendered_html jp-RenderedHTMLCommon\" style=\"\"><p>Hello! How can I assist you today?</p></div>\n</template>\n\n<script>\nmodule.exports = {\n async mounted() {\n this.cdn = 'https://cdn.jsdelivr.net/npm/';\n await this.loadRequire();\n this.mermaid = await this.loadMermaid();\n this.mermaid.init();\n this.latexSettings = {\n delimiters: [\n {left: \"$$\", right: \"$$\", display: true},\n {left: \"$\", right: \"$\", display: false},\n {left: \"\\\\[\", right: \"\\\\]\", display: true},\n {left: \"\\\\(\", right: \"\\\\)\", display: false}\n ]\n };\n if (window.renderMathInElement) {\n window.renderMathInElement(this.$el, this.latexSettings);\n } else if (window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement = await this.loadKatexExt();\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n this.$el.querySelectorAll(\"a\").forEach(a => this.setupRouter(a))\n window.md = this.$el\n },\n methods: {\n setupRouter(a) {\n let href = a.attributes['href'].value;\n if(href.startsWith(\"./\")) {\n // TODO: should we really do this?\n href = location.pathname + href.substr(1);\n a.attributes['href'].href = href;\n }\n let authLink = href.startsWith(\"/_solara/auth/\");\n if( (href.startsWith(\"./\") || href.startsWith(\"/\")) && !authLink) {\n a.onclick = e => {\n console.log(\"clicked\", href)\n if(href.startsWith(\"./\")) {\n solara.router.push(href);\n } else {\n solara.router.push(href);\n }\n e.preventDefault()\n }\n } else if(href.startsWith(\"#\")) {\n href = location.pathname + href;\n a.attributes['href'].value = href;\n } else {\n console.log(\"href\", href, \"is not a local link\")\n }\n },\n async loadKatex() {\n require.config({\n map: {\n '*': {\n 'katex': `${this.getCdn()}/[email protected]/dist/katex.min.js`,\n }\n }\n });\n const link = document.createElement('link');\n link.type = \"text/css\";\n link.rel = \"stylesheet\";\n link.href = `${this.getCdn()}/[email protected]/dist/katex.min.css`;\n document.head.appendChild(link);\n },\n async loadKatexExt() {\n this.loadKatex();\n return (await this.import([`${this.getCdn()}/[email protected]/dist/contrib/auto-render.min.js`]))[0]\n },\n async loadMermaid() {\n return (await this.import([`${this.getCdn()}/[email protected]/dist/mermaid.min.js`]))[0]\n },\n import(dependencies) {\n return this.loadRequire().then(\n () => {\n if (window.jupyterVue) {\n // in jupyterlab, we take Vue from ipyvue/jupyterVue\n define(\"vue\", [], () => window.jupyterVue.Vue);\n } else {\n define(\"vue\", ['jupyter-vue'], jupyterVue => jupyterVue.Vue);\n }\n return new Promise((resolve, reject) => {\n requirejs(dependencies, (...modules) => resolve(modules));\n })\n }\n );\n },\n loadRequire() {\n if (window.requirejs) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = `${this.getCdn()}/[email protected]/require.min.js`;\n script.onload = resolve;\n script.onerror = reject;\n document.head.appendChild(script);\n });\n },\n getJupyterBaseUrl() {\n // if base url is set, we use ./ for relative paths compared to the base url\n if (document.getElementsByTagName(\"base\").length) {\n return \"./\";\n }\n const labConfigData = document.getElementById('jupyter-config-data');\n if (labConfigData) {\n /* lab and Voila */\n return JSON.parse(labConfigData.textContent).baseUrl;\n }\n let base = document.body.dataset.baseUrl || document.baseURI;\n if (!base.endsWith('/')) {\n base += '/';\n }\n return base\n },\n getCdn() {\n return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);\n }\n },\n updated() {\n // if the html gets update, re-run mermaid\n this.mermaid.init();\n\n if(window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n }\n}\n</script>\n "
}
},
"d53ad0c0d6c544c085c6bf281b536a30": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"7fca4d3e7c744f68a804c4ea6506c71b": {
"model_module": "jupyter-vuetify",
"model_name": "AvatarModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "AvatarModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_c0f1620c45664bea919771dc913a3888"
],
"class_": null,
"color": "rgba(0,0,0,.06)",
"height": null,
"layout": null,
"left": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"right": null,
"size": null,
"slot": null,
"style_": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"503a62e4e6bc42b3a2f2a7972ef9e26b": {
"model_module": "jupyter-vuetify",
"model_name": "SheetModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "SheetModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_77df89a2055245c8b87b96a8dc4e9625",
"IPY_MODEL_88a96ca648254928b835949c1590e03b"
],
"class_": "d-flex ma-0 chat-message-6cc7694e-a23e-4545-b0a7-dae8117eb22d right",
"color": null,
"dark": null,
"elevation": 0,
"height": null,
"layout": null,
"light": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"slot": null,
"style_": "flex-direction: column; align-items: stretch; row-gap: 0; border-radius: ; border-top-right-radius: 0; padding: .5em 1.5em;;",
"tag": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"042a35452fe246ed8a8c0b02eaaa0769": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_d53ad0c0d6c544c085c6bf281b536a30",
"methods": null,
"template": "\n<template>\n <span style=\"display: none\">\n </span>\n</template>\n\n<script>\nmodule.exports = {\n destroyed() {\n document.getElementById(\"ipyvue-50493724-053a-4175-9adc-32cb52bc7ba1-8101d0eb32d5ac63ac3b0f7a5fc00c0b17501c3737f805fa3606c5dd1d373748\").remove();\n },\n};\n</script>\n \n<style id=\"50493724-053a-4175-9adc-32cb52bc7ba1-8101d0eb32d5ac63ac3b0f7a5fc00c0b17501c3737f805fa3606c5dd1d373748\">\n\n .chat-message-6cc7694e-a23e-4545-b0a7-dae8117eb22d{\n --color: rgba(0,0,0,.06);\n max-width: 75%;\n position: relative;\n }\n .chat-message-6cc7694e-a23e-4545-b0a7-dae8117eb22d.left{\n border-top-left-radius: 0;\n background-color:var(--color);\n \n }\n .chat-message-6cc7694e-a23e-4545-b0a7-dae8117eb22d.right{\n border-top-right-radius: 0;\n background-color:var(--color);\n \n }\n \n \n</style>\n "
}
},
"27646a07dc2a4cf9828e29bcc8c0e5e9": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"22cdbcac882f45ad8a0220163a9e97ce": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"attributes": {
"class": "headline"
},
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_27646a07dc2a4cf9828e29bcc8c0e5e9",
"methods": null,
"tag": "span",
"template": "IPY_MODEL_cf6ad2d8c41a418282fab2d1c17b8cf8",
"unsafe_innerHTML": "U"
}
},
"6de321d107c94f4a943a6f6c6ec4c122": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"decbee8531424e1ea2271dbb515eb50d": {
"model_module": "jupyter-vuetify",
"model_name": "HtmlModel",
"model_module_version": "^1.10.0",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "HtmlModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"User"
],
"class_": "message-name right",
"layout": null,
"slot": null,
"style_": "font-weight: bold;",
"tag": "span",
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": []
}
},
"638557cc2ed74dff8a91c9d6a78eb5cd": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_6de321d107c94f4a943a6f6c6ec4c122",
"methods": null,
"template": "\n<template>\n <div class=\"solara-markdown rendered_html jp-RenderedHTMLCommon\" style=\"\"><p>Hello!</p></div>\n</template>\n\n<script>\nmodule.exports = {\n async mounted() {\n this.cdn = 'https://cdn.jsdelivr.net/npm/';\n await this.loadRequire();\n this.mermaid = await this.loadMermaid();\n this.mermaid.init();\n this.latexSettings = {\n delimiters: [\n {left: \"$$\", right: \"$$\", display: true},\n {left: \"$\", right: \"$\", display: false},\n {left: \"\\\\[\", right: \"\\\\]\", display: true},\n {left: \"\\\\(\", right: \"\\\\)\", display: false}\n ]\n };\n if (window.renderMathInElement) {\n window.renderMathInElement(this.$el, this.latexSettings);\n } else if (window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement = await this.loadKatexExt();\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n this.$el.querySelectorAll(\"a\").forEach(a => this.setupRouter(a))\n window.md = this.$el\n },\n methods: {\n setupRouter(a) {\n let href = a.attributes['href'].value;\n if(href.startsWith(\"./\")) {\n // TODO: should we really do this?\n href = location.pathname + href.substr(1);\n a.attributes['href'].href = href;\n }\n let authLink = href.startsWith(\"/_solara/auth/\");\n if( (href.startsWith(\"./\") || href.startsWith(\"/\")) && !authLink) {\n a.onclick = e => {\n console.log(\"clicked\", href)\n if(href.startsWith(\"./\")) {\n solara.router.push(href);\n } else {\n solara.router.push(href);\n }\n e.preventDefault()\n }\n } else if(href.startsWith(\"#\")) {\n href = location.pathname + href;\n a.attributes['href'].value = href;\n } else {\n console.log(\"href\", href, \"is not a local link\")\n }\n },\n async loadKatex() {\n require.config({\n map: {\n '*': {\n 'katex': `${this.getCdn()}/[email protected]/dist/katex.min.js`,\n }\n }\n });\n const link = document.createElement('link');\n link.type = \"text/css\";\n link.rel = \"stylesheet\";\n link.href = `${this.getCdn()}/[email protected]/dist/katex.min.css`;\n document.head.appendChild(link);\n },\n async loadKatexExt() {\n this.loadKatex();\n return (await this.import([`${this.getCdn()}/[email protected]/dist/contrib/auto-render.min.js`]))[0]\n },\n async loadMermaid() {\n return (await this.import([`${this.getCdn()}/[email protected]/dist/mermaid.min.js`]))[0]\n },\n import(dependencies) {\n return this.loadRequire().then(\n () => {\n if (window.jupyterVue) {\n // in jupyterlab, we take Vue from ipyvue/jupyterVue\n define(\"vue\", [], () => window.jupyterVue.Vue);\n } else {\n define(\"vue\", ['jupyter-vue'], jupyterVue => jupyterVue.Vue);\n }\n return new Promise((resolve, reject) => {\n requirejs(dependencies, (...modules) => resolve(modules));\n })\n }\n );\n },\n loadRequire() {\n if (window.requirejs) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = `${this.getCdn()}/[email protected]/require.min.js`;\n script.onload = resolve;\n script.onerror = reject;\n document.head.appendChild(script);\n });\n },\n getJupyterBaseUrl() {\n // if base url is set, we use ./ for relative paths compared to the base url\n if (document.getElementsByTagName(\"base\").length) {\n return \"./\";\n }\n const labConfigData = document.getElementById('jupyter-config-data');\n if (labConfigData) {\n /* lab and Voila */\n return JSON.parse(labConfigData.textContent).baseUrl;\n }\n let base = document.body.dataset.baseUrl || document.baseURI;\n if (!base.endsWith('/')) {\n base += '/';\n }\n return base\n },\n getCdn() {\n return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);\n }\n },\n updated() {\n // if the html gets update, re-run mermaid\n this.mermaid.init();\n\n if(window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n }\n}\n</script>\n "
}
},
"5b80b823c94e4ddb8105a662dbd13296": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"d2c62c97d1a34bbd81adba0a6d442fe4": {
"model_module": "jupyter-vuetify",
"model_name": "AvatarModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "AvatarModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_22cdbcac882f45ad8a0220163a9e97ce"
],
"class_": null,
"color": "rgba(0,0,0,.06)",
"height": null,
"layout": null,
"left": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"right": null,
"size": null,
"slot": null,
"style_": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"fcabf75c07994c6280c1d5804d986298": {
"model_module": "jupyter-vuetify",
"model_name": "SheetModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "SheetModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_decbee8531424e1ea2271dbb515eb50d",
"IPY_MODEL_638557cc2ed74dff8a91c9d6a78eb5cd"
],
"class_": "d-flex ma-0 chat-message-2d208afa-b8dd-4d39-8181-250705f840e9 right",
"color": null,
"dark": null,
"elevation": 0,
"height": null,
"layout": null,
"light": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"slot": null,
"style_": "flex-direction: column; align-items: stretch; row-gap: 0; border-radius: ; border-top-right-radius: 0; padding: .5em 1.5em;;",
"tag": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"ffc2af9bac9f4cfea7af2db001158bdc": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_5b80b823c94e4ddb8105a662dbd13296",
"methods": null,
"template": "\n<template>\n <span style=\"display: none\">\n </span>\n</template>\n\n<script>\nmodule.exports = {\n destroyed() {\n document.getElementById(\"ipyvue-0dba6086-382d-47e8-b15b-2d35136124ec-d32c003be48810ae400592c61a5b91847595a5890c3d3291ba3c5963b6193364\").remove();\n },\n};\n</script>\n \n<style id=\"0dba6086-382d-47e8-b15b-2d35136124ec-d32c003be48810ae400592c61a5b91847595a5890c3d3291ba3c5963b6193364\">\n\n .chat-message-2d208afa-b8dd-4d39-8181-250705f840e9{\n --color: rgba(0,0,0,.06);\n max-width: 75%;\n position: relative;\n }\n .chat-message-2d208afa-b8dd-4d39-8181-250705f840e9.left{\n border-top-left-radius: 0;\n background-color:var(--color);\n \n }\n .chat-message-2d208afa-b8dd-4d39-8181-250705f840e9.right{\n border-top-right-radius: 0;\n background-color:var(--color);\n \n }\n \n \n</style>\n "
}
},
"82a63ac6a6254b7ba24850088d184b26": {
"model_module": "jupyter-vuetify",
"model_name": "SheetModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "SheetModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_7fca4d3e7c744f68a804c4ea6506c71b",
"IPY_MODEL_503a62e4e6bc42b3a2f2a7972ef9e26b",
"IPY_MODEL_042a35452fe246ed8a8c0b02eaaa0769"
],
"class_": "d-flex ma-0",
"color": null,
"dark": null,
"elevation": 0,
"height": null,
"layout": null,
"light": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"slot": null,
"style_": "flex-direction: row; align-items: stretch; justify-content: end; column-gap: 12px;flex-direction:row-reverse;padding:5px;;",
"tag": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"72740b725fcf4165babc519943a0f0c2": {
"model_module": "jupyter-vuetify",
"model_name": "SheetModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "SheetModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_d2c62c97d1a34bbd81adba0a6d442fe4",
"IPY_MODEL_fcabf75c07994c6280c1d5804d986298",
"IPY_MODEL_ffc2af9bac9f4cfea7af2db001158bdc"
],
"class_": "d-flex ma-0",
"color": null,
"dark": null,
"elevation": 0,
"height": null,
"layout": null,
"light": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"slot": null,
"style_": "flex-direction: row; align-items: stretch; justify-content: end; column-gap: 12px;flex-direction:row-reverse;padding:5px;;",
"tag": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"6ce1775a46244a24b6483e0d586dcb7d": {
"model_module": "jupyter-vuetify",
"model_name": "SheetModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "SheetModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_88de8e2b9bd34c5db3c58f95f5e5e3df",
"IPY_MODEL_cfc7c93e0c694dff8ab231c780ad9243",
"IPY_MODEL_fc74b1928a4345c48f2a8035ef3d6edc"
],
"class_": "d-flex ma-0 chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box",
"color": null,
"dark": null,
"elevation": 0,
"height": null,
"layout": null,
"light": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"slot": null,
"style_": "flex-direction: column; align-items: stretch; row-gap: 12px; flex-grow: 1; flex-direction: column-reverse; overflow-y: auto;;",
"tag": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"75a173daabb64f1c9675721a970f7882": {
"model_module": "jupyter-vuetify",
"model_name": "ColModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "ColModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"align_self": null,
"attributes": {},
"children": [
"IPY_MODEL_6ce1775a46244a24b6483e0d586dcb7d"
],
"class_": null,
"cols": 12,
"layout": null,
"lg": null,
"md": null,
"offset": null,
"offset_lg": null,
"offset_md": null,
"offset_sm": null,
"offset_xl": null,
"order": null,
"order_lg": null,
"order_md": null,
"order_sm": null,
"order_xl": null,
"slot": null,
"sm": null,
"style_": null,
"tag": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"xl": null
}
},
"ada3621e74034a94975d07f8f236e8a5": {
"model_module": "jupyter-vuetify",
"model_name": "RowModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "RowModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"align": null,
"align_content": null,
"align_content_lg": null,
"align_content_md": null,
"align_content_sm": null,
"align_content_xl": null,
"align_lg": null,
"align_md": null,
"align_sm": null,
"align_xl": null,
"attributes": {},
"children": [
"IPY_MODEL_75a173daabb64f1c9675721a970f7882"
],
"class_": "solara-content-main",
"dense": null,
"justify": null,
"justify_lg": null,
"justify_md": null,
"justify_sm": null,
"justify_xl": null,
"layout": null,
"no_gutters": false,
"slot": null,
"style_": null,
"tag": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": []
}
},
"bef160e1c7414930a4cedba5f3d8267f": {
"model_module": "jupyter-vuetify",
"model_name": "HtmlModel",
"model_module_version": "^1.10.0",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "HtmlModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_ada3621e74034a94975d07f8f236e8a5"
],
"class_": null,
"layout": null,
"slot": null,
"style_": null,
"tag": "div",
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": []
}
},
"240acb1d17d842c88d578a0937156ed9": {
"model_module": "@jupyter-widgets/controls",
"model_name": "VBoxModel",
"model_module_version": "1.5.0",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "VBoxModel",
"_view_count": 1,
"_view_module": "@jupyter-widgets/controls",
"_view_module_version": "1.5.0",
"_view_name": "VBoxView",
"box_style": "",
"children": [
"IPY_MODEL_bef160e1c7414930a4cedba5f3d8267f"
],
"layout": "IPY_MODEL_cd787c0e5208424ba5ed73f4a48b4cfa"
}
},
"88a96ca648254928b835949c1590e03b": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_23559be915eb4de6b9c5531f1a313af9",
"methods": null,
"template": "\n<template>\n <div class=\"solara-markdown rendered_html jp-RenderedHTMLCommon\" style=\"\"><p>Hi!</p></div>\n</template>\n\n<script>\nmodule.exports = {\n async mounted() {\n this.cdn = 'https://cdn.jsdelivr.net/npm/';\n await this.loadRequire();\n this.mermaid = await this.loadMermaid();\n this.mermaid.init();\n this.latexSettings = {\n delimiters: [\n {left: \"$$\", right: \"$$\", display: true},\n {left: \"$\", right: \"$\", display: false},\n {left: \"\\\\[\", right: \"\\\\]\", display: true},\n {left: \"\\\\(\", right: \"\\\\)\", display: false}\n ]\n };\n if (window.renderMathInElement) {\n window.renderMathInElement(this.$el, this.latexSettings);\n } else if (window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement = await this.loadKatexExt();\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n this.$el.querySelectorAll(\"a\").forEach(a => this.setupRouter(a))\n window.md = this.$el\n },\n methods: {\n setupRouter(a) {\n let href = a.attributes['href'].value;\n if(href.startsWith(\"./\")) {\n // TODO: should we really do this?\n href = location.pathname + href.substr(1);\n a.attributes['href'].href = href;\n }\n let authLink = href.startsWith(\"/_solara/auth/\");\n if( (href.startsWith(\"./\") || href.startsWith(\"/\")) && !authLink) {\n a.onclick = e => {\n console.log(\"clicked\", href)\n if(href.startsWith(\"./\")) {\n solara.router.push(href);\n } else {\n solara.router.push(href);\n }\n e.preventDefault()\n }\n } else if(href.startsWith(\"#\")) {\n href = location.pathname + href;\n a.attributes['href'].value = href;\n } else {\n console.log(\"href\", href, \"is not a local link\")\n }\n },\n async loadKatex() {\n require.config({\n map: {\n '*': {\n 'katex': `${this.getCdn()}/[email protected]/dist/katex.min.js`,\n }\n }\n });\n const link = document.createElement('link');\n link.type = \"text/css\";\n link.rel = \"stylesheet\";\n link.href = `${this.getCdn()}/[email protected]/dist/katex.min.css`;\n document.head.appendChild(link);\n },\n async loadKatexExt() {\n this.loadKatex();\n return (await this.import([`${this.getCdn()}/[email protected]/dist/contrib/auto-render.min.js`]))[0]\n },\n async loadMermaid() {\n return (await this.import([`${this.getCdn()}/[email protected]/dist/mermaid.min.js`]))[0]\n },\n import(dependencies) {\n return this.loadRequire().then(\n () => {\n if (window.jupyterVue) {\n // in jupyterlab, we take Vue from ipyvue/jupyterVue\n define(\"vue\", [], () => window.jupyterVue.Vue);\n } else {\n define(\"vue\", ['jupyter-vue'], jupyterVue => jupyterVue.Vue);\n }\n return new Promise((resolve, reject) => {\n requirejs(dependencies, (...modules) => resolve(modules));\n })\n }\n );\n },\n loadRequire() {\n if (window.requirejs) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = `${this.getCdn()}/[email protected]/require.min.js`;\n script.onload = resolve;\n script.onerror = reject;\n document.head.appendChild(script);\n });\n },\n getJupyterBaseUrl() {\n // if base url is set, we use ./ for relative paths compared to the base url\n if (document.getElementsByTagName(\"base\").length) {\n return \"./\";\n }\n const labConfigData = document.getElementById('jupyter-config-data');\n if (labConfigData) {\n /* lab and Voila */\n return JSON.parse(labConfigData.textContent).baseUrl;\n }\n let base = document.body.dataset.baseUrl || document.baseURI;\n if (!base.endsWith('/')) {\n base += '/';\n }\n return base\n },\n getCdn() {\n return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);\n }\n },\n updated() {\n // if the html gets update, re-run mermaid\n this.mermaid.init();\n\n if(window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n }\n}\n</script>\n "
}
},
"23559be915eb4de6b9c5531f1a313af9": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"1ff99c3189094a3b8a7fe3f5b6254f68": {
"model_module": "jupyter-vuetify",
"model_name": "SheetModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "SheetModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_a9da24e0a444459396f7c09f68298a33",
"IPY_MODEL_d2cf9695bf524d6a8c29e1209edd870d",
"IPY_MODEL_103ef898135e4162a4c09d2923648008"
],
"class_": "d-flex ma-0",
"color": null,
"dark": null,
"elevation": 0,
"height": null,
"layout": null,
"light": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"slot": null,
"style_": "flex-direction: row; align-items: stretch; justify-content: start; column-gap: 12px;flex-direction:row;padding:5px;;",
"tag": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"a9da24e0a444459396f7c09f68298a33": {
"model_module": "jupyter-vuetify",
"model_name": "AvatarModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "AvatarModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_095b296f925b4870a8d81e90cdea2d3d"
],
"class_": null,
"color": "rgba(0,0,0,.06)",
"height": null,
"layout": null,
"left": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"right": null,
"size": null,
"slot": null,
"style_": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"d2cf9695bf524d6a8c29e1209edd870d": {
"model_module": "jupyter-vuetify",
"model_name": "SheetModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "SheetModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_e95f4194610a43c7bb628e5067d06c3b",
"IPY_MODEL_df6ae095beb74ba7a930dd66818a0823"
],
"class_": "d-flex ma-0 chat-message-aebcd732-58e2-49b4-8055-74b7254ad4cc left",
"color": null,
"dark": null,
"elevation": 0,
"height": null,
"layout": null,
"light": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"slot": null,
"style_": "flex-direction: column; align-items: stretch; row-gap: 0; border-radius: ; border-top-left-radius: 0; padding: .5em 1.5em;;",
"tag": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"103ef898135e4162a4c09d2923648008": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_4053f1f9894e4c79931b44117e4eb0bd",
"methods": null,
"template": "\n<template>\n <span style=\"display: none\">\n </span>\n</template>\n\n<script>\nmodule.exports = {\n destroyed() {\n document.getElementById(\"ipyvue-09565bd4-7ffe-439f-8355-d550a65269e8-fcf741b0bd7c6002c3829edc23db4286e66921e2e12bad64f26c92346a1e0ccb\").remove();\n },\n};\n</script>\n \n<style id=\"09565bd4-7ffe-439f-8355-d550a65269e8-fcf741b0bd7c6002c3829edc23db4286e66921e2e12bad64f26c92346a1e0ccb\">\n\n .chat-message-aebcd732-58e2-49b4-8055-74b7254ad4cc{\n --color: rgba(0,0,0,.06);\n max-width: 75%;\n position: relative;\n }\n .chat-message-aebcd732-58e2-49b4-8055-74b7254ad4cc.left{\n border-top-left-radius: 0;\n background-color:var(--color);\n \n }\n .chat-message-aebcd732-58e2-49b4-8055-74b7254ad4cc.right{\n border-top-right-radius: 0;\n background-color:var(--color);\n \n }\n \n \n</style>\n "
}
},
"095b296f925b4870a8d81e90cdea2d3d": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"attributes": {
"class": "headline"
},
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_cbbb48379d1a410ab75cf359c5ac4187",
"methods": null,
"tag": "span",
"template": "IPY_MODEL_cf6ad2d8c41a418282fab2d1c17b8cf8",
"unsafe_innerHTML": "A"
}
},
"e95f4194610a43c7bb628e5067d06c3b": {
"model_module": "jupyter-vuetify",
"model_name": "HtmlModel",
"model_module_version": "^1.10.0",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "HtmlModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"Assistant"
],
"class_": "message-name left",
"layout": null,
"slot": null,
"style_": "font-weight: bold;",
"tag": "span",
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": []
}
},
"d4a0871d967c407991c06246b1372ecb": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_ac61359461e7402da57bbeb925a9bf9b",
"methods": null,
"template": "\n<template>\n <div class=\"solara-markdown rendered_html jp-RenderedHTMLCommon\" style=\"\"></div>\n</template>\n\n<script>\nmodule.exports = {\n async mounted() {\n this.cdn = 'https://cdn.jsdelivr.net/npm/';\n await this.loadRequire();\n this.mermaid = await this.loadMermaid();\n this.mermaid.init();\n this.latexSettings = {\n delimiters: [\n {left: \"$$\", right: \"$$\", display: true},\n {left: \"$\", right: \"$\", display: false},\n {left: \"\\\\[\", right: \"\\\\]\", display: true},\n {left: \"\\\\(\", right: \"\\\\)\", display: false}\n ]\n };\n if (window.renderMathInElement) {\n window.renderMathInElement(this.$el, this.latexSettings);\n } else if (window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement = await this.loadKatexExt();\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n this.$el.querySelectorAll(\"a\").forEach(a => this.setupRouter(a))\n window.md = this.$el\n },\n methods: {\n setupRouter(a) {\n let href = a.attributes['href'].value;\n if(href.startsWith(\"./\")) {\n // TODO: should we really do this?\n href = location.pathname + href.substr(1);\n a.attributes['href'].href = href;\n }\n let authLink = href.startsWith(\"/_solara/auth/\");\n if( (href.startsWith(\"./\") || href.startsWith(\"/\")) && !authLink) {\n a.onclick = e => {\n console.log(\"clicked\", href)\n if(href.startsWith(\"./\")) {\n solara.router.push(href);\n } else {\n solara.router.push(href);\n }\n e.preventDefault()\n }\n } else if(href.startsWith(\"#\")) {\n href = location.pathname + href;\n a.attributes['href'].value = href;\n } else {\n console.log(\"href\", href, \"is not a local link\")\n }\n },\n async loadKatex() {\n require.config({\n map: {\n '*': {\n 'katex': `${this.getCdn()}/[email protected]/dist/katex.min.js`,\n }\n }\n });\n const link = document.createElement('link');\n link.type = \"text/css\";\n link.rel = \"stylesheet\";\n link.href = `${this.getCdn()}/[email protected]/dist/katex.min.css`;\n document.head.appendChild(link);\n },\n async loadKatexExt() {\n this.loadKatex();\n return (await this.import([`${this.getCdn()}/[email protected]/dist/contrib/auto-render.min.js`]))[0]\n },\n async loadMermaid() {\n return (await this.import([`${this.getCdn()}/[email protected]/dist/mermaid.min.js`]))[0]\n },\n import(dependencies) {\n return this.loadRequire().then(\n () => {\n if (window.jupyterVue) {\n // in jupyterlab, we take Vue from ipyvue/jupyterVue\n define(\"vue\", [], () => window.jupyterVue.Vue);\n } else {\n define(\"vue\", ['jupyter-vue'], jupyterVue => jupyterVue.Vue);\n }\n return new Promise((resolve, reject) => {\n requirejs(dependencies, (...modules) => resolve(modules));\n })\n }\n );\n },\n loadRequire() {\n if (window.requirejs) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = `${this.getCdn()}/[email protected]/require.min.js`;\n script.onload = resolve;\n script.onerror = reject;\n document.head.appendChild(script);\n });\n },\n getJupyterBaseUrl() {\n // if base url is set, we use ./ for relative paths compared to the base url\n if (document.getElementsByTagName(\"base\").length) {\n return \"./\";\n }\n const labConfigData = document.getElementById('jupyter-config-data');\n if (labConfigData) {\n /* lab and Voila */\n return JSON.parse(labConfigData.textContent).baseUrl;\n }\n let base = document.body.dataset.baseUrl || document.baseURI;\n if (!base.endsWith('/')) {\n base += '/';\n }\n return base\n },\n getCdn() {\n return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);\n }\n },\n updated() {\n // if the html gets update, re-run mermaid\n this.mermaid.init();\n\n if(window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n }\n}\n</script>\n "
}
},
"4053f1f9894e4c79931b44117e4eb0bd": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"cbbb48379d1a410ab75cf359c5ac4187": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"ac61359461e7402da57bbeb925a9bf9b": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"af553f2887444389b3845bf3ed261861": {
"model_module": "jupyter-vuetify",
"model_name": "SheetModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "SheetModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_c4f7f15f525d49f3829ded1ec91b41be",
"IPY_MODEL_c235ca26956744adbd1581bb66cb91c5",
"IPY_MODEL_79dbc206c82f4e8f9d5b9dc9b4647fa8"
],
"class_": "d-flex ma-0",
"color": null,
"dark": null,
"elevation": 0,
"height": null,
"layout": null,
"light": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"slot": null,
"style_": "flex-direction: row; align-items: stretch; justify-content: end; column-gap: 12px;flex-direction:row-reverse;padding:5px;;",
"tag": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"c4f7f15f525d49f3829ded1ec91b41be": {
"model_module": "jupyter-vuetify",
"model_name": "AvatarModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "AvatarModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_33a62ee93a9447f7b1ddb85568fca7b6"
],
"class_": null,
"color": "rgba(0,0,0,.06)",
"height": null,
"layout": null,
"left": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"right": null,
"size": null,
"slot": null,
"style_": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"c235ca26956744adbd1581bb66cb91c5": {
"model_module": "jupyter-vuetify",
"model_name": "SheetModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "SheetModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_e1d545216c46483e888595001758d140",
"IPY_MODEL_0db40f2d0027485f994057aea22d4c5f"
],
"class_": "d-flex ma-0 chat-message-f05c72a9-289d-4a95-92d0-4b242c994a3f right",
"color": null,
"dark": null,
"elevation": 0,
"height": null,
"layout": null,
"light": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"slot": null,
"style_": "flex-direction: column; align-items: stretch; row-gap: 0; border-radius: ; border-top-right-radius: 0; padding: .5em 1.5em;;",
"tag": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"79dbc206c82f4e8f9d5b9dc9b4647fa8": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_029e2d0d370e47e49382d042486843cf",
"methods": null,
"template": "\n<template>\n <span style=\"display: none\">\n </span>\n</template>\n\n<script>\nmodule.exports = {\n destroyed() {\n document.getElementById(\"ipyvue-2e1de1d2-29b9-4376-bfae-9e5486e413ef-f2dcdee27f1b41866e3c61fc0e42a1d72b34acd0fa0e278b8cf1dfe571825fe9\").remove();\n },\n};\n</script>\n \n<style id=\"2e1de1d2-29b9-4376-bfae-9e5486e413ef-f2dcdee27f1b41866e3c61fc0e42a1d72b34acd0fa0e278b8cf1dfe571825fe9\">\n\n .chat-message-f05c72a9-289d-4a95-92d0-4b242c994a3f{\n --color: rgba(0,0,0,.06);\n max-width: 75%;\n position: relative;\n }\n .chat-message-f05c72a9-289d-4a95-92d0-4b242c994a3f.left{\n border-top-left-radius: 0;\n background-color:var(--color);\n \n }\n .chat-message-f05c72a9-289d-4a95-92d0-4b242c994a3f.right{\n border-top-right-radius: 0;\n background-color:var(--color);\n \n }\n \n \n</style>\n "
}
},
"33a62ee93a9447f7b1ddb85568fca7b6": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"attributes": {
"class": "headline"
},
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_3d9c9799ee0a454e82bd7c71e130c73e",
"methods": null,
"tag": "span",
"template": "IPY_MODEL_cf6ad2d8c41a418282fab2d1c17b8cf8",
"unsafe_innerHTML": "U"
}
},
"e1d545216c46483e888595001758d140": {
"model_module": "jupyter-vuetify",
"model_name": "HtmlModel",
"model_module_version": "^1.10.0",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "HtmlModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"User"
],
"class_": "message-name right",
"layout": null,
"slot": null,
"style_": "font-weight: bold;",
"tag": "span",
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": []
}
},
"0db40f2d0027485f994057aea22d4c5f": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_0c25afeba48d4943a2a49f26927c0a3a",
"methods": null,
"template": "\n<template>\n <div class=\"solara-markdown rendered_html jp-RenderedHTMLCommon\" style=\"\"><p>Hi!</p></div>\n</template>\n\n<script>\nmodule.exports = {\n async mounted() {\n this.cdn = 'https://cdn.jsdelivr.net/npm/';\n await this.loadRequire();\n this.mermaid = await this.loadMermaid();\n this.mermaid.init();\n this.latexSettings = {\n delimiters: [\n {left: \"$$\", right: \"$$\", display: true},\n {left: \"$\", right: \"$\", display: false},\n {left: \"\\\\[\", right: \"\\\\]\", display: true},\n {left: \"\\\\(\", right: \"\\\\)\", display: false}\n ]\n };\n if (window.renderMathInElement) {\n window.renderMathInElement(this.$el, this.latexSettings);\n } else if (window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement = await this.loadKatexExt();\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n this.$el.querySelectorAll(\"a\").forEach(a => this.setupRouter(a))\n window.md = this.$el\n },\n methods: {\n setupRouter(a) {\n let href = a.attributes['href'].value;\n if(href.startsWith(\"./\")) {\n // TODO: should we really do this?\n href = location.pathname + href.substr(1);\n a.attributes['href'].href = href;\n }\n let authLink = href.startsWith(\"/_solara/auth/\");\n if( (href.startsWith(\"./\") || href.startsWith(\"/\")) && !authLink) {\n a.onclick = e => {\n console.log(\"clicked\", href)\n if(href.startsWith(\"./\")) {\n solara.router.push(href);\n } else {\n solara.router.push(href);\n }\n e.preventDefault()\n }\n } else if(href.startsWith(\"#\")) {\n href = location.pathname + href;\n a.attributes['href'].value = href;\n } else {\n console.log(\"href\", href, \"is not a local link\")\n }\n },\n async loadKatex() {\n require.config({\n map: {\n '*': {\n 'katex': `${this.getCdn()}/[email protected]/dist/katex.min.js`,\n }\n }\n });\n const link = document.createElement('link');\n link.type = \"text/css\";\n link.rel = \"stylesheet\";\n link.href = `${this.getCdn()}/[email protected]/dist/katex.min.css`;\n document.head.appendChild(link);\n },\n async loadKatexExt() {\n this.loadKatex();\n return (await this.import([`${this.getCdn()}/[email protected]/dist/contrib/auto-render.min.js`]))[0]\n },\n async loadMermaid() {\n return (await this.import([`${this.getCdn()}/[email protected]/dist/mermaid.min.js`]))[0]\n },\n import(dependencies) {\n return this.loadRequire().then(\n () => {\n if (window.jupyterVue) {\n // in jupyterlab, we take Vue from ipyvue/jupyterVue\n define(\"vue\", [], () => window.jupyterVue.Vue);\n } else {\n define(\"vue\", ['jupyter-vue'], jupyterVue => jupyterVue.Vue);\n }\n return new Promise((resolve, reject) => {\n requirejs(dependencies, (...modules) => resolve(modules));\n })\n }\n );\n },\n loadRequire() {\n if (window.requirejs) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = `${this.getCdn()}/[email protected]/require.min.js`;\n script.onload = resolve;\n script.onerror = reject;\n document.head.appendChild(script);\n });\n },\n getJupyterBaseUrl() {\n // if base url is set, we use ./ for relative paths compared to the base url\n if (document.getElementsByTagName(\"base\").length) {\n return \"./\";\n }\n const labConfigData = document.getElementById('jupyter-config-data');\n if (labConfigData) {\n /* lab and Voila */\n return JSON.parse(labConfigData.textContent).baseUrl;\n }\n let base = document.body.dataset.baseUrl || document.baseURI;\n if (!base.endsWith('/')) {\n base += '/';\n }\n return base\n },\n getCdn() {\n return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);\n }\n },\n updated() {\n // if the html gets update, re-run mermaid\n this.mermaid.init();\n\n if(window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n }\n}\n</script>\n "
}
},
"029e2d0d370e47e49382d042486843cf": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"3d9c9799ee0a454e82bd7c71e130c73e": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"0c25afeba48d4943a2a49f26927c0a3a": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"095c0e104fff4aa7810a4dd674ebf066": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_aed83099b1324b57ab6007414e48f787",
"methods": null,
"template": "\n<template>\n <div class=\"solara-markdown rendered_html jp-RenderedHTMLCommon\" style=\"\"><p>Hello</p></div>\n</template>\n\n<script>\nmodule.exports = {\n async mounted() {\n this.cdn = 'https://cdn.jsdelivr.net/npm/';\n await this.loadRequire();\n this.mermaid = await this.loadMermaid();\n this.mermaid.init();\n this.latexSettings = {\n delimiters: [\n {left: \"$$\", right: \"$$\", display: true},\n {left: \"$\", right: \"$\", display: false},\n {left: \"\\\\[\", right: \"\\\\]\", display: true},\n {left: \"\\\\(\", right: \"\\\\)\", display: false}\n ]\n };\n if (window.renderMathInElement) {\n window.renderMathInElement(this.$el, this.latexSettings);\n } else if (window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement = await this.loadKatexExt();\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n this.$el.querySelectorAll(\"a\").forEach(a => this.setupRouter(a))\n window.md = this.$el\n },\n methods: {\n setupRouter(a) {\n let href = a.attributes['href'].value;\n if(href.startsWith(\"./\")) {\n // TODO: should we really do this?\n href = location.pathname + href.substr(1);\n a.attributes['href'].href = href;\n }\n let authLink = href.startsWith(\"/_solara/auth/\");\n if( (href.startsWith(\"./\") || href.startsWith(\"/\")) && !authLink) {\n a.onclick = e => {\n console.log(\"clicked\", href)\n if(href.startsWith(\"./\")) {\n solara.router.push(href);\n } else {\n solara.router.push(href);\n }\n e.preventDefault()\n }\n } else if(href.startsWith(\"#\")) {\n href = location.pathname + href;\n a.attributes['href'].value = href;\n } else {\n console.log(\"href\", href, \"is not a local link\")\n }\n },\n async loadKatex() {\n require.config({\n map: {\n '*': {\n 'katex': `${this.getCdn()}/[email protected]/dist/katex.min.js`,\n }\n }\n });\n const link = document.createElement('link');\n link.type = \"text/css\";\n link.rel = \"stylesheet\";\n link.href = `${this.getCdn()}/[email protected]/dist/katex.min.css`;\n document.head.appendChild(link);\n },\n async loadKatexExt() {\n this.loadKatex();\n return (await this.import([`${this.getCdn()}/[email protected]/dist/contrib/auto-render.min.js`]))[0]\n },\n async loadMermaid() {\n return (await this.import([`${this.getCdn()}/[email protected]/dist/mermaid.min.js`]))[0]\n },\n import(dependencies) {\n return this.loadRequire().then(\n () => {\n if (window.jupyterVue) {\n // in jupyterlab, we take Vue from ipyvue/jupyterVue\n define(\"vue\", [], () => window.jupyterVue.Vue);\n } else {\n define(\"vue\", ['jupyter-vue'], jupyterVue => jupyterVue.Vue);\n }\n return new Promise((resolve, reject) => {\n requirejs(dependencies, (...modules) => resolve(modules));\n })\n }\n );\n },\n loadRequire() {\n if (window.requirejs) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = `${this.getCdn()}/[email protected]/require.min.js`;\n script.onload = resolve;\n script.onerror = reject;\n document.head.appendChild(script);\n });\n },\n getJupyterBaseUrl() {\n // if base url is set, we use ./ for relative paths compared to the base url\n if (document.getElementsByTagName(\"base\").length) {\n return \"./\";\n }\n const labConfigData = document.getElementById('jupyter-config-data');\n if (labConfigData) {\n /* lab and Voila */\n return JSON.parse(labConfigData.textContent).baseUrl;\n }\n let base = document.body.dataset.baseUrl || document.baseURI;\n if (!base.endsWith('/')) {\n base += '/';\n }\n return base\n },\n getCdn() {\n return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);\n }\n },\n updated() {\n // if the html gets update, re-run mermaid\n this.mermaid.init();\n\n if(window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n }\n}\n</script>\n "
}
},
"aed83099b1324b57ab6007414e48f787": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"f28def656c954c7b9c7f20b4cb0c0094": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_7685a5c421ef499ba34f6b8a50091652",
"methods": null,
"template": "\n<template>\n <div class=\"solara-markdown rendered_html jp-RenderedHTMLCommon\" style=\"\"><p>Hello!</p></div>\n</template>\n\n<script>\nmodule.exports = {\n async mounted() {\n this.cdn = 'https://cdn.jsdelivr.net/npm/';\n await this.loadRequire();\n this.mermaid = await this.loadMermaid();\n this.mermaid.init();\n this.latexSettings = {\n delimiters: [\n {left: \"$$\", right: \"$$\", display: true},\n {left: \"$\", right: \"$\", display: false},\n {left: \"\\\\[\", right: \"\\\\]\", display: true},\n {left: \"\\\\(\", right: \"\\\\)\", display: false}\n ]\n };\n if (window.renderMathInElement) {\n window.renderMathInElement(this.$el, this.latexSettings);\n } else if (window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement = await this.loadKatexExt();\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n this.$el.querySelectorAll(\"a\").forEach(a => this.setupRouter(a))\n window.md = this.$el\n },\n methods: {\n setupRouter(a) {\n let href = a.attributes['href'].value;\n if(href.startsWith(\"./\")) {\n // TODO: should we really do this?\n href = location.pathname + href.substr(1);\n a.attributes['href'].href = href;\n }\n let authLink = href.startsWith(\"/_solara/auth/\");\n if( (href.startsWith(\"./\") || href.startsWith(\"/\")) && !authLink) {\n a.onclick = e => {\n console.log(\"clicked\", href)\n if(href.startsWith(\"./\")) {\n solara.router.push(href);\n } else {\n solara.router.push(href);\n }\n e.preventDefault()\n }\n } else if(href.startsWith(\"#\")) {\n href = location.pathname + href;\n a.attributes['href'].value = href;\n } else {\n console.log(\"href\", href, \"is not a local link\")\n }\n },\n async loadKatex() {\n require.config({\n map: {\n '*': {\n 'katex': `${this.getCdn()}/[email protected]/dist/katex.min.js`,\n }\n }\n });\n const link = document.createElement('link');\n link.type = \"text/css\";\n link.rel = \"stylesheet\";\n link.href = `${this.getCdn()}/[email protected]/dist/katex.min.css`;\n document.head.appendChild(link);\n },\n async loadKatexExt() {\n this.loadKatex();\n return (await this.import([`${this.getCdn()}/[email protected]/dist/contrib/auto-render.min.js`]))[0]\n },\n async loadMermaid() {\n return (await this.import([`${this.getCdn()}/[email protected]/dist/mermaid.min.js`]))[0]\n },\n import(dependencies) {\n return this.loadRequire().then(\n () => {\n if (window.jupyterVue) {\n // in jupyterlab, we take Vue from ipyvue/jupyterVue\n define(\"vue\", [], () => window.jupyterVue.Vue);\n } else {\n define(\"vue\", ['jupyter-vue'], jupyterVue => jupyterVue.Vue);\n }\n return new Promise((resolve, reject) => {\n requirejs(dependencies, (...modules) => resolve(modules));\n })\n }\n );\n },\n loadRequire() {\n if (window.requirejs) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = `${this.getCdn()}/[email protected]/require.min.js`;\n script.onload = resolve;\n script.onerror = reject;\n document.head.appendChild(script);\n });\n },\n getJupyterBaseUrl() {\n // if base url is set, we use ./ for relative paths compared to the base url\n if (document.getElementsByTagName(\"base\").length) {\n return \"./\";\n }\n const labConfigData = document.getElementById('jupyter-config-data');\n if (labConfigData) {\n /* lab and Voila */\n return JSON.parse(labConfigData.textContent).baseUrl;\n }\n let base = document.body.dataset.baseUrl || document.baseURI;\n if (!base.endsWith('/')) {\n base += '/';\n }\n return base\n },\n getCdn() {\n return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);\n }\n },\n updated() {\n // if the html gets update, re-run mermaid\n this.mermaid.init();\n\n if(window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n }\n}\n</script>\n "
}
},
"7685a5c421ef499ba34f6b8a50091652": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"e90d311f5afa40b5b5f6ccd24bee8009": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_444dfccf84fd4ed096f5faa20420f271",
"methods": null,
"template": "\n<template>\n <div class=\"solara-markdown rendered_html jp-RenderedHTMLCommon\" style=\"\"><p>Hello! How</p></div>\n</template>\n\n<script>\nmodule.exports = {\n async mounted() {\n this.cdn = 'https://cdn.jsdelivr.net/npm/';\n await this.loadRequire();\n this.mermaid = await this.loadMermaid();\n this.mermaid.init();\n this.latexSettings = {\n delimiters: [\n {left: \"$$\", right: \"$$\", display: true},\n {left: \"$\", right: \"$\", display: false},\n {left: \"\\\\[\", right: \"\\\\]\", display: true},\n {left: \"\\\\(\", right: \"\\\\)\", display: false}\n ]\n };\n if (window.renderMathInElement) {\n window.renderMathInElement(this.$el, this.latexSettings);\n } else if (window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement = await this.loadKatexExt();\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n this.$el.querySelectorAll(\"a\").forEach(a => this.setupRouter(a))\n window.md = this.$el\n },\n methods: {\n setupRouter(a) {\n let href = a.attributes['href'].value;\n if(href.startsWith(\"./\")) {\n // TODO: should we really do this?\n href = location.pathname + href.substr(1);\n a.attributes['href'].href = href;\n }\n let authLink = href.startsWith(\"/_solara/auth/\");\n if( (href.startsWith(\"./\") || href.startsWith(\"/\")) && !authLink) {\n a.onclick = e => {\n console.log(\"clicked\", href)\n if(href.startsWith(\"./\")) {\n solara.router.push(href);\n } else {\n solara.router.push(href);\n }\n e.preventDefault()\n }\n } else if(href.startsWith(\"#\")) {\n href = location.pathname + href;\n a.attributes['href'].value = href;\n } else {\n console.log(\"href\", href, \"is not a local link\")\n }\n },\n async loadKatex() {\n require.config({\n map: {\n '*': {\n 'katex': `${this.getCdn()}/[email protected]/dist/katex.min.js`,\n }\n }\n });\n const link = document.createElement('link');\n link.type = \"text/css\";\n link.rel = \"stylesheet\";\n link.href = `${this.getCdn()}/[email protected]/dist/katex.min.css`;\n document.head.appendChild(link);\n },\n async loadKatexExt() {\n this.loadKatex();\n return (await this.import([`${this.getCdn()}/[email protected]/dist/contrib/auto-render.min.js`]))[0]\n },\n async loadMermaid() {\n return (await this.import([`${this.getCdn()}/[email protected]/dist/mermaid.min.js`]))[0]\n },\n import(dependencies) {\n return this.loadRequire().then(\n () => {\n if (window.jupyterVue) {\n // in jupyterlab, we take Vue from ipyvue/jupyterVue\n define(\"vue\", [], () => window.jupyterVue.Vue);\n } else {\n define(\"vue\", ['jupyter-vue'], jupyterVue => jupyterVue.Vue);\n }\n return new Promise((resolve, reject) => {\n requirejs(dependencies, (...modules) => resolve(modules));\n })\n }\n );\n },\n loadRequire() {\n if (window.requirejs) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = `${this.getCdn()}/[email protected]/require.min.js`;\n script.onload = resolve;\n script.onerror = reject;\n document.head.appendChild(script);\n });\n },\n getJupyterBaseUrl() {\n // if base url is set, we use ./ for relative paths compared to the base url\n if (document.getElementsByTagName(\"base\").length) {\n return \"./\";\n }\n const labConfigData = document.getElementById('jupyter-config-data');\n if (labConfigData) {\n /* lab and Voila */\n return JSON.parse(labConfigData.textContent).baseUrl;\n }\n let base = document.body.dataset.baseUrl || document.baseURI;\n if (!base.endsWith('/')) {\n base += '/';\n }\n return base\n },\n getCdn() {\n return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);\n }\n },\n updated() {\n // if the html gets update, re-run mermaid\n this.mermaid.init();\n\n if(window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n }\n}\n</script>\n "
}
},
"444dfccf84fd4ed096f5faa20420f271": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"77feed005b9b442d992cc0fb4dd798c4": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_de1efe0979ea4482a8822b91070c4af5",
"methods": null,
"template": "\n<template>\n <div class=\"solara-markdown rendered_html jp-RenderedHTMLCommon\" style=\"\"><p>Hello! How can</p></div>\n</template>\n\n<script>\nmodule.exports = {\n async mounted() {\n this.cdn = 'https://cdn.jsdelivr.net/npm/';\n await this.loadRequire();\n this.mermaid = await this.loadMermaid();\n this.mermaid.init();\n this.latexSettings = {\n delimiters: [\n {left: \"$$\", right: \"$$\", display: true},\n {left: \"$\", right: \"$\", display: false},\n {left: \"\\\\[\", right: \"\\\\]\", display: true},\n {left: \"\\\\(\", right: \"\\\\)\", display: false}\n ]\n };\n if (window.renderMathInElement) {\n window.renderMathInElement(this.$el, this.latexSettings);\n } else if (window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement = await this.loadKatexExt();\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n this.$el.querySelectorAll(\"a\").forEach(a => this.setupRouter(a))\n window.md = this.$el\n },\n methods: {\n setupRouter(a) {\n let href = a.attributes['href'].value;\n if(href.startsWith(\"./\")) {\n // TODO: should we really do this?\n href = location.pathname + href.substr(1);\n a.attributes['href'].href = href;\n }\n let authLink = href.startsWith(\"/_solara/auth/\");\n if( (href.startsWith(\"./\") || href.startsWith(\"/\")) && !authLink) {\n a.onclick = e => {\n console.log(\"clicked\", href)\n if(href.startsWith(\"./\")) {\n solara.router.push(href);\n } else {\n solara.router.push(href);\n }\n e.preventDefault()\n }\n } else if(href.startsWith(\"#\")) {\n href = location.pathname + href;\n a.attributes['href'].value = href;\n } else {\n console.log(\"href\", href, \"is not a local link\")\n }\n },\n async loadKatex() {\n require.config({\n map: {\n '*': {\n 'katex': `${this.getCdn()}/[email protected]/dist/katex.min.js`,\n }\n }\n });\n const link = document.createElement('link');\n link.type = \"text/css\";\n link.rel = \"stylesheet\";\n link.href = `${this.getCdn()}/[email protected]/dist/katex.min.css`;\n document.head.appendChild(link);\n },\n async loadKatexExt() {\n this.loadKatex();\n return (await this.import([`${this.getCdn()}/[email protected]/dist/contrib/auto-render.min.js`]))[0]\n },\n async loadMermaid() {\n return (await this.import([`${this.getCdn()}/[email protected]/dist/mermaid.min.js`]))[0]\n },\n import(dependencies) {\n return this.loadRequire().then(\n () => {\n if (window.jupyterVue) {\n // in jupyterlab, we take Vue from ipyvue/jupyterVue\n define(\"vue\", [], () => window.jupyterVue.Vue);\n } else {\n define(\"vue\", ['jupyter-vue'], jupyterVue => jupyterVue.Vue);\n }\n return new Promise((resolve, reject) => {\n requirejs(dependencies, (...modules) => resolve(modules));\n })\n }\n );\n },\n loadRequire() {\n if (window.requirejs) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = `${this.getCdn()}/[email protected]/require.min.js`;\n script.onload = resolve;\n script.onerror = reject;\n document.head.appendChild(script);\n });\n },\n getJupyterBaseUrl() {\n // if base url is set, we use ./ for relative paths compared to the base url\n if (document.getElementsByTagName(\"base\").length) {\n return \"./\";\n }\n const labConfigData = document.getElementById('jupyter-config-data');\n if (labConfigData) {\n /* lab and Voila */\n return JSON.parse(labConfigData.textContent).baseUrl;\n }\n let base = document.body.dataset.baseUrl || document.baseURI;\n if (!base.endsWith('/')) {\n base += '/';\n }\n return base\n },\n getCdn() {\n return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);\n }\n },\n updated() {\n // if the html gets update, re-run mermaid\n this.mermaid.init();\n\n if(window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n }\n}\n</script>\n "
}
},
"de1efe0979ea4482a8822b91070c4af5": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"d6a6fee53cae498fb6b8f488b7e6fd14": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_3c9ce8a875604c87b8e301401e6dd8ac",
"methods": null,
"template": "\n<template>\n <div class=\"solara-markdown rendered_html jp-RenderedHTMLCommon\" style=\"\"><p>Hello! How can I</p></div>\n</template>\n\n<script>\nmodule.exports = {\n async mounted() {\n this.cdn = 'https://cdn.jsdelivr.net/npm/';\n await this.loadRequire();\n this.mermaid = await this.loadMermaid();\n this.mermaid.init();\n this.latexSettings = {\n delimiters: [\n {left: \"$$\", right: \"$$\", display: true},\n {left: \"$\", right: \"$\", display: false},\n {left: \"\\\\[\", right: \"\\\\]\", display: true},\n {left: \"\\\\(\", right: \"\\\\)\", display: false}\n ]\n };\n if (window.renderMathInElement) {\n window.renderMathInElement(this.$el, this.latexSettings);\n } else if (window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement = await this.loadKatexExt();\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n this.$el.querySelectorAll(\"a\").forEach(a => this.setupRouter(a))\n window.md = this.$el\n },\n methods: {\n setupRouter(a) {\n let href = a.attributes['href'].value;\n if(href.startsWith(\"./\")) {\n // TODO: should we really do this?\n href = location.pathname + href.substr(1);\n a.attributes['href'].href = href;\n }\n let authLink = href.startsWith(\"/_solara/auth/\");\n if( (href.startsWith(\"./\") || href.startsWith(\"/\")) && !authLink) {\n a.onclick = e => {\n console.log(\"clicked\", href)\n if(href.startsWith(\"./\")) {\n solara.router.push(href);\n } else {\n solara.router.push(href);\n }\n e.preventDefault()\n }\n } else if(href.startsWith(\"#\")) {\n href = location.pathname + href;\n a.attributes['href'].value = href;\n } else {\n console.log(\"href\", href, \"is not a local link\")\n }\n },\n async loadKatex() {\n require.config({\n map: {\n '*': {\n 'katex': `${this.getCdn()}/[email protected]/dist/katex.min.js`,\n }\n }\n });\n const link = document.createElement('link');\n link.type = \"text/css\";\n link.rel = \"stylesheet\";\n link.href = `${this.getCdn()}/[email protected]/dist/katex.min.css`;\n document.head.appendChild(link);\n },\n async loadKatexExt() {\n this.loadKatex();\n return (await this.import([`${this.getCdn()}/[email protected]/dist/contrib/auto-render.min.js`]))[0]\n },\n async loadMermaid() {\n return (await this.import([`${this.getCdn()}/[email protected]/dist/mermaid.min.js`]))[0]\n },\n import(dependencies) {\n return this.loadRequire().then(\n () => {\n if (window.jupyterVue) {\n // in jupyterlab, we take Vue from ipyvue/jupyterVue\n define(\"vue\", [], () => window.jupyterVue.Vue);\n } else {\n define(\"vue\", ['jupyter-vue'], jupyterVue => jupyterVue.Vue);\n }\n return new Promise((resolve, reject) => {\n requirejs(dependencies, (...modules) => resolve(modules));\n })\n }\n );\n },\n loadRequire() {\n if (window.requirejs) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = `${this.getCdn()}/[email protected]/require.min.js`;\n script.onload = resolve;\n script.onerror = reject;\n document.head.appendChild(script);\n });\n },\n getJupyterBaseUrl() {\n // if base url is set, we use ./ for relative paths compared to the base url\n if (document.getElementsByTagName(\"base\").length) {\n return \"./\";\n }\n const labConfigData = document.getElementById('jupyter-config-data');\n if (labConfigData) {\n /* lab and Voila */\n return JSON.parse(labConfigData.textContent).baseUrl;\n }\n let base = document.body.dataset.baseUrl || document.baseURI;\n if (!base.endsWith('/')) {\n base += '/';\n }\n return base\n },\n getCdn() {\n return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);\n }\n },\n updated() {\n // if the html gets update, re-run mermaid\n this.mermaid.init();\n\n if(window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n }\n}\n</script>\n "
}
},
"3c9ce8a875604c87b8e301401e6dd8ac": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"49ffa4b98eae43e08c6f5c0520850762": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_fe158d7e27ca40a69bf05c9fd30da9b3",
"methods": null,
"template": "\n<template>\n <div class=\"solara-markdown rendered_html jp-RenderedHTMLCommon\" style=\"\"><p>Hello! How can I help</p></div>\n</template>\n\n<script>\nmodule.exports = {\n async mounted() {\n this.cdn = 'https://cdn.jsdelivr.net/npm/';\n await this.loadRequire();\n this.mermaid = await this.loadMermaid();\n this.mermaid.init();\n this.latexSettings = {\n delimiters: [\n {left: \"$$\", right: \"$$\", display: true},\n {left: \"$\", right: \"$\", display: false},\n {left: \"\\\\[\", right: \"\\\\]\", display: true},\n {left: \"\\\\(\", right: \"\\\\)\", display: false}\n ]\n };\n if (window.renderMathInElement) {\n window.renderMathInElement(this.$el, this.latexSettings);\n } else if (window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement = await this.loadKatexExt();\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n this.$el.querySelectorAll(\"a\").forEach(a => this.setupRouter(a))\n window.md = this.$el\n },\n methods: {\n setupRouter(a) {\n let href = a.attributes['href'].value;\n if(href.startsWith(\"./\")) {\n // TODO: should we really do this?\n href = location.pathname + href.substr(1);\n a.attributes['href'].href = href;\n }\n let authLink = href.startsWith(\"/_solara/auth/\");\n if( (href.startsWith(\"./\") || href.startsWith(\"/\")) && !authLink) {\n a.onclick = e => {\n console.log(\"clicked\", href)\n if(href.startsWith(\"./\")) {\n solara.router.push(href);\n } else {\n solara.router.push(href);\n }\n e.preventDefault()\n }\n } else if(href.startsWith(\"#\")) {\n href = location.pathname + href;\n a.attributes['href'].value = href;\n } else {\n console.log(\"href\", href, \"is not a local link\")\n }\n },\n async loadKatex() {\n require.config({\n map: {\n '*': {\n 'katex': `${this.getCdn()}/[email protected]/dist/katex.min.js`,\n }\n }\n });\n const link = document.createElement('link');\n link.type = \"text/css\";\n link.rel = \"stylesheet\";\n link.href = `${this.getCdn()}/[email protected]/dist/katex.min.css`;\n document.head.appendChild(link);\n },\n async loadKatexExt() {\n this.loadKatex();\n return (await this.import([`${this.getCdn()}/[email protected]/dist/contrib/auto-render.min.js`]))[0]\n },\n async loadMermaid() {\n return (await this.import([`${this.getCdn()}/[email protected]/dist/mermaid.min.js`]))[0]\n },\n import(dependencies) {\n return this.loadRequire().then(\n () => {\n if (window.jupyterVue) {\n // in jupyterlab, we take Vue from ipyvue/jupyterVue\n define(\"vue\", [], () => window.jupyterVue.Vue);\n } else {\n define(\"vue\", ['jupyter-vue'], jupyterVue => jupyterVue.Vue);\n }\n return new Promise((resolve, reject) => {\n requirejs(dependencies, (...modules) => resolve(modules));\n })\n }\n );\n },\n loadRequire() {\n if (window.requirejs) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = `${this.getCdn()}/[email protected]/require.min.js`;\n script.onload = resolve;\n script.onerror = reject;\n document.head.appendChild(script);\n });\n },\n getJupyterBaseUrl() {\n // if base url is set, we use ./ for relative paths compared to the base url\n if (document.getElementsByTagName(\"base\").length) {\n return \"./\";\n }\n const labConfigData = document.getElementById('jupyter-config-data');\n if (labConfigData) {\n /* lab and Voila */\n return JSON.parse(labConfigData.textContent).baseUrl;\n }\n let base = document.body.dataset.baseUrl || document.baseURI;\n if (!base.endsWith('/')) {\n base += '/';\n }\n return base\n },\n getCdn() {\n return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);\n }\n },\n updated() {\n // if the html gets update, re-run mermaid\n this.mermaid.init();\n\n if(window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n }\n}\n</script>\n "
}
},
"fe158d7e27ca40a69bf05c9fd30da9b3": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"74042a5d5fb446a18e1902359b7954c5": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_4ffb086cf7484f30b65d4f0223de238c",
"methods": null,
"template": "\n<template>\n <div class=\"solara-markdown rendered_html jp-RenderedHTMLCommon\" style=\"\"><p>Hello! How can I help you</p></div>\n</template>\n\n<script>\nmodule.exports = {\n async mounted() {\n this.cdn = 'https://cdn.jsdelivr.net/npm/';\n await this.loadRequire();\n this.mermaid = await this.loadMermaid();\n this.mermaid.init();\n this.latexSettings = {\n delimiters: [\n {left: \"$$\", right: \"$$\", display: true},\n {left: \"$\", right: \"$\", display: false},\n {left: \"\\\\[\", right: \"\\\\]\", display: true},\n {left: \"\\\\(\", right: \"\\\\)\", display: false}\n ]\n };\n if (window.renderMathInElement) {\n window.renderMathInElement(this.$el, this.latexSettings);\n } else if (window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement = await this.loadKatexExt();\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n this.$el.querySelectorAll(\"a\").forEach(a => this.setupRouter(a))\n window.md = this.$el\n },\n methods: {\n setupRouter(a) {\n let href = a.attributes['href'].value;\n if(href.startsWith(\"./\")) {\n // TODO: should we really do this?\n href = location.pathname + href.substr(1);\n a.attributes['href'].href = href;\n }\n let authLink = href.startsWith(\"/_solara/auth/\");\n if( (href.startsWith(\"./\") || href.startsWith(\"/\")) && !authLink) {\n a.onclick = e => {\n console.log(\"clicked\", href)\n if(href.startsWith(\"./\")) {\n solara.router.push(href);\n } else {\n solara.router.push(href);\n }\n e.preventDefault()\n }\n } else if(href.startsWith(\"#\")) {\n href = location.pathname + href;\n a.attributes['href'].value = href;\n } else {\n console.log(\"href\", href, \"is not a local link\")\n }\n },\n async loadKatex() {\n require.config({\n map: {\n '*': {\n 'katex': `${this.getCdn()}/[email protected]/dist/katex.min.js`,\n }\n }\n });\n const link = document.createElement('link');\n link.type = \"text/css\";\n link.rel = \"stylesheet\";\n link.href = `${this.getCdn()}/[email protected]/dist/katex.min.css`;\n document.head.appendChild(link);\n },\n async loadKatexExt() {\n this.loadKatex();\n return (await this.import([`${this.getCdn()}/[email protected]/dist/contrib/auto-render.min.js`]))[0]\n },\n async loadMermaid() {\n return (await this.import([`${this.getCdn()}/[email protected]/dist/mermaid.min.js`]))[0]\n },\n import(dependencies) {\n return this.loadRequire().then(\n () => {\n if (window.jupyterVue) {\n // in jupyterlab, we take Vue from ipyvue/jupyterVue\n define(\"vue\", [], () => window.jupyterVue.Vue);\n } else {\n define(\"vue\", ['jupyter-vue'], jupyterVue => jupyterVue.Vue);\n }\n return new Promise((resolve, reject) => {\n requirejs(dependencies, (...modules) => resolve(modules));\n })\n }\n );\n },\n loadRequire() {\n if (window.requirejs) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = `${this.getCdn()}/[email protected]/require.min.js`;\n script.onload = resolve;\n script.onerror = reject;\n document.head.appendChild(script);\n });\n },\n getJupyterBaseUrl() {\n // if base url is set, we use ./ for relative paths compared to the base url\n if (document.getElementsByTagName(\"base\").length) {\n return \"./\";\n }\n const labConfigData = document.getElementById('jupyter-config-data');\n if (labConfigData) {\n /* lab and Voila */\n return JSON.parse(labConfigData.textContent).baseUrl;\n }\n let base = document.body.dataset.baseUrl || document.baseURI;\n if (!base.endsWith('/')) {\n base += '/';\n }\n return base\n },\n getCdn() {\n return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);\n }\n },\n updated() {\n // if the html gets update, re-run mermaid\n this.mermaid.init();\n\n if(window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n }\n}\n</script>\n "
}
},
"4ffb086cf7484f30b65d4f0223de238c": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"2d221abf10084eb3a5303651fd0fba02": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_b9adbe4e67ee4500acc5f7fb27f36af4",
"methods": null,
"template": "\n<template>\n <div class=\"solara-markdown rendered_html jp-RenderedHTMLCommon\" style=\"\"><p>Hello! How can I help you today</p></div>\n</template>\n\n<script>\nmodule.exports = {\n async mounted() {\n this.cdn = 'https://cdn.jsdelivr.net/npm/';\n await this.loadRequire();\n this.mermaid = await this.loadMermaid();\n this.mermaid.init();\n this.latexSettings = {\n delimiters: [\n {left: \"$$\", right: \"$$\", display: true},\n {left: \"$\", right: \"$\", display: false},\n {left: \"\\\\[\", right: \"\\\\]\", display: true},\n {left: \"\\\\(\", right: \"\\\\)\", display: false}\n ]\n };\n if (window.renderMathInElement) {\n window.renderMathInElement(this.$el, this.latexSettings);\n } else if (window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement = await this.loadKatexExt();\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n this.$el.querySelectorAll(\"a\").forEach(a => this.setupRouter(a))\n window.md = this.$el\n },\n methods: {\n setupRouter(a) {\n let href = a.attributes['href'].value;\n if(href.startsWith(\"./\")) {\n // TODO: should we really do this?\n href = location.pathname + href.substr(1);\n a.attributes['href'].href = href;\n }\n let authLink = href.startsWith(\"/_solara/auth/\");\n if( (href.startsWith(\"./\") || href.startsWith(\"/\")) && !authLink) {\n a.onclick = e => {\n console.log(\"clicked\", href)\n if(href.startsWith(\"./\")) {\n solara.router.push(href);\n } else {\n solara.router.push(href);\n }\n e.preventDefault()\n }\n } else if(href.startsWith(\"#\")) {\n href = location.pathname + href;\n a.attributes['href'].value = href;\n } else {\n console.log(\"href\", href, \"is not a local link\")\n }\n },\n async loadKatex() {\n require.config({\n map: {\n '*': {\n 'katex': `${this.getCdn()}/[email protected]/dist/katex.min.js`,\n }\n }\n });\n const link = document.createElement('link');\n link.type = \"text/css\";\n link.rel = \"stylesheet\";\n link.href = `${this.getCdn()}/[email protected]/dist/katex.min.css`;\n document.head.appendChild(link);\n },\n async loadKatexExt() {\n this.loadKatex();\n return (await this.import([`${this.getCdn()}/[email protected]/dist/contrib/auto-render.min.js`]))[0]\n },\n async loadMermaid() {\n return (await this.import([`${this.getCdn()}/[email protected]/dist/mermaid.min.js`]))[0]\n },\n import(dependencies) {\n return this.loadRequire().then(\n () => {\n if (window.jupyterVue) {\n // in jupyterlab, we take Vue from ipyvue/jupyterVue\n define(\"vue\", [], () => window.jupyterVue.Vue);\n } else {\n define(\"vue\", ['jupyter-vue'], jupyterVue => jupyterVue.Vue);\n }\n return new Promise((resolve, reject) => {\n requirejs(dependencies, (...modules) => resolve(modules));\n })\n }\n );\n },\n loadRequire() {\n if (window.requirejs) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = `${this.getCdn()}/[email protected]/require.min.js`;\n script.onload = resolve;\n script.onerror = reject;\n document.head.appendChild(script);\n });\n },\n getJupyterBaseUrl() {\n // if base url is set, we use ./ for relative paths compared to the base url\n if (document.getElementsByTagName(\"base\").length) {\n return \"./\";\n }\n const labConfigData = document.getElementById('jupyter-config-data');\n if (labConfigData) {\n /* lab and Voila */\n return JSON.parse(labConfigData.textContent).baseUrl;\n }\n let base = document.body.dataset.baseUrl || document.baseURI;\n if (!base.endsWith('/')) {\n base += '/';\n }\n return base\n },\n getCdn() {\n return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);\n }\n },\n updated() {\n // if the html gets update, re-run mermaid\n this.mermaid.init();\n\n if(window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n }\n}\n</script>\n "
}
},
"b9adbe4e67ee4500acc5f7fb27f36af4": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"8607d4e9cbae44908b902a7f0a4cbd94": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_cd0f65de069f4e26afa571fdcba84a98",
"methods": null,
"template": "\n<template>\n <div class=\"solara-markdown rendered_html jp-RenderedHTMLCommon\" style=\"\"><p>Hello! How can I help you today?</p></div>\n</template>\n\n<script>\nmodule.exports = {\n async mounted() {\n this.cdn = 'https://cdn.jsdelivr.net/npm/';\n await this.loadRequire();\n this.mermaid = await this.loadMermaid();\n this.mermaid.init();\n this.latexSettings = {\n delimiters: [\n {left: \"$$\", right: \"$$\", display: true},\n {left: \"$\", right: \"$\", display: false},\n {left: \"\\\\[\", right: \"\\\\]\", display: true},\n {left: \"\\\\(\", right: \"\\\\)\", display: false}\n ]\n };\n if (window.renderMathInElement) {\n window.renderMathInElement(this.$el, this.latexSettings);\n } else if (window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement = await this.loadKatexExt();\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n this.$el.querySelectorAll(\"a\").forEach(a => this.setupRouter(a))\n window.md = this.$el\n },\n methods: {\n setupRouter(a) {\n let href = a.attributes['href'].value;\n if(href.startsWith(\"./\")) {\n // TODO: should we really do this?\n href = location.pathname + href.substr(1);\n a.attributes['href'].href = href;\n }\n let authLink = href.startsWith(\"/_solara/auth/\");\n if( (href.startsWith(\"./\") || href.startsWith(\"/\")) && !authLink) {\n a.onclick = e => {\n console.log(\"clicked\", href)\n if(href.startsWith(\"./\")) {\n solara.router.push(href);\n } else {\n solara.router.push(href);\n }\n e.preventDefault()\n }\n } else if(href.startsWith(\"#\")) {\n href = location.pathname + href;\n a.attributes['href'].value = href;\n } else {\n console.log(\"href\", href, \"is not a local link\")\n }\n },\n async loadKatex() {\n require.config({\n map: {\n '*': {\n 'katex': `${this.getCdn()}/[email protected]/dist/katex.min.js`,\n }\n }\n });\n const link = document.createElement('link');\n link.type = \"text/css\";\n link.rel = \"stylesheet\";\n link.href = `${this.getCdn()}/[email protected]/dist/katex.min.css`;\n document.head.appendChild(link);\n },\n async loadKatexExt() {\n this.loadKatex();\n return (await this.import([`${this.getCdn()}/[email protected]/dist/contrib/auto-render.min.js`]))[0]\n },\n async loadMermaid() {\n return (await this.import([`${this.getCdn()}/[email protected]/dist/mermaid.min.js`]))[0]\n },\n import(dependencies) {\n return this.loadRequire().then(\n () => {\n if (window.jupyterVue) {\n // in jupyterlab, we take Vue from ipyvue/jupyterVue\n define(\"vue\", [], () => window.jupyterVue.Vue);\n } else {\n define(\"vue\", ['jupyter-vue'], jupyterVue => jupyterVue.Vue);\n }\n return new Promise((resolve, reject) => {\n requirejs(dependencies, (...modules) => resolve(modules));\n })\n }\n );\n },\n loadRequire() {\n if (window.requirejs) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = `${this.getCdn()}/[email protected]/require.min.js`;\n script.onload = resolve;\n script.onerror = reject;\n document.head.appendChild(script);\n });\n },\n getJupyterBaseUrl() {\n // if base url is set, we use ./ for relative paths compared to the base url\n if (document.getElementsByTagName(\"base\").length) {\n return \"./\";\n }\n const labConfigData = document.getElementById('jupyter-config-data');\n if (labConfigData) {\n /* lab and Voila */\n return JSON.parse(labConfigData.textContent).baseUrl;\n }\n let base = document.body.dataset.baseUrl || document.baseURI;\n if (!base.endsWith('/')) {\n base += '/';\n }\n return base\n },\n getCdn() {\n return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);\n }\n },\n updated() {\n // if the html gets update, re-run mermaid\n this.mermaid.init();\n\n if(window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n }\n}\n</script>\n "
}
},
"cd0f65de069f4e26afa571fdcba84a98": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"7be44d12b54f4b5c87c3bb988b598097": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_5aba79eec49c4708b52931fdcce508ae",
"methods": null,
"template": "\n<template>\n <div class=\"solara-markdown rendered_html jp-RenderedHTMLCommon\" style=\"\"><p>Hello! How can I help you today? </p></div>\n</template>\n\n<script>\nmodule.exports = {\n async mounted() {\n this.cdn = 'https://cdn.jsdelivr.net/npm/';\n await this.loadRequire();\n this.mermaid = await this.loadMermaid();\n this.mermaid.init();\n this.latexSettings = {\n delimiters: [\n {left: \"$$\", right: \"$$\", display: true},\n {left: \"$\", right: \"$\", display: false},\n {left: \"\\\\[\", right: \"\\\\]\", display: true},\n {left: \"\\\\(\", right: \"\\\\)\", display: false}\n ]\n };\n if (window.renderMathInElement) {\n window.renderMathInElement(this.$el, this.latexSettings);\n } else if (window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement = await this.loadKatexExt();\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n this.$el.querySelectorAll(\"a\").forEach(a => this.setupRouter(a))\n window.md = this.$el\n },\n methods: {\n setupRouter(a) {\n let href = a.attributes['href'].value;\n if(href.startsWith(\"./\")) {\n // TODO: should we really do this?\n href = location.pathname + href.substr(1);\n a.attributes['href'].href = href;\n }\n let authLink = href.startsWith(\"/_solara/auth/\");\n if( (href.startsWith(\"./\") || href.startsWith(\"/\")) && !authLink) {\n a.onclick = e => {\n console.log(\"clicked\", href)\n if(href.startsWith(\"./\")) {\n solara.router.push(href);\n } else {\n solara.router.push(href);\n }\n e.preventDefault()\n }\n } else if(href.startsWith(\"#\")) {\n href = location.pathname + href;\n a.attributes['href'].value = href;\n } else {\n console.log(\"href\", href, \"is not a local link\")\n }\n },\n async loadKatex() {\n require.config({\n map: {\n '*': {\n 'katex': `${this.getCdn()}/[email protected]/dist/katex.min.js`,\n }\n }\n });\n const link = document.createElement('link');\n link.type = \"text/css\";\n link.rel = \"stylesheet\";\n link.href = `${this.getCdn()}/[email protected]/dist/katex.min.css`;\n document.head.appendChild(link);\n },\n async loadKatexExt() {\n this.loadKatex();\n return (await this.import([`${this.getCdn()}/[email protected]/dist/contrib/auto-render.min.js`]))[0]\n },\n async loadMermaid() {\n return (await this.import([`${this.getCdn()}/[email protected]/dist/mermaid.min.js`]))[0]\n },\n import(dependencies) {\n return this.loadRequire().then(\n () => {\n if (window.jupyterVue) {\n // in jupyterlab, we take Vue from ipyvue/jupyterVue\n define(\"vue\", [], () => window.jupyterVue.Vue);\n } else {\n define(\"vue\", ['jupyter-vue'], jupyterVue => jupyterVue.Vue);\n }\n return new Promise((resolve, reject) => {\n requirejs(dependencies, (...modules) => resolve(modules));\n })\n }\n );\n },\n loadRequire() {\n if (window.requirejs) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = `${this.getCdn()}/[email protected]/require.min.js`;\n script.onload = resolve;\n script.onerror = reject;\n document.head.appendChild(script);\n });\n },\n getJupyterBaseUrl() {\n // if base url is set, we use ./ for relative paths compared to the base url\n if (document.getElementsByTagName(\"base\").length) {\n return \"./\";\n }\n const labConfigData = document.getElementById('jupyter-config-data');\n if (labConfigData) {\n /* lab and Voila */\n return JSON.parse(labConfigData.textContent).baseUrl;\n }\n let base = document.body.dataset.baseUrl || document.baseURI;\n if (!base.endsWith('/')) {\n base += '/';\n }\n return base\n },\n getCdn() {\n return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);\n }\n },\n updated() {\n // if the html gets update, re-run mermaid\n this.mermaid.init();\n\n if(window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n }\n}\n</script>\n "
}
},
"5aba79eec49c4708b52931fdcce508ae": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"df6ae095beb74ba7a930dd66818a0823": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_0f4a803e85b54e1887b3f674a99910b7",
"methods": null,
"template": "\n<template>\n <div class=\"solara-markdown rendered_html jp-RenderedHTMLCommon\" style=\"\"><p>Hello! How can I help you today? 😊</p></div>\n</template>\n\n<script>\nmodule.exports = {\n async mounted() {\n this.cdn = 'https://cdn.jsdelivr.net/npm/';\n await this.loadRequire();\n this.mermaid = await this.loadMermaid();\n this.mermaid.init();\n this.latexSettings = {\n delimiters: [\n {left: \"$$\", right: \"$$\", display: true},\n {left: \"$\", right: \"$\", display: false},\n {left: \"\\\\[\", right: \"\\\\]\", display: true},\n {left: \"\\\\(\", right: \"\\\\)\", display: false}\n ]\n };\n if (window.renderMathInElement) {\n window.renderMathInElement(this.$el, this.latexSettings);\n } else if (window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement = await this.loadKatexExt();\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n this.$el.querySelectorAll(\"a\").forEach(a => this.setupRouter(a))\n window.md = this.$el\n },\n methods: {\n setupRouter(a) {\n let href = a.attributes['href'].value;\n if(href.startsWith(\"./\")) {\n // TODO: should we really do this?\n href = location.pathname + href.substr(1);\n a.attributes['href'].href = href;\n }\n let authLink = href.startsWith(\"/_solara/auth/\");\n if( (href.startsWith(\"./\") || href.startsWith(\"/\")) && !authLink) {\n a.onclick = e => {\n console.log(\"clicked\", href)\n if(href.startsWith(\"./\")) {\n solara.router.push(href);\n } else {\n solara.router.push(href);\n }\n e.preventDefault()\n }\n } else if(href.startsWith(\"#\")) {\n href = location.pathname + href;\n a.attributes['href'].value = href;\n } else {\n console.log(\"href\", href, \"is not a local link\")\n }\n },\n async loadKatex() {\n require.config({\n map: {\n '*': {\n 'katex': `${this.getCdn()}/[email protected]/dist/katex.min.js`,\n }\n }\n });\n const link = document.createElement('link');\n link.type = \"text/css\";\n link.rel = \"stylesheet\";\n link.href = `${this.getCdn()}/[email protected]/dist/katex.min.css`;\n document.head.appendChild(link);\n },\n async loadKatexExt() {\n this.loadKatex();\n return (await this.import([`${this.getCdn()}/[email protected]/dist/contrib/auto-render.min.js`]))[0]\n },\n async loadMermaid() {\n return (await this.import([`${this.getCdn()}/[email protected]/dist/mermaid.min.js`]))[0]\n },\n import(dependencies) {\n return this.loadRequire().then(\n () => {\n if (window.jupyterVue) {\n // in jupyterlab, we take Vue from ipyvue/jupyterVue\n define(\"vue\", [], () => window.jupyterVue.Vue);\n } else {\n define(\"vue\", ['jupyter-vue'], jupyterVue => jupyterVue.Vue);\n }\n return new Promise((resolve, reject) => {\n requirejs(dependencies, (...modules) => resolve(modules));\n })\n }\n );\n },\n loadRequire() {\n if (window.requirejs) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = `${this.getCdn()}/[email protected]/require.min.js`;\n script.onload = resolve;\n script.onerror = reject;\n document.head.appendChild(script);\n });\n },\n getJupyterBaseUrl() {\n // if base url is set, we use ./ for relative paths compared to the base url\n if (document.getElementsByTagName(\"base\").length) {\n return \"./\";\n }\n const labConfigData = document.getElementById('jupyter-config-data');\n if (labConfigData) {\n /* lab and Voila */\n return JSON.parse(labConfigData.textContent).baseUrl;\n }\n let base = document.body.dataset.baseUrl || document.baseURI;\n if (!base.endsWith('/')) {\n base += '/';\n }\n return base\n },\n getCdn() {\n return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);\n }\n },\n updated() {\n // if the html gets update, re-run mermaid\n this.mermaid.init();\n\n if(window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n }\n}\n</script>\n "
}
},
"0f4a803e85b54e1887b3f674a99910b7": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"dc5f4ed28345445994775293bab0d18e": {
"model_module": "jupyter-vuetify",
"model_name": "SheetModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "SheetModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_e8201bca6842477d8331807f05f56d2c",
"IPY_MODEL_aa77d298e432462bb4c9ec74a42257e9",
"IPY_MODEL_08520e6a12d741b7ab35bb3a3c4c148d"
],
"class_": "d-flex ma-0",
"color": null,
"dark": null,
"elevation": 0,
"height": null,
"layout": null,
"light": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"slot": null,
"style_": "flex-direction: row; align-items: stretch; justify-content: start; column-gap: 12px;flex-direction:row;padding:5px;;",
"tag": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"e8201bca6842477d8331807f05f56d2c": {
"model_module": "jupyter-vuetify",
"model_name": "AvatarModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "AvatarModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_7ad29b73ce46429da60e2323f10597c3"
],
"class_": null,
"color": "rgba(0,0,0,.06)",
"height": null,
"layout": null,
"left": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"right": null,
"size": null,
"slot": null,
"style_": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"aa77d298e432462bb4c9ec74a42257e9": {
"model_module": "jupyter-vuetify",
"model_name": "SheetModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "SheetModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_99fdf60dbe544921a622a92e1ffbd0ea",
"IPY_MODEL_a9ec0955b6d94fc08ac73366b3d5b9a1"
],
"class_": "d-flex ma-0 chat-message-b4a8f759-191c-476f-b2b9-b31eab96b649 left",
"color": null,
"dark": null,
"elevation": 0,
"height": null,
"layout": null,
"light": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"slot": null,
"style_": "flex-direction: column; align-items: stretch; row-gap: 0; border-radius: ; border-top-left-radius: 0; padding: .5em 1.5em;;",
"tag": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"08520e6a12d741b7ab35bb3a3c4c148d": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_53a032127fc64bd38e715653bd682f39",
"methods": null,
"template": "\n<template>\n <span style=\"display: none\">\n </span>\n</template>\n\n<script>\nmodule.exports = {\n destroyed() {\n document.getElementById(\"ipyvue-d2bf3cde-ec8f-4985-97f3-d8d52a995b9e-f2cd4a51450b9ae9bbcd285a21ba524489d32e05473539d70deaae9fad57d76f\").remove();\n },\n};\n</script>\n \n<style id=\"d2bf3cde-ec8f-4985-97f3-d8d52a995b9e-f2cd4a51450b9ae9bbcd285a21ba524489d32e05473539d70deaae9fad57d76f\">\n\n .chat-message-b4a8f759-191c-476f-b2b9-b31eab96b649{\n --color: rgba(0,0,0,.06);\n max-width: 75%;\n position: relative;\n }\n .chat-message-b4a8f759-191c-476f-b2b9-b31eab96b649.left{\n border-top-left-radius: 0;\n background-color:var(--color);\n \n }\n .chat-message-b4a8f759-191c-476f-b2b9-b31eab96b649.right{\n border-top-right-radius: 0;\n background-color:var(--color);\n \n }\n \n \n</style>\n "
}
},
"7ad29b73ce46429da60e2323f10597c3": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"attributes": {
"class": "headline"
},
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_d6d92fa3b223420fb0c8dfaf49b34e94",
"methods": null,
"tag": "span",
"template": "IPY_MODEL_cf6ad2d8c41a418282fab2d1c17b8cf8",
"unsafe_innerHTML": "A"
}
},
"99fdf60dbe544921a622a92e1ffbd0ea": {
"model_module": "jupyter-vuetify",
"model_name": "HtmlModel",
"model_module_version": "^1.10.0",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "HtmlModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"Assistant"
],
"class_": "message-name left",
"layout": null,
"slot": null,
"style_": "font-weight: bold;",
"tag": "span",
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": []
}
},
"9a851d01085e43d5b15e47b912ffcada": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_677bcb7959ee4c0a98511ee4a87cd50a",
"methods": null,
"template": "\n<template>\n <div class=\"solara-markdown rendered_html jp-RenderedHTMLCommon\" style=\"\"></div>\n</template>\n\n<script>\nmodule.exports = {\n async mounted() {\n this.cdn = 'https://cdn.jsdelivr.net/npm/';\n await this.loadRequire();\n this.mermaid = await this.loadMermaid();\n this.mermaid.init();\n this.latexSettings = {\n delimiters: [\n {left: \"$$\", right: \"$$\", display: true},\n {left: \"$\", right: \"$\", display: false},\n {left: \"\\\\[\", right: \"\\\\]\", display: true},\n {left: \"\\\\(\", right: \"\\\\)\", display: false}\n ]\n };\n if (window.renderMathInElement) {\n window.renderMathInElement(this.$el, this.latexSettings);\n } else if (window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement = await this.loadKatexExt();\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n this.$el.querySelectorAll(\"a\").forEach(a => this.setupRouter(a))\n window.md = this.$el\n },\n methods: {\n setupRouter(a) {\n let href = a.attributes['href'].value;\n if(href.startsWith(\"./\")) {\n // TODO: should we really do this?\n href = location.pathname + href.substr(1);\n a.attributes['href'].href = href;\n }\n let authLink = href.startsWith(\"/_solara/auth/\");\n if( (href.startsWith(\"./\") || href.startsWith(\"/\")) && !authLink) {\n a.onclick = e => {\n console.log(\"clicked\", href)\n if(href.startsWith(\"./\")) {\n solara.router.push(href);\n } else {\n solara.router.push(href);\n }\n e.preventDefault()\n }\n } else if(href.startsWith(\"#\")) {\n href = location.pathname + href;\n a.attributes['href'].value = href;\n } else {\n console.log(\"href\", href, \"is not a local link\")\n }\n },\n async loadKatex() {\n require.config({\n map: {\n '*': {\n 'katex': `${this.getCdn()}/[email protected]/dist/katex.min.js`,\n }\n }\n });\n const link = document.createElement('link');\n link.type = \"text/css\";\n link.rel = \"stylesheet\";\n link.href = `${this.getCdn()}/[email protected]/dist/katex.min.css`;\n document.head.appendChild(link);\n },\n async loadKatexExt() {\n this.loadKatex();\n return (await this.import([`${this.getCdn()}/[email protected]/dist/contrib/auto-render.min.js`]))[0]\n },\n async loadMermaid() {\n return (await this.import([`${this.getCdn()}/[email protected]/dist/mermaid.min.js`]))[0]\n },\n import(dependencies) {\n return this.loadRequire().then(\n () => {\n if (window.jupyterVue) {\n // in jupyterlab, we take Vue from ipyvue/jupyterVue\n define(\"vue\", [], () => window.jupyterVue.Vue);\n } else {\n define(\"vue\", ['jupyter-vue'], jupyterVue => jupyterVue.Vue);\n }\n return new Promise((resolve, reject) => {\n requirejs(dependencies, (...modules) => resolve(modules));\n })\n }\n );\n },\n loadRequire() {\n if (window.requirejs) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = `${this.getCdn()}/[email protected]/require.min.js`;\n script.onload = resolve;\n script.onerror = reject;\n document.head.appendChild(script);\n });\n },\n getJupyterBaseUrl() {\n // if base url is set, we use ./ for relative paths compared to the base url\n if (document.getElementsByTagName(\"base\").length) {\n return \"./\";\n }\n const labConfigData = document.getElementById('jupyter-config-data');\n if (labConfigData) {\n /* lab and Voila */\n return JSON.parse(labConfigData.textContent).baseUrl;\n }\n let base = document.body.dataset.baseUrl || document.baseURI;\n if (!base.endsWith('/')) {\n base += '/';\n }\n return base\n },\n getCdn() {\n return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);\n }\n },\n updated() {\n // if the html gets update, re-run mermaid\n this.mermaid.init();\n\n if(window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n }\n}\n</script>\n "
}
},
"53a032127fc64bd38e715653bd682f39": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"d6d92fa3b223420fb0c8dfaf49b34e94": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"677bcb7959ee4c0a98511ee4a87cd50a": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"889825ecabe749b68a22827524e7cba6": {
"model_module": "jupyter-vuetify",
"model_name": "SheetModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "SheetModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_2948eccf56fb476db7c1eed2ea57be5d",
"IPY_MODEL_eb00be48118f404b818bb9533fa81534",
"IPY_MODEL_31d7ea1a5a514572876a0c827f06d021"
],
"class_": "d-flex ma-0",
"color": null,
"dark": null,
"elevation": 0,
"height": null,
"layout": null,
"light": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"slot": null,
"style_": "flex-direction: row; align-items: stretch; justify-content: end; column-gap: 12px;flex-direction:row-reverse;padding:5px;;",
"tag": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"2948eccf56fb476db7c1eed2ea57be5d": {
"model_module": "jupyter-vuetify",
"model_name": "AvatarModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "AvatarModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_3d9a51cd9de64262b66cab791072fd53"
],
"class_": null,
"color": "rgba(0,0,0,.06)",
"height": null,
"layout": null,
"left": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"right": null,
"size": null,
"slot": null,
"style_": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"eb00be48118f404b818bb9533fa81534": {
"model_module": "jupyter-vuetify",
"model_name": "SheetModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "SheetModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_520160bb0c9847c7b790ba0d8bc848cd",
"IPY_MODEL_d44c1514b01146b0ac381e8f493c6eca"
],
"class_": "d-flex ma-0 chat-message-c3e35e40-7938-454f-a2ee-8a4c20c0c5b4 right",
"color": null,
"dark": null,
"elevation": 0,
"height": null,
"layout": null,
"light": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"slot": null,
"style_": "flex-direction: column; align-items: stretch; row-gap: 0; border-radius: ; border-top-right-radius: 0; padding: .5em 1.5em;;",
"tag": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"31d7ea1a5a514572876a0c827f06d021": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_509792605c5e4546b1d777960166be47",
"methods": null,
"template": "\n<template>\n <span style=\"display: none\">\n </span>\n</template>\n\n<script>\nmodule.exports = {\n destroyed() {\n document.getElementById(\"ipyvue-c9f31a49-730e-4562-8cbc-11017234f54c-0ef645b5cc80eea5c7551aba73ccaba548a96f5176bc9d34157811ce29e4ee29\").remove();\n },\n};\n</script>\n \n<style id=\"c9f31a49-730e-4562-8cbc-11017234f54c-0ef645b5cc80eea5c7551aba73ccaba548a96f5176bc9d34157811ce29e4ee29\">\n\n .chat-message-c3e35e40-7938-454f-a2ee-8a4c20c0c5b4{\n --color: rgba(0,0,0,.06);\n max-width: 75%;\n position: relative;\n }\n .chat-message-c3e35e40-7938-454f-a2ee-8a4c20c0c5b4.left{\n border-top-left-radius: 0;\n background-color:var(--color);\n \n }\n .chat-message-c3e35e40-7938-454f-a2ee-8a4c20c0c5b4.right{\n border-top-right-radius: 0;\n background-color:var(--color);\n \n }\n \n \n</style>\n "
}
},
"3d9a51cd9de64262b66cab791072fd53": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"attributes": {
"class": "headline"
},
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_9953744416dc4b79a64608964a9cf429",
"methods": null,
"tag": "span",
"template": "IPY_MODEL_cf6ad2d8c41a418282fab2d1c17b8cf8",
"unsafe_innerHTML": "U"
}
},
"520160bb0c9847c7b790ba0d8bc848cd": {
"model_module": "jupyter-vuetify",
"model_name": "HtmlModel",
"model_module_version": "^1.10.0",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "HtmlModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"User"
],
"class_": "message-name right",
"layout": null,
"slot": null,
"style_": "font-weight: bold;",
"tag": "span",
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": []
}
},
"d44c1514b01146b0ac381e8f493c6eca": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_92f8b0ef39c74c09b2cefd6da19bcee2",
"methods": null,
"template": "\n<template>\n <div class=\"solara-markdown rendered_html jp-RenderedHTMLCommon\" style=\"\"><p>Hi!</p></div>\n</template>\n\n<script>\nmodule.exports = {\n async mounted() {\n this.cdn = 'https://cdn.jsdelivr.net/npm/';\n await this.loadRequire();\n this.mermaid = await this.loadMermaid();\n this.mermaid.init();\n this.latexSettings = {\n delimiters: [\n {left: \"$$\", right: \"$$\", display: true},\n {left: \"$\", right: \"$\", display: false},\n {left: \"\\\\[\", right: \"\\\\]\", display: true},\n {left: \"\\\\(\", right: \"\\\\)\", display: false}\n ]\n };\n if (window.renderMathInElement) {\n window.renderMathInElement(this.$el, this.latexSettings);\n } else if (window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement = await this.loadKatexExt();\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n this.$el.querySelectorAll(\"a\").forEach(a => this.setupRouter(a))\n window.md = this.$el\n },\n methods: {\n setupRouter(a) {\n let href = a.attributes['href'].value;\n if(href.startsWith(\"./\")) {\n // TODO: should we really do this?\n href = location.pathname + href.substr(1);\n a.attributes['href'].href = href;\n }\n let authLink = href.startsWith(\"/_solara/auth/\");\n if( (href.startsWith(\"./\") || href.startsWith(\"/\")) && !authLink) {\n a.onclick = e => {\n console.log(\"clicked\", href)\n if(href.startsWith(\"./\")) {\n solara.router.push(href);\n } else {\n solara.router.push(href);\n }\n e.preventDefault()\n }\n } else if(href.startsWith(\"#\")) {\n href = location.pathname + href;\n a.attributes['href'].value = href;\n } else {\n console.log(\"href\", href, \"is not a local link\")\n }\n },\n async loadKatex() {\n require.config({\n map: {\n '*': {\n 'katex': `${this.getCdn()}/[email protected]/dist/katex.min.js`,\n }\n }\n });\n const link = document.createElement('link');\n link.type = \"text/css\";\n link.rel = \"stylesheet\";\n link.href = `${this.getCdn()}/[email protected]/dist/katex.min.css`;\n document.head.appendChild(link);\n },\n async loadKatexExt() {\n this.loadKatex();\n return (await this.import([`${this.getCdn()}/[email protected]/dist/contrib/auto-render.min.js`]))[0]\n },\n async loadMermaid() {\n return (await this.import([`${this.getCdn()}/[email protected]/dist/mermaid.min.js`]))[0]\n },\n import(dependencies) {\n return this.loadRequire().then(\n () => {\n if (window.jupyterVue) {\n // in jupyterlab, we take Vue from ipyvue/jupyterVue\n define(\"vue\", [], () => window.jupyterVue.Vue);\n } else {\n define(\"vue\", ['jupyter-vue'], jupyterVue => jupyterVue.Vue);\n }\n return new Promise((resolve, reject) => {\n requirejs(dependencies, (...modules) => resolve(modules));\n })\n }\n );\n },\n loadRequire() {\n if (window.requirejs) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = `${this.getCdn()}/[email protected]/require.min.js`;\n script.onload = resolve;\n script.onerror = reject;\n document.head.appendChild(script);\n });\n },\n getJupyterBaseUrl() {\n // if base url is set, we use ./ for relative paths compared to the base url\n if (document.getElementsByTagName(\"base\").length) {\n return \"./\";\n }\n const labConfigData = document.getElementById('jupyter-config-data');\n if (labConfigData) {\n /* lab and Voila */\n return JSON.parse(labConfigData.textContent).baseUrl;\n }\n let base = document.body.dataset.baseUrl || document.baseURI;\n if (!base.endsWith('/')) {\n base += '/';\n }\n return base\n },\n getCdn() {\n return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);\n }\n },\n updated() {\n // if the html gets update, re-run mermaid\n this.mermaid.init();\n\n if(window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n }\n}\n</script>\n "
}
},
"509792605c5e4546b1d777960166be47": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"9953744416dc4b79a64608964a9cf429": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"92f8b0ef39c74c09b2cefd6da19bcee2": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"75d7d298180d42a1bfb4154a02dfa167": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_c74e786f6a5f42b388d0e35caef2f0cf",
"methods": null,
"template": "\n<template>\n <div class=\"solara-markdown rendered_html jp-RenderedHTMLCommon\" style=\"\"><p>Hello! How can</p></div>\n</template>\n\n<script>\nmodule.exports = {\n async mounted() {\n this.cdn = 'https://cdn.jsdelivr.net/npm/';\n await this.loadRequire();\n this.mermaid = await this.loadMermaid();\n this.mermaid.init();\n this.latexSettings = {\n delimiters: [\n {left: \"$$\", right: \"$$\", display: true},\n {left: \"$\", right: \"$\", display: false},\n {left: \"\\\\[\", right: \"\\\\]\", display: true},\n {left: \"\\\\(\", right: \"\\\\)\", display: false}\n ]\n };\n if (window.renderMathInElement) {\n window.renderMathInElement(this.$el, this.latexSettings);\n } else if (window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement = await this.loadKatexExt();\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n this.$el.querySelectorAll(\"a\").forEach(a => this.setupRouter(a))\n window.md = this.$el\n },\n methods: {\n setupRouter(a) {\n let href = a.attributes['href'].value;\n if(href.startsWith(\"./\")) {\n // TODO: should we really do this?\n href = location.pathname + href.substr(1);\n a.attributes['href'].href = href;\n }\n let authLink = href.startsWith(\"/_solara/auth/\");\n if( (href.startsWith(\"./\") || href.startsWith(\"/\")) && !authLink) {\n a.onclick = e => {\n console.log(\"clicked\", href)\n if(href.startsWith(\"./\")) {\n solara.router.push(href);\n } else {\n solara.router.push(href);\n }\n e.preventDefault()\n }\n } else if(href.startsWith(\"#\")) {\n href = location.pathname + href;\n a.attributes['href'].value = href;\n } else {\n console.log(\"href\", href, \"is not a local link\")\n }\n },\n async loadKatex() {\n require.config({\n map: {\n '*': {\n 'katex': `${this.getCdn()}/[email protected]/dist/katex.min.js`,\n }\n }\n });\n const link = document.createElement('link');\n link.type = \"text/css\";\n link.rel = \"stylesheet\";\n link.href = `${this.getCdn()}/[email protected]/dist/katex.min.css`;\n document.head.appendChild(link);\n },\n async loadKatexExt() {\n this.loadKatex();\n return (await this.import([`${this.getCdn()}/[email protected]/dist/contrib/auto-render.min.js`]))[0]\n },\n async loadMermaid() {\n return (await this.import([`${this.getCdn()}/[email protected]/dist/mermaid.min.js`]))[0]\n },\n import(dependencies) {\n return this.loadRequire().then(\n () => {\n if (window.jupyterVue) {\n // in jupyterlab, we take Vue from ipyvue/jupyterVue\n define(\"vue\", [], () => window.jupyterVue.Vue);\n } else {\n define(\"vue\", ['jupyter-vue'], jupyterVue => jupyterVue.Vue);\n }\n return new Promise((resolve, reject) => {\n requirejs(dependencies, (...modules) => resolve(modules));\n })\n }\n );\n },\n loadRequire() {\n if (window.requirejs) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = `${this.getCdn()}/[email protected]/require.min.js`;\n script.onload = resolve;\n script.onerror = reject;\n document.head.appendChild(script);\n });\n },\n getJupyterBaseUrl() {\n // if base url is set, we use ./ for relative paths compared to the base url\n if (document.getElementsByTagName(\"base\").length) {\n return \"./\";\n }\n const labConfigData = document.getElementById('jupyter-config-data');\n if (labConfigData) {\n /* lab and Voila */\n return JSON.parse(labConfigData.textContent).baseUrl;\n }\n let base = document.body.dataset.baseUrl || document.baseURI;\n if (!base.endsWith('/')) {\n base += '/';\n }\n return base\n },\n getCdn() {\n return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);\n }\n },\n updated() {\n // if the html gets update, re-run mermaid\n this.mermaid.init();\n\n if(window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n }\n}\n</script>\n "
}
},
"c74e786f6a5f42b388d0e35caef2f0cf": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"d32e56b4df4f4c79b679ca4a14266199": {
"model_module": "jupyter-vuetify",
"model_name": "SheetModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "SheetModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_cad5e960753b4ade841d62aef5de0303",
"IPY_MODEL_9f1d1d53da1342b5ae6f81ac3a384b9f",
"IPY_MODEL_57fb52d6caf84affb33f155b45dbb309"
],
"class_": "d-flex ma-0",
"color": null,
"dark": null,
"elevation": 0,
"height": null,
"layout": null,
"light": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"slot": null,
"style_": "flex-direction: row; align-items: stretch; justify-content: start; column-gap: 12px;flex-direction:row;padding:5px;;",
"tag": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"c844d000d4fb403c8936ac55a94e4816": {
"model_module": "jupyter-vuetify",
"model_name": "SheetModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "SheetModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_27366af528fd4a52a0ffab096fbd176e",
"IPY_MODEL_57b550e16efd455b8a58d4627d0e826f",
"IPY_MODEL_2c667b986cf34cc0ac07b1b964b22b16"
],
"class_": "d-flex ma-0",
"color": null,
"dark": null,
"elevation": 0,
"height": null,
"layout": null,
"light": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"slot": null,
"style_": "flex-direction: row; align-items: stretch; justify-content: end; column-gap: 12px;flex-direction:row-reverse;padding:5px;;",
"tag": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"cad5e960753b4ade841d62aef5de0303": {
"model_module": "jupyter-vuetify",
"model_name": "AvatarModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "AvatarModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_63026a67ddfa4825afb59b3470e394e8"
],
"class_": null,
"color": "rgba(0,0,0,.06)",
"height": null,
"layout": null,
"left": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"right": null,
"size": null,
"slot": null,
"style_": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"9f1d1d53da1342b5ae6f81ac3a384b9f": {
"model_module": "jupyter-vuetify",
"model_name": "SheetModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "SheetModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_e904a0c8c5b04576baabf80a113cbaf7",
"IPY_MODEL_04fda9af0a1c48668af34ae56e63999e"
],
"class_": "d-flex ma-0 chat-message-ac71a3fa-80df-436e-be7c-3623f187a1e8 left",
"color": null,
"dark": null,
"elevation": 0,
"height": null,
"layout": null,
"light": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"slot": null,
"style_": "flex-direction: column; align-items: stretch; row-gap: 0; border-radius: ; border-top-left-radius: 0; padding: .5em 1.5em;;",
"tag": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"57fb52d6caf84affb33f155b45dbb309": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_886f8c2dfb1540eeb25d8e20bde4a2fa",
"methods": null,
"template": "\n<template>\n <span style=\"display: none\">\n </span>\n</template>\n\n<script>\nmodule.exports = {\n destroyed() {\n document.getElementById(\"ipyvue-6f67f685-2df6-4266-ae0e-3c534c4fdeac-43cf0dd51959c0c9d71f4214bb52b0ff54e3929bc79ba52d07b4fd91a4064f49\").remove();\n },\n};\n</script>\n \n<style id=\"6f67f685-2df6-4266-ae0e-3c534c4fdeac-43cf0dd51959c0c9d71f4214bb52b0ff54e3929bc79ba52d07b4fd91a4064f49\">\n\n .chat-message-ac71a3fa-80df-436e-be7c-3623f187a1e8{\n --color: rgba(0,0,0,.06);\n max-width: 75%;\n position: relative;\n }\n .chat-message-ac71a3fa-80df-436e-be7c-3623f187a1e8.left{\n border-top-left-radius: 0;\n background-color:var(--color);\n \n }\n .chat-message-ac71a3fa-80df-436e-be7c-3623f187a1e8.right{\n border-top-right-radius: 0;\n background-color:var(--color);\n \n }\n \n \n</style>\n "
}
},
"27366af528fd4a52a0ffab096fbd176e": {
"model_module": "jupyter-vuetify",
"model_name": "AvatarModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "AvatarModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_5946b960f3e344808bf31ad55d861bfd"
],
"class_": null,
"color": "rgba(0,0,0,.06)",
"height": null,
"layout": null,
"left": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"right": null,
"size": null,
"slot": null,
"style_": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"57b550e16efd455b8a58d4627d0e826f": {
"model_module": "jupyter-vuetify",
"model_name": "SheetModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "SheetModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_783a59b91da342839a610f5a363d1c5c",
"IPY_MODEL_886f3db327a44d17a77f82e873643e6e"
],
"class_": "d-flex ma-0 chat-message-a86dce61-b5e5-4dc6-a507-220ad8ca9376 right",
"color": null,
"dark": null,
"elevation": 0,
"height": null,
"layout": null,
"light": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"slot": null,
"style_": "flex-direction: column; align-items: stretch; row-gap: 0; border-radius: ; border-top-right-radius: 0; padding: .5em 1.5em;;",
"tag": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"2c667b986cf34cc0ac07b1b964b22b16": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_c5d93460c4b640629c65cc714ea879ac",
"methods": null,
"template": "\n<template>\n <span style=\"display: none\">\n </span>\n</template>\n\n<script>\nmodule.exports = {\n destroyed() {\n document.getElementById(\"ipyvue-ae27cb21-302a-414d-9a54-45227146f9d7-0aa37485e3ef2b23746d481960dcf284e390feda23622dd007523ed6c4e89c12\").remove();\n },\n};\n</script>\n \n<style id=\"ae27cb21-302a-414d-9a54-45227146f9d7-0aa37485e3ef2b23746d481960dcf284e390feda23622dd007523ed6c4e89c12\">\n\n .chat-message-a86dce61-b5e5-4dc6-a507-220ad8ca9376{\n --color: rgba(0,0,0,.06);\n max-width: 75%;\n position: relative;\n }\n .chat-message-a86dce61-b5e5-4dc6-a507-220ad8ca9376.left{\n border-top-left-radius: 0;\n background-color:var(--color);\n \n }\n .chat-message-a86dce61-b5e5-4dc6-a507-220ad8ca9376.right{\n border-top-right-radius: 0;\n background-color:var(--color);\n \n }\n \n \n</style>\n "
}
},
"63026a67ddfa4825afb59b3470e394e8": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"attributes": {
"class": "headline"
},
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_38cf67b442174906a996d0ac4a58f802",
"methods": null,
"tag": "span",
"template": "IPY_MODEL_cf6ad2d8c41a418282fab2d1c17b8cf8",
"unsafe_innerHTML": "A"
}
},
"e904a0c8c5b04576baabf80a113cbaf7": {
"model_module": "jupyter-vuetify",
"model_name": "HtmlModel",
"model_module_version": "^1.10.0",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "HtmlModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"Assistant"
],
"class_": "message-name left",
"layout": null,
"slot": null,
"style_": "font-weight: bold;",
"tag": "span",
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": []
}
},
"16dd566d4b094514bb59141c9c31b777": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_6e9212836f5d4a1fbb0b68e9fcde4a54",
"methods": null,
"template": "\n<template>\n <div class=\"solara-markdown rendered_html jp-RenderedHTMLCommon\" style=\"\"><p>Hello! How</p></div>\n</template>\n\n<script>\nmodule.exports = {\n async mounted() {\n this.cdn = 'https://cdn.jsdelivr.net/npm/';\n await this.loadRequire();\n this.mermaid = await this.loadMermaid();\n this.mermaid.init();\n this.latexSettings = {\n delimiters: [\n {left: \"$$\", right: \"$$\", display: true},\n {left: \"$\", right: \"$\", display: false},\n {left: \"\\\\[\", right: \"\\\\]\", display: true},\n {left: \"\\\\(\", right: \"\\\\)\", display: false}\n ]\n };\n if (window.renderMathInElement) {\n window.renderMathInElement(this.$el, this.latexSettings);\n } else if (window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement = await this.loadKatexExt();\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n this.$el.querySelectorAll(\"a\").forEach(a => this.setupRouter(a))\n window.md = this.$el\n },\n methods: {\n setupRouter(a) {\n let href = a.attributes['href'].value;\n if(href.startsWith(\"./\")) {\n // TODO: should we really do this?\n href = location.pathname + href.substr(1);\n a.attributes['href'].href = href;\n }\n let authLink = href.startsWith(\"/_solara/auth/\");\n if( (href.startsWith(\"./\") || href.startsWith(\"/\")) && !authLink) {\n a.onclick = e => {\n console.log(\"clicked\", href)\n if(href.startsWith(\"./\")) {\n solara.router.push(href);\n } else {\n solara.router.push(href);\n }\n e.preventDefault()\n }\n } else if(href.startsWith(\"#\")) {\n href = location.pathname + href;\n a.attributes['href'].value = href;\n } else {\n console.log(\"href\", href, \"is not a local link\")\n }\n },\n async loadKatex() {\n require.config({\n map: {\n '*': {\n 'katex': `${this.getCdn()}/[email protected]/dist/katex.min.js`,\n }\n }\n });\n const link = document.createElement('link');\n link.type = \"text/css\";\n link.rel = \"stylesheet\";\n link.href = `${this.getCdn()}/[email protected]/dist/katex.min.css`;\n document.head.appendChild(link);\n },\n async loadKatexExt() {\n this.loadKatex();\n return (await this.import([`${this.getCdn()}/[email protected]/dist/contrib/auto-render.min.js`]))[0]\n },\n async loadMermaid() {\n return (await this.import([`${this.getCdn()}/[email protected]/dist/mermaid.min.js`]))[0]\n },\n import(dependencies) {\n return this.loadRequire().then(\n () => {\n if (window.jupyterVue) {\n // in jupyterlab, we take Vue from ipyvue/jupyterVue\n define(\"vue\", [], () => window.jupyterVue.Vue);\n } else {\n define(\"vue\", ['jupyter-vue'], jupyterVue => jupyterVue.Vue);\n }\n return new Promise((resolve, reject) => {\n requirejs(dependencies, (...modules) => resolve(modules));\n })\n }\n );\n },\n loadRequire() {\n if (window.requirejs) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = `${this.getCdn()}/[email protected]/require.min.js`;\n script.onload = resolve;\n script.onerror = reject;\n document.head.appendChild(script);\n });\n },\n getJupyterBaseUrl() {\n // if base url is set, we use ./ for relative paths compared to the base url\n if (document.getElementsByTagName(\"base\").length) {\n return \"./\";\n }\n const labConfigData = document.getElementById('jupyter-config-data');\n if (labConfigData) {\n /* lab and Voila */\n return JSON.parse(labConfigData.textContent).baseUrl;\n }\n let base = document.body.dataset.baseUrl || document.baseURI;\n if (!base.endsWith('/')) {\n base += '/';\n }\n return base\n },\n getCdn() {\n return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);\n }\n },\n updated() {\n // if the html gets update, re-run mermaid\n this.mermaid.init();\n\n if(window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n }\n}\n</script>\n "
}
},
"886f8c2dfb1540eeb25d8e20bde4a2fa": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"5946b960f3e344808bf31ad55d861bfd": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"attributes": {
"class": "headline"
},
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_0c4ef41728a3460da07ad8a960e06e4a",
"methods": null,
"tag": "span",
"template": "IPY_MODEL_cf6ad2d8c41a418282fab2d1c17b8cf8",
"unsafe_innerHTML": "U"
}
},
"783a59b91da342839a610f5a363d1c5c": {
"model_module": "jupyter-vuetify",
"model_name": "HtmlModel",
"model_module_version": "^1.10.0",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "HtmlModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"User"
],
"class_": "message-name right",
"layout": null,
"slot": null,
"style_": "font-weight: bold;",
"tag": "span",
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": []
}
},
"886f3db327a44d17a77f82e873643e6e": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_5464fbf3ea7e4d9d8fbbcd5d80424d77",
"methods": null,
"template": "\n<template>\n <div class=\"solara-markdown rendered_html jp-RenderedHTMLCommon\" style=\"\"><p>Hi</p></div>\n</template>\n\n<script>\nmodule.exports = {\n async mounted() {\n this.cdn = 'https://cdn.jsdelivr.net/npm/';\n await this.loadRequire();\n this.mermaid = await this.loadMermaid();\n this.mermaid.init();\n this.latexSettings = {\n delimiters: [\n {left: \"$$\", right: \"$$\", display: true},\n {left: \"$\", right: \"$\", display: false},\n {left: \"\\\\[\", right: \"\\\\]\", display: true},\n {left: \"\\\\(\", right: \"\\\\)\", display: false}\n ]\n };\n if (window.renderMathInElement) {\n window.renderMathInElement(this.$el, this.latexSettings);\n } else if (window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement = await this.loadKatexExt();\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n this.$el.querySelectorAll(\"a\").forEach(a => this.setupRouter(a))\n window.md = this.$el\n },\n methods: {\n setupRouter(a) {\n let href = a.attributes['href'].value;\n if(href.startsWith(\"./\")) {\n // TODO: should we really do this?\n href = location.pathname + href.substr(1);\n a.attributes['href'].href = href;\n }\n let authLink = href.startsWith(\"/_solara/auth/\");\n if( (href.startsWith(\"./\") || href.startsWith(\"/\")) && !authLink) {\n a.onclick = e => {\n console.log(\"clicked\", href)\n if(href.startsWith(\"./\")) {\n solara.router.push(href);\n } else {\n solara.router.push(href);\n }\n e.preventDefault()\n }\n } else if(href.startsWith(\"#\")) {\n href = location.pathname + href;\n a.attributes['href'].value = href;\n } else {\n console.log(\"href\", href, \"is not a local link\")\n }\n },\n async loadKatex() {\n require.config({\n map: {\n '*': {\n 'katex': `${this.getCdn()}/[email protected]/dist/katex.min.js`,\n }\n }\n });\n const link = document.createElement('link');\n link.type = \"text/css\";\n link.rel = \"stylesheet\";\n link.href = `${this.getCdn()}/[email protected]/dist/katex.min.css`;\n document.head.appendChild(link);\n },\n async loadKatexExt() {\n this.loadKatex();\n return (await this.import([`${this.getCdn()}/[email protected]/dist/contrib/auto-render.min.js`]))[0]\n },\n async loadMermaid() {\n return (await this.import([`${this.getCdn()}/[email protected]/dist/mermaid.min.js`]))[0]\n },\n import(dependencies) {\n return this.loadRequire().then(\n () => {\n if (window.jupyterVue) {\n // in jupyterlab, we take Vue from ipyvue/jupyterVue\n define(\"vue\", [], () => window.jupyterVue.Vue);\n } else {\n define(\"vue\", ['jupyter-vue'], jupyterVue => jupyterVue.Vue);\n }\n return new Promise((resolve, reject) => {\n requirejs(dependencies, (...modules) => resolve(modules));\n })\n }\n );\n },\n loadRequire() {\n if (window.requirejs) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = `${this.getCdn()}/[email protected]/require.min.js`;\n script.onload = resolve;\n script.onerror = reject;\n document.head.appendChild(script);\n });\n },\n getJupyterBaseUrl() {\n // if base url is set, we use ./ for relative paths compared to the base url\n if (document.getElementsByTagName(\"base\").length) {\n return \"./\";\n }\n const labConfigData = document.getElementById('jupyter-config-data');\n if (labConfigData) {\n /* lab and Voila */\n return JSON.parse(labConfigData.textContent).baseUrl;\n }\n let base = document.body.dataset.baseUrl || document.baseURI;\n if (!base.endsWith('/')) {\n base += '/';\n }\n return base\n },\n getCdn() {\n return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);\n }\n },\n updated() {\n // if the html gets update, re-run mermaid\n this.mermaid.init();\n\n if(window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n }\n}\n</script>\n "
}
},
"c5d93460c4b640629c65cc714ea879ac": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"38cf67b442174906a996d0ac4a58f802": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"6e9212836f5d4a1fbb0b68e9fcde4a54": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"0c4ef41728a3460da07ad8a960e06e4a": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"5464fbf3ea7e4d9d8fbbcd5d80424d77": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"88de8e2b9bd34c5db3c58f95f5e5e3df": {
"model_module": "jupyter-vuetify",
"model_name": "SheetModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "SheetModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_348f0517528a4a3a9f1eca93c197340a",
"IPY_MODEL_97089d6327e84677b5e52fa6042cf3f9",
"IPY_MODEL_9cb8a27eeef945fe9e7e6809a603ddff"
],
"class_": "d-flex ma-0",
"color": null,
"dark": null,
"elevation": 0,
"height": null,
"layout": null,
"light": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"slot": null,
"style_": "flex-direction: row; align-items: stretch; justify-content: start; column-gap: 12px;flex-direction:row;padding:5px;;",
"tag": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"cfc7c93e0c694dff8ab231c780ad9243": {
"model_module": "jupyter-vuetify",
"model_name": "SheetModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "SheetModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_d3f203aa6e8141c48eb69f5b6db06f92",
"IPY_MODEL_c34fa8314ebe4408a0046fa218185da8",
"IPY_MODEL_c9d9a56c362c4595bd5b764f5a15eac1"
],
"class_": "d-flex ma-0",
"color": null,
"dark": null,
"elevation": 0,
"height": null,
"layout": null,
"light": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"slot": null,
"style_": "flex-direction: row; align-items: stretch; justify-content: start; column-gap: 12px;flex-direction:row;padding:5px;;",
"tag": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"348f0517528a4a3a9f1eca93c197340a": {
"model_module": "jupyter-vuetify",
"model_name": "AvatarModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "AvatarModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_dbc2ca823c784305a1b6ec90dcce0d84"
],
"class_": null,
"color": "rgba(0,0,0,.06)",
"height": null,
"layout": null,
"left": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"right": null,
"size": null,
"slot": null,
"style_": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"97089d6327e84677b5e52fa6042cf3f9": {
"model_module": "jupyter-vuetify",
"model_name": "SheetModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "SheetModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_a473a23269ca4efa9398b608f50dd28d",
"IPY_MODEL_5828e54d67e74ae49514cd2163bc68ad"
],
"class_": "d-flex ma-0 chat-message-5d407e56-3cbc-4036-9888-625ad686368f left",
"color": null,
"dark": null,
"elevation": 0,
"height": null,
"layout": null,
"light": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"slot": null,
"style_": "flex-direction: column; align-items: stretch; row-gap: 0; border-radius: ; border-top-left-radius: 0; padding: .5em 1.5em;;",
"tag": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"9cb8a27eeef945fe9e7e6809a603ddff": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_b8522725140444a88a7fd6d62bfaad04",
"methods": null,
"template": "\n<template>\n <span style=\"display: none\">\n </span>\n</template>\n\n<script>\nmodule.exports = {\n destroyed() {\n document.getElementById(\"ipyvue-f0023239-6ef8-4f3a-9128-88fa38d7c3ab-f7021d861cdc7dc390de56ee9ef1e5a67b4ceec3701de4fe49c78acaab102799\").remove();\n },\n};\n</script>\n \n<style id=\"f0023239-6ef8-4f3a-9128-88fa38d7c3ab-f7021d861cdc7dc390de56ee9ef1e5a67b4ceec3701de4fe49c78acaab102799\">\n\n .chat-message-5d407e56-3cbc-4036-9888-625ad686368f{\n --color: rgba(0,0,0,.06);\n max-width: 75%;\n position: relative;\n }\n .chat-message-5d407e56-3cbc-4036-9888-625ad686368f.left{\n border-top-left-radius: 0;\n background-color:var(--color);\n \n }\n .chat-message-5d407e56-3cbc-4036-9888-625ad686368f.right{\n border-top-right-radius: 0;\n background-color:var(--color);\n \n }\n \n \n</style>\n "
}
},
"d3f203aa6e8141c48eb69f5b6db06f92": {
"model_module": "jupyter-vuetify",
"model_name": "AvatarModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "AvatarModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_7161c663967447739096a37c392e7d41"
],
"class_": null,
"color": "rgba(0,0,0,.06)",
"height": null,
"layout": null,
"left": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"right": null,
"size": null,
"slot": null,
"style_": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"c34fa8314ebe4408a0046fa218185da8": {
"model_module": "jupyter-vuetify",
"model_name": "SheetModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "SheetModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_43a3e72b93574ed78662893d76b79ba0",
"IPY_MODEL_182759dc44a34158a593bed4efe993ea"
],
"class_": "d-flex ma-0 chat-message-dadc6dd5-8e67-45fe-93de-6ceead685c6a left",
"color": null,
"dark": null,
"elevation": 0,
"height": null,
"layout": null,
"light": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"slot": null,
"style_": "flex-direction: column; align-items: stretch; row-gap: 0; border-radius: ; border-top-left-radius: 0; padding: .5em 1.5em;;",
"tag": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"c9d9a56c362c4595bd5b764f5a15eac1": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_92d048d84bc348e08e8d9aa0d7e19c13",
"methods": null,
"template": "\n<template>\n <span style=\"display: none\">\n </span>\n</template>\n\n<script>\nmodule.exports = {\n destroyed() {\n document.getElementById(\"ipyvue-9637a699-7306-436b-a669-b68af79b4c28-a5bcdf305d0ed0d3558308a433b9d9dd1bd5802786a5cd3e1b438fb3251e95ac\").remove();\n },\n};\n</script>\n \n<style id=\"9637a699-7306-436b-a669-b68af79b4c28-a5bcdf305d0ed0d3558308a433b9d9dd1bd5802786a5cd3e1b438fb3251e95ac\">\n\n .chat-message-dadc6dd5-8e67-45fe-93de-6ceead685c6a{\n --color: rgba(0,0,0,.06);\n max-width: 75%;\n position: relative;\n }\n .chat-message-dadc6dd5-8e67-45fe-93de-6ceead685c6a.left{\n border-top-left-radius: 0;\n background-color:var(--color);\n \n }\n .chat-message-dadc6dd5-8e67-45fe-93de-6ceead685c6a.right{\n border-top-right-radius: 0;\n background-color:var(--color);\n \n }\n \n \n</style>\n "
}
},
"dbc2ca823c784305a1b6ec90dcce0d84": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"attributes": {
"class": "headline"
},
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_51684010ae8f4acf8a0cd23a7be16589",
"methods": null,
"tag": "span",
"template": "IPY_MODEL_cf6ad2d8c41a418282fab2d1c17b8cf8",
"unsafe_innerHTML": "A"
}
},
"a473a23269ca4efa9398b608f50dd28d": {
"model_module": "jupyter-vuetify",
"model_name": "HtmlModel",
"model_module_version": "^1.10.0",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "HtmlModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"Assistant"
],
"class_": "message-name left",
"layout": null,
"slot": null,
"style_": "font-weight: bold;",
"tag": "span",
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": []
}
},
"c5dbf64667fe419799bf6d881c615940": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_00a3792c0bab429db485bcde05bbe19d",
"methods": null,
"template": "\n<template>\n <div class=\"solara-markdown rendered_html jp-RenderedHTMLCommon\" style=\"\"></div>\n</template>\n\n<script>\nmodule.exports = {\n async mounted() {\n this.cdn = 'https://cdn.jsdelivr.net/npm/';\n await this.loadRequire();\n this.mermaid = await this.loadMermaid();\n this.mermaid.init();\n this.latexSettings = {\n delimiters: [\n {left: \"$$\", right: \"$$\", display: true},\n {left: \"$\", right: \"$\", display: false},\n {left: \"\\\\[\", right: \"\\\\]\", display: true},\n {left: \"\\\\(\", right: \"\\\\)\", display: false}\n ]\n };\n if (window.renderMathInElement) {\n window.renderMathInElement(this.$el, this.latexSettings);\n } else if (window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement = await this.loadKatexExt();\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n this.$el.querySelectorAll(\"a\").forEach(a => this.setupRouter(a))\n window.md = this.$el\n },\n methods: {\n setupRouter(a) {\n let href = a.attributes['href'].value;\n if(href.startsWith(\"./\")) {\n // TODO: should we really do this?\n href = location.pathname + href.substr(1);\n a.attributes['href'].href = href;\n }\n let authLink = href.startsWith(\"/_solara/auth/\");\n if( (href.startsWith(\"./\") || href.startsWith(\"/\")) && !authLink) {\n a.onclick = e => {\n console.log(\"clicked\", href)\n if(href.startsWith(\"./\")) {\n solara.router.push(href);\n } else {\n solara.router.push(href);\n }\n e.preventDefault()\n }\n } else if(href.startsWith(\"#\")) {\n href = location.pathname + href;\n a.attributes['href'].value = href;\n } else {\n console.log(\"href\", href, \"is not a local link\")\n }\n },\n async loadKatex() {\n require.config({\n map: {\n '*': {\n 'katex': `${this.getCdn()}/[email protected]/dist/katex.min.js`,\n }\n }\n });\n const link = document.createElement('link');\n link.type = \"text/css\";\n link.rel = \"stylesheet\";\n link.href = `${this.getCdn()}/[email protected]/dist/katex.min.css`;\n document.head.appendChild(link);\n },\n async loadKatexExt() {\n this.loadKatex();\n return (await this.import([`${this.getCdn()}/[email protected]/dist/contrib/auto-render.min.js`]))[0]\n },\n async loadMermaid() {\n return (await this.import([`${this.getCdn()}/[email protected]/dist/mermaid.min.js`]))[0]\n },\n import(dependencies) {\n return this.loadRequire().then(\n () => {\n if (window.jupyterVue) {\n // in jupyterlab, we take Vue from ipyvue/jupyterVue\n define(\"vue\", [], () => window.jupyterVue.Vue);\n } else {\n define(\"vue\", ['jupyter-vue'], jupyterVue => jupyterVue.Vue);\n }\n return new Promise((resolve, reject) => {\n requirejs(dependencies, (...modules) => resolve(modules));\n })\n }\n );\n },\n loadRequire() {\n if (window.requirejs) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = `${this.getCdn()}/[email protected]/require.min.js`;\n script.onload = resolve;\n script.onerror = reject;\n document.head.appendChild(script);\n });\n },\n getJupyterBaseUrl() {\n // if base url is set, we use ./ for relative paths compared to the base url\n if (document.getElementsByTagName(\"base\").length) {\n return \"./\";\n }\n const labConfigData = document.getElementById('jupyter-config-data');\n if (labConfigData) {\n /* lab and Voila */\n return JSON.parse(labConfigData.textContent).baseUrl;\n }\n let base = document.body.dataset.baseUrl || document.baseURI;\n if (!base.endsWith('/')) {\n base += '/';\n }\n return base\n },\n getCdn() {\n return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);\n }\n },\n updated() {\n // if the html gets update, re-run mermaid\n this.mermaid.init();\n\n if(window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n }\n}\n</script>\n "
}
},
"b8522725140444a88a7fd6d62bfaad04": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"7161c663967447739096a37c392e7d41": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"attributes": {
"class": "headline"
},
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_b10238c1257840d7abc539ee7a9cfc25",
"methods": null,
"tag": "span",
"template": "IPY_MODEL_cf6ad2d8c41a418282fab2d1c17b8cf8",
"unsafe_innerHTML": "A"
}
},
"43a3e72b93574ed78662893d76b79ba0": {
"model_module": "jupyter-vuetify",
"model_name": "HtmlModel",
"model_module_version": "^1.10.0",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "HtmlModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"Assistant"
],
"class_": "message-name left",
"layout": null,
"slot": null,
"style_": "font-weight: bold;",
"tag": "span",
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": []
}
},
"fe4c22202d4d495faf564565eeb1b3cb": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_a46272bd0865454d9ed83e4880b648d2",
"methods": null,
"template": "\n<template>\n <div class=\"solara-markdown rendered_html jp-RenderedHTMLCommon\" style=\"\"><p>Hi!</p></div>\n</template>\n\n<script>\nmodule.exports = {\n async mounted() {\n this.cdn = 'https://cdn.jsdelivr.net/npm/';\n await this.loadRequire();\n this.mermaid = await this.loadMermaid();\n this.mermaid.init();\n this.latexSettings = {\n delimiters: [\n {left: \"$$\", right: \"$$\", display: true},\n {left: \"$\", right: \"$\", display: false},\n {left: \"\\\\[\", right: \"\\\\]\", display: true},\n {left: \"\\\\(\", right: \"\\\\)\", display: false}\n ]\n };\n if (window.renderMathInElement) {\n window.renderMathInElement(this.$el, this.latexSettings);\n } else if (window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement = await this.loadKatexExt();\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n this.$el.querySelectorAll(\"a\").forEach(a => this.setupRouter(a))\n window.md = this.$el\n },\n methods: {\n setupRouter(a) {\n let href = a.attributes['href'].value;\n if(href.startsWith(\"./\")) {\n // TODO: should we really do this?\n href = location.pathname + href.substr(1);\n a.attributes['href'].href = href;\n }\n let authLink = href.startsWith(\"/_solara/auth/\");\n if( (href.startsWith(\"./\") || href.startsWith(\"/\")) && !authLink) {\n a.onclick = e => {\n console.log(\"clicked\", href)\n if(href.startsWith(\"./\")) {\n solara.router.push(href);\n } else {\n solara.router.push(href);\n }\n e.preventDefault()\n }\n } else if(href.startsWith(\"#\")) {\n href = location.pathname + href;\n a.attributes['href'].value = href;\n } else {\n console.log(\"href\", href, \"is not a local link\")\n }\n },\n async loadKatex() {\n require.config({\n map: {\n '*': {\n 'katex': `${this.getCdn()}/[email protected]/dist/katex.min.js`,\n }\n }\n });\n const link = document.createElement('link');\n link.type = \"text/css\";\n link.rel = \"stylesheet\";\n link.href = `${this.getCdn()}/[email protected]/dist/katex.min.css`;\n document.head.appendChild(link);\n },\n async loadKatexExt() {\n this.loadKatex();\n return (await this.import([`${this.getCdn()}/[email protected]/dist/contrib/auto-render.min.js`]))[0]\n },\n async loadMermaid() {\n return (await this.import([`${this.getCdn()}/[email protected]/dist/mermaid.min.js`]))[0]\n },\n import(dependencies) {\n return this.loadRequire().then(\n () => {\n if (window.jupyterVue) {\n // in jupyterlab, we take Vue from ipyvue/jupyterVue\n define(\"vue\", [], () => window.jupyterVue.Vue);\n } else {\n define(\"vue\", ['jupyter-vue'], jupyterVue => jupyterVue.Vue);\n }\n return new Promise((resolve, reject) => {\n requirejs(dependencies, (...modules) => resolve(modules));\n })\n }\n );\n },\n loadRequire() {\n if (window.requirejs) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = `${this.getCdn()}/[email protected]/require.min.js`;\n script.onload = resolve;\n script.onerror = reject;\n document.head.appendChild(script);\n });\n },\n getJupyterBaseUrl() {\n // if base url is set, we use ./ for relative paths compared to the base url\n if (document.getElementsByTagName(\"base\").length) {\n return \"./\";\n }\n const labConfigData = document.getElementById('jupyter-config-data');\n if (labConfigData) {\n /* lab and Voila */\n return JSON.parse(labConfigData.textContent).baseUrl;\n }\n let base = document.body.dataset.baseUrl || document.baseURI;\n if (!base.endsWith('/')) {\n base += '/';\n }\n return base\n },\n getCdn() {\n return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);\n }\n },\n updated() {\n // if the html gets update, re-run mermaid\n this.mermaid.init();\n\n if(window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n }\n}\n</script>\n "
}
},
"92d048d84bc348e08e8d9aa0d7e19c13": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"51684010ae8f4acf8a0cd23a7be16589": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"00a3792c0bab429db485bcde05bbe19d": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"b10238c1257840d7abc539ee7a9cfc25": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"a46272bd0865454d9ed83e4880b648d2": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"037a6bdfc810497eb4476bf7f3040540": {
"model_module": "jupyter-vue",
"model_name": "HtmlModel",
"model_module_version": "^1.11.1",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vue",
"_model_module_version": "^1.11.1",
"_model_name": "HtmlModel",
"_view_count": null,
"_view_module": "jupyter-vue",
"_view_module_version": "^1.11.1",
"_view_name": "VueView",
"attributes": {},
"children": [],
"class_": null,
"layout": null,
"slot": null,
"style_": "display: none",
"tag": "span",
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": []
}
},
"a6cfd53202d84e188396052de7cd0316": {
"model_module": "@jupyter-widgets/controls",
"model_name": "VBoxModel",
"model_module_version": "1.5.0",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "VBoxModel",
"_view_count": 1,
"_view_module": "@jupyter-widgets/controls",
"_view_module_version": "1.5.0",
"_view_name": "VBoxView",
"box_style": "",
"children": [
"IPY_MODEL_ef089534e541419db6ee045a31f0b5c3"
],
"layout": "IPY_MODEL_91e4d78e4d3e41a4b62df4803fcfc7ee"
}
},
"ef089534e541419db6ee045a31f0b5c3": {
"model_module": "jupyter-vuetify",
"model_name": "HtmlModel",
"model_module_version": "^1.10.0",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "HtmlModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_286c2d1ca656444a9bd1ef11d3e7f349"
],
"class_": null,
"layout": null,
"slot": null,
"style_": null,
"tag": "div",
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": []
}
},
"91e4d78e4d3e41a4b62df4803fcfc7ee": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"286c2d1ca656444a9bd1ef11d3e7f349": {
"model_module": "jupyter-vuetify",
"model_name": "RowModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "RowModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"align": null,
"align_content": null,
"align_content_lg": null,
"align_content_md": null,
"align_content_sm": null,
"align_content_xl": null,
"align_lg": null,
"align_md": null,
"align_sm": null,
"align_xl": null,
"attributes": {},
"children": [
"IPY_MODEL_f6c7d8f6355e4f389f8d6f9f05ad8e49"
],
"class_": "solara-content-main",
"dense": null,
"justify": null,
"justify_lg": null,
"justify_md": null,
"justify_sm": null,
"justify_xl": null,
"layout": null,
"no_gutters": false,
"slot": null,
"style_": null,
"tag": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": []
}
},
"f6c7d8f6355e4f389f8d6f9f05ad8e49": {
"model_module": "jupyter-vuetify",
"model_name": "ColModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "ColModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"align_self": null,
"attributes": {},
"children": [
"IPY_MODEL_f5ea092791e640f09091e7c20f1950a4"
],
"class_": null,
"cols": 12,
"layout": null,
"lg": null,
"md": null,
"offset": null,
"offset_lg": null,
"offset_md": null,
"offset_sm": null,
"offset_xl": null,
"order": null,
"order_lg": null,
"order_md": null,
"order_sm": null,
"order_xl": null,
"slot": null,
"sm": null,
"style_": null,
"tag": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"xl": null
}
},
"f5ea092791e640f09091e7c20f1950a4": {
"model_module": "jupyter-vuetify",
"model_name": "SheetModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "SheetModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_46ef2cd4ae6e44239eb34c51bd2d88b5",
"IPY_MODEL_d262f4853c2c4c1db895fdf7879fc020"
],
"class_": "d-flex ma-0",
"color": null,
"dark": null,
"elevation": 0,
"height": null,
"layout": null,
"light": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"slot": null,
"style_": "flex-direction: row; align-items: stretch; justify-content: start; column-gap: 12px; align-items: center;;",
"tag": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"46ef2cd4ae6e44239eb34c51bd2d88b5": {
"model_module": "jupyter-vuetify",
"model_name": "TextFieldModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [
"keyup.enter"
],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "TextFieldModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"append_icon": null,
"append_outer_icon": null,
"attributes": {},
"autofocus": null,
"background_color": null,
"children": [],
"class_": "",
"clear_icon": null,
"clearable": null,
"color": null,
"counter": null,
"dark": null,
"dense": null,
"disabled": false,
"error": null,
"error_count": null,
"error_messages": null,
"filled": true,
"flat": null,
"full_width": null,
"height": null,
"hide_details": true,
"hint": null,
"id": null,
"label": "Type a message...",
"layout": null,
"light": null,
"loader_height": null,
"loading": null,
"messages": null,
"outlined": null,
"persistent_hint": null,
"placeholder": null,
"prefix": null,
"prepend_icon": null,
"prepend_inner_icon": null,
"readonly": null,
"reverse": null,
"rounded": true,
"rules": null,
"shaped": null,
"single_line": null,
"slot": null,
"solo": null,
"solo_inverted": null,
"style_": "flex-grow: 1;",
"success": null,
"success_messages": null,
"suffix": null,
"type": null,
"v_model": "",
"v_on": null,
"v_slots": [],
"validate_on_blur": null,
"value": null
}
},
"d262f4853c2c4c1db895fdf7879fc020": {
"model_module": "jupyter-vuetify",
"model_name": "BtnModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [
"click"
],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "BtnModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"absolute": null,
"active_class": null,
"append": null,
"attributes": {},
"block": null,
"bottom": null,
"children": [
"IPY_MODEL_db0828d5043340b9b368d1b6c3b4d971"
],
"class_": null,
"color": "primary",
"dark": null,
"depressed": null,
"disabled": true,
"elevation": null,
"exact": null,
"exact_active_class": null,
"fab": null,
"fixed": null,
"height": null,
"href": null,
"icon": true,
"input_value": null,
"large": null,
"layout": null,
"left": null,
"light": null,
"link": null,
"loading": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"nuxt": null,
"outlined": null,
"replace": null,
"retain_focus_on_click": null,
"right": null,
"ripple": null,
"rounded": null,
"slot": null,
"small": null,
"style_": null,
"tag": null,
"target": null,
"text": null,
"tile": null,
"to": null,
"top": null,
"type": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"value": null,
"width": null,
"x_large": null,
"x_small": null
}
},
"db0828d5043340b9b368d1b6c3b4d971": {
"model_module": "jupyter-vuetify",
"model_name": "IconModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "IconModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"mdi-send"
],
"class_": null,
"color": null,
"dark": null,
"dense": null,
"disabled": null,
"large": null,
"layout": null,
"left": null,
"light": null,
"right": null,
"size": null,
"slot": null,
"small": null,
"style_": null,
"tag": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"x_large": null,
"x_small": null
}
},
"cf75672de6904ef7a8a8bd1eabda409e": {
"model_module": "jupyter-vue",
"model_name": "HtmlModel",
"model_module_version": "^1.11.1",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vue",
"_model_module_version": "^1.11.1",
"_model_name": "HtmlModel",
"_view_count": null,
"_view_module": "jupyter-vue",
"_view_module_version": "^1.11.1",
"_view_name": "VueView",
"attributes": {},
"children": [],
"class_": null,
"layout": null,
"slot": null,
"style_": "display: none",
"tag": "span",
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": []
}
},
"a55af2431f0a442491754cf5e0a01a96": {
"model_module": "@jupyter-widgets/controls",
"model_name": "VBoxModel",
"model_module_version": "1.5.0",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "VBoxModel",
"_view_count": 1,
"_view_module": "@jupyter-widgets/controls",
"_view_module_version": "1.5.0",
"_view_name": "VBoxView",
"box_style": "",
"children": [
"IPY_MODEL_80fff17051474db284e4ca91f0104e97"
],
"layout": "IPY_MODEL_b20e46cddcd94d7890d848ed801ccdaa"
}
},
"72bc2dd528824aa8813782c4aefbc82d": {
"model_module": "jupyter-vuetify",
"model_name": "HtmlModel",
"model_module_version": "^1.10.0",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "HtmlModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_84f472b007f347f1a73ce8e2dfe6b502"
],
"class_": null,
"layout": null,
"slot": null,
"style_": null,
"tag": "div",
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": []
}
},
"b20e46cddcd94d7890d848ed801ccdaa": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"84f472b007f347f1a73ce8e2dfe6b502": {
"model_module": "jupyter-vuetify",
"model_name": "RowModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "RowModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"align": null,
"align_content": null,
"align_content_lg": null,
"align_content_md": null,
"align_content_sm": null,
"align_content_xl": null,
"align_lg": null,
"align_md": null,
"align_sm": null,
"align_xl": null,
"attributes": {},
"children": [
"IPY_MODEL_215b59d64e394ad6949462f9d7b019c5"
],
"class_": "solara-content-main",
"dense": null,
"justify": null,
"justify_lg": null,
"justify_md": null,
"justify_sm": null,
"justify_xl": null,
"layout": null,
"no_gutters": false,
"slot": null,
"style_": null,
"tag": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": []
}
},
"215b59d64e394ad6949462f9d7b019c5": {
"model_module": "jupyter-vuetify",
"model_name": "ColModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "ColModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"align_self": null,
"attributes": {},
"children": [
"IPY_MODEL_751b18a1988c449b8c21f800ca4efb20"
],
"class_": null,
"cols": 12,
"layout": null,
"lg": null,
"md": null,
"offset": null,
"offset_lg": null,
"offset_md": null,
"offset_sm": null,
"offset_xl": null,
"order": null,
"order_lg": null,
"order_md": null,
"order_sm": null,
"order_xl": null,
"slot": null,
"sm": null,
"style_": null,
"tag": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"xl": null
}
},
"751b18a1988c449b8c21f800ca4efb20": {
"model_module": "jupyter-vuetify",
"model_name": "SheetModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "SheetModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_92fdd96d05a24bf68cf9896b1b205283",
"IPY_MODEL_20d713f72dd447aba1d241c387ea1ab5"
],
"class_": "d-flex ma-0",
"color": null,
"dark": null,
"elevation": 0,
"height": null,
"layout": null,
"light": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"slot": null,
"style_": "flex-direction: column; align-items: stretch; row-gap: 12px;;",
"tag": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"92fdd96d05a24bf68cf9896b1b205283": {
"model_module": "jupyter-vuetify",
"model_name": "SheetModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "SheetModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_01cd059ee7384f3aa1bc822356b9dbfc",
"IPY_MODEL_0ee12588ba494c73ac67b74e8a011a9c",
"IPY_MODEL_4a4555d154cb45749a8686a247dedcd6"
],
"class_": "d-flex ma-0 chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box chat-box",
"color": null,
"dark": null,
"elevation": 0,
"height": null,
"layout": null,
"light": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"slot": null,
"style_": "flex-direction: column; align-items: stretch; row-gap: 12px; flex-grow: 1; flex-direction: column-reverse; overflow-y: auto;;",
"tag": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"20d713f72dd447aba1d241c387ea1ab5": {
"model_module": "jupyter-vuetify",
"model_name": "SheetModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "SheetModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_2e0d0bcb434449d4ba15435bf7050b75",
"IPY_MODEL_79b06573123f4e54972159e8ffc35e67"
],
"class_": "d-flex ma-0",
"color": null,
"dark": null,
"elevation": 0,
"height": null,
"layout": null,
"light": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"slot": null,
"style_": "flex-direction: row; align-items: stretch; justify-content: start; column-gap: 12px; align-items: center;;",
"tag": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"2e0d0bcb434449d4ba15435bf7050b75": {
"model_module": "jupyter-vuetify",
"model_name": "TextFieldModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "TextFieldModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"append_icon": null,
"append_outer_icon": null,
"attributes": {},
"autofocus": null,
"background_color": null,
"children": [],
"class_": "",
"clear_icon": null,
"clearable": null,
"color": null,
"counter": null,
"dark": null,
"dense": null,
"disabled": false,
"error": null,
"error_count": null,
"error_messages": null,
"filled": true,
"flat": null,
"full_width": null,
"height": null,
"hide_details": true,
"hint": null,
"id": null,
"label": "Type a message...",
"layout": null,
"light": null,
"loader_height": null,
"loading": null,
"messages": null,
"outlined": null,
"persistent_hint": null,
"placeholder": null,
"prefix": null,
"prepend_icon": null,
"prepend_inner_icon": null,
"readonly": null,
"reverse": null,
"rounded": true,
"rules": null,
"shaped": null,
"single_line": null,
"slot": null,
"solo": null,
"solo_inverted": null,
"style_": "flex-grow: 1;",
"success": null,
"success_messages": null,
"suffix": null,
"type": null,
"v_model": "Hi!",
"v_on": null,
"v_slots": [],
"validate_on_blur": null,
"value": null
}
},
"79b06573123f4e54972159e8ffc35e67": {
"model_module": "jupyter-vuetify",
"model_name": "BtnModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "BtnModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"absolute": null,
"active_class": null,
"append": null,
"attributes": {},
"block": null,
"bottom": null,
"children": [
"IPY_MODEL_79fe321c363e42cfbe4fb45356c00b6a"
],
"class_": null,
"color": "primary",
"dark": null,
"depressed": null,
"disabled": false,
"elevation": null,
"exact": null,
"exact_active_class": null,
"fab": null,
"fixed": null,
"height": null,
"href": null,
"icon": true,
"input_value": null,
"large": null,
"layout": null,
"left": null,
"light": null,
"link": null,
"loading": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"nuxt": null,
"outlined": null,
"replace": null,
"retain_focus_on_click": null,
"right": null,
"ripple": null,
"rounded": null,
"slot": null,
"small": null,
"style_": null,
"tag": null,
"target": null,
"text": null,
"tile": null,
"to": null,
"top": null,
"type": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"value": null,
"width": null,
"x_large": null,
"x_small": null
}
},
"79fe321c363e42cfbe4fb45356c00b6a": {
"model_module": "jupyter-vuetify",
"model_name": "IconModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "IconModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"mdi-send"
],
"class_": null,
"color": null,
"dark": null,
"dense": null,
"disabled": null,
"large": null,
"layout": null,
"left": null,
"light": null,
"right": null,
"size": null,
"slot": null,
"small": null,
"style_": null,
"tag": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"x_large": null,
"x_small": null
}
},
"1c942c9a4cff4661b5a140c2f90177c7": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"081df973c8974c4482d35c72b4e5e347": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"attributes": {
"class": "headline"
},
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_1c942c9a4cff4661b5a140c2f90177c7",
"methods": null,
"tag": "span",
"template": "IPY_MODEL_cf6ad2d8c41a418282fab2d1c17b8cf8",
"unsafe_innerHTML": "A"
}
},
"82adef6c27c549d9b73c4dec5ce6ba65": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"e02084a99a7748298cf28fd9ef12b5a8": {
"model_module": "jupyter-vuetify",
"model_name": "HtmlModel",
"model_module_version": "^1.10.0",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "HtmlModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"Assistant"
],
"class_": "message-name left",
"layout": null,
"slot": null,
"style_": "font-weight: bold;",
"tag": "span",
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": []
}
},
"86b11f37fd6048fcb0fe86c0a98a7956": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_82adef6c27c549d9b73c4dec5ce6ba65",
"methods": null,
"template": "\n<template>\n <div class=\"solara-markdown rendered_html jp-RenderedHTMLCommon\" style=\"\"><p>Hi!</p></div>\n</template>\n\n<script>\nmodule.exports = {\n async mounted() {\n this.cdn = 'https://cdn.jsdelivr.net/npm/';\n await this.loadRequire();\n this.mermaid = await this.loadMermaid();\n this.mermaid.init();\n this.latexSettings = {\n delimiters: [\n {left: \"$$\", right: \"$$\", display: true},\n {left: \"$\", right: \"$\", display: false},\n {left: \"\\\\[\", right: \"\\\\]\", display: true},\n {left: \"\\\\(\", right: \"\\\\)\", display: false}\n ]\n };\n if (window.renderMathInElement) {\n window.renderMathInElement(this.$el, this.latexSettings);\n } else if (window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement = await this.loadKatexExt();\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n this.$el.querySelectorAll(\"a\").forEach(a => this.setupRouter(a))\n window.md = this.$el\n },\n methods: {\n setupRouter(a) {\n let href = a.attributes['href'].value;\n if(href.startsWith(\"./\")) {\n // TODO: should we really do this?\n href = location.pathname + href.substr(1);\n a.attributes['href'].href = href;\n }\n let authLink = href.startsWith(\"/_solara/auth/\");\n if( (href.startsWith(\"./\") || href.startsWith(\"/\")) && !authLink) {\n a.onclick = e => {\n console.log(\"clicked\", href)\n if(href.startsWith(\"./\")) {\n solara.router.push(href);\n } else {\n solara.router.push(href);\n }\n e.preventDefault()\n }\n } else if(href.startsWith(\"#\")) {\n href = location.pathname + href;\n a.attributes['href'].value = href;\n } else {\n console.log(\"href\", href, \"is not a local link\")\n }\n },\n async loadKatex() {\n require.config({\n map: {\n '*': {\n 'katex': `${this.getCdn()}/[email protected]/dist/katex.min.js`,\n }\n }\n });\n const link = document.createElement('link');\n link.type = \"text/css\";\n link.rel = \"stylesheet\";\n link.href = `${this.getCdn()}/[email protected]/dist/katex.min.css`;\n document.head.appendChild(link);\n },\n async loadKatexExt() {\n this.loadKatex();\n return (await this.import([`${this.getCdn()}/[email protected]/dist/contrib/auto-render.min.js`]))[0]\n },\n async loadMermaid() {\n return (await this.import([`${this.getCdn()}/[email protected]/dist/mermaid.min.js`]))[0]\n },\n import(dependencies) {\n return this.loadRequire().then(\n () => {\n if (window.jupyterVue) {\n // in jupyterlab, we take Vue from ipyvue/jupyterVue\n define(\"vue\", [], () => window.jupyterVue.Vue);\n } else {\n define(\"vue\", ['jupyter-vue'], jupyterVue => jupyterVue.Vue);\n }\n return new Promise((resolve, reject) => {\n requirejs(dependencies, (...modules) => resolve(modules));\n })\n }\n );\n },\n loadRequire() {\n if (window.requirejs) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = `${this.getCdn()}/[email protected]/require.min.js`;\n script.onload = resolve;\n script.onerror = reject;\n document.head.appendChild(script);\n });\n },\n getJupyterBaseUrl() {\n // if base url is set, we use ./ for relative paths compared to the base url\n if (document.getElementsByTagName(\"base\").length) {\n return \"./\";\n }\n const labConfigData = document.getElementById('jupyter-config-data');\n if (labConfigData) {\n /* lab and Voila */\n return JSON.parse(labConfigData.textContent).baseUrl;\n }\n let base = document.body.dataset.baseUrl || document.baseURI;\n if (!base.endsWith('/')) {\n base += '/';\n }\n return base\n },\n getCdn() {\n return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);\n }\n },\n updated() {\n // if the html gets update, re-run mermaid\n this.mermaid.init();\n\n if(window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n }\n}\n</script>\n "
}
},
"3621b3d1bf6443aab394349eaceae38e": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"cf573d8529194f03966a63927cf9dfe4": {
"model_module": "jupyter-vuetify",
"model_name": "AvatarModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "AvatarModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_081df973c8974c4482d35c72b4e5e347"
],
"class_": null,
"color": "rgba(0,0,0,.06)",
"height": null,
"layout": null,
"left": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"right": null,
"size": null,
"slot": null,
"style_": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"c2f7d713f4cd49acbaa409f10cce46f0": {
"model_module": "jupyter-vuetify",
"model_name": "SheetModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "SheetModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_e02084a99a7748298cf28fd9ef12b5a8",
"IPY_MODEL_9412c8d9667d41d8aa49ac319fc9117c"
],
"class_": "d-flex ma-0 chat-message-aaec31bc-18d1-4318-825a-6a6468a8c9ac left",
"color": null,
"dark": null,
"elevation": 0,
"height": null,
"layout": null,
"light": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"slot": null,
"style_": "flex-direction: column; align-items: stretch; row-gap: 0; border-radius: ; border-top-left-radius: 0; padding: .5em 1.5em;;",
"tag": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"0754935ee63f4a618539e6e5ad679a0a": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_3621b3d1bf6443aab394349eaceae38e",
"methods": null,
"template": "\n<template>\n <span style=\"display: none\">\n </span>\n</template>\n\n<script>\nmodule.exports = {\n destroyed() {\n document.getElementById(\"ipyvue-1006c972-d986-4158-8d82-05be34d703d1-49e50b929e15255ec48108714a9966695fa9ac539cd264e3295685af18477797\").remove();\n },\n};\n</script>\n \n<style id=\"1006c972-d986-4158-8d82-05be34d703d1-49e50b929e15255ec48108714a9966695fa9ac539cd264e3295685af18477797\">\n\n .chat-message-aaec31bc-18d1-4318-825a-6a6468a8c9ac{\n --color: rgba(0,0,0,.06);\n max-width: 75%;\n position: relative;\n }\n .chat-message-aaec31bc-18d1-4318-825a-6a6468a8c9ac.left{\n border-top-left-radius: 0;\n background-color:var(--color);\n \n }\n .chat-message-aaec31bc-18d1-4318-825a-6a6468a8c9ac.right{\n border-top-right-radius: 0;\n background-color:var(--color);\n \n }\n \n \n</style>\n "
}
},
"027477716aa441fea90f8ab31d8e197c": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"32667f86b44249279aa3a06723517f5b": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"bff17abe0c1841e580eff17fffe25358": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"attributes": {
"class": "headline"
},
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_32667f86b44249279aa3a06723517f5b",
"methods": null,
"tag": "span",
"template": "IPY_MODEL_cf6ad2d8c41a418282fab2d1c17b8cf8",
"unsafe_innerHTML": "A"
}
},
"394753ef344247a58f590e31326e2866": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"1026dfec97dc465d94ff5bb036809ec3": {
"model_module": "jupyter-vuetify",
"model_name": "HtmlModel",
"model_module_version": "^1.10.0",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "HtmlModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"Assistant"
],
"class_": "message-name left",
"layout": null,
"slot": null,
"style_": "font-weight: bold;",
"tag": "span",
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": []
}
},
"9296bd02ef93429387eb2511744490d3": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_394753ef344247a58f590e31326e2866",
"methods": null,
"template": "\n<template>\n <div class=\"solara-markdown rendered_html jp-RenderedHTMLCommon\" style=\"\"><p>Hi!</p></div>\n</template>\n\n<script>\nmodule.exports = {\n async mounted() {\n this.cdn = 'https://cdn.jsdelivr.net/npm/';\n await this.loadRequire();\n this.mermaid = await this.loadMermaid();\n this.mermaid.init();\n this.latexSettings = {\n delimiters: [\n {left: \"$$\", right: \"$$\", display: true},\n {left: \"$\", right: \"$\", display: false},\n {left: \"\\\\[\", right: \"\\\\]\", display: true},\n {left: \"\\\\(\", right: \"\\\\)\", display: false}\n ]\n };\n if (window.renderMathInElement) {\n window.renderMathInElement(this.$el, this.latexSettings);\n } else if (window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement = await this.loadKatexExt();\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n this.$el.querySelectorAll(\"a\").forEach(a => this.setupRouter(a))\n window.md = this.$el\n },\n methods: {\n setupRouter(a) {\n let href = a.attributes['href'].value;\n if(href.startsWith(\"./\")) {\n // TODO: should we really do this?\n href = location.pathname + href.substr(1);\n a.attributes['href'].href = href;\n }\n let authLink = href.startsWith(\"/_solara/auth/\");\n if( (href.startsWith(\"./\") || href.startsWith(\"/\")) && !authLink) {\n a.onclick = e => {\n console.log(\"clicked\", href)\n if(href.startsWith(\"./\")) {\n solara.router.push(href);\n } else {\n solara.router.push(href);\n }\n e.preventDefault()\n }\n } else if(href.startsWith(\"#\")) {\n href = location.pathname + href;\n a.attributes['href'].value = href;\n } else {\n console.log(\"href\", href, \"is not a local link\")\n }\n },\n async loadKatex() {\n require.config({\n map: {\n '*': {\n 'katex': `${this.getCdn()}/[email protected]/dist/katex.min.js`,\n }\n }\n });\n const link = document.createElement('link');\n link.type = \"text/css\";\n link.rel = \"stylesheet\";\n link.href = `${this.getCdn()}/[email protected]/dist/katex.min.css`;\n document.head.appendChild(link);\n },\n async loadKatexExt() {\n this.loadKatex();\n return (await this.import([`${this.getCdn()}/[email protected]/dist/contrib/auto-render.min.js`]))[0]\n },\n async loadMermaid() {\n return (await this.import([`${this.getCdn()}/[email protected]/dist/mermaid.min.js`]))[0]\n },\n import(dependencies) {\n return this.loadRequire().then(\n () => {\n if (window.jupyterVue) {\n // in jupyterlab, we take Vue from ipyvue/jupyterVue\n define(\"vue\", [], () => window.jupyterVue.Vue);\n } else {\n define(\"vue\", ['jupyter-vue'], jupyterVue => jupyterVue.Vue);\n }\n return new Promise((resolve, reject) => {\n requirejs(dependencies, (...modules) => resolve(modules));\n })\n }\n );\n },\n loadRequire() {\n if (window.requirejs) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = `${this.getCdn()}/[email protected]/require.min.js`;\n script.onload = resolve;\n script.onerror = reject;\n document.head.appendChild(script);\n });\n },\n getJupyterBaseUrl() {\n // if base url is set, we use ./ for relative paths compared to the base url\n if (document.getElementsByTagName(\"base\").length) {\n return \"./\";\n }\n const labConfigData = document.getElementById('jupyter-config-data');\n if (labConfigData) {\n /* lab and Voila */\n return JSON.parse(labConfigData.textContent).baseUrl;\n }\n let base = document.body.dataset.baseUrl || document.baseURI;\n if (!base.endsWith('/')) {\n base += '/';\n }\n return base\n },\n getCdn() {\n return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);\n }\n },\n updated() {\n // if the html gets update, re-run mermaid\n this.mermaid.init();\n\n if(window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n }\n}\n</script>\n "
}
},
"f7b923ddfd364deeb9c58243b5285521": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"2f0de27be0204777bb4b27d3fcd4acd0": {
"model_module": "jupyter-vuetify",
"model_name": "AvatarModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "AvatarModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_bff17abe0c1841e580eff17fffe25358"
],
"class_": null,
"color": "rgba(0,0,0,.06)",
"height": null,
"layout": null,
"left": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"right": null,
"size": null,
"slot": null,
"style_": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"7cde9644470b428f8c2fb710631c899b": {
"model_module": "jupyter-vuetify",
"model_name": "SheetModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "SheetModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_1026dfec97dc465d94ff5bb036809ec3",
"IPY_MODEL_ac7f9b591ea04ce6bf5c69c794e4cb21"
],
"class_": "d-flex ma-0 chat-message-3202cb3c-3c5d-4805-a3ac-4850ace9852d left",
"color": null,
"dark": null,
"elevation": 0,
"height": null,
"layout": null,
"light": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"slot": null,
"style_": "flex-direction: column; align-items: stretch; row-gap: 0; border-radius: ; border-top-left-radius: 0; padding: .5em 1.5em;;",
"tag": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"a389245ba3c849558d96b4d31269bba1": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_f7b923ddfd364deeb9c58243b5285521",
"methods": null,
"template": "\n<template>\n <span style=\"display: none\">\n </span>\n</template>\n\n<script>\nmodule.exports = {\n destroyed() {\n document.getElementById(\"ipyvue-14f9a39e-6202-4943-9f7a-5fbb8d499662-35e084ee3b11a8e2778b40fdd3031dbaf223ef105812fd79f25b7c247bf4ba73\").remove();\n },\n};\n</script>\n \n<style id=\"14f9a39e-6202-4943-9f7a-5fbb8d499662-35e084ee3b11a8e2778b40fdd3031dbaf223ef105812fd79f25b7c247bf4ba73\">\n\n .chat-message-3202cb3c-3c5d-4805-a3ac-4850ace9852d{\n --color: rgba(0,0,0,.06);\n max-width: 75%;\n position: relative;\n }\n .chat-message-3202cb3c-3c5d-4805-a3ac-4850ace9852d.left{\n border-top-left-radius: 0;\n background-color:var(--color);\n \n }\n .chat-message-3202cb3c-3c5d-4805-a3ac-4850ace9852d.right{\n border-top-right-radius: 0;\n background-color:var(--color);\n \n }\n \n \n</style>\n "
}
},
"64f0f17f3c544c5bab34daabd9006f8d": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"cec8c7792eec4454ae542a33a23f6af0": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"attributes": {
"class": "headline"
},
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_64f0f17f3c544c5bab34daabd9006f8d",
"methods": null,
"tag": "span",
"template": "IPY_MODEL_cf6ad2d8c41a418282fab2d1c17b8cf8",
"unsafe_innerHTML": "A"
}
},
"87391b3095fa4e298bc2176a8bb39c55": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"a3e940216d6d411d8165eeefb2d187b9": {
"model_module": "jupyter-vuetify",
"model_name": "HtmlModel",
"model_module_version": "^1.10.0",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "HtmlModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"Assistant"
],
"class_": "message-name left",
"layout": null,
"slot": null,
"style_": "font-weight: bold;",
"tag": "span",
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": []
}
},
"32d181abfa074f5799ba4485e154a49d": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_87391b3095fa4e298bc2176a8bb39c55",
"methods": null,
"template": "\n<template>\n <div class=\"solara-markdown rendered_html jp-RenderedHTMLCommon\" style=\"\"></div>\n</template>\n\n<script>\nmodule.exports = {\n async mounted() {\n this.cdn = 'https://cdn.jsdelivr.net/npm/';\n await this.loadRequire();\n this.mermaid = await this.loadMermaid();\n this.mermaid.init();\n this.latexSettings = {\n delimiters: [\n {left: \"$$\", right: \"$$\", display: true},\n {left: \"$\", right: \"$\", display: false},\n {left: \"\\\\[\", right: \"\\\\]\", display: true},\n {left: \"\\\\(\", right: \"\\\\)\", display: false}\n ]\n };\n if (window.renderMathInElement) {\n window.renderMathInElement(this.$el, this.latexSettings);\n } else if (window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement = await this.loadKatexExt();\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n this.$el.querySelectorAll(\"a\").forEach(a => this.setupRouter(a))\n window.md = this.$el\n },\n methods: {\n setupRouter(a) {\n let href = a.attributes['href'].value;\n if(href.startsWith(\"./\")) {\n // TODO: should we really do this?\n href = location.pathname + href.substr(1);\n a.attributes['href'].href = href;\n }\n let authLink = href.startsWith(\"/_solara/auth/\");\n if( (href.startsWith(\"./\") || href.startsWith(\"/\")) && !authLink) {\n a.onclick = e => {\n console.log(\"clicked\", href)\n if(href.startsWith(\"./\")) {\n solara.router.push(href);\n } else {\n solara.router.push(href);\n }\n e.preventDefault()\n }\n } else if(href.startsWith(\"#\")) {\n href = location.pathname + href;\n a.attributes['href'].value = href;\n } else {\n console.log(\"href\", href, \"is not a local link\")\n }\n },\n async loadKatex() {\n require.config({\n map: {\n '*': {\n 'katex': `${this.getCdn()}/[email protected]/dist/katex.min.js`,\n }\n }\n });\n const link = document.createElement('link');\n link.type = \"text/css\";\n link.rel = \"stylesheet\";\n link.href = `${this.getCdn()}/[email protected]/dist/katex.min.css`;\n document.head.appendChild(link);\n },\n async loadKatexExt() {\n this.loadKatex();\n return (await this.import([`${this.getCdn()}/[email protected]/dist/contrib/auto-render.min.js`]))[0]\n },\n async loadMermaid() {\n return (await this.import([`${this.getCdn()}/[email protected]/dist/mermaid.min.js`]))[0]\n },\n import(dependencies) {\n return this.loadRequire().then(\n () => {\n if (window.jupyterVue) {\n // in jupyterlab, we take Vue from ipyvue/jupyterVue\n define(\"vue\", [], () => window.jupyterVue.Vue);\n } else {\n define(\"vue\", ['jupyter-vue'], jupyterVue => jupyterVue.Vue);\n }\n return new Promise((resolve, reject) => {\n requirejs(dependencies, (...modules) => resolve(modules));\n })\n }\n );\n },\n loadRequire() {\n if (window.requirejs) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = `${this.getCdn()}/[email protected]/require.min.js`;\n script.onload = resolve;\n script.onerror = reject;\n document.head.appendChild(script);\n });\n },\n getJupyterBaseUrl() {\n // if base url is set, we use ./ for relative paths compared to the base url\n if (document.getElementsByTagName(\"base\").length) {\n return \"./\";\n }\n const labConfigData = document.getElementById('jupyter-config-data');\n if (labConfigData) {\n /* lab and Voila */\n return JSON.parse(labConfigData.textContent).baseUrl;\n }\n let base = document.body.dataset.baseUrl || document.baseURI;\n if (!base.endsWith('/')) {\n base += '/';\n }\n return base\n },\n getCdn() {\n return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);\n }\n },\n updated() {\n // if the html gets update, re-run mermaid\n this.mermaid.init();\n\n if(window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n }\n}\n</script>\n "
}
},
"b1bea3899dbb4a8687dd687e8ff00fb1": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"5729bd2ab6134ba793de888e52045cb1": {
"model_module": "jupyter-vuetify",
"model_name": "AvatarModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "AvatarModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_cec8c7792eec4454ae542a33a23f6af0"
],
"class_": null,
"color": "rgba(0,0,0,.06)",
"height": null,
"layout": null,
"left": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"right": null,
"size": null,
"slot": null,
"style_": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"84ecfdf4ddb04f3082eafc371e88a484": {
"model_module": "jupyter-vuetify",
"model_name": "SheetModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "SheetModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_a3e940216d6d411d8165eeefb2d187b9",
"IPY_MODEL_9b6ea4c7a2ab445dab6fc3183208a8d5"
],
"class_": "d-flex ma-0 chat-message-f2259e9d-f701-48a3-bd87-335a53ffb23d left",
"color": null,
"dark": null,
"elevation": 0,
"height": null,
"layout": null,
"light": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"slot": null,
"style_": "flex-direction: column; align-items: stretch; row-gap: 0; border-radius: ; border-top-left-radius: 0; padding: .5em 1.5em;;",
"tag": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"0dcbf75718cf4f3c9b7b370b86b795a6": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_b1bea3899dbb4a8687dd687e8ff00fb1",
"methods": null,
"template": "\n<template>\n <span style=\"display: none\">\n </span>\n</template>\n\n<script>\nmodule.exports = {\n destroyed() {\n document.getElementById(\"ipyvue-e2bcc68d-7b69-4861-9adf-9e8e1d837844-2661491f37241fbbf3ce6eb023c8eb920867da4eda5a62c2499c50f2cbd8e606\").remove();\n },\n};\n</script>\n \n<style id=\"e2bcc68d-7b69-4861-9adf-9e8e1d837844-2661491f37241fbbf3ce6eb023c8eb920867da4eda5a62c2499c50f2cbd8e606\">\n\n .chat-message-f2259e9d-f701-48a3-bd87-335a53ffb23d{\n --color: rgba(0,0,0,.06);\n max-width: 75%;\n position: relative;\n }\n .chat-message-f2259e9d-f701-48a3-bd87-335a53ffb23d.left{\n border-top-left-radius: 0;\n background-color:var(--color);\n \n }\n .chat-message-f2259e9d-f701-48a3-bd87-335a53ffb23d.right{\n border-top-right-radius: 0;\n background-color:var(--color);\n \n }\n \n \n</style>\n "
}
},
"bf70551cf8d04ea6bb5ef51b95d73da9": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"716b4152fbf64a1b84677f582f09184e": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"attributes": {
"class": "headline"
},
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_bf70551cf8d04ea6bb5ef51b95d73da9",
"methods": null,
"tag": "span",
"template": "IPY_MODEL_cf6ad2d8c41a418282fab2d1c17b8cf8",
"unsafe_innerHTML": "A"
}
},
"c72ae6ca33604f84934a3d49829deeee": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_027477716aa441fea90f8ab31d8e197c",
"methods": null,
"template": "\n<template>\n <div class=\"solara-markdown rendered_html jp-RenderedHTMLCommon\" style=\"\"></div>\n</template>\n\n<script>\nmodule.exports = {\n async mounted() {\n this.cdn = 'https://cdn.jsdelivr.net/npm/';\n await this.loadRequire();\n this.mermaid = await this.loadMermaid();\n this.mermaid.init();\n this.latexSettings = {\n delimiters: [\n {left: \"$$\", right: \"$$\", display: true},\n {left: \"$\", right: \"$\", display: false},\n {left: \"\\\\[\", right: \"\\\\]\", display: true},\n {left: \"\\\\(\", right: \"\\\\)\", display: false}\n ]\n };\n if (window.renderMathInElement) {\n window.renderMathInElement(this.$el, this.latexSettings);\n } else if (window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement = await this.loadKatexExt();\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n this.$el.querySelectorAll(\"a\").forEach(a => this.setupRouter(a))\n window.md = this.$el\n },\n methods: {\n setupRouter(a) {\n let href = a.attributes['href'].value;\n if(href.startsWith(\"./\")) {\n // TODO: should we really do this?\n href = location.pathname + href.substr(1);\n a.attributes['href'].href = href;\n }\n let authLink = href.startsWith(\"/_solara/auth/\");\n if( (href.startsWith(\"./\") || href.startsWith(\"/\")) && !authLink) {\n a.onclick = e => {\n console.log(\"clicked\", href)\n if(href.startsWith(\"./\")) {\n solara.router.push(href);\n } else {\n solara.router.push(href);\n }\n e.preventDefault()\n }\n } else if(href.startsWith(\"#\")) {\n href = location.pathname + href;\n a.attributes['href'].value = href;\n } else {\n console.log(\"href\", href, \"is not a local link\")\n }\n },\n async loadKatex() {\n require.config({\n map: {\n '*': {\n 'katex': `${this.getCdn()}/[email protected]/dist/katex.min.js`,\n }\n }\n });\n const link = document.createElement('link');\n link.type = \"text/css\";\n link.rel = \"stylesheet\";\n link.href = `${this.getCdn()}/[email protected]/dist/katex.min.css`;\n document.head.appendChild(link);\n },\n async loadKatexExt() {\n this.loadKatex();\n return (await this.import([`${this.getCdn()}/[email protected]/dist/contrib/auto-render.min.js`]))[0]\n },\n async loadMermaid() {\n return (await this.import([`${this.getCdn()}/[email protected]/dist/mermaid.min.js`]))[0]\n },\n import(dependencies) {\n return this.loadRequire().then(\n () => {\n if (window.jupyterVue) {\n // in jupyterlab, we take Vue from ipyvue/jupyterVue\n define(\"vue\", [], () => window.jupyterVue.Vue);\n } else {\n define(\"vue\", ['jupyter-vue'], jupyterVue => jupyterVue.Vue);\n }\n return new Promise((resolve, reject) => {\n requirejs(dependencies, (...modules) => resolve(modules));\n })\n }\n );\n },\n loadRequire() {\n if (window.requirejs) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = `${this.getCdn()}/[email protected]/require.min.js`;\n script.onload = resolve;\n script.onerror = reject;\n document.head.appendChild(script);\n });\n },\n getJupyterBaseUrl() {\n // if base url is set, we use ./ for relative paths compared to the base url\n if (document.getElementsByTagName(\"base\").length) {\n return \"./\";\n }\n const labConfigData = document.getElementById('jupyter-config-data');\n if (labConfigData) {\n /* lab and Voila */\n return JSON.parse(labConfigData.textContent).baseUrl;\n }\n let base = document.body.dataset.baseUrl || document.baseURI;\n if (!base.endsWith('/')) {\n base += '/';\n }\n return base\n },\n getCdn() {\n return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);\n }\n },\n updated() {\n // if the html gets update, re-run mermaid\n this.mermaid.init();\n\n if(window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n }\n}\n</script>\n "
}
},
"bc737b53740b4c3f915a80350677dfb1": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"6dae50ec2ce4435f98628beee1df59ee": {
"model_module": "jupyter-vuetify",
"model_name": "HtmlModel",
"model_module_version": "^1.10.0",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "HtmlModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"Assistant"
],
"class_": "message-name left",
"layout": null,
"slot": null,
"style_": "font-weight: bold;",
"tag": "span",
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": []
}
},
"d1555ea83a6a45ed9969bde7ab2c751d": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_bc737b53740b4c3f915a80350677dfb1",
"methods": null,
"template": "\n<template>\n <div class=\"solara-markdown rendered_html jp-RenderedHTMLCommon\" style=\"\"><p>Hi!</p></div>\n</template>\n\n<script>\nmodule.exports = {\n async mounted() {\n this.cdn = 'https://cdn.jsdelivr.net/npm/';\n await this.loadRequire();\n this.mermaid = await this.loadMermaid();\n this.mermaid.init();\n this.latexSettings = {\n delimiters: [\n {left: \"$$\", right: \"$$\", display: true},\n {left: \"$\", right: \"$\", display: false},\n {left: \"\\\\[\", right: \"\\\\]\", display: true},\n {left: \"\\\\(\", right: \"\\\\)\", display: false}\n ]\n };\n if (window.renderMathInElement) {\n window.renderMathInElement(this.$el, this.latexSettings);\n } else if (window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement = await this.loadKatexExt();\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n this.$el.querySelectorAll(\"a\").forEach(a => this.setupRouter(a))\n window.md = this.$el\n },\n methods: {\n setupRouter(a) {\n let href = a.attributes['href'].value;\n if(href.startsWith(\"./\")) {\n // TODO: should we really do this?\n href = location.pathname + href.substr(1);\n a.attributes['href'].href = href;\n }\n let authLink = href.startsWith(\"/_solara/auth/\");\n if( (href.startsWith(\"./\") || href.startsWith(\"/\")) && !authLink) {\n a.onclick = e => {\n console.log(\"clicked\", href)\n if(href.startsWith(\"./\")) {\n solara.router.push(href);\n } else {\n solara.router.push(href);\n }\n e.preventDefault()\n }\n } else if(href.startsWith(\"#\")) {\n href = location.pathname + href;\n a.attributes['href'].value = href;\n } else {\n console.log(\"href\", href, \"is not a local link\")\n }\n },\n async loadKatex() {\n require.config({\n map: {\n '*': {\n 'katex': `${this.getCdn()}/[email protected]/dist/katex.min.js`,\n }\n }\n });\n const link = document.createElement('link');\n link.type = \"text/css\";\n link.rel = \"stylesheet\";\n link.href = `${this.getCdn()}/[email protected]/dist/katex.min.css`;\n document.head.appendChild(link);\n },\n async loadKatexExt() {\n this.loadKatex();\n return (await this.import([`${this.getCdn()}/[email protected]/dist/contrib/auto-render.min.js`]))[0]\n },\n async loadMermaid() {\n return (await this.import([`${this.getCdn()}/[email protected]/dist/mermaid.min.js`]))[0]\n },\n import(dependencies) {\n return this.loadRequire().then(\n () => {\n if (window.jupyterVue) {\n // in jupyterlab, we take Vue from ipyvue/jupyterVue\n define(\"vue\", [], () => window.jupyterVue.Vue);\n } else {\n define(\"vue\", ['jupyter-vue'], jupyterVue => jupyterVue.Vue);\n }\n return new Promise((resolve, reject) => {\n requirejs(dependencies, (...modules) => resolve(modules));\n })\n }\n );\n },\n loadRequire() {\n if (window.requirejs) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = `${this.getCdn()}/[email protected]/require.min.js`;\n script.onload = resolve;\n script.onerror = reject;\n document.head.appendChild(script);\n });\n },\n getJupyterBaseUrl() {\n // if base url is set, we use ./ for relative paths compared to the base url\n if (document.getElementsByTagName(\"base\").length) {\n return \"./\";\n }\n const labConfigData = document.getElementById('jupyter-config-data');\n if (labConfigData) {\n /* lab and Voila */\n return JSON.parse(labConfigData.textContent).baseUrl;\n }\n let base = document.body.dataset.baseUrl || document.baseURI;\n if (!base.endsWith('/')) {\n base += '/';\n }\n return base\n },\n getCdn() {\n return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);\n }\n },\n updated() {\n // if the html gets update, re-run mermaid\n this.mermaid.init();\n\n if(window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n }\n}\n</script>\n "
}
},
"650f67936b124f5b9ad1835dbd6f9910": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"0a299b2d8fa84b3cb5d4832131d5b602": {
"model_module": "jupyter-vuetify",
"model_name": "AvatarModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "AvatarModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_716b4152fbf64a1b84677f582f09184e"
],
"class_": null,
"color": "rgba(0,0,0,.06)",
"height": null,
"layout": null,
"left": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"right": null,
"size": null,
"slot": null,
"style_": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"a3c9a05a4edb46dca847729fa4280b8a": {
"model_module": "jupyter-vuetify",
"model_name": "SheetModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "SheetModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_6dae50ec2ce4435f98628beee1df59ee",
"IPY_MODEL_8232983ad1ce45d596c0f26a935db485"
],
"class_": "d-flex ma-0 chat-message-598e14d0-6848-4bf7-9cb6-ce490edaf29f left",
"color": null,
"dark": null,
"elevation": 0,
"height": null,
"layout": null,
"light": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"slot": null,
"style_": "flex-direction: column; align-items: stretch; row-gap: 0; border-radius: ; border-top-left-radius: 0; padding: .5em 1.5em;;",
"tag": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"e9a34c02d1d74c488ba8785400525556": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_650f67936b124f5b9ad1835dbd6f9910",
"methods": null,
"template": "\n<template>\n <span style=\"display: none\">\n </span>\n</template>\n\n<script>\nmodule.exports = {\n destroyed() {\n document.getElementById(\"ipyvue-7f5bc0ca-290d-4323-a3eb-0920e33763f4-ac9884f8bad741274ef8f2c1472024e52e5ed0c3d3a491d127aec2b62a7ba641\").remove();\n },\n};\n</script>\n \n<style id=\"7f5bc0ca-290d-4323-a3eb-0920e33763f4-ac9884f8bad741274ef8f2c1472024e52e5ed0c3d3a491d127aec2b62a7ba641\">\n\n .chat-message-598e14d0-6848-4bf7-9cb6-ce490edaf29f{\n --color: rgba(0,0,0,.06);\n max-width: 75%;\n position: relative;\n }\n .chat-message-598e14d0-6848-4bf7-9cb6-ce490edaf29f.left{\n border-top-left-radius: 0;\n background-color:var(--color);\n \n }\n .chat-message-598e14d0-6848-4bf7-9cb6-ce490edaf29f.right{\n border-top-right-radius: 0;\n background-color:var(--color);\n \n }\n \n \n</style>\n "
}
},
"ffddfc7987f4480fae94f3e7e0b97d14": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"cb6283e6f97c4844b2c6d9a9ca22293a": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"attributes": {
"class": "headline"
},
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_ffddfc7987f4480fae94f3e7e0b97d14",
"methods": null,
"tag": "span",
"template": "IPY_MODEL_cf6ad2d8c41a418282fab2d1c17b8cf8",
"unsafe_innerHTML": "A"
}
},
"d519ef3d6b8c4399a442cfbd9fce9d94": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"27736334f5f7472498760c0893b1dccb": {
"model_module": "jupyter-vuetify",
"model_name": "HtmlModel",
"model_module_version": "^1.10.0",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "HtmlModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"Assistant"
],
"class_": "message-name left",
"layout": null,
"slot": null,
"style_": "font-weight: bold;",
"tag": "span",
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": []
}
},
"bfb8178be46f44ba97590c9a85c0b45d": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_d519ef3d6b8c4399a442cfbd9fce9d94",
"methods": null,
"template": "\n<template>\n <div class=\"solara-markdown rendered_html jp-RenderedHTMLCommon\" style=\"\"></div>\n</template>\n\n<script>\nmodule.exports = {\n async mounted() {\n this.cdn = 'https://cdn.jsdelivr.net/npm/';\n await this.loadRequire();\n this.mermaid = await this.loadMermaid();\n this.mermaid.init();\n this.latexSettings = {\n delimiters: [\n {left: \"$$\", right: \"$$\", display: true},\n {left: \"$\", right: \"$\", display: false},\n {left: \"\\\\[\", right: \"\\\\]\", display: true},\n {left: \"\\\\(\", right: \"\\\\)\", display: false}\n ]\n };\n if (window.renderMathInElement) {\n window.renderMathInElement(this.$el, this.latexSettings);\n } else if (window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement = await this.loadKatexExt();\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n this.$el.querySelectorAll(\"a\").forEach(a => this.setupRouter(a))\n window.md = this.$el\n },\n methods: {\n setupRouter(a) {\n let href = a.attributes['href'].value;\n if(href.startsWith(\"./\")) {\n // TODO: should we really do this?\n href = location.pathname + href.substr(1);\n a.attributes['href'].href = href;\n }\n let authLink = href.startsWith(\"/_solara/auth/\");\n if( (href.startsWith(\"./\") || href.startsWith(\"/\")) && !authLink) {\n a.onclick = e => {\n console.log(\"clicked\", href)\n if(href.startsWith(\"./\")) {\n solara.router.push(href);\n } else {\n solara.router.push(href);\n }\n e.preventDefault()\n }\n } else if(href.startsWith(\"#\")) {\n href = location.pathname + href;\n a.attributes['href'].value = href;\n } else {\n console.log(\"href\", href, \"is not a local link\")\n }\n },\n async loadKatex() {\n require.config({\n map: {\n '*': {\n 'katex': `${this.getCdn()}/[email protected]/dist/katex.min.js`,\n }\n }\n });\n const link = document.createElement('link');\n link.type = \"text/css\";\n link.rel = \"stylesheet\";\n link.href = `${this.getCdn()}/[email protected]/dist/katex.min.css`;\n document.head.appendChild(link);\n },\n async loadKatexExt() {\n this.loadKatex();\n return (await this.import([`${this.getCdn()}/[email protected]/dist/contrib/auto-render.min.js`]))[0]\n },\n async loadMermaid() {\n return (await this.import([`${this.getCdn()}/[email protected]/dist/mermaid.min.js`]))[0]\n },\n import(dependencies) {\n return this.loadRequire().then(\n () => {\n if (window.jupyterVue) {\n // in jupyterlab, we take Vue from ipyvue/jupyterVue\n define(\"vue\", [], () => window.jupyterVue.Vue);\n } else {\n define(\"vue\", ['jupyter-vue'], jupyterVue => jupyterVue.Vue);\n }\n return new Promise((resolve, reject) => {\n requirejs(dependencies, (...modules) => resolve(modules));\n })\n }\n );\n },\n loadRequire() {\n if (window.requirejs) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = `${this.getCdn()}/[email protected]/require.min.js`;\n script.onload = resolve;\n script.onerror = reject;\n document.head.appendChild(script);\n });\n },\n getJupyterBaseUrl() {\n // if base url is set, we use ./ for relative paths compared to the base url\n if (document.getElementsByTagName(\"base\").length) {\n return \"./\";\n }\n const labConfigData = document.getElementById('jupyter-config-data');\n if (labConfigData) {\n /* lab and Voila */\n return JSON.parse(labConfigData.textContent).baseUrl;\n }\n let base = document.body.dataset.baseUrl || document.baseURI;\n if (!base.endsWith('/')) {\n base += '/';\n }\n return base\n },\n getCdn() {\n return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);\n }\n },\n updated() {\n // if the html gets update, re-run mermaid\n this.mermaid.init();\n\n if(window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n }\n}\n</script>\n "
}
},
"3e4af8687fed492ea6fcd07d4259a79a": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"39c8ec410bee46d7ab23a32a20a60676": {
"model_module": "jupyter-vuetify",
"model_name": "AvatarModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "AvatarModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_cb6283e6f97c4844b2c6d9a9ca22293a"
],
"class_": null,
"color": "rgba(0,0,0,.06)",
"height": null,
"layout": null,
"left": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"right": null,
"size": null,
"slot": null,
"style_": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"4a419e01cf5340edafa74008a3df0038": {
"model_module": "jupyter-vuetify",
"model_name": "SheetModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "SheetModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_27736334f5f7472498760c0893b1dccb",
"IPY_MODEL_bfb8178be46f44ba97590c9a85c0b45d"
],
"class_": "d-flex ma-0 chat-message-71765ce9-f7be-46b2-852e-162fb49c3fbe left",
"color": null,
"dark": null,
"elevation": 0,
"height": null,
"layout": null,
"light": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"slot": null,
"style_": "flex-direction: column; align-items: stretch; row-gap: 0; border-radius: ; border-top-left-radius: 0; padding: .5em 1.5em;;",
"tag": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"b49bfac269ed40c789d1fee591e063a6": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_3e4af8687fed492ea6fcd07d4259a79a",
"methods": null,
"template": "\n<template>\n <span style=\"display: none\">\n </span>\n</template>\n\n<script>\nmodule.exports = {\n destroyed() {\n document.getElementById(\"ipyvue-da183acd-a4cd-447e-b27f-342cbcd4cf23-fa0fd46adcd4d833a3b320e6d0392b64a94d08ba5c320a95ba0ef3730e230917\").remove();\n },\n};\n</script>\n \n<style id=\"da183acd-a4cd-447e-b27f-342cbcd4cf23-fa0fd46adcd4d833a3b320e6d0392b64a94d08ba5c320a95ba0ef3730e230917\">\n\n .chat-message-71765ce9-f7be-46b2-852e-162fb49c3fbe{\n --color: rgba(0,0,0,.06);\n max-width: 75%;\n position: relative;\n }\n .chat-message-71765ce9-f7be-46b2-852e-162fb49c3fbe.left{\n border-top-left-radius: 0;\n background-color:var(--color);\n \n }\n .chat-message-71765ce9-f7be-46b2-852e-162fb49c3fbe.right{\n border-top-right-radius: 0;\n background-color:var(--color);\n \n }\n \n \n</style>\n "
}
},
"d745742824f74b4998ac064f2763e529": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"a98ae438d16540c0bca93cc42563b2d0": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"attributes": {
"class": "headline"
},
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_d745742824f74b4998ac064f2763e529",
"methods": null,
"tag": "span",
"template": "IPY_MODEL_cf6ad2d8c41a418282fab2d1c17b8cf8",
"unsafe_innerHTML": "A"
}
},
"acad6b347aac43048cc25bf677c6c935": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"76b55ea52349450d927cf8f3744bc49e": {
"model_module": "jupyter-vuetify",
"model_name": "HtmlModel",
"model_module_version": "^1.10.0",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "HtmlModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"Assistant"
],
"class_": "message-name left",
"layout": null,
"slot": null,
"style_": "font-weight: bold;",
"tag": "span",
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": []
}
},
"65596b1519554da797ed7fd64d216675": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_acad6b347aac43048cc25bf677c6c935",
"methods": null,
"template": "\n<template>\n <div class=\"solara-markdown rendered_html jp-RenderedHTMLCommon\" style=\"\"><p>Hi!</p></div>\n</template>\n\n<script>\nmodule.exports = {\n async mounted() {\n this.cdn = 'https://cdn.jsdelivr.net/npm/';\n await this.loadRequire();\n this.mermaid = await this.loadMermaid();\n this.mermaid.init();\n this.latexSettings = {\n delimiters: [\n {left: \"$$\", right: \"$$\", display: true},\n {left: \"$\", right: \"$\", display: false},\n {left: \"\\\\[\", right: \"\\\\]\", display: true},\n {left: \"\\\\(\", right: \"\\\\)\", display: false}\n ]\n };\n if (window.renderMathInElement) {\n window.renderMathInElement(this.$el, this.latexSettings);\n } else if (window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement = await this.loadKatexExt();\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n this.$el.querySelectorAll(\"a\").forEach(a => this.setupRouter(a))\n window.md = this.$el\n },\n methods: {\n setupRouter(a) {\n let href = a.attributes['href'].value;\n if(href.startsWith(\"./\")) {\n // TODO: should we really do this?\n href = location.pathname + href.substr(1);\n a.attributes['href'].href = href;\n }\n let authLink = href.startsWith(\"/_solara/auth/\");\n if( (href.startsWith(\"./\") || href.startsWith(\"/\")) && !authLink) {\n a.onclick = e => {\n console.log(\"clicked\", href)\n if(href.startsWith(\"./\")) {\n solara.router.push(href);\n } else {\n solara.router.push(href);\n }\n e.preventDefault()\n }\n } else if(href.startsWith(\"#\")) {\n href = location.pathname + href;\n a.attributes['href'].value = href;\n } else {\n console.log(\"href\", href, \"is not a local link\")\n }\n },\n async loadKatex() {\n require.config({\n map: {\n '*': {\n 'katex': `${this.getCdn()}/[email protected]/dist/katex.min.js`,\n }\n }\n });\n const link = document.createElement('link');\n link.type = \"text/css\";\n link.rel = \"stylesheet\";\n link.href = `${this.getCdn()}/[email protected]/dist/katex.min.css`;\n document.head.appendChild(link);\n },\n async loadKatexExt() {\n this.loadKatex();\n return (await this.import([`${this.getCdn()}/[email protected]/dist/contrib/auto-render.min.js`]))[0]\n },\n async loadMermaid() {\n return (await this.import([`${this.getCdn()}/[email protected]/dist/mermaid.min.js`]))[0]\n },\n import(dependencies) {\n return this.loadRequire().then(\n () => {\n if (window.jupyterVue) {\n // in jupyterlab, we take Vue from ipyvue/jupyterVue\n define(\"vue\", [], () => window.jupyterVue.Vue);\n } else {\n define(\"vue\", ['jupyter-vue'], jupyterVue => jupyterVue.Vue);\n }\n return new Promise((resolve, reject) => {\n requirejs(dependencies, (...modules) => resolve(modules));\n })\n }\n );\n },\n loadRequire() {\n if (window.requirejs) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = `${this.getCdn()}/[email protected]/require.min.js`;\n script.onload = resolve;\n script.onerror = reject;\n document.head.appendChild(script);\n });\n },\n getJupyterBaseUrl() {\n // if base url is set, we use ./ for relative paths compared to the base url\n if (document.getElementsByTagName(\"base\").length) {\n return \"./\";\n }\n const labConfigData = document.getElementById('jupyter-config-data');\n if (labConfigData) {\n /* lab and Voila */\n return JSON.parse(labConfigData.textContent).baseUrl;\n }\n let base = document.body.dataset.baseUrl || document.baseURI;\n if (!base.endsWith('/')) {\n base += '/';\n }\n return base\n },\n getCdn() {\n return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);\n }\n },\n updated() {\n // if the html gets update, re-run mermaid\n this.mermaid.init();\n\n if(window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n }\n}\n</script>\n "
}
},
"a1061adfbe5e486eb50243032f396fb0": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"4a6b63e310cb441d8683c9f6647a2196": {
"model_module": "jupyter-vuetify",
"model_name": "AvatarModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "AvatarModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_a98ae438d16540c0bca93cc42563b2d0"
],
"class_": null,
"color": "rgba(0,0,0,.06)",
"height": null,
"layout": null,
"left": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"right": null,
"size": null,
"slot": null,
"style_": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"163cd4b05dc34909b25df83712585f9b": {
"model_module": "jupyter-vuetify",
"model_name": "SheetModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "SheetModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_76b55ea52349450d927cf8f3744bc49e",
"IPY_MODEL_0557ab0f0cd4423bb92f09c64a093662"
],
"class_": "d-flex ma-0 chat-message-b3673657-e5df-49ae-a3bd-1e926cd0d347 left",
"color": null,
"dark": null,
"elevation": 0,
"height": null,
"layout": null,
"light": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"slot": null,
"style_": "flex-direction: column; align-items: stretch; row-gap: 0; border-radius: ; border-top-left-radius: 0; padding: .5em 1.5em;;",
"tag": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"eb08cae3342c48cf9f0d451c31f6f726": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_a1061adfbe5e486eb50243032f396fb0",
"methods": null,
"template": "\n<template>\n <span style=\"display: none\">\n </span>\n</template>\n\n<script>\nmodule.exports = {\n destroyed() {\n document.getElementById(\"ipyvue-633d4c8f-df19-4bbb-8685-c716be3772d2-471748e33379172efb9a9f04f98798d0baa584625f43c1e7fd583d4ced1c6b19\").remove();\n },\n};\n</script>\n \n<style id=\"633d4c8f-df19-4bbb-8685-c716be3772d2-471748e33379172efb9a9f04f98798d0baa584625f43c1e7fd583d4ced1c6b19\">\n\n .chat-message-b3673657-e5df-49ae-a3bd-1e926cd0d347{\n --color: rgba(0,0,0,.06);\n max-width: 75%;\n position: relative;\n }\n .chat-message-b3673657-e5df-49ae-a3bd-1e926cd0d347.left{\n border-top-left-radius: 0;\n background-color:var(--color);\n \n }\n .chat-message-b3673657-e5df-49ae-a3bd-1e926cd0d347.right{\n border-top-right-radius: 0;\n background-color:var(--color);\n \n }\n \n \n</style>\n "
}
},
"01cd059ee7384f3aa1bc822356b9dbfc": {
"model_module": "jupyter-vuetify",
"model_name": "SheetModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "SheetModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_39c8ec410bee46d7ab23a32a20a60676",
"IPY_MODEL_4a419e01cf5340edafa74008a3df0038",
"IPY_MODEL_b49bfac269ed40c789d1fee591e063a6"
],
"class_": "d-flex ma-0",
"color": null,
"dark": null,
"elevation": 0,
"height": null,
"layout": null,
"light": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"slot": null,
"style_": "flex-direction: row; align-items: stretch; justify-content: start; column-gap: 12px;flex-direction:row;padding:5px;;",
"tag": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"0ee12588ba494c73ac67b74e8a011a9c": {
"model_module": "jupyter-vuetify",
"model_name": "SheetModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "SheetModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_4a6b63e310cb441d8683c9f6647a2196",
"IPY_MODEL_163cd4b05dc34909b25df83712585f9b",
"IPY_MODEL_eb08cae3342c48cf9f0d451c31f6f726"
],
"class_": "d-flex ma-0",
"color": null,
"dark": null,
"elevation": 0,
"height": null,
"layout": null,
"light": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"slot": null,
"style_": "flex-direction: row; align-items: stretch; justify-content: start; column-gap: 12px;flex-direction:row;padding:5px;;",
"tag": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"df6758af83054a0ebc3c960d098f901e": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"0557ab0f0cd4423bb92f09c64a093662": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_df6758af83054a0ebc3c960d098f901e",
"methods": null,
"template": "\n<template>\n <div class=\"solara-markdown rendered_html jp-RenderedHTMLCommon\" style=\"\"></div>\n</template>\n\n<script>\nmodule.exports = {\n async mounted() {\n this.cdn = 'https://cdn.jsdelivr.net/npm/';\n await this.loadRequire();\n this.mermaid = await this.loadMermaid();\n this.mermaid.init();\n this.latexSettings = {\n delimiters: [\n {left: \"$$\", right: \"$$\", display: true},\n {left: \"$\", right: \"$\", display: false},\n {left: \"\\\\[\", right: \"\\\\]\", display: true},\n {left: \"\\\\(\", right: \"\\\\)\", display: false}\n ]\n };\n if (window.renderMathInElement) {\n window.renderMathInElement(this.$el, this.latexSettings);\n } else if (window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement = await this.loadKatexExt();\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n this.$el.querySelectorAll(\"a\").forEach(a => this.setupRouter(a))\n window.md = this.$el\n },\n methods: {\n setupRouter(a) {\n let href = a.attributes['href'].value;\n if(href.startsWith(\"./\")) {\n // TODO: should we really do this?\n href = location.pathname + href.substr(1);\n a.attributes['href'].href = href;\n }\n let authLink = href.startsWith(\"/_solara/auth/\");\n if( (href.startsWith(\"./\") || href.startsWith(\"/\")) && !authLink) {\n a.onclick = e => {\n console.log(\"clicked\", href)\n if(href.startsWith(\"./\")) {\n solara.router.push(href);\n } else {\n solara.router.push(href);\n }\n e.preventDefault()\n }\n } else if(href.startsWith(\"#\")) {\n href = location.pathname + href;\n a.attributes['href'].value = href;\n } else {\n console.log(\"href\", href, \"is not a local link\")\n }\n },\n async loadKatex() {\n require.config({\n map: {\n '*': {\n 'katex': `${this.getCdn()}/[email protected]/dist/katex.min.js`,\n }\n }\n });\n const link = document.createElement('link');\n link.type = \"text/css\";\n link.rel = \"stylesheet\";\n link.href = `${this.getCdn()}/[email protected]/dist/katex.min.css`;\n document.head.appendChild(link);\n },\n async loadKatexExt() {\n this.loadKatex();\n return (await this.import([`${this.getCdn()}/[email protected]/dist/contrib/auto-render.min.js`]))[0]\n },\n async loadMermaid() {\n return (await this.import([`${this.getCdn()}/[email protected]/dist/mermaid.min.js`]))[0]\n },\n import(dependencies) {\n return this.loadRequire().then(\n () => {\n if (window.jupyterVue) {\n // in jupyterlab, we take Vue from ipyvue/jupyterVue\n define(\"vue\", [], () => window.jupyterVue.Vue);\n } else {\n define(\"vue\", ['jupyter-vue'], jupyterVue => jupyterVue.Vue);\n }\n return new Promise((resolve, reject) => {\n requirejs(dependencies, (...modules) => resolve(modules));\n })\n }\n );\n },\n loadRequire() {\n if (window.requirejs) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = `${this.getCdn()}/[email protected]/require.min.js`;\n script.onload = resolve;\n script.onerror = reject;\n document.head.appendChild(script);\n });\n },\n getJupyterBaseUrl() {\n // if base url is set, we use ./ for relative paths compared to the base url\n if (document.getElementsByTagName(\"base\").length) {\n return \"./\";\n }\n const labConfigData = document.getElementById('jupyter-config-data');\n if (labConfigData) {\n /* lab and Voila */\n return JSON.parse(labConfigData.textContent).baseUrl;\n }\n let base = document.body.dataset.baseUrl || document.baseURI;\n if (!base.endsWith('/')) {\n base += '/';\n }\n return base\n },\n getCdn() {\n return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);\n }\n },\n updated() {\n // if the html gets update, re-run mermaid\n this.mermaid.init();\n\n if(window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n }\n}\n</script>\n "
}
},
"e965200c16c54e4db13d74e2fbf20091": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"ac7f9b591ea04ce6bf5c69c794e4cb21": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_e965200c16c54e4db13d74e2fbf20091",
"methods": null,
"template": "\n<template>\n <div class=\"solara-markdown rendered_html jp-RenderedHTMLCommon\" style=\"\"></div>\n</template>\n\n<script>\nmodule.exports = {\n async mounted() {\n this.cdn = 'https://cdn.jsdelivr.net/npm/';\n await this.loadRequire();\n this.mermaid = await this.loadMermaid();\n this.mermaid.init();\n this.latexSettings = {\n delimiters: [\n {left: \"$$\", right: \"$$\", display: true},\n {left: \"$\", right: \"$\", display: false},\n {left: \"\\\\[\", right: \"\\\\]\", display: true},\n {left: \"\\\\(\", right: \"\\\\)\", display: false}\n ]\n };\n if (window.renderMathInElement) {\n window.renderMathInElement(this.$el, this.latexSettings);\n } else if (window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement = await this.loadKatexExt();\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n this.$el.querySelectorAll(\"a\").forEach(a => this.setupRouter(a))\n window.md = this.$el\n },\n methods: {\n setupRouter(a) {\n let href = a.attributes['href'].value;\n if(href.startsWith(\"./\")) {\n // TODO: should we really do this?\n href = location.pathname + href.substr(1);\n a.attributes['href'].href = href;\n }\n let authLink = href.startsWith(\"/_solara/auth/\");\n if( (href.startsWith(\"./\") || href.startsWith(\"/\")) && !authLink) {\n a.onclick = e => {\n console.log(\"clicked\", href)\n if(href.startsWith(\"./\")) {\n solara.router.push(href);\n } else {\n solara.router.push(href);\n }\n e.preventDefault()\n }\n } else if(href.startsWith(\"#\")) {\n href = location.pathname + href;\n a.attributes['href'].value = href;\n } else {\n console.log(\"href\", href, \"is not a local link\")\n }\n },\n async loadKatex() {\n require.config({\n map: {\n '*': {\n 'katex': `${this.getCdn()}/[email protected]/dist/katex.min.js`,\n }\n }\n });\n const link = document.createElement('link');\n link.type = \"text/css\";\n link.rel = \"stylesheet\";\n link.href = `${this.getCdn()}/[email protected]/dist/katex.min.css`;\n document.head.appendChild(link);\n },\n async loadKatexExt() {\n this.loadKatex();\n return (await this.import([`${this.getCdn()}/[email protected]/dist/contrib/auto-render.min.js`]))[0]\n },\n async loadMermaid() {\n return (await this.import([`${this.getCdn()}/[email protected]/dist/mermaid.min.js`]))[0]\n },\n import(dependencies) {\n return this.loadRequire().then(\n () => {\n if (window.jupyterVue) {\n // in jupyterlab, we take Vue from ipyvue/jupyterVue\n define(\"vue\", [], () => window.jupyterVue.Vue);\n } else {\n define(\"vue\", ['jupyter-vue'], jupyterVue => jupyterVue.Vue);\n }\n return new Promise((resolve, reject) => {\n requirejs(dependencies, (...modules) => resolve(modules));\n })\n }\n );\n },\n loadRequire() {\n if (window.requirejs) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = `${this.getCdn()}/[email protected]/require.min.js`;\n script.onload = resolve;\n script.onerror = reject;\n document.head.appendChild(script);\n });\n },\n getJupyterBaseUrl() {\n // if base url is set, we use ./ for relative paths compared to the base url\n if (document.getElementsByTagName(\"base\").length) {\n return \"./\";\n }\n const labConfigData = document.getElementById('jupyter-config-data');\n if (labConfigData) {\n /* lab and Voila */\n return JSON.parse(labConfigData.textContent).baseUrl;\n }\n let base = document.body.dataset.baseUrl || document.baseURI;\n if (!base.endsWith('/')) {\n base += '/';\n }\n return base\n },\n getCdn() {\n return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);\n }\n },\n updated() {\n // if the html gets update, re-run mermaid\n this.mermaid.init();\n\n if(window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n }\n}\n</script>\n "
}
},
"4e2718a9b8d1483580ac1efe288b5f1b": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"ec9695e8c84f47a98f636a82685ba075": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"145962e690554ef691d725e58b6fee2e": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"attributes": {
"class": "headline"
},
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_ec9695e8c84f47a98f636a82685ba075",
"methods": null,
"tag": "span",
"template": "IPY_MODEL_cf6ad2d8c41a418282fab2d1c17b8cf8",
"unsafe_innerHTML": "U"
}
},
"160d9d5a5d674d4da65bffb5741ba31b": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"attributes": {
"class": "headline"
},
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_4e2718a9b8d1483580ac1efe288b5f1b",
"methods": null,
"tag": "span",
"template": "IPY_MODEL_cf6ad2d8c41a418282fab2d1c17b8cf8",
"unsafe_innerHTML": "U"
}
},
"10b25a1644ce4ca5baab59eb751101bf": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"355e73ac11b94dea889825d3e1d0d358": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"2964cb97dcd84be4af4a393981e37308": {
"model_module": "jupyter-vuetify",
"model_name": "HtmlModel",
"model_module_version": "^1.10.0",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "HtmlModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"User"
],
"class_": "message-name right",
"layout": null,
"slot": null,
"style_": "font-weight: bold;",
"tag": "span",
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": []
}
},
"cfa084967e744e48a76ae191519edf66": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_355e73ac11b94dea889825d3e1d0d358",
"methods": null,
"template": "\n<template>\n <div class=\"solara-markdown rendered_html jp-RenderedHTMLCommon\" style=\"\"><p>Hi!</p></div>\n</template>\n\n<script>\nmodule.exports = {\n async mounted() {\n this.cdn = 'https://cdn.jsdelivr.net/npm/';\n await this.loadRequire();\n this.mermaid = await this.loadMermaid();\n this.mermaid.init();\n this.latexSettings = {\n delimiters: [\n {left: \"$$\", right: \"$$\", display: true},\n {left: \"$\", right: \"$\", display: false},\n {left: \"\\\\[\", right: \"\\\\]\", display: true},\n {left: \"\\\\(\", right: \"\\\\)\", display: false}\n ]\n };\n if (window.renderMathInElement) {\n window.renderMathInElement(this.$el, this.latexSettings);\n } else if (window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement = await this.loadKatexExt();\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n this.$el.querySelectorAll(\"a\").forEach(a => this.setupRouter(a))\n window.md = this.$el\n },\n methods: {\n setupRouter(a) {\n let href = a.attributes['href'].value;\n if(href.startsWith(\"./\")) {\n // TODO: should we really do this?\n href = location.pathname + href.substr(1);\n a.attributes['href'].href = href;\n }\n let authLink = href.startsWith(\"/_solara/auth/\");\n if( (href.startsWith(\"./\") || href.startsWith(\"/\")) && !authLink) {\n a.onclick = e => {\n console.log(\"clicked\", href)\n if(href.startsWith(\"./\")) {\n solara.router.push(href);\n } else {\n solara.router.push(href);\n }\n e.preventDefault()\n }\n } else if(href.startsWith(\"#\")) {\n href = location.pathname + href;\n a.attributes['href'].value = href;\n } else {\n console.log(\"href\", href, \"is not a local link\")\n }\n },\n async loadKatex() {\n require.config({\n map: {\n '*': {\n 'katex': `${this.getCdn()}/[email protected]/dist/katex.min.js`,\n }\n }\n });\n const link = document.createElement('link');\n link.type = \"text/css\";\n link.rel = \"stylesheet\";\n link.href = `${this.getCdn()}/[email protected]/dist/katex.min.css`;\n document.head.appendChild(link);\n },\n async loadKatexExt() {\n this.loadKatex();\n return (await this.import([`${this.getCdn()}/[email protected]/dist/contrib/auto-render.min.js`]))[0]\n },\n async loadMermaid() {\n return (await this.import([`${this.getCdn()}/[email protected]/dist/mermaid.min.js`]))[0]\n },\n import(dependencies) {\n return this.loadRequire().then(\n () => {\n if (window.jupyterVue) {\n // in jupyterlab, we take Vue from ipyvue/jupyterVue\n define(\"vue\", [], () => window.jupyterVue.Vue);\n } else {\n define(\"vue\", ['jupyter-vue'], jupyterVue => jupyterVue.Vue);\n }\n return new Promise((resolve, reject) => {\n requirejs(dependencies, (...modules) => resolve(modules));\n })\n }\n );\n },\n loadRequire() {\n if (window.requirejs) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = `${this.getCdn()}/[email protected]/require.min.js`;\n script.onload = resolve;\n script.onerror = reject;\n document.head.appendChild(script);\n });\n },\n getJupyterBaseUrl() {\n // if base url is set, we use ./ for relative paths compared to the base url\n if (document.getElementsByTagName(\"base\").length) {\n return \"./\";\n }\n const labConfigData = document.getElementById('jupyter-config-data');\n if (labConfigData) {\n /* lab and Voila */\n return JSON.parse(labConfigData.textContent).baseUrl;\n }\n let base = document.body.dataset.baseUrl || document.baseURI;\n if (!base.endsWith('/')) {\n base += '/';\n }\n return base\n },\n getCdn() {\n return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);\n }\n },\n updated() {\n // if the html gets update, re-run mermaid\n this.mermaid.init();\n\n if(window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n }\n}\n</script>\n "
}
},
"707b5ced322f410f92e339cf172fed21": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"bd858c0dca0b479bbed2bb8beb3aceef": {
"model_module": "jupyter-vuetify",
"model_name": "HtmlModel",
"model_module_version": "^1.10.0",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "HtmlModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"User"
],
"class_": "message-name right",
"layout": null,
"slot": null,
"style_": "font-weight: bold;",
"tag": "span",
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": []
}
},
"b213b4683948420193b9af7477ef3844": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_10b25a1644ce4ca5baab59eb751101bf",
"methods": null,
"template": "\n<template>\n <div class=\"solara-markdown rendered_html jp-RenderedHTMLCommon\" style=\"\"><p>Hi!</p></div>\n</template>\n\n<script>\nmodule.exports = {\n async mounted() {\n this.cdn = 'https://cdn.jsdelivr.net/npm/';\n await this.loadRequire();\n this.mermaid = await this.loadMermaid();\n this.mermaid.init();\n this.latexSettings = {\n delimiters: [\n {left: \"$$\", right: \"$$\", display: true},\n {left: \"$\", right: \"$\", display: false},\n {left: \"\\\\[\", right: \"\\\\]\", display: true},\n {left: \"\\\\(\", right: \"\\\\)\", display: false}\n ]\n };\n if (window.renderMathInElement) {\n window.renderMathInElement(this.$el, this.latexSettings);\n } else if (window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement = await this.loadKatexExt();\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n this.$el.querySelectorAll(\"a\").forEach(a => this.setupRouter(a))\n window.md = this.$el\n },\n methods: {\n setupRouter(a) {\n let href = a.attributes['href'].value;\n if(href.startsWith(\"./\")) {\n // TODO: should we really do this?\n href = location.pathname + href.substr(1);\n a.attributes['href'].href = href;\n }\n let authLink = href.startsWith(\"/_solara/auth/\");\n if( (href.startsWith(\"./\") || href.startsWith(\"/\")) && !authLink) {\n a.onclick = e => {\n console.log(\"clicked\", href)\n if(href.startsWith(\"./\")) {\n solara.router.push(href);\n } else {\n solara.router.push(href);\n }\n e.preventDefault()\n }\n } else if(href.startsWith(\"#\")) {\n href = location.pathname + href;\n a.attributes['href'].value = href;\n } else {\n console.log(\"href\", href, \"is not a local link\")\n }\n },\n async loadKatex() {\n require.config({\n map: {\n '*': {\n 'katex': `${this.getCdn()}/[email protected]/dist/katex.min.js`,\n }\n }\n });\n const link = document.createElement('link');\n link.type = \"text/css\";\n link.rel = \"stylesheet\";\n link.href = `${this.getCdn()}/[email protected]/dist/katex.min.css`;\n document.head.appendChild(link);\n },\n async loadKatexExt() {\n this.loadKatex();\n return (await this.import([`${this.getCdn()}/[email protected]/dist/contrib/auto-render.min.js`]))[0]\n },\n async loadMermaid() {\n return (await this.import([`${this.getCdn()}/[email protected]/dist/mermaid.min.js`]))[0]\n },\n import(dependencies) {\n return this.loadRequire().then(\n () => {\n if (window.jupyterVue) {\n // in jupyterlab, we take Vue from ipyvue/jupyterVue\n define(\"vue\", [], () => window.jupyterVue.Vue);\n } else {\n define(\"vue\", ['jupyter-vue'], jupyterVue => jupyterVue.Vue);\n }\n return new Promise((resolve, reject) => {\n requirejs(dependencies, (...modules) => resolve(modules));\n })\n }\n );\n },\n loadRequire() {\n if (window.requirejs) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = `${this.getCdn()}/[email protected]/require.min.js`;\n script.onload = resolve;\n script.onerror = reject;\n document.head.appendChild(script);\n });\n },\n getJupyterBaseUrl() {\n // if base url is set, we use ./ for relative paths compared to the base url\n if (document.getElementsByTagName(\"base\").length) {\n return \"./\";\n }\n const labConfigData = document.getElementById('jupyter-config-data');\n if (labConfigData) {\n /* lab and Voila */\n return JSON.parse(labConfigData.textContent).baseUrl;\n }\n let base = document.body.dataset.baseUrl || document.baseURI;\n if (!base.endsWith('/')) {\n base += '/';\n }\n return base\n },\n getCdn() {\n return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);\n }\n },\n updated() {\n // if the html gets update, re-run mermaid\n this.mermaid.init();\n\n if(window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n }\n}\n</script>\n "
}
},
"1f043e1117d34c56a06e61dfb2741ba6": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"dea729e7d6c94d808a4428bcc0b0331b": {
"model_module": "jupyter-vuetify",
"model_name": "AvatarModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "AvatarModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_145962e690554ef691d725e58b6fee2e"
],
"class_": null,
"color": "rgba(0,0,0,.06)",
"height": null,
"layout": null,
"left": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"right": null,
"size": null,
"slot": null,
"style_": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"160852ddc73445aa9de9adafe9a4c82f": {
"model_module": "jupyter-vuetify",
"model_name": "SheetModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "SheetModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_bd858c0dca0b479bbed2bb8beb3aceef",
"IPY_MODEL_b213b4683948420193b9af7477ef3844"
],
"class_": "d-flex ma-0 chat-message-3d085568-2a25-4995-9722-2ca54c053270 right",
"color": null,
"dark": null,
"elevation": 0,
"height": null,
"layout": null,
"light": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"slot": null,
"style_": "flex-direction: column; align-items: stretch; row-gap: 0; border-radius: ; border-top-right-radius: 0; padding: .5em 1.5em;;",
"tag": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"850bce75dd394326a83b6c358b6f98b6": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_1f043e1117d34c56a06e61dfb2741ba6",
"methods": null,
"template": "\n<template>\n <span style=\"display: none\">\n </span>\n</template>\n\n<script>\nmodule.exports = {\n destroyed() {\n document.getElementById(\"ipyvue-35bfc098-b828-4634-8fec-8b85d18e5f67-c2e2f95334184a82648b16d565617e6305ab83cab0bcf9ec55f302e501e87ef1\").remove();\n },\n};\n</script>\n \n<style id=\"35bfc098-b828-4634-8fec-8b85d18e5f67-c2e2f95334184a82648b16d565617e6305ab83cab0bcf9ec55f302e501e87ef1\">\n\n .chat-message-3d085568-2a25-4995-9722-2ca54c053270{\n --color: rgba(0,0,0,.06);\n max-width: 75%;\n position: relative;\n }\n .chat-message-3d085568-2a25-4995-9722-2ca54c053270.left{\n border-top-left-radius: 0;\n background-color:var(--color);\n \n }\n .chat-message-3d085568-2a25-4995-9722-2ca54c053270.right{\n border-top-right-radius: 0;\n background-color:var(--color);\n \n }\n \n \n</style>\n "
}
},
"a2e0849fad4f4ca2b77c4af678116b3c": {
"model_module": "jupyter-vuetify",
"model_name": "AvatarModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "AvatarModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_160d9d5a5d674d4da65bffb5741ba31b"
],
"class_": null,
"color": "rgba(0,0,0,.06)",
"height": null,
"layout": null,
"left": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"right": null,
"size": null,
"slot": null,
"style_": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"01eb65642e66464cb831a030da667834": {
"model_module": "jupyter-vuetify",
"model_name": "SheetModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "SheetModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_2964cb97dcd84be4af4a393981e37308",
"IPY_MODEL_cfa084967e744e48a76ae191519edf66"
],
"class_": "d-flex ma-0 chat-message-49138265-6974-4d62-a47b-c1762c59ae6b right",
"color": null,
"dark": null,
"elevation": 0,
"height": null,
"layout": null,
"light": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"slot": null,
"style_": "flex-direction: column; align-items: stretch; row-gap: 0; border-radius: ; border-top-right-radius: 0; padding: .5em 1.5em;;",
"tag": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"7f3c69042123414cbf442d5d549174b7": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_707b5ced322f410f92e339cf172fed21",
"methods": null,
"template": "\n<template>\n <span style=\"display: none\">\n </span>\n</template>\n\n<script>\nmodule.exports = {\n destroyed() {\n document.getElementById(\"ipyvue-263475c2-e9c3-4ef8-9935-807e3b4164f8-67b5a9b9781b98a2d69ac5829a4947a14cc7563fd97ce1f2816c76fbe916bb9c\").remove();\n },\n};\n</script>\n \n<style id=\"263475c2-e9c3-4ef8-9935-807e3b4164f8-67b5a9b9781b98a2d69ac5829a4947a14cc7563fd97ce1f2816c76fbe916bb9c\">\n\n .chat-message-49138265-6974-4d62-a47b-c1762c59ae6b{\n --color: rgba(0,0,0,.06);\n max-width: 75%;\n position: relative;\n }\n .chat-message-49138265-6974-4d62-a47b-c1762c59ae6b.left{\n border-top-left-radius: 0;\n background-color:var(--color);\n \n }\n .chat-message-49138265-6974-4d62-a47b-c1762c59ae6b.right{\n border-top-right-radius: 0;\n background-color:var(--color);\n \n }\n \n \n</style>\n "
}
},
"4a4555d154cb45749a8686a247dedcd6": {
"model_module": "jupyter-vuetify",
"model_name": "SheetModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "SheetModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_a2e0849fad4f4ca2b77c4af678116b3c",
"IPY_MODEL_01eb65642e66464cb831a030da667834",
"IPY_MODEL_7f3c69042123414cbf442d5d549174b7"
],
"class_": "d-flex ma-0",
"color": null,
"dark": null,
"elevation": 0,
"height": null,
"layout": null,
"light": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"slot": null,
"style_": "flex-direction: row; align-items: stretch; justify-content: end; column-gap: 12px;flex-direction:row-reverse;padding:5px;;",
"tag": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"6e1ca77f73334969995b25a701c2ef4f": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"8232983ad1ce45d596c0f26a935db485": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_6e1ca77f73334969995b25a701c2ef4f",
"methods": null,
"template": "\n<template>\n <div class=\"solara-markdown rendered_html jp-RenderedHTMLCommon\" style=\"\"></div>\n</template>\n\n<script>\nmodule.exports = {\n async mounted() {\n this.cdn = 'https://cdn.jsdelivr.net/npm/';\n await this.loadRequire();\n this.mermaid = await this.loadMermaid();\n this.mermaid.init();\n this.latexSettings = {\n delimiters: [\n {left: \"$$\", right: \"$$\", display: true},\n {left: \"$\", right: \"$\", display: false},\n {left: \"\\\\[\", right: \"\\\\]\", display: true},\n {left: \"\\\\(\", right: \"\\\\)\", display: false}\n ]\n };\n if (window.renderMathInElement) {\n window.renderMathInElement(this.$el, this.latexSettings);\n } else if (window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement = await this.loadKatexExt();\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n this.$el.querySelectorAll(\"a\").forEach(a => this.setupRouter(a))\n window.md = this.$el\n },\n methods: {\n setupRouter(a) {\n let href = a.attributes['href'].value;\n if(href.startsWith(\"./\")) {\n // TODO: should we really do this?\n href = location.pathname + href.substr(1);\n a.attributes['href'].href = href;\n }\n let authLink = href.startsWith(\"/_solara/auth/\");\n if( (href.startsWith(\"./\") || href.startsWith(\"/\")) && !authLink) {\n a.onclick = e => {\n console.log(\"clicked\", href)\n if(href.startsWith(\"./\")) {\n solara.router.push(href);\n } else {\n solara.router.push(href);\n }\n e.preventDefault()\n }\n } else if(href.startsWith(\"#\")) {\n href = location.pathname + href;\n a.attributes['href'].value = href;\n } else {\n console.log(\"href\", href, \"is not a local link\")\n }\n },\n async loadKatex() {\n require.config({\n map: {\n '*': {\n 'katex': `${this.getCdn()}/[email protected]/dist/katex.min.js`,\n }\n }\n });\n const link = document.createElement('link');\n link.type = \"text/css\";\n link.rel = \"stylesheet\";\n link.href = `${this.getCdn()}/[email protected]/dist/katex.min.css`;\n document.head.appendChild(link);\n },\n async loadKatexExt() {\n this.loadKatex();\n return (await this.import([`${this.getCdn()}/[email protected]/dist/contrib/auto-render.min.js`]))[0]\n },\n async loadMermaid() {\n return (await this.import([`${this.getCdn()}/[email protected]/dist/mermaid.min.js`]))[0]\n },\n import(dependencies) {\n return this.loadRequire().then(\n () => {\n if (window.jupyterVue) {\n // in jupyterlab, we take Vue from ipyvue/jupyterVue\n define(\"vue\", [], () => window.jupyterVue.Vue);\n } else {\n define(\"vue\", ['jupyter-vue'], jupyterVue => jupyterVue.Vue);\n }\n return new Promise((resolve, reject) => {\n requirejs(dependencies, (...modules) => resolve(modules));\n })\n }\n );\n },\n loadRequire() {\n if (window.requirejs) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = `${this.getCdn()}/[email protected]/require.min.js`;\n script.onload = resolve;\n script.onerror = reject;\n document.head.appendChild(script);\n });\n },\n getJupyterBaseUrl() {\n // if base url is set, we use ./ for relative paths compared to the base url\n if (document.getElementsByTagName(\"base\").length) {\n return \"./\";\n }\n const labConfigData = document.getElementById('jupyter-config-data');\n if (labConfigData) {\n /* lab and Voila */\n return JSON.parse(labConfigData.textContent).baseUrl;\n }\n let base = document.body.dataset.baseUrl || document.baseURI;\n if (!base.endsWith('/')) {\n base += '/';\n }\n return base\n },\n getCdn() {\n return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);\n }\n },\n updated() {\n // if the html gets update, re-run mermaid\n this.mermaid.init();\n\n if(window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n }\n}\n</script>\n "
}
},
"86d71683d20347e6b1d520e680a8f707": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"133ae25457614530bd157065d3453e62": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"attributes": {
"class": "headline"
},
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_86d71683d20347e6b1d520e680a8f707",
"methods": null,
"tag": "span",
"template": "IPY_MODEL_cf6ad2d8c41a418282fab2d1c17b8cf8",
"unsafe_innerHTML": "U"
}
},
"e1af797f98f64ecabced19ff56a0dc66": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"fae6615dd6094e5ea40d1cbb8db99c84": {
"model_module": "jupyter-vuetify",
"model_name": "HtmlModel",
"model_module_version": "^1.10.0",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "HtmlModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"User"
],
"class_": "message-name right",
"layout": null,
"slot": null,
"style_": "font-weight: bold;",
"tag": "span",
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": []
}
},
"c35cb0222f274dafbb669682a1c58228": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_e1af797f98f64ecabced19ff56a0dc66",
"methods": null,
"template": "\n<template>\n <div class=\"solara-markdown rendered_html jp-RenderedHTMLCommon\" style=\"\"><p>Hi!</p></div>\n</template>\n\n<script>\nmodule.exports = {\n async mounted() {\n this.cdn = 'https://cdn.jsdelivr.net/npm/';\n await this.loadRequire();\n this.mermaid = await this.loadMermaid();\n this.mermaid.init();\n this.latexSettings = {\n delimiters: [\n {left: \"$$\", right: \"$$\", display: true},\n {left: \"$\", right: \"$\", display: false},\n {left: \"\\\\[\", right: \"\\\\]\", display: true},\n {left: \"\\\\(\", right: \"\\\\)\", display: false}\n ]\n };\n if (window.renderMathInElement) {\n window.renderMathInElement(this.$el, this.latexSettings);\n } else if (window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement = await this.loadKatexExt();\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n this.$el.querySelectorAll(\"a\").forEach(a => this.setupRouter(a))\n window.md = this.$el\n },\n methods: {\n setupRouter(a) {\n let href = a.attributes['href'].value;\n if(href.startsWith(\"./\")) {\n // TODO: should we really do this?\n href = location.pathname + href.substr(1);\n a.attributes['href'].href = href;\n }\n let authLink = href.startsWith(\"/_solara/auth/\");\n if( (href.startsWith(\"./\") || href.startsWith(\"/\")) && !authLink) {\n a.onclick = e => {\n console.log(\"clicked\", href)\n if(href.startsWith(\"./\")) {\n solara.router.push(href);\n } else {\n solara.router.push(href);\n }\n e.preventDefault()\n }\n } else if(href.startsWith(\"#\")) {\n href = location.pathname + href;\n a.attributes['href'].value = href;\n } else {\n console.log(\"href\", href, \"is not a local link\")\n }\n },\n async loadKatex() {\n require.config({\n map: {\n '*': {\n 'katex': `${this.getCdn()}/[email protected]/dist/katex.min.js`,\n }\n }\n });\n const link = document.createElement('link');\n link.type = \"text/css\";\n link.rel = \"stylesheet\";\n link.href = `${this.getCdn()}/[email protected]/dist/katex.min.css`;\n document.head.appendChild(link);\n },\n async loadKatexExt() {\n this.loadKatex();\n return (await this.import([`${this.getCdn()}/[email protected]/dist/contrib/auto-render.min.js`]))[0]\n },\n async loadMermaid() {\n return (await this.import([`${this.getCdn()}/[email protected]/dist/mermaid.min.js`]))[0]\n },\n import(dependencies) {\n return this.loadRequire().then(\n () => {\n if (window.jupyterVue) {\n // in jupyterlab, we take Vue from ipyvue/jupyterVue\n define(\"vue\", [], () => window.jupyterVue.Vue);\n } else {\n define(\"vue\", ['jupyter-vue'], jupyterVue => jupyterVue.Vue);\n }\n return new Promise((resolve, reject) => {\n requirejs(dependencies, (...modules) => resolve(modules));\n })\n }\n );\n },\n loadRequire() {\n if (window.requirejs) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = `${this.getCdn()}/[email protected]/require.min.js`;\n script.onload = resolve;\n script.onerror = reject;\n document.head.appendChild(script);\n });\n },\n getJupyterBaseUrl() {\n // if base url is set, we use ./ for relative paths compared to the base url\n if (document.getElementsByTagName(\"base\").length) {\n return \"./\";\n }\n const labConfigData = document.getElementById('jupyter-config-data');\n if (labConfigData) {\n /* lab and Voila */\n return JSON.parse(labConfigData.textContent).baseUrl;\n }\n let base = document.body.dataset.baseUrl || document.baseURI;\n if (!base.endsWith('/')) {\n base += '/';\n }\n return base\n },\n getCdn() {\n return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);\n }\n },\n updated() {\n // if the html gets update, re-run mermaid\n this.mermaid.init();\n\n if(window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n }\n}\n</script>\n "
}
},
"a08af2fba9f74132a47a241012fcdb7b": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"23339716d7e349e2889f432cf908190b": {
"model_module": "jupyter-vuetify",
"model_name": "AvatarModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "AvatarModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_133ae25457614530bd157065d3453e62"
],
"class_": null,
"color": "rgba(0,0,0,.06)",
"height": null,
"layout": null,
"left": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"right": null,
"size": null,
"slot": null,
"style_": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"f26290aaa83d4931be921f079ac1f2cb": {
"model_module": "jupyter-vuetify",
"model_name": "SheetModel",
"model_module_version": "^1.8.5",
"state": {
"_dom_classes": [],
"_events": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_metadata": null,
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.8.5",
"_model_name": "SheetModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.8.5",
"_view_name": "VuetifyView",
"attributes": {},
"children": [
"IPY_MODEL_fae6615dd6094e5ea40d1cbb8db99c84",
"IPY_MODEL_c35cb0222f274dafbb669682a1c58228"
],
"class_": "d-flex ma-0 chat-message-645df1bf-4e6b-4963-b0af-9e3073d640a0 right",
"color": null,
"dark": null,
"elevation": 0,
"height": null,
"layout": null,
"light": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"slot": null,
"style_": "flex-direction: column; align-items: stretch; row-gap: 0; border-radius: ; border-top-right-radius: 0; padding: .5em 1.5em;;",
"tag": null,
"tile": null,
"v_model": "!!disabled!!",
"v_on": null,
"v_slots": [],
"width": null
}
},
"3c1a45e9e56a4489854bb80b6d69adb3": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_a08af2fba9f74132a47a241012fcdb7b",
"methods": null,
"template": "\n<template>\n <span style=\"display: none\">\n </span>\n</template>\n\n<script>\nmodule.exports = {\n destroyed() {\n document.getElementById(\"ipyvue-6082885a-91f1-4dd2-8584-2101b814eb8a-621b7d250225716f836ef03506d09ced620e87fafdf5a8656cf765a2caa50908\").remove();\n },\n};\n</script>\n \n<style id=\"6082885a-91f1-4dd2-8584-2101b814eb8a-621b7d250225716f836ef03506d09ced620e87fafdf5a8656cf765a2caa50908\">\n\n .chat-message-645df1bf-4e6b-4963-b0af-9e3073d640a0{\n --color: rgba(0,0,0,.06);\n max-width: 75%;\n position: relative;\n }\n .chat-message-645df1bf-4e6b-4963-b0af-9e3073d640a0.left{\n border-top-left-radius: 0;\n background-color:var(--color);\n \n }\n .chat-message-645df1bf-4e6b-4963-b0af-9e3073d640a0.right{\n border-top-right-radius: 0;\n background-color:var(--color);\n \n }\n \n \n</style>\n "
}
},
"c749d289d2a042e8934df44c6b5a178b": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"3458c4a468a54a1fa674d4a21fe38844": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_c749d289d2a042e8934df44c6b5a178b",
"methods": null,
"template": "\n<template>\n <div class=\"solara-markdown rendered_html jp-RenderedHTMLCommon\" style=\"\"><p>Hello</p></div>\n</template>\n\n<script>\nmodule.exports = {\n async mounted() {\n this.cdn = 'https://cdn.jsdelivr.net/npm/';\n await this.loadRequire();\n this.mermaid = await this.loadMermaid();\n this.mermaid.init();\n this.latexSettings = {\n delimiters: [\n {left: \"$$\", right: \"$$\", display: true},\n {left: \"$\", right: \"$\", display: false},\n {left: \"\\\\[\", right: \"\\\\]\", display: true},\n {left: \"\\\\(\", right: \"\\\\)\", display: false}\n ]\n };\n if (window.renderMathInElement) {\n window.renderMathInElement(this.$el, this.latexSettings);\n } else if (window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement = await this.loadKatexExt();\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n this.$el.querySelectorAll(\"a\").forEach(a => this.setupRouter(a))\n window.md = this.$el\n },\n methods: {\n setupRouter(a) {\n let href = a.attributes['href'].value;\n if(href.startsWith(\"./\")) {\n // TODO: should we really do this?\n href = location.pathname + href.substr(1);\n a.attributes['href'].href = href;\n }\n let authLink = href.startsWith(\"/_solara/auth/\");\n if( (href.startsWith(\"./\") || href.startsWith(\"/\")) && !authLink) {\n a.onclick = e => {\n console.log(\"clicked\", href)\n if(href.startsWith(\"./\")) {\n solara.router.push(href);\n } else {\n solara.router.push(href);\n }\n e.preventDefault()\n }\n } else if(href.startsWith(\"#\")) {\n href = location.pathname + href;\n a.attributes['href'].value = href;\n } else {\n console.log(\"href\", href, \"is not a local link\")\n }\n },\n async loadKatex() {\n require.config({\n map: {\n '*': {\n 'katex': `${this.getCdn()}/[email protected]/dist/katex.min.js`,\n }\n }\n });\n const link = document.createElement('link');\n link.type = \"text/css\";\n link.rel = \"stylesheet\";\n link.href = `${this.getCdn()}/[email protected]/dist/katex.min.css`;\n document.head.appendChild(link);\n },\n async loadKatexExt() {\n this.loadKatex();\n return (await this.import([`${this.getCdn()}/[email protected]/dist/contrib/auto-render.min.js`]))[0]\n },\n async loadMermaid() {\n return (await this.import([`${this.getCdn()}/[email protected]/dist/mermaid.min.js`]))[0]\n },\n import(dependencies) {\n return this.loadRequire().then(\n () => {\n if (window.jupyterVue) {\n // in jupyterlab, we take Vue from ipyvue/jupyterVue\n define(\"vue\", [], () => window.jupyterVue.Vue);\n } else {\n define(\"vue\", ['jupyter-vue'], jupyterVue => jupyterVue.Vue);\n }\n return new Promise((resolve, reject) => {\n requirejs(dependencies, (...modules) => resolve(modules));\n })\n }\n );\n },\n loadRequire() {\n if (window.requirejs) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = `${this.getCdn()}/[email protected]/require.min.js`;\n script.onload = resolve;\n script.onerror = reject;\n document.head.appendChild(script);\n });\n },\n getJupyterBaseUrl() {\n // if base url is set, we use ./ for relative paths compared to the base url\n if (document.getElementsByTagName(\"base\").length) {\n return \"./\";\n }\n const labConfigData = document.getElementById('jupyter-config-data');\n if (labConfigData) {\n /* lab and Voila */\n return JSON.parse(labConfigData.textContent).baseUrl;\n }\n let base = document.body.dataset.baseUrl || document.baseURI;\n if (!base.endsWith('/')) {\n base += '/';\n }\n return base\n },\n getCdn() {\n return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);\n }\n },\n updated() {\n // if the html gets update, re-run mermaid\n this.mermaid.init();\n\n if(window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n }\n}\n</script>\n "
}
},
"9463775115974d51b5bcd7153ab047c6": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"4e7e9231eaf647ddb82738ca9cacc5dd": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_9463775115974d51b5bcd7153ab047c6",
"methods": null,
"template": "\n<template>\n <div class=\"solara-markdown rendered_html jp-RenderedHTMLCommon\" style=\"\"><p>Hello</p></div>\n</template>\n\n<script>\nmodule.exports = {\n async mounted() {\n this.cdn = 'https://cdn.jsdelivr.net/npm/';\n await this.loadRequire();\n this.mermaid = await this.loadMermaid();\n this.mermaid.init();\n this.latexSettings = {\n delimiters: [\n {left: \"$$\", right: \"$$\", display: true},\n {left: \"$\", right: \"$\", display: false},\n {left: \"\\\\[\", right: \"\\\\]\", display: true},\n {left: \"\\\\(\", right: \"\\\\)\", display: false}\n ]\n };\n if (window.renderMathInElement) {\n window.renderMathInElement(this.$el, this.latexSettings);\n } else if (window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement = await this.loadKatexExt();\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n this.$el.querySelectorAll(\"a\").forEach(a => this.setupRouter(a))\n window.md = this.$el\n },\n methods: {\n setupRouter(a) {\n let href = a.attributes['href'].value;\n if(href.startsWith(\"./\")) {\n // TODO: should we really do this?\n href = location.pathname + href.substr(1);\n a.attributes['href'].href = href;\n }\n let authLink = href.startsWith(\"/_solara/auth/\");\n if( (href.startsWith(\"./\") || href.startsWith(\"/\")) && !authLink) {\n a.onclick = e => {\n console.log(\"clicked\", href)\n if(href.startsWith(\"./\")) {\n solara.router.push(href);\n } else {\n solara.router.push(href);\n }\n e.preventDefault()\n }\n } else if(href.startsWith(\"#\")) {\n href = location.pathname + href;\n a.attributes['href'].value = href;\n } else {\n console.log(\"href\", href, \"is not a local link\")\n }\n },\n async loadKatex() {\n require.config({\n map: {\n '*': {\n 'katex': `${this.getCdn()}/[email protected]/dist/katex.min.js`,\n }\n }\n });\n const link = document.createElement('link');\n link.type = \"text/css\";\n link.rel = \"stylesheet\";\n link.href = `${this.getCdn()}/[email protected]/dist/katex.min.css`;\n document.head.appendChild(link);\n },\n async loadKatexExt() {\n this.loadKatex();\n return (await this.import([`${this.getCdn()}/[email protected]/dist/contrib/auto-render.min.js`]))[0]\n },\n async loadMermaid() {\n return (await this.import([`${this.getCdn()}/[email protected]/dist/mermaid.min.js`]))[0]\n },\n import(dependencies) {\n return this.loadRequire().then(\n () => {\n if (window.jupyterVue) {\n // in jupyterlab, we take Vue from ipyvue/jupyterVue\n define(\"vue\", [], () => window.jupyterVue.Vue);\n } else {\n define(\"vue\", ['jupyter-vue'], jupyterVue => jupyterVue.Vue);\n }\n return new Promise((resolve, reject) => {\n requirejs(dependencies, (...modules) => resolve(modules));\n })\n }\n );\n },\n loadRequire() {\n if (window.requirejs) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = `${this.getCdn()}/[email protected]/require.min.js`;\n script.onload = resolve;\n script.onerror = reject;\n document.head.appendChild(script);\n });\n },\n getJupyterBaseUrl() {\n // if base url is set, we use ./ for relative paths compared to the base url\n if (document.getElementsByTagName(\"base\").length) {\n return \"./\";\n }\n const labConfigData = document.getElementById('jupyter-config-data');\n if (labConfigData) {\n /* lab and Voila */\n return JSON.parse(labConfigData.textContent).baseUrl;\n }\n let base = document.body.dataset.baseUrl || document.baseURI;\n if (!base.endsWith('/')) {\n base += '/';\n }\n return base\n },\n getCdn() {\n return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);\n }\n },\n updated() {\n // if the html gets update, re-run mermaid\n this.mermaid.init();\n\n if(window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n }\n}\n</script>\n "
}
},
"976f83eb6694425f8a52060b7acfd243": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"6ecb34cc5efb45d28ebc7b04bacd881e": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"7da01d162a4a4872a951aa3e64f83048": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_976f83eb6694425f8a52060b7acfd243",
"methods": null,
"template": "\n<template>\n <div class=\"solara-markdown rendered_html jp-RenderedHTMLCommon\" style=\"\"><p>Hello!</p></div>\n</template>\n\n<script>\nmodule.exports = {\n async mounted() {\n this.cdn = 'https://cdn.jsdelivr.net/npm/';\n await this.loadRequire();\n this.mermaid = await this.loadMermaid();\n this.mermaid.init();\n this.latexSettings = {\n delimiters: [\n {left: \"$$\", right: \"$$\", display: true},\n {left: \"$\", right: \"$\", display: false},\n {left: \"\\\\[\", right: \"\\\\]\", display: true},\n {left: \"\\\\(\", right: \"\\\\)\", display: false}\n ]\n };\n if (window.renderMathInElement) {\n window.renderMathInElement(this.$el, this.latexSettings);\n } else if (window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement = await this.loadKatexExt();\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n this.$el.querySelectorAll(\"a\").forEach(a => this.setupRouter(a))\n window.md = this.$el\n },\n methods: {\n setupRouter(a) {\n let href = a.attributes['href'].value;\n if(href.startsWith(\"./\")) {\n // TODO: should we really do this?\n href = location.pathname + href.substr(1);\n a.attributes['href'].href = href;\n }\n let authLink = href.startsWith(\"/_solara/auth/\");\n if( (href.startsWith(\"./\") || href.startsWith(\"/\")) && !authLink) {\n a.onclick = e => {\n console.log(\"clicked\", href)\n if(href.startsWith(\"./\")) {\n solara.router.push(href);\n } else {\n solara.router.push(href);\n }\n e.preventDefault()\n }\n } else if(href.startsWith(\"#\")) {\n href = location.pathname + href;\n a.attributes['href'].value = href;\n } else {\n console.log(\"href\", href, \"is not a local link\")\n }\n },\n async loadKatex() {\n require.config({\n map: {\n '*': {\n 'katex': `${this.getCdn()}/[email protected]/dist/katex.min.js`,\n }\n }\n });\n const link = document.createElement('link');\n link.type = \"text/css\";\n link.rel = \"stylesheet\";\n link.href = `${this.getCdn()}/[email protected]/dist/katex.min.css`;\n document.head.appendChild(link);\n },\n async loadKatexExt() {\n this.loadKatex();\n return (await this.import([`${this.getCdn()}/[email protected]/dist/contrib/auto-render.min.js`]))[0]\n },\n async loadMermaid() {\n return (await this.import([`${this.getCdn()}/[email protected]/dist/mermaid.min.js`]))[0]\n },\n import(dependencies) {\n return this.loadRequire().then(\n () => {\n if (window.jupyterVue) {\n // in jupyterlab, we take Vue from ipyvue/jupyterVue\n define(\"vue\", [], () => window.jupyterVue.Vue);\n } else {\n define(\"vue\", ['jupyter-vue'], jupyterVue => jupyterVue.Vue);\n }\n return new Promise((resolve, reject) => {\n requirejs(dependencies, (...modules) => resolve(modules));\n })\n }\n );\n },\n loadRequire() {\n if (window.requirejs) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = `${this.getCdn()}/[email protected]/require.min.js`;\n script.onload = resolve;\n script.onerror = reject;\n document.head.appendChild(script);\n });\n },\n getJupyterBaseUrl() {\n // if base url is set, we use ./ for relative paths compared to the base url\n if (document.getElementsByTagName(\"base\").length) {\n return \"./\";\n }\n const labConfigData = document.getElementById('jupyter-config-data');\n if (labConfigData) {\n /* lab and Voila */\n return JSON.parse(labConfigData.textContent).baseUrl;\n }\n let base = document.body.dataset.baseUrl || document.baseURI;\n if (!base.endsWith('/')) {\n base += '/';\n }\n return base\n },\n getCdn() {\n return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);\n }\n },\n updated() {\n // if the html gets update, re-run mermaid\n this.mermaid.init();\n\n if(window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n }\n}\n</script>\n "
}
},
"916fd835324745caaea77305f65963ea": {
"model_module": "jupyter-vuetify",
"model_name": "VuetifyTemplateModel",
"model_module_version": "^1.10.0",
"state": {
"_component_instances": [],
"_dom_classes": [],
"_jupyter_vue": "IPY_MODEL_a84a0e5036b047ddbe18a6684dd26694",
"_model_module": "jupyter-vuetify",
"_model_module_version": "^1.10.0",
"_model_name": "VuetifyTemplateModel",
"_view_count": null,
"_view_module": "jupyter-vuetify",
"_view_module_version": "^1.10.0",
"_view_name": "VuetifyView",
"components": null,
"css": null,
"data": null,
"events": [],
"layout": "IPY_MODEL_6ecb34cc5efb45d28ebc7b04bacd881e",
"methods": null,
"template": "\n<template>\n <div class=\"solara-markdown rendered_html jp-RenderedHTMLCommon\" style=\"\"><p>Hello!</p></div>\n</template>\n\n<script>\nmodule.exports = {\n async mounted() {\n this.cdn = 'https://cdn.jsdelivr.net/npm/';\n await this.loadRequire();\n this.mermaid = await this.loadMermaid();\n this.mermaid.init();\n this.latexSettings = {\n delimiters: [\n {left: \"$$\", right: \"$$\", display: true},\n {left: \"$\", right: \"$\", display: false},\n {left: \"\\\\[\", right: \"\\\\]\", display: true},\n {left: \"\\\\(\", right: \"\\\\)\", display: false}\n ]\n };\n if (window.renderMathInElement) {\n window.renderMathInElement(this.$el, this.latexSettings);\n } else if (window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement = await this.loadKatexExt();\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n this.$el.querySelectorAll(\"a\").forEach(a => this.setupRouter(a))\n window.md = this.$el\n },\n methods: {\n setupRouter(a) {\n let href = a.attributes['href'].value;\n if(href.startsWith(\"./\")) {\n // TODO: should we really do this?\n href = location.pathname + href.substr(1);\n a.attributes['href'].href = href;\n }\n let authLink = href.startsWith(\"/_solara/auth/\");\n if( (href.startsWith(\"./\") || href.startsWith(\"/\")) && !authLink) {\n a.onclick = e => {\n console.log(\"clicked\", href)\n if(href.startsWith(\"./\")) {\n solara.router.push(href);\n } else {\n solara.router.push(href);\n }\n e.preventDefault()\n }\n } else if(href.startsWith(\"#\")) {\n href = location.pathname + href;\n a.attributes['href'].value = href;\n } else {\n console.log(\"href\", href, \"is not a local link\")\n }\n },\n async loadKatex() {\n require.config({\n map: {\n '*': {\n 'katex': `${this.getCdn()}/[email protected]/dist/katex.min.js`,\n }\n }\n });\n const link = document.createElement('link');\n link.type = \"text/css\";\n link.rel = \"stylesheet\";\n link.href = `${this.getCdn()}/[email protected]/dist/katex.min.css`;\n document.head.appendChild(link);\n },\n async loadKatexExt() {\n this.loadKatex();\n return (await this.import([`${this.getCdn()}/[email protected]/dist/contrib/auto-render.min.js`]))[0]\n },\n async loadMermaid() {\n return (await this.import([`${this.getCdn()}/[email protected]/dist/mermaid.min.js`]))[0]\n },\n import(dependencies) {\n return this.loadRequire().then(\n () => {\n if (window.jupyterVue) {\n // in jupyterlab, we take Vue from ipyvue/jupyterVue\n define(\"vue\", [], () => window.jupyterVue.Vue);\n } else {\n define(\"vue\", ['jupyter-vue'], jupyterVue => jupyterVue.Vue);\n }\n return new Promise((resolve, reject) => {\n requirejs(dependencies, (...modules) => resolve(modules));\n })\n }\n );\n },\n loadRequire() {\n if (window.requirejs) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = `${this.getCdn()}/[email protected]/require.min.js`;\n script.onload = resolve;\n script.onerror = reject;\n document.head.appendChild(script);\n });\n },\n getJupyterBaseUrl() {\n // if base url is set, we use ./ for relative paths compared to the base url\n if (document.getElementsByTagName(\"base\").length) {\n return \"./\";\n }\n const labConfigData = document.getElementById('jupyter-config-data');\n if (labConfigData) {\n /* lab and Voila */\n return JSON.parse(labConfigData.textContent).baseUrl;\n }\n let base = document.body.dataset.baseUrl || document.baseURI;\n if (!base.endsWith('/')) {\n base += '/';\n }\n return base\n },\n getCdn() {\n return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);\n }\n },\n updated() {\n // if the html gets update, re-run mermaid\n this.mermaid.init();\n\n if(window.MathJax && MathJax.Hub) {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, this.$el]);\n } else {\n window.renderMathInElement(this.$el, this.latexSettings);\n }\n }\n}\n</script>\n "
}
}
}
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/alonsosilvaallende/4f2ab1647ed12dd6162565cd73f8b930/solara-mistral-chat-interface.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "markdown",
"source": [
"## Chat Interface\n",
"\n",
"Let's implement a simple chat interface. To do this, we need to install `solara` and `mistralai` libraries. This demo uses `solara===1.41.0` and `mistralai===1.1.0`"
],
"metadata": {
"id": "i-CFACIiwg1D"
}
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"id": "Un_POTbivxK0"
},
"outputs": [],
"source": [
"%pip install --quiet solara==1.41.0 mistralai==1.1.0"
]
},
{
"cell_type": "markdown",
"source": [
"Create your `Mistral` client instance using your Mistral API key stored in your Colab Secrets."
],
"metadata": {
"id": "gYGloWOwxFWt"
}
},
{
"cell_type": "code",
"source": [
"from mistralai import Mistral\n",
"from google.colab import userdata\n",
"\n",
"MISTRAL_API_KEY = userdata.get('MISTRAL_API_KEY')\n",
"client = Mistral(api_key=MISTRAL_API_KEY)"
],
"metadata": {
"id": "qWkT9Yvyw1lt"
},
"execution_count": 2,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"Let's initialize a reactive variable `messages` where all the messages will be stored."
],
"metadata": {
"id": "e8vik-8V8AYM"
}
},
{
"cell_type": "code",
"source": [
"import solara as sl\n",
"from typing import List\n",
"from typing_extensions import TypedDict\n",
"\n",
"class MessageDict(TypedDict):\n",
" role: str\n",
" content: str\n",
"\n",
"messages: sl.Reactive[List[MessageDict]] = sl.reactive([])"
],
"metadata": {
"id": "eMuQcO2DxWbT"
},
"execution_count": 3,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"Initially, the value of the reactive variable `messages` is an empty list."
],
"metadata": {
"id": "SEXhqMOB8Jmj"
}
},
{
"cell_type": "code",
"source": [
"messages.value"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "gf79os5b3Ke2",
"outputId": "f9d78f81-0906-4d5a-d18e-6f696504f8e9"
},
"execution_count": 4,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"[]"
]
},
"metadata": {},
"execution_count": 4
}
]
},
{
"cell_type": "markdown",
"source": [
"Let's add some messages to see how to display them. For example:"
],
"metadata": {
"id": "x5dV-v4rHRNI"
}
},
{
"cell_type": "code",
"source": [
"messages.value = [\n",
" {\"role\": \"user\", \"content\": \"Hello!\"},\n",
" {\"role\": \"assistant\", \"content\": \"Hello! How can I assist you today?\"},\n",
" ]"
],
"metadata": {
"id": "7ytP8EUiHZtg"
},
"execution_count": 5,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"Given a list of messages, we will display them as follows."
],
"metadata": {
"id": "WoBIFVU2G_9g"
}
},
{
"cell_type": "code",
"source": [
"@sl.component\n",
"def Page():\n",
" with sl.lab.ChatBox():\n",
" for item in messages.value:\n",
" with sl.lab.ChatMessage(\n",
" user=item[\"role\"] == \"user\",\n",
" name=\"User\" if item[\"role\"] == \"user\" else \"Assistant\"\n",
" ):\n",
" sl.Markdown(item[\"content\"])\n",
"Page()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 193,
"referenced_widgets": [
"8566f21ebbad419b9684b4bdaf24aa14",
"cd787c0e5208424ba5ed73f4a48b4cfa",
"9f3c73add20f4e268222e8ec9ad4d90f",
"cf6ad2d8c41a418282fab2d1c17b8cf8",
"c0f1620c45664bea919771dc913a3888",
"e30917e84ea041108e81785210c937a0",
"77df89a2055245c8b87b96a8dc4e9625",
"93897c7805ea483eb4cd9ce15b9a1b88",
"d53ad0c0d6c544c085c6bf281b536a30",
"7fca4d3e7c744f68a804c4ea6506c71b",
"503a62e4e6bc42b3a2f2a7972ef9e26b",
"042a35452fe246ed8a8c0b02eaaa0769",
"27646a07dc2a4cf9828e29bcc8c0e5e9",
"22cdbcac882f45ad8a0220163a9e97ce",
"6de321d107c94f4a943a6f6c6ec4c122",
"decbee8531424e1ea2271dbb515eb50d",
"638557cc2ed74dff8a91c9d6a78eb5cd",
"5b80b823c94e4ddb8105a662dbd13296",
"d2c62c97d1a34bbd81adba0a6d442fe4",
"fcabf75c07994c6280c1d5804d986298",
"ffc2af9bac9f4cfea7af2db001158bdc",
"82a63ac6a6254b7ba24850088d184b26",
"72740b725fcf4165babc519943a0f0c2",
"6ce1775a46244a24b6483e0d586dcb7d",
"75a173daabb64f1c9675721a970f7882",
"ada3621e74034a94975d07f8f236e8a5",
"bef160e1c7414930a4cedba5f3d8267f",
"240acb1d17d842c88d578a0937156ed9",
"88a96ca648254928b835949c1590e03b",
"23559be915eb4de6b9c5531f1a313af9",
"1ff99c3189094a3b8a7fe3f5b6254f68",
"a9da24e0a444459396f7c09f68298a33",
"d2cf9695bf524d6a8c29e1209edd870d",
"103ef898135e4162a4c09d2923648008",
"095b296f925b4870a8d81e90cdea2d3d",
"e95f4194610a43c7bb628e5067d06c3b",
"d4a0871d967c407991c06246b1372ecb",
"4053f1f9894e4c79931b44117e4eb0bd",
"cbbb48379d1a410ab75cf359c5ac4187",
"ac61359461e7402da57bbeb925a9bf9b",
"af553f2887444389b3845bf3ed261861",
"c4f7f15f525d49f3829ded1ec91b41be",
"c235ca26956744adbd1581bb66cb91c5",
"79dbc206c82f4e8f9d5b9dc9b4647fa8",
"33a62ee93a9447f7b1ddb85568fca7b6",
"e1d545216c46483e888595001758d140",
"0db40f2d0027485f994057aea22d4c5f",
"029e2d0d370e47e49382d042486843cf",
"3d9c9799ee0a454e82bd7c71e130c73e",
"0c25afeba48d4943a2a49f26927c0a3a",
"095c0e104fff4aa7810a4dd674ebf066",
"aed83099b1324b57ab6007414e48f787",
"f28def656c954c7b9c7f20b4cb0c0094",
"7685a5c421ef499ba34f6b8a50091652",
"e90d311f5afa40b5b5f6ccd24bee8009",
"444dfccf84fd4ed096f5faa20420f271",
"77feed005b9b442d992cc0fb4dd798c4",
"de1efe0979ea4482a8822b91070c4af5",
"d6a6fee53cae498fb6b8f488b7e6fd14",
"3c9ce8a875604c87b8e301401e6dd8ac",
"49ffa4b98eae43e08c6f5c0520850762",
"fe158d7e27ca40a69bf05c9fd30da9b3",
"74042a5d5fb446a18e1902359b7954c5",
"4ffb086cf7484f30b65d4f0223de238c",
"2d221abf10084eb3a5303651fd0fba02",
"b9adbe4e67ee4500acc5f7fb27f36af4",
"8607d4e9cbae44908b902a7f0a4cbd94",
"cd0f65de069f4e26afa571fdcba84a98",
"7be44d12b54f4b5c87c3bb988b598097",
"5aba79eec49c4708b52931fdcce508ae",
"df6ae095beb74ba7a930dd66818a0823",
"0f4a803e85b54e1887b3f674a99910b7",
"dc5f4ed28345445994775293bab0d18e",
"e8201bca6842477d8331807f05f56d2c",
"aa77d298e432462bb4c9ec74a42257e9",
"08520e6a12d741b7ab35bb3a3c4c148d",
"7ad29b73ce46429da60e2323f10597c3",
"99fdf60dbe544921a622a92e1ffbd0ea",
"9a851d01085e43d5b15e47b912ffcada",
"53a032127fc64bd38e715653bd682f39",
"d6d92fa3b223420fb0c8dfaf49b34e94",
"677bcb7959ee4c0a98511ee4a87cd50a",
"889825ecabe749b68a22827524e7cba6",
"2948eccf56fb476db7c1eed2ea57be5d",
"eb00be48118f404b818bb9533fa81534",
"31d7ea1a5a514572876a0c827f06d021",
"3d9a51cd9de64262b66cab791072fd53",
"520160bb0c9847c7b790ba0d8bc848cd",
"d44c1514b01146b0ac381e8f493c6eca",
"509792605c5e4546b1d777960166be47",
"9953744416dc4b79a64608964a9cf429",
"92f8b0ef39c74c09b2cefd6da19bcee2",
"75d7d298180d42a1bfb4154a02dfa167",
"c74e786f6a5f42b388d0e35caef2f0cf",
"d32e56b4df4f4c79b679ca4a14266199",
"c844d000d4fb403c8936ac55a94e4816",
"cad5e960753b4ade841d62aef5de0303",
"9f1d1d53da1342b5ae6f81ac3a384b9f",
"57fb52d6caf84affb33f155b45dbb309",
"27366af528fd4a52a0ffab096fbd176e",
"57b550e16efd455b8a58d4627d0e826f",
"2c667b986cf34cc0ac07b1b964b22b16",
"63026a67ddfa4825afb59b3470e394e8",
"e904a0c8c5b04576baabf80a113cbaf7",
"16dd566d4b094514bb59141c9c31b777",
"886f8c2dfb1540eeb25d8e20bde4a2fa",
"5946b960f3e344808bf31ad55d861bfd",
"783a59b91da342839a610f5a363d1c5c",
"886f3db327a44d17a77f82e873643e6e",
"c5d93460c4b640629c65cc714ea879ac",
"38cf67b442174906a996d0ac4a58f802",
"6e9212836f5d4a1fbb0b68e9fcde4a54",
"0c4ef41728a3460da07ad8a960e06e4a",
"5464fbf3ea7e4d9d8fbbcd5d80424d77",
"88de8e2b9bd34c5db3c58f95f5e5e3df",
"cfc7c93e0c694dff8ab231c780ad9243",
"348f0517528a4a3a9f1eca93c197340a",
"97089d6327e84677b5e52fa6042cf3f9",
"9cb8a27eeef945fe9e7e6809a603ddff",
"d3f203aa6e8141c48eb69f5b6db06f92",
"c34fa8314ebe4408a0046fa218185da8",
"c9d9a56c362c4595bd5b764f5a15eac1",
"dbc2ca823c784305a1b6ec90dcce0d84",
"a473a23269ca4efa9398b608f50dd28d",
"c5dbf64667fe419799bf6d881c615940",
"b8522725140444a88a7fd6d62bfaad04",
"7161c663967447739096a37c392e7d41",
"43a3e72b93574ed78662893d76b79ba0",
"fe4c22202d4d495faf564565eeb1b3cb",
"92d048d84bc348e08e8d9aa0d7e19c13",
"51684010ae8f4acf8a0cd23a7be16589",
"00a3792c0bab429db485bcde05bbe19d",
"b10238c1257840d7abc539ee7a9cfc25",
"a46272bd0865454d9ed83e4880b648d2"
]
},
"id": "V6gSs0tpHBuA",
"outputId": "c12cd88a-430b-42cf-92ef-f561e802413e"
},
"execution_count": 6,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"Html(layout=None, style_='display: none', tag='span')"
],
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
"model_id": "8566f21ebbad419b9684b4bdaf24aa14"
}
},
"metadata": {
"application/vnd.jupyter.widget-view+json": {
"colab": {
"custom_widget_manager": {
"url": "https://ssl.gstatic.com/colaboratory-static/widgets/colab-cdn-widget-manager/2b70e893a8ba7c0f/manager.min.js"
}
}
}
}
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"Cannot show ipywidgets in text"
],
"text/html": [
"Cannot show widget. You probably want to rerun the code cell above (<i>Click in the code cell, and press Shift+Enter <kbd>⇧</kbd>+<kbd>↩</kbd></i>)."
],
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
"model_id": "240acb1d17d842c88d578a0937156ed9"
}
},
"metadata": {
"application/vnd.jupyter.widget-view+json": {
"colab": {
"custom_widget_manager": {
"url": "https://ssl.gstatic.com/colaboratory-static/widgets/colab-cdn-widget-manager/2b70e893a8ba7c0f/manager.min.js"
}
}
}
}
}
]
},
{
"cell_type": "markdown",
"source": [
"Given a list of messages where the last one is a user message, we query a Mistral model and retrieve the response. To make the interaction smooth, we handle it by streaming the response. For this, we define a generator."
],
"metadata": {
"id": "2dHNngad8esw"
}
},
{
"cell_type": "code",
"source": [
"def response_generator(messages):\n",
" response = client.chat.stream(model=\"open-mistral-7b\", messages=messages, max_tokens=1024, random_seed=12)\n",
" for chunk in response:\n",
" yield chunk.data.choices[0].delta.content"
],
"metadata": {
"id": "YaH60K8qxzpZ"
},
"execution_count": 7,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"To test our generator, let's add a user message to our list of messages."
],
"metadata": {
"id": "dXWAqMRn8qgw"
}
},
{
"cell_type": "code",
"source": [
"messages.value = [{\"role\": \"user\", \"content\": \"Hi!\"}]\n",
"messages.value"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 35
},
"id": "80Rdihsk3XaK",
"outputId": "8846d3dd-b846-42d0-9ee8-18705e143fc9"
},
"execution_count": 8,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"[{'role': 'user', 'content': 'Hi!'}]"
]
},
"metadata": {},
"execution_count": 8
}
]
},
{
"cell_type": "markdown",
"source": [
"Now, let's test that the generator is working."
],
"metadata": {
"id": "TObeONZR9Imr"
}
},
{
"cell_type": "code",
"source": [
"for chunk in response_generator(messages.value):\n",
" print(chunk)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "XlltoZaG3Oi0",
"outputId": "a1c9271e-0212-4071-da38-6082251a70e7"
},
"execution_count": 9,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"\n",
"Hello\n",
"!\n",
" How\n",
" can\n",
" I\n",
" help\n",
" you\n",
" today\n",
"?\n",
" \n",
"😊\n",
"\n"
]
}
]
},
{
"cell_type": "markdown",
"source": [
"Let's empty again our list of messages."
],
"metadata": {
"id": "yHAPpPRvDQBD"
}
},
{
"cell_type": "code",
"source": [
"messages.value = []"
],
"metadata": {
"id": "BQ_iLw7yDMI-"
},
"execution_count": 10,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"The following step is to retrieve the input from the user and store it in the list of messages. For this, we will use `ChatInput` from `solara`. Write a message, for example \"Hi!\"."
],
"metadata": {
"id": "iYkZgFlyBRLM"
}
},
{
"cell_type": "code",
"source": [
"def send(user_message):\n",
" messages.value = [*messages.value, {\"role\": \"user\", \"content\": user_message}]\n",
"sl.lab.ChatInput(send_callback=send)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 97,
"referenced_widgets": [
"037a6bdfc810497eb4476bf7f3040540",
"a6cfd53202d84e188396052de7cd0316",
"ef089534e541419db6ee045a31f0b5c3",
"91e4d78e4d3e41a4b62df4803fcfc7ee",
"286c2d1ca656444a9bd1ef11d3e7f349",
"f6c7d8f6355e4f389f8d6f9f05ad8e49",
"f5ea092791e640f09091e7c20f1950a4",
"46ef2cd4ae6e44239eb34c51bd2d88b5",
"d262f4853c2c4c1db895fdf7879fc020",
"db0828d5043340b9b368d1b6c3b4d971"
]
},
"id": "0nFXcWF3BbTN",
"outputId": "8ec73e19-1ce3-4082-b01e-c64cb7db85b9"
},
"execution_count": 11,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"Html(layout=None, style_='display: none', tag='span')"
],
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
"model_id": "037a6bdfc810497eb4476bf7f3040540"
}
},
"metadata": {
"application/vnd.jupyter.widget-view+json": {
"colab": {
"custom_widget_manager": {
"url": "https://ssl.gstatic.com/colaboratory-static/widgets/colab-cdn-widget-manager/2b70e893a8ba7c0f/manager.min.js"
}
}
}
}
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"Cannot show ipywidgets in text"
],
"text/html": [
"Cannot show widget. You probably want to rerun the code cell above (<i>Click in the code cell, and press Shift+Enter <kbd>⇧</kbd>+<kbd>↩</kbd></i>)."
],
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
"model_id": "a6cfd53202d84e188396052de7cd0316"
}
},
"metadata": {
"application/vnd.jupyter.widget-view+json": {
"colab": {
"custom_widget_manager": {
"url": "https://ssl.gstatic.com/colaboratory-static/widgets/colab-cdn-widget-manager/2b70e893a8ba7c0f/manager.min.js"
}
}
}
}
}
]
},
{
"cell_type": "markdown",
"source": [
"The messages variable should contain your input."
],
"metadata": {
"id": "9PFZmMnQC9qU"
}
},
{
"cell_type": "code",
"source": [
"messages.value"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "cFa8_vIg4LPt",
"outputId": "64fb4dd6-a0f9-43bf-c69f-2965829516f2"
},
"execution_count": 12,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"[]"
]
},
"metadata": {},
"execution_count": 12
}
]
},
{
"cell_type": "code",
"source": [
"messages.value = [{'role': 'user', 'content': 'Hi!'}] # In case you are running all the notebook at once"
],
"metadata": {
"id": "De0BN71dnDnm"
},
"execution_count": 13,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"Notice that we want to stream the response by displaying each chunk as it is received. To achieve that, we will add each chunk as it is received to the list of messages."
],
"metadata": {
"id": "aY670AZn9a2K"
}
},
{
"cell_type": "code",
"source": [
"def add_chunk_to_ai_message(chunk: str):\n",
" messages.value = [\n",
" *messages.value[:-1],\n",
" {\n",
" \"role\": \"assistant\",\n",
" \"content\": messages.value[-1][\"content\"] + chunk,\n",
" },\n",
" ]"
],
"metadata": {
"id": "ZlUKS8Uoydlf"
},
"execution_count": 14,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"Let's test that the `add_chunk_to_ai_message` is working."
],
"metadata": {
"id": "D8_UEruP-CfL"
}
},
{
"cell_type": "code",
"source": [
"messages.value = [{\"role\": \"user\", \"content\": \"Hi!\"}]\n",
"messages.value"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "b0S9afLONVKr",
"outputId": "08132553-81a0-437a-90ca-eaa51ea46278"
},
"execution_count": 15,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"[{'role': 'user', 'content': 'Hi!'}]"
]
},
"metadata": {},
"execution_count": 15
}
]
},
{
"cell_type": "code",
"source": [
"messages.value = [*messages.value, {\"role\": \"assistant\", \"content\": \"\"}]\n",
"for chunk in response_generator([{'role': 'user', 'content': 'Hi!'}]):\n",
" add_chunk_to_ai_message(chunk)\n",
" print(messages.value)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 253
},
"id": "vhZ396762-pv",
"outputId": "37c1d923-b719-43f1-f7ef-57dc6c4af4d7"
},
"execution_count": 16,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"[{'role': 'user', 'content': 'Hi!'}, {'role': 'assistant', 'content': ''}]\n",
"[{'role': 'user', 'content': 'Hi!'}, {'role': 'assistant', 'content': 'Hello'}]\n",
"[{'role': 'user', 'content': 'Hi!'}, {'role': 'assistant', 'content': 'Hello!'}]\n",
"[{'role': 'user', 'content': 'Hi!'}, {'role': 'assistant', 'content': 'Hello! How'}]\n",
"[{'role': 'user', 'content': 'Hi!'}, {'role': 'assistant', 'content': 'Hello! How can'}]\n",
"[{'role': 'user', 'content': 'Hi!'}, {'role': 'assistant', 'content': 'Hello! How can I'}]\n",
"[{'role': 'user', 'content': 'Hi!'}, {'role': 'assistant', 'content': 'Hello! How can I help'}]\n",
"[{'role': 'user', 'content': 'Hi!'}, {'role': 'assistant', 'content': 'Hello! How can I help you'}]\n",
"[{'role': 'user', 'content': 'Hi!'}, {'role': 'assistant', 'content': 'Hello! How can I help you today'}]\n",
"[{'role': 'user', 'content': 'Hi!'}, {'role': 'assistant', 'content': 'Hello! How can I help you today?'}]\n",
"[{'role': 'user', 'content': 'Hi!'}, {'role': 'assistant', 'content': 'Hello! How can I help you today? '}]\n",
"[{'role': 'user', 'content': 'Hi!'}, {'role': 'assistant', 'content': 'Hello! How can I help you today? 😊'}]\n",
"[{'role': 'user', 'content': 'Hi!'}, {'role': 'assistant', 'content': 'Hello! How can I help you today? 😊'}]\n"
]
}
]
},
{
"cell_type": "markdown",
"source": [
"The messages variable contains the response"
],
"metadata": {
"id": "qOOK2YW2lqwt"
}
},
{
"cell_type": "code",
"source": [
"messages.value"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "Xx2vfpINlwnY",
"outputId": "aea994ce-65af-4b95-b86a-342d3288a8b9"
},
"execution_count": 17,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"[{'role': 'user', 'content': 'Hi!'},\n",
" {'role': 'assistant', 'content': 'Hello! How can I help you today? 😊'}]"
]
},
"metadata": {},
"execution_count": 17
}
]
},
{
"cell_type": "markdown",
"source": [
"We now create a task which will be activated by a change on the number of user messages."
],
"metadata": {
"id": "wCg-VABGD17u"
}
},
{
"cell_type": "code",
"source": [
"messages.value = []"
],
"metadata": {
"id": "3T35-SXnJMC7"
},
"execution_count": 28,
"outputs": []
},
{
"cell_type": "code",
"source": [
"# import nest_asyncio\n",
"# nest_asyncio.apply()"
],
"metadata": {
"id": "etwXsoJdMvaI"
},
"execution_count": 29,
"outputs": []
},
{
"cell_type": "code",
"source": [
"@sl.component\n",
"def Page():\n",
" user_message_count = len([m for m in messages.value if m[\"role\"] == \"user\"])\n",
" def send(user_message):\n",
" messages.value = [*messages.value, {\"role\": \"user\", \"content\": user_message}]\n",
" def response(messages):\n",
" messages.value = [*messages.value, {\"role\": \"assistant\", \"content\": \"\"}]\n",
" for chunk in response_generator(messages.value[:-1]):\n",
" add_chunk_to_ai_message(chunk)\n",
" def result():\n",
" if messages.value != []:\n",
" response(messages)\n",
" result = sl.lab.use_task(result, dependencies=[user_message_count])\n",
" with sl.lab.ChatBox():\n",
" for item in messages.value:\n",
" with sl.lab.ChatMessage(\n",
" user=item[\"role\"] == \"user\",\n",
" name=\"User\" if item[\"role\"] == \"user\" else \"Assistant\"\n",
" ):\n",
" sl.Markdown(item[\"content\"])\n",
" sl.lab.ChatInput(send_callback=send)\n",
"Page()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 331,
"referenced_widgets": [
"cf75672de6904ef7a8a8bd1eabda409e",
"a55af2431f0a442491754cf5e0a01a96",
"72bc2dd528824aa8813782c4aefbc82d",
"b20e46cddcd94d7890d848ed801ccdaa",
"84f472b007f347f1a73ce8e2dfe6b502",
"215b59d64e394ad6949462f9d7b019c5",
"751b18a1988c449b8c21f800ca4efb20",
"92fdd96d05a24bf68cf9896b1b205283",
"20d713f72dd447aba1d241c387ea1ab5",
"2e0d0bcb434449d4ba15435bf7050b75",
"79b06573123f4e54972159e8ffc35e67",
"79fe321c363e42cfbe4fb45356c00b6a",
"1c942c9a4cff4661b5a140c2f90177c7",
"cf6ad2d8c41a418282fab2d1c17b8cf8",
"081df973c8974c4482d35c72b4e5e347",
"82adef6c27c549d9b73c4dec5ce6ba65",
"e02084a99a7748298cf28fd9ef12b5a8",
"86b11f37fd6048fcb0fe86c0a98a7956",
"3621b3d1bf6443aab394349eaceae38e",
"cf573d8529194f03966a63927cf9dfe4",
"c2f7d713f4cd49acbaa409f10cce46f0",
"0754935ee63f4a618539e6e5ad679a0a",
"027477716aa441fea90f8ab31d8e197c",
"32667f86b44249279aa3a06723517f5b",
"bff17abe0c1841e580eff17fffe25358",
"394753ef344247a58f590e31326e2866",
"1026dfec97dc465d94ff5bb036809ec3",
"9296bd02ef93429387eb2511744490d3",
"f7b923ddfd364deeb9c58243b5285521",
"2f0de27be0204777bb4b27d3fcd4acd0",
"7cde9644470b428f8c2fb710631c899b",
"a389245ba3c849558d96b4d31269bba1",
"64f0f17f3c544c5bab34daabd9006f8d",
"cec8c7792eec4454ae542a33a23f6af0",
"87391b3095fa4e298bc2176a8bb39c55",
"a3e940216d6d411d8165eeefb2d187b9",
"32d181abfa074f5799ba4485e154a49d",
"b1bea3899dbb4a8687dd687e8ff00fb1",
"5729bd2ab6134ba793de888e52045cb1",
"84ecfdf4ddb04f3082eafc371e88a484",
"0dcbf75718cf4f3c9b7b370b86b795a6",
"bf70551cf8d04ea6bb5ef51b95d73da9",
"716b4152fbf64a1b84677f582f09184e",
"c72ae6ca33604f84934a3d49829deeee",
"bc737b53740b4c3f915a80350677dfb1",
"6dae50ec2ce4435f98628beee1df59ee",
"d1555ea83a6a45ed9969bde7ab2c751d",
"650f67936b124f5b9ad1835dbd6f9910",
"0a299b2d8fa84b3cb5d4832131d5b602",
"a3c9a05a4edb46dca847729fa4280b8a",
"e9a34c02d1d74c488ba8785400525556",
"51684010ae8f4acf8a0cd23a7be16589",
"dbc2ca823c784305a1b6ec90dcce0d84",
"00a3792c0bab429db485bcde05bbe19d",
"a473a23269ca4efa9398b608f50dd28d",
"c5dbf64667fe419799bf6d881c615940",
"b8522725140444a88a7fd6d62bfaad04",
"348f0517528a4a3a9f1eca93c197340a",
"97089d6327e84677b5e52fa6042cf3f9",
"9cb8a27eeef945fe9e7e6809a603ddff",
"b10238c1257840d7abc539ee7a9cfc25",
"7161c663967447739096a37c392e7d41",
"a46272bd0865454d9ed83e4880b648d2",
"43a3e72b93574ed78662893d76b79ba0",
"fe4c22202d4d495faf564565eeb1b3cb",
"92d048d84bc348e08e8d9aa0d7e19c13",
"d3f203aa6e8141c48eb69f5b6db06f92",
"c34fa8314ebe4408a0046fa218185da8",
"c9d9a56c362c4595bd5b764f5a15eac1",
"ffddfc7987f4480fae94f3e7e0b97d14",
"cb6283e6f97c4844b2c6d9a9ca22293a",
"d519ef3d6b8c4399a442cfbd9fce9d94",
"27736334f5f7472498760c0893b1dccb",
"bfb8178be46f44ba97590c9a85c0b45d",
"3e4af8687fed492ea6fcd07d4259a79a",
"39c8ec410bee46d7ab23a32a20a60676",
"4a419e01cf5340edafa74008a3df0038",
"b49bfac269ed40c789d1fee591e063a6",
"d745742824f74b4998ac064f2763e529",
"a98ae438d16540c0bca93cc42563b2d0",
"acad6b347aac43048cc25bf677c6c935",
"76b55ea52349450d927cf8f3744bc49e",
"65596b1519554da797ed7fd64d216675",
"a1061adfbe5e486eb50243032f396fb0",
"4a6b63e310cb441d8683c9f6647a2196",
"163cd4b05dc34909b25df83712585f9b",
"eb08cae3342c48cf9f0d451c31f6f726",
"01cd059ee7384f3aa1bc822356b9dbfc",
"0ee12588ba494c73ac67b74e8a011a9c",
"df6758af83054a0ebc3c960d098f901e",
"0557ab0f0cd4423bb92f09c64a093662",
"e965200c16c54e4db13d74e2fbf20091",
"ac7f9b591ea04ce6bf5c69c794e4cb21",
"4e2718a9b8d1483580ac1efe288b5f1b",
"ec9695e8c84f47a98f636a82685ba075",
"145962e690554ef691d725e58b6fee2e",
"160d9d5a5d674d4da65bffb5741ba31b",
"10b25a1644ce4ca5baab59eb751101bf",
"355e73ac11b94dea889825d3e1d0d358",
"2964cb97dcd84be4af4a393981e37308",
"cfa084967e744e48a76ae191519edf66",
"707b5ced322f410f92e339cf172fed21",
"bd858c0dca0b479bbed2bb8beb3aceef",
"b213b4683948420193b9af7477ef3844",
"1f043e1117d34c56a06e61dfb2741ba6",
"dea729e7d6c94d808a4428bcc0b0331b",
"160852ddc73445aa9de9adafe9a4c82f",
"850bce75dd394326a83b6c358b6f98b6",
"a2e0849fad4f4ca2b77c4af678116b3c",
"01eb65642e66464cb831a030da667834",
"7f3c69042123414cbf442d5d549174b7",
"4a4555d154cb45749a8686a247dedcd6",
"6e1ca77f73334969995b25a701c2ef4f",
"8232983ad1ce45d596c0f26a935db485",
"86d71683d20347e6b1d520e680a8f707",
"133ae25457614530bd157065d3453e62",
"e1af797f98f64ecabced19ff56a0dc66",
"fae6615dd6094e5ea40d1cbb8db99c84",
"c35cb0222f274dafbb669682a1c58228",
"a08af2fba9f74132a47a241012fcdb7b",
"23339716d7e349e2889f432cf908190b",
"f26290aaa83d4931be921f079ac1f2cb",
"3c1a45e9e56a4489854bb80b6d69adb3",
"c749d289d2a042e8934df44c6b5a178b",
"3458c4a468a54a1fa674d4a21fe38844",
"9463775115974d51b5bcd7153ab047c6",
"4e7e9231eaf647ddb82738ca9cacc5dd",
"976f83eb6694425f8a52060b7acfd243",
"6ecb34cc5efb45d28ebc7b04bacd881e",
"7da01d162a4a4872a951aa3e64f83048",
"916fd835324745caaea77305f65963ea"
]
},
"id": "SE1dnqwNynQx",
"outputId": "81a2134b-03e7-4071-863f-0d7c5fe2e9f9"
},
"execution_count": 30,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"Html(layout=None, style_='display: none', tag='span')"
],
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
"model_id": "cf75672de6904ef7a8a8bd1eabda409e"
}
},
"metadata": {
"application/vnd.jupyter.widget-view+json": {
"colab": {
"custom_widget_manager": {
"url": "https://ssl.gstatic.com/colaboratory-static/widgets/colab-cdn-widget-manager/2b70e893a8ba7c0f/manager.min.js"
}
}
}
}
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"Cannot show ipywidgets in text"
],
"text/html": [
"Cannot show widget. You probably want to rerun the code cell above (<i>Click in the code cell, and press Shift+Enter <kbd>⇧</kbd>+<kbd>↩</kbd></i>)."
],
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
"model_id": "a55af2431f0a442491754cf5e0a01a96"
}
},
"metadata": {
"application/vnd.jupyter.widget-view+json": {
"colab": {
"custom_widget_manager": {
"url": "https://ssl.gstatic.com/colaboratory-static/widgets/colab-cdn-widget-manager/2b70e893a8ba7c0f/manager.min.js"
}
}
}
}
}
]
},
{
"cell_type": "code",
"source": [
"messages.value"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "eFwD5sdBPSQx",
"outputId": "c67ed484-ac66-4257-c262-34da95dfe046"
},
"execution_count": 31,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"[{'role': 'user', 'content': 'Hi!'},\n",
" {'role': 'assistant', 'content': ''},\n",
" {'role': 'assistant',\n",
" 'content': 'Hello!Hello! How can I help you today? 😊 How can I help you today? 😊'}]"
]
},
"metadata": {},
"execution_count": 31
}
]
},
{
"cell_type": "code",
"source": [],
"metadata": {
"id": "yrwKNOpcPaFB"
},
"execution_count": null,
"outputs": []
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment