@hzblj/kara-components 0.26.2 → 0.27.1
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 +32 -0
- package/lib/module/atoms/activity-indicator/activity-indicator.android.js +3 -4
- package/lib/module/atoms/activity-indicator/activity-indicator.android.js.map +1 -1
- package/lib/module/atoms/date-picker/date-picker.android.js +3 -4
- package/lib/module/atoms/date-picker/date-picker.android.js.map +1 -1
- package/lib/module/atoms/island/island.android.js +2 -6
- package/lib/module/atoms/island/island.android.js.map +1 -1
- package/lib/module/atoms/picker/picker.android.js +3 -4
- package/lib/module/atoms/picker/picker.android.js.map +1 -1
- package/lib/module/atoms/pressable/pressable.js +5 -4
- package/lib/module/atoms/pressable/pressable.js.map +1 -1
- package/lib/module/atoms/segmented-control/segmented-control.android.js +3 -4
- package/lib/module/atoms/segmented-control/segmented-control.android.js.map +1 -1
- package/lib/module/hooks/compose-host.js +27 -0
- package/lib/module/hooks/compose-host.js.map +1 -0
- package/lib/module/molecules/navigation-bar/bar-search-field.js +80 -0
- package/lib/module/molecules/navigation-bar/bar-search-field.js.map +1 -0
- package/lib/module/molecules/navigation-bar/navigation-bar.android.js +94 -22
- package/lib/module/molecules/navigation-bar/navigation-bar.android.js.map +1 -1
- package/lib/module/molecules/rn-list-item/rn-list-item.js +3 -2
- package/lib/module/molecules/rn-list-item/rn-list-item.js.map +1 -1
- package/lib/module/molecules/rn-tooltip/rn-tooltip.android.js +3 -4
- package/lib/module/molecules/rn-tooltip/rn-tooltip.android.js.map +1 -1
- package/lib/module/organisms/context-menu/context-menu.android.js +4 -5
- package/lib/module/organisms/context-menu/context-menu.android.js.map +1 -1
- package/lib/module/organisms/header/header-options.android.js +2 -6
- package/lib/module/organisms/header/header-options.android.js.map +1 -1
- package/lib/module/organisms/header/header-search-accessory.android.js +29 -2
- package/lib/module/organisms/header/header-search-accessory.android.js.map +1 -1
- package/lib/module/organisms/header/header-search-input.android.js +11 -51
- package/lib/module/organisms/header/header-search-input.android.js.map +1 -1
- package/lib/module/organisms/header/use-header-search.js +19 -11
- package/lib/module/organisms/header/use-header-search.js.map +1 -1
- package/lib/module/organisms/sheet/sheet.js +17 -1
- package/lib/module/organisms/sheet/sheet.js.map +1 -1
- package/lib/module/organisms/sheet/use-sheet-header.js +7 -1
- package/lib/module/organisms/sheet/use-sheet-header.js.map +1 -1
- package/lib/module/templates/screen/screen.android.js +3 -6
- package/lib/module/templates/screen/screen.android.js.map +1 -1
- package/lib/typescript/hooks/compose-host.d.ts +8 -0
- package/lib/typescript/molecules/navigation-bar/bar-search-field.d.ts +29 -0
- package/lib/typescript/molecules/navigation-bar/navigation-bar.types.d.ts +8 -6
- package/lib/typescript/organisms/header/header.types.d.ts +20 -10
- package/lib/typescript/organisms/header/use-header-search.d.ts +5 -3
- package/lib/typescript/organisms/sheet/sheet.types.d.ts +1 -1
- package/package.json +4 -4
- package/src/atoms/activity-indicator/activity-indicator.android.tsx +3 -6
- package/src/atoms/date-picker/date-picker.android.tsx +3 -12
- package/src/atoms/island/island.android.tsx +3 -7
- package/src/atoms/picker/picker.android.tsx +3 -3
- package/src/atoms/pressable/pressable.tsx +5 -7
- package/src/atoms/segmented-control/segmented-control.android.tsx +3 -6
- package/src/hooks/compose-host.tsx +20 -0
- package/src/molecules/navigation-bar/bar-search-field.tsx +94 -0
- package/src/molecules/navigation-bar/navigation-bar.android.tsx +119 -19
- package/src/molecules/navigation-bar/navigation-bar.types.ts +8 -6
- package/src/molecules/rn-list-item/rn-list-item.tsx +2 -1
- package/src/molecules/rn-tooltip/rn-tooltip.android.tsx +4 -3
- package/src/organisms/context-menu/context-menu.android.tsx +5 -9
- package/src/organisms/header/header-options.android.tsx +3 -7
- package/src/organisms/header/header-search-accessory.android.tsx +37 -3
- package/src/organisms/header/header-search-input.android.tsx +14 -53
- package/src/organisms/header/header.types.ts +20 -10
- package/src/organisms/header/use-header-search.tsx +18 -10
- package/src/organisms/sheet/sheet.tsx +19 -2
- package/src/organisms/sheet/sheet.types.ts +1 -1
- package/src/organisms/sheet/use-sheet-header.tsx +7 -1
- package/src/templates/screen/screen.android.tsx +4 -7
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { iconResourceName } from '@hzblj/expo-native-icons';
|
|
4
|
+
import { GLYPHS } from '@hzblj/kara-native';
|
|
4
5
|
import { TopAppBar } from '@hzblj/kara-native/jetpack-compose';
|
|
5
6
|
import { useAppTheme } from '@hzblj/kara-theme';
|
|
6
|
-
import { useMemo } from 'react';
|
|
7
|
+
import { useCallback, useImperativeHandle, useMemo, useRef, useState } from 'react';
|
|
7
8
|
import { Island } from "../../atoms/island/index.js";
|
|
8
|
-
import {
|
|
9
|
+
import { BarSearchField, BarSearchRow } from "./bar-search-field.js";
|
|
10
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
11
|
/** Material's small top app bar. */
|
|
10
12
|
const BAR_HEIGHT = 64;
|
|
11
13
|
const DEFAULT_LABELS = {
|
|
12
14
|
back: 'Back',
|
|
13
|
-
close: 'Close'
|
|
15
|
+
close: 'Close',
|
|
16
|
+
search: 'Search'
|
|
14
17
|
};
|
|
18
|
+
const NO_ITEMS = [];
|
|
19
|
+
const ignoreDetachedView = () => undefined;
|
|
15
20
|
const toNativeItem = ({
|
|
16
21
|
onPress,
|
|
17
22
|
testID,
|
|
@@ -29,10 +34,15 @@ const toNativeItem = ({
|
|
|
29
34
|
type: item.type
|
|
30
35
|
};
|
|
31
36
|
|
|
32
|
-
/**
|
|
37
|
+
/**
|
|
38
|
+
* Material's top app bar in its own host. `search` is a field in a row under the bar (`stacked`), or a search item
|
|
39
|
+
* that grows into the field over the bar (`integratedButton`) and collapses back once the field is cancelled, cleared
|
|
40
|
+
* or left empty. `separated` has no Material counterpart.
|
|
41
|
+
*/
|
|
33
42
|
export const NavigationBar = ({
|
|
34
43
|
inverted = false,
|
|
35
44
|
leadingItems,
|
|
45
|
+
search,
|
|
36
46
|
testID,
|
|
37
47
|
title,
|
|
38
48
|
titleAlignment = 'center',
|
|
@@ -42,24 +52,86 @@ export const NavigationBar = ({
|
|
|
42
52
|
const theme = useAppTheme();
|
|
43
53
|
const font = theme.typography.headline;
|
|
44
54
|
const color = theme.color(inverted ? 'content.on.accent' : 'content.primary');
|
|
45
|
-
const
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
55
|
+
const fieldRef = useRef(null);
|
|
56
|
+
const echo = useRef(null);
|
|
57
|
+
const [searchActive, setSearchActive] = useState(false);
|
|
58
|
+
const integrated = search?.placement === 'integratedButton';
|
|
59
|
+
const buttonPlacement = search?.buttonPlacement ?? 'trailing';
|
|
60
|
+
const onChangeText = search?.onChangeText;
|
|
61
|
+
const onFocusChange = search?.onFocusChange;
|
|
62
|
+
const searchItem = useMemo(() => integrated ? {
|
|
63
|
+
iconName: search?.buttonIcon ? iconResourceName(search.buttonIcon) : GLYPHS.search.android,
|
|
64
|
+
label: search?.buttonLabel ?? DEFAULT_LABELS.search,
|
|
65
|
+
onPress: () => setSearchActive(true),
|
|
66
|
+
type: 'icon'
|
|
67
|
+
} : undefined, [integrated, search?.buttonIcon, search?.buttonLabel]);
|
|
68
|
+
const nativeLeadingItems = useMemo(() => {
|
|
69
|
+
const items = (leadingItems ?? NO_ITEMS).map(toNativeItem);
|
|
70
|
+
return searchItem && buttonPlacement === 'leading' ? [...items, searchItem] : items;
|
|
71
|
+
}, [buttonPlacement, leadingItems, searchItem]);
|
|
72
|
+
const nativeTrailingItems = useMemo(() => {
|
|
73
|
+
const items = (trailingItems ?? NO_ITEMS).map(toNativeItem);
|
|
74
|
+
return searchItem && buttonPlacement === 'trailing' ? [searchItem, ...items] : items;
|
|
75
|
+
}, [buttonPlacement, searchItem, trailingItems]);
|
|
76
|
+
const handleChangeText = useCallback(text => {
|
|
77
|
+
if (echo.current === text) {
|
|
78
|
+
echo.current = null;
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
onChangeText?.(text);
|
|
82
|
+
}, [onChangeText]);
|
|
83
|
+
const handleFocusChange = useCallback((focused, hasText) => {
|
|
84
|
+
onFocusChange?.(focused);
|
|
85
|
+
if (!focused && !hasText) {
|
|
86
|
+
setSearchActive(false);
|
|
87
|
+
}
|
|
88
|
+
}, [onFocusChange]);
|
|
89
|
+
useImperativeHandle(search?.ref, () => ({
|
|
90
|
+
clear: () => {
|
|
91
|
+
fieldRef.current?.clearQuery().catch(ignoreDetachedView);
|
|
92
|
+
fieldRef.current?.blurField().catch(ignoreDetachedView);
|
|
93
|
+
setSearchActive(false);
|
|
94
|
+
},
|
|
95
|
+
setText: text => {
|
|
96
|
+
echo.current = text;
|
|
97
|
+
fieldRef.current?.setQuery(text).catch(ignoreDetachedView);
|
|
98
|
+
}
|
|
99
|
+
}), []);
|
|
100
|
+
const field = search ? /*#__PURE__*/_jsx(BarSearchField, {
|
|
101
|
+
autoFocus: integrated,
|
|
102
|
+
cancelLabel: search.cancelLabel,
|
|
103
|
+
clearIcon: search.clearIcon,
|
|
104
|
+
onChangeText: handleChangeText,
|
|
105
|
+
onFocusChange: handleFocusChange,
|
|
106
|
+
placeholder: search.placeholder,
|
|
107
|
+
ref: fieldRef,
|
|
108
|
+
testID: search.testID,
|
|
109
|
+
voice: search.voice
|
|
110
|
+
}) : null;
|
|
111
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
112
|
+
children: [/*#__PURE__*/_jsx(Island, {
|
|
113
|
+
h: BAR_HEIGHT,
|
|
114
|
+
matchContents: false,
|
|
115
|
+
testID: testID,
|
|
116
|
+
w: "100%",
|
|
117
|
+
children: /*#__PURE__*/_jsx(TopAppBar, {
|
|
118
|
+
fontFamily: font.fontFamily,
|
|
119
|
+
fontSize: font.fontSize,
|
|
120
|
+
itemColor: color,
|
|
121
|
+
leadingItems: nativeLeadingItems,
|
|
122
|
+
searchActive: integrated && searchActive,
|
|
123
|
+
title: title,
|
|
124
|
+
titleAlignment: titleAlignment,
|
|
125
|
+
titleColor: color,
|
|
126
|
+
titleVisible: titleVisible,
|
|
127
|
+
trailingItems: nativeTrailingItems,
|
|
128
|
+
children: integrated ? /*#__PURE__*/_jsx(TopAppBar.Search, {
|
|
129
|
+
children: field
|
|
130
|
+
}) : null
|
|
131
|
+
})
|
|
132
|
+
}), search && !integrated ? /*#__PURE__*/_jsx(BarSearchRow, {
|
|
133
|
+
children: field
|
|
134
|
+
}) : null]
|
|
63
135
|
});
|
|
64
136
|
};
|
|
65
137
|
//# sourceMappingURL=navigation-bar.android.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["iconResourceName","TopAppBar","useAppTheme","useMemo","Island","jsx","_jsx","BAR_HEIGHT","DEFAULT_LABELS","back","close","toNativeItem","onPress","testID","item","type","iconName","icon","label","NavigationBar","inverted","leadingItems","title","titleAlignment","titleVisible","trailingItems","theme","font","typography","headline","color","nativeLeadingItems","map","nativeTrailingItems","
|
|
1
|
+
{"version":3,"names":["iconResourceName","GLYPHS","TopAppBar","useAppTheme","useCallback","useImperativeHandle","useMemo","useRef","useState","Island","BarSearchField","BarSearchRow","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","BAR_HEIGHT","DEFAULT_LABELS","back","close","search","NO_ITEMS","ignoreDetachedView","undefined","toNativeItem","onPress","testID","item","type","iconName","icon","label","NavigationBar","inverted","leadingItems","title","titleAlignment","titleVisible","trailingItems","theme","font","typography","headline","color","fieldRef","echo","searchActive","setSearchActive","integrated","placement","buttonPlacement","onChangeText","onFocusChange","searchItem","buttonIcon","android","buttonLabel","nativeLeadingItems","items","map","nativeTrailingItems","handleChangeText","text","current","handleFocusChange","focused","hasText","ref","clear","clearQuery","catch","blurField","setText","setQuery","field","autoFocus","cancelLabel","clearIcon","placeholder","voice","children","h","matchContents","w","fontFamily","fontSize","itemColor","titleColor","Search"],"sourceRoot":"../../../../src","sources":["molecules/navigation-bar/navigation-bar.android.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -25,9 +25,10 @@ export const RnListItem = ({
|
|
|
25
25
|
...accessibility
|
|
26
26
|
}, onPress ? 'button' : undefined);
|
|
27
27
|
const pressedColor = theme.color('fill.tertiary');
|
|
28
|
+
const rippleColor = theme.color('fill.ripple');
|
|
28
29
|
const ripple = useMemo(() => ({
|
|
29
|
-
color:
|
|
30
|
-
}), [
|
|
30
|
+
color: rippleColor
|
|
31
|
+
}), [rippleColor]);
|
|
31
32
|
const highlight = useMemo(() => Platform.OS === 'ios' ? ({
|
|
32
33
|
pressed
|
|
33
34
|
}) => pressed ? {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["accessibilityProps","useAppTheme","useMemo","Platform","Pressable","Box","RnGlyph","RnIcon","RnText","jsx","_jsx","jsxs","_jsxs","RnListItem","icon","onPress","px","subtitle","testID","title","accessibility","theme","a11y","accessible","undefined","pressedColor","color","ripple","highlight","OS","pressed","backgroundColor","row","align","flexDirection","gap","py","children","name","size","flex","variant","android_ripple","style"],"sourceRoot":"../../../../src","sources":["molecules/rn-list-item/rn-list-item.tsx"],"mappings":";;AAAA,SAAQA,kBAAkB,QAAO,gBAAgB;AACjD,SAAQC,WAAW,QAAO,mBAAmB;AAC7C,SAAQC,OAAO,QAAO,OAAO;AAC7B,SAAQC,QAAQ,EAAEC,SAAS,QAAwC,cAAc;AAEjF,SAAQC,GAAG,QAAO,0BAAiB;AACnC,SAAQC,OAAO,QAAO,4BAAmB;AACzC,SAAQC,MAAM,QAAO,8BAAqB;AAC1C,SAAQC,MAAM,QAAO,8BAAqB;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAG1C,OAAO,MAAMC,UAA+B,GAAGA,CAAC;EAC9CC,IAAI;EACJC,OAAO;EACPC,EAAE;EACFC,QAAQ;EACRC,MAAM;EACNC,KAAK;EACL,GAAGC;AACY,CAAC,KAAK;EACrB,MAAMC,KAAK,GAAGpB,WAAW,CAAC,CAAC;EAC3B;EACA,MAAMqB,IAAI,GAAGtB,kBAAkB,CAAC;IAACuB,UAAU,EAAE,IAAI;IAAE,GAAGH;EAAa,CAAC,EAAEL,OAAO,GAAG,QAAQ,GAAGS,SAAS,CAAC;EACrG,MAAMC,YAAY,GAAGJ,KAAK,CAACK,KAAK,CAAC,eAAe,CAAC;
|
|
1
|
+
{"version":3,"names":["accessibilityProps","useAppTheme","useMemo","Platform","Pressable","Box","RnGlyph","RnIcon","RnText","jsx","_jsx","jsxs","_jsxs","RnListItem","icon","onPress","px","subtitle","testID","title","accessibility","theme","a11y","accessible","undefined","pressedColor","color","rippleColor","ripple","highlight","OS","pressed","backgroundColor","row","align","flexDirection","gap","py","children","name","size","flex","variant","android_ripple","style"],"sourceRoot":"../../../../src","sources":["molecules/rn-list-item/rn-list-item.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { Text as ComposeText,
|
|
3
|
+
import { Text as ComposeText, RNHostView, Row, TextButton } from '@expo/ui/jetpack-compose';
|
|
4
4
|
import { TooltipBox } from '@hzblj/kara-native/jetpack-compose';
|
|
5
5
|
import { useAppTheme } from '@hzblj/kara-theme';
|
|
6
6
|
import { Button } from "../../atoms/button/index.js";
|
|
7
|
+
import { ComposeHost } from "../../hooks/compose-host.js";
|
|
7
8
|
import { HostBoundary } from "../../hooks/host-context.js";
|
|
8
9
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
10
|
/** Material's rich tooltip width, in dp. */
|
|
@@ -50,10 +51,8 @@ export const RnTooltip = ({
|
|
|
50
51
|
visible
|
|
51
52
|
}) => {
|
|
52
53
|
const theme = useAppTheme();
|
|
53
|
-
return /*#__PURE__*/_jsx(
|
|
54
|
-
colorScheme: theme.dark ? 'dark' : 'light',
|
|
54
|
+
return /*#__PURE__*/_jsx(ComposeHost, {
|
|
55
55
|
matchContents: true,
|
|
56
|
-
seedColor: theme.materialSeed,
|
|
57
56
|
children: /*#__PURE__*/_jsx(HostBoundary, {
|
|
58
57
|
children: /*#__PURE__*/_jsxs(TooltipBox, {
|
|
59
58
|
actionsAlignment: actionsAlignment,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Text","ComposeText","
|
|
1
|
+
{"version":3,"names":["Text","ComposeText","RNHostView","Row","TextButton","TooltipBox","useAppTheme","Button","ComposeHost","HostBoundary","jsx","_jsx","jsxs","_jsxs","MAX_WIDTH","ACTIONS_ARRANGEMENT","spacedBy","TooltipActionButton","action","theme","variant","label","onPress","wide","onClick","children","color","colorString","style","typography","footnoteMedium","RnTooltip","actions","actionsAlignment","boundaryInsets","message","onDismiss","onShown","title","visible","matchContents","containerColor","isPresented","maxWidth","onDismissRequest","Title","subheadlineMedium","footnote","length","Action","horizontalArrangement","verticalAlignment","map"],"sourceRoot":"../../../../src","sources":["molecules/rn-tooltip/rn-tooltip.android.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { Text as ComposeText, DropdownMenu, DropdownMenuItem
|
|
3
|
+
import { Text as ComposeText, DropdownMenu, DropdownMenuItem } from '@expo/ui/jetpack-compose';
|
|
4
4
|
import { haptics } from '@hzblj/expo-rich-haptics';
|
|
5
5
|
import { useSx } from '@hzblj/kara-sx';
|
|
6
6
|
import { useAppTheme } from '@hzblj/kara-theme';
|
|
7
7
|
import { useCallback, useMemo, useRef, useState } from 'react';
|
|
8
8
|
import { Pressable, StyleSheet, View } from 'react-native';
|
|
9
9
|
import { Icon } from "../../atoms/icon/index.js";
|
|
10
|
+
import { ComposeHost } from "../../hooks/compose-host.js";
|
|
10
11
|
import { HostBoundary } from "../../hooks/host-context.js";
|
|
11
12
|
import { splitForRipple } from "../../utils/ripple-clip.js";
|
|
12
13
|
import { menuActionColor } from "../menu/menu-parts.js";
|
|
@@ -82,7 +83,7 @@ const ContextMenuRoot = ({
|
|
|
82
83
|
outer
|
|
83
84
|
} = useMemo(() => splitForRipple(resolved), [resolved]);
|
|
84
85
|
const ripple = useMemo(() => ({
|
|
85
|
-
color: theme.color('fill.
|
|
86
|
+
color: theme.color('fill.ripple')
|
|
86
87
|
}), [theme]);
|
|
87
88
|
const highlight = useMemo(() => ({
|
|
88
89
|
backgroundColor: theme.color('fill.tertiary')
|
|
@@ -114,10 +115,8 @@ const ContextMenuRoot = ({
|
|
|
114
115
|
children: [expanded ? /*#__PURE__*/_jsx(View, {
|
|
115
116
|
pointerEvents: "none",
|
|
116
117
|
style: [StyleSheet.absoluteFill, highlight]
|
|
117
|
-
}) : null, children, anchor ? /*#__PURE__*/_jsx(
|
|
118
|
-
colorScheme: theme.dark ? 'dark' : 'light',
|
|
118
|
+
}) : null, children, anchor ? /*#__PURE__*/_jsx(ComposeHost, {
|
|
119
119
|
pointerEvents: "none",
|
|
120
|
-
seedColor: theme.materialSeed,
|
|
121
120
|
style: [styles.anchor, {
|
|
122
121
|
left: anchor.x,
|
|
123
122
|
top: anchor.y
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Text","ComposeText","DropdownMenu","DropdownMenuItem","
|
|
1
|
+
{"version":3,"names":["Text","ComposeText","DropdownMenu","DropdownMenuItem","haptics","useSx","useAppTheme","useCallback","useMemo","useRef","useState","Pressable","StyleSheet","View","Icon","ComposeHost","HostBoundary","splitForRipple","menuActionColor","jsx","_jsx","jsxs","_jsxs","styles","create","anchor","height","position","width","MenuRow","action","onDismiss","theme","color","onClick","onPress","enabled","disabled","children","colorString","style","typography","body","label","icon","LeadingIcon","name","size","ContextMenuRoot","actions","testID","props","onOpenChange","_onOpenChange","onPreviewPress","_onPreviewPress","preloadedScreenId","_preloadedScreenId","preview","_preview","previewTransition","_previewTransition","sx","resolved","trigger","setAnchor","expanded","setExpanded","inner","outer","ripple","highlight","backgroundColor","open","event","pageX","pageY","nativeEvent","longPress","current","measure","_x","_y","_width","_height","left","top","x","y","dismiss","android_ripple","onLongPress","ref","pointerEvents","absoluteFill","onDismissRequest","Items","map","Exclusion","ContextMenu","Object","assign"],"sourceRoot":"../../../../src","sources":["organisms/context-menu/context-menu.android.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { Host } from '@expo/ui/jetpack-compose';
|
|
4
|
-
import { useAppTheme } from '@hzblj/kara-theme';
|
|
5
3
|
import { StyleSheet, View } from 'react-native';
|
|
6
4
|
import { ActivityIndicator } from "../../atoms/activity-indicator/index.js";
|
|
7
5
|
import { Button } from "../../atoms/button/index.js";
|
|
8
6
|
import { GlyphButton } from "../../atoms/glyph/index.js";
|
|
9
7
|
import { IconButton } from "../../atoms/icon-button/index.js";
|
|
8
|
+
import { ComposeHost } from "../../hooks/compose-host.js";
|
|
10
9
|
import { HostBoundary } from "../../hooks/host-context.js";
|
|
11
10
|
import { Menu } from "../menu/index.js";
|
|
12
11
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
@@ -37,11 +36,8 @@ const styles = StyleSheet.create({
|
|
|
37
36
|
const ActionHost = ({
|
|
38
37
|
children
|
|
39
38
|
}) => {
|
|
40
|
-
|
|
41
|
-
return /*#__PURE__*/_jsx(Host, {
|
|
42
|
-
colorScheme: theme.dark ? 'dark' : 'light',
|
|
39
|
+
return /*#__PURE__*/_jsx(ComposeHost, {
|
|
43
40
|
matchContents: true,
|
|
44
|
-
seedColor: theme.materialSeed,
|
|
45
41
|
children: /*#__PURE__*/_jsx(HostBoundary, {
|
|
46
42
|
children: children
|
|
47
43
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["StyleSheet","View","ActivityIndicator","Button","GlyphButton","IconButton","ComposeHost","HostBoundary","Menu","jsx","_jsx","DEFAULT_LABELS","back","close","styles","create","navigationRow","alignItems","flexDirection","marginStart","row","spinner","height","justifyContent","width","ActionHost","children","matchContents","toMenuActions","items","actions","item","type","nested","push","destructive","disabled","icon","label","onPress","HeaderActionView","action","accessibilityLabel","name","testID","loading","style","color","variant","wide","element","renderActions","isLeading","backHidden","canGoBack","map","index","key","isClose","placeClose","leadingActions","trailingActions","length","find","undefined","leading","trailing","filter","toHeaderOptions","params","options","headerBackVisible","headerLeft","headerRight"],"sourceRoot":"../../../../src","sources":["organisms/header/header-options.android.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
import { iconResourceName } from '@hzblj/expo-native-icons';
|
|
4
|
+
import { NavigationItemSearch } from '@hzblj/kara-native/jetpack-compose';
|
|
5
|
+
import { useAppTheme } from '@hzblj/kara-theme';
|
|
6
|
+
import { useMemo } from 'react';
|
|
7
|
+
import { headerColor } from "./header-color.js";
|
|
8
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
|
+
/**
|
|
10
|
+
* The toolbar search's glyphs and voice on Android (`integratedButton`): react-native-screens' `SearchView` belongs to
|
|
11
|
+
* the toolbar, so a zero-size native view in the screen's tree puts the microphone into its field and gives its X the
|
|
12
|
+
* bar's ripple and the app's clear glyph. The toolbar has no cancel glyph; back closes the search.
|
|
13
|
+
*/
|
|
14
|
+
export const HeaderSearchAccessory = ({
|
|
15
|
+
clearIcon,
|
|
16
|
+
voice
|
|
17
|
+
}) => {
|
|
18
|
+
const theme = useAppTheme();
|
|
19
|
+
const nativeVoice = useMemo(() => voice && {
|
|
20
|
+
...voice,
|
|
21
|
+
microphoneIconName: voice.microphoneIcon ? iconResourceName(voice.microphoneIcon) : undefined,
|
|
22
|
+
stopIconName: voice.stopIcon ? iconResourceName(voice.stopIcon) : undefined
|
|
23
|
+
}, [voice]);
|
|
24
|
+
const fieldClearIcon = voice?.clearIcon ?? clearIcon;
|
|
25
|
+
return /*#__PURE__*/_jsx(NavigationItemSearch, {
|
|
26
|
+
clearIconName: fieldClearIcon ? iconResourceName(fieldClearIcon) : undefined,
|
|
27
|
+
iconColor: voice?.color ?? headerColor(theme, 'content.primary'),
|
|
28
|
+
rippleColor: theme.color('fill.ripple'),
|
|
29
|
+
voice: nativeVoice
|
|
30
|
+
});
|
|
31
|
+
};
|
|
5
32
|
//# sourceMappingURL=header-search-accessory.android.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["HeaderSearchAccessory"],"sourceRoot":"../../../../src","sources":["organisms/header/header-search-accessory.android.tsx"],"mappings":";;
|
|
1
|
+
{"version":3,"names":["iconResourceName","NavigationItemSearch","useAppTheme","useMemo","headerColor","jsx","_jsx","HeaderSearchAccessory","clearIcon","voice","theme","nativeVoice","microphoneIconName","microphoneIcon","undefined","stopIconName","stopIcon","fieldClearIcon","clearIconName","iconColor","color","rippleColor"],"sourceRoot":"../../../../src","sources":["organisms/header/header-search-accessory.android.tsx"],"mappings":";;AAAA,SAAQA,gBAAgB,QAAO,0BAA0B;AACzD,SAAQC,oBAAoB,QAAO,oCAAoC;AACvE,SAAQC,WAAW,QAAO,mBAAmB;AAC7C,SAAQC,OAAO,QAAO,OAAO;AAE7B,SAAQC,WAAW,QAAO,mBAAgB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAG1C;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,qBAAqD,GAAGA,CAAC;EACpEC,SAAS;EACTC;AAC0B,CAAC,KAAK;EAChC,MAAMC,KAAK,GAAGR,WAAW,CAAC,CAAC;EAC3B,MAAMS,WAAW,GAAGR,OAAO,CACzB,MACEM,KAAK,IAAI;IACP,GAAGA,KAAK;IACRG,kBAAkB,EAAEH,KAAK,CAACI,cAAc,GAAGb,gBAAgB,CAACS,KAAK,CAACI,cAAc,CAAC,GAAGC,SAAS;IAC7FC,YAAY,EAAEN,KAAK,CAACO,QAAQ,GAAGhB,gBAAgB,CAACS,KAAK,CAACO,QAAQ,CAAC,GAAGF;EACpE,CAAC,EACH,CAACL,KAAK,CACR,CAAC;EACD,MAAMQ,cAAc,GAAGR,KAAK,EAAED,SAAS,IAAIA,SAAS;EAEpD,oBACEF,IAAA,CAACL,oBAAoB;IACnBiB,aAAa,EAAED,cAAc,GAAGjB,gBAAgB,CAACiB,cAAc,CAAC,GAAGH,SAAU;IAC7EK,SAAS,EAAEV,KAAK,EAAEW,KAAK,IAAIhB,WAAW,CAACM,KAAK,EAAE,iBAAiB,CAAE;IACjEW,WAAW,EAAEX,KAAK,CAACU,KAAK,CAAC,aAAa,CAAE;IACxCX,KAAK,EAAEE;EAAY,CACpB,CAAC;AAEN,CAAC","ignoreList":[]}
|
|
@@ -1,27 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { SearchField } from '@hzblj/kara-native/jetpack-compose';
|
|
6
|
-
import { useAppTheme } from '@hzblj/kara-theme';
|
|
7
|
-
import { useImperativeHandle, useMemo, useRef } from 'react';
|
|
8
|
-
import { StyleSheet, View } from 'react-native';
|
|
3
|
+
import { useImperativeHandle, useRef } from 'react';
|
|
4
|
+
import { BAR_SEARCH_ROW_HEIGHT, BarSearchField, BarSearchRow } from "../../molecules/navigation-bar/bar-search-field.js";
|
|
9
5
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
|
-
/** Material's search field is 56dp; the row adds 8dp above it and 12dp below, under the top app bar. */
|
|
11
|
-
const FIELD_HEIGHT = 56;
|
|
12
|
-
|
|
13
6
|
/** The row's height under the bar, for what is laid out below it (the scrim starts there). */
|
|
14
|
-
export const HEADER_SEARCH_ROW_HEIGHT =
|
|
15
|
-
const styles = StyleSheet.create({
|
|
16
|
-
field: {
|
|
17
|
-
height: FIELD_HEIGHT
|
|
18
|
-
},
|
|
19
|
-
row: {
|
|
20
|
-
paddingBottom: 12,
|
|
21
|
-
paddingHorizontal: 16,
|
|
22
|
-
paddingTop: 8
|
|
23
|
-
}
|
|
24
|
-
});
|
|
7
|
+
export const HEADER_SEARCH_ROW_HEIGHT = BAR_SEARCH_ROW_HEIGHT;
|
|
25
8
|
const ignoreDetachedView = () => undefined;
|
|
26
9
|
export const HeaderSearchInput = ({
|
|
27
10
|
clearIcon,
|
|
@@ -31,9 +14,7 @@ export const HeaderSearchInput = ({
|
|
|
31
14
|
ref,
|
|
32
15
|
voice
|
|
33
16
|
}) => {
|
|
34
|
-
const theme = useAppTheme();
|
|
35
17
|
const fieldRef = useRef(null);
|
|
36
|
-
const face = theme.typography.body;
|
|
37
18
|
useImperativeHandle(ref, () => ({
|
|
38
19
|
blur: () => {
|
|
39
20
|
fieldRef.current?.blurField().catch(ignoreDetachedView);
|
|
@@ -45,35 +26,14 @@ export const HeaderSearchInput = ({
|
|
|
45
26
|
fieldRef.current?.setQuery(text).catch(ignoreDetachedView);
|
|
46
27
|
}
|
|
47
28
|
}), []);
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
children: /*#__PURE__*/_jsx(Host, {
|
|
57
|
-
colorScheme: theme.dark ? 'dark' : 'light',
|
|
58
|
-
ignoreSafeAreaKeyboardInsets: true,
|
|
59
|
-
seedColor: theme.materialSeed,
|
|
60
|
-
style: styles.field,
|
|
61
|
-
children: /*#__PURE__*/_jsx(SearchField, {
|
|
62
|
-
cancelLabel: "Cancel",
|
|
63
|
-
clearIconName: fieldClearIcon ? iconResourceName(fieldClearIcon) : undefined,
|
|
64
|
-
clearLabel: voice?.clearLabel ?? 'Clear',
|
|
65
|
-
containerColor: theme.color('fill.quaternary'),
|
|
66
|
-
fontFamily: face.fontFamily,
|
|
67
|
-
fontSize: face.fontSize,
|
|
68
|
-
iconColor: theme.color('content.secondary'),
|
|
69
|
-
onFocusChange: onFocusChange,
|
|
70
|
-
onQueryChange: onChangeText,
|
|
71
|
-
placeholder: placeholder,
|
|
72
|
-
placeholderColor: theme.color('content.tertiary'),
|
|
73
|
-
ref: fieldRef,
|
|
74
|
-
textColor: theme.color('content.primary'),
|
|
75
|
-
voice: nativeVoice
|
|
76
|
-
})
|
|
29
|
+
return /*#__PURE__*/_jsx(BarSearchRow, {
|
|
30
|
+
children: /*#__PURE__*/_jsx(BarSearchField, {
|
|
31
|
+
clearIcon: clearIcon,
|
|
32
|
+
onChangeText: onChangeText,
|
|
33
|
+
onFocusChange: onFocusChange,
|
|
34
|
+
placeholder: placeholder,
|
|
35
|
+
ref: fieldRef,
|
|
36
|
+
voice: voice
|
|
77
37
|
})
|
|
78
38
|
});
|
|
79
39
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["useImperativeHandle","useRef","BAR_SEARCH_ROW_HEIGHT","BarSearchField","BarSearchRow","jsx","_jsx","HEADER_SEARCH_ROW_HEIGHT","ignoreDetachedView","undefined","HeaderSearchInput","clearIcon","onChangeText","onFocusChange","placeholder","ref","voice","fieldRef","blur","current","blurField","catch","clear","clearQuery","setText","text","setQuery","children"],"sourceRoot":"../../../../src","sources":["organisms/header/header-search-input.android.tsx"],"mappings":";;AACA,SAAQA,mBAAmB,EAAEC,MAAM,QAAO,OAAO;AAEjD,SAAQC,qBAAqB,EAAEC,cAAc,EAAEC,YAAY,QAAO,oDAAiD;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAGnH;AACA,OAAO,MAAMC,wBAAwB,GAAGL,qBAAqB;AAE7D,MAAMM,kBAAkB,GAAGA,CAAA,KAAMC,SAAS;AAE1C,OAAO,MAAMC,iBAA6C,GAAGA,CAAC;EAC5DC,SAAS;EACTC,YAAY;EACZC,aAAa;EACbC,WAAW;EACXC,GAAG;EACHC;AACsB,CAAC,KAAK;EAC5B,MAAMC,QAAQ,GAAGhB,MAAM,CAAiB,IAAI,CAAC;EAE7CD,mBAAmB,CACjBe,GAAG,EACH,OAAO;IACLG,IAAI,EAAEA,CAAA,KAAM;MACVD,QAAQ,CAACE,OAAO,EAAEC,SAAS,CAAC,CAAC,CAACC,KAAK,CAACb,kBAAkB,CAAC;IACzD,CAAC;IACDc,KAAK,EAAEA,CAAA,KAAM;MACXL,QAAQ,CAACE,OAAO,EAAEI,UAAU,CAAC,CAAC,CAACF,KAAK,CAACb,kBAAkB,CAAC;IAC1D,CAAC;IACDgB,OAAO,EAAGC,IAAY,IAAK;MACzBR,QAAQ,CAACE,OAAO,EAAEO,QAAQ,CAACD,IAAI,CAAC,CAACJ,KAAK,CAACb,kBAAkB,CAAC;IAC5D;EACF,CAAC,CAAC,EACF,EACF,CAAC;EAED,oBACEF,IAAA,CAACF,YAAY;IAAAuB,QAAA,eACXrB,IAAA,CAACH,cAAc;MACbQ,SAAS,EAAEA,SAAU;MACrBC,YAAY,EAAEA,YAAa;MAC3BC,aAAa,EAAEA,aAAc;MAC7BC,WAAW,EAAEA,WAAY;MACzBC,GAAG,EAAEE,QAAS;MACdD,KAAK,EAAEA;IAAM,CACd;EAAC,CACU,CAAC;AAEnB,CAAC","ignoreList":[]}
|
|
@@ -23,9 +23,11 @@ const PLACEMENT_OPTIONS = {
|
|
|
23
23
|
/**
|
|
24
24
|
* A search field for a screen's header. iOS: UIKit's search bar stacked under the title, with the title and items kept
|
|
25
25
|
* and nothing dimmed by the system, so a list can filter live, or behind a search button in the bar's corner
|
|
26
|
-
* (`placement`); pass `searchBar` to `useHeader` as `search`. Android: Material's search field with its
|
|
27
|
-
* as a row for the screen to put right under the top app bar (`searchInput`)
|
|
28
|
-
*
|
|
26
|
+
* (`placement`); pass `searchBar` to `useHeader` as `search`. Android: `stacked` is Material's search field with its
|
|
27
|
+
* cancel button, as a row for the screen to put right under the top app bar (`searchInput`); `integratedButton` is the
|
|
28
|
+
* toolbar's own search, a magnifier in the bar's corner that expands over the title (`searchBar`, as on iOS). Both
|
|
29
|
+
* report the `query`; `scrim` washes the content out while the field is focused and empty and carries the header
|
|
30
|
+
* field's glyphs and voice.
|
|
29
31
|
*
|
|
30
32
|
* With `voice` the field has a microphone; the app runs the dictation and writes what it hears with `setText`. Typing
|
|
31
33
|
* over it, or ending the search, calls `voice.onCancel`.
|
|
@@ -45,6 +47,7 @@ export const useHeaderSearch = ({
|
|
|
45
47
|
const inputRef = useRef(null);
|
|
46
48
|
const lastSetText = useRef(null);
|
|
47
49
|
const voiceRef = useRef(voice);
|
|
50
|
+
const headerField = Platform.OS === 'ios' || placement === 'integratedButton';
|
|
48
51
|
voiceRef.current = voice;
|
|
49
52
|
const cancelVoice = useCallback(() => {
|
|
50
53
|
if (voiceRef.current?.listening) {
|
|
@@ -64,26 +67,31 @@ export const useHeaderSearch = ({
|
|
|
64
67
|
setFocused(false);
|
|
65
68
|
}, [cancelVoice]);
|
|
66
69
|
const searchBar = useMemo(() => {
|
|
67
|
-
if (!enabled ||
|
|
70
|
+
if (!enabled || !headerField) {
|
|
68
71
|
return undefined;
|
|
69
72
|
}
|
|
70
73
|
return {
|
|
71
74
|
...PLACEMENT_OPTIONS[placement],
|
|
72
75
|
autoCapitalize: 'none',
|
|
76
|
+
headerIconColor: headerColor(theme, 'content.primary'),
|
|
73
77
|
hideWhenScrolling: false,
|
|
78
|
+
hintTextColor: headerColor(theme, 'content.tertiary'),
|
|
74
79
|
obscureBackground: false,
|
|
75
80
|
onBlur: () => setFocused(false),
|
|
76
81
|
onCancelButtonPress: reset,
|
|
77
82
|
onChangeText: event => changeQuery(event.nativeEvent.text),
|
|
83
|
+
onClose: reset,
|
|
78
84
|
onFocus: () => setFocused(true),
|
|
85
|
+
onOpen: () => setFocused(true),
|
|
79
86
|
placeholder,
|
|
80
87
|
placement,
|
|
81
88
|
ref: searchBarRef,
|
|
89
|
+
textColor: Platform.OS === 'android' ? headerColor(theme, 'content.primary') : undefined,
|
|
82
90
|
tintColor: headerColor(theme, 'content.primary')
|
|
83
91
|
};
|
|
84
|
-
}, [changeQuery, enabled, placeholder, placement, reset, theme]);
|
|
92
|
+
}, [changeQuery, enabled, headerField, placeholder, placement, reset, theme]);
|
|
85
93
|
const searchInput = useMemo(() => {
|
|
86
|
-
if (!enabled ||
|
|
94
|
+
if (!enabled || headerField) {
|
|
87
95
|
return null;
|
|
88
96
|
}
|
|
89
97
|
return /*#__PURE__*/_jsx(HeaderSearchInput, {
|
|
@@ -94,7 +102,7 @@ export const useHeaderSearch = ({
|
|
|
94
102
|
ref: inputRef,
|
|
95
103
|
voice: voice
|
|
96
104
|
});
|
|
97
|
-
}, [changeQuery, clearIcon, enabled, placeholder, voice]);
|
|
105
|
+
}, [changeQuery, clearIcon, enabled, headerField, placeholder, voice]);
|
|
98
106
|
const clear = useCallback(() => {
|
|
99
107
|
reset();
|
|
100
108
|
searchBarRef.current?.cancelSearch();
|
|
@@ -115,14 +123,14 @@ export const useHeaderSearch = ({
|
|
|
115
123
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
116
124
|
children: [dimmed ? /*#__PURE__*/_jsx(HeaderSearchScrim, {
|
|
117
125
|
onPress: clear,
|
|
118
|
-
topOffset: HEADER_SEARCH_ROW_HEIGHT
|
|
119
|
-
}) : null, /*#__PURE__*/_jsx(HeaderSearchAccessory, {
|
|
126
|
+
topOffset: headerField ? 0 : HEADER_SEARCH_ROW_HEIGHT
|
|
127
|
+
}) : null, headerField ? /*#__PURE__*/_jsx(HeaderSearchAccessory, {
|
|
120
128
|
cancelIcon: cancelIcon,
|
|
121
129
|
clearIcon: clearIcon,
|
|
122
130
|
voice: voice
|
|
123
|
-
})]
|
|
131
|
+
}) : null]
|
|
124
132
|
});
|
|
125
|
-
}, [cancelIcon, clear, clearIcon, dimmed, enabled, voice]);
|
|
133
|
+
}, [cancelIcon, clear, clearIcon, dimmed, enabled, headerField, voice]);
|
|
126
134
|
return {
|
|
127
135
|
clear,
|
|
128
136
|
query,
|