convex-feedback-ui 0.1.8 → 0.2.0-beta.0

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 (137) hide show
  1. package/README.md +30 -1
  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/FeedbackRoutes.d.ts.map +1 -1
  8. package/dist/native/expo/FeedbackRoutes.js +17 -9
  9. package/dist/native/expo/FeedbackRoutes.js.map +1 -1
  10. package/dist/native/expo/FeedbackScreen.d.ts +1 -1
  11. package/dist/native/expo/FeedbackScreen.d.ts.map +1 -1
  12. package/dist/native/expo/FeedbackScreen.js +2 -2
  13. package/dist/native/expo/FeedbackScreen.js.map +1 -1
  14. package/dist/native/expo/FeedbackStack.d.ts +1 -1
  15. package/dist/native/expo/FeedbackStack.d.ts.map +1 -1
  16. package/dist/native/expo/FeedbackStack.js +15 -8
  17. package/dist/native/expo/FeedbackStack.js.map +1 -1
  18. package/dist/native/expo/FeedbackStackLayout.d.ts +1 -1
  19. package/dist/native/expo/FeedbackStackLayout.d.ts.map +1 -1
  20. package/dist/native/expo/FeedbackStackLayout.js +7 -2
  21. package/dist/native/expo/FeedbackStackLayout.js.map +1 -1
  22. package/dist/native/expo/index.d.ts +1 -0
  23. package/dist/native/expo/index.d.ts.map +1 -1
  24. package/dist/native/expo/index.js +1 -0
  25. package/dist/native/expo/index.js.map +1 -1
  26. package/dist/native/expo/types.d.ts +13 -0
  27. package/dist/native/expo/types.d.ts.map +1 -1
  28. package/dist/native/native/FeedbackScreen.d.ts +1 -1
  29. package/dist/native/native/FeedbackScreen.d.ts.map +1 -1
  30. package/dist/native/native/FeedbackScreen.js +2 -2
  31. package/dist/native/native/FeedbackScreen.js.map +1 -1
  32. package/dist/native/native/index.d.ts +1 -0
  33. package/dist/native/native/index.d.ts.map +1 -1
  34. package/dist/native/native/index.js +1 -0
  35. package/dist/native/native/index.js.map +1 -1
  36. package/dist/native/shared/helpers.d.ts +6 -1
  37. package/dist/native/shared/helpers.d.ts.map +1 -1
  38. package/dist/native/shared/helpers.js +33 -0
  39. package/dist/native/shared/helpers.js.map +1 -1
  40. package/dist/native/shared/ui/BodyContent.d.ts.map +1 -1
  41. package/dist/native/shared/ui/BodyContent.js +8 -2
  42. package/dist/native/shared/ui/BodyContent.js.map +1 -1
  43. package/dist/native/shared/ui/Button.d.ts +2 -1
  44. package/dist/native/shared/ui/Button.d.ts.map +1 -1
  45. package/dist/native/shared/ui/Button.js +3 -2
  46. package/dist/native/shared/ui/Button.js.map +1 -1
  47. package/dist/native/shared/ui/CommentBranch.d.ts.map +1 -1
  48. package/dist/native/shared/ui/CommentBranch.js +33 -11
  49. package/dist/native/shared/ui/CommentBranch.js.map +1 -1
  50. package/dist/native/shared/ui/EntryCard.d.ts.map +1 -1
  51. package/dist/native/shared/ui/EntryCard.js +13 -1
  52. package/dist/native/shared/ui/EntryCard.js.map +1 -1
  53. package/dist/native/shared/ui/EntryDetail.d.ts.map +1 -1
  54. package/dist/native/shared/ui/EntryDetail.js +23 -5
  55. package/dist/native/shared/ui/EntryDetail.js.map +1 -1
  56. package/dist/native/shared/ui/FeedbackScreenHeader.d.ts.map +1 -1
  57. package/dist/native/shared/ui/FeedbackScreenHeader.js +7 -2
  58. package/dist/native/shared/ui/FeedbackScreenHeader.js.map +1 -1
  59. package/dist/native/shared/ui/FeedbackScreenList.d.ts.map +1 -1
  60. package/dist/native/shared/ui/FeedbackScreenList.js +16 -8
  61. package/dist/native/shared/ui/FeedbackScreenList.js.map +1 -1
  62. package/dist/native/shared/ui/NewEntry.d.ts.map +1 -1
  63. package/dist/native/shared/ui/NewEntry.js +13 -11
  64. package/dist/native/shared/ui/NewEntry.js.map +1 -1
  65. package/dist/native/shared/ui/RoadmapScreen.d.ts +3 -0
  66. package/dist/native/shared/ui/RoadmapScreen.d.ts.map +1 -0
  67. package/dist/native/shared/ui/RoadmapScreen.js +73 -0
  68. package/dist/native/shared/ui/RoadmapScreen.js.map +1 -0
  69. package/dist/react/action.d.ts +14 -0
  70. package/dist/react/action.d.ts.map +1 -0
  71. package/dist/react/action.js +38 -0
  72. package/dist/react/action.js.map +1 -0
  73. package/dist/react/index.d.ts +1 -0
  74. package/dist/react/index.d.ts.map +1 -1
  75. package/dist/react/index.js +1 -0
  76. package/dist/react/index.js.map +1 -1
  77. package/dist/react/roadmap.d.ts +3 -0
  78. package/dist/react/roadmap.d.ts.map +1 -0
  79. package/dist/react/roadmap.js +59 -0
  80. package/dist/react/roadmap.js.map +1 -0
  81. package/dist/react/screen.d.ts +1 -1
  82. package/dist/react/screen.d.ts.map +1 -1
  83. package/dist/react/screen.js +99 -42
  84. package/dist/react/screen.js.map +1 -1
  85. package/dist/react/styles.css +42 -0
  86. package/dist/shared/context/FeedbackBodyProvider.d.ts +1 -1
  87. package/dist/shared/context/FeedbackBodyProvider.d.ts.map +1 -1
  88. package/dist/shared/context/FeedbackBodyProvider.js +8 -2
  89. package/dist/shared/context/FeedbackBodyProvider.js.map +1 -1
  90. package/dist/shared/helpers.d.ts +6 -0
  91. package/dist/shared/helpers.d.ts.map +1 -1
  92. package/dist/shared/helpers.js +12 -0
  93. package/dist/shared/helpers.js.map +1 -1
  94. package/dist/shared/types/index.d.ts +1 -0
  95. package/dist/shared/types/index.d.ts.map +1 -1
  96. package/dist/shared/types/messages.d.ts +1 -1
  97. package/dist/shared/types/messages.d.ts.map +1 -1
  98. package/dist/shared/types/roadmap.d.ts +17 -0
  99. package/dist/shared/types/roadmap.d.ts.map +1 -0
  100. package/dist/shared/types/roadmap.js +2 -0
  101. package/dist/shared/types/roadmap.js.map +1 -0
  102. package/dist/shared/types/screen.d.ts +10 -1
  103. package/dist/shared/types/screen.d.ts.map +1 -1
  104. package/package.json +2 -2
  105. package/src/native/expo/ExpoFeedbackBody.tsx +2 -0
  106. package/src/native/expo/FeedbackRoutes.tsx +54 -30
  107. package/src/native/expo/FeedbackScreen.tsx +2 -0
  108. package/src/native/expo/FeedbackStack.tsx +46 -27
  109. package/src/native/expo/FeedbackStackLayout.tsx +11 -1
  110. package/src/native/expo/README.md +15 -0
  111. package/src/native/expo/index.ts +1 -0
  112. package/src/native/expo/types.ts +12 -0
  113. package/src/native/native/FeedbackScreen.tsx +2 -0
  114. package/src/native/native/README.md +4 -0
  115. package/src/native/native/index.ts +1 -0
  116. package/src/native/shared/helpers.ts +38 -1
  117. package/src/native/shared/ui/BodyContent.tsx +15 -2
  118. package/src/native/shared/ui/Button.tsx +4 -0
  119. package/src/native/shared/ui/CommentBranch.tsx +58 -15
  120. package/src/native/shared/ui/EntryCard.tsx +21 -3
  121. package/src/native/shared/ui/EntryDetail.tsx +42 -8
  122. package/src/native/shared/ui/FeedbackScreenHeader.tsx +9 -1
  123. package/src/native/shared/ui/FeedbackScreenList.tsx +28 -13
  124. package/src/native/shared/ui/NewEntry.tsx +25 -12
  125. package/src/native/shared/ui/RoadmapScreen.tsx +345 -0
  126. package/src/react/README.md +1 -1
  127. package/src/react/action.tsx +56 -0
  128. package/src/react/index.ts +1 -0
  129. package/src/react/roadmap.tsx +303 -0
  130. package/src/react/screen.tsx +199 -75
  131. package/src/react/styles.css +42 -0
  132. package/src/shared/context/FeedbackBodyProvider.tsx +9 -1
  133. package/src/shared/helpers.ts +16 -0
  134. package/src/shared/types/index.ts +1 -0
  135. package/src/shared/types/messages.ts +1 -1
  136. package/src/shared/types/roadmap.ts +25 -0
  137. package/src/shared/types/screen.ts +12 -1
