@ui-machines/toggle
Version:
Core logic for the toggle widget implemented as a state machine
3 lines (2 loc) • 2.24 kB
JavaScript
var u=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var h=Object.prototype.hasOwnProperty;var g=e=>u(e,"__esModule",{value:!0});var v=(e,t)=>{for(var n in t)u(e,n,{get:t[n],enumerable:!0})},w=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of m(t))!h.call(e,r)&&(n||r!=="default")&&u(e,r,{get:()=>t[r],enumerable:!(i=p(t,r))||i.enumerable});return e};var y=(e=>(t,n)=>e&&e.get(t)||(n=w(g({}),t,1),e&&e.set(t,n),n))(typeof WeakMap!="undefined"?new WeakMap:0);var x={};v(x,{connect:()=>f,machine:()=>d});var c=e=>e?"":void 0;var L=(()=>{let e=0;return()=>(e++,e.toString(36))})();var k=["input:not([disabled]):not([type=hidden])","select:not([disabled])","textarea:not([disabled])","button:not([disabled])","embed","iframe","object","a[href]","area[href]","[tabindex]","audio[controls]","video[controls]","*[tabindex]:not([aria-disabled])","[contenteditable]:not([contenteditable=false])","details > summary:first-of-type"].join(",");var o=(e,t)=>({variable:e,reference:t?`var(${e}, ${t})`:`var(${e})`}),P={arrowShadowColor:o("--arrow-shadow-color"),arrowSize:o("--arrow-size"),arrowSizeHalf:o("--arrow-size-half"),arrowBg:o("--arrow-background"),transformOrigin:o("--transform-origin"),arrowOffset:o("--arrow-offset"),boxShadow:o("--arrow-box-shadow")};function b(e){return{button:e,label:e,input:e,output:e,element:e}}var s=b(e=>e);var l={getDoc:e=>{var t;return(t=e.doc)!=null?t:document},getRootId:e=>`toggle-${e.uid}`,getButtonId:e=>`toggle-${e.uid}--button`,getButtonEl:e=>l.getDoc(e).getElementById(l.getButtonId(e))};function f(e,t,n=s){let{context:i}=e,r=e.matches("pressed");return{isPressed:r,buttonProps:n.button({id:l.getButtonId(i),type:"button","aria-pressed":r,"data-disabled":c(i.disabled),"data-pressed":c(r),onClick(){i.disabled||t({type:"CLICK",pressed:r})}})}}var a=require("@ui-machines/core"),d=(0,a.createMachine)({id:"toggle-machine",initial:"unknown",context:{uid:"",disabled:!1},states:{unknown:{on:{SETUP:{target:"unpressed",actions:"setupDocument"}}},pressed:{on:{CLICK:"unpressed"}},unpressed:{on:{CLICK:"pressed"}}}},{actions:{setupDocument(e,t){e.uid=t.id,e.doc=(0,a.ref)(t.doc)}}});module.exports=y(x);
//# sourceMappingURL=index.js.map