@cratis/showrunner.usher.react 0.0.0-bootstrap.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 (507) hide show
  1. package/Buttons/MyIssuesButton.tsx +78 -0
  2. package/Buttons/ReportButton.tsx +51 -0
  3. package/Buttons/buttonModels.ts +55 -0
  4. package/Buttons/index.ts +6 -0
  5. package/Correlation/CorrelationTracker.ts +51 -0
  6. package/Correlation/index.ts +5 -0
  7. package/Correlation/withCorrelationIdHeader.ts +44 -0
  8. package/Icons.tsx +29 -0
  9. package/Issues/IssueView/AccessPanel.tsx +85 -0
  10. package/Issues/IssueView/GrantAccessDialog.tsx +56 -0
  11. package/Issues/IssueView/IdentityPanel.tsx +38 -0
  12. package/Issues/IssueView/IssueActions.tsx +52 -0
  13. package/Issues/IssueView/IssueConversationPanel.tsx +89 -0
  14. package/Issues/IssueView/IssueHeader.tsx +69 -0
  15. package/Issues/IssueView/IssueView.tsx +74 -0
  16. package/Issues/IssueView/QuestionBanner.tsx +27 -0
  17. package/Issues/IssueView/ReopenIssueDialog.tsx +37 -0
  18. package/Issues/IssueView/ShareIdentityDialog.tsx +37 -0
  19. package/Issues/IssueView/StatusStrip.tsx +42 -0
  20. package/Issues/IssueView/SupportSessions.tsx +59 -0
  21. package/Issues/IssueView/index.ts +15 -0
  22. package/Issues/MyIssues/IssueList.tsx +78 -0
  23. package/Issues/MyIssues/MyIssuesDialog.tsx +64 -0
  24. package/Issues/MyIssues/MyIssuesNavigation.ts +61 -0
  25. package/Issues/MyIssues/index.ts +6 -0
  26. package/Issues/MyIssuesList.ts +33 -0
  27. package/Issues/accessStatus.ts +68 -0
  28. package/Issues/conversationMessages.ts +136 -0
  29. package/Issues/index.ts +12 -0
  30. package/Issues/issueStates.ts +69 -0
  31. package/Issues/sessionActivity.ts +43 -0
  32. package/Issues/useAccessStatus.ts +24 -0
  33. package/Issues/webAddress.ts +22 -0
  34. package/Labels/UsherLabels.ts +365 -0
  35. package/Labels/defaultUsherLabels.ts +178 -0
  36. package/Labels/format.ts +13 -0
  37. package/Labels/index.ts +7 -0
  38. package/Labels/resolveLabels.ts +36 -0
  39. package/Provider/UsherBoundary.tsx +30 -0
  40. package/Provider/UsherContext.ts +109 -0
  41. package/Provider/UsherProvider.tsx +134 -0
  42. package/Provider/index.ts +7 -0
  43. package/Provider/useUsher.ts +72 -0
  44. package/README.md +72 -0
  45. package/Reporting/AccessChoice.ts +107 -0
  46. package/Reporting/AccessFields.tsx +74 -0
  47. package/Reporting/AccessNotice.tsx +33 -0
  48. package/Reporting/ReportErrorDialog.tsx +94 -0
  49. package/Reporting/ReportIssueDialog.tsx +80 -0
  50. package/Reporting/ReportLimits.ts +24 -0
  51. package/Reporting/ReportSent.ts +12 -0
  52. package/Reporting/SentWithReport.tsx +37 -0
  53. package/Reporting/TechnicalDetails.tsx +60 -0
  54. package/Reporting/durationOptions.ts +31 -0
  55. package/Reporting/formatLocation.ts +27 -0
  56. package/Reporting/index.ts +16 -0
  57. package/Reporting/reportValues.ts +150 -0
  58. package/Reporting/useAccessChoice.ts +53 -0
  59. package/dist/cjs/Buttons/MyIssuesButton.d.ts +14 -0
  60. package/dist/cjs/Buttons/MyIssuesButton.d.ts.map +1 -0
  61. package/dist/cjs/Buttons/MyIssuesButton.js +76 -0
  62. package/dist/cjs/Buttons/MyIssuesButton.js.map +1 -0
  63. package/dist/cjs/Buttons/ReportButton.d.ts +8 -0
  64. package/dist/cjs/Buttons/ReportButton.d.ts.map +1 -0
  65. package/dist/cjs/Buttons/ReportButton.js +34 -0
  66. package/dist/cjs/Buttons/ReportButton.js.map +1 -0
  67. package/dist/cjs/Buttons/buttonModels.d.ts +10 -0
  68. package/dist/cjs/Buttons/buttonModels.d.ts.map +1 -0
  69. package/dist/cjs/Buttons/buttonModels.js +44 -0
  70. package/dist/cjs/Buttons/buttonModels.js.map +1 -0
  71. package/dist/cjs/Buttons/index.d.ts +4 -0
  72. package/dist/cjs/Buttons/index.d.ts.map +1 -0
  73. package/dist/cjs/Correlation/CorrelationTracker.d.ts +10 -0
  74. package/dist/cjs/Correlation/CorrelationTracker.d.ts.map +1 -0
  75. package/dist/cjs/Correlation/CorrelationTracker.js +50 -0
  76. package/dist/cjs/Correlation/CorrelationTracker.js.map +1 -0
  77. package/dist/cjs/Correlation/index.d.ts +3 -0
  78. package/dist/cjs/Correlation/index.d.ts.map +1 -0
  79. package/dist/cjs/Correlation/withCorrelationIdHeader.d.ts +6 -0
  80. package/dist/cjs/Correlation/withCorrelationIdHeader.d.ts.map +1 -0
  81. package/dist/cjs/Correlation/withCorrelationIdHeader.js +39 -0
  82. package/dist/cjs/Correlation/withCorrelationIdHeader.js.map +1 -0
  83. package/dist/cjs/Icons.d.ts +4 -0
  84. package/dist/cjs/Icons.d.ts.map +1 -0
  85. package/dist/cjs/Icons.js +53 -0
  86. package/dist/cjs/Icons.js.map +1 -0
  87. package/dist/cjs/Issues/IssueView/AccessPanel.d.ts +6 -0
  88. package/dist/cjs/Issues/IssueView/AccessPanel.d.ts.map +1 -0
  89. package/dist/cjs/Issues/IssueView/AccessPanel.js +124 -0
  90. package/dist/cjs/Issues/IssueView/AccessPanel.js.map +1 -0
  91. package/dist/cjs/Issues/IssueView/GrantAccessDialog.d.ts +6 -0
  92. package/dist/cjs/Issues/IssueView/GrantAccessDialog.d.ts.map +1 -0
  93. package/dist/cjs/Issues/IssueView/GrantAccessDialog.js +56 -0
  94. package/dist/cjs/Issues/IssueView/GrantAccessDialog.js.map +1 -0
  95. package/dist/cjs/Issues/IssueView/IdentityPanel.d.ts +6 -0
  96. package/dist/cjs/Issues/IssueView/IdentityPanel.d.ts.map +1 -0
  97. package/dist/cjs/Issues/IssueView/IdentityPanel.js +45 -0
  98. package/dist/cjs/Issues/IssueView/IdentityPanel.js.map +1 -0
  99. package/dist/cjs/Issues/IssueView/IssueActions.d.ts +6 -0
  100. package/dist/cjs/Issues/IssueView/IssueActions.d.ts.map +1 -0
  101. package/dist/cjs/Issues/IssueView/IssueActions.js +58 -0
  102. package/dist/cjs/Issues/IssueView/IssueActions.js.map +1 -0
  103. package/dist/cjs/Issues/IssueView/IssueConversationPanel.d.ts +6 -0
  104. package/dist/cjs/Issues/IssueView/IssueConversationPanel.d.ts.map +1 -0
  105. package/dist/cjs/Issues/IssueView/IssueConversationPanel.js +97 -0
  106. package/dist/cjs/Issues/IssueView/IssueConversationPanel.js.map +1 -0
  107. package/dist/cjs/Issues/IssueView/IssueHeader.d.ts +7 -0
  108. package/dist/cjs/Issues/IssueView/IssueHeader.d.ts.map +1 -0
  109. package/dist/cjs/Issues/IssueView/IssueHeader.js +94 -0
  110. package/dist/cjs/Issues/IssueView/IssueHeader.js.map +1 -0
  111. package/dist/cjs/Issues/IssueView/IssueView.d.ts +7 -0
  112. package/dist/cjs/Issues/IssueView/IssueView.d.ts.map +1 -0
  113. package/dist/cjs/Issues/IssueView/IssueView.js +85 -0
  114. package/dist/cjs/Issues/IssueView/IssueView.js.map +1 -0
  115. package/dist/cjs/Issues/IssueView/QuestionBanner.d.ts +5 -0
  116. package/dist/cjs/Issues/IssueView/QuestionBanner.d.ts.map +1 -0
  117. package/dist/cjs/Issues/IssueView/QuestionBanner.js +24 -0
  118. package/dist/cjs/Issues/IssueView/QuestionBanner.js.map +1 -0
  119. package/dist/cjs/Issues/IssueView/ReopenIssueDialog.d.ts +6 -0
  120. package/dist/cjs/Issues/IssueView/ReopenIssueDialog.d.ts.map +1 -0
  121. package/dist/cjs/Issues/IssueView/ReopenIssueDialog.js +34 -0
  122. package/dist/cjs/Issues/IssueView/ReopenIssueDialog.js.map +1 -0
  123. package/dist/cjs/Issues/IssueView/ShareIdentityDialog.d.ts +6 -0
  124. package/dist/cjs/Issues/IssueView/ShareIdentityDialog.d.ts.map +1 -0
  125. package/dist/cjs/Issues/IssueView/ShareIdentityDialog.js +32 -0
  126. package/dist/cjs/Issues/IssueView/ShareIdentityDialog.js.map +1 -0
  127. package/dist/cjs/Issues/IssueView/StatusStrip.d.ts +6 -0
  128. package/dist/cjs/Issues/IssueView/StatusStrip.d.ts.map +1 -0
  129. package/dist/cjs/Issues/IssueView/StatusStrip.js +31 -0
  130. package/dist/cjs/Issues/IssueView/StatusStrip.js.map +1 -0
  131. package/dist/cjs/Issues/IssueView/SupportSessions.d.ts +7 -0
  132. package/dist/cjs/Issues/IssueView/SupportSessions.d.ts.map +1 -0
  133. package/dist/cjs/Issues/IssueView/SupportSessions.js +62 -0
  134. package/dist/cjs/Issues/IssueView/SupportSessions.js.map +1 -0
  135. package/dist/cjs/Issues/IssueView/index.d.ts +13 -0
  136. package/dist/cjs/Issues/IssueView/index.d.ts.map +1 -0
  137. package/dist/cjs/Issues/MyIssues/IssueList.d.ts +7 -0
  138. package/dist/cjs/Issues/MyIssues/IssueList.d.ts.map +1 -0
  139. package/dist/cjs/Issues/MyIssues/IssueList.js +92 -0
  140. package/dist/cjs/Issues/MyIssues/IssueList.js.map +1 -0
  141. package/dist/cjs/Issues/MyIssues/MyIssuesDialog.d.ts +7 -0
  142. package/dist/cjs/Issues/MyIssues/MyIssuesDialog.d.ts.map +1 -0
  143. package/dist/cjs/Issues/MyIssues/MyIssuesDialog.js +79 -0
  144. package/dist/cjs/Issues/MyIssues/MyIssuesDialog.js.map +1 -0
  145. package/dist/cjs/Issues/MyIssues/MyIssuesNavigation.d.ts +21 -0
  146. package/dist/cjs/Issues/MyIssues/MyIssuesNavigation.d.ts.map +1 -0
  147. package/dist/cjs/Issues/MyIssues/MyIssuesNavigation.js +52 -0
  148. package/dist/cjs/Issues/MyIssues/MyIssuesNavigation.js.map +1 -0
  149. package/dist/cjs/Issues/MyIssues/index.d.ts +4 -0
  150. package/dist/cjs/Issues/MyIssues/index.d.ts.map +1 -0
  151. package/dist/cjs/Issues/MyIssuesList.d.ts +7 -0
  152. package/dist/cjs/Issues/MyIssuesList.d.ts.map +1 -0
  153. package/dist/cjs/Issues/MyIssuesList.js +33 -0
  154. package/dist/cjs/Issues/MyIssuesList.js.map +1 -0
  155. package/dist/cjs/Issues/accessStatus.d.ts +13 -0
  156. package/dist/cjs/Issues/accessStatus.d.ts.map +1 -0
  157. package/dist/cjs/Issues/accessStatus.js +60 -0
  158. package/dist/cjs/Issues/accessStatus.js.map +1 -0
  159. package/dist/cjs/Issues/conversationMessages.d.ts +14 -0
  160. package/dist/cjs/Issues/conversationMessages.d.ts.map +1 -0
  161. package/dist/cjs/Issues/conversationMessages.js +131 -0
  162. package/dist/cjs/Issues/conversationMessages.js.map +1 -0
  163. package/dist/cjs/Issues/index.d.ts +10 -0
  164. package/dist/cjs/Issues/index.d.ts.map +1 -0
  165. package/dist/cjs/Issues/issueStates.d.ts +12 -0
  166. package/dist/cjs/Issues/issueStates.d.ts.map +1 -0
  167. package/dist/cjs/Issues/issueStates.js +86 -0
  168. package/dist/cjs/Issues/issueStates.js.map +1 -0
  169. package/dist/cjs/Issues/sessionActivity.d.ts +8 -0
  170. package/dist/cjs/Issues/sessionActivity.d.ts.map +1 -0
  171. package/dist/cjs/Issues/sessionActivity.js +39 -0
  172. package/dist/cjs/Issues/sessionActivity.js.map +1 -0
  173. package/dist/cjs/Issues/useAccessStatus.d.ts +4 -0
  174. package/dist/cjs/Issues/useAccessStatus.d.ts.map +1 -0
  175. package/dist/cjs/Issues/useAccessStatus.js +30 -0
  176. package/dist/cjs/Issues/useAccessStatus.js.map +1 -0
  177. package/dist/cjs/Issues/webAddress.d.ts +2 -0
  178. package/dist/cjs/Issues/webAddress.d.ts.map +1 -0
  179. package/dist/cjs/Issues/webAddress.js +24 -0
  180. package/dist/cjs/Issues/webAddress.js.map +1 -0
  181. package/dist/cjs/Labels/UsherLabels.d.ts +177 -0
  182. package/dist/cjs/Labels/UsherLabels.d.ts.map +1 -0
  183. package/dist/cjs/Labels/defaultUsherLabels.d.ts +3 -0
  184. package/dist/cjs/Labels/defaultUsherLabels.d.ts.map +1 -0
  185. package/dist/cjs/Labels/defaultUsherLabels.js +179 -0
  186. package/dist/cjs/Labels/defaultUsherLabels.js.map +1 -0
  187. package/dist/cjs/Labels/format.d.ts +2 -0
  188. package/dist/cjs/Labels/format.d.ts.map +1 -0
  189. package/dist/cjs/Labels/format.js +15 -0
  190. package/dist/cjs/Labels/format.js.map +1 -0
  191. package/dist/cjs/Labels/index.d.ts +5 -0
  192. package/dist/cjs/Labels/index.d.ts.map +1 -0
  193. package/dist/cjs/Labels/resolveLabels.d.ts +3 -0
  194. package/dist/cjs/Labels/resolveLabels.d.ts.map +1 -0
  195. package/dist/cjs/Labels/resolveLabels.js +35 -0
  196. package/dist/cjs/Labels/resolveLabels.js.map +1 -0
  197. package/dist/cjs/Provider/UsherBoundary.d.ts +6 -0
  198. package/dist/cjs/Provider/UsherBoundary.d.ts.map +1 -0
  199. package/dist/cjs/Provider/UsherBoundary.js +24 -0
  200. package/dist/cjs/Provider/UsherBoundary.js.map +1 -0
  201. package/dist/cjs/Provider/UsherContext.d.ts +24 -0
  202. package/dist/cjs/Provider/UsherContext.d.ts.map +1 -0
  203. package/dist/cjs/Provider/UsherContext.js +41 -0
  204. package/dist/cjs/Provider/UsherContext.js.map +1 -0
  205. package/dist/cjs/Provider/UsherProvider.d.ts +14 -0
  206. package/dist/cjs/Provider/UsherProvider.d.ts.map +1 -0
  207. package/dist/cjs/Provider/UsherProvider.js +122 -0
  208. package/dist/cjs/Provider/UsherProvider.js.map +1 -0
  209. package/dist/cjs/Provider/index.d.ts +5 -0
  210. package/dist/cjs/Provider/index.d.ts.map +1 -0
  211. package/dist/cjs/Provider/useUsher.d.ts +13 -0
  212. package/dist/cjs/Provider/useUsher.d.ts.map +1 -0
  213. package/dist/cjs/Provider/useUsher.js +31 -0
  214. package/dist/cjs/Provider/useUsher.js.map +1 -0
  215. package/dist/cjs/Reporting/AccessChoice.d.ts +13 -0
  216. package/dist/cjs/Reporting/AccessChoice.d.ts.map +1 -0
  217. package/dist/cjs/Reporting/AccessChoice.js +113 -0
  218. package/dist/cjs/Reporting/AccessChoice.js.map +1 -0
  219. package/dist/cjs/Reporting/AccessFields.d.ts +12 -0
  220. package/dist/cjs/Reporting/AccessFields.d.ts.map +1 -0
  221. package/dist/cjs/Reporting/AccessFields.js +79 -0
  222. package/dist/cjs/Reporting/AccessFields.js.map +1 -0
  223. package/dist/cjs/Reporting/AccessNotice.d.ts +7 -0
  224. package/dist/cjs/Reporting/AccessNotice.d.ts.map +1 -0
  225. package/dist/cjs/Reporting/AccessNotice.js +28 -0
  226. package/dist/cjs/Reporting/AccessNotice.js.map +1 -0
  227. package/dist/cjs/Reporting/ReportErrorDialog.d.ts +9 -0
  228. package/dist/cjs/Reporting/ReportErrorDialog.d.ts.map +1 -0
  229. package/dist/cjs/Reporting/ReportErrorDialog.js +87 -0
  230. package/dist/cjs/Reporting/ReportErrorDialog.js.map +1 -0
  231. package/dist/cjs/Reporting/ReportIssueDialog.d.ts +8 -0
  232. package/dist/cjs/Reporting/ReportIssueDialog.d.ts.map +1 -0
  233. package/dist/cjs/Reporting/ReportIssueDialog.js +81 -0
  234. package/dist/cjs/Reporting/ReportIssueDialog.js.map +1 -0
  235. package/dist/cjs/Reporting/ReportLimits.d.ts +8 -0
  236. package/dist/cjs/Reporting/ReportLimits.d.ts.map +1 -0
  237. package/dist/cjs/Reporting/ReportLimits.js +19 -0
  238. package/dist/cjs/Reporting/ReportLimits.js.map +1 -0
  239. package/dist/cjs/Reporting/ReportSent.d.ts +5 -0
  240. package/dist/cjs/Reporting/ReportSent.d.ts.map +1 -0
  241. package/dist/cjs/Reporting/SentWithReport.d.ts +7 -0
  242. package/dist/cjs/Reporting/SentWithReport.d.ts.map +1 -0
  243. package/dist/cjs/Reporting/SentWithReport.js +40 -0
  244. package/dist/cjs/Reporting/SentWithReport.js.map +1 -0
  245. package/dist/cjs/Reporting/TechnicalDetails.d.ts +9 -0
  246. package/dist/cjs/Reporting/TechnicalDetails.d.ts.map +1 -0
  247. package/dist/cjs/Reporting/TechnicalDetails.js +75 -0
  248. package/dist/cjs/Reporting/TechnicalDetails.js.map +1 -0
  249. package/dist/cjs/Reporting/durationOptions.d.ts +9 -0
  250. package/dist/cjs/Reporting/durationOptions.d.ts.map +1 -0
  251. package/dist/cjs/Reporting/durationOptions.js +29 -0
  252. package/dist/cjs/Reporting/durationOptions.js.map +1 -0
  253. package/dist/cjs/Reporting/formatLocation.d.ts +7 -0
  254. package/dist/cjs/Reporting/formatLocation.d.ts.map +1 -0
  255. package/dist/cjs/Reporting/formatLocation.js +23 -0
  256. package/dist/cjs/Reporting/formatLocation.js.map +1 -0
  257. package/dist/cjs/Reporting/index.d.ts +14 -0
  258. package/dist/cjs/Reporting/index.d.ts.map +1 -0
  259. package/dist/cjs/Reporting/reportValues.d.ts +22 -0
  260. package/dist/cjs/Reporting/reportValues.d.ts.map +1 -0
  261. package/dist/cjs/Reporting/reportValues.js +124 -0
  262. package/dist/cjs/Reporting/reportValues.js.map +1 -0
  263. package/dist/cjs/Reporting/useAccessChoice.d.ts +13 -0
  264. package/dist/cjs/Reporting/useAccessChoice.d.ts.map +1 -0
  265. package/dist/cjs/Reporting/useAccessChoice.js +41 -0
  266. package/dist/cjs/Reporting/useAccessChoice.js.map +1 -0
  267. package/dist/cjs/index.d.ts +8 -0
  268. package/dist/cjs/index.d.ts.map +1 -0
  269. package/dist/cjs/index.js +133 -0
  270. package/dist/cjs/index.js.map +1 -0
  271. package/dist/cjs/package.json +3 -0
  272. package/dist/esm/Buttons/MyIssuesButton.d.ts +14 -0
  273. package/dist/esm/Buttons/MyIssuesButton.d.ts.map +1 -0
  274. package/dist/esm/Buttons/MyIssuesButton.js +73 -0
  275. package/dist/esm/Buttons/MyIssuesButton.js.map +1 -0
  276. package/dist/esm/Buttons/ReportButton.d.ts +8 -0
  277. package/dist/esm/Buttons/ReportButton.d.ts.map +1 -0
  278. package/dist/esm/Buttons/ReportButton.js +32 -0
  279. package/dist/esm/Buttons/ReportButton.js.map +1 -0
  280. package/dist/esm/Buttons/buttonModels.d.ts +10 -0
  281. package/dist/esm/Buttons/buttonModels.d.ts.map +1 -0
  282. package/dist/esm/Buttons/buttonModels.js +41 -0
  283. package/dist/esm/Buttons/buttonModels.js.map +1 -0
  284. package/dist/esm/Buttons/index.d.ts +4 -0
  285. package/dist/esm/Buttons/index.d.ts.map +1 -0
  286. package/dist/esm/Buttons/index.js +4 -0
  287. package/dist/esm/Buttons/index.js.map +1 -0
  288. package/dist/esm/Correlation/CorrelationTracker.d.ts +10 -0
  289. package/dist/esm/Correlation/CorrelationTracker.d.ts.map +1 -0
  290. package/dist/esm/Correlation/CorrelationTracker.js +48 -0
  291. package/dist/esm/Correlation/CorrelationTracker.js.map +1 -0
  292. package/dist/esm/Correlation/index.d.ts +3 -0
  293. package/dist/esm/Correlation/index.d.ts.map +1 -0
  294. package/dist/esm/Correlation/index.js +3 -0
  295. package/dist/esm/Correlation/index.js.map +1 -0
  296. package/dist/esm/Correlation/withCorrelationIdHeader.d.ts +6 -0
  297. package/dist/esm/Correlation/withCorrelationIdHeader.d.ts.map +1 -0
  298. package/dist/esm/Correlation/withCorrelationIdHeader.js +36 -0
  299. package/dist/esm/Correlation/withCorrelationIdHeader.js.map +1 -0
  300. package/dist/esm/Icons.d.ts +4 -0
  301. package/dist/esm/Icons.d.ts.map +1 -0
  302. package/dist/esm/Icons.js +49 -0
  303. package/dist/esm/Icons.js.map +1 -0
  304. package/dist/esm/Issues/IssueView/AccessPanel.d.ts +6 -0
  305. package/dist/esm/Issues/IssueView/AccessPanel.d.ts.map +1 -0
  306. package/dist/esm/Issues/IssueView/AccessPanel.js +122 -0
  307. package/dist/esm/Issues/IssueView/AccessPanel.js.map +1 -0
  308. package/dist/esm/Issues/IssueView/GrantAccessDialog.d.ts +6 -0
  309. package/dist/esm/Issues/IssueView/GrantAccessDialog.d.ts.map +1 -0
  310. package/dist/esm/Issues/IssueView/GrantAccessDialog.js +54 -0
  311. package/dist/esm/Issues/IssueView/GrantAccessDialog.js.map +1 -0
  312. package/dist/esm/Issues/IssueView/IdentityPanel.d.ts +6 -0
  313. package/dist/esm/Issues/IssueView/IdentityPanel.d.ts.map +1 -0
  314. package/dist/esm/Issues/IssueView/IdentityPanel.js +43 -0
  315. package/dist/esm/Issues/IssueView/IdentityPanel.js.map +1 -0
  316. package/dist/esm/Issues/IssueView/IssueActions.d.ts +6 -0
  317. package/dist/esm/Issues/IssueView/IssueActions.d.ts.map +1 -0
  318. package/dist/esm/Issues/IssueView/IssueActions.js +56 -0
  319. package/dist/esm/Issues/IssueView/IssueActions.js.map +1 -0
  320. package/dist/esm/Issues/IssueView/IssueConversationPanel.d.ts +6 -0
  321. package/dist/esm/Issues/IssueView/IssueConversationPanel.d.ts.map +1 -0
  322. package/dist/esm/Issues/IssueView/IssueConversationPanel.js +95 -0
  323. package/dist/esm/Issues/IssueView/IssueConversationPanel.js.map +1 -0
  324. package/dist/esm/Issues/IssueView/IssueHeader.d.ts +7 -0
  325. package/dist/esm/Issues/IssueView/IssueHeader.d.ts.map +1 -0
  326. package/dist/esm/Issues/IssueView/IssueHeader.js +92 -0
  327. package/dist/esm/Issues/IssueView/IssueHeader.js.map +1 -0
  328. package/dist/esm/Issues/IssueView/IssueView.d.ts +7 -0
  329. package/dist/esm/Issues/IssueView/IssueView.d.ts.map +1 -0
  330. package/dist/esm/Issues/IssueView/IssueView.js +83 -0
  331. package/dist/esm/Issues/IssueView/IssueView.js.map +1 -0
  332. package/dist/esm/Issues/IssueView/QuestionBanner.d.ts +5 -0
  333. package/dist/esm/Issues/IssueView/QuestionBanner.d.ts.map +1 -0
  334. package/dist/esm/Issues/IssueView/QuestionBanner.js +22 -0
  335. package/dist/esm/Issues/IssueView/QuestionBanner.js.map +1 -0
  336. package/dist/esm/Issues/IssueView/ReopenIssueDialog.d.ts +6 -0
  337. package/dist/esm/Issues/IssueView/ReopenIssueDialog.d.ts.map +1 -0
  338. package/dist/esm/Issues/IssueView/ReopenIssueDialog.js +32 -0
  339. package/dist/esm/Issues/IssueView/ReopenIssueDialog.js.map +1 -0
  340. package/dist/esm/Issues/IssueView/ShareIdentityDialog.d.ts +6 -0
  341. package/dist/esm/Issues/IssueView/ShareIdentityDialog.d.ts.map +1 -0
  342. package/dist/esm/Issues/IssueView/ShareIdentityDialog.js +30 -0
  343. package/dist/esm/Issues/IssueView/ShareIdentityDialog.js.map +1 -0
  344. package/dist/esm/Issues/IssueView/StatusStrip.d.ts +6 -0
  345. package/dist/esm/Issues/IssueView/StatusStrip.d.ts.map +1 -0
  346. package/dist/esm/Issues/IssueView/StatusStrip.js +29 -0
  347. package/dist/esm/Issues/IssueView/StatusStrip.js.map +1 -0
  348. package/dist/esm/Issues/IssueView/SupportSessions.d.ts +7 -0
  349. package/dist/esm/Issues/IssueView/SupportSessions.d.ts.map +1 -0
  350. package/dist/esm/Issues/IssueView/SupportSessions.js +60 -0
  351. package/dist/esm/Issues/IssueView/SupportSessions.js.map +1 -0
  352. package/dist/esm/Issues/IssueView/index.d.ts +13 -0
  353. package/dist/esm/Issues/IssueView/index.d.ts.map +1 -0
  354. package/dist/esm/Issues/IssueView/index.js +13 -0
  355. package/dist/esm/Issues/IssueView/index.js.map +1 -0
  356. package/dist/esm/Issues/MyIssues/IssueList.d.ts +7 -0
  357. package/dist/esm/Issues/MyIssues/IssueList.d.ts.map +1 -0
  358. package/dist/esm/Issues/MyIssues/IssueList.js +90 -0
  359. package/dist/esm/Issues/MyIssues/IssueList.js.map +1 -0
  360. package/dist/esm/Issues/MyIssues/MyIssuesDialog.d.ts +7 -0
  361. package/dist/esm/Issues/MyIssues/MyIssuesDialog.d.ts.map +1 -0
  362. package/dist/esm/Issues/MyIssues/MyIssuesDialog.js +77 -0
  363. package/dist/esm/Issues/MyIssues/MyIssuesDialog.js.map +1 -0
  364. package/dist/esm/Issues/MyIssues/MyIssuesNavigation.d.ts +21 -0
  365. package/dist/esm/Issues/MyIssues/MyIssuesNavigation.d.ts.map +1 -0
  366. package/dist/esm/Issues/MyIssues/MyIssuesNavigation.js +49 -0
  367. package/dist/esm/Issues/MyIssues/MyIssuesNavigation.js.map +1 -0
  368. package/dist/esm/Issues/MyIssues/index.d.ts +4 -0
  369. package/dist/esm/Issues/MyIssues/index.d.ts.map +1 -0
  370. package/dist/esm/Issues/MyIssues/index.js +4 -0
  371. package/dist/esm/Issues/MyIssues/index.js.map +1 -0
  372. package/dist/esm/Issues/MyIssuesList.d.ts +7 -0
  373. package/dist/esm/Issues/MyIssuesList.d.ts.map +1 -0
  374. package/dist/esm/Issues/MyIssuesList.js +29 -0
  375. package/dist/esm/Issues/MyIssuesList.js.map +1 -0
  376. package/dist/esm/Issues/accessStatus.d.ts +13 -0
  377. package/dist/esm/Issues/accessStatus.d.ts.map +1 -0
  378. package/dist/esm/Issues/accessStatus.js +54 -0
  379. package/dist/esm/Issues/accessStatus.js.map +1 -0
  380. package/dist/esm/Issues/conversationMessages.d.ts +14 -0
  381. package/dist/esm/Issues/conversationMessages.d.ts.map +1 -0
  382. package/dist/esm/Issues/conversationMessages.js +125 -0
  383. package/dist/esm/Issues/conversationMessages.js.map +1 -0
  384. package/dist/esm/Issues/index.d.ts +10 -0
  385. package/dist/esm/Issues/index.d.ts.map +1 -0
  386. package/dist/esm/Issues/index.js +10 -0
  387. package/dist/esm/Issues/index.js.map +1 -0
  388. package/dist/esm/Issues/issueStates.d.ts +12 -0
  389. package/dist/esm/Issues/issueStates.d.ts.map +1 -0
  390. package/dist/esm/Issues/issueStates.js +81 -0
  391. package/dist/esm/Issues/issueStates.js.map +1 -0
  392. package/dist/esm/Issues/sessionActivity.d.ts +8 -0
  393. package/dist/esm/Issues/sessionActivity.d.ts.map +1 -0
  394. package/dist/esm/Issues/sessionActivity.js +37 -0
  395. package/dist/esm/Issues/sessionActivity.js.map +1 -0
  396. package/dist/esm/Issues/useAccessStatus.d.ts +4 -0
  397. package/dist/esm/Issues/useAccessStatus.d.ts.map +1 -0
  398. package/dist/esm/Issues/useAccessStatus.js +28 -0
  399. package/dist/esm/Issues/useAccessStatus.js.map +1 -0
  400. package/dist/esm/Issues/webAddress.d.ts +2 -0
  401. package/dist/esm/Issues/webAddress.d.ts.map +1 -0
  402. package/dist/esm/Issues/webAddress.js +22 -0
  403. package/dist/esm/Issues/webAddress.js.map +1 -0
  404. package/dist/esm/Labels/UsherLabels.d.ts +177 -0
  405. package/dist/esm/Labels/UsherLabels.d.ts.map +1 -0
  406. package/dist/esm/Labels/UsherLabels.js +2 -0
  407. package/dist/esm/Labels/UsherLabels.js.map +1 -0
  408. package/dist/esm/Labels/defaultUsherLabels.d.ts +3 -0
  409. package/dist/esm/Labels/defaultUsherLabels.d.ts.map +1 -0
  410. package/dist/esm/Labels/defaultUsherLabels.js +177 -0
  411. package/dist/esm/Labels/defaultUsherLabels.js.map +1 -0
  412. package/dist/esm/Labels/format.d.ts +2 -0
  413. package/dist/esm/Labels/format.d.ts.map +1 -0
  414. package/dist/esm/Labels/format.js +13 -0
  415. package/dist/esm/Labels/format.js.map +1 -0
  416. package/dist/esm/Labels/index.d.ts +5 -0
  417. package/dist/esm/Labels/index.d.ts.map +1 -0
  418. package/dist/esm/Labels/index.js +5 -0
  419. package/dist/esm/Labels/index.js.map +1 -0
  420. package/dist/esm/Labels/resolveLabels.d.ts +3 -0
  421. package/dist/esm/Labels/resolveLabels.d.ts.map +1 -0
  422. package/dist/esm/Labels/resolveLabels.js +33 -0
  423. package/dist/esm/Labels/resolveLabels.js.map +1 -0
  424. package/dist/esm/Provider/UsherBoundary.d.ts +6 -0
  425. package/dist/esm/Provider/UsherBoundary.d.ts.map +1 -0
  426. package/dist/esm/Provider/UsherBoundary.js +22 -0
  427. package/dist/esm/Provider/UsherBoundary.js.map +1 -0
  428. package/dist/esm/Provider/UsherContext.d.ts +24 -0
  429. package/dist/esm/Provider/UsherContext.d.ts.map +1 -0
  430. package/dist/esm/Provider/UsherContext.js +36 -0
  431. package/dist/esm/Provider/UsherContext.js.map +1 -0
  432. package/dist/esm/Provider/UsherProvider.d.ts +14 -0
  433. package/dist/esm/Provider/UsherProvider.d.ts.map +1 -0
  434. package/dist/esm/Provider/UsherProvider.js +120 -0
  435. package/dist/esm/Provider/UsherProvider.js.map +1 -0
  436. package/dist/esm/Provider/index.d.ts +5 -0
  437. package/dist/esm/Provider/index.d.ts.map +1 -0
  438. package/dist/esm/Provider/index.js +5 -0
  439. package/dist/esm/Provider/index.js.map +1 -0
  440. package/dist/esm/Provider/useUsher.d.ts +13 -0
  441. package/dist/esm/Provider/useUsher.d.ts.map +1 -0
  442. package/dist/esm/Provider/useUsher.js +29 -0
  443. package/dist/esm/Provider/useUsher.js.map +1 -0
  444. package/dist/esm/Reporting/AccessChoice.d.ts +13 -0
  445. package/dist/esm/Reporting/AccessChoice.d.ts.map +1 -0
  446. package/dist/esm/Reporting/AccessChoice.js +106 -0
  447. package/dist/esm/Reporting/AccessChoice.js.map +1 -0
  448. package/dist/esm/Reporting/AccessFields.d.ts +12 -0
  449. package/dist/esm/Reporting/AccessFields.d.ts.map +1 -0
  450. package/dist/esm/Reporting/AccessFields.js +77 -0
  451. package/dist/esm/Reporting/AccessFields.js.map +1 -0
  452. package/dist/esm/Reporting/AccessNotice.d.ts +7 -0
  453. package/dist/esm/Reporting/AccessNotice.d.ts.map +1 -0
  454. package/dist/esm/Reporting/AccessNotice.js +26 -0
  455. package/dist/esm/Reporting/AccessNotice.js.map +1 -0
  456. package/dist/esm/Reporting/ReportErrorDialog.d.ts +9 -0
  457. package/dist/esm/Reporting/ReportErrorDialog.d.ts.map +1 -0
  458. package/dist/esm/Reporting/ReportErrorDialog.js +85 -0
  459. package/dist/esm/Reporting/ReportErrorDialog.js.map +1 -0
  460. package/dist/esm/Reporting/ReportIssueDialog.d.ts +8 -0
  461. package/dist/esm/Reporting/ReportIssueDialog.d.ts.map +1 -0
  462. package/dist/esm/Reporting/ReportIssueDialog.js +79 -0
  463. package/dist/esm/Reporting/ReportIssueDialog.js.map +1 -0
  464. package/dist/esm/Reporting/ReportLimits.d.ts +8 -0
  465. package/dist/esm/Reporting/ReportLimits.d.ts.map +1 -0
  466. package/dist/esm/Reporting/ReportLimits.js +17 -0
  467. package/dist/esm/Reporting/ReportLimits.js.map +1 -0
  468. package/dist/esm/Reporting/ReportSent.d.ts +5 -0
  469. package/dist/esm/Reporting/ReportSent.d.ts.map +1 -0
  470. package/dist/esm/Reporting/ReportSent.js +2 -0
  471. package/dist/esm/Reporting/ReportSent.js.map +1 -0
  472. package/dist/esm/Reporting/SentWithReport.d.ts +7 -0
  473. package/dist/esm/Reporting/SentWithReport.d.ts.map +1 -0
  474. package/dist/esm/Reporting/SentWithReport.js +38 -0
  475. package/dist/esm/Reporting/SentWithReport.js.map +1 -0
  476. package/dist/esm/Reporting/TechnicalDetails.d.ts +9 -0
  477. package/dist/esm/Reporting/TechnicalDetails.d.ts.map +1 -0
  478. package/dist/esm/Reporting/TechnicalDetails.js +73 -0
  479. package/dist/esm/Reporting/TechnicalDetails.js.map +1 -0
  480. package/dist/esm/Reporting/durationOptions.d.ts +9 -0
  481. package/dist/esm/Reporting/durationOptions.d.ts.map +1 -0
  482. package/dist/esm/Reporting/durationOptions.js +27 -0
  483. package/dist/esm/Reporting/durationOptions.js.map +1 -0
  484. package/dist/esm/Reporting/formatLocation.d.ts +7 -0
  485. package/dist/esm/Reporting/formatLocation.d.ts.map +1 -0
  486. package/dist/esm/Reporting/formatLocation.js +21 -0
  487. package/dist/esm/Reporting/formatLocation.js.map +1 -0
  488. package/dist/esm/Reporting/index.d.ts +14 -0
  489. package/dist/esm/Reporting/index.d.ts.map +1 -0
  490. package/dist/esm/Reporting/index.js +14 -0
  491. package/dist/esm/Reporting/index.js.map +1 -0
  492. package/dist/esm/Reporting/reportValues.d.ts +22 -0
  493. package/dist/esm/Reporting/reportValues.d.ts.map +1 -0
  494. package/dist/esm/Reporting/reportValues.js +116 -0
  495. package/dist/esm/Reporting/reportValues.js.map +1 -0
  496. package/dist/esm/Reporting/useAccessChoice.d.ts +13 -0
  497. package/dist/esm/Reporting/useAccessChoice.d.ts.map +1 -0
  498. package/dist/esm/Reporting/useAccessChoice.js +39 -0
  499. package/dist/esm/Reporting/useAccessChoice.js.map +1 -0
  500. package/dist/esm/index.d.ts +8 -0
  501. package/dist/esm/index.d.ts.map +1 -0
  502. package/dist/esm/index.js +48 -0
  503. package/dist/esm/index.js.map +1 -0
  504. package/dist/esm/package.json +3 -0
  505. package/index.ts +10 -0
  506. package/package.json +85 -0
  507. package/styles.css +320 -0
