m3-ripple 1.0.1 → 1.1.0
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.
- package/.github/workflows/publish.yml +3 -5
- package/CHANGELOG.md +10 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +132 -129
- package/dist/ripple.css +4 -1
- package/package.json +1 -1
|
@@ -29,9 +29,9 @@ jobs:
|
|
|
29
29
|
bun-version: latest
|
|
30
30
|
registry-url: "https://registry.npmjs.org"
|
|
31
31
|
|
|
32
|
-
- uses: actions/setup-node@
|
|
32
|
+
- uses: actions/setup-node@v5
|
|
33
33
|
with:
|
|
34
|
-
node-version: '
|
|
34
|
+
node-version: '24.x'
|
|
35
35
|
registry-url: 'https://registry.npmjs.org'
|
|
36
36
|
|
|
37
37
|
- name: Install packages
|
|
@@ -41,7 +41,5 @@ jobs:
|
|
|
41
41
|
run: bun run build
|
|
42
42
|
|
|
43
43
|
- name: 'Publish'
|
|
44
|
-
env:
|
|
45
|
-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
46
44
|
run: |
|
|
47
|
-
npm publish --provenance --access=public
|
|
45
|
+
NPM_AUTH_TOKEN="" npm publish --provenance --access=public
|
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
# 1.1.0 - 30 Dec 2025
|
|
2
|
+
Improvement:
|
|
3
|
+
- add `pointer-events: none` to ripple element to prevent blocking pointer events on parent elements
|
|
4
|
+
- automatic disable ripple effect based on parent element
|
|
5
|
+
- add `overflow: hidden`, `border-radius: inherit` to ripple container
|
|
6
|
+
|
|
7
|
+
# 1.0.2 - 22 Jun 2025
|
|
8
|
+
Fix:
|
|
9
|
+
- Unexpected semi-colon in CSS
|
|
10
|
+
|
|
1
11
|
# 1.0.1 - 22 Jun 2025
|
|
2
12
|
Improvement:
|
|
3
13
|
- Export `main`, `module`, and `types` in package.json
|
package/dist/index.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Y=require("react/jsx-runtime"),r=require("react"),J=.2,K=12,Q=75,V=.35,W="forwards",ee=({hoverOpacity:k,pressedOpacity:g,disabled:l=!1,className:v="",style:D,easing:I,duration:a=150,minimumPressDuration:y=225,touchDelay:S=150})=>{const[H,M]=r.useState(!1),[U,T]=r.useState(!1),o=r.useRef(null),P=r.useRef(null),m=r.useRef(""),$=r.useRef(""),b=r.useRef(0),E=r.useRef(void 0),s=r.useRef(0),R=r.useRef(void 0),w=r.useRef(!1);r.useEffect(()=>{if(!P.current)return;const e=P.current.style;k!==void 0&&e.setProperty("--ripple-hover-opacity",k+""),g!==void 0&&e.setProperty("--ripple-pressed-opacity",g+""),a!==void 0&&a!==150&&e.setProperty("--ripple-duration",a+"ms")},[k,g,a]);const f=(e,t)=>parent.addEventListener(e,t,!0),p=(e,t)=>parent.removeEventListener(e,t,!0);r.useEffect(()=>{var t;if((t=o.current)!=null&&t.parentElement)return f("click",F),f("contextmenu",X),f("pointercancel",O),f("pointerdown",q),f("pointerenter",_),f("pointerleave",j),f("pointerup",G),()=>{p("click",F),p("contextmenu",X),p("pointercancel",O),p("pointerdown",q),p("pointerenter",_),p("pointerleave",j),p("pointerup",G)}},[l,I,a,y,S]);const h=r.useCallback(({pointerType:e})=>e==="touch",[]),u=r.useCallback(e=>{var n,c;if(l||(c=(n=o.current)==null?void 0:n.parentElement)!=null&&c.disabled||!e.isPrimary||R.current&&R.current.pointerId!==e.pointerId)return!1;if(e.type==="pointerenter"||e.type==="pointerleave")return!h(e);const t=e.buttons===1;return h(e)||t},[l,h]),N=r.useCallback(({x:e,y:t})=>{const n=o.current;if(!n)return!1;const c=n.getBoundingClientRect();return e>=c.left&&e<=c.right&&t>=c.top&&t<=c.bottom},[o]),_=r.useCallback(e=>{u(e)&&M(!0)},[u]),z=r.useCallback(()=>{const e=o.current;if(!e)return;const{height:t,width:n}=e.getBoundingClientRect(),c=Math.max(t,n),C=Math.max(V*c,Q),x=Math.floor(c*J),Z=Math.sqrt(n**2+t**2)+K;b.current=x,$.current=(Z+C)/x+"",m.current=x+"px"},[o]),B=r.useCallback(e=>{const t=o.current;if(!t)return{x:0,y:0};const n=t.getBoundingClientRect(),c=window.scrollX+n.left,C=window.scrollY+n.top;return{x:e.pageX-c,y:e.pageY-C}},[o]),L=r.useCallback(e=>{const t=o.current.parentElement;if(!t)return{startPoint:{x:0,y:0},endPoint:{x:0,y:0}};const n=t.getBoundingClientRect(),c={x:(n.width-b.current)/2,y:(n.height-b.current)/2};return{startPoint:B(e),endPoint:c}},[o,B]),d=r.useCallback(e=>{var A;const t=P.current;if(!t)return;T(!0),(A=E.current)==null||A.cancel(),z();const{startPoint:n,endPoint:c}=L(e),C=`${n.x}px, ${n.y}px`,x=`${c.x}px, ${c.y}px`;E.current=t.animate({height:[m.current,m.current],width:[m.current,m.current],transform:[`translate(${C}) scale(1)`,`translate(${x}) scale(${$.current})`]},{pseudoElement:"::after",duration:a,easing:I,fill:W})},[z,a,I,L]),i=r.useCallback(()=>{R.current=void 0,s.current=0;const e=E.current;let t=1/0;if(typeof(e==null?void 0:e.currentTime)=="number"?t=e.currentTime:e!=null&&e.currentTime&&(t=e.currentTime.to("ms").value),t>=y)return void T(!1);setTimeout(()=>{E.current===e&&T(!1)},y-t)},[y]),j=r.useCallback(e=>{u(e)&&(M(!1),s.current!==0&&i())},[i,u]),G=r.useCallback(e=>{if(u(e)){if(s.current===2){s.current=3;return}if(s.current===1){s.current=3,d(R.current);return}}},[u,d]),q=r.useCallback(async e=>{if(u(e)){if(R.current=e,!h(e)){s.current=3,d(e);return}w.current&&!N(e)||(w.current=!1,s.current=1,await new Promise(t=>{setTimeout(t,S)}),s.current===1&&(s.current=2,d(e)))}},[u,h,N,d,S]),F=r.useCallback(()=>{if(!l){if(s.current===3){i();return}s.current===0&&(d(),i())}},[l,i,d]),O=r.useCallback(e=>{u(e)&&i()},[i,u]),X=r.useCallback(()=>{l||(w.current=!0,i())},[l,i]);return Y.jsx("div",{ref:o,className:`salty-ripple${v?` ${v}`:""}`,style:D,"aria-hidden":"true",children:Y.jsx("div",{ref:P,className:`salty-ripple-surface${H?" --hover":""}${U?" --press":""}`})})};exports.Ripple=ee;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAQA,MAAM,WAAW,WAAW;IACxB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IAEvB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IAE3B;;OAEG;IACH,MAAM,CAAC,EAAE,4BAA4B,CAAA;IAErC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAE7B;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;CACtB;AA+CD;;GAEG;AACH,eAAO,MAAM,MAAM,GAAI,kHAUpB,WAAW,4CAoVb,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,192 +1,195 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { useState as
|
|
3
|
-
const
|
|
4
|
-
hoverOpacity:
|
|
5
|
-
pressedOpacity:
|
|
1
|
+
import { jsx as H } from "react/jsx-runtime";
|
|
2
|
+
import { useState as U, useRef as l, useEffect as Z, useCallback as o } from "react";
|
|
3
|
+
const W = 0.2, b = 12, ee = 75, te = 0.35, re = "forwards", ce = ({
|
|
4
|
+
hoverOpacity: T,
|
|
5
|
+
pressedOpacity: w,
|
|
6
6
|
disabled: a = !1,
|
|
7
|
-
className:
|
|
8
|
-
style:
|
|
9
|
-
easing:
|
|
10
|
-
duration:
|
|
11
|
-
minimumPressDuration:
|
|
12
|
-
touchDelay:
|
|
7
|
+
className: N = "",
|
|
8
|
+
style: J,
|
|
9
|
+
easing: S,
|
|
10
|
+
duration: f = 150,
|
|
11
|
+
minimumPressDuration: E = 225,
|
|
12
|
+
touchDelay: C = 150
|
|
13
13
|
}) => {
|
|
14
|
-
const [
|
|
14
|
+
const [K, _] = U(!1), [Q, A] = U(!1), s = l(null), I = l(null), h = l(""), z = l(""), $ = l(0), g = l(void 0), c = l(
|
|
15
15
|
0
|
|
16
16
|
/* INACTIVE */
|
|
17
|
-
),
|
|
18
|
-
|
|
19
|
-
if (!
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
}, [
|
|
23
|
-
const
|
|
24
|
-
|
|
17
|
+
), x = l(void 0), v = l(!1);
|
|
18
|
+
Z(() => {
|
|
19
|
+
if (!I.current) return;
|
|
20
|
+
const e = I.current.style;
|
|
21
|
+
T !== void 0 && e.setProperty("--ripple-hover-opacity", T + ""), w !== void 0 && e.setProperty("--ripple-pressed-opacity", w + ""), f !== void 0 && f !== 150 && e.setProperty("--ripple-duration", f + "ms");
|
|
22
|
+
}, [T, w, f]);
|
|
23
|
+
const p = (e, t) => parent.addEventListener(e, t, !0), d = (e, t) => parent.removeEventListener(e, t, !0);
|
|
24
|
+
Z(() => {
|
|
25
|
+
var t;
|
|
26
|
+
if ((t = s.current) != null && t.parentElement)
|
|
27
|
+
return p("click", j), p("contextmenu", D), p("pointercancel", q), p("pointerdown", O), p("pointerenter", L), p("pointerleave", X), p("pointerup", Y), () => {
|
|
28
|
+
d("click", j), d("contextmenu", D), d("pointercancel", q), d("pointerdown", O), d("pointerenter", L), d("pointerleave", X), d("pointerup", Y);
|
|
29
|
+
};
|
|
30
|
+
}, [a, S, f, E, C]);
|
|
31
|
+
const R = o(
|
|
32
|
+
({ pointerType: e }) => e === "touch",
|
|
25
33
|
[]
|
|
26
|
-
),
|
|
27
|
-
(
|
|
28
|
-
|
|
34
|
+
), i = o(
|
|
35
|
+
(e) => {
|
|
36
|
+
var r, n;
|
|
37
|
+
if (a || // @ts-ignore
|
|
38
|
+
(n = (r = s.current) == null ? void 0 : r.parentElement) != null && n.disabled || !e.isPrimary || x.current && x.current.pointerId !== e.pointerId)
|
|
29
39
|
return !1;
|
|
30
|
-
if (
|
|
31
|
-
return !
|
|
32
|
-
const
|
|
33
|
-
return
|
|
40
|
+
if (e.type === "pointerenter" || e.type === "pointerleave")
|
|
41
|
+
return !R(e);
|
|
42
|
+
const t = e.buttons === 1;
|
|
43
|
+
return R(e) || t;
|
|
34
44
|
},
|
|
35
|
-
[a,
|
|
36
|
-
),
|
|
45
|
+
[a, R]
|
|
46
|
+
), B = o(
|
|
37
47
|
// @ts-ignore
|
|
38
|
-
({ x:
|
|
39
|
-
const
|
|
40
|
-
if (!
|
|
41
|
-
const
|
|
42
|
-
return
|
|
43
|
-
},
|
|
44
|
-
[i]
|
|
45
|
-
), Y = r(
|
|
46
|
-
(t) => {
|
|
47
|
-
s(t) && N(!0);
|
|
48
|
+
({ x: e, y: t }) => {
|
|
49
|
+
const r = s.current;
|
|
50
|
+
if (!r) return !1;
|
|
51
|
+
const n = r.getBoundingClientRect();
|
|
52
|
+
return e >= n.left && e <= n.right && t >= n.top && t <= n.bottom;
|
|
48
53
|
},
|
|
49
54
|
[s]
|
|
50
|
-
),
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
55
|
+
), L = o(
|
|
56
|
+
(e) => {
|
|
57
|
+
i(e) && _(!0);
|
|
58
|
+
},
|
|
59
|
+
[i]
|
|
60
|
+
), k = o(() => {
|
|
61
|
+
const e = s.current;
|
|
62
|
+
if (!e) return;
|
|
63
|
+
const { height: t, width: r } = e.getBoundingClientRect(), n = Math.max(t, r), P = Math.max(
|
|
64
|
+
te * n,
|
|
65
|
+
ee
|
|
66
|
+
), y = Math.floor(n * W), V = Math.sqrt(r ** 2 + t ** 2) + b;
|
|
67
|
+
$.current = y, z.current = (V + P) / y + "", h.current = y + "px";
|
|
68
|
+
}, [s]), G = o(
|
|
69
|
+
(e) => {
|
|
70
|
+
const t = s.current;
|
|
71
|
+
if (!t) return { x: 0, y: 0 };
|
|
72
|
+
const r = t.getBoundingClientRect(), n = window.scrollX + r.left, P = window.scrollY + r.top;
|
|
63
73
|
return {
|
|
64
|
-
x:
|
|
65
|
-
y:
|
|
74
|
+
x: e.pageX - n,
|
|
75
|
+
y: e.pageY - P
|
|
66
76
|
};
|
|
67
77
|
},
|
|
68
|
-
[
|
|
69
|
-
),
|
|
70
|
-
(
|
|
71
|
-
const
|
|
72
|
-
if (!
|
|
78
|
+
[s]
|
|
79
|
+
), F = o(
|
|
80
|
+
(e) => {
|
|
81
|
+
const t = s.current.parentElement;
|
|
82
|
+
if (!t)
|
|
73
83
|
return { startPoint: { x: 0, y: 0 }, endPoint: { x: 0, y: 0 } };
|
|
74
|
-
const
|
|
75
|
-
x: (
|
|
76
|
-
y: (
|
|
84
|
+
const r = t.getBoundingClientRect(), n = {
|
|
85
|
+
x: (r.width - $.current) / 2,
|
|
86
|
+
y: (r.height - $.current) / 2
|
|
77
87
|
};
|
|
78
88
|
return {
|
|
79
|
-
startPoint:
|
|
80
|
-
endPoint:
|
|
89
|
+
startPoint: G(e),
|
|
90
|
+
endPoint: n
|
|
81
91
|
};
|
|
82
92
|
},
|
|
83
|
-
[
|
|
84
|
-
),
|
|
85
|
-
(
|
|
86
|
-
var
|
|
87
|
-
const
|
|
88
|
-
if (!
|
|
89
|
-
|
|
90
|
-
const { startPoint:
|
|
91
|
-
|
|
93
|
+
[s, G]
|
|
94
|
+
), m = o(
|
|
95
|
+
(e) => {
|
|
96
|
+
var M;
|
|
97
|
+
const t = I.current;
|
|
98
|
+
if (!t) return;
|
|
99
|
+
A(!0), (M = g.current) == null || M.cancel(), k();
|
|
100
|
+
const { startPoint: r, endPoint: n } = F(e), P = `${r.x}px, ${r.y}px`, y = `${n.x}px, ${n.y}px`;
|
|
101
|
+
g.current = t.animate(
|
|
92
102
|
{
|
|
93
|
-
height: [
|
|
94
|
-
width: [
|
|
103
|
+
height: [h.current, h.current],
|
|
104
|
+
width: [h.current, h.current],
|
|
95
105
|
transform: [
|
|
96
106
|
`translate(${P}) scale(1)`,
|
|
97
|
-
`translate(${
|
|
107
|
+
`translate(${y}) scale(${z.current})`
|
|
98
108
|
]
|
|
99
109
|
},
|
|
100
110
|
{
|
|
101
111
|
pseudoElement: "::after",
|
|
102
|
-
duration:
|
|
103
|
-
easing:
|
|
104
|
-
fill:
|
|
112
|
+
duration: f,
|
|
113
|
+
easing: S,
|
|
114
|
+
fill: re
|
|
105
115
|
}
|
|
106
116
|
);
|
|
107
117
|
},
|
|
108
|
-
[
|
|
109
|
-
), u =
|
|
110
|
-
|
|
111
|
-
const
|
|
112
|
-
let
|
|
113
|
-
if (typeof (
|
|
114
|
-
return void
|
|
118
|
+
[k, f, S, F]
|
|
119
|
+
), u = o(() => {
|
|
120
|
+
x.current = void 0, c.current = 0;
|
|
121
|
+
const e = g.current;
|
|
122
|
+
let t = 1 / 0;
|
|
123
|
+
if (typeof (e == null ? void 0 : e.currentTime) == "number" ? t = e.currentTime : e != null && e.currentTime && (t = e.currentTime.to("ms").value), t >= E)
|
|
124
|
+
return void A(!1);
|
|
115
125
|
setTimeout(() => {
|
|
116
|
-
|
|
117
|
-
},
|
|
118
|
-
}, [
|
|
119
|
-
(
|
|
120
|
-
|
|
126
|
+
g.current === e && A(!1);
|
|
127
|
+
}, E - t);
|
|
128
|
+
}, [E]), X = o(
|
|
129
|
+
(e) => {
|
|
130
|
+
i(e) && (_(!1), c.current !== 0 && u());
|
|
121
131
|
},
|
|
122
|
-
[u,
|
|
123
|
-
),
|
|
124
|
-
(
|
|
125
|
-
if (
|
|
132
|
+
[u, i]
|
|
133
|
+
), Y = o(
|
|
134
|
+
(e) => {
|
|
135
|
+
if (i(e)) {
|
|
126
136
|
if (c.current === 2) {
|
|
127
137
|
c.current = 3;
|
|
128
138
|
return;
|
|
129
139
|
}
|
|
130
140
|
if (c.current === 1) {
|
|
131
|
-
c.current = 3,
|
|
141
|
+
c.current = 3, m(x.current);
|
|
132
142
|
return;
|
|
133
143
|
}
|
|
134
144
|
}
|
|
135
145
|
},
|
|
136
|
-
[
|
|
137
|
-
),
|
|
138
|
-
async (
|
|
139
|
-
if (
|
|
140
|
-
if (
|
|
141
|
-
c.current = 3,
|
|
146
|
+
[i, m]
|
|
147
|
+
), O = o(
|
|
148
|
+
async (e) => {
|
|
149
|
+
if (i(e)) {
|
|
150
|
+
if (x.current = e, !R(e)) {
|
|
151
|
+
c.current = 3, m(e);
|
|
142
152
|
return;
|
|
143
153
|
}
|
|
144
|
-
|
|
145
|
-
setTimeout(
|
|
146
|
-
}), c.current === 1 && (c.current = 2,
|
|
154
|
+
v.current && !B(e) || (v.current = !1, c.current = 1, await new Promise((t) => {
|
|
155
|
+
setTimeout(t, C);
|
|
156
|
+
}), c.current === 1 && (c.current = 2, m(e)));
|
|
147
157
|
}
|
|
148
158
|
},
|
|
149
|
-
[
|
|
150
|
-
),
|
|
159
|
+
[i, R, B, m, C]
|
|
160
|
+
), j = o(() => {
|
|
151
161
|
if (!a) {
|
|
152
162
|
if (c.current === 3) {
|
|
153
163
|
u();
|
|
154
164
|
return;
|
|
155
165
|
}
|
|
156
|
-
c.current === 0 && (
|
|
166
|
+
c.current === 0 && (m(), u());
|
|
157
167
|
}
|
|
158
|
-
}, [a, u,
|
|
159
|
-
(
|
|
160
|
-
|
|
168
|
+
}, [a, u, m]), q = o(
|
|
169
|
+
(e) => {
|
|
170
|
+
i(e) && u();
|
|
161
171
|
},
|
|
162
|
-
[u,
|
|
163
|
-
),
|
|
164
|
-
a || (
|
|
172
|
+
[u, i]
|
|
173
|
+
), D = o(() => {
|
|
174
|
+
a || (v.current = !0, u());
|
|
165
175
|
}, [a, u]);
|
|
166
|
-
return /* @__PURE__ */
|
|
176
|
+
return /* @__PURE__ */ H(
|
|
167
177
|
"div",
|
|
168
178
|
{
|
|
169
|
-
ref:
|
|
170
|
-
className: `salty-ripple${
|
|
171
|
-
style:
|
|
179
|
+
ref: s,
|
|
180
|
+
className: `salty-ripple${N ? ` ${N}` : ""}`,
|
|
181
|
+
style: J,
|
|
172
182
|
"aria-hidden": "true",
|
|
173
|
-
|
|
174
|
-
onContextMenu: Z,
|
|
175
|
-
onPointerCancel: H,
|
|
176
|
-
onPointerDown: j,
|
|
177
|
-
onPointerEnter: Y,
|
|
178
|
-
onPointerLeave: O,
|
|
179
|
-
onPointerUp: U,
|
|
180
|
-
children: /* @__PURE__ */ k(
|
|
183
|
+
children: /* @__PURE__ */ H(
|
|
181
184
|
"div",
|
|
182
185
|
{
|
|
183
|
-
ref:
|
|
184
|
-
className: `salty-ripple-surface${
|
|
186
|
+
ref: I,
|
|
187
|
+
className: `salty-ripple-surface${K ? " --hover" : ""}${Q ? " --press" : ""}`
|
|
185
188
|
}
|
|
186
189
|
)
|
|
187
190
|
}
|
|
188
191
|
);
|
|
189
192
|
};
|
|
190
193
|
export {
|
|
191
|
-
|
|
194
|
+
ce as Ripple
|
|
192
195
|
};
|
package/dist/ripple.css
CHANGED
|
@@ -5,6 +5,9 @@
|
|
|
5
5
|
height: 100%;
|
|
6
6
|
display: block;
|
|
7
7
|
margin: auto;
|
|
8
|
+
pointer-events: none;
|
|
9
|
+
overflow: hidden;
|
|
10
|
+
border-radius: inherit;
|
|
8
11
|
}
|
|
9
12
|
|
|
10
13
|
.salty-ripple[aria-disabled='true'] {
|
|
@@ -21,7 +24,7 @@
|
|
|
21
24
|
inset: 0;
|
|
22
25
|
pointer-events: none;
|
|
23
26
|
overflow: hidden;
|
|
24
|
-
border-radius: inherit
|
|
27
|
+
border-radius: inherit;
|
|
25
28
|
}
|
|
26
29
|
|
|
27
30
|
.salty-ripple .salty-ripple-surface::before,
|