convex-feedback-ui 0.1.5 → 0.1.7

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 (131) hide show
  1. package/README.md +143 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/native/expo/ExpoFeedbackBody.d.ts +1 -1
  4. package/dist/native/expo/ExpoFeedbackBody.d.ts.map +1 -1
  5. package/dist/native/expo/ExpoFeedbackBody.js +2 -2
  6. package/dist/native/expo/ExpoFeedbackBody.js.map +1 -1
  7. package/dist/native/expo/FeedbackCreateStackLayout.d.ts +3 -0
  8. package/dist/native/expo/FeedbackCreateStackLayout.d.ts.map +1 -0
  9. package/dist/native/expo/FeedbackCreateStackLayout.js +35 -0
  10. package/dist/native/expo/FeedbackCreateStackLayout.js.map +1 -0
  11. package/dist/native/expo/FeedbackRoutes.d.ts +4 -0
  12. package/dist/native/expo/FeedbackRoutes.d.ts.map +1 -0
  13. package/dist/native/expo/FeedbackRoutes.js +81 -0
  14. package/dist/native/expo/FeedbackRoutes.js.map +1 -0
  15. package/dist/native/expo/FeedbackScreen.d.ts +1 -1
  16. package/dist/native/expo/FeedbackScreen.d.ts.map +1 -1
  17. package/dist/native/expo/FeedbackScreen.js +2 -2
  18. package/dist/native/expo/FeedbackScreen.js.map +1 -1
  19. package/dist/native/expo/FeedbackStack.d.ts +1 -1
  20. package/dist/native/expo/FeedbackStack.d.ts.map +1 -1
  21. package/dist/native/expo/FeedbackStack.js +10 -5
  22. package/dist/native/expo/FeedbackStack.js.map +1 -1
  23. package/dist/native/expo/FeedbackStackLayout.d.ts +3 -0
  24. package/dist/native/expo/FeedbackStackLayout.d.ts.map +1 -0
  25. package/dist/native/expo/FeedbackStackLayout.js +54 -0
  26. package/dist/native/expo/FeedbackStackLayout.js.map +1 -0
  27. package/dist/native/expo/RoutedFeedbackContext.d.ts +4 -0
  28. package/dist/native/expo/RoutedFeedbackContext.d.ts.map +1 -0
  29. package/dist/native/expo/RoutedFeedbackContext.js +11 -0
  30. package/dist/native/expo/RoutedFeedbackContext.js.map +1 -0
  31. package/dist/native/expo/RoutedFeedbackModalContext.d.ts +7 -0
  32. package/dist/native/expo/RoutedFeedbackModalContext.d.ts.map +1 -0
  33. package/dist/native/expo/RoutedFeedbackModalContext.js +7 -0
  34. package/dist/native/expo/RoutedFeedbackModalContext.js.map +1 -0
  35. package/dist/native/expo/index.d.ts +4 -0
  36. package/dist/native/expo/index.d.ts.map +1 -1
  37. package/dist/native/expo/index.js +4 -0
  38. package/dist/native/expo/index.js.map +1 -1
  39. package/dist/native/expo/routes.d.ts +16 -0
  40. package/dist/native/expo/routes.d.ts.map +1 -0
  41. package/dist/native/expo/routes.js +23 -0
  42. package/dist/native/expo/routes.js.map +1 -0
  43. package/dist/native/expo/types.d.ts +53 -1
  44. package/dist/native/expo/types.d.ts.map +1 -1
  45. package/dist/native/native/FeedbackScreen.d.ts +1 -1
  46. package/dist/native/native/FeedbackScreen.d.ts.map +1 -1
  47. package/dist/native/native/FeedbackScreen.js +2 -2
  48. package/dist/native/native/FeedbackScreen.js.map +1 -1
  49. package/dist/native/shared/ui/BodyContent.d.ts +1 -1
  50. package/dist/native/shared/ui/BodyContent.d.ts.map +1 -1
  51. package/dist/native/shared/ui/BodyContent.js +2 -2
  52. package/dist/native/shared/ui/BodyContent.js.map +1 -1
  53. package/dist/native/shared/ui/Button.d.ts +2 -1
  54. package/dist/native/shared/ui/Button.d.ts.map +1 -1
  55. package/dist/native/shared/ui/Button.js +9 -4
  56. package/dist/native/shared/ui/Button.js.map +1 -1
  57. package/dist/native/shared/ui/FeedbackScreenHeader.d.ts.map +1 -1
  58. package/dist/native/shared/ui/FeedbackScreenHeader.js +8 -4
  59. package/dist/native/shared/ui/FeedbackScreenHeader.js.map +1 -1
  60. package/dist/native/shared/ui/FeedbackScreenList.d.ts +1 -1
  61. package/dist/native/shared/ui/FeedbackScreenList.d.ts.map +1 -1
  62. package/dist/native/shared/ui/FeedbackScreenList.js +18 -5
  63. package/dist/native/shared/ui/FeedbackScreenList.js.map +1 -1
  64. package/dist/native/shared/ui/NewEntry.d.ts +10 -0
  65. package/dist/native/shared/ui/NewEntry.d.ts.map +1 -1
  66. package/dist/native/shared/ui/NewEntry.js +7 -14
  67. package/dist/native/shared/ui/NewEntry.js.map +1 -1
  68. package/dist/native/shared/ui/primitives.d.ts +7 -1
  69. package/dist/native/shared/ui/primitives.d.ts.map +1 -1
  70. package/dist/native/shared/ui/primitives.js +38 -0
  71. package/dist/native/shared/ui/primitives.js.map +1 -1
  72. package/dist/react/primitives.d.ts +9 -1
  73. package/dist/react/primitives.d.ts.map +1 -1
  74. package/dist/react/primitives.js +12 -0
  75. package/dist/react/primitives.js.map +1 -1
  76. package/dist/react/screen.d.ts +1 -1
  77. package/dist/react/screen.d.ts.map +1 -1
  78. package/dist/react/screen.js +21 -10
  79. package/dist/react/screen.js.map +1 -1
  80. package/dist/react/styles.css +38 -1
  81. package/dist/shared/context/FeedbackBodyProvider.d.ts +1 -1
  82. package/dist/shared/context/FeedbackBodyProvider.d.ts.map +1 -1
  83. package/dist/shared/context/FeedbackBodyProvider.js +5 -1
  84. package/dist/shared/context/FeedbackBodyProvider.js.map +1 -1
  85. package/dist/shared/helpers.d.ts +5 -1
  86. package/dist/shared/helpers.d.ts.map +1 -1
  87. package/dist/shared/helpers.js +11 -0
  88. package/dist/shared/helpers.js.map +1 -1
  89. package/dist/shared/messages.d.ts.map +1 -1
  90. package/dist/shared/messages.js +1 -0
  91. package/dist/shared/messages.js.map +1 -1
  92. package/dist/shared/types/choice.d.ts +10 -0
  93. package/dist/shared/types/choice.d.ts.map +1 -0
  94. package/dist/shared/types/choice.js +2 -0
  95. package/dist/shared/types/choice.js.map +1 -0
  96. package/dist/shared/types/index.d.ts +1 -0
  97. package/dist/shared/types/index.d.ts.map +1 -1
  98. package/dist/shared/types/messages.d.ts +2 -0
  99. package/dist/shared/types/messages.d.ts.map +1 -1
  100. package/dist/shared/types/screen.d.ts +13 -2
  101. package/dist/shared/types/screen.d.ts.map +1 -1
  102. package/package.json +12 -8
  103. package/src/native/expo/ExpoFeedbackBody.tsx +6 -1
  104. package/src/native/expo/FeedbackCreateStackLayout.tsx +62 -0
  105. package/src/native/expo/FeedbackRoutes.tsx +238 -0
  106. package/src/native/expo/FeedbackScreen.tsx +2 -0
  107. package/src/native/expo/FeedbackStack.tsx +40 -5
  108. package/src/native/expo/FeedbackStackLayout.tsx +118 -0
  109. package/src/native/expo/README.md +24 -0
  110. package/src/native/expo/RoutedFeedbackContext.tsx +20 -0
  111. package/src/native/expo/RoutedFeedbackModalContext.tsx +14 -0
  112. package/src/native/expo/index.ts +4 -0
  113. package/src/native/expo/routes.ts +41 -0
  114. package/src/native/expo/types.ts +65 -1
  115. package/src/native/native/FeedbackScreen.tsx +2 -0
  116. package/src/native/shared/ui/BodyContent.tsx +2 -0
  117. package/src/native/shared/ui/Button.tsx +12 -3
  118. package/src/native/shared/ui/FeedbackScreenHeader.tsx +25 -4
  119. package/src/native/shared/ui/FeedbackScreenList.tsx +48 -8
  120. package/src/native/shared/ui/NewEntry.tsx +12 -30
  121. package/src/native/shared/ui/primitives.tsx +90 -0
  122. package/src/react/primitives.tsx +55 -0
  123. package/src/react/screen.tsx +67 -33
  124. package/src/react/styles.css +38 -1
  125. package/src/shared/context/FeedbackBodyProvider.tsx +6 -0
  126. package/src/shared/helpers.ts +21 -1
  127. package/src/shared/messages.ts +1 -0
  128. package/src/shared/types/choice.ts +10 -0
  129. package/src/shared/types/index.ts +1 -0
  130. package/src/shared/types/messages.ts +3 -0
  131. package/src/shared/types/screen.ts +15 -1