package/README.md CHANGED
@@ -10,6 +10,8 @@
10
10
 
11
11
  Optional React DOM, React Native, and Expo Router UI for `convex-feedback`.
12
12
 
13
+ This package provides the public feedback and roadmap experience. Internal priority and roadmap management live in the forkable [Clerk admin panel](../../apps/admin/withClerk/README.md), which uses the headless hooks directly.
14
+
13
15
  The package is intentionally layered:
14
16
 
15
17
  ```text
@@ -34,6 +36,22 @@ import "convex-feedback-ui/styles.css";
34
36
  <FeedbackScreen hooks={feedbackHooks} />;
35
37
  ```
36
38
 
39
+ Use `RoadmapScreen` for the public roadmap and its attached feedback entries:
40
+
41
+ ```tsx
42
+ import { RoadmapScreen } from "convex-feedback-ui";
43
+
44
+ <RoadmapScreen
45
+ hooks={feedbackHooks}
46
+ onEntryOpen={(entryId) => navigate(`/feedback/${entryId}`)}
47
+ onUnauthenticated={() => openSignIn()}
48
+ />;
49
+ ```
50
+
51
+ Roadmap browsing and attached-entry reads work without authentication. The
52
+ `onUnauthenticated` callback is used for create, vote, like, and comment
53
+ actions in the prebuilt screens; the host decides how to present sign-in.
54
+
37
55
  The default stylesheet:
