diff options
75 files changed, 2933 insertions, 2537 deletions
diff --git a/haddock-api/resources/html/Ocean.std-theme/ocean.css b/haddock-api/resources/html/Ocean.std-theme/ocean.css index 20e37ca8..0852dea5 100644 --- a/haddock-api/resources/html/Ocean.std-theme/ocean.css +++ b/haddock-api/resources/html/Ocean.std-theme/ocean.css @@ -46,6 +46,14 @@ a[href].def:hover { color: rgb(78, 98, 114); } /* @end */ +/* @group Show and hide with JS */ + +body.js-enabled .hide-when-js-enabled { + display: none; +} + +/* @end */ + /* @group Fonts & Sizes */ /* Basic technique & IE workarounds from YUI 3 @@ -106,7 +114,7 @@ pre, code, kbd, samp, tt, .src { /* @group Common */ -.caption, h1, h2, h3, h4, h5, h6 { +.caption, h1, h2, h3, h4, h5, h6, summary { font-weight: bold; color: rgb(78,98,114); margin: 0.8em 0 0.4em; @@ -168,6 +176,16 @@ p.caption.expander { min-height: 9px; } +summary { + cursor: pointer; + outline: none; + list-style-image: url(plus.gif); + list-style-position: outside; +} + +details[open] > summary { + list-style-image: url(minus.gif); +} pre { padding: 0.25em; @@ -338,7 +356,8 @@ div#style-menu-holder { z-index: 1; } -#synopsis .caption { +#synopsis summary { + display: block; float: left; width: 29px; color: rgba(255,255,255,0); @@ -346,16 +365,13 @@ div#style-menu-holder { margin: 0; font-size: 1px; padding: 0; + background: url(synopsis.png) no-repeat 0px -8px; } -#synopsis p.caption.collapser { +#synopsis details[open] > summary { background: url(synopsis.png) no-repeat -64px -8px; } -#synopsis p.caption.expander { - background: url(synopsis.png) no-repeat 0px -8px; -} - #synopsis ul { height: 100%; overflow: auto; diff --git a/haddock-api/resources/html/haddock-bundle.min.js b/haddock-api/resources/html/haddock-bundle.min.js index 64357c4a..2badbc56 100644 --- a/haddock-api/resources/html/haddock-bundle.min.js +++ b/haddock-api/resources/html/haddock-bundle.min.js @@ -1,2 +1,2 @@ -!function e(t,n,o){function r(s,a){if(!n[s]){if(!t[s]){var l="function"==typeof require&&require;if(!a&&l)return l(s,!0);if(i)return i(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var u=n[s]={exports:{}};t[s][0].call(u.exports,function(e){var n=t[s][1][e];return r(n||e)},u,u.exports,e,t,n,o)}return n[s].exports}for(var i="function"==typeof require&&require,s=0;s<o.length;s++)r(o[s]);return r}({1:[function(e,t,n){"use strict";function o(e){return(" "+e+" ").replace(_," ")}function r(e){return e.replace(k,"")}function i(e,t){return o(e.className||"").indexOf(" "+t+" ")>=0}function s(e,t){var n=o(e.className||"");n.indexOf(" "+t+" ")<0&&(e.className=r(n+" "+t))}function a(e,t){var n=o(e.className||"");n=n.replace(" "+t+" "," "),e.className=r(n)}function l(e,t,n,o){return null==o&&(o=!i(e,t)),o?(a(e,n),s(e,t)):(a(e,t),s(e,n)),o}function c(e,t){return function(n,o){return l(n,e,t,o)}}function u(e){var t=b(document.getElementById("section."+e));return x(document.getElementById("control."+e),t),h(e),t}function h(e){S[e]?delete S[e]:S[e]=!0;var t=[];for(var n in S)S.hasOwnProperty(n)&&t.push(n);document.cookie="collapsed="+encodeURIComponent(t.join("+"))}function d(e,t){document.cookie=e+"="+encodeURIComponent(t)+";path=/;"}function p(e){document.cookie=e+"=;path=/;expires=Thu, 01-Jan-1970 00:00:01 GMT;"}function f(e){for(var t=e+"=",n=document.cookie.split(";"),o=0;o<n.length;o++){for(var r=n[o];" "==r.charAt(0);)r=r.substring(1,r.length);if(0==r.indexOf(t))return decodeURIComponent(r.substring(t.length,r.length))}return null}function v(e){var t=document.getElementById("page-menu");if(t&&t.firstChild){var n=t.firstChild.cloneNode(!1);n.innerHTML=e,t.appendChild(n)}}function m(){return Array.prototype.slice.call(document.getElementsByTagName("link")).filter(function(e){return-1!=e.rel.indexOf("style")&&e.title})}function g(e){for(var t=m(),n=null,o=0;o<t.length;o++){var r=t[o];r.disabled=!0,r.title==e&&(n=r)}n?(n.disabled=!1,d("haddock-style",e)):(t[0].disabled=!1,p("haddock-style")),y(!1)}function y(e){var t=document.getElementById("style-menu");t&&b(t,e)}Object.defineProperty(n,"__esModule",{value:!0});var _=/\s\s+/g,k=/^\s+|\s+$/g,b=c("show","hide"),x=c("collapser","expander");"undefined"!=typeof window&&(window.toggleSection=u);var S={};n.restoreCollapsed=function(){var e=f("collapsed");if(e){var t=e.split("+");for(var n in t)document.getElementById("section."+t[n])&&u(t[n])}},n.addStyleMenu=function(){var e=m(),t="";e.forEach(function(e){t+="<li><a href='#' onclick=\"setActiveStyleSheet('"+e.title+"'); return false;\">"+e.title+"</a></li>"}),e.length>1&&v("<div id='style-menu-holder'><a href='#' onclick='styleMenu(); return false;'>Style ▾</a><ul id='style-menu' class='hide'>"+t+"</ul></div>")},n.resetStyle=function(){var e=f("haddock-style");e&&g(e)}},{}],2:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var o=e("./haddock-util"),r=e("./quick-jump");!function(e){"interactive"===document.readyState?e():document.addEventListener("readystatechange",function(){"interactive"===document.readyState&&e()})}(function(){o.addStyleMenu(),o.resetStyle(),o.restoreCollapsed(),r.init()})},{"./haddock-util":1,"./quick-jump":3}],3:[function(e,t,n){"use strict";function o(e,t,n){var o=new XMLHttpRequest;o.onreadystatechange=function(){o.readyState===XMLHttpRequest.DONE&&(200===o.status?t&&t(JSON.parse(o.responseText)):n&&n(o))},o.open("GET",e,!0),o.send()}function r(e){var t=document.querySelector("#page-menu"),n=document.createElement("li");t.insertBefore(n,t.firstChild),d.render(p(v,{onClick:e,title:"Quick Jump"}),t,n)}function i(e,t){return t.length<=e?t:t.slice(0,e)}function s(){return p("table",{class:"keyboard-shortcuts"},p("tr",null,p("th",null,"Key"),p("th",null,"Shortcut")),p("tr",null,p("td",null,p("span",{class:"key"},"s")),p("td",null,"Open this search box")),p("tr",null,p("td",null,p("span",{class:"key"},"esc")),p("td",null,"Close this search box")),p("tr",null,p("td",null,p("span",{class:"key"},"↓"),",",p("span",{class:"key"},"ctrl")," + ",p("span",{class:"key"},"j")),p("td",null,"Move down in search results")),p("tr",null,p("td",null,p("span",{class:"key"},"↑"),",",p("span",{class:"key"},"ctrl")," + ",p("span",{class:"key"},"k")),p("td",null,"Move up in search results")),p("tr",null,p("td",null,p("span",{class:"key"},"↵")),p("td",null,"Go to active search result")))}function a(){return p("p",null,"You can find any exported type, constructor, class, function or pattern defined in this package by (approximate) name.")}function l(e){var t=[p("p",null,"Your search for '",e.searchString,"' produced the following list of results: ",p("code",null,"[]"),"."),p("p",null,p("code",null,"Nothing")," matches your query for '",e.searchString,"'."),p("p",null,p("code",null,"Left \"no matches for '",e.searchString,"'\" :: Either String (NonEmpty SearchResult)"))];return t[(e.searchString||"a").charCodeAt(0)%t.length]}function c(e,t){d.render(p(m,{baseUrl:e||".",showHideTrigger:t||r}),document.body)}var u=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();Object.defineProperty(n,"__esModule",{value:!0});var h=e("fuse.js"),d=e("preact"),p=d.h,f=d.Component,v=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return u(t,e),t.prototype.render=function(e){return p("li",null,p("a",{href:"#",onClick:function(t){t.preventDefault(),e.onClick()}},e.title))},t}(f),m=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.linkIndex=0,t.focusPlease=!1,t.navigatedByKeyboard=!1,t}return u(t,e),t.prototype.componentWillMount=function(){var e=this;this.setState({searchString:"",isVisible:!1,expanded:{},activeLinkIndex:-1,moduleResults:[]}),o(this.props.baseUrl+"/doc-index.json",function(t){e.setState({fuse:new h(t,{threshold:.4,caseSensitive:!0,includeScore:!0,tokenize:!0,keys:["name","module"]}),moduleResults:[]})},function(t){console&&console.error("could not load 'doc-index.json' for searching",t),e.setState({failedLoading:!0})}),document.addEventListener("mousedown",this.hide.bind(this)),document.addEventListener("keydown",function(t){e.state.isVisible&&("Escape"===t.key?e.hide():"ArrowUp"===t.key||"k"===t.key&&t.ctrlKey?(t.preventDefault(),e.navigateLinks(-1)):"ArrowDown"===t.key||"j"===t.key&&t.ctrlKey?(t.preventDefault(),e.navigateLinks(1)):"Enter"===t.key&&e.state.activeLinkIndex>=0&&e.followActiveLink()),"s"===t.key&&"input"!==t.target.tagName.toLowerCase()&&(t.preventDefault(),e.show())})},t.prototype.hide=function(){this.setState({isVisible:!1})},t.prototype.show=function(){this.state.isVisible||(this.focusPlease=!0,this.setState({isVisible:!0,activeLinkIndex:-1}))},t.prototype.toggleVisibility=function(){this.state.isVisible?this.hide():this.show()},t.prototype.navigateLinks=function(e){var t=Math.max(-1,Math.min(this.linkIndex-1,this.state.activeLinkIndex+e));this.navigatedByKeyboard=!0,this.setState({activeLinkIndex:t})},t.prototype.followActiveLink=function(){this.activeLinkAction&&this.activeLinkAction()},t.prototype.updateResults=function(){var e=this.input&&this.input.value||"",t={};this.state.fuse.search(e).forEach(function(e){var n=e.item.module;(t[n]||(t[n]=[])).push(e)});var n=[];for(var o in t)!function(e){var o=t[e],r=0;o.forEach(function(e){r+=1/e.score}),n.push({module:e,totalScore:1/r,items:o})}(o);n.sort(function(e,t){return e.totalScore-t.totalScore}),this.setState({searchString:e,isVisible:!0,moduleResults:n})},t.prototype.componentDidUpdate=function(){if(this.searchResults&&this.activeLink&&this.navigatedByKeyboard){var e=this.activeLink.getClientRects()[0],t=this.searchResults.getClientRects()[0].top;e.bottom>window.innerHeight?this.searchResults.scrollTop+=e.bottom-window.innerHeight+80:e.top<t&&(this.searchResults.scrollTop-=t-e.top+80)}this.focusPlease&&this.input&&this.input.focus(),this.navigatedByKeyboard=!1,this.focusPlease=!1},t.prototype.componentDidMount=function(){this.props.showHideTrigger(this.toggleVisibility.bind(this))},t.prototype.render=function(e,t){var n=this;if(t.failedLoading)return null;this.linkIndex=0;var o=function(e){e.stopPropagation()},r=i(10,t.moduleResults).map(function(e){return n.renderResultsInModule(e)});return p("div",{id:"search",class:t.isVisible?"":"hidden"},p("div",{id:"search-form",onMouseDown:o},p("input",{placeholder:"Search in package by name",ref:function(e){n.input=e},onFocus:this.show.bind(this),onClick:this.show.bind(this),onInput:this.updateResults.bind(this)})),p("div",{id:"search-results",ref:function(e){n.searchResults=e},onMouseDown:o,onMouseOver:function(e){for(var t=e.target;t&&"function"==typeof t.getAttribute;){var o=t.getAttribute("data-link-index");if("string"==typeof o){var r=parseInt(o,10);n.setState({activeLinkIndex:r});break}t=t.parentNode}}},""===t.searchString?[p(a,null),p(s,null)]:0==r.length?p(l,{searchString:t.searchString}):p("ul",null,r)))},t.prototype.renderResultsInModule=function(e){var t=this,n=e.items,o=e.module,r=this.state.expanded[o]||n.length<=10,s=r?n:i(8,n),a=function(e){return p("li",{class:"search-result"},t.navigationLink(t.props.baseUrl+"/"+e.link,{},p(g,{html:e.display_html})))};return p("li",{class:"search-module"},p("h4",null,o),p("ul",null,s.map(function(e){return a(e.item)}),r?[]:p("li",{class:"more-results"},this.actionLink(function(){var e=Object.assign({},t.state.expanded);e[o]=!0,t.setState({expanded:e})},{},"show "+(n.length-s.length)+" more results from this module"))))},t.prototype.navigationLink=function(e,t){for(var n=this,o=[],r=2;r<arguments.length;r++)o[r-2]=arguments[r];var i=Object.assign({href:e,onClick:this.hide.bind(this)},t);return this.menuLink.apply(this,[i,function(){window.location.href=e,n.hide()}].concat(o))},t.prototype.actionLink=function(e,t){for(var n=[],o=2;o<arguments.length;o++)n[o-2]=arguments[o];var r=Object.assign({href:"#",onClick:function(t){t.preventDefault(),e()}},t);return this.menuLink.apply(this,[r,e].concat(n))},t.prototype.menuLink=function(e,t){for(var n=this,o=[],r=2;r<arguments.length;r++)o[r-2]=arguments[r];var i=this.linkIndex;i===this.state.activeLinkIndex&&(e.class=(e.class?e.class+" ":"")+"active-link",e.ref=function(e){e&&(n.activeLink=e)},this.activeLinkAction=t);var s=Object.assign({"data-link-index":i},e);return this.linkIndex+=1,p.apply(void 0,["a",s].concat(o))},t}(f),g=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return u(t,e),t.prototype.shouldComponentUpdate=function(e){return this.props.html!==e.html},t.prototype.render=function(e){return p("div",{dangerouslySetInnerHTML:{__html:e.html}})},t}(f);n.init=c,window.quickNav={init:c}},{"fuse.js":4,preact:5}],4:[function(e,t,n){!function(e,o){"object"==typeof n&&"object"==typeof t?t.exports=o():"function"==typeof define&&define.amd?define("Fuse",[],o):"object"==typeof n?n.Fuse=o():e.Fuse=o()}(this,function(){return function(e){function t(o){if(n[o])return n[o].exports;var r=n[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,t),r.l=!0,r.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,o){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:o})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=8)}([function(e,t,n){"use strict";e.exports=function(e){return"[object Array]"===Object.prototype.toString.call(e)}},function(e,t,n){"use strict";function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,n,o){return n&&e(t.prototype,n),o&&e(t,o),t}}(),i=n(5),s=n(7),a=n(4),l=function(){function e(t,n){var r=n.location,i=void 0===r?0:r,s=n.distance,l=void 0===s?100:s,c=n.threshold,u=void 0===c?.6:c,h=n.maxPatternLength,d=void 0===h?32:h,p=n.isCaseSensitive,f=void 0!==p&&p,v=n.tokenSeparator,m=void 0===v?/ +/g:v,g=n.findAllMatches,y=void 0!==g&&g,_=n.minMatchCharLength,k=void 0===_?1:_;o(this,e),this.options={location:i,distance:l,threshold:u,maxPatternLength:d,isCaseSensitive:f,tokenSeparator:m,findAllMatches:y,minMatchCharLength:k},this.pattern=this.options.isCaseSensitive?t:t.toLowerCase(),this.pattern.length<=d&&(this.patternAlphabet=a(this.pattern))}return r(e,[{key:"search",value:function(e){if(this.options.isCaseSensitive||(e=e.toLowerCase()),this.pattern===e)return{isMatch:!0,score:0,matchedIndices:[[0,e.length-1]]};var t=this.options,n=t.maxPatternLength,o=t.tokenSeparator;if(this.pattern.length>n)return i(e,this.pattern,o);var r=this.options,a=r.location,l=r.distance,c=r.threshold,u=r.findAllMatches,h=r.minMatchCharLength;return s(e,this.pattern,this.patternAlphabet,{location:a,distance:l,threshold:c,findAllMatches:u,minMatchCharLength:h})}}]),e}();e.exports=l},function(e,t,n){"use strict";var o=n(0),r=function e(t,n,r){if(n){var i=n.indexOf("."),s=n,a=null;-1!==i&&(s=n.slice(0,i),a=n.slice(i+1));var l=t[s];if(null!==l&&void 0!==l)if(a||"string"!=typeof l&&"number"!=typeof l)if(o(l))for(var c=0,u=l.length;c<u;c+=1)e(l[c],a,r);else a&&e(l,a,r);else r.push(l.toString())}else r.push(t);return r};e.exports=function(e,t){return r(e,t,[])}},function(e,t,n){"use strict";e.exports=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=[],o=-1,r=-1,i=0,s=e.length;i<s;i+=1){var a=e[i];a&&-1===o?o=i:a||-1===o||((r=i-1)-o+1>=t&&n.push([o,r]),o=-1)}return e[i-1]&&i-o>=t&&n.push([o,i-1]),n}},function(e,t,n){"use strict";e.exports=function(e){for(var t={},n=e.length,o=0;o<n;o+=1)t[e.charAt(o)]=0;for(var r=0;r<n;r+=1)t[e.charAt(r)]|=1<<n-r-1;return t}},function(e,t,n){"use strict";var o=/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g;e.exports=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:/ +/g,r=new RegExp(t.replace(o,"\\$&").replace(n,"|")),i=e.match(r),s=!!i,a=[];if(s)for(var l=0,c=i.length;l<c;l+=1){var u=i[l];a.push([e.indexOf(u),u.length-1])}return{score:s?.5:1,isMatch:s,matchedIndices:a}}},function(e,t,n){"use strict";e.exports=function(e,t){var n=t.errors,o=void 0===n?0:n,r=t.currentLocation,i=void 0===r?0:r,s=t.expectedLocation,a=void 0===s?0:s,l=t.distance,c=void 0===l?100:l,u=o/e.length,h=Math.abs(a-i);return c?u+h/c:h?1:u}},function(e,t,n){"use strict";var o=n(6),r=n(3);e.exports=function(e,t,n,i){for(var s=i.location,a=void 0===s?0:s,l=i.distance,c=void 0===l?100:l,u=i.threshold,h=void 0===u?.6:u,d=i.findAllMatches,p=void 0!==d&&d,f=i.minMatchCharLength,v=void 0===f?1:f,m=a,g=e.length,y=h,_=e.indexOf(t,m),k=t.length,b=[],x=0;x<g;x+=1)b[x]=0;if(-1!==_){var S=o(t,{errors:0,currentLocation:_,expectedLocation:m,distance:c});if(y=Math.min(S,y),-1!==(_=e.lastIndexOf(t,m+k))){var w=o(t,{errors:0,currentLocation:_,expectedLocation:m,distance:c});y=Math.min(w,y)}}_=-1;for(var L=[],C=1,M=k+g,I=1<<k-1,N=0;N<k;N+=1){for(var A=0,O=M;A<O;)o(t,{errors:N,currentLocation:m+O,expectedLocation:m,distance:c})<=y?A=O:M=O,O=Math.floor((M-A)/2+A);M=O;var E=Math.max(1,m-O+1),T=p?g:Math.min(m+O,g)+k,j=Array(T+2);j[T+1]=(1<<N)-1;for(var P=T;P>=E;P-=1){var R=P-1,U=n[e.charAt(R)];if(U&&(b[R]=1),j[P]=(j[P+1]<<1|1)&U,0!==N&&(j[P]|=(L[P+1]|L[P])<<1|1|L[P+1]),j[P]&I&&(C=o(t,{errors:N,currentLocation:R,expectedLocation:m,distance:c}))<=y){if(y=C,(_=R)<=m)break;E=Math.max(1,2*m-_)}}if(o(t,{errors:N+1,currentLocation:m,expectedLocation:m,distance:c})>y)break;L=j}return{isMatch:_>=0,score:0===C?.001:C,matchedIndices:r(b,v)}}},function(e,t,n){"use strict";function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,n,o){return n&&e(t.prototype,n),o&&e(t,o),t}}(),i=n(1),s=n(2),a=n(0),l=function(){function e(t,n){var r=n.location,i=void 0===r?0:r,a=n.distance,l=void 0===a?100:a,c=n.threshold,u=void 0===c?.6:c,h=n.maxPatternLength,d=void 0===h?32:h,p=n.caseSensitive,f=void 0!==p&&p,v=n.tokenSeparator,m=void 0===v?/ +/g:v,g=n.findAllMatches,y=void 0!==g&&g,_=n.minMatchCharLength,k=void 0===_?1:_,b=n.id,x=void 0===b?null:b,S=n.keys,w=void 0===S?[]:S,L=n.shouldSort,C=void 0===L||L,M=n.getFn,I=void 0===M?s:M,N=n.sortFn,A=void 0===N?function(e,t){return e.score-t.score}:N,O=n.tokenize,E=void 0!==O&&O,T=n.matchAllTokens,j=void 0!==T&&T,P=n.includeMatches,R=void 0!==P&&P,U=n.includeScore,D=void 0!==U&&U,V=n.verbose,F=void 0!==V&&V;o(this,e),this.options={location:i,distance:l,threshold:u,maxPatternLength:d,isCaseSensitive:f,tokenSeparator:m,findAllMatches:y,minMatchCharLength:k,id:x,keys:w,includeMatches:R,includeScore:D,shouldSort:C,getFn:I,sortFn:A,verbose:F,tokenize:E,matchAllTokens:j},this.setCollection(t)}return r(e,[{key:"setCollection",value:function(e){return this.list=e,e}},{key:"search",value:function(e){this._log('---------\nSearch pattern: "'+e+'"');var t=this._prepareSearchers(e),n=t.tokenSearchers,o=t.fullSearcher,r=this._search(n,o),i=r.weights,s=r.results;return this._computeScore(i,s),this.options.shouldSort&&this._sort(s),this._format(s)}},{key:"_prepareSearchers",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=[];if(this.options.tokenize)for(var n=e.split(this.options.tokenSeparator),o=0,r=n.length;o<r;o+=1)t.push(new i(n[o],this.options));return{tokenSearchers:t,fullSearcher:new i(e,this.options)}}},{key:"_search",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments[1],n=this.list,o={},r=[];if("string"==typeof n[0]){for(var i=0,s=n.length;i<s;i+=1)this._analyze({key:"",value:n[i],record:i,index:i},{resultMap:o,results:r,tokenSearchers:e,fullSearcher:t});return{weights:null,results:r}}for(var a={},l=0,c=n.length;l<c;l+=1)for(var u=n[l],h=0,d=this.options.keys.length;h<d;h+=1){var p=this.options.keys[h];if("string"!=typeof p){if(a[p.name]={weight:1-p.weight||1},p.weight<=0||p.weight>1)throw new Error("Key weight has to be > 0 and <= 1");p=p.name}else a[p]={weight:1};this._analyze({key:p,value:this.options.getFn(u,p),record:u,index:l},{resultMap:o,results:r,tokenSearchers:e,fullSearcher:t})}return{weights:a,results:r}}},{key:"_analyze",value:function(e,t){var n=e.key,o=e.arrayIndex,r=void 0===o?-1:o,i=e.value,s=e.record,l=e.index,c=t.tokenSearchers,u=void 0===c?[]:c,h=t.fullSearcher,d=void 0===h?[]:h,p=t.resultMap,f=void 0===p?{}:p,v=t.results,m=void 0===v?[]:v;if(void 0!==i&&null!==i){var g=!1,y=-1,_=0;if("string"==typeof i){this._log("\nKey: "+(""===n?"-":n));var k=d.search(i);if(this._log('Full text: "'+i+'", score: '+k.score),this.options.tokenize){for(var b=i.split(this.options.tokenSeparator),x=[],S=0;S<u.length;S+=1){var w=u[S];this._log('\nPattern: "'+w.pattern+'"');for(var L=!1,C=0;C<b.length;C+=1){var M=b[C],I=w.search(M),N={};I.isMatch?(N[M]=I.score,g=!0,L=!0,x.push(I.score)):(N[M]=1,this.options.matchAllTokens||x.push(1)),this._log('Token: "'+M+'", score: '+N[M])}L&&(_+=1)}y=x[0];for(var A=x.length,O=1;O<A;O+=1)y+=x[O];y/=A,this._log("Token score average:",y)}var E=k.score;y>-1&&(E=(E+y)/2),this._log("Score average:",E);var T=!this.options.tokenize||!this.options.matchAllTokens||_>=u.length;if(this._log("\nCheck Matches: "+T),(g||k.isMatch)&&T){var j=f[l];j?j.output.push({key:n,arrayIndex:r,value:i,score:E,matchedIndices:k.matchedIndices}):(f[l]={item:s,output:[{key:n,arrayIndex:r,value:i,score:E,matchedIndices:k.matchedIndices}]},m.push(f[l]))}}else if(a(i))for(var P=0,R=i.length;P<R;P+=1)this._analyze({key:n,arrayIndex:P,value:i[P],record:s,index:l},{resultMap:f,results:m,tokenSearchers:u,fullSearcher:d})}}},{key:"_computeScore",value:function(e,t){this._log("\n\nComputing score:\n");for(var n=0,o=t.length;n<o;n+=1){for(var r=t[n].output,i=r.length,s=0,a=1,l=0;l<i;l+=1){var c=r[l].score,u=e?e[r[l].key].weight:1,h=c*u;1!==u?a=Math.min(a,h):(r[l].nScore=h,s+=h)}t[n].score=1===a?s/i:a,this._log(t[n])}}},{key:"_sort",value:function(e){this._log("\n\nSorting...."),e.sort(this.options.sortFn)}},{key:"_format",value:function(e){var t=[];this._log("\n\nOutput:\n\n",JSON.stringify(e));var n=[];this.options.includeMatches&&n.push(function(e,t){var n=e.output;t.matches=[];for(var o=0,r=n.length;o<r;o+=1){var i=n[o];if(0!==i.matchedIndices.length){var s={indices:i.matchedIndices,value:i.value};i.key&&(s.key=i.key),i.hasOwnProperty("arrayIndex")&&i.arrayIndex>-1&&(s.arrayIndex=i.arrayIndex),t.matches.push(s)}}}),this.options.includeScore&&n.push(function(e,t){t.score=e.score});for(var o=0,r=e.length;o<r;o+=1){var i=e[o];if(this.options.id&&(i.item=this.options.getFn(i.item,this.options.id)[0]),n.length){for(var s={item:i.item},a=0,l=n.length;a<l;a+=1)n[a](i,s);t.push(s)}else t.push(i.item)}return t}},{key:"_log",value:function(){if(this.options.verbose){var e;(e=console).log.apply(e,arguments)}}}]),e}();e.exports=l}])})},{}],5:[function(e,t,n){!function(){"use strict";function e(){}function n(t,n){var o,r,i,s,a=O;for(s=arguments.length;s-- >2;)A.push(arguments[s]);for(n&&null!=n.children&&(A.length||A.push(n.children),delete n.children);A.length;)if((r=A.pop())&&void 0!==r.pop)for(s=r.length;s--;)A.push(r[s]);else"boolean"==typeof r&&(r=null),(i="function"!=typeof t)&&(null==r?r="":"number"==typeof r?r=String(r):"string"!=typeof r&&(i=!1)),i&&o?a[a.length-1]+=r:a===O?a=[r]:a.push(r),o=i;var l=new e;return l.nodeName=t,l.children=a,l.attributes=null==n?void 0:n,l.key=null==n?void 0:n.key,void 0!==N.vnode&&N.vnode(l),l}function o(e,t){for(var n in t)e[n]=t[n];return e}function r(e){!e.__d&&(e.__d=!0)&&1==j.push(e)&&(N.debounceRendering||E)(i)}function i(){var e,t=j;for(j=[];e=t.pop();)e.__d&&L(e)}function s(e,t,n){return"string"==typeof t||"number"==typeof t?void 0!==e.splitText:"string"==typeof t.nodeName?!e._componentConstructor&&a(e,t.nodeName):n||e._componentConstructor===t.nodeName}function a(e,t){return e.__n===t||e.nodeName.toLowerCase()===t.toLowerCase()}function l(e){var t=o({},e.attributes);t.children=e.children;var n=e.nodeName.defaultProps;if(void 0!==n)for(var r in n)void 0===t[r]&&(t[r]=n[r]);return t}function c(e,t){var n=t?document.createElementNS("http://www.w3.org/2000/svg",e):document.createElement(e);return n.__n=e,n}function u(e){var t=e.parentNode;t&&t.removeChild(e)}function h(e,t,n,o,r){if("className"===t&&(t="class"),"key"===t);else if("ref"===t)n&&n(null),o&&o(e);else if("class"!==t||r)if("style"===t){if(o&&"string"!=typeof o&&"string"!=typeof n||(e.style.cssText=o||""),o&&"object"==typeof o){if("string"!=typeof n)for(var i in n)i in o||(e.style[i]="");for(var i in o)e.style[i]="number"==typeof o[i]&&!1===T.test(i)?o[i]+"px":o[i]}}else if("dangerouslySetInnerHTML"===t)o&&(e.innerHTML=o.__html||"");else if("o"==t[0]&&"n"==t[1]){var s=t!==(t=t.replace(/Capture$/,""));t=t.toLowerCase().substring(2),o?n||e.addEventListener(t,p,s):e.removeEventListener(t,p,s),(e.__l||(e.__l={}))[t]=o}else if("list"!==t&&"type"!==t&&!r&&t in e)d(e,t,null==o?"":o),null!=o&&!1!==o||e.removeAttribute(t);else{var a=r&&t!==(t=t.replace(/^xlink\:?/,""));null==o||!1===o?a?e.removeAttributeNS("http://www.w3.org/1999/xlink",t.toLowerCase()):e.removeAttribute(t):"function"!=typeof o&&(a?e.setAttributeNS("http://www.w3.org/1999/xlink",t.toLowerCase(),o):e.setAttribute(t,o))}else e.className=o||""}function d(e,t,n){try{e[t]=n}catch(e){}}function p(e){return this.__l[e.type](N.event&&N.event(e)||e)}function f(){for(var e;e=P.pop();)N.afterMount&&N.afterMount(e),e.componentDidMount&&e.componentDidMount()}function v(e,t,n,o,r,i){R++||(U=null!=r&&void 0!==r.ownerSVGElement,D=null!=e&&!("__preactattr_"in e));var s=m(e,t,n,o,i);return r&&s.parentNode!==r&&r.appendChild(s),--R||(D=!1,i||f()),s}function m(e,t,n,o,r){var i=e,s=U;if(null!=t&&"boolean"!=typeof t||(t=""),"string"==typeof t||"number"==typeof t)return e&&void 0!==e.splitText&&e.parentNode&&(!e._component||r)?e.nodeValue!=t&&(e.nodeValue=t):(i=document.createTextNode(t),e&&(e.parentNode&&e.parentNode.replaceChild(i,e),y(e,!0))),i.__preactattr_=!0,i;var l=t.nodeName;if("function"==typeof l)return C(e,t,n,o);if(U="svg"===l||"foreignObject"!==l&&U,l=String(l),(!e||!a(e,l))&&(i=c(l,U),e)){for(;e.firstChild;)i.appendChild(e.firstChild);e.parentNode&&e.parentNode.replaceChild(i,e),y(e,!0)}var u=i.firstChild,h=i.__preactattr_,d=t.children;if(null==h){h=i.__preactattr_={};for(var p=i.attributes,f=p.length;f--;)h[p[f].name]=p[f].value}return!D&&d&&1===d.length&&"string"==typeof d[0]&&null!=u&&void 0!==u.splitText&&null==u.nextSibling?u.nodeValue!=d[0]&&(u.nodeValue=d[0]):(d&&d.length||null!=u)&&g(i,d,n,o,D||null!=h.dangerouslySetInnerHTML),k(i,t.attributes,h),U=s,i}function g(e,t,n,o,r){var i,a,l,c,h,d=e.childNodes,p=[],f={},v=0,g=0,_=d.length,k=0,b=t?t.length:0;if(0!==_)for(L=0;L<_;L++){var x=d[L],S=x.__preactattr_;null!=(w=b&&S?x._component?x._component.__k:S.key:null)?(v++,f[w]=x):(S||(void 0!==x.splitText?!r||x.nodeValue.trim():r))&&(p[k++]=x)}if(0!==b)for(L=0;L<b;L++){h=null;var w=(c=t[L]).key;if(null!=w)v&&void 0!==f[w]&&(h=f[w],f[w]=void 0,v--);else if(!h&&g<k)for(i=g;i<k;i++)if(void 0!==p[i]&&s(a=p[i],c,r)){h=a,p[i]=void 0,i===k-1&&k--,i===g&&g++;break}h=m(h,c,n,o),l=d[L],h&&h!==e&&h!==l&&(null==l?e.appendChild(h):h===l.nextSibling?u(l):e.insertBefore(h,l))}if(v)for(var L in f)void 0!==f[L]&&y(f[L],!1);for(;g<=k;)void 0!==(h=p[k--])&&y(h,!1)}function y(e,t){var n=e._component;n?M(n):(null!=e.__preactattr_&&e.__preactattr_.ref&&e.__preactattr_.ref(null),!1!==t&&null!=e.__preactattr_||u(e),_(e))}function _(e){for(e=e.lastChild;e;){var t=e.previousSibling;y(e,!0),e=t}}function k(e,t,n){var o;for(o in n)t&&null!=t[o]||null==n[o]||h(e,o,n[o],n[o]=void 0,U);for(o in t)"children"===o||"innerHTML"===o||o in n&&t[o]===("value"===o||"checked"===o?e[o]:n[o])||h(e,o,n[o],n[o]=t[o],U)}function b(e){var t=e.constructor.name;(V[t]||(V[t]=[])).push(e)}function x(e,t,n){var o,r=V[e.name];if(e.prototype&&e.prototype.render?(o=new e(t,n),I.call(o,t,n)):((o=new I(t,n)).constructor=e,o.render=S),r)for(var i=r.length;i--;)if(r[i].constructor===e){o.__b=r[i].__b,r.splice(i,1);break}return o}function S(e,t,n){return this.constructor(e,n)}function w(e,t,n,o,i){e.__x||(e.__x=!0,(e.__r=t.ref)&&delete t.ref,(e.__k=t.key)&&delete t.key,!e.base||i?e.componentWillMount&&e.componentWillMount():e.componentWillReceiveProps&&e.componentWillReceiveProps(t,o),o&&o!==e.context&&(e.__c||(e.__c=e.context),e.context=o),e.__p||(e.__p=e.props),e.props=t,e.__x=!1,0!==n&&(1!==n&&!1===N.syncComponentUpdates&&e.base?r(e):L(e,1,i)),e.__r&&e.__r(e))}function L(e,t,n,r){if(!e.__x){var i,s,a,c=e.props,u=e.state,h=e.context,d=e.__p||c,p=e.__s||u,m=e.__c||h,g=e.base,_=e.__b,k=g||_,b=e._component,S=!1;if(g&&(e.props=d,e.state=p,e.context=m,2!==t&&e.shouldComponentUpdate&&!1===e.shouldComponentUpdate(c,u,h)?S=!0:e.componentWillUpdate&&e.componentWillUpdate(c,u,h),e.props=c,e.state=u,e.context=h),e.__p=e.__s=e.__c=e.__b=null,e.__d=!1,!S){i=e.render(c,u,h),e.getChildContext&&(h=o(o({},h),e.getChildContext()));var C,I,A=i&&i.nodeName;if("function"==typeof A){var O=l(i);(s=b)&&s.constructor===A&&O.key==s.__k?w(s,O,1,h,!1):(C=s,e._component=s=x(A,O,h),s.__b=s.__b||_,s.__u=e,w(s,O,0,h,!1),L(s,1,n,!0)),I=s.base}else a=k,(C=b)&&(a=e._component=null),(k||1===t)&&(a&&(a._component=null),I=v(a,i,h,n||!g,k&&k.parentNode,!0));if(k&&I!==k&&s!==b){var E=k.parentNode;E&&I!==E&&(E.replaceChild(I,k),C||(k._component=null,y(k,!1)))}if(C&&M(C),e.base=I,I&&!r){for(var T=e,j=e;j=j.__u;)(T=j).base=I;I._component=T,I._componentConstructor=T.constructor}}if(!g||n?P.unshift(e):S||(e.componentDidUpdate&&e.componentDidUpdate(d,p,m),N.afterUpdate&&N.afterUpdate(e)),null!=e.__h)for(;e.__h.length;)e.__h.pop().call(e);R||r||f()}}function C(e,t,n,o){for(var r=e&&e._component,i=r,s=e,a=r&&e._componentConstructor===t.nodeName,c=a,u=l(t);r&&!c&&(r=r.__u);)c=r.constructor===t.nodeName;return r&&c&&(!o||r._component)?(w(r,u,3,n,o),e=r.base):(i&&!a&&(M(i),e=s=null),r=x(t.nodeName,u,n),e&&!r.__b&&(r.__b=e,s=null),w(r,u,1,n,o),e=r.base,s&&e!==s&&(s._component=null,y(s,!1))),e}function M(e){N.beforeUnmount&&N.beforeUnmount(e);var t=e.base;e.__x=!0,e.componentWillUnmount&&e.componentWillUnmount(),e.base=null;var n=e._component;n?M(n):t&&(t.__preactattr_&&t.__preactattr_.ref&&t.__preactattr_.ref(null),e.__b=t,u(t),b(e),_(t)),e.__r&&e.__r(null)}function I(e,t){this.__d=!0,this.context=t,this.props=e,this.state=this.state||{}}var N={},A=[],O=[],E="function"==typeof Promise?Promise.resolve().then.bind(Promise.resolve()):setTimeout,T=/acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i,j=[],P=[],R=0,U=!1,D=!1,V={};o(I.prototype,{setState:function(e,t){var n=this.state;this.__s||(this.__s=o({},n)),o(n,"function"==typeof e?e(n,this.props):e),t&&(this.__h=this.__h||[]).push(t),r(this)},forceUpdate:function(e){e&&(this.__h=this.__h||[]).push(e),L(this,2)},render:function(){}});var F={h:n,createElement:n,cloneElement:function(e,t){return n(e.nodeName,o(o({},e.attributes),t),arguments.length>2?[].slice.call(arguments,2):e.children)},Component:I,render:function(e,t,n){return v(n,e,{},!1,t,!1)},rerender:i,options:N};void 0!==t?t.exports=F:self.preact=F}()},{}]},{},[2]); +!function e(t,n,o){function r(s,a){if(!n[s]){if(!t[s]){var l="function"==typeof require&&require;if(!a&&l)return l(s,!0);if(i)return i(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var u=n[s]={exports:{}};t[s][0].call(u.exports,function(e){var n=t[s][1][e];return r(n||e)},u,u.exports,e,t,n,o)}return n[s].exports}for(var i="function"==typeof require&&require,s=0;s<o.length;s++)r(o[s]);return r}({1:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.setCookie=function(e,t){document.cookie=e+"="+encodeURIComponent(t)+";path=/;"},n.clearCookie=function(e){document.cookie=e+"=;path=/;expires=Thu, 01-Jan-1970 00:00:01 GMT;"},n.getCookie=function(e){for(var t=e+"=",n=document.cookie.split(";"),o=0;o<n.length;o++){for(var r=n[o];" "==r.charAt(0);)r=r.substring(1,r.length);if(0==r.indexOf(t))return decodeURIComponent(r.substring(t.length,r.length))}return null}},{}],2:[function(e,t,n){"use strict";function o(e){var t=d[e];if(void 0==t)throw new Error("could not find <details> element with id '"+e+"'");return t}function r(e){for(var t=e.target,n=t.id,r=o(n),i=r.element.open,s=0,l=r.toggles;s<l.length;s++){var c=l[s];c.classList.contains("details-toggle-control")&&(c.classList.add(i?"collapser":"expander"),c.classList.remove(i?"expander":"collapser"))}t.open==r.openByDefault?delete p[n]:p[n]=!0,a()}function i(){for(var e=0,t=Array.prototype.slice.call(document.getElementsByTagName("details"));e<t.length;e++){var n=t[e];"string"==typeof n.id&&n.id.length>0&&(d[n.id]={element:n,openByDefault:!!n.open,toggles:[]},n.addEventListener("toggle",r))}}function s(e){var t=o(e).element;t.open=!t.open}function a(){var e=Object.keys(p);document.cookie="toggled="+encodeURIComponent(e.join("+"))}function l(){var e=h.getCookie("toggled");if(e)for(var t=0,n=e.split("+");t<n.length;t++){var o=n[t],r=d[o];p[o]=!0,r&&(r.element.open=!r.element.open)}}function c(e){e.preventDefault();var t=e.currentTarget.getAttribute("data-details-id");if(!t)throw new Error("element with class 'details-toggle' has no 'data-details-id' attribute!");s(t)}function u(){Array.prototype.slice.call(document.getElementsByClassName("details-toggle")).forEach(function(e){var t=e.getAttribute("data-details-id");if(!t)throw new Error("element with class 'details-toggle' has no 'data-details-id' attribute!");var n=o(t);n.toggles.push(e),e.addEventListener("click",c),e.classList.contains("details-toggle-control")&&e.classList.add(n.element.open?"collapser":"expander")})}Object.defineProperty(n,"__esModule",{value:!0});var h=e("./cookies"),d={},p={};n.init=function(){i(),l(),u()}},{"./cookies":1}],3:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var o=e("./style-menu"),r=e("./details-helper"),i=e("./quick-jump");!function(e){"interactive"===document.readyState?e():document.addEventListener("readystatechange",function(){"interactive"===document.readyState&&e()})}(function(){document.body.classList.add("js-enabled"),o.init(),r.init(),i.init()})},{"./details-helper":2,"./quick-jump":4,"./style-menu":5}],4:[function(e,t,n){"use strict";function o(e,t,n){var o=new XMLHttpRequest;o.onreadystatechange=function(){o.readyState===XMLHttpRequest.DONE&&(200===o.status?t&&t(JSON.parse(o.responseText)):n&&n(o))},o.open("GET",e,!0),o.send()}function r(e){var t=document.querySelector("#page-menu"),n=document.createElement("li");t.insertBefore(n,t.firstChild),d.render(p(v,{onClick:e,title:"Quick Jump"}),t,n)}function i(e,t){return t.length<=e?t:t.slice(0,e)}function s(){return p("table",{class:"keyboard-shortcuts"},p("tr",null,p("th",null,"Key"),p("th",null,"Shortcut")),p("tr",null,p("td",null,p("span",{class:"key"},"s")),p("td",null,"Open this search box")),p("tr",null,p("td",null,p("span",{class:"key"},"esc")),p("td",null,"Close this search box")),p("tr",null,p("td",null,p("span",{class:"key"},"↓"),",",p("span",{class:"key"},"ctrl")," + ",p("span",{class:"key"},"j")),p("td",null,"Move down in search results")),p("tr",null,p("td",null,p("span",{class:"key"},"↑"),",",p("span",{class:"key"},"ctrl")," + ",p("span",{class:"key"},"k")),p("td",null,"Move up in search results")),p("tr",null,p("td",null,p("span",{class:"key"},"↵")),p("td",null,"Go to active search result")))}function a(){return p("p",null,"You can find any exported type, constructor, class, function or pattern defined in this package by (approximate) name.")}function l(e){var t=[p("p",null,"Your search for '",e.searchString,"' produced the following list of results: ",p("code",null,"[]"),"."),p("p",null,p("code",null,"Nothing")," matches your query for '",e.searchString,"'."),p("p",null,p("code",null,"Left \"no matches for '",e.searchString,"'\" :: Either String (NonEmpty SearchResult)"))];return t[(e.searchString||"a").charCodeAt(0)%t.length]}function c(e,t){d.render(p(g,{baseUrl:e||".",showHideTrigger:t||r}),document.body)}var u=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();Object.defineProperty(n,"__esModule",{value:!0});var h=e("fuse.js"),d=e("preact"),p=d.h,f=d.Component,v=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return u(t,e),t.prototype.render=function(e){return p("li",null,p("a",{href:"#",onClick:function(t){t.preventDefault(),e.onClick()}},e.title))},t}(f),g=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.linkIndex=0,t.focusPlease=!1,t.navigatedByKeyboard=!1,t}return u(t,e),t.prototype.componentWillMount=function(){var e=this;this.setState({searchString:"",isVisible:!1,expanded:{},activeLinkIndex:-1,moduleResults:[]}),o(this.props.baseUrl+"/doc-index.json",function(t){e.setState({fuse:new h(t,{threshold:.4,caseSensitive:!0,includeScore:!0,tokenize:!0,keys:["name","module"]}),moduleResults:[]})},function(t){console&&console.error("could not load 'doc-index.json' for searching",t),e.setState({failedLoading:!0})}),document.addEventListener("mousedown",this.hide.bind(this)),document.addEventListener("keydown",function(t){e.state.isVisible&&("Escape"===t.key?e.hide():"ArrowUp"===t.key||"k"===t.key&&t.ctrlKey?(t.preventDefault(),e.navigateLinks(-1)):"ArrowDown"===t.key||"j"===t.key&&t.ctrlKey?(t.preventDefault(),e.navigateLinks(1)):"Enter"===t.key&&e.state.activeLinkIndex>=0&&e.followActiveLink()),"s"===t.key&&"input"!==t.target.tagName.toLowerCase()&&(t.preventDefault(),e.show())})},t.prototype.hide=function(){this.setState({isVisible:!1})},t.prototype.show=function(){this.state.isVisible||(this.focusPlease=!0,this.setState({isVisible:!0,activeLinkIndex:-1}))},t.prototype.toggleVisibility=function(){this.state.isVisible?this.hide():this.show()},t.prototype.navigateLinks=function(e){var t=Math.max(-1,Math.min(this.linkIndex-1,this.state.activeLinkIndex+e));this.navigatedByKeyboard=!0,this.setState({activeLinkIndex:t})},t.prototype.followActiveLink=function(){this.activeLinkAction&&this.activeLinkAction()},t.prototype.updateResults=function(){var e=this.input&&this.input.value||"",t={};this.state.fuse.search(e).forEach(function(e){var n=e.item.module;(t[n]||(t[n]=[])).push(e)});var n=[];for(var o in t)!function(e){var o=t[e],r=0;o.forEach(function(e){r+=1/e.score}),n.push({module:e,totalScore:1/r,items:o})}(o);n.sort(function(e,t){return e.totalScore-t.totalScore}),this.setState({searchString:e,isVisible:!0,moduleResults:n})},t.prototype.componentDidUpdate=function(){if(this.searchResults&&this.activeLink&&this.navigatedByKeyboard){var e=this.activeLink.getClientRects()[0],t=this.searchResults.getClientRects()[0].top;e.bottom>window.innerHeight?this.searchResults.scrollTop+=e.bottom-window.innerHeight+80:e.top<t&&(this.searchResults.scrollTop-=t-e.top+80)}this.focusPlease&&this.input&&this.input.focus(),this.navigatedByKeyboard=!1,this.focusPlease=!1},t.prototype.componentDidMount=function(){this.props.showHideTrigger(this.toggleVisibility.bind(this))},t.prototype.render=function(e,t){var n=this;if(t.failedLoading)return null;this.linkIndex=0;var o=function(e){e.stopPropagation()},r=i(10,t.moduleResults).map(function(e){return n.renderResultsInModule(e)});return p("div",{id:"search",class:t.isVisible?"":"hidden"},p("div",{id:"search-form",onMouseDown:o},p("input",{placeholder:"Search in package by name",ref:function(e){n.input=e},onFocus:this.show.bind(this),onClick:this.show.bind(this),onInput:this.updateResults.bind(this)})),p("div",{id:"search-results",ref:function(e){n.searchResults=e},onMouseDown:o,onMouseOver:function(e){for(var t=e.target;t&&"function"==typeof t.getAttribute;){var o=t.getAttribute("data-link-index");if("string"==typeof o){var r=parseInt(o,10);n.setState({activeLinkIndex:r});break}t=t.parentNode}}},""===t.searchString?[p(a,null),p(s,null)]:0==r.length?p(l,{searchString:t.searchString}):p("ul",null,r)))},t.prototype.renderResultsInModule=function(e){var t=this,n=e.items,o=e.module,r=this.state.expanded[o]||n.length<=10,s=r?n:i(8,n),a=function(e){return p("li",{class:"search-result"},t.navigationLink(t.props.baseUrl+"/"+e.link,{},p(m,{html:e.display_html})))};return p("li",{class:"search-module"},p("h4",null,o),p("ul",null,s.map(function(e){return a(e.item)}),r?[]:p("li",{class:"more-results"},this.actionLink(function(){var e=Object.assign({},t.state.expanded);e[o]=!0,t.setState({expanded:e})},{},"show "+(n.length-s.length)+" more results from this module"))))},t.prototype.navigationLink=function(e,t){for(var n=this,o=[],r=2;r<arguments.length;r++)o[r-2]=arguments[r];var i=Object.assign({href:e,onClick:this.hide.bind(this)},t);return this.menuLink.apply(this,[i,function(){window.location.href=e,n.hide()}].concat(o))},t.prototype.actionLink=function(e,t){for(var n=[],o=2;o<arguments.length;o++)n[o-2]=arguments[o];var r=Object.assign({href:"#",onClick:function(t){t.preventDefault(),e()}},t);return this.menuLink.apply(this,[r,e].concat(n))},t.prototype.menuLink=function(e,t){for(var n=this,o=[],r=2;r<arguments.length;r++)o[r-2]=arguments[r];var i=this.linkIndex;i===this.state.activeLinkIndex&&(e.class=(e.class?e.class+" ":"")+"active-link",e.ref=function(e){e&&(n.activeLink=e)},this.activeLinkAction=t);var s=Object.assign({"data-link-index":i},e);return this.linkIndex+=1,p.apply(void 0,["a",s].concat(o))},t}(f),m=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return u(t,e),t.prototype.shouldComponentUpdate=function(e){return this.props.html!==e.html},t.prototype.render=function(e){return p("div",{dangerouslySetInnerHTML:{__html:e.html}})},t}(f);n.init=c,window.quickNav={init:c}},{"fuse.js":6,preact:7}],5:[function(e,t,n){"use strict";function o(e){return(" "+e+" ").replace(g," ")}function r(e){return e.replace(m,"")}function i(e,t){return o(e.className||"").indexOf(" "+t+" ")>=0}function s(e,t){var n=o(e.className||"");n.indexOf(" "+t+" ")<0&&(e.className=r(n+" "+t))}function a(e,t){var n=o(e.className||"");n=n.replace(" "+t+" "," "),e.className=r(n)}function l(e,t,n,o){return null==o&&(o=!i(e,t)),o?(a(e,n),s(e,t)):(a(e,t),s(e,n)),o}function c(e){var t=document.getElementById("page-menu");if(t&&t.firstChild){var n=t.firstChild.cloneNode(!1);n.innerHTML=e,t.appendChild(n)}}function u(){return Array.prototype.slice.call(document.getElementsByTagName("link")).filter(function(e){return-1!=e.rel.indexOf("style")&&e.title})}function h(){var e=u(),t="";e.forEach(function(e){t+="<li><a href='#' onclick=\"setActiveStyleSheet('"+e.title+"'); return false;\">"+e.title+"</a></li>"}),e.length>1&&c("<div id='style-menu-holder'><a href='#' onclick='styleMenu(); return false;'>Style ▾</a><ul id='style-menu' class='hide'>"+t+"</ul></div>")}function d(e){for(var t=u(),n=null,o=0;o<t.length;o++){var r=t[o];r.disabled=!0,r.title==e&&(n=r)}n?(n.disabled=!1,v.setCookie("haddock-style",e)):(t[0].disabled=!1,v.clearCookie("haddock-style")),f(!1)}function p(){var e=v.getCookie("haddock-style");e&&d(e)}function f(e){var t=document.getElementById("style-menu");t&&y(t,e)}Object.defineProperty(n,"__esModule",{value:!0});var v=e("./cookies"),g=/\s\s+/g,m=/^\s+|\s+$/g,y=function(e,t){return function(n,o){return l(n,e,t,o)}}("show","hide");n.init=function(){h(),p()}},{"./cookies":1}],6:[function(e,t,n){!function(e,o){"object"==typeof n&&"object"==typeof t?t.exports=o():"function"==typeof define&&define.amd?define("Fuse",[],o):"object"==typeof n?n.Fuse=o():e.Fuse=o()}(this,function(){return function(e){function t(o){if(n[o])return n[o].exports;var r=n[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,t),r.l=!0,r.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,o){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:o})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=8)}([function(e,t,n){"use strict";e.exports=function(e){return"[object Array]"===Object.prototype.toString.call(e)}},function(e,t,n){"use strict";function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,n,o){return n&&e(t.prototype,n),o&&e(t,o),t}}(),i=n(5),s=n(7),a=n(4),l=function(){function e(t,n){var r=n.location,i=void 0===r?0:r,s=n.distance,l=void 0===s?100:s,c=n.threshold,u=void 0===c?.6:c,h=n.maxPatternLength,d=void 0===h?32:h,p=n.isCaseSensitive,f=void 0!==p&&p,v=n.tokenSeparator,g=void 0===v?/ +/g:v,m=n.findAllMatches,y=void 0!==m&&m,_=n.minMatchCharLength,k=void 0===_?1:_;o(this,e),this.options={location:i,distance:l,threshold:u,maxPatternLength:d,isCaseSensitive:f,tokenSeparator:g,findAllMatches:y,minMatchCharLength:k},this.pattern=this.options.isCaseSensitive?t:t.toLowerCase(),this.pattern.length<=d&&(this.patternAlphabet=a(this.pattern))}return r(e,[{key:"search",value:function(e){if(this.options.isCaseSensitive||(e=e.toLowerCase()),this.pattern===e)return{isMatch:!0,score:0,matchedIndices:[[0,e.length-1]]};var t=this.options,n=t.maxPatternLength,o=t.tokenSeparator;if(this.pattern.length>n)return i(e,this.pattern,o);var r=this.options,a=r.location,l=r.distance,c=r.threshold,u=r.findAllMatches,h=r.minMatchCharLength;return s(e,this.pattern,this.patternAlphabet,{location:a,distance:l,threshold:c,findAllMatches:u,minMatchCharLength:h})}}]),e}();e.exports=l},function(e,t,n){"use strict";var o=n(0),r=function e(t,n,r){if(n){var i=n.indexOf("."),s=n,a=null;-1!==i&&(s=n.slice(0,i),a=n.slice(i+1));var l=t[s];if(null!==l&&void 0!==l)if(a||"string"!=typeof l&&"number"!=typeof l)if(o(l))for(var c=0,u=l.length;c<u;c+=1)e(l[c],a,r);else a&&e(l,a,r);else r.push(l.toString())}else r.push(t);return r};e.exports=function(e,t){return r(e,t,[])}},function(e,t,n){"use strict";e.exports=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=[],o=-1,r=-1,i=0,s=e.length;i<s;i+=1){var a=e[i];a&&-1===o?o=i:a||-1===o||((r=i-1)-o+1>=t&&n.push([o,r]),o=-1)}return e[i-1]&&i-o>=t&&n.push([o,i-1]),n}},function(e,t,n){"use strict";e.exports=function(e){for(var t={},n=e.length,o=0;o<n;o+=1)t[e.charAt(o)]=0;for(var r=0;r<n;r+=1)t[e.charAt(r)]|=1<<n-r-1;return t}},function(e,t,n){"use strict";var o=/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g;e.exports=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:/ +/g,r=new RegExp(t.replace(o,"\\$&").replace(n,"|")),i=e.match(r),s=!!i,a=[];if(s)for(var l=0,c=i.length;l<c;l+=1){var u=i[l];a.push([e.indexOf(u),u.length-1])}return{score:s?.5:1,isMatch:s,matchedIndices:a}}},function(e,t,n){"use strict";e.exports=function(e,t){var n=t.errors,o=void 0===n?0:n,r=t.currentLocation,i=void 0===r?0:r,s=t.expectedLocation,a=void 0===s?0:s,l=t.distance,c=void 0===l?100:l,u=o/e.length,h=Math.abs(a-i);return c?u+h/c:h?1:u}},function(e,t,n){"use strict";var o=n(6),r=n(3);e.exports=function(e,t,n,i){for(var s=i.location,a=void 0===s?0:s,l=i.distance,c=void 0===l?100:l,u=i.threshold,h=void 0===u?.6:u,d=i.findAllMatches,p=void 0!==d&&d,f=i.minMatchCharLength,v=void 0===f?1:f,g=a,m=e.length,y=h,_=e.indexOf(t,g),k=t.length,b=[],x=0;x<m;x+=1)b[x]=0;if(-1!==_){var w=o(t,{errors:0,currentLocation:_,expectedLocation:g,distance:c});if(y=Math.min(w,y),-1!==(_=e.lastIndexOf(t,g+k))){var S=o(t,{errors:0,currentLocation:_,expectedLocation:g,distance:c});y=Math.min(S,y)}}_=-1;for(var L=[],C=1,M=k+m,N=1<<k-1,I=0;I<k;I+=1){for(var A=0,O=M;A<O;)o(t,{errors:I,currentLocation:g+O,expectedLocation:g,distance:c})<=y?A=O:M=O,O=Math.floor((M-A)/2+A);M=O;var E=Math.max(1,g-O+1),j=p?m:Math.min(g+O,m)+k,T=Array(j+2);T[j+1]=(1<<I)-1;for(var P=j;P>=E;P-=1){var R=P-1,U=n[e.charAt(R)];if(U&&(b[R]=1),T[P]=(T[P+1]<<1|1)&U,0!==I&&(T[P]|=(L[P+1]|L[P])<<1|1|L[P+1]),T[P]&N&&(C=o(t,{errors:I,currentLocation:R,expectedLocation:g,distance:c}))<=y){if(y=C,(_=R)<=g)break;E=Math.max(1,2*g-_)}}if(o(t,{errors:I+1,currentLocation:g,expectedLocation:g,distance:c})>y)break;L=T}return{isMatch:_>=0,score:0===C?.001:C,matchedIndices:r(b,v)}}},function(e,t,n){"use strict";function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,n,o){return n&&e(t.prototype,n),o&&e(t,o),t}}(),i=n(1),s=n(2),a=n(0),l=function(){function e(t,n){var r=n.location,i=void 0===r?0:r,a=n.distance,l=void 0===a?100:a,c=n.threshold,u=void 0===c?.6:c,h=n.maxPatternLength,d=void 0===h?32:h,p=n.caseSensitive,f=void 0!==p&&p,v=n.tokenSeparator,g=void 0===v?/ +/g:v,m=n.findAllMatches,y=void 0!==m&&m,_=n.minMatchCharLength,k=void 0===_?1:_,b=n.id,x=void 0===b?null:b,w=n.keys,S=void 0===w?[]:w,L=n.shouldSort,C=void 0===L||L,M=n.getFn,N=void 0===M?s:M,I=n.sortFn,A=void 0===I?function(e,t){return e.score-t.score}:I,O=n.tokenize,E=void 0!==O&&O,j=n.matchAllTokens,T=void 0!==j&&j,P=n.includeMatches,R=void 0!==P&&P,U=n.includeScore,D=void 0!==U&&U,V=n.verbose,B=void 0!==V&&V;o(this,e),this.options={location:i,distance:l,threshold:u,maxPatternLength:d,isCaseSensitive:f,tokenSeparator:g,findAllMatches:y,minMatchCharLength:k,id:x,keys:S,includeMatches:R,includeScore:D,shouldSort:C,getFn:N,sortFn:A,verbose:B,tokenize:E,matchAllTokens:T},this.setCollection(t)}return r(e,[{key:"setCollection",value:function(e){return this.list=e,e}},{key:"search",value:function(e){this._log('---------\nSearch pattern: "'+e+'"');var t=this._prepareSearchers(e),n=t.tokenSearchers,o=t.fullSearcher,r=this._search(n,o),i=r.weights,s=r.results;return this._computeScore(i,s),this.options.shouldSort&&this._sort(s),this._format(s)}},{key:"_prepareSearchers",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=[];if(this.options.tokenize)for(var n=e.split(this.options.tokenSeparator),o=0,r=n.length;o<r;o+=1)t.push(new i(n[o],this.options));return{tokenSearchers:t,fullSearcher:new i(e,this.options)}}},{key:"_search",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments[1],n=this.list,o={},r=[];if("string"==typeof n[0]){for(var i=0,s=n.length;i<s;i+=1)this._analyze({key:"",value:n[i],record:i,index:i},{resultMap:o,results:r,tokenSearchers:e,fullSearcher:t});return{weights:null,results:r}}for(var a={},l=0,c=n.length;l<c;l+=1)for(var u=n[l],h=0,d=this.options.keys.length;h<d;h+=1){var p=this.options.keys[h];if("string"!=typeof p){if(a[p.name]={weight:1-p.weight||1},p.weight<=0||p.weight>1)throw new Error("Key weight has to be > 0 and <= 1");p=p.name}else a[p]={weight:1};this._analyze({key:p,value:this.options.getFn(u,p),record:u,index:l},{resultMap:o,results:r,tokenSearchers:e,fullSearcher:t})}return{weights:a,results:r}}},{key:"_analyze",value:function(e,t){var n=e.key,o=e.arrayIndex,r=void 0===o?-1:o,i=e.value,s=e.record,l=e.index,c=t.tokenSearchers,u=void 0===c?[]:c,h=t.fullSearcher,d=void 0===h?[]:h,p=t.resultMap,f=void 0===p?{}:p,v=t.results,g=void 0===v?[]:v;if(void 0!==i&&null!==i){var m=!1,y=-1,_=0;if("string"==typeof i){this._log("\nKey: "+(""===n?"-":n));var k=d.search(i);if(this._log('Full text: "'+i+'", score: '+k.score),this.options.tokenize){for(var b=i.split(this.options.tokenSeparator),x=[],w=0;w<u.length;w+=1){var S=u[w];this._log('\nPattern: "'+S.pattern+'"');for(var L=!1,C=0;C<b.length;C+=1){var M=b[C],N=S.search(M),I={};N.isMatch?(I[M]=N.score,m=!0,L=!0,x.push(N.score)):(I[M]=1,this.options.matchAllTokens||x.push(1)),this._log('Token: "'+M+'", score: '+I[M])}L&&(_+=1)}y=x[0];for(var A=x.length,O=1;O<A;O+=1)y+=x[O];y/=A,this._log("Token score average:",y)}var E=k.score;y>-1&&(E=(E+y)/2),this._log("Score average:",E);var j=!this.options.tokenize||!this.options.matchAllTokens||_>=u.length;if(this._log("\nCheck Matches: "+j),(m||k.isMatch)&&j){var T=f[l];T?T.output.push({key:n,arrayIndex:r,value:i,score:E,matchedIndices:k.matchedIndices}):(f[l]={item:s,output:[{key:n,arrayIndex:r,value:i,score:E,matchedIndices:k.matchedIndices}]},g.push(f[l]))}}else if(a(i))for(var P=0,R=i.length;P<R;P+=1)this._analyze({key:n,arrayIndex:P,value:i[P],record:s,index:l},{resultMap:f,results:g,tokenSearchers:u,fullSearcher:d})}}},{key:"_computeScore",value:function(e,t){this._log("\n\nComputing score:\n");for(var n=0,o=t.length;n<o;n+=1){for(var r=t[n].output,i=r.length,s=0,a=1,l=0;l<i;l+=1){var c=r[l].score,u=e?e[r[l].key].weight:1,h=c*u;1!==u?a=Math.min(a,h):(r[l].nScore=h,s+=h)}t[n].score=1===a?s/i:a,this._log(t[n])}}},{key:"_sort",value:function(e){this._log("\n\nSorting...."),e.sort(this.options.sortFn)}},{key:"_format",value:function(e){var t=[];this._log("\n\nOutput:\n\n",JSON.stringify(e));var n=[];this.options.includeMatches&&n.push(function(e,t){var n=e.output;t.matches=[];for(var o=0,r=n.length;o<r;o+=1){var i=n[o];if(0!==i.matchedIndices.length){var s={indices:i.matchedIndices,value:i.value};i.key&&(s.key=i.key),i.hasOwnProperty("arrayIndex")&&i.arrayIndex>-1&&(s.arrayIndex=i.arrayIndex),t.matches.push(s)}}}),this.options.includeScore&&n.push(function(e,t){t.score=e.score});for(var o=0,r=e.length;o<r;o+=1){var i=e[o];if(this.options.id&&(i.item=this.options.getFn(i.item,this.options.id)[0]),n.length){for(var s={item:i.item},a=0,l=n.length;a<l;a+=1)n[a](i,s);t.push(s)}else t.push(i.item)}return t}},{key:"_log",value:function(){if(this.options.verbose){var e;(e=console).log.apply(e,arguments)}}}]),e}();e.exports=l}])})},{}],7:[function(e,t,n){!function(){"use strict";function e(){}function n(t,n){var o,r,i,s,a=O;for(s=arguments.length;s-- >2;)A.push(arguments[s]);for(n&&null!=n.children&&(A.length||A.push(n.children),delete n.children);A.length;)if((r=A.pop())&&void 0!==r.pop)for(s=r.length;s--;)A.push(r[s]);else"boolean"==typeof r&&(r=null),(i="function"!=typeof t)&&(null==r?r="":"number"==typeof r?r=String(r):"string"!=typeof r&&(i=!1)),i&&o?a[a.length-1]+=r:a===O?a=[r]:a.push(r),o=i;var l=new e;return l.nodeName=t,l.children=a,l.attributes=null==n?void 0:n,l.key=null==n?void 0:n.key,void 0!==I.vnode&&I.vnode(l),l}function o(e,t){for(var n in t)e[n]=t[n];return e}function r(e){!e.__d&&(e.__d=!0)&&1==T.push(e)&&(I.debounceRendering||E)(i)}function i(){var e,t=T;for(T=[];e=t.pop();)e.__d&&L(e)}function s(e,t,n){return"string"==typeof t||"number"==typeof t?void 0!==e.splitText:"string"==typeof t.nodeName?!e._componentConstructor&&a(e,t.nodeName):n||e._componentConstructor===t.nodeName}function a(e,t){return e.__n===t||e.nodeName.toLowerCase()===t.toLowerCase()}function l(e){var t=o({},e.attributes);t.children=e.children;var n=e.nodeName.defaultProps;if(void 0!==n)for(var r in n)void 0===t[r]&&(t[r]=n[r]);return t}function c(e,t){var n=t?document.createElementNS("http://www.w3.org/2000/svg",e):document.createElement(e);return n.__n=e,n}function u(e){var t=e.parentNode;t&&t.removeChild(e)}function h(e,t,n,o,r){if("className"===t&&(t="class"),"key"===t);else if("ref"===t)n&&n(null),o&&o(e);else if("class"!==t||r)if("style"===t){if(o&&"string"!=typeof o&&"string"!=typeof n||(e.style.cssText=o||""),o&&"object"==typeof o){if("string"!=typeof n)for(var i in n)i in o||(e.style[i]="");for(var i in o)e.style[i]="number"==typeof o[i]&&!1===j.test(i)?o[i]+"px":o[i]}}else if("dangerouslySetInnerHTML"===t)o&&(e.innerHTML=o.__html||"");else if("o"==t[0]&&"n"==t[1]){var s=t!==(t=t.replace(/Capture$/,""));t=t.toLowerCase().substring(2),o?n||e.addEventListener(t,p,s):e.removeEventListener(t,p,s),(e.__l||(e.__l={}))[t]=o}else if("list"!==t&&"type"!==t&&!r&&t in e)d(e,t,null==o?"":o),null!=o&&!1!==o||e.removeAttribute(t);else{var a=r&&t!==(t=t.replace(/^xlink\:?/,""));null==o||!1===o?a?e.removeAttributeNS("http://www.w3.org/1999/xlink",t.toLowerCase()):e.removeAttribute(t):"function"!=typeof o&&(a?e.setAttributeNS("http://www.w3.org/1999/xlink",t.toLowerCase(),o):e.setAttribute(t,o))}else e.className=o||""}function d(e,t,n){try{e[t]=n}catch(e){}}function p(e){return this.__l[e.type](I.event&&I.event(e)||e)}function f(){for(var e;e=P.pop();)I.afterMount&&I.afterMount(e),e.componentDidMount&&e.componentDidMount()}function v(e,t,n,o,r,i){R++||(U=null!=r&&void 0!==r.ownerSVGElement,D=null!=e&&!("__preactattr_"in e));var s=g(e,t,n,o,i);return r&&s.parentNode!==r&&r.appendChild(s),--R||(D=!1,i||f()),s}function g(e,t,n,o,r){var i=e,s=U;if(null!=t&&"boolean"!=typeof t||(t=""),"string"==typeof t||"number"==typeof t)return e&&void 0!==e.splitText&&e.parentNode&&(!e._component||r)?e.nodeValue!=t&&(e.nodeValue=t):(i=document.createTextNode(t),e&&(e.parentNode&&e.parentNode.replaceChild(i,e),y(e,!0))),i.__preactattr_=!0,i;var l=t.nodeName;if("function"==typeof l)return C(e,t,n,o);if(U="svg"===l||"foreignObject"!==l&&U,l=String(l),(!e||!a(e,l))&&(i=c(l,U),e)){for(;e.firstChild;)i.appendChild(e.firstChild);e.parentNode&&e.parentNode.replaceChild(i,e),y(e,!0)}var u=i.firstChild,h=i.__preactattr_,d=t.children;if(null==h){h=i.__preactattr_={};for(var p=i.attributes,f=p.length;f--;)h[p[f].name]=p[f].value}return!D&&d&&1===d.length&&"string"==typeof d[0]&&null!=u&&void 0!==u.splitText&&null==u.nextSibling?u.nodeValue!=d[0]&&(u.nodeValue=d[0]):(d&&d.length||null!=u)&&m(i,d,n,o,D||null!=h.dangerouslySetInnerHTML),k(i,t.attributes,h),U=s,i}function m(e,t,n,o,r){var i,a,l,c,h,d=e.childNodes,p=[],f={},v=0,m=0,_=d.length,k=0,b=t?t.length:0;if(0!==_)for(L=0;L<_;L++){var x=d[L],w=x.__preactattr_;null!=(S=b&&w?x._component?x._component.__k:w.key:null)?(v++,f[S]=x):(w||(void 0!==x.splitText?!r||x.nodeValue.trim():r))&&(p[k++]=x)}if(0!==b)for(L=0;L<b;L++){h=null;var S=(c=t[L]).key;if(null!=S)v&&void 0!==f[S]&&(h=f[S],f[S]=void 0,v--);else if(!h&&m<k)for(i=m;i<k;i++)if(void 0!==p[i]&&s(a=p[i],c,r)){h=a,p[i]=void 0,i===k-1&&k--,i===m&&m++;break}h=g(h,c,n,o),l=d[L],h&&h!==e&&h!==l&&(null==l?e.appendChild(h):h===l.nextSibling?u(l):e.insertBefore(h,l))}if(v)for(var L in f)void 0!==f[L]&&y(f[L],!1);for(;m<=k;)void 0!==(h=p[k--])&&y(h,!1)}function y(e,t){var n=e._component;n?M(n):(null!=e.__preactattr_&&e.__preactattr_.ref&&e.__preactattr_.ref(null),!1!==t&&null!=e.__preactattr_||u(e),_(e))}function _(e){for(e=e.lastChild;e;){var t=e.previousSibling;y(e,!0),e=t}}function k(e,t,n){var o;for(o in n)t&&null!=t[o]||null==n[o]||h(e,o,n[o],n[o]=void 0,U);for(o in t)"children"===o||"innerHTML"===o||o in n&&t[o]===("value"===o||"checked"===o?e[o]:n[o])||h(e,o,n[o],n[o]=t[o],U)}function b(e){var t=e.constructor.name;(V[t]||(V[t]=[])).push(e)}function x(e,t,n){var o,r=V[e.name];if(e.prototype&&e.prototype.render?(o=new e(t,n),N.call(o,t,n)):((o=new N(t,n)).constructor=e,o.render=w),r)for(var i=r.length;i--;)if(r[i].constructor===e){o.__b=r[i].__b,r.splice(i,1);break}return o}function w(e,t,n){return this.constructor(e,n)}function S(e,t,n,o,i){e.__x||(e.__x=!0,(e.__r=t.ref)&&delete t.ref,(e.__k=t.key)&&delete t.key,!e.base||i?e.componentWillMount&&e.componentWillMount():e.componentWillReceiveProps&&e.componentWillReceiveProps(t,o),o&&o!==e.context&&(e.__c||(e.__c=e.context),e.context=o),e.__p||(e.__p=e.props),e.props=t,e.__x=!1,0!==n&&(1!==n&&!1===I.syncComponentUpdates&&e.base?r(e):L(e,1,i)),e.__r&&e.__r(e))}function L(e,t,n,r){if(!e.__x){var i,s,a,c=e.props,u=e.state,h=e.context,d=e.__p||c,p=e.__s||u,g=e.__c||h,m=e.base,_=e.__b,k=m||_,b=e._component,w=!1;if(m&&(e.props=d,e.state=p,e.context=g,2!==t&&e.shouldComponentUpdate&&!1===e.shouldComponentUpdate(c,u,h)?w=!0:e.componentWillUpdate&&e.componentWillUpdate(c,u,h),e.props=c,e.state=u,e.context=h),e.__p=e.__s=e.__c=e.__b=null,e.__d=!1,!w){i=e.render(c,u,h),e.getChildContext&&(h=o(o({},h),e.getChildContext()));var C,N,A=i&&i.nodeName;if("function"==typeof A){var O=l(i);(s=b)&&s.constructor===A&&O.key==s.__k?S(s,O,1,h,!1):(C=s,e._component=s=x(A,O,h),s.__b=s.__b||_,s.__u=e,S(s,O,0,h,!1),L(s,1,n,!0)),N=s.base}else a=k,(C=b)&&(a=e._component=null),(k||1===t)&&(a&&(a._component=null),N=v(a,i,h,n||!m,k&&k.parentNode,!0));if(k&&N!==k&&s!==b){var E=k.parentNode;E&&N!==E&&(E.replaceChild(N,k),C||(k._component=null,y(k,!1)))}if(C&&M(C),e.base=N,N&&!r){for(var j=e,T=e;T=T.__u;)(j=T).base=N;N._component=j,N._componentConstructor=j.constructor}}if(!m||n?P.unshift(e):w||(e.componentDidUpdate&&e.componentDidUpdate(d,p,g),I.afterUpdate&&I.afterUpdate(e)),null!=e.__h)for(;e.__h.length;)e.__h.pop().call(e);R||r||f()}}function C(e,t,n,o){for(var r=e&&e._component,i=r,s=e,a=r&&e._componentConstructor===t.nodeName,c=a,u=l(t);r&&!c&&(r=r.__u);)c=r.constructor===t.nodeName;return r&&c&&(!o||r._component)?(S(r,u,3,n,o),e=r.base):(i&&!a&&(M(i),e=s=null),r=x(t.nodeName,u,n),e&&!r.__b&&(r.__b=e,s=null),S(r,u,1,n,o),e=r.base,s&&e!==s&&(s._component=null,y(s,!1))),e}function M(e){I.beforeUnmount&&I.beforeUnmount(e);var t=e.base;e.__x=!0,e.componentWillUnmount&&e.componentWillUnmount(),e.base=null;var n=e._component;n?M(n):t&&(t.__preactattr_&&t.__preactattr_.ref&&t.__preactattr_.ref(null),e.__b=t,u(t),b(e),_(t)),e.__r&&e.__r(null)}function N(e,t){this.__d=!0,this.context=t,this.props=e,this.state=this.state||{}}var I={},A=[],O=[],E="function"==typeof Promise?Promise.resolve().then.bind(Promise.resolve()):setTimeout,j=/acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i,T=[],P=[],R=0,U=!1,D=!1,V={};o(N.prototype,{setState:function(e,t){var n=this.state;this.__s||(this.__s=o({},n)),o(n,"function"==typeof e?e(n,this.props):e),t&&(this.__h=this.__h||[]).push(t),r(this)},forceUpdate:function(e){e&&(this.__h=this.__h||[]).push(e),L(this,2)},render:function(){}});var B={h:n,createElement:n,cloneElement:function(e,t){return n(e.nodeName,o(o({},e.attributes),t),arguments.length>2?[].slice.call(arguments,2):e.children)},Component:N,render:function(e,t,n){return v(n,e,{},!1,t,!1)},rerender:i,options:I};void 0!==t?t.exports=B:self.preact=B}()},{}]},{},[3]); //# sourceMappingURL=haddock-bundle.min.js.map diff --git a/haddock-api/resources/html/js-src/cookies.ts b/haddock-api/resources/html/js-src/cookies.ts new file mode 100644 index 00000000..3b68d6d8 --- /dev/null +++ b/haddock-api/resources/html/js-src/cookies.ts @@ -0,0 +1,20 @@ +export function setCookie(name: string, value: string) { + document.cookie = name + "=" + encodeURIComponent(value) + ";path=/;"; +} + +export function clearCookie(name: string) { + document.cookie = name + "=;path=/;expires=Thu, 01-Jan-1970 00:00:01 GMT;"; +} + +export function getCookie(name: string) { + const nameEQ = name + "="; + const ca = document.cookie.split(';'); + for (let i = 0; i < ca.length; i++) { + let c = ca[i]; + while (c.charAt(0)==' ') c = c.substring(1,c.length); + if (c.indexOf(nameEQ) == 0) { + return decodeURIComponent(c.substring(nameEQ.length,c.length)); + } + } + return null; +}
\ No newline at end of file diff --git a/haddock-api/resources/html/js-src/details-helper.ts b/haddock-api/resources/html/js-src/details-helper.ts new file mode 100644 index 00000000..f13ac905 --- /dev/null +++ b/haddock-api/resources/html/js-src/details-helper.ts @@ -0,0 +1,106 @@ +import {getCookie} from "./cookies"; + +interface HTMLDetailsElement extends HTMLElement { + open: boolean +} + +interface DetailsInfo { + element: HTMLDetailsElement + openByDefault: boolean + toggles: HTMLElement[] +} + +// Global state +const detailsRegistry: { [id: string]: DetailsInfo } = {}; +const toggled: { [id: string]: true } = {}; /* stores which <details> are not in their default state */ + +function lookupDetailsRegistry(id: string): DetailsInfo { + const info = detailsRegistry[id]; + if (info == undefined) { throw new Error(`could not find <details> element with id '${id}'`); } + return info; +} + +function onDetailsToggle(ev: Event) { + const element = ev.target as HTMLDetailsElement; + const id = element.id; + const info = lookupDetailsRegistry(id); + const isOpen = info.element.open; + for (const toggle of info.toggles) { + if (toggle.classList.contains('details-toggle-control')) { + toggle.classList.add(isOpen ? 'collapser' : 'expander'); + toggle.classList.remove(isOpen ? 'expander' : 'collapser'); + } + } + if (element.open == info.openByDefault) { + delete toggled[id]; + } else { + toggled[id] = true; + } + rememberToggled(); +} + +function gatherDetailsElements() { + const els: HTMLDetailsElement[] = Array.prototype.slice.call(document.getElementsByTagName('details')); + for (const el of els) { + if (typeof el.id == "string" && el.id.length > 0) { + detailsRegistry[el.id] = { + element: el, + openByDefault: !!el.open, + toggles: [] // added later + }; + el.addEventListener('toggle', onDetailsToggle); + } + } +} + +function toggleDetails(id: string) { + const {element} = lookupDetailsRegistry(id); + element.open = !element.open; +} + +function rememberToggled() { + const sections: string[] = Object.keys(toggled); + // cookie specific to this page; don't use setCookie which sets path=/ + document.cookie = "toggled=" + encodeURIComponent(sections.join('+')); +} + +function restoreToggled() { + const cookie = getCookie("toggled"); + if (!cookie) { return; } + const ids = cookie.split('+'); + for (const id of ids) { + const info = detailsRegistry[id]; + toggled[id] = true; + if (info) { + info.element.open = !info.element.open; + } + } +} + +function onToggleClick(ev: MouseEvent) { + ev.preventDefault(); + const toggle = ev.currentTarget as HTMLElement; + const id = toggle.getAttribute('data-details-id'); + if (!id) { throw new Error("element with class 'details-toggle' has no 'data-details-id' attribute!"); } + toggleDetails(id); +} + +function initCollapseToggles() { + const toggles: HTMLElement[] = Array.prototype.slice.call(document.getElementsByClassName('details-toggle')); + toggles.forEach(toggle => { + const id = toggle.getAttribute('data-details-id'); + if (!id) { throw new Error("element with class 'details-toggle' has no 'data-details-id' attribute!"); } + const info = lookupDetailsRegistry(id); + info.toggles.push(toggle); + toggle.addEventListener('click', onToggleClick); + if (toggle.classList.contains('details-toggle-control')) { + toggle.classList.add(info.element.open ? 'collapser' : 'expander'); + } + }); +} + +export function init() { + gatherDetailsElements(); + restoreToggled(); + initCollapseToggles(); +}
\ No newline at end of file diff --git a/haddock-api/resources/html/js-src/init.ts b/haddock-api/resources/html/js-src/init.ts index 0619dfc3..877874ae 100644 --- a/haddock-api/resources/html/js-src/init.ts +++ b/haddock-api/resources/html/js-src/init.ts @@ -1,4 +1,5 @@ -import * as util from "./haddock-util"; +import * as styleMenu from "./style-menu"; +import * as detailsHelper from "./details-helper"; import * as quickJump from "./quick-jump"; function onDomReady(callback: () => void) { @@ -14,8 +15,8 @@ function onDomReady(callback: () => void) { } onDomReady(() => { - util.addStyleMenu(); - util.resetStyle(); - util.restoreCollapsed(); + document.body.classList.add('js-enabled'); + styleMenu.init(); + detailsHelper.init(); quickJump.init(); });
\ No newline at end of file diff --git a/haddock-api/resources/html/js-src/haddock-util.ts b/haddock-api/resources/html/js-src/style-menu.ts index 257ceb6a..3911655b 100644 --- a/haddock-api/resources/html/js-src/haddock-util.ts +++ b/haddock-api/resources/html/js-src/style-menu.ts @@ -1,5 +1,7 @@ // Haddock JavaScript utilities +import {getCookie, setCookie, clearCookie} from "./cookies"; + const rspace = /\s\s+/g, rtrim = /^\s+|\s+$/g; @@ -37,7 +39,6 @@ function toggleClass(elem: Element, valueOn: string, valueOff: string, bool?: bo return bool; } - function makeClassToggle(valueOn: string, valueOff: string): (elem: Element, bool?: boolean) => boolean { return function(elem, bool) { return toggleClass(elem, valueOn, valueOff, bool); @@ -45,69 +46,6 @@ function makeClassToggle(valueOn: string, valueOff: string): (elem: Element, boo } const toggleShow = makeClassToggle("show", "hide"); -const toggleCollapser = makeClassToggle("collapser", "expander"); - -function toggleSection(id: string): boolean { - const b = toggleShow(document.getElementById("section." + id) as Element); - toggleCollapser(document.getElementById("control." + id) as Element, b); - rememberCollapsed(id); - return b; -} - -// TODO: get rid of global variables -if (typeof window !== 'undefined') { - (window as any).toggleSection = toggleSection; -} - -const collapsed: { [id: string]: boolean } = {}; -function rememberCollapsed(id: string) { - if(collapsed[id]) - delete collapsed[id] - else - collapsed[id] = true; - - const sections: string[] = []; - for(let i in collapsed) { - if(collapsed.hasOwnProperty(i)) - sections.push(i); - } - // cookie specific to this page; don't use setCookie which sets path=/ - document.cookie = "collapsed=" + encodeURIComponent(sections.join('+')); -} - -export function restoreCollapsed() { - const cookie = getCookie("collapsed"); - if(!cookie) - return; - - const ids = cookie.split('+'); - for(const i in ids) - { - if(document.getElementById("section." + ids[i])) - toggleSection(ids[i]); - } -} - -function setCookie(name: string, value: string) { - document.cookie = name + "=" + encodeURIComponent(value) + ";path=/;"; -} - -function clearCookie(name: string) { - document.cookie = name + "=;path=/;expires=Thu, 01-Jan-1970 00:00:01 GMT;"; -} - -function getCookie(name: string) { - const nameEQ = name + "="; - const ca = document.cookie.split(';'); - for (let i = 0; i < ca.length; i++) { - let c = ca[i]; - while (c.charAt(0)==' ') c = c.substring(1,c.length); - if (c.indexOf(nameEQ) == 0) { - return decodeURIComponent(c.substring(nameEQ.length,c.length)); - } - } - return null; -} function addMenuItem(html: string) { const menu = document.getElementById("page-menu"); @@ -123,7 +61,7 @@ function styles(): HTMLLinkElement[] { return es.filter((a: HTMLLinkElement) => a.rel.indexOf("style") != -1 && a.title); } -export function addStyleMenu() { +function addStyleMenu() { const as = styles(); let btns = ""; as.forEach((a) => { @@ -162,7 +100,7 @@ function setActiveStyleSheet(title: string) { styleMenu(false); } -export function resetStyle() { +function resetStyle() { const s = getCookie("haddock-style"); if (s) setActiveStyleSheet(s); } @@ -170,4 +108,9 @@ export function resetStyle() { function styleMenu(show?: boolean) { const m = document.getElementById('style-menu'); if (m) toggleShow(m, show); +} + +export function init() { + addStyleMenu(); + resetStyle(); }
\ No newline at end of file diff --git a/haddock-api/src/Haddock/Backends/Xhtml.hs b/haddock-api/src/Haddock/Backends/Xhtml.hs index e8148782..c76c0c88 100644 --- a/haddock-api/src/Haddock/Backends/Xhtml.hs +++ b/haddock-api/src/Haddock/Backends/Xhtml.hs @@ -310,11 +310,11 @@ mkNode qual ss p (Node s leaf pkg srcPkg short ts) = htmlModule <+> shortDescr +++ htmlPkg +++ subtree where modAttrs = case (ts, leaf) of - (_:_, False) -> collapseControl p True "module" + (_:_, False) -> collapseControl p "module" (_, _ ) -> [theclass "module"] cBtn = case (ts, leaf) of - (_:_, True) -> thespan ! collapseControl p True "" << spaceHtml + (_:_, True) -> thespan ! collapseControl p "" << spaceHtml (_, _ ) -> noHtml -- We only need an explicit collapser button when the module name -- is also a leaf, and so is a link to a module page. Indeed, the @@ -332,7 +332,12 @@ mkNode qual ss p (Node s leaf pkg srcPkg short ts) = shortDescr = maybe noHtml (origDocToHtml qual) short htmlPkg = maybe noHtml (thespan ! [theclass "package"] <<) srcPkg - subtree = mkNodeList qual (s:ss) p ts ! collapseSection p True "" + subtree = + if null ts then noHtml else + collapseDetails p DetailsOpen ( + thesummary ! [ theclass "hide-when-js-enabled" ] << "Submodules" +++ + mkNodeList qual (s:ss) p ts + ) @@ -586,10 +591,12 @@ ifaceToHtml maybe_source_url maybe_wiki_url iface unicode qual | no_doc_at_all = noHtml | otherwise = divSynopsis $ - paragraph ! collapseControl "syn" False "caption" << "Synopsis" +++ - shortDeclList ( - mapMaybe (processExport True linksInfo unicode qual) exports - ) ! (collapseSection "syn" False "" ++ collapseToggle "syn") + collapseDetails "syn" DetailsClosed ( + thesummary << "Synopsis" +++ + shortDeclList ( + mapMaybe (processExport True linksInfo unicode qual) exports + ) ! collapseToggle "syn" "" + ) -- if the documentation doesn't begin with a section header, then -- add one ("Documentation"). diff --git a/haddock-api/src/Haddock/Backends/Xhtml/DocMarkup.hs b/haddock-api/src/Haddock/Backends/Xhtml/DocMarkup.hs index 18c8a0ff..e63667b0 100644 --- a/haddock-api/src/Haddock/Backends/Xhtml/DocMarkup.hs +++ b/haddock-api/src/Haddock/Backends/Xhtml/DocMarkup.hs @@ -165,9 +165,9 @@ hackMarkup fmt' h' = UntouchedDoc d -> (markup fmt $ _doc d, [_meta d]) CollapsingHeader (Header lvl titl) par n nm -> let id_ = makeAnchorId $ "ch:" ++ fromMaybe "noid:" nm ++ show n - expanded = False - col' = collapseControl id_ expanded "caption" - instTable = (thediv ! collapseSection id_ expanded [] <<) + col' = collapseControl id_ "caption" + summary = thesummary ! [ theclass "hide-when-js-enabled" ] << "Expand" + instTable contents = collapseDetails id_ DetailsClosed (summary +++ contents) lvs = zip [1 .. ] [h1, h2, h3, h4, h5, h6] getHeader = fromMaybe caption (lookup lvl lvs) subCaption = getHeader ! col' << markup fmt titl diff --git a/haddock-api/src/Haddock/Backends/Xhtml/Layout.hs b/haddock-api/src/Haddock/Backends/Xhtml/Layout.hs index 6993c7f6..e020b909 100644 --- a/haddock-api/src/Haddock/Backends/Xhtml/Layout.hs +++ b/haddock-api/src/Haddock/Backends/Xhtml/Layout.hs @@ -199,10 +199,10 @@ subInstances :: Qualification -> [(SubDecl,Located DocName)] -> Html subInstances qual nm lnks splice = maybe noHtml wrap . instTable where - wrap = (subSection <<) . (subCaption +++) - instTable = fmap (thediv ! collapseSection id_ True [] <<) . subTableSrc qual lnks splice + wrap contents = subSection (collapseDetails id_ DetailsOpen (summary +++ contents)) + instTable = subTableSrc qual lnks splice subSection = thediv ! [theclass "subs instances"] - subCaption = paragraph ! collapseControl id_ True "caption" << "Instances" + summary = thesummary << "Instances" id_ = makeAnchorId $ "i:" ++ nm @@ -212,7 +212,7 @@ subOrphanInstances :: Qualification subOrphanInstances qual lnks splice = maybe noHtml wrap . instTable where wrap = ((h1 << "Orphan instances") +++) - instTable = fmap (thediv ! collapseSection id_ True [] <<) . subTableSrc qual lnks splice + instTable = fmap (thediv ! [ identifier ("section." ++ id_) ] <<) . subTableSrc qual lnks splice id_ = makeAnchorId $ "orphans" @@ -222,7 +222,7 @@ subInstHead :: String -- ^ Instance unique id (for anchor generation) subInstHead iid hdr = expander noHtml <+> hdr where - expander = thespan ! collapseControl (instAnchorId iid) False "instance" + expander = thespan ! collapseControl (instAnchorId iid) "instance" subInstDetails :: String -- ^ Instance unique id (for anchor generation) @@ -241,7 +241,9 @@ subFamInstDetails iid fi = subInstSection :: String -- ^ Instance unique id (for anchor generation) -> Html -> Html -subInstSection iid = thediv ! collapseSection (instAnchorId iid) False "inst-details" +subInstSection iid contents = collapseDetails (instAnchorId iid) DetailsClosed (summary +++ contents) + where + summary = thesummary ! [ theclass "hide-when-js-enabled" ] << "Instance details" instAnchorId :: String -> String instAnchorId iid = makeAnchorId $ "i:" ++ iid diff --git a/haddock-api/src/Haddock/Backends/Xhtml/Utils.hs b/haddock-api/src/Haddock/Backends/Xhtml/Utils.hs index a8b4a4ec..a75c4b9a 100644 --- a/haddock-api/src/Haddock/Backends/Xhtml/Utils.hs +++ b/haddock-api/src/Haddock/Backends/Xhtml/Utils.hs @@ -25,7 +25,8 @@ module Haddock.Backends.Xhtml.Utils ( hsep, vcat, - collapseSection, collapseToggle, collapseControl, + DetailsState(..), collapseDetails, thesummary, + collapseToggle, collapseControl, ) where @@ -213,26 +214,22 @@ groupId g = makeAnchorId ("g:" ++ g) -- A section of HTML which is collapsible. -- --- | Attributes for an area that can be collapsed -collapseSection :: String -> Bool -> String -> [HtmlAttr] -collapseSection id_ state classes = [ identifier sid, theclass cs ] - where cs = unwords (words classes ++ [pick state "show" "hide"]) - sid = "section." ++ id_ +data DetailsState = DetailsOpen | DetailsClosed + +collapseDetails :: String -> DetailsState -> Html -> Html +collapseDetails id_ state = tag "details" ! (identifier id_ : openAttrs) + where openAttrs = case state of { DetailsOpen -> [emptyAttr "open"]; DetailsClosed -> [] } + +thesummary :: Html -> Html +thesummary = tag "summary" -- | Attributes for an area that toggles a collapsed area -collapseToggle :: String -> [HtmlAttr] -collapseToggle id_ = [ strAttr "onclick" js ] - where js = "toggleSection('" ++ id_ ++ "')"; +collapseToggle :: String -> String -> [HtmlAttr] +collapseToggle id_ classes = [ theclass cs, strAttr "data-details-id" id_ ] + where cs = unwords (words classes ++ ["details-toggle"]) -- | Attributes for an area that toggles a collapsed area, -- and displays a control. -collapseControl :: String -> Bool -> String -> [HtmlAttr] -collapseControl id_ state classes = - [ identifier cid, theclass cs ] ++ collapseToggle id_ - where cs = unwords (words classes ++ [pick state "collapser" "expander"]) - cid = "control." ++ id_ - - -pick :: Bool -> a -> a -> a -pick True t _ = t -pick False _ f = f +collapseControl :: String -> String -> [HtmlAttr] +collapseControl id_ classes = collapseToggle id_ cs + where cs = unwords (words classes ++ ["details-toggle-control"])
\ No newline at end of file diff --git a/html-test/ref/A.html b/html-test/ref/A.html index 094455f8..1fbfb371 100644 --- a/html-test/ref/A.html +++ b/html-test/ref/A.html @@ -39,44 +39,46 @@ >A</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><span class="keyword" - >data</span - > <a href="#" - >A</a - > = <a href="#" - >A</a - ></li - ><li class="src short" - ><a href="#" - >other</a - > :: <a href="#" - >Int</a - ></li - ><li class="src short" - ><a href="#" - >test2</a - > :: <a href="#" - >Bool</a - ></li - ><li class="src short" - ><span class="keyword" - >data</span - > <a href="#" - >X</a - > = <a href="#" - >X</a - ></li + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" ><li class="src short" - ><a href="#" - >reExport</a - > :: <a href="#" - >Int</a - ></li - ></ul + ><span class="keyword" + >data</span + > <a href="#" + >A</a + > = <a href="#" + >A</a + ></li + ><li class="src short" + ><a href="#" + >other</a + > :: <a href="#" + >Int</a + ></li + ><li class="src short" + ><a href="#" + >test2</a + > :: <a href="#" + >Bool</a + ></li + ><li class="src short" + ><span class="keyword" + >data</span + > <a href="#" + >X</a + > = <a href="#" + >X</a + ></li + ><li class="src short" + ><a href="#" + >reExport</a + > :: <a href="#" + >Int</a + ></li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/B.html b/html-test/ref/B.html index 577c7b48..12d8e907 100644 --- a/html-test/ref/B.html +++ b/html-test/ref/B.html @@ -39,34 +39,36 @@ >B</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - >module <a href="#" - >A</a - ></li - ><li class="src short" - ><a href="#" - >test</a - > :: <a href="#" - >Int</a - ></li - ><li class="src short" - ><a href="#" - >reExport</a - > :: <a href="#" - >Int</a - ></li + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" ><li class="src short" - ><span class="keyword" - >data</span - > <a href="#" - >X</a - > = <a href="#" - >X</a - ></li - ></ul + >module <a href="#" + >A</a + ></li + ><li class="src short" + ><a href="#" + >test</a + > :: <a href="#" + >Int</a + ></li + ><li class="src short" + ><a href="#" + >reExport</a + > :: <a href="#" + >Int</a + ></li + ><li class="src short" + ><span class="keyword" + >data</span + > <a href="#" + >X</a + > = <a href="#" + >X</a + ></li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/Bold.html b/html-test/ref/Bold.html index 305682fe..112d7aca 100644 --- a/html-test/ref/Bold.html +++ b/html-test/ref/Bold.html @@ -39,14 +39,16 @@ >Bold</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><a href="#" - >foo</a - > :: a</li - ></ul + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" + ><li class="src short" + ><a href="#" + >foo</a + > :: a</li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/Bug1.html b/html-test/ref/Bug1.html index 053c0b8e..e6ee486b 100644 --- a/html-test/ref/Bug1.html +++ b/html-test/ref/Bug1.html @@ -39,18 +39,20 @@ >Bug1</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><span class="keyword" - >data</span - > <a href="#" - >T</a - > = <a href="#" - >T</a - ></li - ></ul + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" + ><li class="src short" + ><span class="keyword" + >data</span + > <a href="#" + >T</a + > = <a href="#" + >T</a + ></li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/Bug201.html b/html-test/ref/Bug201.html index 6902a8b9..288a9499 100644 --- a/html-test/ref/Bug201.html +++ b/html-test/ref/Bug201.html @@ -39,18 +39,20 @@ >Bug201</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><a href="#" - >f</a - > :: ()</li + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" ><li class="src short" - ><a href="#" - >g</a - > :: ()</li - ></ul + ><a href="#" + >f</a + > :: ()</li + ><li class="src short" + ><a href="#" + >g</a + > :: ()</li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/Bug253.html b/html-test/ref/Bug253.html index a8d232d4..178d70fe 100644 --- a/html-test/ref/Bug253.html +++ b/html-test/ref/Bug253.html @@ -55,14 +55,16 @@ ></div ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><a href="#" - >foo</a - > :: ()</li - ></ul + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" + ><li class="src short" + ><a href="#" + >foo</a + > :: ()</li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/Bug26.html b/html-test/ref/Bug26.html index 5dc4bc83..376c2ce6 100644 --- a/html-test/ref/Bug26.html +++ b/html-test/ref/Bug26.html @@ -51,28 +51,30 @@ ></div ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><a href="#" - >f</a - > :: ()</li - ><li class="src short" - ><a href="#" - >g</a - > :: ()</li + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" ><li class="src short" - ><span class="keyword" - >class</span - > <a href="#" - >C</a - > a <span class="keyword" - >where</span - ><ul class="subs" + ><a href="#" + >f</a + > :: ()</li + ><li class="src short" + ><a href="#" + >g</a + > :: ()</li + ><li class="src short" + ><span class="keyword" + >class</span + > <a href="#" + >C</a + > a <span class="keyword" + >where</span + ><ul class="subs" + ></ul + ></li ></ul - ></li - ></ul + ></details ></div ><div id="interface" ><h1 @@ -149,14 +151,14 @@ ></div ></div ><div class="subs instances" - ><p id="control.i:C" class="caption collapser" onclick="toggleSection('i:C')" - >Instances</p - ><div id="section.i:C" class="show" - ><table + ><details id="i:C" open="open" + ><summary + >Instances</summary + ><table ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:ic:C:C:1" class="instance expander" onclick="toggleSection('i:ic:C:C:1')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:C:C:1" ></span > <a href="#" >C</a @@ -175,8 +177,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:ic:C:C:1" class="inst-details hide" - ><div class="subs methods" + ><details id="i:ic:C:C:1" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs methods" ><p class="caption" >Methods</p ><p class="src" @@ -186,11 +190,11 @@ >#</a ></p ></div - ></div + ></details ></td ></tr ></table - ></div + ></details ></div ></div ></div diff --git a/html-test/ref/Bug294.html b/html-test/ref/Bug294.html index d08b69a9..87a03731 100644 --- a/html-test/ref/Bug294.html +++ b/html-test/ref/Bug294.html @@ -51,14 +51,14 @@ >#</a ></p ><div class="subs instances" - ><p id="control.i:A" class="caption collapser" onclick="toggleSection('i:A')" - >Instances</p - ><div id="section.i:A" class="show" - ><table + ><details id="i:A" open="open" + ><summary + >Instances</summary + ><table ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:id:A:DP:1" class="instance expander" onclick="toggleSection('i:id:A:DP:1')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:A:DP:1" ></span > <span class="keyword" >data</span @@ -75,8 +75,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:id:A:DP:1" class="inst-details hide" - ><div class="src" + ><details id="i:id:A:DP:1" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="src" ><span class="keyword" >data</span > <a href="#" @@ -88,13 +90,13 @@ > <a href="#" >A</a ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:id:A:TP:2" class="instance expander" onclick="toggleSection('i:id:A:TP:2')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:A:TP:2" ></span > <span class="keyword" >data</span @@ -109,8 +111,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:id:A:TP:2" class="inst-details hide" - ><div class="src" + ><details id="i:id:A:TP:2" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="src" ><span class="keyword" >data</span > TP <a href="#" @@ -120,11 +124,11 @@ > <a href="#" >A</a ></div - ></div + ></details ></td ></tr ></table - ></div + ></details ></div ></div ><div class="top" @@ -175,14 +179,14 @@ >#</a ></p ><div class="subs instances" - ><p id="control.i:DP" class="caption collapser" onclick="toggleSection('i:DP')" - >Instances</p - ><div id="section.i:DP" class="show" - ><table + ><details id="i:DP" open="open" + ><summary + >Instances</summary + ><table ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:if:DP:DP:1" class="instance expander" onclick="toggleSection('i:if:DP:DP:1')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:if:DP:DP:1" ></span > <span class="keyword" >data</span @@ -199,8 +203,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:if:DP:DP:1" class="inst-details hide" - ><div class="src" + ><details id="i:if:DP:DP:1" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="src" ><span class="keyword" >data</span > <a href="#" @@ -212,11 +218,11 @@ > <a href="#" >A</a ></div - ></div + ></details ></td ></tr ></table - ></div + ></details ></div ></div ></div diff --git a/html-test/ref/Bug298.html b/html-test/ref/Bug298.html index efee6ce3..532d40c5 100644 --- a/html-test/ref/Bug298.html +++ b/html-test/ref/Bug298.html @@ -39,30 +39,32 @@ >Bug298</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><a href="#" - >(<^>)</a - > :: (a -> a) -> a -> a</li - ><li class="src short" - ><a href="#" - >(<^)</a - > :: a -> a -> a</li - ><li class="src short" - ><a href="#" - >(^>)</a - > :: a -> a -> a</li - ><li class="src short" - ><a href="#" - >(⋆^)</a - > :: a -> a -> a</li + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" ><li class="src short" - ><a href="#" - >f</a - > :: ()</li - ></ul + ><a href="#" + >(<^>)</a + > :: (a -> a) -> a -> a</li + ><li class="src short" + ><a href="#" + >(<^)</a + > :: a -> a -> a</li + ><li class="src short" + ><a href="#" + >(^>)</a + > :: a -> a -> a</li + ><li class="src short" + ><a href="#" + >(⋆^)</a + > :: a -> a -> a</li + ><li class="src short" + ><a href="#" + >f</a + > :: ()</li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/Bug3.html b/html-test/ref/Bug3.html index 7cb1f431..80d01cfe 100644 --- a/html-test/ref/Bug3.html +++ b/html-test/ref/Bug3.html @@ -39,16 +39,18 @@ >Bug3</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><a href="#" - >foo</a - > :: <a href="#" - >Int</a - ></li - ></ul + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" + ><li class="src short" + ><a href="#" + >foo</a + > :: <a href="#" + >Int</a + ></li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/Bug308.html b/html-test/ref/Bug308.html index 54343aa6..b2d88452 100644 --- a/html-test/ref/Bug308.html +++ b/html-test/ref/Bug308.html @@ -39,18 +39,20 @@ >Bug308</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><a href="#" - >f</a - > :: ()</li + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" ><li class="src short" - ><a href="#" - >g</a - > :: ()</li - ></ul + ><a href="#" + >f</a + > :: ()</li + ><li class="src short" + ><a href="#" + >g</a + > :: ()</li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/Bug308CrossModule.html b/html-test/ref/Bug308CrossModule.html index 9c9a2dec..acd10424 100644 --- a/html-test/ref/Bug308CrossModule.html +++ b/html-test/ref/Bug308CrossModule.html @@ -39,14 +39,16 @@ >Bug308CrossModule</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><a href="#" - >h</a - > :: ()</li - ></ul + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" + ><li class="src short" + ><a href="#" + >h</a + > :: ()</li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/Bug310.html b/html-test/ref/Bug310.html index 93734800..50ba8cfd 100644 --- a/html-test/ref/Bug310.html +++ b/html-test/ref/Bug310.html @@ -39,24 +39,26 @@ >Bug310</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><span class="keyword" - >type family</span - > (a :: <a href="#" - >Nat</a - >) <a href="#" - >+</a - > (b :: <a href="#" - >Nat</a - >) :: <a href="#" - >Nat</a - > <span class="keyword" - >where ...</span - ></li - ></ul + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" + ><li class="src short" + ><span class="keyword" + >type family</span + > (a :: <a href="#" + >Nat</a + >) <a href="#" + >+</a + > (b :: <a href="#" + >Nat</a + >) :: <a href="#" + >Nat</a + > <span class="keyword" + >where ...</span + ></li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/Bug313.html b/html-test/ref/Bug313.html index 9afe11eb..17a39600 100644 --- a/html-test/ref/Bug313.html +++ b/html-test/ref/Bug313.html @@ -52,18 +52,20 @@ ></div ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><a href="#" - >a</a - > :: a</li + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" ><li class="src short" - ><a href="#" - >b</a - > :: a</li - ></ul + ><a href="#" + >a</a + > :: a</li + ><li class="src short" + ><a href="#" + >b</a + > :: a</li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/Bug335.html b/html-test/ref/Bug335.html index 8aaf4349..f2185045 100644 --- a/html-test/ref/Bug335.html +++ b/html-test/ref/Bug335.html @@ -39,18 +39,20 @@ >Bug335</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><a href="#" - >f</a - > :: ()</li + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" ><li class="src short" - ><a href="#" - >g</a - > :: ()</li - ></ul + ><a href="#" + >f</a + > :: ()</li + ><li class="src short" + ><a href="#" + >g</a + > :: ()</li + ></ul + ></details ></div ><div id="interface" ><h1 @@ -63,12 +65,14 @@ >#</a ></p ><div class="doc" - ><h3 id="control.ch:f0" class="caption expander" onclick="toggleSection('ch:f0')" + ><h3 class="caption details-toggle-control details-toggle" data-details-id="ch:f0" >ExF:</h3 - ><div id="section.ch:f0" class="hide" - ><p + ><details id="ch:f0" + ><summary class="hide-when-js-enabled" + >Expand</summary + ><p >abc</p - ></div + ></details ></div ></div ><div class="top" @@ -79,10 +83,12 @@ >#</a ></p ><div class="doc" - ><h3 id="control.ch:g0" class="caption expander" onclick="toggleSection('ch:g0')" + ><h3 class="caption details-toggle-control details-toggle" data-details-id="ch:g0" >ExG:</h3 - ><div id="section.ch:g0" class="hide" - ><pre class="screen" + ><details id="ch:g0" + ><summary class="hide-when-js-enabled" + >Expand</summary + ><pre class="screen" ><code class="prompt" >>>> </code ><strong class="userinput" @@ -106,7 +112,7 @@ >Under ex</h4 ><p >foo</p - ></div + ></details ><h2 >Out of Ex</h2 ><p diff --git a/html-test/ref/Bug387.html b/html-test/ref/Bug387.html index e7ecdf62..23faa420 100644 --- a/html-test/ref/Bug387.html +++ b/html-test/ref/Bug387.html @@ -53,22 +53,24 @@ ></ul ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><a href="#" - >test1</a - > :: <a href="#" - >Int</a - ></li + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" ><li class="src short" - ><a href="#" - >test2</a - > :: <a href="#" - >Int</a - ></li - ></ul + ><a href="#" + >test1</a + > :: <a href="#" + >Int</a + ></li + ><li class="src short" + ><a href="#" + >test2</a + > :: <a href="#" + >Int</a + ></li + ></ul + ></details ></div ><div id="interface" ><h1 id="g:1" diff --git a/html-test/ref/Bug4.html b/html-test/ref/Bug4.html index 94d3fdb2..40d9ee7b 100644 --- a/html-test/ref/Bug4.html +++ b/html-test/ref/Bug4.html @@ -39,16 +39,18 @@ >Bug4</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><a href="#" - >foo</a - > :: <a href="#" - >Int</a - ></li - ></ul + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" + ><li class="src short" + ><a href="#" + >foo</a + > :: <a href="#" + >Int</a + ></li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/Bug6.html b/html-test/ref/Bug6.html index 5cad0cf1..9dc093cd 100644 --- a/html-test/ref/Bug6.html +++ b/html-test/ref/Bug6.html @@ -47,80 +47,82 @@ ></div ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><span class="keyword" - >data</span - > <a href="#" - >A</a - > = <a href="#" - >A</a - > <a href="#" - >Int</a - ></li - ><li class="src short" - ><span class="keyword" - >data</span - > <a href="#" - >B</a - > = <a href="#" - >B</a - > {<ul class="subs" - ><li - ><a href="#" - >b</a - > :: <a href="#" - >Int</a - ></li - ></ul - >}</li + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" ><li class="src short" - ><span class="keyword" - >data</span - > <a href="#" - >C</a - > = <a href="#" - >C</a - > {<ul class="subs" - ><li - ><a href="#" - >c1</a - > :: <a href="#" - >Int</a - ></li + ><span class="keyword" + >data</span + > <a href="#" + >A</a + > = <a href="#" + >A</a + > <a href="#" + >Int</a + ></li + ><li class="src short" + ><span class="keyword" + >data</span + > <a href="#" + >B</a + > = <a href="#" + >B</a + > {<ul class="subs" ><li - ><a href="#" - >c2</a - > :: <a href="#" - >Int</a - ></li - ></ul - >}</li - ><li class="src short" - ><span class="keyword" - >data</span - > <a href="#" - >D</a - > = <a href="#" - >D</a - > <a href="#" - >Int</a - > <a href="#" - >Int</a - ></li - ><li class="src short" - ><span class="keyword" - >newtype</span - > <a href="#" - >E</a - > = <a href="#" - >E</a - > <a href="#" - >Int</a - ></li - ></ul + ><a href="#" + >b</a + > :: <a href="#" + >Int</a + ></li + ></ul + >}</li + ><li class="src short" + ><span class="keyword" + >data</span + > <a href="#" + >C</a + > = <a href="#" + >C</a + > {<ul class="subs" + ><li + ><a href="#" + >c1</a + > :: <a href="#" + >Int</a + ></li + ><li + ><a href="#" + >c2</a + > :: <a href="#" + >Int</a + ></li + ></ul + >}</li + ><li class="src short" + ><span class="keyword" + >data</span + > <a href="#" + >D</a + > = <a href="#" + >D</a + > <a href="#" + >Int</a + > <a href="#" + >Int</a + ></li + ><li class="src short" + ><span class="keyword" + >newtype</span + > <a href="#" + >E</a + > = <a href="#" + >E</a + > <a href="#" + >Int</a + ></li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/Bug613.html b/html-test/ref/Bug613.html index 45bf7bc4..765f18e1 100644 --- a/html-test/ref/Bug613.html +++ b/html-test/ref/Bug613.html @@ -39,28 +39,30 @@ >Bug613</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><span class="keyword" - >class</span - > <a href="#" - >Functor</a - > f <span class="keyword" - >where</span - ><ul class="subs" - ></ul - ></li + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" ><li class="src short" - ><span class="keyword" - >data</span - > <a href="#" - >ThreeVars</a - > a0 a b = <a href="#" - >ThreeVars</a - > a b</li - ></ul + ><span class="keyword" + >class</span + > <a href="#" + >Functor</a + > f <span class="keyword" + >where</span + ><ul class="subs" + ></ul + ></li + ><li class="src short" + ><span class="keyword" + >data</span + > <a href="#" + >ThreeVars</a + > a0 a b = <a href="#" + >ThreeVars</a + > a b</li + ></ul + ></details ></div ><div id="interface" ><h1 @@ -95,14 +97,14 @@ ></p ></div ><div class="subs instances" - ><p id="control.i:Functor" class="caption collapser" onclick="toggleSection('i:Functor')" - >Instances</p - ><div id="section.i:Functor" class="show" - ><table + ><details id="i:Functor" open="open" + ><summary + >Instances</summary + ><table ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:ic:Functor:Functor:1" class="instance expander" onclick="toggleSection('i:ic:Functor:Functor:1')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Functor:Functor:1" ></span > <a href="#" >Functor</a @@ -117,8 +119,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:ic:Functor:Functor:1" class="inst-details hide" - ><div class="subs methods" + ><details id="i:ic:Functor:Functor:1" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs methods" ><p class="caption" >Methods</p ><p class="src" @@ -132,13 +136,13 @@ >#</a ></p ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:ic:Functor:Functor:2" class="instance expander" onclick="toggleSection('i:ic:Functor:Functor:2')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Functor:Functor:2" ></span > <a href="#" >Functor</a @@ -153,8 +157,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:ic:Functor:Functor:2" class="inst-details hide" - ><div class="subs methods" + ><details id="i:ic:Functor:Functor:2" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs methods" ><p class="caption" >Methods</p ><p class="src" @@ -168,11 +174,11 @@ >#</a ></p ></div - ></div + ></details ></td ></tr ></table - ></div + ></details ></div ></div ><div class="top" @@ -203,14 +209,14 @@ ></table ></div ><div class="subs instances" - ><p id="control.i:ThreeVars" class="caption collapser" onclick="toggleSection('i:ThreeVars')" - >Instances</p - ><div id="section.i:ThreeVars" class="show" - ><table + ><details id="i:ThreeVars" open="open" + ><summary + >Instances</summary + ><table ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:id:ThreeVars:Functor:1" class="instance expander" onclick="toggleSection('i:id:ThreeVars:Functor:1')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:ThreeVars:Functor:1" ></span > <a href="#" >Functor</a @@ -225,8 +231,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:id:ThreeVars:Functor:1" class="inst-details hide" - ><div class="subs methods" + ><details id="i:id:ThreeVars:Functor:1" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs methods" ><p class="caption" >Methods</p ><p class="src" @@ -240,11 +248,11 @@ >#</a ></p ></div - ></div + ></details ></td ></tr ></table - ></div + ></details ></div ></div ></div diff --git a/html-test/ref/Bug7.html b/html-test/ref/Bug7.html index 862002a0..ba1a4e26 100644 --- a/html-test/ref/Bug7.html +++ b/html-test/ref/Bug7.html @@ -48,24 +48,26 @@ ></div ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><span class="keyword" - >data</span - > <a href="#" - >Foo</a - > = <a href="#" - >Foo</a - ></li + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" ><li class="src short" - ><span class="keyword" - >class</span - > <a href="#" - >Bar</a - > x y</li - ></ul + ><span class="keyword" + >data</span + > <a href="#" + >Foo</a + > = <a href="#" + >Foo</a + ></li + ><li class="src short" + ><span class="keyword" + >class</span + > <a href="#" + >Bar</a + > x y</li + ></ul + ></details ></div ><div id="interface" ><h1 @@ -98,14 +100,14 @@ ></table ></div ><div class="subs instances" - ><p id="control.i:Foo" class="caption collapser" onclick="toggleSection('i:Foo')" - >Instances</p - ><div id="section.i:Foo" class="show" - ><table + ><details id="i:Foo" open="open" + ><summary + >Instances</summary + ><table ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:id:Foo:Bar:1" class="instance expander" onclick="toggleSection('i:id:Foo:Bar:1')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Foo:Bar:1" ></span > <a href="#" >Bar</a @@ -124,12 +126,14 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:id:Foo:Bar:1" class="inst-details hide" - ></div + ><details id="i:id:Foo:Bar:1" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ></details ></td ></tr ></table - ></div + ></details ></div ></div ><div class="top" @@ -146,14 +150,14 @@ >The Bar class</p ></div ><div class="subs instances" - ><p id="control.i:Bar" class="caption collapser" onclick="toggleSection('i:Bar')" - >Instances</p - ><div id="section.i:Bar" class="show" - ><table + ><details id="i:Bar" open="open" + ><summary + >Instances</summary + ><table ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:ic:Bar:Bar:1" class="instance expander" onclick="toggleSection('i:ic:Bar:Bar:1')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Bar:Bar:1" ></span > <a href="#" >Bar</a @@ -172,12 +176,14 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:ic:Bar:Bar:1" class="inst-details hide" - ></div + ><details id="i:ic:Bar:Bar:1" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ></details ></td ></tr ></table - ></div + ></details ></div ></div ></div diff --git a/html-test/ref/BugDeprecated.html b/html-test/ref/BugDeprecated.html index 629224e4..ca801201 100644 --- a/html-test/ref/BugDeprecated.html +++ b/html-test/ref/BugDeprecated.html @@ -39,46 +39,48 @@ >BugDeprecated</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><a href="#" - >foo</a - > :: <a href="#" - >Int</a - ></li - ><li class="src short" - ><a href="#" - >bar</a - > :: <a href="#" - >Int</a - ></li - ><li class="src short" - ><a href="#" - >baz</a - > :: <a href="#" - >Int</a - ></li + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" ><li class="src short" - ><a href="#" - >one</a - > :: <a href="#" - >Int</a - ></li - ><li class="src short" - ><a href="#" - >two</a - > :: <a href="#" - >Int</a - ></li - ><li class="src short" - ><a href="#" - >three</a - > :: <a href="#" - >Int</a - ></li - ></ul + ><a href="#" + >foo</a + > :: <a href="#" + >Int</a + ></li + ><li class="src short" + ><a href="#" + >bar</a + > :: <a href="#" + >Int</a + ></li + ><li class="src short" + ><a href="#" + >baz</a + > :: <a href="#" + >Int</a + ></li + ><li class="src short" + ><a href="#" + >one</a + > :: <a href="#" + >Int</a + ></li + ><li class="src short" + ><a href="#" + >two</a + > :: <a href="#" + >Int</a + ></li + ><li class="src short" + ><a href="#" + >three</a + > :: <a href="#" + >Int</a + ></li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/BugExportHeadings.html b/html-test/ref/BugExportHeadings.html index ac121737..7b3e7728 100644 --- a/html-test/ref/BugExportHeadings.html +++ b/html-test/ref/BugExportHeadings.html @@ -69,46 +69,48 @@ ></ul ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><a href="#" - >foo</a - > :: <a href="#" - >Int</a - ></li - ><li class="src short" - ><a href="#" - >bar</a - > :: <a href="#" - >Int</a - ></li + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" ><li class="src short" - ><a href="#" - >baz</a - > :: <a href="#" - >Int</a - ></li - ><li class="src short" - ><a href="#" - >one</a - > :: <a href="#" - >Int</a - ></li - ><li class="src short" - ><a href="#" - >two</a - > :: <a href="#" - >Int</a - ></li - ><li class="src short" - ><a href="#" - >three</a - > :: <a href="#" - >Int</a - ></li - ></ul + ><a href="#" + >foo</a + > :: <a href="#" + >Int</a + ></li + ><li class="src short" + ><a href="#" + >bar</a + > :: <a href="#" + >Int</a + ></li + ><li class="src short" + ><a href="#" + >baz</a + > :: <a href="#" + >Int</a + ></li + ><li class="src short" + ><a href="#" + >one</a + > :: <a href="#" + >Int</a + ></li + ><li class="src short" + ><a href="#" + >two</a + > :: <a href="#" + >Int</a + ></li + ><li class="src short" + ><a href="#" + >three</a + > :: <a href="#" + >Int</a + ></li + ></ul + ></details ></div ><div id="interface" ><h1 id="g:1" diff --git a/html-test/ref/BundledPatterns.html b/html-test/ref/BundledPatterns.html index 7f424a0d..dea60728 100644 --- a/html-test/ref/BundledPatterns.html +++ b/html-test/ref/BundledPatterns.html @@ -39,82 +39,84 @@ >BundledPatterns</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><span class="keyword" - >data</span - > <a href="#" - >Vec</a - > :: <a href="#" - >Nat</a - > -> <a href="#" - >*</a - > -> <a href="#" - >*</a - > <span class="keyword" - >where</span - ><ul class="subs" - ><li - ><a href="#" - >Nil</a - > :: <a href="#" - >Vec</a - > 0 a</li - ><li - ><span class="keyword" - >pattern</span - > <a href="#" - >(:>)</a - > :: a -> <a href="#" - >Vec</a - > n a -> <a href="#" - >Vec</a - > (n <a href="#" - >+</a - > 1) a</li - ></ul - ></li + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" ><li class="src short" - ><span class="keyword" - >data</span - > <a href="#" - >RTree</a - > :: <a href="#" - >Nat</a - > -> <a href="#" - >*</a - > -> <a href="#" - >*</a - > <span class="keyword" - >where</span - ><ul class="subs" - ><li - ><span class="keyword" - >pattern</span - > <a href="#" - >LR</a - > :: a -> <a href="#" - >RTree</a - > 0 a</li + ><span class="keyword" + >data</span + > <a href="#" + >Vec</a + > :: <a href="#" + >Nat</a + > -> <a href="#" + >*</a + > -> <a href="#" + >*</a + > <span class="keyword" + >where</span + ><ul class="subs" ><li - ><span class="keyword" - >pattern</span - > <a href="#" - >BR</a - > :: <a href="#" - >RTree</a - > d a -> <a href="#" - >RTree</a - > d a -> <a href="#" - >RTree</a - > (d <a href="#" - >+</a - > 1) a</li - ></ul - ></li - ></ul + ><a href="#" + >Nil</a + > :: <a href="#" + >Vec</a + > 0 a</li + ><li + ><span class="keyword" + >pattern</span + > <a href="#" + >(:>)</a + > :: a -> <a href="#" + >Vec</a + > n a -> <a href="#" + >Vec</a + > (n <a href="#" + >+</a + > 1) a</li + ></ul + ></li + ><li class="src short" + ><span class="keyword" + >data</span + > <a href="#" + >RTree</a + > :: <a href="#" + >Nat</a + > -> <a href="#" + >*</a + > -> <a href="#" + >*</a + > <span class="keyword" + >where</span + ><ul class="subs" + ><li + ><span class="keyword" + >pattern</span + > <a href="#" + >LR</a + > :: a -> <a href="#" + >RTree</a + > 0 a</li + ><li + ><span class="keyword" + >pattern</span + > <a href="#" + >BR</a + > :: <a href="#" + >RTree</a + > d a -> <a href="#" + >RTree</a + > d a -> <a href="#" + >RTree</a + > (d <a href="#" + >+</a + > 1) a</li + ></ul + ></li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/BundledPatterns2.html b/html-test/ref/BundledPatterns2.html index 3c7b8c89..385fd07f 100644 --- a/html-test/ref/BundledPatterns2.html +++ b/html-test/ref/BundledPatterns2.html @@ -39,84 +39,86 @@ >BundledPatterns2</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><span class="keyword" - >data</span - > <a href="#" - >Vec</a - > :: <a href="#" - >Nat</a - > -> <a href="#" - >*</a - > -> <a href="#" - >*</a - > <span class="keyword" - >where</span - ><ul class="subs" - ><li - ><span class="keyword" - >pattern</span - > <a href="#" - >Empty</a - > :: <a href="#" - >Vec</a - > 0 a</li - ><li - ><span class="keyword" - >pattern</span - > <a href="#" - >(:>)</a - > :: a -> <a href="#" - >Vec</a - > n a -> <a href="#" - >Vec</a - > (n <a href="#" - >+</a - > 1) a</li - ></ul - ></li + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" ><li class="src short" - ><span class="keyword" - >data</span - > <a href="#" - >RTree</a - > :: <a href="#" - >Nat</a - > -> <a href="#" - >*</a - > -> <a href="#" - >*</a - > <span class="keyword" - >where</span - ><ul class="subs" - ><li - ><span class="keyword" - >pattern</span - > <a href="#" - >LR</a - > :: a -> <a href="#" - >RTree</a - > 0 a</li + ><span class="keyword" + >data</span + > <a href="#" + >Vec</a + > :: <a href="#" + >Nat</a + > -> <a href="#" + >*</a + > -> <a href="#" + >*</a + > <span class="keyword" + >where</span + ><ul class="subs" ><li - ><span class="keyword" - >pattern</span - > <a href="#" - >BR</a - > :: <a href="#" - >RTree</a - > d a -> <a href="#" - >RTree</a - > d a -> <a href="#" - >RTree</a - > (d <a href="#" - >+</a - > 1) a</li - ></ul - ></li - ></ul + ><span class="keyword" + >pattern</span + > <a href="#" + >Empty</a + > :: <a href="#" + >Vec</a + > 0 a</li + ><li + ><span class="keyword" + >pattern</span + > <a href="#" + >(:>)</a + > :: a -> <a href="#" + >Vec</a + > n a -> <a href="#" + >Vec</a + > (n <a href="#" + >+</a + > 1) a</li + ></ul + ></li + ><li class="src short" + ><span class="keyword" + >data</span + > <a href="#" + >RTree</a + > :: <a href="#" + >Nat</a + > -> <a href="#" + >*</a + > -> <a href="#" + >*</a + > <span class="keyword" + >where</span + ><ul class="subs" + ><li + ><span class="keyword" + >pattern</span + > <a href="#" + >LR</a + > :: a -> <a href="#" + >RTree</a + > 0 a</li + ><li + ><span class="keyword" + >pattern</span + > <a href="#" + >BR</a + > :: <a href="#" + >RTree</a + > d a -> <a href="#" + >RTree</a + > d a -> <a href="#" + >RTree</a + > (d <a href="#" + >+</a + > 1) a</li + ></ul + ></li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/DeprecatedClass.html b/html-test/ref/DeprecatedClass.html index c7ff47dd..f7571316 100644 --- a/html-test/ref/DeprecatedClass.html +++ b/html-test/ref/DeprecatedClass.html @@ -39,30 +39,32 @@ >DeprecatedClass</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><span class="keyword" - >class</span - > <a href="#" - >SomeClass</a - > a <span class="keyword" - >where</span - ><ul class="subs" - ></ul - ></li + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" ><li class="src short" - ><span class="keyword" - >class</span - > <a href="#" - >SomeOtherClass</a - > a <span class="keyword" - >where</span - ><ul class="subs" + ><span class="keyword" + >class</span + > <a href="#" + >SomeClass</a + > a <span class="keyword" + >where</span + ><ul class="subs" + ></ul + ></li + ><li class="src short" + ><span class="keyword" + >class</span + > <a href="#" + >SomeOtherClass</a + > a <span class="keyword" + >where</span + ><ul class="subs" + ></ul + ></li ></ul - ></li - ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/DeprecatedData.html b/html-test/ref/DeprecatedData.html index 1216c4e0..2caed880 100644 --- a/html-test/ref/DeprecatedData.html +++ b/html-test/ref/DeprecatedData.html @@ -39,42 +39,44 @@ >DeprecatedData</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><span class="keyword" - >data</span - > <a href="#" - >Foo</a - ><ul class="subs" - ><li - >= <a href="#" - >Foo</a - ></li - ><li - >| <a href="#" - >Bar</a - ></li - ></ul - ></li + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" ><li class="src short" - ><span class="keyword" - >data</span - > <a href="#" - >One</a - ><ul class="subs" - ><li - >= <a href="#" - >One</a - ></li + ><span class="keyword" + >data</span + > <a href="#" + >Foo</a + ><ul class="subs" + ><li + >= <a href="#" + >Foo</a + ></li + ><li + >| <a href="#" + >Bar</a + ></li + ></ul + ></li + ><li class="src short" + ><span class="keyword" + >data</span + > <a href="#" + >One</a + ><ul class="subs" ><li - >| <a href="#" - >Two</a - ></li - ></ul - ></li - ></ul + >= <a href="#" + >One</a + ></li + ><li + >| <a href="#" + >Two</a + ></li + ></ul + ></li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/DeprecatedFunction.html b/html-test/ref/DeprecatedFunction.html index 4235df24..41bf7454 100644 --- a/html-test/ref/DeprecatedFunction.html +++ b/html-test/ref/DeprecatedFunction.html @@ -39,22 +39,24 @@ >DeprecatedFunction</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><a href="#" - >foo</a - > :: <a href="#" - >Int</a - ></li + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" ><li class="src short" - ><a href="#" - >bar</a - > :: <a href="#" - >Int</a - ></li - ></ul + ><a href="#" + >foo</a + > :: <a href="#" + >Int</a + ></li + ><li class="src short" + ><a href="#" + >bar</a + > :: <a href="#" + >Int</a + ></li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/DeprecatedFunction2.html b/html-test/ref/DeprecatedFunction2.html index 6e420a74..bbf6cdd7 100644 --- a/html-test/ref/DeprecatedFunction2.html +++ b/html-test/ref/DeprecatedFunction2.html @@ -39,16 +39,18 @@ >DeprecatedFunction2</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><a href="#" - >foo</a - > :: <a href="#" - >Int</a - ></li - ></ul + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" + ><li class="src short" + ><a href="#" + >foo</a + > :: <a href="#" + >Int</a + ></li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/DeprecatedFunction3.html b/html-test/ref/DeprecatedFunction3.html index 4f398f1c..96474a98 100644 --- a/html-test/ref/DeprecatedFunction3.html +++ b/html-test/ref/DeprecatedFunction3.html @@ -39,16 +39,18 @@ >DeprecatedFunction3</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><a href="#" - >foo</a - > :: <a href="#" - >Integer</a - ></li - ></ul + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" + ><li class="src short" + ><a href="#" + >foo</a + > :: <a href="#" + >Integer</a + ></li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/DeprecatedNewtype.html b/html-test/ref/DeprecatedNewtype.html index 9ce1b7f0..c7803c81 100644 --- a/html-test/ref/DeprecatedNewtype.html +++ b/html-test/ref/DeprecatedNewtype.html @@ -39,30 +39,32 @@ >DeprecatedNewtype</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><span class="keyword" - >newtype</span - > <a href="#" - >SomeNewType</a - > = <a href="#" - >SomeNewTypeConst</a - > <a href="#" - >String</a - ></li + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" ><li class="src short" - ><span class="keyword" - >newtype</span - > <a href="#" - >SomeOtherNewType</a - > = <a href="#" - >SomeOtherNewTypeConst</a - > <a href="#" - >String</a - ></li - ></ul + ><span class="keyword" + >newtype</span + > <a href="#" + >SomeNewType</a + > = <a href="#" + >SomeNewTypeConst</a + > <a href="#" + >String</a + ></li + ><li class="src short" + ><span class="keyword" + >newtype</span + > <a href="#" + >SomeOtherNewType</a + > = <a href="#" + >SomeOtherNewTypeConst</a + > <a href="#" + >String</a + ></li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/DeprecatedReExport.html b/html-test/ref/DeprecatedReExport.html index 38a7d9a7..fd137108 100644 --- a/html-test/ref/DeprecatedReExport.html +++ b/html-test/ref/DeprecatedReExport.html @@ -65,16 +65,18 @@ ></div ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><a href="#" - >foo</a - > :: <a href="#" - >Int</a - ></li - ></ul + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" + ><li class="src short" + ><a href="#" + >foo</a + > :: <a href="#" + >Int</a + ></li + ></ul + ></details ></div ><div id="interface" ><h1 id="g:1" diff --git a/html-test/ref/DeprecatedRecord.html b/html-test/ref/DeprecatedRecord.html index 24c0542a..3e2aa285 100644 --- a/html-test/ref/DeprecatedRecord.html +++ b/html-test/ref/DeprecatedRecord.html @@ -39,32 +39,34 @@ >DeprecatedRecord</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><span class="keyword" - >data</span - > <a href="#" - >Foo</a - > = <a href="#" - >Foo</a - > {<ul class="subs" - ><li - ><a href="#" - >fooName</a - > :: <a href="#" - >String</a - ></li + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" + ><li class="src short" + ><span class="keyword" + >data</span + > <a href="#" + >Foo</a + > = <a href="#" + >Foo</a + > {<ul class="subs" ><li - ><a href="#" - >fooValue</a - > :: <a href="#" - >Int</a - ></li - ></ul - >}</li - ></ul + ><a href="#" + >fooName</a + > :: <a href="#" + >String</a + ></li + ><li + ><a href="#" + >fooValue</a + > :: <a href="#" + >Int</a + ></li + ></ul + >}</li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/DeprecatedTypeFamily.html b/html-test/ref/DeprecatedTypeFamily.html index 9a879b36..6f267c01 100644 --- a/html-test/ref/DeprecatedTypeFamily.html +++ b/html-test/ref/DeprecatedTypeFamily.html @@ -39,30 +39,32 @@ >DeprecatedTypeFamily</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><span class="keyword" - >data family</span - > <a href="#" - >SomeTypeFamily</a - > k :: <a href="#" - >*</a - > -> <a href="#" - >*</a - ></li + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" ><li class="src short" - ><span class="keyword" - >data family</span - > <a href="#" - >SomeOtherTypeFamily</a - > k :: <a href="#" - >*</a - > -> <a href="#" - >*</a - ></li - ></ul + ><span class="keyword" + >data family</span + > <a href="#" + >SomeTypeFamily</a + > k :: <a href="#" + >*</a + > -> <a href="#" + >*</a + ></li + ><li class="src short" + ><span class="keyword" + >data family</span + > <a href="#" + >SomeOtherTypeFamily</a + > k :: <a href="#" + >*</a + > -> <a href="#" + >*</a + ></li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/DeprecatedTypeSynonym.html b/html-test/ref/DeprecatedTypeSynonym.html index 0bfd7e60..db0a8ab6 100644 --- a/html-test/ref/DeprecatedTypeSynonym.html +++ b/html-test/ref/DeprecatedTypeSynonym.html @@ -39,26 +39,28 @@ >DeprecatedTypeSynonym</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><span class="keyword" - >type</span - > <a href="#" - >TypeSyn</a - > = <a href="#" - >String</a - ></li + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" ><li class="src short" - ><span class="keyword" - >type</span - > <a href="#" - >OtherTypeSyn</a - > = <a href="#" - >String</a - ></li - ></ul + ><span class="keyword" + >type</span + > <a href="#" + >TypeSyn</a + > = <a href="#" + >String</a + ></li + ><li class="src short" + ><span class="keyword" + >type</span + > <a href="#" + >OtherTypeSyn</a + > = <a href="#" + >String</a + ></li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/Examples.html b/html-test/ref/Examples.html index a8eeeaf0..fa321fab 100644 --- a/html-test/ref/Examples.html +++ b/html-test/ref/Examples.html @@ -39,18 +39,20 @@ >Examples</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><a href="#" - >fib</a - > :: <a href="#" - >Integer</a - > -> <a href="#" - >Integer</a - ></li - ></ul + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" + ><li class="src short" + ><a href="#" + >fib</a + > :: <a href="#" + >Integer</a + > -> <a href="#" + >Integer</a + ></li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/Extensions.html b/html-test/ref/Extensions.html index 361c41e6..ee84df30 100644 --- a/html-test/ref/Extensions.html +++ b/html-test/ref/Extensions.html @@ -51,14 +51,16 @@ >Extensions</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><a href="#" - >foobar</a - > :: t</li - ></ul + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" + ><li class="src short" + ><a href="#" + >foobar</a + > :: t</li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/GADTRecords.html b/html-test/ref/GADTRecords.html index fffe5bd5..bba54b3e 100644 --- a/html-test/ref/GADTRecords.html +++ b/html-test/ref/GADTRecords.html @@ -39,52 +39,54 @@ >GADTRecords</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><span class="keyword" - >data</span - > <a href="#" - >H1</a - > a b <span class="keyword" - >where</span - ><ul class="subs" - ><li - ><a href="#" - >C1</a - > :: <a href="#" - >H1</a - > a b</li - ><li - ><a href="#" - >C2</a - > :: <a href="#" - >Ord</a - > a => [a] -> <a href="#" - >H1</a - > a a</li - ><li - ><a href="#" - >C3</a - > :: {..} -> <a href="#" - >H1</a - > <a href="#" - >Int</a - > <a href="#" - >Int</a - ></li + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" + ><li class="src short" + ><span class="keyword" + >data</span + > <a href="#" + >H1</a + > a b <span class="keyword" + >where</span + ><ul class="subs" ><li - ><a href="#" - >C4</a - > :: {..} -> <a href="#" - >H1</a - > <a href="#" - >Int</a - > a</li - ></ul - ></li - ></ul + ><a href="#" + >C1</a + > :: <a href="#" + >H1</a + > a b</li + ><li + ><a href="#" + >C2</a + > :: <a href="#" + >Ord</a + > a => [a] -> <a href="#" + >H1</a + > a a</li + ><li + ><a href="#" + >C3</a + > :: {..} -> <a href="#" + >H1</a + > <a href="#" + >Int</a + > <a href="#" + >Int</a + ></li + ><li + ><a href="#" + >C4</a + > :: {..} -> <a href="#" + >H1</a + > <a href="#" + >Int</a + > a</li + ></ul + ></li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/Hash.html b/html-test/ref/Hash.html index 7cf99038..21004e20 100644 --- a/html-test/ref/Hash.html +++ b/html-test/ref/Hash.html @@ -74,60 +74,62 @@ ></div ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><span class="keyword" - >data</span - > <a href="#" - >HashTable</a - > key val</li - ><li class="src short" - ><a href="#" - >new</a - > :: (<a href="#" - >Eq</a - > key, <a href="#" - >Hash</a - > key) => <a href="#" - >Int</a - > -> <a href="#" - >IO</a - > (<a href="#" - >HashTable</a - > key val)</li + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" ><li class="src short" - ><a href="#" - >insert</a - > :: (<a href="#" - >Eq</a - > key, <a href="#" - >Hash</a - > key) => key -> val -> <a href="#" - >IO</a - > ()</li - ><li class="src short" - ><a href="#" - >lookup</a - > :: <a href="#" - >Hash</a - > key => key -> <a href="#" - >IO</a - > (<a href="#" - >Maybe</a - > val)</li - ><li class="src short" - ><span class="keyword" - >class</span - > <a href="#" - >Hash</a - > a <span class="keyword" - >where</span - ><ul class="subs" + ><span class="keyword" + >data</span + > <a href="#" + >HashTable</a + > key val</li + ><li class="src short" + ><a href="#" + >new</a + > :: (<a href="#" + >Eq</a + > key, <a href="#" + >Hash</a + > key) => <a href="#" + >Int</a + > -> <a href="#" + >IO</a + > (<a href="#" + >HashTable</a + > key val)</li + ><li class="src short" + ><a href="#" + >insert</a + > :: (<a href="#" + >Eq</a + > key, <a href="#" + >Hash</a + > key) => key -> val -> <a href="#" + >IO</a + > ()</li + ><li class="src short" + ><a href="#" + >lookup</a + > :: <a href="#" + >Hash</a + > key => key -> <a href="#" + >IO</a + > (<a href="#" + >Maybe</a + > val)</li + ><li class="src short" + ><span class="keyword" + >class</span + > <a href="#" + >Hash</a + > a <span class="keyword" + >where</span + ><ul class="subs" + ></ul + ></li ></ul - ></li - ></ul + ></details ></div ><div id="interface" ><h1 id="g:1" @@ -282,14 +284,14 @@ ></div ></div ><div class="subs instances" - ><p id="control.i:Hash" class="caption collapser" onclick="toggleSection('i:Hash')" - >Instances</p - ><div id="section.i:Hash" class="show" - ><table + ><details id="i:Hash" open="open" + ><summary + >Instances</summary + ><table ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:ic:Hash:Hash:1" class="instance expander" onclick="toggleSection('i:ic:Hash:Hash:1')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Hash:Hash:1" ></span > <a href="#" >Hash</a @@ -304,8 +306,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:ic:Hash:Hash:1" class="inst-details hide" - ><div class="subs methods" + ><details id="i:ic:Hash:Hash:1" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs methods" ><p class="caption" >Methods</p ><p class="src" @@ -319,13 +323,13 @@ >#</a ></p ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:ic:Hash:Hash:2" class="instance expander" onclick="toggleSection('i:ic:Hash:Hash:2')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Hash:Hash:2" ></span > <a href="#" >Hash</a @@ -340,8 +344,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:ic:Hash:Hash:2" class="inst-details hide" - ><div class="subs methods" + ><details id="i:ic:Hash:Hash:2" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs methods" ><p class="caption" >Methods</p ><p class="src" @@ -355,13 +361,13 @@ >#</a ></p ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:ic:Hash:Hash:3" class="instance expander" onclick="toggleSection('i:ic:Hash:Hash:3')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Hash:Hash:3" ></span > (<a href="#" >Hash</a @@ -378,8 +384,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:ic:Hash:Hash:3" class="inst-details hide" - ><div class="subs methods" + ><details id="i:ic:Hash:Hash:3" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs methods" ><p class="caption" >Methods</p ><p class="src" @@ -391,11 +399,11 @@ >#</a ></p ></div - ></div + ></details ></td ></tr ></table - ></div + ></details ></div ></div ></div diff --git a/html-test/ref/HiddenInstances.html b/html-test/ref/HiddenInstances.html index 5a1329fc..b3586649 100644 --- a/html-test/ref/HiddenInstances.html +++ b/html-test/ref/HiddenInstances.html @@ -39,22 +39,24 @@ >HiddenInstances</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><span class="keyword" - >class</span - > <a href="#" - >VisibleClass</a - > a</li + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" ><li class="src short" - ><span class="keyword" - >data</span - > <a href="#" - >VisibleData</a - ></li - ></ul + ><span class="keyword" + >class</span + > <a href="#" + >VisibleClass</a + > a</li + ><li class="src short" + ><span class="keyword" + >data</span + > <a href="#" + >VisibleData</a + ></li + ></ul + ></details ></div ><div id="interface" ><h1 @@ -73,14 +75,14 @@ >Should be visible</p ></div ><div class="subs instances" - ><p id="control.i:VisibleClass" class="caption collapser" onclick="toggleSection('i:VisibleClass')" - >Instances</p - ><div id="section.i:VisibleClass" class="show" - ><table + ><details id="i:VisibleClass" open="open" + ><summary + >Instances</summary + ><table ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:ic:VisibleClass:VisibleClass:1" class="instance expander" onclick="toggleSection('i:ic:VisibleClass:VisibleClass:1')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:VisibleClass:VisibleClass:1" ></span > <a href="#" >VisibleClass</a @@ -97,14 +99,16 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:ic:VisibleClass:VisibleClass:1" class="inst-details hide" - ></div + ><details id="i:ic:VisibleClass:VisibleClass:1" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:ic:VisibleClass:VisibleClass:2" class="instance expander" onclick="toggleSection('i:ic:VisibleClass:VisibleClass:2')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:VisibleClass:VisibleClass:2" ></span > <a href="#" >VisibleClass</a @@ -121,12 +125,14 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:ic:VisibleClass:VisibleClass:2" class="inst-details hide" - ></div + ><details id="i:ic:VisibleClass:VisibleClass:2" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ></details ></td ></tr ></table - ></div + ></details ></div ></div ><div class="top" @@ -143,14 +149,14 @@ >Should be visible</p ></div ><div class="subs instances" - ><p id="control.i:VisibleData" class="caption collapser" onclick="toggleSection('i:VisibleData')" - >Instances</p - ><div id="section.i:VisibleData" class="show" - ><table + ><details id="i:VisibleData" open="open" + ><summary + >Instances</summary + ><table ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:id:VisibleData:Num:1" class="instance expander" onclick="toggleSection('i:id:VisibleData:Num:1')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:VisibleData:Num:1" ></span > <a href="#" >Num</a @@ -167,8 +173,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:id:VisibleData:Num:1" class="inst-details hide" - ><div class="subs methods" + ><details id="i:id:VisibleData:Num:1" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs methods" ><p class="caption" >Methods</p ><p class="src" @@ -248,13 +256,13 @@ >#</a ></p ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:id:VisibleData:VisibleClass:2" class="instance expander" onclick="toggleSection('i:id:VisibleData:VisibleClass:2')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:VisibleData:VisibleClass:2" ></span > <a href="#" >VisibleClass</a @@ -271,12 +279,14 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:id:VisibleData:VisibleClass:2" class="inst-details hide" - ></div + ><details id="i:id:VisibleData:VisibleClass:2" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ></details ></td ></tr ></table - ></div + ></details ></div ></div ></div diff --git a/html-test/ref/HiddenInstancesB.html b/html-test/ref/HiddenInstancesB.html index 11e9611f..d2f7b74d 100644 --- a/html-test/ref/HiddenInstancesB.html +++ b/html-test/ref/HiddenInstancesB.html @@ -39,22 +39,24 @@ >HiddenInstancesB</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><span class="keyword" - >class</span - > <a href="#" - >Foo</a - > a</li + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" ><li class="src short" - ><span class="keyword" - >data</span - > <a href="#" - >Bar</a - ></li - ></ul + ><span class="keyword" + >class</span + > <a href="#" + >Foo</a + > a</li + ><li class="src short" + ><span class="keyword" + >data</span + > <a href="#" + >Bar</a + ></li + ></ul + ></details ></div ><div id="interface" ><h1 @@ -73,14 +75,14 @@ >Should be visible</p ></div ><div class="subs instances" - ><p id="control.i:Foo" class="caption collapser" onclick="toggleSection('i:Foo')" - >Instances</p - ><div id="section.i:Foo" class="show" - ><table + ><details id="i:Foo" open="open" + ><summary + >Instances</summary + ><table ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:ic:Foo:Foo:1" class="instance expander" onclick="toggleSection('i:ic:Foo:Foo:1')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Foo:Foo:1" ></span > <a href="#" >Foo</a @@ -97,12 +99,14 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:ic:Foo:Foo:1" class="inst-details hide" - ></div + ><details id="i:ic:Foo:Foo:1" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ></details ></td ></tr ></table - ></div + ></details ></div ></div ><div class="top" @@ -119,14 +123,14 @@ >Should be visible</p ></div ><div class="subs instances" - ><p id="control.i:Bar" class="caption collapser" onclick="toggleSection('i:Bar')" - >Instances</p - ><div id="section.i:Bar" class="show" - ><table + ><details id="i:Bar" open="open" + ><summary + >Instances</summary + ><table ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:id:Bar:Foo:1" class="instance expander" onclick="toggleSection('i:id:Bar:Foo:1')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Bar:Foo:1" ></span > <a href="#" >Foo</a @@ -143,12 +147,14 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:id:Bar:Foo:1" class="inst-details hide" - ></div + ><details id="i:id:Bar:Foo:1" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ></details ></td ></tr ></table - ></div + ></details ></div ></div ></div diff --git a/html-test/ref/Hyperlinks.html b/html-test/ref/Hyperlinks.html index bc14415b..8e190358 100644 --- a/html-test/ref/Hyperlinks.html +++ b/html-test/ref/Hyperlinks.html @@ -39,16 +39,18 @@ >Hyperlinks</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><a href="#" - >foo</a - > :: <a href="#" - >Int</a - ></li - ></ul + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" + ><li class="src short" + ><a href="#" + >foo</a + > :: <a href="#" + >Int</a + ></li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/IgnoreExports.html b/html-test/ref/IgnoreExports.html index 686fac7a..abfc0497 100644 --- a/html-test/ref/IgnoreExports.html +++ b/html-test/ref/IgnoreExports.html @@ -39,22 +39,24 @@ >IgnoreExports</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><a href="#" - >foo</a - > :: <a href="#" - >Int</a - ></li + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" ><li class="src short" - ><a href="#" - >bar</a - > :: <a href="#" - >Int</a - ></li - ></ul + ><a href="#" + >foo</a + > :: <a href="#" + >Int</a + ></li + ><li class="src short" + ><a href="#" + >bar</a + > :: <a href="#" + >Int</a + ></li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/Instances.html b/html-test/ref/Instances.html index e4a84a35..84c9498f 100644 --- a/html-test/ref/Instances.html +++ b/html-test/ref/Instances.html @@ -65,14 +65,14 @@ ></table ></div ><div class="subs instances" - ><p id="control.i:-60--126--126-" class="caption collapser" onclick="toggleSection('i:-60--126--126-')" - >Instances</p - ><div id="section.i:-60--126--126-" class="show" - ><table + ><details id="i:-60--126--126-" open="open" + ><summary + >Instances</summary + ><table ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:id:-60--126--126-:Foo:1" class="instance expander" onclick="toggleSection('i:id:-60--126--126-:Foo:1')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:-60--126--126-:Foo:1" ></span > <a href="#" >Foo</a @@ -87,8 +87,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:id:-60--126--126-:Foo:1" class="inst-details hide" - ><div class="subs methods" + ><details id="i:id:-60--126--126-:Foo:1" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs methods" ><p class="caption" >Methods</p ><p class="src" @@ -122,11 +124,11 @@ >#</a ></p ></div - ></div + ></details ></td ></tr ></table - ></div + ></details ></div ></div ><div class="top" @@ -163,14 +165,14 @@ ></p ></div ><div class="subs instances" - ><p id="control.i:Foo" class="caption collapser" onclick="toggleSection('i:Foo')" - >Instances</p - ><div id="section.i:Foo" class="show" - ><table + ><details id="i:Foo" open="open" + ><summary + >Instances</summary + ><table ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:ic:Foo:Foo:1" class="instance expander" onclick="toggleSection('i:ic:Foo:Foo:1')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Foo:Foo:1" ></span > <a href="#" >Foo</a @@ -183,8 +185,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:ic:Foo:Foo:1" class="inst-details hide" - ><div class="subs methods" + ><details id="i:ic:Foo:Foo:1" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs methods" ><p class="caption" >Methods</p ><p class="src" @@ -206,13 +210,13 @@ >#</a ></p ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:ic:Foo:Foo:2" class="instance expander" onclick="toggleSection('i:ic:Foo:Foo:2')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Foo:Foo:2" ></span > <a href="#" >Foo</a @@ -227,8 +231,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:ic:Foo:Foo:2" class="inst-details hide" - ><div class="subs methods" + ><details id="i:ic:Foo:Foo:2" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs methods" ><p class="caption" >Methods</p ><p class="src" @@ -262,13 +268,13 @@ >#</a ></p ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:ic:Foo:Foo:3" class="instance expander" onclick="toggleSection('i:ic:Foo:Foo:3')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Foo:Foo:3" ></span > <a href="#" >Foo</a @@ -283,8 +289,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:ic:Foo:Foo:3" class="inst-details hide" - ><div class="subs methods" + ><details id="i:ic:Foo:Foo:3" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs methods" ><p class="caption" >Methods</p ><p class="src" @@ -318,13 +326,13 @@ >#</a ></p ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:ic:Foo:Foo:4" class="instance expander" onclick="toggleSection('i:ic:Foo:Foo:4')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Foo:Foo:4" ></span > (<a href="#" >Eq</a @@ -343,8 +351,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:ic:Foo:Foo:4" class="inst-details hide" - ><div class="subs methods" + ><details id="i:ic:Foo:Foo:4" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs methods" ><p class="caption" >Methods</p ><p class="src" @@ -366,13 +376,13 @@ >#</a ></p ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:ic:Foo:Foo:5" class="instance expander" onclick="toggleSection('i:ic:Foo:Foo:5')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Foo:Foo:5" ></span > <a href="#" >Foo</a @@ -387,8 +397,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:ic:Foo:Foo:5" class="inst-details hide" - ><div class="subs methods" + ><details id="i:ic:Foo:Foo:5" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs methods" ><p class="caption" >Methods</p ><p class="src" @@ -422,13 +434,13 @@ >#</a ></p ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:ic:Foo:Foo:6" class="instance expander" onclick="toggleSection('i:ic:Foo:Foo:6')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Foo:Foo:6" ></span > <a href="#" >Foo</a @@ -443,8 +455,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:ic:Foo:Foo:6" class="inst-details hide" - ><div class="subs methods" + ><details id="i:ic:Foo:Foo:6" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs methods" ><p class="caption" >Methods</p ><p class="src" @@ -466,13 +480,13 @@ >#</a ></p ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:ic:Foo:Foo:7" class="instance expander" onclick="toggleSection('i:ic:Foo:Foo:7')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Foo:Foo:7" ></span > <a href="#" >Foo</a @@ -487,8 +501,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:ic:Foo:Foo:7" class="inst-details hide" - ><div class="subs methods" + ><details id="i:ic:Foo:Foo:7" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs methods" ><p class="caption" >Methods</p ><p class="src" @@ -522,13 +538,13 @@ >#</a ></p ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:ic:Foo:Foo:8" class="instance expander" onclick="toggleSection('i:ic:Foo:Foo:8')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Foo:Foo:8" ></span > <a href="#" >Foo</a @@ -545,8 +561,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:ic:Foo:Foo:8" class="inst-details hide" - ><div class="subs methods" + ><details id="i:ic:Foo:Foo:8" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs methods" ><p class="caption" >Methods</p ><p class="src" @@ -592,11 +610,11 @@ >#</a ></p ></div - ></div + ></details ></td ></tr ></table - ></div + ></details ></div ></div ><div class="top" @@ -643,14 +661,14 @@ ></p ></div ><div class="subs instances" - ><p id="control.i:Bar" class="caption collapser" onclick="toggleSection('i:Bar')" - >Instances</p - ><div id="section.i:Bar" class="show" - ><table + ><details id="i:Bar" open="open" + ><summary + >Instances</summary + ><table ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:ic:Bar:Bar:1" class="instance expander" onclick="toggleSection('i:ic:Bar:Bar:1')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Bar:Bar:1" ></span > <a href="#" >Bar</a @@ -667,8 +685,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:ic:Bar:Bar:1" class="inst-details hide" - ><div class="subs methods" + ><details id="i:ic:Bar:Bar:1" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs methods" ><p class="caption" >Methods</p ><p class="src" @@ -742,13 +762,13 @@ >#</a ></p ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:ic:Bar:Bar:2" class="instance expander" onclick="toggleSection('i:ic:Bar:Bar:2')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Bar:Bar:2" ></span > <a href="#" >Bar</a @@ -763,8 +783,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:ic:Bar:Bar:2" class="inst-details hide" - ><div class="subs methods" + ><details id="i:ic:Bar:Bar:2" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs methods" ><p class="caption" >Methods</p ><p class="src" @@ -824,13 +846,13 @@ >#</a ></p ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:ic:Bar:Bar:3" class="instance expander" onclick="toggleSection('i:ic:Bar:Bar:3')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Bar:Bar:3" ></span > <a href="#" >Bar</a @@ -843,8 +865,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:ic:Bar:Bar:3" class="inst-details hide" - ><div class="subs methods" + ><details id="i:ic:Bar:Bar:3" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs methods" ><p class="caption" >Methods</p ><p class="src" @@ -874,13 +898,13 @@ >#</a ></p ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:ic:Bar:Bar:4" class="instance expander" onclick="toggleSection('i:ic:Bar:Bar:4')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Bar:Bar:4" ></span > <a href="#" >Foo</a @@ -897,8 +921,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:ic:Bar:Bar:4" class="inst-details hide" - ><div class="subs methods" + ><details id="i:ic:Bar:Bar:4" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs methods" ><p class="caption" >Methods</p ><p class="src" @@ -958,13 +984,13 @@ >#</a ></p ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:ic:Bar:Bar:5" class="instance expander" onclick="toggleSection('i:ic:Bar:Bar:5')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Bar:Bar:5" ></span > <a href="#" >Foo</a @@ -983,8 +1009,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:ic:Bar:Bar:5" class="inst-details hide" - ><div class="subs methods" + ><details id="i:ic:Bar:Bar:5" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs methods" ><p class="caption" >Methods</p ><p class="src" @@ -1014,13 +1042,13 @@ >#</a ></p ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:ic:Bar:Bar:6" class="instance expander" onclick="toggleSection('i:ic:Bar:Bar:6')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Bar:Bar:6" ></span > <a href="#" >Bar</a @@ -1037,8 +1065,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:ic:Bar:Bar:6" class="inst-details hide" - ><div class="subs methods" + ><details id="i:ic:Bar:Bar:6" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs methods" ><p class="caption" >Methods</p ><p class="src" @@ -1112,11 +1142,11 @@ >#</a ></p ></div - ></div + ></details ></td ></tr ></table - ></div + ></details ></div ></div ><div class="top" @@ -1167,14 +1197,14 @@ ></p ></div ><div class="subs instances" - ><p id="control.i:Baz" class="caption collapser" onclick="toggleSection('i:Baz')" - >Instances</p - ><div id="section.i:Baz" class="show" - ><table + ><details id="i:Baz" open="open" + ><summary + >Instances</summary + ><table ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:ic:Baz:Baz:1" class="instance expander" onclick="toggleSection('i:ic:Baz:Baz:1')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Baz:Baz:1" ></span > <a href="#" >Baz</a @@ -1187,8 +1217,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:ic:Baz:Baz:1" class="inst-details hide" - ><div class="subs methods" + ><details id="i:ic:Baz:Baz:1" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs methods" ><p class="caption" >Methods</p ><p class="src" @@ -1224,13 +1256,13 @@ >#</a ></p ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:ic:Baz:Baz:2" class="instance expander" onclick="toggleSection('i:ic:Baz:Baz:2')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Baz:Baz:2" ></span > <a href="#" >Baz</a @@ -1243,8 +1275,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:ic:Baz:Baz:2" class="inst-details hide" - ><div class="subs methods" + ><details id="i:ic:Baz:Baz:2" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs methods" ><p class="caption" >Methods</p ><p class="src" @@ -1280,13 +1314,13 @@ >#</a ></p ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:ic:Baz:Baz:3" class="instance expander" onclick="toggleSection('i:ic:Baz:Baz:3')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Baz:Baz:3" ></span > <a href="#" >Baz</a @@ -1299,8 +1333,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:ic:Baz:Baz:3" class="inst-details hide" - ><div class="subs methods" + ><details id="i:ic:Baz:Baz:3" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs methods" ><p class="caption" >Methods</p ><p class="src" @@ -1336,13 +1372,13 @@ >#</a ></p ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:ic:Baz:Baz:4" class="instance expander" onclick="toggleSection('i:ic:Baz:Baz:4')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Baz:Baz:4" ></span > <a href="#" >Baz</a @@ -1357,8 +1393,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:ic:Baz:Baz:4" class="inst-details hide" - ><div class="subs methods" + ><details id="i:ic:Baz:Baz:4" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs methods" ><p class="caption" >Methods</p ><p class="src" @@ -1406,13 +1444,13 @@ >#</a ></p ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:ic:Baz:Baz:5" class="instance expander" onclick="toggleSection('i:ic:Baz:Baz:5')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Baz:Baz:5" ></span > <a href="#" >Baz</a @@ -1425,8 +1463,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:ic:Baz:Baz:5" class="inst-details hide" - ><div class="subs methods" + ><details id="i:ic:Baz:Baz:5" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs methods" ><p class="caption" >Methods</p ><p class="src" @@ -1462,11 +1502,11 @@ >#</a ></p ></div - ></div + ></details ></td ></tr ></table - ></div + ></details ></div ></div ><div class="top" @@ -1509,14 +1549,14 @@ ></table ></div ><div class="subs instances" - ><p id="control.i:Quux" class="caption collapser" onclick="toggleSection('i:Quux')" - >Instances</p - ><div id="section.i:Quux" class="show" - ><table + ><details id="i:Quux" open="open" + ><summary + >Instances</summary + ><table ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:id:Quux:Foo:1" class="instance expander" onclick="toggleSection('i:id:Quux:Foo:1')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Quux:Foo:1" ></span > <a href="#" >Foo</a @@ -1531,8 +1571,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:id:Quux:Foo:1" class="inst-details hide" - ><div class="subs methods" + ><details id="i:id:Quux:Foo:1" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs methods" ><p class="caption" >Methods</p ><p class="src" @@ -1566,13 +1608,13 @@ >#</a ></p ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:id:Quux:Bar:2" class="instance expander" onclick="toggleSection('i:id:Quux:Bar:2')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Quux:Bar:2" ></span > <a href="#" >Bar</a @@ -1589,8 +1631,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:id:Quux:Bar:2" class="inst-details hide" - ><div class="subs methods" + ><details id="i:id:Quux:Bar:2" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs methods" ><p class="caption" >Methods</p ><p class="src" @@ -1664,13 +1708,13 @@ >#</a ></p ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:id:Quux:Baz:3" class="instance expander" onclick="toggleSection('i:id:Quux:Baz:3')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Quux:Baz:3" ></span > <a href="#" >Baz</a @@ -1685,8 +1729,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:id:Quux:Baz:3" class="inst-details hide" - ><div class="subs methods" + ><details id="i:id:Quux:Baz:3" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs methods" ><p class="caption" >Methods</p ><p class="src" @@ -1734,13 +1780,13 @@ >#</a ></p ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:id:Quux:Thud:4" class="instance expander" onclick="toggleSection('i:id:Quux:Thud:4')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Quux:Thud:4" ></span > <span class="keyword" >data</span @@ -1759,8 +1805,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:id:Quux:Thud:4" class="inst-details hide" - ><div class="src" + ><details id="i:id:Quux:Thud:4" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="src" ><span class="keyword" >data</span > <a href="#" @@ -1784,11 +1832,11 @@ ></li ></ul ></div - ></div + ></details ></td ></tr ></table - ></div + ></details ></div ></div ><div class="top" @@ -1835,14 +1883,14 @@ ></p ></div ><div class="subs instances" - ><p id="control.i:Norf" class="caption collapser" onclick="toggleSection('i:Norf')" - >Instances</p - ><div id="section.i:Norf" class="show" - ><table + ><details id="i:Norf" open="open" + ><summary + >Instances</summary + ><table ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:ic:Norf:Norf:1" class="instance expander" onclick="toggleSection('i:ic:Norf:Norf:1')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Norf:Norf:1" ></span > <a href="#" >Norf</a @@ -1859,8 +1907,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:ic:Norf:Norf:1" class="inst-details hide" - ><div class="subs associated-types" + ><details id="i:ic:Norf:Norf:1" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs associated-types" ><p class="caption" >Associated Types</p ><p class="src" @@ -1912,13 +1962,13 @@ >#</a ></p ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:ic:Norf:Norf:2" class="instance expander" onclick="toggleSection('i:ic:Norf:Norf:2')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Norf:Norf:2" ></span > <a href="#" >Norf</a @@ -1931,8 +1981,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:ic:Norf:Norf:2" class="inst-details hide" - ><div class="subs associated-types" + ><details id="i:ic:Norf:Norf:2" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs associated-types" ><p class="caption" >Associated Types</p ><p class="src" @@ -1968,11 +2020,11 @@ >#</a ></p ></div - ></div + ></details ></td ></tr ></table - ></div + ></details ></div ></div ></div diff --git a/html-test/ref/Math.html b/html-test/ref/Math.html index 4d7cf62e..33ac0239 100644 --- a/html-test/ref/Math.html +++ b/html-test/ref/Math.html @@ -55,16 +55,18 @@ ></div ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><a href="#" - >f</a - > :: <a href="#" - >Integer</a - ></li - ></ul + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" + ><li class="src short" + ><a href="#" + >f</a + > :: <a href="#" + >Integer</a + ></li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/NamedDoc.html b/html-test/ref/NamedDoc.html index 95be55d1..ece4f381 100644 --- a/html-test/ref/NamedDoc.html +++ b/html-test/ref/NamedDoc.html @@ -39,10 +39,12 @@ >NamedDoc</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ></ul + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/Nesting.html b/html-test/ref/Nesting.html index ac3e4784..76993674 100644 --- a/html-test/ref/Nesting.html +++ b/html-test/ref/Nesting.html @@ -39,42 +39,44 @@ >Nesting</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><a href="#" - >d</a - > :: t</li - ><li class="src short" - ><a href="#" - >e</a - > :: t</li - ><li class="src short" - ><a href="#" - >f</a - > :: t</li - ><li class="src short" - ><a href="#" - >g</a - > :: t</li + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" ><li class="src short" - ><a href="#" - >h</a - > :: t</li - ><li class="src short" - ><a href="#" - >i</a - > :: t</li - ><li class="src short" - ><a href="#" - >j</a - > :: t</li - ><li class="src short" - ><a href="#" - >k</a - > :: t</li - ></ul + ><a href="#" + >d</a + > :: t</li + ><li class="src short" + ><a href="#" + >e</a + > :: t</li + ><li class="src short" + ><a href="#" + >f</a + > :: t</li + ><li class="src short" + ><a href="#" + >g</a + > :: t</li + ><li class="src short" + ><a href="#" + >h</a + > :: t</li + ><li class="src short" + ><a href="#" + >i</a + > :: t</li + ><li class="src short" + ><a href="#" + >j</a + > :: t</li + ><li class="src short" + ><a href="#" + >k</a + > :: t</li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/NoLayout.html b/html-test/ref/NoLayout.html index 0fbd9762..607b5f8d 100644 --- a/html-test/ref/NoLayout.html +++ b/html-test/ref/NoLayout.html @@ -39,16 +39,18 @@ >NoLayout</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><a href="#" - >g</a - > :: <a href="#" - >Int</a - ></li - ></ul + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" + ><li class="src short" + ><a href="#" + >g</a + > :: <a href="#" + >Int</a + ></li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/NonGreedy.html b/html-test/ref/NonGreedy.html index 2ad812ec..cc03a20b 100644 --- a/html-test/ref/NonGreedy.html +++ b/html-test/ref/NonGreedy.html @@ -39,14 +39,16 @@ >NonGreedy</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><a href="#" - >f</a - > :: a</li - ></ul + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" + ><li class="src short" + ><a href="#" + >f</a + > :: a</li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/Operators.html b/html-test/ref/Operators.html index 0f1b9554..1db0a91a 100644 --- a/html-test/ref/Operators.html +++ b/html-test/ref/Operators.html @@ -47,114 +47,116 @@ ></div ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><a href="#" - >(+-)</a - > :: a -> a -> a</li - ><li class="src short" - ><a href="#" - >(*/)</a - > :: a -> a -> a</li - ><li class="src short" - ><a href="#" - >foo</a - > :: a -> a -> a</li + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" ><li class="src short" - ><span class="keyword" - >data</span - > <a href="#" - >Foo</a - ><ul class="subs" - ><li - >= <a href="#" - >Foo</a - > <a href="#" - >`Bar`</a - > <a href="#" - >Foo</a - ></li + ><a href="#" + >(+-)</a + > :: a -> a -> a</li + ><li class="src short" + ><a href="#" + >(*/)</a + > :: a -> a -> a</li + ><li class="src short" + ><a href="#" + >foo</a + > :: a -> a -> a</li + ><li class="src short" + ><span class="keyword" + >data</span + > <a href="#" + >Foo</a + ><ul class="subs" ><li - >| <a href="#" - >Foo</a - > <a href="#" - >:-</a - > <a href="#" - >Foo</a - ></li - ></ul - ></li - ><li class="src short" - ><span class="keyword" - >pattern</span - > <a href="#" - >(:+)</a - > :: <span class="keyword" - >forall</span - > a. a -> a -> [a]</li - ><li class="src short" - ><span class="keyword" - >data</span - > a <a href="#" - ><-></a - > b <span class="keyword" - >where</span - ><ul class="subs" - ><li - ><a href="#" - >(:<->)</a - > :: a -> b -> a <a href="#" - ><-></a - > b</li - ></ul - ></li - ><li class="src short" - ><span class="keyword" - >type family</span - > a <a href="#" - >++</a - > b</li - ><li class="src short" - ><span class="keyword" - >data family</span - > a <a href="#" - >**</a - > b</li - ><li class="src short" - ><span class="keyword" - >class</span - > a <a href="#" - >><></a - > b | a -> b <span class="keyword" - >where</span - ><ul class="subs" - ><li - ><span class="keyword" - >type</span - > a <a href="#" - ><><</a - > b :: <a href="#" - >*</a - ></li + >= <a href="#" + >Foo</a + > <a href="#" + >`Bar`</a + > <a href="#" + >Foo</a + ></li + ><li + >| <a href="#" + >Foo</a + > <a href="#" + >:-</a + > <a href="#" + >Foo</a + ></li + ></ul + ></li + ><li class="src short" + ><span class="keyword" + >pattern</span + > <a href="#" + >(:+)</a + > :: <span class="keyword" + >forall</span + > a. a -> a -> [a]</li + ><li class="src short" + ><span class="keyword" + >data</span + > a <a href="#" + ><-></a + > b <span class="keyword" + >where</span + ><ul class="subs" ><li - ><span class="keyword" - >data</span - > a <a href="#" - >><<</a - > b</li - ></ul - ></li - ><li class="src short" - ><span class="keyword" - >type</span - > <a href="#" - >(>-<)</a - > a b = a <a href="#" - ><-></a - > b</li - ></ul + ><a href="#" + >(:<->)</a + > :: a -> b -> a <a href="#" + ><-></a + > b</li + ></ul + ></li + ><li class="src short" + ><span class="keyword" + >type family</span + > a <a href="#" + >++</a + > b</li + ><li class="src short" + ><span class="keyword" + >data family</span + > a <a href="#" + >**</a + > b</li + ><li class="src short" + ><span class="keyword" + >class</span + > a <a href="#" + >><></a + > b | a -> b <span class="keyword" + >where</span + ><ul class="subs" + ><li + ><span class="keyword" + >type</span + > a <a href="#" + ><><</a + > b :: <a href="#" + >*</a + ></li + ><li + ><span class="keyword" + >data</span + > a <a href="#" + >><<</a + > b</li + ></ul + ></li + ><li class="src short" + ><span class="keyword" + >type</span + > <a href="#" + >(>-<)</a + > a b = a <a href="#" + ><-></a + > b</li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/OrphanInstances.html b/html-test/ref/OrphanInstances.html index 96eb5b3d..b7fa346c 100644 --- a/html-test/ref/OrphanInstances.html +++ b/html-test/ref/OrphanInstances.html @@ -49,22 +49,24 @@ ></ul ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ></ul + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" + ></ul + ></details ></div ><div id="interface" ><h1 >Documentation</h1 ><h1 >Orphan instances</h1 - ><div id="section.orphans" class="show" + ><div id="section.orphans" ><table ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:o:ic:AClass:AClass:1" class="instance expander" onclick="toggleSection('i:o:ic:AClass:AClass:1')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:o:ic:AClass:AClass:1" ></span > <a href="#" >AClass</a @@ -81,8 +83,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:o:ic:AClass:AClass:1" class="inst-details hide" - ><div class="subs methods" + ><details id="i:o:ic:AClass:AClass:1" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs methods" ><p class="caption" >Methods</p ><p class="src" @@ -96,7 +100,7 @@ >#</a ></p ></div - ></div + ></details ></td ></tr ></table diff --git a/html-test/ref/PR643.html b/html-test/ref/PR643.html index d59e7f93..6fe27318 100644 --- a/html-test/ref/PR643.html +++ b/html-test/ref/PR643.html @@ -39,14 +39,16 @@ >PR643</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><a href="#" - >test</a - > :: ()</li - ></ul + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" + ><li class="src short" + ><a href="#" + >test</a + > :: ()</li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/PR643_1.html b/html-test/ref/PR643_1.html index 34f3e947..ecba8866 100644 --- a/html-test/ref/PR643_1.html +++ b/html-test/ref/PR643_1.html @@ -39,14 +39,16 @@ >PR643_1</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><a href="#" - >test</a - > :: ()</li - ></ul + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" + ><li class="src short" + ><a href="#" + >test</a + > :: ()</li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/PatternSyns.html b/html-test/ref/PatternSyns.html index 4b4eea96..bf0cdf1e 100644 --- a/html-test/ref/PatternSyns.html +++ b/html-test/ref/PatternSyns.html @@ -47,106 +47,108 @@ ></div ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><span class="keyword" - >data</span - > <a href="#" - >FooType</a - > x = <a href="#" - >FooCtor</a - > x</li - ><li class="src short" - ><span class="keyword" - >pattern</span - > <a href="#" - >Foo</a - > :: <span class="keyword" - >forall</span - > x. x -> <a href="#" - >FooType</a - > x</li + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" ><li class="src short" - ><span class="keyword" - >pattern</span - > <a href="#" - >Bar</a - > :: <span class="keyword" - >forall</span - > x. x -> <a href="#" - >FooType</a - > (<a href="#" - >FooType</a - > x)</li - ><li class="src short" - ><span class="keyword" - >pattern</span - > <a href="#" - >(:<->)</a - > :: <span class="keyword" - >forall</span - > x x1. x -> x1 -> (<a href="#" - >FooType</a - > x, <a href="#" - >FooType</a - > (<a href="#" - >FooType</a - > x1))</li - ><li class="src short" - ><span class="keyword" - >data</span - > <a href="#" - >BlubType</a - > = <a href="#" - >Show</a - > x => <a href="#" - >BlubCtor</a - > x</li - ><li class="src short" - ><span class="keyword" - >pattern</span - > <a href="#" - >Blub</a - > :: () => <span class="keyword" - >forall</span - > x. <a href="#" - >Show</a - > x => x -> <a href="#" - >BlubType</a - ></li - ><li class="src short" - ><span class="keyword" - >data</span - > (a :: <a href="#" - >*</a - >) <a href="#" - >><</a - > b = <a href="#" - >Empty</a - ></li - ><li class="src short" - ><span class="keyword" - >pattern</span - > <a href="#" - >E</a - > :: <span class="keyword" - >forall</span - > k a (b :: k). <a href="#" - >(><)</a - > k a b</li - ><li class="src short" - ><span class="keyword" - >pattern</span - > <a href="#" - >PatWithExplicitSig</a - > :: <a href="#" - >Eq</a - > somex => somex -> <a href="#" - >FooType</a - > somex</li - ></ul + ><span class="keyword" + >data</span + > <a href="#" + >FooType</a + > x = <a href="#" + >FooCtor</a + > x</li + ><li class="src short" + ><span class="keyword" + >pattern</span + > <a href="#" + >Foo</a + > :: <span class="keyword" + >forall</span + > x. x -> <a href="#" + >FooType</a + > x</li + ><li class="src short" + ><span class="keyword" + >pattern</span + > <a href="#" + >Bar</a + > :: <span class="keyword" + >forall</span + > x. x -> <a href="#" + >FooType</a + > (<a href="#" + >FooType</a + > x)</li + ><li class="src short" + ><span class="keyword" + >pattern</span + > <a href="#" + >(:<->)</a + > :: <span class="keyword" + >forall</span + > x x1. x -> x1 -> (<a href="#" + >FooType</a + > x, <a href="#" + >FooType</a + > (<a href="#" + >FooType</a + > x1))</li + ><li class="src short" + ><span class="keyword" + >data</span + > <a href="#" + >BlubType</a + > = <a href="#" + >Show</a + > x => <a href="#" + >BlubCtor</a + > x</li + ><li class="src short" + ><span class="keyword" + >pattern</span + > <a href="#" + >Blub</a + > :: () => <span class="keyword" + >forall</span + > x. <a href="#" + >Show</a + > x => x -> <a href="#" + >BlubType</a + ></li + ><li class="src short" + ><span class="keyword" + >data</span + > (a :: <a href="#" + >*</a + >) <a href="#" + >><</a + > b = <a href="#" + >Empty</a + ></li + ><li class="src short" + ><span class="keyword" + >pattern</span + > <a href="#" + >E</a + > :: <span class="keyword" + >forall</span + > k a (b :: k). <a href="#" + >(><)</a + > k a b</li + ><li class="src short" + ><span class="keyword" + >pattern</span + > <a href="#" + >PatWithExplicitSig</a + > :: <a href="#" + >Eq</a + > somex => somex -> <a href="#" + >FooType</a + > somex</li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/Properties.html b/html-test/ref/Properties.html index 0193b087..15585cd9 100644 --- a/html-test/ref/Properties.html +++ b/html-test/ref/Properties.html @@ -39,18 +39,20 @@ >Properties</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><a href="#" - >fib</a - > :: <a href="#" - >Integer</a - > -> <a href="#" - >Integer</a - ></li - ></ul + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" + ><li class="src short" + ><a href="#" + >fib</a + > :: <a href="#" + >Integer</a + > -> <a href="#" + >Integer</a + ></li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/QuasiExpr.html b/html-test/ref/QuasiExpr.html index 6f8255b9..ccec6856 100644 --- a/html-test/ref/QuasiExpr.html +++ b/html-test/ref/QuasiExpr.html @@ -101,14 +101,14 @@ ></table ></div ><div class="subs instances" - ><p id="control.i:Expr" class="caption collapser" onclick="toggleSection('i:Expr')" - >Instances</p - ><div id="section.i:Expr" class="show" - ><table + ><details id="i:Expr" open="open" + ><summary + >Instances</summary + ><table ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:id:Expr:Show:1" class="instance expander" onclick="toggleSection('i:id:Expr:Show:1')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Expr:Show:1" ></span > <a href="#" >Show</a @@ -123,8 +123,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:id:Expr:Show:1" class="inst-details hide" - ><div class="subs methods" + ><details id="i:id:Expr:Show:1" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs methods" ><p class="caption" >Methods</p ><p class="src" @@ -160,11 +162,11 @@ >#</a ></p ></div - ></div + ></details ></td ></tr ></table - ></div + ></details ></div ></div ><div class="top" @@ -215,14 +217,14 @@ ></table ></div ><div class="subs instances" - ><p id="control.i:BinOp" class="caption collapser" onclick="toggleSection('i:BinOp')" - >Instances</p - ><div id="section.i:BinOp" class="show" - ><table + ><details id="i:BinOp" open="open" + ><summary + >Instances</summary + ><table ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:id:BinOp:Show:1" class="instance expander" onclick="toggleSection('i:id:BinOp:Show:1')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:BinOp:Show:1" ></span > <a href="#" >Show</a @@ -237,8 +239,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:id:BinOp:Show:1" class="inst-details hide" - ><div class="subs methods" + ><details id="i:id:BinOp:Show:1" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs methods" ><p class="caption" >Methods</p ><p class="src" @@ -274,11 +278,11 @@ >#</a ></p ></div - ></div + ></details ></td ></tr ></table - ></div + ></details ></div ></div ><div class="top" diff --git a/html-test/ref/SpuriousSuperclassConstraints.html b/html-test/ref/SpuriousSuperclassConstraints.html index a1157b5d..53421ff5 100644 --- a/html-test/ref/SpuriousSuperclassConstraints.html +++ b/html-test/ref/SpuriousSuperclassConstraints.html @@ -81,14 +81,14 @@ Fix spurious superclass constraints bug.</pre >#</a ></p ><div class="subs instances" - ><p id="control.i:SomeType" class="caption collapser" onclick="toggleSection('i:SomeType')" - >Instances</p - ><div id="section.i:SomeType" class="show" - ><table + ><details id="i:SomeType" open="open" + ><summary + >Instances</summary + ><table ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:id:SomeType:Functor:1" class="instance expander" onclick="toggleSection('i:id:SomeType:Functor:1')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:SomeType:Functor:1" ></span > <a href="#" >Functor</a @@ -103,8 +103,10 @@ Fix spurious superclass constraints bug.</pre ></tr ><tr ><td colspan="2" - ><div id="section.i:id:SomeType:Functor:1" class="inst-details hide" - ><div class="subs methods" + ><details id="i:id:SomeType:Functor:1" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs methods" ><p class="caption" >Methods</p ><p class="src" @@ -128,13 +130,13 @@ Fix spurious superclass constraints bug.</pre >#</a ></p ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:id:SomeType:Applicative:2" class="instance expander" onclick="toggleSection('i:id:SomeType:Applicative:2')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:SomeType:Applicative:2" ></span > <a href="#" >Applicative</a @@ -151,8 +153,10 @@ Fix spurious superclass constraints bug.</pre ></tr ><tr ><td colspan="2" - ><div id="section.i:id:SomeType:Applicative:2" class="inst-details hide" - ><div class="subs methods" + ><details id="i:id:SomeType:Applicative:2" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs methods" ><p class="caption" >Methods</p ><p class="src" @@ -212,11 +216,11 @@ Fix spurious superclass constraints bug.</pre >#</a ></p ></div - ></div + ></details ></td ></tr ></table - ></div + ></details ></div ></div ></div diff --git a/html-test/ref/Test.html b/html-test/ref/Test.html index 23ee2de6..4bcd2508 100644 --- a/html-test/ref/Test.html +++ b/html-test/ref/Test.html @@ -152,480 +152,482 @@ ></div ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><span class="keyword" - >data</span - > <a href="#" - >T</a - > a b<ul class="subs" - ><li - >= <a href="#" - >A</a - > <a href="#" - >Int</a - > (<a href="#" - >Maybe</a - > <a href="#" - >Float</a - >)</li - ><li - >| <a href="#" - >B</a - > (<a href="#" - >T</a - > a b, <a href="#" - >T</a - > <a href="#" - >Int</a - > <a href="#" - >Float</a - >)</li - ></ul - ></li + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" ><li class="src short" - ><span class="keyword" - >data</span - > <a href="#" - >T2</a - > a b</li - ><li class="src short" - ><span class="keyword" - >data</span - > <a href="#" - >T3</a - > a b<ul class="subs" - ><li - >= <a href="#" - >A1</a - > a</li - ><li - >| <a href="#" - >B1</a - > b</li - ></ul - ></li - ><li class="src short" - ><span class="keyword" - >data</span - > <a href="#" - >T4</a - > a b<ul class="subs" - ><li - >= <a href="#" - >A2</a - > a</li + ><span class="keyword" + >data</span + > <a href="#" + >T</a + > a b<ul class="subs" ><li - >| <a href="#" - >B2</a - > b</li - ></ul - ></li - ><li class="src short" - ><span class="keyword" - >data</span - > <a href="#" - >T5</a - > a b<ul class="subs" - ><li - >= <a href="#" - >A3</a - > a</li + >= <a href="#" + >A</a + > <a href="#" + >Int</a + > (<a href="#" + >Maybe</a + > <a href="#" + >Float</a + >)</li + ><li + >| <a href="#" + >B</a + > (<a href="#" + >T</a + > a b, <a href="#" + >T</a + > <a href="#" + >Int</a + > <a href="#" + >Float</a + >)</li + ></ul + ></li + ><li class="src short" + ><span class="keyword" + >data</span + > <a href="#" + >T2</a + > a b</li + ><li class="src short" + ><span class="keyword" + >data</span + > <a href="#" + >T3</a + > a b<ul class="subs" ><li - >| <a href="#" - >B3</a - > b</li - ></ul - ></li - ><li class="src short" - ><span class="keyword" - >data</span - > <a href="#" - >T6</a - ><ul class="subs" - ><li - >= <a href="#" - >A4</a - ></li + >= <a href="#" + >A1</a + > a</li + ><li + >| <a href="#" + >B1</a + > b</li + ></ul + ></li + ><li class="src short" + ><span class="keyword" + >data</span + > <a href="#" + >T4</a + > a b<ul class="subs" ><li - >| <a href="#" - >B4</a - ></li + >= <a href="#" + >A2</a + > a</li + ><li + >| <a href="#" + >B2</a + > b</li + ></ul + ></li + ><li class="src short" + ><span class="keyword" + >data</span + > <a href="#" + >T5</a + > a b<ul class="subs" ><li - >| <a href="#" - >C4</a - ></li - ></ul - ></li - ><li class="src short" - ><span class="keyword" - >newtype</span - > <a href="#" - >N1</a - > a = <a href="#" - >N1</a - > a</li - ><li class="src short" - ><span class="keyword" - >newtype</span - > <a href="#" - >N2</a - > a b = <a href="#" - >N2</a - > {<ul class="subs" - ><li - ><a href="#" - >n</a - > :: a b</li - ></ul - >}</li - ><li class="src short" - ><span class="keyword" - >newtype</span - > <a href="#" - >N3</a - > a b = <a href="#" - >N3</a - > {<ul class="subs" - ><li - ><a href="#" - >n3</a - > :: a b</li - ></ul - >}</li - ><li class="src short" - ><span class="keyword" - >data</span - > <a href="#" - >N4</a - > a b</li - ><li class="src short" - ><span class="keyword" - >newtype</span - > <a href="#" - >N5</a - > a b = <a href="#" - >N5</a - > {<ul class="subs" - ><li - ><a href="#" - >n5</a - > :: a b</li - ></ul - >}</li - ><li class="src short" - ><span class="keyword" - >newtype</span - > <a href="#" - >N6</a - > a b = <a href="#" - >N6</a - > {<ul class="subs" - ><li - ><a href="#" - >n6</a - > :: a b</li - ></ul - >}</li - ><li class="src short" - ><span class="keyword" - >newtype</span - > <a href="#" - >N7</a - > a b = <a href="#" - >N7</a - > {<ul class="subs" - ><li - ><a href="#" - >n7</a - > :: a b</li - ></ul - >}</li - ><li class="src short" - ><span class="keyword" - >data</span - > <a href="#" - >R</a - ><ul class="subs" - ><li - >= <a href="#" - >C1</a - > { <ul class="subs" + >= <a href="#" + >A3</a + > a</li ><li - ><a href="#" - >p</a - > :: <a href="#" - >Int</a - ></li - ><li - ><a href="#" - >q</a - > :: <span class="keyword" - >forall</span - > a. a -> a</li - ><li - ><a href="#" - >r</a - >, <a href="#" - >s</a - > :: <a href="#" - >Int</a - ></li - ></ul - > }</li + >| <a href="#" + >B3</a + > b</li + ></ul + ></li + ><li class="src short" + ><span class="keyword" + >data</span + > <a href="#" + >T6</a + ><ul class="subs" ><li - >| <a href="#" - >C2</a - > { <ul class="subs" + >= <a href="#" + >A4</a + ></li ><li - ><a href="#" - >t</a - > :: T1 -> <a href="#" - >T2</a - > <a href="#" - >Int</a - > <a href="#" - >Int</a - > -> <a href="#" - >T3</a - > <a href="#" - >Bool</a - > <a href="#" - >Bool</a - > -> <a href="#" - >T4</a - > <a href="#" - >Float</a - > <a href="#" - >Float</a - > -> <a href="#" - >T5</a - > () ()</li - ><li - ><a href="#" - >u</a - >, <a href="#" - >v</a - > :: <a href="#" - >Int</a - ></li - ></ul - > }</li - ></ul - ></li - ><li class="src short" - ><span class="keyword" - >data</span - > <a href="#" - >R1</a - > = <a href="#" - >C3</a - > {<ul class="subs" - ><li - ><a href="#" - >s1</a - > :: <a href="#" - >Int</a - ></li + >| <a href="#" + >B4</a + ></li + ><li + >| <a href="#" + >C4</a + ></li + ></ul + ></li + ><li class="src short" + ><span class="keyword" + >newtype</span + > <a href="#" + >N1</a + > a = <a href="#" + >N1</a + > a</li + ><li class="src short" + ><span class="keyword" + >newtype</span + > <a href="#" + >N2</a + > a b = <a href="#" + >N2</a + > {<ul class="subs" ><li - ><a href="#" - >s2</a - > :: <a href="#" - >Int</a - ></li + ><a href="#" + >n</a + > :: a b</li + ></ul + >}</li + ><li class="src short" + ><span class="keyword" + >newtype</span + > <a href="#" + >N3</a + > a b = <a href="#" + >N3</a + > {<ul class="subs" ><li - ><a href="#" - >s3</a - > :: <a href="#" - >Int</a - ></li - ></ul - >}</li - ><li class="src short" - ><span class="keyword" - >class</span - > <a href="#" - >D</a - > a => <a href="#" - >C</a - > a <span class="keyword" - >where</span - ><ul class="subs" - ></ul - ></li - ><li class="src short" - ><span class="keyword" - >class</span - > <a href="#" - >D</a - > a <span class="keyword" - >where</span - ><ul class="subs" - ></ul - ></li - ><li class="src short" - ><span class="keyword" - >class</span - > <a href="#" - >E</a - > a</li - ><li class="src short" - ><span class="keyword" - >class</span - > <a href="#" - >F</a - > a <span class="keyword" - >where</span - ><ul class="subs" - ></ul - ></li - ><li class="src short" - ><a href="#" - >a</a - > :: <a href="#" - >C</a - > a => <a href="#" - >IO</a - > a</li - ><li class="src short" - ><a href="#" - >f</a - > :: <a href="#" - >C</a - > a => a -> <a href="#" - >Int</a - ></li - ><li class="src short" - ><a href="#" - >g</a - > :: <a href="#" - >Int</a - > -> <a href="#" - >IO</a - > CInt</li - ><li class="src short" - ><a href="#" - >hidden</a - > :: <a href="#" - >Int</a - > -> <a href="#" - >Int</a - ></li - ><li class="src short" - >module <a href="#" - >Visible</a - ></li - ><li class="src short" - ><span class="keyword" - >data</span - > <a href="#" - >Ex</a - > a<ul class="subs" - ><li - >= <a href="#" - >C</a - > b => <a href="#" - >Ex1</a - > b</li + ><a href="#" + >n3</a + > :: a b</li + ></ul + >}</li + ><li class="src short" + ><span class="keyword" + >data</span + > <a href="#" + >N4</a + > a b</li + ><li class="src short" + ><span class="keyword" + >newtype</span + > <a href="#" + >N5</a + > a b = <a href="#" + >N5</a + > {<ul class="subs" ><li - >| <a href="#" - >Ex2</a - > b</li + ><a href="#" + >n5</a + > :: a b</li + ></ul + >}</li + ><li class="src short" + ><span class="keyword" + >newtype</span + > <a href="#" + >N6</a + > a b = <a href="#" + >N6</a + > {<ul class="subs" ><li - >| <a href="#" - >C</a - > a => <a href="#" - >Ex3</a - > b</li + ><a href="#" + >n6</a + > :: a b</li + ></ul + >}</li + ><li class="src short" + ><span class="keyword" + >newtype</span + > <a href="#" + >N7</a + > a b = <a href="#" + >N7</a + > {<ul class="subs" ><li - >| <a href="#" - >Ex4</a - > (<span class="keyword" - >forall</span - > a. a -> a)</li + ><a href="#" + >n7</a + > :: a b</li + ></ul + >}</li + ><li class="src short" + ><span class="keyword" + >data</span + > <a href="#" + >R</a + ><ul class="subs" + ><li + >= <a href="#" + >C1</a + > { <ul class="subs" + ><li + ><a href="#" + >p</a + > :: <a href="#" + >Int</a + ></li + ><li + ><a href="#" + >q</a + > :: <span class="keyword" + >forall</span + > a. a -> a</li + ><li + ><a href="#" + >r</a + >, <a href="#" + >s</a + > :: <a href="#" + >Int</a + ></li + ></ul + > }</li + ><li + >| <a href="#" + >C2</a + > { <ul class="subs" + ><li + ><a href="#" + >t</a + > :: T1 -> <a href="#" + >T2</a + > <a href="#" + >Int</a + > <a href="#" + >Int</a + > -> <a href="#" + >T3</a + > <a href="#" + >Bool</a + > <a href="#" + >Bool</a + > -> <a href="#" + >T4</a + > <a href="#" + >Float</a + > <a href="#" + >Float</a + > -> <a href="#" + >T5</a + > () ()</li + ><li + ><a href="#" + >u</a + >, <a href="#" + >v</a + > :: <a href="#" + >Int</a + ></li + ></ul + > }</li + ></ul + ></li + ><li class="src short" + ><span class="keyword" + >data</span + > <a href="#" + >R1</a + > = <a href="#" + >C3</a + > {<ul class="subs" + ><li + ><a href="#" + >s1</a + > :: <a href="#" + >Int</a + ></li + ><li + ><a href="#" + >s2</a + > :: <a href="#" + >Int</a + ></li + ><li + ><a href="#" + >s3</a + > :: <a href="#" + >Int</a + ></li + ></ul + >}</li + ><li class="src short" + ><span class="keyword" + >class</span + > <a href="#" + >D</a + > a => <a href="#" + >C</a + > a <span class="keyword" + >where</span + ><ul class="subs" ></ul - ></li - ><li class="src short" - ><a href="#" - >k</a - > :: <a href="#" - >T</a - > () () -> <a href="#" - >T2</a - > <a href="#" - >Int</a - > <a href="#" - >Int</a - > -> (<a href="#" - >T3</a - > <a href="#" - >Bool</a - > <a href="#" - >Bool</a - > -> <a href="#" - >T4</a - > <a href="#" - >Float</a - > <a href="#" - >Float</a - >) -> <a href="#" - >T5</a - > () () -> <a href="#" - >IO</a - > ()</li - ><li class="src short" - ><a href="#" - >l</a - > :: (<a href="#" - >Int</a - >, <a href="#" - >Int</a - >, <a href="#" - >Float</a - >) -> <a href="#" - >Int</a - ></li - ><li class="src short" - ><a href="#" - >m</a - > :: <a href="#" - >R</a - > -> <a href="#" - >N1</a - > () -> <a href="#" - >IO</a - > <a href="#" - >Int</a - ></li - ><li class="src short" - ><a href="#" - >o</a - > :: <a href="#" - >Float</a - > -> <a href="#" - >IO</a - > <a href="#" - >Float</a - ></li - ><li class="src short" - ><a href="#" - >f'</a - > :: <a href="#" - >Int</a - ></li - ><li class="src short" - ><a href="#" - >withType</a - > :: <a href="#" - >Int</a - ></li - ><li class="src short" - ><a href="#" - >withoutType</a - > :: a</li - ></ul + ></li + ><li class="src short" + ><span class="keyword" + >class</span + > <a href="#" + >D</a + > a <span class="keyword" + >where</span + ><ul class="subs" + ></ul + ></li + ><li class="src short" + ><span class="keyword" + >class</span + > <a href="#" + >E</a + > a</li + ><li class="src short" + ><span class="keyword" + >class</span + > <a href="#" + >F</a + > a <span class="keyword" + >where</span + ><ul class="subs" + ></ul + ></li + ><li class="src short" + ><a href="#" + >a</a + > :: <a href="#" + >C</a + > a => <a href="#" + >IO</a + > a</li + ><li class="src short" + ><a href="#" + >f</a + > :: <a href="#" + >C</a + > a => a -> <a href="#" + >Int</a + ></li + ><li class="src short" + ><a href="#" + >g</a + > :: <a href="#" + >Int</a + > -> <a href="#" + >IO</a + > CInt</li + ><li class="src short" + ><a href="#" + >hidden</a + > :: <a href="#" + >Int</a + > -> <a href="#" + >Int</a + ></li + ><li class="src short" + >module <a href="#" + >Visible</a + ></li + ><li class="src short" + ><span class="keyword" + >data</span + > <a href="#" + >Ex</a + > a<ul class="subs" + ><li + >= <a href="#" + >C</a + > b => <a href="#" + >Ex1</a + > b</li + ><li + >| <a href="#" + >Ex2</a + > b</li + ><li + >| <a href="#" + >C</a + > a => <a href="#" + >Ex3</a + > b</li + ><li + >| <a href="#" + >Ex4</a + > (<span class="keyword" + >forall</span + > a. a -> a)</li + ></ul + ></li + ><li class="src short" + ><a href="#" + >k</a + > :: <a href="#" + >T</a + > () () -> <a href="#" + >T2</a + > <a href="#" + >Int</a + > <a href="#" + >Int</a + > -> (<a href="#" + >T3</a + > <a href="#" + >Bool</a + > <a href="#" + >Bool</a + > -> <a href="#" + >T4</a + > <a href="#" + >Float</a + > <a href="#" + >Float</a + >) -> <a href="#" + >T5</a + > () () -> <a href="#" + >IO</a + > ()</li + ><li class="src short" + ><a href="#" + >l</a + > :: (<a href="#" + >Int</a + >, <a href="#" + >Int</a + >, <a href="#" + >Float</a + >) -> <a href="#" + >Int</a + ></li + ><li class="src short" + ><a href="#" + >m</a + > :: <a href="#" + >R</a + > -> <a href="#" + >N1</a + > () -> <a href="#" + >IO</a + > <a href="#" + >Int</a + ></li + ><li class="src short" + ><a href="#" + >o</a + > :: <a href="#" + >Float</a + > -> <a href="#" + >IO</a + > <a href="#" + >Float</a + ></li + ><li class="src short" + ><a href="#" + >f'</a + > :: <a href="#" + >Int</a + ></li + ><li class="src short" + ><a href="#" + >withType</a + > :: <a href="#" + >Int</a + ></li + ><li class="src short" + ><a href="#" + >withoutType</a + > :: a</li + ></ul + ></details ></div ><div id="interface" ><h1 id="g:1" @@ -1561,14 +1563,14 @@ ></p ></div ><div class="subs instances" - ><p id="control.i:D" class="caption collapser" onclick="toggleSection('i:D')" - >Instances</p - ><div id="section.i:D" class="show" - ><table + ><details id="i:D" open="open" + ><summary + >Instances</summary + ><table ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:ic:D:D:1" class="instance expander" onclick="toggleSection('i:ic:D:D:1')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:D:D:1" ></span > <a href="#" >D</a @@ -1583,8 +1585,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:ic:D:D:1" class="inst-details hide" - ><div class="subs methods" + ><details id="i:ic:D:D:1" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs methods" ><p class="caption" >Methods</p ><p class="src" @@ -1608,13 +1612,13 @@ >#</a ></p ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:ic:D:D:2" class="instance expander" onclick="toggleSection('i:ic:D:D:2')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:D:D:2" ></span > <a href="#" >D</a @@ -1629,8 +1633,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:ic:D:D:2" class="inst-details hide" - ><div class="subs methods" + ><details id="i:ic:D:D:2" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs methods" ><p class="caption" >Methods</p ><p class="src" @@ -1654,11 +1660,11 @@ >#</a ></p ></div - ></div + ></details ></td ></tr ></table - ></div + ></details ></div ></div ><div class="top" diff --git a/html-test/ref/Threaded.html b/html-test/ref/Threaded.html index 0d16ba9a..836a4db2 100644 --- a/html-test/ref/Threaded.html +++ b/html-test/ref/Threaded.html @@ -49,16 +49,18 @@ ></div ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><a href="#" - >f</a - > :: <a href="#" - >Integer</a - ></li - ></ul + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" + ><li class="src short" + ><a href="#" + >f</a + > :: <a href="#" + >Integer</a + ></li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/Threaded_TH.html b/html-test/ref/Threaded_TH.html index 553ea0e3..7f80b127 100644 --- a/html-test/ref/Threaded_TH.html +++ b/html-test/ref/Threaded_TH.html @@ -50,14 +50,16 @@ ></div ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><a href="#" - >forkTH</a - > :: Q Exp</li - ></ul + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" + ><li class="src short" + ><a href="#" + >forkTH</a + > :: Q Exp</li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/Ticket112.html b/html-test/ref/Ticket112.html index 25a4b22d..ccd39ff0 100644 --- a/html-test/ref/Ticket112.html +++ b/html-test/ref/Ticket112.html @@ -39,14 +39,16 @@ >Ticket112</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><a href="#" - >f</a - > :: a</li - ></ul + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" + ><li class="src short" + ><a href="#" + >f</a + > :: a</li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/Ticket75.html b/html-test/ref/Ticket75.html index e4def849..488913b1 100644 --- a/html-test/ref/Ticket75.html +++ b/html-test/ref/Ticket75.html @@ -39,24 +39,26 @@ >Ticket75</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><span class="keyword" - >data</span - > a <a href="#" - >:-</a - > b = <a href="#" - >Q</a - ></li + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" ><li class="src short" - ><a href="#" - >f</a - > :: <a href="#" - >Int</a - ></li - ></ul + ><span class="keyword" + >data</span + > a <a href="#" + >:-</a + > b = <a href="#" + >Q</a + ></li + ><li class="src short" + ><a href="#" + >f</a + > :: <a href="#" + >Int</a + ></li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/TitledPicture.html b/html-test/ref/TitledPicture.html index 3f3cb2e4..966c2a34 100644 --- a/html-test/ref/TitledPicture.html +++ b/html-test/ref/TitledPicture.html @@ -39,22 +39,24 @@ >TitledPicture</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><a href="#" - >foo</a - > :: <a href="#" - >Integer</a - ></li + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" ><li class="src short" - ><a href="#" - >bar</a - > :: <a href="#" - >Integer</a - ></li - ></ul + ><a href="#" + >foo</a + > :: <a href="#" + >Integer</a + ></li + ><li class="src short" + ><a href="#" + >bar</a + > :: <a href="#" + >Integer</a + ></li + ></ul + ></details ></div ><div id="interface" ><h1 diff --git a/html-test/ref/TypeFamilies.html b/html-test/ref/TypeFamilies.html index df2a57c2..dcb5a92a 100644 --- a/html-test/ref/TypeFamilies.html +++ b/html-test/ref/TypeFamilies.html @@ -47,118 +47,120 @@ ></div ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><span class="keyword" - >data</span - > <a href="#" - >X</a - ><ul class="subs" - ><li - >= <a href="#" - >X</a - ></li - ><li - >| <a href="#" - >XX</a - ></li - ><li - >| <a href="#" - >XXX</a - ></li - ></ul - ></li + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" ><li class="src short" - ><span class="keyword" - >data</span - > <a href="#" - >Y</a - ></li - ><li class="src short" - ><span class="keyword" - >data</span - > <a href="#" - >Z</a - ><ul class="subs" - ><li - >= <a href="#" - >ZA</a - ></li + ><span class="keyword" + >data</span + > <a href="#" + >X</a + ><ul class="subs" ><li - >| <a href="#" - >ZB</a - ></li - ></ul - ></li - ><li class="src short" - ><span class="keyword" - >class</span - > <a href="#" - >Test</a - > a</li - ><li class="src short" - ><span class="keyword" - >type family</span - > <a href="#" - >Foo</a - > a :: k</li - ><li class="src short" - ><span class="keyword" - >data family</span - > <a href="#" - >Bat</a - > (a :: k) :: <a href="#" - >*</a - ></li - ><li class="src short" - ><span class="keyword" - >class</span - > <a href="#" - >Assoc</a - > a <span class="keyword" - >where</span - ><ul class="subs" - ><li - ><span class="keyword" - >data</span - > <a href="#" - >AssocD</a - > a :: <a href="#" - >*</a - ></li + >= <a href="#" + >X</a + ></li + ><li + >| <a href="#" + >XX</a + ></li + ><li + >| <a href="#" + >XXX</a + ></li + ></ul + ></li + ><li class="src short" + ><span class="keyword" + >data</span + > <a href="#" + >Y</a + ></li + ><li class="src short" + ><span class="keyword" + >data</span + > <a href="#" + >Z</a + ><ul class="subs" ><li - ><span class="keyword" - >type</span - > <a href="#" - >AssocT</a - > a :: <a href="#" - >*</a - ></li - ></ul - ></li - ><li class="src short" - ><span class="keyword" - >type family</span - > <a href="#" - >Bar</a - > b <span class="keyword" - >where ...</span - ></li - ><li class="src short" - ><span class="keyword" - >type family</span - > (a :: k) <a href="#" - ><></a - > (b :: k) :: k</li - ><li class="src short" - ><span class="keyword" - >class</span - > (a :: k) <a href="#" - >><</a - > (b :: k)</li - ></ul + >= <a href="#" + >ZA</a + ></li + ><li + >| <a href="#" + >ZB</a + ></li + ></ul + ></li + ><li class="src short" + ><span class="keyword" + >class</span + > <a href="#" + >Test</a + > a</li + ><li class="src short" + ><span class="keyword" + >type family</span + > <a href="#" + >Foo</a + > a :: k</li + ><li class="src short" + ><span class="keyword" + >data family</span + > <a href="#" + >Bat</a + > (a :: k) :: <a href="#" + >*</a + ></li + ><li class="src short" + ><span class="keyword" + >class</span + > <a href="#" + >Assoc</a + > a <span class="keyword" + >where</span + ><ul class="subs" + ><li + ><span class="keyword" + >data</span + > <a href="#" + >AssocD</a + > a :: <a href="#" + >*</a + ></li + ><li + ><span class="keyword" + >type</span + > <a href="#" + >AssocT</a + > a :: <a href="#" + >*</a + ></li + ></ul + ></li + ><li class="src short" + ><span class="keyword" + >type family</span + > <a href="#" + >Bar</a + > b <span class="keyword" + >where ...</span + ></li + ><li class="src short" + ><span class="keyword" + >type family</span + > (a :: k) <a href="#" + ><></a + > (b :: k) :: k</li + ><li class="src short" + ><span class="keyword" + >class</span + > (a :: k) <a href="#" + >><</a + > (b :: k)</li + ></ul + ></details ></div ><div id="interface" ><h1 @@ -213,14 +215,14 @@ ></table ></div ><div class="subs instances" - ><p id="control.i:X" class="caption collapser" onclick="toggleSection('i:X')" - >Instances</p - ><div id="section.i:X" class="show" - ><table + ><details id="i:X" open="open" + ><summary + >Instances</summary + ><table ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:id:X:-62--60-:1" class="instance expander" onclick="toggleSection('i:id:X:-62--60-:1')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:X:-62--60-:1" ></span > <a href="#" >(><)</a @@ -239,14 +241,16 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:id:X:-62--60-:1" class="inst-details hide" - ></div + ><details id="i:id:X:-62--60-:1" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:id:X:Assoc:2" class="instance expander" onclick="toggleSection('i:id:X:Assoc:2')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:X:Assoc:2" ></span > <a href="#" >Assoc</a @@ -265,8 +269,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:id:X:Assoc:2" class="inst-details hide" - ><div class="subs associated-types" + ><details id="i:id:X:Assoc:2" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs associated-types" ><p class="caption" >Associated Types</p ><p class="src" @@ -298,13 +304,13 @@ >#</a ></p ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:id:X:Test:3" class="instance expander" onclick="toggleSection('i:id:X:Test:3')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:X:Test:3" ></span > <a href="#" >Test</a @@ -323,14 +329,16 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:id:X:Test:3" class="inst-details hide" - ></div + ><details id="i:id:X:Test:3" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:id:X:Foo:4" class="instance expander" onclick="toggleSection('i:id:X:Foo:4')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:X:Foo:4" ></span > <span class="keyword" >type</span @@ -347,8 +355,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:id:X:Foo:4" class="inst-details hide" - ><div class="src" + ><details id="i:id:X:Foo:4" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="src" ><span class="keyword" >type</span > <a href="#" @@ -358,13 +368,13 @@ > = <a href="#" >Y</a ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:id:X:-60--62-:5" class="instance expander" onclick="toggleSection('i:id:X:-60--62-:5')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:X:-60--62-:5" ></span > <span class="keyword" >type</span @@ -385,8 +395,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:id:X:-60--62-:5" class="inst-details hide" - ><div class="src" + ><details id="i:id:X:-60--62-:5" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="src" ><span class="keyword" >type</span > <a href="#" @@ -400,13 +412,13 @@ > = <a href="#" >X</a ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:id:X:AssocD:6" class="instance expander" onclick="toggleSection('i:id:X:AssocD:6')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:X:AssocD:6" ></span > <span class="keyword" >data</span @@ -425,8 +437,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:id:X:AssocD:6" class="inst-details hide" - ><div class="src" + ><details id="i:id:X:AssocD:6" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="src" ><span class="keyword" >data</span > <a href="#" @@ -438,13 +452,13 @@ > = <a id="v:AssocX" class="def" >AssocX</a ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:id:X:AssocT:7" class="instance expander" onclick="toggleSection('i:id:X:AssocT:7')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:X:AssocT:7" ></span > <span class="keyword" >type</span @@ -463,8 +477,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:id:X:AssocT:7" class="inst-details hide" - ><div class="src" + ><details id="i:id:X:AssocT:7" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="src" ><span class="keyword" >type</span > <a href="#" @@ -480,13 +496,13 @@ > <a href="#" >X</a ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:id:X:Bat:8" class="instance expander" onclick="toggleSection('i:id:X:Bat:8')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:X:Bat:8" ></span > <span class="keyword" >data</span @@ -507,8 +523,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:id:X:Bat:8" class="inst-details hide" - ><div class="src" + ><details id="i:id:X:Bat:8" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="src" ><span class="keyword" >data</span > <a href="#" @@ -544,13 +562,13 @@ > }</li ></ul ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:id:X:Foo:9" class="instance expander" onclick="toggleSection('i:id:X:Foo:9')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:X:Foo:9" ></span > <span class="keyword" >type</span @@ -569,8 +587,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:id:X:Foo:9" class="inst-details hide" - ><div class="src" + ><details id="i:id:X:Foo:9" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="src" ><span class="keyword" >type</span > <a href="#" @@ -582,13 +602,13 @@ > = <a href="#" >Y</a ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:id:X:-60--62-:10" class="instance expander" onclick="toggleSection('i:id:X:-60--62-:10')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:X:-60--62-:10" ></span > <span class="keyword" >type</span @@ -607,8 +627,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:id:X:-60--62-:10" class="inst-details hide" - ><div class="src" + ><details id="i:id:X:-60--62-:10" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="src" ><span class="keyword" >type</span > <a href="#" @@ -620,11 +642,11 @@ > a = <a href="#" >X</a ></div - ></div + ></details ></td ></tr ></table - ></div + ></details ></div ></div ><div class="top" @@ -641,14 +663,14 @@ >Doc for: data Y</p ></div ><div class="subs instances" - ><p id="control.i:Y" class="caption collapser" onclick="toggleSection('i:Y')" - >Instances</p - ><div id="section.i:Y" class="show" - ><table + ><details id="i:Y" open="open" + ><summary + >Instances</summary + ><table ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:id:Y:Assoc:1" class="instance expander" onclick="toggleSection('i:id:Y:Assoc:1')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Y:Assoc:1" ></span > <a href="#" >Assoc</a @@ -667,8 +689,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:id:Y:Assoc:1" class="inst-details hide" - ><div class="subs associated-types" + ><details id="i:id:Y:Assoc:1" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs associated-types" ><p class="caption" >Associated Types</p ><p class="src" @@ -700,13 +724,13 @@ >#</a ></p ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:id:Y:Test:2" class="instance expander" onclick="toggleSection('i:id:Y:Test:2')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Y:Test:2" ></span > <a href="#" >Test</a @@ -725,14 +749,16 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:id:Y:Test:2" class="inst-details hide" - ></div + ><details id="i:id:Y:Test:2" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:id:Y:Bar:3" class="instance expander" onclick="toggleSection('i:id:Y:Bar:3')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Y:Bar:3" ></span > <span class="keyword" >data</span @@ -749,8 +775,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:id:Y:Bar:3" class="inst-details hide" - ><div class="src" + ><details id="i:id:Y:Bar:3" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="src" ><span class="keyword" >data</span > <a href="#" @@ -758,13 +786,13 @@ > <a href="#" >Y</a ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:id:Y:AssocD:4" class="instance expander" onclick="toggleSection('i:id:Y:AssocD:4')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Y:AssocD:4" ></span > <span class="keyword" >data</span @@ -783,8 +811,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:id:Y:AssocD:4" class="inst-details hide" - ><div class="src" + ><details id="i:id:Y:AssocD:4" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="src" ><span class="keyword" >data</span > <a href="#" @@ -796,13 +826,13 @@ > = <a id="v:AssocY" class="def" >AssocY</a ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:id:Y:AssocT:5" class="instance expander" onclick="toggleSection('i:id:Y:AssocT:5')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Y:AssocT:5" ></span > <span class="keyword" >type</span @@ -821,8 +851,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:id:Y:AssocT:5" class="inst-details hide" - ><div class="src" + ><details id="i:id:Y:AssocT:5" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="src" ><span class="keyword" >type</span > <a href="#" @@ -838,13 +870,13 @@ > <a href="#" >Y</a ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:id:Y:Bat:6" class="instance expander" onclick="toggleSection('i:id:Y:Bat:6')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Y:Bat:6" ></span > <span class="keyword" >data</span @@ -865,8 +897,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:id:Y:Bat:6" class="inst-details hide" - ><div class="src" + ><details id="i:id:Y:Bat:6" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="src" ><span class="keyword" >data</span > <a href="#" @@ -880,13 +914,13 @@ > <a href="#" >Y</a ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:id:Y:Foo:7" class="instance expander" onclick="toggleSection('i:id:Y:Foo:7')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Y:Foo:7" ></span > <span class="keyword" >type</span @@ -905,8 +939,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:id:Y:Foo:7" class="inst-details hide" - ><div class="src" + ><details id="i:id:Y:Foo:7" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="src" ><span class="keyword" >type</span > <a href="#" @@ -918,13 +954,13 @@ > = <a href="#" >X</a ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:id:Y:-60--62-:8" class="instance expander" onclick="toggleSection('i:id:Y:-60--62-:8')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Y:-60--62-:8" ></span > <span class="keyword" >type</span @@ -943,8 +979,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:id:Y:-60--62-:8" class="inst-details hide" - ><div class="src" + ><details id="i:id:Y:-60--62-:8" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="src" ><span class="keyword" >type</span > <a href="#" @@ -954,11 +992,11 @@ > <a href="#" >Y</a > a = a</div - ></div + ></details ></td ></tr ></table - ></div + ></details ></div ></div ><div class="top" @@ -997,14 +1035,14 @@ ></table ></div ><div class="subs instances" - ><p id="control.i:Z" class="caption collapser" onclick="toggleSection('i:Z')" - >Instances</p - ><div id="section.i:Z" class="show" - ><table + ><details id="i:Z" open="open" + ><summary + >Instances</summary + ><table ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:id:Z:Bat:1" class="instance expander" onclick="toggleSection('i:id:Z:Bat:1')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Z:Bat:1" ></span > <span class="keyword" >data</span @@ -1023,8 +1061,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:id:Z:Bat:1" class="inst-details hide" - ><div class="src" + ><details id="i:id:Z:Bat:1" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="src" ><span class="keyword" >data</span > <a href="#" @@ -1056,11 +1096,11 @@ ></li ></ul ></div - ></div + ></details ></td ></tr ></table - ></div + ></details ></div ></div ><div class="top" @@ -1077,14 +1117,14 @@ >Doc for: class Test a</p ></div ><div class="subs instances" - ><p id="control.i:Test" class="caption collapser" onclick="toggleSection('i:Test')" - >Instances</p - ><div id="section.i:Test" class="show" - ><table + ><details id="i:Test" open="open" + ><summary + >Instances</summary + ><table ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:ic:Test:Test:1" class="instance expander" onclick="toggleSection('i:ic:Test:Test:1')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Test:Test:1" ></span > <a href="#" >Test</a @@ -1103,14 +1143,16 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:ic:Test:Test:1" class="inst-details hide" - ></div + ><details id="i:ic:Test:Test:1" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:ic:Test:Test:2" class="instance expander" onclick="toggleSection('i:ic:Test:Test:2')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Test:Test:2" ></span > <a href="#" >Test</a @@ -1129,12 +1171,14 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:ic:Test:Test:2" class="inst-details hide" - ></div + ><details id="i:ic:Test:Test:2" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ></details ></td ></tr ></table - ></div + ></details ></div ></div ><div class="top" @@ -1151,14 +1195,14 @@ >Doc for: type family Foo a</p ></div ><div class="subs instances" - ><p id="control.i:Foo" class="caption collapser" onclick="toggleSection('i:Foo')" - >Instances</p - ><div id="section.i:Foo" class="show" - ><table + ><details id="i:Foo" open="open" + ><summary + >Instances</summary + ><table ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:if:Foo:Foo:1" class="instance expander" onclick="toggleSection('i:if:Foo:Foo:1')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:if:Foo:Foo:1" ></span > <span class="keyword" >type</span @@ -1177,8 +1221,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:if:Foo:Foo:1" class="inst-details hide" - ><div class="src" + ><details id="i:if:Foo:Foo:1" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="src" ><span class="keyword" >type</span > <a href="#" @@ -1190,13 +1236,13 @@ > = <a href="#" >X</a ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:if:Foo:Foo:2" class="instance expander" onclick="toggleSection('i:if:Foo:Foo:2')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:if:Foo:Foo:2" ></span > <span class="keyword" >type</span @@ -1215,8 +1261,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:if:Foo:Foo:2" class="inst-details hide" - ><div class="src" + ><details id="i:if:Foo:Foo:2" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="src" ><span class="keyword" >type</span > <a href="#" @@ -1228,11 +1276,11 @@ > = <a href="#" >Y</a ></div - ></div + ></details ></td ></tr ></table - ></div + ></details ></div ></div ><div class="top" @@ -1251,14 +1299,14 @@ >Doc for: data family Bat a</p ></div ><div class="subs instances" - ><p id="control.i:Bat" class="caption collapser" onclick="toggleSection('i:Bat')" - >Instances</p - ><div id="section.i:Bat" class="show" - ><table + ><details id="i:Bat" open="open" + ><summary + >Instances</summary + ><table ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:if:Bat:Bat:1" class="instance expander" onclick="toggleSection('i:if:Bat:Bat:1')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:if:Bat:Bat:1" ></span > <span class="keyword" >data</span @@ -1277,8 +1325,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:if:Bat:Bat:1" class="inst-details hide" - ><div class="src" + ><details id="i:if:Bat:Bat:1" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="src" ><span class="keyword" >data</span > <a href="#" @@ -1310,13 +1360,13 @@ ></li ></ul ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:if:Bat:Bat:2" class="instance expander" onclick="toggleSection('i:if:Bat:Bat:2')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:if:Bat:Bat:2" ></span > <span class="keyword" >data</span @@ -1337,8 +1387,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:if:Bat:Bat:2" class="inst-details hide" - ><div class="src" + ><details id="i:if:Bat:Bat:2" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="src" ><span class="keyword" >data</span > <a href="#" @@ -1352,13 +1404,13 @@ > <a href="#" >Y</a ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:if:Bat:Bat:3" class="instance expander" onclick="toggleSection('i:if:Bat:Bat:3')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:if:Bat:Bat:3" ></span > <span class="keyword" >data</span @@ -1379,8 +1431,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:if:Bat:Bat:3" class="inst-details hide" - ><div class="src" + ><details id="i:if:Bat:Bat:3" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="src" ><span class="keyword" >data</span > <a href="#" @@ -1416,11 +1470,11 @@ > }</li ></ul ></div - ></div + ></details ></td ></tr ></table - ></div + ></details ></div ></div ><div class="top" @@ -1469,14 +1523,14 @@ ></div ></div ><div class="subs instances" - ><p id="control.i:Assoc" class="caption collapser" onclick="toggleSection('i:Assoc')" - >Instances</p - ><div id="section.i:Assoc" class="show" - ><table + ><details id="i:Assoc" open="open" + ><summary + >Instances</summary + ><table ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:ic:Assoc:Assoc:1" class="instance expander" onclick="toggleSection('i:ic:Assoc:Assoc:1')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Assoc:Assoc:1" ></span > <a href="#" >Assoc</a @@ -1495,8 +1549,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:ic:Assoc:Assoc:1" class="inst-details hide" - ><div class="subs associated-types" + ><details id="i:ic:Assoc:Assoc:1" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs associated-types" ><p class="caption" >Associated Types</p ><p class="src" @@ -1528,13 +1584,13 @@ >#</a ></p ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:ic:Assoc:Assoc:2" class="instance expander" onclick="toggleSection('i:ic:Assoc:Assoc:2')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Assoc:Assoc:2" ></span > <a href="#" >Assoc</a @@ -1553,8 +1609,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:ic:Assoc:Assoc:2" class="inst-details hide" - ><div class="subs associated-types" + ><details id="i:ic:Assoc:Assoc:2" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="subs associated-types" ><p class="caption" >Associated Types</p ><p class="src" @@ -1586,11 +1644,11 @@ >#</a ></p ></div - ></div + ></details ></td ></tr ></table - ></div + ></details ></div ></div ><div class="top" @@ -1647,14 +1705,14 @@ >#</a ></p ><div class="subs instances" - ><p id="control.i:-60--62-" class="caption collapser" onclick="toggleSection('i:-60--62-')" - >Instances</p - ><div id="section.i:-60--62-" class="show" - ><table + ><details id="i:-60--62-" open="open" + ><summary + >Instances</summary + ><table ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:if:-60--62-:-60--62-:1" class="instance expander" onclick="toggleSection('i:if:-60--62-:-60--62-:1')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:if:-60--62-:-60--62-:1" ></span > <span class="keyword" >type</span @@ -1675,8 +1733,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:if:-60--62-:-60--62-:1" class="inst-details hide" - ><div class="src" + ><details id="i:if:-60--62-:-60--62-:1" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="src" ><span class="keyword" >type</span > <a href="#" @@ -1690,13 +1750,13 @@ > = <a href="#" >X</a ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:if:-60--62-:-60--62-:2" class="instance expander" onclick="toggleSection('i:if:-60--62-:-60--62-:2')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:if:-60--62-:-60--62-:2" ></span > <span class="keyword" >type</span @@ -1715,8 +1775,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:if:-60--62-:-60--62-:2" class="inst-details hide" - ><div class="src" + ><details id="i:if:-60--62-:-60--62-:2" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="src" ><span class="keyword" >type</span > <a href="#" @@ -1726,13 +1788,13 @@ > <a href="#" >Y</a > a = a</div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:if:-60--62-:-60--62-:3" class="instance expander" onclick="toggleSection('i:if:-60--62-:-60--62-:3')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:if:-60--62-:-60--62-:3" ></span > <span class="keyword" >type</span @@ -1751,8 +1813,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:if:-60--62-:-60--62-:3" class="inst-details hide" - ><div class="src" + ><details id="i:if:-60--62-:-60--62-:3" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="src" ><span class="keyword" >type</span > <a href="#" @@ -1764,11 +1828,11 @@ > a = <a href="#" >X</a ></div - ></div + ></details ></td ></tr ></table - ></div + ></details ></div ></div ><div class="top" @@ -1781,14 +1845,14 @@ >#</a ></p ><div class="subs instances" - ><p id="control.i:-62--60-" class="caption collapser" onclick="toggleSection('i:-62--60-')" - >Instances</p - ><div id="section.i:-62--60-" class="show" - ><table + ><details id="i:-62--60-" open="open" + ><summary + >Instances</summary + ><table ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:ic:-62--60-:-62--60-:1" class="instance expander" onclick="toggleSection('i:ic:-62--60-:-62--60-:1')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:-62--60-:-62--60-:1" ></span > <a href="#" >(><)</a @@ -1807,12 +1871,14 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:ic:-62--60-:-62--60-:1" class="inst-details hide" - ></div + ><details id="i:ic:-62--60-:-62--60-:1" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ></details ></td ></tr ></table - ></div + ></details ></div ></div ></div diff --git a/html-test/ref/TypeFamilies2.html b/html-test/ref/TypeFamilies2.html index c976d9b6..84e7df36 100644 --- a/html-test/ref/TypeFamilies2.html +++ b/html-test/ref/TypeFamilies2.html @@ -39,28 +39,30 @@ >TypeFamilies2</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><span class="keyword" - >data</span - > <a href="#" - >W</a - ></li - ><li class="src short" - ><span class="keyword" - >type family</span - > <a href="#" - >Foo</a - > a</li + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" ><li class="src short" - ><span class="keyword" - >data family</span - > <a href="#" - >Bar</a - > a</li - ></ul + ><span class="keyword" + >data</span + > <a href="#" + >W</a + ></li + ><li class="src short" + ><span class="keyword" + >type family</span + > <a href="#" + >Foo</a + > a</li + ><li class="src short" + ><span class="keyword" + >data family</span + > <a href="#" + >Bar</a + > a</li + ></ul + ></details ></div ><div id="interface" ><h1 @@ -79,14 +81,14 @@ >Exported type</p ></div ><div class="subs instances" - ><p id="control.i:W" class="caption collapser" onclick="toggleSection('i:W')" - >Instances</p - ><div id="section.i:W" class="show" - ><table + ><details id="i:W" open="open" + ><summary + >Instances</summary + ><table ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:id:W:Bar:1" class="instance expander" onclick="toggleSection('i:id:W:Bar:1')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:W:Bar:1" ></span > <span class="keyword" >data</span @@ -105,8 +107,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:id:W:Bar:1" class="inst-details hide" - ><div class="src" + ><details id="i:id:W:Bar:1" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="src" ><span class="keyword" >data</span > <a href="#" @@ -116,13 +120,13 @@ > = <a id="v:BarX" class="def" >BarX</a > Z</div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:id:W:Foo:2" class="instance expander" onclick="toggleSection('i:id:W:Foo:2')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:W:Foo:2" ></span > <span class="keyword" >type</span @@ -139,8 +143,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:id:W:Foo:2" class="inst-details hide" - ><div class="src" + ><details id="i:id:W:Foo:2" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="src" ><span class="keyword" >type</span > <a href="#" @@ -148,11 +154,11 @@ > <a href="#" >W</a ></div - ></div + ></details ></td ></tr ></table - ></div + ></details ></div ></div ><div class="top" @@ -169,14 +175,14 @@ >Exported type family</p ></div ><div class="subs instances" - ><p id="control.i:Foo" class="caption collapser" onclick="toggleSection('i:Foo')" - >Instances</p - ><div id="section.i:Foo" class="show" - ><table + ><details id="i:Foo" open="open" + ><summary + >Instances</summary + ><table ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:if:Foo:Foo:1" class="instance expander" onclick="toggleSection('i:if:Foo:Foo:1')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:if:Foo:Foo:1" ></span > <span class="keyword" >type</span @@ -193,8 +199,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:if:Foo:Foo:1" class="inst-details hide" - ><div class="src" + ><details id="i:if:Foo:Foo:1" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="src" ><span class="keyword" >type</span > <a href="#" @@ -202,13 +210,13 @@ > <a href="#" >W</a ></div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:if:Foo:Foo:2" class="instance expander" onclick="toggleSection('i:if:Foo:Foo:2')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:if:Foo:Foo:2" ></span > <span class="keyword" >type</span @@ -225,8 +233,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:if:Foo:Foo:2" class="inst-details hide" - ><div class="src" + ><details id="i:if:Foo:Foo:2" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="src" ><span class="keyword" >type</span > <a href="#" @@ -236,11 +246,11 @@ > = <a href="#" >Y</a ></div - ></div + ></details ></td ></tr ></table - ></div + ></details ></div ></div ><div class="top" @@ -257,14 +267,14 @@ >Exported data family</p ></div ><div class="subs instances" - ><p id="control.i:Bar" class="caption collapser" onclick="toggleSection('i:Bar')" - >Instances</p - ><div id="section.i:Bar" class="show" - ><table + ><details id="i:Bar" open="open" + ><summary + >Instances</summary + ><table ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:if:Bar:Bar:1" class="instance expander" onclick="toggleSection('i:if:Bar:Bar:1')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:if:Bar:Bar:1" ></span > <span class="keyword" >data</span @@ -283,8 +293,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:if:Bar:Bar:1" class="inst-details hide" - ><div class="src" + ><details id="i:if:Bar:Bar:1" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="src" ><span class="keyword" >data</span > <a href="#" @@ -294,13 +306,13 @@ > = <a id="v:BarX" class="def" >BarX</a > Z</div - ></div + ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" - ><span id="control.i:if:Bar:Bar:2" class="instance expander" onclick="toggleSection('i:if:Bar:Bar:2')" + ><span class="instance details-toggle-control details-toggle" data-details-id="i:if:Bar:Bar:2" ></span > <span class="keyword" >data</span @@ -317,8 +329,10 @@ ></tr ><tr ><td colspan="2" - ><div id="section.i:if:Bar:Bar:2" class="inst-details hide" - ><div class="src" + ><details id="i:if:Bar:Bar:2" + ><summary class="hide-when-js-enabled" + >Instance details</summary + ><div class="src" ><span class="keyword" >data</span > <a href="#" @@ -326,11 +340,11 @@ > <a href="#" >Y</a ></div - ></div + ></details ></td ></tr ></table - ></div + ></details ></div ></div ></div diff --git a/html-test/ref/Unicode.html b/html-test/ref/Unicode.html index fb04b942..0f2a30d4 100644 --- a/html-test/ref/Unicode.html +++ b/html-test/ref/Unicode.html @@ -39,16 +39,18 @@ >Unicode</p ></div ><div id="synopsis" - ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" - >Synopsis</p - ><ul id="section.syn" class="hide" onclick="toggleSection('syn')" - ><li class="src short" - ><a href="#" - >x</a - > :: <a href="#" - >Int</a - ></li - ></ul + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" + ><li class="src short" + ><a href="#" + >x</a + > :: <a href="#" + >Int</a + ></li + ></ul + ></details ></div ><div id="interface" ><h1 |