From 26ec54cf4ef296aa5d09ddd52300677f6c15b63d Mon Sep 17 00:00:00 2001 From: sairaj mote Date: Mon, 19 Jul 2021 00:56:26 +0530 Subject: [PATCH] Added two more components documentation --- components/assets/ham-menu-closed.png | Bin 0 -> 74223 bytes components/assets/ham-menu-open.png | Bin 0 -> 156244 bytes components/css/main.css | 20 ++- components/css/main.min.css | 2 +- components/css/main.scss | 21 ++- components/dist/carousel.js | 45 +++-- components/dist/carousel.min.js | 2 +- components/dist/menu.js | 201 ++++++++++++---------- components/dist/menu.min.js | 2 +- components/dist/tabs.js | 6 +- components/dist/tabs.min.js | 2 +- components/dist/text-field.js | 2 +- components/dist/text-field.min.js | 2 +- components/dist/theme-toggle.js | 4 +- components/dist/theme-toggle.min.js | 2 +- components/index.html | 237 +++++++++++++++++++++----- components/index.min.html | 60 +++++-- 17 files changed, 428 insertions(+), 180 deletions(-) create mode 100644 components/assets/ham-menu-closed.png create mode 100644 components/assets/ham-menu-open.png diff --git a/components/assets/ham-menu-closed.png b/components/assets/ham-menu-closed.png new file mode 100644 index 0000000000000000000000000000000000000000..cbe542a3935e7bf1674535cfcccce58b079d84b2 GIT binary patch literal 74223 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 hDU:last-child{padding-bottom:3rem}#side_nav h4{letter-spacing:.08em;text-transform:uppercase;padding:1.5rem}.right{max-height:100%;overflow-y:auto;padding:1.5rem}.right h1{margin-bottom:1.5rem}.list{margin-bottom:.8rem}ol,sm-tab-header{margin-bottom:1.5rem}ol li,sm-carousel{margin-bottom:1rem}.list__item{padding:.8rem 1.5rem;text-transform:capitalize}.list__item--active{color:var(--accent-color);background:rgba(var(--text-color),.06)}.card{margin-right:1rem;border-radius:.4rem;padding:1.5rem;min-width:min(24rem,80%);background-color:rgba(var(--text-color),.06)}.page{flex-direction:column;padding-bottom:3rem}ol{padding:.6rem 1rem;max-width:75ch}ol li:last-of-type{margin-bottom:0}strong.important{padding:.5rem;margin:.5rem 0;border-radius:.3rem;color:rgba(0,0,0,.8);background-color:khaki}.highlight{display:inline-flex;font-family:"Roboto Mono",monospace;background-color:rgba(var(--text-color),.1);border-radius:.2rem;padding:.1rem .5rem;line-height:1.6}#total_components_count{font-size:4rem}#components_selection_list{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));padding:1.5rem 0 3rem}@media screen and (max-width:640px){main{grid-template-rows:auto 1fr;grid-template-columns:1fr}}@media screen and (min-width:640px){sm-popup{--width:32rem}#main_header{padding:1rem 1.5rem;grid-area:main-header}#side_nav_button{display:none}main{grid-template-columns:14rem minmax(0,1fr);grid-template-areas:"main-header main-header" ". ."}.right{display:grid;grid-template-columns:1fr 90% 1fr}.right>*{grid-column:2/3}.page__title{font-size:2.5rem}#overview_page{display:grid;gap:1.5rem;grid-template-columns:1fr auto}#overview_page>div:first-of-type{grid-column:2/3;text-align:right}#overview_page>div:nth-of-type(2){grid-row:1/2}}@media (any-hover:hover){::-webkit-scrollbar{width:.5rem;height:.5rem}::-webkit-scrollbar-thumb{background:rgba(var(--text-color),.3);border-radius:1rem}::-webkit-scrollbar-thumb:hover{background:rgba(var(--text-color),.5)}.list__item:hover{background:rgba(var(--text-color),.1);cursor:pointer}} \ No newline at end of file +p,strong{max-width:65ch}p,pre{line-height:1.7}.screenshot,img{object-fit:cover}.highlight,button{display:inline-flex}.list,ul{list-style:none}.hide,.ripple{pointer-events:none}*{padding:0;margin:0;box-sizing:border-box;font-family:Roboto,sans-serif}:root{font-size:clamp(1rem,1.2vmax,3rem)}body,html{height:100%;scroll-behavior:smooth}body{color:rgba(var(--text-color),1);background:rgba(var(--background-color),1)}body,body *{--accent-color:#0D7377;--text-color:17,17,17;--background-color:255,255,255;--danger-color:red}body[data-theme=dark],body[data-theme=dark] *{--accent-color:#32E0C4;--text-color:240,240,240;--text-color-light:170,170,170;--background-color:10,10,10;--danger-color:rgb(255, 106, 106)}p{font-size:.8;margin-bottom:1.5rem;color:rgba(var(--text-color),.8)}p:not(:last-of-type){margin-bottom:1rem}a{color:inherit;text-decoration:none}a:focus-visible{box-shadow:0 0 0 .1rem rgba(var(--text-color),1) inset}button{border:none;background-color:inherit}.table,.tr{display:grid}a:any-link:focus-visible{outline:solid rgba(var(--text-color),1)}sm-button{--border-radius:0.3rem}.table{gap:.5rem;margin:1rem 0;position:relative;text-align:left;overflow-x:auto;border-radius:.3rem;border-collapse:separate;border-spacing:1rem 1.5rem;background-color:rgba(var(--text-color),.04)}.table p:only-of-type{margin-bottom:0}.tr{gap:1rem;padding:1rem;grid-template-columns:11rem 1fr;width:100%}.tr:nth-of-type(odd){background-color:rgba(var(--text-color),.04)}.tr p{min-width:30ch}.hide{opacity:0}.hide-completely{display:none!important}.no-transformations{transform:none!important}.overflow-ellipsis{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.breakable{overflow-wrap:break-word;word-wrap:break-word;-ms-word-break:break-all;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.full-bleed{grid-column:1/4}.h1{font-size:2.5rem}.h2{font-size:2rem}.h3{font-size:1.4rem}.h4{font-size:1rem}.h5{font-size:.8rem}.uppercase{text-transform:uppercase}.capitalize,h2{text-transform:capitalize}.flex{display:flex}.grid,main{display:grid}.grid-3{grid-template-columns:1fr auto auto}.flow-column{grid-auto-flow:column}.gap-0-5{gap:.5rem}.gap-1{gap:1rem}.gap-1-5{gap:1.5rem}.gap-2{gap:2rem}.gap-3{gap:3rem}.text-align-right{text-align:right}.auto-grid-2,.text-center{text-align:center}.align-start{align-items:flex-start}.align-center{align-items:center}.justify-start{justify-content:start}.auto-grid-2,.justify-center{justify-content:center}.justify-right{margin-left:auto}.button__icon--right,.comp-checkbox__title{margin-left:.5rem}.align-self-center{align-self:center}.justify-self-center{justify-self:center}.justify-self-start{justify-self:start}.justify-self-end{justify-self:end}.direction-column,.list{flex-direction:column}.space-between{justify-content:space-between}.w-100{width:100%}.color-0-8{color:rgba(var(--text-color),.8)}.weight-400{font-weight:400}.weight-500{font-weight:500}.ripple{position:absolute;border-radius:50%;transform:scale(0);background:rgba(var(--text-color),.16)}.interact{position:relative;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:transparent}.observe-empty-state:empty{display:none}.observe-empty-state:not(:empty)~.empty-state{display:none}.icon{width:1.5rem;height:1.5rem;fill:rgba(var(--text-color),.9)}.button__icon{height:1.2rem;width:1.2rem}.button__icon--left{margin-right:.5rem}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#50CB93}.token.punctuation,.token.tag{color:#29B6F6}.token.attr-name,.token.deleted,.token.namespace{color:#1DE9B6}.token.function-name{color:#6196cc}.token.boolean,.token.function,.token.number{color:#f08d49}.token.class-name,.token.constant,.token.property,.token.symbol{color:#f8c555}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:#FF6767}.token.attr-value,.token.char,.token.regex,.token.string,.token.variable{color:#84FFFF}.token.entity,.token.operator,.token.url{color:#67cdcc}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}code,code *{color:rgba(255,255,255,.9)}pre{max-width:100%;margin:1rem 0;padding:0 1.5rem;overflow-x:auto;font-size:.9rem;font-weight:500;white-space:pre;border-radius:.5rem;background:rgba(0,0,0,.9)}code{border-radius:.3rem;font-weight:400;padding:.2rem .4rem;background:rgba(var(--text-color),.1)}code *{font-family:"Roboto Mono",monospace}pre code{line-height:1.4;border-radius:none;background:0 0;width:100%}h1,h2,h3,h4.h5{font-family:Poppins,sans-serif}h2{margin:3rem 0 1rem}main{height:100%}.card,.list,.list__item,.page,strong.important{display:flex}#main_header{padding:.5rem 1.5rem;border-bottom:1px solid rgba(var(--text-color),.1)}#side_nav_button{padding:.5rem;margin-left:-.5rem}#side_nav>:last-child{padding-bottom:3rem}#side_nav h4{font-size:.9rem;letter-spacing:.08em;text-transform:uppercase;padding:1.5rem}.right{max-height:100%;overflow-y:auto;padding:1.5rem}.right h1{margin-bottom:1.5rem}.list{margin-bottom:.8rem}ol,sm-tab-header{margin-bottom:1.5rem}ol li,sm-carousel{margin-bottom:1rem}.list__item{padding:.8rem 1.5rem;text-transform:capitalize}.list__item--active{color:var(--accent-color);background:rgba(var(--text-color),.06)}.card{flex-direction:column;margin-right:1rem;border-radius:.4rem;padding:1.5rem;min-width:min(24rem,80%);background-color:rgba(var(--text-color),.06)}.page{flex-direction:column;padding-bottom:3rem}ol{padding:.6rem 1rem;max-width:75ch}ol li:last-of-type{margin-bottom:0}strong.important{padding:.5rem;margin:.5rem 0;border-radius:.3rem;color:rgba(0,0,0,.8);background-color:khaki}.highlight{font-family:"Roboto Mono",monospace;background-color:rgba(var(--text-color),.1);border-radius:.2rem;padding:.1rem .5rem;font-size:.9rem;line-height:1.6}#total_components_count{font-size:4rem}#components_selection_list{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));padding:1.5rem 0 3rem}.auto-grid-2{justify-items:center;grid-template-columns:repeat(auto-fill,minmax(18rem,1fr))}.screenshot{object-position:top;height:30rem;width:min(16rem,100%);border-radius:1rem;justify-self:center;box-shadow:0 .5rem 1.5rem -.5rem rgba(0,0,0,.3),0 0 0 .3rem #000}@media screen and (max-width:640px){main{grid-template-rows:auto 1fr;grid-template-columns:1fr}}@media screen and (min-width:640px){sm-popup{--width:32rem}#main_header{padding:1rem 1.5rem;grid-area:main-header}#side_nav_button{display:none}main{grid-template-columns:14rem minmax(0,1fr);grid-template-areas:"main-header main-header" ". ."}.right{display:grid;grid-template-columns:1fr 90% 1fr}.right>*{grid-column:2/3}.page__title{font-size:2.5rem}#overview_page{display:grid;gap:1.5rem;grid-template-columns:1fr auto}#overview_page>div:first-of-type{grid-column:2/3;text-align:right}#overview_page>div:nth-of-type(2){grid-row:1/2}}@media (any-hover:hover){::-webkit-scrollbar{width:.5rem;height:.5rem}::-webkit-scrollbar-thumb{background:rgba(var(--text-color),.3);border-radius:1rem}::-webkit-scrollbar-thumb:hover{background:rgba(var(--text-color),.5)}.list__item:hover{background:rgba(var(--text-color),.1);cursor:pointer}} \ No newline at end of file diff --git a/components/css/main.scss b/components/css/main.scss index 99af1b3..a538a5f 100644 --- a/components/css/main.scss +++ b/components/css/main.scss @@ -89,7 +89,7 @@ ul{ display: grid; gap: 1rem; padding: 1rem; - grid-template-columns: 12rem 1fr; + grid-template-columns: 11rem 1fr; width: 100%; &:nth-of-type(odd){ background-color: rgba(var(--text-color), .04); @@ -252,8 +252,6 @@ ul{ .observe-empty-state:not(:empty) ~ .empty-state{ display: none; } - - .icon{ width: 1.5rem; height: 1.5rem; @@ -360,6 +358,7 @@ code{ font-weight: 400; padding: 0.2rem 0.4rem; background: rgba(var(--text-color), .1); + color: rgba(255, 255, 255, 0.9); } code *{ color: rgba(255, 255, 255, 0.9); @@ -491,6 +490,22 @@ strong.important{ .comp-checkbox__title{ margin-left: 0.5rem; } +.auto-grid-2{ + justify-content: center; + justify-items: center; + text-align: center; + grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr)); +} +.screenshot{ + object-fit: cover; + object-position: top; + height: 30rem; + width: min(16rem, 100%); + border-radius: 1rem; + justify-self: center; + box-shadow: 0 0.5rem 1.5rem -0.5rem rgba(0,0,0, 0.3), + 0 0 0 0.3rem black; +} @media screen and (max-width: 640px){ main{ grid-template-rows: auto 1fr; diff --git a/components/dist/carousel.js b/components/dist/carousel.js index 86c1dd1..a2f6196 100644 --- a/components/dist/carousel.js +++ b/components/dist/carousel.js @@ -23,6 +23,10 @@ smCarousel.innerHTML = ` --nav-box-shadow: 0 0.2rem 0.2rem #00000020, 0 0.5rem 1rem #00000040; --indicator-top: auto; --indicator-bottom: -1.5rem; + --indicator-height: 0.2rem; + --indicator-width: 0.4rem; + --indicator-border-radius: 0.4rem; + --indicators-gap: 0.5rem; --active-indicator-color: var(--accent-color); } .carousel__button{ @@ -39,7 +43,7 @@ smCarousel.innerHTML = ` -webkit-box-shadow: var(--nav-box-shadow); box-shadow: var(--nav-box-shadow); -webkit-tap-highlight-color: transparent; - transition: transform 0.3s; + transition: transform 0.3s, opacity 0.3s; z-index: 1; border-radius: 3rem; padding: 0.5rem; @@ -96,22 +100,24 @@ button:focus-visible{ -ms-flex-pack: center; justify-content: center; position: absolute; + padding: 0.5rem 0; top: var(--indicator-top); bottom: var(--indicator-bottom); - gap: 0.5rem; + gap: var(--indicators-gap); width: 100%; } -.dot{ +.indicator{ position: relative; - padding: 0.2rem; + height: var(--indicator-height); + width: var(--indicator-width); background: rgba(var(--text-color), 0.3); - border-radius: 1rem; + border-radius: var(--indicator-border-radius); -webkit-transition: 0.2s; -o-transition: 0.2s; transition: 0.2s; cursor: pointer; } -.dot.active{ +.indicator.active{ -webkit-transform: scale(1.5); -ms-transform: scale(1.5); transform: scale(1.5); @@ -133,9 +139,24 @@ slot::slotted(*){ .carousel{ overflow: hidden; } + .carousel__button{ + opacity: 0.8; + } + :host(:hover) .carousel__button{ + opacity: 1; + } .left,.right{ display: none; } + .indicators{ + transition: gap 0.3s; + } + .indicators:hover{ + gap: calc(var(--indicators-gap) * 2); + } + .indicators:hover .indicator{ + transform: scale(2); + } } @media (hover: none){ ::-webkit-scrollbar-track { @@ -252,15 +273,15 @@ customElements.define('sm-carousel', class extends HTMLElement { } createIndicator(index) { - let dot = document.createElement('div') - dot.classList.add('dot') - dot.dataset.rank = index - return dot + let indicator = document.createElement('div') + indicator.classList.add('indicator') + indicator.dataset.rank = index + return indicator } handleIndicatorClick(e) { - if (e.target.closest('.dot')) { - const slideNum = parseInt(e.target.closest('.dot').dataset.rank) + if (e.target.closest('.indicator')) { + const slideNum = parseInt(e.target.closest('.indicator').dataset.rank) if (this.activeSlideNum !== slideNum) { this.showSlide(slideNum) } diff --git a/components/dist/carousel.min.js b/components/dist/carousel.min.js index 99d3c9c..fff5728 100644 --- a/components/dist/carousel.min.js +++ b/components/dist/carousel.min.js @@ -1 +1 @@ -const smCarousel=document.createElement("template");smCarousel.innerHTML='\n\n\n',customElements.define("sm-carousel",class extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}).append(smCarousel.content.cloneNode(!0)),this.isAutoPlaying=!1,this.autoPlayInterval=5e3,this.autoPlayTimeout,this.initialTimeout,this.activeSlideNum=0,this.carouselItems,this.indicators,this.showIndicator=!1,this.carousel=this.shadowRoot.querySelector(".carousel"),this.carouselContainer=this.shadowRoot.querySelector(".carousel-container"),this.carouselSlot=this.shadowRoot.querySelector("slot"),this.navButtonRight=this.shadowRoot.querySelector(".carousel__button--right"),this.navButtonLeft=this.shadowRoot.querySelector(".carousel__button--left"),this.indicatorsContainer=this.shadowRoot.querySelector(".indicators"),this.scrollLeft=this.scrollLeft.bind(this),this.scrollRight=this.scrollRight.bind(this),this.handleIndicatorClick=this.handleIndicatorClick.bind(this),this.showSlide=this.showSlide.bind(this),this.nextSlide=this.nextSlide.bind(this),this.autoPlay=this.autoPlay.bind(this),this.startAutoPlay=this.startAutoPlay.bind(this),this.stopAutoPlay=this.stopAutoPlay.bind(this)}static get observedAttributes(){return["indicator","autoplay","interval"]}scrollLeft(){this.carousel.scrollBy({left:-this.scrollDistance,behavior:"smooth"})}scrollRight(){this.carousel.scrollBy({left:this.scrollDistance,behavior:"smooth"})}showSlide(t){this.carousel.scrollTo({left:this.carouselItems[t].getBoundingClientRect().left-this.carousel.getBoundingClientRect().left+this.carousel.scrollLeft,behavior:"smooth"})}nextSlide(){if(!this.carouselItems)return;let t=this.activeSlideNum+1{this.autoPlay()},this.autoPlayInterval))}startAutoPlay(){this.setAttribute("autoplay","")}stopAutoPlay(){this.removeAttribute("autoplay")}createIndicator(t){let n=document.createElement("div");return n.classList.add("dot"),n.dataset.rank=t,n}handleIndicatorClick(t){if(t.target.closest(".dot")){const n=parseInt(t.target.closest(".dot").dataset.rank);this.activeSlideNum!==n&&this.showSlide(n)}}handleKeyDown(t){"ArrowLeft"===t.code?this.scrollRight():"ArrowRight"===t.code&&this.scrollRight()}connectedCallback(){let t=document.createDocumentFragment();this.carouselSlot.addEventListener("slotchange",n=>{this.carouselItems=this.carouselSlot.assignedElements(),this.carouselItems.forEach(t=>e.observe(t)),this.carouselItems.length>0?(i.observe(this.carouselItems[0]),o.observe(this.carouselItems[this.carouselItems.length-1])):(navButtonLeft.classList.add("hide"),navButtonRight.classList.add("hide"),i.disconnect(),o.disconnect()),this.showIndicator&&(this.indicatorsContainer.innerHTML="",this.carouselItems.forEach((n,e)=>{t.append(this.createIndicator(e)),n.dataset.rank=e}),this.indicatorsContainer.append(t),this.indicators=this.indicatorsContainer.children)});const n={threshold:.9,root:this},e=new IntersectionObserver(t=>{t.forEach(t=>{if(this.showIndicator){const n=parseInt(t.target.dataset.rank);t.isIntersecting?(this.indicators[n].classList.add("active"),this.activeSlideNum=n):this.indicators[n].classList.remove("active")}})},n),i=new IntersectionObserver(t=>{t.forEach(t=>{t.isIntersecting?this.navButtonLeft.classList.add("hide"):this.navButtonLeft.classList.remove("hide")})},n),o=new IntersectionObserver(t=>{t.forEach(t=>{t.isIntersecting?this.navButtonRight.classList.add("hide"):this.navButtonRight.classList.remove("hide")})},n),s=new ResizeObserver(t=>{t.forEach(t=>{if(t.contentBoxSize){const n=Array.isArray(t.contentBoxSize)?t.contentBoxSize[0]:t.contentBoxSize;this.scrollDistance=.6*n.inlineSize}else this.scrollDistance=.6*t.contentRect.width})});s.observe(this),this.addEventListener("keydown",this.handleKeyDown),this.navButtonRight.addEventListener("click",this.scrollRight),this.navButtonLeft.addEventListener("click",this.scrollLeft),this.indicatorsContainer.addEventListener("click",this.handleIndicatorClick)}attributeChangedCallback(t,n,e){n!==e&&("indicator"===t&&(this.showIndicator=this.hasAttribute("indicator")),"autoplay"===t&&(this.hasAttribute("autoplay")?this.initialTimeout=setTimeout(()=>{this.isAutoPlaying=!0,this.autoPlay()},this.autoPlayInterval):(this.isAutoPlaying=!1,clearTimeout(this.autoPlayTimeout),clearTimeout(this.initialTimeout))),"interval"===t&&(this.hasAttribute("interval")&&""!==this.getAttribute("interval").trim()?this.autoPlayInterval=Math.abs(parseInt(this.getAttribute("interval").trim())):this.autoPlayInterval=5e3))}disconnectedCallback(){this.navButtonRight.removeEventListener("click",this.scrollRight),this.navButtonLeft.removeEventListener("click",this.scrollLeft),this.indicatorsContainer.removeEventListener("click",this.handleIndicatorClick)}}); \ No newline at end of file +const smCarousel=document.createElement("template");smCarousel.innerHTML='\n\n\n',customElements.define("sm-carousel",class extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}).append(smCarousel.content.cloneNode(!0)),this.isAutoPlaying=!1,this.autoPlayInterval=5e3,this.autoPlayTimeout,this.initialTimeout,this.activeSlideNum=0,this.carouselItems,this.indicators,this.showIndicator=!1,this.carousel=this.shadowRoot.querySelector(".carousel"),this.carouselContainer=this.shadowRoot.querySelector(".carousel-container"),this.carouselSlot=this.shadowRoot.querySelector("slot"),this.navButtonRight=this.shadowRoot.querySelector(".carousel__button--right"),this.navButtonLeft=this.shadowRoot.querySelector(".carousel__button--left"),this.indicatorsContainer=this.shadowRoot.querySelector(".indicators"),this.scrollLeft=this.scrollLeft.bind(this),this.scrollRight=this.scrollRight.bind(this),this.handleIndicatorClick=this.handleIndicatorClick.bind(this),this.showSlide=this.showSlide.bind(this),this.nextSlide=this.nextSlide.bind(this),this.autoPlay=this.autoPlay.bind(this),this.startAutoPlay=this.startAutoPlay.bind(this),this.stopAutoPlay=this.stopAutoPlay.bind(this)}static get observedAttributes(){return["indicator","autoplay","interval"]}scrollLeft(){this.carousel.scrollBy({left:-this.scrollDistance,behavior:"smooth"})}scrollRight(){this.carousel.scrollBy({left:this.scrollDistance,behavior:"smooth"})}showSlide(t){this.carousel.scrollTo({left:this.carouselItems[t].getBoundingClientRect().left-this.carousel.getBoundingClientRect().left+this.carousel.scrollLeft,behavior:"smooth"})}nextSlide(){if(!this.carouselItems)return;let t=this.activeSlideNum+1{this.autoPlay()},this.autoPlayInterval))}startAutoPlay(){this.setAttribute("autoplay","")}stopAutoPlay(){this.removeAttribute("autoplay")}createIndicator(t){let n=document.createElement("div");return n.classList.add("indicator"),n.dataset.rank=t,n}handleIndicatorClick(t){if(t.target.closest(".indicator")){const n=parseInt(t.target.closest(".indicator").dataset.rank);this.activeSlideNum!==n&&this.showSlide(n)}}handleKeyDown(t){"ArrowLeft"===t.code?this.scrollRight():"ArrowRight"===t.code&&this.scrollRight()}connectedCallback(){let t=document.createDocumentFragment();this.carouselSlot.addEventListener("slotchange",n=>{this.carouselItems=this.carouselSlot.assignedElements(),this.carouselItems.forEach(t=>i.observe(t)),this.carouselItems.length>0?(o.observe(this.carouselItems[0]),e.observe(this.carouselItems[this.carouselItems.length-1])):(navButtonLeft.classList.add("hide"),navButtonRight.classList.add("hide"),o.disconnect(),e.disconnect()),this.showIndicator&&(this.indicatorsContainer.innerHTML="",this.carouselItems.forEach((n,i)=>{t.append(this.createIndicator(i)),n.dataset.rank=i}),this.indicatorsContainer.append(t),this.indicators=this.indicatorsContainer.children)});const n={threshold:.9,root:this},i=new IntersectionObserver(t=>{t.forEach(t=>{if(this.showIndicator){const n=parseInt(t.target.dataset.rank);t.isIntersecting?(this.indicators[n].classList.add("active"),this.activeSlideNum=n):this.indicators[n].classList.remove("active")}})},n),o=new IntersectionObserver(t=>{t.forEach(t=>{t.isIntersecting?this.navButtonLeft.classList.add("hide"):this.navButtonLeft.classList.remove("hide")})},n),e=new IntersectionObserver(t=>{t.forEach(t=>{t.isIntersecting?this.navButtonRight.classList.add("hide"):this.navButtonRight.classList.remove("hide")})},n),s=new ResizeObserver(t=>{t.forEach(t=>{if(t.contentBoxSize){const n=Array.isArray(t.contentBoxSize)?t.contentBoxSize[0]:t.contentBoxSize;this.scrollDistance=.6*n.inlineSize}else this.scrollDistance=.6*t.contentRect.width})});s.observe(this),this.addEventListener("keydown",this.handleKeyDown),this.navButtonRight.addEventListener("click",this.scrollRight),this.navButtonLeft.addEventListener("click",this.scrollLeft),this.indicatorsContainer.addEventListener("click",this.handleIndicatorClick)}attributeChangedCallback(t,n,i){n!==i&&("indicator"===t&&(this.showIndicator=this.hasAttribute("indicator")),"autoplay"===t&&(this.hasAttribute("autoplay")?this.initialTimeout=setTimeout(()=>{this.isAutoPlaying=!0,this.autoPlay()},this.autoPlayInterval):(this.isAutoPlaying=!1,clearTimeout(this.autoPlayTimeout),clearTimeout(this.initialTimeout))),"interval"===t&&(this.hasAttribute("interval")&&""!==this.getAttribute("interval").trim()?this.autoPlayInterval=Math.abs(parseInt(this.getAttribute("interval").trim())):this.autoPlayInterval=5e3))}disconnectedCallback(){this.navButtonRight.removeEventListener("click",this.scrollRight),this.navButtonLeft.removeEventListener("click",this.scrollLeft),this.indicatorsContainer.removeEventListener("click",this.handleIndicatorClick)}}); \ No newline at end of file diff --git a/components/dist/menu.js b/components/dist/menu.js index e9b8ee1..fdbdfc8 100644 --- a/components/dist/menu.js +++ b/components/dist/menu.js @@ -6,12 +6,16 @@ smMenu.innerHTML = ` margin: 0; -webkit-box-sizing: border-box; box-sizing: border-box; -} +} +:host{ + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; +} .menu{ display: -ms-grid; display: grid; place-items: center; - position: relative; height: 2rem; width: 2rem; outline: none; @@ -27,16 +31,6 @@ smMenu.innerHTML = ` -o-transition: background 0.3s; transition: background 0.3s; } -:host{ - display: -webkit-inline-box; - display: -ms-inline-flexbox; - display: inline-flex; -} -.hide{ - opacity: 0; - pointer-events: none; - user-select: none; -} .select{ position: relative; display: -webkit-box; @@ -70,42 +64,29 @@ smMenu.innerHTML = ` min-width: -webkit-max-content; min-width: -moz-max-content; min-width: max-content; - -webkit-transform: translateY(-1rem); - -ms-transform: translateY(-1rem); - transform: translateY(-1rem); -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; background: rgba(var(--background-color), 1); - -webkit-transition: opacity 0.3s, -webkit-transform 0.3s; - transition: opacity 0.3s, -webkit-transform 0.3s; - -o-transition: opacity 0.3s, transform 0.3s; - transition: opacity 0.3s, transform 0.3s; - transition: opacity 0.3s, transform 0.3s, -webkit-transform 0.3s; - border: solid 1px rgba(var(--text-color), 0.2); border-radius: 0.3rem; z-index: 1; - -webkit-box-shadow: 0.4rem 0.8rem 1.2rem #00000030; - box-shadow: 0.4rem 0.8rem 1.2rem #00000030; - top: 100%; + -webkit-box-shadow: 0 0.5rem 1.5rem -0.5rem rgba(0,0,0,0.3); + box-shadow: 0 0.5rem 1.5rem -0.5rem rgba(0,0,0,0.3); bottom: auto; } -.moveUp{ - top: auto; - bottom: 100%; - -webkit-transform: translateY(3rem); - -ms-transform: translateY(3rem); - transform: translateY(3rem); +.hide{ + display: none; } -.moveLeft{ - left: auto; - right: 0; -} -.no-transformations{ - -webkit-transform: none !important; - -ms-transform: none !important; - transform: none !important; +@media screen and (max-width: 640px){ + .options{ + position: fixed; + left: 0; + right: 0; + bottom: 0; + top: auto; + border-radius: 0.5rem 0.5rem 0 0; + } } @media (hover: hover){ .menu:hover .icon{ @@ -128,15 +109,24 @@ customElements.define('sm-menu', class extends HTMLElement { mode: 'open' }).append(smMenu.content.cloneNode(true)) - this.open = false; + this.isOpen = false; this.availableOptions this.containerDimensions + this.animOptions = { + duration: 200, + easing: 'ease' + } + this.optionList = this.shadowRoot.querySelector('.options') this.menu = this.shadowRoot.querySelector('.menu') this.icon = this.shadowRoot.querySelector('.icon') this.expand = this.expand.bind(this) - + this.collapse = this.collapse.bind(this) + this.toggle = this.toggle.bind(this) + this.handleKeyDown = this.handleKeyDown.bind(this) + this.handleClickoutSide = this.handleClickoutSide.bind(this) + } static get observedAttributes() { return ['value'] @@ -147,58 +137,64 @@ customElements.define('sm-menu', class extends HTMLElement { set value(val) { this.setAttribute('value', val) } - expand(){ - if (!this.open) { + expand() { + if (!this.isOpen) { this.optionList.classList.remove('hide') - this.optionList.classList.add('no-transformations') - this.open = true - this.icon.classList.add('focused') - this.availableOptions.forEach(option => { - option.setAttribute('tabindex', '0') - }) + this.optionList.animate([ + { + transform: window.innerWidth < 640 ? 'translateY(1.5rem)' : 'translateY(-1rem)', + opacity: '0' + }, + { + transform: 'none', + opacity: '1' + }, + ], this.animOptions) + .onfinish = () => { + this.isOpen = true + this.icon.classList.add('focused') + } } } collapse() { - if (this.open) { - this.open = false - this.icon.classList.remove('focused') - this.optionList.classList.add('hide') - this.optionList.classList.remove('no-transformations') - this.availableOptions.forEach(option => { - option.removeAttribute('tabindex') - }) + if (this.isOpen) { + this.optionList.animate([ + { + transform: 'none', + opacity: '1' + }, + { + transform: window.innerWidth < 640 ? 'translateY(1.5rem)' : 'translateY(-1rem)', + opacity: '0' + }, + ], this.animOptions) + .onfinish = () => { + this.isOpen = false + this.icon.classList.remove('focused') + this.optionList.classList.add('hide') + } } } - connectedCallback() { - this.setAttribute('role', 'listbox') - const slot = this.shadowRoot.querySelector('.options slot') - slot.addEventListener('slotchange', e => { - this.availableOptions = slot.assignedElements() - this.containerDimensions = this.optionList.getBoundingClientRect() - }); - this.menu.addEventListener('click', e => { - if (!this.open) { - this.expand() - } else { - this.collapse() - } - }) - this.menu.addEventListener('keydown', e => { - if (e.code === 'ArrowDown' || e.code === 'ArrowRight') { + toggle() { + if (!this.isOpen) { + this.expand() + } else { + this.collapse() + } + } + handleKeyDown(e) { + // If key is pressed on menu button + if (e.target === this) { + if (e.code === 'ArrowDown') { e.preventDefault() this.availableOptions[0].focus() } - if (e.code === 'Enter' || e.code === 'Space') { + else if (e.code === 'Enter' || e.code === 'Space') { e.preventDefault() - if (!this.open) { - this.expand() - } else { - this.collapse() - } + this.toggle() } - }) - this.optionList.addEventListener('keydown', e => { - if (e.code === 'ArrowUp' || e.code === 'ArrowRight') { + } else { // If mey is pressed over menu options + if (e.code === 'ArrowUp') { e.preventDefault() if (document.activeElement.previousElementSibling) { document.activeElement.previousElementSibling.focus() @@ -206,23 +202,41 @@ customElements.define('sm-menu', class extends HTMLElement { this.availableOptions[this.availableOptions.length - 1].focus() } } - if (e.code === 'ArrowDown' || e.code === 'ArrowLeft') { + else if (e.code === 'ArrowDown') { e.preventDefault() if (document.activeElement.nextElementSibling) { document.activeElement.nextElementSibling.focus() - } else{ + } else { this.availableOptions[0].focus() } } - }) - this.optionList.addEventListener('click', e => { - this.collapse() - }) - window.addEventListener('mousedown', e => { - if (!this.contains(e.target) && e.button !== 2) { - this.collapse() + else if (e.code === 'Enter' || e.code === 'Space') { + e.preventDefault() + e.target.click() } - }) + } + } + handleClickoutSide(e) { + if (!this.contains(e.target) && e.button !== 2) { + this.collapse() + } + } + connectedCallback() { + this.setAttribute('role', 'listbox') + this.setAttribute('aria-label', 'dropdown menu') + const slot = this.shadowRoot.querySelector('.options slot') + slot.addEventListener('slotchange', e => { + this.availableOptions = e.target.assignedElements() + this.containerDimensions = this.optionList.getBoundingClientRect() + }); + this.addEventListener('click', this.toggle) + this.addEventListener('keydown', this.handleKeyDown) + document.addEventListener('mousedown', this.handleClickoutSide) + } + disconnectedCallback() { + this.removeEventListener('click', this.toggle) + this.removeEventListener('keydown', this.handleKeyDown) + document.removeEventListener('mousedown', this.handleClickoutSide) } }) @@ -262,7 +276,10 @@ menuOption.innerHTML = ` outline: none; background: rgba(var(--text-color), 0.1); } -@media (hover: hover){ +@media (any-hover: hover){ + :host{ + --padding: 0.8rem 1.6rem; + } .option:hover{ background: rgba(var(--text-color), 0.1); } diff --git a/components/dist/menu.min.js b/components/dist/menu.min.js index 4e7966c..606b807 100644 --- a/components/dist/menu.min.js +++ b/components/dist/menu.min.js @@ -1 +1 @@ -const smMenu=document.createElement("template");smMenu.innerHTML='\n\n
\n \n
\n \n
\n
',customElements.define("sm-menu",class extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}).append(smMenu.content.cloneNode(!0)),this.open=!1,this.availableOptions,this.containerDimensions,this.optionList=this.shadowRoot.querySelector(".options"),this.menu=this.shadowRoot.querySelector(".menu"),this.icon=this.shadowRoot.querySelector(".icon"),this.expand=this.expand.bind(this)}static get observedAttributes(){return["value"]}get value(){return this.getAttribute("value")}set value(n){this.setAttribute("value",n)}expand(){this.open||(this.optionList.classList.remove("hide"),this.optionList.classList.add("no-transformations"),this.open=!0,this.icon.classList.add("focused"),this.availableOptions.forEach(n=>{n.setAttribute("tabindex","0")}))}collapse(){this.open&&(this.open=!1,this.icon.classList.remove("focused"),this.optionList.classList.add("hide"),this.optionList.classList.remove("no-transformations"),this.availableOptions.forEach(n=>{n.removeAttribute("tabindex")}))}connectedCallback(){this.setAttribute("role","listbox");const n=this.shadowRoot.querySelector(".options slot");n.addEventListener("slotchange",t=>{this.availableOptions=n.assignedElements(),this.containerDimensions=this.optionList.getBoundingClientRect()}),this.menu.addEventListener("click",n=>{this.open?this.collapse():this.expand()}),this.menu.addEventListener("keydown",n=>{"ArrowDown"!==n.code&&"ArrowRight"!==n.code||(n.preventDefault(),this.availableOptions[0].focus()),"Enter"!==n.code&&"Space"!==n.code||(n.preventDefault(),this.open?this.collapse():this.expand())}),this.optionList.addEventListener("keydown",n=>{"ArrowUp"!==n.code&&"ArrowRight"!==n.code||(n.preventDefault(),document.activeElement.previousElementSibling?document.activeElement.previousElementSibling.focus():this.availableOptions[this.availableOptions.length-1].focus()),"ArrowDown"!==n.code&&"ArrowLeft"!==n.code||(n.preventDefault(),document.activeElement.nextElementSibling?document.activeElement.nextElementSibling.focus():this.availableOptions[0].focus())}),this.optionList.addEventListener("click",n=>{this.collapse()}),window.addEventListener("mousedown",n=>{this.contains(n.target)||2===n.button||this.collapse()})}});const menuOption=document.createElement("template");menuOption.innerHTML='\n\n
\n \n
',customElements.define("menu-option",class extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}).append(menuOption.content.cloneNode(!0))}connectedCallback(){this.setAttribute("role","option"),this.addEventListener("keyup",n=>{"Enter"!==n.code&&"Space"!==n.code||(n.preventDefault(),this.click())})}}); \ No newline at end of file +const smMenu=document.createElement("template");smMenu.innerHTML='\n\n
\n \n
\n \n
\n
',customElements.define("sm-menu",class extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}).append(smMenu.content.cloneNode(!0)),this.isOpen=!1,this.availableOptions,this.containerDimensions,this.animOptions={duration:200,easing:"ease"},this.optionList=this.shadowRoot.querySelector(".options"),this.menu=this.shadowRoot.querySelector(".menu"),this.icon=this.shadowRoot.querySelector(".icon"),this.expand=this.expand.bind(this),this.collapse=this.collapse.bind(this),this.toggle=this.toggle.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleClickoutSide=this.handleClickoutSide.bind(this)}static get observedAttributes(){return["value"]}get value(){return this.getAttribute("value")}set value(n){this.setAttribute("value",n)}expand(){this.isOpen||(this.optionList.classList.remove("hide"),this.optionList.animate([{transform:window.innerWidth<640?"translateY(1.5rem)":"translateY(-1rem)",opacity:"0"},{transform:"none",opacity:"1"}],this.animOptions).onfinish=(()=>{this.isOpen=!0,this.icon.classList.add("focused")}))}collapse(){this.isOpen&&(this.optionList.animate([{transform:"none",opacity:"1"},{transform:window.innerWidth<640?"translateY(1.5rem)":"translateY(-1rem)",opacity:"0"}],this.animOptions).onfinish=(()=>{this.isOpen=!1,this.icon.classList.remove("focused"),this.optionList.classList.add("hide")}))}toggle(){this.isOpen?this.collapse():this.expand()}handleKeyDown(n){n.target===this?"ArrowDown"===n.code?(n.preventDefault(),this.availableOptions[0].focus()):"Enter"!==n.code&&"Space"!==n.code||(n.preventDefault(),this.toggle()):"ArrowUp"===n.code?(n.preventDefault(),document.activeElement.previousElementSibling?document.activeElement.previousElementSibling.focus():this.availableOptions[this.availableOptions.length-1].focus()):"ArrowDown"===n.code?(n.preventDefault(),document.activeElement.nextElementSibling?document.activeElement.nextElementSibling.focus():this.availableOptions[0].focus()):"Enter"!==n.code&&"Space"!==n.code||(n.preventDefault(),n.target.click())}handleClickoutSide(n){this.contains(n.target)||2===n.button||this.collapse()}connectedCallback(){this.setAttribute("role","listbox"),this.setAttribute("aria-label","dropdown menu");const n=this.shadowRoot.querySelector(".options slot");n.addEventListener("slotchange",n=>{this.availableOptions=n.target.assignedElements(),this.containerDimensions=this.optionList.getBoundingClientRect()}),this.addEventListener("click",this.toggle),this.addEventListener("keydown",this.handleKeyDown),document.addEventListener("mousedown",this.handleClickoutSide)}disconnectedCallback(){this.removeEventListener("click",this.toggle),this.removeEventListener("keydown",this.handleKeyDown),document.removeEventListener("mousedown",this.handleClickoutSide)}});const menuOption=document.createElement("template");menuOption.innerHTML='\n\n
\n \n
',customElements.define("menu-option",class extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}).append(menuOption.content.cloneNode(!0))}connectedCallback(){this.setAttribute("role","option"),this.addEventListener("keyup",n=>{"Enter"!==n.code&&"Space"!==n.code||(n.preventDefault(),this.click())})}}); \ No newline at end of file diff --git a/components/dist/tabs.js b/components/dist/tabs.js index 7472688..a712daf 100644 --- a/components/dist/tabs.js +++ b/components/dist/tabs.js @@ -14,6 +14,7 @@ smTabHeader.innerHTML = ` --accent-color: #4d2588; --text-color: 17, 17, 17; --background-color: 255, 255, 255; + --tab-indicator-border-radius: 0.3rem; } .tabs{ position: relative; @@ -50,10 +51,7 @@ smTabHeader.innerHTML = ` } :host([variant="tab"]) .indicator{ height: 100%; - border-radius: 0.3rem; - } - :host(.round) .indicator{ - border-radius: 3rem; + border-radius: var(--tab-indicator-border-radius); } :host([variant="tab"]) .tab-header{ border-bottom: none; diff --git a/components/dist/tabs.min.js b/components/dist/tabs.min.js index b0e82e2..82d6ba2 100644 --- a/components/dist/tabs.min.js +++ b/components/dist/tabs.min.js @@ -1 +1 @@ -const smTabHeader=document.createElement("template");smTabHeader.innerHTML='\n\n
\n
\n \n
\n
\n
\n',customElements.define("sm-tab-header",class extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}).append(smTabHeader.content.cloneNode(!0)),this.prevTab,this.allTabs,this.activeTab,this.indicator=this.shadowRoot.querySelector(".indicator"),this.tabSlot=this.shadowRoot.querySelector("slot"),this.tabHeader=this.shadowRoot.querySelector(".tab-header"),this.changeTab=this.changeTab.bind(this),this.handleClick=this.handleClick.bind(this),this.handlePanelChange=this.handlePanelChange.bind(this)}fireEvent(t){this.dispatchEvent(new CustomEvent(`switchedtab${this.target}`,{bubbles:!0,detail:{index:parseInt(t)}}))}moveIndiactor(t){this.indicator.setAttribute("style",`width: ${t.width}px; transform: translateX(${t.left-this.tabHeader.getBoundingClientRect().left+this.tabHeader.scrollLeft}px)`)}changeTab(t){t!==this.prevTab&&t.closest("sm-tab")&&(this.prevTab&&this.prevTab.classList.remove("active"),t.classList.add("active"),t.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"}),this.moveIndiactor(t.getBoundingClientRect()),this.prevTab=t,this.activeTab=t)}handleClick(t){t.target.closest("sm-tab")&&(this.changeTab(t.target),this.fireEvent(t.target.dataset.index))}handlePanelChange(t){console.log(this.allTabs),this.changeTab(this.allTabs[t.detail.index])}connectedCallback(){if(!this.hasAttribute("target")||""===this.getAttribute("target").value)return;this.target=this.getAttribute("target"),this.tabSlot.addEventListener("slotchange",()=>{this.allTabs=this.tabSlot.assignedElements(),this.allTabs.forEach((t,n)=>{t.dataset.index=n})}),this.addEventListener("click",this.handleClick),document.addEventListener(`switchedpanel${this.target}`,this.handlePanelChange);let t=new ResizeObserver(t=>{t.forEach(t=>{if(this.prevTab){let t=this.activeTab.getBoundingClientRect();this.moveIndiactor(t)}})});t.observe(this);let n=new IntersectionObserver(t=>{t.forEach(t=>{if(t.isIntersecting)if(this.indicator.style.transition="none",this.activeTab){let t=this.activeTab.getBoundingClientRect();this.moveIndiactor(t)}else{this.allTabs[0].classList.add("active");let t=this.allTabs[0].getBoundingClientRect();this.moveIndiactor(t),this.fireEvent(0),this.prevTab=this.tabSlot.assignedElements()[0],this.activeTab=this.prevTab}})},{threshold:1});n.observe(this)}disconnectedCallback(){this.removeEventListener("click",this.handleClick),document.removeEventListener(`switchedpanel${this.target}`,this.handlePanelChange)}});const smTab=document.createElement("template");smTab.innerHTML='\n\n
\n\n
\n',customElements.define("sm-tab",class extends HTMLElement{constructor(){super(),this.shadow=this.attachShadow({mode:"open"}).append(smTab.content.cloneNode(!0))}});const smTabPanels=document.createElement("template");smTabPanels.innerHTML='\n\n
\n Nothing to see here.\n
\n',customElements.define("sm-tab-panels",class extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}).append(smTabPanels.content.cloneNode(!0)),this.isTransitioning=!1,this.panelContainer=this.shadowRoot.querySelector(".panel-container"),this.panelSlot=this.shadowRoot.querySelector("slot"),this.handleTabChange=this.handleTabChange.bind(this)}handleTabChange(t){this.isTransitioning=!0,this.panelContainer.scrollTo({left:this.allPanels[t.detail.index].getBoundingClientRect().left-this.panelContainer.getBoundingClientRect().left+this.panelContainer.scrollLeft,behavior:"smooth"}),setTimeout(()=>{this.isTransitioning=!1},300)}fireEvent(t){this.dispatchEvent(new CustomEvent(`switchedpanel${this.id}`,{bubbles:!0,detail:{index:parseInt(t)}}))}connectedCallback(){this.panelSlot.addEventListener("slotchange",()=>{this.allPanels=this.panelSlot.assignedElements(),this.allPanels.forEach((n,e)=>{n.dataset.index=e,t.observe(n)})}),document.addEventListener(`switchedtab${this.id}`,this.handleTabChange);const t=new IntersectionObserver(t=>{t.forEach(t=>{!this.isTransitioning&&t.isIntersecting&&this.fireEvent(t.target.dataset.index)})},{threshold:.6})}disconnectedCallback(){intersectionObserver.disconnect(),document.removeEventListener(`switchedtab${this.id}`,this.handleTabChange)}}); \ No newline at end of file +const smTabHeader=document.createElement("template");smTabHeader.innerHTML='\n\n
\n
\n \n
\n
\n
\n',customElements.define("sm-tab-header",class extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}).append(smTabHeader.content.cloneNode(!0)),this.prevTab,this.allTabs,this.activeTab,this.indicator=this.shadowRoot.querySelector(".indicator"),this.tabSlot=this.shadowRoot.querySelector("slot"),this.tabHeader=this.shadowRoot.querySelector(".tab-header"),this.changeTab=this.changeTab.bind(this),this.handleClick=this.handleClick.bind(this),this.handlePanelChange=this.handlePanelChange.bind(this)}fireEvent(t){this.dispatchEvent(new CustomEvent(`switchedtab${this.target}`,{bubbles:!0,detail:{index:parseInt(t)}}))}moveIndiactor(t){this.indicator.setAttribute("style",`width: ${t.width}px; transform: translateX(${t.left-this.tabHeader.getBoundingClientRect().left+this.tabHeader.scrollLeft}px)`)}changeTab(t){t!==this.prevTab&&t.closest("sm-tab")&&(this.prevTab&&this.prevTab.classList.remove("active"),t.classList.add("active"),t.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"}),this.moveIndiactor(t.getBoundingClientRect()),this.prevTab=t,this.activeTab=t)}handleClick(t){t.target.closest("sm-tab")&&(this.changeTab(t.target),this.fireEvent(t.target.dataset.index))}handlePanelChange(t){console.log(this.allTabs),this.changeTab(this.allTabs[t.detail.index])}connectedCallback(){if(!this.hasAttribute("target")||""===this.getAttribute("target").value)return;this.target=this.getAttribute("target"),this.tabSlot.addEventListener("slotchange",()=>{this.allTabs=this.tabSlot.assignedElements(),this.allTabs.forEach((t,n)=>{t.dataset.index=n})}),this.addEventListener("click",this.handleClick),document.addEventListener(`switchedpanel${this.target}`,this.handlePanelChange);let t=new ResizeObserver(t=>{t.forEach(t=>{if(this.prevTab){let t=this.activeTab.getBoundingClientRect();this.moveIndiactor(t)}})});t.observe(this);let n=new IntersectionObserver(t=>{t.forEach(t=>{if(t.isIntersecting)if(this.indicator.style.transition="none",this.activeTab){let t=this.activeTab.getBoundingClientRect();this.moveIndiactor(t)}else{this.allTabs[0].classList.add("active");let t=this.allTabs[0].getBoundingClientRect();this.moveIndiactor(t),this.fireEvent(0),this.prevTab=this.tabSlot.assignedElements()[0],this.activeTab=this.prevTab}})},{threshold:1});n.observe(this)}disconnectedCallback(){this.removeEventListener("click",this.handleClick),document.removeEventListener(`switchedpanel${this.target}`,this.handlePanelChange)}});const smTab=document.createElement("template");smTab.innerHTML='\n\n
\n\n
\n',customElements.define("sm-tab",class extends HTMLElement{constructor(){super(),this.shadow=this.attachShadow({mode:"open"}).append(smTab.content.cloneNode(!0))}});const smTabPanels=document.createElement("template");smTabPanels.innerHTML='\n\n
\n Nothing to see here.\n
\n',customElements.define("sm-tab-panels",class extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}).append(smTabPanels.content.cloneNode(!0)),this.isTransitioning=!1,this.panelContainer=this.shadowRoot.querySelector(".panel-container"),this.panelSlot=this.shadowRoot.querySelector("slot"),this.handleTabChange=this.handleTabChange.bind(this)}handleTabChange(t){this.isTransitioning=!0,this.panelContainer.scrollTo({left:this.allPanels[t.detail.index].getBoundingClientRect().left-this.panelContainer.getBoundingClientRect().left+this.panelContainer.scrollLeft,behavior:"smooth"}),setTimeout(()=>{this.isTransitioning=!1},300)}fireEvent(t){this.dispatchEvent(new CustomEvent(`switchedpanel${this.id}`,{bubbles:!0,detail:{index:parseInt(t)}}))}connectedCallback(){this.panelSlot.addEventListener("slotchange",()=>{this.allPanels=this.panelSlot.assignedElements(),this.allPanels.forEach((n,e)=>{n.dataset.index=e,t.observe(n)})}),document.addEventListener(`switchedtab${this.id}`,this.handleTabChange);const t=new IntersectionObserver(t=>{t.forEach(t=>{!this.isTransitioning&&t.isIntersecting&&this.fireEvent(t.target.dataset.index)})},{threshold:.6})}disconnectedCallback(){intersectionObserver.disconnect(),document.removeEventListener(`switchedtab${this.id}`,this.handleTabChange)}}); \ No newline at end of file diff --git a/components/dist/text-field.js b/components/dist/text-field.js index 4c6deeb..ae9679d 100644 --- a/components/dist/text-field.js +++ b/components/dist/text-field.js @@ -115,7 +115,7 @@ customElements.define('text-field', class extends HTMLElement{ this.removeAttribute('disabled') } fireEvent(value){ - let event = new CustomEvent('contentchanged', { + let event = new CustomEvent('change', { bubbles: true, cancelable: true, composed: true, diff --git a/components/dist/text-field.min.js b/components/dist/text-field.min.js index 33b9621..52845cc 100644 --- a/components/dist/text-field.min.js +++ b/components/dist/text-field.min.js @@ -1 +1 @@ -const textField=document.createElement("template");textField.innerHTML='\n\n
\n
\n
\n \n Edit\n \n \n \n Save\n \n \n
\n
\n',customElements.define("text-field",class extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}).append(textField.content.cloneNode(!0)),this.textField=this.shadowRoot.querySelector(".text-field"),this.textContainer=this.textField.children[0],this.iconsContainer=this.textField.children[1],this.editButton=this.textField.querySelector(".edit-button"),this.saveButton=this.textField.querySelector(".save-button"),this.isTextEditable=!1,this.isDisabled=!1,this.fireEvent=this.fireEvent.bind(this),this.setEditable=this.setEditable.bind(this),this.setNonEditable=this.setNonEditable.bind(this),this.revert=this.revert.bind(this)}static get observedAttributes(){return["disabled"]}get value(){return this.text}set value(t){this.text=t,this.textContainer.textContent=t,this.setAttribute("value",t)}set disabled(t){this.isDisabled=t,this.isDisabled?this.setAttribute("disabled",""):this.removeAttribute("disabled")}fireEvent(t){let e=new CustomEvent("contentchanged",{bubbles:!0,cancelable:!0,composed:!0,detail:{value:t}});this.dispatchEvent(e)}setEditable(){this.isTextEditable||(this.textContainer.contentEditable=!0,this.textContainer.classList.add("editable"),this.textContainer.focus(),document.execCommand("selectAll",!1,null),this.editButton.animate(this.rotateOut,this.animOptions).onfinish=(()=>{this.editButton.classList.add("hide")}),setTimeout(()=>{this.saveButton.classList.remove("hide"),this.saveButton.animate(this.rotateIn,this.animOptions)},100),this.isTextEditable=!0)}setNonEditable(){this.isTextEditable&&(this.textContainer.contentEditable=!1,this.textContainer.classList.remove("editable"),this.text!==this.textContainer.textContent.trim()&&(this.setAttribute("value",this.textContainer.textContent),this.text=this.textContainer.textContent.trim(),this.fireEvent(this.text)),this.saveButton.animate(this.rotateOut,this.animOptions).onfinish=(()=>{this.saveButton.classList.add("hide")}),setTimeout(()=>{this.editButton.classList.remove("hide"),this.editButton.animate(this.rotateIn,this.animOptions)},100),this.isTextEditable=!1)}revert(){this.textContainer.isContentEditable&&(this.value=this.text,this.setNonEditable())}connectedCallback(){this.text,this.hasAttribute("value")&&(this.text=this.getAttribute("value"),this.textContainer.textContent=this.text),this.hasAttribute("disable")?this.isDisabled=!0:this.isDisabled=!1,this.rotateOut=[{transform:"rotate(0)",opacity:1},{transform:"rotate(90deg)",opacity:0}],this.rotateIn=[{transform:"rotate(-90deg)",opacity:0},{transform:"rotate(0)",opacity:1}],this.animOptions={duration:300,easing:"cubic-bezier(0.175, 0.885, 0.32, 1.275)",fill:"forwards"},this.isDisabled||(this.iconsContainer.classList.remove("hide"),this.textContainer.addEventListener("dblclick",this.setEditable),this.editButton.addEventListener("click",this.setEditable),this.saveButton.addEventListener("click",this.setNonEditable))}attributeChangedCallback(t){"disabled"===t&&(this.hasAttribute("disabled")?(this.textContainer.removeEventListener("dblclick",this.setEditable),this.editButton.removeEventListener("click",this.setEditable),this.saveButton.removeEventListener("click",this.setNonEditable),this.revert()):(this.textContainer.addEventListener("dblclick",this.setEditable),this.editButton.addEventListener("click",this.setEditable),this.saveButton.addEventListener("click",this.setNonEditable)))}disconnectedCallback(){this.textContainer.removeEventListener("dblclick",this.setEditable),this.editButton.removeEventListener("click",this.setEditable),this.saveButton.removeEventListener("click",this.setNonEditable)}}); \ No newline at end of file +const textField=document.createElement("template");textField.innerHTML='\n\n
\n
\n
\n \n Edit\n \n \n \n Save\n \n \n
\n
\n',customElements.define("text-field",class extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}).append(textField.content.cloneNode(!0)),this.textField=this.shadowRoot.querySelector(".text-field"),this.textContainer=this.textField.children[0],this.iconsContainer=this.textField.children[1],this.editButton=this.textField.querySelector(".edit-button"),this.saveButton=this.textField.querySelector(".save-button"),this.isTextEditable=!1,this.isDisabled=!1,this.fireEvent=this.fireEvent.bind(this),this.setEditable=this.setEditable.bind(this),this.setNonEditable=this.setNonEditable.bind(this),this.revert=this.revert.bind(this)}static get observedAttributes(){return["disabled"]}get value(){return this.text}set value(t){this.text=t,this.textContainer.textContent=t,this.setAttribute("value",t)}set disabled(t){this.isDisabled=t,this.isDisabled?this.setAttribute("disabled",""):this.removeAttribute("disabled")}fireEvent(t){let e=new CustomEvent("change",{bubbles:!0,cancelable:!0,composed:!0,detail:{value:t}});this.dispatchEvent(e)}setEditable(){this.isTextEditable||(this.textContainer.contentEditable=!0,this.textContainer.classList.add("editable"),this.textContainer.focus(),document.execCommand("selectAll",!1,null),this.editButton.animate(this.rotateOut,this.animOptions).onfinish=(()=>{this.editButton.classList.add("hide")}),setTimeout(()=>{this.saveButton.classList.remove("hide"),this.saveButton.animate(this.rotateIn,this.animOptions)},100),this.isTextEditable=!0)}setNonEditable(){this.isTextEditable&&(this.textContainer.contentEditable=!1,this.textContainer.classList.remove("editable"),this.text!==this.textContainer.textContent.trim()&&(this.setAttribute("value",this.textContainer.textContent),this.text=this.textContainer.textContent.trim(),this.fireEvent(this.text)),this.saveButton.animate(this.rotateOut,this.animOptions).onfinish=(()=>{this.saveButton.classList.add("hide")}),setTimeout(()=>{this.editButton.classList.remove("hide"),this.editButton.animate(this.rotateIn,this.animOptions)},100),this.isTextEditable=!1)}revert(){this.textContainer.isContentEditable&&(this.value=this.text,this.setNonEditable())}connectedCallback(){this.text,this.hasAttribute("value")&&(this.text=this.getAttribute("value"),this.textContainer.textContent=this.text),this.hasAttribute("disable")?this.isDisabled=!0:this.isDisabled=!1,this.rotateOut=[{transform:"rotate(0)",opacity:1},{transform:"rotate(90deg)",opacity:0}],this.rotateIn=[{transform:"rotate(-90deg)",opacity:0},{transform:"rotate(0)",opacity:1}],this.animOptions={duration:300,easing:"cubic-bezier(0.175, 0.885, 0.32, 1.275)",fill:"forwards"},this.isDisabled||(this.iconsContainer.classList.remove("hide"),this.textContainer.addEventListener("dblclick",this.setEditable),this.editButton.addEventListener("click",this.setEditable),this.saveButton.addEventListener("click",this.setNonEditable))}attributeChangedCallback(t){"disabled"===t&&(this.hasAttribute("disabled")?(this.textContainer.removeEventListener("dblclick",this.setEditable),this.editButton.removeEventListener("click",this.setEditable),this.saveButton.removeEventListener("click",this.setNonEditable),this.revert()):(this.textContainer.addEventListener("dblclick",this.setEditable),this.editButton.addEventListener("click",this.setEditable),this.saveButton.addEventListener("click",this.setNonEditable)))}disconnectedCallback(){this.textContainer.removeEventListener("dblclick",this.setEditable),this.editButton.removeEventListener("click",this.setEditable),this.saveButton.removeEventListener("click",this.setNonEditable)}}); \ No newline at end of file diff --git a/components/dist/theme-toggle.js b/components/dist/theme-toggle.js index 64d03f0..92b224d 100644 --- a/components/dist/theme-toggle.js +++ b/components/dist/theme-toggle.js @@ -99,11 +99,13 @@ class ThemeToggle extends HTMLElement { daylight() { this.hasTheme = 'light' document.body.dataset.theme = 'light' + this.setAttribute('aria-checked', 'false') } - + nightlight() { this.hasTheme = 'dark' document.body.dataset.theme = 'dark' + this.setAttribute('aria-checked', 'true') } toggleState() { diff --git a/components/dist/theme-toggle.min.js b/components/dist/theme-toggle.min.js index b91a9af..12bffba 100644 --- a/components/dist/theme-toggle.min.js +++ b/components/dist/theme-toggle.min.js @@ -1 +1 @@ -const themeToggle=document.createElement("template");themeToggle.innerHTML='\n \n \n';class ThemeToggle extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}).append(themeToggle.content.cloneNode(!0)),this.isChecked=!1,this.hasTheme="light",this.toggleState=this.toggleState.bind(this),this.fireEvent=this.fireEvent.bind(this),this.handleThemeChange=this.handleThemeChange.bind(this)}static get observedAttributes(){return["checked"]}daylight(){this.hasTheme="light",document.body.dataset.theme="light"}nightlight(){this.hasTheme="dark",document.body.dataset.theme="dark"}toggleState(){this.toggleAttribute("checked"),this.fireEvent()}handleKeyDown(e){"Space"===e.code&&this.toggleState()}handleThemeChange(e){e.detail.theme!==this.hasTheme&&("dark"===e.detail.theme?this.setAttribute("checked",""):this.removeAttribute("checked"))}fireEvent(){this.dispatchEvent(new CustomEvent("themechange",{bubbles:!0,composed:!0,detail:{theme:this.hasTheme}}))}connectedCallback(){this.setAttribute("role","switch"),this.setAttribute("aria-label","theme toggle"),"dark"===localStorage.theme?(this.nightlight(),this.setAttribute("checked","")):"light"===localStorage.theme?(this.daylight(),this.removeAttribute("checked")):window.matchMedia("(prefers-color-scheme: dark)").matches?(this.nightlight(),this.setAttribute("checked","")):(this.daylight(),this.removeAttribute("checked")),this.addEventListener("click",this.toggleState),this.addEventListener("keydown",this.handleKeyDown),document.addEventListener("themechange",this.handleThemeChange)}disconnectedCallback(){this.removeEventListener("click",this.toggleState),this.removeEventListener("keydown",this.handleKeyDown),document.removeEventListener("themechange",this.handleThemeChange)}attributeChangedCallback(e,t,n){"checked"===e&&(this.hasAttribute("checked")?(this.nightlight(),localStorage.setItem("theme","dark")):(this.daylight(),localStorage.setItem("theme","light")))}}window.customElements.define("theme-toggle",ThemeToggle); \ No newline at end of file +const themeToggle=document.createElement("template");themeToggle.innerHTML='\n \n \n';class ThemeToggle extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}).append(themeToggle.content.cloneNode(!0)),this.isChecked=!1,this.hasTheme="light",this.toggleState=this.toggleState.bind(this),this.fireEvent=this.fireEvent.bind(this),this.handleThemeChange=this.handleThemeChange.bind(this)}static get observedAttributes(){return["checked"]}daylight(){this.hasTheme="light",document.body.dataset.theme="light",this.setAttribute("aria-checked","false")}nightlight(){this.hasTheme="dark",document.body.dataset.theme="dark",this.setAttribute("aria-checked","true")}toggleState(){this.toggleAttribute("checked"),this.fireEvent()}handleKeyDown(e){"Space"===e.code&&this.toggleState()}handleThemeChange(e){e.detail.theme!==this.hasTheme&&("dark"===e.detail.theme?this.setAttribute("checked",""):this.removeAttribute("checked"))}fireEvent(){this.dispatchEvent(new CustomEvent("themechange",{bubbles:!0,composed:!0,detail:{theme:this.hasTheme}}))}connectedCallback(){this.setAttribute("role","switch"),this.setAttribute("aria-label","theme toggle"),"dark"===localStorage.theme?(this.nightlight(),this.setAttribute("checked","")):"light"===localStorage.theme?(this.daylight(),this.removeAttribute("checked")):window.matchMedia("(prefers-color-scheme: dark)").matches?(this.nightlight(),this.setAttribute("checked","")):(this.daylight(),this.removeAttribute("checked")),this.addEventListener("click",this.toggleState),this.addEventListener("keydown",this.handleKeyDown),document.addEventListener("themechange",this.handleThemeChange)}disconnectedCallback(){this.removeEventListener("click",this.toggleState),this.removeEventListener("keydown",this.handleKeyDown),document.removeEventListener("themechange",this.handleThemeChange)}attributeChangedCallback(e,t,n){"checked"===e&&(this.hasAttribute("checked")?(this.nightlight(),localStorage.setItem("theme","dark")):(this.daylight(),localStorage.setItem("theme","light")))}}window.customElements.define("theme-toggle",ThemeToggle); \ No newline at end of file diff --git a/components/index.html b/components/index.html index 3c2b3b8..8e758a3 100644 --- a/components/index.html +++ b/components/index.html @@ -21,7 +21,8 @@
-