@jetbrains/kotlin-web-site-ui 2.9.0 → 2.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/header.js +1 -1
- package/dist/header.js.map +1 -1
- package/package.json +1 -1
package/dist/header.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/*! For license information please see header.js.LICENSE.txt */
|
|
2
|
-
!function(){var e={4184:function(e,t){var n;!function(){"use strict";var r={}.hasOwnProperty;function o(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(n){var i=typeof n;if("string"===i||"number"===i)e.push(n);else if(Array.isArray(n)){if(n.length){var l=o.apply(null,n);l&&e.push(l)}}else if("object"===i)if(n.toString===Object.prototype.toString)for(var s in n)r.call(n,s)&&n[s]&&e.push(s);else e.push(n.toString())}}return e.join(" ")}e.exports?(o.default=o,e.exports=o):void 0===(n=function(){return o}.apply(t,[]))||(e.exports=n)}()},5251:function(e,t,n){"use strict";var r=n(3910),o=60103;if(t.Fragment=60107,"function"==typeof Symbol&&Symbol.for){var i=Symbol.for;o=i("react.element"),t.Fragment=i("react.fragment")}var l=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s=Object.prototype.hasOwnProperty,a={key:!0,ref:!0,__self:!0,__source:!0};function u(e,t,n){var r,i={},u=null,c=null;for(r in void 0!==n&&(u=""+n),void 0!==t.key&&(u=""+t.key),void 0!==t.ref&&(c=t.ref),t)s.call(t,r)&&!a.hasOwnProperty(r)&&(i[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===i[r]&&(i[r]=t[r]);return{$$typeof:o,type:e,key:u,ref:c,props:i,_owner:l.current}}t.jsx=u,t.jsxs=u},5893:function(e,t,n){"use strict";e.exports=n(5251)},3910:function(e){"use strict";e.exports=require("react")}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var i=t[r]={exports:{}};return e[r](i,i.exports,n),i.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};!function(){"use strict";n.r(r),n.d(r,{ANDROID_TITLE:function(){return Ee},ANDROID_URL:function(){return _e},COMMUNITY_TITLE:function(){return xe},COMMUNITY_URL:function(){return Te},DATA_SCIENCE_TITLE:function(){return ge},DATA_SCIENCE_URL:function(){return be},DOCS_TITLE:function(){return we},DOCS_URL:function(){return ye},KMM_DOCS_TITLE:function(){return Pe},KMM_DOCS_URL:function(){return De},KOTLIN_DOCS_TITLE:function(){return Be},KOTLIN_DOCS_URL:function(){return Ie},MULTIPLATFORM_MOBILE_TITLE:function(){return de},MULTIPLATFORM_MOBILE_URL:function(){return fe},PLAY_EXAMPLES_TITLE:function(){return Ce},PLAY_EXAMPLES_URL:function(){return je},PLAY_HANDSON_TITLE:function(){return Ne},PLAY_HANDSON_URL:function(){return ze},PLAY_KOANS_TITLE:function(){return Me},PLAY_KOANS_URL:function(){return Ae},PLAY_TITLE:function(){return Oe},PLAY_TITLE_FULL:function(){return Le},PLAY_URL:function(){return Re},SERVER_SIDE_TITLE:function(){return he},SERVER_SIDE_URL:function(){return ve},SOLUTIONS_TITLE:function(){return ce},TEACH_TITLE:function(){return ke},TEACH_URL:function(){return Se},WEB_FRONTEND_TITLE:function(){return pe},WEB_FRONTEND_URL:function(){return me},default:function(){return kt},getNavScheme:function(){return He}});var e,t=n(3910),o=n.n(t),i=require("@rescui/ui-contexts"),l=[],s="ResizeObserver loop completed with undelivered notifications.";!function(e){e.BORDER_BOX="border-box",e.CONTENT_BOX="content-box",e.DEVICE_PIXEL_CONTENT_BOX="device-pixel-content-box"}(e||(e={}));var a,u=function(e){return Object.freeze(e)},c=function(e,t){this.inlineSize=e,this.blockSize=t,u(this)},d=function(){function e(e,t,n,r){return this.x=e,this.y=t,this.width=n,this.height=r,this.top=this.y,this.left=this.x,this.bottom=this.top+this.height,this.right=this.left+this.width,u(this)}return e.prototype.toJSON=function(){var e=this;return{x:e.x,y:e.y,top:e.top,right:e.right,bottom:e.bottom,left:e.left,width:e.width,height:e.height}},e.fromRect=function(t){return new e(t.x,t.y,t.width,t.height)},e}(),f=function(e){return e instanceof SVGElement&&"getBBox"in e},h=function(e){if(f(e)){var t=e.getBBox(),n=t.width,r=t.height;return!n&&!r}var o=e,i=o.offsetWidth,l=o.offsetHeight;return!(i||l||e.getClientRects().length)},v=function(e){var t,n;if(e instanceof Element)return!0;var r=null===(n=null===(t=e)||void 0===t?void 0:t.ownerDocument)||void 0===n?void 0:n.defaultView;return!!(r&&e instanceof r.Element)},p="undefined"!=typeof window?window:{},m=new WeakMap,g=/auto|scroll/,b=/^tb|vertical/,E=/msie|trident/i.test(p.navigator&&p.navigator.userAgent),_=function(e){return parseFloat(e||"0")},w=function(e,t,n){return void 0===e&&(e=0),void 0===t&&(t=0),void 0===n&&(n=!1),new c((n?t:e)||0,(n?e:t)||0)},y=u({devicePixelContentBoxSize:w(),borderBoxSize:w(),contentBoxSize:w(),contentRect:new d(0,0,0,0)}),x=function(e,t){if(void 0===t&&(t=!1),m.has(e)&&!t)return m.get(e);if(h(e))return m.set(e,y),y;var n=getComputedStyle(e),r=f(e)&&e.ownerSVGElement&&e.getBBox(),o=!E&&"border-box"===n.boxSizing,i=b.test(n.writingMode||""),l=!r&&g.test(n.overflowY||""),s=!r&&g.test(n.overflowX||""),a=r?0:_(n.paddingTop),c=r?0:_(n.paddingRight),v=r?0:_(n.paddingBottom),p=r?0:_(n.paddingLeft),x=r?0:_(n.borderTopWidth),T=r?0:_(n.borderRightWidth),k=r?0:_(n.borderBottomWidth),S=p+c,O=a+v,L=(r?0:_(n.borderLeftWidth))+T,R=x+k,z=s?e.offsetHeight-R-e.clientHeight:0,N=l?e.offsetWidth-L-e.clientWidth:0,j=o?S+L:0,C=o?O+R:0,A=r?r.width:_(n.width)-j-N,M=r?r.height:_(n.height)-C-z,B=A+S+N+L,I=M+O+z+R,P=u({devicePixelContentBoxSize:w(Math.round(A*devicePixelRatio),Math.round(M*devicePixelRatio),i),borderBoxSize:w(B,I,i),contentBoxSize:w(A,M,i),contentRect:new d(p,a,A,M)});return m.set(e,P),P},T=function(t,n,r){var o=x(t,r),i=o.borderBoxSize,l=o.contentBoxSize,s=o.devicePixelContentBoxSize;switch(n){case e.DEVICE_PIXEL_CONTENT_BOX:return s;case e.BORDER_BOX:return i;default:return l}},k=function(e){var t=x(e);this.target=e,this.contentRect=t.contentRect,this.borderBoxSize=u([t.borderBoxSize]),this.contentBoxSize=u([t.contentBoxSize]),this.devicePixelContentBoxSize=u([t.devicePixelContentBoxSize])},S=function(e){if(h(e))return 1/0;for(var t=0,n=e.parentNode;n;)t+=1,n=n.parentNode;return t},O=function(){var e=1/0,t=[];l.forEach((function(n){if(0!==n.activeTargets.length){var r=[];n.activeTargets.forEach((function(t){var n=new k(t.target),o=S(t.target);r.push(n),t.lastReportedSize=T(t.target,t.observedBox),o<e&&(e=o)})),t.push((function(){n.callback.call(n.observer,r,n.observer)})),n.activeTargets.splice(0,n.activeTargets.length)}}));for(var n=0,r=t;n<r.length;n++){(0,r[n])()}return e},L=function(e){l.forEach((function(t){t.activeTargets.splice(0,t.activeTargets.length),t.skippedTargets.splice(0,t.skippedTargets.length),t.observationTargets.forEach((function(n){n.isActive()&&(S(n.target)>e?t.activeTargets.push(n):t.skippedTargets.push(n))}))}))},R=function(){var e,t=0;for(L(t);l.some((function(e){return e.activeTargets.length>0}));)t=O(),L(t);return l.some((function(e){return e.skippedTargets.length>0}))&&("function"==typeof ErrorEvent?e=new ErrorEvent("error",{message:s}):((e=document.createEvent("Event")).initEvent("error",!1,!1),e.message=s),window.dispatchEvent(e)),t>0},z=[],N=function(e){if(!a){var t=0,n=document.createTextNode("");new MutationObserver((function(){return z.splice(0).forEach((function(e){return e()}))})).observe(n,{characterData:!0}),a=function(){n.textContent=""+(t?t--:t++)}}z.push(e),a()},j=0,C={attributes:!0,characterData:!0,childList:!0,subtree:!0},A=["resize","load","transitionend","animationend","animationstart","animationiteration","keyup","keydown","mouseup","mousedown","mouseover","mouseout","blur","focus"],M=function(e){return void 0===e&&(e=0),Date.now()+e},B=!1,I=new(function(){function e(){var e=this;this.stopped=!0,this.listener=function(){return e.schedule()}}return e.prototype.run=function(e){var t=this;if(void 0===e&&(e=250),!B){B=!0;var n,r=M(e);n=function(){var n=!1;try{n=R()}finally{if(B=!1,e=r-M(),!j)return;n?t.run(1e3):e>0?t.run(e):t.start()}},N((function(){requestAnimationFrame(n)}))}},e.prototype.schedule=function(){this.stop(),this.run()},e.prototype.observe=function(){var e=this,t=function(){return e.observer&&e.observer.observe(document.body,C)};document.body?t():p.addEventListener("DOMContentLoaded",t)},e.prototype.start=function(){var e=this;this.stopped&&(this.stopped=!1,this.observer=new MutationObserver(this.listener),this.observe(),A.forEach((function(t){return p.addEventListener(t,e.listener,!0)})))},e.prototype.stop=function(){var e=this;this.stopped||(this.observer&&this.observer.disconnect(),A.forEach((function(t){return p.removeEventListener(t,e.listener,!0)})),this.stopped=!0)},e}()),P=function(e){!j&&e>0&&I.start(),!(j+=e)&&I.stop()},D=function(){function t(t,n){this.target=t,this.observedBox=n||e.CONTENT_BOX,this.lastReportedSize={inlineSize:0,blockSize:0}}return t.prototype.isActive=function(){var e,t=T(this.target,this.observedBox,!0);return e=this.target,f(e)||function(e){switch(e.tagName){case"INPUT":if("image"!==e.type)break;case"VIDEO":case"AUDIO":case"EMBED":case"OBJECT":case"CANVAS":case"IFRAME":case"IMG":return!0}return!1}(e)||"inline"!==getComputedStyle(e).display||(this.lastReportedSize=t),this.lastReportedSize.inlineSize!==t.inlineSize||this.lastReportedSize.blockSize!==t.blockSize},t}(),U=function(e,t){this.activeTargets=[],this.skippedTargets=[],this.observationTargets=[],this.observer=e,this.callback=t},H=new WeakMap,F=function(e,t){for(var n=0;n<e.length;n+=1)if(e[n].target===t)return n;return-1},W=function(){function e(){}return e.connect=function(e,t){var n=new U(e,t);H.set(e,n)},e.observe=function(e,t,n){var r=H.get(e),o=0===r.observationTargets.length;F(r.observationTargets,t)<0&&(o&&l.push(r),r.observationTargets.push(new D(t,n&&n.box)),P(1),I.schedule())},e.unobserve=function(e,t){var n=H.get(e),r=F(n.observationTargets,t),o=1===n.observationTargets.length;r>=0&&(o&&l.splice(l.indexOf(n),1),n.observationTargets.splice(r,1),P(-1))},e.disconnect=function(e){var t=this,n=H.get(e);n.observationTargets.slice().forEach((function(n){return t.unobserve(e,n.target)})),n.activeTargets.splice(0,n.activeTargets.length)},e}(),V=function(){function e(e){if(0===arguments.length)throw new TypeError("Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.");if("function"!=typeof e)throw new TypeError("Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.");W.connect(this,e)}return e.prototype.observe=function(e,t){if(0===arguments.length)throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.");if(!v(e))throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element");W.observe(this,e,t)},e.prototype.unobserve=function(e){if(0===arguments.length)throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.");if(!v(e))throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element");W.unobserve(this,e)},e.prototype.disconnect=function(){W.disconnect(this)},e.toString=function(){return"function ResizeObserver () { [polyfill code] }"},e}();var Y=o()["undefined"!=typeof document&&void 0!==document.createElement?"useLayoutEffect":"useEffect"];var K=e=>{const n=t.useRef(e);return t.useEffect((()=>{n.current=e})),n},X=function(e){var t=[],n=null,r=function(){for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];t=o,n||(n=requestAnimationFrame((function(){n=null,e.apply(void 0,t)})))};return r.cancel=function(){n&&(cancelAnimationFrame(n),n=null)},r};const q="undefined"!=typeof window&&"ResizeObserver"in window?window.ResizeObserver:V;function G(){}let J;const Z=()=>J||(J=function(){const e=new Map,t=new q(X(((t,n)=>{for(let r=0;r<t.length;r++){const o=e.get(t[r].target);null==o||o.forEach((e=>e(t[r],n)))}})));return{observer:t,subscribe(n,r){var o;t.observe(n);const i=null!==(o=e.get(n))&&void 0!==o?o:[];i.push(r),e.set(n,i)},unsubscribe(n,r){var o;const i=null!==(o=e.get(n))&&void 0!==o?o:[];if(1===i.length)return t.unobserve(n),void e.delete(n);const l=i.indexOf(r);-1!==l&&i.splice(l,1),e.set(n,i)}}}());var $=function(e,t){const n=Z(),r=K(t);return Y((()=>{let t=!1;const o=e&&"current"in e?e.current:e;if(!o)return G;function i(e,n){t||r.current(e,n)}return n.subscribe(o,i),()=>{t=!0,n.unsubscribe(o,i)}}),[e,n,r]),n.observer};var Q,ee,te;function ne(){return ne=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ne.apply(this,arguments)}var re=function(e){return t.createElement("svg",ne({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 24"},e),Q||(Q=t.createElement("radialGradient",{id:"kotlin-logo-large_svg__a",cx:22.432,cy:3.493,r:21.679,gradientTransform:"translate(-.19 .042) scale(.9998)",gradientUnits:"userSpaceOnUse"},t.createElement("stop",{offset:.003,stopColor:"#e44857"}),t.createElement("stop",{offset:.469,stopColor:"#c711e1"}),t.createElement("stop",{offset:1,stopColor:"#7f52ff"}))),ee||(ee=t.createElement("path",{fill:"url(#kotlin-logo-large_svg__a)",d:"M22.87 21.68H3.94V2.76h18.93l-9.66 9.32z"})),te||(te=t.createElement("g",{fill:"#fff"},t.createElement("path",{d:"M45.69 2.73h-3.76l-8.18 8.73v-8.7h-3.02v18.92h3.02v-9.17l8.21 9.17h3.89l-8.75-9.79z"}),t.createElement("path",{d:"M55.93 8.44c-1.07-.62-2.28-.93-3.64-.93-1.38 0-2.61.31-3.7.93a6.63 6.63 0 00-2.55 2.57c-.61 1.1-.91 2.35-.91 3.74 0 1.4.3 2.64.91 3.74a6.45 6.45 0 002.53 2.57c1.09.62 2.32.93 3.7.93 1.36 0 2.58-.31 3.66-.93a6.53 6.53 0 002.51-2.57c.6-1.1.9-2.35.9-3.74 0-1.4-.3-2.64-.9-3.74-.6-1.1-1.43-1.95-2.51-2.57zm-.19 8.7c-.33.69-.8 1.23-1.4 1.61-.6.39-1.3.58-2.08.58-.79 0-1.49-.19-2.11-.58-.61-.39-1.09-.93-1.43-1.61-.34-.69-.51-1.48-.51-2.38 0-.9.17-1.7.51-2.39.34-.69.82-1.23 1.43-1.61.61-.39 1.32-.58 2.12-.58.77 0 1.46.19 2.07.58.6.39 1.07.93 1.4 1.61.33.69.49 1.48.49 2.39.01.9-.15 1.69-.49 2.38zm9.75-12.76h-2.92v2.35c0 .37-.09.65-.27.83-.18.18-.46.28-.84.28h-1.43v2.49h2.49v7.45c0 .77.16 1.46.47 2.05.31.59.76 1.05 1.34 1.37.58.32 1.27.49 2.06.49h2.23V19.1h-1.68c-.43 0-.78-.15-1.06-.45-.27-.3-.4-.7-.4-1.2v-7.11h3.22v-2.5h-3.22V4.38zM71.03 2H74v19.68h-2.97zm6.32.03h3v3.05h-3zm0 5.81h2.97v13.84h-2.97zm18.08 2.28a4.694 4.694 0 00-1.77-1.92c-.76-.46-1.65-.69-2.67-.69-1.08 0-2.03.26-2.84.79-.65.42-1.17.98-1.58 1.68l-.02-2.14H83.7v13.84h2.97v-7.74c0-.75.14-1.41.43-1.99.28-.58.68-1.03 1.2-1.35.52-.32 1.12-.48 1.82-.48.62 0 1.16.13 1.6.39.45.26.78.64 1.01 1.12.23.49.34 1.07.34 1.74v8.31h2.97v-8.73c.02-1.07-.2-2.01-.61-2.83z"}))))},oe=n(4184),ie=n.n(oe),le=require("@rescui/typography");const se="https://kotlinlang.org";var ae=n(5893);const ue=e=>{let{productWebUrl:t,className:n}=e;const r=t?function(e){const t=/v?\d+\.\d+\.\d+$/.exec(e);return t?t[0]:null}(t):null,o=(0,le.useTextStyles)();return(0,ae.jsxs)("div",{className:ie()("ktl-logo-large-module_container_+5pgf",n,o("rs-text-3",{hardness:"average"})),children:[(0,ae.jsx)("a",{className:"ktl-logo-large-module_link_iZIEJ",href:se,"aria-label":"Kotlin Home Page",children:(0,ae.jsx)(re,{})}),r&&(0,ae.jsx)("a",{className:ie()("ktl-logo-large-module_version-tag_fiNIk"),href:t,target:"_blank",children:r})]})};const ce="Solutions",de="Multiplatform Mobile",fe="/lp/mobile/",he="Server-side",ve="/lp/server-side/",pe="Web frontend",me="/docs/js-overview.html",ge="Data science",be="/docs/data-science-overview.html",Ee="Android",_e="/docs/android-overview.html",we="Docs",ye="/docs/home.html",xe="Community",Te="/community/",ke="Teach",Se="/education/",Oe="Play",Le="Playground",Re="https://play.kotlinlang.org/",ze="".concat(Re,"hands-on"),Ne="Hands-on",je="".concat(Re,"byExample"),Ce="Examples",Ae="".concat(Re,"koans"),Me="Koans",Be="Kotlin",Ie="/docs/home.html",Pe="KMM",De="/docs/mobile/home.html",Ue=[{title:ce,url:null,items:[{title:de,url:fe},{title:he,url:ve},{title:pe,url:me},{title:ge,url:be},{title:Ee,url:_e}]},{title:we,url:Ie},{title:xe,url:Te},{title:ke,url:Se},{title:Oe,url:null,items:[{title:Le,url:Re},{title:Ne,url:ze},{title:Ce,url:je},{title:Me,url:Ae}]}];function He(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:(e,t)=>e===t,t=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0;return Ue.map((r=>{var o;let{title:i,url:l,items:s}=r;l&&t&&(l=Fe(l,t,!!n));const a={title:i,url:l};let u=e(l,t);return a.items=null!==(o=null==s?void 0:s.map((r=>{let{title:o,url:i}=r;i&&t&&(i=Fe(i,t,!!n));let l=e(i,t);return l&&(u=l),{title:o,url:i,isActive:l}})))&&void 0!==o?o:[],a.isActive=u,a}))}function Fe(e,t,n){return n?e.startsWith(Re)?e.replace(Re,"/"):"".concat(se).concat(e):e}const We=e=>{let{items:t,isExpanded:n,alignRight:r,linkHandler:o}=e;const i=(0,le.useTextStyles)();return(0,ae.jsx)("ul",{className:ie()("ktl-horizontal-menu-module_dropdown-menu_dVOw-",i("rs-text-2"),{"ktl-horizontal-menu-module_dropdown-menu-expanded_L0RWy":n,"ktl-horizontal-menu-module_dropdown-menu-align-right_HS-oO":r}),children:t.map(((e,t)=>{const n=!e.isActive&&e.url?"a":"span";return(0,ae.jsx)("li",{children:(0,ae.jsx)(n,{className:ie()("ktl-horizontal-menu-module_dropdown-menu-item_wRlcN",{"ktl-horizontal-menu-module_active_azHwP":e.isActive}),...e.url?{href:e.url,onClick:o?t=>e.url&&o(t,e.url):void 0}:{},children:e.title})},t)}))})},Ve=e=>{var n,r;let{item:o,onMouseEnter:i,onMouseLeave:l,isExpanded:s,isLast:a,linkHandler:u}=e;const c=o.isActive||!o.url?"span":"a",d=(0,le.useTextStyles)();return(0,ae.jsxs)("li",{className:"ktl-horizontal-menu-module_menu-item-wrap_dnVf-",onMouseEnter:()=>i(o),onMouseLeave:l,children:[(0,t.createElement)(c,{...o.url?{href:o.url,onClick:u?e=>o.url&&u(e,o.url):void 0}:{},key:o.title,className:ie()("ktl-horizontal-menu-module_menu-item_Z+YKZ",d("rs-text-2"),{"ktl-horizontal-menu-module_item-active_+iyf-":o.isActive,"ktl-horizontal-menu-module_expanded_thibK":s&&!(null===(n=o.items)||void 0===n||!n.length)})},o.title),!(null===(r=o.items)||void 0===r||!r.length)&&(0,ae.jsx)(We,{items:o.items,isExpanded:s,alignRight:a,linkHandler:u})]})},Ye=e=>{let{items:n,theme:r,linkHandler:o}=e;const[i,l]=(0,t.useState)(-1),[s,a]=(0,t.useState)(i);(0,t.useEffect)((()=>{const e=setTimeout((()=>a(i)),-1!==i?200:400);return()=>clearTimeout(e)}),[i]);const u=e=>l(n.findIndex((t=>t===e))),c=()=>l(-1);return(0,ae.jsx)("nav",{className:ie()("ktl-horizontal-menu-module_nav_xYv4i",{"ktl-horizontal-menu-module_dark-theme_Lp065":"dark"===r}),children:(0,ae.jsx)("ul",{className:"ktl-horizontal-menu-module_menu-list_7oi3W",children:n.map(((e,t)=>(0,ae.jsx)(Ve,{item:e,onMouseEnter:u,onMouseLeave:c,isExpanded:t===s,isLast:t===n.length-1,linkHandler:o},t)))})})};var Ke;function Xe(){return Xe=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Xe.apply(this,arguments)}var qe=function(e){return t.createElement("svg",Xe({width:24,height:24,xmlns:"http://www.w3.org/2000/svg"},e),Ke||(Ke=t.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M15.847 6.861A6.99 6.99 0 009.587 3a6.997 6.997 0 104.186 12.601l6.106 6.106 1.414-1.414-6.107-6.106a6.99 6.99 0 00.66-7.326zM14.587 10a5 5 0 11-10.001 0 5 5 0 0110 0z",fill:"currentColor"})))};const Ge=e=>{let{onClick:t,isActive:n}=e;return(0,ae.jsx)("button",{type:"button",className:ie()("ktl-search-button_button_JUyxv",{"ktl-search-button_active_G-dk1":n}),"aria-label":"Search",onClick:t,children:(0,ae.jsx)(qe,{})})};var Je;function Ze(){return Ze=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Ze.apply(this,arguments)}var $e,Qe=function(e){return t.createElement("svg",Ze({width:24,height:24,fill:"none",xmlns:"http://www.w3.org/2000/svg"},e),Je||(Je=t.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M4 5h16v2H4V5zm0 6h16v2H4v-2zm16 6H4v2h16v-2z",fill:"currentColor"})))};function et(){return et=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},et.apply(this,arguments)}var tt=function(e){return t.createElement("svg",et({width:16,height:16,fill:"none",xmlns:"http://www.w3.org/2000/svg"},e),$e||($e=t.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M15.707 1.707L14.293.293 8 6.586 1.707.293.293 1.707 6.586 8 .293 14.293l1.414 1.414L8 9.414l6.293 6.293 1.414-1.414L9.414 8l6.293-6.293z",fill:"currentColor"})))};const nt=e=>{let{onClick:t,isExpanded:n}=e;return(0,ae.jsx)("button",{type:"button",className:ie()("ktl-menu-button_button_InVin"),"aria-haspopup":"true","aria-label":"Open the navigation",onClick:t,children:n?(0,ae.jsx)(tt,{}):(0,ae.jsx)(Qe,{})})};function rt(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}var ot=!1;if("undefined"!=typeof window){var it={get passive(){ot=!0}};window.addEventListener("testPassive",null,it),window.removeEventListener("testPassive",null,it)}var lt="undefined"!=typeof window&&window.navigator&&window.navigator.platform&&(/iP(ad|hone|od)/.test(window.navigator.platform)||"MacIntel"===window.navigator.platform&&window.navigator.maxTouchPoints>1),st=[],at=!1,ut=-1,ct=void 0,dt=void 0,ft=function(e){return st.some((function(t){return!(!t.options.allowTouchMove||!t.options.allowTouchMove(e))}))},ht=function(e){var t=e||window.event;return!!ft(t.target)||(t.touches.length>1||(t.preventDefault&&t.preventDefault(),!1))},vt=function(){setTimeout((function(){void 0!==dt&&(document.body.style.paddingRight=dt,dt=void 0),void 0!==ct&&(document.body.style.overflow=ct,ct=void 0)}))},pt=function(e,t){if(lt){if(!e)return void console.error("disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.");if(e&&!st.some((function(t){return t.targetElement===e}))){var n={targetElement:e,options:t||{}};st=[].concat(rt(st),[n]),e.ontouchstart=function(e){1===e.targetTouches.length&&(ut=e.targetTouches[0].clientY)},e.ontouchmove=function(t){1===t.targetTouches.length&&function(e,t){var n=e.targetTouches[0].clientY-ut;!ft(e.target)&&(t&&0===t.scrollTop&&n>0||function(e){return!!e&&e.scrollHeight-e.scrollTop<=e.clientHeight}(t)&&n<0?ht(e):e.stopPropagation())}(t,e)},at||(document.addEventListener("touchmove",ht,ot?{passive:!1}:void 0),at=!0)}}else{!function(e){if(void 0===dt){var t=!!e&&!0===e.reserveScrollBarGap,n=window.innerWidth-document.documentElement.clientWidth;t&&n>0&&(dt=document.body.style.paddingRight,document.body.style.paddingRight=n+"px")}void 0===ct&&(ct=document.body.style.overflow,setTimeout((function(){document.body.style.overflow="hidden"})))}(t);var r={targetElement:e,options:t||{}};st=[].concat(rt(st),[r])}};const mt=e=>{let{item:n,level:r,linkHandler:o}=e;const i=n.url?"a":"span",l={"--level":r},s=(0,t.useCallback)((e=>o&&n.url&&o(e,n.url)),[]);return(0,ae.jsx)(i,{...n.url?{href:n.url,onClick:s}:{},className:ie()("ktl-menu-popup-module_menu-item_f6wvh",{"ktl-menu-popup-module_menu-item-root_C-hkN":0===r,"ktl-menu-popup-module_active_DrZav":n.isActive,"ktl-menu-popup-module_active-with-child_BDnrW":n.items&&n.items.length}),style:l,children:n.title})},gt=e=>{let{items:n,level:r,linkHandler:o}=e;return(0,ae.jsx)(ae.Fragment,{children:n.map(((e,n)=>(0,ae.jsxs)(t.Fragment,{children:[(0,ae.jsx)(mt,{item:e,level:r,linkHandler:o}),e.items&&e.items.length>0&&(0,ae.jsx)(gt,{items:e.items,level:r+1,linkHandler:o})]},n)))})},bt=e=>{let{items:n,isExpanded:r,setExpand:o,headerRef:i,linkHandler:l}=e;const s=(0,t.useRef)(null),a=(0,le.useTextStyles)(),[u,c]=(0,t.useState)({});(0,t.useEffect)((()=>()=>{o(!1),lt?(st.forEach((function(e){e.targetElement.ontouchstart=null,e.targetElement.ontouchmove=null})),at&&(document.removeEventListener("touchmove",ht,ot?{passive:!1}:void 0),at=!1),st=[],ut=-1):(vt(),st=[])}),[]),(0,t.useLayoutEffect)((()=>{i.current&&c({top:i.current.getBoundingClientRect().bottom})}),[r,i]);const d=(0,t.useCallback)((()=>{s.current&&(r?function(e){if(lt){if(!e)return void console.error("enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.");e.ontouchstart=null,e.ontouchmove=null,st=st.filter((function(t){return t.targetElement!==e})),at&&0===st.length&&(document.removeEventListener("touchmove",ht,ot?{passive:!1}:void 0),at=!1)}else(st=st.filter((function(t){return t.targetElement!==e}))).length||vt()}(s.current):pt(s.current)),o(!r)}),[r,s]);return(0,ae.jsxs)(ae.Fragment,{children:[(0,ae.jsx)(nt,{onClick:d,isExpanded:r}),(0,ae.jsx)("nav",{style:u,ref:s,className:ie()("ktl-menu-popup-module_menu-popup_Yqtnq",a("rs-text-2"),{"ktl-menu-popup-module_menu-popup-expanded_FlujR":r}),children:(0,ae.jsx)(gt,{items:n,level:0,linkHandler:l})})]})};var Et,_t;function wt(){return wt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},wt.apply(this,arguments)}var yt=function(e){return t.createElement("svg",wt({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},e),Et||(Et=t.createElement("radialGradient",{id:"kotlin-logo-small_svg__a",cx:22.432,cy:3.493,r:21.679,gradientTransform:"translate(-.19 .042) scale(.9998)",gradientUnits:"userSpaceOnUse"},t.createElement("stop",{offset:.003,stopColor:"#e44857"}),t.createElement("stop",{offset:.469,stopColor:"#c711e1"}),t.createElement("stop",{offset:1,stopColor:"#7f52ff"}))),_t||(_t=t.createElement("path",{fill:"url(#kotlin-logo-small_svg__a)",d:"M22.87 21.68H3.94V2.76h18.93l-9.66 9.32z"})))};const xt=e=>{let{homeTitle:t,homeUrl:n,className:r}=e;const o=(0,le.useTextStyles)();return(0,ae.jsxs)("div",{className:ie()("ktl-logo-small-module_logo-small_7ddNl",r),children:[(0,ae.jsx)("a",{href:se,className:"ktl-logo-small-module_icon-wrap_BFVBd",children:(0,ae.jsx)(yt,{className:"ktl-logo-small-module_icon_JM+yC"})}),(0,ae.jsx)("a",{href:n,className:ie()("ktl-logo-small-module_link_6gruv",o("rs-h3")),children:t})]})},Tt=(0,t.forwardRef)(((e,n)=>{let{productWebUrl:r,hasSearch:o=!1,onSearchClick:l,currentUrl:s,currentTitle:a,className:u,hasBorder:c=!0,dropdownTheme:d="dark",linkHandler:f,isPlayground:h,isUrlActive:v}=e;const[p,m]=(0,t.useState)(!1),[g,b]=(0,t.useState)(!1),E=(0,t.useMemo)((()=>He(v,s,h)),[v,s,h]),_=(0,t.useRef)(null);return(0,t.useImperativeHandle)(n,(()=>_.current)),(0,t.useLayoutEffect)((()=>{var e,t,n;b((null!==(e=null===(t=_.current)||void 0===t||null===(n=t.getBoundingClientRect)||void 0===n?void 0:n.call(t).width)&&void 0!==e?e:0)<=640)}),[_]),$(_,(e=>b(e.contentRect.width<=640))),(0,ae.jsx)(i.ThemeProvider,{theme:"dark",children:(0,ae.jsxs)("header",{ref:_,className:ie()("ktl-header-module_header-menu_E3vzo",u,{"ktl-header-module_with-menu-popup_DcoOT":p,"ktl-header-module_border_smGpe":c}),children:[a&&s&&(g&&!p?(0,ae.jsx)(xt,{homeTitle:a,homeUrl:s}):(0,ae.jsx)(ue,{productWebUrl:r})),!g&&(0,ae.jsx)(Ye,{items:E,theme:d,linkHandler:f}),(0,ae.jsx)(Ge,{onClick:l,isActive:o&&!!l}),g&&(0,ae.jsx)(bt,{items:E,setExpand:m,isExpanded:p,headerRef:_,linkHandler:f})]})})}));var kt=Tt}(),module.exports=r}();
|
|
2
|
+
!function(){var e={4184:function(e,t){var n;!function(){"use strict";var r={}.hasOwnProperty;function o(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(n){var i=typeof n;if("string"===i||"number"===i)e.push(n);else if(Array.isArray(n)){if(n.length){var l=o.apply(null,n);l&&e.push(l)}}else if("object"===i)if(n.toString===Object.prototype.toString)for(var s in n)r.call(n,s)&&n[s]&&e.push(s);else e.push(n.toString())}}return e.join(" ")}e.exports?(o.default=o,e.exports=o):void 0===(n=function(){return o}.apply(t,[]))||(e.exports=n)}()},5251:function(e,t,n){"use strict";var r=n(3910),o=60103;if(t.Fragment=60107,"function"==typeof Symbol&&Symbol.for){var i=Symbol.for;o=i("react.element"),t.Fragment=i("react.fragment")}var l=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s=Object.prototype.hasOwnProperty,a={key:!0,ref:!0,__self:!0,__source:!0};function u(e,t,n){var r,i={},u=null,c=null;for(r in void 0!==n&&(u=""+n),void 0!==t.key&&(u=""+t.key),void 0!==t.ref&&(c=t.ref),t)s.call(t,r)&&!a.hasOwnProperty(r)&&(i[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===i[r]&&(i[r]=t[r]);return{$$typeof:o,type:e,key:u,ref:c,props:i,_owner:l.current}}t.jsx=u,t.jsxs=u},5893:function(e,t,n){"use strict";e.exports=n(5251)},3910:function(e){"use strict";e.exports=require("react")}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var i=t[r]={exports:{}};return e[r](i,i.exports,n),i.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};!function(){"use strict";n.r(r),n.d(r,{ANDROID_TITLE:function(){return Ee},ANDROID_URL:function(){return _e},COMMUNITY_TITLE:function(){return xe},COMMUNITY_URL:function(){return Te},DATA_SCIENCE_TITLE:function(){return ge},DATA_SCIENCE_URL:function(){return be},DOCS_TITLE:function(){return we},DOCS_URL:function(){return ye},KMM_DOCS_TITLE:function(){return Pe},KMM_DOCS_URL:function(){return De},KOTLIN_DOCS_TITLE:function(){return Be},KOTLIN_DOCS_URL:function(){return Ie},MULTIPLATFORM_MOBILE_TITLE:function(){return de},MULTIPLATFORM_MOBILE_URL:function(){return fe},PLAY_EXAMPLES_TITLE:function(){return Ce},PLAY_EXAMPLES_URL:function(){return je},PLAY_HANDSON_TITLE:function(){return Ne},PLAY_HANDSON_URL:function(){return ze},PLAY_KOANS_TITLE:function(){return Me},PLAY_KOANS_URL:function(){return Ae},PLAY_TITLE:function(){return Oe},PLAY_TITLE_FULL:function(){return Le},PLAY_URL:function(){return Re},SERVER_SIDE_TITLE:function(){return he},SERVER_SIDE_URL:function(){return ve},SOLUTIONS_TITLE:function(){return ce},TEACH_TITLE:function(){return ke},TEACH_URL:function(){return Se},WEB_FRONTEND_TITLE:function(){return pe},WEB_FRONTEND_URL:function(){return me},default:function(){return kt},getNavScheme:function(){return He}});var e,t=n(3910),o=n.n(t),i=require("@rescui/ui-contexts"),l=[],s="ResizeObserver loop completed with undelivered notifications.";!function(e){e.BORDER_BOX="border-box",e.CONTENT_BOX="content-box",e.DEVICE_PIXEL_CONTENT_BOX="device-pixel-content-box"}(e||(e={}));var a,u=function(e){return Object.freeze(e)},c=function(e,t){this.inlineSize=e,this.blockSize=t,u(this)},d=function(){function e(e,t,n,r){return this.x=e,this.y=t,this.width=n,this.height=r,this.top=this.y,this.left=this.x,this.bottom=this.top+this.height,this.right=this.left+this.width,u(this)}return e.prototype.toJSON=function(){var e=this;return{x:e.x,y:e.y,top:e.top,right:e.right,bottom:e.bottom,left:e.left,width:e.width,height:e.height}},e.fromRect=function(t){return new e(t.x,t.y,t.width,t.height)},e}(),f=function(e){return e instanceof SVGElement&&"getBBox"in e},h=function(e){if(f(e)){var t=e.getBBox(),n=t.width,r=t.height;return!n&&!r}var o=e,i=o.offsetWidth,l=o.offsetHeight;return!(i||l||e.getClientRects().length)},v=function(e){var t,n;if(e instanceof Element)return!0;var r=null===(n=null===(t=e)||void 0===t?void 0:t.ownerDocument)||void 0===n?void 0:n.defaultView;return!!(r&&e instanceof r.Element)},p="undefined"!=typeof window?window:{},m=new WeakMap,g=/auto|scroll/,b=/^tb|vertical/,E=/msie|trident/i.test(p.navigator&&p.navigator.userAgent),_=function(e){return parseFloat(e||"0")},w=function(e,t,n){return void 0===e&&(e=0),void 0===t&&(t=0),void 0===n&&(n=!1),new c((n?t:e)||0,(n?e:t)||0)},y=u({devicePixelContentBoxSize:w(),borderBoxSize:w(),contentBoxSize:w(),contentRect:new d(0,0,0,0)}),x=function(e,t){if(void 0===t&&(t=!1),m.has(e)&&!t)return m.get(e);if(h(e))return m.set(e,y),y;var n=getComputedStyle(e),r=f(e)&&e.ownerSVGElement&&e.getBBox(),o=!E&&"border-box"===n.boxSizing,i=b.test(n.writingMode||""),l=!r&&g.test(n.overflowY||""),s=!r&&g.test(n.overflowX||""),a=r?0:_(n.paddingTop),c=r?0:_(n.paddingRight),v=r?0:_(n.paddingBottom),p=r?0:_(n.paddingLeft),x=r?0:_(n.borderTopWidth),T=r?0:_(n.borderRightWidth),k=r?0:_(n.borderBottomWidth),S=p+c,O=a+v,L=(r?0:_(n.borderLeftWidth))+T,R=x+k,z=s?e.offsetHeight-R-e.clientHeight:0,N=l?e.offsetWidth-L-e.clientWidth:0,j=o?S+L:0,C=o?O+R:0,A=r?r.width:_(n.width)-j-N,M=r?r.height:_(n.height)-C-z,B=A+S+N+L,I=M+O+z+R,P=u({devicePixelContentBoxSize:w(Math.round(A*devicePixelRatio),Math.round(M*devicePixelRatio),i),borderBoxSize:w(B,I,i),contentBoxSize:w(A,M,i),contentRect:new d(p,a,A,M)});return m.set(e,P),P},T=function(t,n,r){var o=x(t,r),i=o.borderBoxSize,l=o.contentBoxSize,s=o.devicePixelContentBoxSize;switch(n){case e.DEVICE_PIXEL_CONTENT_BOX:return s;case e.BORDER_BOX:return i;default:return l}},k=function(e){var t=x(e);this.target=e,this.contentRect=t.contentRect,this.borderBoxSize=u([t.borderBoxSize]),this.contentBoxSize=u([t.contentBoxSize]),this.devicePixelContentBoxSize=u([t.devicePixelContentBoxSize])},S=function(e){if(h(e))return 1/0;for(var t=0,n=e.parentNode;n;)t+=1,n=n.parentNode;return t},O=function(){var e=1/0,t=[];l.forEach((function(n){if(0!==n.activeTargets.length){var r=[];n.activeTargets.forEach((function(t){var n=new k(t.target),o=S(t.target);r.push(n),t.lastReportedSize=T(t.target,t.observedBox),o<e&&(e=o)})),t.push((function(){n.callback.call(n.observer,r,n.observer)})),n.activeTargets.splice(0,n.activeTargets.length)}}));for(var n=0,r=t;n<r.length;n++){(0,r[n])()}return e},L=function(e){l.forEach((function(t){t.activeTargets.splice(0,t.activeTargets.length),t.skippedTargets.splice(0,t.skippedTargets.length),t.observationTargets.forEach((function(n){n.isActive()&&(S(n.target)>e?t.activeTargets.push(n):t.skippedTargets.push(n))}))}))},R=function(){var e,t=0;for(L(t);l.some((function(e){return e.activeTargets.length>0}));)t=O(),L(t);return l.some((function(e){return e.skippedTargets.length>0}))&&("function"==typeof ErrorEvent?e=new ErrorEvent("error",{message:s}):((e=document.createEvent("Event")).initEvent("error",!1,!1),e.message=s),window.dispatchEvent(e)),t>0},z=[],N=function(e){if(!a){var t=0,n=document.createTextNode("");new MutationObserver((function(){return z.splice(0).forEach((function(e){return e()}))})).observe(n,{characterData:!0}),a=function(){n.textContent=""+(t?t--:t++)}}z.push(e),a()},j=0,C={attributes:!0,characterData:!0,childList:!0,subtree:!0},A=["resize","load","transitionend","animationend","animationstart","animationiteration","keyup","keydown","mouseup","mousedown","mouseover","mouseout","blur","focus"],M=function(e){return void 0===e&&(e=0),Date.now()+e},B=!1,I=new(function(){function e(){var e=this;this.stopped=!0,this.listener=function(){return e.schedule()}}return e.prototype.run=function(e){var t=this;if(void 0===e&&(e=250),!B){B=!0;var n,r=M(e);n=function(){var n=!1;try{n=R()}finally{if(B=!1,e=r-M(),!j)return;n?t.run(1e3):e>0?t.run(e):t.start()}},N((function(){requestAnimationFrame(n)}))}},e.prototype.schedule=function(){this.stop(),this.run()},e.prototype.observe=function(){var e=this,t=function(){return e.observer&&e.observer.observe(document.body,C)};document.body?t():p.addEventListener("DOMContentLoaded",t)},e.prototype.start=function(){var e=this;this.stopped&&(this.stopped=!1,this.observer=new MutationObserver(this.listener),this.observe(),A.forEach((function(t){return p.addEventListener(t,e.listener,!0)})))},e.prototype.stop=function(){var e=this;this.stopped||(this.observer&&this.observer.disconnect(),A.forEach((function(t){return p.removeEventListener(t,e.listener,!0)})),this.stopped=!0)},e}()),P=function(e){!j&&e>0&&I.start(),!(j+=e)&&I.stop()},D=function(){function t(t,n){this.target=t,this.observedBox=n||e.CONTENT_BOX,this.lastReportedSize={inlineSize:0,blockSize:0}}return t.prototype.isActive=function(){var e,t=T(this.target,this.observedBox,!0);return e=this.target,f(e)||function(e){switch(e.tagName){case"INPUT":if("image"!==e.type)break;case"VIDEO":case"AUDIO":case"EMBED":case"OBJECT":case"CANVAS":case"IFRAME":case"IMG":return!0}return!1}(e)||"inline"!==getComputedStyle(e).display||(this.lastReportedSize=t),this.lastReportedSize.inlineSize!==t.inlineSize||this.lastReportedSize.blockSize!==t.blockSize},t}(),U=function(e,t){this.activeTargets=[],this.skippedTargets=[],this.observationTargets=[],this.observer=e,this.callback=t},H=new WeakMap,F=function(e,t){for(var n=0;n<e.length;n+=1)if(e[n].target===t)return n;return-1},W=function(){function e(){}return e.connect=function(e,t){var n=new U(e,t);H.set(e,n)},e.observe=function(e,t,n){var r=H.get(e),o=0===r.observationTargets.length;F(r.observationTargets,t)<0&&(o&&l.push(r),r.observationTargets.push(new D(t,n&&n.box)),P(1),I.schedule())},e.unobserve=function(e,t){var n=H.get(e),r=F(n.observationTargets,t),o=1===n.observationTargets.length;r>=0&&(o&&l.splice(l.indexOf(n),1),n.observationTargets.splice(r,1),P(-1))},e.disconnect=function(e){var t=this,n=H.get(e);n.observationTargets.slice().forEach((function(n){return t.unobserve(e,n.target)})),n.activeTargets.splice(0,n.activeTargets.length)},e}(),V=function(){function e(e){if(0===arguments.length)throw new TypeError("Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.");if("function"!=typeof e)throw new TypeError("Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.");W.connect(this,e)}return e.prototype.observe=function(e,t){if(0===arguments.length)throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.");if(!v(e))throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element");W.observe(this,e,t)},e.prototype.unobserve=function(e){if(0===arguments.length)throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.");if(!v(e))throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element");W.unobserve(this,e)},e.prototype.disconnect=function(){W.disconnect(this)},e.toString=function(){return"function ResizeObserver () { [polyfill code] }"},e}();var Y=o()["undefined"!=typeof document&&void 0!==document.createElement?"useLayoutEffect":"useEffect"];var K=e=>{const n=t.useRef(e);return t.useEffect((()=>{n.current=e})),n},X=function(e){var t=[],n=null,r=function(){for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];t=o,n||(n=requestAnimationFrame((function(){n=null,e.apply(void 0,t)})))};return r.cancel=function(){n&&(cancelAnimationFrame(n),n=null)},r};const q="undefined"!=typeof window&&"ResizeObserver"in window?window.ResizeObserver:V;function G(){}let J;const Z=()=>J||(J=function(){const e=new Map,t=new q(X(((t,n)=>{for(let r=0;r<t.length;r++){const o=e.get(t[r].target);null==o||o.forEach((e=>e(t[r],n)))}})));return{observer:t,subscribe(n,r){var o;t.observe(n);const i=null!==(o=e.get(n))&&void 0!==o?o:[];i.push(r),e.set(n,i)},unsubscribe(n,r){var o;const i=null!==(o=e.get(n))&&void 0!==o?o:[];if(1===i.length)return t.unobserve(n),void e.delete(n);const l=i.indexOf(r);-1!==l&&i.splice(l,1),e.set(n,i)}}}());var $=function(e,t){const n=Z(),r=K(t);return Y((()=>{let t=!1;const o=e&&"current"in e?e.current:e;if(!o)return G;function i(e,n){t||r.current(e,n)}return n.subscribe(o,i),()=>{t=!0,n.unsubscribe(o,i)}}),[e,n,r]),n.observer};var Q,ee,te;function ne(){return ne=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ne.apply(this,arguments)}var re=function(e){return t.createElement("svg",ne({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 24"},e),Q||(Q=t.createElement("radialGradient",{id:"kotlin-logo-large_svg__a",cx:22.432,cy:3.493,r:21.679,gradientTransform:"translate(-.19 .042) scale(.9998)",gradientUnits:"userSpaceOnUse"},t.createElement("stop",{offset:.003,stopColor:"#e44857"}),t.createElement("stop",{offset:.469,stopColor:"#c711e1"}),t.createElement("stop",{offset:1,stopColor:"#7f52ff"}))),ee||(ee=t.createElement("path",{fill:"url(#kotlin-logo-large_svg__a)",d:"M22.87 21.68H3.94V2.76h18.93l-9.66 9.32z"})),te||(te=t.createElement("g",{fill:"#fff"},t.createElement("path",{d:"M45.69 2.73h-3.76l-8.18 8.73v-8.7h-3.02v18.92h3.02v-9.17l8.21 9.17h3.89l-8.75-9.79z"}),t.createElement("path",{d:"M55.93 8.44c-1.07-.62-2.28-.93-3.64-.93-1.38 0-2.61.31-3.7.93a6.63 6.63 0 00-2.55 2.57c-.61 1.1-.91 2.35-.91 3.74 0 1.4.3 2.64.91 3.74a6.45 6.45 0 002.53 2.57c1.09.62 2.32.93 3.7.93 1.36 0 2.58-.31 3.66-.93a6.53 6.53 0 002.51-2.57c.6-1.1.9-2.35.9-3.74 0-1.4-.3-2.64-.9-3.74-.6-1.1-1.43-1.95-2.51-2.57zm-.19 8.7c-.33.69-.8 1.23-1.4 1.61-.6.39-1.3.58-2.08.58-.79 0-1.49-.19-2.11-.58-.61-.39-1.09-.93-1.43-1.61-.34-.69-.51-1.48-.51-2.38 0-.9.17-1.7.51-2.39.34-.69.82-1.23 1.43-1.61.61-.39 1.32-.58 2.12-.58.77 0 1.46.19 2.07.58.6.39 1.07.93 1.4 1.61.33.69.49 1.48.49 2.39.01.9-.15 1.69-.49 2.38zm9.75-12.76h-2.92v2.35c0 .37-.09.65-.27.83-.18.18-.46.28-.84.28h-1.43v2.49h2.49v7.45c0 .77.16 1.46.47 2.05.31.59.76 1.05 1.34 1.37.58.32 1.27.49 2.06.49h2.23V19.1h-1.68c-.43 0-.78-.15-1.06-.45-.27-.3-.4-.7-.4-1.2v-7.11h3.22v-2.5h-3.22V4.38zM71.03 2H74v19.68h-2.97zm6.32.03h3v3.05h-3zm0 5.81h2.97v13.84h-2.97zm18.08 2.28a4.694 4.694 0 00-1.77-1.92c-.76-.46-1.65-.69-2.67-.69-1.08 0-2.03.26-2.84.79-.65.42-1.17.98-1.58 1.68l-.02-2.14H83.7v13.84h2.97v-7.74c0-.75.14-1.41.43-1.99.28-.58.68-1.03 1.2-1.35.52-.32 1.12-.48 1.82-.48.62 0 1.16.13 1.6.39.45.26.78.64 1.01 1.12.23.49.34 1.07.34 1.74v8.31h2.97v-8.73c.02-1.07-.2-2.01-.61-2.83z"}))))},oe=n(4184),ie=n.n(oe),le=require("@rescui/typography");const se="https://kotlinlang.org";var ae=n(5893);const ue=e=>{let{productWebUrl:t,className:n}=e;const r=t?function(e){const t=/v?\d+\.\d+\.\d+$/.exec(e);return t?t[0]:null}(t):null,o=(0,le.useTextStyles)();return(0,ae.jsxs)("div",{className:ie()("ktl-logo-large-module_container_+5pgf",n,o("rs-text-3",{hardness:"average"})),children:[(0,ae.jsx)("a",{className:"ktl-logo-large-module_link_iZIEJ",href:se,"aria-label":"Kotlin Home Page",children:(0,ae.jsx)(re,{})}),r&&(0,ae.jsx)("a",{className:ie()("ktl-logo-large-module_version-tag_fiNIk"),href:t,target:"_blank",children:r})]})};const ce="Solutions",de="Multiplatform Mobile",fe="/lp/mobile/",he="Server-side",ve="/lp/server-side/",pe="Web frontend",me="/docs/js-overview.html",ge="Data science",be="/docs/data-science-overview.html",Ee="Android",_e="/docs/android-overview.html",we="Docs",ye="/docs/home.html",xe="Community",Te="/community/",ke="Teach",Se="/education/",Oe="Play",Le="Playground",Re="https://play.kotlinlang.org/",ze="".concat(Re,"hands-on"),Ne="Hands-on",je="".concat(Re,"byExample"),Ce="Examples",Ae="".concat(Re,"koans"),Me="Koans",Be="Kotlin",Ie="/docs/home.html",Pe="KMM",De="/docs/mobile/home.html",Ue=[{title:ce,url:null,items:[{title:de,url:fe},{title:he,url:ve},{title:pe,url:me},{title:ge,url:be},{title:Ee,url:_e}]},{title:we,url:Ie},{title:xe,url:Te},{title:ke,url:Se},{title:Oe,url:null,items:[{title:Le,url:Re},{title:Ne,url:ze},{title:Ce,url:je},{title:Me,url:Ae}]}];function He(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:(e,t)=>e===t,t=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0;return Ue.map((r=>{var o;let{title:i,url:l,items:s}=r;l&&t&&(l=Fe(l,t,!!n));const a={title:i,url:l};let u=e(l,t);return a.items=null!==(o=null==s?void 0:s.map((r=>{let{title:o,url:i}=r;i&&t&&(i=Fe(i,t,!!n));let l=e(i,t);return l&&(u=l),{title:o,url:i,isActive:l}})))&&void 0!==o?o:[],a.isActive=u,a}))}function Fe(e,t,n){return n?e.startsWith(Re)?e.replace(Re,"/"):"".concat(se).concat(e):e}const We=e=>{let{items:t,isExpanded:n,alignRight:r,linkHandler:o}=e;const i=(0,le.useTextStyles)();return(0,ae.jsx)("ul",{className:ie()("ktl-horizontal-menu-module_dropdown-menu_dVOw-",i("rs-text-2"),{"ktl-horizontal-menu-module_dropdown-menu-expanded_L0RWy":n,"ktl-horizontal-menu-module_dropdown-menu-align-right_HS-oO":r}),children:t.map(((e,t)=>{const n=!e.isActive&&e.url?"a":"span";return(0,ae.jsx)("li",{children:(0,ae.jsx)(n,{className:ie()("ktl-horizontal-menu-module_dropdown-menu-item_wRlcN",{"ktl-horizontal-menu-module_active_azHwP":e.isActive}),...e.url?{href:e.url,onClick:o?t=>e.url&&o(t,e.url):void 0}:{},children:e.title})},t)}))})},Ve=e=>{var n,r;let{item:o,onMouseEnter:i,onMouseLeave:l,isExpanded:s,isLast:a,linkHandler:u}=e;const c=o.isActive||!o.url?"span":"a",d=(0,le.useTextStyles)();return(0,ae.jsxs)("li",{className:"ktl-horizontal-menu-module_menu-item-wrap_dnVf-",onMouseEnter:()=>i(o),onMouseLeave:l,children:[(0,t.createElement)(c,{...o.url?{href:o.url,onClick:u?e=>o.url&&u(e,o.url):void 0}:{},key:o.title,className:ie()("ktl-horizontal-menu-module_menu-item_Z+YKZ",d("rs-text-2"),{"ktl-horizontal-menu-module_item-active_+iyf-":o.isActive,"ktl-horizontal-menu-module_expanded_thibK":s&&!(null===(n=o.items)||void 0===n||!n.length)})},o.title),!(null===(r=o.items)||void 0===r||!r.length)&&(0,ae.jsx)(We,{items:o.items,isExpanded:s,alignRight:a,linkHandler:u})]})},Ye=e=>{let{items:n,theme:r,linkHandler:o}=e;const[i,l]=(0,t.useState)(-1),[s,a]=(0,t.useState)(i);(0,t.useEffect)((()=>{const e=setTimeout((()=>a(i)),-1!==i?200:400);return()=>clearTimeout(e)}),[i]);const u=e=>l(n.findIndex((t=>t===e))),c=()=>l(-1);return(0,ae.jsx)("nav",{className:ie()("ktl-horizontal-menu-module_nav_xYv4i",{"ktl-horizontal-menu-module_dark-theme_Lp065":"dark"===r}),children:(0,ae.jsx)("ul",{className:"ktl-horizontal-menu-module_menu-list_7oi3W",children:n.map(((e,t)=>(0,ae.jsx)(Ve,{item:e,onMouseEnter:u,onMouseLeave:c,isExpanded:t===s,isLast:t===n.length-1,linkHandler:o},t)))})})};var Ke;function Xe(){return Xe=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Xe.apply(this,arguments)}var qe=function(e){return t.createElement("svg",Xe({width:24,height:24,xmlns:"http://www.w3.org/2000/svg"},e),Ke||(Ke=t.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M15.847 6.861A6.99 6.99 0 009.587 3a6.997 6.997 0 104.186 12.601l6.106 6.106 1.414-1.414-6.107-6.106a6.99 6.99 0 00.66-7.326zM14.587 10a5 5 0 11-10.001 0 5 5 0 0110 0z",fill:"currentColor"})))};const Ge=e=>{let{onClick:t,isActive:n}=e;return(0,ae.jsx)("button",{type:"button",className:ie()("ktl-search-button_button_JUyxv",{"ktl-search-button_active_G-dk1":n}),"aria-label":"Search",onClick:t,children:(0,ae.jsx)(qe,{})})};var Je;function Ze(){return Ze=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Ze.apply(this,arguments)}var $e,Qe=function(e){return t.createElement("svg",Ze({width:24,height:24,fill:"none",xmlns:"http://www.w3.org/2000/svg"},e),Je||(Je=t.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M4 5h16v2H4V5zm0 6h16v2H4v-2zm16 6H4v2h16v-2z",fill:"currentColor"})))};function et(){return et=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},et.apply(this,arguments)}var tt=function(e){return t.createElement("svg",et({width:16,height:16,fill:"none",xmlns:"http://www.w3.org/2000/svg"},e),$e||($e=t.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M15.707 1.707L14.293.293 8 6.586 1.707.293.293 1.707 6.586 8 .293 14.293l1.414 1.414L8 9.414l6.293 6.293 1.414-1.414L9.414 8l6.293-6.293z",fill:"currentColor"})))};const nt=e=>{let{onClick:t,isExpanded:n}=e;return(0,ae.jsx)("button",{type:"button",className:ie()("ktl-menu-button_button_InVin"),"aria-haspopup":"true","aria-label":"Open the navigation",onClick:t,children:n?(0,ae.jsx)(tt,{}):(0,ae.jsx)(Qe,{})})};function rt(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}var ot=!1;if("undefined"!=typeof window){var it={get passive(){ot=!0}};window.addEventListener("testPassive",null,it),window.removeEventListener("testPassive",null,it)}var lt="undefined"!=typeof window&&window.navigator&&window.navigator.platform&&(/iP(ad|hone|od)/.test(window.navigator.platform)||"MacIntel"===window.navigator.platform&&window.navigator.maxTouchPoints>1),st=[],at=!1,ut=-1,ct=void 0,dt=void 0,ft=function(e){return st.some((function(t){return!(!t.options.allowTouchMove||!t.options.allowTouchMove(e))}))},ht=function(e){var t=e||window.event;return!!ft(t.target)||(t.touches.length>1||(t.preventDefault&&t.preventDefault(),!1))},vt=function(){setTimeout((function(){void 0!==dt&&(document.body.style.paddingRight=dt,dt=void 0),void 0!==ct&&(document.body.style.overflow=ct,ct=void 0)}))},pt=function(e,t){if(lt){if(!e)return void console.error("disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.");if(e&&!st.some((function(t){return t.targetElement===e}))){var n={targetElement:e,options:t||{}};st=[].concat(rt(st),[n]),e.ontouchstart=function(e){1===e.targetTouches.length&&(ut=e.targetTouches[0].clientY)},e.ontouchmove=function(t){1===t.targetTouches.length&&function(e,t){var n=e.targetTouches[0].clientY-ut;!ft(e.target)&&(t&&0===t.scrollTop&&n>0||function(e){return!!e&&e.scrollHeight-e.scrollTop<=e.clientHeight}(t)&&n<0?ht(e):e.stopPropagation())}(t,e)},at||(document.addEventListener("touchmove",ht,ot?{passive:!1}:void 0),at=!0)}}else{!function(e){if(void 0===dt){var t=!!e&&!0===e.reserveScrollBarGap,n=window.innerWidth-document.documentElement.clientWidth;t&&n>0&&(dt=document.body.style.paddingRight,document.body.style.paddingRight=n+"px")}void 0===ct&&(ct=document.body.style.overflow,setTimeout((function(){document.body.style.overflow="hidden"})))}(t);var r={targetElement:e,options:t||{}};st=[].concat(rt(st),[r])}};const mt=e=>{let{item:n,level:r,linkHandler:o}=e;const i=n.url?"a":"span",l={"--level":r},s=(0,t.useCallback)((e=>o&&n.url&&o(e,n.url)),[]);return(0,ae.jsx)(i,{...n.url?{href:n.url,onClick:s}:{},className:ie()("ktl-menu-popup-module_menu-item_f6wvh",{"ktl-menu-popup-module_menu-item-root_C-hkN":0===r,"ktl-menu-popup-module_active_DrZav":n.isActive,"ktl-menu-popup-module_active-with-child_BDnrW":n.items&&n.items.length}),style:l,children:n.title})},gt=e=>{let{items:n,level:r,linkHandler:o}=e;return(0,ae.jsx)(ae.Fragment,{children:n.map(((e,n)=>(0,ae.jsxs)(t.Fragment,{children:[(0,ae.jsx)(mt,{item:e,level:r,linkHandler:o}),e.items&&e.items.length>0&&(0,ae.jsx)(gt,{items:e.items,level:r+1,linkHandler:o})]},n)))})},bt=e=>{let{items:n,isExpanded:r,setExpand:o,headerRef:i,linkHandler:l}=e;const s=(0,t.useRef)(null),a=(0,le.useTextStyles)(),[u,c]=(0,t.useState)({});(0,t.useEffect)((()=>()=>{o(!1),lt?(st.forEach((function(e){e.targetElement.ontouchstart=null,e.targetElement.ontouchmove=null})),at&&(document.removeEventListener("touchmove",ht,ot?{passive:!1}:void 0),at=!1),st=[],ut=-1):(vt(),st=[])}),[]),(0,t.useLayoutEffect)((()=>{i.current&&c({top:i.current.getBoundingClientRect().bottom})}),[r,i]);const d=(0,t.useCallback)((()=>{s.current&&(r?function(e){if(lt){if(!e)return void console.error("enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.");e.ontouchstart=null,e.ontouchmove=null,st=st.filter((function(t){return t.targetElement!==e})),at&&0===st.length&&(document.removeEventListener("touchmove",ht,ot?{passive:!1}:void 0),at=!1)}else(st=st.filter((function(t){return t.targetElement!==e}))).length||vt()}(s.current):pt(s.current)),o(!r)}),[r,s]);return(0,ae.jsxs)(ae.Fragment,{children:[(0,ae.jsx)(nt,{onClick:d,isExpanded:r}),(0,ae.jsx)("nav",{style:u,ref:s,className:ie()("ktl-menu-popup-module_menu-popup_Yqtnq",a("rs-text-2"),{"ktl-menu-popup-module_menu-popup-expanded_FlujR":r}),children:(0,ae.jsx)(gt,{items:n,level:0,linkHandler:l})})]})};var Et,_t;function wt(){return wt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},wt.apply(this,arguments)}var yt=function(e){return t.createElement("svg",wt({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},e),Et||(Et=t.createElement("radialGradient",{id:"kotlin-logo-small_svg__a",cx:22.432,cy:3.493,r:21.679,gradientTransform:"translate(-.19 .042) scale(.9998)",gradientUnits:"userSpaceOnUse"},t.createElement("stop",{offset:.003,stopColor:"#e44857"}),t.createElement("stop",{offset:.469,stopColor:"#c711e1"}),t.createElement("stop",{offset:1,stopColor:"#7f52ff"}))),_t||(_t=t.createElement("path",{fill:"url(#kotlin-logo-small_svg__a)",d:"M22.87 21.68H3.94V2.76h18.93l-9.66 9.32z"})))};const xt=e=>{let{homeTitle:t,homeUrl:n,className:r}=e;const o=(0,le.useTextStyles)();return(0,ae.jsxs)("div",{className:ie()("ktl-logo-small-module_logo-small_7ddNl",r),children:[(0,ae.jsx)("a",{href:se,className:"ktl-logo-small-module_icon-wrap_BFVBd",children:(0,ae.jsx)(yt,{className:"ktl-logo-small-module_icon_JM+yC"})}),(0,ae.jsx)("a",{href:n,className:ie()("ktl-logo-small-module_link_6gruv",o("rs-h3")),children:t})]})},Tt=(0,t.forwardRef)(((e,n)=>{let{productWebUrl:r,hasSearch:o=!1,onSearchClick:l,currentUrl:s,currentTitle:a,className:u,hasBorder:c=!0,dropdownTheme:d="dark",linkHandler:f,isPlayground:h,isUrlActive:v}=e;const[p,m]=(0,t.useState)(!1),[g,b]=(0,t.useState)(!1),E=(0,t.useMemo)((()=>He(v,s,h)),[v,s,h]),_=(0,t.useRef)(null);return(0,t.useImperativeHandle)(n,(()=>_.current)),(0,t.useLayoutEffect)((()=>{var e,t,n;b((null!==(e=null===(t=_.current)||void 0===t||null===(n=t.getBoundingClientRect)||void 0===n?void 0:n.call(t).width)&&void 0!==e?e:0)<=640)}),[_]),$(_,(e=>b(e.contentRect.width<=640))),(0,ae.jsx)(i.ThemeProvider,{theme:"dark",children:(0,ae.jsxs)("header",{ref:_,className:ie()("ktl-header-module_header-menu_E3vzo",u,{"ktl-header-module_with-menu-popup_DcoOT":p,"ktl-header-module_border_smGpe":c}),children:[g&&a&&s&&!p?(0,ae.jsx)(xt,{homeTitle:a,homeUrl:s}):(0,ae.jsx)(ue,{productWebUrl:r}),!g&&(0,ae.jsx)(Ye,{items:E,theme:d,linkHandler:f}),(0,ae.jsx)(Ge,{onClick:l,isActive:o&&!!l}),g&&(0,ae.jsx)(bt,{items:E,setExpand:m,isExpanded:p,headerRef:_,linkHandler:f})]})})}));var kt=Tt}(),module.exports=r}();
|
|
3
3
|
//# sourceMappingURL=header.js.map
|
package/dist/header.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header.js","mappings":"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","sources":["webpack://@jetbrains/kotlin-web-site-ui/./node_modules/classnames/index.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/react/jsx-runtime.js","webpack://@jetbrains/kotlin-web-site-ui/external commonjs2 {\"commonjs2\":\"react\",\"commonjs\":\"react\"}","webpack://@jetbrains/kotlin-web-site-ui/webpack/bootstrap","webpack://@jetbrains/kotlin-web-site-ui/webpack/runtime/compat get default export","webpack://@jetbrains/kotlin-web-site-ui/webpack/runtime/define property getters","webpack://@jetbrains/kotlin-web-site-ui/webpack/runtime/hasOwnProperty shorthand","webpack://@jetbrains/kotlin-web-site-ui/webpack/runtime/make namespace object","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/ResizeObserverBoxOptions.js","webpack://@jetbrains/kotlin-web-site-ui/external commonjs2 {\"commonjs\":\"@rescui/ui-contexts\",\"commonjs2\":\"@rescui/ui-contexts\"}","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/utils/resizeObservers.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/algorithms/deliverResizeLoopError.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/utils/freeze.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/utils/queueMicroTask.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/ResizeObserverSize.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/DOMRectReadOnly.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/utils/element.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/utils/global.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/algorithms/calculateBoxSize.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/ResizeObserverEntry.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/algorithms/calculateDepthForNode.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/algorithms/broadcastActiveObservations.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/algorithms/gatherActiveObservationsAtDepth.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/utils/process.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/algorithms/hasActiveObservations.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/algorithms/hasSkippedObservations.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/utils/scheduler.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/utils/queueResizeObserver.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/ResizeObservation.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/ResizeObserverDetail.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/ResizeObserverController.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/ResizeObserver.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@react-hook/passive-layout-effect/dist/module/index.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@react-hook/latest/dist/module/index.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/raf-schd/dist/raf-schd.esm.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@react-hook/resize-observer/dist/module/index.js","webpack://@jetbrains/kotlin-web-site-ui/./src/components/header/logo-large/kotlin-logo-large.svg","webpack://@jetbrains/kotlin-web-site-ui/external commonjs2 {\"commonjs\":\"@rescui/typography\",\"commonjs2\":\"@rescui/typography\"}","webpack://@jetbrains/kotlin-web-site-ui/./src/consts.ts","webpack://@jetbrains/kotlin-web-site-ui/./src/components/header/logo-large/logo-large.tsx","webpack://@jetbrains/kotlin-web-site-ui/./src/components/header/logo-large/logo-large.module.pcss?d1a2","webpack://@jetbrains/kotlin-web-site-ui/./src/components/header/header.module.pcss?b1da","webpack://@jetbrains/kotlin-web-site-ui/./src/components/header/nav-scheme.ts","webpack://@jetbrains/kotlin-web-site-ui/./src/components/header/horizontal-menu/horizontal-menu.module.pcss?7d3a","webpack://@jetbrains/kotlin-web-site-ui/./src/components/header/horizontal-menu/horizontal-menu.tsx","webpack://@jetbrains/kotlin-web-site-ui/./src/components/header/search-button/search.svg","webpack://@jetbrains/kotlin-web-site-ui/./src/components/header/search-button/search-button.tsx","webpack://@jetbrains/kotlin-web-site-ui/./src/components/header/search-button/search-button.pcss?7314","webpack://@jetbrains/kotlin-web-site-ui/./src/components/header/menu-popup/menu-button/hamburger-icon.svg","webpack://@jetbrains/kotlin-web-site-ui/./src/components/header/menu-popup/menu-button/close-icon.svg","webpack://@jetbrains/kotlin-web-site-ui/./src/components/header/menu-popup/menu-button/menu-button.tsx","webpack://@jetbrains/kotlin-web-site-ui/./src/components/header/menu-popup/menu-button/menu-button.pcss?e10c","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/body-scroll-lock/lib/bodyScrollLock.esm.js","webpack://@jetbrains/kotlin-web-site-ui/./src/components/header/menu-popup/menu-popup.tsx","webpack://@jetbrains/kotlin-web-site-ui/./src/components/header/menu-popup/menu-popup.module.pcss?1dec","webpack://@jetbrains/kotlin-web-site-ui/./src/components/header/logo-small/kotlin-logo-small.svg","webpack://@jetbrains/kotlin-web-site-ui/./src/components/header/logo-small/logo-small.module.pcss?0b31","webpack://@jetbrains/kotlin-web-site-ui/./src/components/header/logo-small/logo-small.tsx","webpack://@jetbrains/kotlin-web-site-ui/./src/components/header/header.tsx","webpack://@jetbrains/kotlin-web-site-ui/./src/components/header/index.ts"],"sourcesContent":["/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","/** @license React v16.14.0\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","module.exports = require(\"react\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var ResizeObserverBoxOptions;\n(function (ResizeObserverBoxOptions) {\n ResizeObserverBoxOptions[\"BORDER_BOX\"] = \"border-box\";\n ResizeObserverBoxOptions[\"CONTENT_BOX\"] = \"content-box\";\n ResizeObserverBoxOptions[\"DEVICE_PIXEL_CONTENT_BOX\"] = \"device-pixel-content-box\";\n})(ResizeObserverBoxOptions || (ResizeObserverBoxOptions = {}));\nexport { ResizeObserverBoxOptions };\n","var __WEBPACK_NAMESPACE_OBJECT__ = require(\"@rescui/ui-contexts\");","var resizeObservers = [];\nexport { resizeObservers };\n","var msg = 'ResizeObserver loop completed with undelivered notifications.';\nvar deliverResizeLoopError = function () {\n var event;\n if (typeof ErrorEvent === 'function') {\n event = new ErrorEvent('error', {\n message: msg\n });\n }\n else {\n event = document.createEvent('Event');\n event.initEvent('error', false, false);\n event.message = msg;\n }\n window.dispatchEvent(event);\n};\nexport { deliverResizeLoopError };\n","export var freeze = function (obj) { return Object.freeze(obj); };\n","var trigger;\nvar callbacks = [];\nvar notify = function () { return callbacks.splice(0).forEach(function (cb) { return cb(); }); };\nvar queueMicroTask = function (callback) {\n if (!trigger) {\n var toggle_1 = 0;\n var el_1 = document.createTextNode('');\n var config = { characterData: true };\n new MutationObserver(function () { return notify(); }).observe(el_1, config);\n trigger = function () { el_1.textContent = \"\" + (toggle_1 ? toggle_1-- : toggle_1++); };\n }\n callbacks.push(callback);\n trigger();\n};\nexport { queueMicroTask };\n","import { freeze } from './utils/freeze';\nvar ResizeObserverSize = (function () {\n function ResizeObserverSize(inlineSize, blockSize) {\n this.inlineSize = inlineSize;\n this.blockSize = blockSize;\n freeze(this);\n }\n return ResizeObserverSize;\n}());\nexport { ResizeObserverSize };\n","import { freeze } from './utils/freeze';\nvar DOMRectReadOnly = (function () {\n function DOMRectReadOnly(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n this.top = this.y;\n this.left = this.x;\n this.bottom = this.top + this.height;\n this.right = this.left + this.width;\n return freeze(this);\n }\n DOMRectReadOnly.prototype.toJSON = function () {\n var _a = this, x = _a.x, y = _a.y, top = _a.top, right = _a.right, bottom = _a.bottom, left = _a.left, width = _a.width, height = _a.height;\n return { x: x, y: y, top: top, right: right, bottom: bottom, left: left, width: width, height: height };\n };\n DOMRectReadOnly.fromRect = function (rectangle) {\n return new DOMRectReadOnly(rectangle.x, rectangle.y, rectangle.width, rectangle.height);\n };\n return DOMRectReadOnly;\n}());\nexport { DOMRectReadOnly };\n","var isSVG = function (target) { return target instanceof SVGElement && 'getBBox' in target; };\nvar isHidden = function (target) {\n if (isSVG(target)) {\n var _a = target.getBBox(), width = _a.width, height = _a.height;\n return !width && !height;\n }\n var _b = target, offsetWidth = _b.offsetWidth, offsetHeight = _b.offsetHeight;\n return !(offsetWidth || offsetHeight || target.getClientRects().length);\n};\nvar isElement = function (obj) {\n var _a, _b;\n if (obj instanceof Element) {\n return true;\n }\n var scope = (_b = (_a = obj) === null || _a === void 0 ? void 0 : _a.ownerDocument) === null || _b === void 0 ? void 0 : _b.defaultView;\n return !!(scope && obj instanceof scope.Element);\n};\nvar isReplacedElement = function (target) {\n switch (target.tagName) {\n case 'INPUT':\n if (target.type !== 'image') {\n break;\n }\n case 'VIDEO':\n case 'AUDIO':\n case 'EMBED':\n case 'OBJECT':\n case 'CANVAS':\n case 'IFRAME':\n case 'IMG':\n return true;\n }\n return false;\n};\nexport { isSVG, isHidden, isElement, isReplacedElement };\n","export var global = typeof window !== 'undefined' ? window : {};\n","import { ResizeObserverBoxOptions } from '../ResizeObserverBoxOptions';\nimport { ResizeObserverSize } from '../ResizeObserverSize';\nimport { DOMRectReadOnly } from '../DOMRectReadOnly';\nimport { isSVG, isHidden } from '../utils/element';\nimport { freeze } from '../utils/freeze';\nimport { global } from '../utils/global';\nvar cache = new WeakMap();\nvar scrollRegexp = /auto|scroll/;\nvar verticalRegexp = /^tb|vertical/;\nvar IE = (/msie|trident/i).test(global.navigator && global.navigator.userAgent);\nvar parseDimension = function (pixel) { return parseFloat(pixel || '0'); };\nvar size = function (inlineSize, blockSize, switchSizes) {\n if (inlineSize === void 0) { inlineSize = 0; }\n if (blockSize === void 0) { blockSize = 0; }\n if (switchSizes === void 0) { switchSizes = false; }\n return new ResizeObserverSize((switchSizes ? blockSize : inlineSize) || 0, (switchSizes ? inlineSize : blockSize) || 0);\n};\nvar zeroBoxes = freeze({\n devicePixelContentBoxSize: size(),\n borderBoxSize: size(),\n contentBoxSize: size(),\n contentRect: new DOMRectReadOnly(0, 0, 0, 0)\n});\nvar calculateBoxSizes = function (target, forceRecalculation) {\n if (forceRecalculation === void 0) { forceRecalculation = false; }\n if (cache.has(target) && !forceRecalculation) {\n return cache.get(target);\n }\n if (isHidden(target)) {\n cache.set(target, zeroBoxes);\n return zeroBoxes;\n }\n var cs = getComputedStyle(target);\n var svg = isSVG(target) && target.ownerSVGElement && target.getBBox();\n var removePadding = !IE && cs.boxSizing === 'border-box';\n var switchSizes = verticalRegexp.test(cs.writingMode || '');\n var canScrollVertically = !svg && scrollRegexp.test(cs.overflowY || '');\n var canScrollHorizontally = !svg && scrollRegexp.test(cs.overflowX || '');\n var paddingTop = svg ? 0 : parseDimension(cs.paddingTop);\n var paddingRight = svg ? 0 : parseDimension(cs.paddingRight);\n var paddingBottom = svg ? 0 : parseDimension(cs.paddingBottom);\n var paddingLeft = svg ? 0 : parseDimension(cs.paddingLeft);\n var borderTop = svg ? 0 : parseDimension(cs.borderTopWidth);\n var borderRight = svg ? 0 : parseDimension(cs.borderRightWidth);\n var borderBottom = svg ? 0 : parseDimension(cs.borderBottomWidth);\n var borderLeft = svg ? 0 : parseDimension(cs.borderLeftWidth);\n var horizontalPadding = paddingLeft + paddingRight;\n var verticalPadding = paddingTop + paddingBottom;\n var horizontalBorderArea = borderLeft + borderRight;\n var verticalBorderArea = borderTop + borderBottom;\n var horizontalScrollbarThickness = !canScrollHorizontally ? 0 : target.offsetHeight - verticalBorderArea - target.clientHeight;\n var verticalScrollbarThickness = !canScrollVertically ? 0 : target.offsetWidth - horizontalBorderArea - target.clientWidth;\n var widthReduction = removePadding ? horizontalPadding + horizontalBorderArea : 0;\n var heightReduction = removePadding ? verticalPadding + verticalBorderArea : 0;\n var contentWidth = svg ? svg.width : parseDimension(cs.width) - widthReduction - verticalScrollbarThickness;\n var contentHeight = svg ? svg.height : parseDimension(cs.height) - heightReduction - horizontalScrollbarThickness;\n var borderBoxWidth = contentWidth + horizontalPadding + verticalScrollbarThickness + horizontalBorderArea;\n var borderBoxHeight = contentHeight + verticalPadding + horizontalScrollbarThickness + verticalBorderArea;\n var boxes = freeze({\n devicePixelContentBoxSize: size(Math.round(contentWidth * devicePixelRatio), Math.round(contentHeight * devicePixelRatio), switchSizes),\n borderBoxSize: size(borderBoxWidth, borderBoxHeight, switchSizes),\n contentBoxSize: size(contentWidth, contentHeight, switchSizes),\n contentRect: new DOMRectReadOnly(paddingLeft, paddingTop, contentWidth, contentHeight)\n });\n cache.set(target, boxes);\n return boxes;\n};\nvar calculateBoxSize = function (target, observedBox, forceRecalculation) {\n var _a = calculateBoxSizes(target, forceRecalculation), borderBoxSize = _a.borderBoxSize, contentBoxSize = _a.contentBoxSize, devicePixelContentBoxSize = _a.devicePixelContentBoxSize;\n switch (observedBox) {\n case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:\n return devicePixelContentBoxSize;\n case ResizeObserverBoxOptions.BORDER_BOX:\n return borderBoxSize;\n default:\n return contentBoxSize;\n }\n};\nexport { calculateBoxSize, calculateBoxSizes };\n","import { calculateBoxSizes } from './algorithms/calculateBoxSize';\nimport { freeze } from './utils/freeze';\nvar ResizeObserverEntry = (function () {\n function ResizeObserverEntry(target) {\n var boxes = calculateBoxSizes(target);\n this.target = target;\n this.contentRect = boxes.contentRect;\n this.borderBoxSize = freeze([boxes.borderBoxSize]);\n this.contentBoxSize = freeze([boxes.contentBoxSize]);\n this.devicePixelContentBoxSize = freeze([boxes.devicePixelContentBoxSize]);\n }\n return ResizeObserverEntry;\n}());\nexport { ResizeObserverEntry };\n","import { isHidden } from '../utils/element';\nvar calculateDepthForNode = function (node) {\n if (isHidden(node)) {\n return Infinity;\n }\n var depth = 0;\n var parent = node.parentNode;\n while (parent) {\n depth += 1;\n parent = parent.parentNode;\n }\n return depth;\n};\nexport { calculateDepthForNode };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { ResizeObserverEntry } from '../ResizeObserverEntry';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nimport { calculateBoxSize } from './calculateBoxSize';\nvar broadcastActiveObservations = function () {\n var shallowestDepth = Infinity;\n var callbacks = [];\n resizeObservers.forEach(function processObserver(ro) {\n if (ro.activeTargets.length === 0) {\n return;\n }\n var entries = [];\n ro.activeTargets.forEach(function processTarget(ot) {\n var entry = new ResizeObserverEntry(ot.target);\n var targetDepth = calculateDepthForNode(ot.target);\n entries.push(entry);\n ot.lastReportedSize = calculateBoxSize(ot.target, ot.observedBox);\n if (targetDepth < shallowestDepth) {\n shallowestDepth = targetDepth;\n }\n });\n callbacks.push(function resizeObserverCallback() {\n ro.callback.call(ro.observer, entries, ro.observer);\n });\n ro.activeTargets.splice(0, ro.activeTargets.length);\n });\n for (var _i = 0, callbacks_1 = callbacks; _i < callbacks_1.length; _i++) {\n var callback = callbacks_1[_i];\n callback();\n }\n return shallowestDepth;\n};\nexport { broadcastActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nvar gatherActiveObservationsAtDepth = function (depth) {\n resizeObservers.forEach(function processObserver(ro) {\n ro.activeTargets.splice(0, ro.activeTargets.length);\n ro.skippedTargets.splice(0, ro.skippedTargets.length);\n ro.observationTargets.forEach(function processTarget(ot) {\n if (ot.isActive()) {\n if (calculateDepthForNode(ot.target) > depth) {\n ro.activeTargets.push(ot);\n }\n else {\n ro.skippedTargets.push(ot);\n }\n }\n });\n });\n};\nexport { gatherActiveObservationsAtDepth };\n","import { hasActiveObservations } from '../algorithms/hasActiveObservations';\nimport { hasSkippedObservations } from '../algorithms/hasSkippedObservations';\nimport { deliverResizeLoopError } from '../algorithms/deliverResizeLoopError';\nimport { broadcastActiveObservations } from '../algorithms/broadcastActiveObservations';\nimport { gatherActiveObservationsAtDepth } from '../algorithms/gatherActiveObservationsAtDepth';\nvar process = function () {\n var depth = 0;\n gatherActiveObservationsAtDepth(depth);\n while (hasActiveObservations()) {\n depth = broadcastActiveObservations();\n gatherActiveObservationsAtDepth(depth);\n }\n if (hasSkippedObservations()) {\n deliverResizeLoopError();\n }\n return depth > 0;\n};\nexport { process };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasActiveObservations = function () {\n return resizeObservers.some(function (ro) { return ro.activeTargets.length > 0; });\n};\nexport { hasActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasSkippedObservations = function () {\n return resizeObservers.some(function (ro) { return ro.skippedTargets.length > 0; });\n};\nexport { hasSkippedObservations };\n","import { process } from './process';\nimport { global } from './global';\nimport { queueResizeObserver } from './queueResizeObserver';\nvar watching = 0;\nvar isWatching = function () { return !!watching; };\nvar CATCH_PERIOD = 250;\nvar observerConfig = { attributes: true, characterData: true, childList: true, subtree: true };\nvar events = [\n 'resize',\n 'load',\n 'transitionend',\n 'animationend',\n 'animationstart',\n 'animationiteration',\n 'keyup',\n 'keydown',\n 'mouseup',\n 'mousedown',\n 'mouseover',\n 'mouseout',\n 'blur',\n 'focus'\n];\nvar time = function (timeout) {\n if (timeout === void 0) { timeout = 0; }\n return Date.now() + timeout;\n};\nvar scheduled = false;\nvar Scheduler = (function () {\n function Scheduler() {\n var _this = this;\n this.stopped = true;\n this.listener = function () { return _this.schedule(); };\n }\n Scheduler.prototype.run = function (timeout) {\n var _this = this;\n if (timeout === void 0) { timeout = CATCH_PERIOD; }\n if (scheduled) {\n return;\n }\n scheduled = true;\n var until = time(timeout);\n queueResizeObserver(function () {\n var elementsHaveResized = false;\n try {\n elementsHaveResized = process();\n }\n finally {\n scheduled = false;\n timeout = until - time();\n if (!isWatching()) {\n return;\n }\n if (elementsHaveResized) {\n _this.run(1000);\n }\n else if (timeout > 0) {\n _this.run(timeout);\n }\n else {\n _this.start();\n }\n }\n });\n };\n Scheduler.prototype.schedule = function () {\n this.stop();\n this.run();\n };\n Scheduler.prototype.observe = function () {\n var _this = this;\n var cb = function () { return _this.observer && _this.observer.observe(document.body, observerConfig); };\n document.body ? cb() : global.addEventListener('DOMContentLoaded', cb);\n };\n Scheduler.prototype.start = function () {\n var _this = this;\n if (this.stopped) {\n this.stopped = false;\n this.observer = new MutationObserver(this.listener);\n this.observe();\n events.forEach(function (name) { return global.addEventListener(name, _this.listener, true); });\n }\n };\n Scheduler.prototype.stop = function () {\n var _this = this;\n if (!this.stopped) {\n this.observer && this.observer.disconnect();\n events.forEach(function (name) { return global.removeEventListener(name, _this.listener, true); });\n this.stopped = true;\n }\n };\n return Scheduler;\n}());\nvar scheduler = new Scheduler();\nvar updateCount = function (n) {\n !watching && n > 0 && scheduler.start();\n watching += n;\n !watching && scheduler.stop();\n};\nexport { scheduler, updateCount };\n","import { queueMicroTask } from './queueMicroTask';\nvar queueResizeObserver = function (cb) {\n queueMicroTask(function ResizeObserver() {\n requestAnimationFrame(cb);\n });\n};\nexport { queueResizeObserver };\n","import { ResizeObserverBoxOptions } from './ResizeObserverBoxOptions';\nimport { calculateBoxSize } from './algorithms/calculateBoxSize';\nimport { isSVG, isReplacedElement } from './utils/element';\nvar skipNotifyOnElement = function (target) {\n return !isSVG(target)\n && !isReplacedElement(target)\n && getComputedStyle(target).display === 'inline';\n};\nvar ResizeObservation = (function () {\n function ResizeObservation(target, observedBox) {\n this.target = target;\n this.observedBox = observedBox || ResizeObserverBoxOptions.CONTENT_BOX;\n this.lastReportedSize = {\n inlineSize: 0,\n blockSize: 0\n };\n }\n ResizeObservation.prototype.isActive = function () {\n var size = calculateBoxSize(this.target, this.observedBox, true);\n if (skipNotifyOnElement(this.target)) {\n this.lastReportedSize = size;\n }\n if (this.lastReportedSize.inlineSize !== size.inlineSize\n || this.lastReportedSize.blockSize !== size.blockSize) {\n return true;\n }\n return false;\n };\n return ResizeObservation;\n}());\nexport { ResizeObservation };\n","var ResizeObserverDetail = (function () {\n function ResizeObserverDetail(resizeObserver, callback) {\n this.activeTargets = [];\n this.skippedTargets = [];\n this.observationTargets = [];\n this.observer = resizeObserver;\n this.callback = callback;\n }\n return ResizeObserverDetail;\n}());\nexport { ResizeObserverDetail };\n","import { scheduler, updateCount } from './utils/scheduler';\nimport { ResizeObservation } from './ResizeObservation';\nimport { ResizeObserverDetail } from './ResizeObserverDetail';\nimport { resizeObservers } from './utils/resizeObservers';\nvar observerMap = new WeakMap();\nvar getObservationIndex = function (observationTargets, target) {\n for (var i = 0; i < observationTargets.length; i += 1) {\n if (observationTargets[i].target === target) {\n return i;\n }\n }\n return -1;\n};\nvar ResizeObserverController = (function () {\n function ResizeObserverController() {\n }\n ResizeObserverController.connect = function (resizeObserver, callback) {\n var detail = new ResizeObserverDetail(resizeObserver, callback);\n observerMap.set(resizeObserver, detail);\n };\n ResizeObserverController.observe = function (resizeObserver, target, options) {\n var detail = observerMap.get(resizeObserver);\n var firstObservation = detail.observationTargets.length === 0;\n if (getObservationIndex(detail.observationTargets, target) < 0) {\n firstObservation && resizeObservers.push(detail);\n detail.observationTargets.push(new ResizeObservation(target, options && options.box));\n updateCount(1);\n scheduler.schedule();\n }\n };\n ResizeObserverController.unobserve = function (resizeObserver, target) {\n var detail = observerMap.get(resizeObserver);\n var index = getObservationIndex(detail.observationTargets, target);\n var lastObservation = detail.observationTargets.length === 1;\n if (index >= 0) {\n lastObservation && resizeObservers.splice(resizeObservers.indexOf(detail), 1);\n detail.observationTargets.splice(index, 1);\n updateCount(-1);\n }\n };\n ResizeObserverController.disconnect = function (resizeObserver) {\n var _this = this;\n var detail = observerMap.get(resizeObserver);\n detail.observationTargets.slice().forEach(function (ot) { return _this.unobserve(resizeObserver, ot.target); });\n detail.activeTargets.splice(0, detail.activeTargets.length);\n };\n return ResizeObserverController;\n}());\nexport { ResizeObserverController };\n","import { ResizeObserverController } from './ResizeObserverController';\nimport { isElement } from './utils/element';\nvar ResizeObserver = (function () {\n function ResizeObserver(callback) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (typeof callback !== 'function') {\n throw new TypeError(\"Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.\");\n }\n ResizeObserverController.connect(this, callback);\n }\n ResizeObserver.prototype.observe = function (target, options) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.observe(this, target, options);\n };\n ResizeObserver.prototype.unobserve = function (target) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.unobserve(this, target);\n };\n ResizeObserver.prototype.disconnect = function () {\n ResizeObserverController.disconnect(this);\n };\n ResizeObserver.toString = function () {\n return 'function ResizeObserver () { [polyfill code] }';\n };\n return ResizeObserver;\n}());\nexport { ResizeObserver };\n","import React from 'react';\nconst usePassiveLayoutEffect = React[typeof document !== 'undefined' && document.createElement !== void 0 ? 'useLayoutEffect' : 'useEffect'];\nexport default usePassiveLayoutEffect;","import * as React from 'react';\n\nconst useLatest = current => {\n const storedValue = React.useRef(current);\n React.useEffect(() => {\n storedValue.current = current;\n });\n return storedValue;\n};\n\nexport default useLatest;","var rafSchd = function rafSchd(fn) {\n var lastArgs = [];\n var frameId = null;\n\n var wrapperFn = function wrapperFn() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n lastArgs = args;\n\n if (frameId) {\n return;\n }\n\n frameId = requestAnimationFrame(function () {\n frameId = null;\n fn.apply(void 0, lastArgs);\n });\n };\n\n wrapperFn.cancel = function () {\n if (!frameId) {\n return;\n }\n\n cancelAnimationFrame(frameId);\n frameId = null;\n };\n\n return wrapperFn;\n};\n\nexport default rafSchd;\n","/* eslint-disable no-return-assign */\n\n/* eslint-disable no-underscore-dangle */\nimport { ResizeObserver as Polyfill } from '@juggle/resize-observer';\nimport useLayoutEffect from '@react-hook/passive-layout-effect';\nimport useLatest from '@react-hook/latest';\nimport rafSchd from 'raf-schd';\nconst ResizeObserver = typeof window !== 'undefined' && 'ResizeObserver' in window ? // @ts-ignore\nwindow.ResizeObserver : Polyfill;\n/**\n * A React hook that fires a callback whenever ResizeObserver detects a change to its size\n *\n * @param target A React ref created by `useRef()` or an HTML element\n * @param callback Invoked with a single `ResizeObserverEntry` any time\n * the `target` resizes\n */\n\nfunction _ref() {}\n\nfunction useResizeObserver(target, callback) {\n const resizeObserver = getResizeObserver();\n const storedCallback = useLatest(callback);\n useLayoutEffect(() => {\n let didUnsubscribe = false;\n const targetEl = target && 'current' in target ? target.current : target;\n if (!targetEl) return _ref;\n\n function cb(entry, observer) {\n if (didUnsubscribe) return;\n storedCallback.current(entry, observer);\n }\n\n resizeObserver.subscribe(targetEl, cb);\n return () => {\n didUnsubscribe = true;\n resizeObserver.unsubscribe(targetEl, cb);\n };\n }, [target, resizeObserver, storedCallback]);\n return resizeObserver.observer;\n}\n\nfunction createResizeObserver() {\n const callbacks = new Map();\n const observer = new ResizeObserver(rafSchd((entries, obs) => {\n for (let i = 0; i < entries.length; i++) {\n const cbs = callbacks.get(entries[i].target);\n cbs === null || cbs === void 0 ? void 0 : cbs.forEach(cb => cb(entries[i], obs));\n }\n }));\n return {\n observer,\n\n subscribe(target, callback) {\n var _callbacks$get;\n\n observer.observe(target);\n const cbs = (_callbacks$get = callbacks.get(target)) !== null && _callbacks$get !== void 0 ? _callbacks$get : [];\n cbs.push(callback);\n callbacks.set(target, cbs);\n },\n\n unsubscribe(target, callback) {\n var _callbacks$get2;\n\n const cbs = (_callbacks$get2 = callbacks.get(target)) !== null && _callbacks$get2 !== void 0 ? _callbacks$get2 : [];\n\n if (cbs.length === 1) {\n observer.unobserve(target);\n callbacks.delete(target);\n return;\n }\n\n const cbIndex = cbs.indexOf(callback);\n if (cbIndex !== -1) cbs.splice(cbIndex, 1);\n callbacks.set(target, cbs);\n }\n\n };\n}\n\nlet _resizeObserver;\n\nconst getResizeObserver = () => !_resizeObserver ? _resizeObserver = createResizeObserver() : _resizeObserver;\n\nexport default useResizeObserver;","var _radialGradient, _path, _g;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nfunction SvgKotlinLogoLarge(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 24\"\n }, props), _radialGradient || (_radialGradient = /*#__PURE__*/React.createElement(\"radialGradient\", {\n id: \"kotlin-logo-large_svg__a\",\n cx: 22.432,\n cy: 3.493,\n r: 21.679,\n gradientTransform: \"translate(-.19 .042) scale(.9998)\",\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.003,\n stopColor: \"#e44857\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.469,\n stopColor: \"#c711e1\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#7f52ff\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#kotlin-logo-large_svg__a)\",\n d: \"M22.87 21.68H3.94V2.76h18.93l-9.66 9.32z\"\n })), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#fff\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M45.69 2.73h-3.76l-8.18 8.73v-8.7h-3.02v18.92h3.02v-9.17l8.21 9.17h3.89l-8.75-9.79z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M55.93 8.44c-1.07-.62-2.28-.93-3.64-.93-1.38 0-2.61.31-3.7.93a6.63 6.63 0 00-2.55 2.57c-.61 1.1-.91 2.35-.91 3.74 0 1.4.3 2.64.91 3.74a6.45 6.45 0 002.53 2.57c1.09.62 2.32.93 3.7.93 1.36 0 2.58-.31 3.66-.93a6.53 6.53 0 002.51-2.57c.6-1.1.9-2.35.9-3.74 0-1.4-.3-2.64-.9-3.74-.6-1.1-1.43-1.95-2.51-2.57zm-.19 8.7c-.33.69-.8 1.23-1.4 1.61-.6.39-1.3.58-2.08.58-.79 0-1.49-.19-2.11-.58-.61-.39-1.09-.93-1.43-1.61-.34-.69-.51-1.48-.51-2.38 0-.9.17-1.7.51-2.39.34-.69.82-1.23 1.43-1.61.61-.39 1.32-.58 2.12-.58.77 0 1.46.19 2.07.58.6.39 1.07.93 1.4 1.61.33.69.49 1.48.49 2.39.01.9-.15 1.69-.49 2.38zm9.75-12.76h-2.92v2.35c0 .37-.09.65-.27.83-.18.18-.46.28-.84.28h-1.43v2.49h2.49v7.45c0 .77.16 1.46.47 2.05.31.59.76 1.05 1.34 1.37.58.32 1.27.49 2.06.49h2.23V19.1h-1.68c-.43 0-.78-.15-1.06-.45-.27-.3-.4-.7-.4-1.2v-7.11h3.22v-2.5h-3.22V4.38zM71.03 2H74v19.68h-2.97zm6.32.03h3v3.05h-3zm0 5.81h2.97v13.84h-2.97zm18.08 2.28a4.694 4.694 0 00-1.77-1.92c-.76-.46-1.65-.69-2.67-.69-1.08 0-2.03.26-2.84.79-.65.42-1.17.98-1.58 1.68l-.02-2.14H83.7v13.84h2.97v-7.74c0-.75.14-1.41.43-1.99.28-.58.68-1.03 1.2-1.35.52-.32 1.12-.48 1.82-.48.62 0 1.16.13 1.6.39.45.26.78.64 1.01 1.12.23.49.34 1.07.34 1.74v8.31h2.97v-8.73c.02-1.07-.2-2.01-.61-2.83z\"\n }))));\n}\n\nexport default SvgKotlinLogoLarge;","var __WEBPACK_NAMESPACE_OBJECT__ = require(\"@rescui/typography\");","export const KOTLINLANG_URL = 'https://kotlinlang.org';\nexport const PLAYGROUND_URL = 'https://play.kotlinlang.org/';","import React, { FC } from 'react';\nimport * as styles from './logo-large.module.pcss';\nimport KotlinLogoFull from './kotlin-logo-large.svg';\nimport classNames from 'classnames';\nimport { useTextStyles } from '@rescui/typography';\nimport { KOTLINLANG_URL } from 'src/consts';\n\ninterface LogoProps {\n productWebUrl?: string;\n className?: string;\n}\n\nexport const LogoLarge: FC<LogoProps> = ({ productWebUrl, className }) => {\n const version: null | string = productWebUrl\n ? getProductVersion(productWebUrl)\n : null;\n const textCn = useTextStyles();\n\n return (\n <div\n className={classNames(\n styles.container,\n className,\n textCn('rs-text-3', { hardness: 'average' })\n )}\n >\n <a\n className={styles.link}\n href={KOTLINLANG_URL}\n aria-label=\"Kotlin Home Page\"\n >\n <KotlinLogoFull />\n </a>\n {version && (\n <a\n className={classNames(styles.versionTag)}\n href={productWebUrl}\n target=\"_blank\"\n >\n {version}\n </a>\n )}\n </div>\n );\n};\n\nfunction getProductVersion(productWebUrl: string): null | string {\n const match = /v?\\d+\\.\\d+\\.\\d+$/.exec(productWebUrl);\n return match ? match[0] : null;\n}\n","// extracted by mini-css-extract-plugin\nexport const container = \"ktl-logo-large-module_container_+5pgf\";\nexport const link = \"ktl-logo-large-module_link_iZIEJ\";\nexport const versionTag = \"ktl-logo-large-module_version-tag_fiNIk\";","// extracted by mini-css-extract-plugin\nexport const headerMenu = \"ktl-header-module_header-menu_E3vzo\";\nexport const border = \"ktl-header-module_border_smGpe\";\nexport const withMenuPopup = \"ktl-header-module_with-menu-popup_DcoOT\";","import { KOTLINLANG_URL, PLAYGROUND_URL } from 'src/consts';\nimport { IsUrlActive } from 'src/helper/is-url-active';\n\nexport interface MenuItem {\n title: string;\n url: null | string;\n isActive?: boolean;\n items?: MenuItem[];\n}\n\nexport const SOLUTIONS_TITLE = 'Solutions';\nexport const MULTIPLATFORM_MOBILE_TITLE = 'Multiplatform Mobile';\nexport const MULTIPLATFORM_MOBILE_URL = `/lp/mobile/`;\nexport const SERVER_SIDE_TITLE = 'Server-side';\nexport const SERVER_SIDE_URL = `/lp/server-side/`;\nexport const WEB_FRONTEND_TITLE = 'Web frontend';\nexport const WEB_FRONTEND_URL = `/docs/js-overview.html`;\nexport const DATA_SCIENCE_TITLE = 'Data science';\nexport const DATA_SCIENCE_URL = `/docs/data-science-overview.html`;\nexport const ANDROID_TITLE = 'Android';\nexport const ANDROID_URL = `/docs/android-overview.html`;\nexport const DOCS_TITLE = 'Docs';\nexport const DOCS_URL = `/docs/home.html`;\nexport const COMMUNITY_TITLE = 'Community';\nexport const COMMUNITY_URL = `/community/`;\nexport const TEACH_TITLE = 'Teach';\nexport const TEACH_URL = `/education/`;\nexport const PLAY_TITLE = 'Play';\nexport const PLAY_TITLE_FULL = 'Playground';\nexport const PLAY_URL = PLAYGROUND_URL;\nexport const PLAY_HANDSON_URL = `${PLAY_URL}hands-on`;\nexport const PLAY_HANDSON_TITLE = 'Hands-on';\nexport const PLAY_EXAMPLES_URL = `${PLAY_URL}byExample`;\nexport const PLAY_EXAMPLES_TITLE = 'Examples';\nexport const PLAY_KOANS_URL = `${PLAY_URL}koans`;\nexport const PLAY_KOANS_TITLE = 'Koans';\nexport const KOTLIN_DOCS_TITLE = 'Kotlin';\nexport const KOTLIN_DOCS_URL = `/docs/home.html`;\nexport const KMM_DOCS_TITLE = 'KMM';\nexport const KMM_DOCS_URL = `/docs/mobile/home.html`;\n\nconst navScheme: MenuItem[] = [\n {\n title: SOLUTIONS_TITLE,\n url: null,\n items: [\n {\n title: MULTIPLATFORM_MOBILE_TITLE,\n url: MULTIPLATFORM_MOBILE_URL,\n },\n {\n title: SERVER_SIDE_TITLE,\n url: SERVER_SIDE_URL,\n },\n {\n title: WEB_FRONTEND_TITLE,\n url: WEB_FRONTEND_URL,\n },\n {\n title: DATA_SCIENCE_TITLE,\n url: DATA_SCIENCE_URL,\n },\n {\n title: ANDROID_TITLE,\n url: ANDROID_URL,\n },\n ],\n },\n {\n title: DOCS_TITLE,\n url: KOTLIN_DOCS_URL,\n },\n {\n title: COMMUNITY_TITLE,\n url: COMMUNITY_URL,\n },\n {\n title: TEACH_TITLE,\n url: TEACH_URL,\n },\n {\n title: PLAY_TITLE,\n url: null,\n items: [\n {\n title: PLAY_TITLE_FULL,\n url: PLAY_URL,\n },\n {\n title: PLAY_HANDSON_TITLE,\n url: PLAY_HANDSON_URL,\n },\n {\n title: PLAY_EXAMPLES_TITLE,\n url: PLAY_EXAMPLES_URL,\n },\n {\n title: PLAY_KOANS_TITLE,\n url: PLAY_KOANS_URL,\n },\n ],\n },\n];\n\nexport function getNavScheme(\n isUrlActive: IsUrlActive = (url, currentUrl) => url === currentUrl,\n currentUrl?: string,\n isPlayground?: boolean\n): MenuItem[] {\n return navScheme.map(({ title, url, items }) => {\n if (url && currentUrl) {\n url = makeExternalUrl(url, currentUrl, !!isPlayground);\n }\n\n const item: MenuItem = {\n title,\n url,\n };\n let isActive = isUrlActive(url, currentUrl);\n\n item.items =\n items?.map(({ title, url: childUrl }) => {\n if (childUrl && currentUrl) {\n childUrl = makeExternalUrl(childUrl, currentUrl, !!isPlayground);\n }\n\n let childActive = isUrlActive(childUrl, currentUrl);\n\n if (childActive) {\n isActive = childActive;\n }\n\n return {\n title,\n url: childUrl,\n isActive: childActive,\n };\n }) ?? [];\n\n item.isActive = isActive;\n\n return item;\n });\n}\n\nfunction makeExternalUrl(\n url: string,\n currentUrl: string,\n isPlayground: boolean\n): string {\n if (isPlayground) {\n if (url.startsWith(PLAY_URL)) {\n return url.replace(PLAY_URL, '/');\n } else {\n return `${KOTLINLANG_URL}${url}`;\n }\n }\n\n return url;\n}\n","// extracted by mini-css-extract-plugin\nexport const nav = \"ktl-horizontal-menu-module_nav_xYv4i\";\nexport const menuList = \"ktl-horizontal-menu-module_menu-list_7oi3W\";\nexport const menuItemWrap = \"ktl-horizontal-menu-module_menu-item-wrap_dnVf-\";\nexport const menuItem = \"ktl-horizontal-menu-module_menu-item_Z+YKZ\";\nexport const expanded = \"ktl-horizontal-menu-module_expanded_thibK\";\nexport const itemActive = \"ktl-horizontal-menu-module_item-active_+iyf-\";\nexport const dropdownMenu = \"ktl-horizontal-menu-module_dropdown-menu_dVOw-\";\nexport const fadeIn = \"ktl-horizontal-menu-module_fade-in_Q2pCx\";\nexport const darkTheme = \"ktl-horizontal-menu-module_dark-theme_Lp065\";\nexport const dropdownMenuItem = \"ktl-horizontal-menu-module_dropdown-menu-item_wRlcN\";\nexport const active = \"ktl-horizontal-menu-module_active_azHwP\";\nexport const dropdownMenuExpanded = \"ktl-horizontal-menu-module_dropdown-menu-expanded_L0RWy\";\nexport const dropdownMenuAlignRight = \"ktl-horizontal-menu-module_dropdown-menu-align-right_HS-oO\";","import classNames from 'classnames';\nimport React, { FC, useEffect, useState } from 'react';\nimport { Theme } from '@rescui/ui-contexts/lib/parts/theme-context';\nimport * as styles from './horizontal-menu.module.pcss';\nimport { MenuItem } from '../nav-scheme';\nimport { useTextStyles } from '@rescui/typography';\nimport { LinkHandler } from 'src/helper/link-handler';\n\ninterface DropdownMenuProps {\n items: MenuItem[];\n isExpanded: boolean;\n alignRight: boolean;\n linkHandler?: LinkHandler;\n}\n\nconst DropdownMenu: FC<DropdownMenuProps> = ({\n items,\n isExpanded,\n alignRight,\n linkHandler,\n}) => {\n const textCn = useTextStyles();\n\n return (\n <ul\n className={classNames(styles.dropdownMenu, textCn('rs-text-2'), {\n [styles.dropdownMenuExpanded]: isExpanded,\n [styles.dropdownMenuAlignRight]: alignRight,\n })}\n >\n {items.map((item, key) => {\n const Tag = !item.isActive && item.url ? 'a' : 'span';\n\n return (\n <li key={key}>\n <Tag\n className={classNames(styles.dropdownMenuItem, {\n [styles.active]: item.isActive,\n })}\n {...(item.url\n ? {\n href: item.url,\n onClick: linkHandler\n ? (event) => item.url && linkHandler(event, item.url)\n : undefined,\n }\n : {})}\n >\n {item.title}\n </Tag>\n </li>\n );\n })}\n </ul>\n );\n};\n\ninterface HorizontalMenuItemProps {\n item: MenuItem;\n onMouseEnter: (item: MenuItem) => void;\n onMouseLeave: () => void;\n isExpanded: boolean;\n isLast: boolean;\n linkHandler?: LinkHandler;\n}\n\nconst HorizontalMenuItem: FC<HorizontalMenuItemProps> = ({\n item,\n onMouseEnter,\n onMouseLeave,\n isExpanded,\n isLast,\n linkHandler,\n}) => {\n const Tag = item.isActive || !item.url ? 'span' : 'a';\n const textCn = useTextStyles();\n const handleEnter = () => onMouseEnter(item);\n\n return (\n <li\n className={styles.menuItemWrap}\n onMouseEnter={handleEnter}\n onMouseLeave={onMouseLeave}\n >\n <Tag\n {...(item.url\n ? {\n href: item.url,\n onClick: linkHandler\n ? (event) => item.url && linkHandler(event, item.url)\n : undefined,\n }\n : {})}\n key={item.title}\n className={classNames(styles.menuItem, textCn('rs-text-2'), {\n [styles.itemActive]: item.isActive,\n [styles.expanded]: isExpanded && !!item.items?.length,\n })}\n >\n {item.title}\n </Tag>\n {!!item.items?.length && (\n <DropdownMenu\n items={item.items}\n isExpanded={isExpanded}\n alignRight={isLast}\n linkHandler={linkHandler}\n />\n )}\n </li>\n );\n};\n\ninterface HorizontalMenuProps {\n items: MenuItem[];\n theme: Theme;\n linkHandler?: LinkHandler;\n}\n\nexport const HorizontalMenu: FC<HorizontalMenuProps> = ({\n items,\n theme,\n linkHandler,\n}) => {\n const [activeIndex, setActiveIndex] = useState(-1);\n const [debouncedActiveIndex, setDebouncedActiveIndex] = useState(activeIndex);\n\n useEffect(() => {\n const handler = setTimeout(\n () => setDebouncedActiveIndex(activeIndex),\n activeIndex !== -1 ? 200 : 400\n );\n return () => clearTimeout(handler);\n }, [activeIndex]);\n\n const handleEnter = (item: MenuItem) =>\n setActiveIndex(items.findIndex((val) => val === item));\n const handleLeave = () => setActiveIndex(-1);\n\n return (\n <nav\n className={classNames(styles.nav, {\n [styles.darkTheme]: theme === 'dark',\n })}\n >\n <ul className={styles.menuList}>\n {items.map((item, index) => (\n <HorizontalMenuItem\n item={item}\n onMouseEnter={handleEnter}\n onMouseLeave={handleLeave}\n isExpanded={index === debouncedActiveIndex}\n isLast={index === items.length - 1}\n key={index}\n linkHandler={linkHandler}\n />\n ))}\n </ul>\n </nav>\n );\n};\n","var _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nfunction SvgSearch(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M15.847 6.861A6.99 6.99 0 009.587 3a6.997 6.997 0 104.186 12.601l6.106 6.106 1.414-1.414-6.107-6.106a6.99 6.99 0 00.66-7.326zM14.587 10a5 5 0 11-10.001 0 5 5 0 0110 0z\",\n fill: \"currentColor\"\n })));\n}\n\nexport default SvgSearch;","import React, { FC } from 'react';\nimport * as styles from './search-button.pcss';\nimport classNames from 'classnames';\nimport SearchIcon from './search.svg';\n\ninterface SearchButtonProps {\n onClick?: () => void;\n isActive: boolean;\n}\nexport const SearchButton: FC<SearchButtonProps> = ({ onClick, isActive }) => {\n return (\n <button\n type=\"button\"\n className={classNames(styles.button, {\n [styles.active]: isActive,\n })}\n aria-label=\"Search\"\n onClick={onClick}\n >\n <SearchIcon />\n </button>\n );\n};\n","// extracted by mini-css-extract-plugin\nexport const button = \"ktl-search-button_button_JUyxv\";\nexport const active = \"ktl-search-button_active_G-dk1\";","var _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nfunction SvgHamburgerIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M4 5h16v2H4V5zm0 6h16v2H4v-2zm16 6H4v2h16v-2z\",\n fill: \"currentColor\"\n })));\n}\n\nexport default SvgHamburgerIcon;","var _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nfunction SvgCloseIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M15.707 1.707L14.293.293 8 6.586 1.707.293.293 1.707 6.586 8 .293 14.293l1.414 1.414L8 9.414l6.293 6.293 1.414-1.414L9.414 8l6.293-6.293z\",\n fill: \"currentColor\"\n })));\n}\n\nexport default SvgCloseIcon;","import React, { FC } from 'react';\nimport * as styles from './menu-button.pcss';\nimport classNames from 'classnames';\nimport HamburgerIcon from './hamburger-icon.svg';\nimport CloseIcon from './close-icon.svg';\n\ninterface MenuButtonProps {\n onClick: () => void;\n isExpanded: boolean;\n}\n\nexport const MenuButton: FC<MenuButtonProps> = ({ onClick, isExpanded }) => {\n return (\n <button\n type=\"button\"\n className={classNames(styles.button)}\n aria-haspopup=\"true\"\n aria-label=\"Open the navigation\"\n onClick={onClick}\n >\n {isExpanded ? <CloseIcon /> : <HamburgerIcon />}\n </button>\n );\n};\n","// extracted by mini-css-extract-plugin\nexport const button = \"ktl-menu-button_button_InVin\";","function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n// Older browsers don't support event options, feature detect it.\n\n// Adopted and modified solution from Bohdan Didukh (2017)\n// https://stackoverflow.com/questions/41594997/ios-10-safari-prevent-scrolling-behind-a-fixed-overlay-and-maintain-scroll-posi\n\nvar hasPassiveEvents = false;\nif (typeof window !== 'undefined') {\n var passiveTestOptions = {\n get passive() {\n hasPassiveEvents = true;\n return undefined;\n }\n };\n window.addEventListener('testPassive', null, passiveTestOptions);\n window.removeEventListener('testPassive', null, passiveTestOptions);\n}\n\nvar isIosDevice = typeof window !== 'undefined' && window.navigator && window.navigator.platform && (/iP(ad|hone|od)/.test(window.navigator.platform) || window.navigator.platform === 'MacIntel' && window.navigator.maxTouchPoints > 1);\n\n\nvar locks = [];\nvar documentListenerAdded = false;\nvar initialClientY = -1;\nvar previousBodyOverflowSetting = void 0;\nvar previousBodyPaddingRight = void 0;\n\n// returns true if `el` should be allowed to receive touchmove events.\nvar allowTouchMove = function allowTouchMove(el) {\n return locks.some(function (lock) {\n if (lock.options.allowTouchMove && lock.options.allowTouchMove(el)) {\n return true;\n }\n\n return false;\n });\n};\n\nvar preventDefault = function preventDefault(rawEvent) {\n var e = rawEvent || window.event;\n\n // For the case whereby consumers adds a touchmove event listener to document.\n // Recall that we do document.addEventListener('touchmove', preventDefault, { passive: false })\n // in disableBodyScroll - so if we provide this opportunity to allowTouchMove, then\n // the touchmove event on document will break.\n if (allowTouchMove(e.target)) {\n return true;\n }\n\n // Do not prevent if the event has more than one touch (usually meaning this is a multi touch gesture like pinch to zoom).\n if (e.touches.length > 1) return true;\n\n if (e.preventDefault) e.preventDefault();\n\n return false;\n};\n\nvar setOverflowHidden = function setOverflowHidden(options) {\n // If previousBodyPaddingRight is already set, don't set it again.\n if (previousBodyPaddingRight === undefined) {\n var _reserveScrollBarGap = !!options && options.reserveScrollBarGap === true;\n var scrollBarGap = window.innerWidth - document.documentElement.clientWidth;\n\n if (_reserveScrollBarGap && scrollBarGap > 0) {\n previousBodyPaddingRight = document.body.style.paddingRight;\n document.body.style.paddingRight = scrollBarGap + 'px';\n }\n }\n\n // If previousBodyOverflowSetting is already set, don't set it again.\n if (previousBodyOverflowSetting === undefined) {\n previousBodyOverflowSetting = document.body.style.overflow;\n // Setting overflow on body/documentElement synchronously in Desktop Safari slows down\n // the responsiveness for some reason. Setting within a setTimeout fixes this.\n setTimeout(function () {\n document.body.style.overflow = 'hidden';\n });\n }\n};\n\nvar restoreOverflowSetting = function restoreOverflowSetting() {\n // Setting overflow on body/documentElement synchronously in Desktop Safari slows down\n // the responsiveness for some reason. Setting within a setTimeout fixes this.\n setTimeout(function () {\n if (previousBodyPaddingRight !== undefined) {\n document.body.style.paddingRight = previousBodyPaddingRight;\n\n // Restore previousBodyPaddingRight to undefined so setOverflowHidden knows it\n // can be set again.\n previousBodyPaddingRight = undefined;\n }\n\n if (previousBodyOverflowSetting !== undefined) {\n document.body.style.overflow = previousBodyOverflowSetting;\n\n // Restore previousBodyOverflowSetting to undefined\n // so setOverflowHidden knows it can be set again.\n previousBodyOverflowSetting = undefined;\n }\n });\n};\n\n// https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight#Problems_and_solutions\nvar isTargetElementTotallyScrolled = function isTargetElementTotallyScrolled(targetElement) {\n return targetElement ? targetElement.scrollHeight - targetElement.scrollTop <= targetElement.clientHeight : false;\n};\n\nvar handleScroll = function handleScroll(event, targetElement) {\n var clientY = event.targetTouches[0].clientY - initialClientY;\n\n if (allowTouchMove(event.target)) {\n return false;\n }\n\n if (targetElement && targetElement.scrollTop === 0 && clientY > 0) {\n // element is at the top of its scroll.\n return preventDefault(event);\n }\n\n if (isTargetElementTotallyScrolled(targetElement) && clientY < 0) {\n // element is at the bottom of its scroll.\n return preventDefault(event);\n }\n\n event.stopPropagation();\n return true;\n};\n\nexport var disableBodyScroll = function disableBodyScroll(targetElement, options) {\n if (isIosDevice) {\n // targetElement must be provided, and disableBodyScroll must not have been\n // called on this targetElement before.\n if (!targetElement) {\n // eslint-disable-next-line no-console\n console.error('disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.');\n return;\n }\n\n if (targetElement && !locks.some(function (lock) {\n return lock.targetElement === targetElement;\n })) {\n var lock = {\n targetElement: targetElement,\n options: options || {}\n };\n\n locks = [].concat(_toConsumableArray(locks), [lock]);\n\n targetElement.ontouchstart = function (event) {\n if (event.targetTouches.length === 1) {\n // detect single touch.\n initialClientY = event.targetTouches[0].clientY;\n }\n };\n targetElement.ontouchmove = function (event) {\n if (event.targetTouches.length === 1) {\n // detect single touch.\n handleScroll(event, targetElement);\n }\n };\n\n if (!documentListenerAdded) {\n document.addEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = true;\n }\n }\n } else {\n setOverflowHidden(options);\n var _lock = {\n targetElement: targetElement,\n options: options || {}\n };\n\n locks = [].concat(_toConsumableArray(locks), [_lock]);\n }\n};\n\nexport var clearAllBodyScrollLocks = function clearAllBodyScrollLocks() {\n if (isIosDevice) {\n // Clear all locks ontouchstart/ontouchmove handlers, and the references.\n locks.forEach(function (lock) {\n lock.targetElement.ontouchstart = null;\n lock.targetElement.ontouchmove = null;\n });\n\n if (documentListenerAdded) {\n document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = false;\n }\n\n locks = [];\n\n // Reset initial clientY.\n initialClientY = -1;\n } else {\n restoreOverflowSetting();\n locks = [];\n }\n};\n\nexport var enableBodyScroll = function enableBodyScroll(targetElement) {\n if (isIosDevice) {\n if (!targetElement) {\n // eslint-disable-next-line no-console\n console.error('enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.');\n return;\n }\n\n targetElement.ontouchstart = null;\n targetElement.ontouchmove = null;\n\n locks = locks.filter(function (lock) {\n return lock.targetElement !== targetElement;\n });\n\n if (documentListenerAdded && locks.length === 0) {\n document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n\n documentListenerAdded = false;\n }\n } else {\n locks = locks.filter(function (lock) {\n return lock.targetElement !== targetElement;\n });\n if (!locks.length) {\n restoreOverflowSetting();\n }\n }\n};\n\n","import React, {\n CSSProperties,\n FC,\n Fragment,\n useCallback,\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n} from 'react';\nimport * as styles from './menu-popup.module.pcss';\nimport { MenuItem } from '../nav-scheme';\nimport classNames from 'classnames';\nimport { MenuButton } from './menu-button/menu-button';\nimport { useTextStyles } from '@rescui/typography';\nimport { LinkHandler } from 'src/helper/link-handler';\nimport {\n disableBodyScroll,\n enableBodyScroll,\n clearAllBodyScrollLocks,\n} from 'body-scroll-lock';\n\ninterface MenuItemProps {\n item: MenuItem;\n level: number;\n linkHandler?: LinkHandler;\n}\n\ninterface MenuItemStyle extends CSSProperties {\n '--level': number;\n}\n\nconst MenuListItem: FC<MenuItemProps> = ({ item, level, linkHandler }) => {\n const Tag = item.url ? 'a' : 'span';\n const style: MenuItemStyle = {\n '--level': level,\n };\n const handleClick = useCallback(\n (event) => linkHandler && item.url && linkHandler(event, item.url),\n []\n );\n\n return (\n <Tag\n {...(item.url\n ? {\n href: item.url,\n onClick: handleClick,\n }\n : {})}\n className={classNames(styles.menuItem, {\n [styles.menuItemRoot]: level === 0,\n [styles.active]: item.isActive,\n [styles.activeWithChild]: item.items && item.items.length,\n })}\n style={style}\n >\n {item.title}\n </Tag>\n );\n};\n\ninterface MenuListProps {\n items: MenuItem[];\n level: number;\n linkHandler?: LinkHandler;\n}\n\nconst MenuList: FC<MenuListProps> = ({ items, level, linkHandler }) => {\n return (\n <>\n {items.map((item, i) => (\n <Fragment key={i}>\n <MenuListItem item={item} level={level} linkHandler={linkHandler} />\n {item.items && item.items.length > 0 && (\n <MenuList\n items={item.items}\n level={level + 1}\n linkHandler={linkHandler}\n />\n )}\n </Fragment>\n ))}\n </>\n );\n};\n\ninterface MenuPopupProps {\n items: MenuItem[];\n isExpanded: boolean;\n setExpand: React.Dispatch<React.SetStateAction<boolean>>;\n headerRef: React.RefObject<HTMLElement>;\n linkHandler?: LinkHandler;\n}\n\ninterface NavStyles {\n top?: number;\n}\n\nexport const MenuPopup: FC<MenuPopupProps> = ({\n items,\n isExpanded,\n setExpand,\n headerRef,\n linkHandler,\n}) => {\n const navRef = useRef<null | HTMLElement>(null);\n const textCn = useTextStyles();\n const [navStyle, setNavStyle] = useState<NavStyles>({});\n\n useEffect(() => {\n return () => {\n setExpand(false);\n clearAllBodyScrollLocks();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (headerRef.current) {\n setNavStyle({ top: headerRef.current.getBoundingClientRect().bottom });\n }\n }, [isExpanded, headerRef]);\n\n const handleClick = useCallback(() => {\n if (navRef.current) {\n isExpanded\n ? enableBodyScroll(navRef.current)\n : disableBodyScroll(navRef.current);\n }\n setExpand(!isExpanded);\n }, [isExpanded, navRef]);\n\n return (\n <>\n <MenuButton onClick={handleClick} isExpanded={isExpanded} />\n\n <nav\n style={navStyle}\n ref={navRef}\n className={classNames(styles.menuPopup, textCn('rs-text-2'), {\n [styles.menuPopupExpanded]: isExpanded,\n })}\n >\n <MenuList items={items} level={0} linkHandler={linkHandler} />\n </nav>\n </>\n );\n};\n","// extracted by mini-css-extract-plugin\nexport const menuPopup = \"ktl-menu-popup-module_menu-popup_Yqtnq\";\nexport const menuItem = \"ktl-menu-popup-module_menu-item_f6wvh\";\nexport const active = \"ktl-menu-popup-module_active_DrZav\";\nexport const activeWithChild = \"ktl-menu-popup-module_active-with-child_BDnrW\";\nexport const menuItemRoot = \"ktl-menu-popup-module_menu-item-root_C-hkN\";\nexport const menuPopupExpanded = \"ktl-menu-popup-module_menu-popup-expanded_FlujR\";","var _radialGradient, _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nfunction SvgKotlinLogoSmall(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\"\n }, props), _radialGradient || (_radialGradient = /*#__PURE__*/React.createElement(\"radialGradient\", {\n id: \"kotlin-logo-small_svg__a\",\n cx: 22.432,\n cy: 3.493,\n r: 21.679,\n gradientTransform: \"translate(-.19 .042) scale(.9998)\",\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.003,\n stopColor: \"#e44857\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.469,\n stopColor: \"#c711e1\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#7f52ff\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#kotlin-logo-small_svg__a)\",\n d: \"M22.87 21.68H3.94V2.76h18.93l-9.66 9.32z\"\n })));\n}\n\nexport default SvgKotlinLogoSmall;","// extracted by mini-css-extract-plugin\nexport const logoSmall = \"ktl-logo-small-module_logo-small_7ddNl\";\nexport const link = \"ktl-logo-small-module_link_6gruv\";\nexport const iconWrap = \"ktl-logo-small-module_icon-wrap_BFVBd\";\nexport const icon = \"ktl-logo-small-module_icon_JM+yC\";","import React, { FC } from 'react';\nimport KotlinLogoSmall from './kotlin-logo-small.svg';\nimport * as styles from './logo-small.module.pcss';\nimport classNames from 'classnames';\nimport { useTextStyles } from '@rescui/typography';\nimport { KOTLINLANG_URL } from 'src/consts';\n\ninterface LogoSmallProps {\n homeUrl: string;\n homeTitle: string;\n className?: string;\n}\n\nexport const LogoSmall: FC<LogoSmallProps> = ({\n homeTitle,\n homeUrl,\n className,\n}) => {\n const textCn = useTextStyles();\n\n return (\n <div className={classNames(styles.logoSmall, className)}>\n <a href={KOTLINLANG_URL} className={styles.iconWrap}>\n <KotlinLogoSmall className={styles.icon} />\n </a>\n <a href={homeUrl} className={classNames(styles.link, textCn('rs-h3'))}>\n {homeTitle}\n </a>\n </div>\n );\n};\n","import React, {\n FC,\n ForwardedRef,\n forwardRef,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { ThemeProvider } from '@rescui/ui-contexts';\nimport { Theme } from '@rescui/ui-contexts/lib/parts/theme-context';\nimport useResizeObserver from '@react-hook/resize-observer';\nimport { LogoLarge } from './logo-large/logo-large';\nimport * as styles from './header.module.pcss';\nimport { getNavScheme } from './nav-scheme';\nimport { HorizontalMenu } from './horizontal-menu/horizontal-menu';\nimport { SearchButton } from './search-button/search-button';\nimport { MenuPopup } from './menu-popup/menu-popup';\nimport { LogoSmall } from './logo-small/logo-small';\nimport classNames from 'classnames';\nimport { LinkHandler } from 'src/helper/link-handler';\nimport { IsUrlActive } from 'src/helper/is-url-active';\n\nexport interface HeaderProps {\n currentUrl?: string;\n currentTitle?: string;\n productWebUrl?: string;\n hasSearch?: boolean;\n onSearchClick?: () => void;\n className?: string;\n hasBorder?: boolean;\n dropdownTheme?: Theme;\n linkHandler?: LinkHandler;\n isPlayground?: boolean;\n isUrlActive?: IsUrlActive;\n}\n\nconst MENU_POPUP_BREAKPOINT = 640;\n\nexport const Header: FC<HeaderProps> = forwardRef(\n (\n {\n productWebUrl,\n hasSearch = false,\n onSearchClick,\n currentUrl,\n currentTitle,\n className,\n hasBorder = true,\n dropdownTheme = 'dark',\n linkHandler,\n isPlayground,\n isUrlActive,\n },\n forwardedRef?: ForwardedRef<null | HTMLElement>\n ) => {\n const [menuPopupExpanded, setMenuPopupExpanded] = useState(false);\n const [isMenuPopupVisible, setIsMenuPopupVisible] = useState(false);\n const items = useMemo(\n () => getNavScheme(isUrlActive, currentUrl, isPlayground),\n [isUrlActive, currentUrl, isPlayground]\n );\n const headerRef = useRef<null | HTMLElement>(null);\n useImperativeHandle<null | HTMLElement, null | HTMLElement>(\n forwardedRef,\n () => headerRef.current\n );\n\n useLayoutEffect(() => {\n setIsMenuPopupVisible(\n (headerRef.current?.getBoundingClientRect?.().width ?? 0) <=\n MENU_POPUP_BREAKPOINT\n );\n }, [headerRef]);\n\n useResizeObserver(headerRef, (entry) =>\n setIsMenuPopupVisible(entry.contentRect.width <= MENU_POPUP_BREAKPOINT)\n );\n\n return (\n <ThemeProvider theme={'dark'}>\n <header\n ref={headerRef}\n className={classNames(styles.headerMenu, className, {\n [styles.withMenuPopup]: menuPopupExpanded,\n [styles.border]: hasBorder,\n })}\n >\n {currentTitle &&\n currentUrl &&\n (isMenuPopupVisible && !menuPopupExpanded ? (\n <LogoSmall homeTitle={currentTitle} homeUrl={currentUrl} />\n ) : (\n <LogoLarge productWebUrl={productWebUrl} />\n ))}\n\n {!isMenuPopupVisible && (\n <HorizontalMenu\n items={items}\n theme={dropdownTheme}\n linkHandler={linkHandler}\n />\n )}\n\n <SearchButton\n onClick={onSearchClick}\n isActive={hasSearch && !!onSearchClick}\n />\n\n {isMenuPopupVisible && (\n <MenuPopup\n items={items}\n setExpand={setMenuPopupExpanded}\n isExpanded={menuPopupExpanded}\n headerRef={headerRef}\n linkHandler={linkHandler}\n />\n )}\n </header>\n </ThemeProvider>\n );\n }\n);\n","import { Header } from './header';\nexport default Header;\n\nexport * from './nav-scheme';\n"],"names":["hasOwn","hasOwnProperty","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","inner","apply","toString","Object","prototype","key","call","join","module","exports","default","f","g","Fragment","Symbol","for","h","m","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","n","p","ref","__self","__source","q","c","a","k","b","d","e","l","defaultProps","$$typeof","type","props","_owner","current","jsx","jsxs","require","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","getter","__esModule","definition","o","defineProperty","enumerable","get","obj","prop","r","toStringTag","value","ResizeObserverBoxOptions","resizeObservers","msg","trigger","freeze","ResizeObserverSize","inlineSize","blockSize","this","DOMRectReadOnly","x","y","width","height","top","left","bottom","right","toJSON","_a","fromRect","rectangle","isSVG","target","SVGElement","isHidden","getBBox","_b","offsetWidth","offsetHeight","getClientRects","isElement","Element","scope","ownerDocument","defaultView","global","window","cache","WeakMap","scrollRegexp","verticalRegexp","IE","test","navigator","userAgent","parseDimension","pixel","parseFloat","size","switchSizes","zeroBoxes","devicePixelContentBoxSize","borderBoxSize","contentBoxSize","contentRect","calculateBoxSizes","forceRecalculation","has","set","cs","getComputedStyle","svg","ownerSVGElement","removePadding","boxSizing","writingMode","canScrollVertically","overflowY","canScrollHorizontally","overflowX","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTop","borderTopWidth","borderRight","borderRightWidth","borderBottom","borderBottomWidth","horizontalPadding","verticalPadding","horizontalBorderArea","borderLeftWidth","verticalBorderArea","horizontalScrollbarThickness","clientHeight","verticalScrollbarThickness","clientWidth","widthReduction","heightReduction","contentWidth","contentHeight","borderBoxWidth","borderBoxHeight","boxes","Math","round","devicePixelRatio","calculateBoxSize","observedBox","DEVICE_PIXEL_CONTENT_BOX","BORDER_BOX","ResizeObserverEntry","calculateDepthForNode","node","Infinity","depth","parent","parentNode","broadcastActiveObservations","shallowestDepth","callbacks","forEach","ro","activeTargets","entries","ot","entry","targetDepth","lastReportedSize","callback","observer","splice","_i","callbacks_1","gatherActiveObservationsAtDepth","skippedTargets","observationTargets","isActive","process","event","some","ErrorEvent","message","document","createEvent","initEvent","dispatchEvent","queueMicroTask","toggle_1","el_1","createTextNode","MutationObserver","cb","observe","characterData","textContent","watching","observerConfig","attributes","childList","subtree","events","time","timeout","Date","now","scheduled","scheduler","Scheduler","_this","stopped","listener","schedule","run","until","elementsHaveResized","start","requestAnimationFrame","stop","body","addEventListener","name","disconnect","removeEventListener","updateCount","ResizeObservation","CONTENT_BOX","tagName","isReplacedElement","display","ResizeObserverDetail","resizeObserver","observerMap","getObservationIndex","ResizeObserverController","connect","detail","options","firstObservation","box","unobserve","index","lastObservation","indexOf","slice","ResizeObserver","TypeError","createElement","storedValue","fn","lastArgs","frameId","wrapperFn","_len","args","_key","cancel","cancelAnimationFrame","_ref","_resizeObserver","getResizeObserver","Map","obs","cbs","subscribe","_callbacks$get","unsubscribe","_callbacks$get2","delete","cbIndex","createResizeObserver","storedCallback","didUnsubscribe","targetEl","_radialGradient","_path","_g","_extends","assign","source","xmlns","viewBox","id","cx","cy","gradientTransform","gradientUnits","offset","stopColor","fill","KOTLINLANG_URL","LogoLarge","productWebUrl","className","version","match","exec","getProductVersion","textCn","useTextStyles","hardness","href","SOLUTIONS_TITLE","MULTIPLATFORM_MOBILE_TITLE","MULTIPLATFORM_MOBILE_URL","SERVER_SIDE_TITLE","SERVER_SIDE_URL","WEB_FRONTEND_TITLE","WEB_FRONTEND_URL","DATA_SCIENCE_TITLE","DATA_SCIENCE_URL","ANDROID_TITLE","ANDROID_URL","DOCS_TITLE","DOCS_URL","COMMUNITY_TITLE","COMMUNITY_URL","TEACH_TITLE","TEACH_URL","PLAY_TITLE","PLAY_TITLE_FULL","PLAY_URL","PLAY_HANDSON_URL","PLAY_HANDSON_TITLE","PLAY_EXAMPLES_URL","PLAY_EXAMPLES_TITLE","PLAY_KOANS_URL","PLAY_KOANS_TITLE","KOTLIN_DOCS_TITLE","KOTLIN_DOCS_URL","KMM_DOCS_TITLE","KMM_DOCS_URL","navScheme","title","url","items","getNavScheme","isUrlActive","currentUrl","isPlayground","map","makeExternalUrl","item","childUrl","childActive","startsWith","replace","DropdownMenu","isExpanded","alignRight","linkHandler","Tag","onClick","HorizontalMenuItem","onMouseEnter","onMouseLeave","isLast","HorizontalMenu","theme","activeIndex","setActiveIndex","useState","debouncedActiveIndex","setDebouncedActiveIndex","useEffect","handler","setTimeout","clearTimeout","handleEnter","findIndex","val","handleLeave","fillRule","clipRule","SearchButton","MenuButton","_toConsumableArray","arr","arr2","from","hasPassiveEvents","passiveTestOptions","passive","isIosDevice","platform","maxTouchPoints","locks","documentListenerAdded","initialClientY","previousBodyOverflowSetting","previousBodyPaddingRight","allowTouchMove","el","lock","preventDefault","rawEvent","touches","restoreOverflowSetting","style","overflow","disableBodyScroll","targetElement","console","error","concat","ontouchstart","targetTouches","clientY","ontouchmove","scrollTop","scrollHeight","isTargetElementTotallyScrolled","stopPropagation","handleScroll","_reserveScrollBarGap","reserveScrollBarGap","scrollBarGap","innerWidth","documentElement","setOverflowHidden","_lock","MenuListItem","level","handleClick","useCallback","MenuList","MenuPopup","setExpand","headerRef","navRef","useRef","navStyle","setNavStyle","useLayoutEffect","getBoundingClientRect","filter","enableBodyScroll","LogoSmall","homeTitle","homeUrl","Header","forwardRef","forwardedRef","hasSearch","onSearchClick","currentTitle","hasBorder","dropdownTheme","menuPopupExpanded","setMenuPopupExpanded","isMenuPopupVisible","setIsMenuPopupVisible","useMemo","useImperativeHandle","useResizeObserver","ThemeProvider"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"header.js","mappings":"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","sources":["webpack://@jetbrains/kotlin-web-site-ui/./node_modules/classnames/index.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/react/jsx-runtime.js","webpack://@jetbrains/kotlin-web-site-ui/external commonjs2 {\"commonjs2\":\"react\",\"commonjs\":\"react\"}","webpack://@jetbrains/kotlin-web-site-ui/webpack/bootstrap","webpack://@jetbrains/kotlin-web-site-ui/webpack/runtime/compat get default export","webpack://@jetbrains/kotlin-web-site-ui/webpack/runtime/define property getters","webpack://@jetbrains/kotlin-web-site-ui/webpack/runtime/hasOwnProperty shorthand","webpack://@jetbrains/kotlin-web-site-ui/webpack/runtime/make namespace object","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/ResizeObserverBoxOptions.js","webpack://@jetbrains/kotlin-web-site-ui/external commonjs2 {\"commonjs\":\"@rescui/ui-contexts\",\"commonjs2\":\"@rescui/ui-contexts\"}","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/utils/resizeObservers.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/algorithms/deliverResizeLoopError.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/utils/freeze.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/utils/queueMicroTask.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/ResizeObserverSize.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/DOMRectReadOnly.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/utils/element.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/utils/global.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/algorithms/calculateBoxSize.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/ResizeObserverEntry.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/algorithms/calculateDepthForNode.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/algorithms/broadcastActiveObservations.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/algorithms/gatherActiveObservationsAtDepth.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/utils/process.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/algorithms/hasActiveObservations.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/algorithms/hasSkippedObservations.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/utils/scheduler.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/utils/queueResizeObserver.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/ResizeObservation.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/ResizeObserverDetail.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/ResizeObserverController.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@juggle/resize-observer/lib/ResizeObserver.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@react-hook/passive-layout-effect/dist/module/index.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@react-hook/latest/dist/module/index.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/raf-schd/dist/raf-schd.esm.js","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/@react-hook/resize-observer/dist/module/index.js","webpack://@jetbrains/kotlin-web-site-ui/./src/components/header/logo-large/kotlin-logo-large.svg","webpack://@jetbrains/kotlin-web-site-ui/external commonjs2 {\"commonjs\":\"@rescui/typography\",\"commonjs2\":\"@rescui/typography\"}","webpack://@jetbrains/kotlin-web-site-ui/./src/consts.ts","webpack://@jetbrains/kotlin-web-site-ui/./src/components/header/logo-large/logo-large.tsx","webpack://@jetbrains/kotlin-web-site-ui/./src/components/header/logo-large/logo-large.module.pcss?d1a2","webpack://@jetbrains/kotlin-web-site-ui/./src/components/header/header.module.pcss?b1da","webpack://@jetbrains/kotlin-web-site-ui/./src/components/header/nav-scheme.ts","webpack://@jetbrains/kotlin-web-site-ui/./src/components/header/horizontal-menu/horizontal-menu.module.pcss?7d3a","webpack://@jetbrains/kotlin-web-site-ui/./src/components/header/horizontal-menu/horizontal-menu.tsx","webpack://@jetbrains/kotlin-web-site-ui/./src/components/header/search-button/search.svg","webpack://@jetbrains/kotlin-web-site-ui/./src/components/header/search-button/search-button.tsx","webpack://@jetbrains/kotlin-web-site-ui/./src/components/header/search-button/search-button.pcss?7314","webpack://@jetbrains/kotlin-web-site-ui/./src/components/header/menu-popup/menu-button/hamburger-icon.svg","webpack://@jetbrains/kotlin-web-site-ui/./src/components/header/menu-popup/menu-button/close-icon.svg","webpack://@jetbrains/kotlin-web-site-ui/./src/components/header/menu-popup/menu-button/menu-button.tsx","webpack://@jetbrains/kotlin-web-site-ui/./src/components/header/menu-popup/menu-button/menu-button.pcss?e10c","webpack://@jetbrains/kotlin-web-site-ui/./node_modules/body-scroll-lock/lib/bodyScrollLock.esm.js","webpack://@jetbrains/kotlin-web-site-ui/./src/components/header/menu-popup/menu-popup.tsx","webpack://@jetbrains/kotlin-web-site-ui/./src/components/header/menu-popup/menu-popup.module.pcss?1dec","webpack://@jetbrains/kotlin-web-site-ui/./src/components/header/logo-small/kotlin-logo-small.svg","webpack://@jetbrains/kotlin-web-site-ui/./src/components/header/logo-small/logo-small.module.pcss?0b31","webpack://@jetbrains/kotlin-web-site-ui/./src/components/header/logo-small/logo-small.tsx","webpack://@jetbrains/kotlin-web-site-ui/./src/components/header/header.tsx","webpack://@jetbrains/kotlin-web-site-ui/./src/components/header/index.ts"],"sourcesContent":["/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","/** @license React v16.14.0\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","module.exports = require(\"react\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var ResizeObserverBoxOptions;\n(function (ResizeObserverBoxOptions) {\n ResizeObserverBoxOptions[\"BORDER_BOX\"] = \"border-box\";\n ResizeObserverBoxOptions[\"CONTENT_BOX\"] = \"content-box\";\n ResizeObserverBoxOptions[\"DEVICE_PIXEL_CONTENT_BOX\"] = \"device-pixel-content-box\";\n})(ResizeObserverBoxOptions || (ResizeObserverBoxOptions = {}));\nexport { ResizeObserverBoxOptions };\n","var __WEBPACK_NAMESPACE_OBJECT__ = require(\"@rescui/ui-contexts\");","var resizeObservers = [];\nexport { resizeObservers };\n","var msg = 'ResizeObserver loop completed with undelivered notifications.';\nvar deliverResizeLoopError = function () {\n var event;\n if (typeof ErrorEvent === 'function') {\n event = new ErrorEvent('error', {\n message: msg\n });\n }\n else {\n event = document.createEvent('Event');\n event.initEvent('error', false, false);\n event.message = msg;\n }\n window.dispatchEvent(event);\n};\nexport { deliverResizeLoopError };\n","export var freeze = function (obj) { return Object.freeze(obj); };\n","var trigger;\nvar callbacks = [];\nvar notify = function () { return callbacks.splice(0).forEach(function (cb) { return cb(); }); };\nvar queueMicroTask = function (callback) {\n if (!trigger) {\n var toggle_1 = 0;\n var el_1 = document.createTextNode('');\n var config = { characterData: true };\n new MutationObserver(function () { return notify(); }).observe(el_1, config);\n trigger = function () { el_1.textContent = \"\" + (toggle_1 ? toggle_1-- : toggle_1++); };\n }\n callbacks.push(callback);\n trigger();\n};\nexport { queueMicroTask };\n","import { freeze } from './utils/freeze';\nvar ResizeObserverSize = (function () {\n function ResizeObserverSize(inlineSize, blockSize) {\n this.inlineSize = inlineSize;\n this.blockSize = blockSize;\n freeze(this);\n }\n return ResizeObserverSize;\n}());\nexport { ResizeObserverSize };\n","import { freeze } from './utils/freeze';\nvar DOMRectReadOnly = (function () {\n function DOMRectReadOnly(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n this.top = this.y;\n this.left = this.x;\n this.bottom = this.top + this.height;\n this.right = this.left + this.width;\n return freeze(this);\n }\n DOMRectReadOnly.prototype.toJSON = function () {\n var _a = this, x = _a.x, y = _a.y, top = _a.top, right = _a.right, bottom = _a.bottom, left = _a.left, width = _a.width, height = _a.height;\n return { x: x, y: y, top: top, right: right, bottom: bottom, left: left, width: width, height: height };\n };\n DOMRectReadOnly.fromRect = function (rectangle) {\n return new DOMRectReadOnly(rectangle.x, rectangle.y, rectangle.width, rectangle.height);\n };\n return DOMRectReadOnly;\n}());\nexport { DOMRectReadOnly };\n","var isSVG = function (target) { return target instanceof SVGElement && 'getBBox' in target; };\nvar isHidden = function (target) {\n if (isSVG(target)) {\n var _a = target.getBBox(), width = _a.width, height = _a.height;\n return !width && !height;\n }\n var _b = target, offsetWidth = _b.offsetWidth, offsetHeight = _b.offsetHeight;\n return !(offsetWidth || offsetHeight || target.getClientRects().length);\n};\nvar isElement = function (obj) {\n var _a, _b;\n if (obj instanceof Element) {\n return true;\n }\n var scope = (_b = (_a = obj) === null || _a === void 0 ? void 0 : _a.ownerDocument) === null || _b === void 0 ? void 0 : _b.defaultView;\n return !!(scope && obj instanceof scope.Element);\n};\nvar isReplacedElement = function (target) {\n switch (target.tagName) {\n case 'INPUT':\n if (target.type !== 'image') {\n break;\n }\n case 'VIDEO':\n case 'AUDIO':\n case 'EMBED':\n case 'OBJECT':\n case 'CANVAS':\n case 'IFRAME':\n case 'IMG':\n return true;\n }\n return false;\n};\nexport { isSVG, isHidden, isElement, isReplacedElement };\n","export var global = typeof window !== 'undefined' ? window : {};\n","import { ResizeObserverBoxOptions } from '../ResizeObserverBoxOptions';\nimport { ResizeObserverSize } from '../ResizeObserverSize';\nimport { DOMRectReadOnly } from '../DOMRectReadOnly';\nimport { isSVG, isHidden } from '../utils/element';\nimport { freeze } from '../utils/freeze';\nimport { global } from '../utils/global';\nvar cache = new WeakMap();\nvar scrollRegexp = /auto|scroll/;\nvar verticalRegexp = /^tb|vertical/;\nvar IE = (/msie|trident/i).test(global.navigator && global.navigator.userAgent);\nvar parseDimension = function (pixel) { return parseFloat(pixel || '0'); };\nvar size = function (inlineSize, blockSize, switchSizes) {\n if (inlineSize === void 0) { inlineSize = 0; }\n if (blockSize === void 0) { blockSize = 0; }\n if (switchSizes === void 0) { switchSizes = false; }\n return new ResizeObserverSize((switchSizes ? blockSize : inlineSize) || 0, (switchSizes ? inlineSize : blockSize) || 0);\n};\nvar zeroBoxes = freeze({\n devicePixelContentBoxSize: size(),\n borderBoxSize: size(),\n contentBoxSize: size(),\n contentRect: new DOMRectReadOnly(0, 0, 0, 0)\n});\nvar calculateBoxSizes = function (target, forceRecalculation) {\n if (forceRecalculation === void 0) { forceRecalculation = false; }\n if (cache.has(target) && !forceRecalculation) {\n return cache.get(target);\n }\n if (isHidden(target)) {\n cache.set(target, zeroBoxes);\n return zeroBoxes;\n }\n var cs = getComputedStyle(target);\n var svg = isSVG(target) && target.ownerSVGElement && target.getBBox();\n var removePadding = !IE && cs.boxSizing === 'border-box';\n var switchSizes = verticalRegexp.test(cs.writingMode || '');\n var canScrollVertically = !svg && scrollRegexp.test(cs.overflowY || '');\n var canScrollHorizontally = !svg && scrollRegexp.test(cs.overflowX || '');\n var paddingTop = svg ? 0 : parseDimension(cs.paddingTop);\n var paddingRight = svg ? 0 : parseDimension(cs.paddingRight);\n var paddingBottom = svg ? 0 : parseDimension(cs.paddingBottom);\n var paddingLeft = svg ? 0 : parseDimension(cs.paddingLeft);\n var borderTop = svg ? 0 : parseDimension(cs.borderTopWidth);\n var borderRight = svg ? 0 : parseDimension(cs.borderRightWidth);\n var borderBottom = svg ? 0 : parseDimension(cs.borderBottomWidth);\n var borderLeft = svg ? 0 : parseDimension(cs.borderLeftWidth);\n var horizontalPadding = paddingLeft + paddingRight;\n var verticalPadding = paddingTop + paddingBottom;\n var horizontalBorderArea = borderLeft + borderRight;\n var verticalBorderArea = borderTop + borderBottom;\n var horizontalScrollbarThickness = !canScrollHorizontally ? 0 : target.offsetHeight - verticalBorderArea - target.clientHeight;\n var verticalScrollbarThickness = !canScrollVertically ? 0 : target.offsetWidth - horizontalBorderArea - target.clientWidth;\n var widthReduction = removePadding ? horizontalPadding + horizontalBorderArea : 0;\n var heightReduction = removePadding ? verticalPadding + verticalBorderArea : 0;\n var contentWidth = svg ? svg.width : parseDimension(cs.width) - widthReduction - verticalScrollbarThickness;\n var contentHeight = svg ? svg.height : parseDimension(cs.height) - heightReduction - horizontalScrollbarThickness;\n var borderBoxWidth = contentWidth + horizontalPadding + verticalScrollbarThickness + horizontalBorderArea;\n var borderBoxHeight = contentHeight + verticalPadding + horizontalScrollbarThickness + verticalBorderArea;\n var boxes = freeze({\n devicePixelContentBoxSize: size(Math.round(contentWidth * devicePixelRatio), Math.round(contentHeight * devicePixelRatio), switchSizes),\n borderBoxSize: size(borderBoxWidth, borderBoxHeight, switchSizes),\n contentBoxSize: size(contentWidth, contentHeight, switchSizes),\n contentRect: new DOMRectReadOnly(paddingLeft, paddingTop, contentWidth, contentHeight)\n });\n cache.set(target, boxes);\n return boxes;\n};\nvar calculateBoxSize = function (target, observedBox, forceRecalculation) {\n var _a = calculateBoxSizes(target, forceRecalculation), borderBoxSize = _a.borderBoxSize, contentBoxSize = _a.contentBoxSize, devicePixelContentBoxSize = _a.devicePixelContentBoxSize;\n switch (observedBox) {\n case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:\n return devicePixelContentBoxSize;\n case ResizeObserverBoxOptions.BORDER_BOX:\n return borderBoxSize;\n default:\n return contentBoxSize;\n }\n};\nexport { calculateBoxSize, calculateBoxSizes };\n","import { calculateBoxSizes } from './algorithms/calculateBoxSize';\nimport { freeze } from './utils/freeze';\nvar ResizeObserverEntry = (function () {\n function ResizeObserverEntry(target) {\n var boxes = calculateBoxSizes(target);\n this.target = target;\n this.contentRect = boxes.contentRect;\n this.borderBoxSize = freeze([boxes.borderBoxSize]);\n this.contentBoxSize = freeze([boxes.contentBoxSize]);\n this.devicePixelContentBoxSize = freeze([boxes.devicePixelContentBoxSize]);\n }\n return ResizeObserverEntry;\n}());\nexport { ResizeObserverEntry };\n","import { isHidden } from '../utils/element';\nvar calculateDepthForNode = function (node) {\n if (isHidden(node)) {\n return Infinity;\n }\n var depth = 0;\n var parent = node.parentNode;\n while (parent) {\n depth += 1;\n parent = parent.parentNode;\n }\n return depth;\n};\nexport { calculateDepthForNode };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { ResizeObserverEntry } from '../ResizeObserverEntry';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nimport { calculateBoxSize } from './calculateBoxSize';\nvar broadcastActiveObservations = function () {\n var shallowestDepth = Infinity;\n var callbacks = [];\n resizeObservers.forEach(function processObserver(ro) {\n if (ro.activeTargets.length === 0) {\n return;\n }\n var entries = [];\n ro.activeTargets.forEach(function processTarget(ot) {\n var entry = new ResizeObserverEntry(ot.target);\n var targetDepth = calculateDepthForNode(ot.target);\n entries.push(entry);\n ot.lastReportedSize = calculateBoxSize(ot.target, ot.observedBox);\n if (targetDepth < shallowestDepth) {\n shallowestDepth = targetDepth;\n }\n });\n callbacks.push(function resizeObserverCallback() {\n ro.callback.call(ro.observer, entries, ro.observer);\n });\n ro.activeTargets.splice(0, ro.activeTargets.length);\n });\n for (var _i = 0, callbacks_1 = callbacks; _i < callbacks_1.length; _i++) {\n var callback = callbacks_1[_i];\n callback();\n }\n return shallowestDepth;\n};\nexport { broadcastActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nvar gatherActiveObservationsAtDepth = function (depth) {\n resizeObservers.forEach(function processObserver(ro) {\n ro.activeTargets.splice(0, ro.activeTargets.length);\n ro.skippedTargets.splice(0, ro.skippedTargets.length);\n ro.observationTargets.forEach(function processTarget(ot) {\n if (ot.isActive()) {\n if (calculateDepthForNode(ot.target) > depth) {\n ro.activeTargets.push(ot);\n }\n else {\n ro.skippedTargets.push(ot);\n }\n }\n });\n });\n};\nexport { gatherActiveObservationsAtDepth };\n","import { hasActiveObservations } from '../algorithms/hasActiveObservations';\nimport { hasSkippedObservations } from '../algorithms/hasSkippedObservations';\nimport { deliverResizeLoopError } from '../algorithms/deliverResizeLoopError';\nimport { broadcastActiveObservations } from '../algorithms/broadcastActiveObservations';\nimport { gatherActiveObservationsAtDepth } from '../algorithms/gatherActiveObservationsAtDepth';\nvar process = function () {\n var depth = 0;\n gatherActiveObservationsAtDepth(depth);\n while (hasActiveObservations()) {\n depth = broadcastActiveObservations();\n gatherActiveObservationsAtDepth(depth);\n }\n if (hasSkippedObservations()) {\n deliverResizeLoopError();\n }\n return depth > 0;\n};\nexport { process };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasActiveObservations = function () {\n return resizeObservers.some(function (ro) { return ro.activeTargets.length > 0; });\n};\nexport { hasActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasSkippedObservations = function () {\n return resizeObservers.some(function (ro) { return ro.skippedTargets.length > 0; });\n};\nexport { hasSkippedObservations };\n","import { process } from './process';\nimport { global } from './global';\nimport { queueResizeObserver } from './queueResizeObserver';\nvar watching = 0;\nvar isWatching = function () { return !!watching; };\nvar CATCH_PERIOD = 250;\nvar observerConfig = { attributes: true, characterData: true, childList: true, subtree: true };\nvar events = [\n 'resize',\n 'load',\n 'transitionend',\n 'animationend',\n 'animationstart',\n 'animationiteration',\n 'keyup',\n 'keydown',\n 'mouseup',\n 'mousedown',\n 'mouseover',\n 'mouseout',\n 'blur',\n 'focus'\n];\nvar time = function (timeout) {\n if (timeout === void 0) { timeout = 0; }\n return Date.now() + timeout;\n};\nvar scheduled = false;\nvar Scheduler = (function () {\n function Scheduler() {\n var _this = this;\n this.stopped = true;\n this.listener = function () { return _this.schedule(); };\n }\n Scheduler.prototype.run = function (timeout) {\n var _this = this;\n if (timeout === void 0) { timeout = CATCH_PERIOD; }\n if (scheduled) {\n return;\n }\n scheduled = true;\n var until = time(timeout);\n queueResizeObserver(function () {\n var elementsHaveResized = false;\n try {\n elementsHaveResized = process();\n }\n finally {\n scheduled = false;\n timeout = until - time();\n if (!isWatching()) {\n return;\n }\n if (elementsHaveResized) {\n _this.run(1000);\n }\n else if (timeout > 0) {\n _this.run(timeout);\n }\n else {\n _this.start();\n }\n }\n });\n };\n Scheduler.prototype.schedule = function () {\n this.stop();\n this.run();\n };\n Scheduler.prototype.observe = function () {\n var _this = this;\n var cb = function () { return _this.observer && _this.observer.observe(document.body, observerConfig); };\n document.body ? cb() : global.addEventListener('DOMContentLoaded', cb);\n };\n Scheduler.prototype.start = function () {\n var _this = this;\n if (this.stopped) {\n this.stopped = false;\n this.observer = new MutationObserver(this.listener);\n this.observe();\n events.forEach(function (name) { return global.addEventListener(name, _this.listener, true); });\n }\n };\n Scheduler.prototype.stop = function () {\n var _this = this;\n if (!this.stopped) {\n this.observer && this.observer.disconnect();\n events.forEach(function (name) { return global.removeEventListener(name, _this.listener, true); });\n this.stopped = true;\n }\n };\n return Scheduler;\n}());\nvar scheduler = new Scheduler();\nvar updateCount = function (n) {\n !watching && n > 0 && scheduler.start();\n watching += n;\n !watching && scheduler.stop();\n};\nexport { scheduler, updateCount };\n","import { queueMicroTask } from './queueMicroTask';\nvar queueResizeObserver = function (cb) {\n queueMicroTask(function ResizeObserver() {\n requestAnimationFrame(cb);\n });\n};\nexport { queueResizeObserver };\n","import { ResizeObserverBoxOptions } from './ResizeObserverBoxOptions';\nimport { calculateBoxSize } from './algorithms/calculateBoxSize';\nimport { isSVG, isReplacedElement } from './utils/element';\nvar skipNotifyOnElement = function (target) {\n return !isSVG(target)\n && !isReplacedElement(target)\n && getComputedStyle(target).display === 'inline';\n};\nvar ResizeObservation = (function () {\n function ResizeObservation(target, observedBox) {\n this.target = target;\n this.observedBox = observedBox || ResizeObserverBoxOptions.CONTENT_BOX;\n this.lastReportedSize = {\n inlineSize: 0,\n blockSize: 0\n };\n }\n ResizeObservation.prototype.isActive = function () {\n var size = calculateBoxSize(this.target, this.observedBox, true);\n if (skipNotifyOnElement(this.target)) {\n this.lastReportedSize = size;\n }\n if (this.lastReportedSize.inlineSize !== size.inlineSize\n || this.lastReportedSize.blockSize !== size.blockSize) {\n return true;\n }\n return false;\n };\n return ResizeObservation;\n}());\nexport { ResizeObservation };\n","var ResizeObserverDetail = (function () {\n function ResizeObserverDetail(resizeObserver, callback) {\n this.activeTargets = [];\n this.skippedTargets = [];\n this.observationTargets = [];\n this.observer = resizeObserver;\n this.callback = callback;\n }\n return ResizeObserverDetail;\n}());\nexport { ResizeObserverDetail };\n","import { scheduler, updateCount } from './utils/scheduler';\nimport { ResizeObservation } from './ResizeObservation';\nimport { ResizeObserverDetail } from './ResizeObserverDetail';\nimport { resizeObservers } from './utils/resizeObservers';\nvar observerMap = new WeakMap();\nvar getObservationIndex = function (observationTargets, target) {\n for (var i = 0; i < observationTargets.length; i += 1) {\n if (observationTargets[i].target === target) {\n return i;\n }\n }\n return -1;\n};\nvar ResizeObserverController = (function () {\n function ResizeObserverController() {\n }\n ResizeObserverController.connect = function (resizeObserver, callback) {\n var detail = new ResizeObserverDetail(resizeObserver, callback);\n observerMap.set(resizeObserver, detail);\n };\n ResizeObserverController.observe = function (resizeObserver, target, options) {\n var detail = observerMap.get(resizeObserver);\n var firstObservation = detail.observationTargets.length === 0;\n if (getObservationIndex(detail.observationTargets, target) < 0) {\n firstObservation && resizeObservers.push(detail);\n detail.observationTargets.push(new ResizeObservation(target, options && options.box));\n updateCount(1);\n scheduler.schedule();\n }\n };\n ResizeObserverController.unobserve = function (resizeObserver, target) {\n var detail = observerMap.get(resizeObserver);\n var index = getObservationIndex(detail.observationTargets, target);\n var lastObservation = detail.observationTargets.length === 1;\n if (index >= 0) {\n lastObservation && resizeObservers.splice(resizeObservers.indexOf(detail), 1);\n detail.observationTargets.splice(index, 1);\n updateCount(-1);\n }\n };\n ResizeObserverController.disconnect = function (resizeObserver) {\n var _this = this;\n var detail = observerMap.get(resizeObserver);\n detail.observationTargets.slice().forEach(function (ot) { return _this.unobserve(resizeObserver, ot.target); });\n detail.activeTargets.splice(0, detail.activeTargets.length);\n };\n return ResizeObserverController;\n}());\nexport { ResizeObserverController };\n","import { ResizeObserverController } from './ResizeObserverController';\nimport { isElement } from './utils/element';\nvar ResizeObserver = (function () {\n function ResizeObserver(callback) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (typeof callback !== 'function') {\n throw new TypeError(\"Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.\");\n }\n ResizeObserverController.connect(this, callback);\n }\n ResizeObserver.prototype.observe = function (target, options) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.observe(this, target, options);\n };\n ResizeObserver.prototype.unobserve = function (target) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.unobserve(this, target);\n };\n ResizeObserver.prototype.disconnect = function () {\n ResizeObserverController.disconnect(this);\n };\n ResizeObserver.toString = function () {\n return 'function ResizeObserver () { [polyfill code] }';\n };\n return ResizeObserver;\n}());\nexport { ResizeObserver };\n","import React from 'react';\nconst usePassiveLayoutEffect = React[typeof document !== 'undefined' && document.createElement !== void 0 ? 'useLayoutEffect' : 'useEffect'];\nexport default usePassiveLayoutEffect;","import * as React from 'react';\n\nconst useLatest = current => {\n const storedValue = React.useRef(current);\n React.useEffect(() => {\n storedValue.current = current;\n });\n return storedValue;\n};\n\nexport default useLatest;","var rafSchd = function rafSchd(fn) {\n var lastArgs = [];\n var frameId = null;\n\n var wrapperFn = function wrapperFn() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n lastArgs = args;\n\n if (frameId) {\n return;\n }\n\n frameId = requestAnimationFrame(function () {\n frameId = null;\n fn.apply(void 0, lastArgs);\n });\n };\n\n wrapperFn.cancel = function () {\n if (!frameId) {\n return;\n }\n\n cancelAnimationFrame(frameId);\n frameId = null;\n };\n\n return wrapperFn;\n};\n\nexport default rafSchd;\n","/* eslint-disable no-return-assign */\n\n/* eslint-disable no-underscore-dangle */\nimport { ResizeObserver as Polyfill } from '@juggle/resize-observer';\nimport useLayoutEffect from '@react-hook/passive-layout-effect';\nimport useLatest from '@react-hook/latest';\nimport rafSchd from 'raf-schd';\nconst ResizeObserver = typeof window !== 'undefined' && 'ResizeObserver' in window ? // @ts-ignore\nwindow.ResizeObserver : Polyfill;\n/**\n * A React hook that fires a callback whenever ResizeObserver detects a change to its size\n *\n * @param target A React ref created by `useRef()` or an HTML element\n * @param callback Invoked with a single `ResizeObserverEntry` any time\n * the `target` resizes\n */\n\nfunction _ref() {}\n\nfunction useResizeObserver(target, callback) {\n const resizeObserver = getResizeObserver();\n const storedCallback = useLatest(callback);\n useLayoutEffect(() => {\n let didUnsubscribe = false;\n const targetEl = target && 'current' in target ? target.current : target;\n if (!targetEl) return _ref;\n\n function cb(entry, observer) {\n if (didUnsubscribe) return;\n storedCallback.current(entry, observer);\n }\n\n resizeObserver.subscribe(targetEl, cb);\n return () => {\n didUnsubscribe = true;\n resizeObserver.unsubscribe(targetEl, cb);\n };\n }, [target, resizeObserver, storedCallback]);\n return resizeObserver.observer;\n}\n\nfunction createResizeObserver() {\n const callbacks = new Map();\n const observer = new ResizeObserver(rafSchd((entries, obs) => {\n for (let i = 0; i < entries.length; i++) {\n const cbs = callbacks.get(entries[i].target);\n cbs === null || cbs === void 0 ? void 0 : cbs.forEach(cb => cb(entries[i], obs));\n }\n }));\n return {\n observer,\n\n subscribe(target, callback) {\n var _callbacks$get;\n\n observer.observe(target);\n const cbs = (_callbacks$get = callbacks.get(target)) !== null && _callbacks$get !== void 0 ? _callbacks$get : [];\n cbs.push(callback);\n callbacks.set(target, cbs);\n },\n\n unsubscribe(target, callback) {\n var _callbacks$get2;\n\n const cbs = (_callbacks$get2 = callbacks.get(target)) !== null && _callbacks$get2 !== void 0 ? _callbacks$get2 : [];\n\n if (cbs.length === 1) {\n observer.unobserve(target);\n callbacks.delete(target);\n return;\n }\n\n const cbIndex = cbs.indexOf(callback);\n if (cbIndex !== -1) cbs.splice(cbIndex, 1);\n callbacks.set(target, cbs);\n }\n\n };\n}\n\nlet _resizeObserver;\n\nconst getResizeObserver = () => !_resizeObserver ? _resizeObserver = createResizeObserver() : _resizeObserver;\n\nexport default useResizeObserver;","var _radialGradient, _path, _g;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nfunction SvgKotlinLogoLarge(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 24\"\n }, props), _radialGradient || (_radialGradient = /*#__PURE__*/React.createElement(\"radialGradient\", {\n id: \"kotlin-logo-large_svg__a\",\n cx: 22.432,\n cy: 3.493,\n r: 21.679,\n gradientTransform: \"translate(-.19 .042) scale(.9998)\",\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.003,\n stopColor: \"#e44857\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.469,\n stopColor: \"#c711e1\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#7f52ff\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#kotlin-logo-large_svg__a)\",\n d: \"M22.87 21.68H3.94V2.76h18.93l-9.66 9.32z\"\n })), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#fff\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M45.69 2.73h-3.76l-8.18 8.73v-8.7h-3.02v18.92h3.02v-9.17l8.21 9.17h3.89l-8.75-9.79z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M55.93 8.44c-1.07-.62-2.28-.93-3.64-.93-1.38 0-2.61.31-3.7.93a6.63 6.63 0 00-2.55 2.57c-.61 1.1-.91 2.35-.91 3.74 0 1.4.3 2.64.91 3.74a6.45 6.45 0 002.53 2.57c1.09.62 2.32.93 3.7.93 1.36 0 2.58-.31 3.66-.93a6.53 6.53 0 002.51-2.57c.6-1.1.9-2.35.9-3.74 0-1.4-.3-2.64-.9-3.74-.6-1.1-1.43-1.95-2.51-2.57zm-.19 8.7c-.33.69-.8 1.23-1.4 1.61-.6.39-1.3.58-2.08.58-.79 0-1.49-.19-2.11-.58-.61-.39-1.09-.93-1.43-1.61-.34-.69-.51-1.48-.51-2.38 0-.9.17-1.7.51-2.39.34-.69.82-1.23 1.43-1.61.61-.39 1.32-.58 2.12-.58.77 0 1.46.19 2.07.58.6.39 1.07.93 1.4 1.61.33.69.49 1.48.49 2.39.01.9-.15 1.69-.49 2.38zm9.75-12.76h-2.92v2.35c0 .37-.09.65-.27.83-.18.18-.46.28-.84.28h-1.43v2.49h2.49v7.45c0 .77.16 1.46.47 2.05.31.59.76 1.05 1.34 1.37.58.32 1.27.49 2.06.49h2.23V19.1h-1.68c-.43 0-.78-.15-1.06-.45-.27-.3-.4-.7-.4-1.2v-7.11h3.22v-2.5h-3.22V4.38zM71.03 2H74v19.68h-2.97zm6.32.03h3v3.05h-3zm0 5.81h2.97v13.84h-2.97zm18.08 2.28a4.694 4.694 0 00-1.77-1.92c-.76-.46-1.65-.69-2.67-.69-1.08 0-2.03.26-2.84.79-.65.42-1.17.98-1.58 1.68l-.02-2.14H83.7v13.84h2.97v-7.74c0-.75.14-1.41.43-1.99.28-.58.68-1.03 1.2-1.35.52-.32 1.12-.48 1.82-.48.62 0 1.16.13 1.6.39.45.26.78.64 1.01 1.12.23.49.34 1.07.34 1.74v8.31h2.97v-8.73c.02-1.07-.2-2.01-.61-2.83z\"\n }))));\n}\n\nexport default SvgKotlinLogoLarge;","var __WEBPACK_NAMESPACE_OBJECT__ = require(\"@rescui/typography\");","export const KOTLINLANG_URL = 'https://kotlinlang.org';\nexport const PLAYGROUND_URL = 'https://play.kotlinlang.org/';","import React, { FC } from 'react';\nimport * as styles from './logo-large.module.pcss';\nimport KotlinLogoFull from './kotlin-logo-large.svg';\nimport classNames from 'classnames';\nimport { useTextStyles } from '@rescui/typography';\nimport { KOTLINLANG_URL } from 'src/consts';\n\ninterface LogoProps {\n productWebUrl?: string;\n className?: string;\n}\n\nexport const LogoLarge: FC<LogoProps> = ({ productWebUrl, className }) => {\n const version: null | string = productWebUrl\n ? getProductVersion(productWebUrl)\n : null;\n const textCn = useTextStyles();\n\n return (\n <div\n className={classNames(\n styles.container,\n className,\n textCn('rs-text-3', { hardness: 'average' })\n )}\n >\n <a\n className={styles.link}\n href={KOTLINLANG_URL}\n aria-label=\"Kotlin Home Page\"\n >\n <KotlinLogoFull />\n </a>\n {version && (\n <a\n className={classNames(styles.versionTag)}\n href={productWebUrl}\n target=\"_blank\"\n >\n {version}\n </a>\n )}\n </div>\n );\n};\n\nfunction getProductVersion(productWebUrl: string): null | string {\n const match = /v?\\d+\\.\\d+\\.\\d+$/.exec(productWebUrl);\n return match ? match[0] : null;\n}\n","// extracted by mini-css-extract-plugin\nexport const container = \"ktl-logo-large-module_container_+5pgf\";\nexport const link = \"ktl-logo-large-module_link_iZIEJ\";\nexport const versionTag = \"ktl-logo-large-module_version-tag_fiNIk\";","// extracted by mini-css-extract-plugin\nexport const headerMenu = \"ktl-header-module_header-menu_E3vzo\";\nexport const border = \"ktl-header-module_border_smGpe\";\nexport const withMenuPopup = \"ktl-header-module_with-menu-popup_DcoOT\";","import { KOTLINLANG_URL, PLAYGROUND_URL } from 'src/consts';\nimport { IsUrlActive } from 'src/helper/is-url-active';\n\nexport interface MenuItem {\n title: string;\n url: null | string;\n isActive?: boolean;\n items?: MenuItem[];\n}\n\nexport const SOLUTIONS_TITLE = 'Solutions';\nexport const MULTIPLATFORM_MOBILE_TITLE = 'Multiplatform Mobile';\nexport const MULTIPLATFORM_MOBILE_URL = `/lp/mobile/`;\nexport const SERVER_SIDE_TITLE = 'Server-side';\nexport const SERVER_SIDE_URL = `/lp/server-side/`;\nexport const WEB_FRONTEND_TITLE = 'Web frontend';\nexport const WEB_FRONTEND_URL = `/docs/js-overview.html`;\nexport const DATA_SCIENCE_TITLE = 'Data science';\nexport const DATA_SCIENCE_URL = `/docs/data-science-overview.html`;\nexport const ANDROID_TITLE = 'Android';\nexport const ANDROID_URL = `/docs/android-overview.html`;\nexport const DOCS_TITLE = 'Docs';\nexport const DOCS_URL = `/docs/home.html`;\nexport const COMMUNITY_TITLE = 'Community';\nexport const COMMUNITY_URL = `/community/`;\nexport const TEACH_TITLE = 'Teach';\nexport const TEACH_URL = `/education/`;\nexport const PLAY_TITLE = 'Play';\nexport const PLAY_TITLE_FULL = 'Playground';\nexport const PLAY_URL = PLAYGROUND_URL;\nexport const PLAY_HANDSON_URL = `${PLAY_URL}hands-on`;\nexport const PLAY_HANDSON_TITLE = 'Hands-on';\nexport const PLAY_EXAMPLES_URL = `${PLAY_URL}byExample`;\nexport const PLAY_EXAMPLES_TITLE = 'Examples';\nexport const PLAY_KOANS_URL = `${PLAY_URL}koans`;\nexport const PLAY_KOANS_TITLE = 'Koans';\nexport const KOTLIN_DOCS_TITLE = 'Kotlin';\nexport const KOTLIN_DOCS_URL = `/docs/home.html`;\nexport const KMM_DOCS_TITLE = 'KMM';\nexport const KMM_DOCS_URL = `/docs/mobile/home.html`;\n\nconst navScheme: MenuItem[] = [\n {\n title: SOLUTIONS_TITLE,\n url: null,\n items: [\n {\n title: MULTIPLATFORM_MOBILE_TITLE,\n url: MULTIPLATFORM_MOBILE_URL,\n },\n {\n title: SERVER_SIDE_TITLE,\n url: SERVER_SIDE_URL,\n },\n {\n title: WEB_FRONTEND_TITLE,\n url: WEB_FRONTEND_URL,\n },\n {\n title: DATA_SCIENCE_TITLE,\n url: DATA_SCIENCE_URL,\n },\n {\n title: ANDROID_TITLE,\n url: ANDROID_URL,\n },\n ],\n },\n {\n title: DOCS_TITLE,\n url: KOTLIN_DOCS_URL,\n },\n {\n title: COMMUNITY_TITLE,\n url: COMMUNITY_URL,\n },\n {\n title: TEACH_TITLE,\n url: TEACH_URL,\n },\n {\n title: PLAY_TITLE,\n url: null,\n items: [\n {\n title: PLAY_TITLE_FULL,\n url: PLAY_URL,\n },\n {\n title: PLAY_HANDSON_TITLE,\n url: PLAY_HANDSON_URL,\n },\n {\n title: PLAY_EXAMPLES_TITLE,\n url: PLAY_EXAMPLES_URL,\n },\n {\n title: PLAY_KOANS_TITLE,\n url: PLAY_KOANS_URL,\n },\n ],\n },\n];\n\nexport function getNavScheme(\n isUrlActive: IsUrlActive = (url, currentUrl) => url === currentUrl,\n currentUrl?: string,\n isPlayground?: boolean\n): MenuItem[] {\n return navScheme.map(({ title, url, items }) => {\n if (url && currentUrl) {\n url = makeExternalUrl(url, currentUrl, !!isPlayground);\n }\n\n const item: MenuItem = {\n title,\n url,\n };\n let isActive = isUrlActive(url, currentUrl);\n\n item.items =\n items?.map(({ title, url: childUrl }) => {\n if (childUrl && currentUrl) {\n childUrl = makeExternalUrl(childUrl, currentUrl, !!isPlayground);\n }\n\n let childActive = isUrlActive(childUrl, currentUrl);\n\n if (childActive) {\n isActive = childActive;\n }\n\n return {\n title,\n url: childUrl,\n isActive: childActive,\n };\n }) ?? [];\n\n item.isActive = isActive;\n\n return item;\n });\n}\n\nfunction makeExternalUrl(\n url: string,\n currentUrl: string,\n isPlayground: boolean\n): string {\n if (isPlayground) {\n if (url.startsWith(PLAY_URL)) {\n return url.replace(PLAY_URL, '/');\n } else {\n return `${KOTLINLANG_URL}${url}`;\n }\n }\n\n return url;\n}\n","// extracted by mini-css-extract-plugin\nexport const nav = \"ktl-horizontal-menu-module_nav_xYv4i\";\nexport const menuList = \"ktl-horizontal-menu-module_menu-list_7oi3W\";\nexport const menuItemWrap = \"ktl-horizontal-menu-module_menu-item-wrap_dnVf-\";\nexport const menuItem = \"ktl-horizontal-menu-module_menu-item_Z+YKZ\";\nexport const expanded = \"ktl-horizontal-menu-module_expanded_thibK\";\nexport const itemActive = \"ktl-horizontal-menu-module_item-active_+iyf-\";\nexport const dropdownMenu = \"ktl-horizontal-menu-module_dropdown-menu_dVOw-\";\nexport const fadeIn = \"ktl-horizontal-menu-module_fade-in_Q2pCx\";\nexport const darkTheme = \"ktl-horizontal-menu-module_dark-theme_Lp065\";\nexport const dropdownMenuItem = \"ktl-horizontal-menu-module_dropdown-menu-item_wRlcN\";\nexport const active = \"ktl-horizontal-menu-module_active_azHwP\";\nexport const dropdownMenuExpanded = \"ktl-horizontal-menu-module_dropdown-menu-expanded_L0RWy\";\nexport const dropdownMenuAlignRight = \"ktl-horizontal-menu-module_dropdown-menu-align-right_HS-oO\";","import classNames from 'classnames';\nimport React, { FC, useEffect, useState } from 'react';\nimport { Theme } from '@rescui/ui-contexts/lib/parts/theme-context';\nimport * as styles from './horizontal-menu.module.pcss';\nimport { MenuItem } from '../nav-scheme';\nimport { useTextStyles } from '@rescui/typography';\nimport { LinkHandler } from 'src/helper/link-handler';\n\ninterface DropdownMenuProps {\n items: MenuItem[];\n isExpanded: boolean;\n alignRight: boolean;\n linkHandler?: LinkHandler;\n}\n\nconst DropdownMenu: FC<DropdownMenuProps> = ({\n items,\n isExpanded,\n alignRight,\n linkHandler,\n}) => {\n const textCn = useTextStyles();\n\n return (\n <ul\n className={classNames(styles.dropdownMenu, textCn('rs-text-2'), {\n [styles.dropdownMenuExpanded]: isExpanded,\n [styles.dropdownMenuAlignRight]: alignRight,\n })}\n >\n {items.map((item, key) => {\n const Tag = !item.isActive && item.url ? 'a' : 'span';\n\n return (\n <li key={key}>\n <Tag\n className={classNames(styles.dropdownMenuItem, {\n [styles.active]: item.isActive,\n })}\n {...(item.url\n ? {\n href: item.url,\n onClick: linkHandler\n ? (event) => item.url && linkHandler(event, item.url)\n : undefined,\n }\n : {})}\n >\n {item.title}\n </Tag>\n </li>\n );\n })}\n </ul>\n );\n};\n\ninterface HorizontalMenuItemProps {\n item: MenuItem;\n onMouseEnter: (item: MenuItem) => void;\n onMouseLeave: () => void;\n isExpanded: boolean;\n isLast: boolean;\n linkHandler?: LinkHandler;\n}\n\nconst HorizontalMenuItem: FC<HorizontalMenuItemProps> = ({\n item,\n onMouseEnter,\n onMouseLeave,\n isExpanded,\n isLast,\n linkHandler,\n}) => {\n const Tag = item.isActive || !item.url ? 'span' : 'a';\n const textCn = useTextStyles();\n const handleEnter = () => onMouseEnter(item);\n\n return (\n <li\n className={styles.menuItemWrap}\n onMouseEnter={handleEnter}\n onMouseLeave={onMouseLeave}\n >\n <Tag\n {...(item.url\n ? {\n href: item.url,\n onClick: linkHandler\n ? (event) => item.url && linkHandler(event, item.url)\n : undefined,\n }\n : {})}\n key={item.title}\n className={classNames(styles.menuItem, textCn('rs-text-2'), {\n [styles.itemActive]: item.isActive,\n [styles.expanded]: isExpanded && !!item.items?.length,\n })}\n >\n {item.title}\n </Tag>\n {!!item.items?.length && (\n <DropdownMenu\n items={item.items}\n isExpanded={isExpanded}\n alignRight={isLast}\n linkHandler={linkHandler}\n />\n )}\n </li>\n );\n};\n\ninterface HorizontalMenuProps {\n items: MenuItem[];\n theme: Theme;\n linkHandler?: LinkHandler;\n}\n\nexport const HorizontalMenu: FC<HorizontalMenuProps> = ({\n items,\n theme,\n linkHandler,\n}) => {\n const [activeIndex, setActiveIndex] = useState(-1);\n const [debouncedActiveIndex, setDebouncedActiveIndex] = useState(activeIndex);\n\n useEffect(() => {\n const handler = setTimeout(\n () => setDebouncedActiveIndex(activeIndex),\n activeIndex !== -1 ? 200 : 400\n );\n return () => clearTimeout(handler);\n }, [activeIndex]);\n\n const handleEnter = (item: MenuItem) =>\n setActiveIndex(items.findIndex((val) => val === item));\n const handleLeave = () => setActiveIndex(-1);\n\n return (\n <nav\n className={classNames(styles.nav, {\n [styles.darkTheme]: theme === 'dark',\n })}\n >\n <ul className={styles.menuList}>\n {items.map((item, index) => (\n <HorizontalMenuItem\n item={item}\n onMouseEnter={handleEnter}\n onMouseLeave={handleLeave}\n isExpanded={index === debouncedActiveIndex}\n isLast={index === items.length - 1}\n key={index}\n linkHandler={linkHandler}\n />\n ))}\n </ul>\n </nav>\n );\n};\n","var _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nfunction SvgSearch(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M15.847 6.861A6.99 6.99 0 009.587 3a6.997 6.997 0 104.186 12.601l6.106 6.106 1.414-1.414-6.107-6.106a6.99 6.99 0 00.66-7.326zM14.587 10a5 5 0 11-10.001 0 5 5 0 0110 0z\",\n fill: \"currentColor\"\n })));\n}\n\nexport default SvgSearch;","import React, { FC } from 'react';\nimport * as styles from './search-button.pcss';\nimport classNames from 'classnames';\nimport SearchIcon from './search.svg';\n\ninterface SearchButtonProps {\n onClick?: () => void;\n isActive: boolean;\n}\nexport const SearchButton: FC<SearchButtonProps> = ({ onClick, isActive }) => {\n return (\n <button\n type=\"button\"\n className={classNames(styles.button, {\n [styles.active]: isActive,\n })}\n aria-label=\"Search\"\n onClick={onClick}\n >\n <SearchIcon />\n </button>\n );\n};\n","// extracted by mini-css-extract-plugin\nexport const button = \"ktl-search-button_button_JUyxv\";\nexport const active = \"ktl-search-button_active_G-dk1\";","var _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nfunction SvgHamburgerIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M4 5h16v2H4V5zm0 6h16v2H4v-2zm16 6H4v2h16v-2z\",\n fill: \"currentColor\"\n })));\n}\n\nexport default SvgHamburgerIcon;","var _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nfunction SvgCloseIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M15.707 1.707L14.293.293 8 6.586 1.707.293.293 1.707 6.586 8 .293 14.293l1.414 1.414L8 9.414l6.293 6.293 1.414-1.414L9.414 8l6.293-6.293z\",\n fill: \"currentColor\"\n })));\n}\n\nexport default SvgCloseIcon;","import React, { FC } from 'react';\nimport * as styles from './menu-button.pcss';\nimport classNames from 'classnames';\nimport HamburgerIcon from './hamburger-icon.svg';\nimport CloseIcon from './close-icon.svg';\n\ninterface MenuButtonProps {\n onClick: () => void;\n isExpanded: boolean;\n}\n\nexport const MenuButton: FC<MenuButtonProps> = ({ onClick, isExpanded }) => {\n return (\n <button\n type=\"button\"\n className={classNames(styles.button)}\n aria-haspopup=\"true\"\n aria-label=\"Open the navigation\"\n onClick={onClick}\n >\n {isExpanded ? <CloseIcon /> : <HamburgerIcon />}\n </button>\n );\n};\n","// extracted by mini-css-extract-plugin\nexport const button = \"ktl-menu-button_button_InVin\";","function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n// Older browsers don't support event options, feature detect it.\n\n// Adopted and modified solution from Bohdan Didukh (2017)\n// https://stackoverflow.com/questions/41594997/ios-10-safari-prevent-scrolling-behind-a-fixed-overlay-and-maintain-scroll-posi\n\nvar hasPassiveEvents = false;\nif (typeof window !== 'undefined') {\n var passiveTestOptions = {\n get passive() {\n hasPassiveEvents = true;\n return undefined;\n }\n };\n window.addEventListener('testPassive', null, passiveTestOptions);\n window.removeEventListener('testPassive', null, passiveTestOptions);\n}\n\nvar isIosDevice = typeof window !== 'undefined' && window.navigator && window.navigator.platform && (/iP(ad|hone|od)/.test(window.navigator.platform) || window.navigator.platform === 'MacIntel' && window.navigator.maxTouchPoints > 1);\n\n\nvar locks = [];\nvar documentListenerAdded = false;\nvar initialClientY = -1;\nvar previousBodyOverflowSetting = void 0;\nvar previousBodyPaddingRight = void 0;\n\n// returns true if `el` should be allowed to receive touchmove events.\nvar allowTouchMove = function allowTouchMove(el) {\n return locks.some(function (lock) {\n if (lock.options.allowTouchMove && lock.options.allowTouchMove(el)) {\n return true;\n }\n\n return false;\n });\n};\n\nvar preventDefault = function preventDefault(rawEvent) {\n var e = rawEvent || window.event;\n\n // For the case whereby consumers adds a touchmove event listener to document.\n // Recall that we do document.addEventListener('touchmove', preventDefault, { passive: false })\n // in disableBodyScroll - so if we provide this opportunity to allowTouchMove, then\n // the touchmove event on document will break.\n if (allowTouchMove(e.target)) {\n return true;\n }\n\n // Do not prevent if the event has more than one touch (usually meaning this is a multi touch gesture like pinch to zoom).\n if (e.touches.length > 1) return true;\n\n if (e.preventDefault) e.preventDefault();\n\n return false;\n};\n\nvar setOverflowHidden = function setOverflowHidden(options) {\n // If previousBodyPaddingRight is already set, don't set it again.\n if (previousBodyPaddingRight === undefined) {\n var _reserveScrollBarGap = !!options && options.reserveScrollBarGap === true;\n var scrollBarGap = window.innerWidth - document.documentElement.clientWidth;\n\n if (_reserveScrollBarGap && scrollBarGap > 0) {\n previousBodyPaddingRight = document.body.style.paddingRight;\n document.body.style.paddingRight = scrollBarGap + 'px';\n }\n }\n\n // If previousBodyOverflowSetting is already set, don't set it again.\n if (previousBodyOverflowSetting === undefined) {\n previousBodyOverflowSetting = document.body.style.overflow;\n // Setting overflow on body/documentElement synchronously in Desktop Safari slows down\n // the responsiveness for some reason. Setting within a setTimeout fixes this.\n setTimeout(function () {\n document.body.style.overflow = 'hidden';\n });\n }\n};\n\nvar restoreOverflowSetting = function restoreOverflowSetting() {\n // Setting overflow on body/documentElement synchronously in Desktop Safari slows down\n // the responsiveness for some reason. Setting within a setTimeout fixes this.\n setTimeout(function () {\n if (previousBodyPaddingRight !== undefined) {\n document.body.style.paddingRight = previousBodyPaddingRight;\n\n // Restore previousBodyPaddingRight to undefined so setOverflowHidden knows it\n // can be set again.\n previousBodyPaddingRight = undefined;\n }\n\n if (previousBodyOverflowSetting !== undefined) {\n document.body.style.overflow = previousBodyOverflowSetting;\n\n // Restore previousBodyOverflowSetting to undefined\n // so setOverflowHidden knows it can be set again.\n previousBodyOverflowSetting = undefined;\n }\n });\n};\n\n// https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight#Problems_and_solutions\nvar isTargetElementTotallyScrolled = function isTargetElementTotallyScrolled(targetElement) {\n return targetElement ? targetElement.scrollHeight - targetElement.scrollTop <= targetElement.clientHeight : false;\n};\n\nvar handleScroll = function handleScroll(event, targetElement) {\n var clientY = event.targetTouches[0].clientY - initialClientY;\n\n if (allowTouchMove(event.target)) {\n return false;\n }\n\n if (targetElement && targetElement.scrollTop === 0 && clientY > 0) {\n // element is at the top of its scroll.\n return preventDefault(event);\n }\n\n if (isTargetElementTotallyScrolled(targetElement) && clientY < 0) {\n // element is at the bottom of its scroll.\n return preventDefault(event);\n }\n\n event.stopPropagation();\n return true;\n};\n\nexport var disableBodyScroll = function disableBodyScroll(targetElement, options) {\n if (isIosDevice) {\n // targetElement must be provided, and disableBodyScroll must not have been\n // called on this targetElement before.\n if (!targetElement) {\n // eslint-disable-next-line no-console\n console.error('disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.');\n return;\n }\n\n if (targetElement && !locks.some(function (lock) {\n return lock.targetElement === targetElement;\n })) {\n var lock = {\n targetElement: targetElement,\n options: options || {}\n };\n\n locks = [].concat(_toConsumableArray(locks), [lock]);\n\n targetElement.ontouchstart = function (event) {\n if (event.targetTouches.length === 1) {\n // detect single touch.\n initialClientY = event.targetTouches[0].clientY;\n }\n };\n targetElement.ontouchmove = function (event) {\n if (event.targetTouches.length === 1) {\n // detect single touch.\n handleScroll(event, targetElement);\n }\n };\n\n if (!documentListenerAdded) {\n document.addEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = true;\n }\n }\n } else {\n setOverflowHidden(options);\n var _lock = {\n targetElement: targetElement,\n options: options || {}\n };\n\n locks = [].concat(_toConsumableArray(locks), [_lock]);\n }\n};\n\nexport var clearAllBodyScrollLocks = function clearAllBodyScrollLocks() {\n if (isIosDevice) {\n // Clear all locks ontouchstart/ontouchmove handlers, and the references.\n locks.forEach(function (lock) {\n lock.targetElement.ontouchstart = null;\n lock.targetElement.ontouchmove = null;\n });\n\n if (documentListenerAdded) {\n document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = false;\n }\n\n locks = [];\n\n // Reset initial clientY.\n initialClientY = -1;\n } else {\n restoreOverflowSetting();\n locks = [];\n }\n};\n\nexport var enableBodyScroll = function enableBodyScroll(targetElement) {\n if (isIosDevice) {\n if (!targetElement) {\n // eslint-disable-next-line no-console\n console.error('enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.');\n return;\n }\n\n targetElement.ontouchstart = null;\n targetElement.ontouchmove = null;\n\n locks = locks.filter(function (lock) {\n return lock.targetElement !== targetElement;\n });\n\n if (documentListenerAdded && locks.length === 0) {\n document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n\n documentListenerAdded = false;\n }\n } else {\n locks = locks.filter(function (lock) {\n return lock.targetElement !== targetElement;\n });\n if (!locks.length) {\n restoreOverflowSetting();\n }\n }\n};\n\n","import React, {\n CSSProperties,\n FC,\n Fragment,\n useCallback,\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n} from 'react';\nimport * as styles from './menu-popup.module.pcss';\nimport { MenuItem } from '../nav-scheme';\nimport classNames from 'classnames';\nimport { MenuButton } from './menu-button/menu-button';\nimport { useTextStyles } from '@rescui/typography';\nimport { LinkHandler } from 'src/helper/link-handler';\nimport {\n disableBodyScroll,\n enableBodyScroll,\n clearAllBodyScrollLocks,\n} from 'body-scroll-lock';\n\ninterface MenuItemProps {\n item: MenuItem;\n level: number;\n linkHandler?: LinkHandler;\n}\n\ninterface MenuItemStyle extends CSSProperties {\n '--level': number;\n}\n\nconst MenuListItem: FC<MenuItemProps> = ({ item, level, linkHandler }) => {\n const Tag = item.url ? 'a' : 'span';\n const style: MenuItemStyle = {\n '--level': level,\n };\n const handleClick = useCallback(\n (event) => linkHandler && item.url && linkHandler(event, item.url),\n []\n );\n\n return (\n <Tag\n {...(item.url\n ? {\n href: item.url,\n onClick: handleClick,\n }\n : {})}\n className={classNames(styles.menuItem, {\n [styles.menuItemRoot]: level === 0,\n [styles.active]: item.isActive,\n [styles.activeWithChild]: item.items && item.items.length,\n })}\n style={style}\n >\n {item.title}\n </Tag>\n );\n};\n\ninterface MenuListProps {\n items: MenuItem[];\n level: number;\n linkHandler?: LinkHandler;\n}\n\nconst MenuList: FC<MenuListProps> = ({ items, level, linkHandler }) => {\n return (\n <>\n {items.map((item, i) => (\n <Fragment key={i}>\n <MenuListItem item={item} level={level} linkHandler={linkHandler} />\n {item.items && item.items.length > 0 && (\n <MenuList\n items={item.items}\n level={level + 1}\n linkHandler={linkHandler}\n />\n )}\n </Fragment>\n ))}\n </>\n );\n};\n\ninterface MenuPopupProps {\n items: MenuItem[];\n isExpanded: boolean;\n setExpand: React.Dispatch<React.SetStateAction<boolean>>;\n headerRef: React.RefObject<HTMLElement>;\n linkHandler?: LinkHandler;\n}\n\ninterface NavStyles {\n top?: number;\n}\n\nexport const MenuPopup: FC<MenuPopupProps> = ({\n items,\n isExpanded,\n setExpand,\n headerRef,\n linkHandler,\n}) => {\n const navRef = useRef<null | HTMLElement>(null);\n const textCn = useTextStyles();\n const [navStyle, setNavStyle] = useState<NavStyles>({});\n\n useEffect(() => {\n return () => {\n setExpand(false);\n clearAllBodyScrollLocks();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (headerRef.current) {\n setNavStyle({ top: headerRef.current.getBoundingClientRect().bottom });\n }\n }, [isExpanded, headerRef]);\n\n const handleClick = useCallback(() => {\n if (navRef.current) {\n isExpanded\n ? enableBodyScroll(navRef.current)\n : disableBodyScroll(navRef.current);\n }\n setExpand(!isExpanded);\n }, [isExpanded, navRef]);\n\n return (\n <>\n <MenuButton onClick={handleClick} isExpanded={isExpanded} />\n\n <nav\n style={navStyle}\n ref={navRef}\n className={classNames(styles.menuPopup, textCn('rs-text-2'), {\n [styles.menuPopupExpanded]: isExpanded,\n })}\n >\n <MenuList items={items} level={0} linkHandler={linkHandler} />\n </nav>\n </>\n );\n};\n","// extracted by mini-css-extract-plugin\nexport const menuPopup = \"ktl-menu-popup-module_menu-popup_Yqtnq\";\nexport const menuItem = \"ktl-menu-popup-module_menu-item_f6wvh\";\nexport const active = \"ktl-menu-popup-module_active_DrZav\";\nexport const activeWithChild = \"ktl-menu-popup-module_active-with-child_BDnrW\";\nexport const menuItemRoot = \"ktl-menu-popup-module_menu-item-root_C-hkN\";\nexport const menuPopupExpanded = \"ktl-menu-popup-module_menu-popup-expanded_FlujR\";","var _radialGradient, _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nfunction SvgKotlinLogoSmall(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\"\n }, props), _radialGradient || (_radialGradient = /*#__PURE__*/React.createElement(\"radialGradient\", {\n id: \"kotlin-logo-small_svg__a\",\n cx: 22.432,\n cy: 3.493,\n r: 21.679,\n gradientTransform: \"translate(-.19 .042) scale(.9998)\",\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.003,\n stopColor: \"#e44857\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.469,\n stopColor: \"#c711e1\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#7f52ff\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#kotlin-logo-small_svg__a)\",\n d: \"M22.87 21.68H3.94V2.76h18.93l-9.66 9.32z\"\n })));\n}\n\nexport default SvgKotlinLogoSmall;","// extracted by mini-css-extract-plugin\nexport const logoSmall = \"ktl-logo-small-module_logo-small_7ddNl\";\nexport const link = \"ktl-logo-small-module_link_6gruv\";\nexport const iconWrap = \"ktl-logo-small-module_icon-wrap_BFVBd\";\nexport const icon = \"ktl-logo-small-module_icon_JM+yC\";","import React, { FC } from 'react';\nimport KotlinLogoSmall from './kotlin-logo-small.svg';\nimport * as styles from './logo-small.module.pcss';\nimport classNames from 'classnames';\nimport { useTextStyles } from '@rescui/typography';\nimport { KOTLINLANG_URL } from 'src/consts';\n\ninterface LogoSmallProps {\n homeUrl: string;\n homeTitle: string;\n className?: string;\n}\n\nexport const LogoSmall: FC<LogoSmallProps> = ({\n homeTitle,\n homeUrl,\n className,\n}) => {\n const textCn = useTextStyles();\n\n return (\n <div className={classNames(styles.logoSmall, className)}>\n <a href={KOTLINLANG_URL} className={styles.iconWrap}>\n <KotlinLogoSmall className={styles.icon} />\n </a>\n <a href={homeUrl} className={classNames(styles.link, textCn('rs-h3'))}>\n {homeTitle}\n </a>\n </div>\n );\n};\n","import React, {\n FC,\n ForwardedRef,\n forwardRef,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { ThemeProvider } from '@rescui/ui-contexts';\nimport { Theme } from '@rescui/ui-contexts/lib/parts/theme-context';\nimport useResizeObserver from '@react-hook/resize-observer';\nimport { LogoLarge } from './logo-large/logo-large';\nimport * as styles from './header.module.pcss';\nimport { getNavScheme } from './nav-scheme';\nimport { HorizontalMenu } from './horizontal-menu/horizontal-menu';\nimport { SearchButton } from './search-button/search-button';\nimport { MenuPopup } from './menu-popup/menu-popup';\nimport { LogoSmall } from './logo-small/logo-small';\nimport classNames from 'classnames';\nimport { LinkHandler } from 'src/helper/link-handler';\nimport { IsUrlActive } from 'src/helper/is-url-active';\n\nexport interface HeaderProps {\n currentUrl?: string;\n currentTitle?: string;\n productWebUrl?: string;\n hasSearch?: boolean;\n onSearchClick?: () => void;\n className?: string;\n hasBorder?: boolean;\n dropdownTheme?: Theme;\n linkHandler?: LinkHandler;\n isPlayground?: boolean;\n isUrlActive?: IsUrlActive;\n}\n\nconst MENU_POPUP_BREAKPOINT = 640;\n\nexport const Header: FC<HeaderProps> = forwardRef(\n (\n {\n productWebUrl,\n hasSearch = false,\n onSearchClick,\n currentUrl,\n currentTitle,\n className,\n hasBorder = true,\n dropdownTheme = 'dark',\n linkHandler,\n isPlayground,\n isUrlActive,\n },\n forwardedRef?: ForwardedRef<null | HTMLElement>\n ) => {\n const [menuPopupExpanded, setMenuPopupExpanded] = useState(false);\n const [isMenuPopupVisible, setIsMenuPopupVisible] = useState(false);\n const items = useMemo(\n () => getNavScheme(isUrlActive, currentUrl, isPlayground),\n [isUrlActive, currentUrl, isPlayground]\n );\n const headerRef = useRef<null | HTMLElement>(null);\n useImperativeHandle<null | HTMLElement, null | HTMLElement>(\n forwardedRef,\n () => headerRef.current\n );\n\n useLayoutEffect(() => {\n setIsMenuPopupVisible(\n (headerRef.current?.getBoundingClientRect?.().width ?? 0) <=\n MENU_POPUP_BREAKPOINT\n );\n }, [headerRef]);\n\n useResizeObserver(headerRef, (entry) =>\n setIsMenuPopupVisible(entry.contentRect.width <= MENU_POPUP_BREAKPOINT)\n );\n\n return (\n <ThemeProvider theme={'dark'}>\n <header\n ref={headerRef}\n className={classNames(styles.headerMenu, className, {\n [styles.withMenuPopup]: menuPopupExpanded,\n [styles.border]: hasBorder,\n })}\n >\n {isMenuPopupVisible && currentTitle && currentUrl && !menuPopupExpanded ? (\n <LogoSmall homeTitle={currentTitle} homeUrl={currentUrl} />\n ) : (\n <LogoLarge productWebUrl={productWebUrl} />\n )}\n\n {!isMenuPopupVisible && (\n <HorizontalMenu\n items={items}\n theme={dropdownTheme}\n linkHandler={linkHandler}\n />\n )}\n\n <SearchButton\n onClick={onSearchClick}\n isActive={hasSearch && !!onSearchClick}\n />\n\n {isMenuPopupVisible && (\n <MenuPopup\n items={items}\n setExpand={setMenuPopupExpanded}\n isExpanded={menuPopupExpanded}\n headerRef={headerRef}\n linkHandler={linkHandler}\n />\n )}\n </header>\n </ThemeProvider>\n );\n }\n);\n","import { Header } from './header';\nexport default Header;\n\nexport * from './nav-scheme';\n"],"names":["hasOwn","hasOwnProperty","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","inner","apply","toString","Object","prototype","key","call","join","module","exports","default","f","g","Fragment","Symbol","for","h","m","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","n","p","ref","__self","__source","q","c","a","k","b","d","e","l","defaultProps","$$typeof","type","props","_owner","current","jsx","jsxs","require","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","getter","__esModule","definition","o","defineProperty","enumerable","get","obj","prop","r","toStringTag","value","ResizeObserverBoxOptions","resizeObservers","msg","trigger","freeze","ResizeObserverSize","inlineSize","blockSize","this","DOMRectReadOnly","x","y","width","height","top","left","bottom","right","toJSON","_a","fromRect","rectangle","isSVG","target","SVGElement","isHidden","getBBox","_b","offsetWidth","offsetHeight","getClientRects","isElement","Element","scope","ownerDocument","defaultView","global","window","cache","WeakMap","scrollRegexp","verticalRegexp","IE","test","navigator","userAgent","parseDimension","pixel","parseFloat","size","switchSizes","zeroBoxes","devicePixelContentBoxSize","borderBoxSize","contentBoxSize","contentRect","calculateBoxSizes","forceRecalculation","has","set","cs","getComputedStyle","svg","ownerSVGElement","removePadding","boxSizing","writingMode","canScrollVertically","overflowY","canScrollHorizontally","overflowX","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTop","borderTopWidth","borderRight","borderRightWidth","borderBottom","borderBottomWidth","horizontalPadding","verticalPadding","horizontalBorderArea","borderLeftWidth","verticalBorderArea","horizontalScrollbarThickness","clientHeight","verticalScrollbarThickness","clientWidth","widthReduction","heightReduction","contentWidth","contentHeight","borderBoxWidth","borderBoxHeight","boxes","Math","round","devicePixelRatio","calculateBoxSize","observedBox","DEVICE_PIXEL_CONTENT_BOX","BORDER_BOX","ResizeObserverEntry","calculateDepthForNode","node","Infinity","depth","parent","parentNode","broadcastActiveObservations","shallowestDepth","callbacks","forEach","ro","activeTargets","entries","ot","entry","targetDepth","lastReportedSize","callback","observer","splice","_i","callbacks_1","gatherActiveObservationsAtDepth","skippedTargets","observationTargets","isActive","process","event","some","ErrorEvent","message","document","createEvent","initEvent","dispatchEvent","queueMicroTask","toggle_1","el_1","createTextNode","MutationObserver","cb","observe","characterData","textContent","watching","observerConfig","attributes","childList","subtree","events","time","timeout","Date","now","scheduled","scheduler","Scheduler","_this","stopped","listener","schedule","run","until","elementsHaveResized","start","requestAnimationFrame","stop","body","addEventListener","name","disconnect","removeEventListener","updateCount","ResizeObservation","CONTENT_BOX","tagName","isReplacedElement","display","ResizeObserverDetail","resizeObserver","observerMap","getObservationIndex","ResizeObserverController","connect","detail","options","firstObservation","box","unobserve","index","lastObservation","indexOf","slice","ResizeObserver","TypeError","createElement","storedValue","fn","lastArgs","frameId","wrapperFn","_len","args","_key","cancel","cancelAnimationFrame","_ref","_resizeObserver","getResizeObserver","Map","obs","cbs","subscribe","_callbacks$get","unsubscribe","_callbacks$get2","delete","cbIndex","createResizeObserver","storedCallback","didUnsubscribe","targetEl","_radialGradient","_path","_g","_extends","assign","source","xmlns","viewBox","id","cx","cy","gradientTransform","gradientUnits","offset","stopColor","fill","KOTLINLANG_URL","LogoLarge","productWebUrl","className","version","match","exec","getProductVersion","textCn","useTextStyles","hardness","href","SOLUTIONS_TITLE","MULTIPLATFORM_MOBILE_TITLE","MULTIPLATFORM_MOBILE_URL","SERVER_SIDE_TITLE","SERVER_SIDE_URL","WEB_FRONTEND_TITLE","WEB_FRONTEND_URL","DATA_SCIENCE_TITLE","DATA_SCIENCE_URL","ANDROID_TITLE","ANDROID_URL","DOCS_TITLE","DOCS_URL","COMMUNITY_TITLE","COMMUNITY_URL","TEACH_TITLE","TEACH_URL","PLAY_TITLE","PLAY_TITLE_FULL","PLAY_URL","PLAY_HANDSON_URL","PLAY_HANDSON_TITLE","PLAY_EXAMPLES_URL","PLAY_EXAMPLES_TITLE","PLAY_KOANS_URL","PLAY_KOANS_TITLE","KOTLIN_DOCS_TITLE","KOTLIN_DOCS_URL","KMM_DOCS_TITLE","KMM_DOCS_URL","navScheme","title","url","items","getNavScheme","isUrlActive","currentUrl","isPlayground","map","makeExternalUrl","item","childUrl","childActive","startsWith","replace","DropdownMenu","isExpanded","alignRight","linkHandler","Tag","onClick","HorizontalMenuItem","onMouseEnter","onMouseLeave","isLast","HorizontalMenu","theme","activeIndex","setActiveIndex","useState","debouncedActiveIndex","setDebouncedActiveIndex","useEffect","handler","setTimeout","clearTimeout","handleEnter","findIndex","val","handleLeave","fillRule","clipRule","SearchButton","MenuButton","_toConsumableArray","arr","arr2","from","hasPassiveEvents","passiveTestOptions","passive","isIosDevice","platform","maxTouchPoints","locks","documentListenerAdded","initialClientY","previousBodyOverflowSetting","previousBodyPaddingRight","allowTouchMove","el","lock","preventDefault","rawEvent","touches","restoreOverflowSetting","style","overflow","disableBodyScroll","targetElement","console","error","concat","ontouchstart","targetTouches","clientY","ontouchmove","scrollTop","scrollHeight","isTargetElementTotallyScrolled","stopPropagation","handleScroll","_reserveScrollBarGap","reserveScrollBarGap","scrollBarGap","innerWidth","documentElement","setOverflowHidden","_lock","MenuListItem","level","handleClick","useCallback","MenuList","MenuPopup","setExpand","headerRef","navRef","useRef","navStyle","setNavStyle","useLayoutEffect","getBoundingClientRect","filter","enableBodyScroll","LogoSmall","homeTitle","homeUrl","Header","forwardRef","forwardedRef","hasSearch","onSearchClick","currentTitle","hasBorder","dropdownTheme","menuPopupExpanded","setMenuPopupExpanded","isMenuPopupVisible","setIsMenuPopupVisible","useMemo","useImperativeHandle","useResizeObserver","ThemeProvider"],"sourceRoot":""}
|