@@ -1,4 +1,4 @@
1
1
  import { type FeedbackScreenBodyProps } from "../../shared/types/index.js";
2
2
  import type { FeedbackScreenStackProps } from "./types.js";
3
- export declare function ExpoFeedbackBody({ useStack, StackOptions, ...props }: FeedbackScreenBodyProps & FeedbackScreenStackProps): import("react").JSX.Element;
3
+ export declare function ExpoFeedbackBody({ useStack, StackOptions, androidToolbarIcons, ...props }: FeedbackScreenBodyProps & FeedbackScreenStackProps): import("react").JSX.Element;
4
4
  //# sourceMappingURL=ExpoFeedbackBody.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExpoFeedbackBody.d.ts","sourceRoot":"","sources":["../../../src/native/expo/ExpoFeedbackBody.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAI3E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE3D,wBAAgB,gBAAgB,CAAC,EAC/B,QAAe,EACf,YAAY,EACZ,GAAG,KAAK,EACT,EAAE,uBAAuB,GAAG,wBAAwB,+BAiCpD"}
1
+ {"version":3,"file":"ExpoFeedbackBody.d.ts","sourceRoot":"","sources":["../../../src/native/expo/ExpoFeedbackBody.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAI3E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE3D,wBAAgB,gBAAgB,CAAC,EAC/B,QAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,GAAG,KAAK,EACT,EAAE,uBAAuB,GAAG,wBAAwB,+BAqCpD"}
@@ -4,7 +4,7 @@ import { useFeedbackBody } from "../../shared/context/FeedbackBodyProvider.js";
4
4
  import {} from "../../shared/types/index.js";
5
5
  import { FeedbackScreenContent } from "../shared/ui/BodyContent.js";
6
6
  import { FeedbackStack } from "./FeedbackStack.js";
7
- export function ExpoFeedbackBody({ useStack = true, StackOptions, ...props }) {
7
+ export function ExpoFeedbackBody({ useStack = true, StackOptions, androidToolbarIcons, ...props }) {
8
8
  const { query, isSearching, setIsSearching, setSelectedEntryId } = useFeedbackBody();
9
9
  const searchRef = useRef(null);
10
10
  const onEntryOpen = (entryId) => {
@@ -21,6 +21,6 @@ export function ExpoFeedbackBody({ useStack = true, StackOptions, ...props }) {
21
21
  }, [query, isSearching, setIsSearching]);
22
22
  if (!useStack)
23
23
  return _jsx(FeedbackScreenContent, { onEntryOpen: onEntryOpen, ...props });
24
- return (_jsx(FeedbackStack, { stackOptions: StackOptions, searchRef: searchRef, children: _jsx(FeedbackScreenContent, { hideBackButton: true, showHeader: false, onEntryOpen: onEntryOpen, ...props }) }));
24
+ return (_jsx(FeedbackStack, { stackOptions: StackOptions, searchRef: searchRef, androidToolbarIcons: androidToolbarIcons, children: _jsx(FeedbackScreenContent, { hideBackButton: true, showHeader: false, onEntryOpen: onEntryOpen, ...props }) }));
25
25
  }
26
26
  //# sourceMappingURL=ExpoFeedbackBody.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExpoFeedbackBody.js","sourceRoot":"","sources":["../../../src/native/expo/ExpoFeedbackBody.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAG1C,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,EAAgC,MAAM,6BAA6B,CAAC;AAE3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,MAAM,UAAU,gBAAgB,CAAC,EAC/B,QAAQ,GAAG,IAAI,EACf,YAAY,EACZ,GAAG,KAAK,EAC2C;IACnD,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAC9D,eAAe,EAAE,CAAC;IACpB,MAAM,SAAS,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAC;IAElD,MAAM,WAAW,GAAG,CAAC,OAAe,EAAE,EAAE;QACtC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK,IAAI,WAAW,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YAChD,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QAE1C,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;YAC9B,cAAc,CAAC,SAAS,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;IAEzC,IAAI,CAAC,QAAQ;QACX,OAAO,KAAC,qBAAqB,IAAC,WAAW,EAAE,WAAW,KAAM,KAAK,GAAI,CAAC;IAExE,OAAO,CACL,KAAC,aAAa,IAAC,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,YAC7D,KAAC,qBAAqB,IACpB,cAAc,QACd,UAAU,EAAE,KAAK,EACjB,WAAW,EAAE,WAAW,KACpB,KAAK,GACT,GACY,CACjB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ExpoFeedbackBody.js","sourceRoot":"","sources":["../../../src/native/expo/ExpoFeedbackBody.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAG1C,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,EAAgC,MAAM,6BAA6B,CAAC;AAE3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,MAAM,UAAU,gBAAgB,CAAC,EAC/B,QAAQ,GAAG,IAAI,EACf,YAAY,EACZ,mBAAmB,EACnB,GAAG,KAAK,EAC2C;IACnD,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAC9D,eAAe,EAAE,CAAC;IACpB,MAAM,SAAS,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAC;IAElD,MAAM,WAAW,GAAG,CAAC,OAAe,EAAE,EAAE;QACtC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK,IAAI,WAAW,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YAChD,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QAE1C,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;YAC9B,cAAc,CAAC,SAAS,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;IAEzC,IAAI,CAAC,QAAQ;QACX,OAAO,KAAC,qBAAqB,IAAC,WAAW,EAAE,WAAW,KAAM,KAAK,GAAI,CAAC;IAExE,OAAO,CACL,KAAC,aAAa,IACZ,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,mBAAmB,EAAE,mBAAmB,YAExC,KAAC,qBAAqB,IACpB,cAAc,QACd,UAAU,EAAE,KAAK,EACjB,WAAW,EAAE,WAAW,KACpB,KAAK,GACT,GACY,CACjB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { FeedbackCreateStackLayoutProps } from "./types.js";
2
+ export declare function FeedbackCreateStackLayout({ screenOptions, createOptions, entryOptions, }: FeedbackCreateStackLayoutProps): import("react").JSX.Element;
3
+ //# sourceMappingURL=FeedbackCreateStackLayout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeedbackCreateStackLayout.d.ts","sourceRoot":"","sources":["../../../src/native/expo/FeedbackCreateStackLayout.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,YAAY,CAAC;AAEjE,wBAAgB,yBAAyB,CAAC,EACxC,aAAa,EACb,aAAa,EACb,YAAY,GACb,EAAE,8BAA8B,+BA4ChC"}
@@ -0,0 +1,35 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Stack, useNavigation, } from "expo-router";
3
+ import { useCallback, useMemo } from "react";
4
+ import { useFeedbackBody } from "../../shared/context/FeedbackBodyProvider.js";
5
+ import { useFeedbackUi } from "../../shared/context/FeedbackProvider.js";
6
+ import { RoutedFeedbackModalProvider } from "./RoutedFeedbackModalContext.js";
7
+ import { useRoutedFeedback } from "./RoutedFeedbackContext.js";
8
+ export function FeedbackCreateStackLayout({ screenOptions, createOptions, entryOptions, }) {
9
+ const parentNavigation = useNavigation();
10
+ const { enabledKinds } = useFeedbackBody();
11
+ const { messages, theme } = useFeedbackUi();
12
+ const { routes } = useRoutedFeedback();
13
+ const dismiss = useCallback(() => parentNavigation.goBack(), [parentNavigation]);
14
+ const modal = useMemo(() => ({ dismiss }), [dismiss]);
15
+ const createTitle = enabledKinds.length === 1
16
+ ? messages.newFeedback[enabledKinds.at(0)]
17
+ : messages.board.createEntry;
18
+ const defaults = {
19
+ headerShown: true,
20
+ headerBackButtonDisplayMode: "minimal",
21
+ contentStyle: { backgroundColor: theme.colors.background },
22
+ };
23
+ return (_jsx(RoutedFeedbackModalProvider, { value: modal, children: _jsxs(Stack, { children: [_jsx(Stack.Screen, { name: "index", options: {
24
+ ...defaults,
25
+ headerTitle: createTitle,
26
+ ...screenOptions,
27
+ ...createOptions,
28
+ } }), _jsx(Stack.Screen, { name: routes.entry, options: {
29
+ ...defaults,
30
+ headerTitle: messages.board.title,
31
+ ...screenOptions,
32
+ ...entryOptions,
33
+ } })] }) }));
34
+ }
35
+ //# sourceMappingURL=FeedbackCreateStackLayout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeedbackCreateStackLayout.js","sourceRoot":"","sources":["../../../src/native/expo/FeedbackCreateStackLayout.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,KAAK,EACL,aAAa,GAEd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAE7C,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AACzE,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAG/D,MAAM,UAAU,yBAAyB,CAAC,EACxC,aAAa,EACb,aAAa,EACb,YAAY,GACmB;IAC/B,MAAM,gBAAgB,GAAG,aAAa,EAAE,CAAC;IACzC,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,EAAE,CAAC;IAC3C,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,aAAa,EAAE,CAAC;IAC5C,MAAM,EAAE,MAAM,EAAE,GAAG,iBAAiB,EAAE,CAAC;IACvC,MAAM,OAAO,GAAG,WAAW,CACzB,GAAG,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,EAC/B,CAAC,gBAAgB,CAAC,CACnB,CAAC;IACF,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACtD,MAAM,WAAW,GACf,YAAY,CAAC,MAAM,KAAK,CAAC;QACvB,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC;QAC3C,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC;IACjC,MAAM,QAAQ,GAAiC;QAC7C,WAAW,EAAE,IAAI;QACjB,2BAA2B,EAAE,SAAS;QACtC,YAAY,EAAE,EAAE,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE;KAC3D,CAAC;IAEF,OAAO,CACL,KAAC,2BAA2B,IAAC,KAAK,EAAE,KAAK,YACvC,MAAC,KAAK,eACJ,KAAC,KAAK,CAAC,MAAM,IACX,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE;wBACP,GAAG,QAAQ;wBACX,WAAW,EAAE,WAAW;wBACxB,GAAG,aAAa;wBAChB,GAAG,aAAa;qBACjB,GACD,EACF,KAAC,KAAK,CAAC,MAAM,IACX,IAAI,EAAE,MAAM,CAAC,KAAK,EAClB,OAAO,EAAE;wBACP,GAAG,QAAQ;wBACX,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK;wBACjC,GAAG,aAAa;wBAChB,GAAG,YAAY;qBAChB,GACD,IACI,GACoB,CAC/B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare function FeedbackBoardScreen(): import("react").JSX.Element;
2
+ export declare function FeedbackEntryScreen(): import("react").JSX.Element;
3
+ export declare function CreateFeedbackScreen(): import("react").JSX.Element;
4
+ //# sourceMappingURL=FeedbackRoutes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeedbackRoutes.d.ts","sourceRoot":"","sources":["../../../src/native/expo/FeedbackRoutes.tsx"],"names":[],"mappings":"AAgBA,wBAAgB,mBAAmB,gCA+GlC;AAED,wBAAgB,mBAAmB,gCAelC;AAyCD,wBAAgB,oBAAoB,gCAoDnC"}
@@ -0,0 +1,81 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { Stack, useLocalSearchParams, useRouter } from "expo-router";
3
+ import { useEffect, useRef, useState } from "react";
4
+ import { useFeedbackBody } from "../../shared/context/FeedbackBodyProvider.js";
5
+ import { useFeedbackUi } from "../../shared/context/FeedbackProvider.js";
6
+ import { createEntryLabel, entryStatusChoices } from "../../shared/helpers.js";
7
+ import { EntryDetail } from "../shared/ui/EntryDetail.js";
8
+ import { FeedbackScreenList } from "../shared/ui/FeedbackScreenList.js";
9
+ import { CreateEntryForm } from "../shared/ui/NewEntry.js";
10
+ import { FeedbackBoard } from "../shared/ui/primitives.js";
11
+ import { feedbackRouteHref } from "./routes.js";
12
+ import { useRoutedFeedbackModal } from "./RoutedFeedbackModalContext.js";
13
+ import { useRoutedFeedback } from "./RoutedFeedbackContext.js";
14
+ export function FeedbackBoardScreen() {
15
+ const { query, isSearching, setQuery, setIsSearching, enabledKinds, statusFilter, setStatusFilter, } = useFeedbackBody();
16
+ const { messages, theme } = useFeedbackUi();
17
+ const { routes, colors, androidToolbarIcons } = useRoutedFeedback();
18
+ const router = useRouter();
19
+ const searchRef = useRef(null);
20
+ useEffect(() => {
21
+ const searching = query.trim().length > 0;
22
+ if (searching !== isSearching)
23
+ setIsSearching(searching);
24
+ }, [query, isSearching, setIsSearching]);
25
+ const openEntry = (entryId) => {
26
+ if ((query || isSearching) && searchRef.current) {
27
+ searchRef.current.blur();
28
+ }
29
+ router.push(feedbackRouteHref(routes.entry, { entryId }), {
30
+ relativeToDirectory: true,
31
+ });
32
+ };
33
+ return (_jsxs(_Fragment, { children: [_jsx(FeedbackBoard.Root, { ...colors, children: _jsx(FeedbackScreenList, { showSelectedEntry: false, hideBackButton: true, onEntryOpen: openEntry, onCreateEntry: () => router.push(feedbackRouteHref(routes.create), {
34
+ relativeToDirectory: true,
35
+ }) }) }), _jsx(Stack.Toolbar, { placement: "right", children: _jsx(Stack.Toolbar.Button, { icon: process.env.EXPO_OS === "ios" ? "plus" : androidToolbarIcons.create, variant: "prominent", accessibilityLabel: createEntryLabel(enabledKinds, messages), onPress: () => router.push(feedbackRouteHref(routes.create), {
36
+ relativeToDirectory: true,
37
+ }), tintColor: theme.colors.primary, children: createEntryLabel(enabledKinds, messages) }) }), _jsx(Stack.Toolbar, { placement: "left", children: _jsx(Stack.Toolbar.Button, { hidden: !router.canGoBack(), icon: process.env.EXPO_OS === "ios"
38
+ ? "chevron.backward"
39
+ : androidToolbarIcons.back, accessibilityLabel: messages.entry.back, onPress: () => router.back(), children: messages.entry.back }) }), _jsx(Stack.SearchBar, { ref: searchRef, placeholder: messages.board.searchPlaceholder, onChangeText: (event) => setQuery(event.nativeEvent.text), onFocus: () => setIsSearching(true), onBlur: () => setIsSearching(query.trim().length > 0), obscureBackground: false, allowToolbarIntegration: true, hideNavigationBar: false, textColor: theme.colors.text }), _jsxs(Stack.Toolbar, { placement: "bottom", children: [_jsx(Stack.Toolbar.SearchBarSlot, {}), _jsx(Stack.Toolbar.Menu, { icon: process.env.EXPO_OS === "ios"
40
+ ? "line.3.horizontal.decrease"
41
+ : androidToolbarIcons.filter, title: messages.board.statusFilter, accessibilityLabel: messages.board.statusFilter, tintColor: theme.colors.primary, children: entryStatusChoices(messages).map(({ value, label }) => (_jsx(Stack.Toolbar.MenuAction, { isOn: statusFilter === value, onPress: () => setStatusFilter(value), children: label }, value))) })] })] }));
42
+ }
43
+ export function FeedbackEntryScreen() {
44
+ const params = useLocalSearchParams();
45
+ const entryId = Array.isArray(params.entryId)
46
+ ? params.entryId[0]
47
+ : params.entryId;
48
+ if (!entryId) {
49
+ throw new Error('FeedbackEntryScreen requires an "entryId" dynamic route parameter.');
50
+ }
51
+ return _jsx(FeedbackEntryRouteContent, { entryId: entryId });
52
+ }
53
+ function FeedbackEntryRouteContent({ entryId }) {
54
+ const { hooks } = useFeedbackBody();
55
+ const { messages, theme } = useFeedbackUi();
56
+ const { colors, androidToolbarIcons } = useRoutedFeedback();
57
+ const modal = useRoutedFeedbackModal();
58
+ const router = useRouter();
59
+ const entry = hooks.useEntry(entryId);
60
+ return (_jsxs(_Fragment, { children: [entry && _jsx(Stack.Screen, { options: { headerTitle: entry.title } }), _jsx(FeedbackBoard.Root, { ...colors, children: _jsx(FeedbackBoard.List, { style: { padding: theme.spacing }, children: _jsx(EntryDetail, { entryId: entryId, hideBackButton: true, onBack: () => router.back() }) }) }), modal && (_jsx(Stack.Toolbar, { placement: "right", children: _jsx(Stack.Toolbar.Button, { icon: process.env.EXPO_OS === "ios"
61
+ ? "xmark"
62
+ : androidToolbarIcons.close, accessibilityLabel: messages.form.cancel, onPress: modal.dismiss, children: messages.form.cancel }) }))] }));
63
+ }
64
+ export function CreateFeedbackScreen() {
65
+ const { enabledKinds } = useFeedbackBody();
66
+ const { messages, theme } = useFeedbackUi();
67
+ const { routes, colors, androidToolbarIcons } = useRoutedFeedback();
68
+ const modal = useRoutedFeedbackModal();
69
+ const router = useRouter();
70
+ const [kind, setKind] = useState(enabledKinds[0] ?? "feedback");
71
+ const [title, setTitle] = useState("");
72
+ const [body, setBody] = useState("");
73
+ const entryHref = (entryId) => feedbackRouteHref(routes.entry, { entryId });
74
+ return (_jsxs(_Fragment, { children: [_jsx(FeedbackBoard.Root, { ...colors, children: _jsx(FeedbackBoard.List, { style: {
75
+ padding: theme.spacing,
76
+ paddingBottom: theme.spacing * 2,
77
+ }, children: _jsx(CreateEntryForm, { kind: kind, onKindChange: setKind, title: title, onTitleChange: setTitle, body: body, onBodyChange: setBody, onOpenSuggestion: (entryId) => router.push(entryHref(entryId), { relativeToDirectory: true }), onCreated: (entryId) => {
78
+ router.dismissTo(entryHref(entryId));
79
+ } }) }) }), _jsx(Stack.Toolbar, { placement: "left", children: _jsx(Stack.Toolbar.Button, { icon: process.env.EXPO_OS === "ios" ? "xmark" : androidToolbarIcons.close, accessibilityLabel: messages.form.cancel, onPress: () => (modal ? modal.dismiss() : router.dismiss()), children: messages.form.cancel }) })] }));
80
+ }
81
+ //# sourceMappingURL=FeedbackRoutes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeedbackRoutes.js","sourceRoot":"","sources":["../../../src/native/expo/FeedbackRoutes.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  import type { ExpoFeedbackScreenProps } from "./types";
2
- export declare function FeedbackScreen({ hooks, messages, theme, unstyled, entrySort, commentSort, enabledKinds, maxCommentDepth, debounceDuration, collectMetadata, transformComments, renderActor, ...props }: ExpoFeedbackScreenProps): import("react").JSX.Element;
2
+ export declare function FeedbackScreen({ hooks, messages, theme, unstyled, entrySort, commentSort, enabledKinds, maxCommentDepth, debounceDuration, collectMetadata, emptyState, transformComments, renderActor, ...props }: ExpoFeedbackScreenProps): import("react").JSX.Element;
3
3
  //# sourceMappingURL=FeedbackScreen.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FeedbackScreen.d.ts","sourceRoot":"","sources":["../../../src/native/expo/FeedbackScreen.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAGvD,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,SAAiB,EACjB,WAAmB,EACnB,YAAoB,EACpB,eAAmB,EACnB,gBAAsB,EACtB,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,GAAG,KAAK,EACT,EAAE,uBAAuB,+BAmBzB"}
1
+ {"version":3,"file":"FeedbackScreen.d.ts","sourceRoot":"","sources":["../../../src/native/expo/FeedbackScreen.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAGvD,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,SAAiB,EACjB,WAAmB,EACnB,YAAoB,EACpB,eAAmB,EACnB,gBAAsB,EACtB,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,GAAG,KAAK,EACT,EAAE,uBAAuB,+BAoBzB"}
@@ -4,7 +4,7 @@ import { FeedbackProvider } from "../../shared/context/FeedbackProvider";
4
4
  import { kinds } from "../../shared/helpers";
5
5
  import { ExpoFeedbackBody } from "./ExpoFeedbackBody";
6
6
  import { collectExpoMetadata } from "./metadata";
7
- export function FeedbackScreen({ hooks, messages, theme, unstyled, entrySort = "top", commentSort = "top", enabledKinds = kinds, maxCommentDepth = 5, debounceDuration = 300, collectMetadata, transformComments, renderActor, ...props }) {
8
- return (_jsx(FeedbackProvider, { messages: messages, theme: theme, unstyled: unstyled, children: _jsx(FeedbackBodyProvider, { hooks: hooks, entrySort: entrySort, commentSort: commentSort, enabledKinds: enabledKinds, maxCommentDepth: maxCommentDepth, debounceDuration: debounceDuration, collectMetadata: collectMetadata, collectStandardMetadata: collectExpoMetadata, transformComments: transformComments, renderActor: renderActor, children: _jsx(ExpoFeedbackBody, { ...props }) }) }));
7
+ export function FeedbackScreen({ hooks, messages, theme, unstyled, entrySort = "top", commentSort = "top", enabledKinds = kinds, maxCommentDepth = 5, debounceDuration = 300, collectMetadata, emptyState, transformComments, renderActor, ...props }) {
8
+ return (_jsx(FeedbackProvider, { messages: messages, theme: theme, unstyled: unstyled, children: _jsx(FeedbackBodyProvider, { hooks: hooks, entrySort: entrySort, commentSort: commentSort, enabledKinds: enabledKinds, maxCommentDepth: maxCommentDepth, debounceDuration: debounceDuration, collectMetadata: collectMetadata, emptyState: emptyState, collectStandardMetadata: collectExpoMetadata, transformComments: transformComments, renderActor: renderActor, children: _jsx(ExpoFeedbackBody, { ...props }) }) }));
9
9
  }
10
10
  //# sourceMappingURL=FeedbackScreen.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FeedbackScreen.js","sourceRoot":"","sources":["../../../src/native/expo/FeedbackScreen.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,UAAU,cAAc,CAAC,EAC7B,KAAK,EACL,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,SAAS,GAAG,KAAK,EACjB,WAAW,GAAG,KAAK,EACnB,YAAY,GAAG,KAAK,EACpB,eAAe,GAAG,CAAC,EACnB,gBAAgB,GAAG,GAAG,EACtB,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,GAAG,KAAK,EACgB;IACxB,OAAO,CACL,KAAC,gBAAgB,IAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,YACpE,KAAC,oBAAoB,IACnB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,eAAe,EAAE,eAAe,EAChC,uBAAuB,EAAE,mBAAmB,EAC5C,iBAAiB,EAAE,iBAAiB,EACpC,WAAW,EAAE,WAAW,YAExB,KAAC,gBAAgB,OAAK,KAAK,GAAI,GACV,GACN,CACpB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"FeedbackScreen.js","sourceRoot":"","sources":["../../../src/native/expo/FeedbackScreen.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,UAAU,cAAc,CAAC,EAC7B,KAAK,EACL,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,SAAS,GAAG,KAAK,EACjB,WAAW,GAAG,KAAK,EACnB,YAAY,GAAG,KAAK,EACpB,eAAe,GAAG,CAAC,EACnB,gBAAgB,GAAG,GAAG,EACtB,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,GAAG,KAAK,EACgB;IACxB,OAAO,CACL,KAAC,gBAAgB,IAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,YACpE,KAAC,oBAAoB,IACnB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,eAAe,EAAE,eAAe,EAChC,UAAU,EAAE,UAAU,EACtB,uBAAuB,EAAE,mBAAmB,EAC5C,iBAAiB,EAAE,iBAAiB,EACpC,WAAW,EAAE,WAAW,YAExB,KAAC,gBAAgB,OAAK,KAAK,GAAI,GACV,GACN,CACpB,CAAC;AACJ,CAAC"}
@@ -1,3 +1,3 @@
1
1
  import type { FeedbackStackProps } from "./types";
2
- export declare function FeedbackStack({ searchRef, stackOptions, children, }: FeedbackStackProps): import("react").JSX.Element;
2
+ export declare function FeedbackStack({ searchRef, stackOptions, androidToolbarIcons, children, }: FeedbackStackProps): import("react").JSX.Element;
3
3
  //# sourceMappingURL=FeedbackStack.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FeedbackStack.d.ts","sourceRoot":"","sources":["../../../src/native/expo/FeedbackStack.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,wBAAgB,aAAa,CAAC,EAC5B,SAAS,EACT,YAAY,EACZ,QAAQ,GACT,EAAE,kBAAkB,+BAyFpB"}
1
+ {"version":3,"file":"FeedbackStack.d.ts","sourceRoot":"","sources":["../../../src/native/expo/FeedbackStack.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,wBAAgB,aAAa,CAAC,EAC5B,SAAS,EACT,YAAY,EACZ,mBAAwB,EACxB,QAAQ,GACT,EAAE,kBAAkB,+BA0HpB"}
@@ -1,9 +1,10 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { Stack, useRouter } from "expo-router";
3
3
  import { useFeedbackBody } from "../../shared/context/FeedbackBodyProvider";
4
4
  import { useFeedbackUi } from "../../shared/context/FeedbackProvider";
5
- export function FeedbackStack({ searchRef, stackOptions, children, }) {
6
- const { query, enabledKinds, selectedEntryId, setQuery, setShowForm, setIsSearching, setSelectedEntryId, } = useFeedbackBody();
5
+ import { createEntryLabel, entryStatusChoices } from "../../shared/helpers";
6
+ export function FeedbackStack({ searchRef, stackOptions, androidToolbarIcons = {}, children, }) {
7
+ const { query, enabledKinds, selectedEntryId, setQuery, setShowForm, setIsSearching, setSelectedEntryId, statusFilter, setStatusFilter, } = useFeedbackBody();
7
8
  const { messages, theme } = useFeedbackUi();
8
9
  const router = useRouter();
9
10
  const canGoBack = !!selectedEntryId || router.canGoBack();
@@ -28,7 +29,9 @@ export function FeedbackStack({ searchRef, stackOptions, children, }) {
28
29
  headerBackVisible: false,
29
30
  contentStyle: { backgroundColor: theme.colors.background },
30
31
  ...stackOptions,
31
- } }), _jsx(Stack.Toolbar, { placement: "right", children: _jsx(Stack.Toolbar.Button, { icon: "plus", variant: "prominent", accessibilityLabel: messages.board.createEntry, onPress: () => setShowForm(true), tintColor: theme.colors.primary }) }), _jsx(Stack.Toolbar, { placement: "left", children: _jsx(Stack.Toolbar.Button, { hidden: !canGoBack, icon: "chevron.backward", onPress: handleBackPress }) }), children, _jsx(Stack.SearchBar, { onChangeText: (q) => {
32
+ } }), _jsx(Stack.Toolbar, { placement: "right", children: _jsx(Stack.Toolbar.Button, { icon: process.env.EXPO_OS === "ios" ? "plus" : androidToolbarIcons.create, variant: "prominent", accessibilityLabel: createEntryLabel(enabledKinds, messages), onPress: () => setShowForm(true), tintColor: theme.colors.primary, children: createEntryLabel(enabledKinds, messages) }) }), _jsx(Stack.Toolbar, { placement: "left", children: _jsx(Stack.Toolbar.Button, { hidden: !canGoBack, icon: process.env.EXPO_OS === "ios"
33
+ ? "chevron.backward"
34
+ : androidToolbarIcons.back, accessibilityLabel: messages.entry.back, onPress: handleBackPress, children: messages.entry.back }) }), children, _jsx(Stack.SearchBar, { onChangeText: (q) => {
32
35
  if (selectedEntryId)
33
36
  setSelectedEntryId(null);
34
37
  setQuery(q.nativeEvent.text);
@@ -36,6 +39,8 @@ export function FeedbackStack({ searchRef, stackOptions, children, }) {
36
39
  if (selectedEntryId)
37
40
  setSelectedEntryId(null);
38
41
  setIsSearching(true);
39
- }, onBlur: () => setIsSearching(false), obscureBackground: false, allowToolbarIntegration: true, hideNavigationBar: false, ref: searchRef, textColor: theme.colors.text }), _jsx(Stack.Toolbar, { placement: "bottom", children: _jsx(Stack.Toolbar.SearchBarSlot, {}) })] }));
42
+ }, onBlur: () => setIsSearching(false), obscureBackground: false, allowToolbarIntegration: true, hideNavigationBar: false, ref: searchRef, textColor: theme.colors.text }), _jsxs(Stack.Toolbar, { placement: "bottom", children: [_jsx(Stack.Toolbar.SearchBarSlot, {}), _jsx(Stack.Toolbar.Menu, { icon: process.env.EXPO_OS === "ios"
43
+ ? "line.3.horizontal.decrease"
44
+ : androidToolbarIcons.filter, title: messages.board.statusFilter, accessibilityLabel: messages.board.statusFilter, tintColor: theme.colors.primary, children: entryStatusChoices(messages).map(({ value, label }) => (_jsx(Stack.Toolbar.MenuAction, { isOn: statusFilter === value, onPress: () => setStatusFilter(value), children: label }, value))) })] })] }));
40
45
  }
