{ "version": 3, "sources": ["src/widgets/snackbar.imba", "src/widgets/dialog.imba"], "sourcesContent": ["tag app-snackbar\n\t# css pos:fixed b:0 l:0 w:100% p:4 ta:center bg:red5 c:white\n\n\tcss pos:fixed b:0 l:0 w:100% p:5 ta:center bg:green6/85 c:white y:100%\n\t\ttween:styles 0.5s quart-out zi:1300\n\t\tfs:lg\n\t\t&.danger bg:red6/85 \n\t\t&.info bg:yellow5/95 \n\t\t&.show y:0%\n\n\tdef mount\n\t\tawait imba.commit!\n\t\tflags.add('show')\n\t\tsetTimeout(&,data.timeout or 4000) do\n\t\t\tflags.remove('show')\n\t\t\tsetTimeout(&,500) do parentNode.removeChild(self)\n\n\tdef render\n\t\t= 400)>\n\t\t\tif data.url\n\t\t\t\t<.message>\n\t\t\t\t\t= 400) href=data.url target=\"_blank\"> data.message\n\t\t\telse\n\t\t\t\t<.message> data.message\n", "import './snackbar'\n\ntag app-dialog\n\tprop action\n\n\tcss $cover bgc:black/20 inset:0 pos:fixed d:vflex ja:center zi:1100\n\t\tcursor:default\n\t\to:0\n\t\ttween:styles 0.3s quart-out\n\t\n\tcss $box\n\t\tbgc:white rd:xl bxs:xl p:8\n\n\t\to:0 scale:0.95 y:10px\n\t\ttween:styles 0.3s quart-out\n\n\t\t# 1t:5vh @md:200px\n\t\tmax-height: calc(100vh - 3rem)\n\n\t\tw: calc(100% - 1rem) @xs:calc(100% - 2em) @sm:75%\n\t\t# width:65%\n\t\tmax-width:50rem\n\n\t\tofy:auto overscroll-behavior-y:contain\n\n\n\t\t> .alert@first\n\t\t\tmx:-8 mt:-8 px:8 py:4 bg:red5 c:white mb:6 rdt:inherit ta:center\n\n\tcss h1 ta:center fw:500\n\t\n\tcss $footer\n\t\tbdt:1px solid gray3 d:hflex fs:sm mt:3 pt:3 c:gray7 mb:-2\n\t\n\tcss self @target, self.show\n\t\tvisibility:visible pe:auto\n\t\t$box o:1 scale:1 y:0px\n\t\t$cover o:1\n\n\tcss input,textarea\n\t\tw:100% py:3 px:3 rd:md bd:1px solid bc:gray4 fs:md outline:none\n\t\tff:inherit font-style:inherit fw:inherit\n\t\t@focus bxs:glow bc:blue4\n\n\tcss textarea\n\t\tmin-height: 80px\n\n\tcss form @focus, form @focin\n\t\tinput @invalid bc:red4 bxs@focus:red-glow c:red9\n\n\tcss .button2\n\t\td:hflex py:3 px:5 w:100% j:center rd:md fs:lg fw:600 td:none\n\t\toutline:none\n\t\ttween:none\n\n\tcss self.busy\n\t\tbutton,.button o:0.5 filter:grayscale(0.4) pe:none\n\t\t# button,input,textarea o:0.5 filter:grayscale(0.4) pe:none\n\n\tdef submit e\n\t\treturn unless const res = await api.post(form.action, formData)\n\t\timba.mount if res.message\n\t\tres.code < 400 ? completed(res, e) : failed(res, e)\n\n\t# called with response after successfull submit\n\tdef completed response, event\n\t\t# console.log 'submitted!'\n\t\tself\n\n\t# called with response after failed submit\n\tdef failed response, event\n\t\tself\n\n\tget showing?\n\t\tflags.contains('show')\n\n\tdef close\n\t\tif showing?\n\t\t\tflags.remove('show')\n\t\t\tif returnFocusTo and focin?\n\t\t\t\tsetTimeout(&,10) do returnFocusTo.focus!\n\n\t\tif id and api.hash == id\n\t\t\twindow.location.hash = ''\n\t\telse\n\t\t\t$closing = setTimeout(&,300) do\n\t\t\t\tparentNode.removeChild(self)\n\n\t\tself\n\n\t# TODO use the same logic as in site-menu\n\tdef open\n\t\tclearTimeout($closing)\n\t\tsetTimeout(&,30) do\n\t\t\tunless showing?\n\t\t\t\treturnFocusTo = document.activeElement\n\t\t\t\tapi.track('engagement', \"show_{id.replace(/-/g,'_')}\") if id\n\t\t\t\tflags.add('show')\n\t\t\t\tsetTimeout(&,100) do $box..focus!\n\n\tdef mount\n\t\tschedule!\n\t\tsetTimeout(&,0) do\n\t\t\topen!\n\n\tdef unmount\n\t\tunschedule!\n\n\tdef reload\n\t\tclose!\n\t\tsetTimeout(&,500) do document.location.reload!\n\n\tget formData\n\t\tObject.fromEntries new FormData(form)\n\n\tget form\n\t\t$box\n\n\tget busy?\n\t\tclassList.contains('busy')\n\n\tdef body\n\t\t
\n\n\tdef revealed e\n\t\tself\n\n\tdef render\n\t\treturn if $node$\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tbody!"], "mappings": "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", "names": [] }