construct-hub 0.3.137 → 0.3.142

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. package/.gitattributes +1 -0
  2. package/.jsii +2 -2
  3. package/lib/construct-hub.js +1 -1
  4. package/lib/package-sources/code-artifact.js +1 -1
  5. package/lib/package-sources/npmjs.js +1 -1
  6. package/lib/package-tag/index.js +2 -2
  7. package/lib/s3/vpc-endpoint-bucket.js +30 -1
  8. package/lib/spdx-license.js +1 -1
  9. package/package.json +2 -2
  10. package/website/asset-manifest.json +40 -40
  11. package/website/assets/aqua-security.png +0 -0
  12. package/website/index.html +1 -1
  13. package/website/static/js/{0.75bd4211.chunk.js → 0.740a33f8.chunk.js} +2 -2
  14. package/website/static/js/{0.75bd4211.chunk.js.map → 0.740a33f8.chunk.js.map} +1 -1
  15. package/website/static/js/{1.de94dd4f.chunk.js → 1.64a9b795.chunk.js} +2 -2
  16. package/website/static/js/{1.de94dd4f.chunk.js.map → 1.64a9b795.chunk.js.map} +1 -1
  17. package/website/static/js/{10.63153bb8.chunk.js → 10.30ecd71a.chunk.js} +2 -2
  18. package/website/static/js/{10.63153bb8.chunk.js.map → 10.30ecd71a.chunk.js.map} +1 -1
  19. package/website/static/js/11.9e53aff3.chunk.js +2 -0
  20. package/website/static/js/11.9e53aff3.chunk.js.map +1 -0
  21. package/website/static/js/12.7d44c985.chunk.js +2 -0
  22. package/website/static/js/12.7d44c985.chunk.js.map +1 -0
  23. package/website/static/js/{13.d3fce156.chunk.js → 13.9c0ba67b.chunk.js} +2 -2
  24. package/website/static/js/{13.d3fce156.chunk.js.map → 13.9c0ba67b.chunk.js.map} +1 -1
  25. package/website/static/js/{14.e783508a.chunk.js → 14.924c14cb.chunk.js} +2 -2
  26. package/website/static/js/{14.e783508a.chunk.js.map → 14.924c14cb.chunk.js.map} +1 -1
  27. package/website/static/js/{15.06217ace.chunk.js → 15.c3f18810.chunk.js} +3 -3
  28. package/website/static/js/{15.06217ace.chunk.js.LICENSE.txt → 15.c3f18810.chunk.js.LICENSE.txt} +0 -0
  29. package/website/static/js/{15.06217ace.chunk.js.map → 15.c3f18810.chunk.js.map} +1 -1
  30. package/website/static/js/{16.0b2ec5e5.chunk.js → 16.84214b0e.chunk.js} +2 -2
  31. package/website/static/js/{16.0b2ec5e5.chunk.js.map → 16.84214b0e.chunk.js.map} +1 -1
  32. package/website/static/js/{4.91a3f4bb.chunk.js → 4.e051c405.chunk.js} +3 -3
  33. package/website/static/js/{4.91a3f4bb.chunk.js.LICENSE.txt → 4.e051c405.chunk.js.LICENSE.txt} +0 -0
  34. package/website/static/js/4.e051c405.chunk.js.map +1 -0
  35. package/website/static/js/5.05213cd1.chunk.js +3 -0
  36. package/website/static/js/{5.fb19ba3d.chunk.js.LICENSE.txt → 5.05213cd1.chunk.js.LICENSE.txt} +0 -0
  37. package/website/static/js/5.05213cd1.chunk.js.map +1 -0
  38. package/website/static/js/6.d05c0b08.chunk.js +2 -0
  39. package/website/static/js/6.d05c0b08.chunk.js.map +1 -0
  40. package/website/static/js/7.ebf6a179.chunk.js +2 -0
  41. package/website/static/js/7.ebf6a179.chunk.js.map +1 -0
  42. package/website/static/js/{8.73c2c7f3.chunk.js → 8.8e96ad43.chunk.js} +2 -2
  43. package/website/static/js/{8.73c2c7f3.chunk.js.map → 8.8e96ad43.chunk.js.map} +1 -1
  44. package/website/static/js/{9.8b744886.chunk.js → 9.174f64fc.chunk.js} +2 -2
  45. package/website/static/js/{9.8b744886.chunk.js.map → 9.174f64fc.chunk.js.map} +1 -1
  46. package/website/static/js/main.8038c15f.chunk.js +2 -0
  47. package/website/static/js/main.8038c15f.chunk.js.map +1 -0
  48. package/website/static/js/{runtime-main.b8868b3c.js → runtime-main.3666b7b5.js} +2 -2
  49. package/website/static/js/{runtime-main.b8868b3c.js.map → runtime-main.3666b7b5.js.map} +1 -1
  50. package/website/static/js/11.95a7aff0.chunk.js +0 -2
  51. package/website/static/js/11.95a7aff0.chunk.js.map +0 -1
  52. package/website/static/js/12.755ea3fc.chunk.js +0 -2
  53. package/website/static/js/12.755ea3fc.chunk.js.map +0 -1
  54. package/website/static/js/4.91a3f4bb.chunk.js.map +0 -1
  55. package/website/static/js/5.fb19ba3d.chunk.js +0 -3
  56. package/website/static/js/5.fb19ba3d.chunk.js.map +0 -1
  57. package/website/static/js/6.ca3456ca.chunk.js +0 -2
  58. package/website/static/js/6.ca3456ca.chunk.js.map +0 -1
  59. package/website/static/js/7.f1806927.chunk.js +0 -2
  60. package/website/static/js/7.f1806927.chunk.js.map +0 -1
  61. package/website/static/js/main.40e21094.chunk.js +0 -2
  62. package/website/static/js/main.40e21094.chunk.js.map +0 -1