@@ -0,0 +1,56 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var CommandDialog = require('@cratis/components/CommandDialog');
5
+ var CommandForm = require('@cratis/components/CommandForm');
6
+ var Dialogs = require('@cratis/components/Dialogs');
7
+ var showrunner_usher = require('@cratis/showrunner.usher');
8
+ var react = require('react');
9
+ var UsherContext = require('../../Provider/UsherContext.js');
10
+ var AccessNotice = require('../../Reporting/AccessNotice.js');
11
+ var durationOptions = require('../../Reporting/durationOptions.js');
12
+
13
+ /**
14
+ * Lets the reporter grant support access to sign in as them on an issue for a while, stating until when.
15
+ */ const GrantAccessDialog = ({ issueId })=>{
16
+ const labels = UsherContext.useUsherLabels();
17
+ const noticeId = react.useId();
18
+ const [duration, setDuration] = react.useState(showrunner_usher.AccessDuration.oneDay);
19
+ return /*#__PURE__*/ jsxRuntime.jsx(CommandDialog.CommandDialog, {
20
+ command: showrunner_usher.GrantAccess,
21
+ title: labels.accessPanel.grantTitle,
22
+ okLabel: labels.accessPanel.grantConfirm,
23
+ cancelLabel: labels.common.cancel,
24
+ closeAriaLabel: labels.common.close,
25
+ initialFocus: Dialogs.DialogInitialFocus.Content,
26
+ initialValues: {
27
+ issueId,
28
+ accessDuration: showrunner_usher.AccessDuration.oneDay
29
+ },
30
+ onFieldChange: (_command, fieldName, _oldValue, newValue)=>{
31
+ if (fieldName === 'accessDuration') {
32
+ setDuration(Number(newValue));
33
+ }
34
+ },
35
+ children: /*#__PURE__*/ jsxRuntime.jsxs("div", {
36
+ className: "usher-report-form",
37
+ children: [
38
+ /*#__PURE__*/ jsxRuntime.jsx(CommandForm.DropdownField, {
39
+ value: (command)=>command.accessDuration,
40
+ title: labels.access.duration,
41
+ "aria-describedby": noticeId,
42
+ options: durationOptions.durationOptions(labels),
43
+ optionValue: "value",
44
+ optionLabel: "label"
45
+ }),
46
+ /*#__PURE__*/ jsxRuntime.jsx(AccessNotice.AccessNotice, {
47
+ id: noticeId,
48
+ duration: duration
49
+ })
50
+ ]
51
+ })
52
+ });
53
+ };
54
+
55
+ exports.GrantAccessDialog = GrantAccessDialog;
56
+ //# sourceMappingURL=GrantAccessDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GrantAccessDialog.js","sources":["../../../../Issues/IssueView/GrantAccessDialog.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { CommandDialog } from '@cratis/components/CommandDialog';\nimport { DropdownField } from '@cratis/components/CommandForm';\nimport { DialogInitialFocus } from '@cratis/components/Dialogs';\nimport { Guid } from '@cratis/fundamentals';\nimport { AccessDuration, GrantAccess } from '@cratis/showrunner.usher';\nimport { useId, useState } from 'react';\nimport { useUsherLabels } from '../../Provider/UsherContext.js';\nimport { AccessNotice } from '../../Reporting/AccessNotice.js';\nimport { durationOptions } from '../../Reporting/durationOptions.js';\n\n/**\n * Props for {@link GrantAccessDialog}.\n */\nexport interface GrantAccessDialogProps {\n /** The issue. */\n issueId: Guid;\n}\n\n/**\n * Lets the reporter grant support access to sign in as them on an issue for a while, stating until when.\n */\nexport const GrantAccessDialog = ({ issueId }: GrantAccessDialogProps) => {\n const labels = useUsherLabels();\n const noticeId = useId();\n const [duration, setDuration] = useState(AccessDuration.oneDay);\n\n return (\n <CommandDialog<GrantAccess>\n command={GrantAccess}\n title={labels.accessPanel.grantTitle}\n okLabel={labels.accessPanel.grantConfirm}\n cancelLabel={labels.common.cancel}\n closeAriaLabel={labels.common.close}\n initialFocus={DialogInitialFocus.Content}\n initialValues={{ issueId, accessDuration: AccessDuration.oneDay }}\n onFieldChange={(_command, fieldName, _oldValue, newValue) => {\n if (fieldName === 'accessDuration') {\n setDuration(Number(newValue) as AccessDuration);\n }\n }}>\n <div className='usher-report-form'>\n <DropdownField<GrantAccess>\n value={command => command.accessDuration}\n title={labels.access.duration}\n aria-describedby={noticeId}\n options={durationOptions(labels)}\n optionValue='value'\n optionLabel='label' />\n <AccessNotice id={noticeId} duration={duration} />\n </div>\n </CommandDialog>\n );\n};\n"],"names":["GrantAccessDialog","issueId","labels","useUsherLabels","noticeId","useId","duration","setDuration","useState","AccessDuration","oneDay","_jsx","CommandDialog","command","GrantAccess","title","accessPanel","grantTitle","okLabel","grantConfirm","cancelLabel","common","cancel","closeAriaLabel","close","initialFocus","DialogInitialFocus","Content","initialValues","accessDuration","onFieldChange","_command","fieldName","_oldValue","newValue","Number","_jsxs","div","className","DropdownField","value","access","aria-describedby","options","durationOptions","optionValue","optionLabel","AccessNotice","id"],"mappings":";;;;;;;;;;;;AAqBA;;AAEC,IACM,MAAMA,iBAAAA,GAAoB,CAAC,EAAEC,OAAO,EAA0B,GAAA;AACjE,IAAA,MAAMC,MAAAA,GAASC,2BAAAA,EAAAA;AACf,IAAA,MAAMC,QAAAA,GAAWC,WAAAA,EAAAA;AACjB,IAAA,MAAM,CAACC,QAAAA,EAAUC,WAAAA,CAAY,GAAGC,cAAAA,CAASC,gCAAeC,MAAM,CAAA;AAE9D,IAAA,qBACIC,cAAA,CAACC,2BAAAA,EAAAA;QACGC,OAAAA,EAASC,4BAAAA;QACTC,KAAAA,EAAOb,MAAAA,CAAOc,WAAW,CAACC,UAAU;QACpCC,OAAAA,EAAShB,MAAAA,CAAOc,WAAW,CAACG,YAAY;QACxCC,WAAAA,EAAalB,MAAAA,CAAOmB,MAAM,CAACC,MAAM;QACjCC,cAAAA,EAAgBrB,MAAAA,CAAOmB,MAAM,CAACG,KAAK;AACnCC,QAAAA,YAAAA,EAAcC,2BAAmBC,OAAO;QACxCC,aAAAA,EAAe;AAAE3B,YAAAA,OAAAA;AAAS4B,YAAAA,cAAAA,EAAgBpB,gCAAeC;AAAO,SAAA;QAChEoB,aAAAA,EAAe,CAACC,QAAAA,EAAUC,SAAAA,EAAWC,SAAAA,EAAWC,QAAAA,GAAAA;AAC5C,YAAA,IAAIF,cAAc,gBAAA,EAAkB;AAChCzB,gBAAAA,WAAAA,CAAY4B,MAAAA,CAAOD,QAAAA,CAAAA,CAAAA;AACvB,YAAA;AACJ,QAAA,CAAA;AACA,QAAA,QAAA,gBAAAE,eAAA,CAACC,KAAAA,EAAAA;YAAIC,SAAAA,EAAU,mBAAA;;8BACX3B,cAAA,CAAC4B,yBAAAA,EAAAA;oBACGC,KAAAA,EAAO3B,CAAAA,OAAAA,GAAWA,OAAAA,CAAQgB,cAAc;oBACxCd,KAAAA,EAAOb,MAAAA,CAAOuC,MAAM,CAACnC,QAAQ;oBAC7BoC,kBAAAA,EAAkBtC,QAAAA;AAClBuC,oBAAAA,OAAAA,EAASC,+BAAAA,CAAgB1C,MAAAA,CAAAA;oBACzB2C,WAAAA,EAAY,OAAA;oBACZC,WAAAA,EAAY;;8BAChBnC,cAAA,CAACoC,yBAAAA,EAAAA;oBAAaC,EAAAA,EAAI5C,QAAAA;oBAAUE,QAAAA,EAAUA;;;;;AAItD;;"}
@@ -0,0 +1,6 @@
1
+ import { IssueConversation } from '@cratis/showrunner.usher';
2
+ export interface IdentityPanelProps {
3
+ issue: IssueConversation;
4
+ }
5
+ export declare const IdentityPanel: ({ issue }: IdentityPanelProps) => import("react").JSX.Element;
6
+ //# sourceMappingURL=IdentityPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IdentityPanel.d.ts","sourceRoot":"","sources":["../../../../Issues/IssueView/IdentityPanel.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,iBAAiB,EAAc,MAAM,0BAA0B,CAAC;AAQzE,MAAM,WAAW,kBAAkB;IAE/B,KAAK,EAAE,iBAAiB,CAAC;CAC5B;AAKD,eAAO,MAAM,aAAa,GAAI,WAAW,kBAAkB,gCAgB1D,CAAC"}
@@ -0,0 +1,45 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var dialogs = require('@cratis/arc.react/dialogs');
5
+ var Common = require('@cratis/components/Common');
6
+ var showrunner_usher = require('@cratis/showrunner.usher');
7
+ var react = require('react');
8
+ var UsherContext = require('../../Provider/UsherContext.js');
9
+ var ShareIdentityDialog = require('./ShareIdentityDialog.js');
10
+
11
+ /**
12
+ * Shows whether support knows who the reporter is, and lets them share it when it does not.
13
+ */ const IdentityPanel = ({ issue })=>{
14
+ const labels = UsherContext.useUsherLabels();
15
+ const headingId = react.useId();
16
+ const [ShareDialog, showShareDialog] = dialogs.useDialog(ShareIdentityDialog.ShareIdentityDialog);
17
+ const canShare = !issue.identityShared && issue.state !== showrunner_usher.IssueState.withdrawn;
18
+ return /*#__PURE__*/ jsxRuntime.jsxs("section", {
19
+ className: "usher-panel",
20
+ "aria-labelledby": headingId,
21
+ children: [
22
+ /*#__PURE__*/ jsxRuntime.jsx("h4", {
23
+ id: headingId,
24
+ className: "usher-panel__heading",
25
+ children: labels.identity.heading
26
+ }),
27
+ /*#__PURE__*/ jsxRuntime.jsx("p", {
28
+ className: "usher-panel__text",
29
+ children: issue.identityShared ? labels.identity.known : labels.identity.unknown
30
+ }),
31
+ canShare && /*#__PURE__*/ jsxRuntime.jsx(Common.Button, {
32
+ variant: "outline",
33
+ size: "small",
34
+ label: labels.identity.share,
35
+ onClick: ()=>void showShareDialog({
36
+ issueId: issue.id
37
+ })
38
+ }),
39
+ /*#__PURE__*/ jsxRuntime.jsx(ShareDialog, {})
40
+ ]
41
+ });
42
+ };
43
+
44
+ exports.IdentityPanel = IdentityPanel;
45
+ //# sourceMappingURL=IdentityPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IdentityPanel.js","sources":["../../../../Issues/IssueView/IdentityPanel.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { useDialog } from '@cratis/arc.react/dialogs';\nimport { Button } from '@cratis/components/Common';\nimport { IssueConversation, IssueState } from '@cratis/showrunner.usher';\nimport { useId } from 'react';\nimport { useUsherLabels } from '../../Provider/UsherContext.js';\nimport { ShareIdentityDialog } from './ShareIdentityDialog.js';\n\n/**\n * Props for {@link IdentityPanel}.\n */\nexport interface IdentityPanelProps {\n /** The issue. */\n issue: IssueConversation;\n}\n\n/**\n * Shows whether support knows who the reporter is, and lets them share it when it does not.\n */\nexport const IdentityPanel = ({ issue }: IdentityPanelProps) => {\n const labels = useUsherLabels();\n const headingId = useId();\n const [ShareDialog, showShareDialog] = useDialog(ShareIdentityDialog);\n const canShare = !issue.identityShared && issue.state !== IssueState.withdrawn;\n\n return (\n <section className='usher-panel' aria-labelledby={headingId}>\n <h4 id={headingId} className='usher-panel__heading'>{labels.identity.heading}</h4>\n <p className='usher-panel__text'>{issue.identityShared ? labels.identity.known : labels.identity.unknown}</p>\n {canShare && (\n <Button variant='outline' size='small' label={labels.identity.share} onClick={() => void showShareDialog({ issueId: issue.id })} />\n )}\n <ShareDialog />\n </section>\n );\n};\n"],"names":["IdentityPanel","issue","labels","useUsherLabels","headingId","useId","ShareDialog","showShareDialog","useDialog","ShareIdentityDialog","canShare","identityShared","state","IssueState","withdrawn","_jsxs","section","className","aria-labelledby","_jsx","h4","id","identity","heading","p","known","unknown","Button","variant","size","label","share","onClick","issueId"],"mappings":";;;;;;;;;;AAkBA;;AAEC,IACM,MAAMA,aAAAA,GAAgB,CAAC,EAAEC,KAAK,EAAsB,GAAA;AACvD,IAAA,MAAMC,MAAAA,GAASC,2BAAAA,EAAAA;AACf,IAAA,MAAMC,SAAAA,GAAYC,WAAAA,EAAAA;AAClB,IAAA,MAAM,CAACC,WAAAA,EAAaC,eAAAA,CAAgB,GAAGC,iBAAAA,CAAUC,uCAAAA,CAAAA;IACjD,MAAMC,QAAAA,GAAW,CAACT,KAAAA,CAAMU,cAAc,IAAIV,KAAAA,CAAMW,KAAK,KAAKC,2BAAAA,CAAWC,SAAS;AAE9E,IAAA,qBACIC,eAAA,CAACC,SAAAA,EAAAA;QAAQC,SAAAA,EAAU,aAAA;QAAcC,iBAAAA,EAAiBd,SAAAA;;0BAC9Ce,cAAA,CAACC,IAAAA,EAAAA;gBAAGC,EAAAA,EAAIjB,SAAAA;gBAAWa,SAAAA,EAAU,sBAAA;0BAAwBf,MAAAA,CAAOoB,QAAQ,CAACC;;0BACrEJ,cAAA,CAACK,GAAAA,EAAAA;gBAAEP,SAAAA,EAAU,mBAAA;0BAAqBhB,KAAAA,CAAMU,cAAc,GAAGT,MAAAA,CAAOoB,QAAQ,CAACG,KAAK,GAAGvB,MAAAA,CAAOoB,QAAQ,CAACI;;AAChGhB,YAAAA,QAAAA,kBACGS,cAAA,CAACQ,aAAAA,EAAAA;gBAAOC,OAAAA,EAAQ,SAAA;gBAAUC,IAAAA,EAAK,OAAA;gBAAQC,KAAAA,EAAO5B,MAAAA,CAAOoB,QAAQ,CAACS,KAAK;gBAAEC,OAAAA,EAAS,IAAM,KAAKzB,eAAAA,CAAgB;AAAE0B,wBAAAA,OAAAA,EAAShC,MAAMoB;AAAG,qBAAA;;0BAEjIF,cAAA,CAACb,WAAAA,EAAAA,EAAAA;;;AAGb;;"}
@@ -0,0 +1,6 @@
1
+ import { IssueConversation } from '@cratis/showrunner.usher';
2
+ export interface IssueActionsProps {
3
+ issue: IssueConversation;
4
+ }
5
+ export declare const IssueActions: ({ issue }: IssueActionsProps) => import("react").JSX.Element | null;
6
+ //# sourceMappingURL=IssueActions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IssueActions.d.ts","sourceRoot":"","sources":["../../../../Issues/IssueView/IssueActions.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAA6B,MAAM,0BAA0B,CAAC;AAQxF,MAAM,WAAW,iBAAiB;IAE9B,KAAK,EAAE,iBAAiB,CAAC;CAC5B;AAKD,eAAO,MAAM,YAAY,GAAI,WAAW,iBAAiB,uCA6BxD,CAAC"}
@@ -0,0 +1,58 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var dialogs = require('@cratis/arc.react/dialogs');
5
+ var Common = require('@cratis/components/Common');
6
+ var Notifications = require('@cratis/components/Notifications');
7
+ var showrunner_usher = require('@cratis/showrunner.usher');
8
+ var UsherContext = require('../../Provider/UsherContext.js');
9
+ var issueStates = require('../issueStates.js');
10
+ var ReopenIssueDialog = require('./ReopenIssueDialog.js');
11
+
12
+ /**
13
+ * What the reporter can do with an issue: reopen it once resolved, and withdraw it while it is open.
14
+ */ const IssueActions = ({ issue })=>{
15
+ const labels = UsherContext.useUsherLabels();
16
+ const [ReopenDialog, showReopenDialog] = dialogs.useDialog(ReopenIssueDialog.ReopenIssueDialog);
17
+ const [confirm] = dialogs.useConfirmationDialog();
18
+ const [withdrawIssue] = showrunner_usher.WithdrawIssue.use();
19
+ const canReopen = issue.state === showrunner_usher.IssueState.resolved;
20
+ const canWithdraw = !issueStates.isClosed(issue.state);
21
+ const withdraw = async ()=>{
22
+ const answer = await confirm(labels.actions.withdrawTitle, labels.actions.withdrawMessage, dialogs.DialogButtons.YesNo);
23
+ if (answer !== dialogs.DialogResult.Yes) {
24
+ return;
25
+ }
26
+ withdrawIssue.issueId = issue.id;
27
+ Notifications.toastCommandResult(await withdrawIssue.execute(), {
28
+ showSuccess: false
29
+ });
30
+ };
31
+ if (!canReopen && !canWithdraw) {
32
+ return null;
33
+ }
34
+ return /*#__PURE__*/ jsxRuntime.jsxs("div", {
35
+ className: "usher-issue-actions",
36
+ children: [
37
+ canReopen && /*#__PURE__*/ jsxRuntime.jsx(Common.Button, {
38
+ variant: "outline",
39
+ size: "small",
40
+ label: labels.actions.reopen,
41
+ onClick: ()=>void showReopenDialog({
42
+ issueId: issue.id
43
+ })
44
+ }),
45
+ canWithdraw && /*#__PURE__*/ jsxRuntime.jsx(Common.Button, {
46
+ variant: "ghost",
47
+ tone: "critical",
48
+ size: "small",
49
+ label: labels.actions.withdraw,
50
+ onClick: ()=>void withdraw()
51
+ }),
52
+ /*#__PURE__*/ jsxRuntime.jsx(ReopenDialog, {})
53
+ ]
54
+ });
55
+ };
56
+
57
+ exports.IssueActions = IssueActions;
58
+ //# sourceMappingURL=IssueActions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IssueActions.js","sources":["../../../../Issues/IssueView/IssueActions.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { DialogButtons, DialogResult, useConfirmationDialog, useDialog } from '@cratis/arc.react/dialogs';\nimport { Button } from '@cratis/components/Common';\nimport { toastCommandResult } from '@cratis/components/Notifications';\nimport { IssueConversation, IssueState, WithdrawIssue } from '@cratis/showrunner.usher';\nimport { useUsherLabels } from '../../Provider/UsherContext.js';\nimport { isClosed } from '../issueStates.js';\nimport { ReopenIssueDialog } from './ReopenIssueDialog.js';\n\n/**\n * Props for {@link IssueActions}.\n */\nexport interface IssueActionsProps {\n /** The issue. */\n issue: IssueConversation;\n}\n\n/**\n * What the reporter can do with an issue: reopen it once resolved, and withdraw it while it is open.\n */\nexport const IssueActions = ({ issue }: IssueActionsProps) => {\n const labels = useUsherLabels();\n const [ReopenDialog, showReopenDialog] = useDialog(ReopenIssueDialog);\n const [confirm] = useConfirmationDialog();\n const [withdrawIssue] = WithdrawIssue.use();\n const canReopen = issue.state === IssueState.resolved;\n const canWithdraw = !isClosed(issue.state);\n\n const withdraw = async () => {\n const answer = await confirm(labels.actions.withdrawTitle, labels.actions.withdrawMessage, DialogButtons.YesNo);\n if (answer !== DialogResult.Yes) {\n return;\n }\n\n withdrawIssue.issueId = issue.id;\n toastCommandResult(await withdrawIssue.execute(), { showSuccess: false });\n };\n\n if (!canReopen && !canWithdraw) {\n return null;\n }\n\n return (\n <div className='usher-issue-actions'>\n {canReopen && <Button variant='outline' size='small' label={labels.actions.reopen} onClick={() => void showReopenDialog({ issueId: issue.id })} />}\n {canWithdraw && <Button variant='ghost' tone='critical' size='small' label={labels.actions.withdraw} onClick={() => void withdraw()} />}\n <ReopenDialog />\n </div>\n );\n};\n"],"names":["IssueActions","issue","labels","useUsherLabels","ReopenDialog","showReopenDialog","useDialog","ReopenIssueDialog","confirm","useConfirmationDialog","withdrawIssue","WithdrawIssue","use","canReopen","state","IssueState","resolved","canWithdraw","isClosed","withdraw","answer","actions","withdrawTitle","withdrawMessage","DialogButtons","YesNo","DialogResult","Yes","issueId","id","toastCommandResult","execute","showSuccess","_jsxs","div","className","_jsx","Button","variant","size","label","reopen","onClick","tone"],"mappings":";;;;;;;;;;;AAmBA;;AAEC,IACM,MAAMA,YAAAA,GAAe,CAAC,EAAEC,KAAK,EAAqB,GAAA;AACrD,IAAA,MAAMC,MAAAA,GAASC,2BAAAA,EAAAA;AACf,IAAA,MAAM,CAACC,YAAAA,EAAcC,gBAAAA,CAAiB,GAAGC,iBAAAA,CAAUC,mCAAAA,CAAAA;IACnD,MAAM,CAACC,QAAQ,GAAGC,6BAAAA,EAAAA;AAClB,IAAA,MAAM,CAACC,aAAAA,CAAc,GAAGC,8BAAAA,CAAcC,GAAG,EAAA;AACzC,IAAA,MAAMC,SAAAA,GAAYZ,KAAAA,CAAMa,KAAK,KAAKC,4BAAWC,QAAQ;AACrD,IAAA,MAAMC,WAAAA,GAAc,CAACC,oBAAAA,CAASjB,KAAAA,CAAMa,KAAK,CAAA;AAEzC,IAAA,MAAMK,QAAAA,GAAW,UAAA;AACb,QAAA,MAAMC,MAAAA,GAAS,MAAMZ,OAAAA,CAAQN,MAAAA,CAAOmB,OAAO,CAACC,aAAa,EAAEpB,MAAAA,CAAOmB,OAAO,CAACE,eAAe,EAAEC,sBAAcC,KAAK,CAAA;QAC9G,IAAIL,MAAAA,KAAWM,oBAAAA,CAAaC,GAAG,EAAE;AAC7B,YAAA;AACJ,QAAA;QAEAjB,aAAAA,CAAckB,OAAO,GAAG3B,KAAAA,CAAM4B,EAAE;QAChCC,gCAAAA,CAAmB,MAAMpB,aAAAA,CAAcqB,OAAO,EAAA,EAAI;YAAEC,WAAAA,EAAa;AAAM,SAAA,CAAA;AAC3E,IAAA,CAAA;IAEA,IAAI,CAACnB,SAAAA,IAAa,CAACI,WAAAA,EAAa;QAC5B,OAAO,IAAA;AACX,IAAA;AAEA,IAAA,qBACIgB,eAAA,CAACC,KAAAA,EAAAA;QAAIC,SAAAA,EAAU,qBAAA;;AACVtB,YAAAA,SAAAA,kBAAauB,cAAA,CAACC,aAAAA,EAAAA;gBAAOC,OAAAA,EAAQ,SAAA;gBAAUC,IAAAA,EAAK,OAAA;gBAAQC,KAAAA,EAAOtC,MAAAA,CAAOmB,OAAO,CAACoB,MAAM;gBAAEC,OAAAA,EAAS,IAAM,KAAKrC,gBAAAA,CAAiB;AAAEuB,wBAAAA,OAAAA,EAAS3B,MAAM4B;AAAG,qBAAA;;AAC3IZ,YAAAA,WAAAA,kBAAemB,cAAA,CAACC,aAAAA,EAAAA;gBAAOC,OAAAA,EAAQ,OAAA;gBAAQK,IAAAA,EAAK,UAAA;gBAAWJ,IAAAA,EAAK,OAAA;gBAAQC,KAAAA,EAAOtC,MAAAA,CAAOmB,OAAO,CAACF,QAAQ;AAAEuB,gBAAAA,OAAAA,EAAS,IAAM,KAAKvB,QAAAA;;0BACzHiB,cAAA,CAAChC,YAAAA,EAAAA,EAAAA;;;AAGb;;"}
@@ -0,0 +1,6 @@
1
+ import { IssueConversation } from '@cratis/showrunner.usher';
2
+ export interface IssueConversationPanelProps {
3
+ issue: IssueConversation;
4
+ }
5
+ export declare const IssueConversationPanel: ({ issue }: IssueConversationPanelProps) => import("react").JSX.Element;
6
+ //# sourceMappingURL=IssueConversationPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IssueConversationPanel.d.ts","sourceRoot":"","sources":["../../../../Issues/IssueView/IssueConversationPanel.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAqD,iBAAiB,EAAc,MAAM,0BAA0B,CAAC;AAQ5H,MAAM,WAAW,2BAA2B;IAExC,KAAK,EAAE,iBAAiB,CAAC;CAC5B;AAMD,eAAO,MAAM,sBAAsB,GAAI,WAAW,2BAA2B,gCAiE5E,CAAC"}
@@ -0,0 +1,97 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var Chat = require('@cratis/components/Chat');
5
+ var Display = require('@cratis/components/Display');
6
+ var Notifications = require('@cratis/components/Notifications');
7
+ var showrunner_usher = require('@cratis/showrunner.usher');
8
+ var react = require('react');
9
+ var UsherContext = require('../../Provider/UsherContext.js');
10
+ var conversationMessages = require('../conversationMessages.js');
11
+
12
+ /**
13
+ * The conversation on an issue. A message the reporter sends answers support's open question, or adds details when
14
+ * there is none. Once the reporter withdrew the issue, the composer is disabled: nothing more can be added to it.
15
+ */ const IssueConversationPanel = ({ issue })=>{
16
+ const labels = UsherContext.useUsherLabels();
17
+ const [addDetails] = showrunner_usher.AddDetails.use();
18
+ const [answerQuestion] = showrunner_usher.AnswerQuestion.use();
19
+ const messages = react.useMemo(()=>conversationMessages.conversationMessages(issue.id, issue.entries ?? [], labels), [
20
+ issue.id,
21
+ issue.entries,
22
+ labels
23
+ ]);
24
+ const openQuestionId = issue.openQuestion?.questionId;
25
+ const isWithdrawn = issue.state === showrunner_usher.IssueState.withdrawn;
26
+ const send = async (body)=>{
27
+ if (isWithdrawn) {
28
+ return;
29
+ }
30
+ if (conversationMessages.isOpenQuestion(openQuestionId)) {
31
+ answerQuestion.issueId = issue.id;
32
+ answerQuestion.questionId = openQuestionId;
33
+ answerQuestion.answer = body;
34
+ Notifications.toastCommandResult(await answerQuestion.execute(), {
35
+ showSuccess: false
36
+ });
37
+ return;
38
+ }
39
+ addDetails.issueId = issue.id;
40
+ addDetails.details = body;
41
+ Notifications.toastCommandResult(await addDetails.execute(), {
42
+ showSuccess: false
43
+ });
44
+ };
45
+ const renderMessageExtra = (message)=>{
46
+ if (message.kind !== showrunner_usher.ConversationEntryKind.questionAsked) {
47
+ return undefined;
48
+ }
49
+ const isOpen = conversationMessages.isOpenQuestion(openQuestionId) && openQuestionId.equals(message.questionId);
50
+ return /*#__PURE__*/ jsxRuntime.jsx("span", {
51
+ className: "usher-conversation__question-state",
52
+ children: /*#__PURE__*/ jsxRuntime.jsx(Display.Tag, {
53
+ value: isOpen ? labels.issue.waitingForAnswer : labels.issue.answered,
54
+ severity: isOpen ? 'warn' : 'success'
55
+ })
56
+ });
57
+ };
58
+ return /*#__PURE__*/ jsxRuntime.jsxs("section", {
59
+ className: "usher-conversation",
60
+ "data-closed": isWithdrawn || undefined,
61
+ "aria-label": issue.title,
62
+ children: [
63
+ /*#__PURE__*/ jsxRuntime.jsx("fieldset", {
64
+ className: "usher-conversation__fieldset",
65
+ disabled: isWithdrawn,
66
+ children: /*#__PURE__*/ jsxRuntime.jsx(Chat.ChatConversation, {
67
+ messages: messages,
68
+ onSendMessage: (body)=>void send(body),
69
+ authorOf: (authorId)=>conversationMessages.authorOf(authorId, labels),
70
+ renderMessageExtra: renderMessageExtra,
71
+ quickReply: false,
72
+ labels: {
73
+ empty: labels.conversation.empty,
74
+ timestamps: {
75
+ justNow: labels.conversation.justNow,
76
+ minutesAgo: labels.conversation.minutesAgo,
77
+ hoursAgo: labels.conversation.hoursAgo
78
+ },
79
+ composer: {
80
+ placeholder: isWithdrawn ? labels.issue.withdrawnPlaceholder : labels.issue.composerPlaceholder,
81
+ send: labels.conversation.send,
82
+ sendMessage: labels.conversation.send
83
+ }
84
+ }
85
+ })
86
+ }),
87
+ isWithdrawn && /*#__PURE__*/ jsxRuntime.jsx(Display.Message, {
88
+ severity: "secondary",
89
+ text: labels.issue.withdrawnNotice,
90
+ live: false
91
+ })
92
+ ]
93
+ });
94
+ };
95
+
96
+ exports.IssueConversationPanel = IssueConversationPanel;
97
+ //# sourceMappingURL=IssueConversationPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IssueConversationPanel.js","sources":["../../../../Issues/IssueView/IssueConversationPanel.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { ChatConversation } from '@cratis/components/Chat';\nimport { Message, Tag } from '@cratis/components/Display';\nimport { toastCommandResult } from '@cratis/components/Notifications';\nimport { AddDetails, AnswerQuestion, ConversationEntryKind, IssueConversation, IssueState } from '@cratis/showrunner.usher';\nimport { useMemo } from 'react';\nimport { useUsherLabels } from '../../Provider/UsherContext.js';\nimport { authorOf, ConversationMessage, conversationMessages, isOpenQuestion } from '../conversationMessages.js';\n\n/**\n * Props for {@link IssueConversationPanel}.\n */\nexport interface IssueConversationPanelProps {\n /** The issue. */\n issue: IssueConversation;\n}\n\n/**\n * The conversation on an issue. A message the reporter sends answers support's open question, or adds details when\n * there is none. Once the reporter withdrew the issue, the composer is disabled: nothing more can be added to it.\n */\nexport const IssueConversationPanel = ({ issue }: IssueConversationPanelProps) => {\n const labels = useUsherLabels();\n const [addDetails] = AddDetails.use();\n const [answerQuestion] = AnswerQuestion.use();\n const messages = useMemo(() => conversationMessages(issue.id, issue.entries ?? [], labels), [issue.id, issue.entries, labels]);\n const openQuestionId = issue.openQuestion?.questionId;\n const isWithdrawn = issue.state === IssueState.withdrawn;\n\n const send = async (body: string) => {\n if (isWithdrawn) {\n return;\n }\n\n if (isOpenQuestion(openQuestionId)) {\n answerQuestion.issueId = issue.id;\n answerQuestion.questionId = openQuestionId;\n answerQuestion.answer = body;\n toastCommandResult(await answerQuestion.execute(), { showSuccess: false });\n return;\n }\n\n addDetails.issueId = issue.id;\n addDetails.details = body;\n toastCommandResult(await addDetails.execute(), { showSuccess: false });\n };\n\n const renderMessageExtra = (message: ConversationMessage) => {\n if (message.kind !== ConversationEntryKind.questionAsked) {\n return undefined;\n }\n\n const isOpen = isOpenQuestion(openQuestionId) && openQuestionId.equals(message.questionId);\n return (\n <span className='usher-conversation__question-state'>\n <Tag value={isOpen ? labels.issue.waitingForAnswer : labels.issue.answered} severity={isOpen ? 'warn' : 'success'} />\n </span>\n );\n };\n\n return (\n <section className='usher-conversation' data-closed={isWithdrawn || undefined} aria-label={issue.title}>\n <fieldset className='usher-conversation__fieldset' disabled={isWithdrawn}>\n <ChatConversation<ConversationMessage>\n messages={messages}\n onSendMessage={body => void send(body)}\n authorOf={authorId => authorOf(authorId, labels)}\n renderMessageExtra={renderMessageExtra}\n quickReply={false}\n labels={{\n empty: labels.conversation.empty,\n timestamps: {\n justNow: labels.conversation.justNow,\n minutesAgo: labels.conversation.minutesAgo,\n hoursAgo: labels.conversation.hoursAgo\n },\n composer: {\n placeholder: isWithdrawn ? labels.issue.withdrawnPlaceholder : labels.issue.composerPlaceholder,\n send: labels.conversation.send,\n sendMessage: labels.conversation.send\n }\n }} />\n </fieldset>\n {isWithdrawn && <Message severity='secondary' text={labels.issue.withdrawnNotice} live={false} />}\n </section>\n );\n};\n"],"names":["IssueConversationPanel","issue","labels","useUsherLabels","addDetails","AddDetails","use","answerQuestion","AnswerQuestion","messages","useMemo","conversationMessages","id","entries","openQuestionId","openQuestion","questionId","isWithdrawn","state","IssueState","withdrawn","send","body","isOpenQuestion","issueId","answer","toastCommandResult","execute","showSuccess","details","renderMessageExtra","message","kind","ConversationEntryKind","questionAsked","undefined","isOpen","equals","_jsx","span","className","Tag","value","waitingForAnswer","answered","severity","_jsxs","section","data-closed","aria-label","title","fieldset","disabled","ChatConversation","onSendMessage","authorOf","authorId","quickReply","empty","conversation","timestamps","justNow","minutesAgo","hoursAgo","composer","placeholder","withdrawnPlaceholder","composerPlaceholder","sendMessage","Message","text","withdrawnNotice","live"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { IssueConversation } from '@cratis/showrunner.usher';
2
+ export interface IssueHeaderProps {
3
+ issue: IssueConversation;
4
+ onBack?: () => void;
5
+ }
6
+ export declare const IssueHeader: ({ issue, onBack }: IssueHeaderProps) => import("react").JSX.Element;
7
+ //# sourceMappingURL=IssueHeader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IssueHeader.d.ts","sourceRoot":"","sources":["../../../../Issues/IssueView/IssueHeader.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAa7D,MAAM,WAAW,gBAAgB;IAE7B,KAAK,EAAE,iBAAiB,CAAC;IAGzB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAKD,eAAO,MAAM,WAAW,GAAI,mBAAmB,gBAAgB,gCAuC9D,CAAC"}
@@ -0,0 +1,94 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var Common = require('@cratis/components/Common');
5
+ var Display = require('@cratis/components/Display');
6
+ var format = require('../../Labels/format.js');
7
+ var UsherContext = require('../../Provider/UsherContext.js');
8
+ var AccessChoice = require('../../Reporting/AccessChoice.js');
9
+ var formatLocation = require('../../Reporting/formatLocation.js');
10
+ var Icons = require('../../Icons.js');
11
+ var issueStates = require('../issueStates.js');
12
+ var MyIssuesList = require('../MyIssuesList.js');
13
+ var webAddress = require('../webAddress.js');
14
+
15
+ /**
16
+ * The header of an issue: its title and state, when and where it was reported, and what it is linked to.
17
+ */ const IssueHeader = ({ issue, onBack })=>{
18
+ const { labels, locale } = UsherContext.useUsherContext();
19
+ const badge = issueStates.stateBadgeFor(issue.state, labels);
20
+ const reportedAt = issue.reportedAt instanceof Date ? issue.reportedAt : new Date(issue.reportedAt);
21
+ const location = formatLocation.formatLocation(issue.location, labels.common.locationSeparator, labels.common.unknownLocation);
22
+ const workItem = issue.workItem;
23
+ const hasWorkItem = (workItem?.reference ?? '').length > 0;
24
+ return /*#__PURE__*/ jsxRuntime.jsxs("header", {
25
+ className: "usher-issue-header",
26
+ children: [
27
+ onBack && /*#__PURE__*/ jsxRuntime.jsx(Common.Button, {
28
+ variant: "ghost",
29
+ size: "small",
30
+ icon: /*#__PURE__*/ jsxRuntime.jsx(Icons.BackIcon, {}),
31
+ onClick: onBack,
32
+ label: labels.issue.back
33
+ }),
34
+ /*#__PURE__*/ jsxRuntime.jsxs("div", {
35
+ className: "usher-issue-header__title-row",
36
+ children: [
37
+ /*#__PURE__*/ jsxRuntime.jsx("h3", {
38
+ className: "usher-issue-header__title",
39
+ children: issue.title
40
+ }),
41
+ /*#__PURE__*/ jsxRuntime.jsx(Display.Tag, {
42
+ value: badge.label,
43
+ severity: badge.severity
44
+ })
45
+ ]
46
+ }),
47
+ /*#__PURE__*/ jsxRuntime.jsxs("p", {
48
+ className: "usher-issue-header__meta",
49
+ children: [
50
+ format.format(labels.issue.reported, {
51
+ date: AccessChoice.formatTime(reportedAt, locale)
52
+ }),
53
+ " · ",
54
+ location
55
+ ]
56
+ }),
57
+ (issue.knownIssueTitle?.length > 0 || hasWorkItem) && /*#__PURE__*/ jsxRuntime.jsxs("p", {
58
+ className: "usher-issue-header__links",
59
+ children: [
60
+ issue.knownIssueTitle?.length > 0 && /*#__PURE__*/ jsxRuntime.jsxs("span", {
61
+ children: [
62
+ labels.issue.knownIssue,
63
+ " ",
64
+ /*#__PURE__*/ jsxRuntime.jsx("strong", {
65
+ children: issue.knownIssueTitle
66
+ })
67
+ ]
68
+ }),
69
+ hasWorkItem && /*#__PURE__*/ jsxRuntime.jsxs("span", {
70
+ children: [
71
+ labels.issue.trackedIn,
72
+ ' ',
73
+ webAddress.isWebAddress(workItem.url) ? /*#__PURE__*/ jsxRuntime.jsx("a", {
74
+ href: workItem.url,
75
+ target: "_blank",
76
+ rel: "noreferrer",
77
+ children: workItem.reference
78
+ }) : /*#__PURE__*/ jsxRuntime.jsx("strong", {
79
+ children: workItem.reference
80
+ }),
81
+ ' · ',
82
+ MyIssuesList.isFixReleased(issue) ? format.format(labels.issue.fixedIn, {
83
+ version: issue.fixedInVersion
84
+ }) : labels.issue.notReleased
85
+ ]
86
+ })
87
+ ]
88
+ })
89
+ ]
90
+ });
91
+ };
92
+
93
+ exports.IssueHeader = IssueHeader;
94
+ //# sourceMappingURL=IssueHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IssueHeader.js","sources":["../../../../Issues/IssueView/IssueHeader.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { Button } from '@cratis/components/Common';\nimport { Tag } from '@cratis/components/Display';\nimport { IssueConversation } from '@cratis/showrunner.usher';\nimport { format } from '../../Labels/index.js';\nimport { useUsherContext } from '../../Provider/UsherContext.js';\nimport { formatTime } from '../../Reporting/AccessChoice.js';\nimport { formatLocation } from '../../Reporting/formatLocation.js';\nimport { BackIcon } from '../../Icons.js';\nimport { stateBadgeFor } from '../issueStates.js';\nimport { isFixReleased } from '../MyIssuesList.js';\nimport { isWebAddress } from '../webAddress.js';\n\n/**\n * Props for {@link IssueHeader}.\n */\nexport interface IssueHeaderProps {\n /** The issue. */\n issue: IssueConversation;\n\n /** Goes back to the list of issues; no back button when not given. */\n onBack?: () => void;\n}\n\n/**\n * The header of an issue: its title and state, when and where it was reported, and what it is linked to.\n */\nexport const IssueHeader = ({ issue, onBack }: IssueHeaderProps) => {\n const { labels, locale } = useUsherContext();\n const badge = stateBadgeFor(issue.state, labels);\n const reportedAt = issue.reportedAt instanceof Date ? issue.reportedAt : new Date(issue.reportedAt);\n const location = formatLocation(issue.location, labels.common.locationSeparator, labels.common.unknownLocation);\n const workItem = issue.workItem;\n const hasWorkItem = (workItem?.reference ?? '').length > 0;\n\n return (\n <header className='usher-issue-header'>\n {onBack && (\n <Button variant='ghost' size='small' icon={<BackIcon />} onClick={onBack} label={labels.issue.back} />\n )}\n <div className='usher-issue-header__title-row'>\n <h3 className='usher-issue-header__title'>{issue.title}</h3>\n <Tag value={badge.label} severity={badge.severity} />\n </div>\n <p className='usher-issue-header__meta'>\n {format(labels.issue.reported, { date: formatTime(reportedAt, locale) })} · {location}\n </p>\n {(issue.knownIssueTitle?.length > 0 || hasWorkItem) && (\n <p className='usher-issue-header__links'>\n {issue.knownIssueTitle?.length > 0 && (\n <span>{labels.issue.knownIssue} <strong>{issue.knownIssueTitle}</strong></span>\n )}\n {hasWorkItem && (\n <span>\n {labels.issue.trackedIn}{' '}\n {isWebAddress(workItem.url)\n ? <a href={workItem.url} target='_blank' rel='noreferrer'>{workItem.reference}</a>\n : <strong>{workItem.reference}</strong>}\n {' · '}\n {isFixReleased(issue) ? format(labels.issue.fixedIn, { version: issue.fixedInVersion }) : labels.issue.notReleased}\n </span>\n )}\n </p>\n )}\n </header>\n );\n};\n"],"names":["IssueHeader","issue","onBack","labels","locale","useUsherContext","badge","stateBadgeFor","state","reportedAt","Date","location","formatLocation","common","locationSeparator","unknownLocation","workItem","hasWorkItem","reference","length","_jsxs","header","className","_jsx","Button","variant","size","icon","BackIcon","onClick","label","back","div","h3","title","Tag","value","severity","p","format","reported","date","formatTime","knownIssueTitle","span","knownIssue","strong","trackedIn","isWebAddress","url","a","href","target","rel","isFixReleased","fixedIn","version","fixedInVersion","notReleased"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { Guid } from '@cratis/fundamentals';
2
+ export interface IssueViewProps {
3
+ issueId: Guid;
4
+ onBack?: () => void;
5
+ }
6
+ export declare const IssueView: (props: IssueViewProps) => import("react").JSX.Element;
7
+ //# sourceMappingURL=IssueView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IssueView.d.ts","sourceRoot":"","sources":["../../../../Issues/IssueView/IssueView.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAgB5C,MAAM,WAAW,cAAc;IAE3B,OAAO,EAAE,IAAI,CAAC;IAGd,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAOD,eAAO,MAAM,SAAS,GAAI,OAAO,cAAc,gCAI9C,CAAC"}
@@ -0,0 +1,85 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var Display = require('@cratis/components/Display');
5
+ var showrunner_usher = require('@cratis/showrunner.usher');
6
+ var UsherBoundary = require('../../Provider/UsherBoundary.js');
7
+ var UsherContext = require('../../Provider/UsherContext.js');
8
+ var conversationMessages = require('../conversationMessages.js');
9
+ var AccessPanel = require('./AccessPanel.js');
10
+ var IdentityPanel = require('./IdentityPanel.js');
11
+ var IssueActions = require('./IssueActions.js');
12
+ var IssueConversationPanel = require('./IssueConversationPanel.js');
13
+ var IssueHeader = require('./IssueHeader.js');
14
+ var QuestionBanner = require('./QuestionBanner.js');
15
+ var StatusStrip = require('./StatusStrip.js');
16
+
17
+ /**
18
+ * One of the signed-in reporter's issues: its state, the conversation with support, who support knows the reporter
19
+ * is, support's access, and what the reporter can do with it. It stays current as support works on the issue.
20
+ * Usable on its own, such as on a page of the solution, or inside the my issues side sheet.
21
+ */ const IssueView = (props)=>/*#__PURE__*/ jsxRuntime.jsx(UsherBoundary.UsherBoundary, {
22
+ children: /*#__PURE__*/ jsxRuntime.jsx(IssueViewContent, {
23
+ ...props
24
+ })
25
+ });
26
+ const IssueViewContent = ({ issueId, onBack })=>{
27
+ const labels = UsherContext.useUsherLabels();
28
+ const [result] = showrunner_usher.ForIssue.use({
29
+ issueId
30
+ });
31
+ // The query answers with the issue or with nothing: an issue the reporter did not report, or one support's session
32
+ // is not for, is never sent.
33
+ const issue = result.data?.[0];
34
+ const isLoaded = result.hasData && issue?.id !== undefined;
35
+ if (!isLoaded) {
36
+ return /*#__PURE__*/ jsxRuntime.jsx("div", {
37
+ className: "usher-issue-view",
38
+ children: /*#__PURE__*/ jsxRuntime.jsx(Display.Message, {
39
+ severity: result.isPerforming ? 'info' : 'secondary',
40
+ text: result.isPerforming ? labels.issue.loading : labels.issue.notFound
41
+ })
42
+ });
43
+ }
44
+ const openQuestion = issue.openQuestion;
45
+ return /*#__PURE__*/ jsxRuntime.jsxs("div", {
46
+ className: "usher-issue-view",
47
+ children: [
48
+ /*#__PURE__*/ jsxRuntime.jsx(IssueHeader.IssueHeader, {
49
+ issue: issue,
50
+ onBack: onBack
51
+ }),
52
+ /*#__PURE__*/ jsxRuntime.jsx(StatusStrip.StatusStrip, {
53
+ state: issue.state
54
+ }),
55
+ conversationMessages.isOpenQuestion(openQuestion?.questionId) && /*#__PURE__*/ jsxRuntime.jsx(QuestionBanner.QuestionBanner, {
56
+ question: openQuestion.question
57
+ }),
58
+ /*#__PURE__*/ jsxRuntime.jsxs("div", {
59
+ className: "usher-issue-view__body",
60
+ children: [
61
+ /*#__PURE__*/ jsxRuntime.jsx(IssueConversationPanel.IssueConversationPanel, {
62
+ issue: issue
63
+ }),
64
+ /*#__PURE__*/ jsxRuntime.jsxs("aside", {
65
+ className: "usher-issue-view__side",
66
+ children: [
67
+ /*#__PURE__*/ jsxRuntime.jsx(IdentityPanel.IdentityPanel, {
68
+ issue: issue
69
+ }),
70
+ /*#__PURE__*/ jsxRuntime.jsx(AccessPanel.AccessPanel, {
71
+ issue: issue
72
+ }),
73
+ /*#__PURE__*/ jsxRuntime.jsx(IssueActions.IssueActions, {
74
+ issue: issue
75
+ })
76
+ ]
77
+ })
78
+ ]
79
+ })
80
+ ]
81
+ });
82
+ };
83
+
84
+ exports.IssueView = IssueView;
85
+ //# sourceMappingURL=IssueView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IssueView.js","sources":["../../../../Issues/IssueView/IssueView.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { Message } from '@cratis/components/Display';\nimport { Guid } from '@cratis/fundamentals';\nimport { ForIssue } from '@cratis/showrunner.usher';\nimport { UsherBoundary } from '../../Provider/UsherBoundary.js';\nimport { useUsherLabels } from '../../Provider/UsherContext.js';\nimport { isOpenQuestion } from '../conversationMessages.js';\nimport { AccessPanel } from './AccessPanel.js';\nimport { IdentityPanel } from './IdentityPanel.js';\nimport { IssueActions } from './IssueActions.js';\nimport { IssueConversationPanel } from './IssueConversationPanel.js';\nimport { IssueHeader } from './IssueHeader.js';\nimport { QuestionBanner } from './QuestionBanner.js';\nimport { StatusStrip } from './StatusStrip.js';\n\n/**\n * Props for {@link IssueView}.\n */\nexport interface IssueViewProps {\n /** The issue to show. */\n issueId: Guid;\n\n /** Goes back to the list of issues; no back button when not given. */\n onBack?: () => void;\n}\n\n/**\n * One of the signed-in reporter's issues: its state, the conversation with support, who support knows the reporter\n * is, support's access, and what the reporter can do with it. It stays current as support works on the issue.\n * Usable on its own, such as on a page of the solution, or inside the my issues side sheet.\n */\nexport const IssueView = (props: IssueViewProps) => (\n <UsherBoundary>\n <IssueViewContent {...props} />\n </UsherBoundary>\n);\n\nconst IssueViewContent = ({ issueId, onBack }: IssueViewProps) => {\n const labels = useUsherLabels();\n const [result] = ForIssue.use({ issueId });\n\n // The query answers with the issue or with nothing: an issue the reporter did not report, or one support's session\n // is not for, is never sent.\n const issue = result.data?.[0];\n const isLoaded = result.hasData && issue?.id !== undefined;\n\n if (!isLoaded) {\n return (\n <div className='usher-issue-view'>\n <Message severity={result.isPerforming ? 'info' : 'secondary'} text={result.isPerforming ? labels.issue.loading : labels.issue.notFound} />\n </div>\n );\n }\n\n const openQuestion = issue.openQuestion;\n\n return (\n <div className='usher-issue-view'>\n <IssueHeader issue={issue} onBack={onBack} />\n <StatusStrip state={issue.state} />\n {isOpenQuestion(openQuestion?.questionId) && <QuestionBanner question={openQuestion.question} />}\n <div className='usher-issue-view__body'>\n <IssueConversationPanel issue={issue} />\n <aside className='usher-issue-view__side'>\n <IdentityPanel issue={issue} />\n <AccessPanel issue={issue} />\n <IssueActions issue={issue} />\n </aside>\n </div>\n </div>\n );\n};\n"],"names":["IssueView","props","_jsx","UsherBoundary","IssueViewContent","issueId","onBack","labels","useUsherLabels","result","ForIssue","use","issue","data","isLoaded","hasData","id","undefined","div","className","Message","severity","isPerforming","text","loading","notFound","openQuestion","_jsxs","IssueHeader","StatusStrip","state","isOpenQuestion","questionId","QuestionBanner","question","IssueConversationPanel","aside","IdentityPanel","AccessPanel","IssueActions"],"mappings":";;;;;;;;;;;;;;;;AA4BA;;;;AAIC,IACM,MAAMA,SAAAA,GAAY,CAACC,sBACtBC,cAAA,CAACC,2BAAAA,EAAAA;AACG,QAAA,QAAA,gBAAAD,cAAA,CAACE,gBAAAA,EAAAA;AAAkB,YAAA,GAAGH;;AAE5B,KAAA;AAEF,MAAMG,mBAAmB,CAAC,EAAEC,OAAO,EAAEC,MAAM,EAAkB,GAAA;AACzD,IAAA,MAAMC,MAAAA,GAASC,2BAAAA,EAAAA;AACf,IAAA,MAAM,CAACC,MAAAA,CAAO,GAAGC,yBAAAA,CAASC,GAAG,CAAC;AAAEN,QAAAA;AAAQ,KAAA,CAAA;;;AAIxC,IAAA,MAAMO,KAAAA,GAAQH,MAAAA,CAAOI,IAAI,GAAG,CAAA,CAAE;AAC9B,IAAA,MAAMC,QAAAA,GAAWL,MAAAA,CAAOM,OAAO,IAAIH,OAAOI,EAAAA,KAAOC,SAAAA;AAEjD,IAAA,IAAI,CAACH,QAAAA,EAAU;AACX,QAAA,qBACIZ,cAAA,CAACgB,KAAAA,EAAAA;YAAIC,SAAAA,EAAU,kBAAA;AACX,YAAA,QAAA,gBAAAjB,cAAA,CAACkB,eAAAA,EAAAA;gBAAQC,QAAAA,EAAUZ,MAAAA,CAAOa,YAAY,GAAG,MAAA,GAAS,WAAA;gBAAaC,IAAAA,EAAMd,MAAAA,CAAOa,YAAY,GAAGf,MAAAA,CAAOK,KAAK,CAACY,OAAO,GAAGjB,MAAAA,CAAOK,KAAK,CAACa;;;AAG3I,IAAA;IAEA,MAAMC,YAAAA,GAAed,MAAMc,YAAY;AAEvC,IAAA,qBACIC,eAAA,CAACT,KAAAA,EAAAA;QAAIC,SAAAA,EAAU,kBAAA;;0BACXjB,cAAA,CAAC0B,uBAAAA,EAAAA;gBAAYhB,KAAAA,EAAOA,KAAAA;gBAAON,MAAAA,EAAQA;;0BACnCJ,cAAA,CAAC2B,uBAAAA,EAAAA;AAAYC,gBAAAA,KAAAA,EAAOlB,MAAMkB;;YACzBC,mCAAAA,CAAeL,YAAAA,EAAcM,6BAAe9B,cAAA,CAAC+B,6BAAAA,EAAAA;AAAeC,gBAAAA,QAAAA,EAAUR,aAAaQ;;0BACpFP,eAAA,CAACT,KAAAA,EAAAA;gBAAIC,SAAAA,EAAU,wBAAA;;kCACXjB,cAAA,CAACiC,6CAAAA,EAAAA;wBAAuBvB,KAAAA,EAAOA;;kCAC/Be,eAAA,CAACS,OAAAA,EAAAA;wBAAMjB,SAAAA,EAAU,wBAAA;;0CACbjB,cAAA,CAACmC,2BAAAA,EAAAA;gCAAczB,KAAAA,EAAOA;;0CACtBV,cAAA,CAACoC,uBAAAA,EAAAA;gCAAY1B,KAAAA,EAAOA;;0CACpBV,cAAA,CAACqC,yBAAAA,EAAAA;gCAAa3B,KAAAA,EAAOA;;;;;;;;AAKzC,CAAA;;"}
@@ -0,0 +1,5 @@
1
+ export interface QuestionBannerProps {
2
+ question: string;
3
+ }
4
+ export declare const QuestionBanner: ({ question }: QuestionBannerProps) => import("react").JSX.Element;
5
+ //# sourceMappingURL=QuestionBanner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuestionBanner.d.ts","sourceRoot":"","sources":["../../../../Issues/IssueView/QuestionBanner.tsx"],"names":[],"mappings":"AAUA,MAAM,WAAW,mBAAmB;IAEhC,QAAQ,EAAE,MAAM,CAAC;CACpB;AAKD,eAAO,MAAM,cAAc,GAAI,cAAc,mBAAmB,gCAQ/D,CAAC"}
@@ -0,0 +1,24 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var Display = require('@cratis/components/Display');
5
+ var format = require('../../Labels/format.js');
6
+ var UsherContext = require('../../Provider/UsherContext.js');
7
+
8
+ /**
9
+ * Tells the reporter that support waits for an answer, and that their next message answers it.
10
+ */ const QuestionBanner = ({ question })=>{
11
+ const labels = UsherContext.useUsherLabels();
12
+ return /*#__PURE__*/ jsxRuntime.jsx("div", {
13
+ className: "usher-question-banner",
14
+ children: /*#__PURE__*/ jsxRuntime.jsx(Display.Message, {
15
+ severity: "warn",
16
+ text: format.format(labels.issue.questionBanner, {
17
+ question
18
+ })
19
+ })
20
+ });
21
+ };
22
+
23
+ exports.QuestionBanner = QuestionBanner;
24
+ //# sourceMappingURL=QuestionBanner.js.map