@fluid-topics/ft-ripple 1.0.3 → 1.0.5

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.
@@ -32,6 +32,7 @@ export declare class FtRipple extends FtLitElement implements FtRippleProperties
32
32
  private setRippleSize;
33
33
  private setupDebouncer;
34
34
  connectedCallback(): void;
35
+ private defaultSetup;
35
36
  setupFor(target: HTMLElement): void;
36
37
  private moveRipple;
37
38
  private getCoordinates;
@@ -136,16 +136,18 @@ class FtRipple extends FtLitElement {
136
136
  }
137
137
  connectedCallback() {
138
138
  super.connectedCallback();
139
- this.setupDebouncer.run(() => {
140
- var _a;
141
- const parent = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.host.parentElement;
142
- if (parent) {
143
- this.setupFor(parent);
144
- }
145
- this.setRippleSize();
146
- });
139
+ this.setupDebouncer.run(() => this.defaultSetup());
140
+ }
141
+ defaultSetup() {
142
+ var _a, _b;
143
+ const parent = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.host.parentElement;
144
+ if (parent) {
145
+ this.setupFor((_b = this.target) !== null && _b !== void 0 ? _b : parent);
146
+ }
147
+ this.setRippleSize();
147
148
  }
148
149
  setupFor(target) {
150
+ this.setupDebouncer.cancel();
149
151
  if (this.target === target) {
150
152
  return;
151
153
  }
@@ -1,4 +1,4 @@
1
- !function(t,i,e,r,s){const p=i.FtCssVariableFactory.extend("--ft-ripple-color",i.designSystemVariables.colorContent),o={color:p,backgroundColor:i.FtCssVariableFactory.extend("--ft-ripple-background-color",p),opacityContentOnSurfacePressed:i.FtCssVariableFactory.external(i.designSystemVariables.opacityContentOnSurfacePressed,"Design system"),opacityContentOnSurfaceHover:i.FtCssVariableFactory.external(i.designSystemVariables.opacityContentOnSurfaceHover,"Design system"),opacityContentOnSurfaceFocused:i.FtCssVariableFactory.external(i.designSystemVariables.opacityContentOnSurfaceFocused,"Design system"),opacityContentOnSurfaceSelected:i.FtCssVariableFactory.external(i.designSystemVariables.opacityContentOnSurfaceSelected,"Design system"),borderRadius:i.FtCssVariableFactory.create("--ft-ripple-border-radius","SIZE","0px")},l=i.FtCssVariableFactory.extend("--ft-ripple-color",i.designSystemVariables.colorPrimary),n={color:l,backgroundColor:i.FtCssVariableFactory.extend("--ft-ripple-background-color",l)},f=i.FtCssVariableFactory.extend("--ft-ripple-color",i.designSystemVariables.colorSecondary),h={color:f,backgroundColor:i.FtCssVariableFactory.extend("--ft-ripple-background-color",f)},a=e.css`
1
+ !function(t,i,e,s,r){const p=i.FtCssVariableFactory.extend("--ft-ripple-color",i.designSystemVariables.colorContent),o={color:p,backgroundColor:i.FtCssVariableFactory.extend("--ft-ripple-background-color",p),opacityContentOnSurfacePressed:i.FtCssVariableFactory.external(i.designSystemVariables.opacityContentOnSurfacePressed,"Design system"),opacityContentOnSurfaceHover:i.FtCssVariableFactory.external(i.designSystemVariables.opacityContentOnSurfaceHover,"Design system"),opacityContentOnSurfaceFocused:i.FtCssVariableFactory.external(i.designSystemVariables.opacityContentOnSurfaceFocused,"Design system"),opacityContentOnSurfaceSelected:i.FtCssVariableFactory.external(i.designSystemVariables.opacityContentOnSurfaceSelected,"Design system"),borderRadius:i.FtCssVariableFactory.create("--ft-ripple-border-radius","SIZE","0px")},l=i.FtCssVariableFactory.extend("--ft-ripple-color",i.designSystemVariables.colorPrimary),n={color:l,backgroundColor:i.FtCssVariableFactory.extend("--ft-ripple-background-color",l)},f=i.FtCssVariableFactory.extend("--ft-ripple-color",i.designSystemVariables.colorSecondary),h={color:f,backgroundColor:i.FtCssVariableFactory.extend("--ft-ripple-background-color",f)},d=e.css`
2
2
  :host {
3
3
  display: contents;
4
4
  }
@@ -88,7 +88,7 @@
88
88
  opacity: ${o.opacityContentOnSurfacePressed};
89
89
  transform: translate(-50%, -50%) scale(1);
90
90
  }
91
- `;var d=function(t,i,e,r){for(var s,p=arguments.length,o=p<3?i:null===r?r=Object.getOwnPropertyDescriptor(i,e):r,l=t.length-1;l>=0;l--)(s=t[l])&&(o=(p<3?s(o):p>3?s(i,e,o):s(i,e))||o);return p>3&&o&&Object.defineProperty(i,e,o),o};class c extends i.FtLitElement{constructor(){super(...arguments),this.primary=!1,this.secondary=!1,this.unbounded=!1,this.activated=!1,this.selected=!1,this.disabled=!1,this.hovered=!1,this.focused=!1,this.pressed=!1,this.rippling=!1,this.rippleSize=0,this.originX=0,this.originY=0,this.resizeObserver=new ResizeObserver((()=>this.setRippleSize())),this.debouncer=new i.Debouncer(1e3),this.onTransitionStart=t=>{"transform"===t.propertyName&&(this.rippling=this.pressed,this.debouncer.run((()=>this.rippling=!1)))},this.onTransitionEnd=t=>{"transform"===t.propertyName&&(this.rippling=!1)},this.setupDebouncer=new i.Debouncer(10),this.moveRipple=t=>{var i,e;let{x:r,y:s}=this.getCoordinates(t),p=null!==(e=null===(i=this.ripple)||void 0===i?void 0:i.getBoundingClientRect())&&void 0!==e?e:{x:0,y:0,width:0,height:0};this.originX=Math.round(null!=r?r-p.x:p.width/2),this.originY=Math.round(null!=s?s-p.y:p.height/2)},this.startPress=t=>{this.moveRipple(t),this.pressed=!this.isIgnored(t)},this.endPress=()=>{this.pressed=!1},this.startHover=t=>{this.hovered=!this.isIgnored(t)},this.endHover=()=>{this.hovered=!1},this.startFocus=t=>{this.focused=!this.isIgnored(t)},this.endFocus=()=>{this.focused=!1}}render(){let t={"ft-ripple":!0,"ft-ripple--primary":this.primary,"ft-ripple--secondary":this.secondary,"ft-ripple--unbounded":this.unbounded,"ft-ripple--selected":(this.selected||this.activated)&&!this.disabled,"ft-ripple--pressed":(this.pressed||this.rippling)&&!this.disabled,"ft-ripple--hovered":this.hovered&&!this.disabled,"ft-ripple--focused":this.focused&&!this.disabled};return e.html`
91
+ `;var a=function(t,i,e,s){for(var r,p=arguments.length,o=p<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s,l=t.length-1;l>=0;l--)(r=t[l])&&(o=(p<3?r(o):p>3?r(i,e,o):r(i,e))||o);return p>3&&o&&Object.defineProperty(i,e,o),o};class c extends i.FtLitElement{constructor(){super(...arguments),this.primary=!1,this.secondary=!1,this.unbounded=!1,this.activated=!1,this.selected=!1,this.disabled=!1,this.hovered=!1,this.focused=!1,this.pressed=!1,this.rippling=!1,this.rippleSize=0,this.originX=0,this.originY=0,this.resizeObserver=new ResizeObserver((()=>this.setRippleSize())),this.debouncer=new i.Debouncer(1e3),this.onTransitionStart=t=>{"transform"===t.propertyName&&(this.rippling=this.pressed,this.debouncer.run((()=>this.rippling=!1)))},this.onTransitionEnd=t=>{"transform"===t.propertyName&&(this.rippling=!1)},this.setupDebouncer=new i.Debouncer(10),this.moveRipple=t=>{var i,e;let{x:s,y:r}=this.getCoordinates(t),p=null!==(e=null===(i=this.ripple)||void 0===i?void 0:i.getBoundingClientRect())&&void 0!==e?e:{x:0,y:0,width:0,height:0};this.originX=Math.round(null!=s?s-p.x:p.width/2),this.originY=Math.round(null!=r?r-p.y:p.height/2)},this.startPress=t=>{this.moveRipple(t),this.pressed=!this.isIgnored(t)},this.endPress=()=>{this.pressed=!1},this.startHover=t=>{this.hovered=!this.isIgnored(t)},this.endHover=()=>{this.hovered=!1},this.startFocus=t=>{this.focused=!this.isIgnored(t)},this.endFocus=()=>{this.focused=!1}}render(){let t={"ft-ripple":!0,"ft-ripple--primary":this.primary,"ft-ripple--secondary":this.secondary,"ft-ripple--unbounded":this.unbounded,"ft-ripple--selected":(this.selected||this.activated)&&!this.disabled,"ft-ripple--pressed":(this.pressed||this.rippling)&&!this.disabled,"ft-ripple--hovered":this.hovered&&!this.disabled,"ft-ripple--focused":this.focused&&!this.disabled};return e.html`
92
92
  <style>
93
93
  .ft-ripple .ft-ripple--effect,
94
94
  .ft-ripple.ft-ripple--unbounded .ft-ripple--background {
@@ -101,8 +101,8 @@
101
101
  top: ${this.originY}px;
102
102
  }
103
103
  </style>
104
- <div class="${s.classMap(t)}">
104
+ <div class="${r.classMap(t)}">
105
105
  <div class="ft-ripple--background"></div>
106
106
  <div class="ft-ripple--effect"></div>
107
107
  </div>
108
- `}contentAvailableCallback(t){super.contentAvailableCallback(t),this.ripple&&this.resizeObserver.observe(this.ripple),this.rippleEffect&&this.rippleEffect.ontransitionstart!==this.onTransitionStart&&(this.rippleEffect.ontransitionstart=this.onTransitionStart,this.rippleEffect.ontransitionend=this.onTransitionEnd)}updated(t){var i,e;super.updated(t),t.has("disabled")&&(this.disabled?(this.endRipple(),null===(i=this.target)||void 0===i||i.removeAttribute("data-is-ft-ripple-target")):null===(e=this.target)||void 0===e||e.setAttribute("data-is-ft-ripple-target","true")),t.has("unbounded")&&this.setRippleSize()}endRipple(){this.endHover(),this.endFocus(),this.endPress(),this.rippling=!1}setRippleSize(){if(this.ripple){const t=this.ripple.getBoundingClientRect();this.rippleSize=(this.unbounded?1:1.7)*Math.max(t.width,t.height)}}connectedCallback(){super.connectedCallback(),this.setupDebouncer.run((()=>{var t;const i=null===(t=this.shadowRoot)||void 0===t?void 0:t.host.parentElement;i&&this.setupFor(i),this.setRippleSize()}))}setupFor(t){if(this.target===t)return;this.onDisconnect&&this.onDisconnect(),this.target=t,t.setAttribute("data-is-ft-ripple-target","true");const i=(...t)=>i=>{t.forEach((t=>window.addEventListener(t,this.endPress,{once:!0}))),this.startPress(i)},e=i("mouseup","contextmenu"),r=i("touchend","touchcancel"),s=t=>{["Enter"," "].includes(t.key)&&i("keyup")(t)};t.addEventListener("mouseover",this.startHover),t.addEventListener("mousemove",this.moveRipple),t.addEventListener("mouseleave",this.endHover),t.addEventListener("mousedown",e),t.addEventListener("touchstart",r),t.addEventListener("touchmove",this.moveRipple),t.addEventListener("keydown",s),t.addEventListener("focus",this.startFocus),t.addEventListener("blur",this.endFocus),t.addEventListener("focusin",this.startFocus),t.addEventListener("focusout",this.endFocus),this.onDisconnect=()=>{t.removeAttribute("data-is-ft-ripple-target"),t.removeEventListener("mouseover",this.startHover),t.removeEventListener("mousemove",this.moveRipple),t.removeEventListener("mouseleave",this.endHover),t.removeEventListener("mousedown",e),t.removeEventListener("touchstart",r),t.removeEventListener("touchmove",this.moveRipple),t.removeEventListener("keydown",s),t.removeEventListener("focus",this.startFocus),t.removeEventListener("blur",this.endFocus),t.removeEventListener("focusin",this.startFocus),t.removeEventListener("focusout",this.endFocus),this.onDisconnect=void 0,this.target=void 0}}getCoordinates(t){const i=t,e=t;let r,s;return null!=i.x?({x:r,y:s}=i):null!=e.touches&&(r=e.touches[0].clientX,s=e.touches[0].clientY),{x:r,y:s}}isIgnored(t){if(this.disabled)return!0;if(null!=t)for(let i of t.composedPath()){if(i===this.target)break;if("hasAttribute"in i&&i.hasAttribute("data-is-ft-ripple-target"))return!0}return!1}disconnectedCallback(){super.disconnectedCallback(),this.onDisconnect&&this.onDisconnect(),this.resizeObserver.disconnect(),this.endRipple()}}c.elementDefinitions={},c.styles=a,d([r.property({type:Boolean})],c.prototype,"primary",void 0),d([r.property({type:Boolean})],c.prototype,"secondary",void 0),d([r.property({type:Boolean})],c.prototype,"unbounded",void 0),d([r.property({type:Boolean})],c.prototype,"activated",void 0),d([r.property({type:Boolean})],c.prototype,"selected",void 0),d([r.property({type:Boolean})],c.prototype,"disabled",void 0),d([r.state()],c.prototype,"hovered",void 0),d([r.state()],c.prototype,"focused",void 0),d([r.state()],c.prototype,"pressed",void 0),d([r.state()],c.prototype,"rippling",void 0),d([r.state()],c.prototype,"rippleSize",void 0),d([r.state()],c.prototype,"originX",void 0),d([r.state()],c.prototype,"originY",void 0),d([r.query(".ft-ripple")],c.prototype,"ripple",void 0),d([r.query(".ft-ripple--effect")],c.prototype,"rippleEffect",void 0),i.customElement("ft-ripple")(c),t.FtRipple=c,t.FtRippleCssVariables=o,t.FtRipplePrimaryCssVariables=n,t.FtRippleSecondaryCssVariables=h,t.styles=a}({},ftGlobals.wcUtils,ftGlobals.lit,ftGlobals.litDecorators,ftGlobals.litClassMap);
108
+ `}contentAvailableCallback(t){super.contentAvailableCallback(t),this.ripple&&this.resizeObserver.observe(this.ripple),this.rippleEffect&&this.rippleEffect.ontransitionstart!==this.onTransitionStart&&(this.rippleEffect.ontransitionstart=this.onTransitionStart,this.rippleEffect.ontransitionend=this.onTransitionEnd)}updated(t){var i,e;super.updated(t),t.has("disabled")&&(this.disabled?(this.endRipple(),null===(i=this.target)||void 0===i||i.removeAttribute("data-is-ft-ripple-target")):null===(e=this.target)||void 0===e||e.setAttribute("data-is-ft-ripple-target","true")),t.has("unbounded")&&this.setRippleSize()}endRipple(){this.endHover(),this.endFocus(),this.endPress(),this.rippling=!1}setRippleSize(){if(this.ripple){const t=this.ripple.getBoundingClientRect();this.rippleSize=(this.unbounded?1:1.7)*Math.max(t.width,t.height)}}connectedCallback(){super.connectedCallback(),this.setupDebouncer.run((()=>this.defaultSetup()))}defaultSetup(){var t,i;const e=null===(t=this.shadowRoot)||void 0===t?void 0:t.host.parentElement;e&&this.setupFor(null!==(i=this.target)&&void 0!==i?i:e),this.setRippleSize()}setupFor(t){if(this.setupDebouncer.cancel(),this.target===t)return;this.onDisconnect&&this.onDisconnect(),this.target=t,t.setAttribute("data-is-ft-ripple-target","true");const i=(...t)=>i=>{t.forEach((t=>window.addEventListener(t,this.endPress,{once:!0}))),this.startPress(i)},e=i("mouseup","contextmenu"),s=i("touchend","touchcancel"),r=t=>{["Enter"," "].includes(t.key)&&i("keyup")(t)};t.addEventListener("mouseover",this.startHover),t.addEventListener("mousemove",this.moveRipple),t.addEventListener("mouseleave",this.endHover),t.addEventListener("mousedown",e),t.addEventListener("touchstart",s),t.addEventListener("touchmove",this.moveRipple),t.addEventListener("keydown",r),t.addEventListener("focus",this.startFocus),t.addEventListener("blur",this.endFocus),t.addEventListener("focusin",this.startFocus),t.addEventListener("focusout",this.endFocus),this.onDisconnect=()=>{t.removeAttribute("data-is-ft-ripple-target"),t.removeEventListener("mouseover",this.startHover),t.removeEventListener("mousemove",this.moveRipple),t.removeEventListener("mouseleave",this.endHover),t.removeEventListener("mousedown",e),t.removeEventListener("touchstart",s),t.removeEventListener("touchmove",this.moveRipple),t.removeEventListener("keydown",r),t.removeEventListener("focus",this.startFocus),t.removeEventListener("blur",this.endFocus),t.removeEventListener("focusin",this.startFocus),t.removeEventListener("focusout",this.endFocus),this.onDisconnect=void 0,this.target=void 0}}getCoordinates(t){const i=t,e=t;let s,r;return null!=i.x?({x:s,y:r}=i):null!=e.touches&&(s=e.touches[0].clientX,r=e.touches[0].clientY),{x:s,y:r}}isIgnored(t){if(this.disabled)return!0;if(null!=t)for(let i of t.composedPath()){if(i===this.target)break;if("hasAttribute"in i&&i.hasAttribute("data-is-ft-ripple-target"))return!0}return!1}disconnectedCallback(){super.disconnectedCallback(),this.onDisconnect&&this.onDisconnect(),this.resizeObserver.disconnect(),this.endRipple()}}c.elementDefinitions={},c.styles=d,a([s.property({type:Boolean})],c.prototype,"primary",void 0),a([s.property({type:Boolean})],c.prototype,"secondary",void 0),a([s.property({type:Boolean})],c.prototype,"unbounded",void 0),a([s.property({type:Boolean})],c.prototype,"activated",void 0),a([s.property({type:Boolean})],c.prototype,"selected",void 0),a([s.property({type:Boolean})],c.prototype,"disabled",void 0),a([s.state()],c.prototype,"hovered",void 0),a([s.state()],c.prototype,"focused",void 0),a([s.state()],c.prototype,"pressed",void 0),a([s.state()],c.prototype,"rippling",void 0),a([s.state()],c.prototype,"rippleSize",void 0),a([s.state()],c.prototype,"originX",void 0),a([s.state()],c.prototype,"originY",void 0),a([s.query(".ft-ripple")],c.prototype,"ripple",void 0),a([s.query(".ft-ripple--effect")],c.prototype,"rippleEffect",void 0),i.customElement("ft-ripple")(c),t.FtRipple=c,t.FtRippleCssVariables=o,t.FtRipplePrimaryCssVariables=n,t.FtRippleSecondaryCssVariables=h,t.styles=d}({},ftGlobals.wcUtils,ftGlobals.lit,ftGlobals.litDecorators,ftGlobals.litClassMap);
@@ -213,4 +213,4 @@ const Ct=1;class kt{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,i,e)
213
213
  <div class="ft-ripple--background"></div>
