react-native-terra-ui 0.13.7 → 0.13.9
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/CHANGELOG.md +18 -0
- package/lib/module/components/header/parts/HeaderBar.js +3 -1
- package/lib/module/components/header/parts/HeaderBar.js.map +1 -1
- package/lib/module/components/header/parts/HeaderGradientOverlay.js +1 -2
- package/lib/module/components/header/parts/HeaderGradientOverlay.js.map +1 -1
- package/lib/module/components/header/parts/HeaderSurface.js +9 -4
- package/lib/module/components/header/parts/HeaderSurface.js.map +1 -1
- package/lib/module/components/header/variants/LargeTitleHeader/index.js +1 -0
- package/lib/module/components/header/variants/LargeTitleHeader/index.js.map +1 -1
- package/lib/module/components/header/variants/TitleHeader/index.js +1 -0
- package/lib/module/components/header/variants/TitleHeader/index.js.map +1 -1
- package/lib/module/components/input/hooks/use-focus-state.js +25 -0
- package/lib/module/components/input/hooks/use-focus-state.js.map +1 -0
- package/lib/module/components/input/parts/InputField.js +53 -31
- package/lib/module/components/input/parts/InputField.js.map +1 -1
- package/lib/module/components/input/variants/SearchInput/SearchCancelButton.js +93 -0
- package/lib/module/components/input/variants/SearchInput/SearchCancelButton.js.map +1 -0
- package/lib/module/components/input/variants/SearchInput/SearchClearButton.js +52 -0
- package/lib/module/components/input/variants/SearchInput/SearchClearButton.js.map +1 -0
- package/lib/module/components/input/variants/SearchInput/index.js +85 -30
- package/lib/module/components/input/variants/SearchInput/index.js.map +1 -1
- package/lib/module/components/input/variants/SearchInput/utils.js +9 -0
- package/lib/module/components/input/variants/SearchInput/utils.js.map +1 -0
- package/lib/module/components/screen/ScreenList.js +5 -1
- package/lib/module/components/screen/ScreenList.js.map +1 -1
- package/lib/module/components/screen/ScreenScrollView.js +5 -1
- package/lib/module/components/screen/ScreenScrollView.js.map +1 -1
- package/lib/module/theme/tokens/light.js +1 -1
- package/lib/typescript/src/components/header/parts/HeaderBar.d.ts +3 -1
- package/lib/typescript/src/components/header/parts/HeaderBar.d.ts.map +1 -1
- package/lib/typescript/src/components/header/parts/HeaderGradientOverlay.d.ts +3 -3
- package/lib/typescript/src/components/header/parts/HeaderGradientOverlay.d.ts.map +1 -1
- package/lib/typescript/src/components/header/parts/HeaderSurface.d.ts +12 -3
- package/lib/typescript/src/components/header/parts/HeaderSurface.d.ts.map +1 -1
- package/lib/typescript/src/components/header/variants/LargeTitleHeader/index.d.ts.map +1 -1
- package/lib/typescript/src/components/header/variants/TitleHeader/index.d.ts.map +1 -1
- package/lib/typescript/src/components/input/hooks/use-focus-state.d.ts +15 -0
- package/lib/typescript/src/components/input/hooks/use-focus-state.d.ts.map +1 -0
- package/lib/typescript/src/components/input/parts/InputField.d.ts +3 -1
- package/lib/typescript/src/components/input/parts/InputField.d.ts.map +1 -1
- package/lib/typescript/src/components/input/types.d.ts +11 -1
- package/lib/typescript/src/components/input/types.d.ts.map +1 -1
- package/lib/typescript/src/components/input/variants/SearchInput/SearchCancelButton.d.ts +19 -0
- package/lib/typescript/src/components/input/variants/SearchInput/SearchCancelButton.d.ts.map +1 -0
- package/lib/typescript/src/components/input/variants/SearchInput/SearchClearButton.d.ts +13 -0
- package/lib/typescript/src/components/input/variants/SearchInput/SearchClearButton.d.ts.map +1 -0
- package/lib/typescript/src/components/input/variants/SearchInput/index.d.ts +15 -1
- package/lib/typescript/src/components/input/variants/SearchInput/index.d.ts.map +1 -1
- package/lib/typescript/src/components/input/variants/SearchInput/utils.d.ts +4 -0
- package/lib/typescript/src/components/input/variants/SearchInput/utils.d.ts.map +1 -0
- package/lib/typescript/src/components/screen/ScreenList.d.ts.map +1 -1
- package/lib/typescript/src/components/screen/ScreenScrollView.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/header/parts/HeaderBar.tsx +4 -1
- package/src/components/header/parts/HeaderGradientOverlay.tsx +3 -4
- package/src/components/header/parts/HeaderSurface.tsx +14 -8
- package/src/components/header/variants/LargeTitleHeader/index.tsx +1 -0
- package/src/components/header/variants/TitleHeader/index.tsx +1 -0
- package/src/components/input/hooks/use-focus-state.ts +32 -0
- package/src/components/input/parts/InputField.tsx +45 -31
- package/src/components/input/types.ts +11 -1
- package/src/components/input/variants/SearchInput/SearchCancelButton.tsx +109 -0
- package/src/components/input/variants/SearchInput/SearchClearButton.tsx +58 -0
- package/src/components/input/variants/SearchInput/index.tsx +92 -24
- package/src/components/input/variants/SearchInput/utils.ts +4 -0
- package/src/components/screen/ScreenList.tsx +3 -0
- package/src/components/screen/ScreenScrollView.tsx +3 -0
- package/src/theme/tokens/light.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.13.9](https://github.com/earthlin9/react-native-terra-ui/compare/v0.13.8...v0.13.9) (2026-10-05)
|
|
4
|
+
|
|
5
|
+
### Bug Fixes
|
|
6
|
+
|
|
7
|
+
* **ui:** [header] fade only at the accessory's bottom edge, keep the bar solid above it ([fb68248](https://github.com/earthlin9/react-native-terra-ui/commit/fb682482000561edad20656e931bd57abceb0d4e))
|
|
8
|
+
|
|
9
|
+
## [0.13.8](https://github.com/earthlin9/react-native-terra-ui/compare/v0.13.7...v0.13.8) (2026-10-05)
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* **ui:** [input] add focus border and glow props, and a search cancel button ([c502519](https://github.com/earthlin9/react-native-terra-ui/commit/c50251916dc80669fc2a55933babfb59a1842e0c))
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
* **ui:** [input] call onCancelPress after blur so a cleared query sticks ([2e42186](https://github.com/earthlin9/react-native-terra-ui/commit/2e42186bfcade644710adb89e5efe7a4525679a1))
|
|
18
|
+
* **ui:** [screen] scroll focused inputs above the keyboard on iOS ([8b85d47](https://github.com/earthlin9/react-native-terra-ui/commit/8b85d4795d11fd49410a4c1087c3a3ddc4494f0a))
|
|
19
|
+
* **ui:** [theme] widen light text hierarchy within 4.5:1 contrast ([10f7143](https://github.com/earthlin9/react-native-terra-ui/commit/10f714331fb2ba0d4784dffbd4d6e8bcf13eb47b))
|
|
20
|
+
|
|
3
21
|
## [0.13.7](https://github.com/earthlin9/react-native-terra-ui/compare/v0.13.6...v0.13.7) (2026-10-04)
|
|
4
22
|
|
|
5
23
|
### Features
|
|
@@ -26,6 +26,7 @@ export function HeaderBar({
|
|
|
26
26
|
titleAlignment,
|
|
27
27
|
color,
|
|
28
28
|
surfaceStyle,
|
|
29
|
+
hasAccessory = false,
|
|
29
30
|
titleStyle,
|
|
30
31
|
dismissAction = "none",
|
|
31
32
|
navigation,
|
|
@@ -75,7 +76,8 @@ export function HeaderBar({
|
|
|
75
76
|
style: [styles.bar, styles.windowInsets(windowInsets.left, windowInsets.right)],
|
|
76
77
|
children: [/*#__PURE__*/_jsx(HeaderSurface, {
|
|
77
78
|
color: color,
|
|
78
|
-
animatedStyle: surfaceStyle
|
|
79
|
+
animatedStyle: surfaceStyle,
|
|
80
|
+
hasAccessoryBelow: hasAccessory
|
|
79
81
|
}), /*#__PURE__*/_jsx(HeaderWindowInsets, {
|
|
80
82
|
onInsetsChange: setWindowInsets
|
|
81
83
|
}), hasLeading && /*#__PURE__*/_jsxs(Toolbar, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useState","Animated","ScrollToTopGuard","StyleSheet","useUnistyles","FONT_WEIGHT_VALUE","SYSTEM_FONT","resolveScreenPadding","Text","ThemedText","Toolbar","HeaderDismissButton","isCustomTitle","isTextTitle","HeaderSurface","HeaderWindowInsets","jsx","_jsx","jsxs","_jsxs","HeaderBar","title","titleVariant","titleWeight","subtitle","leading","trailing","titleAlignment","color","surfaceStyle","titleStyle","dismissAction","navigation","onDismiss","theme","windowInsets","setWindowInsets","left","right","leadingWidth","setLeadingWidth","trailingWidth","setTrailingWidth","onLeadingLayout","event","nativeEvent","layout","width","onTrailingLayout","hasLeading","hasTrailing","_styles","styles","useVariants","dismiss","children","View","style","bar","animatedStyle","onInsetsChange","onLayout","titleContainer","titleInsets","pointerEvents","String","trim","length","variant","weight","numberOfLines","maxFontSizeMultiplier","typography","variants","create","runtime","subtitleWeight","fontWeight","subtitleFont","fonts","isSystemSubtitleFont","paddingLeft","Math","max","breakpoint","x","paddingRight","uni__dependencies","alignment","padding","gap","spacing","reachLeft","reachRight","inset","height","header","flexDirection","alignItems","paddingHorizontal","screen","justifyContent","center","marginLeft","position","flex","textAlign","fontSize","lineHeight","letterSpacing","fontFamily","undefined","includeFontPadding"],"sourceRoot":"../../../../../src","sources":["components/header/parts/HeaderBar.tsx"],"mappings":";;;;AAAA,SAA8CA,QAAQ,QAAQ,OAAO;AAGrE,OAAOC,QAAQ,MAAM,yBAAyB;AAC9C,SAASC,gBAAgB,QAAQ,mCAAmC;AACpE,SAASC,UAAU,EAAEC,YAAY,QAAQ,wBAAwB;AAGjE,SAASC,iBAAiB,EAAEC,WAAW;AACvC,SAASC,oBAAoB;AAC7B,SAASC,IAAI,IAAIC,UAAU;AAC3B,SAASC,OAAO;AAChB,SAASC,mBAAmB;AAC5B,SAASC,aAAa,EAAEC,WAAW;AACnC,SAASC,aAAa;AACtB,SAASC,kBAAkB;AAA+B,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;
|
|
1
|
+
{"version":3,"names":["useState","Animated","ScrollToTopGuard","StyleSheet","useUnistyles","FONT_WEIGHT_VALUE","SYSTEM_FONT","resolveScreenPadding","Text","ThemedText","Toolbar","HeaderDismissButton","isCustomTitle","isTextTitle","HeaderSurface","HeaderWindowInsets","jsx","_jsx","jsxs","_jsxs","HeaderBar","title","titleVariant","titleWeight","subtitle","leading","trailing","titleAlignment","color","surfaceStyle","hasAccessory","titleStyle","dismissAction","navigation","onDismiss","theme","windowInsets","setWindowInsets","left","right","leadingWidth","setLeadingWidth","trailingWidth","setTrailingWidth","onLeadingLayout","event","nativeEvent","layout","width","onTrailingLayout","hasLeading","hasTrailing","_styles","styles","useVariants","dismiss","children","View","style","bar","animatedStyle","hasAccessoryBelow","onInsetsChange","onLayout","titleContainer","titleInsets","pointerEvents","String","trim","length","variant","weight","numberOfLines","maxFontSizeMultiplier","typography","variants","create","runtime","subtitleWeight","fontWeight","subtitleFont","fonts","isSystemSubtitleFont","paddingLeft","Math","max","breakpoint","x","paddingRight","uni__dependencies","alignment","padding","gap","spacing","reachLeft","reachRight","inset","height","header","flexDirection","alignItems","paddingHorizontal","screen","justifyContent","center","marginLeft","position","flex","textAlign","fontSize","lineHeight","letterSpacing","fontFamily","undefined","includeFontPadding"],"sourceRoot":"../../../../../src","sources":["components/header/parts/HeaderBar.tsx"],"mappings":";;;;AAAA,SAA8CA,QAAQ,QAAQ,OAAO;AAGrE,OAAOC,QAAQ,MAAM,yBAAyB;AAC9C,SAASC,gBAAgB,QAAQ,mCAAmC;AACpE,SAASC,UAAU,EAAEC,YAAY,QAAQ,wBAAwB;AAGjE,SAASC,iBAAiB,EAAEC,WAAW;AACvC,SAASC,oBAAoB;AAC7B,SAASC,IAAI,IAAIC,UAAU;AAC3B,SAASC,OAAO;AAChB,SAASC,mBAAmB;AAC5B,SAASC,aAAa,EAAEC,WAAW;AACnC,SAASC,aAAa;AACtB,SAASC,kBAAkB;AAA+B,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAiB1D;AACA,OAAO,SAASC,SAASA,CAAC;EACxBC,KAAK;EACLC,YAAY,GAAG,UAAU;EACzBC,WAAW;EACXC,QAAQ;EACRC,OAAO;EACPC,QAAQ;EACRC,cAAc;EACdC,KAAK;EACLC,YAAY;EACZC,YAAY,GAAG,KAAK;EACpBC,UAAU;EACVC,aAAa,GAAG,MAAM;EACtBC,UAAU;EACVC;AACc,CAAC,EAAE;EACjB,MAAM;IAAEC;EAAM,CAAC,GAAG/B,YAAY,CAAC,CAAC;EAChC,MAAM,CAACgC,YAAY,EAAEC,eAAe,CAAC,GAAGrC,QAAQ,CAAC;IAAEsC,IAAI,EAAE,CAAC;IAAEC,KAAK,EAAE;EAAE,CAAC,CAAC;EACvE;EACA,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAGzC,QAAQ,CAAC,CAAC,CAAC;EACnD,MAAM,CAAC0C,aAAa,EAAEC,gBAAgB,CAAC,GAAG3C,QAAQ,CAAC,CAAC,CAAC;EACrD,MAAM4C,eAAe,GAAIC,KAAwB,IAAKJ,eAAe,CAACI,KAAK,CAACC,WAAW,CAACC,MAAM,CAACC,KAAK,CAAC;EACrG,MAAMC,gBAAgB,GAAIJ,KAAwB,IAAKF,gBAAgB,CAACE,KAAK,CAACC,WAAW,CAACC,MAAM,CAACC,KAAK,CAAC;EACvG,MAAME,UAAU,GAAGzB,OAAO,IAAI,IAAI,IAAIO,aAAa,KAAK,MAAM;EAC9D,MAAMmB,WAAW,GAAGzB,QAAQ,IAAI,IAAI,IAAIM,aAAa,KAAK,OAAO;EAAC,MAAAoB,OAAA,GAAAC,MAAA;EAAA;IAAA,MAAAA,MAAA,GAAAD,OAAA,CAAAE,WAAA,CAC/C;MAAE3B;IAAe,CAAC;IACrC,MAAM4B,OAAO,gBACXtC,IAAA,CAACN,mBAAmB;MAACqB,aAAa,EAAEA,aAAc;MAACC,UAAU,EAAEA,UAAW;MAACC,SAAS,EAAEA;IAAU,CAAE,CACnG;IACD;MAAA;MACE;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MAGIjB,IAAA,CAACf,gBAAgB;QAAAsD,QAAA,eACfrC,KAAA,CAACsC,IAAI;UAACC,KAAK,EAAE,CAACL,MAAM,CAACM,GAAG,EAAEN,MAAM,CAACjB,YAAY,CAACA,YAAY,CAACE,IAAI,EAAEF,YAAY,CAACG,KAAK,CAAC,CAAE;UAAAiB,QAAA,gBACpFvC,IAAA,CAACH,aAAa;YAACc,KAAK,EAAEA,KAAM;YAACgC,aAAa,EAAE/B,YAAa;YAACgC,iBAAiB,EAAE/B;UAAa,CAAE,CAAC,eAC7Fb,IAAA,CAACF,kBAAkB;YAAC+C,cAAc,EAAEzB;UAAgB,CAAE,CAAC,EACtDa,UAAU,iBACT/B,KAAA,CAACT,OAAO;YAACqD,QAAQ,EAAEnB,eAAgB;YAAAY,QAAA,GAChCxB,aAAa,KAAK,MAAM,IAAIuB,OAAO,EACnC9B,OAAO;UAAA,CACD,CACV,eACDN,KAAA,CAAClB,QAAQ,CAACwD,IAAI;YACZC,KAAK,EAAE,CACLL,MAAM,CAACW,cAAc,EACrBX,MAAM,CAACY,WAAW,CAChB7B,YAAY,CAACE,IAAI,EACjBF,YAAY,CAACG,KAAK,EAClBW,UAAU,GAAGV,YAAY,GAAG,CAAC,EAC7BW,WAAW,GAAGT,aAAa,GAAG,CAAC,EAC/Bf,cACF,CAAC,EACDI,UAAU,CACV;YACFmC,aAAa,EAAEtD,aAAa,CAACS,KAAK,CAAC,GAAG,UAAU,GAAG,MAAO;YAAAmC,QAAA,GAEzD3C,WAAW,CAACQ,KAAK,CAAC,GACf8C,MAAM,CAAC9C,KAAK,CAAC,CAAC+C,IAAI,CAAC,CAAC,CAACC,MAAM,GAAG,CAAC,iBAC7BpD,IAAA,CAACR,UAAU;cACT6D,OAAO,EAAEhD,YAAa;cACtBiD,MAAM,EAAEhD,WAAY;cACpBmC,KAAK,EAAEL,MAAM,CAAChC,KAAM;cACpBmD,aAAa,EAAE,CAAE;cAAAhB,QAAA,EAEhBnC;YAAK,CACI,CACb,GACDA,KAAK,EACR,CAAC,CAACG,QAAQ,iBACTP,IAAA,CAACT,IAAI;cACHkD,KAAK,EAAEL,MAAM,CAAC7B,QAAS;cACvBgD,aAAa,EAAE,CAAE;cACjBC,qBAAqB,EAAEtC,KAAK,CAACuC,UAAU,CAACC,QAAQ,CAAC,UAAU,CAAC,CAACF,qBAAsB;cAAAjB,QAAA,EAElFhC;YAAQ,CACL,CACP;UAAA,CACY,CAAC,EACf2B,WAAW,iBACVhC,KAAA,CAACT,OAAO;YAACgD,KAAK,EAAEL,MAAM,CAAC3B,QAAS;YAACqC,QAAQ,EAAEd,gBAAiB;YAAAO,QAAA,GACzDxB,aAAa,KAAK,OAAO,IAAIuB,OAAO,EACpC7B,QAAQ;UAAA,CACF,CACV;QAAA,CACG;MAAC,CACS;IAAC;EACnB;AACJ;AAEA,MAAM2B,MAAM,GAAGlD,UAAU,CAACyE,MAAM,CAAC,CAACzC,KAAK,EAAE0C,OAAO,KAAK;EACnD;EACA;EACA,MAAMC,cAAc,GAAG3C,KAAK,CAACuC,UAAU,CAACC,QAAQ,CAAC,UAAU,CAAC,CAACI,UAAU;EACvE,MAAMC,YAAY,GAAG7C,KAAK,CAACuC,UAAU,CAACO,KAAK,CAACH,cAAc,CAAC;EAC3D,MAAMI,oBAAoB,GAAGF,YAAY,KAAK1E,WAAW;EAEzD,OAAO;IACL8B,YAAY,EAAEA,CAACE,IAAY,EAAEC,KAAa,MAAM;MAC9C4C,WAAW,EAAEC,IAAI,CAACC,GAAG,CAAC9E,oBAAoB,CAAC4B,KAAK,EAAE0C,OAAO,CAACS,UAAU,CAAC,CAACC,CAAC,EAAEjD,IAAI,CAAC;MAC9EkD,YAAY,EAAEJ,IAAI,CAACC,GAAG,CAAC9E,oBAAoB,CAAC4B,KAAK,EAAE0C,OAAO,CAACS,UAAU,CAAC,CAACC,CAAC,EAAEhD,KAAK,CAAC;MAAAkD,iBAAA;IAClF,CAAC,CAAC;IACF;IACA;IACA;IACA;IACA;IACA;IACAxB,WAAW,EAAEA,CACX3B,IAAY,EACZC,KAAa,EACbC,YAAoB,EACpBE,aAAqB,EACrBgD,SAA4B,KACzB;MACH,IAAIA,SAAS,KAAK,QAAQ,EAAE,OAAO;QAAAD,iBAAA;MAAC,CAAC;MACrC,MAAME,OAAO,GAAGpF,oBAAoB,CAAC4B,KAAK,EAAE0C,OAAO,CAACS,UAAU,CAAC,CAACC,CAAC;MACjE,MAAMK,GAAG,GAAGzD,KAAK,CAAC0D,OAAO,CAAC,GAAG,CAAC;MAC9B,MAAMC,SAAS,GAAGV,IAAI,CAACC,GAAG,CAACM,OAAO,EAAErD,IAAI,CAAC,IAAIE,YAAY,GAAG,CAAC,GAAGA,YAAY,GAAGoD,GAAG,GAAG,CAAC,CAAC,GAAGtD,IAAI;MAC9F,MAAMyD,UAAU,GAAGX,IAAI,CAACC,GAAG,CAACM,OAAO,EAAEpD,KAAK,CAAC,IAAIG,aAAa,GAAG,CAAC,GAAGA,aAAa,GAAGkD,GAAG,GAAG,CAAC,CAAC,GAAGrD,KAAK;MACnG,MAAMyD,KAAK,GAAGZ,IAAI,CAACC,GAAG,CAACS,SAAS,EAAEC,UAAU,CAAC;MAC7C,OAAO;QAAEzD,IAAI,EAAEA,IAAI,GAAG0D,KAAK;QAAEzD,KAAK,EAAEA,KAAK,GAAGyD,KAAK;QAAAP,iBAAA;MAAC,CAAC;IACrD,CAAC;IACD9B,GAAG,EAAE;MACHsC,MAAM,EAAE9D,KAAK,CAACY,MAAM,CAACmD,MAAM,CAACD,MAAM;MAClCE,aAAa,EAAE,KAAK;MACpBC,UAAU,EAAE,QAAQ;MACpBC,iBAAiB,EAAElE,KAAK,CAACY,MAAM,CAACuD,MAAM,CAACX,OAAO,CAACJ,CAAC;MAChDK,GAAG,EAAEzD,KAAK,CAAC0D,OAAO,CAAC,GAAG,CAAC;MACvBU,cAAc,EAAE,eAAe;MAAAd,iBAAA;IACjC,CAAC;IACD;IACA;IACA;IACA/D,QAAQ,EAAE;MACR6E,cAAc,EAAE,UAAU;MAC1B5B,QAAQ,EAAE;QACRhD,cAAc,EAAE;UACd6E,MAAM,EAAE;YAAEC,UAAU,EAAE;UAAO,CAAC;UAC9BnE,IAAI,EAAE,CAAC;QACT;MACF,CAAC;MAAAmD,iBAAA;IACH,CAAC;IACDzB,cAAc,EAAE;MACdW,QAAQ,EAAE;QACRhD,cAAc,EAAE;UACd6E,MAAM,EAAE;YACNE,QAAQ,EAAE,UAAU;YACpBpE,IAAI,EAAE,CAAC;YACPC,KAAK,EAAE,CAAC;YACR6D,UAAU,EAAE;UACd,CAAC;UACD9D,IAAI,EAAE;YACJqE,IAAI,EAAE,CAAC;YACPP,UAAU,EAAE;UACd;QACF;MACF,CAAC;MAAAX,iBAAA;IACH,CAAC;IACDpE,KAAK,EAAE;MACLsD,QAAQ,EAAE;QACRhD,cAAc,EAAE;UACd6E,MAAM,EAAE;YAAEI,SAAS,EAAE;UAAS,CAAC;UAC/BtE,IAAI,EAAE;YAAEsE,SAAS,EAAE;UAAO;QAC5B;MACF,CAAC;MAAAnB,iBAAA;IACH,CAAC;IACDjE,QAAQ,EAAE;MACRqF,QAAQ,EAAE1E,KAAK,CAACuC,UAAU,CAACC,QAAQ,CAAC,UAAU,CAAC,CAACkC,QAAQ;MACxDC,UAAU,EAAE3E,KAAK,CAACuC,UAAU,CAACC,QAAQ,CAAC,UAAU,CAAC,CAACmC,UAAU;MAC5DC,aAAa,EAAE5E,KAAK,CAACuC,UAAU,CAACC,QAAQ,CAAC,UAAU,CAAC,CAACoC,aAAa;MAClEC,UAAU,EAAE9B,oBAAoB,GAAG+B,SAAS,GAAGjC,YAAY;MAC3DD,UAAU,EAAEG,oBAAoB,GAAG7E,iBAAiB,CAACyE,cAAc,CAAC,GAAGmC,SAAS;MAChFC,kBAAkB,EAAE,KAAK;MACzBtF,KAAK,EAAGO,KAAK,CAACP,KAAK,CAAmD,eAAe,CAAC,IAAI,EAAE;MAC5F+C,QAAQ,EAAE;QACRhD,cAAc,EAAE;UACd6E,MAAM,EAAE;YAAEI,SAAS,EAAE;UAAS,CAAC;UAC/BtE,IAAI,EAAE;YAAEsE,SAAS,EAAE;UAAO;QAC5B;MACF,CAAC;MAAAnB,iBAAA;IACH;EACF,CAAC;AACH,CAAC,CAAC","ignoreList":[]}
|
|
@@ -19,7 +19,6 @@ export const HEADER_FADE_END_OPACITY = 0.9;
|
|
|
19
19
|
*/
|
|
20
20
|
export function HeaderGradientOverlay({
|
|
21
21
|
color,
|
|
22
|
-
startOpacity = 1,
|
|
23
22
|
endOpacity = HEADER_FADE_END_OPACITY
|
|
24
23
|
}) {
|
|
25
24
|
const gradientId = useId();
|
|
@@ -36,7 +35,7 @@ export function HeaderGradientOverlay({
|
|
|
36
35
|
children: [/*#__PURE__*/_jsx(Stop, {
|
|
37
36
|
offset: 0,
|
|
38
37
|
stopColor: color,
|
|
39
|
-
stopOpacity:
|
|
38
|
+
stopOpacity: 1
|
|
40
39
|
}), /*#__PURE__*/_jsx(Stop, {
|
|
41
40
|
offset: 1,
|
|
42
41
|
stopColor: color,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useId","Svg","Defs","Rect","Stop","LinearGradient","SvgLinearGradient","jsx","_jsx","jsxs","_jsxs","HEADER_FADE_END_OPACITY","HeaderGradientOverlay","color","
|
|
1
|
+
{"version":3,"names":["useId","Svg","Defs","Rect","Stop","LinearGradient","SvgLinearGradient","jsx","_jsx","jsxs","_jsxs","HEADER_FADE_END_OPACITY","HeaderGradientOverlay","color","endOpacity","gradientId","height","width","children","id","x1","y1","x2","y2","offset","stopColor","stopOpacity","fill"],"sourceRoot":"../../../../../src","sources":["components/header/parts/HeaderGradientOverlay.tsx"],"mappings":";;AAAA,SAASA,KAAK,QAAQ,OAAO;AAE7B,OAAOC,GAAG,IAAIC,IAAI,EAAEC,IAAI,EAAEC,IAAI,EAAEC,cAAc,IAAIC,iBAAiB,QAAQ,kBAAkB;;AAE7F;AACA;AACA;AACA;AACA;AAJA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAKA,OAAO,MAAMC,uBAAuB,GAAG,GAAG;AAS1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,qBAAqBA,CAAC;EACpCC,KAAK;EACLC,UAAU,GAAGH;AACa,CAAC,EAAE;EAC7B,MAAMI,UAAU,GAAGf,KAAK,CAAC,CAAC;EAE1B,oBACEU,KAAA,CAACT,GAAG;IAACe,MAAM,EAAC,MAAM;IAACC,KAAK,EAAC,MAAM;IAAAC,QAAA,gBAC7BV,IAAA,CAACN,IAAI;MAAAgB,QAAA,eACHR,KAAA,CAACJ,iBAAiB;QAACa,EAAE,EAAEJ,UAAW;QAACK,EAAE,EAAC,GAAG;QAACC,EAAE,EAAC,GAAG;QAACC,EAAE,EAAC,GAAG;QAACC,EAAE,EAAC,GAAG;QAAAL,QAAA,gBAC5DV,IAAA,CAACJ,IAAI;UAACoB,MAAM,EAAE,CAAE;UAACC,SAAS,EAAEZ,KAAM;UAACa,WAAW,EAAE;QAAE,CAAE,CAAC,eACrDlB,IAAA,CAACJ,IAAI;UAACoB,MAAM,EAAE,CAAE;UAACC,SAAS,EAAEZ,KAAM;UAACa,WAAW,EAAEZ;QAAW,CAAE,CAAC;MAAA,CAC7C;IAAC,CAChB,CAAC,eACPN,IAAA,CAACL,IAAI;MAACc,KAAK,EAAC,MAAM;MAACD,MAAM,EAAC,MAAM;MAACW,IAAI,EAAE,QAAQZ,UAAU;IAAI,CAAE,CAAC;EAAA,CAC7D,CAAC;AAEV","ignoreList":[]}
|
|
@@ -5,7 +5,11 @@ import { StyleSheet } from "react-native-unistyles";
|
|
|
5
5
|
import { HEADER_FADE_END_OPACITY, HeaderGradientOverlay } from "./HeaderGradientOverlay.js";
|
|
6
6
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
7
|
/**
|
|
8
|
-
* Header background
|
|
8
|
+
* Header background. One fade per header, at its bottom edge: the bar's when it
|
|
9
|
+
* stands alone, the accessory's when there is one, with the bar solid above it.
|
|
10
|
+
* Content scrolling under a pinned accessory then meets a header as opaque as
|
|
11
|
+
* any other, rather than one that thinned twice, once at each part's edge, and
|
|
12
|
+
* let saturated rows show through around a search field.
|
|
9
13
|
*
|
|
10
14
|
* The ramp spans the surface itself: it is sized by the caller and stays inside
|
|
11
15
|
* those bounds, so a taller surface stretches the fade rather than adding to it.
|
|
@@ -13,15 +17,16 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
13
17
|
export function HeaderSurface({
|
|
14
18
|
color,
|
|
15
19
|
animatedStyle,
|
|
16
|
-
accessory
|
|
20
|
+
accessory,
|
|
21
|
+
hasAccessoryBelow
|
|
17
22
|
}) {
|
|
23
|
+
const fades = accessory || !hasAccessoryBelow;
|
|
18
24
|
return /*#__PURE__*/_jsx(Animated.View, {
|
|
19
25
|
style: [styles.surface, animatedStyle],
|
|
20
26
|
pointerEvents: "none",
|
|
21
27
|
children: /*#__PURE__*/_jsx(HeaderGradientOverlay, {
|
|
22
28
|
color: color,
|
|
23
|
-
|
|
24
|
-
endOpacity: accessory ? 0.85 : HEADER_FADE_END_OPACITY
|
|
29
|
+
endOpacity: fades ? HEADER_FADE_END_OPACITY : 1
|
|
25
30
|
})
|
|
26
31
|
});
|
|
27
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Animated","StyleSheet","HEADER_FADE_END_OPACITY","HeaderGradientOverlay","jsx","_jsx","HeaderSurface","color","animatedStyle","accessory","View","style","styles","surface","pointerEvents","children","
|
|
1
|
+
{"version":3,"names":["Animated","StyleSheet","HEADER_FADE_END_OPACITY","HeaderGradientOverlay","jsx","_jsx","HeaderSurface","color","animatedStyle","accessory","hasAccessoryBelow","fades","View","style","styles","surface","pointerEvents","children","endOpacity","create","position","top","left","right","bottom"],"sourceRoot":"../../../../../src","sources":["components/header/parts/HeaderSurface.tsx"],"mappings":";;AAAA,OAAOA,QAAQ,MAAiC,yBAAyB;AACzE,SAASC,UAAU,QAAQ,wBAAwB;AAEnD,SAASC,uBAAuB,EAAEC,qBAAqB;AAAkC,SAAAC,GAAA,IAAAC,IAAA;AAkBzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,aAAaA,CAAC;EAAEC,KAAK;EAAEC,aAAa;EAAEC,SAAS;EAAEC;AAAsC,CAAC,EAAE;EACxG,MAAMC,KAAK,GAAGF,SAAS,IAAI,CAACC,iBAAiB;EAC7C,oBACEL,IAAA,CAACL,QAAQ,CAACY,IAAI;IAACC,KAAK,EAAE,CAACC,MAAM,CAACC,OAAO,EAAEP,aAAa,CAAE;IAACQ,aAAa,EAAC,MAAM;IAAAC,QAAA,eACzEZ,IAAA,CAACF,qBAAqB;MAACI,KAAK,EAAEA,KAAM;MAACW,UAAU,EAAEP,KAAK,GAAGT,uBAAuB,GAAG;IAAE,CAAE;EAAC,CAC3E,CAAC;AAEpB;AAEA,MAAMY,MAAM,GAAGb,UAAU,CAACkB,MAAM,CAAC,OAAO;EACtCJ,OAAO,EAAE;IACPK,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE;EACV;AACF,CAAC,CAAC,CAAC","ignoreList":[]}
|
|
@@ -65,6 +65,7 @@ export function LargeTitleHeader({
|
|
|
65
65
|
titleAlignment: titleAlignment,
|
|
66
66
|
color: color,
|
|
67
67
|
surfaceStyle: layout.surfaceStyle,
|
|
68
|
+
hasAccessory: accessory != null,
|
|
68
69
|
titleStyle: layout.compactTitleStyle,
|
|
69
70
|
leading: leadingActions !== undefined ? leadingActions : LeftToolbar,
|
|
70
71
|
trailing: trailingActions !== undefined ? trailingActions : RightToolbar
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["StyleSheet","Portal","useHeaderBackground","SCREEN_HEADER_PORTAL_HOST","useHeaderColor","useLargeTitleHeader","HeaderAccessory","HeaderAccessorySpacer","HeaderBar","LargeTitleContent","jsx","_jsx","jsxs","_jsxs","LargeTitleHeader","title","titleVariant","titleWeight","largeTitleVariant","largeTitleWeight","overline","subtitle","leadingActions","trailingActions","LeftToolbar","RightToolbar","accessory","accessoryPadding","accessoryBehavior","titleAlignment","isLargeTitleHidden","background","bg","dismissProps","color","layout","hasAccessory","surfaceStyle","View","style","styles","container","accessoryOffset","pointerEvents","children","hostName","hasAccessoryBelow","isSticky","onHeightChange","setLargeTitleHeight","animatedStyle","largeTitleStyle","height","reservedAccessoryHeight","titleStyle","compactTitleStyle","leading","undefined","trailing","padding","accessoryStyle","setAccessoryHeight","create","position","top","left","right","zIndex","paddingBottom"],"sourceRoot":"../../../../../../src","sources":["components/header/variants/LargeTitleHeader/index.tsx"],"mappings":";;;AAEA,SAASA,UAAU,QAAQ,wBAAwB;AAGnD,SAASC,MAAM;AACf,SAASC,mBAAmB;AAC5B,SAASC,yBAAyB;AAClC,SAASC,cAAc;AACvB,SAASC,mBAAmB;AAC5B,SAASC,eAAe,EAAEC,qBAAqB;AAC/C,SAASC,SAAS;AAGlB,SAASC,iBAAiB;AAAoC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AA0B9D;AACA,OAAO,SAASC,gBAAgBA,CAAC;EAC/BC,KAAK;EACLC,YAAY;EACZC,WAAW;EACXC,iBAAiB;EACjBC,gBAAgB;EAChBC,QAAQ;EACRC,QAAQ;EACRC,cAAc;EACdC,eAAe;EACfC,WAAW;EACXC,YAAY;EACZC,SAAS;EACTC,gBAAgB,GAAG,GAAG;EACtBC,iBAAiB,GAAG,QAAQ;EAC5BC,cAAc,GAAG,QAAQ;EACzBC,kBAAkB,GAAG,KAAK;EAC1BC,UAAU;EACVC,EAAE;EACF,GAAGC;AACkB,CAAC,EAAE;EACxB,MAAMC,KAAK,GAAG9B,cAAc,CAAC2B,UAAU,IAAIC,EAAE,CAAC;EAC9C,MAAMG,MAAM,GAAG9B,mBAAmB,CAAC;IACjC+B,YAAY,EAAEV,SAAS,IAAI,IAAI;IAC/BE,iBAAiB;IACjBE;EACF,CAAC,CAAC;EACF5B,mBAAmB,CAACgC,KAAK,EAAEC,MAAM,CAACE,YAAY,CAAC;EAC/C,oBACExB,KAAA,CAACyB,IAAI;IAACC,KAAK,EAAEC,MAAM,CAACC,SAAS,CAACN,MAAM,CAACO,eAAe,CAAE;IAACC,aAAa,EAAC,UAAU;IAAAC,QAAA,GAC5E,CAACd,kBAAkB,iBAClBjB,KAAA,CAACZ,MAAM;MAAC4C,QAAQ,EAAE1C,yBAA0B;MAAAyC,QAAA,gBAC1CjC,IAAA,CAACF,iBAAiB;QAChBM,KAAK,EAAEA,KAAM;QACbG,iBAAiB,EAAEA,iBAAkB;QACrCC,gBAAgB,EAAEA,gBAAiB;QACnCC,QAAQ,EAAEA,QAAS;QACnBC,QAAQ,EAAEA,QAAS;QACnByB,iBAAiB,EAAEX,MAAM,CAACY,QAAS;QACnCC,cAAc,EAAEb,MAAM,CAACc,mBAAoB;QAC3CC,aAAa,EAAEf,MAAM,CAACgB;MAAgB,CACvC,CAAC,EACDhB,MAAM,CAACY,QAAQ,iBAAIpC,IAAA,CAACJ,qBAAqB;QAAC6C,MAAM,EAAEjB,MAAM,CAACkB;MAAwB,CAAE,CAAC;IAAA,CAC/E,CACT,eACD1C,IAAA,CAACH,SAAS;MAAA,GACJyB,YAAY;MAChBlB,KAAK,EAAEA,KAAM;MACbC,YAAY,EAAEA,YAAa;MAC3BC,WAAW,EAAEA,WAAY;MACzBY,cAAc,EAAEA,cAAe;MAC/BK,KAAK,EAAEA,KAAM;MACbG,YAAY,EAAEF,MAAM,CAACE,YAAa;
|
|
1
|
+
{"version":3,"names":["StyleSheet","Portal","useHeaderBackground","SCREEN_HEADER_PORTAL_HOST","useHeaderColor","useLargeTitleHeader","HeaderAccessory","HeaderAccessorySpacer","HeaderBar","LargeTitleContent","jsx","_jsx","jsxs","_jsxs","LargeTitleHeader","title","titleVariant","titleWeight","largeTitleVariant","largeTitleWeight","overline","subtitle","leadingActions","trailingActions","LeftToolbar","RightToolbar","accessory","accessoryPadding","accessoryBehavior","titleAlignment","isLargeTitleHidden","background","bg","dismissProps","color","layout","hasAccessory","surfaceStyle","View","style","styles","container","accessoryOffset","pointerEvents","children","hostName","hasAccessoryBelow","isSticky","onHeightChange","setLargeTitleHeight","animatedStyle","largeTitleStyle","height","reservedAccessoryHeight","titleStyle","compactTitleStyle","leading","undefined","trailing","padding","accessoryStyle","setAccessoryHeight","create","position","top","left","right","zIndex","paddingBottom"],"sourceRoot":"../../../../../../src","sources":["components/header/variants/LargeTitleHeader/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -41,6 +41,7 @@ export function TitleHeader({
|
|
|
41
41
|
subtitle: subtitle,
|
|
42
42
|
titleAlignment: titleAlignment,
|
|
43
43
|
color: color,
|
|
44
|
+
hasAccessory: accessory != null,
|
|
44
45
|
leading: leadingActions !== undefined ? leadingActions : LeftToolbar,
|
|
45
46
|
trailing: trailingActions !== undefined ? trailingActions : RightToolbar
|
|
46
47
|
}), accessory != null && /*#__PURE__*/_jsx(HeaderAccessory, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useContext","StyleSheet","useHeaderBackground","ScreenContext","useHeaderColor","HeaderAccessory","HeaderBar","jsx","_jsx","jsxs","_jsxs","TitleHeader","title","titleVariant","titleWeight","subtitle","leadingActions","trailingActions","LeftToolbar","RightToolbar","accessory","accessoryPadding","titleAlignment","background","bg","dismissProps","screen","color","View","style","styles","container","children","safeArea","leading","undefined","trailing","padding","onHeightChange","setHeaderAccessoryHeight","create","_","runtime","position","top","left","right","zIndex","withinScreen","height","insets","backgroundColor","uni__dependencies"],"sourceRoot":"../../../../../../src","sources":["components/header/variants/TitleHeader/index.tsx"],"mappings":";;;AAAA,SAAyBA,UAAU,QAAQ,OAAO;AAGlD,SAASC,UAAU,QAAQ,wBAAwB;AAGnD,SAASC,mBAAmB;AAC5B,SAASC,aAAa;AAEtB,SAASC,cAAc;AACvB,SAASC,eAAe;AACxB,SAASC,SAAS;AAAgC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAqDlD;AACA,OAAO,SAASC,WAAWA,CAAC;EAC1BC,KAAK;EACLC,YAAY;EACZC,WAAW;EACXC,QAAQ;EACRC,cAAc;EACdC,eAAe;EACfC,WAAW;EACXC,YAAY;EACZC,SAAS;EACTC,gBAAgB,GAAG,GAAG;EACtBC,cAAc,GAAG,QAAQ;EACzBC,UAAU;EACVC,EAAE;EACF,GAAGC;AACa,CAAC,EAAE;EACnB,MAAMC,MAAM,GAAG1B,UAAU,CAACG,aAAa,CAAC;EACxC,MAAMwB,KAAK,GAAGvB,cAAc,CAACmB,UAAU,IAAIC,EAAE,CAAC;EAC9CtB,mBAAmB,CAACyB,KAAK,CAAC;EAC1B,oBACEjB,KAAA,CAACkB,IAAI;IAACC,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,gBAC5BxB,IAAA,CAACoB,IAAI;MAACC,KAAK,EAAEC,MAAM,CAACG,QAAQ,CAACN,KAAK,EAAED,MAAM,KAAK,IAAI;IAAE,CAAE,CAAC,eACxDlB,IAAA,CAACF,SAAS;MAAA,GACJmB,YAAY;MAChBb,KAAK,EAAEA,KAAM;MACbC,YAAY,EAAEA,YAAa;MAC3BC,WAAW,EAAEA,WAAY;MACzBC,QAAQ,EAAEA,QAAS;MACnBO,cAAc,EAAEA,cAAe;MAC/BK,KAAK,EAAEA,KAAM;MACbO,OAAO,
|
|
1
|
+
{"version":3,"names":["useContext","StyleSheet","useHeaderBackground","ScreenContext","useHeaderColor","HeaderAccessory","HeaderBar","jsx","_jsx","jsxs","_jsxs","TitleHeader","title","titleVariant","titleWeight","subtitle","leadingActions","trailingActions","LeftToolbar","RightToolbar","accessory","accessoryPadding","titleAlignment","background","bg","dismissProps","screen","color","View","style","styles","container","children","safeArea","hasAccessory","leading","undefined","trailing","padding","onHeightChange","setHeaderAccessoryHeight","create","_","runtime","position","top","left","right","zIndex","withinScreen","height","insets","backgroundColor","uni__dependencies"],"sourceRoot":"../../../../../../src","sources":["components/header/variants/TitleHeader/index.tsx"],"mappings":";;;AAAA,SAAyBA,UAAU,QAAQ,OAAO;AAGlD,SAASC,UAAU,QAAQ,wBAAwB;AAGnD,SAASC,mBAAmB;AAC5B,SAASC,aAAa;AAEtB,SAASC,cAAc;AACvB,SAASC,eAAe;AACxB,SAASC,SAAS;AAAgC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAqDlD;AACA,OAAO,SAASC,WAAWA,CAAC;EAC1BC,KAAK;EACLC,YAAY;EACZC,WAAW;EACXC,QAAQ;EACRC,cAAc;EACdC,eAAe;EACfC,WAAW;EACXC,YAAY;EACZC,SAAS;EACTC,gBAAgB,GAAG,GAAG;EACtBC,cAAc,GAAG,QAAQ;EACzBC,UAAU;EACVC,EAAE;EACF,GAAGC;AACa,CAAC,EAAE;EACnB,MAAMC,MAAM,GAAG1B,UAAU,CAACG,aAAa,CAAC;EACxC,MAAMwB,KAAK,GAAGvB,cAAc,CAACmB,UAAU,IAAIC,EAAE,CAAC;EAC9CtB,mBAAmB,CAACyB,KAAK,CAAC;EAC1B,oBACEjB,KAAA,CAACkB,IAAI;IAACC,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,gBAC5BxB,IAAA,CAACoB,IAAI;MAACC,KAAK,EAAEC,MAAM,CAACG,QAAQ,CAACN,KAAK,EAAED,MAAM,KAAK,IAAI;IAAE,CAAE,CAAC,eACxDlB,IAAA,CAACF,SAAS;MAAA,GACJmB,YAAY;MAChBb,KAAK,EAAEA,KAAM;MACbC,YAAY,EAAEA,YAAa;MAC3BC,WAAW,EAAEA,WAAY;MACzBC,QAAQ,EAAEA,QAAS;MACnBO,cAAc,EAAEA,cAAe;MAC/BK,KAAK,EAAEA,KAAM;MACbO,YAAY,EAAEd,SAAS,IAAI,IAAK;MAChCe,OAAO,EAAEnB,cAAc,KAAKoB,SAAS,GAAGpB,cAAc,GAAGE,WAAY;MACrEmB,QAAQ,EAAEpB,eAAe,KAAKmB,SAAS,GAAGnB,eAAe,GAAGE;IAAa,CAC1E,CAAC,EACDC,SAAS,IAAI,IAAI,iBAChBZ,IAAA,CAACH,eAAe;MACdiC,OAAO,EAAEjB,gBAAiB;MAC1BM,KAAK,EAAEA,KAAM;MACbY,cAAc,EAAEb,MAAM,EAAEc,wBAAyB;MAAAR,QAAA,EAEhDZ;IAAS,CACK,CAClB;EAAA,CACG,CAAC;AAEX;AAEA,MAAMU,MAAM,GAAG7B,UAAU,CAACwC,MAAM,CAAC,CAACC,CAAC,EAAEC,OAAO,MAAM;EAChDZ,SAAS,EAAE;IAAEa,QAAQ,EAAE,UAAU;IAAEC,GAAG,EAAE,CAAC;IAAEC,IAAI,EAAE,CAAC;IAAEC,KAAK,EAAE,CAAC;IAAEC,MAAM,EAAE;EAAK,CAAC;EAC5Ef,QAAQ,EAAEA,CAACN,KAAa,EAAEsB,YAAqB,MAAM;IACnDC,MAAM,EAAED,YAAY,GAAG,CAAC,GAAGN,OAAO,CAACQ,MAAM,CAACN,GAAG;IAC7CO,eAAe,EAAEzB,KAAK;IAAA0B,iBAAA;EACxB,CAAC;AACH,CAAC,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useCallback, useState } from "react";
|
|
4
|
+
/**
|
|
5
|
+
* Track whether a `TextInput` is focused while still forwarding the caller's
|
|
6
|
+
* own `onFocus` / `onBlur`. Shared by the field (for its focus ring) and by
|
|
7
|
+
* variants that show extra controls while focused.
|
|
8
|
+
*/
|
|
9
|
+
export function useFocusState(onFocus, onBlur) {
|
|
10
|
+
const [isFocused, setIsFocused] = useState(false);
|
|
11
|
+
const handleFocus = useCallback(event => {
|
|
12
|
+
setIsFocused(true);
|
|
13
|
+
onFocus?.(event);
|
|
14
|
+
}, [onFocus]);
|
|
15
|
+
const handleBlur = useCallback(event => {
|
|
16
|
+
setIsFocused(false);
|
|
17
|
+
onBlur?.(event);
|
|
18
|
+
}, [onBlur]);
|
|
19
|
+
return {
|
|
20
|
+
isFocused,
|
|
21
|
+
handleFocus,
|
|
22
|
+
handleBlur
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=use-focus-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useCallback","useState","useFocusState","onFocus","onBlur","isFocused","setIsFocused","handleFocus","event","handleBlur"],"sourceRoot":"../../../../../src","sources":["components/input/hooks/use-focus-state.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,QAAQ,QAAQ,OAAO;AAM7C;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,aAAaA,CAACC,OAAsB,EAAEC,MAAoB,EAAE;EAC1E,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAGL,QAAQ,CAAC,KAAK,CAAC;EAEjD,MAAMM,WAAW,GAAGP,WAAW,CAC5BQ,KAAK,IAAK;IACTF,YAAY,CAAC,IAAI,CAAC;IAClBH,OAAO,GAAGK,KAAK,CAAC;EAClB,CAAC,EACD,CAACL,OAAO,CACV,CAAC;EAED,MAAMM,UAAU,GAAGT,WAAW,CAC3BQ,KAAK,IAAK;IACTF,YAAY,CAAC,KAAK,CAAC;IACnBF,MAAM,GAAGI,KAAK,CAAC;EACjB,CAAC,EACD,CAACJ,MAAM,CACT,CAAC;EAED,OAAO;IAAEC,SAAS;IAAEE,WAAW;IAAEE;EAAW,CAAC;AAC/C","ignoreList":[]}
|
|
@@ -2,11 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
import { View } from "react-native-unistyles/components/native/View";
|
|
4
4
|
import { TextInput } from "react-native-unistyles/components/native/TextInput";
|
|
5
|
-
import { forwardRef
|
|
5
|
+
import { forwardRef } from "react";
|
|
6
6
|
import { StyleSheet, useUnistyles } from "react-native-unistyles";
|
|
7
7
|
import { resolveThemeColor } from "../../../utils/resolve-theme-color.js";
|
|
8
8
|
import { FONT_WEIGHT_VALUE, SYSTEM_FONT } from "../../../utils/typography.js";
|
|
9
|
+
import { useFocusState } from "../hooks/use-focus-state.js";
|
|
9
10
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
11
|
+
/** Container height per size, in dp. Sibling controls sized to match read from here. */
|
|
12
|
+
export const FIELD_HEIGHT = {
|
|
13
|
+
sm: 36,
|
|
14
|
+
md: 44,
|
|
15
|
+
lg: 52
|
|
16
|
+
};
|
|
17
|
+
|
|
10
18
|
/** Typographic role of the text, per size. */
|
|
11
19
|
const TEXT_VARIANT = {
|
|
12
20
|
sm: "subheadline",
|
|
@@ -23,6 +31,9 @@ export const InputField = /*#__PURE__*/forwardRef(function InputField({
|
|
|
23
31
|
size = "md",
|
|
24
32
|
isDisabled = false,
|
|
25
33
|
isInvalid = false,
|
|
34
|
+
focusBorderColor,
|
|
35
|
+
focusBorderWidth,
|
|
36
|
+
hasFocusGlow = false,
|
|
26
37
|
leading,
|
|
27
38
|
trailing,
|
|
28
39
|
background = "surface.sunken",
|
|
@@ -32,31 +43,27 @@ export const InputField = /*#__PURE__*/forwardRef(function InputField({
|
|
|
32
43
|
onBlur,
|
|
33
44
|
...rest
|
|
34
45
|
}, ref) {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
46
|
+
const {
|
|
47
|
+
isFocused,
|
|
48
|
+
handleFocus,
|
|
49
|
+
handleBlur
|
|
50
|
+
} = useFocusState(onFocus, onBlur);
|
|
51
|
+
const showsFocus = isFocused && !isDisabled;
|
|
52
|
+
|
|
53
|
+
// The placeholder colour has to leave the stylesheet because `TextInput` takes
|
|
54
|
+
// it as a prop rather than as a style.
|
|
39
55
|
const {
|
|
40
56
|
theme
|
|
41
57
|
} = useUnistyles();
|
|
42
|
-
const handleFocus = useCallback(event => {
|
|
43
|
-
setIsFocused(true);
|
|
44
|
-
onFocus?.(event);
|
|
45
|
-
}, [onFocus]);
|
|
46
|
-
const handleBlur = useCallback(event => {
|
|
47
|
-
setIsFocused(false);
|
|
48
|
-
onBlur?.(event);
|
|
49
|
-
}, [onBlur]);
|
|
50
58
|
const _styles = styles;
|
|
51
59
|
{
|
|
52
60
|
const styles = _styles.useVariants({
|
|
53
61
|
size,
|
|
54
62
|
disabled: isDisabled,
|
|
55
|
-
invalid: isInvalid
|
|
56
|
-
focused: isFocused && !isDisabled
|
|
63
|
+
invalid: isInvalid
|
|
57
64
|
});
|
|
58
65
|
return /*#__PURE__*/_jsxs(View, {
|
|
59
|
-
style: [styles.container, styles.fill(background, radius), style],
|
|
66
|
+
style: [styles.container, styles.fill(background, radius), showsFocus && styles.focus(focusBorderColor, focusBorderWidth, hasFocusGlow, isInvalid), style],
|
|
60
67
|
children: [leading, /*#__PURE__*/_jsx(TextInput, {
|
|
61
68
|
ref: ref,
|
|
62
69
|
editable: !isDisabled,
|
|
@@ -90,27 +97,21 @@ const styles = StyleSheet.create(theme => {
|
|
|
90
97
|
variants: {
|
|
91
98
|
size: {
|
|
92
99
|
sm: {
|
|
93
|
-
height:
|
|
94
|
-
paddingHorizontal: theme.spacing["
|
|
100
|
+
height: FIELD_HEIGHT.sm,
|
|
101
|
+
paddingHorizontal: theme.spacing["3"],
|
|
95
102
|
gap: 6
|
|
96
103
|
},
|
|
97
104
|
md: {
|
|
98
|
-
height:
|
|
99
|
-
paddingHorizontal: theme.spacing["
|
|
105
|
+
height: FIELD_HEIGHT.md,
|
|
106
|
+
paddingHorizontal: theme.spacing["3"],
|
|
100
107
|
gap: 6
|
|
101
108
|
},
|
|
102
109
|
lg: {
|
|
103
|
-
height:
|
|
110
|
+
height: FIELD_HEIGHT.lg,
|
|
104
111
|
paddingHorizontal: theme.spacing["4"],
|
|
105
112
|
gap: 6
|
|
106
113
|
}
|
|
107
114
|
},
|
|
108
|
-
focused: {
|
|
109
|
-
true: {
|
|
110
|
-
borderColor: theme.color["accent.border"]
|
|
111
|
-
},
|
|
112
|
-
false: {}
|
|
113
|
-
},
|
|
114
115
|
invalid: {
|
|
115
116
|
true: {
|
|
116
117
|
borderColor: theme.color["danger.text"]
|
|
@@ -126,6 +127,31 @@ const styles = StyleSheet.create(theme => {
|
|
|
126
127
|
},
|
|
127
128
|
uni__dependencies: [0, 4]
|
|
128
129
|
},
|
|
130
|
+
// Only the keys that apply are set, so an unset option leaves the resting
|
|
131
|
+
// border alone rather than overriding it with `undefined`. An invalid field
|
|
132
|
+
// keeps its danger border and skips the glow, so the error stays the loudest
|
|
133
|
+
// signal; only the width still follows focus.
|
|
134
|
+
focus: (color, width, hasGlow, isInvalid) => {
|
|
135
|
+
const focusColor = resolveThemeColor(color ?? "border.default", theme);
|
|
136
|
+
return {
|
|
137
|
+
...(width !== undefined && {
|
|
138
|
+
borderWidth: width
|
|
139
|
+
}),
|
|
140
|
+
...(color && !isInvalid && {
|
|
141
|
+
borderColor: focusColor
|
|
142
|
+
}),
|
|
143
|
+
...(hasGlow && !isInvalid && {
|
|
144
|
+
boxShadow: [{
|
|
145
|
+
offsetX: 0,
|
|
146
|
+
offsetY: 0,
|
|
147
|
+
blurRadius: 4,
|
|
148
|
+
spreadDistance: 1,
|
|
149
|
+
color: focusColor
|
|
150
|
+
}]
|
|
151
|
+
}),
|
|
152
|
+
uni__dependencies: [0]
|
|
153
|
+
};
|
|
154
|
+
},
|
|
129
155
|
// `background` is an open `ColorToken` and `radius` an eight-step scale, so
|
|
130
156
|
// both resolve in a dynamic function rather than enumerating as variants.
|
|
131
157
|
fill: (background, radius) => ({
|
|
@@ -155,10 +181,6 @@ const styles = StyleSheet.create(theme => {
|
|
|
155
181
|
fontSize: theme.typography.variants[TEXT_VARIANT.lg].fontSize
|
|
156
182
|
}
|
|
157
183
|
},
|
|
158
|
-
focused: {
|
|
159
|
-
true: {},
|
|
160
|
-
false: {}
|
|
161
|
-
},
|
|
162
184
|
invalid: {
|
|
163
185
|
true: {},
|
|
164
186
|
false: {}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["forwardRef","
|
|
1
|
+
{"version":3,"names":["forwardRef","StyleSheet","useUnistyles","resolveThemeColor","FONT_WEIGHT_VALUE","SYSTEM_FONT","useFocusState","jsx","_jsx","jsxs","_jsxs","FIELD_HEIGHT","sm","md","lg","TEXT_VARIANT","InputField","size","isDisabled","isInvalid","focusBorderColor","focusBorderWidth","hasFocusGlow","leading","trailing","background","radius","style","onFocus","onBlur","rest","ref","isFocused","handleFocus","handleBlur","showsFocus","theme","_styles","styles","useVariants","disabled","invalid","View","container","fill","focus","children","TextInput","editable","placeholderTextColor","color","input","maxFontSizeMultiplier","typography","variants","create","bodyWeight","fontWeight","bodyFont","fonts","isSystemBodyFont","flexDirection","alignItems","borderWidth","hairlineWidth","borderColor","height","paddingHorizontal","spacing","gap","true","false","opacity","uni__dependencies","width","hasGlow","focusColor","undefined","boxShadow","offsetX","offsetY","blurRadius","spreadDistance","backgroundColor","borderRadius","flex","paddingVertical","fontFamily","fontSize"],"sourceRoot":"../../../../../src","sources":["components/input/parts/InputField.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useEffect } from "react";
|
|
4
|
+
import Animated, { Easing, interpolate, useAnimatedStyle, useSharedValue, withTiming } from "react-native-reanimated";
|
|
5
|
+
import { StyleSheet, useUnistyles } from "react-native-unistyles";
|
|
6
|
+
import { resolveThemeColor } from "../../../../utils/resolve-theme-color.js";
|
|
7
|
+
import { Icon } from "../../../icon/index.js";
|
|
8
|
+
import { PressableOpacity } from "../../../pressable/index.js";
|
|
9
|
+
import { FIELD_HEIGHT } from "../../parts/InputField.js";
|
|
10
|
+
import { ICON_SIZE } from "./utils.js";
|
|
11
|
+
|
|
12
|
+
/** How long the button takes to slide in and the field to make room, in ms. */
|
|
13
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
14
|
+
const TRANSITION_MS = 250;
|
|
15
|
+
|
|
16
|
+
/** Scale the button grows from, so it pops in rather than only fading. */
|
|
17
|
+
const START_SCALE = 0.6;
|
|
18
|
+
|
|
19
|
+
/** The x runs a touch larger than the field's glyphs; it has a circle to itself. */
|
|
20
|
+
const GLYPH_EXTRA = 2;
|
|
21
|
+
/**
|
|
22
|
+
* A round button the height of the field, in a slot that opens and closes
|
|
23
|
+
* beside it. The slot stays mounted so it can animate out; while collapsed it
|
|
24
|
+
* is hidden from touch and from screen readers.
|
|
25
|
+
*/
|
|
26
|
+
export function SearchCancelButton({
|
|
27
|
+
isVisible,
|
|
28
|
+
size,
|
|
29
|
+
background,
|
|
30
|
+
accessibilityLabel,
|
|
31
|
+
onPress
|
|
32
|
+
}) {
|
|
33
|
+
// One progress value drives the slot's width, so the field (flex: 1) gives
|
|
34
|
+
// up its room frame by frame instead of jumping when the button appears.
|
|
35
|
+
const {
|
|
36
|
+
theme
|
|
37
|
+
} = useUnistyles();
|
|
38
|
+
const progress = useSharedValue(0);
|
|
39
|
+
const diameter = FIELD_HEIGHT[size];
|
|
40
|
+
// The gap lives inside the slot, so it opens with the button and the field
|
|
41
|
+
// sits flush to the edge when the button is gone.
|
|
42
|
+
const slotWidth = diameter + theme.spacing["2"];
|
|
43
|
+
useEffect(() => {
|
|
44
|
+
progress.value = withTiming(isVisible ? 1 : 0, {
|
|
45
|
+
duration: TRANSITION_MS,
|
|
46
|
+
easing: Easing.bezier(0.25, 0.1, 0.25, 1)
|
|
47
|
+
});
|
|
48
|
+
}, [isVisible, progress]);
|
|
49
|
+
const slotStyle = useAnimatedStyle(() => ({
|
|
50
|
+
width: progress.value * slotWidth,
|
|
51
|
+
opacity: progress.value,
|
|
52
|
+
transform: [{
|
|
53
|
+
scale: interpolate(progress.value, [0, 1], [START_SCALE, 1])
|
|
54
|
+
}]
|
|
55
|
+
}));
|
|
56
|
+
return /*#__PURE__*/_jsx(Animated.View, {
|
|
57
|
+
style: [styles.slot(isVisible), slotStyle],
|
|
58
|
+
accessibilityElementsHidden: !isVisible,
|
|
59
|
+
importantForAccessibility: isVisible ? "auto" : "no-hide-descendants",
|
|
60
|
+
children: /*#__PURE__*/_jsx(PressableOpacity, {
|
|
61
|
+
accessibilityLabel: accessibilityLabel,
|
|
62
|
+
accessibilityRole: "button",
|
|
63
|
+
onPress: onPress,
|
|
64
|
+
style: styles.button(diameter, background),
|
|
65
|
+
children: /*#__PURE__*/_jsx(Icon, {
|
|
66
|
+
name: "terra.x",
|
|
67
|
+
size: ICON_SIZE[size] + GLYPH_EXTRA,
|
|
68
|
+
color: "text.primary"
|
|
69
|
+
})
|
|
70
|
+
})
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
const styles = StyleSheet.create(theme => ({
|
|
74
|
+
slot: isVisible => ({
|
|
75
|
+
flexDirection: "row",
|
|
76
|
+
justifyContent: "flex-end",
|
|
77
|
+
overflow: "hidden",
|
|
78
|
+
pointerEvents: isVisible ? "auto" : "none"
|
|
79
|
+
}),
|
|
80
|
+
// A circle the height of the field, filled and edged to match it.
|
|
81
|
+
button: (diameter, background) => ({
|
|
82
|
+
width: diameter,
|
|
83
|
+
height: diameter,
|
|
84
|
+
borderRadius: diameter / 2,
|
|
85
|
+
alignItems: "center",
|
|
86
|
+
justifyContent: "center",
|
|
87
|
+
backgroundColor: resolveThemeColor(background, theme),
|
|
88
|
+
borderWidth: StyleSheet.hairlineWidth,
|
|
89
|
+
borderColor: theme.color["border.subtle"],
|
|
90
|
+
uni__dependencies: [0]
|
|
91
|
+
})
|
|
92
|
+
}));
|
|
93
|
+
//# sourceMappingURL=SearchCancelButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","Animated","Easing","interpolate","useAnimatedStyle","useSharedValue","withTiming","StyleSheet","useUnistyles","resolveThemeColor","Icon","PressableOpacity","FIELD_HEIGHT","ICON_SIZE","jsx","_jsx","TRANSITION_MS","START_SCALE","GLYPH_EXTRA","SearchCancelButton","isVisible","size","background","accessibilityLabel","onPress","theme","progress","diameter","slotWidth","spacing","value","duration","easing","bezier","slotStyle","width","opacity","transform","scale","View","style","styles","slot","accessibilityElementsHidden","importantForAccessibility","children","accessibilityRole","button","name","color","create","flexDirection","justifyContent","overflow","pointerEvents","height","borderRadius","alignItems","backgroundColor","borderWidth","hairlineWidth","borderColor","uni__dependencies"],"sourceRoot":"../../../../../../src","sources":["components/input/variants/SearchInput/SearchCancelButton.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Pressable } from "react-native-unistyles/components/native/Pressable";
|
|
4
|
+
import { StyleSheet } from "react-native-unistyles";
|
|
5
|
+
import { Icon } from "../../../icon/index.js";
|
|
6
|
+
import { ICON_SIZE } from "./utils.js";
|
|
7
|
+
|
|
8
|
+
/** Touch expansion around the button, in dp — it is smaller than a cell. */
|
|
9
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
|
+
const HIT_SLOP = 8;
|
|
11
|
+
|
|
12
|
+
/** The x as a share of its disc, so it reads inside the circle. */
|
|
13
|
+
const GLYPH_RATIO = 0.6;
|
|
14
|
+
|
|
15
|
+
/** Heavier than the icon default so the small glyph stays legible on the disc. */
|
|
16
|
+
const GLYPH_STROKE_WIDTH = 3.3;
|
|
17
|
+
/**
|
|
18
|
+
* A solid disc with an x, like iOS's `xmark.circle.fill`. Sized to the field's
|
|
19
|
+
* glyphs so it sits in the trailing slot without changing the row height.
|
|
20
|
+
*/
|
|
21
|
+
export function SearchClearButton({
|
|
22
|
+
size,
|
|
23
|
+
accessibilityLabel,
|
|
24
|
+
onPress
|
|
25
|
+
}) {
|
|
26
|
+
const diameter = ICON_SIZE[size];
|
|
27
|
+
return /*#__PURE__*/_jsx(Pressable, {
|
|
28
|
+
accessibilityLabel: accessibilityLabel,
|
|
29
|
+
accessibilityRole: "button",
|
|
30
|
+
hitSlop: HIT_SLOP,
|
|
31
|
+
onPress: onPress,
|
|
32
|
+
style: styles.disc(diameter),
|
|
33
|
+
children: /*#__PURE__*/_jsx(Icon, {
|
|
34
|
+
name: "terra.x",
|
|
35
|
+
size: Math.round(diameter * GLYPH_RATIO),
|
|
36
|
+
color: "text.inverse",
|
|
37
|
+
strokeWidth: GLYPH_STROKE_WIDTH
|
|
38
|
+
})
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
const styles = StyleSheet.create(theme => ({
|
|
42
|
+
disc: diameter => ({
|
|
43
|
+
width: diameter,
|
|
44
|
+
height: diameter,
|
|
45
|
+
borderRadius: diameter / 2,
|
|
46
|
+
alignItems: "center",
|
|
47
|
+
justifyContent: "center",
|
|
48
|
+
backgroundColor: theme.color["text.tertiary"],
|
|
49
|
+
uni__dependencies: [0]
|
|
50
|
+
})
|
|
51
|
+
}));
|
|
52
|
+
//# sourceMappingURL=SearchClearButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["StyleSheet","Icon","ICON_SIZE","jsx","_jsx","HIT_SLOP","GLYPH_RATIO","GLYPH_STROKE_WIDTH","SearchClearButton","size","accessibilityLabel","onPress","diameter","Pressable","accessibilityRole","hitSlop","style","styles","disc","children","name","Math","round","color","strokeWidth","create","theme","width","height","borderRadius","alignItems","justifyContent","backgroundColor","uni__dependencies"],"sourceRoot":"../../../../../../src","sources":["components/input/variants/SearchInput/SearchClearButton.tsx"],"mappings":";;;AAEA,SAASA,UAAU,QAAQ,wBAAwB;AAEnD,SAASC,IAAI;AAEb,SAASC,SAAS;;AAElB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AACA,MAAMC,QAAQ,GAAG,CAAC;;AAElB;AACA,MAAMC,WAAW,GAAG,GAAG;;AAEvB;AACA,MAAMC,kBAAkB,GAAG,GAAG;AAQ9B;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAAC;EAAEC,IAAI;EAAEC,kBAAkB;EAAEC;AAAgC,CAAC,EAAE;EAC/F,MAAMC,QAAQ,GAAGV,SAAS,CAACO,IAAI,CAAC;EAEhC,oBACEL,IAAA,CAACS,SAAS;IACRH,kBAAkB,EAAEA,kBAAmB;IACvCI,iBAAiB,EAAC,QAAQ;IAC1BC,OAAO,EAAEV,QAAS;IAClBM,OAAO,EAAEA,OAAQ;IACjBK,KAAK,EAAEC,MAAM,CAACC,IAAI,CAACN,QAAQ,CAAE;IAAAO,QAAA,eAE7Bf,IAAA,CAACH,IAAI;MACHmB,IAAI,EAAC,SAAS;MACdX,IAAI,EAAEY,IAAI,CAACC,KAAK,CAACV,QAAQ,GAAGN,WAAW,CAAE;MACzCiB,KAAK,EAAC,cAAc;MACpBC,WAAW,EAAEjB;IAAmB,CACjC;EAAC,CACO,CAAC;AAEhB;AAEA,MAAMU,MAAM,GAAGjB,UAAU,CAACyB,MAAM,CAAEC,KAAK,KAAM;EAC3CR,IAAI,EAAGN,QAAgB,KAAM;IAC3Be,KAAK,EAAEf,QAAQ;IACfgB,MAAM,EAAEhB,QAAQ;IAChBiB,YAAY,EAAEjB,QAAQ,GAAG,CAAC;IAC1BkB,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE,QAAQ;IACxBC,eAAe,EAAEN,KAAK,CAACH,KAAK,CAAC,eAAe,CAAC;IAAAU,iBAAA;EAC/C,CAAC;AACH,CAAC,CAAC,CAAC","ignoreList":[]}
|