@data-slot/popover 0.2.47 → 0.2.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`@data-slot/core`);const t=[`top`,`right`,`bottom`,`left`],n=[`start`,`center`,`end`];function r(r,i={}){let a=(0,e.getPart)(r,`popover-trigger`),o=(0,e.getPart)(r,`popover-content`),s=(0,e.getPart)(r,`popover-close`);if(!a||!o)throw Error(`Popover requires trigger and content slots`);let c=i.defaultOpen??(0,e.getDataBool)(r,`defaultOpen`)??!1,l=i.onOpenChange,u=i.closeOnClickOutside??(0,e.getDataBool)(r,`closeOnClickOutside`)??!0,d=i.closeOnEscape??(0,e.getDataBool)(r,`closeOnEscape`)??!0,f=i.portal??(0,e.getDataBool)(o,`portal`)??(0,e.getDataBool)(r,`portal`)??!0,p=i.position??(0,e.getDataEnum)(o,`position`,t)??(0,e.getDataEnum)(r,`position`,t),m=i.side??(0,e.getDataEnum)(o,`side`,t)??(0,e.getDataEnum)(r,`side`,t)??p??`bottom`,h=i.align??(0,e.getDataEnum)(o,`align`,n)??(0,e.getDataEnum)(r,`align`,n)??`center`,g=i.sideOffset??(0,e.getDataNumber)(o,`sideOffset`)??(0,e.getDataNumber)(r,`sideOffset`)??4,_=i.alignOffset??(0,e.getDataNumber)(o,`alignOffset`)??(0,e.getDataNumber)(r,`alignOffset`)??0,v=i.avoidCollisions??(0,e.getDataBool)(o,`avoidCollisions`)??(0,e.getDataBool)(r,`avoidCollisions`)??!0,y=i.collisionPadding??(0,e.getDataNumber)(o,`collisionPadding`)??(0,e.getDataNumber)(r,`collisionPadding`)??8,b=c,x=[],S=(0,e.createPortalLifecycle)({content:o,root:r,enabled:f,wrapperSlot:`popover-positioner`}),C=!1,w=null,T=!1,E=()=>{T&&=(o.removeAttribute(`tabindex`),!1)},D=()=>{let e=o.querySelector(`[autofocus]`);if(e)return e.focus();let t=o.querySelector(`a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex="-1"])`);if(t)return t.focus();o.getAttribute(`tabindex`)||(o.setAttribute(`tabindex`,`-1`),T=!0),o.focus()},O=(0,e.ensureId)(o,`popover-content`);a.setAttribute(`aria-haspopup`,`dialog`),a.setAttribute(`aria-controls`,O),o.setAttribute(`data-side`,m),o.setAttribute(`data-align`,h),o.setAttribute(`data-position`,m);let k=()=>{let t=S.container,n=r.ownerDocument.defaultView??window,i=(0,e.computeFloatingPosition)({anchorRect:a.getBoundingClientRect(),contentRect:o.getBoundingClientRect(),side:m,align:h,sideOffset:g,alignOffset:_,avoidCollisions:v,collisionPadding:y});t.style.position=`absolute`,t.style.top=`0px`,t.style.left=`0px`,t.style.transform=`translate3d(${i.x+n.scrollX}px, ${i.y+n.scrollY}px, 0)`,t.style.willChange=`transform`,t.style.margin=`0`,o.setAttribute(`data-side`,i.side),o.setAttribute(`data-align`,i.align),t!==o&&(t.setAttribute(`data-side`,i.side),t.setAttribute(`data-align`,i.align)),o.setAttribute(`data-position`,i.side)},A=e=>{let t=S.container;r.setAttribute(`data-state`,e),o.setAttribute(`data-state`,e),t!==o&&t.setAttribute(`data-state`,e),e===`open`?(r.setAttribute(`data-open`,``),o.setAttribute(`data-open`,``),t!==o&&t.setAttribute(`data-open`,``),r.removeAttribute(`data-closed`),o.removeAttribute(`data-closed`),t!==o&&t.removeAttribute(`data-closed`)):(r.setAttribute(`data-closed`,``),o.setAttribute(`data-closed`,``),t!==o&&t.setAttribute(`data-closed`,``),r.removeAttribute(`data-open`),o.removeAttribute(`data-open`),t!==o&&t.removeAttribute(`data-open`))},j=()=>{requestAnimationFrame(()=>{w&&w.isConnected?w.focus():a.focus(),w=null})},M=(0,e.createPresenceLifecycle)({element:o,onExitComplete:()=>{C||(S.restore(),o.hidden=!0,E(),j())}}),N=(0,e.createPositionSync)({observedElements:[a,o],isActive:()=>b,ancestorScroll:!1,onUpdate:k}),P=t=>{b!==t&&(t&&(w=document.activeElement),b=t,(0,e.setAria)(a,`expanded`,b),t?(S.mount(),o.hidden=!1,A(`open`),M.enter(),k(),N.start(),N.update(),requestAnimationFrame(D)):(A(`closed`),M.exit(),N.stop()),(0,e.emit)(r,`popover:change`,{open:b}),l?.(b))};return(0,e.setAria)(a,`expanded`,b),A(b?`open`:`closed`),o.hidden=!b,c&&(S.mount(),M.enter(),o.hidden=!1,k(),N.start(),N.update(),requestAnimationFrame(D)),x.push((0,e.on)(a,`click`,()=>P(!b))),s&&x.push((0,e.on)(s,`click`,()=>P(!1))),x.push((0,e.createDismissLayer)({root:r,isOpen:()=>b,onDismiss:()=>P(!1),closeOnClickOutside:u,closeOnEscape:d})),x.push((0,e.on)(r,`popover:set`,e=>{let t=e.detail,n;t?.open===void 0?t?.value!==void 0&&(n=t.value):n=t.open,typeof n==`boolean`&&P(n)})),{open:()=>P(!0),close:()=>P(!1),toggle:()=>P(!b),get isOpen(){return b},destroy:()=>{C=!0,N.stop(),M.cleanup(),S.cleanup(),x.forEach(e=>e()),x.length=0,E()}}}const i=new WeakSet;function a(t=document){let n=[];for(let a of(0,e.getRoots)(t,`popover`))i.has(a)||(i.add(a),n.push(r(a)));return n}exports.create=a,exports.createPopover=r;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`@data-slot/core`);const t=[`top`,`right`,`bottom`,`left`],n=[`start`,`center`,`end`];function r(r,i={}){let a=(0,e.getPart)(r,`popover-trigger`),o=(0,e.getPart)(r,`popover-content`),s=(0,e.getPart)(r,`popover-close`);if(!a||!o)throw Error(`Popover requires trigger and content slots`);let c=i.defaultOpen??(0,e.getDataBool)(r,`defaultOpen`)??!1,l=i.onOpenChange,u=i.closeOnClickOutside??(0,e.getDataBool)(r,`closeOnClickOutside`)??!0,d=i.closeOnEscape??(0,e.getDataBool)(r,`closeOnEscape`)??!0,f=i.portal??(0,e.getDataBool)(o,`portal`)??(0,e.getDataBool)(r,`portal`)??!0,p=i.position??(0,e.getDataEnum)(o,`position`,t)??(0,e.getDataEnum)(r,`position`,t),m=i.side??(0,e.getDataEnum)(o,`side`,t)??(0,e.getDataEnum)(r,`side`,t)??p??`bottom`,h=i.align??(0,e.getDataEnum)(o,`align`,n)??(0,e.getDataEnum)(r,`align`,n)??`center`,g=i.sideOffset??(0,e.getDataNumber)(o,`sideOffset`)??(0,e.getDataNumber)(r,`sideOffset`)??4,_=i.alignOffset??(0,e.getDataNumber)(o,`alignOffset`)??(0,e.getDataNumber)(r,`alignOffset`)??0,v=i.avoidCollisions??(0,e.getDataBool)(o,`avoidCollisions`)??(0,e.getDataBool)(r,`avoidCollisions`)??!0,y=i.collisionPadding??(0,e.getDataNumber)(o,`collisionPadding`)??(0,e.getDataNumber)(r,`collisionPadding`)??8,b=c,x=[],S=(0,e.createPortalLifecycle)({content:o,root:r,enabled:f,wrapperSlot:`popover-positioner`}),C=!1,w=null,T=!1,E=()=>{T&&=(o.removeAttribute(`tabindex`),!1)},D=()=>{let e=o.querySelector(`[autofocus]`);if(e)return e.focus();let t=o.querySelector(`a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex="-1"])`);if(t)return t.focus();o.getAttribute(`tabindex`)||(o.setAttribute(`tabindex`,`-1`),T=!0),o.focus()},O=(0,e.ensureId)(o,`popover-content`);a.setAttribute(`aria-haspopup`,`dialog`),a.setAttribute(`aria-controls`,O),o.setAttribute(`data-side`,m),o.setAttribute(`data-align`,h),o.setAttribute(`data-position`,m);let k=()=>{let t=S.container,n=r.ownerDocument.defaultView??window,i=(0,e.computeFloatingPosition)({anchorRect:a.getBoundingClientRect(),contentRect:o.getBoundingClientRect(),side:m,align:h,sideOffset:g,alignOffset:_,avoidCollisions:v,collisionPadding:y});t.style.position=`absolute`,t.style.top=`0px`,t.style.left=`0px`,t.style.transform=`translate3d(${i.x+n.scrollX}px, ${i.y+n.scrollY}px, 0)`,t.style.willChange=`transform`,t.style.margin=`0`,o.setAttribute(`data-side`,i.side),o.setAttribute(`data-align`,i.align),t!==o&&(t.setAttribute(`data-side`,i.side),t.setAttribute(`data-align`,i.align)),o.setAttribute(`data-position`,i.side)},A=e=>{let t=S.container;r.setAttribute(`data-state`,e),o.setAttribute(`data-state`,e),t!==o&&t.setAttribute(`data-state`,e),e===`open`?(r.setAttribute(`data-open`,``),o.setAttribute(`data-open`,``),t!==o&&t.setAttribute(`data-open`,``),r.removeAttribute(`data-closed`),o.removeAttribute(`data-closed`),t!==o&&t.removeAttribute(`data-closed`)):(r.setAttribute(`data-closed`,``),o.setAttribute(`data-closed`,``),t!==o&&t.setAttribute(`data-closed`,``),r.removeAttribute(`data-open`),o.removeAttribute(`data-open`),t!==o&&t.removeAttribute(`data-open`))},j=()=>{requestAnimationFrame(()=>{w&&w.isConnected?(0,e.focusElement)(w):(0,e.focusElement)(a),w=null})},M=(0,e.createPresenceLifecycle)({element:o,onExitComplete:()=>{C||(S.restore(),o.hidden=!0,E(),j())}}),N=(0,e.createPositionSync)({observedElements:[a,o],isActive:()=>b,ancestorScroll:!1,onUpdate:k}),P=t=>{b!==t&&(t&&(w=document.activeElement),b=t,(0,e.setAria)(a,`expanded`,b),t?(S.mount(),o.hidden=!1,A(`open`),M.enter(),k(),N.start(),N.update(),requestAnimationFrame(D)):(A(`closed`),M.exit(),N.stop()),(0,e.emit)(r,`popover:change`,{open:b}),l?.(b))};return(0,e.setAria)(a,`expanded`,b),A(b?`open`:`closed`),o.hidden=!b,c&&(S.mount(),M.enter(),o.hidden=!1,k(),N.start(),N.update(),requestAnimationFrame(D)),x.push((0,e.on)(a,`click`,()=>P(!b))),s&&x.push((0,e.on)(s,`click`,()=>P(!1))),x.push((0,e.createDismissLayer)({root:r,isOpen:()=>b,onDismiss:()=>P(!1),closeOnClickOutside:u,closeOnEscape:d})),x.push((0,e.on)(r,`popover:set`,e=>{let t=e.detail,n;t?.open===void 0?t?.value!==void 0&&(n=t.value):n=t.open,typeof n==`boolean`&&P(n)})),{open:()=>P(!0),close:()=>P(!1),toggle:()=>P(!b),get isOpen(){return b},destroy:()=>{C=!0,N.stop(),M.cleanup(),S.cleanup(),x.forEach(e=>e()),x.length=0,E()}}}const i=new WeakSet;function a(t=document){let n=[];for(let a of(0,e.getRoots)(t,`popover`))i.has(a)||(i.add(a),n.push(r(a)));return n}exports.create=a,exports.createPopover=r;
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{computeFloatingPosition as e,createDismissLayer as t,createPortalLifecycle as n,createPositionSync as r,createPresenceLifecycle as i,emit as a,ensureId as o,getDataBool as s,getDataEnum as c,getDataNumber as l,getPart as u,getRoots as d,on as f,setAria as p}from"@data-slot/core";const m=[`top`,`right`,`bottom`,`left`],h=[`start`,`center`,`end`];function g(d,g={}){let _=u(d,`popover-trigger`),v=u(d,`popover-content`),y=u(d,`popover-close`);if(!_||!v)throw Error(`Popover requires trigger and content slots`);let b=g.defaultOpen??s(d,`defaultOpen`)??!1,x=g.onOpenChange,S=g.closeOnClickOutside??s(d,`closeOnClickOutside`)??!0,C=g.closeOnEscape??s(d,`closeOnEscape`)??!0,w=g.portal??s(v,`portal`)??s(d,`portal`)??!0,T=g.position??c(v,`position`,m)??c(d,`position`,m),E=g.side??c(v,`side`,m)??c(d,`side`,m)??T??`bottom`,D=g.align??c(v,`align`,h)??c(d,`align`,h)??`center`,O=g.sideOffset??l(v,`sideOffset`)??l(d,`sideOffset`)??4,k=g.alignOffset??l(v,`alignOffset`)??l(d,`alignOffset`)??0,A=g.avoidCollisions??s(v,`avoidCollisions`)??s(d,`avoidCollisions`)??!0,j=g.collisionPadding??l(v,`collisionPadding`)??l(d,`collisionPadding`)??8,M=b,N=[],P=n({content:v,root:d,enabled:w,wrapperSlot:`popover-positioner`}),F=!1,I=null,L=!1,R=()=>{L&&=(v.removeAttribute(`tabindex`),!1)},z=()=>{let e=v.querySelector(`[autofocus]`);if(e)return e.focus();let t=v.querySelector(`a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex="-1"])`);if(t)return t.focus();v.getAttribute(`tabindex`)||(v.setAttribute(`tabindex`,`-1`),L=!0),v.focus()},B=o(v,`popover-content`);_.setAttribute(`aria-haspopup`,`dialog`),_.setAttribute(`aria-controls`,B),v.setAttribute(`data-side`,E),v.setAttribute(`data-align`,D),v.setAttribute(`data-position`,E);let V=()=>{let t=P.container,n=d.ownerDocument.defaultView??window,r=e({anchorRect:_.getBoundingClientRect(),contentRect:v.getBoundingClientRect(),side:E,align:D,sideOffset:O,alignOffset:k,avoidCollisions:A,collisionPadding:j});t.style.position=`absolute`,t.style.top=`0px`,t.style.left=`0px`,t.style.transform=`translate3d(${r.x+n.scrollX}px, ${r.y+n.scrollY}px, 0)`,t.style.willChange=`transform`,t.style.margin=`0`,v.setAttribute(`data-side`,r.side),v.setAttribute(`data-align`,r.align),t!==v&&(t.setAttribute(`data-side`,r.side),t.setAttribute(`data-align`,r.align)),v.setAttribute(`data-position`,r.side)},H=e=>{let t=P.container;d.setAttribute(`data-state`,e),v.setAttribute(`data-state`,e),t!==v&&t.setAttribute(`data-state`,e),e===`open`?(d.setAttribute(`data-open`,``),v.setAttribute(`data-open`,``),t!==v&&t.setAttribute(`data-open`,``),d.removeAttribute(`data-closed`),v.removeAttribute(`data-closed`),t!==v&&t.removeAttribute(`data-closed`)):(d.setAttribute(`data-closed`,``),v.setAttribute(`data-closed`,``),t!==v&&t.setAttribute(`data-closed`,``),d.removeAttribute(`data-open`),v.removeAttribute(`data-open`),t!==v&&t.removeAttribute(`data-open`))},U=()=>{requestAnimationFrame(()=>{I&&I.isConnected?I.focus():_.focus(),I=null})},W=i({element:v,onExitComplete:()=>{F||(P.restore(),v.hidden=!0,R(),U())}}),G=r({observedElements:[_,v],isActive:()=>M,ancestorScroll:!1,onUpdate:V}),K=e=>{M!==e&&(e&&(I=document.activeElement),M=e,p(_,`expanded`,M),e?(P.mount(),v.hidden=!1,H(`open`),W.enter(),V(),G.start(),G.update(),requestAnimationFrame(z)):(H(`closed`),W.exit(),G.stop()),a(d,`popover:change`,{open:M}),x?.(M))};return p(_,`expanded`,M),H(M?`open`:`closed`),v.hidden=!M,b&&(P.mount(),W.enter(),v.hidden=!1,V(),G.start(),G.update(),requestAnimationFrame(z)),N.push(f(_,`click`,()=>K(!M))),y&&N.push(f(y,`click`,()=>K(!1))),N.push(t({root:d,isOpen:()=>M,onDismiss:()=>K(!1),closeOnClickOutside:S,closeOnEscape:C})),N.push(f(d,`popover:set`,e=>{let t=e.detail,n;t?.open===void 0?t?.value!==void 0&&(n=t.value):n=t.open,typeof n==`boolean`&&K(n)})),{open:()=>K(!0),close:()=>K(!1),toggle:()=>K(!M),get isOpen(){return M},destroy:()=>{F=!0,G.stop(),W.cleanup(),P.cleanup(),N.forEach(e=>e()),N.length=0,R()}}}const _=new WeakSet;function v(e=document){let t=[];for(let n of d(e,`popover`))_.has(n)||(_.add(n),t.push(g(n)));return t}export{v as create,g as createPopover};
1
+ import{computeFloatingPosition as e,createDismissLayer as t,createPortalLifecycle as n,createPositionSync as r,createPresenceLifecycle as i,emit as a,ensureId as o,focusElement as s,getDataBool as c,getDataEnum as l,getDataNumber as u,getPart as d,getRoots as f,on as p,setAria as m}from"@data-slot/core";const h=[`top`,`right`,`bottom`,`left`],g=[`start`,`center`,`end`];function _(f,_={}){let v=d(f,`popover-trigger`),y=d(f,`popover-content`),b=d(f,`popover-close`);if(!v||!y)throw Error(`Popover requires trigger and content slots`);let x=_.defaultOpen??c(f,`defaultOpen`)??!1,S=_.onOpenChange,C=_.closeOnClickOutside??c(f,`closeOnClickOutside`)??!0,w=_.closeOnEscape??c(f,`closeOnEscape`)??!0,T=_.portal??c(y,`portal`)??c(f,`portal`)??!0,E=_.position??l(y,`position`,h)??l(f,`position`,h),D=_.side??l(y,`side`,h)??l(f,`side`,h)??E??`bottom`,O=_.align??l(y,`align`,g)??l(f,`align`,g)??`center`,k=_.sideOffset??u(y,`sideOffset`)??u(f,`sideOffset`)??4,A=_.alignOffset??u(y,`alignOffset`)??u(f,`alignOffset`)??0,j=_.avoidCollisions??c(y,`avoidCollisions`)??c(f,`avoidCollisions`)??!0,M=_.collisionPadding??u(y,`collisionPadding`)??u(f,`collisionPadding`)??8,N=x,P=[],F=n({content:y,root:f,enabled:T,wrapperSlot:`popover-positioner`}),I=!1,L=null,R=!1,z=()=>{R&&=(y.removeAttribute(`tabindex`),!1)},B=()=>{let e=y.querySelector(`[autofocus]`);if(e)return e.focus();let t=y.querySelector(`a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex="-1"])`);if(t)return t.focus();y.getAttribute(`tabindex`)||(y.setAttribute(`tabindex`,`-1`),R=!0),y.focus()},V=o(y,`popover-content`);v.setAttribute(`aria-haspopup`,`dialog`),v.setAttribute(`aria-controls`,V),y.setAttribute(`data-side`,D),y.setAttribute(`data-align`,O),y.setAttribute(`data-position`,D);let H=()=>{let t=F.container,n=f.ownerDocument.defaultView??window,r=e({anchorRect:v.getBoundingClientRect(),contentRect:y.getBoundingClientRect(),side:D,align:O,sideOffset:k,alignOffset:A,avoidCollisions:j,collisionPadding:M});t.style.position=`absolute`,t.style.top=`0px`,t.style.left=`0px`,t.style.transform=`translate3d(${r.x+n.scrollX}px, ${r.y+n.scrollY}px, 0)`,t.style.willChange=`transform`,t.style.margin=`0`,y.setAttribute(`data-side`,r.side),y.setAttribute(`data-align`,r.align),t!==y&&(t.setAttribute(`data-side`,r.side),t.setAttribute(`data-align`,r.align)),y.setAttribute(`data-position`,r.side)},U=e=>{let t=F.container;f.setAttribute(`data-state`,e),y.setAttribute(`data-state`,e),t!==y&&t.setAttribute(`data-state`,e),e===`open`?(f.setAttribute(`data-open`,``),y.setAttribute(`data-open`,``),t!==y&&t.setAttribute(`data-open`,``),f.removeAttribute(`data-closed`),y.removeAttribute(`data-closed`),t!==y&&t.removeAttribute(`data-closed`)):(f.setAttribute(`data-closed`,``),y.setAttribute(`data-closed`,``),t!==y&&t.setAttribute(`data-closed`,``),f.removeAttribute(`data-open`),y.removeAttribute(`data-open`),t!==y&&t.removeAttribute(`data-open`))},W=()=>{requestAnimationFrame(()=>{L&&L.isConnected?s(L):s(v),L=null})},G=i({element:y,onExitComplete:()=>{I||(F.restore(),y.hidden=!0,z(),W())}}),K=r({observedElements:[v,y],isActive:()=>N,ancestorScroll:!1,onUpdate:H}),q=e=>{N!==e&&(e&&(L=document.activeElement),N=e,m(v,`expanded`,N),e?(F.mount(),y.hidden=!1,U(`open`),G.enter(),H(),K.start(),K.update(),requestAnimationFrame(B)):(U(`closed`),G.exit(),K.stop()),a(f,`popover:change`,{open:N}),S?.(N))};return m(v,`expanded`,N),U(N?`open`:`closed`),y.hidden=!N,x&&(F.mount(),G.enter(),y.hidden=!1,H(),K.start(),K.update(),requestAnimationFrame(B)),P.push(p(v,`click`,()=>q(!N))),b&&P.push(p(b,`click`,()=>q(!1))),P.push(t({root:f,isOpen:()=>N,onDismiss:()=>q(!1),closeOnClickOutside:C,closeOnEscape:w})),P.push(p(f,`popover:set`,e=>{let t=e.detail,n;t?.open===void 0?t?.value!==void 0&&(n=t.value):n=t.open,typeof n==`boolean`&&q(n)})),{open:()=>q(!0),close:()=>q(!1),toggle:()=>q(!N),get isOpen(){return N},destroy:()=>{I=!0,K.stop(),G.cleanup(),F.cleanup(),P.forEach(e=>e()),P.length=0,z()}}}const v=new WeakSet;function y(e=document){let t=[];for(let n of f(e,`popover`))v.has(n)||(v.add(n),t.push(_(n)));return t}export{y as create,_ as createPopover};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@data-slot/popover",
3
- "version": "0.2.47",
3
+ "version": "0.2.49",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "main": "./dist/index.cjs",
@@ -38,6 +38,6 @@
38
38
  ],
39
39
  "license": "MIT",
40
40
  "dependencies": {
41
- "@data-slot/core": "0.2.47"
41
+ "@data-slot/core": "0.2.49"
42
42
  }
43
43
  }