41
46
  //# sourceMappingURL=FeedbackStack.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FeedbackStack.js","sourceRoot":"","sources":["../../../src/native/expo/FeedbackStack.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FeedbackStack.js","sourceRoot":"","sources":["../../../src/native/expo/FeedbackStack.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { FeedbackStackLayoutProps } from "./types.js";
2
+ export declare function FeedbackStackLayout({ hooks, messages, theme, unstyled, entrySort, commentSort, enabledKinds, maxCommentDepth, debounceDuration, collectMetadata, emptyState, transformComments, renderActor, routes: routeOverrides, screenOptions, boardOptions, entryOptions, createOptions, androidToolbarIcons, primaryColor, primaryForeground, backgroundColor, surfaceColor, textColor, mutedColor, borderColor, dangerColor, }: FeedbackStackLayoutProps): import("react").JSX.Element;
3
+ //# sourceMappingURL=FeedbackStackLayout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeedbackStackLayout.d.ts","sourceRoot":"","sources":["../../../src/native/expo/FeedbackStackLayout.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE3D,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,SAAiB,EACjB,WAAmB,EACnB,YAAoB,EACpB,eAAmB,EACnB,gBAAsB,EACtB,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,MAAM,EAAE,cAAc,EACtB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,mBAAwB,EACxB,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,SAAS,EACT,UAAU,EACV,WAAW,EACX,WAAW,GACZ,EAAE,wBAAwB,+BA6E1B"}
@@ -0,0 +1,54 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Stack } from "expo-router";
3
+ import { FeedbackBodyProvider } from "../../shared/context/FeedbackBodyProvider.js";
4
+ import { FeedbackProvider } from "../../shared/context/FeedbackProvider.js";
5
+ import { kinds } from "../../shared/helpers.js";
6
+ import { mergeFeedbackMessages } from "../../shared/messages.js";
7
+ import { mergeFeedbackTheme } from "../../shared/theme.js";
8
+ import { collectExpoMetadata } from "./metadata.js";
9
+ import { RoutedFeedbackProvider } from "./RoutedFeedbackContext.js";
10
+ import { resolveFeedbackRoutes } from "./routes.js";
11
+ export function FeedbackStackLayout({ hooks, messages, theme, unstyled, entrySort = "top", commentSort = "top", enabledKinds = kinds, maxCommentDepth = 5, debounceDuration = 300, collectMetadata, emptyState, transformComments, renderActor, routes: routeOverrides, screenOptions, boardOptions, entryOptions, createOptions, androidToolbarIcons = {}, primaryColor, primaryForeground, backgroundColor, surfaceColor, textColor, mutedColor, borderColor, dangerColor, }) {
12
+ const routes = resolveFeedbackRoutes(routeOverrides);
13
+ const resolvedMessages = mergeFeedbackMessages(messages);
14
+ const resolvedTheme = mergeFeedbackTheme(theme);
15
+ const colors = {
16
+ primaryColor,
17
+ primaryForeground,
18
+ backgroundColor,
19
+ surfaceColor,
20
+ textColor,
21
+ mutedColor,
22
+ borderColor,
23
+ dangerColor,
24
+ };
25
+ const background = backgroundColor ?? resolvedTheme.colors.background;
26
+ const boardTitle = enabledKinds.length === 1
27
+ ? resolvedMessages.kindsPlural[enabledKinds.at(0)]
28
+ : resolvedMessages.board.title;
29
+ const defaults = {
30
+ headerShown: true,
31
+ headerBackButtonDisplayMode: "minimal",
32
+ contentStyle: { backgroundColor: background },
33
+ };
34
+ return (_jsx(FeedbackProvider, { messages: messages, theme: theme, unstyled: unstyled, children: _jsx(FeedbackBodyProvider, { hooks: hooks, entrySort: entrySort, commentSort: commentSort, enabledKinds: enabledKinds, maxCommentDepth: maxCommentDepth, debounceDuration: debounceDuration, collectMetadata: collectMetadata, emptyState: emptyState, collectStandardMetadata: collectExpoMetadata, transformComments: transformComments, renderActor: renderActor, children: _jsx(RoutedFeedbackProvider, { value: { routes, colors, androidToolbarIcons }, children: _jsxs(Stack, { children: [_jsx(Stack.Screen, { name: routes.board, options: {
35
+ ...defaults,
36
+ headerTitle: boardTitle,
37
+ headerTransparent: true,
38
+ headerShadowVisible: true,
39
+ ...screenOptions,
40
+ ...boardOptions,
41
+ } }), _jsx(Stack.Screen, { name: routes.entry, options: {
42
+ ...defaults,
43
+ headerTitle: boardTitle,
44
+ ...screenOptions,
45
+ ...entryOptions,
46
+ } }), _jsx(Stack.Screen, { name: routes.create, options: {
47
+ ...defaults,
48
+ headerShown: false,
49
+ presentation: "modal",
50
+ ...screenOptions,
51
+ ...createOptions,
52
+ } })] }) }) }) }));
53
+ }
54
+ //# sourceMappingURL=FeedbackStackLayout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeedbackStackLayout.js","sourceRoot":"","sources":["../../../src/native/expo/FeedbackStackLayout.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAqC,MAAM,aAAa,CAAC;AAEvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAGpD,MAAM,UAAU,mBAAmB,CAAC,EAClC,KAAK,EACL,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,SAAS,GAAG,KAAK,EACjB,WAAW,GAAG,KAAK,EACnB,YAAY,GAAG,KAAK,EACpB,eAAe,GAAG,CAAC,EACnB,gBAAgB,GAAG,GAAG,EACtB,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,MAAM,EAAE,cAAc,EACtB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,mBAAmB,GAAG,EAAE,EACxB,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,SAAS,EACT,UAAU,EACV,WAAW,EACX,WAAW,GACc;IACzB,MAAM,MAAM,GAAG,qBAAqB,CAAC,cAAc,CAAC,CAAC;IACrD,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACzD,MAAM,aAAa,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG;QACb,YAAY;QACZ,iBAAiB;QACjB,eAAe;QACf,YAAY;QACZ,SAAS;QACT,UAAU;QACV,WAAW;QACX,WAAW;KACZ,CAAC;IACF,MAAM,UAAU,GAAG,eAAe,IAAI,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC;IACtE,MAAM,UAAU,GACd,YAAY,CAAC,MAAM,KAAK,CAAC;QACvB,CAAC,CAAC,gBAAgB,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC;QACnD,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC;IACnC,MAAM,QAAQ,GAAiC;QAC7C,WAAW,EAAE,IAAI;QACjB,2BAA2B,EAAE,SAAS;QACtC,YAAY,EAAE,EAAE,eAAe,EAAE,UAAU,EAAE;KAC9C,CAAC;IAEF,OAAO,CACL,KAAC,gBAAgB,IAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,YACpE,KAAC,oBAAoB,IACnB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,eAAe,EAAE,eAAe,EAChC,UAAU,EAAE,UAAU,EACtB,uBAAuB,EAAE,mBAAmB,EAC5C,iBAAiB,EAAE,iBAAiB,EACpC,WAAW,EAAE,WAAW,YAExB,KAAC,sBAAsB,IAAC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,EAAE,YACpE,MAAC,KAAK,eACJ,KAAC,KAAK,CAAC,MAAM,IACX,IAAI,EAAE,MAAM,CAAC,KAAK,EAClB,OAAO,EAAE;gCACP,GAAG,QAAQ;gCACX,WAAW,EAAE,UAAU;gCACvB,iBAAiB,EAAE,IAAI;gCACvB,mBAAmB,EAAE,IAAI;gCACzB,GAAG,aAAa;gCAChB,GAAG,YAAY;6BAChB,GACD,EACF,KAAC,KAAK,CAAC,MAAM,IACX,IAAI,EAAE,MAAM,CAAC,KAAK,EAClB,OAAO,EAAE;gCACP,GAAG,QAAQ;gCACX,WAAW,EAAE,UAAU;gCACvB,GAAG,aAAa;gCAChB,GAAG,YAAY;6BAChB,GACD,EACF,KAAC,KAAK,CAAC,MAAM,IACX,IAAI,EAAE,MAAM,CAAC,MAAM,EACnB,OAAO,EAAE;gCACP,GAAG,QAAQ;gCACX,WAAW,EAAE,KAAK;gCAClB,YAAY,EAAE,OAAO;gCACrB,GAAG,aAAa;gCAChB,GAAG,aAAa;6BACjB,GACD,IACI,GACe,GACJ,GACN,CACpB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { RoutedFeedbackContextValue } from "./types.js";
2
+ export declare const RoutedFeedbackProvider: import("react").Provider<RoutedFeedbackContextValue | null>;
3
+ export declare function useRoutedFeedback(): RoutedFeedbackContextValue;
4
+ //# sourceMappingURL=RoutedFeedbackContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RoutedFeedbackContext.d.ts","sourceRoot":"","sources":["../../../src/native/expo/RoutedFeedbackContext.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAM7D,eAAO,MAAM,sBAAsB,6DAAiC,CAAC;AAErE,wBAAgB,iBAAiB,IAAI,0BAA0B,CAU9D"}
@@ -0,0 +1,11 @@
1
+ import { createContext, useContext } from "react";
2
+ const RoutedFeedbackContext = createContext(null);
3
+ export const RoutedFeedbackProvider = RoutedFeedbackContext.Provider;
4
+ export function useRoutedFeedback() {
5
+ const value = useContext(RoutedFeedbackContext);
6
+ if (value === null) {
7
+ throw new Error("Routed feedback screens must be rendered inside FeedbackStackLayout.");
8
+ }
9
+ return value;
10
+ }
11
+ //# sourceMappingURL=RoutedFeedbackContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RoutedFeedbackContext.js","sourceRoot":"","sources":["../../../src/native/expo/RoutedFeedbackContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAGlD,MAAM,qBAAqB,GAAG,aAAa,CACzC,IAAI,CACL,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,qBAAqB,CAAC,QAAQ,CAAC;AAErE,MAAM,UAAU,iBAAiB;IAC/B,MAAM,KAAK,GAAG,UAAU,CAAC,qBAAqB,CAAC,CAAC;IAEhD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CACb,sEAAsE,CACvE,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,7 @@
1
+ interface RoutedFeedbackModalContextValue {
2
+ dismiss: () => void;
3
+ }
4
+ export declare const RoutedFeedbackModalProvider: import("react").Provider<RoutedFeedbackModalContextValue | null>;
5
+ export declare function useRoutedFeedbackModal(): RoutedFeedbackModalContextValue | null;
6
+ export {};
7
+ //# sourceMappingURL=RoutedFeedbackModalContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RoutedFeedbackModalContext.d.ts","sourceRoot":"","sources":["../../../src/native/expo/RoutedFeedbackModalContext.tsx"],"names":[],"mappings":"AAEA,UAAU,+BAA+B;IACvC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAKD,eAAO,MAAM,2BAA2B,kEAAsC,CAAC;AAE/E,wBAAgB,sBAAsB,2CAErC"}
@@ -0,0 +1,7 @@
1
+ import { createContext, useContext } from "react";
2
+ const RoutedFeedbackModalContext = createContext(null);
3
+ export const RoutedFeedbackModalProvider = RoutedFeedbackModalContext.Provider;
4
+ export function useRoutedFeedbackModal() {
5
+ return useContext(RoutedFeedbackModalContext);
6
+ }
7
+ //# sourceMappingURL=RoutedFeedbackModalContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RoutedFeedbackModalContext.js","sourceRoot":"","sources":["../../../src/native/expo/RoutedFeedbackModalContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAMlD,MAAM,0BAA0B,GAC9B,aAAa,CAAyC,IAAI,CAAC,CAAC;AAE9D,MAAM,CAAC,MAAM,2BAA2B,GAAG,0BAA0B,CAAC,QAAQ,CAAC;AAE/E,MAAM,UAAU,sBAAsB;IACpC,OAAO,UAAU,CAAC,0BAA0B,CAAC,CAAC;AAChD,CAAC"}
@@ -7,5 +7,9 @@ export type * from "../../shared/types/index.js";
7
7
  export * from "../shared/ui/primitives.js";
