UNPKG

@ussebastian/kitdigital

Version:

Kit Digital de la Universidad San Sebastián

3 lines (2 loc) 9.34 kB
/*! @ussebastian/kitdigital v0.21.0 | MIT (c) Asimov Consultores SpA - 2025 */ var t={name:"@ussebastian/kitdigital",version:"0.21.0",description:"Kit Digital de la Universidad San Sebastián",publishConfig:{access:"public",registry:"https://registry.npmjs.org/"},scripts:{build:"npm run build:html && npm run build:css && npm run build:js && npm run copy","build:html":"node build/staticWeb.js","build:css":"node esbuild.css.mjs","build:js":"rollup --config rollup.config.mjs",copy:" npm run copy:assets","copy:assets":"cp -r ./src/assets ./dist",watch:"node esbuild.watch.js",dev:"npm run watch",lint:'eslint --ext ".js," --ignore-path .gitignore .',prepare:"husky install"},keywords:["Design System","UI Kit","Universidad San Sebastián"],files:["/src","/dist","/docs"],contributors:["Elías Leyton","Allison Peña"],repository:{type:"git",url:"git+ssh://git@bitbucket.org/asimovers/uss-kit-digital.git"},author:"Asimov Consultores SpA",license:"MIT",bugs:{url:"https://bitbucket.org/asimovers/uss-kit-digital/issues"},devDependencies:{"@compodoc/live-server":"1.2.3","@rollup/plugin-commonjs":"23.0.1","@rollup/plugin-json":"5.0.0","@rollup/plugin-node-resolve":"15.0.0","@rollup/plugin-replace":"5.0.2","@rollup/plugin-terser":"0.4.3",autoprefixer:"10.4.7",bannerjs:"3.0.1",chokidar:"^3.6.0","directory-tree":"^3.5.1",ejs:"^3.1.9",esbuild:"0.19.0","esbuild-plugin-copy":"1.6.0","esbuild-plugin-resolve":"1.0.3","esbuild-sass-plugin":"2.2.6",eslint:"8.19.0","eslint-config-airbnb-base":"15.0.0","eslint-config-prettier":"^9.1.0","eslint-plugin-import":"2.26.0",husky:"8.0.0",mkdirp:"^3.0.1",postcss:"^8.4.38","postcss-import":"14.1.0",rollup:"3.2.3","rollup-plugin-folder-input":"1.0.1","rollup-plugin-scss":"3.0.0",sass:"1.55"},dependencies:{"@floating-ui/dom":"^1.6.3","@popperjs/core":"2.11.6",bootstrap:"5.2.3","embla-carousel":"^8.1.3","embla-carousel-autoplay":"8.1.3","embla-carousel-class-names":"^8.1.3"},optionalDependencies:{"@esbuild/linux-x64":"latest"}};class e{constructor(t,e="success",s=null){this.data=t,this.type=e,this.time=s,this.closing=!1,this.icons={success:' <i class="uss-icon uss-icon--xl ri-checkbox-circle-line"></i>',info:' <i class="uss-icon uss-icon--xl ri-information-line"></i>',warning:' <i class="uss-icon uss-icon--xl ri-alert-line"></i>',error:' <i class="uss-icon uss-icon--xl ri-information-line"></i>'},this.selectedIcon=this.icons[e],this.toastContainer=null,this.getOrCreateToastContainer(),this.toastElement=this.createAndConfigureToastElement(),this.stoppedTimer=!1,this.toastContainer.addEventListener("mouseenter",(()=>{this.stoppedTimer=!0})),this.toastContainer.addEventListener("mouseleave",(()=>{this.stoppedTimer=!1}))}setupTimer(){const t=setInterval((()=>{this.stoppedTimer||(this.time-=100,this.time<=0&&(clearInterval(t),this.closeToast()))}),100)}getOrCreateToastContainer(){this.toastContainer=document.querySelector(".uss-toast-container"),this.toastContainer||(this.toastContainer=document.createElement("div"),this.toastContainer.className="uss-toast-container",document.body.appendChild(this.toastContainer))}createAndConfigureToastElement(){const t=document.createElement("div");t.className=`uss-toast uss-toast--${this.type}`,t.innerHTML=`\n ${this.selectedIcon}\n <div class="uss-toast__content">\n <div class="uss-h6 ">${this.data.title}</div>\n ${this.data.description?`<p class="mb-12 pt-4">${this.data.description}</p>`:""}\n ${this.data.action?`<button class="uss-btn uss-btn--tertiary">${this.data.action.label}</button>`:""}\n \n </div>\n `;const e=t.querySelector("button");e&&e.addEventListener("click",this.data.action.fn);const s=document.createElement("button");return s.className="uss-toast__close-btn",s.innerHTML='<i class="uss-icon uss-icon--md ri-close-line" style="color: var(--text-strong)"></i>',s.onclick=()=>this.closeToast(),t.appendChild(s),t}openToast(){this.toastContainer.prepend(this.toastElement);const t=this.toastElement.offsetHeight+20;this.toastContainer.style.transition="transform 0ms ease",this.toastContainer.style.transform=`translateY(${t}px)`,setTimeout((()=>{this.toastContainer.style.transition="transform 100ms ease",this.toastContainer.style.transform="translateY(0px)",this.time&&this.setupTimer()}),0)}async closeToast(){this.closing||(this.stoppedTimer=!0,this.closing=!0,this.toastElement.style.transition="all 400ms ease",this.toastElement.style.scale="0.01",this.toastElement.style.transform="transformY(1000px)",this.toastElement.style.height=`${this.toastElement.offsetHeight}px`,this.toastElement.style.margin="0px",await this.animateHeightReduction(100),setTimeout((()=>{this.toastElement.remove(),this.closing=!1}),250))}async animateHeightReduction(t){const e=parseInt(this.toastElement.style.height,10),s=performance.now(),o=n=>{const i=(n-s)/t;if(i<1){const t=Math.max(e*(1-i),0);this.toastElement.style.height=`${t}px`,requestAnimationFrame(o)}else this.toastElement.style.height="0px"};requestAnimationFrame(o)}static show(t,s,o){new e(t,s,o).openToast()}}const s={Tooltip:{docs:"",selectors:["[data-uss-tooltip-content]","[data-uss-tooltip-content-element-id]"],importComponent:async()=>(await import("./Tooltip.js")).Tooltip},Collapsable:{docs:"",selectors:["[data-uss-collapsable-trigger-for]"],importComponent:async()=>(await import("./Collapsable.js")).Collapsable},Carousel:{selectors:"[data-uss-carousel]",importComponent:async()=>(await import("./Carousel.js")).Carousel},CarouselV2:{selectors:".uss-carousel-v2",importComponent:async()=>(await import("./CarouselV2.js")).CarouselV2},Modal:{selectors:"[data-uss-modal-id]",importComponent:async()=>(await import("./Modal.js")).Modal},Tabs:{selectors:".uss-tabs",importComponent:async()=>(await import("./Tabs.js")).Tabs},Navbar:{selectors:[".uss-mainnav__menu"],importComponent:async()=>(await import("./Navbar.js")).Navbar},NavbarMobile:{selectors:[".uss-mainnav--mobile"],importComponent:async()=>(await import("./NavbarMobile.js")).NavbarMobile}},o=async(t,e=document,o=!0)=>{const n=s[t];n.componentName=t;const{importComponent:i,selectors:a}=n,r=e.querySelectorAll(a);if(!r.length)return;let l=await Promise.all(Array.from(r).map((async(e,s)=>{const a=(async(t,e,s,o)=>{const n=+new Date,i=s.getAttribute("id")||`${e}-${o}__${n}`,a=await t();let r=null;return s.getAttribute("data-uss-mounted")?console.warn(`Component ${e} with key ${i} is already mounted in the element:`,s):(r=new a(s,i),r.mount(s,i),s.setAttribute("data-uss-mounted",!0)),{key:i,instance:r}})(i,t,e,s);return n.innerComponnets&&o&&(async(t,e)=>{const s=["AgendaSlider","AgendaPagination","AgendaRow"].includes(t.componentName),o=Array.isArray(t.innerComponnets)?t.innerComponnets:[t.innerComponnets],n=s?"data-uss-agenda-fetched":"data-uss-mounted",i=()=>{"true"===e.getAttribute(n)?o.forEach((t=>{window.USSKitDigital.mountComponent(t,e,!1)})):setTimeout(i,100)};i()})(n,e),a})));l=l.reduce(((t,{key:e,instance:s})=>(t[e]=s,t)),{}),window?.USSKitDigital?.mountedComponents||(window.USSKitDigital.mountedComponents={[t]:{}}),window.USSKitDigital.mountedComponents[t]={...window.USSKitDigital.mountedComponents[t],...l}},n=t=>{const e=window.USSKitDigital.mountedComponents[t];e&&(Object.values(e).forEach((t=>{t.unMount()})),window.USSKitDigital.mountedComponents[t]={})},i=async()=>{window.USSKitDigital.componentNames.forEach((t=>{window.USSKitDigital.options.preventMount.includes(t)||window.USSKitDigital.mountComponent(t)}))},a=()=>{window.USSKitDigital.componentNames.forEach((t=>{window.USSKitDigital.unMountComponent(t)}))},r={preventMount:[]};document.addEventListener("DOMContentLoaded",(async()=>{await async function(e=r){const l=Object.keys(s).reduce(((t,e)=>(t[e]={...s[e]},t)),{});window.USSKitDigital={version:t.version,author:t.author,contributors:t.contributors,documentation:t.documentation,componentNames:Object.keys(s),componentsSharedState:{},mountedComponents:{},mountComponent:o,unMountComponent:n,mountAllComponents:i,unMountAllComponents:a,components:l,options:e}}(),window.USSKitDigital.mountAllComponents(),function(){function t(){document.documentElement.classList.remove("dark"),localStorage.theme="light"}function e(){document.documentElement.classList.add("dark"),localStorage.theme="dark"}function s(){const s=window.USSKitDigital.preventThemeToggle;!0!==s&&"true"!==s&&("dark"===localStorage.theme?t():e(),window.parent.postMessage({type:"toggleTheme",theme:document.documentElement.classList.contains("dark")?"dark":"light"},"*"))}window.USSKitDigital||(window.USSKitDigital={});const o=!("theme"in localStorage)&&window.matchMedia("(prefers-color-scheme: dark)").matches;"dark"===localStorage.theme||o?e():t(),document.addEventListener("keydown",(t=>{"BODY"!==t.target.tagName||"t"!==t.key&&"T"!==t.key||s()})),window.USSKitDigital.setThemeToDark=e,window.USSKitDigital.setThemeToLight=t,window.USSKitDigital.toggleTheme=s,window.USSKitDigital.preventThemeToggle=!1}(),document.querySelectorAll("[data-remove-on-click]").forEach((t=>{("true"===t.dataset.removeOnClick||""===t.dataset.removeOnClick)&&t.addEventListener("click",(()=>t.remove()))})),document.querySelectorAll("[data-remove-target-on-click]").forEach((t=>{const e=t.dataset.removeTargetOnClick,s=document.querySelector(e);s&&t.addEventListener("click",(()=>s.remove()))})),window.USSKitDigital={Static:{Toast:e}}}));