@admin-layout/gluestack-ui-mobile 12.2.4-alpha.3 → 12.2.4-alpha.31
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 +36 -8
- package/lib/components/ErrorBounday.js.map +1 -1
- package/lib/components/Fallback.js +11 -11
- package/lib/components/Fallback.js.map +1 -1
- package/lib/components/InputToolBar/InputToolBar.d.ts +8 -0
- package/lib/components/InputToolBar/InputToolBar.js +219 -0
- package/lib/components/InputToolBar/InputToolBar.js.map +1 -0
- package/lib/components/InputToolBar/defaults.d.ts +14 -0
- package/lib/components/InputToolBar/defaults.js +60 -0
- package/lib/components/InputToolBar/defaults.js.map +1 -0
- package/lib/components/InputToolBar/index.d.ts +4 -0
- package/lib/components/InputToolBar/index.js +3 -0
- package/lib/components/InputToolBar/index.js.map +1 -0
- package/lib/components/InputToolBar/types.d.ts +153 -0
- package/lib/components/InputToolBar/types.js +2 -0
- package/lib/components/InputToolBar/types.js.map +1 -0
- package/lib/components/Layout/components/BottomTabBar.js +2 -2
- package/lib/components/Layout/components/BottomTabBar.js.map +1 -1
- package/lib/components/Layout/components/Sample.js.map +1 -1
- package/lib/components/ToastAlert.d.ts +1 -1
- package/lib/components/ToastAlert.js +2 -2
- package/lib/components/ToastAlert.js.map +1 -1
- package/lib/components/UnAuthenticatedComponent.js +1 -1
- package/lib/components/UnAuthenticatedComponent.js.map +1 -1
- package/lib/components/index.d.ts +1 -0
- package/lib/components/index.js +1 -0
- package/lib/components/index.js.map +1 -1
- package/lib/components/usePermissionAutoFetch.js +2 -3
- package/lib/components/usePermissionAutoFetch.js.map +1 -1
- package/lib/containers/layout/DrawerBottomNavigationConfig.d.ts +63 -303
- package/lib/containers/layout/DrawerConfig.d.ts +42 -206
- package/lib/containers/layout/ProLayout.js.map +1 -1
- package/lib/index.js.map +1 -1
- package/package.json +4 -4
- package/src/components/ErrorBounday.tsx +19 -19
- package/src/components/Fallback.tsx +54 -58
- package/src/components/InputToolBar/InputToolBar.tsx +666 -0
- package/src/components/InputToolBar/README.md +239 -0
- package/src/components/InputToolBar/defaults.ts +72 -0
- package/src/components/InputToolBar/index.ts +18 -0
- package/src/components/InputToolBar/types.ts +166 -0
- package/src/components/Layout/components/BottomTabBar.tsx +98 -99
- package/src/components/Layout/components/Sample.tsx +1 -1
- package/src/components/ToastAlert.tsx +11 -11
- package/src/components/UnAuthenticatedComponent.tsx +16 -26
- package/src/components/index.ts +1 -0
- package/src/components/usePermissionAutoFetch.tsx +4 -4
- package/src/containers/layout/ProLayout.tsx +1 -1
- package/src/index.ts +1 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,34 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [12.2.4-alpha.31](https://github.com/CDEBase/admin-layout/compare/v12.2.4-alpha.30...v12.2.4-alpha.31) (2026-04-15)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @admin-layout/gluestack-ui-mobile
|
|
9
|
+
|
|
10
|
+
## [12.2.4-alpha.27](https://github.com/CDEBase/admin-layout/compare/v12.2.4-alpha.26...v12.2.4-alpha.27) (2026-03-06)
|
|
11
|
+
|
|
12
|
+
**Note:** Version bump only for package @admin-layout/gluestack-ui-mobile
|
|
13
|
+
|
|
14
|
+
## [12.2.4-alpha.25](https://github.com/CDEBase/admin-layout/compare/v12.2.4-alpha.24...v12.2.4-alpha.25) (2026-03-02)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @admin-layout/gluestack-ui-mobile
|
|
17
|
+
|
|
18
|
+
## [12.2.4-alpha.12](https://github.com/CDEBase/admin-layout/compare/v12.2.4-alpha.11...v12.2.4-alpha.12) (2026-01-29)
|
|
19
|
+
|
|
20
|
+
**Note:** Version bump only for package @admin-layout/gluestack-ui-mobile
|
|
21
|
+
|
|
22
|
+
## [12.2.4-alpha.7](https://github.com/CDEBase/admin-layout/compare/v12.2.4-alpha.6...v12.2.4-alpha.7) (2026-01-07)
|
|
23
|
+
|
|
24
|
+
**Note:** Version bump only for package @admin-layout/gluestack-ui-mobile
|
|
25
|
+
|
|
26
|
+
## [12.2.4-alpha.6](https://github.com/CDEBase/admin-layout/compare/v12.2.4-alpha.5...v12.2.4-alpha.6) (2026-01-01)
|
|
27
|
+
|
|
28
|
+
**Note:** Version bump only for package @admin-layout/gluestack-ui-mobile
|
|
29
|
+
|
|
30
|
+
## [12.2.4-alpha.4](https://github.com/CDEBase/admin-layout/compare/v12.2.4-alpha.3...v12.2.4-alpha.4) (2026-01-01)
|
|
31
|
+
|
|
32
|
+
**Note:** Version bump only for package @admin-layout/gluestack-ui-mobile
|
|
33
|
+
|
|
6
34
|
## [12.2.4-alpha.3](https://github.com/CDEBase/admin-layout/compare/v12.2.4-alpha.2...v12.2.4-alpha.3) (2025-12-24)
|
|
7
35
|
|
|
8
36
|
**Note:** Version bump only for package @admin-layout/gluestack-ui-mobile
|
|
@@ -31,7 +59,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
31
59
|
|
|
32
60
|
### Bug Fixes
|
|
33
61
|
|
|
34
|
-
-
|
|
62
|
+
- refactored app error handler for mobile ([556ba7c](https://github.com/CDEBase/admin-layout/commit/556ba7c8452c50cc0dc6e3a1552aea6523e77d7c))
|
|
35
63
|
|
|
36
64
|
# [3.0.0-alpha.44](https://github.com/CDEBase/admin-layout/compare/v3.0.0-alpha.43...v3.0.0-alpha.44) (2023-02-04)
|
|
37
65
|
|
|
@@ -45,7 +73,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
45
73
|
|
|
46
74
|
### Bug Fixes
|
|
47
75
|
|
|
48
|
-
-
|
|
76
|
+
- trigger locationchange epic only on route change ([098a3d0](https://github.com/cdmbase/admin-layout/commit/098a3d092d562642c6adc7d20af1c8b7bfb9033d))
|
|
49
77
|
|
|
50
78
|
# [3.0.0-alpha.40](https://github.com/CDEBase/admin-layout/compare/v3.0.0-alpha.39...v3.0.0-alpha.40) (2023-01-26)
|
|
51
79
|
|
|
@@ -103,8 +131,8 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
103
131
|
|
|
104
132
|
### Bug Fixes
|
|
105
133
|
|
|
106
|
-
-
|
|
107
|
-
-
|
|
134
|
+
- added toast for mobile ([ca38f5c](https://github.com/cdebase/admin-layout/commit/ca38f5c2c5ba16d3e512ad690bb80257d511c74a))
|
|
135
|
+
- issue with toast for react navigation ([f2397cc](https://github.com/cdebase/admin-layout/commit/f2397cc433c1627e3af7ecc31ff949606bc9eac1))
|
|
108
136
|
|
|
109
137
|
# [3.0.0-alpha.3](https://github.com/cdmbase/admin-layout/compare/v3.0.0-alpha.2...v3.0.0-alpha.3) (2022-11-22)
|
|
110
138
|
|
|
@@ -114,12 +142,12 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
114
142
|
|
|
115
143
|
### Bug Fixes
|
|
116
144
|
|
|
117
|
-
-
|
|
118
|
-
-
|
|
145
|
+
- added toast for mobile ([ca38f5c](https://github.com/cdmbase/admin-layout/commit/ca38f5c2c5ba16d3e512ad690bb80257d511c74a))
|
|
146
|
+
- issue with toast for react navigation ([f2397cc](https://github.com/cdmbase/admin-layout/commit/f2397cc433c1627e3af7ecc31ff949606bc9eac1))
|
|
119
147
|
|
|
120
148
|
# 3.0.0-alpha.0 (2022-11-09)
|
|
121
149
|
|
|
122
150
|
### Bug Fixes
|
|
123
151
|
|
|
124
|
-
-
|
|
125
|
-
-
|
|
152
|
+
- added toast for mobile ([ca38f5c](https://github.com/cdmbase/admin-layout/commit/ca38f5c2c5ba16d3e512ad690bb80257d511c74a))
|
|
153
|
+
- issue with toast for react navigation ([f2397cc](https://github.com/cdmbase/admin-layout/commit/f2397cc433c1627e3af7ecc31ff949606bc9eac1))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ErrorBounday.js","sourceRoot":"","sources":["../../src/components/ErrorBounday.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuB,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAQ5C,MAAM,OAAO,aAAc,SAAQ,KAAK,CAAC,SAAiD;
|
|
1
|
+
{"version":3,"file":"ErrorBounday.js","sourceRoot":"","sources":["../../src/components/ErrorBounday.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuB,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAQ5C,MAAM,OAAO,aAAc,SAAQ,KAAK,CAAC,SAAiD;IACtF,YAAY,KAAyB;QACjC,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,KAAK,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAClD,CAAC;IAED,MAAM,CAAC,wBAAwB,CAAC,KAAY;QACxC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACrC,CAAC;IAED,iBAAiB,CAAC,KAAY;QAC1B,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IAED,MAAM;QACF,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACtB,OAAO,oBAAC,iBAAiB,IAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAc,GAAI,CAAC;QACnE,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC/B,CAAC;CACJ"}
|
|
@@ -2,51 +2,51 @@ import { navigationRef } from '@common-stack/client-react';
|
|
|
2
2
|
import { Button, ButtonText } from '@gluestack-ui/themed';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { StyleSheet } from 'react-native';
|
|
5
|
-
import { SafeAreaView, Text, View
|
|
5
|
+
import { SafeAreaView, Text, View } from 'react-native';
|
|
6
6
|
import { useDispatch } from 'react-redux';
|
|
7
7
|
export const FallbackComponent = (props) => {
|
|
8
8
|
const dispatch = useDispatch();
|
|
9
9
|
return (React.createElement(SafeAreaView, { style: styles.container },
|
|
10
10
|
React.createElement(View, { style: styles.content },
|
|
11
11
|
React.createElement(Text, { style: styles.title }, "Oops!"),
|
|
12
|
-
React.createElement(Text, { style: styles.subtitle },
|
|
12
|
+
React.createElement(Text, { style: styles.subtitle }, "There's an error"),
|
|
13
13
|
React.createElement(Text, { style: styles.error }, props?.error?.message),
|
|
14
|
-
React.createElement(Button, { style: styles.button, onPress: () => navigationRef.navigate(
|
|
14
|
+
React.createElement(Button, { style: styles.button, onPress: () => navigationRef.navigate('MainStack.Layout.Home') },
|
|
15
15
|
React.createElement(ButtonText, { style: styles.buttonText }, "Go to homepage")))));
|
|
16
16
|
};
|
|
17
17
|
const styles = StyleSheet.create({
|
|
18
18
|
container: {
|
|
19
19
|
backgroundColor: '#fafafa',
|
|
20
20
|
flex: 1,
|
|
21
|
-
justifyContent: 'center'
|
|
21
|
+
justifyContent: 'center',
|
|
22
22
|
},
|
|
23
23
|
content: {
|
|
24
|
-
marginHorizontal: 16
|
|
24
|
+
marginHorizontal: 16,
|
|
25
25
|
},
|
|
26
26
|
title: {
|
|
27
27
|
fontSize: 48,
|
|
28
28
|
fontWeight: '300',
|
|
29
29
|
paddingBottom: 16,
|
|
30
|
-
color: '#000'
|
|
30
|
+
color: '#000',
|
|
31
31
|
},
|
|
32
32
|
subtitle: {
|
|
33
33
|
fontSize: 32,
|
|
34
34
|
fontWeight: '800',
|
|
35
|
-
color: '#000'
|
|
35
|
+
color: '#000',
|
|
36
36
|
},
|
|
37
37
|
error: {
|
|
38
|
-
paddingVertical: 16
|
|
38
|
+
paddingVertical: 16,
|
|
39
39
|
},
|
|
40
40
|
button: {
|
|
41
41
|
backgroundColor: '#2196f3',
|
|
42
42
|
borderRadius: 50,
|
|
43
43
|
padding: 25,
|
|
44
|
-
height: 40
|
|
44
|
+
height: 40,
|
|
45
45
|
},
|
|
46
46
|
buttonText: {
|
|
47
47
|
color: '#fff',
|
|
48
48
|
fontWeight: '600',
|
|
49
|
-
textAlign: 'center'
|
|
50
|
-
}
|
|
49
|
+
textAlign: 'center',
|
|
50
|
+
},
|
|
51
51
|
});
|
|
52
52
|
//# sourceMappingURL=Fallback.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Fallback.js","sourceRoot":"","sources":["../../src/components/Fallback.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"Fallback.js","sourceRoot":"","sources":["../../src/components/Fallback.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI1C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAY,EAAE,EAAE;IAC9C,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,OAAO,CACH,oBAAC,YAAY,IAAC,KAAK,EAAE,MAAM,CAAC,SAAS;QACjC,oBAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO;YACvB,oBAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,KAAK,YAAc;YACvC,oBAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,IAAG,kBAAkB,CAAQ;YACzD,oBAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,KAAK,IAAG,KAAK,EAAE,KAAK,EAAE,OAAO,CAAQ;YACzD,oBAAC,MAAM,IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,uBAAuB,CAAC;gBACxF,oBAAC,UAAU,IAAC,KAAK,EAAE,MAAM,CAAC,UAAU,qBAA6B,CAC5D,CACN,CACI,CAClB,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,MAAM,GAAQ,UAAU,CAAC,MAAM,CAAC;IAClC,SAAS,EAAE;QACP,eAAe,EAAE,SAAS;QAC1B,IAAI,EAAE,CAAC;QACP,cAAc,EAAE,QAAQ;KAC3B;IACD,OAAO,EAAE;QACL,gBAAgB,EAAE,EAAE;KACvB;IACD,KAAK,EAAE;QACH,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,KAAK;QACjB,aAAa,EAAE,EAAE;QACjB,KAAK,EAAE,MAAM;KAChB;IACD,QAAQ,EAAE;QACN,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,KAAK;QACjB,KAAK,EAAE,MAAM;KAChB;IACD,KAAK,EAAE;QACH,eAAe,EAAE,EAAE;KACtB;IACD,MAAM,EAAE;QACJ,eAAe,EAAE,SAAS;QAC1B,YAAY,EAAE,EAAE;QAChB,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,EAAE;KACb;IACD,UAAU,EAAE;QACR,KAAK,EAAE,MAAM;QACb,UAAU,EAAE,KAAK;QACjB,SAAS,EAAE,QAAQ;KACtB;CACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { InputToolBarProps } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* InputToolBar – UI only. Renders toolbar and optional built-in textarea from props.
|
|
5
|
+
* All data (leftItems, rightItems, templateButton, inputConfig, micSendButton) and behavior (onClick, onChange, etc.) come from props.
|
|
6
|
+
*/
|
|
7
|
+
export declare function InputToolBar({ className, classNames, inputConfig, topContent, leftItems: leftItemsProp, rightItems: rightItemsProp, templateButton, templateModalConfig, templateModalRender, projectSettingsModalOpen, onProjectSettingsModalClose, projectSettingsModalRender, leftCustomRender, rightCustomRender, micSendButton, children, onContainerClick, }: InputToolBarProps): React.JSX.Element;
|
|
8
|
+
export default InputToolBar;
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
import React, { useMemo, useState } from 'react';
|
|
2
|
+
import { TextInput, Modal, ScrollView, Pressable, Text as RNText, Dimensions } from 'react-native';
|
|
3
|
+
import { Box, HStack, VStack, Text, Pressable as GluestackPressable } from '@gluestack-ui/themed';
|
|
4
|
+
import { Ionicons, Feather } from '@expo/vector-icons';
|
|
5
|
+
const iconSize = 14;
|
|
6
|
+
const iconSizeRight = 16;
|
|
7
|
+
const defaultLeftIconMap = {
|
|
8
|
+
search: React.createElement(Ionicons, { name: "search", size: iconSize, color: "currentColor" }),
|
|
9
|
+
zap: React.createElement(Ionicons, { name: "flash", size: iconSize, color: "currentColor" }),
|
|
10
|
+
lightbulb: React.createElement(Ionicons, { name: "bulb-outline", size: iconSize, color: "currentColor" }),
|
|
11
|
+
template: null,
|
|
12
|
+
};
|
|
13
|
+
const defaultRightIconMap = {
|
|
14
|
+
projectSettings: React.createElement(Ionicons, { name: "settings-outline", size: iconSizeRight, color: "currentColor" }),
|
|
15
|
+
tag: React.createElement(Ionicons, { name: "sparkles-outline", size: iconSizeRight, color: "currentColor" }),
|
|
16
|
+
chip: React.createElement(Ionicons, { name: "grid-outline", size: iconSizeRight, color: "currentColor" }),
|
|
17
|
+
camera: React.createElement(Ionicons, { name: "camera-outline", size: iconSizeRight, color: "currentColor" }),
|
|
18
|
+
image: React.createElement(Ionicons, { name: "image-outline", size: iconSizeRight, color: "currentColor" }),
|
|
19
|
+
attach: React.createElement(Ionicons, { name: "attach-outline", size: iconSizeRight, color: "currentColor" }),
|
|
20
|
+
mic: React.createElement(Ionicons, { name: "mic-outline", size: iconSizeRight, color: "currentColor" }),
|
|
21
|
+
};
|
|
22
|
+
function MicSendButton({ hasContent, onSend, onMic, disabled, isLoading, onStop, classNames, }) {
|
|
23
|
+
const isStop = isLoading === true;
|
|
24
|
+
const isSend = !isStop && hasContent;
|
|
25
|
+
const handlePress = isStop ? onStop : isSend ? onSend : onMic;
|
|
26
|
+
const label = isStop ? 'Stop' : isSend ? 'Send' : 'Start voice input';
|
|
27
|
+
return (React.createElement(GluestackPressable, { onPress: handlePress, disabled: disabled && !isStop, accessibilityLabel: label, accessibilityRole: "button", h: 28, w: 28, alignItems: "center", justifyContent: "center", rounded: "$2xl", bg: "$black", borderWidth: 1, borderColor: "$black" }, isStop ? (React.createElement(Ionicons, { name: "stop-circle", size: iconSizeRight, color: "white" })) : isSend ? (React.createElement(Feather, { name: "arrow-up-right", size: iconSizeRight, color: "white" })) : (React.createElement(Ionicons, { name: "mic", size: iconSizeRight, color: "white" }))));
|
|
28
|
+
}
|
|
29
|
+
function ToolbarIconButton({ item, getDefaultIcon, isLeftGroup, classNames, }) {
|
|
30
|
+
if (item.enabled === false)
|
|
31
|
+
return null;
|
|
32
|
+
const icon = item.customButton ?? item.icon ?? getDefaultIcon(item.id);
|
|
33
|
+
if (item.customButton) {
|
|
34
|
+
return React.createElement(React.Fragment, null, item.customButton);
|
|
35
|
+
}
|
|
36
|
+
const isDisabled = item.disabled === true || item.loading === true;
|
|
37
|
+
const isActive = item.active === true;
|
|
38
|
+
return (React.createElement(GluestackPressable, { onPress: item.onClick, disabled: isDisabled, accessibilityLabel: item.label, accessibilityRole: "button", h: 28, w: 28, alignItems: "center", justifyContent: "center", rounded: isLeftGroup ? '$full' : '$2xl', borderWidth: 1, bg: isLeftGroup ? (isActive ? '$black' : '$background100') : 'transparent', borderColor: isLeftGroup ? (isActive ? '$black' : '$outline200') : 'transparent' }, item.loading ? (React.createElement(Box, { h: 16, w: 16, rounded: "$full", borderWidth: 2, borderColor: "$primary500", borderTopColor: "transparent", style: { transform: [{ rotate: '0deg' }] } })) : isActive && isLeftGroup && React.isValidElement(icon) ? (React.cloneElement(icon, { color: 'white' })) : (icon)));
|
|
39
|
+
}
|
|
40
|
+
function LeftSection({ leftItems, leftCustomRender, classNames, }) {
|
|
41
|
+
if (leftCustomRender != null) {
|
|
42
|
+
return (React.createElement(HStack, { alignItems: "center", gap: "$2", flexWrap: "wrap" }, leftCustomRender));
|
|
43
|
+
}
|
|
44
|
+
const left = leftItems ?? [];
|
|
45
|
+
const leftEnabled = left.filter((item) => item.enabled !== false);
|
|
46
|
+
if (leftEnabled.length === 0)
|
|
47
|
+
return null;
|
|
48
|
+
return (React.createElement(HStack, { alignItems: "center", gap: "$1", rounded: "$full", bg: "$background200", px: "$2", py: "$1" }, leftEnabled.map((item, index) => (React.createElement(React.Fragment, { key: item.id },
|
|
49
|
+
React.createElement(ToolbarIconButton, { item: item, getDefaultIcon: (id) => defaultLeftIconMap[id] ?? null, isLeftGroup: true, classNames: classNames }),
|
|
50
|
+
index < leftEnabled.length - 1 && React.createElement(Box, { w: "$px", h: 20, bg: "$outline200", mx: "$1" }))))));
|
|
51
|
+
}
|
|
52
|
+
function TemplatePill({ label, count, selectedLabel, onClick, onClearTemplate, disabled, classNames, }) {
|
|
53
|
+
if (selectedLabel) {
|
|
54
|
+
return (React.createElement(HStack, { alignItems: "center", gap: "$1", px: "$2", py: "$1", rounded: "$full", bg: "$primary50", borderWidth: 1, borderColor: "$primary200" },
|
|
55
|
+
React.createElement(RNText, { className: "text-xs font-medium text-primary-600 truncate max-w-[120px]", numberOfLines: 1 }, selectedLabel),
|
|
56
|
+
React.createElement(GluestackPressable, { onPress: onClearTemplate, p: "$0.5", rounded: "$full", disabled: disabled, accessibilityLabel: "Remove template" },
|
|
57
|
+
React.createElement(Ionicons, { name: "close", size: 12, color: "currentColor" })),
|
|
58
|
+
React.createElement(GluestackPressable, { onPress: onClick, p: "$0.5", rounded: "$full", disabled: disabled, accessibilityLabel: "Change template" },
|
|
59
|
+
React.createElement(Text, { fontSize: 10 }, "\u25BC"))));
|
|
60
|
+
}
|
|
61
|
+
const text = count != null && count > 0 ? `${label} (${count})` : label;
|
|
62
|
+
return (React.createElement(GluestackPressable, { onPress: onClick, disabled: disabled, accessibilityLabel: "Select template", opacity: disabled ? 0.5 : 1 },
|
|
63
|
+
React.createElement(HStack, { alignItems: "center", gap: "$1", rounded: "$full", borderWidth: 1, borderColor: "$outline200", bg: "$background100", px: "$2", py: "$1" },
|
|
64
|
+
React.createElement(Text, { fontSize: "$xs", fontWeight: "$medium", color: "$textLight900" }, text))));
|
|
65
|
+
}
|
|
66
|
+
function RightSection({ rightItems, rightCustomRender, micSendButton, classNames, }) {
|
|
67
|
+
if (rightCustomRender != null) {
|
|
68
|
+
return (React.createElement(HStack, { alignItems: "center", gap: "$1" }, rightCustomRender));
|
|
69
|
+
}
|
|
70
|
+
const right = rightItems ?? [];
|
|
71
|
+
const rightEnabled = right.filter((item) => item.enabled !== false);
|
|
72
|
+
const filteredRight = micSendButton != null ? rightEnabled.filter((item) => item.id !== 'mic') : rightEnabled;
|
|
73
|
+
return (React.createElement(HStack, { alignItems: "center", gap: "$2", flexWrap: "nowrap" }, filteredRight.map((item) => (React.createElement(ToolbarIconButton, { key: item.id, item: item, getDefaultIcon: (id) => defaultRightIconMap[id] ?? null, classNames: classNames })))));
|
|
74
|
+
}
|
|
75
|
+
function DefaultTemplateModal({ isOpen, onClose, templates, selectedId, onSelect, suggestedId, title = 'Choose Template', }) {
|
|
76
|
+
const [searchQuery, setSearchQuery] = useState('');
|
|
77
|
+
const [categoryFilter, setCategoryFilter] = useState('All');
|
|
78
|
+
const categories = useMemo(() => {
|
|
79
|
+
const cats = new Set(templates.map((t) => t.category || 'Other'));
|
|
80
|
+
return ['All', ...Array.from(cats).sort()];
|
|
81
|
+
}, [templates]);
|
|
82
|
+
const filteredTemplates = useMemo(() => {
|
|
83
|
+
return templates.filter((template) => {
|
|
84
|
+
const searchLower = searchQuery.toLowerCase();
|
|
85
|
+
const matchesSearch = !searchQuery ||
|
|
86
|
+
template.label.toLowerCase().includes(searchLower) ||
|
|
87
|
+
(template.description || '').toLowerCase().includes(searchLower);
|
|
88
|
+
const matchesCategory = categoryFilter === 'All' || template.category === categoryFilter;
|
|
89
|
+
return matchesSearch && matchesCategory;
|
|
90
|
+
});
|
|
91
|
+
}, [templates, searchQuery, categoryFilter]);
|
|
92
|
+
if (!isOpen)
|
|
93
|
+
return null;
|
|
94
|
+
const modalMinHeight = Dimensions.get('window').height * 0.5;
|
|
95
|
+
return (React.createElement(Modal, { visible: isOpen, transparent: true, animationType: "fade" },
|
|
96
|
+
React.createElement(Pressable, { style: { flex: 1, justifyContent: 'center', alignItems: 'center', backgroundColor: 'rgba(0,0,0,0.5)' }, onPress: onClose },
|
|
97
|
+
React.createElement(Pressable, { style: {
|
|
98
|
+
width: '90%',
|
|
99
|
+
maxWidth: 720,
|
|
100
|
+
minHeight: modalMinHeight,
|
|
101
|
+
maxHeight: '80%',
|
|
102
|
+
backgroundColor: 'white',
|
|
103
|
+
borderRadius: 12,
|
|
104
|
+
overflow: 'hidden',
|
|
105
|
+
borderWidth: 1,
|
|
106
|
+
borderColor: '#e4e4e7',
|
|
107
|
+
shadowColor: '#000',
|
|
108
|
+
shadowOffset: { width: 0, height: 4 },
|
|
109
|
+
shadowOpacity: 0.15,
|
|
110
|
+
shadowRadius: 12,
|
|
111
|
+
elevation: 8,
|
|
112
|
+
}, onPress: () => { } },
|
|
113
|
+
React.createElement(VStack, { flex: 1, style: { minHeight: modalMinHeight } },
|
|
114
|
+
React.createElement(HStack, { h: 48, px: "$4", borderBottomWidth: 1, borderBottomColor: "#e4e4e7", alignItems: "center", justifyContent: "space-between" },
|
|
115
|
+
React.createElement(Text, { fontSize: "$sm", fontWeight: "$semibold", color: "$textLight900" }, title),
|
|
116
|
+
React.createElement(GluestackPressable, { onPress: onClose, p: "$1.5", rounded: "$lg", accessibilityLabel: "Close" },
|
|
117
|
+
React.createElement(Ionicons, { name: "close", size: 16, color: "#71717a" }))),
|
|
118
|
+
React.createElement(VStack, { p: "$4", borderBottomWidth: 1, borderBottomColor: "#e4e4e7", gap: "$3" },
|
|
119
|
+
React.createElement(Box, { position: "relative" },
|
|
120
|
+
React.createElement(Box, { position: "absolute", left: 12, top: "50%", style: { transform: [{ translateY: -8 }] } },
|
|
121
|
+
React.createElement(Ionicons, { name: "search", size: 16, color: "#71717a" })),
|
|
122
|
+
React.createElement(TextInput, { style: {
|
|
123
|
+
width: '100%',
|
|
124
|
+
paddingLeft: 36,
|
|
125
|
+
paddingRight: 12,
|
|
126
|
+
paddingVertical: 8,
|
|
127
|
+
borderWidth: 1,
|
|
128
|
+
borderColor: '#e4e4e7',
|
|
129
|
+
borderRadius: 8,
|
|
130
|
+
backgroundColor: '#f4f4f5',
|
|
131
|
+
fontSize: 14,
|
|
132
|
+
}, placeholder: "Search templates...", placeholderTextColor: "#71717a", value: searchQuery, onChangeText: setSearchQuery })),
|
|
133
|
+
React.createElement(HStack, { gap: "$1.5", flexWrap: "wrap" }, categories.map((category) => (React.createElement(GluestackPressable, { key: category, onPress: () => setCategoryFilter(category), px: "$2.5", py: "$1", rounded: "$md", borderWidth: 1, bg: categoryFilter === category ? '$primary50' : '$white', borderColor: categoryFilter === category ? '$primary200' : '#e4e4e7' },
|
|
134
|
+
React.createElement(Text, { fontSize: "$xs", fontWeight: "$medium", color: categoryFilter === category ? '$primary600' : '#71717a' }, category)))))),
|
|
135
|
+
React.createElement(Box, { flex: 1, p: "$4", style: { minHeight: 200 } }, filteredTemplates.length > 0 ? (React.createElement(ScrollView, { style: { flex: 1 }, contentContainerStyle: { paddingBottom: 16 }, showsVerticalScrollIndicator: false },
|
|
136
|
+
React.createElement(HStack, { flexWrap: "wrap", gap: "$3" }, filteredTemplates.map((template) => {
|
|
137
|
+
const isSelected = selectedId === template.id;
|
|
138
|
+
const isSuggested = suggestedId === template.id;
|
|
139
|
+
return (React.createElement(GluestackPressable, { key: template.id, onPress: () => {
|
|
140
|
+
onSelect(template.id);
|
|
141
|
+
onClose();
|
|
142
|
+
}, p: "$3", rounded: "$lg", borderWidth: 2, borderColor: isSelected
|
|
143
|
+
? '$primary500'
|
|
144
|
+
: isSuggested
|
|
145
|
+
? 'rgba(59, 130, 246, 0.3)'
|
|
146
|
+
: '#e4e4e7', bg: isSelected
|
|
147
|
+
? '$primary50'
|
|
148
|
+
: isSuggested
|
|
149
|
+
? 'rgba(59, 130, 246, 0.05)'
|
|
150
|
+
: 'transparent', style: { width: '48%' } },
|
|
151
|
+
React.createElement(HStack, { alignItems: "flex-start", gap: "$2" },
|
|
152
|
+
React.createElement(Box, { p: "$1.5", rounded: "$md", bg: isSelected
|
|
153
|
+
? '$primary500'
|
|
154
|
+
: isSuggested
|
|
155
|
+
? '$primary200'
|
|
156
|
+
: '$background200' },
|
|
157
|
+
React.createElement(Ionicons, { name: "grid-outline", size: 14, color: isSelected
|
|
158
|
+
? 'white'
|
|
159
|
+
: isSuggested
|
|
160
|
+
? '#3b82f6'
|
|
161
|
+
: '#18181b' })),
|
|
162
|
+
React.createElement(VStack, { flex: 1, style: { minWidth: 0 } },
|
|
163
|
+
React.createElement(HStack, { alignItems: "center", gap: "$1.5" },
|
|
164
|
+
React.createElement(Text, { fontSize: "$sm", fontWeight: "$medium", color: "$textLight900", numberOfLines: 1 }, template.label),
|
|
165
|
+
isSelected && (React.createElement(Ionicons, { name: "checkmark", size: 14, color: "#3b82f6" }))),
|
|
166
|
+
template.description && (React.createElement(Text, { fontSize: "$xs", color: "$textLight500", mt: "$0.5", numberOfLines: 2 }, template.description))))));
|
|
167
|
+
})))) : (React.createElement(VStack, { flex: 1, alignItems: "center", justifyContent: "center", py: "$12" },
|
|
168
|
+
React.createElement(Ionicons, { name: "search", size: 40, color: "#71717a", style: { marginBottom: 12 } }),
|
|
169
|
+
React.createElement(Text, { fontSize: "$sm", fontWeight: "$medium", color: "$textLight900" }, "No templates found"),
|
|
170
|
+
React.createElement(Text, { fontSize: "$xs", color: "$textLight500", mt: "$1" }, "Try adjusting search or filters")))))))));
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* InputToolBar – UI only. Renders toolbar and optional built-in textarea from props.
|
|
174
|
+
* All data (leftItems, rightItems, templateButton, inputConfig, micSendButton) and behavior (onClick, onChange, etc.) come from props.
|
|
175
|
+
*/
|
|
176
|
+
export function InputToolBar({ className, classNames, inputConfig, topContent, leftItems: leftItemsProp, rightItems: rightItemsProp, templateButton, templateModalConfig, templateModalRender, projectSettingsModalOpen, onProjectSettingsModalClose, projectSettingsModalRender, leftCustomRender, rightCustomRender, micSendButton, children, onContainerClick, }) {
|
|
177
|
+
const leftItems = leftItemsProp ?? [];
|
|
178
|
+
const rightItems = rightItemsProp ?? [];
|
|
179
|
+
const hasInputContent = inputConfig != null || children != null;
|
|
180
|
+
const effectiveTopContent = inputConfig != null ? topContent : null;
|
|
181
|
+
const templateModal = templateModalConfig != null && templateModalConfig.isOpen
|
|
182
|
+
? templateModalRender != null
|
|
183
|
+
? templateModalRender(templateModalConfig)
|
|
184
|
+
: React.createElement(DefaultTemplateModal, templateModalConfig)
|
|
185
|
+
: null;
|
|
186
|
+
const projectSettingsModal = projectSettingsModalOpen === true && onProjectSettingsModalClose != null && projectSettingsModalRender != null
|
|
187
|
+
? projectSettingsModalRender({ onClose: onProjectSettingsModalClose })
|
|
188
|
+
: null;
|
|
189
|
+
const containerContent = (React.createElement(Box, { w: "100%", overflow: "visible", rounded: "$3xl", bg: "$white", shadowColor: "$black", shadowOffset: { width: 0, height: 4 }, shadowOpacity: 0.08, shadowRadius: 12, elevation: 4 },
|
|
190
|
+
React.createElement(VStack, { px: "$3", py: "$2", gap: hasInputContent ? '$2' : '$3', flexDirection: hasInputContent ? 'column' : undefined },
|
|
191
|
+
hasInputContent && (React.createElement(VStack, { style: { minWidth: 0 }, gap: "$2" },
|
|
192
|
+
effectiveTopContent,
|
|
193
|
+
inputConfig != null ? (React.createElement(TextInput, { ref: inputConfig.inputRef, value: inputConfig.value, onChange: inputConfig.onChange, placeholder: inputConfig.placeholder ?? 'Ask anything...', placeholderTextColor: "#71717a", editable: !inputConfig.disabled, multiline: true, numberOfLines: 1, style: {
|
|
194
|
+
width: '100%',
|
|
195
|
+
minHeight: 44,
|
|
196
|
+
fontSize: 16,
|
|
197
|
+
color: '#18181b',
|
|
198
|
+
paddingVertical: 8,
|
|
199
|
+
paddingHorizontal: 0,
|
|
200
|
+
margin: 0,
|
|
201
|
+
maxHeight: 120,
|
|
202
|
+
textAlignVertical: 'top',
|
|
203
|
+
} })) : (children))),
|
|
204
|
+
React.createElement(VStack, { gap: "$2", pt: hasInputContent ? '$2' : 0 },
|
|
205
|
+
React.createElement(HStack, { flexWrap: "nowrap", alignItems: "center", gap: "$3", w: "100%" },
|
|
206
|
+
React.createElement(LeftSection, { leftItems: leftItems, leftCustomRender: leftCustomRender, classNames: classNames }),
|
|
207
|
+
React.createElement(Box, { flex: 1, style: { minWidth: 8 } }),
|
|
208
|
+
React.createElement(RightSection, { rightItems: rightItems, rightCustomRender: rightCustomRender, micSendButton: micSendButton, classNames: classNames }),
|
|
209
|
+
micSendButton != null && rightCustomRender == null && (React.createElement(Box, { style: { flexShrink: 0 }, ml: "$2" },
|
|
210
|
+
React.createElement(MicSendButton, { hasContent: micSendButton.hasContent, onSend: micSendButton.onSend, onMic: micSendButton.onMic, disabled: micSendButton.disabled, isLoading: micSendButton.isLoading, onStop: micSendButton.onStop, classNames: classNames })))),
|
|
211
|
+
templateButton != null && (React.createElement(HStack, { alignItems: "center", w: "100%" },
|
|
212
|
+
React.createElement(TemplatePill, { label: templateButton.label, count: templateButton.count, selectedLabel: templateButton.selectedLabel, onClick: templateButton.onClick, onClearTemplate: templateButton.onClearTemplate, disabled: templateButton.disabled, classNames: classNames })))))));
|
|
213
|
+
return (React.createElement(React.Fragment, null,
|
|
214
|
+
templateModal,
|
|
215
|
+
projectSettingsModal,
|
|
216
|
+
hasInputContent && onContainerClick ? (React.createElement(Pressable, { onPress: onContainerClick, style: { width: '100%' } }, containerContent)) : (containerContent)));
|
|
217
|
+
}
|
|
218
|
+
export default InputToolBar;
|
|
219
|
+
//# sourceMappingURL=InputToolBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InputToolBar.js","sourceRoot":"","sources":["../../../src/components/InputToolBar/InputToolBar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { LeftToolbarItemId, RightToolbarItemId, ToolbarItemConfig } from './types';
|
|
2
|
+
export type LeftItemOverrides = Partial<Record<LeftToolbarItemId, Partial<Omit<ToolbarItemConfig<LeftToolbarItemId>, 'id'>>>>;
|
|
3
|
+
export type RightItemOverrides = Partial<Record<RightToolbarItemId, Partial<Omit<ToolbarItemConfig<RightToolbarItemId>, 'id'>>>>;
|
|
4
|
+
/**
|
|
5
|
+
* Build default left toolbar items (search, zap, lightbulb). Omit or set enabled: false to hide.
|
|
6
|
+
* Override label, enabled, active, onClick, icon, customButton per id.
|
|
7
|
+
*/
|
|
8
|
+
export declare function getDefaultLeftItems(overrides?: LeftItemOverrides): ToolbarItemConfig<LeftToolbarItemId>[];
|
|
9
|
+
/**
|
|
10
|
+
* Build default right toolbar items (projectSettings, tag, chip, camera, image, attach, mic).
|
|
11
|
+
* projectSettings is disabled by default; pass projectSettings: { enabled: true, onClick } to show.
|
|
12
|
+
* Override label, enabled, disabled, loading, active, onClick, icon, customButton per id.
|
|
13
|
+
*/
|
|
14
|
+
export declare function getDefaultRightItems(overrides?: RightItemOverrides): ToolbarItemConfig<RightToolbarItemId>[];
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
const DEFAULT_LEFT_IDS = ['search', 'zap', 'lightbulb'];
|
|
2
|
+
const DEFAULT_RIGHT_IDS = ['projectSettings', 'tag', 'chip', 'camera', 'image', 'attach', 'mic'];
|
|
3
|
+
const DEFAULT_LEFT_LABELS = {
|
|
4
|
+
search: 'Chat mode',
|
|
5
|
+
zap: 'Deep Search',
|
|
6
|
+
lightbulb: 'Build mode',
|
|
7
|
+
template: 'Template',
|
|
8
|
+
};
|
|
9
|
+
const DEFAULT_RIGHT_LABELS = {
|
|
10
|
+
projectSettings: 'Project settings',
|
|
11
|
+
tag: 'Enhance your prompt with AI',
|
|
12
|
+
chip: 'Configure chat model',
|
|
13
|
+
camera: 'Capture image',
|
|
14
|
+
image: 'Insert image',
|
|
15
|
+
attach: 'Attach file',
|
|
16
|
+
mic: 'Mic / Send',
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Build default left toolbar items (search, zap, lightbulb). Omit or set enabled: false to hide.
|
|
20
|
+
* Override label, enabled, active, onClick, icon, customButton per id.
|
|
21
|
+
*/
|
|
22
|
+
export function getDefaultLeftItems(overrides) {
|
|
23
|
+
return DEFAULT_LEFT_IDS.map((id) => {
|
|
24
|
+
const o = overrides?.[id];
|
|
25
|
+
return {
|
|
26
|
+
id,
|
|
27
|
+
label: o?.label ?? DEFAULT_LEFT_LABELS[id],
|
|
28
|
+
enabled: o?.enabled ?? true,
|
|
29
|
+
disabled: o?.disabled,
|
|
30
|
+
loading: o?.loading,
|
|
31
|
+
active: o?.active,
|
|
32
|
+
onClick: o?.onClick,
|
|
33
|
+
icon: o?.icon,
|
|
34
|
+
customButton: o?.customButton,
|
|
35
|
+
};
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Build default right toolbar items (projectSettings, tag, chip, camera, image, attach, mic).
|
|
40
|
+
* projectSettings is disabled by default; pass projectSettings: { enabled: true, onClick } to show.
|
|
41
|
+
* Override label, enabled, disabled, loading, active, onClick, icon, customButton per id.
|
|
42
|
+
*/
|
|
43
|
+
export function getDefaultRightItems(overrides) {
|
|
44
|
+
return DEFAULT_RIGHT_IDS.map((id) => {
|
|
45
|
+
const o = overrides?.[id];
|
|
46
|
+
const defaultEnabled = id === 'projectSettings' ? false : true;
|
|
47
|
+
return {
|
|
48
|
+
id,
|
|
49
|
+
label: o?.label ?? DEFAULT_RIGHT_LABELS[id],
|
|
50
|
+
enabled: o?.enabled ?? defaultEnabled,
|
|
51
|
+
disabled: o?.disabled,
|
|
52
|
+
loading: o?.loading,
|
|
53
|
+
active: o?.active,
|
|
54
|
+
onClick: o?.onClick,
|
|
55
|
+
icon: o?.icon,
|
|
56
|
+
customButton: o?.customButton,
|
|
57
|
+
};
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=defaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/components/InputToolBar/defaults.ts"],"names":[],"mappings":"AAEA,MAAM,gBAAgB,GAAwB,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;AAC7E,MAAM,iBAAiB,GAAyB,CAAC,iBAAiB,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAEvH,MAAM,mBAAmB,GAAsC;IAC3D,MAAM,EAAE,WAAW;IACnB,GAAG,EAAE,aAAa;IAClB,SAAS,EAAE,YAAY;IACvB,QAAQ,EAAE,UAAU;CACvB,CAAC;AAEF,MAAM,oBAAoB,GAAuC;IAC7D,eAAe,EAAE,kBAAkB;IACnC,GAAG,EAAE,6BAA6B;IAClC,IAAI,EAAE,sBAAsB;IAC5B,MAAM,EAAE,eAAe;IACvB,KAAK,EAAE,cAAc;IACrB,MAAM,EAAE,aAAa;IACrB,GAAG,EAAE,YAAY;CACpB,CAAC;AASF;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,SAA6B;IAC7D,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QAC/B,MAAM,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;QAC1B,OAAO;YACH,EAAE;YACF,KAAK,EAAE,CAAC,EAAE,KAAK,IAAI,mBAAmB,CAAC,EAAE,CAAC;YAC1C,OAAO,EAAE,CAAC,EAAE,OAAO,IAAI,IAAI;YAC3B,QAAQ,EAAE,CAAC,EAAE,QAAQ;YACrB,OAAO,EAAE,CAAC,EAAE,OAAO;YACnB,MAAM,EAAE,CAAC,EAAE,MAAM;YACjB,OAAO,EAAE,CAAC,EAAE,OAAO;YACnB,IAAI,EAAE,CAAC,EAAE,IAAI;YACb,YAAY,EAAE,CAAC,EAAE,YAAY;SAChC,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAA8B;IAC/D,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QAChC,MAAM,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;QAC1B,MAAM,cAAc,GAAG,EAAE,KAAK,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/D,OAAO;YACH,EAAE;YACF,KAAK,EAAE,CAAC,EAAE,KAAK,IAAI,oBAAoB,CAAC,EAAE,CAAC;YAC3C,OAAO,EAAE,CAAC,EAAE,OAAO,IAAI,cAAc;YACrC,QAAQ,EAAE,CAAC,EAAE,QAAQ;YACrB,OAAO,EAAE,CAAC,EAAE,OAAO;YACnB,MAAM,EAAE,CAAC,EAAE,MAAM;YACjB,OAAO,EAAE,CAAC,EAAE,OAAO;YACnB,IAAI,EAAE,CAAC,EAAE,IAAI;YACb,YAAY,EAAE,CAAC,EAAE,YAAY;SAChC,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { InputToolBar } from './InputToolBar';
|
|
2
|
+
export { getDefaultLeftItems, getDefaultRightItems } from './defaults';
|
|
3
|
+
export type { InputConfig, InputToolBarClassNames, InputToolBarProps, LeftToolbarItemId, MicSendButtonConfig, ProjectSettingsModalRender, ProjectSettingsModalRenderProps, RightToolbarItemId, TemplateButtonConfig, TemplateModalConfig, TemplateModalItem, TemplateModalRender, ToolbarItemConfig, } from './types';
|
|
4
|
+
export type { LeftItemOverrides, RightItemOverrides } from './defaults';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/InputToolBar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC"}
|