8
8
  export * from "./metadata.js";
9
9
  export * from "./FeedbackScreen.js";
10
+ export * from "./FeedbackCreateStackLayout.js";
11
+ export * from "./FeedbackStackLayout.js";
12
+ export * from "./FeedbackRoutes.js";
13
+ export * from "./routes.js";
10
14
  export type * from "./types.js";
11
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/native/expo/index.ts"],"names":[],"mappings":"AAAA,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0CAA0C,CAAC;AACzD,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,mBAAmB,6BAA6B,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,mBAAmB,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/native/expo/index.ts"],"names":[],"mappings":"AAAA,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0CAA0C,CAAC;AACzD,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,mBAAmB,6BAA6B,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,mBAAmB,YAAY,CAAC"}
@@ -6,4 +6,8 @@ export * from "../../shared/theme.js";
6
6
  export * from "../shared/ui/primitives.js";
7
7
  export * from "./metadata.js";
8
8
  export * from "./FeedbackScreen.js";
9
+ export * from "./FeedbackCreateStackLayout.js";
10
+ export * from "./FeedbackStackLayout.js";
11
+ export * from "./FeedbackRoutes.js";
12
+ export * from "./routes.js";
9
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/native/expo/index.ts"],"names":[],"mappings":"AAAA,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0CAA0C,CAAC;AACzD,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/native/expo/index.ts"],"names":[],"mappings":"AAAA,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0CAA0C,CAAC;AACzD,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { Href } from "expo-router";
2
+ import type { FeedbackRouteNames } from "./types.js";
3
+ export declare const defaultFeedbackRoutes: FeedbackRouteNames;
4
+ export declare function resolveFeedbackRoutes(routes?: Partial<FeedbackRouteNames>): FeedbackRouteNames;
5
+ export declare function createFeedbackStackSettings(routes?: Partial<FeedbackRouteNames>): {
6
+ anchor: string;
7
+ };
8
+ export declare const feedbackStackSettings: {
9
+ anchor: string;
10
+ };
11
+ /** Anchor the create form beneath suggested-entry detail screens. */
12
+ export declare const feedbackCreateStackSettings: {
13
+ anchor: string;
14
+ };
15
+ export declare function feedbackRouteHref(route: string, params?: Record<string, string>): Href;
16
+ //# sourceMappingURL=routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../src/native/expo/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,eAAO,MAAM,qBAAqB,EAAE,kBAInC,CAAC;AAEF,wBAAgB,qBAAqB,CACnC,MAAM,GAAE,OAAO,CAAC,kBAAkB,CAAM,GACvC,kBAAkB,CAUpB;AAED,wBAAgB,2BAA2B,CACzC,MAAM,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC;;EAGrC;AAED,eAAO,MAAM,qBAAqB;;CAAgC,CAAC;AAEnE,qEAAqE;AACrE,eAAO,MAAM,2BAA2B;;CAAsB,CAAC;AAE/D,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,IAAI,CAGN"}
@@ -0,0 +1,23 @@
1
+ export const defaultFeedbackRoutes = {
2
+ board: "index",
3
+ entry: "[entryId]",
4
+ create: "new",
5
+ };
6
+ export function resolveFeedbackRoutes(routes = {}) {
7
+ const resolved = { ...defaultFeedbackRoutes, ...routes };
8
+ if (!resolved.entry.includes("[entryId]")) {
9
+ throw new Error('The routed feedback entry route must contain the "[entryId]" dynamic segment.');
10
+ }
11
+ return resolved;
12
+ }
13
+ export function createFeedbackStackSettings(routes) {
14
+ return { anchor: resolveFeedbackRoutes(routes).board };
15
+ }
16
+ export const feedbackStackSettings = createFeedbackStackSettings();
17
+ /** Anchor the create form beneath suggested-entry detail screens. */
18
+ export const feedbackCreateStackSettings = { anchor: "index" };
19
+ export function feedbackRouteHref(route, params) {
20
+ const pathname = route.startsWith(".") ? route : `./${route}`;
21
+ return params === undefined ? pathname : { pathname, params };
22
+ }
23
+ //# sourceMappingURL=routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../src/native/expo/routes.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,qBAAqB,GAAuB;IACvD,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,WAAW;IAClB,MAAM,EAAE,KAAK;CACd,CAAC;AAEF,MAAM,UAAU,qBAAqB,CACnC,SAAsC,EAAE;IAExC,MAAM,QAAQ,GAAG,EAAE,GAAG,qBAAqB,EAAE,GAAG,MAAM,EAAE,CAAC;IAEzD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CACb,+EAA+E,CAChF,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,MAAoC;IAEpC,OAAO,EAAE,MAAM,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;AACzD,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,2BAA2B,EAAE,CAAC;AAEnE,qEAAqE;AACrE,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAE/D,MAAM,UAAU,iBAAiB,CAC/B,KAAa,EACb,MAA+B;IAE/B,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;IAC9D,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAChE,CAAC"}
@@ -1,20 +1,72 @@
1
1
  import type { StackScreenProps } from "expo-router";