38
56
 
39
57
  - has no Tailwind dependency;
@@ -109,6 +127,17 @@ By default, `useStack` is enabled:
109
127
 
110
128
  When enabled, the prebuilt screen can integrate with the current Expo Router stack, including native stack configuration, toolbar actions, back behavior, and native search UI.
111
129
 
130
+ > [!WARNING]
131
+ > If the filter toolbar button is intermittently broken, especially on iOS 26+, pass `Host` from `@expo/ui/swift-ui` to `BottomToolbarWrapper`:
132
+ >
133
+ > ```tsx
134
+ > import { Host } from "@expo/ui/swift-ui";
135
+ >
136
+ > <FeedbackScreen hooks={feedbackHooks} BottomToolbarWrapper={Host} />;
137
+ > ```
138
+ >
139
+ > The same `BottomToolbarWrapper={Host}` prop is available on `FeedbackStackLayout` for routed Expo navigation.
140
+
112
141
  Stack options can be customized through `StackOptions`:
113
142
 
114
143
  ```tsx
@@ -304,7 +333,7 @@ Or combine global defaults with per-kind behavior:
304
333
  - The Expo entry point additionally uses `expo-constants` for app `version`, `build` number, `application ID`, `Expo runtime version`, and execution `environment` when available.
305
334
  - Generic React Native apps can provide app `version` and `build` values through `additional`.
306
335
 
307
- Metadata is stored in separate `standard` and `additional` sections. It is omitted from list and search results and from non-moderator reads. When the host's server-side actor resolver identifies a moderator, `getEntry` includes the metadata and the entry detail screen shows a metadata viewer.
336
+ Metadata is stored in separate `standard` and `additional` sections. It is omitted from list and search results and from non-admin reads. When the host's server-side actor resolver identifies an admin, `getEntry` includes the metadata and the entry detail screen shows a metadata viewer.
308
337
 
309
338
  The platform collectors and `formatMetadataKey` helper are exported from their respective package entry points for custom integrations.
310
339