@@ -1,2 +1,2 @@
1
- (this["webpackJsonpconstruct-hub-webapp"]=this["webpackJsonpconstruct-hub-webapp"]||[]).push([[10],{12:function(e,t,r){"use strict";var n=r(66);r.o(n,"layoutPropNames")&&r.d(t,"layoutPropNames",(function(){return n.layoutPropNames})),r.o(n,"tokenToCSSVar")&&r.d(t,"tokenToCSSVar",(function(){return n.tokenToCSSVar}));var o=r(271);r.o(o,"layoutPropNames")&&r.d(t,"layoutPropNames",(function(){return o.layoutPropNames})),r.o(o,"tokenToCSSVar")&&r.d(t,"tokenToCSSVar",(function(){return o.tokenToCSSVar}))},271:function(e,t){},388:function(e,t,r){"use strict";r.d(t,"b",(function(){return g})),r.d(t,"a",(function(){return y}));var n=r(5),o=r(17),a=r(21),i=r(15),c=r(8),u=r(119),l=r(0),s=r(4),d=r(152),b=r(117),v=r(162);function f(){return f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},f.apply(this,arguments)}function p(e){void 0===e&&(e={});var t=e,r=t.onChange,o=t.value,a=t.defaultValue,i=t.name,u=t.isDisabled,p=t.isFocusable,O=t.isNative,j=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,["onChange","value","defaultValue","name","isDisabled","isFocusable","isNative"]),h=l.useState(a||""),m=Object(n.a)(h,2),g=m[0],y=m[1],k=Object(d.a)(o,g),w=Object(n.a)(k,2),C=w[0],P=w[1],S=l.useRef(null),x=l.useCallback((function(){var e=S.current;if(e){var t="input:not(:disabled):checked",r=e.querySelector(t);if(r)r.focus();else{t="input:not(:disabled)";var n=e.querySelector(t);null==n||n.focus()}}}),[]),D=Object(b.b)(void 0,"radio"),E=i||D,_=l.useCallback((function(e){var t=Object(c.f)(e)?e.target.value:e;C||y(t),null==r||r(String(t))}),[r,C]),N=l.useCallback((function(e,t){return void 0===e&&(e={}),void 0===t&&(t=null),f({},e,{ref:Object(v.a)(t,S),role:"radiogroup"})}),[]),R=l.useCallback((function(e,t){var r;void 0===e&&(e={}),void 0===t&&(t=null);var n=O?"checked":"isChecked";return f({},e,(r={ref:t,name:E},Object(s.a)(r,n,null!=P?e.value===P:void 0),Object(s.a)(r,"onChange",_),Object(s.a)(r,"data-radiogroup",!0),r))}),[O,E,_,P]);return{getRootProps:N,getRadioProps:R,name:E,ref:S,focus:x,setValue:y,value:P,onChange:_,isDisabled:u,isFocusable:p,htmlProps:j}}function O(){return O=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},O.apply(this,arguments)}var j=Object(u.a)({name:"RadioGroupContext",strict:!1}),h=Object(n.a)(j,2),m=h[0],g=h[1],y=Object(o.a)((function(e,t){var r=e.colorScheme,n=e.size,o=e.variant,c=e.children,u=e.className,s=e.isDisabled,d=e.isFocusable,b=p(function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,["colorScheme","size","variant","children","className","isDisabled","isFocusable"])),v=b.value,f=b.onChange,j=b.getRootProps,h=b.name,g=b.htmlProps,y=l.useMemo((function(){return{name:h,size:n,onChange:f,colorScheme:r,value:v,variant:o,isDisabled:s,isFocusable:d}}),[h,n,f,r,v,o,s,d]),k=j(g,t),w=Object(i.d)("chakra-radio-group",u);return l.createElement(m,{value:y},l.createElement(a.a.div,O({},k,{className:w}),c))}));c.a&&(y.displayName="RadioGroup")},390:function(e,t,r){"use strict";r.d(t,"b",(function(){return l})),r.d(t,"a",(function(){return s}));var n=r(17),o=r(21),a=r(15),i=r(0);function c(){return c=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},c.apply(this,arguments)}function u(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}var l=Object(n.a)((function(e,t){var r=e.isExternal,n=e.target,l=e.rel,s=e.className,d=u(e,["isExternal","target","rel","className"]);return i.createElement(o.a.a,c({},d,{ref:t,className:Object(a.d)("chakra-linkbox__overlay",s),rel:r?"noopener noreferrer":l,target:r?"_blank":n,__css:{position:"static","&::before":{content:"''",cursor:"inherit",display:"block",position:"absolute",top:0,left:0,zIndex:0,width:"100%",height:"100%"}}}))})),s=Object(n.a)((function(e,t){var r=e.className,n=u(e,["className"]);return i.createElement(o.a.div,c({ref:t,position:"relative"},n,{className:Object(a.d)("chakra-linkbox",r),__css:{"a[href]:not(.chakra-linkbox__overlay), abbr[title]":{position:"relative",zIndex:1}}}))}))},636:function(e,t,r){"use strict";r.d(t,"a",(function(){return f}));var n=r(305),o=r(247),a=r(240);function i(e,t){Object(a.a)(2,arguments);var r=Object(o.a)(e),n=Object(o.a)(t),i=r.getTime()-n.getTime();return i<0?-1:i>0?1:i}function c(e){return function(e,t){if(null==e)throw new TypeError("assign requires that input parameter not be null or undefined");for(var r in t=t||{})Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}({},e)}var u=r(334),l=6e4,s=1440,d=43200,b=525600;function v(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object(a.a)(2,arguments);var v=r.locale||u.a;if(!v.formatDistance)throw new RangeError("locale must contain localize.formatDistance property");var f=i(e,t);if(isNaN(f))throw new RangeError("Invalid time value");var p,O,j=c(r);j.addSuffix=Boolean(r.addSuffix),j.comparison=f,f>0?(p=Object(o.a)(t),O=Object(o.a)(e)):(p=Object(o.a)(e),O=Object(o.a)(t));var h,m=null==r.roundingMethod?"round":String(r.roundingMethod);if("floor"===m)h=Math.floor;else if("ceil"===m)h=Math.ceil;else{if("round"!==m)throw new RangeError("roundingMethod must be 'floor', 'ceil' or 'round'");h=Math.round}var g,y=O.getTime()-p.getTime(),k=y/l,w=Object(n.a)(O)-Object(n.a)(p),C=(y-w)/l;if("second"===(g=null==r.unit?k<1?"second":k<60?"minute":k<s?"hour":C<d?"day":C<b?"month":"year":String(r.unit))){var P=h(y/1e3);return v.formatDistance("xSeconds",P,j)}if("minute"===g){var S=h(k);return v.formatDistance("xMinutes",S,j)}if("hour"===g){var x=h(k/60);return v.formatDistance("xHours",x,j)}if("day"===g){var D=h(C/s);return v.formatDistance("xDays",D,j)}if("month"===g){var E=h(C/d);return 12===E&&"month"!==r.unit?v.formatDistance("xYears",1,j):v.formatDistance("xMonths",E,j)}if("year"===g){var _=h(C/b);return v.formatDistance("xYears",_,j)}throw new RangeError("unit must be 'second', 'minute', 'hour', 'day', 'month' or 'year'")}function f(e,t){return Object(a.a)(1,arguments),v(e,Date.now(),t)}},650:function(e,t,r){"use strict";r.d(t,"a",(function(){return ne})),r.d(t,"e",(function(){return oe})),r.d(t,"d",(function(){return ae})),r.d(t,"c",(function(){return ce})),r.d(t,"b",(function(){return ue}));r(206);var n=r(55),o=r(36),a=r(54),i=r(17),c=r(21),u=r(32),l=r(8),s=r(15),d=r(0),b=r.n(d),v=r(5),f=r(119),p=Object(f.a)({name:"PopoverContext",errorMessage:"usePopoverContext: `context` is undefined. Seems you forgot to wrap all popover components within `<Popover />`"}),O=Object(v.a)(p,2),j=O[0],h=O[1],m=r(187),g=r(31),y=r.n(g);function k(){return k=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},k.apply(this,arguments)}var w=function(e){if(e)return y()(e,{enter:{visibility:"visible"},exit:{transitionEnd:{visibility:"hidden"}}})},C=Object(m.a)(c.a.section),P=b.a.forwardRef((function(e,t){var r=h().isOpen;return b.a.createElement(C,k({ref:t,variants:w(e.variants)},e,{initial:!1,animate:r?"enter":"exit"}))}));P.defaultProps={variants:{exit:{opacity:0,scale:.95,transition:{duration:.1,ease:[.4,0,1,1]}},enter:{scale:1,opacity:1,transition:{duration:.15,ease:[0,0,.2,1]}}}};var S=r(4),x=r(209),D=r(117);var E=r(42),_=r(184);function N(e){return!!e.touches}var R={pageX:0,pageY:0};function F(e,t){void 0===t&&(t="page");var r=e.touches[0]||e.changedTouches[0]||R;return{x:r[t+"X"],y:r[t+"Y"]}}function M(e,t){return void 0===t&&(t="page"),{x:e[t+"X"],y:e[t+"Y"]}}function T(e,t){return void 0===t&&(t="page"),{point:N(e)?F(e,t):M(e,t)}}var I=function(e,t){void 0===t&&(t=!1);var r,n=function(t){return e(t,T(t))};return t?(r=n,function(e){var t=e instanceof Object(s.g)(e).MouseEvent;(!t||t&&0===e.button)&&r(e)}):n},B={pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointercancel:"mousecancel",pointerover:"mouseover",pointerout:"mouseout",pointerenter:"mouseenter",pointerleave:"mouseleave"},z={pointerdown:"touchstart",pointermove:"touchmove",pointerup:"touchend",pointercancel:"touchcancel"};function A(e){return s.j&&null===window.onpointerdown?e:s.j&&null===window.ontouchstart?z[e]:s.j&&null===window.onmousedown?B[e]:e}var L=r(190);function K(e){var t,r,n,o,a,i=e.ref,c=e.elements,u=e.enabled,d=(t="Safari",!!s.j&&function(e){var t=e.userAgent,r=e.vendor,n=/(android)/i.test(t);switch(!0){case/CriOS/.test(t):return"Chrome for iOS";case/Edg\//.test(t):return"Edge";case n&&/Silk\//.test(t):return"Silk";case/Chrome/.test(t)&&/Google Inc/.test(r):return"Chrome";case/Firefox\/\d+\.\d+$/.test(t):return"Firefox";case n:return"AOSP";case/MSIE|Trident/.test(t):return"IE";case/Safari/.test(e.userAgent)&&/Apple Computer/.test(t):return"Safari";case/AppleWebKit/.test(t):return"WebKit";default:return null}}(window.navigator)===t);r=function(){return Object(s.h)(i.current)},n="pointerdown",o=function(e){if(d&&u){var t=e.target,r=(null!=c?c:[i]).some((function(e){var r=Object(l.j)(e)?e.current:e;return Object(s.c)(r,t)}));!Object(E.a)(t)&&r&&(e.preventDefault(),Object(_.a)(t))}},Object(L.a)(A(n),I(o,"pointerdown"===n),r,a)}var q=r(216),V=r(205),U=r(141),H={preventScroll:!0,shouldFocus:!1};var Y=r(227),W=r(27),G=r(162),X=r(217),J=r(204);function $(){return $=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},$.apply(this,arguments)}var Q="click",Z="hover";function ee(e){void 0===e&&(e={});var t=e,r=t.closeOnBlur,n=void 0===r||r,o=t.closeOnEsc,a=void 0===o||o,i=t.initialFocusRef,c=t.id,b=t.returnFocusOnClose,f=void 0===b||b,p=t.autoFocus,O=void 0===p||p,j=t.arrowSize,h=t.arrowShadowColor,m=t.trigger,g=void 0===m?Q:m,y=t.openDelay,k=void 0===y?200:y,w=t.closeDelay,C=void 0===w?200:w,P=t.isLazy,E=t.lazyBehavior,N=void 0===E?"unmount":E,R=t.computePositionOnMount,F=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,["closeOnBlur","closeOnEsc","initialFocusRef","id","returnFocusOnClose","autoFocus","arrowSize","arrowShadowColor","trigger","openDelay","closeDelay","isLazy","lazyBehavior","computePositionOnMount"]),M=Object(x.a)(e),T=M.isOpen,I=M.onClose,B=M.onOpen,z=M.onToggle,A=Object(d.useRef)(null),ee=Object(d.useRef)(null),te=Object(d.useRef)(!1),re=Object(d.useRef)(!1);T&&(re.current=!0);var ne=Object(d.useState)(!1),oe=Object(v.a)(ne,2),ae=oe[0],ie=oe[1],ce=Object(d.useState)(!1),ue=Object(v.a)(ce,2),le=ue[0],se=ue[1],de=Object(D.c)(c,"popover-trigger","popover-content","popover-header","popover-body"),be=Object(v.a)(de,4),ve=be[0],fe=be[1],pe=be[2],Oe=be[3],je=Object(Y.a)($({},F,{enabled:T||!!R})),he=je.referenceRef,me=je.getArrowProps,ge=je.getPopperProps,ye=je.getArrowInnerProps,ke=je.forceUpdate;K({enabled:T,ref:A}),Object(q.a)(ee,{focusRef:A,visible:T,shouldFocus:f&&g===Q}),function(e,t){void 0===t&&(t=H);var r=t,n=r.focusRef,o=r.preventScroll,a=r.shouldFocus,i=r.visible,c=Object(l.j)(e)?e.current:e,u=a&&i,b=Object(d.useCallback)((function(){if(c&&u&&!Object(s.c)(c,document.activeElement))if(null!=n&&n.current)Object(_.a)(n.current,{preventScroll:o,nextTick:!0});else{var e=Object(V.a)(c);e.length>0&&Object(_.a)(e[0],{preventScroll:o,nextTick:!0})}}),[u,o,c,n]);Object(U.a)((function(){b()}),[b]),Object(L.a)("transitionend",b,c)}(ee,{focusRef:i,visible:T,shouldFocus:O&&g===Q});var we=Object(X.a)({hasBeenSelected:re.current,isLazy:P,lazyBehavior:N,isSelected:T}),Ce=Object(d.useCallback)((function(e,t){var r;void 0===e&&(e={}),void 0===t&&(t=null);var o=$({},e,{style:$({},e.style,(r={transformOrigin:W.a.transformOrigin.varRef},Object(S.a)(r,W.a.arrowSize.var,j?Object(J.b)(j):void 0),Object(S.a)(r,W.a.arrowShadowColor.var,h),r)),ref:Object(G.a)(ee,t),children:we?e.children:null,id:fe,tabIndex:-1,role:"dialog",onKeyDown:Object(u.b)(e.onKeyDown,(function(e){a&&"Escape"===e.key&&I()})),onBlur:Object(u.b)(e.onBlur,(function(e){var t=Object(s.i)(e),r=Object(s.c)(ee.current,t),o=Object(s.c)(A.current,t);T&&n&&(!r&&!o)&&I()})),"aria-labelledby":ae?pe:void 0,"aria-describedby":le?Oe:void 0});return g===Z&&(o.role="tooltip",o.onMouseEnter=Object(u.b)(e.onMouseEnter,(function(){te.current=!0})),o.onMouseLeave=Object(u.b)(e.onMouseLeave,(function(){te.current=!1,setTimeout(I,C)}))),o}),[we,fe,ae,pe,le,Oe,g,a,I,T,n,C,h,j]),Pe=Object(d.useCallback)((function(e,t){return void 0===e&&(e={}),void 0===t&&(t=null),ge($({},e,{style:$({visibility:T?"visible":"hidden"},e.style)}),t)}),[T,ge]),Se=Object(d.useRef)(),xe=Object(d.useRef)(),De=Object(d.useCallback)((function(e,t){void 0===e&&(e={}),void 0===t&&(t=null);var r=$({},e,{ref:Object(G.a)(A,t,he),id:ve,"aria-haspopup":"dialog","aria-expanded":T,"aria-controls":fe});return g===Q&&(r.onClick=Object(u.b)(e.onClick,z)),g===Z&&(r.onFocus=Object(u.b)(e.onFocus,B),r.onBlur=Object(u.b)(e.onBlur,I),r.onKeyDown=Object(u.b)(e.onKeyDown,(function(e){"Escape"===e.key&&I()})),r.onMouseEnter=Object(u.b)(e.onMouseEnter,(function(){te.current=!0,Se.current=window.setTimeout(B,k)})),r.onMouseLeave=Object(u.b)(e.onMouseLeave,(function(){te.current=!1,Se.current&&(clearTimeout(Se.current),Se.current=void 0),xe.current=window.setTimeout((function(){!1===te.current&&I()}),C)}))),r}),[ve,T,fe,g,he,z,B,I,k,C]);Object(d.useEffect)((function(){return function(){Se.current&&clearTimeout(Se.current),xe.current&&clearTimeout(xe.current)}}),[]);var Ee=Object(d.useCallback)((function(e,t){return void 0===e&&(e={}),void 0===t&&(t=null),$({},e,{id:pe,ref:Object(G.a)(t,(function(e){ie(!!e)}))})}),[pe]),_e=Object(d.useCallback)((function(e,t){return void 0===e&&(e={}),void 0===t&&(t=null),$({},e,{id:Oe,ref:Object(G.a)(t,(function(e){se(!!e)}))})}),[Oe]);return{forceUpdate:ke,isOpen:T,onClose:I,getArrowProps:me,getArrowInnerProps:ye,getPopoverPositionerProps:Pe,getPopoverProps:Ce,getTriggerProps:De,getHeaderProps:Ee,getBodyProps:_e}}function te(){return te=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},te.apply(this,arguments)}function re(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}var ne=function(e){var t=Object(n.a)("Popover",e),r=Object(o.b)(e),i=r.children,c=ee(te({},re(r,["children"]),{direction:Object(a.e)().direction}));return d.createElement(j,{value:c},d.createElement(a.b,{value:t},Object(u.e)(i,{isOpen:c.isOpen,onClose:c.onClose,forceUpdate:c.forceUpdate})))};l.a&&(ne.displayName="Popover");var oe=function(e){var t=d.Children.only(e.children),r=h().getTriggerProps;return d.cloneElement(t,r(t.props,t.ref))};l.a&&(oe.displayName="PopoverTrigger");var ae=Object(i.a)((function(e,t){var r=e.rootProps,n=re(e,["rootProps"]),o=h(),i=o.getPopoverProps,u=o.getPopoverPositionerProps,l=Object(a.d)(),b=te({position:"relative",display:"flex",flexDirection:"column"},l.content);return d.createElement(c.a.div,te({},u(r),{__css:l.popper,className:"chakra-popover__popper"}),d.createElement(P,te({},i(n,t),{className:Object(s.d)("chakra-popover__content",e.className),__css:b})))}));l.a&&(ae.displayName="PopoverContent");var ie=Object(i.a)((function(e,t){var r=h().getHeaderProps,n=Object(a.d)();return d.createElement(c.a.header,te({},r(e,t),{className:Object(s.d)("chakra-popover__header",e.className),__css:n.header}))}));l.a&&(ie.displayName="PopoverHeader");var ce=Object(i.a)((function(e,t){var r=h().getBodyProps,n=Object(a.d)();return d.createElement(c.a.div,te({},r(e,t),{className:Object(s.d)("chakra-popover__body",e.className),__css:n.body}))}));l.a&&(ce.displayName="PopoverBody");l.a;l.a;var ue=function(e){var t,r=e.bg,n=e.bgColor,o=e.backgroundColor,i=h(),u=i.getArrowProps,l=i.getArrowInnerProps,b=Object(a.d)(),v=null!=(t=null!=r?r:n)?t:o;return d.createElement(c.a.div,te({},u(),{className:"chakra-popover__arrow-positioner"}),d.createElement(c.a.div,te({className:Object(s.d)("chakra-popover__arrow",e.className)},l(e),{__css:te({},b.arrow,{"--popper-arrow-bg":v?"colors."+v+", "+v:void 0})})))};l.a&&(ue.displayName="PopoverArrow")},654:function(e,t,r){"use strict";r.d(t,"a",(function(){return P}));var n=r(5),o=r(17),a=r(55),i=r(36),c=r(12),u=r(21),l=r(32),s=r(29),d=r(8),b=r(0),v=r(388),f=r(154),p=r(117),O=r(185),j=r(152),h=r(162),m=r(15),g=r(186);function y(){return y=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},y.apply(this,arguments)}function k(e){void 0===e&&(e={});var t=e,r=t.defaultIsChecked,o=t.defaultChecked,a=void 0===o?r:o,i=t.isChecked,c=t.isFocusable,u=t.isDisabled,s=t.isReadOnly,d=t.isRequired,k=t.onChange,C=t.isInvalid,P=t.name,S=t.value,x=t.id,D=t["data-radiogroup"],E=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,["defaultIsChecked","defaultChecked","isChecked","isFocusable","isDisabled","isReadOnly","isRequired","onChange","isInvalid","name","value","id","data-radiogroup"]),_=Object(p.b)(void 0,"radio"),N=Object(f.a)(),R=Object(v.b)(),F=!!N&&!(!!R||!!D)?N.id:_;F=null!=x?x:F;var M=null!=u?u:null==N?void 0:N.isDisabled,T=null!=s?s:null==N?void 0:N.isReadOnly,I=null!=d?d:null==N?void 0:N.isRequired,B=null!=C?C:null==N?void 0:N.isInvalid,z=Object(O.a)(),A=Object(n.a)(z,2),L=A[0],K=A[1],q=Object(O.a)(),V=Object(n.a)(q,2),U=V[0],H=V[1],Y=Object(O.a)(),W=Object(n.a)(Y,2),G=W[0],X=W[1],J=Object(b.useRef)(null),$=Object(b.useState)(Boolean(a)),Q=Object(n.a)($,2),Z=Q[0],ee=Q[1],te=Object(j.a)(i,Z),re=Object(n.a)(te,2),ne=re[0],oe=re[1];Object(l.f)({condition:!!r,message:'The "defaultIsChecked" prop has been deprecated and will be removed in a future version. Please use the "defaultChecked" prop instead, which mirrors default React checkbox behavior.'});var ae=Object(b.useCallback)((function(e){T||M?e.preventDefault():(ne||ee(e.target.checked),null==k||k(e))}),[ne,M,T,k]),ie=Object(b.useCallback)((function(e){" "===e.key&&X.on()}),[X]),ce=Object(b.useCallback)((function(e){" "===e.key&&X.off()}),[X]),ue=Object(b.useCallback)((function(e,t){return void 0===e&&(e={}),void 0===t&&(t=null),y({},e,{ref:t,"data-active":Object(m.e)(G),"data-hover":Object(m.e)(U),"data-disabled":Object(m.e)(M),"data-invalid":Object(m.e)(B),"data-checked":Object(m.e)(oe),"data-focus":Object(m.e)(L),"data-readonly":Object(m.e)(T),"aria-hidden":!0,onMouseDown:Object(l.b)(e.onMouseDown,X.on),onMouseUp:Object(l.b)(e.onMouseUp,X.off),onMouseEnter:Object(l.b)(e.onMouseEnter,H.on),onMouseLeave:Object(l.b)(e.onMouseLeave,H.off)})}),[G,U,M,B,oe,L,T,X.on,X.off,H.on,H.off]),le=null!=N?N:{},se=le.onFocus,de=le.onBlur,be=Object(b.useCallback)((function(e,t){void 0===e&&(e={}),void 0===t&&(t=null);var r=M&&!c;return y({},e,{id:F,ref:Object(h.a)(t,J),type:"radio",name:P,value:S,onChange:Object(l.b)(e.onChange,ae),onBlur:Object(l.b)(de,e.onBlur,K.off),onFocus:Object(l.b)(se,e.onFocus,K.on),onKeyDown:Object(l.b)(e.onKeyDown,ie),onKeyUp:Object(l.b)(e.onKeyUp,ce),checked:oe,disabled:r,readOnly:T,required:I,"aria-invalid":Object(m.b)(B),"aria-disabled":Object(m.b)(r),"aria-readonly":Object(m.b)(T),"aria-required":Object(m.b)(I),style:g.b})}),[M,c,F,P,S,ae,de,K,se,ie,ce,oe,T,I,B]);return{state:{isInvalid:B,isFocused:L,isChecked:oe,isActive:G,isHovered:U,isDisabled:M,isReadOnly:T,isRequired:I},getCheckboxProps:ue,getInputProps:be,getLabelProps:function(e,t){return void 0===e&&(e={}),void 0===t&&(t=null),y({},e,{ref:t,onMouseDown:Object(l.b)(e.onMouseDown,w),onTouchStart:Object(l.b)(e.onTouchStart,w),"data-disabled":Object(m.e)(M),"data-checked":Object(m.e)(oe),"data-invalid":Object(m.e)(B)})},getRootProps:function(t,r){return void 0===r&&(r=null),y({},e,{ref:r,"data-disabled":Object(m.e)(M),"data-checked":Object(m.e)(oe),"data-invalid":Object(m.e)(B)})},htmlProps:E}}function w(e){e.preventDefault(),e.stopPropagation()}function C(){return C=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},C.apply(this,arguments)}var P=Object(o.a)((function(e,t){var r,o=Object(v.b)(),d=e.onChange,f=e.value,p=Object(a.a)("Radio",C({},o,e)),O=Object(i.b)(e),j=O.spacing,h=void 0===j?"0.5rem":j,m=O.children,g=O.isFullWidth,y=O.isDisabled,w=void 0===y?null==o?void 0:o.isDisabled:y,P=O.isFocusable,S=void 0===P?null==o?void 0:o.isFocusable:P,x=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(O,["spacing","children","isFullWidth","isDisabled","isFocusable"]),D=e.isChecked;null!=(null==o?void 0:o.value)&&null!=f&&(D=o.value===f);var E=d;null!=o&&o.onChange&&null!=f&&(E=Object(l.a)(o.onChange,d));var _=k(C({},x,{isChecked:D,isFocusable:S,isDisabled:w,onChange:E,name:null!=(r=null==e?void 0:e.name)?r:null==o?void 0:o.name})),N=_.getInputProps,R=_.getCheckboxProps,F=_.getLabelProps,M=_.getRootProps,T=_.htmlProps,I=Object(s.i)(T,c.layoutPropNames),B=Object(n.a)(I,2),z=B[0],A=R(B[1]),L=N({},t),K=F(),q=Object.assign(z,M()),V=C({width:g?"full":void 0,display:"inline-flex",alignItems:"center",verticalAlign:"top"},p.container),U=C({display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0},p.control),H=C({userSelect:"none",marginStart:h},p.label);return b.createElement(u.a.label,C({className:"chakra-radio"},q,{__css:V}),b.createElement("input",C({className:"chakra-radio__input"},L)),b.createElement(u.a.span,C({className:"chakra-radio__control"},A,{__css:U})),m&&b.createElement(u.a.span,C({className:"chakra-radio__label"},K,{__css:H}),m))}));d.a&&(P.displayName="Radio")}}]);
2
- //# sourceMappingURL=10.63153bb8.chunk.js.map
1
+ (this["webpackJsonpconstruct-hub-webapp"]=this["webpackJsonpconstruct-hub-webapp"]||[]).push([[10],{12:function(e,t,r){"use strict";var n=r(66);r.o(n,"layoutPropNames")&&r.d(t,"layoutPropNames",(function(){return n.layoutPropNames})),r.o(n,"tokenToCSSVar")&&r.d(t,"tokenToCSSVar",(function(){return n.tokenToCSSVar}));var o=r(273);r.o(o,"layoutPropNames")&&r.d(t,"layoutPropNames",(function(){return o.layoutPropNames})),r.o(o,"tokenToCSSVar")&&r.d(t,"tokenToCSSVar",(function(){return o.tokenToCSSVar}))},273:function(e,t){},390:function(e,t,r){"use strict";r.d(t,"b",(function(){return g})),r.d(t,"a",(function(){return y}));var n=r(5),o=r(17),a=r(21),i=r(15),c=r(8),u=r(120),l=r(0),s=r(4),d=r(153),b=r(118),v=r(163);function f(){return f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},f.apply(this,arguments)}function p(e){void 0===e&&(e={});var t=e,r=t.onChange,o=t.value,a=t.defaultValue,i=t.name,u=t.isDisabled,p=t.isFocusable,O=t.isNative,j=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,["onChange","value","defaultValue","name","isDisabled","isFocusable","isNative"]),h=l.useState(a||""),m=Object(n.a)(h,2),g=m[0],y=m[1],k=Object(d.a)(o,g),w=Object(n.a)(k,2),C=w[0],P=w[1],S=l.useRef(null),x=l.useCallback((function(){var e=S.current;if(e){var t="input:not(:disabled):checked",r=e.querySelector(t);if(r)r.focus();else{t="input:not(:disabled)";var n=e.querySelector(t);null==n||n.focus()}}}),[]),D=Object(b.b)(void 0,"radio"),E=i||D,_=l.useCallback((function(e){var t=Object(c.f)(e)?e.target.value:e;C||y(t),null==r||r(String(t))}),[r,C]),N=l.useCallback((function(e,t){return void 0===e&&(e={}),void 0===t&&(t=null),f({},e,{ref:Object(v.a)(t,S),role:"radiogroup"})}),[]),R=l.useCallback((function(e,t){var r;void 0===e&&(e={}),void 0===t&&(t=null);var n=O?"checked":"isChecked";return f({},e,(r={ref:t,name:E},Object(s.a)(r,n,null!=P?e.value===P:void 0),Object(s.a)(r,"onChange",_),Object(s.a)(r,"data-radiogroup",!0),r))}),[O,E,_,P]);return{getRootProps:N,getRadioProps:R,name:E,ref:S,focus:x,setValue:y,value:P,onChange:_,isDisabled:u,isFocusable:p,htmlProps:j}}function O(){return O=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},O.apply(this,arguments)}var j=Object(u.a)({name:"RadioGroupContext",strict:!1}),h=Object(n.a)(j,2),m=h[0],g=h[1],y=Object(o.a)((function(e,t){var r=e.colorScheme,n=e.size,o=e.variant,c=e.children,u=e.className,s=e.isDisabled,d=e.isFocusable,b=p(function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,["colorScheme","size","variant","children","className","isDisabled","isFocusable"])),v=b.value,f=b.onChange,j=b.getRootProps,h=b.name,g=b.htmlProps,y=l.useMemo((function(){return{name:h,size:n,onChange:f,colorScheme:r,value:v,variant:o,isDisabled:s,isFocusable:d}}),[h,n,f,r,v,o,s,d]),k=j(g,t),w=Object(i.d)("chakra-radio-group",u);return l.createElement(m,{value:y},l.createElement(a.a.div,O({},k,{className:w}),c))}));c.a&&(y.displayName="RadioGroup")},392:function(e,t,r){"use strict";r.d(t,"b",(function(){return l})),r.d(t,"a",(function(){return s}));var n=r(17),o=r(21),a=r(15),i=r(0);function c(){return c=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},c.apply(this,arguments)}function u(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}var l=Object(n.a)((function(e,t){var r=e.isExternal,n=e.target,l=e.rel,s=e.className,d=u(e,["isExternal","target","rel","className"]);return i.createElement(o.a.a,c({},d,{ref:t,className:Object(a.d)("chakra-linkbox__overlay",s),rel:r?"noopener noreferrer":l,target:r?"_blank":n,__css:{position:"static","&::before":{content:"''",cursor:"inherit",display:"block",position:"absolute",top:0,left:0,zIndex:0,width:"100%",height:"100%"}}}))})),s=Object(n.a)((function(e,t){var r=e.className,n=u(e,["className"]);return i.createElement(o.a.div,c({ref:t,position:"relative"},n,{className:Object(a.d)("chakra-linkbox",r),__css:{"a[href]:not(.chakra-linkbox__overlay), abbr[title]":{position:"relative",zIndex:1}}}))}))},638:function(e,t,r){"use strict";r.d(t,"a",(function(){return f}));var n=r(307),o=r(249),a=r(242);function i(e,t){Object(a.a)(2,arguments);var r=Object(o.a)(e),n=Object(o.a)(t),i=r.getTime()-n.getTime();return i<0?-1:i>0?1:i}function c(e){return function(e,t){if(null==e)throw new TypeError("assign requires that input parameter not be null or undefined");for(var r in t=t||{})Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}({},e)}var u=r(336),l=6e4,s=1440,d=43200,b=525600;function v(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object(a.a)(2,arguments);var v=r.locale||u.a;if(!v.formatDistance)throw new RangeError("locale must contain localize.formatDistance property");var f=i(e,t);if(isNaN(f))throw new RangeError("Invalid time value");var p,O,j=c(r);j.addSuffix=Boolean(r.addSuffix),j.comparison=f,f>0?(p=Object(o.a)(t),O=Object(o.a)(e)):(p=Object(o.a)(e),O=Object(o.a)(t));var h,m=null==r.roundingMethod?"round":String(r.roundingMethod);if("floor"===m)h=Math.floor;else if("ceil"===m)h=Math.ceil;else{if("round"!==m)throw new RangeError("roundingMethod must be 'floor', 'ceil' or 'round'");h=Math.round}var g,y=O.getTime()-p.getTime(),k=y/l,w=Object(n.a)(O)-Object(n.a)(p),C=(y-w)/l;if("second"===(g=null==r.unit?k<1?"second":k<60?"minute":k<s?"hour":C<d?"day":C<b?"month":"year":String(r.unit))){var P=h(y/1e3);return v.formatDistance("xSeconds",P,j)}if("minute"===g){var S=h(k);return v.formatDistance("xMinutes",S,j)}if("hour"===g){var x=h(k/60);return v.formatDistance("xHours",x,j)}if("day"===g){var D=h(C/s);return v.formatDistance("xDays",D,j)}if("month"===g){var E=h(C/d);return 12===E&&"month"!==r.unit?v.formatDistance("xYears",1,j):v.formatDistance("xMonths",E,j)}if("year"===g){var _=h(C/b);return v.formatDistance("xYears",_,j)}throw new RangeError("unit must be 'second', 'minute', 'hour', 'day', 'month' or 'year'")}function f(e,t){return Object(a.a)(1,arguments),v(e,Date.now(),t)}},652:function(e,t,r){"use strict";r.d(t,"a",(function(){return ne})),r.d(t,"e",(function(){return oe})),r.d(t,"d",(function(){return ae})),r.d(t,"c",(function(){return ce})),r.d(t,"b",(function(){return ue}));r(207);var n=r(55),o=r(36),a=r(54),i=r(17),c=r(21),u=r(32),l=r(8),s=r(15),d=r(0),b=r.n(d),v=r(5),f=r(120),p=Object(f.a)({name:"PopoverContext",errorMessage:"usePopoverContext: `context` is undefined. Seems you forgot to wrap all popover components within `<Popover />`"}),O=Object(v.a)(p,2),j=O[0],h=O[1],m=r(188),g=r(31),y=r.n(g);function k(){return k=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},k.apply(this,arguments)}var w=function(e){if(e)return y()(e,{enter:{visibility:"visible"},exit:{transitionEnd:{visibility:"hidden"}}})},C=Object(m.a)(c.a.section),P=b.a.forwardRef((function(e,t){var r=h().isOpen;return b.a.createElement(C,k({ref:t,variants:w(e.variants)},e,{initial:!1,animate:r?"enter":"exit"}))}));P.defaultProps={variants:{exit:{opacity:0,scale:.95,transition:{duration:.1,ease:[.4,0,1,1]}},enter:{scale:1,opacity:1,transition:{duration:.15,ease:[0,0,.2,1]}}}};var S=r(4),x=r(210),D=r(118);var E=r(42),_=r(185);function N(e){return!!e.touches}var R={pageX:0,pageY:0};function F(e,t){void 0===t&&(t="page");var r=e.touches[0]||e.changedTouches[0]||R;return{x:r[t+"X"],y:r[t+"Y"]}}function M(e,t){return void 0===t&&(t="page"),{x:e[t+"X"],y:e[t+"Y"]}}function T(e,t){return void 0===t&&(t="page"),{point:N(e)?F(e,t):M(e,t)}}var I=function(e,t){void 0===t&&(t=!1);var r,n=function(t){return e(t,T(t))};return t?(r=n,function(e){var t=e instanceof Object(s.g)(e).MouseEvent;(!t||t&&0===e.button)&&r(e)}):n},B={pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointercancel:"mousecancel",pointerover:"mouseover",pointerout:"mouseout",pointerenter:"mouseenter",pointerleave:"mouseleave"},z={pointerdown:"touchstart",pointermove:"touchmove",pointerup:"touchend",pointercancel:"touchcancel"};function A(e){return s.j&&null===window.onpointerdown?e:s.j&&null===window.ontouchstart?z[e]:s.j&&null===window.onmousedown?B[e]:e}var L=r(191);function K(e){var t,r,n,o,a,i=e.ref,c=e.elements,u=e.enabled,d=(t="Safari",!!s.j&&function(e){var t=e.userAgent,r=e.vendor,n=/(android)/i.test(t);switch(!0){case/CriOS/.test(t):return"Chrome for iOS";case/Edg\//.test(t):return"Edge";case n&&/Silk\//.test(t):return"Silk";case/Chrome/.test(t)&&/Google Inc/.test(r):return"Chrome";case/Firefox\/\d+\.\d+$/.test(t):return"Firefox";case n:return"AOSP";case/MSIE|Trident/.test(t):return"IE";case/Safari/.test(e.userAgent)&&/Apple Computer/.test(t):return"Safari";case/AppleWebKit/.test(t):return"WebKit";default:return null}}(window.navigator)===t);r=function(){return Object(s.h)(i.current)},n="pointerdown",o=function(e){if(d&&u){var t=e.target,r=(null!=c?c:[i]).some((function(e){var r=Object(l.j)(e)?e.current:e;return Object(s.c)(r,t)}));!Object(E.a)(t)&&r&&(e.preventDefault(),Object(_.a)(t))}},Object(L.a)(A(n),I(o,"pointerdown"===n),r,a)}var q=r(217),V=r(206),U=r(142),H={preventScroll:!0,shouldFocus:!1};var Y=r(228),W=r(27),G=r(163),X=r(218),J=r(205);function $(){return $=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},$.apply(this,arguments)}var Q="click",Z="hover";function ee(e){void 0===e&&(e={});var t=e,r=t.closeOnBlur,n=void 0===r||r,o=t.closeOnEsc,a=void 0===o||o,i=t.initialFocusRef,c=t.id,b=t.returnFocusOnClose,f=void 0===b||b,p=t.autoFocus,O=void 0===p||p,j=t.arrowSize,h=t.arrowShadowColor,m=t.trigger,g=void 0===m?Q:m,y=t.openDelay,k=void 0===y?200:y,w=t.closeDelay,C=void 0===w?200:w,P=t.isLazy,E=t.lazyBehavior,N=void 0===E?"unmount":E,R=t.computePositionOnMount,F=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,["closeOnBlur","closeOnEsc","initialFocusRef","id","returnFocusOnClose","autoFocus","arrowSize","arrowShadowColor","trigger","openDelay","closeDelay","isLazy","lazyBehavior","computePositionOnMount"]),M=Object(x.a)(e),T=M.isOpen,I=M.onClose,B=M.onOpen,z=M.onToggle,A=Object(d.useRef)(null),ee=Object(d.useRef)(null),te=Object(d.useRef)(!1),re=Object(d.useRef)(!1);T&&(re.current=!0);var ne=Object(d.useState)(!1),oe=Object(v.a)(ne,2),ae=oe[0],ie=oe[1],ce=Object(d.useState)(!1),ue=Object(v.a)(ce,2),le=ue[0],se=ue[1],de=Object(D.c)(c,"popover-trigger","popover-content","popover-header","popover-body"),be=Object(v.a)(de,4),ve=be[0],fe=be[1],pe=be[2],Oe=be[3],je=Object(Y.a)($({},F,{enabled:T||!!R})),he=je.referenceRef,me=je.getArrowProps,ge=je.getPopperProps,ye=je.getArrowInnerProps,ke=je.forceUpdate;K({enabled:T,ref:A}),Object(q.a)(ee,{focusRef:A,visible:T,shouldFocus:f&&g===Q}),function(e,t){void 0===t&&(t=H);var r=t,n=r.focusRef,o=r.preventScroll,a=r.shouldFocus,i=r.visible,c=Object(l.j)(e)?e.current:e,u=a&&i,b=Object(d.useCallback)((function(){if(c&&u&&!Object(s.c)(c,document.activeElement))if(null!=n&&n.current)Object(_.a)(n.current,{preventScroll:o,nextTick:!0});else{var e=Object(V.a)(c);e.length>0&&Object(_.a)(e[0],{preventScroll:o,nextTick:!0})}}),[u,o,c,n]);Object(U.a)((function(){b()}),[b]),Object(L.a)("transitionend",b,c)}(ee,{focusRef:i,visible:T,shouldFocus:O&&g===Q});var we=Object(X.a)({hasBeenSelected:re.current,isLazy:P,lazyBehavior:N,isSelected:T}),Ce=Object(d.useCallback)((function(e,t){var r;void 0===e&&(e={}),void 0===t&&(t=null);var o=$({},e,{style:$({},e.style,(r={transformOrigin:W.a.transformOrigin.varRef},Object(S.a)(r,W.a.arrowSize.var,j?Object(J.b)(j):void 0),Object(S.a)(r,W.a.arrowShadowColor.var,h),r)),ref:Object(G.a)(ee,t),children:we?e.children:null,id:fe,tabIndex:-1,role:"dialog",onKeyDown:Object(u.b)(e.onKeyDown,(function(e){a&&"Escape"===e.key&&I()})),onBlur:Object(u.b)(e.onBlur,(function(e){var t=Object(s.i)(e),r=Object(s.c)(ee.current,t),o=Object(s.c)(A.current,t);T&&n&&(!r&&!o)&&I()})),"aria-labelledby":ae?pe:void 0,"aria-describedby":le?Oe:void 0});return g===Z&&(o.role="tooltip",o.onMouseEnter=Object(u.b)(e.onMouseEnter,(function(){te.current=!0})),o.onMouseLeave=Object(u.b)(e.onMouseLeave,(function(){te.current=!1,setTimeout(I,C)}))),o}),[we,fe,ae,pe,le,Oe,g,a,I,T,n,C,h,j]),Pe=Object(d.useCallback)((function(e,t){return void 0===e&&(e={}),void 0===t&&(t=null),ge($({},e,{style:$({visibility:T?"visible":"hidden"},e.style)}),t)}),[T,ge]),Se=Object(d.useRef)(),xe=Object(d.useRef)(),De=Object(d.useCallback)((function(e,t){void 0===e&&(e={}),void 0===t&&(t=null);var r=$({},e,{ref:Object(G.a)(A,t,he),id:ve,"aria-haspopup":"dialog","aria-expanded":T,"aria-controls":fe});return g===Q&&(r.onClick=Object(u.b)(e.onClick,z)),g===Z&&(r.onFocus=Object(u.b)(e.onFocus,B),r.onBlur=Object(u.b)(e.onBlur,I),r.onKeyDown=Object(u.b)(e.onKeyDown,(function(e){"Escape"===e.key&&I()})),r.onMouseEnter=Object(u.b)(e.onMouseEnter,(function(){te.current=!0,Se.current=window.setTimeout(B,k)})),r.onMouseLeave=Object(u.b)(e.onMouseLeave,(function(){te.current=!1,Se.current&&(clearTimeout(Se.current),Se.current=void 0),xe.current=window.setTimeout((function(){!1===te.current&&I()}),C)}))),r}),[ve,T,fe,g,he,z,B,I,k,C]);Object(d.useEffect)((function(){return function(){Se.current&&clearTimeout(Se.current),xe.current&&clearTimeout(xe.current)}}),[]);var Ee=Object(d.useCallback)((function(e,t){return void 0===e&&(e={}),void 0===t&&(t=null),$({},e,{id:pe,ref:Object(G.a)(t,(function(e){ie(!!e)}))})}),[pe]),_e=Object(d.useCallback)((function(e,t){return void 0===e&&(e={}),void 0===t&&(t=null),$({},e,{id:Oe,ref:Object(G.a)(t,(function(e){se(!!e)}))})}),[Oe]);return{forceUpdate:ke,isOpen:T,onClose:I,getArrowProps:me,getArrowInnerProps:ye,getPopoverPositionerProps:Pe,getPopoverProps:Ce,getTriggerProps:De,getHeaderProps:Ee,getBodyProps:_e}}function te(){return te=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},te.apply(this,arguments)}function re(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}var ne=function(e){var t=Object(n.a)("Popover",e),r=Object(o.b)(e),i=r.children,c=ee(te({},re(r,["children"]),{direction:Object(a.e)().direction}));return d.createElement(j,{value:c},d.createElement(a.b,{value:t},Object(u.e)(i,{isOpen:c.isOpen,onClose:c.onClose,forceUpdate:c.forceUpdate})))};l.a&&(ne.displayName="Popover");var oe=function(e){var t=d.Children.only(e.children),r=h().getTriggerProps;return d.cloneElement(t,r(t.props,t.ref))};l.a&&(oe.displayName="PopoverTrigger");var ae=Object(i.a)((function(e,t){var r=e.rootProps,n=re(e,["rootProps"]),o=h(),i=o.getPopoverProps,u=o.getPopoverPositionerProps,l=Object(a.d)(),b=te({position:"relative",display:"flex",flexDirection:"column"},l.content);return d.createElement(c.a.div,te({},u(r),{__css:l.popper,className:"chakra-popover__popper"}),d.createElement(P,te({},i(n,t),{className:Object(s.d)("chakra-popover__content",e.className),__css:b})))}));l.a&&(ae.displayName="PopoverContent");var ie=Object(i.a)((function(e,t){var r=h().getHeaderProps,n=Object(a.d)();return d.createElement(c.a.header,te({},r(e,t),{className:Object(s.d)("chakra-popover__header",e.className),__css:n.header}))}));l.a&&(ie.displayName="PopoverHeader");var ce=Object(i.a)((function(e,t){var r=h().getBodyProps,n=Object(a.d)();return d.createElement(c.a.div,te({},r(e,t),{className:Object(s.d)("chakra-popover__body",e.className),__css:n.body}))}));l.a&&(ce.displayName="PopoverBody");l.a;l.a;var ue=function(e){var t,r=e.bg,n=e.bgColor,o=e.backgroundColor,i=h(),u=i.getArrowProps,l=i.getArrowInnerProps,b=Object(a.d)(),v=null!=(t=null!=r?r:n)?t:o;return d.createElement(c.a.div,te({},u(),{className:"chakra-popover__arrow-positioner"}),d.createElement(c.a.div,te({className:Object(s.d)("chakra-popover__arrow",e.className)},l(e),{__css:te({},b.arrow,{"--popper-arrow-bg":v?"colors."+v+", "+v:void 0})})))};l.a&&(ue.displayName="PopoverArrow")},657:function(e,t,r){"use strict";r.d(t,"a",(function(){return P}));var n=r(5),o=r(17),a=r(55),i=r(36),c=r(12),u=r(21),l=r(32),s=r(29),d=r(8),b=r(0),v=r(390),f=r(155),p=r(118),O=r(186),j=r(153),h=r(163),m=r(15),g=r(187);function y(){return y=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},y.apply(this,arguments)}function k(e){void 0===e&&(e={});var t=e,r=t.defaultIsChecked,o=t.defaultChecked,a=void 0===o?r:o,i=t.isChecked,c=t.isFocusable,u=t.isDisabled,s=t.isReadOnly,d=t.isRequired,k=t.onChange,C=t.isInvalid,P=t.name,S=t.value,x=t.id,D=t["data-radiogroup"],E=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,["defaultIsChecked","defaultChecked","isChecked","isFocusable","isDisabled","isReadOnly","isRequired","onChange","isInvalid","name","value","id","data-radiogroup"]),_=Object(p.b)(void 0,"radio"),N=Object(f.a)(),R=Object(v.b)(),F=!!N&&!(!!R||!!D)?N.id:_;F=null!=x?x:F;var M=null!=u?u:null==N?void 0:N.isDisabled,T=null!=s?s:null==N?void 0:N.isReadOnly,I=null!=d?d:null==N?void 0:N.isRequired,B=null!=C?C:null==N?void 0:N.isInvalid,z=Object(O.a)(),A=Object(n.a)(z,2),L=A[0],K=A[1],q=Object(O.a)(),V=Object(n.a)(q,2),U=V[0],H=V[1],Y=Object(O.a)(),W=Object(n.a)(Y,2),G=W[0],X=W[1],J=Object(b.useRef)(null),$=Object(b.useState)(Boolean(a)),Q=Object(n.a)($,2),Z=Q[0],ee=Q[1],te=Object(j.a)(i,Z),re=Object(n.a)(te,2),ne=re[0],oe=re[1];Object(l.f)({condition:!!r,message:'The "defaultIsChecked" prop has been deprecated and will be removed in a future version. Please use the "defaultChecked" prop instead, which mirrors default React checkbox behavior.'});var ae=Object(b.useCallback)((function(e){T||M?e.preventDefault():(ne||ee(e.target.checked),null==k||k(e))}),[ne,M,T,k]),ie=Object(b.useCallback)((function(e){" "===e.key&&X.on()}),[X]),ce=Object(b.useCallback)((function(e){" "===e.key&&X.off()}),[X]),ue=Object(b.useCallback)((function(e,t){return void 0===e&&(e={}),void 0===t&&(t=null),y({},e,{ref:t,"data-active":Object(m.e)(G),"data-hover":Object(m.e)(U),"data-disabled":Object(m.e)(M),"data-invalid":Object(m.e)(B),"data-checked":Object(m.e)(oe),"data-focus":Object(m.e)(L),"data-readonly":Object(m.e)(T),"aria-hidden":!0,onMouseDown:Object(l.b)(e.onMouseDown,X.on),onMouseUp:Object(l.b)(e.onMouseUp,X.off),onMouseEnter:Object(l.b)(e.onMouseEnter,H.on),onMouseLeave:Object(l.b)(e.onMouseLeave,H.off)})}),[G,U,M,B,oe,L,T,X.on,X.off,H.on,H.off]),le=null!=N?N:{},se=le.onFocus,de=le.onBlur,be=Object(b.useCallback)((function(e,t){void 0===e&&(e={}),void 0===t&&(t=null);var r=M&&!c;return y({},e,{id:F,ref:Object(h.a)(t,J),type:"radio",name:P,value:S,onChange:Object(l.b)(e.onChange,ae),onBlur:Object(l.b)(de,e.onBlur,K.off),onFocus:Object(l.b)(se,e.onFocus,K.on),onKeyDown:Object(l.b)(e.onKeyDown,ie),onKeyUp:Object(l.b)(e.onKeyUp,ce),checked:oe,disabled:r,readOnly:T,required:I,"aria-invalid":Object(m.b)(B),"aria-disabled":Object(m.b)(r),"aria-readonly":Object(m.b)(T),"aria-required":Object(m.b)(I),style:g.b})}),[M,c,F,P,S,ae,de,K,se,ie,ce,oe,T,I,B]);return{state:{isInvalid:B,isFocused:L,isChecked:oe,isActive:G,isHovered:U,isDisabled:M,isReadOnly:T,isRequired:I},getCheckboxProps:ue,getInputProps:be,getLabelProps:function(e,t){return void 0===e&&(e={}),void 0===t&&(t=null),y({},e,{ref:t,onMouseDown:Object(l.b)(e.onMouseDown,w),onTouchStart:Object(l.b)(e.onTouchStart,w),"data-disabled":Object(m.e)(M),"data-checked":Object(m.e)(oe),"data-invalid":Object(m.e)(B)})},getRootProps:function(t,r){return void 0===r&&(r=null),y({},e,{ref:r,"data-disabled":Object(m.e)(M),"data-checked":Object(m.e)(oe),"data-invalid":Object(m.e)(B)})},htmlProps:E}}function w(e){e.preventDefault(),e.stopPropagation()}function C(){return C=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},C.apply(this,arguments)}var P=Object(o.a)((function(e,t){var r,o=Object(v.b)(),d=e.onChange,f=e.value,p=Object(a.a)("Radio",C({},o,e)),O=Object(i.b)(e),j=O.spacing,h=void 0===j?"0.5rem":j,m=O.children,g=O.isFullWidth,y=O.isDisabled,w=void 0===y?null==o?void 0:o.isDisabled:y,P=O.isFocusable,S=void 0===P?null==o?void 0:o.isFocusable:P,x=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(O,["spacing","children","isFullWidth","isDisabled","isFocusable"]),D=e.isChecked;null!=(null==o?void 0:o.value)&&null!=f&&(D=o.value===f);var E=d;null!=o&&o.onChange&&null!=f&&(E=Object(l.a)(o.onChange,d));var _=k(C({},x,{isChecked:D,isFocusable:S,isDisabled:w,onChange:E,name:null!=(r=null==e?void 0:e.name)?r:null==o?void 0:o.name})),N=_.getInputProps,R=_.getCheckboxProps,F=_.getLabelProps,M=_.getRootProps,T=_.htmlProps,I=Object(s.i)(T,c.layoutPropNames),B=Object(n.a)(I,2),z=B[0],A=R(B[1]),L=N({},t),K=F(),q=Object.assign(z,M()),V=C({width:g?"full":void 0,display:"inline-flex",alignItems:"center",verticalAlign:"top"},p.container),U=C({display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0},p.control),H=C({userSelect:"none",marginStart:h},p.label);return b.createElement(u.a.label,C({className:"chakra-radio"},q,{__css:V}),b.createElement("input",C({className:"chakra-radio__input"},L)),b.createElement(u.a.span,C({className:"chakra-radio__control"},A,{__css:U})),m&&b.createElement(u.a.span,C({className:"chakra-radio__label"},K,{__css:H}),m))}));d.a&&(P.displayName="Radio")}}]);
2
+ //# sourceMappingURL=10.30ecd71a.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/index.ts","../../../src/use-radio-group.ts","../../../src/radio-group.tsx","../../../src/link-box.tsx","../node_modules/date-fns/esm/compareAsc/index.js","../node_modules/date-fns/esm/_lib/cloneObject/index.js","../node_modules/date-fns/esm/_lib/assign/index.js","../node_modules/date-fns/esm/formatDistanceStrict/index.js","../node_modules/date-fns/esm/formatDistanceToNowStrict/index.js","../../../src/popover-context.ts","../../../src/popover-transition.tsx","../../../src/pointer-event.ts","../../../src/use-focus-on-pointerdown.ts","../../../src/user-agent.ts","../../../src/use-pointer-event.ts","../../../src/use-focus-on-show.ts","../../../src/use-popover.ts","../../../src/popover.tsx","../../../src/use-radio.ts","../../../src/radio.tsx"],"names":["useRadioGroup","props","onChange","value","name","isNative","React","defaultValue","useControllableProp","valueProp","ref","focus","rootNode","query","firstEnabledAndCheckedInput","firstEnabledInput","fallbackName","useId","undefined","nameProp","eventOrValue","nextValue","isInputEvent","setValue","onChangeProp","String","getRootProps","forwardedRef","mergeRefs","role","getRadioProps","checkedKey","isDisabled","isFocusable","htmlProps","createContext","strict","RadioGroup","forwardRef","group","size","colorScheme","variant","groupProps","_className","cx","className","LinkOverlay","rel","isExternal","target","__css","position","content","cursor","display","top","left","zIndex","width","height","LinkBox","compareAsc","dirtyDateLeft","dirtyDateRight","requiredArgs","arguments","dateLeft","toDate","dateRight","diff","getTime","cloneObject","dirtyObject","TypeError","property","Object","prototype","hasOwnProperty","call","assign","MILLISECONDS_IN_MINUTE","MINUTES_IN_DAY","MINUTES_IN_MONTH","MINUTES_IN_YEAR","formatDistanceStrict","dirtyDate","dirtyBaseDate","options","length","locale","defaultLocale","formatDistance","RangeError","comparison","isNaN","localizeOptions","addSuffix","Boolean","roundingMethodFn","roundingMethod","Math","floor","ceil","round","unit","milliseconds","minutes","timezoneOffset","getTimezoneOffsetInMilliseconds","dstNormalizedMinutes","seconds","roundedMinutes","hours","days","months","years","formatDistanceToNowStrict","dirtyOptions","Date","now","errorMessage","mergeVariants","variants","mergeWith","enter","visibility","exit","transitionEnd","Section","motion","chakra","PopoverTransition","isOpen","usePopoverContext","initial","animate","opacity","scale","transition","duration","ease","isTouchEvent","event","defaultPagePoint","pageX","pageY","pointFromTouch","e","pointType","point","x","y","pointFromMouse","extractEventInfo","wrapPointerEventHandler","shouldFilterPrimaryPointer","eventHandler","listener","handler","isMouseEvent","getEventWindow","mouseEventNames","pointerdown","pointermove","pointerup","pointercancel","pointerover","pointerout","pointerenter","pointerleave","touchEventNames","getPointerEventName","isBrowser","window","useFocusOnPointerDown","browser","enabled","isSafari","navigator","userAgent","vendor","android","test","ua","getUserAgentBrowser","getOwnerDocument","isValidTarget","elements","elementOrRef","el","isRefObject","contains","isActiveElement","useEventListener","eventName","defaultOptions","preventScroll","shouldFocus","TRIGGER","usePopover","closeOnBlur","closeOnEsc","returnFocusOnClose","autoFocus","trigger","openDelay","closeDelay","lazyBehavior","computePositionOnMount","useDisclosure","onToggle","triggerRef","useRef","popoverRef","isHoveringRef","hasBeenOpened","useState","useIds","usePopper","forceUpdate","useFocusOnHide","focusRef","visible","element","onFocus","useCallback","document","nextTick","tabbableEls","getAllFocusable","useUpdateEffect","useFocusOnShow","shouldRenderChildren","determineLazyBehavior","hasBeenSelected","isLazy","isSelected","getPopoverProps","_ref","popoverProps","style","transformOrigin","popperCSSVars","arrowSize","px","arrowShadowColor","children","id","tabIndex","onKeyDown","callAllHandlers","onClose","onBlur","relatedTarget","getRelatedTarget","targetIsPopover","targetIsTrigger","hasHeader","headerId","hasBody","bodyId","setTimeout","getPopoverPositionerProps","getPopperProps","openTimeout","closeTimeout","getTriggerProps","triggerProps","popoverId","clearTimeout","useEffect","getHeaderProps","node","setHasHeader","getBodyProps","setHasBody","getArrowProps","getArrowInnerProps","Popover","styles","useMultiStyleConfig","omitThemingProps","context","direction","useTheme","runIfFn","PopoverTrigger","child","PopoverContent","rootProps","useStyles","contentStyles","flexDirection","contentProps","PopoverHeader","header","PopoverBody","body","PopoverArrow","backgroundColor","arrowBg","bg","useRadio","defaultChecked","isChecked","isReadOnly","isRequired","isInvalid","dataRadioGroup","uuid","formControl","useFormControlContext","useRadioGroupContext","isWithinFormControl","idProp","isDisabledProp","isReadOnlyProp","isRequiredProp","isInvalidProp","useBoolean","warn","condition","message","handleChange","setChecked","isControlled","setActive","onKeyUp","getCheckboxProps","dataAttr","onMouseDown","onMouseUp","onMouseEnter","setHovering","onMouseLeave","getInputProps","trulyDisabled","type","setFocused","checked","disabled","readOnly","required","ariaAttr","visuallyHiddenStyle","state","isFocused","isActive","isHovered","getLabelProps","onTouchStart","pros","stop","Radio","ownProps","spacing","callAll","split","checkboxProps","inputProps","labelProps","rootStyles","isFullWidth","alignItems","verticalAlign","checkboxStyles","justifyContent","flexShrink","labelStyles","userSelect","marginStart"],"mappings":"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","file":"static/js/10.63153bb8.chunk.js","sourcesContent":["export * from \"@chakra-ui/color-mode\"\nexport * from \"@chakra-ui/styled-system\"\nexport { keyframes } from \"@emotion/react\"\nexport type { Interpolation } from \"@emotion/react\"\nexport * from \"./hooks\"\nexport * from \"./system.types\"\nexport * from \"./providers\"\nexport { omitThemingProps } from \"./system.utils\"\nexport * from \"./system\"\nexport * from \"./forward-ref\"\nexport * from \"./use-style-config\"\nexport { shouldForwardProp } from \"./should-forward-prop\"\n","import { useControllableProp, useId } from \"@chakra-ui/hooks\"\nimport { StringOrNumber, isInputEvent } from \"@chakra-ui/utils\"\nimport * as React from \"react\"\nimport { mergeRefs, PropGetter } from \"@chakra-ui/react-utils\"\n\ntype EventOrValue = React.ChangeEvent<HTMLInputElement> | StringOrNumber\n\nexport interface UseRadioGroupProps {\n /**\n * The value of the radio to be `checked`\n * (in controlled mode)\n */\n value?: StringOrNumber\n /**\n * The value of the radio to be `checked`\n * initially (in uncontrolled mode)\n */\n defaultValue?: StringOrNumber\n /**\n * Function called once a radio is checked\n * @param nextValue the value of the checked radio\n */\n onChange?(nextValue: string): void\n /**\n * If `true`, all wrapped radio inputs will be disabled\n */\n isDisabled?: boolean\n\n /**\n * If `true` and `isDisabled` is true, all wrapped radio inputs will remain\n * focusable but not interactive.\n */\n isFocusable?: boolean\n /**\n * The `name` attribute forwarded to each `radio` element\n */\n name?: string\n /**\n * If `true`, input elements will receive\n * `checked` attribute instead of `isChecked`.\n *\n * This assumes, you're using native radio inputs\n */\n isNative?: boolean\n}\n\ntype RadioPropGetter = PropGetter<\n HTMLInputElement,\n { onChange?: (e: EventOrValue) => void; value?: StringOrNumber } & Omit<\n React.InputHTMLAttributes<HTMLInputElement>,\n \"onChange\" | \"size\" | \"value\"\n >\n>\n\n/**\n * React hook to manage a group of radio inputs\n */\nexport function useRadioGroup(props: UseRadioGroupProps = {}) {\n const {\n onChange: onChangeProp,\n value: valueProp,\n defaultValue,\n name: nameProp,\n isDisabled,\n isFocusable,\n isNative,\n ...htmlProps\n } = props\n\n const [valueState, setValue] = React.useState<StringOrNumber>(\n defaultValue || \"\",\n )\n const [isControlled, value] = useControllableProp(valueProp, valueState)\n\n const ref = React.useRef<any>(null)\n\n const focus = React.useCallback(() => {\n const rootNode = ref.current\n if (!rootNode) return\n\n let query = `input:not(:disabled):checked`\n\n const firstEnabledAndCheckedInput = rootNode.querySelector(\n query,\n ) as HTMLElement\n\n if (firstEnabledAndCheckedInput) {\n firstEnabledAndCheckedInput.focus()\n return\n }\n\n query = `input:not(:disabled)`\n\n const firstEnabledInput = rootNode.querySelector(query) as HTMLElement\n firstEnabledInput?.focus()\n }, [])\n\n /**\n * All radio options must use the same name\n */\n const fallbackName = useId(undefined, `radio`)\n const name = nameProp || fallbackName\n\n const onChange = React.useCallback(\n (eventOrValue: EventOrValue) => {\n const nextValue = isInputEvent(eventOrValue)\n ? eventOrValue.target.value\n : eventOrValue\n\n if (!isControlled) {\n setValue(nextValue)\n }\n\n onChangeProp?.(String(nextValue))\n },\n [onChangeProp, isControlled],\n )\n\n const getRootProps: PropGetter = React.useCallback(\n (props = {}, forwardedRef = null) => ({\n ...props,\n ref: mergeRefs(forwardedRef, ref),\n role: \"radiogroup\",\n }),\n [],\n )\n\n const getRadioProps: RadioPropGetter = React.useCallback(\n (props = {}, ref = null) => {\n const checkedKey = isNative ? \"checked\" : \"isChecked\"\n return {\n ...props,\n ref,\n name,\n [checkedKey]: value != null ? props.value === value : undefined,\n onChange,\n \"data-radiogroup\": true,\n }\n },\n [isNative, name, onChange, value],\n )\n\n return {\n getRootProps,\n getRadioProps,\n name,\n ref,\n focus,\n setValue,\n value,\n onChange,\n isDisabled,\n isFocusable,\n htmlProps,\n }\n}\n\nexport type UseRadioGroupReturn = ReturnType<typeof useRadioGroup>\n","import {\n chakra,\n forwardRef,\n ThemingProps,\n HTMLChakraProps,\n} from \"@chakra-ui/system\"\nimport { cx, __DEV__ } from \"@chakra-ui/utils\"\nimport { createContext } from \"@chakra-ui/react-utils\"\nimport * as React from \"react\"\nimport {\n useRadioGroup,\n UseRadioGroupProps,\n UseRadioGroupReturn,\n} from \"./use-radio-group\"\n\nexport interface RadioGroupContext\n extends Pick<\n UseRadioGroupReturn,\n \"onChange\" | \"value\" | \"name\" | \"isDisabled\" | \"isFocusable\"\n >,\n Omit<ThemingProps<\"Radio\">, \"orientation\"> {}\n\nconst [\n RadioGroupProvider,\n useRadioGroupContext,\n] = createContext<RadioGroupContext>({\n name: \"RadioGroupContext\",\n strict: false,\n})\n\nexport { useRadioGroupContext }\n\ntype Omitted =\n | \"onChange\"\n | \"value\"\n | \"defaultValue\"\n | \"defaultChecked\"\n | \"children\"\nexport interface RadioGroupProps\n extends UseRadioGroupProps,\n Omit<HTMLChakraProps<\"div\">, Omitted>,\n Omit<ThemingProps<\"Radio\">, \"orientation\"> {\n children: React.ReactNode\n}\n\n/**\n * Used for multiple radios which are bound in one group,\n * and it indicates which option is selected.\n *\n * @see Docs https://chakra-ui.com/radio\n */\nexport const RadioGroup = forwardRef<RadioGroupProps, \"div\">((props, ref) => {\n const {\n colorScheme,\n size,\n variant,\n children,\n className,\n isDisabled,\n isFocusable,\n ...rest\n } = props\n\n const { value, onChange, getRootProps, name, htmlProps } = useRadioGroup(rest)\n\n const group = React.useMemo(\n () => ({\n name,\n size,\n onChange,\n colorScheme,\n value,\n variant,\n isDisabled,\n isFocusable,\n }),\n [\n name,\n size,\n onChange,\n colorScheme,\n value,\n variant,\n isDisabled,\n isFocusable,\n ],\n )\n\n const groupProps = getRootProps(htmlProps, ref)\n const _className = cx(\"chakra-radio-group\", className)\n\n return (\n <RadioGroupProvider value={group}>\n <chakra.div {...groupProps} className={_className}>\n {children}\n </chakra.div>\n </RadioGroupProvider>\n )\n})\n\nif (__DEV__) {\n RadioGroup.displayName = \"RadioGroup\"\n}\n","import { chakra, forwardRef, HTMLChakraProps } from \"@chakra-ui/system\"\nimport { cx } from \"@chakra-ui/utils\"\nimport * as React from \"react\"\n\nexport interface LinkOverlayProps extends HTMLChakraProps<\"a\"> {\n /**\n * If `true`, the link will open in new tab\n */\n isExternal?: boolean\n}\n\nexport const LinkOverlay = forwardRef<LinkOverlayProps, \"a\">((props, ref) => {\n const { isExternal, target, rel, className, ...rest } = props\n return (\n <chakra.a\n {...rest}\n ref={ref}\n className={cx(\"chakra-linkbox__overlay\", className)}\n rel={isExternal ? \"noopener noreferrer\" : rel}\n target={isExternal ? \"_blank\" : target}\n __css={{\n position: \"static\",\n \"&::before\": {\n content: \"''\",\n cursor: \"inherit\",\n display: \"block\",\n position: \"absolute\",\n top: 0,\n left: 0,\n zIndex: 0,\n width: \"100%\",\n height: \"100%\",\n },\n }}\n />\n )\n})\n\nexport interface LinkBoxProps extends HTMLChakraProps<\"div\"> {}\n\n/**\n * `LinkBox` is used to wrap content areas within a link while ensuring semantic html\n *\n * @see Docs https://chakra-ui.com/docs/navigation/link-overlay\n * @see Resources https://www.sarasoueidan.com/blog/nested-links\n */\nexport const LinkBox = forwardRef<LinkBoxProps, \"div\">((props, ref) => {\n const { className, ...rest } = props\n\n return (\n <chakra.div\n ref={ref}\n position=\"relative\"\n {...rest}\n className={cx(\"chakra-linkbox\", className)}\n __css={{\n /* Elevate the links and abbreviations up */\n \"a[href]:not(.chakra-linkbox__overlay), abbr[title]\": {\n position: \"relative\",\n zIndex: 1,\n },\n }}\n />\n )\n})\n","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name compareAsc\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are equal.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Number} the result of the comparison\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * const result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * const result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\n\nexport default function compareAsc(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var diff = dateLeft.getTime() - dateRight.getTime();\n\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1; // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}","import assign from \"../assign/index.js\";\nexport default function cloneObject(dirtyObject) {\n return assign({}, dirtyObject);\n}","export default function assign(target, dirtyObject) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n\n dirtyObject = dirtyObject || {};\n\n for (var property in dirtyObject) {\n if (Object.prototype.hasOwnProperty.call(dirtyObject, property)) {\n target[property] = dirtyObject[property];\n }\n }\n\n return target;\n}","import getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport compareAsc from \"../compareAsc/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport cloneObject from \"../_lib/cloneObject/index.js\";\nimport defaultLocale from \"../locale/en-US/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_MINUTE = 1000 * 60;\nvar MINUTES_IN_DAY = 60 * 24;\nvar MINUTES_IN_MONTH = MINUTES_IN_DAY * 30;\nvar MINUTES_IN_YEAR = MINUTES_IN_DAY * 365;\n/**\n * @name formatDistanceStrict\n * @category Common Helpers\n * @summary Return the distance between the given dates in words.\n *\n * @description\n * Return the distance between the given dates in words, using strict units.\n * This is like `formatDistance`, but does not use helpers like 'almost', 'over',\n * 'less than' and the like.\n *\n * | Distance between dates | Result |\n * |------------------------|---------------------|\n * | 0 ... 59 secs | [0..59] seconds |\n * | 1 ... 59 mins | [1..59] minutes |\n * | 1 ... 23 hrs | [1..23] hours |\n * | 1 ... 29 days | [1..29] days |\n * | 1 ... 11 months | [1..11] months |\n * | 1 ... N years | [1..N] years |\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `distanceInWordsStrict` to `formatDistanceStrict`\n * to make its name consistent with `format` and `formatRelative`.\n *\n * - The order of arguments is swapped to make the function\n * consistent with `differenceIn...` functions.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWordsStrict(\n * new Date(2015, 0, 2),\n * new Date(2014, 6, 2)\n * ) //=> '6 months'\n *\n * // v2.0.0 onward\n *\n * formatDistanceStrict(\n * new Date(2014, 6, 2),\n * new Date(2015, 0, 2)\n * ) //=> '6 months'\n * ```\n *\n * - `partialMethod` option is renamed to `roundingMethod`.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWordsStrict(\n * new Date(1986, 3, 4, 10, 32, 0),\n * new Date(1986, 3, 4, 10, 33, 1),\n * { partialMethod: 'ceil' }\n * ) //=> '2 minutes'\n *\n * // v2.0.0 onward\n *\n * formatDistanceStrict(\n * new Date(1986, 3, 4, 10, 33, 1),\n * new Date(1986, 3, 4, 10, 32, 0),\n * { roundingMethod: 'ceil' }\n * ) //=> '2 minutes'\n * ```\n *\n * - If `roundingMethod` is not specified, it now defaults to `round` instead of `floor`.\n *\n * - `unit` option now accepts one of the strings:\n * 'second', 'minute', 'hour', 'day', 'month' or 'year' instead of 's', 'm', 'h', 'd', 'M' or 'Y'\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWordsStrict(\n * new Date(1986, 3, 4, 10, 32, 0),\n * new Date(1986, 3, 4, 10, 33, 1),\n * { unit: 'm' }\n * )\n *\n * // v2.0.0 onward\n *\n * formatDistanceStrict(\n * new Date(1986, 3, 4, 10, 33, 1),\n * new Date(1986, 3, 4, 10, 32, 0),\n * { unit: 'minute' }\n * )\n * ```\n *\n * @param {Date|Number} date - the date\n * @param {Date|Number} baseDate - the date to compare with\n * @param {Object} [options] - an object with options.\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {'second'|'minute'|'hour'|'day'|'month'|'year'} [options.unit] - if specified, will force a unit\n * @param {'floor'|'ceil'|'round'} [options.roundingMethod='round'] - which way to round partial units\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `baseDate` must not be Invalid Date\n * @throws {RangeError} `options.roundingMethod` must be 'floor', 'ceil' or 'round'\n * @throws {RangeError} `options.unit` must be 'second', 'minute', 'hour', 'day', 'month' or 'year'\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // What is the distance between 2 July 2014 and 1 January 2015?\n * const result = formatDistanceStrict(new Date(2014, 6, 2), new Date(2015, 0, 2))\n * //=> '6 months'\n *\n * @example\n * // What is the distance between 1 January 2015 00:00:15\n * // and 1 January 2015 00:00:00?\n * const result = formatDistanceStrict(\n * new Date(2015, 0, 1, 0, 0, 15),\n * new Date(2015, 0, 1, 0, 0, 0)\n * )\n * //=> '15 seconds'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, with a suffix?\n * const result = formatDistanceStrict(new Date(2015, 0, 1), new Date(2016, 0, 1), {\n * addSuffix: true\n * })\n * //=> '1 year ago'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, in minutes?\n * const result = formatDistanceStrict(new Date(2016, 0, 1), new Date(2015, 0, 1), {\n * unit: 'minute'\n * })\n * //=> '525600 minutes'\n *\n * @example\n * // What is the distance from 1 January 2015\n * // to 28 January 2015, in months, rounded up?\n * const result = formatDistanceStrict(new Date(2015, 0, 28), new Date(2015, 0, 1), {\n * unit: 'month',\n * roundingMethod: 'ceil'\n * })\n * //=> '1 month'\n *\n * @example\n * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = formatDistanceStrict(new Date(2016, 7, 1), new Date(2015, 0, 1), {\n * locale: eoLocale\n * })\n * //=> '1 jaro'\n */\n\nexport default function formatDistanceStrict(dirtyDate, dirtyBaseDate) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n requiredArgs(2, arguments);\n var locale = options.locale || defaultLocale;\n\n if (!locale.formatDistance) {\n throw new RangeError('locale must contain localize.formatDistance property');\n }\n\n var comparison = compareAsc(dirtyDate, dirtyBaseDate);\n\n if (isNaN(comparison)) {\n throw new RangeError('Invalid time value');\n }\n\n var localizeOptions = cloneObject(options);\n localizeOptions.addSuffix = Boolean(options.addSuffix);\n localizeOptions.comparison = comparison;\n var dateLeft;\n var dateRight;\n\n if (comparison > 0) {\n dateLeft = toDate(dirtyBaseDate);\n dateRight = toDate(dirtyDate);\n } else {\n dateLeft = toDate(dirtyDate);\n dateRight = toDate(dirtyBaseDate);\n }\n\n var roundingMethod = options.roundingMethod == null ? 'round' : String(options.roundingMethod);\n var roundingMethodFn;\n\n if (roundingMethod === 'floor') {\n roundingMethodFn = Math.floor;\n } else if (roundingMethod === 'ceil') {\n roundingMethodFn = Math.ceil;\n } else if (roundingMethod === 'round') {\n roundingMethodFn = Math.round;\n } else {\n throw new RangeError(\"roundingMethod must be 'floor', 'ceil' or 'round'\");\n }\n\n var milliseconds = dateRight.getTime() - dateLeft.getTime();\n var minutes = milliseconds / MILLISECONDS_IN_MINUTE;\n var timezoneOffset = getTimezoneOffsetInMilliseconds(dateRight) - getTimezoneOffsetInMilliseconds(dateLeft); // Use DST-normalized difference in minutes for years, months and days;\n // use regular difference in minutes for hours, minutes and seconds.\n\n var dstNormalizedMinutes = (milliseconds - timezoneOffset) / MILLISECONDS_IN_MINUTE;\n var unit;\n\n if (options.unit == null) {\n if (minutes < 1) {\n unit = 'second';\n } else if (minutes < 60) {\n unit = 'minute';\n } else if (minutes < MINUTES_IN_DAY) {\n unit = 'hour';\n } else if (dstNormalizedMinutes < MINUTES_IN_MONTH) {\n unit = 'day';\n } else if (dstNormalizedMinutes < MINUTES_IN_YEAR) {\n unit = 'month';\n } else {\n unit = 'year';\n }\n } else {\n unit = String(options.unit);\n } // 0 up to 60 seconds\n\n\n if (unit === 'second') {\n var seconds = roundingMethodFn(milliseconds / 1000);\n return locale.formatDistance('xSeconds', seconds, localizeOptions); // 1 up to 60 mins\n } else if (unit === 'minute') {\n var roundedMinutes = roundingMethodFn(minutes);\n return locale.formatDistance('xMinutes', roundedMinutes, localizeOptions); // 1 up to 24 hours\n } else if (unit === 'hour') {\n var hours = roundingMethodFn(minutes / 60);\n return locale.formatDistance('xHours', hours, localizeOptions); // 1 up to 30 days\n } else if (unit === 'day') {\n var days = roundingMethodFn(dstNormalizedMinutes / MINUTES_IN_DAY);\n return locale.formatDistance('xDays', days, localizeOptions); // 1 up to 12 months\n } else if (unit === 'month') {\n var months = roundingMethodFn(dstNormalizedMinutes / MINUTES_IN_MONTH);\n return months === 12 && options.unit !== 'month' ? locale.formatDistance('xYears', 1, localizeOptions) : locale.formatDistance('xMonths', months, localizeOptions); // 1 year up to max Date\n } else if (unit === 'year') {\n var years = roundingMethodFn(dstNormalizedMinutes / MINUTES_IN_YEAR);\n return locale.formatDistance('xYears', years, localizeOptions);\n }\n\n throw new RangeError(\"unit must be 'second', 'minute', 'hour', 'day', 'month' or 'year'\");\n}","import formatDistanceStrict from \"../formatDistanceStrict/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name formatDistanceToNowStrict\n * @category Common Helpers\n * @summary Return the distance between the given date and now in words.\n * @pure false\n *\n * @description\n * Return the distance between the given dates in words, using strict units.\n * This is like `formatDistance`, but does not use helpers like 'almost', 'over',\n * 'less than' and the like.\n *\n * | Distance between dates | Result |\n * |------------------------|---------------------|\n * | 0 ... 59 secs | [0..59] seconds |\n * | 1 ... 59 mins | [1..59] minutes |\n * | 1 ... 23 hrs | [1..23] hours |\n * | 1 ... 29 days | [1..29] days |\n * | 1 ... 11 months | [1..11] months |\n * | 1 ... N years | [1..N] years |\n *\n * @param {Date|Number} date - the given date\n * @param {Object} [options] - an object with options.\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {'second'|'minute'|'hour'|'day'|'month'|'year'} [options.unit] - if specified, will force a unit\n * @param {'floor'|'ceil'|'round'} [options.roundingMethod='round'] - which way to round partial units\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // If today is 1 January 2015, what is the distance to 2 July 2014?\n * var result = formatDistanceToNowStrict(\n * new Date(2014, 6, 2)\n * )\n * //=> '6 months'\n *\n * @example\n * // If now is 1 January 2015 00:00:00,\n * // what is the distance to 1 January 2015 00:00:15, including seconds?\n * var result = formatDistanceToNowStrict(\n * new Date(2015, 0, 1, 0, 0, 15)\n * )\n * //=> '20 seconds'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 January 2016, with a suffix?\n * var result = formatDistanceToNowStrict(\n * new Date(2016, 0, 1),\n * {addSuffix: true}\n * )\n * //=> 'in 1 year'\n *\n * @example\n * // If today is 28 January 2015,\n * // what is the distance to 1 January 2015, in months, rounded up??\n * var result = formatDistanceToNowStrict(new Date(2015, 0, 1), {\n * unit: 'month',\n * roundingMethod: 'ceil'\n * })\n * //=> '1 month'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 August 2016 in Esperanto?\n * var eoLocale = require('date-fns/locale/eo')\n * var result = formatDistanceToNowStrict(\n * new Date(2016, 7, 1),\n * {locale: eoLocale}\n * )\n * //=> '1 jaro'\n */\n\nexport default function formatDistanceToNowStrict(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n return formatDistanceStrict(dirtyDate, Date.now(), dirtyOptions);\n}","import { createContext } from \"@chakra-ui/react-utils\"\nimport { UsePopoverReturn } from \"./use-popover\"\n\nexport const [\n PopoverProvider,\n usePopoverContext,\n] = createContext<UsePopoverReturn>({\n name: \"PopoverContext\",\n errorMessage:\n \"usePopoverContext: `context` is undefined. Seems you forgot to wrap all popover components within `<Popover />`\",\n})\n","import { chakra, HTMLChakraProps } from \"@chakra-ui/system\"\nimport { HTMLMotionProps, motion, Variant } from \"framer-motion\"\nimport { mergeWith } from \"@chakra-ui/utils\"\nimport React from \"react\"\nimport { usePopoverContext } from \"./popover-context\"\n\n// TODO: consider moving this to some util\ntype HTMLMotionChakraProps<T extends keyof React.ReactHTML> = Omit<\n HTMLChakraProps<T>,\n keyof HTMLMotionProps<T>\n> &\n Omit<\n HTMLMotionProps<T>,\n | \"style\"\n | \"onDrag\"\n | \"onDragEnd\"\n | \"onDragStart\"\n | \"onAnimationStart\"\n | \"variants\"\n > & {\n variants?: MotionVariants\n }\n\ntype MotionVariants = Partial<Record<\"enter\" | \"exit\", Variant>>\n\nconst mergeVariants = (variants?: MotionVariants) => {\n if (!variants) return\n return mergeWith(variants, {\n enter: {\n visibility: \"visible\",\n },\n exit: {\n transitionEnd: {\n visibility: \"hidden\",\n },\n },\n })\n}\n\nconst scaleFade: MotionVariants = {\n exit: {\n opacity: 0,\n scale: 0.95,\n transition: {\n duration: 0.1,\n ease: [0.4, 0, 1, 1],\n },\n },\n enter: {\n scale: 1,\n opacity: 1,\n transition: {\n duration: 0.15,\n ease: [0, 0, 0.2, 1],\n },\n },\n}\n\nconst Section = motion(chakra.section)\n\nexport interface PopoverTransitionProps\n extends HTMLMotionChakraProps<\"section\"> {}\n\nexport const PopoverTransition = React.forwardRef(\n (props: HTMLMotionChakraProps<\"section\">, ref: React.Ref<any>) => {\n const { isOpen } = usePopoverContext()\n return (\n <Section\n ref={ref}\n variants={mergeVariants(props.variants)}\n {...props}\n initial={false}\n animate={isOpen ? \"enter\" : \"exit\"}\n />\n )\n },\n)\n\nPopoverTransition.defaultProps = {\n variants: scaleFade,\n}\n","/**\n * Credit goes to `framer-motion` of this useful utilities.\n * License can be found here: https://github.com/framer/motion\n */\n\nimport { addDomEvent, getEventWindow, isBrowser } from \"./dom\"\n\nexport type AnyPointerEvent = MouseEvent | TouchEvent | PointerEvent\n\ntype PointType = \"page\" | \"client\"\n\nexport function isMouseEvent(event: AnyPointerEvent): event is MouseEvent {\n const win = getEventWindow(event)\n\n // PointerEvent inherits from MouseEvent so we can't use a straight instanceof check.\n if (\n typeof win.PointerEvent !== \"undefined\" &&\n event instanceof win.PointerEvent\n ) {\n return !!(event.pointerType === \"mouse\")\n }\n\n return event instanceof win.MouseEvent\n}\n\nexport function isTouchEvent(event: AnyPointerEvent): event is TouchEvent {\n const hasTouches = !!(event as TouchEvent).touches\n return hasTouches\n}\n\nexport interface Point {\n x: number\n y: number\n}\n\nexport interface PointerEventInfo {\n point: Point\n}\n\nexport type EventHandler = (\n event: AnyPointerEvent,\n info: PointerEventInfo,\n) => void\n\n/**\n * Filters out events not attached to the primary pointer (currently left mouse button)\n * @param eventHandler\n */\nfunction filterPrimaryPointer(eventHandler: EventListener): EventListener {\n return (event: Event) => {\n const win = getEventWindow(event)\n const isMouseEvent = event instanceof win.MouseEvent\n const isPrimaryPointer =\n !isMouseEvent || (isMouseEvent && (event as MouseEvent).button === 0)\n if (isPrimaryPointer) {\n eventHandler(event)\n }\n }\n}\n\nexport type EventListenerWithPointInfo = (\n e: AnyPointerEvent,\n info: PointerEventInfo,\n) => void\n\nconst defaultPagePoint = { pageX: 0, pageY: 0 }\n\nfunction pointFromTouch(e: TouchEvent, pointType: PointType = \"page\") {\n const primaryTouch = e.touches[0] || e.changedTouches[0]\n const point = primaryTouch || defaultPagePoint\n\n return {\n x: point[`${pointType}X`],\n y: point[`${pointType}Y`],\n }\n}\n\nfunction pointFromMouse(\n point: MouseEvent | PointerEvent,\n pointType: PointType = \"page\",\n) {\n return {\n x: point[`${pointType}X`],\n y: point[`${pointType}Y`],\n }\n}\n\nexport function extractEventInfo(\n event: AnyPointerEvent,\n pointType: PointType = \"page\",\n): PointerEventInfo {\n return {\n point: isTouchEvent(event)\n ? pointFromTouch(event, pointType)\n : pointFromMouse(event, pointType),\n }\n}\n\nexport function getViewportPointFromEvent(event: AnyPointerEvent) {\n return extractEventInfo(event, \"client\")\n}\n\nexport const wrapPointerEventHandler = (\n handler: EventListenerWithPointInfo,\n shouldFilterPrimaryPointer = false,\n): EventListener => {\n const listener: EventListener = (event: any) =>\n handler(event, extractEventInfo(event))\n\n return shouldFilterPrimaryPointer ? filterPrimaryPointer(listener) : listener\n}\n\n// We check for event support via functions in case they've been mocked by a testing suite.\nconst supportsPointerEvents = () => isBrowser && window.onpointerdown === null\nconst supportsTouchEvents = () => isBrowser && window.ontouchstart === null\nconst supportsMouseEvents = () => isBrowser && window.onmousedown === null\n\ninterface PointerNameMap {\n pointerdown: string\n pointermove: string\n pointerup: string\n pointercancel: string\n pointerover?: string\n pointerout?: string\n pointerenter?: string\n pointerleave?: string\n}\n\nconst mouseEventNames: PointerNameMap = {\n pointerdown: \"mousedown\",\n pointermove: \"mousemove\",\n pointerup: \"mouseup\",\n pointercancel: \"mousecancel\",\n pointerover: \"mouseover\",\n pointerout: \"mouseout\",\n pointerenter: \"mouseenter\",\n pointerleave: \"mouseleave\",\n}\n\nconst touchEventNames: PointerNameMap = {\n pointerdown: \"touchstart\",\n pointermove: \"touchmove\",\n pointerup: \"touchend\",\n pointercancel: \"touchcancel\",\n}\n\nexport function getPointerEventName(name: string): string {\n if (supportsPointerEvents()) {\n return name\n }\n if (supportsTouchEvents()) {\n return touchEventNames[name]\n }\n if (supportsMouseEvents()) {\n return mouseEventNames[name]\n }\n\n return name\n}\n\nexport function addPointerEvent(\n target: EventTarget,\n eventName: string,\n handler: EventListenerWithPointInfo,\n options?: AddEventListenerOptions,\n) {\n return addDomEvent(\n target,\n getPointerEventName(eventName),\n wrapPointerEventHandler(handler, eventName === \"pointerdown\"),\n options,\n )\n}\n\nexport function isMultiTouchEvent(event: AnyPointerEvent) {\n return isTouchEvent(event) && event.touches.length > 1\n}\n","import {\n contains,\n detectBrowser,\n focus,\n getOwnerDocument,\n isActiveElement,\n isRefObject,\n} from \"@chakra-ui/utils\"\nimport { RefObject } from \"react\"\nimport { usePointerEvent } from \"./use-pointer-event\"\n\nexport interface UseFocusOnMouseDownProps {\n enabled?: boolean\n ref: RefObject<HTMLElement>\n elements?: Array<RefObject<HTMLElement> | HTMLElement | null>\n}\n\n/**\n * Polyfill to get `relatedTarget` working correctly consistently\n * across all browsers.\n *\n * It ensures that elements receives focus on pointer down if\n * it's not the active active element.\n *\n * @internal\n */\nexport function useFocusOnPointerDown(props: UseFocusOnMouseDownProps) {\n const { ref, elements, enabled } = props\n\n const isSafari = detectBrowser(\"Safari\")\n const doc = () => getOwnerDocument(ref.current)\n\n usePointerEvent(doc, \"pointerdown\", (event) => {\n if (!isSafari || !enabled) return\n const target = event.target as HTMLElement\n\n const els = elements ?? [ref]\n const isValidTarget = els.some((elementOrRef) => {\n const el = isRefObject(elementOrRef) ? elementOrRef.current : elementOrRef\n return contains(el, target)\n })\n\n if (!isActiveElement(target) && isValidTarget) {\n event.preventDefault()\n focus(target)\n }\n })\n}\n","import { isBrowser } from \"./dom\"\n\nfunction getUserAgentBrowser(navigator: Navigator) {\n const { userAgent: ua, vendor } = navigator\n const android = /(android)/i.test(ua)\n\n switch (true) {\n case /CriOS/.test(ua):\n return \"Chrome for iOS\"\n case /Edg\\//.test(ua):\n return \"Edge\"\n case android && /Silk\\//.test(ua):\n return \"Silk\"\n case /Chrome/.test(ua) && /Google Inc/.test(vendor):\n return \"Chrome\"\n case /Firefox\\/\\d+\\.\\d+$/.test(ua):\n return \"Firefox\"\n case android:\n return \"AOSP\"\n case /MSIE|Trident/.test(ua):\n return \"IE\"\n case /Safari/.test(navigator.userAgent) && /Apple Computer/.test(ua):\n return \"Safari\"\n case /AppleWebKit/.test(ua):\n return \"WebKit\"\n default:\n return null\n }\n}\n\nexport type UserAgentBrowser = NonNullable<\n ReturnType<typeof getUserAgentBrowser>\n>\n\nfunction getUserAgentOS(navigator: Navigator) {\n const { userAgent: ua, platform } = navigator\n switch (true) {\n case /Android/.test(ua):\n return \"Android\"\n case /iPhone|iPad|iPod/.test(platform):\n return \"iOS\"\n case /Win/.test(platform):\n return \"Windows\"\n case /Mac/.test(platform):\n return \"Mac\"\n case /CrOS/.test(ua):\n return \"Chrome OS\"\n case /Firefox/.test(ua):\n return \"Firefox OS\"\n default:\n return null\n }\n}\n\nexport type UserAgentOS = NonNullable<ReturnType<typeof getUserAgentOS>>\n\nexport function detectDeviceType(navigator: Navigator) {\n const { userAgent: ua } = navigator\n if (/(tablet)|(iPad)|(Nexus 9)/i.test(ua)) return \"tablet\"\n if (/(mobi)/i.test(ua)) return \"phone\"\n return \"desktop\"\n}\n\nexport type UserAgentDeviceType = NonNullable<\n ReturnType<typeof detectDeviceType>\n>\n\nexport function detectOS(os: UserAgentOS) {\n if (!isBrowser) return false\n return getUserAgentOS(window.navigator) === os\n}\n\nexport function detectBrowser(browser: UserAgentBrowser) {\n if (!isBrowser) return false\n return getUserAgentBrowser(window.navigator) === browser\n}\n\nexport function detectTouch() {\n if (!isBrowser) return false\n return (\n window.ontouchstart === null &&\n window.ontouchmove === null &&\n window.ontouchend === null\n )\n}\n","/**\n * Credit goes to `framer-motion` of this useful utilities.\n * License can be found here: https://github.com/framer/motion\n */\n\nimport {\n EventListenerWithPointInfo,\n getPointerEventName,\n wrapPointerEventHandler,\n} from \"@chakra-ui/utils\"\nimport { EventListenerEnv, useEventListener } from \"./use-event-listener\"\n\n/**\n * @internal\n */\nexport function usePointerEvent(\n env: EventListenerEnv,\n eventName: string,\n handler: EventListenerWithPointInfo,\n options?: AddEventListenerOptions,\n) {\n return useEventListener(\n getPointerEventName(eventName),\n wrapPointerEventHandler(handler, eventName === \"pointerdown\"),\n env,\n options,\n )\n}\n","import {\n contains,\n focus,\n FocusableElement,\n getAllFocusable,\n isRefObject,\n} from \"@chakra-ui/utils\"\nimport React, { useCallback } from \"react\"\nimport { useEventListener } from \"./use-event-listener\"\nimport { useUpdateEffect } from \"./use-update-effect\"\n\nexport interface UseFocusOnShowOptions {\n visible?: boolean\n shouldFocus?: boolean\n preventScroll?: boolean\n focusRef?: React.RefObject<FocusableElement>\n}\n\nconst defaultOptions: UseFocusOnShowOptions = {\n preventScroll: true,\n shouldFocus: false,\n}\n\nexport function useFocusOnShow<T extends HTMLElement>(\n target: React.RefObject<T> | T,\n options = defaultOptions,\n) {\n const { focusRef, preventScroll, shouldFocus, visible } = options\n const element = isRefObject(target) ? target.current : target\n\n const autoFocus = shouldFocus && visible\n\n const onFocus = useCallback(() => {\n if (!element || !autoFocus) return\n\n if (contains(element, document.activeElement as HTMLElement)) return\n\n if (focusRef?.current) {\n focus(focusRef.current, { preventScroll, nextTick: true })\n } else {\n const tabbableEls = getAllFocusable(element)\n if (tabbableEls.length > 0) {\n focus(tabbableEls[0], { preventScroll, nextTick: true })\n }\n }\n }, [autoFocus, preventScroll, element, focusRef])\n\n useUpdateEffect(() => {\n onFocus()\n }, [onFocus])\n\n useEventListener(\"transitionend\", onFocus, element)\n}\n","import {\n useDisclosure,\n useFocusOnHide,\n useFocusOnPointerDown,\n useFocusOnShow,\n useIds,\n} from \"@chakra-ui/hooks\"\nimport { popperCSSVars, usePopper, UsePopperProps } from \"@chakra-ui/popper\"\nimport { HTMLProps, mergeRefs, PropGetter } from \"@chakra-ui/react-utils\"\nimport {\n callAllHandlers,\n contains,\n determineLazyBehavior,\n FocusableElement,\n getRelatedTarget,\n LazyBehavior,\n px,\n} from \"@chakra-ui/utils\"\nimport { RefObject, useCallback, useEffect, useRef, useState } from \"react\"\n\nconst TRIGGER = {\n click: \"click\",\n hover: \"hover\",\n} as const\n\nexport interface UsePopoverProps extends UsePopperProps {\n /**\n * The html `id` attribute of the popover.\n * If not provided, we generate a unique id.\n *\n * This `id` is also used to auto-generate the `aria-labelledby`\n * and `aria-decribedby` attributes that points to the `PopoverHeader` and `PopoverBody`\n */\n id?: string\n /**\n * If `true`, the popover will be opened in controlled mode.\n */\n isOpen?: boolean\n /**\n * If `true`, the popover will be initially opened.\n */\n defaultIsOpen?: boolean\n /**\n * The `ref` of the element that should receive focus when the popover opens.\n */\n initialFocusRef?: RefObject<FocusableElement>\n /**\n * If `true`, focus will be returned to the element that triggers the popover\n * when it closes\n */\n returnFocusOnClose?: boolean\n /**\n * If `true`, focus will be transferred to the first interactive element\n * when the popover opens\n */\n autoFocus?: boolean\n /**\n * If `true`, the popover will close when you blur out it by\n * clicking outside or tabbing out\n */\n closeOnBlur?: boolean\n /**\n * If `true`, the popover will close when you hit the `Esc` key\n */\n closeOnEsc?: boolean\n /**\n * Callback fired when the popover opens\n */\n onOpen?: () => void\n /**\n * Callback fired when the popover closes\n */\n onClose?: () => void\n /**\n * The size of the popover arrow\n */\n arrowSize?: number\n /**\n * The `box-shadow` of the popover arrow\n */\n arrowShadowColor?: string\n /**\n * The interaction that triggers the popover.\n *\n * `hover` - means the popover will open when you hover with mouse or\n * focus with keyboard on the popover trigger\n *\n * `click` - means the popover will open on click or\n * press `Enter` to `Space` on keyboard\n */\n trigger?: keyof typeof TRIGGER\n openDelay?: number\n closeDelay?: number\n /**\n * Performance 🚀:\n * If `true`, the PopoverContent rendering will be deferred\n * until the popover is open.\n */\n isLazy?: boolean\n /**\n * Performance 🚀:\n * The lazy behavior of popover's content when not visible.\n * Only works when `isLazy={true}`\n *\n * - \"unmount\": The popover's content is always unmounted when not open.\n * - \"keepMounted\": The popover's content initially unmounted,\n * but stays mounted when popover is open.\n *\n * @default \"unmount\"\n */\n lazyBehavior?: LazyBehavior\n /**\n * If `true`, the popover will be positioned when it mounts\n * (even if it's not open)\n *\n * Note 🚨: We don't recommend using this in a popover/menu intensive UI or page\n * as it might affect scrolling performance.\n */\n computePositionOnMount?: boolean\n}\n\n/**\n * @internal\n */\nexport function usePopover(props: UsePopoverProps = {}) {\n const {\n closeOnBlur = true,\n closeOnEsc = true,\n initialFocusRef,\n id,\n returnFocusOnClose = true,\n autoFocus = true,\n arrowSize,\n arrowShadowColor,\n trigger = TRIGGER.click,\n openDelay = 200,\n closeDelay = 200,\n isLazy,\n lazyBehavior = \"unmount\",\n computePositionOnMount,\n ...popperProps\n } = props\n\n const { isOpen, onClose, onOpen, onToggle } = useDisclosure(props)\n\n const triggerRef = useRef<HTMLElement>(null)\n const popoverRef = useRef<HTMLElement>(null)\n\n const isHoveringRef = useRef(false)\n\n const hasBeenOpened = useRef(false)\n if (isOpen) {\n hasBeenOpened.current = true\n }\n\n const [hasHeader, setHasHeader] = useState(false)\n const [hasBody, setHasBody] = useState(false)\n\n const [triggerId, popoverId, headerId, bodyId] = useIds(\n id,\n \"popover-trigger\",\n \"popover-content\",\n \"popover-header\",\n \"popover-body\",\n )\n\n const {\n referenceRef,\n getArrowProps,\n getPopperProps,\n getArrowInnerProps,\n forceUpdate,\n } = usePopper({\n ...popperProps,\n enabled: isOpen || !!computePositionOnMount,\n })\n\n useFocusOnPointerDown({\n enabled: isOpen,\n ref: triggerRef,\n })\n\n useFocusOnHide(popoverRef, {\n focusRef: triggerRef,\n visible: isOpen,\n shouldFocus: returnFocusOnClose && trigger === TRIGGER.click,\n })\n\n useFocusOnShow(popoverRef, {\n focusRef: initialFocusRef,\n visible: isOpen,\n shouldFocus: autoFocus && trigger === TRIGGER.click,\n })\n\n const shouldRenderChildren = determineLazyBehavior({\n hasBeenSelected: hasBeenOpened.current,\n isLazy,\n lazyBehavior,\n isSelected: isOpen,\n })\n\n const getPopoverProps: PropGetter = useCallback(\n (props = {}, _ref = null) => {\n const popoverProps: HTMLProps = {\n ...props,\n style: {\n ...props.style,\n transformOrigin: popperCSSVars.transformOrigin.varRef,\n [popperCSSVars.arrowSize.var]: arrowSize ? px(arrowSize) : undefined,\n [popperCSSVars.arrowShadowColor.var]: arrowShadowColor,\n },\n ref: mergeRefs(popoverRef, _ref),\n children: shouldRenderChildren ? props.children : null,\n id: popoverId,\n tabIndex: -1,\n role: \"dialog\",\n onKeyDown: callAllHandlers(props.onKeyDown, (event) => {\n if (closeOnEsc && event.key === \"Escape\") {\n onClose()\n }\n }),\n onBlur: callAllHandlers(props.onBlur, (event) => {\n const relatedTarget = getRelatedTarget(event)\n const targetIsPopover = contains(popoverRef.current, relatedTarget)\n const targetIsTrigger = contains(triggerRef.current, relatedTarget)\n const isValidBlur = !targetIsPopover && !targetIsTrigger\n\n if (isOpen && closeOnBlur && isValidBlur) {\n onClose()\n }\n }),\n \"aria-labelledby\": hasHeader ? headerId : undefined,\n \"aria-describedby\": hasBody ? bodyId : undefined,\n }\n\n if (trigger === TRIGGER.hover) {\n popoverProps.role = \"tooltip\"\n popoverProps.onMouseEnter = callAllHandlers(props.onMouseEnter, () => {\n isHoveringRef.current = true\n })\n popoverProps.onMouseLeave = callAllHandlers(props.onMouseLeave, () => {\n isHoveringRef.current = false\n setTimeout(onClose, closeDelay)\n })\n }\n\n return popoverProps\n },\n [\n shouldRenderChildren,\n popoverId,\n hasHeader,\n headerId,\n hasBody,\n bodyId,\n trigger,\n closeOnEsc,\n onClose,\n isOpen,\n closeOnBlur,\n closeDelay,\n arrowShadowColor,\n arrowSize,\n ],\n )\n\n const getPopoverPositionerProps: PropGetter = useCallback(\n (props = {}, forwardedRef = null) =>\n getPopperProps(\n {\n ...props,\n style: {\n visibility: isOpen ? \"visible\" : \"hidden\",\n ...props.style,\n },\n },\n forwardedRef,\n ),\n [isOpen, getPopperProps],\n )\n\n const openTimeout = useRef<number>()\n const closeTimeout = useRef<number>()\n\n const getTriggerProps: PropGetter = useCallback(\n (props = {}, _ref = null) => {\n const triggerProps: HTMLProps = {\n ...props,\n ref: mergeRefs(triggerRef, _ref, referenceRef),\n id: triggerId,\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": isOpen,\n \"aria-controls\": popoverId,\n }\n\n if (trigger === TRIGGER.click) {\n triggerProps.onClick = callAllHandlers(props.onClick, onToggle)\n }\n\n if (trigger === TRIGGER.hover) {\n /**\n * Any content that shows on pointer hover should also show on keyboard focus.\n * Consider focus and blur to be the `hover` for keyboard users.\n *\n * @see https://www.w3.org/WAI/WCAG21/Understanding/content-on-hover-or-focus.html\n */\n triggerProps.onFocus = callAllHandlers(props.onFocus, onOpen)\n triggerProps.onBlur = callAllHandlers(props.onBlur, onClose)\n\n /**\n * Any content that shows on hover or focus must be dismissible.\n * This case pressing `Escape` will dismiss the popover\n */\n triggerProps.onKeyDown = callAllHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Escape\") {\n onClose()\n }\n })\n\n triggerProps.onMouseEnter = callAllHandlers(props.onMouseEnter, () => {\n isHoveringRef.current = true\n openTimeout.current = window.setTimeout(onOpen, openDelay)\n })\n\n triggerProps.onMouseLeave = callAllHandlers(props.onMouseLeave, () => {\n isHoveringRef.current = false\n\n if (openTimeout.current) {\n clearTimeout(openTimeout.current)\n openTimeout.current = undefined\n }\n\n closeTimeout.current = window.setTimeout(() => {\n if (isHoveringRef.current === false) {\n onClose()\n }\n }, closeDelay)\n })\n }\n\n return triggerProps\n },\n [\n triggerId,\n isOpen,\n popoverId,\n trigger,\n referenceRef,\n onToggle,\n onOpen,\n onClose,\n openDelay,\n closeDelay,\n ],\n )\n\n useEffect(() => {\n return () => {\n if (openTimeout.current) {\n clearTimeout(openTimeout.current)\n }\n if (closeTimeout.current) {\n clearTimeout(closeTimeout.current)\n }\n }\n }, [])\n\n const getHeaderProps: PropGetter = useCallback(\n (props = {}, ref = null) => ({\n ...props,\n id: headerId,\n ref: mergeRefs(ref, (node: HTMLElement | null) => {\n setHasHeader(!!node)\n }),\n }),\n [headerId],\n )\n\n const getBodyProps: PropGetter = useCallback(\n (props = {}, ref = null) => ({\n ...props,\n id: bodyId,\n ref: mergeRefs(ref, (node) => {\n setHasBody(!!node)\n }),\n }),\n [bodyId],\n )\n\n return {\n forceUpdate,\n isOpen,\n onClose,\n getArrowProps,\n getArrowInnerProps,\n getPopoverPositionerProps,\n getPopoverProps,\n getTriggerProps,\n getHeaderProps,\n getBodyProps,\n }\n}\n\nexport type UsePopoverReturn = ReturnType<typeof usePopover>\n","import { CloseButton, CloseButtonProps } from \"@chakra-ui/close-button\"\nimport { MaybeRenderProp } from \"@chakra-ui/react-utils\"\nimport {\n chakra,\n forwardRef,\n HTMLChakraProps,\n omitThemingProps,\n StylesProvider,\n SystemStyleObject,\n ThemingProps,\n useMultiStyleConfig,\n useStyles,\n useTheme,\n} from \"@chakra-ui/system\"\nimport { cx, runIfFn, __DEV__ } from \"@chakra-ui/utils\"\nimport * as React from \"react\"\nimport { PopoverProvider, usePopoverContext } from \"./popover-context\"\nimport { PopoverTransition, PopoverTransitionProps } from \"./popover-transition\"\nimport { usePopover, UsePopoverProps } from \"./use-popover\"\n\nexport { usePopoverContext }\n\nexport interface PopoverProps extends UsePopoverProps, ThemingProps<\"Popover\"> {\n /**\n * The content of the popover. It is usually the `PopoverTrigger`,\n * and `PopoverContent`\n */\n children?: MaybeRenderProp<{\n isOpen: boolean\n onClose: () => void\n forceUpdate: (() => void) | undefined\n }>\n}\n\n/**\n * Popover is used to bring attention to specific user interface elements,\n * typically to suggest an action or to guide users through a new experience.\n */\nexport const Popover: React.FC<PopoverProps> = (props) => {\n const styles = useMultiStyleConfig(\"Popover\", props)\n\n const { children, ...rest } = omitThemingProps(props)\n const theme = useTheme()\n const context = usePopover({ ...rest, direction: theme.direction })\n\n return (\n <PopoverProvider value={context}>\n <StylesProvider value={styles}>\n {runIfFn(children, {\n isOpen: context.isOpen,\n onClose: context.onClose,\n forceUpdate: context.forceUpdate,\n })}\n </StylesProvider>\n </PopoverProvider>\n )\n}\n\nif (__DEV__) {\n Popover.displayName = \"Popover\"\n}\n\n/**\n * PopoverTrigger opens the popover's content. It must be an interactive element\n * such as `button` or `a`.\n */\nexport const PopoverTrigger: React.FC = (props) => {\n // enforce a single child\n const child: any = React.Children.only(props.children)\n const { getTriggerProps } = usePopoverContext()\n return React.cloneElement(child, getTriggerProps(child.props, child.ref))\n}\n\nif (__DEV__) {\n PopoverTrigger.displayName = \"PopoverTrigger\"\n}\n\nexport interface PopoverContentProps extends PopoverTransitionProps {\n rootProps?: HTMLChakraProps<\"div\">\n}\n\nexport const PopoverContent = forwardRef<PopoverContentProps, \"section\">(\n (props, ref) => {\n const { rootProps, ...contentProps } = props\n\n const { getPopoverProps, getPopoverPositionerProps } = usePopoverContext()\n\n const styles = useStyles()\n const contentStyles: SystemStyleObject = {\n position: \"relative\",\n display: \"flex\",\n flexDirection: \"column\",\n ...styles.content,\n }\n\n return (\n <chakra.div\n {...getPopoverPositionerProps(rootProps)}\n __css={styles.popper}\n className=\"chakra-popover__popper\"\n >\n <PopoverTransition\n {...getPopoverProps(contentProps, ref)}\n className={cx(\"chakra-popover__content\", props.className)}\n __css={contentStyles}\n />\n </chakra.div>\n )\n },\n)\n\nif (__DEV__) {\n PopoverContent.displayName = \"PopoverContent\"\n}\n\nexport interface PopoverHeaderProps extends HTMLChakraProps<\"header\"> {}\n\n/**\n * PopoverHeader is the accessible header or label\n * for the popover's content and it is first announced by screenreaders.\n */\nexport const PopoverHeader = forwardRef<PopoverHeaderProps, \"header\">(\n (props, ref) => {\n const { getHeaderProps } = usePopoverContext()\n\n const styles = useStyles()\n\n return (\n <chakra.header\n {...getHeaderProps(props, ref)}\n className={cx(\"chakra-popover__header\", props.className)}\n __css={styles.header}\n />\n )\n },\n)\n\nif (__DEV__) {\n PopoverHeader.displayName = \"PopoverHeader\"\n}\n\nexport interface PopoverBodyProps extends HTMLChakraProps<\"div\"> {}\n\n/**\n * PopoverBody is the main content area for the popover. Should contain\n * at least one interactive element.\n */\nexport const PopoverBody = forwardRef<PopoverBodyProps, \"div\">((props, ref) => {\n const { getBodyProps } = usePopoverContext()\n\n const styles = useStyles()\n\n return (\n <chakra.div\n {...getBodyProps(props, ref)}\n className={cx(\"chakra-popover__body\", props.className)}\n __css={styles.body}\n />\n )\n})\n\nif (__DEV__) {\n PopoverBody.displayName = \"PopoverBody\"\n}\nexport interface PopoverFooterProps extends HTMLChakraProps<\"footer\"> {}\n\nexport const PopoverFooter: React.FC<PopoverFooterProps> = (props) => {\n const styles = useStyles()\n return (\n <chakra.footer\n {...props}\n className={cx(\"chakra-popover__footer\", props.className)}\n __css={styles.footer}\n />\n )\n}\n\nif (__DEV__) {\n PopoverFooter.displayName = \"PopoverFooter\"\n}\n\nexport type PopoverCloseButtonProps = CloseButtonProps\n\nexport const PopoverCloseButton: React.FC<CloseButtonProps> = (props) => {\n const { onClose } = usePopoverContext()\n return (\n <CloseButton\n size=\"sm\"\n onClick={onClose}\n position=\"absolute\"\n borderRadius=\"md\"\n top=\"0.25rem\"\n insetEnd=\"0.5rem\"\n padding=\"0.5rem\"\n {...props}\n />\n )\n}\n\nif (__DEV__) {\n PopoverCloseButton.displayName = \"PopoverCloseButton\"\n}\n\nexport interface PopoverArrowProps extends HTMLChakraProps<\"div\"> {}\n\nexport const PopoverArrow: React.FC<PopoverArrowProps> = (props) => {\n const { bg, bgColor, backgroundColor } = props\n const { getArrowProps, getArrowInnerProps } = usePopoverContext()\n const styles = useStyles()\n const arrowBg = bg ?? bgColor ?? backgroundColor\n return (\n <chakra.div\n {...getArrowProps()}\n className=\"chakra-popover__arrow-positioner\"\n >\n <chakra.div\n className={cx(\"chakra-popover__arrow\", props.className)}\n {...getArrowInnerProps(props)}\n __css={{\n ...styles.arrow,\n \"--popper-arrow-bg\": arrowBg\n ? `colors.${arrowBg}, ${arrowBg}`\n : undefined,\n }}\n />\n </chakra.div>\n )\n}\n\nif (__DEV__) {\n PopoverArrow.displayName = \"PopoverArrow\"\n}\n","import { useFormControlContext } from \"@chakra-ui/form-control\"\nimport { useBoolean, useControllableProp, useId } from \"@chakra-ui/hooks\"\nimport { mergeRefs, PropGetter } from \"@chakra-ui/react-utils\"\nimport { ariaAttr, callAllHandlers, dataAttr, warn } from \"@chakra-ui/utils\"\nimport { visuallyHiddenStyle } from \"@chakra-ui/visually-hidden\"\nimport {\n ChangeEvent,\n SyntheticEvent,\n useCallback,\n useRef,\n useState,\n} from \"react\"\nimport { useRadioGroupContext } from \"./radio-group\"\n\n/**\n * @todo use the `useClickable` hook here\n * to manage the isFocusable & isDisabled props\n */\nexport interface UseRadioProps {\n /**\n * id assigned to input\n */\n id?: string\n /**\n * The name of the input field in a radio\n * (Useful for form submission).\n */\n name?: string\n /**\n * The value to be used in the radio button.\n * This is the value that will be returned on form submission.\n */\n value?: string | number\n /**\n * If `true`, the radio will be checked.\n * You'll need to pass `onChange` to update its value (since it is now controlled)\n */\n isChecked?: boolean\n /**\n * If `true`, the radio will be initially checked.\n *\n * @deprecated Please use `defaultChecked` which mirrors the default prop\n * name for radio elements.\n */\n defaultIsChecked?: boolean\n /**\n * If `true`, the radio will be initially checked.\n */\n defaultChecked?: boolean\n /**\n * If `true`, the radio will be disabled\n */\n isDisabled?: boolean\n /**\n * If `true` and `isDisabled` is true, the radio will remain\n * focusable but not interactive.\n */\n isFocusable?: boolean\n /**\n * If `true`, the radio will be read-only\n */\n isReadOnly?: boolean\n /**\n * If `true`, the radio button will be invalid. This also sets `aria-invalid` to `true`.\n */\n isInvalid?: boolean\n /**\n * If `true`, the radio button will be required. This also sets `aria-required` to `true`.\n */\n isRequired?: boolean\n /**\n * Function called when checked state of the `input` changes\n */\n onChange?: (event: ChangeEvent<HTMLInputElement>) => void\n /**\n * @internal\n */\n \"data-radiogroup\"?: any\n}\n\nexport function useRadio(props: UseRadioProps = {}) {\n const {\n defaultIsChecked,\n defaultChecked = defaultIsChecked,\n isChecked: isCheckedProp,\n isFocusable,\n isDisabled: isDisabledProp,\n isReadOnly: isReadOnlyProp,\n isRequired: isRequiredProp,\n onChange,\n isInvalid: isInvalidProp,\n name,\n value,\n id: idProp,\n \"data-radiogroup\": dataRadioGroup,\n ...htmlProps\n } = props\n\n const uuid = useId(undefined, \"radio\")\n\n const formControl = useFormControlContext()\n const group = useRadioGroupContext()\n\n const isWithinRadioGroup = !!group || !!dataRadioGroup\n const isWithinFormControl = !!formControl\n\n let id = isWithinFormControl && !isWithinRadioGroup ? formControl.id : uuid\n id = idProp ?? id\n\n const isDisabled = isDisabledProp ?? formControl?.isDisabled\n const isReadOnly = isReadOnlyProp ?? formControl?.isReadOnly\n const isRequired = isRequiredProp ?? formControl?.isRequired\n const isInvalid = isInvalidProp ?? formControl?.isInvalid\n\n const [isFocused, setFocused] = useBoolean()\n const [isHovered, setHovering] = useBoolean()\n const [isActive, setActive] = useBoolean()\n\n const ref = useRef<HTMLInputElement>(null)\n\n const [isCheckedState, setChecked] = useState(Boolean(defaultChecked))\n\n const [isControlled, isChecked] = useControllableProp(\n isCheckedProp,\n isCheckedState,\n )\n\n warn({\n condition: !!defaultIsChecked,\n message:\n 'The \"defaultIsChecked\" prop has been deprecated and will be removed in a future version. ' +\n 'Please use the \"defaultChecked\" prop instead, which mirrors default React checkbox behavior.',\n })\n\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n if (isReadOnly || isDisabled) {\n event.preventDefault()\n return\n }\n\n if (!isControlled) {\n setChecked(event.target.checked)\n }\n\n onChange?.(event)\n },\n [isControlled, isDisabled, isReadOnly, onChange],\n )\n\n const onKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key === \" \") {\n setActive.on()\n }\n },\n [setActive],\n )\n\n const onKeyUp = useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key === \" \") {\n setActive.off()\n }\n },\n [setActive],\n )\n\n const getCheckboxProps: PropGetter = useCallback(\n (props = {}, ref = null) => ({\n ...props,\n ref,\n \"data-active\": dataAttr(isActive),\n \"data-hover\": dataAttr(isHovered),\n \"data-disabled\": dataAttr(isDisabled),\n \"data-invalid\": dataAttr(isInvalid),\n \"data-checked\": dataAttr(isChecked),\n \"data-focus\": dataAttr(isFocused),\n \"data-readonly\": dataAttr(isReadOnly),\n \"aria-hidden\": true,\n onMouseDown: callAllHandlers(props.onMouseDown, setActive.on),\n onMouseUp: callAllHandlers(props.onMouseUp, setActive.off),\n onMouseEnter: callAllHandlers(props.onMouseEnter, setHovering.on),\n onMouseLeave: callAllHandlers(props.onMouseLeave, setHovering.off),\n }),\n [\n isActive,\n isHovered,\n isDisabled,\n isInvalid,\n isChecked,\n isFocused,\n isReadOnly,\n setActive.on,\n setActive.off,\n setHovering.on,\n setHovering.off,\n ],\n )\n\n const { onFocus, onBlur } = formControl ?? {}\n\n const getInputProps: PropGetter<HTMLInputElement> = useCallback(\n (props = {}, forwardedRef = null) => {\n const trulyDisabled = isDisabled && !isFocusable\n\n return {\n ...props,\n id,\n ref: mergeRefs(forwardedRef, ref),\n type: \"radio\",\n name,\n value,\n onChange: callAllHandlers(props.onChange, handleChange),\n onBlur: callAllHandlers(onBlur, props.onBlur, setFocused.off),\n onFocus: callAllHandlers(onFocus, props.onFocus, setFocused.on),\n onKeyDown: callAllHandlers(props.onKeyDown, onKeyDown),\n onKeyUp: callAllHandlers(props.onKeyUp, onKeyUp),\n checked: isChecked,\n disabled: trulyDisabled,\n readOnly: isReadOnly,\n required: isRequired,\n \"aria-invalid\": ariaAttr(isInvalid),\n \"aria-disabled\": ariaAttr(trulyDisabled),\n \"aria-readonly\": ariaAttr(isReadOnly),\n \"aria-required\": ariaAttr(isRequired),\n style: visuallyHiddenStyle,\n }\n },\n [\n isDisabled,\n isFocusable,\n id,\n name,\n value,\n handleChange,\n onBlur,\n setFocused,\n onFocus,\n onKeyDown,\n onKeyUp,\n isChecked,\n isReadOnly,\n isRequired,\n isInvalid,\n ],\n )\n\n const getLabelProps: PropGetter = (props = {}, ref = null) => ({\n ...props,\n ref,\n onMouseDown: callAllHandlers(props.onMouseDown, stop),\n onTouchStart: callAllHandlers(props.onTouchStart, stop),\n \"data-disabled\": dataAttr(isDisabled),\n \"data-checked\": dataAttr(isChecked),\n \"data-invalid\": dataAttr(isInvalid),\n })\n\n const getRootProps: PropGetter = (pros, ref = null) => ({\n ...props,\n ref,\n \"data-disabled\": dataAttr(isDisabled),\n \"data-checked\": dataAttr(isChecked),\n \"data-invalid\": dataAttr(isInvalid),\n })\n\n return {\n state: {\n isInvalid,\n isFocused,\n isChecked,\n isActive,\n isHovered,\n isDisabled,\n isReadOnly,\n isRequired,\n },\n getCheckboxProps,\n getInputProps,\n getLabelProps,\n getRootProps,\n htmlProps,\n }\n}\n\n/**\n * Prevent `onBlur` being fired when the checkbox label is touched\n */\nfunction stop(event: SyntheticEvent) {\n event.preventDefault()\n event.stopPropagation()\n}\n\nexport type UseRadioReturn = ReturnType<typeof useRadio>\n","import {\n chakra,\n forwardRef,\n layoutPropNames,\n omitThemingProps,\n SystemProps,\n SystemStyleObject,\n ThemingProps,\n useMultiStyleConfig,\n HTMLChakraProps,\n} from \"@chakra-ui/system\"\nimport { callAll, split, __DEV__ } from \"@chakra-ui/utils\"\nimport * as React from \"react\"\nimport { useRadioGroupContext } from \"./radio-group\"\nimport { useRadio, UseRadioProps } from \"./use-radio\"\n\ntype Omitted = \"onChange\" | \"defaultChecked\" | \"checked\"\ninterface BaseControlProps extends Omit<HTMLChakraProps<\"div\">, Omitted> {}\n\nexport interface RadioProps\n extends UseRadioProps,\n ThemingProps<\"Radio\">,\n BaseControlProps {\n /**\n * The spacing between the checkbox and its label text\n * @default 0.5rem\n * @type SystemProps[\"marginLeft\"]\n */\n spacing?: SystemProps[\"marginLeft\"]\n /**\n * If `true`, the radio will occupy the full width of its parent container\n *\n * @deprecated\n * This component defaults to 100% width,\n * please use the props `maxWidth` or `width` to configure\n */\n isFullWidth?: boolean\n}\n\n/**\n * Radio component is used in forms when a user needs to select a single value from\n * several options.\n *\n * @see Docs https://chakra-ui.com/radio\n */\nexport const Radio = forwardRef<RadioProps, \"input\">((props, ref) => {\n const group = useRadioGroupContext()\n const { onChange: onChangeProp, value: valueProp } = props\n\n const styles = useMultiStyleConfig(\"Radio\", { ...group, ...props })\n\n const ownProps = omitThemingProps(props)\n\n const {\n spacing = \"0.5rem\",\n children,\n isFullWidth,\n isDisabled = group?.isDisabled,\n isFocusable = group?.isFocusable,\n ...rest\n } = ownProps\n\n let isChecked = props.isChecked\n if (group?.value != null && valueProp != null) {\n isChecked = group.value === valueProp\n }\n\n let onChange = onChangeProp\n if (group?.onChange && valueProp != null) {\n onChange = callAll(group.onChange, onChangeProp)\n }\n\n const name = props?.name ?? group?.name\n\n const {\n getInputProps,\n getCheckboxProps,\n getLabelProps,\n getRootProps,\n htmlProps,\n } = useRadio({\n ...rest,\n isChecked,\n isFocusable,\n isDisabled,\n onChange,\n name,\n })\n\n const [layoutProps, otherProps] = split(htmlProps, layoutPropNames as any)\n\n const checkboxProps = getCheckboxProps(otherProps)\n const inputProps = getInputProps({}, ref)\n const labelProps = getLabelProps()\n const rootProps = Object.assign(layoutProps, getRootProps())\n\n const rootStyles = {\n width: isFullWidth ? \"full\" : undefined,\n display: \"inline-flex\",\n alignItems: \"center\",\n verticalAlign: \"top\",\n ...styles.container,\n }\n\n const checkboxStyles = {\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n ...styles.control,\n }\n\n const labelStyles: SystemStyleObject = {\n userSelect: \"none\",\n marginStart: spacing,\n ...styles.label,\n }\n\n return (\n <chakra.label className=\"chakra-radio\" {...rootProps} __css={rootStyles}>\n <input className=\"chakra-radio__input\" {...inputProps} />\n <chakra.span\n className=\"chakra-radio__control\"\n {...checkboxProps}\n __css={checkboxStyles}\n />\n {children && (\n <chakra.span\n className=\"chakra-radio__label\"\n {...labelProps}\n __css={labelStyles}\n >\n {children}\n </chakra.span>\n )}\n </chakra.label>\n )\n})\n\nif (__DEV__) {\n Radio.displayName = \"Radio\"\n}\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["../../../src/index.ts","../../../src/use-radio-group.ts","../../../src/radio-group.tsx","../../../src/link-box.tsx","../node_modules/date-fns/esm/compareAsc/index.js","../node_modules/date-fns/esm/_lib/cloneObject/index.js","../node_modules/date-fns/esm/_lib/assign/index.js","../node_modules/date-fns/esm/formatDistanceStrict/index.js","../node_modules/date-fns/esm/formatDistanceToNowStrict/index.js","../../../src/popover-context.ts","../../../src/popover-transition.tsx","../../../src/pointer-event.ts","../../../src/use-focus-on-pointerdown.ts","../../../src/user-agent.ts","../../../src/use-pointer-event.ts","../../../src/use-focus-on-show.ts","../../../src/use-popover.ts","../../../src/popover.tsx","../../../src/use-radio.ts","../../../src/radio.tsx"],"names":["useRadioGroup","props","onChange","value","name","isNative","React","defaultValue","useControllableProp","valueProp","ref","focus","rootNode","query","firstEnabledAndCheckedInput","firstEnabledInput","fallbackName","useId","undefined","nameProp","eventOrValue","nextValue","isInputEvent","setValue","onChangeProp","String","getRootProps","forwardedRef","mergeRefs","role","getRadioProps","checkedKey","isDisabled","isFocusable","htmlProps","createContext","strict","RadioGroup","forwardRef","group","size","colorScheme","variant","groupProps","_className","cx","className","LinkOverlay","rel","isExternal","target","__css","position","content","cursor","display","top","left","zIndex","width","height","LinkBox","compareAsc","dirtyDateLeft","dirtyDateRight","requiredArgs","arguments","dateLeft","toDate","dateRight","diff","getTime","cloneObject","dirtyObject","TypeError","property","Object","prototype","hasOwnProperty","call","assign","MILLISECONDS_IN_MINUTE","MINUTES_IN_DAY","MINUTES_IN_MONTH","MINUTES_IN_YEAR","formatDistanceStrict","dirtyDate","dirtyBaseDate","options","length","locale","defaultLocale","formatDistance","RangeError","comparison","isNaN","localizeOptions","addSuffix","Boolean","roundingMethodFn","roundingMethod","Math","floor","ceil","round","unit","milliseconds","minutes","timezoneOffset","getTimezoneOffsetInMilliseconds","dstNormalizedMinutes","seconds","roundedMinutes","hours","days","months","years","formatDistanceToNowStrict","dirtyOptions","Date","now","errorMessage","mergeVariants","variants","mergeWith","enter","visibility","exit","transitionEnd","Section","motion","chakra","PopoverTransition","isOpen","usePopoverContext","initial","animate","opacity","scale","transition","duration","ease","isTouchEvent","event","defaultPagePoint","pageX","pageY","pointFromTouch","e","pointType","point","x","y","pointFromMouse","extractEventInfo","wrapPointerEventHandler","shouldFilterPrimaryPointer","eventHandler","listener","handler","isMouseEvent","getEventWindow","mouseEventNames","pointerdown","pointermove","pointerup","pointercancel","pointerover","pointerout","pointerenter","pointerleave","touchEventNames","getPointerEventName","isBrowser","window","useFocusOnPointerDown","browser","enabled","isSafari","navigator","userAgent","vendor","android","test","ua","getUserAgentBrowser","getOwnerDocument","isValidTarget","elements","elementOrRef","el","isRefObject","contains","isActiveElement","useEventListener","eventName","defaultOptions","preventScroll","shouldFocus","TRIGGER","usePopover","closeOnBlur","closeOnEsc","returnFocusOnClose","autoFocus","trigger","openDelay","closeDelay","lazyBehavior","computePositionOnMount","useDisclosure","onToggle","triggerRef","useRef","popoverRef","isHoveringRef","hasBeenOpened","useState","useIds","usePopper","forceUpdate","useFocusOnHide","focusRef","visible","element","onFocus","useCallback","document","nextTick","tabbableEls","getAllFocusable","useUpdateEffect","useFocusOnShow","shouldRenderChildren","determineLazyBehavior","hasBeenSelected","isLazy","isSelected","getPopoverProps","_ref","popoverProps","style","transformOrigin","popperCSSVars","arrowSize","px","arrowShadowColor","children","id","tabIndex","onKeyDown","callAllHandlers","onClose","onBlur","relatedTarget","getRelatedTarget","targetIsPopover","targetIsTrigger","hasHeader","headerId","hasBody","bodyId","setTimeout","getPopoverPositionerProps","getPopperProps","openTimeout","closeTimeout","getTriggerProps","triggerProps","popoverId","clearTimeout","useEffect","getHeaderProps","node","setHasHeader","getBodyProps","setHasBody","getArrowProps","getArrowInnerProps","Popover","styles","useMultiStyleConfig","omitThemingProps","context","direction","useTheme","runIfFn","PopoverTrigger","child","PopoverContent","rootProps","useStyles","contentStyles","flexDirection","contentProps","PopoverHeader","header","PopoverBody","body","PopoverArrow","backgroundColor","arrowBg","bg","useRadio","defaultChecked","isChecked","isReadOnly","isRequired","isInvalid","dataRadioGroup","uuid","formControl","useFormControlContext","useRadioGroupContext","isWithinFormControl","idProp","isDisabledProp","isReadOnlyProp","isRequiredProp","isInvalidProp","useBoolean","warn","condition","message","handleChange","setChecked","isControlled","setActive","onKeyUp","getCheckboxProps","dataAttr","onMouseDown","onMouseUp","onMouseEnter","setHovering","onMouseLeave","getInputProps","trulyDisabled","type","setFocused","checked","disabled","readOnly","required","ariaAttr","visuallyHiddenStyle","state","isFocused","isActive","isHovered","getLabelProps","onTouchStart","pros","stop","Radio","ownProps","spacing","callAll","split","checkboxProps","inputProps","labelProps","rootStyles","isFullWidth","alignItems","verticalAlign","checkboxStyles","justifyContent","flexShrink","labelStyles","userSelect","marginStart"],"mappings":"oIAAA,sX,qaCyDO,SAASA,EAAcC,QAAgC,IAAhCA,MAA4B,IACxD,QAAM,EAAN,EACEC,SADI,EAAN,EAEEC,MAFI,EAAN,EAAM,eAAN,EAIEC,KAJI,EAAN,EAAM,aAAN,EAAM,YAOJC,EAPF,EAOEA,SAPF,E,oIAAA,qFAWA,EAA+BC,WAC7BC,GADF,uBAAM,EAAN,KAAM,EAAN,KAGA,EAA8BC,YAAoBC,EAAlD,sBAAM,EAAN,KAAM,EAAN,KAEMC,EAAMJ,SAAZ,MAEMK,EAAQ,eAAkB,WAC9B,IAAMC,EAAWF,EAAjB,QACA,MAEA,IAAIG,EAAJ,+BAEMC,EAA8BF,gBAApC,GAIA,KACEE,cADF,CAKAD,yBAEA,IAAME,EAAoBH,gBAA1B,GACAG,uBAlBF,IAwBMC,EAAeC,iBAAMC,EAA3B,SACMd,EAAOe,GAAb,EAEMjB,EAAW,eACdkB,YACC,IAAMC,EAAYC,eACdF,SADcE,MAAlB,EAIA,GACEC,KAGFC,WAAeC,OAAfD,MAEF,CAACA,EAZH,IAeME,EAA2B,eAC/B,8BAACzB,MAAD,aAAa0B,MAAb,cAEEjB,IAAKkB,YAAUD,EAFjB,GAGEE,KAAM,iBAJV,IASMC,EAAiC,eACrC,cAA4B,eAA3B7B,MAAQ,SAAmB,IAAfS,MAAM,MACjB,IAAMqB,EAAa1B,EAAW,UAA9B,YACA,kBAEEK,MACAN,QAHF,cAIE,EAAcD,QAAgBF,UAAhBE,OAJhB,6CAME,mBAAmB,GANrB,MASF,CAACE,EAAUD,EAAMF,EAZnB,IAeA,MAAO,CACLwB,eACAI,gBACA1B,OACAM,MACAC,QACAY,WACApB,QACAD,WACA8B,aACAC,cACAC,a,gNCnIJ,MAGIC,YAAiC,CACnC/B,KADmC,oBAEnCgC,QAAQ,IALV,mBAAM,EAAN,KAAM,EAAN,KA6BaC,EAAaC,aAAmC,cAC3D,IAAM,EAAN,EAAM,cAAN,EAAM,OAAN,EAAM,UAAN,EAAM,WAAN,EAAM,YAAN,EAAM,WAOJL,EAPF,EAOEA,YAIF,EAA2DjC,E,oIAX3D,wFAWM,EAAN,EAAM,QAAN,EAAM,WAAN,EAAM,eAAN,EAAM,KAAuCkC,EAA7C,EAA6CA,UAEvCK,EAAQ,WACZ,iBAAO,CACLnC,OACAoC,OACAtC,WACAuC,cACAtC,QACAuC,UACAV,aACAC,iBAEF,CAAC,EAAD,YAXF,IAuBMU,EAAajB,EAAaQ,EAAhC,GACMU,EAAaC,YAAG,qBAAtB,GAEA,OACE,mBAAoB1C,MAAOoC,GACzB,gBAAC,IAAD,YAA4BO,UAAWF,IAF3C,OASE,EAAJ,IACEP,6B,8dC1FK,IAAMU,EAAcT,aAAkC,cAC3D,IAAM,EAAN,EAAM,aAAN,EAAM,SAAN,EAAM,IAA2BQ,EAAjC,EAAiCA,UAAjC,iDACA,OACE,gBAAC,IAAD,UAEEpC,IAFF,EAGEoC,UAAWD,YAAG,0BAHhB,GAIEG,IAAKC,EAAa,sBAJpB,EAKEC,OAAQD,EAAa,SALvB,EAMEE,MAAO,CACLC,SADK,SAEL,YAAa,CACXC,QADW,KAEXC,OAFW,UAGXC,QAHW,QAIXH,SAJW,WAKXI,IALW,EAMXC,KANW,EAOXC,OAPW,EAQXC,MARW,OASXC,OAAQ,eAeLC,EAAUvB,aAAgC,cAC/C,IAAEQ,EAAR,EAAQA,UAAR,qBAEA,OACE,gBAAC,IAAD,OACEpC,IADF,EAEE0C,SAAS,YAFX,GAIEN,UAAWD,YAAG,iBAJhB,GAKEM,MAAO,CAEL,qDAAsD,CACpDC,SADoD,WAEpDM,OAAQ,W,kGCpBH,SAASI,EAAWC,EAAeC,GAChDC,YAAa,EAAGC,WAChB,IAAIC,EAAWC,YAAOL,GAClBM,EAAYD,YAAOJ,GACnBM,EAAOH,EAASI,UAAYF,EAAUE,UAE1C,OAAID,EAAO,GACD,EACCA,EAAO,EACT,EAEAA,ECjDI,SAASE,EAAYC,GAClC,OCFa,SAAgBvB,EAAQuB,GACrC,GAAc,MAAVvB,EACF,MAAM,IAAIwB,UAAU,iEAKtB,IAAK,IAAIC,KAFTF,EAAcA,GAAe,GAGvBG,OAAOC,UAAUC,eAAeC,KAAKN,EAAaE,KACpDzB,EAAOyB,GAAYF,EAAYE,IAInC,OAAOzB,EDXA8B,CAAO,GAAIP,G,aEIhBQ,EAAyB,IACzBC,EAAiB,KACjBC,EAAmBD,MACnBE,EAAkBF,OAwJP,SAASG,EAAqBC,EAAWC,GACtD,IAAIC,EAAUtB,UAAUuB,OAAS,QAAsBvE,IAAjBgD,UAAU,GAAmBA,UAAU,GAAK,GAClFD,YAAa,EAAGC,WAChB,IAAIwB,EAASF,EAAQE,QAAUC,IAE/B,IAAKD,EAAOE,eACV,MAAM,IAAIC,WAAW,wDAGvB,IAAIC,EAAahC,EAAWwB,EAAWC,GAEvC,GAAIQ,MAAMD,GACR,MAAM,IAAID,WAAW,sBAGvB,IAGI1B,EACAE,EAJA2B,EAAkBxB,EAAYgB,GAClCQ,EAAgBC,UAAYC,QAAQV,EAAQS,WAC5CD,EAAgBF,WAAaA,EAIzBA,EAAa,GACf3B,EAAWC,YAAOmB,GAClBlB,EAAYD,YAAOkB,KAEnBnB,EAAWC,YAAOkB,GAClBjB,EAAYD,YAAOmB,IAGrB,IACIY,EADAC,EAA2C,MAA1BZ,EAAQY,eAAyB,QAAU3E,OAAO+D,EAAQY,gBAG/E,GAAuB,UAAnBA,EACFD,EAAmBE,KAAKC,WACnB,GAAuB,SAAnBF,EACTD,EAAmBE,KAAKE,SACnB,IAAuB,UAAnBH,EAGT,MAAM,IAAIP,WAAW,qDAFrBM,EAAmBE,KAAKG,MAK1B,IAMIC,EANAC,EAAerC,EAAUE,UAAYJ,EAASI,UAC9CoC,EAAUD,EAAezB,EACzB2B,EAAiBC,YAAgCxC,GAAawC,YAAgC1C,GAG9F2C,GAAwBJ,EAAeE,GAAkB3B,EAsB7D,GAAa,YAjBTwB,EAFgB,MAAhBjB,EAAQiB,KACNE,EAAU,EACL,SACEA,EAAU,GACZ,SACEA,EAAUzB,EACZ,OACE4B,EAAuB3B,EACzB,MACE2B,EAAuB1B,EACzB,QAEA,OAGF3D,OAAO+D,EAAQiB,OAID,CACrB,IAAIM,EAAUZ,EAAiBO,EAAe,KAC9C,OAAOhB,EAAOE,eAAe,WAAYmB,EAASf,GAC7C,GAAa,WAATS,EAAmB,CAC5B,IAAIO,EAAiBb,EAAiBQ,GACtC,OAAOjB,EAAOE,eAAe,WAAYoB,EAAgBhB,GACpD,GAAa,SAATS,EAAiB,CAC1B,IAAIQ,EAAQd,EAAiBQ,EAAU,IACvC,OAAOjB,EAAOE,eAAe,SAAUqB,EAAOjB,GACzC,GAAa,QAATS,EAAgB,CACzB,IAAIS,EAAOf,EAAiBW,EAAuB5B,GACnD,OAAOQ,EAAOE,eAAe,QAASsB,EAAMlB,GACvC,GAAa,UAATS,EAAkB,CAC3B,IAAIU,EAAShB,EAAiBW,EAAuB3B,GACrD,OAAkB,KAAXgC,GAAkC,UAAjB3B,EAAQiB,KAAmBf,EAAOE,eAAe,SAAU,EAAGI,GAAmBN,EAAOE,eAAe,UAAWuB,EAAQnB,GAC7I,GAAa,SAATS,EAAiB,CAC1B,IAAIW,EAAQjB,EAAiBW,EAAuB1B,GACpD,OAAOM,EAAOE,eAAe,SAAUwB,EAAOpB,GAGhD,MAAM,IAAIH,WAAW,qEC7KR,SAASwB,EAA0B/B,EAAWgC,GAE3D,OADArD,YAAa,EAAGC,WACTmB,EAAqBC,EAAWiC,KAAKC,MAAOF,K,0TC5E9C,EAGHnF,YAAgC,CAClC/B,KADkC,iBAElCqH,aACE,oHANG,mBAAM,EAAN,KAAM,EAAN,K,0OCsBP,IAAMC,EAAiBC,YACrB,KACA,OAAOC,IAAUD,EAAU,CACzBE,MAAO,CACLC,WAAY,WAEdC,KAAM,CACJC,cAAe,CACbF,WAAY,cAyBdG,EAAUC,YAAOC,IAAvB,SAKaC,EAAoB,gBAC/B,cACE,IAAQC,EAAWC,IAAXD,OACR,OACE,uBACE3H,IADF,EAEEiH,SAAUD,EAAczH,EAAD,WAFzB,GAIEsI,SAJF,EAKEC,QAASH,EAAS,QAAU,aAMpCD,eAAiC,CAC/BT,SAxCgC,CAChCI,KAAM,CACJU,QADI,EAEJC,MAFI,IAGJC,WAAY,CACVC,SADU,GAEVC,KAAM,CAAC,GAAK,EAAG,EAAG,KAGtBhB,MAAO,CACLa,MADK,EAELD,QAFK,EAGLE,WAAY,CACVC,SADU,IAEVC,KAAM,CAAC,EAAG,EAAG,GAAK,O,kDC5BjB,SAASC,EAAaC,GAE3B,QADsBA,EAAtB,QAuCF,IAAMC,EAAmB,CAAEC,MAAF,EAAYC,MAAO,GAE5C,SAASC,EAAeC,EAAxB,QAAsE,IAA/BC,MAAuB,QAC5D,IACMC,EADeF,cAAgBA,iBAArC,IACA,EAEA,MAAO,CACLG,EAAGD,EAASD,EADP,KAELG,EAAGF,EAASD,EAAJ,MAIZ,SAASI,EAAe,EAAxB,GAIE,YADA,IADAJ,MAAuB,QAEhB,CACLE,EAAGD,EAASD,EADP,KAELG,EAAGF,EAASD,EAAJ,MAIL,SAASK,EAAiB,EAA1B,GAIL,YADkB,IADlBL,MAAuB,QAEhB,CACLC,MAAOR,KACHK,EAAeJ,EADZD,GAEHW,EAAeV,EAAOM,IAQvB,IAAMM,EAA0B,SAAC,EAAD,QAGnB,IADlBC,OAA6B,GAE7B,IA1D4BC,EA0DtBC,EAA2Bf,YAAD,OAC9BgB,EAAQhB,EAAOW,EADjB,KAGA,OAAOE,GA7DqBC,EA6DK,EA5DzBd,YACN,IACMiB,EAAejB,aADTkB,YAAZ,GACA,aAEGD,GAAiBA,GADpB,IACqCjB,EAAD,SAElCc,OAsDJ,GAmBIK,EAAkC,CACtCC,YADsC,YAEtCC,YAFsC,YAGtCC,UAHsC,UAItCC,cAJsC,cAKtCC,YALsC,YAMtCC,WANsC,WAOtCC,aAPsC,aAQtCC,aAAc,cAGVC,EAAkC,CACtCR,YADsC,aAEtCC,YAFsC,YAGtCC,UAHsC,WAItCC,cAAe,eAGV,SAASM,EAAoBxK,GAClC,OAlCkCyK,KAApC,OAAiDC,qBAmC7C,EAlC8BD,KAAlC,OAA+CC,oBAqCpCH,EAAP,GApC8BE,KAAlC,OAA+CC,mBAuCpCZ,EAAP,GAGF,E,aCnIK,SAASa,EAAsB9K,GACpC,IC6C4B+K,ECzDE,EAAzB,MFYC,EAAN,EAAM,MAAN,EAAM,SAAiBC,EAAvB,EAAuBA,QAEjBC,GC2CsBF,ED3C5B,WC4CA,KAvEF,SAA6BG,GAC3B,IAAM,EAAN,EAAQC,UAAeC,EAAvB,EAAuBA,OACjBC,EAAU,aAAaC,KAA7B,GAEA,WACE,IAAK,QAAQA,KAAb,GACE,uBACF,IAAK,QAAQA,KAAb,GACE,aACF,KAAKD,GAAW,SAASC,KAAzB,GACE,aACF,IAAK,SAASA,KAAKC,IAAO,aAAaD,KAAvC,GACE,eACF,IAAK,qBAAqBA,KAA1B,GACE,gBACF,OACE,aACF,IAAK,eAAeA,KAApB,GACE,WACF,IAAK,SAASA,KAAKJ,EAAd,YAAsC,iBAAiBI,KAA5D,GACE,eACF,IAAK,cAAcA,KAAnB,GACE,eACF,QACE,aAgDGE,CAAoBX,OAApBW,aAAP,GC3D8B,EFelB,kBAAMC,YAAiBhL,EAAnC,UEfK,EFiBgB,cEjBhB,EFiBgCqI,YACnC,GAAKmC,GAAL,GACA,IAAMhI,EAAS6F,EAAf,OAGM4C,GADG,MAAGC,EAAH,EAAe,CAAxB,IACsB,MAAUC,YAC9B,IAAMC,EAAKC,eAA4BF,EAA5BE,QAAX,EACA,OAAOC,YAASF,EAAhB,OAGGG,YAAD,IAAJ,IACElD,mBACApI,kBEvBGuL,YACLtB,EADqB,GAErBjB,EAAwBI,EAFH,gBAEYoC,GAFZ,EAAvB,G,+BCHIC,EAAwC,CAC5CC,eAD4C,EAE5CC,aAAa,G,gQCAf,IAAMC,EAAU,QAAVA,EAEG,QAsGF,SAASC,GAAWvM,QAA6B,IAA7BA,MAAyB,IAClD,YACEwM,mBADF,aAEEC,kBAFF,SAAM,EAAN,EAAM,kBAAN,EAAM,GAAN,IAKEC,0BALF,aAMEC,iBANF,SAAM,EAAN,EAAM,YAAN,EAAM,iBAAN,IASEC,eATF,MASYN,EATZ,MAUEO,iBAVF,MAAM,IAAN,MAWEC,kBAXF,MAAM,IAAN,EAAM,EAAN,EAAM,OAAN,IAaEC,oBAbF,MAAM,UAAN,EAcEC,EAdF,EAcEA,uBAdF,E,oIAAA,4MAkBA,EAA8CC,YAA9C,GAAM,EAAN,EAAM,SAAN,EAAM,UAAN,EAAM,OAA2BC,EAAjC,EAAiCA,SAE3BC,EAAaC,iBAAnB,MACMC,GAAaD,iBAAnB,MAEME,GAAgBF,kBAAtB,GAEMG,GAAgBH,kBAAtB,GACA,IACEG,eAGF,OAAkCC,oBAAlC,wBAAM,GAAN,MAAM,GAAN,MACA,GAA8BA,oBAA9B,wBAAM,GAAN,MAAM,GAAN,MAEA,GAAiDC,YAAO,EAAD,qDAAvD,qCAAM,GAAN,MAAM,GAAN,MAAM,GAAN,MAAM,GAAN,MAQA,GAMIC,YAAU,EAAD,MAEX1C,QAAS5C,KAAY4E,KARjB,GAAN,GAAM,gBAAN,GAAM,iBAAN,GAAM,kBAAN,GAAM,mBAKJW,GALF,GAKEA,YAMF7C,EAAsB,CACpBE,QADoB,EAEpBvK,IAAK0M,IAGPS,YAAeP,GAAY,CACzBQ,SADyB,EAEzBC,QAFyB,EAGzBzB,YAAaK,GAAsBE,IAAYN,IDlK5C,mBAGL,IADA/G,MAAU4G,GAEV,QAAM,EAAN,EAAM,WAAN,EAAM,gBAAN,EAAM,YAAwC2B,EAA9C,EAA8CA,QACxCC,EAAUjC,eAAsB7I,EAAtB6I,QAAhB,EAEMa,EAAYN,GAAlB,EAEM2B,EAAUC,uBAAY,WAC1B,GAAKF,GAAL,IAEIhC,YAASgC,EAASG,SAAtB,eAEA,SAAIL,KAAJ,QACEnN,YAAMmN,EAAD,QAAmB,CAAEzB,gBAAe+B,UAAU,QAC9C,CACL,IAAMC,EAAcC,YAApB,GACID,SAAJ,GACE1N,YAAM0N,EAAD,GAAiB,CAAEhC,gBAAe+B,UAAU,OAGpD,CAACxB,EAAWP,EAAe2B,EAb9B,IAeAO,aAAgB,WACdN,MACC,CAFHM,IAIArC,YAAiB,gBAAiB+B,EAAlC/B,GCyIAsC,CAAelB,GAAY,CACzBQ,SADyB,EAEzBC,QAFyB,EAGzBzB,YAAaM,GAAaC,IAAYN,IAGxC,IAAMkC,GAAuBC,YAAsB,CACjDC,gBAAiBnB,GADgC,QAEjDoB,SACA5B,eACA6B,WAAYxG,IAGRyG,GAA8BZ,uBAClC,cAA6B,eAA5BjO,MAAQ,SAAoB,IAAhB8O,MAAO,MAClB,IAAMC,EAA0B,EAAH,MAE3BC,MAAO,EAAF,GACAhP,EADA,UAEHiP,gBAAiBC,oBAFd,sBAGFA,cAAD,IAA+BC,EAAYC,YAAH,QAHrC,iBAIFF,qBAAD,IAAsCG,GAJnC,IAML5O,IAAKkB,YAAU0L,GARY,GAS3BiC,SAAUd,GAAuBxO,EAAH,SATH,KAU3BuP,GAV2B,GAW3BC,UAX2B,EAY3B5N,KAZ2B,SAa3B6N,UAAWC,YAAgB1P,EAAD,WAAmB8I,YACvC2D,GAAJ,WAAkB3D,OAChB6G,OAGJC,OAAQF,YAAgB1P,EAAD,QAAgB8I,YACrC,IAAM+G,EAAgBC,YAAtB,GACMC,EAAkBhE,YAASsB,GAAD,QAAhC,GACM2C,EAAkBjE,YAASoB,EAAD,QAAhC,GAGI/E,QAFiB2H,IAArB,IAGEJ,OAGJ,kBAAmBM,GAAYC,QA5BJ,EA6B3B,mBAAoBC,GAAUC,QAASnP,IAczC,OAXI2L,IAAYN,IACdyC,iBACAA,eAA4BW,YAAgB1P,EAAD,cAAqB,WAC9DsN,iBAEFyB,eAA4BW,YAAgB1P,EAAD,cAAqB,WAC9DsN,cACA+C,WAAWV,EAAXU,OAIJ,IAEF,CAAC,GAAD,6BA/CF,IAiEMC,GAAwCrC,uBAC5C,8BAACjO,MAAD,aAAa0B,MAAb,MACE6O,GAAe,EAAD,MAGVvB,MAAO,EAAF,CACHnH,WAAYO,EAAS,UAAY,UAC9BpI,EAFA,SAJX,KAWA,CAACoI,EAZH,KAeMoI,GAAcpD,mBACdqD,GAAerD,mBAEfsD,GAA8BzC,uBAClC,mBAA6B,IAA5BjO,MAAQ,SAAoB,IAAhB8O,MAAO,MAClB,IAAM6B,EAA0B,EAAH,MAE3BlQ,IAAKkB,YAAUwL,EAAY2B,EAFA,IAG3BS,GAH2B,GAI3B,gBAJ2B,SAK3B,gBAL2B,EAM3B,gBAAiBqB,KAgDnB,OA7CIhE,IAAYN,IACdqE,UAAuBjB,YAAgB1P,EAAD,QAAtC2Q,IAGE/D,IAAYN,IAOdqE,UAAuBjB,YAAgB1P,EAAD,QAAtC2Q,GACAA,SAAsBjB,YAAgB1P,EAAD,OAArC2Q,GAMAA,YAAyBjB,YAAgB1P,EAAD,WAAmB8I,YACzD,WAAIA,OACF6G,OAIJgB,eAA4BjB,YAAgB1P,EAAD,cAAqB,WAC9DsN,cACAkD,WAAsB3F,oBAAtB2F,MAGFG,eAA4BjB,YAAgB1P,EAAD,cAAqB,WAC9DsN,cAEIkD,GAAJ,UACEK,aAAaL,GAAbK,SACAL,mBAGFC,WAAuB5F,OAAA,YAAkB,YACvC,IAAIyC,YACFqC,MAFJc,OAQJ,IAEF,CAAC,GAAD,kBA1DF,IAwEAK,qBAAU,WACR,OAAO,WACDN,GAAJ,SACEK,aAAaL,GAAbK,SAEEJ,GAAJ,SACEI,aAAaJ,GAAbI,YANNC,IAWA,IAAMC,GAA6B9C,uBACjC,8BAACjO,MAAD,aAAaS,MAAb,cAEE8O,GAFF,GAGE9O,IAAKkB,YAAUlB,GAAMuQ,YACnBC,eAGJ,CARF,KAWMC,GAA2BjD,uBAC/B,8BAACjO,MAAD,aAAaS,MAAb,cAEE8O,GAFF,GAGE9O,IAAKkB,YAAUlB,GAAMuQ,YACnBG,eAGJ,CARF,KAWA,MAAO,CACLxD,eACAvF,SACAuH,UACAyB,iBACAC,sBACAf,6BACAzB,mBACA6B,mBACAK,kBACAG,iB,0VCzWG,IAAMI,GAAmCtR,YAC9C,IAAMuR,EAASC,YAAoB,UAAnC,GAEA,EAA8BC,YAA9B,GAAQnC,EAAR,EAAQA,SAEFoC,EAAUnF,GAAW,GAAD,GAF1B,mBAE0B,CAAYoF,UADxBC,cACyCD,aAEvD,OACE,mBAAiBzR,MAAOwR,GACtB,qBAAgBxR,MAAOqR,GACpBM,YAAQvC,EAAU,CACjBlH,OAAQsJ,EADS,OAEjB/B,QAAS+B,EAFQ,QAGjB/D,YAAa+D,EAAQ/D,iBAO3B,EAAJ,IACE2D,0BAOK,IAAMQ,GAA4B9R,YAEvC,IAAM+R,EAAa1R,gBAAoBL,EAAvC,UACQ0Q,EAAoBrI,IAApBqI,gBACR,OAAOrQ,iBAA0BqQ,EAAgBqB,EAAD,MAAcA,EAA9D,OAGE,EAAJ,IACED,iCAOK,IAAME,GAAiB3P,aAC5B,cACQ,IAAE4P,EAAR,EAAQA,UAAR,sBAEA,EAAuD5J,IAAjD,EAAN,EAAM,gBAAmBiI,EAAzB,EAAyBA,0BAEnBiB,EAASW,cACTC,EAAmC,GAAH,CACpChP,SADoC,WAEpCG,QAFoC,OAGpC8O,cAAe,UACZb,EAJL,SAOA,OACE,gBAAC,IAAD,UACMjB,EADN,IAEEpN,MAAOqO,EAFT,OAGE1O,UAAU,2BAEV,wBACMgM,EAAgBwD,EADtB,IAEExP,UAAWD,YAAG,0BAA2B5C,EAF3C,WAGEkD,MAAOiP,SAOb,EAAJ,IACEH,iCASK,IAAMM,GAAgBjQ,aAC3B,cACE,IAAQ0O,EAAmB1I,IAAnB0I,eAEFQ,EAASW,cAEf,OACE,gBAAC,IAAD,aACMnB,EAAe/Q,EADrB,IAEE6C,UAAWD,YAAG,yBAA0B5C,EAF1C,WAGEkD,MAAOqO,EAAOgB,aAMlB,EAAJ,IACED,gCASK,IAAME,GAAcnQ,aAAoC,cAC7D,IAAQ6O,EAAiB7I,IAAjB6I,aAEFK,EAASW,cAEf,OACE,gBAAC,IAAD,UACMhB,EAAalR,EADnB,IAEE6C,UAAWD,YAAG,uBAAwB5C,EAFxC,WAGEkD,MAAOqO,EAAOkB,WAKhB,EAAJ,IACED,8BAeE,EAAJ,EAsBI,EAAJ,EAMO,IAAME,GAA6C1S,YAAU,MAC5D,EAAN,EAAM,KAAN,EAAM,QAAe2S,EAArB,EAAqBA,gBACrB,EAA8CtK,IAAxC,EAAN,EAAM,cAAiBgJ,EAAvB,EAAuBA,mBACjBE,EAASW,cACTU,EAAO,eAAGC,EAAH,OAAb,EACA,OACE,gBAAC,IAAD,UACMzB,IADN,CAEEvO,UAAU,qCAEV,gBAAC,IAAD,QACEA,UAAWD,YAAG,wBAAyB5C,EAA1B,YACTqR,EAFN,IAGEnO,MAAK,MACAqO,EADA,OAEH,oBAAqBqB,EAAO,wBAExB3R,SAOV,EAAJ,IACEyR,gC,2aCtJK,SAASI,EAAS9S,QAA2B,IAA3BA,MAAuB,IAC9C,QAAM,EAAN,EAAM,iBAAN,IAEE+S,sBAFF,MAAM,EAAN,EAAM,EAAN,EAGEC,UAHI,EAAN,EAAM,cAAN,EAKEjR,WALI,EAAN,EAMEkR,WANI,EAAN,EAOEC,WAPI,EAAN,EAAM,WAAN,EASEC,UATI,EAAN,EAAM,OAAN,EAAM,QAAN,EAYE5D,GACmB6D,EAbrB,EAaE,mBAbF,E,oIAAA,wKAiBMC,EAAOrS,iBAAMC,EAAnB,SAEMqS,EAAcC,cACdjR,EAAQkR,cAKVjE,IAFJ,OAD2B,KAA3B,GAGsD+D,EAA7CG,GAAT,EACAlE,EAAE,MAAGmE,EAAH,EAAFnE,EAEA,IAAMxN,EAAU,MAAG4R,EAAH,QAAqBL,OAArB,EAAqBA,EAArC,WACML,EAAU,MAAGW,EAAH,QAAqBN,OAArB,EAAqBA,EAArC,WACMJ,EAAU,MAAGW,EAAH,QAAqBP,OAArB,EAAqBA,EAArC,WACMH,EAAS,MAAGW,EAAH,QAAoBR,OAApB,EAAoBA,EAAnC,UAEA,EAAgCS,cAAhC,mBAAM,EAAN,KAAM,EAAN,KACA,EAAiCA,cAAjC,mBAAM,EAAN,KAAM,EAAN,KACA,EAA8BA,cAA9B,mBAAM,EAAN,KAAM,EAAN,KAEMtT,EAAM2M,iBAAZ,MAEA,EAAqCI,mBAASvH,QAA9C,uBAAM,EAAN,KAAM,GAAN,KAEA,GAAkC1F,YAAoB,EAAtD,wBAAM,GAAN,MAAM,GAAN,MAKAyT,YAAK,CACHC,YADG,EAEHC,QACE,0LAIJ,IAAMC,GAAelG,uBAClBnF,YACKmK,GAAJ,EACEnK,oBAIF,IACEsL,GAAWtL,SAAXsL,SAGFnU,iBAEF,CAACoU,GAActS,EAAYkR,EAb7B,IAgBMxD,GAAYxB,uBACfnF,YACC,MAAIA,OACFwL,SAGJ,CANF,IASMC,GAAUtG,uBACbnF,YACC,MAAIA,OACFwL,UAGJ,CANF,IASME,GAA+BvG,uBACnC,8BAACjO,MAAD,aAAaS,MAAb,cAEEA,MACA,cAAegU,YAHjB,GAIE,aAAcA,YAJhB,GAKE,gBAAiBA,YALnB,GAME,eAAgBA,YANlB,GAOE,eAAgBA,YAPlB,IAQE,aAAcA,YARhB,GASE,gBAAiBA,YATnB,GAUE,eAVF,EAWEC,YAAahF,YAAgB1P,EAAD,YAAoBsU,EAXlD,IAYEK,UAAWjF,YAAgB1P,EAAD,UAAkBsU,EAZ9C,KAaEM,aAAclF,YAAgB1P,EAAD,aAAqB6U,EAbpD,IAcEC,aAAcpF,YAAgB1P,EAAD,aAAqB6U,EAArB,SAE/B,CAAC,EAAD,aAQEP,EARF,GASEA,EATF,IAUEO,EAVF,GAWEA,EA5BJ,MAgCA,GAAM,MAAsBvB,EAAtB,EAAN,GAAM,GAAN,GAAM,QAAW1D,GAAjB,GAAiBA,OAEXmF,GAA8C9G,uBAClD,mBAAqC,IAApCjO,MAAQ,SAA4B,IAAxB0B,MAAe,MAC1B,IAAMsT,EAAgBjT,IAAtB,EAEA,eAEEwN,KACA9O,IAAKkB,YAAUD,EAHjB,GAIEuT,KAJF,QAKE9U,OACAD,QACAD,SAAUyP,YAAgB1P,EAAD,SAP3B,IAQE4P,OAAQF,YAAgBE,GAAQ5P,EAAT,OAAuBkV,EARhD,KASElH,QAAS0B,YAAgB1B,GAAShO,EAAV,QAAyBkV,EATnD,IAUEzF,UAAWC,YAAgB1P,EAAD,UAV5B,IAWEuU,QAAS7E,YAAgB1P,EAAD,QAX1B,IAYEmV,QAZF,GAaEC,SAbF,EAcEC,SAdF,EAeEC,SAfF,EAgBE,eAAgBC,YAhBlB,GAiBE,gBAAiBA,YAjBnB,GAkBE,gBAAiBA,YAlBnB,GAmBE,gBAAiBA,YAnBnB,GAoBEvG,MAAOwG,QAGX,CAAC,EAAD,gCA3BF,IAgEA,MAAO,CACLC,MAAO,CACLtC,YACAuC,YACA1C,aACA2C,WACAC,YACA7T,aACAkR,aACAC,cAEFsB,oBACAO,iBACAc,cA/BgC,SAAC7V,EAAD,mBAACA,MAAD,aAAaS,MAAb,cAEhCA,MACAiU,YAAahF,YAAgB1P,EAAD,YAHI,GAIhC8V,aAAcpG,YAAgB1P,EAAD,aAJG,GAKhC,gBAAiByU,YALe,GAMhC,eAAgBA,YANgB,IAOhC,eAAgBA,YAAStB,MAyBzB1R,aAtB+B,SAACsU,EAAMtV,GAAP,gBAAOA,MAAP,cAE/BA,MACA,gBAAiBgU,YAHc,GAI/B,eAAgBA,YAJe,IAK/B,eAAgBA,YAAStB,MAkBzBlR,aAOJ,SAAS+T,EAAKlN,GACZA,mBACAA,oB,gNCrPK,IAAMmN,EAAQ5T,aAAgC,cAAgB,MAC7DC,EAAQkR,cACR,EAAN,EAAQvT,SAA+BO,EAAvC,EAAgCN,MAE1BqR,EAASC,YAAoB,QAAS,EAAV,KAAlC,IAEM0E,EAAWzE,YAAjB,GAEA,IACE0E,eADF,MAAM,SAAN,EAAM,EAAN,EAAM,WAAN,EAAM,YAAN,IAIEpU,kBAJF,MAIY,MAAGO,OAAH,EAAGA,EAJT,WAAN,MAKEN,mBALF,MAKa,MAAGM,OAAH,EAAGA,EAAON,YALvB,I,oIAAA,oEASIgR,EAAYhT,EAAhB,UACI,aAAAsC,OAAA,EAAAA,EAAA,QAAJ,MAA4B9B,IAC1BwS,EAAY1Q,UAAZ0Q,GAGF,IAAI/S,EAAJ,EACIqC,qBAAJ,MAAuB9B,IACrBP,EAAWmW,YAAQ9T,EAAD,SAAlBrC,IAGF,IAEA,EAMI6S,EAAS,EAAD,MAEVE,YACAhR,cACAD,aACA9B,WACAE,KAdQ,eAAGH,OAAH,EAAGA,EAAH,cAAkBsC,OAAlB,EAAkBA,EAA5B,QAEM,EAAN,EAAM,gBAAN,EAAM,mBAAN,EAAM,gBAAN,EAAM,aAKJL,EALF,EAKEA,UAUF,EAAkCoU,YAAMpU,EAAxC,sCAAM,EAAN,KAEMqU,EAAgB9B,EAFtB,MAGM+B,EAAaxB,EAAc,GAAjC,GACMyB,EAAaX,IACb5D,EAAYtN,gBAA2BlD,KAEvCgV,EAAa,EAAH,CACd/S,MAAOgT,EAAc,YADP,EAEdpT,QAFc,cAGdqT,WAHc,SAIdC,cAAe,OACZrF,EALL,WAQMsF,EAAiB,EAAH,CAClBvT,QADkB,cAElBqT,WAFkB,SAGlBG,eAHkB,SAIlBC,WAAY,GACTxF,EALL,SAQMyF,EAAiC,EAAH,CAClCC,WADkC,OAElCC,YAAaf,GACV5E,EAHL,OAMA,OACE,gBAAC,IAAD,SAAc1O,UAAU,gBAAxB,GAAsDK,MAAOuT,IAC3D,2BAAO5T,UAAU,uBADnB,IAEE,gBAAC,IAAD,QACEA,UAAU,yBADZ,GAGEK,MAAO2T,KAERvH,GACC,gBAAC,IAAD,QACEzM,UAAU,uBADZ,GAGEK,MAAO8T,IAZf,OAqBE,EAAJ,IACEf","file":"static/js/10.30ecd71a.chunk.js","sourcesContent":["export * from \"@chakra-ui/color-mode\"\nexport * from \"@chakra-ui/styled-system\"\nexport { keyframes } from \"@emotion/react\"\nexport type { Interpolation } from \"@emotion/react\"\nexport * from \"./hooks\"\nexport * from \"./system.types\"\nexport * from \"./providers\"\nexport { omitThemingProps } from \"./system.utils\"\nexport * from \"./system\"\nexport * from \"./forward-ref\"\nexport * from \"./use-style-config\"\nexport { shouldForwardProp } from \"./should-forward-prop\"\n","import { useControllableProp, useId } from \"@chakra-ui/hooks\"\nimport { StringOrNumber, isInputEvent } from \"@chakra-ui/utils\"\nimport * as React from \"react\"\nimport { mergeRefs, PropGetter } from \"@chakra-ui/react-utils\"\n\ntype EventOrValue = React.ChangeEvent<HTMLInputElement> | StringOrNumber\n\nexport interface UseRadioGroupProps {\n /**\n * The value of the radio to be `checked`\n * (in controlled mode)\n */\n value?: StringOrNumber\n /**\n * The value of the radio to be `checked`\n * initially (in uncontrolled mode)\n */\n defaultValue?: StringOrNumber\n /**\n * Function called once a radio is checked\n * @param nextValue the value of the checked radio\n */\n onChange?(nextValue: string): void\n /**\n * If `true`, all wrapped radio inputs will be disabled\n */\n isDisabled?: boolean\n\n /**\n * If `true` and `isDisabled` is true, all wrapped radio inputs will remain\n * focusable but not interactive.\n */\n isFocusable?: boolean\n /**\n * The `name` attribute forwarded to each `radio` element\n */\n name?: string\n /**\n * If `true`, input elements will receive\n * `checked` attribute instead of `isChecked`.\n *\n * This assumes, you're using native radio inputs\n */\n isNative?: boolean\n}\n\ntype RadioPropGetter = PropGetter<\n HTMLInputElement,\n { onChange?: (e: EventOrValue) => void; value?: StringOrNumber } & Omit<\n React.InputHTMLAttributes<HTMLInputElement>,\n \"onChange\" | \"size\" | \"value\"\n >\n>\n\n/**\n * React hook to manage a group of radio inputs\n */\nexport function useRadioGroup(props: UseRadioGroupProps = {}) {\n const {\n onChange: onChangeProp,\n value: valueProp,\n defaultValue,\n name: nameProp,\n isDisabled,\n isFocusable,\n isNative,\n ...htmlProps\n } = props\n\n const [valueState, setValue] = React.useState<StringOrNumber>(\n defaultValue || \"\",\n )\n const [isControlled, value] = useControllableProp(valueProp, valueState)\n\n const ref = React.useRef<any>(null)\n\n const focus = React.useCallback(() => {\n const rootNode = ref.current\n if (!rootNode) return\n\n let query = `input:not(:disabled):checked`\n\n const firstEnabledAndCheckedInput = rootNode.querySelector(\n query,\n ) as HTMLElement\n\n if (firstEnabledAndCheckedInput) {\n firstEnabledAndCheckedInput.focus()\n return\n }\n\n query = `input:not(:disabled)`\n\n const firstEnabledInput = rootNode.querySelector(query) as HTMLElement\n firstEnabledInput?.focus()\n }, [])\n\n /**\n * All radio options must use the same name\n */\n const fallbackName = useId(undefined, `radio`)\n const name = nameProp || fallbackName\n\n const onChange = React.useCallback(\n (eventOrValue: EventOrValue) => {\n const nextValue = isInputEvent(eventOrValue)\n ? eventOrValue.target.value\n : eventOrValue\n\n if (!isControlled) {\n setValue(nextValue)\n }\n\n onChangeProp?.(String(nextValue))\n },\n [onChangeProp, isControlled],\n )\n\n const getRootProps: PropGetter = React.useCallback(\n (props = {}, forwardedRef = null) => ({\n ...props,\n ref: mergeRefs(forwardedRef, ref),\n role: \"radiogroup\",\n }),\n [],\n )\n\n const getRadioProps: RadioPropGetter = React.useCallback(\n (props = {}, ref = null) => {\n const checkedKey = isNative ? \"checked\" : \"isChecked\"\n return {\n ...props,\n ref,\n name,\n [checkedKey]: value != null ? props.value === value : undefined,\n onChange,\n \"data-radiogroup\": true,\n }\n },\n [isNative, name, onChange, value],\n )\n\n return {\n getRootProps,\n getRadioProps,\n name,\n ref,\n focus,\n setValue,\n value,\n onChange,\n isDisabled,\n isFocusable,\n htmlProps,\n }\n}\n\nexport type UseRadioGroupReturn = ReturnType<typeof useRadioGroup>\n","import {\n chakra,\n forwardRef,\n ThemingProps,\n HTMLChakraProps,\n} from \"@chakra-ui/system\"\nimport { cx, __DEV__ } from \"@chakra-ui/utils\"\nimport { createContext } from \"@chakra-ui/react-utils\"\nimport * as React from \"react\"\nimport {\n useRadioGroup,\n UseRadioGroupProps,\n UseRadioGroupReturn,\n} from \"./use-radio-group\"\n\nexport interface RadioGroupContext\n extends Pick<\n UseRadioGroupReturn,\n \"onChange\" | \"value\" | \"name\" | \"isDisabled\" | \"isFocusable\"\n >,\n Omit<ThemingProps<\"Radio\">, \"orientation\"> {}\n\nconst [\n RadioGroupProvider,\n useRadioGroupContext,\n] = createContext<RadioGroupContext>({\n name: \"RadioGroupContext\",\n strict: false,\n})\n\nexport { useRadioGroupContext }\n\ntype Omitted =\n | \"onChange\"\n | \"value\"\n | \"defaultValue\"\n | \"defaultChecked\"\n | \"children\"\nexport interface RadioGroupProps\n extends UseRadioGroupProps,\n Omit<HTMLChakraProps<\"div\">, Omitted>,\n Omit<ThemingProps<\"Radio\">, \"orientation\"> {\n children: React.ReactNode\n}\n\n/**\n * Used for multiple radios which are bound in one group,\n * and it indicates which option is selected.\n *\n * @see Docs https://chakra-ui.com/radio\n */\nexport const RadioGroup = forwardRef<RadioGroupProps, \"div\">((props, ref) => {\n const {\n colorScheme,\n size,\n variant,\n children,\n className,\n isDisabled,\n isFocusable,\n ...rest\n } = props\n\n const { value, onChange, getRootProps, name, htmlProps } = useRadioGroup(rest)\n\n const group = React.useMemo(\n () => ({\n name,\n size,\n onChange,\n colorScheme,\n value,\n variant,\n isDisabled,\n isFocusable,\n }),\n [\n name,\n size,\n onChange,\n colorScheme,\n value,\n variant,\n isDisabled,\n isFocusable,\n ],\n )\n\n const groupProps = getRootProps(htmlProps, ref)\n const _className = cx(\"chakra-radio-group\", className)\n\n return (\n <RadioGroupProvider value={group}>\n <chakra.div {...groupProps} className={_className}>\n {children}\n </chakra.div>\n </RadioGroupProvider>\n )\n})\n\nif (__DEV__) {\n RadioGroup.displayName = \"RadioGroup\"\n}\n","import { chakra, forwardRef, HTMLChakraProps } from \"@chakra-ui/system\"\nimport { cx } from \"@chakra-ui/utils\"\nimport * as React from \"react\"\n\nexport interface LinkOverlayProps extends HTMLChakraProps<\"a\"> {\n /**\n * If `true`, the link will open in new tab\n */\n isExternal?: boolean\n}\n\nexport const LinkOverlay = forwardRef<LinkOverlayProps, \"a\">((props, ref) => {\n const { isExternal, target, rel, className, ...rest } = props\n return (\n <chakra.a\n {...rest}\n ref={ref}\n className={cx(\"chakra-linkbox__overlay\", className)}\n rel={isExternal ? \"noopener noreferrer\" : rel}\n target={isExternal ? \"_blank\" : target}\n __css={{\n position: \"static\",\n \"&::before\": {\n content: \"''\",\n cursor: \"inherit\",\n display: \"block\",\n position: \"absolute\",\n top: 0,\n left: 0,\n zIndex: 0,\n width: \"100%\",\n height: \"100%\",\n },\n }}\n />\n )\n})\n\nexport interface LinkBoxProps extends HTMLChakraProps<\"div\"> {}\n\n/**\n * `LinkBox` is used to wrap content areas within a link while ensuring semantic html\n *\n * @see Docs https://chakra-ui.com/docs/navigation/link-overlay\n * @see Resources https://www.sarasoueidan.com/blog/nested-links\n */\nexport const LinkBox = forwardRef<LinkBoxProps, \"div\">((props, ref) => {\n const { className, ...rest } = props\n\n return (\n <chakra.div\n ref={ref}\n position=\"relative\"\n {...rest}\n className={cx(\"chakra-linkbox\", className)}\n __css={{\n /* Elevate the links and abbreviations up */\n \"a[href]:not(.chakra-linkbox__overlay), abbr[title]\": {\n position: \"relative\",\n zIndex: 1,\n },\n }}\n />\n )\n})\n","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name compareAsc\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are equal.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Number} the result of the comparison\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * const result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * const result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\n\nexport default function compareAsc(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var diff = dateLeft.getTime() - dateRight.getTime();\n\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1; // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}","import assign from \"../assign/index.js\";\nexport default function cloneObject(dirtyObject) {\n return assign({}, dirtyObject);\n}","export default function assign(target, dirtyObject) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n\n dirtyObject = dirtyObject || {};\n\n for (var property in dirtyObject) {\n if (Object.prototype.hasOwnProperty.call(dirtyObject, property)) {\n target[property] = dirtyObject[property];\n }\n }\n\n return target;\n}","import getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport compareAsc from \"../compareAsc/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport cloneObject from \"../_lib/cloneObject/index.js\";\nimport defaultLocale from \"../locale/en-US/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_MINUTE = 1000 * 60;\nvar MINUTES_IN_DAY = 60 * 24;\nvar MINUTES_IN_MONTH = MINUTES_IN_DAY * 30;\nvar MINUTES_IN_YEAR = MINUTES_IN_DAY * 365;\n/**\n * @name formatDistanceStrict\n * @category Common Helpers\n * @summary Return the distance between the given dates in words.\n *\n * @description\n * Return the distance between the given dates in words, using strict units.\n * This is like `formatDistance`, but does not use helpers like 'almost', 'over',\n * 'less than' and the like.\n *\n * | Distance between dates | Result |\n * |------------------------|---------------------|\n * | 0 ... 59 secs | [0..59] seconds |\n * | 1 ... 59 mins | [1..59] minutes |\n * | 1 ... 23 hrs | [1..23] hours |\n * | 1 ... 29 days | [1..29] days |\n * | 1 ... 11 months | [1..11] months |\n * | 1 ... N years | [1..N] years |\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `distanceInWordsStrict` to `formatDistanceStrict`\n * to make its name consistent with `format` and `formatRelative`.\n *\n * - The order of arguments is swapped to make the function\n * consistent with `differenceIn...` functions.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWordsStrict(\n * new Date(2015, 0, 2),\n * new Date(2014, 6, 2)\n * ) //=> '6 months'\n *\n * // v2.0.0 onward\n *\n * formatDistanceStrict(\n * new Date(2014, 6, 2),\n * new Date(2015, 0, 2)\n * ) //=> '6 months'\n * ```\n *\n * - `partialMethod` option is renamed to `roundingMethod`.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWordsStrict(\n * new Date(1986, 3, 4, 10, 32, 0),\n * new Date(1986, 3, 4, 10, 33, 1),\n * { partialMethod: 'ceil' }\n * ) //=> '2 minutes'\n *\n * // v2.0.0 onward\n *\n * formatDistanceStrict(\n * new Date(1986, 3, 4, 10, 33, 1),\n * new Date(1986, 3, 4, 10, 32, 0),\n * { roundingMethod: 'ceil' }\n * ) //=> '2 minutes'\n * ```\n *\n * - If `roundingMethod` is not specified, it now defaults to `round` instead of `floor`.\n *\n * - `unit` option now accepts one of the strings:\n * 'second', 'minute', 'hour', 'day', 'month' or 'year' instead of 's', 'm', 'h', 'd', 'M' or 'Y'\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWordsStrict(\n * new Date(1986, 3, 4, 10, 32, 0),\n * new Date(1986, 3, 4, 10, 33, 1),\n * { unit: 'm' }\n * )\n *\n * // v2.0.0 onward\n *\n * formatDistanceStrict(\n * new Date(1986, 3, 4, 10, 33, 1),\n * new Date(1986, 3, 4, 10, 32, 0),\n * { unit: 'minute' }\n * )\n * ```\n *\n * @param {Date|Number} date - the date\n * @param {Date|Number} baseDate - the date to compare with\n * @param {Object} [options] - an object with options.\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {'second'|'minute'|'hour'|'day'|'month'|'year'} [options.unit] - if specified, will force a unit\n * @param {'floor'|'ceil'|'round'} [options.roundingMethod='round'] - which way to round partial units\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `baseDate` must not be Invalid Date\n * @throws {RangeError} `options.roundingMethod` must be 'floor', 'ceil' or 'round'\n * @throws {RangeError} `options.unit` must be 'second', 'minute', 'hour', 'day', 'month' or 'year'\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // What is the distance between 2 July 2014 and 1 January 2015?\n * const result = formatDistanceStrict(new Date(2014, 6, 2), new Date(2015, 0, 2))\n * //=> '6 months'\n *\n * @example\n * // What is the distance between 1 January 2015 00:00:15\n * // and 1 January 2015 00:00:00?\n * const result = formatDistanceStrict(\n * new Date(2015, 0, 1, 0, 0, 15),\n * new Date(2015, 0, 1, 0, 0, 0)\n * )\n * //=> '15 seconds'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, with a suffix?\n * const result = formatDistanceStrict(new Date(2015, 0, 1), new Date(2016, 0, 1), {\n * addSuffix: true\n * })\n * //=> '1 year ago'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, in minutes?\n * const result = formatDistanceStrict(new Date(2016, 0, 1), new Date(2015, 0, 1), {\n * unit: 'minute'\n * })\n * //=> '525600 minutes'\n *\n * @example\n * // What is the distance from 1 January 2015\n * // to 28 January 2015, in months, rounded up?\n * const result = formatDistanceStrict(new Date(2015, 0, 28), new Date(2015, 0, 1), {\n * unit: 'month',\n * roundingMethod: 'ceil'\n * })\n * //=> '1 month'\n *\n * @example\n * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = formatDistanceStrict(new Date(2016, 7, 1), new Date(2015, 0, 1), {\n * locale: eoLocale\n * })\n * //=> '1 jaro'\n */\n\nexport default function formatDistanceStrict(dirtyDate, dirtyBaseDate) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n requiredArgs(2, arguments);\n var locale = options.locale || defaultLocale;\n\n if (!locale.formatDistance) {\n throw new RangeError('locale must contain localize.formatDistance property');\n }\n\n var comparison = compareAsc(dirtyDate, dirtyBaseDate);\n\n if (isNaN(comparison)) {\n throw new RangeError('Invalid time value');\n }\n\n var localizeOptions = cloneObject(options);\n localizeOptions.addSuffix = Boolean(options.addSuffix);\n localizeOptions.comparison = comparison;\n var dateLeft;\n var dateRight;\n\n if (comparison > 0) {\n dateLeft = toDate(dirtyBaseDate);\n dateRight = toDate(dirtyDate);\n } else {\n dateLeft = toDate(dirtyDate);\n dateRight = toDate(dirtyBaseDate);\n }\n\n var roundingMethod = options.roundingMethod == null ? 'round' : String(options.roundingMethod);\n var roundingMethodFn;\n\n if (roundingMethod === 'floor') {\n roundingMethodFn = Math.floor;\n } else if (roundingMethod === 'ceil') {\n roundingMethodFn = Math.ceil;\n } else if (roundingMethod === 'round') {\n roundingMethodFn = Math.round;\n } else {\n throw new RangeError(\"roundingMethod must be 'floor', 'ceil' or 'round'\");\n }\n\n var milliseconds = dateRight.getTime() - dateLeft.getTime();\n var minutes = milliseconds / MILLISECONDS_IN_MINUTE;\n var timezoneOffset = getTimezoneOffsetInMilliseconds(dateRight) - getTimezoneOffsetInMilliseconds(dateLeft); // Use DST-normalized difference in minutes for years, months and days;\n // use regular difference in minutes for hours, minutes and seconds.\n\n var dstNormalizedMinutes = (milliseconds - timezoneOffset) / MILLISECONDS_IN_MINUTE;\n var unit;\n\n if (options.unit == null) {\n if (minutes < 1) {\n unit = 'second';\n } else if (minutes < 60) {\n unit = 'minute';\n } else if (minutes < MINUTES_IN_DAY) {\n unit = 'hour';\n } else if (dstNormalizedMinutes < MINUTES_IN_MONTH) {\n unit = 'day';\n } else if (dstNormalizedMinutes < MINUTES_IN_YEAR) {\n unit = 'month';\n } else {\n unit = 'year';\n }\n } else {\n unit = String(options.unit);\n } // 0 up to 60 seconds\n\n\n if (unit === 'second') {\n var seconds = roundingMethodFn(milliseconds / 1000);\n return locale.formatDistance('xSeconds', seconds, localizeOptions); // 1 up to 60 mins\n } else if (unit === 'minute') {\n var roundedMinutes = roundingMethodFn(minutes);\n return locale.formatDistance('xMinutes', roundedMinutes, localizeOptions); // 1 up to 24 hours\n } else if (unit === 'hour') {\n var hours = roundingMethodFn(minutes / 60);\n return locale.formatDistance('xHours', hours, localizeOptions); // 1 up to 30 days\n } else if (unit === 'day') {\n var days = roundingMethodFn(dstNormalizedMinutes / MINUTES_IN_DAY);\n return locale.formatDistance('xDays', days, localizeOptions); // 1 up to 12 months\n } else if (unit === 'month') {\n var months = roundingMethodFn(dstNormalizedMinutes / MINUTES_IN_MONTH);\n return months === 12 && options.unit !== 'month' ? locale.formatDistance('xYears', 1, localizeOptions) : locale.formatDistance('xMonths', months, localizeOptions); // 1 year up to max Date\n } else if (unit === 'year') {\n var years = roundingMethodFn(dstNormalizedMinutes / MINUTES_IN_YEAR);\n return locale.formatDistance('xYears', years, localizeOptions);\n }\n\n throw new RangeError(\"unit must be 'second', 'minute', 'hour', 'day', 'month' or 'year'\");\n}","import formatDistanceStrict from \"../formatDistanceStrict/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name formatDistanceToNowStrict\n * @category Common Helpers\n * @summary Return the distance between the given date and now in words.\n * @pure false\n *\n * @description\n * Return the distance between the given dates in words, using strict units.\n * This is like `formatDistance`, but does not use helpers like 'almost', 'over',\n * 'less than' and the like.\n *\n * | Distance between dates | Result |\n * |------------------------|---------------------|\n * | 0 ... 59 secs | [0..59] seconds |\n * | 1 ... 59 mins | [1..59] minutes |\n * | 1 ... 23 hrs | [1..23] hours |\n * | 1 ... 29 days | [1..29] days |\n * | 1 ... 11 months | [1..11] months |\n * | 1 ... N years | [1..N] years |\n *\n * @param {Date|Number} date - the given date\n * @param {Object} [options] - an object with options.\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {'second'|'minute'|'hour'|'day'|'month'|'year'} [options.unit] - if specified, will force a unit\n * @param {'floor'|'ceil'|'round'} [options.roundingMethod='round'] - which way to round partial units\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // If today is 1 January 2015, what is the distance to 2 July 2014?\n * var result = formatDistanceToNowStrict(\n * new Date(2014, 6, 2)\n * )\n * //=> '6 months'\n *\n * @example\n * // If now is 1 January 2015 00:00:00,\n * // what is the distance to 1 January 2015 00:00:15, including seconds?\n * var result = formatDistanceToNowStrict(\n * new Date(2015, 0, 1, 0, 0, 15)\n * )\n * //=> '20 seconds'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 January 2016, with a suffix?\n * var result = formatDistanceToNowStrict(\n * new Date(2016, 0, 1),\n * {addSuffix: true}\n * )\n * //=> 'in 1 year'\n *\n * @example\n * // If today is 28 January 2015,\n * // what is the distance to 1 January 2015, in months, rounded up??\n * var result = formatDistanceToNowStrict(new Date(2015, 0, 1), {\n * unit: 'month',\n * roundingMethod: 'ceil'\n * })\n * //=> '1 month'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 August 2016 in Esperanto?\n * var eoLocale = require('date-fns/locale/eo')\n * var result = formatDistanceToNowStrict(\n * new Date(2016, 7, 1),\n * {locale: eoLocale}\n * )\n * //=> '1 jaro'\n */\n\nexport default function formatDistanceToNowStrict(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n return formatDistanceStrict(dirtyDate, Date.now(), dirtyOptions);\n}","import { createContext } from \"@chakra-ui/react-utils\"\nimport { UsePopoverReturn } from \"./use-popover\"\n\nexport const [\n PopoverProvider,\n usePopoverContext,\n] = createContext<UsePopoverReturn>({\n name: \"PopoverContext\",\n errorMessage:\n \"usePopoverContext: `context` is undefined. Seems you forgot to wrap all popover components within `<Popover />`\",\n})\n","import { chakra, HTMLChakraProps } from \"@chakra-ui/system\"\nimport { HTMLMotionProps, motion, Variant } from \"framer-motion\"\nimport { mergeWith } from \"@chakra-ui/utils\"\nimport React from \"react\"\nimport { usePopoverContext } from \"./popover-context\"\n\n// TODO: consider moving this to some util\ntype HTMLMotionChakraProps<T extends keyof React.ReactHTML> = Omit<\n HTMLChakraProps<T>,\n keyof HTMLMotionProps<T>\n> &\n Omit<\n HTMLMotionProps<T>,\n | \"style\"\n | \"onDrag\"\n | \"onDragEnd\"\n | \"onDragStart\"\n | \"onAnimationStart\"\n | \"variants\"\n > & {\n variants?: MotionVariants\n }\n\ntype MotionVariants = Partial<Record<\"enter\" | \"exit\", Variant>>\n\nconst mergeVariants = (variants?: MotionVariants) => {\n if (!variants) return\n return mergeWith(variants, {\n enter: {\n visibility: \"visible\",\n },\n exit: {\n transitionEnd: {\n visibility: \"hidden\",\n },\n },\n })\n}\n\nconst scaleFade: MotionVariants = {\n exit: {\n opacity: 0,\n scale: 0.95,\n transition: {\n duration: 0.1,\n ease: [0.4, 0, 1, 1],\n },\n },\n enter: {\n scale: 1,\n opacity: 1,\n transition: {\n duration: 0.15,\n ease: [0, 0, 0.2, 1],\n },\n },\n}\n\nconst Section = motion(chakra.section)\n\nexport interface PopoverTransitionProps\n extends HTMLMotionChakraProps<\"section\"> {}\n\nexport const PopoverTransition = React.forwardRef(\n (props: HTMLMotionChakraProps<\"section\">, ref: React.Ref<any>) => {\n const { isOpen } = usePopoverContext()\n return (\n <Section\n ref={ref}\n variants={mergeVariants(props.variants)}\n {...props}\n initial={false}\n animate={isOpen ? \"enter\" : \"exit\"}\n />\n )\n },\n)\n\nPopoverTransition.defaultProps = {\n variants: scaleFade,\n}\n","/**\n * Credit goes to `framer-motion` of this useful utilities.\n * License can be found here: https://github.com/framer/motion\n */\n\nimport { addDomEvent, getEventWindow, isBrowser } from \"./dom\"\n\nexport type AnyPointerEvent = MouseEvent | TouchEvent | PointerEvent\n\ntype PointType = \"page\" | \"client\"\n\nexport function isMouseEvent(event: AnyPointerEvent): event is MouseEvent {\n const win = getEventWindow(event)\n\n // PointerEvent inherits from MouseEvent so we can't use a straight instanceof check.\n if (\n typeof win.PointerEvent !== \"undefined\" &&\n event instanceof win.PointerEvent\n ) {\n return !!(event.pointerType === \"mouse\")\n }\n\n return event instanceof win.MouseEvent\n}\n\nexport function isTouchEvent(event: AnyPointerEvent): event is TouchEvent {\n const hasTouches = !!(event as TouchEvent).touches\n return hasTouches\n}\n\nexport interface Point {\n x: number\n y: number\n}\n\nexport interface PointerEventInfo {\n point: Point\n}\n\nexport type EventHandler = (\n event: AnyPointerEvent,\n info: PointerEventInfo,\n) => void\n\n/**\n * Filters out events not attached to the primary pointer (currently left mouse button)\n * @param eventHandler\n */\nfunction filterPrimaryPointer(eventHandler: EventListener): EventListener {\n return (event: Event) => {\n const win = getEventWindow(event)\n const isMouseEvent = event instanceof win.MouseEvent\n const isPrimaryPointer =\n !isMouseEvent || (isMouseEvent && (event as MouseEvent).button === 0)\n if (isPrimaryPointer) {\n eventHandler(event)\n }\n }\n}\n\nexport type EventListenerWithPointInfo = (\n e: AnyPointerEvent,\n info: PointerEventInfo,\n) => void\n\nconst defaultPagePoint = { pageX: 0, pageY: 0 }\n\nfunction pointFromTouch(e: TouchEvent, pointType: PointType = \"page\") {\n const primaryTouch = e.touches[0] || e.changedTouches[0]\n const point = primaryTouch || defaultPagePoint\n\n return {\n x: point[`${pointType}X`],\n y: point[`${pointType}Y`],\n }\n}\n\nfunction pointFromMouse(\n point: MouseEvent | PointerEvent,\n pointType: PointType = \"page\",\n) {\n return {\n x: point[`${pointType}X`],\n y: point[`${pointType}Y`],\n }\n}\n\nexport function extractEventInfo(\n event: AnyPointerEvent,\n pointType: PointType = \"page\",\n): PointerEventInfo {\n return {\n point: isTouchEvent(event)\n ? pointFromTouch(event, pointType)\n : pointFromMouse(event, pointType),\n }\n}\n\nexport function getViewportPointFromEvent(event: AnyPointerEvent) {\n return extractEventInfo(event, \"client\")\n}\n\nexport const wrapPointerEventHandler = (\n handler: EventListenerWithPointInfo,\n shouldFilterPrimaryPointer = false,\n): EventListener => {\n const listener: EventListener = (event: any) =>\n handler(event, extractEventInfo(event))\n\n return shouldFilterPrimaryPointer ? filterPrimaryPointer(listener) : listener\n}\n\n// We check for event support via functions in case they've been mocked by a testing suite.\nconst supportsPointerEvents = () => isBrowser && window.onpointerdown === null\nconst supportsTouchEvents = () => isBrowser && window.ontouchstart === null\nconst supportsMouseEvents = () => isBrowser && window.onmousedown === null\n\ninterface PointerNameMap {\n pointerdown: string\n pointermove: string\n pointerup: string\n pointercancel: string\n pointerover?: string\n pointerout?: string\n pointerenter?: string\n pointerleave?: string\n}\n\nconst mouseEventNames: PointerNameMap = {\n pointerdown: \"mousedown\",\n pointermove: \"mousemove\",\n pointerup: \"mouseup\",\n pointercancel: \"mousecancel\",\n pointerover: \"mouseover\",\n pointerout: \"mouseout\",\n pointerenter: \"mouseenter\",\n pointerleave: \"mouseleave\",\n}\n\nconst touchEventNames: PointerNameMap = {\n pointerdown: \"touchstart\",\n pointermove: \"touchmove\",\n pointerup: \"touchend\",\n pointercancel: \"touchcancel\",\n}\n\nexport function getPointerEventName(name: string): string {\n if (supportsPointerEvents()) {\n return name\n }\n if (supportsTouchEvents()) {\n return touchEventNames[name]\n }\n if (supportsMouseEvents()) {\n return mouseEventNames[name]\n }\n\n return name\n}\n\nexport function addPointerEvent(\n target: EventTarget,\n eventName: string,\n handler: EventListenerWithPointInfo,\n options?: AddEventListenerOptions,\n) {\n return addDomEvent(\n target,\n getPointerEventName(eventName),\n wrapPointerEventHandler(handler, eventName === \"pointerdown\"),\n options,\n )\n}\n\nexport function isMultiTouchEvent(event: AnyPointerEvent) {\n return isTouchEvent(event) && event.touches.length > 1\n}\n","import {\n contains,\n detectBrowser,\n focus,\n getOwnerDocument,\n isActiveElement,\n isRefObject,\n} from \"@chakra-ui/utils\"\nimport { RefObject } from \"react\"\nimport { usePointerEvent } from \"./use-pointer-event\"\n\nexport interface UseFocusOnMouseDownProps {\n enabled?: boolean\n ref: RefObject<HTMLElement>\n elements?: Array<RefObject<HTMLElement> | HTMLElement | null>\n}\n\n/**\n * Polyfill to get `relatedTarget` working correctly consistently\n * across all browsers.\n *\n * It ensures that elements receives focus on pointer down if\n * it's not the active active element.\n *\n * @internal\n */\nexport function useFocusOnPointerDown(props: UseFocusOnMouseDownProps) {\n const { ref, elements, enabled } = props\n\n const isSafari = detectBrowser(\"Safari\")\n const doc = () => getOwnerDocument(ref.current)\n\n usePointerEvent(doc, \"pointerdown\", (event) => {\n if (!isSafari || !enabled) return\n const target = event.target as HTMLElement\n\n const els = elements ?? [ref]\n const isValidTarget = els.some((elementOrRef) => {\n const el = isRefObject(elementOrRef) ? elementOrRef.current : elementOrRef\n return contains(el, target)\n })\n\n if (!isActiveElement(target) && isValidTarget) {\n event.preventDefault()\n focus(target)\n }\n })\n}\n","import { isBrowser } from \"./dom\"\n\nfunction getUserAgentBrowser(navigator: Navigator) {\n const { userAgent: ua, vendor } = navigator\n const android = /(android)/i.test(ua)\n\n switch (true) {\n case /CriOS/.test(ua):\n return \"Chrome for iOS\"\n case /Edg\\//.test(ua):\n return \"Edge\"\n case android && /Silk\\//.test(ua):\n return \"Silk\"\n case /Chrome/.test(ua) && /Google Inc/.test(vendor):\n return \"Chrome\"\n case /Firefox\\/\\d+\\.\\d+$/.test(ua):\n return \"Firefox\"\n case android:\n return \"AOSP\"\n case /MSIE|Trident/.test(ua):\n return \"IE\"\n case /Safari/.test(navigator.userAgent) && /Apple Computer/.test(ua):\n return \"Safari\"\n case /AppleWebKit/.test(ua):\n return \"WebKit\"\n default:\n return null\n }\n}\n\nexport type UserAgentBrowser = NonNullable<\n ReturnType<typeof getUserAgentBrowser>\n>\n\nfunction getUserAgentOS(navigator: Navigator) {\n const { userAgent: ua, platform } = navigator\n switch (true) {\n case /Android/.test(ua):\n return \"Android\"\n case /iPhone|iPad|iPod/.test(platform):\n return \"iOS\"\n case /Win/.test(platform):\n return \"Windows\"\n case /Mac/.test(platform):\n return \"Mac\"\n case /CrOS/.test(ua):\n return \"Chrome OS\"\n case /Firefox/.test(ua):\n return \"Firefox OS\"\n default:\n return null\n }\n}\n\nexport type UserAgentOS = NonNullable<ReturnType<typeof getUserAgentOS>>\n\nexport function detectDeviceType(navigator: Navigator) {\n const { userAgent: ua } = navigator\n if (/(tablet)|(iPad)|(Nexus 9)/i.test(ua)) return \"tablet\"\n if (/(mobi)/i.test(ua)) return \"phone\"\n return \"desktop\"\n}\n\nexport type UserAgentDeviceType = NonNullable<\n ReturnType<typeof detectDeviceType>\n>\n\nexport function detectOS(os: UserAgentOS) {\n if (!isBrowser) return false\n return getUserAgentOS(window.navigator) === os\n}\n\nexport function detectBrowser(browser: UserAgentBrowser) {\n if (!isBrowser) return false\n return getUserAgentBrowser(window.navigator) === browser\n}\n\nexport function detectTouch() {\n if (!isBrowser) return false\n return (\n window.ontouchstart === null &&\n window.ontouchmove === null &&\n window.ontouchend === null\n )\n}\n","/**\n * Credit goes to `framer-motion` of this useful utilities.\n * License can be found here: https://github.com/framer/motion\n */\n\nimport {\n EventListenerWithPointInfo,\n getPointerEventName,\n wrapPointerEventHandler,\n} from \"@chakra-ui/utils\"\nimport { EventListenerEnv, useEventListener } from \"./use-event-listener\"\n\n/**\n * @internal\n */\nexport function usePointerEvent(\n env: EventListenerEnv,\n eventName: string,\n handler: EventListenerWithPointInfo,\n options?: AddEventListenerOptions,\n) {\n return useEventListener(\n getPointerEventName(eventName),\n wrapPointerEventHandler(handler, eventName === \"pointerdown\"),\n env,\n options,\n )\n}\n","import {\n contains,\n focus,\n FocusableElement,\n getAllFocusable,\n isRefObject,\n} from \"@chakra-ui/utils\"\nimport React, { useCallback } from \"react\"\nimport { useEventListener } from \"./use-event-listener\"\nimport { useUpdateEffect } from \"./use-update-effect\"\n\nexport interface UseFocusOnShowOptions {\n visible?: boolean\n shouldFocus?: boolean\n preventScroll?: boolean\n focusRef?: React.RefObject<FocusableElement>\n}\n\nconst defaultOptions: UseFocusOnShowOptions = {\n preventScroll: true,\n shouldFocus: false,\n}\n\nexport function useFocusOnShow<T extends HTMLElement>(\n target: React.RefObject<T> | T,\n options = defaultOptions,\n) {\n const { focusRef, preventScroll, shouldFocus, visible } = options\n const element = isRefObject(target) ? target.current : target\n\n const autoFocus = shouldFocus && visible\n\n const onFocus = useCallback(() => {\n if (!element || !autoFocus) return\n\n if (contains(element, document.activeElement as HTMLElement)) return\n\n if (focusRef?.current) {\n focus(focusRef.current, { preventScroll, nextTick: true })\n } else {\n const tabbableEls = getAllFocusable(element)\n if (tabbableEls.length > 0) {\n focus(tabbableEls[0], { preventScroll, nextTick: true })\n }\n }\n }, [autoFocus, preventScroll, element, focusRef])\n\n useUpdateEffect(() => {\n onFocus()\n }, [onFocus])\n\n useEventListener(\"transitionend\", onFocus, element)\n}\n","import {\n useDisclosure,\n useFocusOnHide,\n useFocusOnPointerDown,\n useFocusOnShow,\n useIds,\n} from \"@chakra-ui/hooks\"\nimport { popperCSSVars, usePopper, UsePopperProps } from \"@chakra-ui/popper\"\nimport { HTMLProps, mergeRefs, PropGetter } from \"@chakra-ui/react-utils\"\nimport {\n callAllHandlers,\n contains,\n determineLazyBehavior,\n FocusableElement,\n getRelatedTarget,\n LazyBehavior,\n px,\n} from \"@chakra-ui/utils\"\nimport { RefObject, useCallback, useEffect, useRef, useState } from \"react\"\n\nconst TRIGGER = {\n click: \"click\",\n hover: \"hover\",\n} as const\n\nexport interface UsePopoverProps extends UsePopperProps {\n /**\n * The html `id` attribute of the popover.\n * If not provided, we generate a unique id.\n *\n * This `id` is also used to auto-generate the `aria-labelledby`\n * and `aria-decribedby` attributes that points to the `PopoverHeader` and `PopoverBody`\n */\n id?: string\n /**\n * If `true`, the popover will be opened in controlled mode.\n */\n isOpen?: boolean\n /**\n * If `true`, the popover will be initially opened.\n */\n defaultIsOpen?: boolean\n /**\n * The `ref` of the element that should receive focus when the popover opens.\n */\n initialFocusRef?: RefObject<FocusableElement>\n /**\n * If `true`, focus will be returned to the element that triggers the popover\n * when it closes\n */\n returnFocusOnClose?: boolean\n /**\n * If `true`, focus will be transferred to the first interactive element\n * when the popover opens\n */\n autoFocus?: boolean\n /**\n * If `true`, the popover will close when you blur out it by\n * clicking outside or tabbing out\n */\n closeOnBlur?: boolean\n /**\n * If `true`, the popover will close when you hit the `Esc` key\n */\n closeOnEsc?: boolean\n /**\n * Callback fired when the popover opens\n */\n onOpen?: () => void\n /**\n * Callback fired when the popover closes\n */\n onClose?: () => void\n /**\n * The size of the popover arrow\n */\n arrowSize?: number\n /**\n * The `box-shadow` of the popover arrow\n */\n arrowShadowColor?: string\n /**\n * The interaction that triggers the popover.\n *\n * `hover` - means the popover will open when you hover with mouse or\n * focus with keyboard on the popover trigger\n *\n * `click` - means the popover will open on click or\n * press `Enter` to `Space` on keyboard\n */\n trigger?: keyof typeof TRIGGER\n openDelay?: number\n closeDelay?: number\n /**\n * Performance 🚀:\n * If `true`, the PopoverContent rendering will be deferred\n * until the popover is open.\n */\n isLazy?: boolean\n /**\n * Performance 🚀:\n * The lazy behavior of popover's content when not visible.\n * Only works when `isLazy={true}`\n *\n * - \"unmount\": The popover's content is always unmounted when not open.\n * - \"keepMounted\": The popover's content initially unmounted,\n * but stays mounted when popover is open.\n *\n * @default \"unmount\"\n */\n lazyBehavior?: LazyBehavior\n /**\n * If `true`, the popover will be positioned when it mounts\n * (even if it's not open)\n *\n * Note 🚨: We don't recommend using this in a popover/menu intensive UI or page\n * as it might affect scrolling performance.\n */\n computePositionOnMount?: boolean\n}\n\n/**\n * @internal\n */\nexport function usePopover(props: UsePopoverProps = {}) {\n const {\n closeOnBlur = true,\n closeOnEsc = true,\n initialFocusRef,\n id,\n returnFocusOnClose = true,\n autoFocus = true,\n arrowSize,\n arrowShadowColor,\n trigger = TRIGGER.click,\n openDelay = 200,\n closeDelay = 200,\n isLazy,\n lazyBehavior = \"unmount\",\n computePositionOnMount,\n ...popperProps\n } = props\n\n const { isOpen, onClose, onOpen, onToggle } = useDisclosure(props)\n\n const triggerRef = useRef<HTMLElement>(null)\n const popoverRef = useRef<HTMLElement>(null)\n\n const isHoveringRef = useRef(false)\n\n const hasBeenOpened = useRef(false)\n if (isOpen) {\n hasBeenOpened.current = true\n }\n\n const [hasHeader, setHasHeader] = useState(false)\n const [hasBody, setHasBody] = useState(false)\n\n const [triggerId, popoverId, headerId, bodyId] = useIds(\n id,\n \"popover-trigger\",\n \"popover-content\",\n \"popover-header\",\n \"popover-body\",\n )\n\n const {\n referenceRef,\n getArrowProps,\n getPopperProps,\n getArrowInnerProps,\n forceUpdate,\n } = usePopper({\n ...popperProps,\n enabled: isOpen || !!computePositionOnMount,\n })\n\n useFocusOnPointerDown({\n enabled: isOpen,\n ref: triggerRef,\n })\n\n useFocusOnHide(popoverRef, {\n focusRef: triggerRef,\n visible: isOpen,\n shouldFocus: returnFocusOnClose && trigger === TRIGGER.click,\n })\n\n useFocusOnShow(popoverRef, {\n focusRef: initialFocusRef,\n visible: isOpen,\n shouldFocus: autoFocus && trigger === TRIGGER.click,\n })\n\n const shouldRenderChildren = determineLazyBehavior({\n hasBeenSelected: hasBeenOpened.current,\n isLazy,\n lazyBehavior,\n isSelected: isOpen,\n })\n\n const getPopoverProps: PropGetter = useCallback(\n (props = {}, _ref = null) => {\n const popoverProps: HTMLProps = {\n ...props,\n style: {\n ...props.style,\n transformOrigin: popperCSSVars.transformOrigin.varRef,\n [popperCSSVars.arrowSize.var]: arrowSize ? px(arrowSize) : undefined,\n [popperCSSVars.arrowShadowColor.var]: arrowShadowColor,\n },\n ref: mergeRefs(popoverRef, _ref),\n children: shouldRenderChildren ? props.children : null,\n id: popoverId,\n tabIndex: -1,\n role: \"dialog\",\n onKeyDown: callAllHandlers(props.onKeyDown, (event) => {\n if (closeOnEsc && event.key === \"Escape\") {\n onClose()\n }\n }),\n onBlur: callAllHandlers(props.onBlur, (event) => {\n const relatedTarget = getRelatedTarget(event)\n const targetIsPopover = contains(popoverRef.current, relatedTarget)\n const targetIsTrigger = contains(triggerRef.current, relatedTarget)\n const isValidBlur = !targetIsPopover && !targetIsTrigger\n\n if (isOpen && closeOnBlur && isValidBlur) {\n onClose()\n }\n }),\n \"aria-labelledby\": hasHeader ? headerId : undefined,\n \"aria-describedby\": hasBody ? bodyId : undefined,\n }\n\n if (trigger === TRIGGER.hover) {\n popoverProps.role = \"tooltip\"\n popoverProps.onMouseEnter = callAllHandlers(props.onMouseEnter, () => {\n isHoveringRef.current = true\n })\n popoverProps.onMouseLeave = callAllHandlers(props.onMouseLeave, () => {\n isHoveringRef.current = false\n setTimeout(onClose, closeDelay)\n })\n }\n\n return popoverProps\n },\n [\n shouldRenderChildren,\n popoverId,\n hasHeader,\n headerId,\n hasBody,\n bodyId,\n trigger,\n closeOnEsc,\n onClose,\n isOpen,\n closeOnBlur,\n closeDelay,\n arrowShadowColor,\n arrowSize,\n ],\n )\n\n const getPopoverPositionerProps: PropGetter = useCallback(\n (props = {}, forwardedRef = null) =>\n getPopperProps(\n {\n ...props,\n style: {\n visibility: isOpen ? \"visible\" : \"hidden\",\n ...props.style,\n },\n },\n forwardedRef,\n ),\n [isOpen, getPopperProps],\n )\n\n const openTimeout = useRef<number>()\n const closeTimeout = useRef<number>()\n\n const getTriggerProps: PropGetter = useCallback(\n (props = {}, _ref = null) => {\n const triggerProps: HTMLProps = {\n ...props,\n ref: mergeRefs(triggerRef, _ref, referenceRef),\n id: triggerId,\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": isOpen,\n \"aria-controls\": popoverId,\n }\n\n if (trigger === TRIGGER.click) {\n triggerProps.onClick = callAllHandlers(props.onClick, onToggle)\n }\n\n if (trigger === TRIGGER.hover) {\n /**\n * Any content that shows on pointer hover should also show on keyboard focus.\n * Consider focus and blur to be the `hover` for keyboard users.\n *\n * @see https://www.w3.org/WAI/WCAG21/Understanding/content-on-hover-or-focus.html\n */\n triggerProps.onFocus = callAllHandlers(props.onFocus, onOpen)\n triggerProps.onBlur = callAllHandlers(props.onBlur, onClose)\n\n /**\n * Any content that shows on hover or focus must be dismissible.\n * This case pressing `Escape` will dismiss the popover\n */\n triggerProps.onKeyDown = callAllHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Escape\") {\n onClose()\n }\n })\n\n triggerProps.onMouseEnter = callAllHandlers(props.onMouseEnter, () => {\n isHoveringRef.current = true\n openTimeout.current = window.setTimeout(onOpen, openDelay)\n })\n\n triggerProps.onMouseLeave = callAllHandlers(props.onMouseLeave, () => {\n isHoveringRef.current = false\n\n if (openTimeout.current) {\n clearTimeout(openTimeout.current)\n openTimeout.current = undefined\n }\n\n closeTimeout.current = window.setTimeout(() => {\n if (isHoveringRef.current === false) {\n onClose()\n }\n }, closeDelay)\n })\n }\n\n return triggerProps\n },\n [\n triggerId,\n isOpen,\n popoverId,\n trigger,\n referenceRef,\n onToggle,\n onOpen,\n onClose,\n openDelay,\n closeDelay,\n ],\n )\n\n useEffect(() => {\n return () => {\n if (openTimeout.current) {\n clearTimeout(openTimeout.current)\n }\n if (closeTimeout.current) {\n clearTimeout(closeTimeout.current)\n }\n }\n }, [])\n\n const getHeaderProps: PropGetter = useCallback(\n (props = {}, ref = null) => ({\n ...props,\n id: headerId,\n ref: mergeRefs(ref, (node: HTMLElement | null) => {\n setHasHeader(!!node)\n }),\n }),\n [headerId],\n )\n\n const getBodyProps: PropGetter = useCallback(\n (props = {}, ref = null) => ({\n ...props,\n id: bodyId,\n ref: mergeRefs(ref, (node) => {\n setHasBody(!!node)\n }),\n }),\n [bodyId],\n )\n\n return {\n forceUpdate,\n isOpen,\n onClose,\n getArrowProps,\n getArrowInnerProps,\n getPopoverPositionerProps,\n getPopoverProps,\n getTriggerProps,\n getHeaderProps,\n getBodyProps,\n }\n}\n\nexport type UsePopoverReturn = ReturnType<typeof usePopover>\n","import { CloseButton, CloseButtonProps } from \"@chakra-ui/close-button\"\nimport { MaybeRenderProp } from \"@chakra-ui/react-utils\"\nimport {\n chakra,\n forwardRef,\n HTMLChakraProps,\n omitThemingProps,\n StylesProvider,\n SystemStyleObject,\n ThemingProps,\n useMultiStyleConfig,\n useStyles,\n useTheme,\n} from \"@chakra-ui/system\"\nimport { cx, runIfFn, __DEV__ } from \"@chakra-ui/utils\"\nimport * as React from \"react\"\nimport { PopoverProvider, usePopoverContext } from \"./popover-context\"\nimport { PopoverTransition, PopoverTransitionProps } from \"./popover-transition\"\nimport { usePopover, UsePopoverProps } from \"./use-popover\"\n\nexport { usePopoverContext }\n\nexport interface PopoverProps extends UsePopoverProps, ThemingProps<\"Popover\"> {\n /**\n * The content of the popover. It is usually the `PopoverTrigger`,\n * and `PopoverContent`\n */\n children?: MaybeRenderProp<{\n isOpen: boolean\n onClose: () => void\n forceUpdate: (() => void) | undefined\n }>\n}\n\n/**\n * Popover is used to bring attention to specific user interface elements,\n * typically to suggest an action or to guide users through a new experience.\n */\nexport const Popover: React.FC<PopoverProps> = (props) => {\n const styles = useMultiStyleConfig(\"Popover\", props)\n\n const { children, ...rest } = omitThemingProps(props)\n const theme = useTheme()\n const context = usePopover({ ...rest, direction: theme.direction })\n\n return (\n <PopoverProvider value={context}>\n <StylesProvider value={styles}>\n {runIfFn(children, {\n isOpen: context.isOpen,\n onClose: context.onClose,\n forceUpdate: context.forceUpdate,\n })}\n </StylesProvider>\n </PopoverProvider>\n )\n}\n\nif (__DEV__) {\n Popover.displayName = \"Popover\"\n}\n\n/**\n * PopoverTrigger opens the popover's content. It must be an interactive element\n * such as `button` or `a`.\n */\nexport const PopoverTrigger: React.FC = (props) => {\n // enforce a single child\n const child: any = React.Children.only(props.children)\n const { getTriggerProps } = usePopoverContext()\n return React.cloneElement(child, getTriggerProps(child.props, child.ref))\n}\n\nif (__DEV__) {\n PopoverTrigger.displayName = \"PopoverTrigger\"\n}\n\nexport interface PopoverContentProps extends PopoverTransitionProps {\n rootProps?: HTMLChakraProps<\"div\">\n}\n\nexport const PopoverContent = forwardRef<PopoverContentProps, \"section\">(\n (props, ref) => {\n const { rootProps, ...contentProps } = props\n\n const { getPopoverProps, getPopoverPositionerProps } = usePopoverContext()\n\n const styles = useStyles()\n const contentStyles: SystemStyleObject = {\n position: \"relative\",\n display: \"flex\",\n flexDirection: \"column\",\n ...styles.content,\n }\n\n return (\n <chakra.div\n {...getPopoverPositionerProps(rootProps)}\n __css={styles.popper}\n className=\"chakra-popover__popper\"\n >\n <PopoverTransition\n {...getPopoverProps(contentProps, ref)}\n className={cx(\"chakra-popover__content\", props.className)}\n __css={contentStyles}\n />\n </chakra.div>\n )\n },\n)\n\nif (__DEV__) {\n PopoverContent.displayName = \"PopoverContent\"\n}\n\nexport interface PopoverHeaderProps extends HTMLChakraProps<\"header\"> {}\n\n/**\n * PopoverHeader is the accessible header or label\n * for the popover's content and it is first announced by screenreaders.\n */\nexport const PopoverHeader = forwardRef<PopoverHeaderProps, \"header\">(\n (props, ref) => {\n const { getHeaderProps } = usePopoverContext()\n\n const styles = useStyles()\n\n return (\n <chakra.header\n {...getHeaderProps(props, ref)}\n className={cx(\"chakra-popover__header\", props.className)}\n __css={styles.header}\n />\n )\n },\n)\n\nif (__DEV__) {\n PopoverHeader.displayName = \"PopoverHeader\"\n}\n\nexport interface PopoverBodyProps extends HTMLChakraProps<\"div\"> {}\n\n/**\n * PopoverBody is the main content area for the popover. Should contain\n * at least one interactive element.\n */\nexport const PopoverBody = forwardRef<PopoverBodyProps, \"div\">((props, ref) => {\n const { getBodyProps } = usePopoverContext()\n\n const styles = useStyles()\n\n return (\n <chakra.div\n {...getBodyProps(props, ref)}\n className={cx(\"chakra-popover__body\", props.className)}\n __css={styles.body}\n />\n )\n})\n\nif (__DEV__) {\n PopoverBody.displayName = \"PopoverBody\"\n}\nexport interface PopoverFooterProps extends HTMLChakraProps<\"footer\"> {}\n\nexport const PopoverFooter: React.FC<PopoverFooterProps> = (props) => {\n const styles = useStyles()\n return (\n <chakra.footer\n {...props}\n className={cx(\"chakra-popover__footer\", props.className)}\n __css={styles.footer}\n />\n )\n}\n\nif (__DEV__) {\n PopoverFooter.displayName = \"PopoverFooter\"\n}\n\nexport type PopoverCloseButtonProps = CloseButtonProps\n\nexport const PopoverCloseButton: React.FC<CloseButtonProps> = (props) => {\n const { onClose } = usePopoverContext()\n return (\n <CloseButton\n size=\"sm\"\n onClick={onClose}\n position=\"absolute\"\n borderRadius=\"md\"\n top=\"0.25rem\"\n insetEnd=\"0.5rem\"\n padding=\"0.5rem\"\n {...props}\n />\n )\n}\n\nif (__DEV__) {\n PopoverCloseButton.displayName = \"PopoverCloseButton\"\n}\n\nexport interface PopoverArrowProps extends HTMLChakraProps<\"div\"> {}\n\nexport const PopoverArrow: React.FC<PopoverArrowProps> = (props) => {\n const { bg, bgColor, backgroundColor } = props\n const { getArrowProps, getArrowInnerProps } = usePopoverContext()\n const styles = useStyles()\n const arrowBg = bg ?? bgColor ?? backgroundColor\n return (\n <chakra.div\n {...getArrowProps()}\n className=\"chakra-popover__arrow-positioner\"\n >\n <chakra.div\n className={cx(\"chakra-popover__arrow\", props.className)}\n {...getArrowInnerProps(props)}\n __css={{\n ...styles.arrow,\n \"--popper-arrow-bg\": arrowBg\n ? `colors.${arrowBg}, ${arrowBg}`\n : undefined,\n }}\n />\n </chakra.div>\n )\n}\n\nif (__DEV__) {\n PopoverArrow.displayName = \"PopoverArrow\"\n}\n","import { useFormControlContext } from \"@chakra-ui/form-control\"\nimport { useBoolean, useControllableProp, useId } from \"@chakra-ui/hooks\"\nimport { mergeRefs, PropGetter } from \"@chakra-ui/react-utils\"\nimport { ariaAttr, callAllHandlers, dataAttr, warn } from \"@chakra-ui/utils\"\nimport { visuallyHiddenStyle } from \"@chakra-ui/visually-hidden\"\nimport {\n ChangeEvent,\n SyntheticEvent,\n useCallback,\n useRef,\n useState,\n} from \"react\"\nimport { useRadioGroupContext } from \"./radio-group\"\n\n/**\n * @todo use the `useClickable` hook here\n * to manage the isFocusable & isDisabled props\n */\nexport interface UseRadioProps {\n /**\n * id assigned to input\n */\n id?: string\n /**\n * The name of the input field in a radio\n * (Useful for form submission).\n */\n name?: string\n /**\n * The value to be used in the radio button.\n * This is the value that will be returned on form submission.\n */\n value?: string | number\n /**\n * If `true`, the radio will be checked.\n * You'll need to pass `onChange` to update its value (since it is now controlled)\n */\n isChecked?: boolean\n /**\n * If `true`, the radio will be initially checked.\n *\n * @deprecated Please use `defaultChecked` which mirrors the default prop\n * name for radio elements.\n */\n defaultIsChecked?: boolean\n /**\n * If `true`, the radio will be initially checked.\n */\n defaultChecked?: boolean\n /**\n * If `true`, the radio will be disabled\n */\n isDisabled?: boolean\n /**\n * If `true` and `isDisabled` is true, the radio will remain\n * focusable but not interactive.\n */\n isFocusable?: boolean\n /**\n * If `true`, the radio will be read-only\n */\n isReadOnly?: boolean\n /**\n * If `true`, the radio button will be invalid. This also sets `aria-invalid` to `true`.\n */\n isInvalid?: boolean\n /**\n * If `true`, the radio button will be required. This also sets `aria-required` to `true`.\n */\n isRequired?: boolean\n /**\n * Function called when checked state of the `input` changes\n */\n onChange?: (event: ChangeEvent<HTMLInputElement>) => void\n /**\n * @internal\n */\n \"data-radiogroup\"?: any\n}\n\nexport function useRadio(props: UseRadioProps = {}) {\n const {\n defaultIsChecked,\n defaultChecked = defaultIsChecked,\n isChecked: isCheckedProp,\n isFocusable,\n isDisabled: isDisabledProp,\n isReadOnly: isReadOnlyProp,\n isRequired: isRequiredProp,\n onChange,\n isInvalid: isInvalidProp,\n name,\n value,\n id: idProp,\n \"data-radiogroup\": dataRadioGroup,\n ...htmlProps\n } = props\n\n const uuid = useId(undefined, \"radio\")\n\n const formControl = useFormControlContext()\n const group = useRadioGroupContext()\n\n const isWithinRadioGroup = !!group || !!dataRadioGroup\n const isWithinFormControl = !!formControl\n\n let id = isWithinFormControl && !isWithinRadioGroup ? formControl.id : uuid\n id = idProp ?? id\n\n const isDisabled = isDisabledProp ?? formControl?.isDisabled\n const isReadOnly = isReadOnlyProp ?? formControl?.isReadOnly\n const isRequired = isRequiredProp ?? formControl?.isRequired\n const isInvalid = isInvalidProp ?? formControl?.isInvalid\n\n const [isFocused, setFocused] = useBoolean()\n const [isHovered, setHovering] = useBoolean()\n const [isActive, setActive] = useBoolean()\n\n const ref = useRef<HTMLInputElement>(null)\n\n const [isCheckedState, setChecked] = useState(Boolean(defaultChecked))\n\n const [isControlled, isChecked] = useControllableProp(\n isCheckedProp,\n isCheckedState,\n )\n\n warn({\n condition: !!defaultIsChecked,\n message:\n 'The \"defaultIsChecked\" prop has been deprecated and will be removed in a future version. ' +\n 'Please use the \"defaultChecked\" prop instead, which mirrors default React checkbox behavior.',\n })\n\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n if (isReadOnly || isDisabled) {\n event.preventDefault()\n return\n }\n\n if (!isControlled) {\n setChecked(event.target.checked)\n }\n\n onChange?.(event)\n },\n [isControlled, isDisabled, isReadOnly, onChange],\n )\n\n const onKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key === \" \") {\n setActive.on()\n }\n },\n [setActive],\n )\n\n const onKeyUp = useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key === \" \") {\n setActive.off()\n }\n },\n [setActive],\n )\n\n const getCheckboxProps: PropGetter = useCallback(\n (props = {}, ref = null) => ({\n ...props,\n ref,\n \"data-active\": dataAttr(isActive),\n \"data-hover\": dataAttr(isHovered),\n \"data-disabled\": dataAttr(isDisabled),\n \"data-invalid\": dataAttr(isInvalid),\n \"data-checked\": dataAttr(isChecked),\n \"data-focus\": dataAttr(isFocused),\n \"data-readonly\": dataAttr(isReadOnly),\n \"aria-hidden\": true,\n onMouseDown: callAllHandlers(props.onMouseDown, setActive.on),\n onMouseUp: callAllHandlers(props.onMouseUp, setActive.off),\n onMouseEnter: callAllHandlers(props.onMouseEnter, setHovering.on),\n onMouseLeave: callAllHandlers(props.onMouseLeave, setHovering.off),\n }),\n [\n isActive,\n isHovered,\n isDisabled,\n isInvalid,\n isChecked,\n isFocused,\n isReadOnly,\n setActive.on,\n setActive.off,\n setHovering.on,\n setHovering.off,\n ],\n )\n\n const { onFocus, onBlur } = formControl ?? {}\n\n const getInputProps: PropGetter<HTMLInputElement> = useCallback(\n (props = {}, forwardedRef = null) => {\n const trulyDisabled = isDisabled && !isFocusable\n\n return {\n ...props,\n id,\n ref: mergeRefs(forwardedRef, ref),\n type: \"radio\",\n name,\n value,\n onChange: callAllHandlers(props.onChange, handleChange),\n onBlur: callAllHandlers(onBlur, props.onBlur, setFocused.off),\n onFocus: callAllHandlers(onFocus, props.onFocus, setFocused.on),\n onKeyDown: callAllHandlers(props.onKeyDown, onKeyDown),\n onKeyUp: callAllHandlers(props.onKeyUp, onKeyUp),\n checked: isChecked,\n disabled: trulyDisabled,\n readOnly: isReadOnly,\n required: isRequired,\n \"aria-invalid\": ariaAttr(isInvalid),\n \"aria-disabled\": ariaAttr(trulyDisabled),\n \"aria-readonly\": ariaAttr(isReadOnly),\n \"aria-required\": ariaAttr(isRequired),\n style: visuallyHiddenStyle,\n }\n },\n [\n isDisabled,\n isFocusable,\n id,\n name,\n value,\n handleChange,\n onBlur,\n setFocused,\n onFocus,\n onKeyDown,\n onKeyUp,\n isChecked,\n isReadOnly,\n isRequired,\n isInvalid,\n ],\n )\n\n const getLabelProps: PropGetter = (props = {}, ref = null) => ({\n ...props,\n ref,\n onMouseDown: callAllHandlers(props.onMouseDown, stop),\n onTouchStart: callAllHandlers(props.onTouchStart, stop),\n \"data-disabled\": dataAttr(isDisabled),\n \"data-checked\": dataAttr(isChecked),\n \"data-invalid\": dataAttr(isInvalid),\n })\n\n const getRootProps: PropGetter = (pros, ref = null) => ({\n ...props,\n ref,\n \"data-disabled\": dataAttr(isDisabled),\n \"data-checked\": dataAttr(isChecked),\n \"data-invalid\": dataAttr(isInvalid),\n })\n\n return {\n state: {\n isInvalid,\n isFocused,\n isChecked,\n isActive,\n isHovered,\n isDisabled,\n isReadOnly,\n isRequired,\n },\n getCheckboxProps,\n getInputProps,\n getLabelProps,\n getRootProps,\n htmlProps,\n }\n}\n\n/**\n * Prevent `onBlur` being fired when the checkbox label is touched\n */\nfunction stop(event: SyntheticEvent) {\n event.preventDefault()\n event.stopPropagation()\n}\n\nexport type UseRadioReturn = ReturnType<typeof useRadio>\n","import {\n chakra,\n forwardRef,\n layoutPropNames,\n omitThemingProps,\n SystemProps,\n SystemStyleObject,\n ThemingProps,\n useMultiStyleConfig,\n HTMLChakraProps,\n} from \"@chakra-ui/system\"\nimport { callAll, split, __DEV__ } from \"@chakra-ui/utils\"\nimport * as React from \"react\"\nimport { useRadioGroupContext } from \"./radio-group\"\nimport { useRadio, UseRadioProps } from \"./use-radio\"\n\ntype Omitted = \"onChange\" | \"defaultChecked\" | \"checked\"\ninterface BaseControlProps extends Omit<HTMLChakraProps<\"div\">, Omitted> {}\n\nexport interface RadioProps\n extends UseRadioProps,\n ThemingProps<\"Radio\">,\n BaseControlProps {\n /**\n * The spacing between the checkbox and its label text\n * @default 0.5rem\n * @type SystemProps[\"marginLeft\"]\n */\n spacing?: SystemProps[\"marginLeft\"]\n /**\n * If `true`, the radio will occupy the full width of its parent container\n *\n * @deprecated\n * This component defaults to 100% width,\n * please use the props `maxWidth` or `width` to configure\n */\n isFullWidth?: boolean\n}\n\n/**\n * Radio component is used in forms when a user needs to select a single value from\n * several options.\n *\n * @see Docs https://chakra-ui.com/radio\n */\nexport const Radio = forwardRef<RadioProps, \"input\">((props, ref) => {\n const group = useRadioGroupContext()\n const { onChange: onChangeProp, value: valueProp } = props\n\n const styles = useMultiStyleConfig(\"Radio\", { ...group, ...props })\n\n const ownProps = omitThemingProps(props)\n\n const {\n spacing = \"0.5rem\",\n children,\n isFullWidth,\n isDisabled = group?.isDisabled,\n isFocusable = group?.isFocusable,\n ...rest\n } = ownProps\n\n let isChecked = props.isChecked\n if (group?.value != null && valueProp != null) {\n isChecked = group.value === valueProp\n }\n\n let onChange = onChangeProp\n if (group?.onChange && valueProp != null) {\n onChange = callAll(group.onChange, onChangeProp)\n }\n\n const name = props?.name ?? group?.name\n\n const {\n getInputProps,\n getCheckboxProps,\n getLabelProps,\n getRootProps,\n htmlProps,\n } = useRadio({\n ...rest,\n isChecked,\n isFocusable,\n isDisabled,\n onChange,\n name,\n })\n\n const [layoutProps, otherProps] = split(htmlProps, layoutPropNames as any)\n\n const checkboxProps = getCheckboxProps(otherProps)\n const inputProps = getInputProps({}, ref)\n const labelProps = getLabelProps()\n const rootProps = Object.assign(layoutProps, getRootProps())\n\n const rootStyles = {\n width: isFullWidth ? \"full\" : undefined,\n display: \"inline-flex\",\n alignItems: \"center\",\n verticalAlign: \"top\",\n ...styles.container,\n }\n\n const checkboxStyles = {\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n ...styles.control,\n }\n\n const labelStyles: SystemStyleObject = {\n userSelect: \"none\",\n marginStart: spacing,\n ...styles.label,\n }\n\n return (\n <chakra.label className=\"chakra-radio\" {...rootProps} __css={rootStyles}>\n <input className=\"chakra-radio__input\" {...inputProps} />\n <chakra.span\n className=\"chakra-radio__control\"\n {...checkboxProps}\n __css={checkboxStyles}\n />\n {children && (\n <chakra.span\n className=\"chakra-radio__label\"\n {...labelProps}\n __css={labelStyles}\n >\n {children}\n </chakra.span>\n )}\n </chakra.label>\n )\n})\n\nif (__DEV__) {\n Radio.displayName = \"Radio\"\n}\n"],"sourceRoot":""}