aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Baumann <tim@timbaumann.info>2017-10-09 18:33:09 +0200
committerAlexander Biehl <alexbiehl@gmail.com>2017-10-09 18:33:09 +0200
commite41c1cbe9f0476997eac7b4a3f17cbc6b2262faf (patch)
tree630d1956d5c94e7fcbc185027d211c64213597b4
parent406030f2782590799e44470da7ca80e85f3cf026 (diff)
Use <details> element for collapsibles (#690)
* Remove unnecessary call to 'collapseSection' The call is unnecessary since there is no corresponding toggle for hiding the section of orphan instances. * Use <details> for collapsibles This makes them work even when JS is disabled. Closes #560.
-rw-r--r--haddock-api/resources/html/Ocean.std-theme/ocean.css30
-rw-r--r--haddock-api/resources/html/haddock-bundle.min.js2
-rw-r--r--haddock-api/resources/html/js-src/cookies.ts20
-rw-r--r--haddock-api/resources/html/js-src/details-helper.ts106
-rw-r--r--haddock-api/resources/html/js-src/init.ts9
-rw-r--r--haddock-api/resources/html/js-src/style-menu.ts (renamed from haddock-api/resources/html/js-src/haddock-util.ts)75
-rw-r--r--haddock-api/src/Haddock/Backends/Xhtml.hs21
-rw-r--r--haddock-api/src/Haddock/Backends/Xhtml/DocMarkup.hs6
-rw-r--r--haddock-api/src/Haddock/Backends/Xhtml/Layout.hs14
-rw-r--r--haddock-api/src/Haddock/Backends/Xhtml/Utils.hs35
-rw-r--r--html-test/ref/A.html76
-rw-r--r--html-test/ref/B.html56
-rw-r--r--html-test/ref/Bold.html18
-rw-r--r--html-test/ref/Bug1.html26
-rw-r--r--html-test/ref/Bug201.html24
-rw-r--r--html-test/ref/Bug253.html18
-rw-r--r--html-test/ref/Bug26.html62
-rw-r--r--html-test/ref/Bug294.html50
-rw-r--r--html-test/ref/Bug298.html48
-rw-r--r--html-test/ref/Bug3.html22
-rw-r--r--html-test/ref/Bug308.html24
-rw-r--r--html-test/ref/Bug308CrossModule.html18
-rw-r--r--html-test/ref/Bug310.html38
-rw-r--r--html-test/ref/Bug313.html24
-rw-r--r--html-test/ref/Bug335.html44
-rw-r--r--html-test/ref/Bug387.html32
-rw-r--r--html-test/ref/Bug4.html22
-rw-r--r--html-test/ref/Bug6.html146
-rw-r--r--html-test/ref/Bug613.html94
-rw-r--r--html-test/ref/Bug7.html72
-rw-r--r--html-test/ref/BugDeprecated.html80
-rw-r--r--html-test/ref/BugExportHeadings.html80
-rw-r--r--html-test/ref/BundledPatterns.html150
-rw-r--r--html-test/ref/BundledPatterns2.html154
-rw-r--r--html-test/ref/DeprecatedClass.html46
-rw-r--r--html-test/ref/DeprecatedData.html70
-rw-r--r--html-test/ref/DeprecatedFunction.html32
-rw-r--r--html-test/ref/DeprecatedFunction2.html22
-rw-r--r--html-test/ref/DeprecatedFunction3.html22
-rw-r--r--html-test/ref/DeprecatedNewtype.html48
-rw-r--r--html-test/ref/DeprecatedReExport.html22
-rw-r--r--html-test/ref/DeprecatedRecord.html52
-rw-r--r--html-test/ref/DeprecatedTypeFamily.html48
-rw-r--r--html-test/ref/DeprecatedTypeSynonym.html40
-rw-r--r--html-test/ref/Examples.html26
-rw-r--r--html-test/ref/Extensions.html18
-rw-r--r--html-test/ref/GADTRecords.html92
-rw-r--r--html-test/ref/Hash.html146
-rw-r--r--html-test/ref/HiddenInstances.html86
-rw-r--r--html-test/ref/HiddenInstancesB.html68
-rw-r--r--html-test/ref/Hyperlinks.html22
-rw-r--r--html-test/ref/IgnoreExports.html32
-rw-r--r--html-test/ref/Instances.html320
-rw-r--r--html-test/ref/Math.html22
-rw-r--r--html-test/ref/NamedDoc.html10
-rw-r--r--html-test/ref/Nesting.html72
-rw-r--r--html-test/ref/NoLayout.html22
-rw-r--r--html-test/ref/NonGreedy.html18
-rw-r--r--html-test/ref/Operators.html212
-rw-r--r--html-test/ref/OrphanInstances.html22
-rw-r--r--html-test/ref/PR643.html18
-rw-r--r--html-test/ref/PR643_1.html18
-rw-r--r--html-test/ref/PatternSyns.html200
-rw-r--r--html-test/ref/Properties.html26
-rw-r--r--html-test/ref/QuasiExpr.html40
-rw-r--r--html-test/ref/SpuriousSuperclassConstraints.html30
-rw-r--r--html-test/ref/Test.html952
-rw-r--r--html-test/ref/Threaded.html22
-rw-r--r--html-test/ref/Threaded_TH.html18
-rw-r--r--html-test/ref/Ticket112.html18
-rw-r--r--html-test/ref/Ticket75.html36
-rw-r--r--html-test/ref/TitledPicture.html32
-rw-r--r--html-test/ref/TypeFamilies.html618
-rw-r--r--html-test/ref/TypeFamilies2.html134
-rw-r--r--html-test/ref/Unicode.html22
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 &#9662;</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 &#9662;</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="#"
- >(&lt;^&gt;)</a
- > :: (a -&gt; a) -&gt; a -&gt; a</li
- ><li class="src short"
- ><a href="#"
- >(&lt;^)</a
- > :: a -&gt; a -&gt; a</li
- ><li class="src short"
- ><a href="#"
- >(^&gt;)</a
- > :: a -&gt; a -&gt; a</li
- ><li class="src short"
- ><a href="#"
- >(&#8902;^)</a
- > :: a -&gt; a -&gt; 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="#"
+ >(&lt;^&gt;)</a
+ > :: (a -&gt; a) -&gt; a -&gt; a</li
+ ><li class="src short"
+ ><a href="#"
+ >(&lt;^)</a
+ > :: a -&gt; a -&gt; a</li
+ ><li class="src short"
+ ><a href="#"
+ >(^&gt;)</a
+ > :: a -&gt; a -&gt; a</li
+ ><li class="src short"
+ ><a href="#"
+ >(&#8902;^)</a
+ > :: a -&gt; a -&gt; 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"
>&gt;&gt;&gt; </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
- > -&gt; <a href="#"
- >*</a
- > -&gt; <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="#"
- >(:&gt;)</a
- > :: a -&gt; <a href="#"
- >Vec</a
- > n a -&gt; <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
- > -&gt; <a href="#"
- >*</a
- > -&gt; <a href="#"
- >*</a
- > <span class="keyword"
- >where</span
- ><ul class="subs"
- ><li
- ><span class="keyword"
- >pattern</span
- > <a href="#"
- >LR</a
- > :: a -&gt; <a href="#"
- >RTree</a
- > 0 a</li
+ ><span class="keyword"
+ >data</span
+ > <a href="#"
+ >Vec</a
+ > :: <a href="#"
+ >Nat</a
+ > -&gt; <a href="#"
+ >*</a
+ > -&gt; <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 -&gt; <a href="#"
- >RTree</a
- > d a -&gt; <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="#"
+ >(:&gt;)</a
+ > :: a -&gt; <a href="#"
+ >Vec</a
+ > n a -&gt; <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
+ > -&gt; <a href="#"
+ >*</a
+ > -&gt; <a href="#"
+ >*</a
+ > <span class="keyword"
+ >where</span
+ ><ul class="subs"
+ ><li
+ ><span class="keyword"
+ >pattern</span
+ > <a href="#"
+ >LR</a
+ > :: a -&gt; <a href="#"
+ >RTree</a
+ > 0 a</li
+ ><li
+ ><span class="keyword"
+ >pattern</span
+ > <a href="#"
+ >BR</a
+ > :: <a href="#"
+ >RTree</a
+ > d a -&gt; <a href="#"
+ >RTree</a
+ > d a -&gt; <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
- > -&gt; <a href="#"
- >*</a
- > -&gt; <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="#"
- >(:&gt;)</a
- > :: a -&gt; <a href="#"
- >Vec</a
- > n a -&gt; <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
- > -&gt; <a href="#"
- >*</a
- > -&gt; <a href="#"
- >*</a
- > <span class="keyword"
- >where</span
- ><ul class="subs"
- ><li
- ><span class="keyword"
- >pattern</span
- > <a href="#"
- >LR</a
- > :: a -&gt; <a href="#"
- >RTree</a
- > 0 a</li
+ ><span class="keyword"
+ >data</span
+ > <a href="#"
+ >Vec</a
+ > :: <a href="#"
+ >Nat</a
+ > -&gt; <a href="#"
+ >*</a
+ > -&gt; <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 -&gt; <a href="#"
- >RTree</a
- > d a -&gt; <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="#"
+ >(:&gt;)</a
+ > :: a -&gt; <a href="#"
+ >Vec</a
+ > n a -&gt; <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
+ > -&gt; <a href="#"
+ >*</a
+ > -&gt; <a href="#"
+ >*</a
+ > <span class="keyword"
+ >where</span
+ ><ul class="subs"
+ ><li
+ ><span class="keyword"
+ >pattern</span
+ > <a href="#"
+ >LR</a
+ > :: a -&gt; <a href="#"
+ >RTree</a
+ > 0 a</li
+ ><li
+ ><span class="keyword"
+ >pattern</span
+ > <a href="#"
+ >BR</a
+ > :: <a href="#"
+ >RTree</a
+ > d a -&gt; <a href="#"
+ >RTree</a
+ > d a -&gt; <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
- > -&gt; <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
- > -&gt; <a href="#"
- >*</a
- ></li
- ></ul
+ ><span class="keyword"
+ >data family</span
+ > <a href="#"
+ >SomeTypeFamily</a
+ > k :: <a href="#"
+ >*</a
+ > -&gt; <a href="#"
+ >*</a
+ ></li
+ ><li class="src short"
+ ><span class="keyword"
+ >data family</span
+ > <a href="#"
+ >SomeOtherTypeFamily</a
+ > k :: <a href="#"
+ >*</a
+ > -&gt; <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
- > -&gt; <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
+ > -&gt; <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 =&gt; [a] -&gt; <a href="#"
- >H1</a
- > a a</li
- ><li
- ><a href="#"
- >C3</a
- > :: {..} -&gt; <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
- > :: {..} -&gt; <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 =&gt; [a] -&gt; <a href="#"
+ >H1</a
+ > a a</li
+ ><li
+ ><a href="#"
+ >C3</a
+ > :: {..} -&gt; <a href="#"
+ >H1</a
+ > <a href="#"
+ >Int</a
+ > <a href="#"
+ >Int</a
+ ></li
+ ><li
+ ><a href="#"
+ >C4</a
+ > :: {..} -&gt; <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) =&gt; <a href="#"
- >Int</a
- > -&gt; <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) =&gt; key -&gt; val -&gt; <a href="#"
- >IO</a
- > ()</li
- ><li class="src short"
- ><a href="#"
- >lookup</a
- > :: <a href="#"
- >Hash</a
- > key =&gt; key -&gt; <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) =&gt; <a href="#"
+ >Int</a
+ > -&gt; <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) =&gt; key -&gt; val -&gt; <a href="#"
+ >IO</a
+ > ()</li
+ ><li class="src short"
+ ><a href="#"
+ >lookup</a
+ > :: <a href="#"
+ >Hash</a
+ > key =&gt; key -&gt; <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 -&gt; a -&gt; a</li
- ><li class="src short"
- ><a href="#"
- >(*/)</a
- > :: a -&gt; a -&gt; a</li
- ><li class="src short"
- ><a href="#"
- >foo</a
- > :: a -&gt; a -&gt; 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 -&gt; a -&gt; a</li
+ ><li class="src short"
+ ><a href="#"
+ >(*/)</a
+ > :: a -&gt; a -&gt; a</li
+ ><li class="src short"
+ ><a href="#"
+ >foo</a
+ > :: a -&gt; a -&gt; 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 -&gt; a -&gt; [a]</li
- ><li class="src short"
- ><span class="keyword"
- >data</span
- > a <a href="#"
- >&lt;-&gt;</a
- > b <span class="keyword"
- >where</span
- ><ul class="subs"
- ><li
- ><a href="#"
- >(:&lt;-&gt;)</a
- > :: a -&gt; b -&gt; a <a href="#"
- >&lt;-&gt;</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="#"
- >&gt;&lt;&gt;</a
- > b | a -&gt; b <span class="keyword"
- >where</span
- ><ul class="subs"
- ><li
- ><span class="keyword"
- >type</span
- > a <a href="#"
- >&lt;&gt;&lt;</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 -&gt; a -&gt; [a]</li
+ ><li class="src short"
+ ><span class="keyword"
+ >data</span
+ > a <a href="#"
+ >&lt;-&gt;</a
+ > b <span class="keyword"
+ >where</span
+ ><ul class="subs"
><li
- ><span class="keyword"
- >data</span
- > a <a href="#"
- >&gt;&lt;&lt;</a
- > b</li
- ></ul
- ></li
- ><li class="src short"
- ><span class="keyword"
- >type</span
- > <a href="#"
- >(&gt;-&lt;)</a
- > a b = a <a href="#"
- >&lt;-&gt;</a
- > b</li
- ></ul
+ ><a href="#"
+ >(:&lt;-&gt;)</a
+ > :: a -&gt; b -&gt; a <a href="#"
+ >&lt;-&gt;</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="#"
+ >&gt;&lt;&gt;</a
+ > b | a -&gt; b <span class="keyword"
+ >where</span
+ ><ul class="subs"
+ ><li
+ ><span class="keyword"
+ >type</span
+ > a <a href="#"
+ >&lt;&gt;&lt;</a
+ > b :: <a href="#"
+ >*</a
+ ></li
+ ><li
+ ><span class="keyword"
+ >data</span
+ > a <a href="#"
+ >&gt;&lt;&lt;</a
+ > b</li
+ ></ul
+ ></li
+ ><li class="src short"
+ ><span class="keyword"
+ >type</span
+ > <a href="#"
+ >(&gt;-&lt;)</a
+ > a b = a <a href="#"
+ >&lt;-&gt;</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 -&gt; <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 -&gt; <a href="#"
- >FooType</a
- > (<a href="#"
- >FooType</a
- > x)</li
- ><li class="src short"
- ><span class="keyword"
- >pattern</span
- > <a href="#"
- >(:&lt;-&gt;)</a
- > :: <span class="keyword"
- >forall</span
- > x x1. x -&gt; x1 -&gt; (<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 =&gt; <a href="#"
- >BlubCtor</a
- > x</li
- ><li class="src short"
- ><span class="keyword"
- >pattern</span
- > <a href="#"
- >Blub</a
- > :: () =&gt; <span class="keyword"
- >forall</span
- > x. <a href="#"
- >Show</a
- > x =&gt; x -&gt; <a href="#"
- >BlubType</a
- ></li
- ><li class="src short"
- ><span class="keyword"
- >data</span
- > (a :: <a href="#"
- >*</a
- >) <a href="#"
- >&gt;&lt;</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="#"
- >(&gt;&lt;)</a
- > k a b</li
- ><li class="src short"
- ><span class="keyword"
- >pattern</span
- > <a href="#"
- >PatWithExplicitSig</a
- > :: <a href="#"
- >Eq</a
- > somex =&gt; somex -&gt; <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 -&gt; <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 -&gt; <a href="#"
+ >FooType</a
+ > (<a href="#"
+ >FooType</a
+ > x)</li
+ ><li class="src short"
+ ><span class="keyword"
+ >pattern</span
+ > <a href="#"
+ >(:&lt;-&gt;)</a
+ > :: <span class="keyword"
+ >forall</span
+ > x x1. x -&gt; x1 -&gt; (<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 =&gt; <a href="#"
+ >BlubCtor</a
+ > x</li
+ ><li class="src short"
+ ><span class="keyword"
+ >pattern</span
+ > <a href="#"
+ >Blub</a
+ > :: () =&gt; <span class="keyword"
+ >forall</span
+ > x. <a href="#"
+ >Show</a
+ > x =&gt; x -&gt; <a href="#"
+ >BlubType</a
+ ></li
+ ><li class="src short"
+ ><span class="keyword"
+ >data</span
+ > (a :: <a href="#"
+ >*</a
+ >) <a href="#"
+ >&gt;&lt;</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="#"
+ >(&gt;&lt;)</a
+ > k a b</li
+ ><li class="src short"
+ ><span class="keyword"
+ >pattern</span
+ > <a href="#"
+ >PatWithExplicitSig</a
+ > :: <a href="#"
+ >Eq</a
+ > somex =&gt; somex -&gt; <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
- > -&gt; <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
+ > -&gt; <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 -&gt; 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 -&gt; <a href="#"
- >T2</a
- > <a href="#"
- >Int</a
- > <a href="#"
- >Int</a
- > -&gt; <a href="#"
- >T3</a
- > <a href="#"
- >Bool</a
- > <a href="#"
- >Bool</a
- > -&gt; <a href="#"
- >T4</a
- > <a href="#"
- >Float</a
- > <a href="#"
- >Float</a
- > -&gt; <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 =&gt; <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 =&gt; <a href="#"
- >IO</a
- > a</li
- ><li class="src short"
- ><a href="#"
- >f</a
- > :: <a href="#"
- >C</a
- > a =&gt; a -&gt; <a href="#"
- >Int</a
- ></li
- ><li class="src short"
- ><a href="#"
- >g</a
- > :: <a href="#"
- >Int</a
- > -&gt; <a href="#"
- >IO</a
- > CInt</li
- ><li class="src short"
- ><a href="#"
- >hidden</a
- > :: <a href="#"
- >Int</a
- > -&gt; <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 =&gt; <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 =&gt; <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 -&gt; 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 -&gt; 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 -&gt; <a href="#"
+ >T2</a
+ > <a href="#"
+ >Int</a
+ > <a href="#"
+ >Int</a
+ > -&gt; <a href="#"
+ >T3</a
+ > <a href="#"
+ >Bool</a
+ > <a href="#"
+ >Bool</a
+ > -&gt; <a href="#"
+ >T4</a
+ > <a href="#"
+ >Float</a
+ > <a href="#"
+ >Float</a
+ > -&gt; <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 =&gt; <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
- > () () -&gt; <a href="#"
- >T2</a
- > <a href="#"
- >Int</a
- > <a href="#"
- >Int</a
- > -&gt; (<a href="#"
- >T3</a
- > <a href="#"
- >Bool</a
- > <a href="#"
- >Bool</a
- > -&gt; <a href="#"
- >T4</a
- > <a href="#"
- >Float</a
- > <a href="#"
- >Float</a
- >) -&gt; <a href="#"
- >T5</a
- > () () -&gt; <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
- >) -&gt; <a href="#"
- >Int</a
- ></li
- ><li class="src short"
- ><a href="#"
- >m</a
- > :: <a href="#"
- >R</a
- > -&gt; <a href="#"
- >N1</a
- > () -&gt; <a href="#"
- >IO</a
- > <a href="#"
- >Int</a
- ></li
- ><li class="src short"
- ><a href="#"
- >o</a
- > :: <a href="#"
- >Float</a
- > -&gt; <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 =&gt; <a href="#"
+ >IO</a
+ > a</li
+ ><li class="src short"
+ ><a href="#"
+ >f</a
+ > :: <a href="#"
+ >C</a
+ > a =&gt; a -&gt; <a href="#"
+ >Int</a
+ ></li
+ ><li class="src short"
+ ><a href="#"
+ >g</a
+ > :: <a href="#"
+ >Int</a
+ > -&gt; <a href="#"
+ >IO</a
+ > CInt</li
+ ><li class="src short"
+ ><a href="#"
+ >hidden</a
+ > :: <a href="#"
+ >Int</a
+ > -&gt; <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 =&gt; <a href="#"
+ >Ex1</a
+ > b</li
+ ><li
+ >| <a href="#"
+ >Ex2</a
+ > b</li
+ ><li
+ >| <a href="#"
+ >C</a
+ > a =&gt; <a href="#"
+ >Ex3</a
+ > b</li
+ ><li
+ >| <a href="#"
+ >Ex4</a
+ > (<span class="keyword"
+ >forall</span
+ > a. a -&gt; a)</li
+ ></ul
+ ></li
+ ><li class="src short"
+ ><a href="#"
+ >k</a
+ > :: <a href="#"
+ >T</a
+ > () () -&gt; <a href="#"
+ >T2</a
+ > <a href="#"
+ >Int</a
+ > <a href="#"
+ >Int</a
+ > -&gt; (<a href="#"
+ >T3</a
+ > <a href="#"
+ >Bool</a
+ > <a href="#"
+ >Bool</a
+ > -&gt; <a href="#"
+ >T4</a
+ > <a href="#"
+ >Float</a
+ > <a href="#"
+ >Float</a
+ >) -&gt; <a href="#"
+ >T5</a
+ > () () -&gt; <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
+ >) -&gt; <a href="#"
+ >Int</a
+ ></li
+ ><li class="src short"
+ ><a href="#"
+ >m</a
+ > :: <a href="#"
+ >R</a
+ > -&gt; <a href="#"
+ >N1</a
+ > () -&gt; <a href="#"
+ >IO</a
+ > <a href="#"
+ >Int</a
+ ></li
+ ><li class="src short"
+ ><a href="#"
+ >o</a
+ > :: <a href="#"
+ >Float</a
+ > -&gt; <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="#"
- >&lt;&gt;</a
- > (b :: k) :: k</li
- ><li class="src short"
- ><span class="keyword"
- >class</span
- > (a :: k) <a href="#"
- >&gt;&lt;</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="#"
+ >&lt;&gt;</a
+ > (b :: k) :: k</li
+ ><li class="src short"
+ ><span class="keyword"
+ >class</span
+ > (a :: k) <a href="#"
+ >&gt;&lt;</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="#"
>(&gt;&lt;)</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="#"
>(&gt;&lt;)</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