2
+ import type { ImageSourcePropType } from "react-native";
2
3
  import type { SearchBarCommands } from "react-native-screens";
3
- import type { FeedbackScreenRootProps } from "../../shared/types";
4
+ import type { FeedbackColorProps, FeedbackScreenRootProps } from "../../shared/types";
4
5
  interface FeedbackScreenWithStack {
5
6
  useStack?: true;
6
7
  StackOptions?: StackScreenProps["options"];
8
+ /** Android image sources for toolbar actions. iOS continues to use SF Symbols. */
9
+ androidToolbarIcons?: FeedbackAndroidToolbarIcons;
7
10
  }
8
11
  interface FeedbackScreenWithoutStack {
9
12
  useStack?: false;
10
13
  StackOptions?: never;
14
+ androidToolbarIcons?: never;
11
15
  }
12
16
  export type FeedbackScreenStackProps = FeedbackScreenWithStack | FeedbackScreenWithoutStack;
13
17
  export type ExpoFeedbackScreenProps = FeedbackScreenStackProps & FeedbackScreenRootProps;
14
18
  export interface FeedbackStackProps {
15
19
  searchRef: React.RefObject<SearchBarCommands | null>;
16
20
  stackOptions?: StackScreenProps["options"];
21
+ androidToolbarIcons?: FeedbackAndroidToolbarIcons;
17
22
  children: React.ReactNode;
18
23
  }
