@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.
Files changed (49) hide show
  1. package/CHANGELOG.md +36 -8
  2. package/lib/components/ErrorBounday.js.map +1 -1
  3. package/lib/components/Fallback.js +11 -11
  4. package/lib/components/Fallback.js.map +1 -1
  5. package/lib/components/InputToolBar/InputToolBar.d.ts +8 -0
  6. package/lib/components/InputToolBar/InputToolBar.js +219 -0
  7. package/lib/components/InputToolBar/InputToolBar.js.map +1 -0
  8. package/lib/components/InputToolBar/defaults.d.ts +14 -0
  9. package/lib/components/InputToolBar/defaults.js +60 -0
  10. package/lib/components/InputToolBar/defaults.js.map +1 -0
  11. package/lib/components/InputToolBar/index.d.ts +4 -0
  12. package/lib/components/InputToolBar/index.js +3 -0
  13. package/lib/components/InputToolBar/index.js.map +1 -0
  14. package/lib/components/InputToolBar/types.d.ts +153 -0
  15. package/lib/components/InputToolBar/types.js +2 -0
  16. package/lib/components/InputToolBar/types.js.map +1 -0
  17. package/lib/components/Layout/components/BottomTabBar.js +2 -2
  18. package/lib/components/Layout/components/BottomTabBar.js.map +1 -1
  19. package/lib/components/Layout/components/Sample.js.map +1 -1
  20. package/lib/components/ToastAlert.d.ts +1 -1
  21. package/lib/components/ToastAlert.js +2 -2
  22. package/lib/components/ToastAlert.js.map +1 -1
  23. package/lib/components/UnAuthenticatedComponent.js +1 -1
  24. package/lib/components/UnAuthenticatedComponent.js.map +1 -1
  25. package/lib/components/index.d.ts +1 -0
  26. package/lib/components/index.js +1 -0
  27. package/lib/components/index.js.map +1 -1
  28. package/lib/components/usePermissionAutoFetch.js +2 -3
  29. package/lib/components/usePermissionAutoFetch.js.map +1 -1
  30. package/lib/containers/layout/DrawerBottomNavigationConfig.d.ts +63 -303
  31. package/lib/containers/layout/DrawerConfig.d.ts +42 -206
  32. package/lib/containers/layout/ProLayout.js.map +1 -1
  33. package/lib/index.js.map +1 -1
  34. package/package.json +4 -4
  35. package/src/components/ErrorBounday.tsx +19 -19
  36. package/src/components/Fallback.tsx +54 -58
  37. package/src/components/InputToolBar/InputToolBar.tsx +666 -0
  38. package/src/components/InputToolBar/README.md +239 -0
  39. package/src/components/InputToolBar/defaults.ts +72 -0
  40. package/src/components/InputToolBar/index.ts +18 -0
  41. package/src/components/InputToolBar/types.ts +166 -0
  42. package/src/components/Layout/components/BottomTabBar.tsx +98 -99
  43. package/src/components/Layout/components/Sample.tsx +1 -1
  44. package/src/components/ToastAlert.tsx +11 -11
  45. package/src/components/UnAuthenticatedComponent.tsx +16 -26
  46. package/src/components/index.ts +1 -0
  47. package/src/components/usePermissionAutoFetch.tsx +4 -4
  48. package/src/containers/layout/ProLayout.tsx +1 -1
  49. 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
- - refactored app error handler for mobile ([556ba7c](https://github.com/CDEBase/admin-layout/commit/556ba7c8452c50cc0dc6e3a1552aea6523e77d7c))
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
- - trigger locationchange epic only on route change ([098a3d0](https://github.com/cdmbase/admin-layout/commit/098a3d092d562642c6adc7d20af1c8b7bfb9033d))
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
- - added toast for mobile ([ca38f5c](https://github.com/cdebase/admin-layout/commit/ca38f5c2c5ba16d3e512ad690bb80257d511c74a))
107
- - issue with toast for react navigation ([f2397cc](https://github.com/cdebase/admin-layout/commit/f2397cc433c1627e3af7ecc31ff949606bc9eac1))
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
- - added toast for mobile ([ca38f5c](https://github.com/cdmbase/admin-layout/commit/ca38f5c2c5ba16d3e512ad690bb80257d511c74a))
118
- - issue with toast for react navigation ([f2397cc](https://github.com/cdmbase/admin-layout/commit/f2397cc433c1627e3af7ecc31ff949606bc9eac1))
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
- - added toast for mobile ([ca38f5c](https://github.com/cdmbase/admin-layout/commit/ca38f5c2c5ba16d3e512ad690bb80257d511c74a))
125
- - issue with toast for react navigation ([f2397cc](https://github.com/cdmbase/admin-layout/commit/f2397cc433c1627e3af7ecc31ff949606bc9eac1))
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;IACxF,YAAY,KAAyB;QACnC,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,KAAK,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,wBAAwB,CAAC,KAAY;QAC1C,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACnC,CAAC;IAED,iBAAiB,CAAC,KAAY;QAC5B,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACrB,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACxB,OAAO,oBAAC,iBAAiB,IAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAc,GAAI,CAAC;QACjE,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC7B,CAAC;CACF"}
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, } from 'react-native';
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 }, 'There\'s an error'),
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("MainStack.Layout.Home") },
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,EAAC,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,OAAO,EACL,YAAY,EACZ,IAAI,EACJ,IAAI,GACL,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAIzC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAY,EAAE,EAAE;IAChD,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAC9B,OAAO,CACL,oBAAC,YAAY,IAAC,KAAK,EAAE,MAAM,CAAC,SAAS;QACnC,oBAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO;YACzB,oBAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,KAAK,YAAc;YACvC,oBAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,IAAG,mBAAmB,CAAQ;YAC1D,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;gBAC1F,oBAAC,UAAU,IAAC,KAAK,EAAE,MAAM,CAAC,UAAU,qBAA6B,CAC1D,CACJ,CACM,CAChB,CAAA;AACH,CAAC,CAAA;AAED,MAAM,MAAM,GAAQ,UAAU,CAAC,MAAM,CAAC;IACpC,SAAS,EAAE;QACT,eAAe,EAAE,SAAS;QAC1B,IAAI,EAAE,CAAC;QACP,cAAc,EAAE,QAAQ;KACzB;IACD,OAAO,EAAE;QACP,gBAAgB,EAAE,EAAE;KACrB;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,KAAK;QACjB,aAAa,EAAE,EAAE;QACjB,KAAK,EAAE,MAAM;KACd;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,KAAK;QACjB,KAAK,EAAE,MAAM;KACd;IACD,KAAK,EAAE;QACL,eAAe,EAAE,EAAE;KACpB;IACD,MAAM,EAAE;QACN,eAAe,EAAE,SAAS;QAC1B,YAAY,EAAE,EAAE;QAChB,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,EAAE;KACX;IACD,UAAU,EAAE;QACV,KAAK,EAAE,MAAM;QACb,UAAU,EAAE,KAAK;QACjB,SAAS,EAAE,QAAQ;KACpB;CACF,CAAC,CAAA"}
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,3 @@
1
+ export { InputToolBar } from './InputToolBar';
2
+ export { getDefaultLeftItems, getDefaultRightItems } from './defaults';
3
+ //# sourceMappingURL=index.js.map
@@ -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"}