214
214
  <div class="ft-ripple--effect"></div>
215
215
  </div>
216
- `}contentAvailableCallback(t){super.contentAvailableCallback(t),this.ripple&&this.resizeObserver.observe(this.ripple),this.rippleEffect&&this.rippleEffect.ontransitionstart!==this.onTransitionStart&&(this.rippleEffect.ontransitionstart=this.onTransitionStart,this.rippleEffect.ontransitionend=this.onTransitionEnd)}updated(t){var i,e;super.updated(t),t.has("disabled")&&(this.disabled?(this.endRipple(),null===(i=this.target)||void 0===i||i.removeAttribute("data-is-ft-ripple-target")):null===(e=this.target)||void 0===e||e.setAttribute("data-is-ft-ripple-target","true")),t.has("unbounded")&&this.setRippleSize()}endRipple(){this.endHover(),this.endFocus(),this.endPress(),this.rippling=!1}setRippleSize(){if(this.ripple){const t=this.ripple.getBoundingClientRect();this.rippleSize=(this.unbounded?1:1.7)*Math.max(t.width,t.height)}}connectedCallback(){super.connectedCallback(),this.setupDebouncer.run((()=>{var t;const i=null===(t=this.shadowRoot)||void 0===t?void 0:t.host.parentElement;i&&this.setupFor(i),this.setRippleSize()}))}setupFor(t){if(this.target===t)return;this.onDisconnect&&this.onDisconnect(),this.target=t,t.setAttribute("data-is-ft-ripple-target","true");const i=(...t)=>i=>{t.forEach((t=>window.addEventListener(t,this.endPress,{once:!0}))),this.startPress(i)},e=i("mouseup","contextmenu"),s=i("touchend","touchcancel"),o=t=>{["Enter"," "].includes(t.key)&&i("keyup")(t)};t.addEventListener("mouseover",this.startHover),t.addEventListener("mousemove",this.moveRipple),t.addEventListener("mouseleave",this.endHover),t.addEventListener("mousedown",e),t.addEventListener("touchstart",s),t.addEventListener("touchmove",this.moveRipple),t.addEventListener("keydown",o),t.addEventListener("focus",this.startFocus),t.addEventListener("blur",this.endFocus),t.addEventListener("focusin",this.startFocus),t.addEventListener("focusout",this.endFocus),this.onDisconnect=()=>{t.removeAttribute("data-is-ft-ripple-target"),t.removeEventListener("mouseover",this.startHover),t.removeEventListener("mousemove",this.moveRipple),t.removeEventListener("mouseleave",this.endHover),t.removeEventListener("mousedown",e),t.removeEventListener("touchstart",s),t.removeEventListener("touchmove",this.moveRipple),t.removeEventListener("keydown",o),t.removeEventListener("focus",this.startFocus),t.removeEventListener("blur",this.endFocus),t.removeEventListener("focusin",this.startFocus),t.removeEventListener("focusout",this.endFocus),this.onDisconnect=void 0,this.target=void 0}}getCoordinates(t){const i=t,e=t;let s,o;return null!=i.x?({x:s,y:o}=i):null!=e.touches&&(s=e.touches[0].clientX,o=e.touches[0].clientY),{x:s,y:o}}isIgnored(t){if(this.disabled)return!0;if(null!=t)for(let i of t.composedPath()){if(i===this.target)break;if("hasAttribute"in i&&i.hasAttribute("data-is-ft-ripple-target"))return!0}return!1}disconnectedCallback(){super.disconnectedCallback(),this.onDisconnect&&this.onDisconnect(),this.resizeObserver.disconnect(),this.endRipple()}}Pt.elementDefinitions={},Pt.styles=At,Lt([s({type:Boolean})],Pt.prototype,"primary",void 0),Lt([s({type:Boolean})],Pt.prototype,"secondary",void 0),Lt([s({type:Boolean})],Pt.prototype,"unbounded",void 0),Lt([s({type:Boolean})],Pt.prototype,"activated",void 0),Lt([s({type:Boolean})],Pt.prototype,"selected",void 0),Lt([s({type:Boolean})],Pt.prototype,"disabled",void 0),Lt([o()],Pt.prototype,"hovered",void 0),Lt([o()],Pt.prototype,"focused",void 0),Lt([o()],Pt.prototype,"pressed",void 0),Lt([o()],Pt.prototype,"rippling",void 0),Lt([o()],Pt.prototype,"rippleSize",void 0),Lt([o()],Pt.prototype,"originX",void 0),Lt([o()],Pt.prototype,"originY",void 0),Lt([r(".ft-ripple")],Pt.prototype,"ripple",void 0),Lt([r(".ft-ripple--effect")],Pt.prototype,"rippleEffect",void 0),(jt="ft-ripple",t=>{window.customElements.get(jt)||window.customElements.define(jt,t)})(Pt),t.FtRipple=Pt,t.FtRippleCssVariables=Rt,t.FtRipplePrimaryCssVariables=Mt,t.FtRippleSecondaryCssVariables=Ft,t.styles=At}({});
216
+ `}contentAvailableCallback(t){super.contentAvailableCallback(t),this.ripple&&this.resizeObserver.observe(this.ripple),this.rippleEffect&&this.rippleEffect.ontransitionstart!==this.onTransitionStart&&(this.rippleEffect.ontransitionstart=this.onTransitionStart,this.rippleEffect.ontransitionend=this.onTransitionEnd)}updated(t){var i,e;super.updated(t),t.has("disabled")&&(this.disabled?(this.endRipple(),null===(i=this.target)||void 0===i||i.removeAttribute("data-is-ft-ripple-target")):null===(e=this.target)||void 0===e||e.setAttribute("data-is-ft-ripple-target","true")),t.has("unbounded")&&this.setRippleSize()}endRipple(){this.endHover(),this.endFocus(),this.endPress(),this.rippling=!1}setRippleSize(){if(this.ripple){const t=this.ripple.getBoundingClientRect();this.rippleSize=(this.unbounded?1:1.7)*Math.max(t.width,t.height)}}connectedCallback(){super.connectedCallback(),this.setupDebouncer.run((()=>this.defaultSetup()))}defaultSetup(){var t,i;const e=null===(t=this.shadowRoot)||void 0===t?void 0:t.host.parentElement;e&&this.setupFor(null!==(i=this.target)&&void 0!==i?i:e),this.setRippleSize()}setupFor(t){if(this.setupDebouncer.cancel(),this.target===t)return;this.onDisconnect&&this.onDisconnect(),this.target=t,t.setAttribute("data-is-ft-ripple-target","true");const i=(...t)=>i=>{t.forEach((t=>window.addEventListener(t,this.endPress,{once:!0}))),this.startPress(i)},e=i("mouseup","contextmenu"),s=i("touchend","touchcancel"),o=t=>{["Enter"," "].includes(t.key)&&i("keyup")(t)};t.addEventListener("mouseover",this.startHover),t.addEventListener("mousemove",this.moveRipple),t.addEventListener("mouseleave",this.endHover),t.addEventListener("mousedown",e),t.addEventListener("touchstart",s),t.addEventListener("touchmove",this.moveRipple),t.addEventListener("keydown",o),t.addEventListener("focus",this.startFocus),t.addEventListener("blur",this.endFocus),t.addEventListener("focusin",this.startFocus),t.addEventListener("focusout",this.endFocus),this.onDisconnect=()=>{t.removeAttribute("data-is-ft-ripple-target"),t.removeEventListener("mouseover",this.startHover),t.removeEventListener("mousemove",this.moveRipple),t.removeEventListener("mouseleave",this.endHover),t.removeEventListener("mousedown",e),t.removeEventListener("touchstart",s),t.removeEventListener("touchmove",this.moveRipple),t.removeEventListener("keydown",o),t.removeEventListener("focus",this.startFocus),t.removeEventListener("blur",this.endFocus),t.removeEventListener("focusin",this.startFocus),t.removeEventListener("focusout",this.endFocus),this.onDisconnect=void 0,this.target=void 0}}getCoordinates(t){const i=t,e=t;let s,o;return null!=i.x?({x:s,y:o}=i):null!=e.touches&&(s=e.touches[0].clientX,o=e.touches[0].clientY),{x:s,y:o}}isIgnored(t){if(this.disabled)return!0;if(null!=t)for(let i of t.composedPath()){if(i===this.target)break;if("hasAttribute"in i&&i.hasAttribute("data-is-ft-ripple-target"))return!0}return!1}disconnectedCallback(){super.disconnectedCallback(),this.onDisconnect&&this.onDisconnect(),this.resizeObserver.disconnect(),this.endRipple()}}Pt.elementDefinitions={},Pt.styles=At,Lt([s({type:Boolean})],Pt.prototype,"primary",void 0),Lt([s({type:Boolean})],Pt.prototype,"secondary",void 0),Lt([s({type:Boolean})],Pt.prototype,"unbounded",void 0),Lt([s({type:Boolean})],Pt.prototype,"activated",void 0),Lt([s({type:Boolean})],Pt.prototype,"selected",void 0),Lt([s({type:Boolean})],Pt.prototype,"disabled",void 0),Lt([o()],Pt.prototype,"hovered",void 0),Lt([o()],Pt.prototype,"focused",void 0),Lt([o()],Pt.prototype,"pressed",void 0),Lt([o()],Pt.prototype,"rippling",void 0),Lt([o()],Pt.prototype,"rippleSize",void 0),Lt([o()],Pt.prototype,"originX",void 0),Lt([o()],Pt.prototype,"originY",void 0),Lt([r(".ft-ripple")],Pt.prototype,"ripple",void 0),Lt([r(".ft-ripple--effect")],Pt.prototype,"rippleEffect",void 0),(jt="ft-ripple",t=>{window.customElements.get(jt)||window.customElements.define(jt,t)})(Pt),t.FtRipple=Pt,t.FtRippleCssVariables=Rt,t.FtRipplePrimaryCssVariables=Mt,t.FtRippleSecondaryCssVariables=Ft,t.styles=At}({});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluid-topics/ft-ripple",
3
- "version": "1.0.3",
3
+ "version": "1.0.5",
4
4
  "description": "A custom Fluid Topics ripple component",
5
5
  "keywords": [
6
6
  "Lit"
@@ -19,8 +19,8 @@
19
19
  "url": "ssh://git@scm.mrs.antidot.net:2222/fluidtopics/ft-web-components.git"
20
20
  },
21
21
  "dependencies": {
22
- "@fluid-topics/ft-wc-utils": "1.0.3",
22
+ "@fluid-topics/ft-wc-utils": "1.0.5",
23
23
  "lit": "2.7.2"
24
24
  },
25
- "gitHead": "8c7b95fa60f5ac8dd10301abb40dd62ff4f9b335"
25
+ "gitHead": "a4987091424b3c8b5e36193a8b854eddfe44d439"
26
26
  }