ranui
Version:
A framework-agnostic Web Components UI library built on native custom elements, with TypeScript types, light/dark theming, SSR and PWA support.
3 lines (2 loc) • 4.63 kB
JavaScript
const i=require("./builder-Cb6jFd2B.cjs");var a="ran-theme",A="(prefers-color-scheme: dark)",d=null,o=e=>{if(e&&"style"in e)return e;if(e&&"documentElement"in e)return e.documentElement;if(!(typeof document>"u"))return document.documentElement},E=(e,t)=>{e.setAttribute("data-ran-theme",t?"dark":"light"),e.setAttribute("theme",t?"dark":"light")},T=()=>{d?.(),d=null},m=(e,t)=>{const r=o(t);if(r){if(T(),e==="system"){if(typeof window>"u")return;d=i.Kt(A,n=>E(r,n)),i.P$1(a,"system");return}r.setAttribute("data-ran-theme",e),r.setAttribute("theme",e),i.P$1(a,e)}},p=e=>{const t=o(e);if(!t)return"";const r=t.getAttribute("data-ran-theme")||t.getAttribute("theme")||"";return r==="light"||r==="dark"?i.C(a)==="system"?"system":r:""},h=(e,t,r)=>{const n=o(r);n&&n.style.setProperty(e,String(t))},g=(e,t)=>{const r=o(t);r&&r.style.removeProperty(e)},P=(e,t)=>{Object.entries(e).forEach(([r,n])=>{if(n==null){g(r,t);return}h(r,n,t)})},O=e=>{const t=i.C(a);(t==="light"||t==="dark"||t==="system")&&m(t,e)},R=class{ac=null;get signal(){return this.ac??=new AbortController,this.ac.signal}on(e,t,r,n){return e.addEventListener(t,r,{...n,signal:this.signal}),this}delegate(e,t,r,n,s){return e.addEventListener(r,u=>{const f=u.target?.closest(t);f&&e.contains(f)&&n(u,f)},{...s,signal:this.signal}),this}abort(){this.ac?.abort(),this.ac=null}},v=[!1,"false",null,void 0],j=e=>{const t=e.hasAttribute("disabled"),r=e.getAttribute("disabled");return!!(t&&!v.includes(r))},y=new Map;function M(e,t){i.isSSR?(y.set(e,t),t.prototype._ssrTag=e):customElements.get(e)||customElements.define(e,t)}function w(){return y}var k=()=>typeof document<"u"?HTMLElement:i.HTMLElementMock,_=k(),L=e=>{if(e.tagName&&e.tagName!=="div")return e.tagName;const t=w();for(const[r,n]of t)if(e instanceof n)return r;return e.constructor.name.toLowerCase()},C=e=>{if(!e)return"";const t=L(e);return typeof e.serialize=="function"||e instanceof i.HTMLElementMock?e.serialize(t):""},$="data-ranui",H="data-ranui-sheet",S=(e,t)=>i.On(e,t,$),D=(e,t)=>i.Mn(e,t,H),l=new WeakMap,c="@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}}",b=new Map,K=e=>{const t=b.get(e);if(t!==void 0)return t;const r=e?`${e}
${c}`:c;return b.set(e,r),r},N=(e,t="",r={mode:"closed"})=>{const n=e.shadowRoot||l.get(e)||e.attachShadow(r);return l.set(e,n),S(n,K(t)),n},I=(e,t)=>{if(e.current===null)throw new Error(`ranui: ${t} is missing its .ref() on the builder`);return e.current},U=(e,t,r="")=>e.getAttribute(t)??r,z=(e,t,r,n={})=>{if(n.removeEmpty&&!r){e.removeAttribute(t);return}e.setAttribute(t,r??"")},Y=(e,t,r,n={})=>{if(r){e.setAttribute(t,""),n.aria&&e.setAttribute(`aria-${n.aria}`,"true");return}e.removeAttribute(t),n.aria&&e.removeAttribute(`aria-${n.aria}`)},q=(e,t,r,n,s)=>{if(r!=="sheet"||n===s)return;const u=e.getAttribute("sheet")||"";u&&D(t,u)};Object.defineProperty(exports,"EventManager",{enumerable:!0,get:function(){return R}});Object.defineProperty(exports,"RanElement",{enumerable:!0,get:function(){return _}});Object.defineProperty(exports,"adoptStyles",{enumerable:!0,get:function(){return S}});Object.defineProperty(exports,"clearThemeToken",{enumerable:!0,get:function(){return g}});Object.defineProperty(exports,"defineSSR",{enumerable:!0,get:function(){return M}});Object.defineProperty(exports,"ensureShadowRoot",{enumerable:!0,get:function(){return N}});Object.defineProperty(exports,"falseList",{enumerable:!0,get:function(){return v}});Object.defineProperty(exports,"getStringAttribute",{enumerable:!0,get:function(){return U}});Object.defineProperty(exports,"getTheme",{enumerable:!0,get:function(){return p}});Object.defineProperty(exports,"initTheme",{enumerable:!0,get:function(){return O}});Object.defineProperty(exports,"isDisabled",{enumerable:!0,get:function(){return j}});Object.defineProperty(exports,"renderToString",{enumerable:!0,get:function(){return C}});Object.defineProperty(exports,"setBooleanAttribute",{enumerable:!0,get:function(){return Y}});Object.defineProperty(exports,"setStringAttribute",{enumerable:!0,get:function(){return z}});Object.defineProperty(exports,"setTheme",{enumerable:!0,get:function(){return m}});Object.defineProperty(exports,"setThemeToken",{enumerable:!0,get:function(){return h}});Object.defineProperty(exports,"setThemeTokens",{enumerable:!0,get:function(){return P}});Object.defineProperty(exports,"shadowPart",{enumerable:!0,get:function(){return I}});Object.defineProperty(exports,"syncSheetAttribute",{enumerable:!0,get:function(){return q}});