@multiplatform.one/forms 7.79.0 → 7.80.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/dist/cjs/Button/glass.cjs +1 -2
- package/dist/cjs/Button/webGlass.native.js.map +1 -1
- package/dist/esm/Button/glass.mjs +1 -2
- package/dist/esm/Button/glass.mjs.map +1 -1
- package/dist/esm/Button/webGlass.mjs.map +1 -1
- package/dist/esm/Button/webGlass.native.js.map +1 -1
- package/dist/jsx/Button/glass.mjs +1 -2
- package/dist/jsx/Button/glass.mjs.map +1 -1
- package/dist/jsx/Button/webGlass.mjs.map +1 -1
- package/dist/jsx/Button/webGlass.native.js.map +1 -1
- package/package.json +8 -8
- package/src/Button/Button.glassPress.spec.tsx +117 -0
- package/src/Button/IconButtonGroup.spec.tsx +1 -1
- package/src/Button/glass.spec.ts +48 -18
- package/src/Button/glass.ts +5 -12
- package/src/Button/index.tsx +2 -2
- package/src/Button/webGlass.ts +5 -4
- package/types/Button/glass.d.ts +4 -3
- package/types/Button/glass.d.ts.map +1 -1
- package/types/Button/webGlass.d.ts +5 -4
- package/types/Button/webGlass.d.ts.map +1 -1
|
@@ -29,9 +29,8 @@ __export(glass_exports, {
|
|
|
29
29
|
module.exports = __toCommonJS(glass_exports);
|
|
30
30
|
var import_webGlass = require("./webGlass.cjs");
|
|
31
31
|
var import_webGlass2 = require("./webGlass.cjs");
|
|
32
|
-
const iosSafariGlassFace = false;
|
|
33
32
|
function loadGlassView() {
|
|
34
|
-
return
|
|
33
|
+
return (0, import_webGlass.isAppleTouchWeb)() ? import_webGlass.WebGlassFace : null;
|
|
35
34
|
}
|
|
36
35
|
function loadGlassContainer() {
|
|
37
36
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","webGlass_exports","__export","WebGlassFace","isAppleTouchWeb","module","exports","import_theme","require","import_react","import_tamagui","nav","arguments","length","navigator","_nav_userAgent","_ref","_nav_platform","_nav_maxTouchPoints","test","userAgent","platform","maxTouchPoints","webGlassMarker","webGlassBlur","backdropFilter","WebkitBackdropFilter","param","style","children","dark","isDarkThemeName","useThemeName","createElement","Fragment","YStack","pointerEvents","backgroundColor","opacity","shadowColor","shadowRadius","shadowOffset","width","height"],"sources":["../../../src/Button/webGlass.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,gBAAA;AAAAC,QAAA,CAAAD,gBAAA;EAAAE,YAAA,EAAAA,CAAA,KAAAA,YAAA;EAAAC,eAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAV,YAAgC,CAAAK,gBAAA;AAChC,IAAAM,YAAA,GAAwDC,OAAA;AACxD,IAAAC,YAAA,GAAAD,OAAqC;AAS9B,IAAAE,cAAS,GAAAF,OACd,UAAyC;AAEzC,SAAKJ,eAAYA,CAAA;EACjB,IAAIO,GAAA,GAAAC,SAAA,CAAAC,MAAmB,GAAK,KAAID,SAAA,EAAa,MAAK,MAAO,GAAAA,SAAA,aAAAE,SAAA,4BAAAA,SAAA;EACzD,IAAAC,cAAkB,EAAAC,IAAI,EAAAC,aAAgB,EAAAC,mBAAqB;EAC7D,KAAAP,GAAA;EAEA,IAAM,kBAAiB,CAAEQ,IAAA,EAAAJ,cAAiB,GAAMJ,GAAA,CAAAS,SAAA,cAAAL,cAAA,cAAAA,cAAA;EAChD,OAAM,MAAAI,IAAA,EAAeH,IAAA,IAAAC,aAAA,GAAAN,GAAA,CAAAU,QAAA,cAAAJ,aAAA,cAAAA,aAAA,GAAAN,GAAA,CAAAS,SAAA,cAAAJ,IAAA,cAAAA,IAAA,YAAAE,mBAAA,GAAAP,GAAA,CAAAW,cAAA,cAAAJ,mBAAA,cAAAA,mBAAA;AAAA;AACH,IAChBK,cAAA;EACF;
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","webGlass_exports","__export","WebGlassFace","isAppleTouchWeb","module","exports","import_theme","require","import_react","import_tamagui","nav","arguments","length","navigator","_nav_userAgent","_ref","_nav_platform","_nav_maxTouchPoints","test","userAgent","platform","maxTouchPoints","webGlassMarker","webGlassBlur","backdropFilter","WebkitBackdropFilter","param","style","children","dark","isDarkThemeName","useThemeName","createElement","Fragment","YStack","pointerEvents","backgroundColor","opacity","shadowColor","shadowRadius","shadowOffset","width","height"],"sources":["../../../src/Button/webGlass.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,gBAAA;AAAAC,QAAA,CAAAD,gBAAA;EAAAE,YAAA,EAAAA,CAAA,KAAAA,YAAA;EAAAC,eAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAV,YAAgC,CAAAK,gBAAA;AAChC,IAAAM,YAAA,GAAwDC,OAAA;AACxD,IAAAC,YAAA,GAAAD,OAAqC;AAS9B,IAAAE,cAAS,GAAAF,OACd,UAAyC;AAEzC,SAAKJ,eAAYA,CAAA;EACjB,IAAIO,GAAA,GAAAC,SAAA,CAAAC,MAAmB,GAAK,KAAID,SAAA,EAAa,MAAK,MAAO,GAAAA,SAAA,aAAAE,SAAA,4BAAAA,SAAA;EACzD,IAAAC,cAAkB,EAAAC,IAAI,EAAAC,aAAgB,EAAAC,mBAAqB;EAC7D,KAAAP,GAAA;EAEA,IAAM,kBAAiB,CAAEQ,IAAA,EAAAJ,cAAiB,GAAMJ,GAAA,CAAAS,SAAA,cAAAL,cAAA,cAAAA,cAAA;EAChD,OAAM,MAAAI,IAAA,EAAeH,IAAA,IAAAC,aAAA,GAAAN,GAAA,CAAAU,QAAA,cAAAJ,aAAA,cAAAA,aAAA,GAAAN,GAAA,CAAAS,SAAA,cAAAJ,IAAA,cAAAA,IAAA,YAAAE,mBAAA,GAAAP,GAAA,CAAAW,cAAA,cAAAJ,mBAAA,cAAAA,mBAAA;AAAA;AACH,IAChBK,cAAA;EACF;AASO;AACL,IAAAC,YAAM,GAAO;EACbC,cAAO;EAAAC,oBACL;AAAA;AACA,SACAvB,aAAAwB,KAAA;EAAsB,IACpB;IAAAC,KAAA;IAAAC;EAAe,IAAAF,KAAA;EAAA,IACfG,IAAA,OAAAvB,YAAiB,CAAOwB,eAAY,MAAArB,cAAA,CAAAsB,YAAA;EAAA,OACpC,IAAAvB,YAAS,CAAAwB,aAAA,EAAAxB,YAAA,CAAAyB,QAAA,YAAAzB,YAAA,CAAAwB,aAAA,EAAAvB,cAAA,CAAAyB,MAAA;IAAAC,aACT,EAAa;IAAAC,eACb,EAAcP,IAAA;IAAAQ,OACd;IAAoCC,WACjC;IAAAC,YACM,EAAI;IACfC,YAAC;MACDC,KAAA;MACFC,MAAA;IACF","ignoreList":[]}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { isAppleTouchWeb, WebGlassFace } from "./webGlass.mjs";
|
|
2
2
|
import { isAppleTouchWeb as isAppleTouchWeb2 } from "./webGlass.mjs";
|
|
3
|
-
const iosSafariGlassFace = false;
|
|
4
3
|
function loadGlassView() {
|
|
5
|
-
return
|
|
4
|
+
return isAppleTouchWeb() ? WebGlassFace : null;
|
|
6
5
|
}
|
|
7
6
|
function loadGlassContainer() {
|
|
8
7
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isAppleTouchWeb","WebGlassFace","isAppleTouchWeb2","
|
|
1
|
+
{"version":3,"names":["isAppleTouchWeb","WebGlassFace","isAppleTouchWeb2","loadGlassView","loadGlassContainer"],"sources":["../../../src/Button/glass.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,eAAA,EAAiBC,YAAA,QAAoB;AAkB9C,SAASD,eAAA,IAAAE,gBAAA,QAAuB;AAQzB,SAASC,cAAA,EAA2C;EACzD,OAAOH,eAAA,CAAgB,IAAKC,YAAA,GAAsC;AACpE;AAGO,SAASG,mBAAA,EAAqD;EACnE,OAAO;AACT","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isDarkThemeName","createElement","Fragment","useThemeName","YStack","isAppleTouchWeb","nav","navigator","test","userAgent","platform","maxTouchPoints","webGlassMarker","webGlassBlur","backdropFilter","WebkitBackdropFilter","WebGlassFace","style","children","dark","pointerEvents","backgroundColor","opacity","shadowColor","shadowRadius","shadowOffset","width","height","zIndex"],"sources":["../../../src/Button/webGlass.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,eAAA,QAAuB;AAChC,SAASC,aAAA,EAAeC,QAAA,QAAgC;AACxD,SAASC,YAAA,EAAcC,MAAA,QAAc;AAS9B,SAASC,gBACdC,GAAA,GAAkC,OAAOC,SAAA,KAAc,cAAc,SAAYA,SAAA,EACxE;EACT,IAAI,CAACD,GAAA,EAAK,OAAO;EACjB,IAAI,mBAAmBE,IAAA,CAAKF,GAAA,CAAIG,SAAA,IAAa,EAAE,GAAG,OAAO;EACzD,OAAO,MAAMD,IAAA,CAAKF,GAAA,CAAII,QAAA,IAAYJ,GAAA,CAAIG,SAAA,IAAa,EAAE,MAAMH,GAAA,CAAIK,cAAA,IAAkB,KAAK;AACxF;AAEA,MAAMC,cAAA,GAAiB;EAAE,iBAAiB;AAAM;AAChD,MAAMC,YAAA,GAAe;EACnBC,cAAA,EAAgB;EAChBC,oBAAA,EAAsB;AACxB;
|
|
1
|
+
{"version":3,"names":["isDarkThemeName","createElement","Fragment","useThemeName","YStack","isAppleTouchWeb","nav","navigator","test","userAgent","platform","maxTouchPoints","webGlassMarker","webGlassBlur","backdropFilter","WebkitBackdropFilter","WebGlassFace","style","children","dark","pointerEvents","backgroundColor","opacity","shadowColor","shadowRadius","shadowOffset","width","height","zIndex"],"sources":["../../../src/Button/webGlass.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,eAAA,QAAuB;AAChC,SAASC,aAAA,EAAeC,QAAA,QAAgC;AACxD,SAASC,YAAA,EAAcC,MAAA,QAAc;AAS9B,SAASC,gBACdC,GAAA,GAAkC,OAAOC,SAAA,KAAc,cAAc,SAAYA,SAAA,EACxE;EACT,IAAI,CAACD,GAAA,EAAK,OAAO;EACjB,IAAI,mBAAmBE,IAAA,CAAKF,GAAA,CAAIG,SAAA,IAAa,EAAE,GAAG,OAAO;EACzD,OAAO,MAAMD,IAAA,CAAKF,GAAA,CAAII,QAAA,IAAYJ,GAAA,CAAIG,SAAA,IAAa,EAAE,MAAMH,GAAA,CAAIK,cAAA,IAAkB,KAAK;AACxF;AAEA,MAAMC,cAAA,GAAiB;EAAE,iBAAiB;AAAM;AAChD,MAAMC,YAAA,GAAe;EACnBC,cAAA,EAAgB;EAChBC,oBAAA,EAAsB;AACxB;AASO,SAASC,aAAa;EAAEC,KAAA;EAAOC;AAAS,GAA8C;EAC3F,MAAMC,IAAA,GAAOnB,eAAA,CAAgBG,YAAA,CAAa,CAAC;EAC3C,OAAOF,aAAA,CACLC,QAAA,EACA,MACAD,aAAA,CAAcG,MAAA,EAAQ;IACpBgB,aAAA,EAAe;IACfC,eAAA,EAAiBF,IAAA,GAAO,YAAY;IACpCG,OAAA,EAAS;IACTC,WAAA,EAAa;IACbC,YAAA,EAAc;IACdC,YAAA,EAAc;MAAEC,KAAA,EAAO;MAAGC,MAAA,EAAQ;IAAE;IACpC,GAAGf,cAAA;IACHK,KAAA,EAAO;MAAE,GAAIA,KAAA;MAAkBW,MAAA,EAAQ;MAAI,GAAGf;IAAa;EAC7D,CAAC,GACDK,QACF;AACF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isDarkThemeName","createElement","Fragment","useThemeName","YStack","isAppleTouchWeb","nav","arguments","length","navigator","_nav_userAgent","_ref","_nav_platform","_nav_maxTouchPoints","test","userAgent","platform","maxTouchPoints","webGlassMarker","webGlassBlur","backdropFilter","WebkitBackdropFilter","WebGlassFace","param","style","children","dark","pointerEvents","backgroundColor","opacity","shadowColor","shadowRadius","shadowOffset","width","height"],"sources":["../../../src/Button/webGlass.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,eAAA,QAAuB;AAChC,SAASC,aAAA,EAAeC,QAAA,QAAgC;AACxD,SAASC,YAAA,EAAcC,MAAA,QAAc;AAS9B,SAASC,gBAAA,EACd;EAEA,IAAIC,GAAC,GAAKC,SAAO,CAAAC,MAAA,QAAAD,SAAA,iBAAAA,SAAA,aAAAE,SAAA,4BAAAA,SAAA;EACjB,IAAIC,cAAA,EAAAC,IAAmB,EAAAC,aAAS,EAAAC,mBAAyB;EACzD,KAAAP,GAAO,SAAM,KAAS;EACxB,uBAAAQ,IAAA,EAAAJ,cAAA,GAAAJ,GAAA,CAAAS,SAAA,cAAAL,cAAA,cAAAA,cAAA;EAEA,OAAM,MAAAI,IAAA,EAAAH,IAAmB,IAAAC,aAAiB,GAAAN,GAAM,CAAAU,QAAA,cAAAJ,aAAA,cAAAA,aAAA,GAAAN,GAAA,CAAAS,SAAA,cAAAJ,IAAA,cAAAA,IAAA,YAAAE,mBAAA,GAAAP,GAAA,CAAAW,cAAA,cAAAJ,mBAAA,cAAAA,mBAAA;AAChD;AAAqB,IACnBK,cAAgB;EAChB;AACF;
|
|
1
|
+
{"version":3,"names":["isDarkThemeName","createElement","Fragment","useThemeName","YStack","isAppleTouchWeb","nav","arguments","length","navigator","_nav_userAgent","_ref","_nav_platform","_nav_maxTouchPoints","test","userAgent","platform","maxTouchPoints","webGlassMarker","webGlassBlur","backdropFilter","WebkitBackdropFilter","WebGlassFace","param","style","children","dark","pointerEvents","backgroundColor","opacity","shadowColor","shadowRadius","shadowOffset","width","height"],"sources":["../../../src/Button/webGlass.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,eAAA,QAAuB;AAChC,SAASC,aAAA,EAAeC,QAAA,QAAgC;AACxD,SAASC,YAAA,EAAcC,MAAA,QAAc;AAS9B,SAASC,gBAAA,EACd;EAEA,IAAIC,GAAC,GAAKC,SAAO,CAAAC,MAAA,QAAAD,SAAA,iBAAAA,SAAA,aAAAE,SAAA,4BAAAA,SAAA;EACjB,IAAIC,cAAA,EAAAC,IAAmB,EAAAC,aAAS,EAAAC,mBAAyB;EACzD,KAAAP,GAAO,SAAM,KAAS;EACxB,uBAAAQ,IAAA,EAAAJ,cAAA,GAAAJ,GAAA,CAAAS,SAAA,cAAAL,cAAA,cAAAA,cAAA;EAEA,OAAM,MAAAI,IAAA,EAAAH,IAAmB,IAAAC,aAAiB,GAAAN,GAAM,CAAAU,QAAA,cAAAJ,aAAA,cAAAA,aAAA,GAAAN,GAAA,CAAAS,SAAA,cAAAJ,IAAA,cAAAA,IAAA,YAAAE,mBAAA,GAAAP,GAAA,CAAAW,cAAA,cAAAJ,mBAAA,cAAAA,mBAAA;AAChD;AAAqB,IACnBK,cAAgB;EAChB;AACF;AASO,IAAAC,YAAS;EACdC,cAAa,6BAA8B;EAC3CC,oBAAO;AAAA;AACL,SACAC,aAAAC,KAAA;EAAA,IACA;IAAAC,KAAA;IAAAC;EAAc,IAAQF,KAAA;EAAA,IACpBG,IAAA,GAAA1B,eAAe,CAAAG,YAAA;EAAA,OACfF,aAAA,CAAiBC,QAAO,QAAAD,aAAY,CAAAG,MAAA;IAAAuB,aAC3B;IAAAC,eACI,EAAAF,IAAA;IAAAG,OACb;IAAcC,WACd,gBAAuB;IAAaC,YACjC;IAAAC,YACM,EAAI;MACdC,KAAA;MACDC,MAAA;IACF;IACF,GAAAhB,cAAA","ignoreList":[]}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { isAppleTouchWeb, WebGlassFace } from "./webGlass.mjs";
|
|
2
2
|
import { isAppleTouchWeb as isAppleTouchWeb2 } from "./webGlass.mjs";
|
|
3
|
-
const iosSafariGlassFace = false;
|
|
4
3
|
function loadGlassView() {
|
|
5
|
-
return
|
|
4
|
+
return isAppleTouchWeb() ? WebGlassFace : null;
|
|
6
5
|
}
|
|
7
6
|
function loadGlassContainer() {
|
|
8
7
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isAppleTouchWeb","WebGlassFace","isAppleTouchWeb2","
|
|
1
|
+
{"version":3,"names":["isAppleTouchWeb","WebGlassFace","isAppleTouchWeb2","loadGlassView","loadGlassContainer"],"sources":["../../../src/Button/glass.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,eAAA,EAAiBC,YAAA,QAAoB;AAkB9C,SAASD,eAAA,IAAAE,gBAAA,QAAuB;AAQzB,SAASC,cAAA,EAA2C;EACzD,OAAOH,eAAA,CAAgB,IAAKC,YAAA,GAAsC;AACpE;AAGO,SAASG,mBAAA,EAAqD;EACnE,OAAO;AACT","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isDarkThemeName","createElement","Fragment","useThemeName","YStack","isAppleTouchWeb","nav","navigator","test","userAgent","platform","maxTouchPoints","webGlassMarker","webGlassBlur","backdropFilter","WebkitBackdropFilter","WebGlassFace","style","children","dark","pointerEvents","backgroundColor","opacity","shadowColor","shadowRadius","shadowOffset","width","height","zIndex"],"sources":["../../../src/Button/webGlass.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,eAAA,QAAuB;AAChC,SAASC,aAAA,EAAeC,QAAA,QAAgC;AACxD,SAASC,YAAA,EAAcC,MAAA,QAAc;AAS9B,SAASC,gBACdC,GAAA,GAAkC,OAAOC,SAAA,KAAc,cAAc,SAAYA,SAAA,EACxE;EACT,IAAI,CAACD,GAAA,EAAK,OAAO;EACjB,IAAI,mBAAmBE,IAAA,CAAKF,GAAA,CAAIG,SAAA,IAAa,EAAE,GAAG,OAAO;EACzD,OAAO,MAAMD,IAAA,CAAKF,GAAA,CAAII,QAAA,IAAYJ,GAAA,CAAIG,SAAA,IAAa,EAAE,MAAMH,GAAA,CAAIK,cAAA,IAAkB,KAAK;AACxF;AAEA,MAAMC,cAAA,GAAiB;EAAE,iBAAiB;AAAM;AAChD,MAAMC,YAAA,GAAe;EACnBC,cAAA,EAAgB;EAChBC,oBAAA,EAAsB;AACxB;
|
|
1
|
+
{"version":3,"names":["isDarkThemeName","createElement","Fragment","useThemeName","YStack","isAppleTouchWeb","nav","navigator","test","userAgent","platform","maxTouchPoints","webGlassMarker","webGlassBlur","backdropFilter","WebkitBackdropFilter","WebGlassFace","style","children","dark","pointerEvents","backgroundColor","opacity","shadowColor","shadowRadius","shadowOffset","width","height","zIndex"],"sources":["../../../src/Button/webGlass.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,eAAA,QAAuB;AAChC,SAASC,aAAA,EAAeC,QAAA,QAAgC;AACxD,SAASC,YAAA,EAAcC,MAAA,QAAc;AAS9B,SAASC,gBACdC,GAAA,GAAkC,OAAOC,SAAA,KAAc,cAAc,SAAYA,SAAA,EACxE;EACT,IAAI,CAACD,GAAA,EAAK,OAAO;EACjB,IAAI,mBAAmBE,IAAA,CAAKF,GAAA,CAAIG,SAAA,IAAa,EAAE,GAAG,OAAO;EACzD,OAAO,MAAMD,IAAA,CAAKF,GAAA,CAAII,QAAA,IAAYJ,GAAA,CAAIG,SAAA,IAAa,EAAE,MAAMH,GAAA,CAAIK,cAAA,IAAkB,KAAK;AACxF;AAEA,MAAMC,cAAA,GAAiB;EAAE,iBAAiB;AAAM;AAChD,MAAMC,YAAA,GAAe;EACnBC,cAAA,EAAgB;EAChBC,oBAAA,EAAsB;AACxB;AASO,SAASC,aAAa;EAAEC,KAAA;EAAOC;AAAS,GAA8C;EAC3F,MAAMC,IAAA,GAAOnB,eAAA,CAAgBG,YAAA,CAAa,CAAC;EAC3C,OAAOF,aAAA,CACLC,QAAA,EACA,MACAD,aAAA,CAAcG,MAAA,EAAQ;IACpBgB,aAAA,EAAe;IACfC,eAAA,EAAiBF,IAAA,GAAO,YAAY;IACpCG,OAAA,EAAS;IACTC,WAAA,EAAa;IACbC,YAAA,EAAc;IACdC,YAAA,EAAc;MAAEC,KAAA,EAAO;MAAGC,MAAA,EAAQ;IAAE;IACpC,GAAGf,cAAA;IACHK,KAAA,EAAO;MAAE,GAAIA,KAAA;MAAkBW,MAAA,EAAQ;MAAI,GAAGf;IAAa;EAC7D,CAAC,GACDK,QACF;AACF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","webGlass_exports","WebGlassFace","isAppleTouchWeb","module","exports","import_theme","require","import_react","import_tamagui","nav","arguments","length","navigator","_nav_userAgent","_ref","_nav_platform","_nav_maxTouchPoints"],"sources":["../../../src/Button/webGlass.ts"],"sourcesContent":[null],"mappings":"AAAA,YAAS;;AACT,IAAAA,SAAS,GAAAC,MAAA,CAAAC,cAAe;AACxB,IAAAC,gBAAS,GAAcF,MAAA,CAAAG,wBAAc;AAS9B,IAAAC,iBAAS,GAAAJ,MACd,CAAkCK,mBAAO;AAEzC,IAAAC,YAAU,GAAON,MAAA,CAAAO,SAAA,CAAAC,cAAA;AACjB,IAAAC,QAAI,GAAAA,CAAAC,MAAA,EAAAC,GAAmB,KAAK;EAC5B,SAAOC,IAAM,IAAAD,GAAK,EACpBZ,SAAA,CAAAW,MAAA,EAAAE,IAAA;IAAAC,GAAA,EAAAF,GAAA,CAAAC,IAAA;IAAAE,UAAA;EAAA;AAEA;AACA,IAAAC,WAAM,GAAAA,CAAAC,EAAe,EAAAC,IAAA,EAAAC,MAAA,EAAAC,IAAA;EACnB,IAAAF,IAAA,WAAgBA,IAAA,wBAAAA,IAAA;IAChB,SAAAG,GAAA,IAAAhB,iBAAsB,CAAAa,IAAA,GACxB,KAAAX,YAAA,CAAAe,IAAA,CAAAL,EAAA,EAAAI,GAAA,KAAAA,GAAA,KAAAF,MAAA,
|
|
1
|
+
{"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","webGlass_exports","WebGlassFace","isAppleTouchWeb","module","exports","import_theme","require","import_react","import_tamagui","nav","arguments","length","navigator","_nav_userAgent","_ref","_nav_platform","_nav_maxTouchPoints"],"sources":["../../../src/Button/webGlass.ts"],"sourcesContent":[null],"mappings":"AAAA,YAAS;;AACT,IAAAA,SAAS,GAAAC,MAAA,CAAAC,cAAe;AACxB,IAAAC,gBAAS,GAAcF,MAAA,CAAAG,wBAAc;AAS9B,IAAAC,iBAAS,GAAAJ,MACd,CAAkCK,mBAAO;AAEzC,IAAAC,YAAU,GAAON,MAAA,CAAAO,SAAA,CAAAC,cAAA;AACjB,IAAAC,QAAI,GAAAA,CAAAC,MAAA,EAAAC,GAAmB,KAAK;EAC5B,SAAOC,IAAM,IAAAD,GAAK,EACpBZ,SAAA,CAAAW,MAAA,EAAAE,IAAA;IAAAC,GAAA,EAAAF,GAAA,CAAAC,IAAA;IAAAE,UAAA;EAAA;AAEA;AACA,IAAAC,WAAM,GAAAA,CAAAC,EAAe,EAAAC,IAAA,EAAAC,MAAA,EAAAC,IAAA;EACnB,IAAAF,IAAA,WAAgBA,IAAA,wBAAAA,IAAA;IAChB,SAAAG,GAAA,IAAAhB,iBAAsB,CAAAa,IAAA,GACxB,KAAAX,YAAA,CAAAe,IAAA,CAAAL,EAAA,EAAAI,GAAA,KAAAA,GAAA,KAAAF,MAAA,EASOnB,SAAS,CAAAiB,EAAA,EAAaI,GAAE;MAAAP,GAAO,EAAAA,CAAA,KAASI,IAA8C,CAAAG,GAAA;MAAAN,UAAA,IAAAK,IAAA,GAAAjB,gBAAA,CAAAe,IAAA,EAAAG,GAAA,MAAAD,IAAA,CAAAL;IAAA;EAC3F;EACA,OAAOE,EAAA;AAAA;AACL,IACAM,YAAA,GAAAC,GAAA,IAAAR,WAAA,CAAAhB,SAAA;EAAAyB,KAAA;AAAA,IAAAD,GAAA;AAAA,IACAE,gBAAc;AAAQhB,QACpB,CAAAgB,gBAAe;EAAAC,YACf,EAAAA,CAAA,KAAAA,YAAwB;EAAYC,eAC3B,EAAAA,CAAA,KAAAA;AAAA;AACIC,MACb,CAAAC,OAAA,GAAAP,YAAc,CAAAG,gBAAA;AAAA,IAAAK,YACd,GAAAC,OAAgB,2BAAoB;AAAA,IAAAC,YACjC,GAAAD,OAAA;AAAA,IAAAE,cACU,GAAAF,OAAkB,UAAY;AAAgB,SAC5DJ,gBAAA;EAAA,IACDO,GAAA,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,iBAAAA,SAAA,aAAAE,SAAA,4BAAAA,SAAA;EACF,IAAAC,cAAA,EAAAC,IAAA,EAAAC,aAAA,EAAAC,mBAAA;EACF,KAAAP,GAAA","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@multiplatform.one/forms",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.80.0",
|
|
4
4
|
"description": "Cross-platform form components with URL state management",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cross-platform",
|
|
@@ -57,10 +57,10 @@
|
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
59
|
"@floating-ui/react": "^0.27.20",
|
|
60
|
-
"@multiplatform.one/platform": "^7.
|
|
61
|
-
"@multiplatform.one/router": "^7.
|
|
62
|
-
"@multiplatform.one/table-primitives": "^7.
|
|
63
|
-
"@multiplatform.one/theme": "^7.
|
|
60
|
+
"@multiplatform.one/platform": "^7.80.0",
|
|
61
|
+
"@multiplatform.one/router": "^7.80.0",
|
|
62
|
+
"@multiplatform.one/table-primitives": "^7.80.0",
|
|
63
|
+
"@multiplatform.one/theme": "^7.80.0",
|
|
64
64
|
"@phosphor-icons/react": "^2.1.10",
|
|
65
65
|
"@tamagui/get-font-sized": "2.7.6",
|
|
66
66
|
"@tamagui/get-token": "2.7.6",
|
|
@@ -80,9 +80,9 @@
|
|
|
80
80
|
},
|
|
81
81
|
"devDependencies": {
|
|
82
82
|
"@expo/ui": "~55.0.17",
|
|
83
|
-
"@multiplatform.one/config": "7.
|
|
84
|
-
"@multiplatform.one/storybook": "7.
|
|
85
|
-
"@multiplatform.one/test-utils": "7.
|
|
83
|
+
"@multiplatform.one/config": "7.80.0",
|
|
84
|
+
"@multiplatform.one/storybook": "7.80.0",
|
|
85
|
+
"@multiplatform.one/test-utils": "7.80.0",
|
|
86
86
|
"@tamagui/build": "2.7.6",
|
|
87
87
|
"@tamagui/config": "2.7.6",
|
|
88
88
|
"@tamagui/vite-plugin": "2.7.6",
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @vitest-environment jsdom
|
|
3
|
+
*
|
|
4
|
+
* LC-176 (FZ-8666): on native iOS a bar button's press is the system's. Clay
|
|
5
|
+
* on rv_c6369c2bab2ffea0: "Like actually use liquid glass it should have the
|
|
6
|
+
* same animated you know when you push it resizes like don't try to
|
|
7
|
+
* re-implement that let the native API do it." The glass is interactive and
|
|
8
|
+
* holds the glyph, and MPO layers no press fade, scale or resize on it. A bar
|
|
9
|
+
* glyph with no glass keeps MPO's press dim, which proves the instrument.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import { createDefaultThemeConfig, Surface } from "@multiplatform.one/theme";
|
|
13
|
+
import { cleanup, render, screen } from "@testing-library/react";
|
|
14
|
+
import type { ReactElement } from "react";
|
|
15
|
+
import { TamaguiProvider } from "tamagui";
|
|
16
|
+
import { afterEach, describe, expect, it, vi } from "vitest";
|
|
17
|
+
import { IconButton, IconButtonGroup } from "./index";
|
|
18
|
+
|
|
19
|
+
const platform = vi.hoisted(() => ({ web: false }));
|
|
20
|
+
vi.mock("tamagui", async (importOriginal) => ({
|
|
21
|
+
...(await importOriginal<typeof import("tamagui")>()),
|
|
22
|
+
get isWeb() {
|
|
23
|
+
return platform.web;
|
|
24
|
+
},
|
|
25
|
+
}));
|
|
26
|
+
|
|
27
|
+
const glass = vi.hoisted(() => ({ available: true }));
|
|
28
|
+
vi.mock("./glass", () => {
|
|
29
|
+
function FakeGlassView({
|
|
30
|
+
glassEffectStyle,
|
|
31
|
+
isInteractive,
|
|
32
|
+
colorScheme: _colorScheme,
|
|
33
|
+
children,
|
|
34
|
+
...props
|
|
35
|
+
}: Record<string, unknown>) {
|
|
36
|
+
return (
|
|
37
|
+
<div
|
|
38
|
+
data-glass=""
|
|
39
|
+
data-effect={glassEffectStyle as string}
|
|
40
|
+
data-interactive={String(isInteractive)}
|
|
41
|
+
{...props}
|
|
42
|
+
>
|
|
43
|
+
{children as never}
|
|
44
|
+
</div>
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
function FakeGlassContainer({ children }: { children?: unknown }) {
|
|
48
|
+
return <div data-glass-container="">{children as never}</div>;
|
|
49
|
+
}
|
|
50
|
+
return {
|
|
51
|
+
loadGlassView: () => (glass.available ? FakeGlassView : null),
|
|
52
|
+
loadGlassContainer: () => (glass.available ? FakeGlassContainer : null),
|
|
53
|
+
};
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
afterEach(() => {
|
|
57
|
+
cleanup();
|
|
58
|
+
glass.available = true;
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
const houseConfig = createDefaultThemeConfig();
|
|
62
|
+
|
|
63
|
+
/** A press class that fades, scales or resizes the button. */
|
|
64
|
+
const PRESS_MOTION = /^_(o|opacity|transform|scale|w|width|h|height)-0active-/;
|
|
65
|
+
|
|
66
|
+
function Glyph({ size }: { size?: number }) {
|
|
67
|
+
return <svg data-glyph="" width={size} height={size} />;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
function barRender(ui: ReactElement) {
|
|
71
|
+
return render(
|
|
72
|
+
<TamaguiProvider config={houseConfig.tamagui} defaultTheme="light" disableInjectCSS>
|
|
73
|
+
<Surface bar>{ui}</Surface>
|
|
74
|
+
</TamaguiProvider>,
|
|
75
|
+
);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
function pressMotion(el: Element): string[] {
|
|
79
|
+
return Array.from(el.classList).filter((c) => PRESS_MOTION.test(c));
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
describe("LC-176: native glass answers its own press (FZ-8666)", () => {
|
|
83
|
+
it("a lone bar button sits in interactive glass with no MPO press motion", () => {
|
|
84
|
+
barRender(<IconButton icon={Glyph} aria-label="Search" />);
|
|
85
|
+
const button = screen.getByLabelText("Search");
|
|
86
|
+
expect(button.getAttribute("data-mp-icon-button")).toBe("glass");
|
|
87
|
+
const glassView = button.querySelector("[data-glass]")!;
|
|
88
|
+
expect(glassView.getAttribute("data-interactive")).toBe("true");
|
|
89
|
+
expect(glassView.querySelector("[data-glyph]")).not.toBeNull();
|
|
90
|
+
expect(pressMotion(button)).toEqual([]);
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
it("a bar group's buttons sit in one interactive capsule with no MPO press motion", () => {
|
|
94
|
+
barRender(
|
|
95
|
+
<IconButtonGroup>
|
|
96
|
+
<IconButton icon={Glyph} aria-label="Archive" />
|
|
97
|
+
<IconButton icon={Glyph} aria-label="Delete" />
|
|
98
|
+
</IconButtonGroup>,
|
|
99
|
+
);
|
|
100
|
+
const capsule = document.querySelector("[data-glass-container] [data-glass]")!;
|
|
101
|
+
expect(capsule.getAttribute("data-effect")).toBe("regular");
|
|
102
|
+
expect(capsule.getAttribute("data-interactive")).toBe("true");
|
|
103
|
+
for (const name of ["Archive", "Delete"]) {
|
|
104
|
+
const button = screen.getByLabelText(name);
|
|
105
|
+
expect(capsule.contains(button)).toBe(true);
|
|
106
|
+
expect(pressMotion(button)).toEqual([]);
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
it("without the glass module the bar glyph keeps MPO's press dim", () => {
|
|
111
|
+
glass.available = false;
|
|
112
|
+
barRender(<IconButton icon={Glyph} aria-label="Search" />);
|
|
113
|
+
const button = screen.getByLabelText("Search");
|
|
114
|
+
expect(button.getAttribute("data-mp-icon-button")).not.toBe("glass");
|
|
115
|
+
expect(pressMotion(button).some((c) => /^_(o|opacity)-0active-/.test(c))).toBe(true);
|
|
116
|
+
});
|
|
117
|
+
});
|
|
@@ -76,7 +76,7 @@ function houseRender(ui: ReactElement) {
|
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
describe("LC-176: IconButtonGroup", () => {
|
|
79
|
-
it("
|
|
79
|
+
it("iOS Safari's bar group is one capsule behind bare glyphs", () => {
|
|
80
80
|
vi.stubGlobal("navigator", { userAgent: IPHONE, platform: "iPhone", maxTouchPoints: 5 });
|
|
81
81
|
glass.available = true;
|
|
82
82
|
houseRender(
|
package/src/Button/glass.spec.ts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @vitest-environment jsdom
|
|
3
3
|
*
|
|
4
|
-
* LC-176 / LC-266 (FZ-8666):
|
|
5
|
-
*
|
|
6
|
-
* `glass.ts` until Clay answers the compare.
|
|
4
|
+
* LC-176 / LC-266 (FZ-8666): iOS Safari keeps the drawn glass face (Clay's
|
|
5
|
+
* pick A on rv_c6369c2bab2ffea0); every other browser draws plain glyphs.
|
|
7
6
|
*/
|
|
8
7
|
|
|
9
8
|
import { createDefaultThemeConfig, Surface } from "@multiplatform.one/theme";
|
|
@@ -20,6 +19,8 @@ const IPHONE =
|
|
|
20
19
|
const MAC_SAFARI =
|
|
21
20
|
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Safari/605.1.15";
|
|
22
21
|
const houseConfig = createDefaultThemeConfig();
|
|
22
|
+
/** A press class that fades, scales or resizes the button. */
|
|
23
|
+
const PRESS_MOTION = /^_(o|opacity|transform|scale|w|width|h|height)-0active-/;
|
|
23
24
|
const PIXEL =
|
|
24
25
|
"Mozilla/5.0 (Linux; Android 15; Pixel 9) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Mobile Safari/537.36";
|
|
25
26
|
|
|
@@ -61,7 +62,23 @@ function renderBar(ui: ReturnType<typeof createElement>) {
|
|
|
61
62
|
);
|
|
62
63
|
}
|
|
63
64
|
|
|
64
|
-
|
|
65
|
+
function renderBarRow() {
|
|
66
|
+
renderBar(
|
|
67
|
+
createElement(
|
|
68
|
+
"div",
|
|
69
|
+
null,
|
|
70
|
+
createElement(
|
|
71
|
+
IconButtonGroup,
|
|
72
|
+
null,
|
|
73
|
+
createElement(IconButton, { icon: Glyph, "aria-label": "Search" }),
|
|
74
|
+
createElement(IconButton, { icon: Glyph, "aria-label": "More" }),
|
|
75
|
+
),
|
|
76
|
+
createElement(IconButton, { icon: Glyph, "aria-label": "Back" }),
|
|
77
|
+
),
|
|
78
|
+
);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
describe("glass on the web (LC-176)", () => {
|
|
65
82
|
afterEach(() => {
|
|
66
83
|
cleanup();
|
|
67
84
|
vi.unstubAllGlobals();
|
|
@@ -70,25 +87,38 @@ describe("no glass on the web (LC-176)", () => {
|
|
|
70
87
|
it.each([
|
|
71
88
|
["iOS Safari", { userAgent: IPHONE, platform: "iPhone", maxTouchPoints: 5 }],
|
|
72
89
|
["iPadOS Safari", { userAgent: MAC_SAFARI, platform: "MacIntel", maxTouchPoints: 5 }],
|
|
90
|
+
])(
|
|
91
|
+
"%s draws the glass face: one capsule for a bar group, a circle for a lone button",
|
|
92
|
+
(_browser, nav) => {
|
|
93
|
+
vi.stubGlobal("navigator", nav);
|
|
94
|
+
expect(loadGlassView()).toBe(WebGlassFace);
|
|
95
|
+
expect(loadGlassContainer()).toBeNull();
|
|
96
|
+
renderBarRow();
|
|
97
|
+
const capsule = document.querySelector("[data-mp-glass-capsule]");
|
|
98
|
+
expect(capsule).not.toBeNull();
|
|
99
|
+
expect(capsule!.querySelectorAll('[data-mp-glass="web"]')).toHaveLength(1);
|
|
100
|
+
expect(document.querySelectorAll('[data-mp-glass="web"]')).toHaveLength(2);
|
|
101
|
+
for (const name of ["Search", "More"])
|
|
102
|
+
expect(screen.getByLabelText(name).getAttribute("data-mp-icon-button")).not.toBe("glass");
|
|
103
|
+
const back = screen.getByLabelText("Back");
|
|
104
|
+
expect(back.getAttribute("data-mp-icon-button")).toBe("glass");
|
|
105
|
+
expect(back.querySelector('[data-mp-glass="web"]')).not.toBeNull();
|
|
106
|
+
// WebKit gives web content no system press: the face takes the web press
|
|
107
|
+
// plate, and nothing resizes or fades it.
|
|
108
|
+
const pressed = Array.from(back.classList).filter((c) => c.includes("0active-"));
|
|
109
|
+
expect(pressed.some((c) => c.startsWith("_bg-0active-"))).toBe(true);
|
|
110
|
+
expect(pressed.filter((c) => PRESS_MOTION.test(c))).toEqual([]);
|
|
111
|
+
},
|
|
112
|
+
);
|
|
113
|
+
|
|
114
|
+
it.each([
|
|
73
115
|
["desktop Safari", { userAgent: MAC_SAFARI, platform: "MacIntel", maxTouchPoints: 0 }],
|
|
74
116
|
["Android Chrome", { userAgent: PIXEL, platform: "Linux armv8l", maxTouchPoints: 5 }],
|
|
75
117
|
])("%s loads no glass and draws the plain glyph", (_browser, nav) => {
|
|
76
118
|
vi.stubGlobal("navigator", nav);
|
|
77
119
|
expect(loadGlassView()).toBeNull();
|
|
78
120
|
expect(loadGlassContainer()).toBeNull();
|
|
79
|
-
|
|
80
|
-
createElement(
|
|
81
|
-
"div",
|
|
82
|
-
null,
|
|
83
|
-
createElement(
|
|
84
|
-
IconButtonGroup,
|
|
85
|
-
null,
|
|
86
|
-
createElement(IconButton, { icon: Glyph, "aria-label": "Search" }),
|
|
87
|
-
createElement(IconButton, { icon: Glyph, "aria-label": "More" }),
|
|
88
|
-
),
|
|
89
|
-
createElement(IconButton, { icon: Glyph, "aria-label": "Back" }),
|
|
90
|
-
),
|
|
91
|
-
);
|
|
121
|
+
renderBarRow();
|
|
92
122
|
expect(document.querySelector("[data-mp-glass]")).toBeNull();
|
|
93
123
|
expect(document.querySelector("[data-mp-glass-capsule]")).toBeNull();
|
|
94
124
|
expect(document.querySelector('[data-mp-icon-button-group="bar"]')).not.toBeNull();
|
|
@@ -97,7 +127,7 @@ describe("no glass on the web (LC-176)", () => {
|
|
|
97
127
|
});
|
|
98
128
|
});
|
|
99
129
|
|
|
100
|
-
describe("the drawn web face
|
|
130
|
+
describe("the drawn web face", () => {
|
|
101
131
|
afterEach(cleanup);
|
|
102
132
|
|
|
103
133
|
it("sits under the glyph it backs, which stays its sibling", () => {
|
package/src/Button/glass.ts
CHANGED
|
@@ -20,20 +20,13 @@ export type GlassContainerComponent = ComponentType<{
|
|
|
20
20
|
export { isAppleTouchWeb } from "./webGlass";
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
|
-
* LC-176
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*/
|
|
28
|
-
const iosSafariGlassFace = false;
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* LC-176: the system Liquid Glass an icon button sits in on a bar. Only native
|
|
32
|
-
* iOS 26 has it, from expo-glass-effect (`glass.native.ts`; Android probes
|
|
33
|
-
* null), so the web draws the plain glyph.
|
|
23
|
+
* LC-176: the Liquid Glass an icon button sits in on a bar. Native iOS 26 has
|
|
24
|
+
* the system's, from expo-glass-effect (`glass.native.ts`; Android probes
|
|
25
|
+
* null). On the web only iOS Safari takes the drawn glass face (Clay's pick A
|
|
26
|
+
* on rv_c6369c2bab2ffea0, FZ-8666); every other browser draws the plain glyph.
|
|
34
27
|
*/
|
|
35
28
|
export function loadGlassView(): GlassViewComponent | null {
|
|
36
|
-
return
|
|
29
|
+
return isAppleTouchWeb() ? (WebGlassFace as GlassViewComponent) : null;
|
|
37
30
|
}
|
|
38
31
|
|
|
39
32
|
/** LC-176: the system's Liquid Glass container. Only iOS has it. */
|
package/src/Button/index.tsx
CHANGED
|
@@ -850,8 +850,8 @@ export function Button({
|
|
|
850
850
|
const labelLine = labelLinePx(knobProps.body.fontFamily);
|
|
851
851
|
const glyphFloor = iconButtonGlyphPx(labelLine);
|
|
852
852
|
// LC-176: on iOS 26 a bar's icon button sits in system Liquid Glass, the
|
|
853
|
-
// native bar button
|
|
854
|
-
//
|
|
853
|
+
// native bar button, and iOS Safari draws its web face. Elsewhere, and on a
|
|
854
|
+
// binary without the module, it stays the bare tinted glyph (FZ-8666).
|
|
855
855
|
const glassGroup = groupGround === "glass";
|
|
856
856
|
const GlassView =
|
|
857
857
|
iconButton && !inlineGlyph && !nested && accentInk && barSurface && !selectedFill && !glassGroup
|
package/src/Button/webGlass.ts
CHANGED
|
@@ -24,10 +24,11 @@ const webGlassBlur = {
|
|
|
24
24
|
} as const;
|
|
25
25
|
|
|
26
26
|
/**
|
|
27
|
-
* LC-176: the drawn face `loadGlassView`
|
|
28
|
-
* lone button or one capsule for an `IconButtonGroup`.
|
|
29
|
-
*
|
|
30
|
-
*
|
|
27
|
+
* LC-176: the drawn face `loadGlassView` gives iOS Safari, one circle for a
|
|
28
|
+
* lone button or one capsule for an `IconButtonGroup`. WebKit gives web content
|
|
29
|
+
* no system glass and no system press, so it takes the web press plate and
|
|
30
|
+
* nothing animates its size. Its children stay siblings above the layer
|
|
31
|
+
* (absolute, z -1 in the button's stacking context).
|
|
31
32
|
*/
|
|
32
33
|
export function WebGlassFace({ style, children }: { style?: unknown; children?: ReactNode }) {
|
|
33
34
|
const dark = isDarkThemeName(useThemeName());
|
package/types/Button/glass.d.ts
CHANGED
|
@@ -15,9 +15,10 @@ export type GlassContainerComponent = ComponentType<{
|
|
|
15
15
|
}>;
|
|
16
16
|
export { isAppleTouchWeb } from "./webGlass";
|
|
17
17
|
/**
|
|
18
|
-
* LC-176: the
|
|
19
|
-
*
|
|
20
|
-
* null)
|
|
18
|
+
* LC-176: the Liquid Glass an icon button sits in on a bar. Native iOS 26 has
|
|
19
|
+
* the system's, from expo-glass-effect (`glass.native.ts`; Android probes
|
|
20
|
+
* null). On the web only iOS Safari takes the drawn glass face (Clay's pick A
|
|
21
|
+
* on rv_c6369c2bab2ffea0, FZ-8666); every other browser draws the plain glyph.
|
|
21
22
|
*/
|
|
22
23
|
export declare function loadGlassView(): GlassViewComponent | null;
|
|
23
24
|
/** LC-176: the system's Liquid Glass container. Only iOS has it. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glass.d.ts","sourceRoot":"","sources":["../../src/Button/glass.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGtD,yEAAyE;AACzE,MAAM,MAAM,kBAAkB,GAAG,aAAa,CAAC;IAC7C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gBAAgB,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;IAChD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IACxC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC,CAAC;AAEH,oFAAoF;AACpF,MAAM,MAAM,uBAAuB,GAAG,aAAa,CAAC;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC,CAAC;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"glass.d.ts","sourceRoot":"","sources":["../../src/Button/glass.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGtD,yEAAyE;AACzE,MAAM,MAAM,kBAAkB,GAAG,aAAa,CAAC;IAC7C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gBAAgB,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;IAChD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IACxC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC,CAAC;AAEH,oFAAoF;AACpF,MAAM,MAAM,uBAAuB,GAAG,aAAa,CAAC;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC,CAAC;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C;;;;;GAKG;AACH,wBAAgB,aAAa,IAAI,kBAAkB,GAAG,IAAI,CAEzD;AAED,oEAAoE;AACpE,wBAAgB,kBAAkB,IAAI,uBAAuB,GAAG,IAAI,CAEnE"}
|
|
@@ -11,10 +11,11 @@ type GlassNavigator = {
|
|
|
11
11
|
*/
|
|
12
12
|
export declare function isAppleTouchWeb(nav?: GlassNavigator | undefined): boolean;
|
|
13
13
|
/**
|
|
14
|
-
* LC-176: the drawn face `loadGlassView`
|
|
15
|
-
* lone button or one capsule for an `IconButtonGroup`.
|
|
16
|
-
*
|
|
17
|
-
*
|
|
14
|
+
* LC-176: the drawn face `loadGlassView` gives iOS Safari, one circle for a
|
|
15
|
+
* lone button or one capsule for an `IconButtonGroup`. WebKit gives web content
|
|
16
|
+
* no system glass and no system press, so it takes the web press plate and
|
|
17
|
+
* nothing animates its size. Its children stay siblings above the layer
|
|
18
|
+
* (absolute, z -1 in the button's stacking context).
|
|
18
19
|
*/
|
|
19
20
|
export declare function WebGlassFace({ style, children }: {
|
|
20
21
|
style?: unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webGlass.d.ts","sourceRoot":"","sources":["../../src/Button/webGlass.ts"],"names":[],"mappings":"AACA,OAAO,EAA2B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAGhE,KAAK,cAAc,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzF;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,GAAG,GAAE,cAAc,GAAG,SAAoE,GACzF,OAAO,CAIT;AAQD
|
|
1
|
+
{"version":3,"file":"webGlass.d.ts","sourceRoot":"","sources":["../../src/Button/webGlass.ts"],"names":[],"mappings":"AACA,OAAO,EAA2B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAGhE,KAAK,cAAc,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzF;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,GAAG,GAAE,cAAc,GAAG,SAAoE,GACzF,OAAO,CAIT;AAQD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,2EAiB1F"}
|