24
+ /** File names used by the routed feedback stack. */
25
+ export interface FeedbackRouteNames {
26
+ /** Board route. @default "index" */
27
+ board: string;
28
+ /** Entry route. Must contain `[entryId]`. @default "[entryId]" */
29
+ entry: string;
30
+ /** Create-entry modal route. @default "new" */
31
+ create: string;
32
+ }
33
+ export type FeedbackStackScreenOptions = Exclude<NonNullable<StackScreenProps["options"]>, (...args: never[]) => unknown>;
34
+ export interface FeedbackAndroidToolbarIcons {
35
+ /** Android image source for the create-entry action. */
36
+ create?: ImageSourcePropType;
37
+ /** Android image source for the back action. */
38
+ back?: ImageSourcePropType;
39
+ /** Android image source for modal close actions. */
40
+ close?: ImageSourcePropType;
41
+ /** Android image source for the open/closed status filter. */
42
+ filter?: ImageSourcePropType;
43
+ }
44
+ export interface FeedbackStackLayoutProps extends FeedbackScreenRootProps {
45
+ /** Partial overrides for the prescribed route file names. */
46
+ routes?: Partial<FeedbackRouteNames>;
47
+ /** Options shared by every feedback screen. */
48
+ screenOptions?: FeedbackStackScreenOptions;
49
+ /** Board screen option overrides. */
50
+ boardOptions?: FeedbackStackScreenOptions;
51
+ /** Entry-detail screen option overrides. */
52
+ entryOptions?: FeedbackStackScreenOptions;
53
+ /** Create-entry modal option overrides. */
54
+ createOptions?: FeedbackStackScreenOptions;
55
+ /** Android image sources for toolbar actions. iOS continues to use SF Symbols. */
56
+ androidToolbarIcons?: FeedbackAndroidToolbarIcons;
57
+ }
58
+ export interface FeedbackCreateStackLayoutProps {
59
+ /** Options shared by the create form and suggested-entry screens. */
60
+ screenOptions?: FeedbackStackScreenOptions;
61
+ /** Create-form screen option overrides. */
62
+ createOptions?: FeedbackStackScreenOptions;
63
+ /** Suggested-entry screen option overrides. */
64
+ entryOptions?: FeedbackStackScreenOptions;
65
+ }
66
+ export interface RoutedFeedbackContextValue {
67
+ routes: FeedbackRouteNames;
68
+ colors: FeedbackColorProps;
69
+ androidToolbarIcons: FeedbackAndroidToolbarIcons;
70
+ }
19
71
  export {};
20
72
  //# sourceMappingURL=types.d.ts.map