UNPKG

react-doc-helper

Version:

A React component library for building interactive documentation layouts with code examples, tables, tags, and automatic table of contents support.

3 lines (2 loc) 7.14 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("react"),a=(e=t)&&"object"==typeof e&&"default"in e?e.default:e,l=require("react-scroll"),r=require("react-code-blocks"),c=require("react-copy-to-clipboard");function n(){return(n=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var l in a)({}).hasOwnProperty.call(a,l)&&(e[l]=a[l])}return e}).apply(null,arguments)}var o={offsetTop:"1rem",codeBlockTheme:"github"},s=t.createContext(void 0),i=function(){var e=t.useContext(s);if(!e)throw new Error("useDHContext must be used within a DHProvider");return e},d=function(e,t){return void 0===t&&(t={}),function(a){a&&"function"==typeof a.preventDefault&&a.preventDefault(),l.scroller.scrollTo(e,n({duration:400,delay:0,smooth:"easeInOutQuart"},t))}},m=function(e){var l=e.title,r=e.content,c=e.children,n=i().settings,o=t.useState([]),s=o[0],m=o[1];return t.useEffect((function(){var e,t;m((e=[],(t=function(l,r){void 0===r&&(r=0),a.Children.forEach(a.Children.toArray(l),(function(l){var c,n=(null==(c=l.type)?void 0:c.displayName)||"";if(a.isValidElement(l)&&"DHBlock"===n){var o=l;e.push({id:o.props.id,title:o.props.title,level:r}),o.props.children&&t(o.props.children,r+1)}}))})(c),e))}),[c]),a.createElement("div",null,a.createElement("div",{className:"doc-helper doc-helper__container"},a.createElement("nav",{className:"doc-helper__toc"},a.createElement("ul",{className:"",style:{top:(null==n?void 0:n.offsetTop)||"0px"}},s.map((function(e){return a.createElement("li",{style:{paddingLeft:15*e.level+12},key:e.id},a.createElement("a",{onClick:function(t){return function(e,t){e.preventDefault(),d("doc-helper__"+t,{offset:-130})(e)}(t,e.id)},className:"doc-helper__toc-item "+(e.level>0?"doc-helper__toc-nested":"")},e.level>0&&a.createElement("span",null,"-"),a.createElement("span",null,e.title)))})))),a.createElement("div",{className:"doc-helper__body"},a.createElement("div",{className:""},a.createElement("h1",{className:""},l),r&&a.createElement("div",null,r)),c)))};m.displayName="DHContainer";var u=function(e){var t=e.lang,l=void 0===t?"javascript":t,c=e.code,n=e.showLineNumbers,o=void 0!==n&&n,s=e.className,d=e.filename,m="dracula"===i().settings.codeBlockTheme?r.dracula:r.github;return a.createElement("div",{className:"doc-helper__code "+(s||"")},d&&a.createElement("div",{className:"doc-helper__code-filename"},d),a.createElement("div",{className:"doc-helper__code-block"},a.createElement(r.CopyBlock,{language:l,text:c,codeBlock:!0,theme:m,showLineNumbers:o})))};u.displayName="DHCode";var p=function(e){var t=e.id;return a.createElement("a",{className:"doc-helper__anchor "+e.className,href:"#",onClick:function(e){return function(e,t){e.preventDefault(),d("doc-helper__"+t,{offset:-130})()}(e,t)}},e.children)};p.displayName="DHScrollTo";var h=function(e){var t=e.id,r=e.titleType,c=e.content,n=e.children;return a.createElement(l.Element,{name:"doc-helper__"+t},a.createElement("div",{className:"doc-helper__block"},a.createElement(void 0===r?"h2":r,{className:"doc-helper__title",id:"doc-helper__"+t},a.createElement(p,{id:t},e.title)),c&&a.createElement("div",{className:"doc-helper__content"},c),n&&a.createElement("div",{className:"doc-helper__children"},n)))};h.displayName="DHBlock";var v=function(e){return a.createElement("svg",{className:e.className,viewBox:"0 0 384 512",width:"1em",height:"1em",fill:"currentColor"},a.createElement("path",{d:"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm121.2 231.8l-143 141.8c-4.7 4.7-12.3 4.6-17-.1l-82.6-83.3c-4.7-4.7-4.6-12.3.1-17L99.1 285c4.7-4.7 12.3-4.6 17 .1l46 46.4 106-105.2c4.7-4.7 12.3-4.6 17 .1l28.2 28.4c4.7 4.8 4.6 12.3-.1 17z"}))},f=function(e){return a.createElement("svg",{className:e.className,viewBox:"0 0 384 512",width:"1em",height:"1em",fill:"currentColor"},a.createElement("path",{d:"M280 240H168c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zm0 96H168c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zM112 232c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 48c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16zm144 408c0 4.4-3.6 8-8 8H56c-4.4 0-8-3.6-8-8V120c0-4.4 3.6-8 8-8h40v32c0 8.8 7.2 16 16 16h160c8.8 0 16-7.2 16-16v-32h40c4.4 0 8 3.6 8 8v336z"}))},_=function(e){var l=e.tags,r=e.showCopyIcon,n=void 0===r||r,o=e.className,s=void 0===o?"":o,i=e.size,d=void 0===i?"default":i,m=t.useState(null),u=m[0],p=m[1];return a.createElement("div",{className:"doc-helper__tags "+s},l.map((function(e,t){return a.createElement(c.CopyToClipboard,{text:e,onCopy:function(){return p(e),void setTimeout((function(){return p(null)}),3e3)},key:t},a.createElement("span",{className:"doc-helper__tag "+("default"===d?"":"doc-helper__tag--sm")},a.createElement("span",null,e),n&&a.createElement("button",{className:"doc-helper__tag-copy "+(u===e?"doc-helper__tag-copy--active":""),type:"button"},a.createElement(u===e?v:f,null))))})))};_.displayName="DHTags";var E=function(e){var t=e.data,l=e.header;return a.createElement("div",{className:"doc-helper__table"},a.createElement("table",{className:"doc-helper__table-element"},a.createElement("thead",{className:"doc-helper__table-head"},a.createElement("tr",null,(void 0===l?["Property","Description","Type","Default"]:l).map((function(e,t){return a.createElement("th",{key:t,className:"doc-helper__table-header"},e)})))),a.createElement("tbody",{className:"doc-helper__table-body"},t.map((function(e,t){return a.createElement("tr",{key:t},e.map((function(e,t){return a.createElement("td",{key:t,className:"doc-helper__table-cell"},Array.isArray(e)&&!e.some(a.isValidElement)?a.createElement(_,{size:"sm",tags:e,className:"!mb-0"}):e)})))})))))};E.displayName="DHTable";var N=function(e){var l,r=e.tabs,c=t.useState(e.initialTab),n=c[0],o=c[1],s=null==(l=r.find((function(e){return e.key===n})))?void 0:l.content;return a.createElement("div",{className:"doc-helper__tabs"},a.createElement("div",{className:"doc-helper__tabs-header"},r.map((function(e){return a.createElement("button",{className:"doc-helper__tabs-button "+(e.key===n?"active":""),onClick:function(){return o(e.key)}},e.label)}))),a.createElement("div",{className:"doc-helper__tabs-content"},s))};N.displayName="DHTabs",exports.DHBlock=h,exports.DHCode=u,exports.DHContainer=m,exports.DHProvider=function(e){var l=e.children,r=e.settings,c=t.useState(n({},o,r)),i=c[0],d=c[1];return t.useEffect((function(){r&&"object"==typeof r&&d((function(e){return n({},e,r)}))}),[r]),a.createElement(s.Provider,{value:{settings:i,setSettings:d}},l)},exports.DHScrollTo=p,exports.DHTable=E,exports.DHTabs=N,exports.DHTags=_; //# sourceMappingURL=react-doc-helper.cjs.production.min.js.map