@dxos/plugin-observability 0.8.4-main.8360d9e660 → 0.8.4-main.8baae0fced

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 (252) hide show
  1. package/LICENSE +102 -5
  2. package/README.md +1 -1
  3. package/dist/lib/neutral/ObservabilityPlugin.mjs +60 -0
  4. package/dist/lib/neutral/ObservabilityPlugin.mjs.map +7 -0
  5. package/dist/lib/neutral/ObservabilityPlugin.node.mjs +22 -0
  6. package/dist/lib/neutral/ObservabilityPlugin.node.mjs.map +7 -0
  7. package/dist/lib/neutral/ObservabilityPlugin.workerd.mjs +22 -0
  8. package/dist/lib/neutral/ObservabilityPlugin.workerd.mjs.map +7 -0
  9. package/dist/lib/neutral/ObservabilitySettings-H6UKYDDT.mjs +27 -0
  10. package/dist/lib/neutral/ObservabilitySettings-H6UKYDDT.mjs.map +7 -0
  11. package/dist/lib/neutral/capabilities/index.mjs +17 -0
  12. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  13. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  14. package/dist/lib/{browser/chunk-2WPL7OWM.mjs → neutral/chunk-RPFT4FVC.mjs} +6 -2
  15. package/dist/lib/neutral/chunk-RPFT4FVC.mjs.map +7 -0
  16. package/dist/lib/neutral/chunk-TQA4K4HH.mjs +106 -0
  17. package/dist/lib/neutral/chunk-TQA4K4HH.mjs.map +7 -0
  18. package/dist/lib/neutral/chunk-U3O7BYGC.mjs +8 -0
  19. package/dist/lib/neutral/chunk-U3O7BYGC.mjs.map +7 -0
  20. package/dist/lib/{browser/client-ready-NOYYQV6U.mjs → neutral/client-ready-TM7VE6CH.mjs} +30 -16
  21. package/dist/lib/neutral/client-ready-TM7VE6CH.mjs.map +7 -0
  22. package/dist/lib/neutral/components/index.mjs +9 -0
  23. package/dist/lib/neutral/components/index.mjs.map +7 -0
  24. package/dist/lib/neutral/index.mjs +18 -0
  25. package/dist/lib/neutral/meta.json +1 -0
  26. package/dist/lib/neutral/meta.mjs +8 -0
  27. package/dist/lib/neutral/operation-handler-4WWRXOHR.mjs +13 -0
  28. package/dist/lib/neutral/operation-handler-4WWRXOHR.mjs.map +7 -0
  29. package/dist/lib/neutral/operations/index.mjs +8 -0
  30. package/dist/lib/neutral/plugin.mjs +16 -0
  31. package/dist/lib/neutral/plugin.mjs.map +7 -0
  32. package/dist/lib/neutral/react-surface-SHB2SLRK.mjs +35 -0
  33. package/dist/lib/neutral/react-surface-SHB2SLRK.mjs.map +7 -0
  34. package/dist/lib/neutral/send-event-AUVYZHS2.mjs +20 -0
  35. package/dist/lib/neutral/send-event-AUVYZHS2.mjs.map +7 -0
  36. package/dist/lib/{browser/settings-YCQ67D55.mjs → neutral/settings-MZYK2WQR.mjs} +7 -14
  37. package/dist/lib/neutral/settings-MZYK2WQR.mjs.map +7 -0
  38. package/dist/lib/{browser/state-I2G23I3G.mjs → neutral/state-5COCK3KV.mjs} +5 -8
  39. package/dist/lib/neutral/state-5COCK3KV.mjs.map +7 -0
  40. package/dist/lib/neutral/toggle-6WX7G476.mjs +45 -0
  41. package/dist/lib/neutral/toggle-6WX7G476.mjs.map +7 -0
  42. package/dist/lib/neutral/translations.mjs +26 -0
  43. package/dist/lib/neutral/translations.mjs.map +7 -0
  44. package/dist/lib/neutral/types/index.mjs +14 -0
  45. package/dist/lib/neutral/types/index.mjs.map +7 -0
  46. package/dist/types/src/ObservabilityPlugin.d.ts +6 -0
  47. package/dist/types/src/ObservabilityPlugin.d.ts.map +1 -1
  48. package/dist/types/src/{cli/plugin.d.ts → ObservabilityPlugin.node.d.ts} +2 -1
  49. package/dist/types/src/ObservabilityPlugin.node.d.ts.map +1 -0
  50. package/dist/types/src/ObservabilityPlugin.test.d.ts +2 -0
  51. package/dist/types/src/ObservabilityPlugin.test.d.ts.map +1 -0
  52. package/dist/types/src/ObservabilityPlugin.workerd.d.ts +4 -0
  53. package/dist/types/src/ObservabilityPlugin.workerd.d.ts.map +1 -0
  54. package/dist/types/src/capabilities/client-ready.d.ts.map +1 -0
  55. package/dist/types/src/capabilities/index.d.ts +16 -6
  56. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  57. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  58. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  59. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  60. package/dist/types/src/capabilities/{settings/settings.d.ts → settings.d.ts} +2 -5
  61. package/dist/types/src/capabilities/settings.d.ts.map +1 -0
  62. package/dist/types/src/capabilities/state.d.ts.map +1 -0
  63. package/dist/types/src/components/ObservabilitySettings/ObservabilitySettings.d.ts +6 -0
  64. package/dist/types/src/components/ObservabilitySettings/ObservabilitySettings.d.ts.map +1 -0
  65. package/dist/types/src/components/ObservabilitySettings/ObservabilitySettings.stories.d.ts +29 -0
  66. package/dist/types/src/components/ObservabilitySettings/ObservabilitySettings.stories.d.ts.map +1 -0
  67. package/dist/types/src/components/ObservabilitySettings/index.d.ts +2 -0
  68. package/dist/types/src/components/ObservabilitySettings/index.d.ts.map +1 -0
  69. package/dist/types/src/components/index.d.ts +2 -1
  70. package/dist/types/src/components/index.d.ts.map +1 -1
  71. package/dist/types/src/index.d.ts +1 -3
  72. package/dist/types/src/index.d.ts.map +1 -1
  73. package/dist/types/src/meta.d.ts.map +1 -1
  74. package/dist/types/src/operations/index.d.ts +3 -0
  75. package/dist/types/src/operations/index.d.ts.map +1 -0
  76. package/dist/types/src/operations/send-event.d.ts +5 -0
  77. package/dist/types/src/operations/send-event.d.ts.map +1 -0
  78. package/dist/types/src/operations/toggle.d.ts +5 -0
  79. package/dist/types/src/operations/toggle.d.ts.map +1 -0
  80. package/dist/types/src/plugin.d.ts +4 -0
  81. package/dist/types/src/plugin.d.ts.map +1 -0
  82. package/dist/types/src/translations.d.ts +10 -18
  83. package/dist/types/src/translations.d.ts.map +1 -1
  84. package/dist/types/src/types/ObservabilityCapabilities.d.ts +28 -0
  85. package/dist/types/src/types/ObservabilityCapabilities.d.ts.map +1 -0
  86. package/dist/types/src/types/ObservabilityEvents.d.ts +4 -0
  87. package/dist/types/src/types/ObservabilityEvents.d.ts.map +1 -0
  88. package/dist/types/src/types/ObservabilityOperation.d.ts +10 -0
  89. package/dist/types/src/types/ObservabilityOperation.d.ts.map +1 -0
  90. package/dist/types/src/types/Settings.d.ts +7 -0
  91. package/dist/types/src/types/Settings.d.ts.map +1 -0
  92. package/dist/types/src/types/index.d.ts +4 -3
  93. package/dist/types/src/types/index.d.ts.map +1 -1
  94. package/dist/types/tsconfig.tsbuildinfo +1 -1
  95. package/package.json +82 -46
  96. package/src/ObservabilityPlugin.node.ts +33 -0
  97. package/src/ObservabilityPlugin.test.ts +25 -0
  98. package/src/ObservabilityPlugin.ts +27 -20
  99. package/src/ObservabilityPlugin.workerd.ts +32 -0
  100. package/src/capabilities/{client-ready/client-ready.ts → client-ready.ts} +31 -9
  101. package/src/capabilities/index.ts +13 -6
  102. package/src/capabilities/operation-handler.ts +16 -0
  103. package/src/capabilities/react-surface.tsx +35 -0
  104. package/src/capabilities/{settings/settings.ts → settings.ts} +4 -5
  105. package/src/capabilities/{state/state.ts → state.ts} +2 -2
  106. package/src/components/ObservabilitySettings/ObservabilitySettings.stories.tsx +34 -0
  107. package/src/components/ObservabilitySettings/ObservabilitySettings.tsx +34 -0
  108. package/src/components/ObservabilitySettings/index.ts +5 -0
  109. package/src/components/index.ts +3 -1
  110. package/src/index.ts +1 -3
  111. package/src/meta.ts +2 -0
  112. package/src/operations/index.ts +10 -0
  113. package/src/operations/send-event.ts +23 -0
  114. package/src/operations/toggle.ts +46 -0
  115. package/src/plugin.ts +11 -0
  116. package/src/translations.ts +10 -17
  117. package/src/types/ObservabilityCapabilities.ts +42 -0
  118. package/src/types/{events.ts → ObservabilityEvents.ts} +4 -4
  119. package/src/types/ObservabilityOperation.ts +41 -0
  120. package/src/types/Settings.ts +22 -0
  121. package/src/types/index.ts +4 -3
  122. package/dist/lib/browser/HelpContainer-KTMKZBHY.mjs +0 -74
  123. package/dist/lib/browser/HelpContainer-KTMKZBHY.mjs.map +0 -7
  124. package/dist/lib/browser/ObservabilitySettings-ICX2QGCA.mjs +0 -12
  125. package/dist/lib/browser/app-graph-builder-367TIDLZ.mjs +0 -41
  126. package/dist/lib/browser/app-graph-builder-367TIDLZ.mjs.map +0 -7
  127. package/dist/lib/browser/chunk-2WPL7OWM.mjs.map +0 -7
  128. package/dist/lib/browser/chunk-D4FKSLUA.mjs +0 -10
  129. package/dist/lib/browser/chunk-D4FKSLUA.mjs.map +0 -7
  130. package/dist/lib/browser/chunk-EHHO2HH2.mjs +0 -138
  131. package/dist/lib/browser/chunk-EHHO2HH2.mjs.map +0 -7
  132. package/dist/lib/browser/chunk-GUYC2TF5.mjs +0 -41
  133. package/dist/lib/browser/chunk-GUYC2TF5.mjs.map +0 -7
  134. package/dist/lib/browser/chunk-U5DG3DSQ.mjs +0 -32
  135. package/dist/lib/browser/chunk-U5DG3DSQ.mjs.map +0 -7
  136. package/dist/lib/browser/cli/index.mjs +0 -24
  137. package/dist/lib/browser/cli/index.mjs.map +0 -7
  138. package/dist/lib/browser/client-ready-NOYYQV6U.mjs.map +0 -7
  139. package/dist/lib/browser/index.mjs +0 -93
  140. package/dist/lib/browser/index.mjs.map +0 -7
  141. package/dist/lib/browser/meta.json +0 -1
  142. package/dist/lib/browser/operation-resolver-VDE6BGUA.mjs +0 -78
  143. package/dist/lib/browser/operation-resolver-VDE6BGUA.mjs.map +0 -7
  144. package/dist/lib/browser/react-surface-EW3DW2JH.mjs +0 -39
  145. package/dist/lib/browser/react-surface-EW3DW2JH.mjs.map +0 -7
  146. package/dist/lib/browser/settings-YCQ67D55.mjs.map +0 -7
  147. package/dist/lib/browser/state-I2G23I3G.mjs.map +0 -7
  148. package/dist/lib/browser/types/index.mjs +0 -18
  149. package/dist/lib/node-esm/HelpContainer-TF3KOC2E.mjs +0 -75
  150. package/dist/lib/node-esm/HelpContainer-TF3KOC2E.mjs.map +0 -7
  151. package/dist/lib/node-esm/ObservabilitySettings-WJ7CWCNV.mjs +0 -13
  152. package/dist/lib/node-esm/app-graph-builder-PJ5PRDPL.mjs +0 -42
  153. package/dist/lib/node-esm/app-graph-builder-PJ5PRDPL.mjs.map +0 -7
  154. package/dist/lib/node-esm/chunk-2AMYV5T4.mjs +0 -139
  155. package/dist/lib/node-esm/chunk-2AMYV5T4.mjs.map +0 -7
  156. package/dist/lib/node-esm/chunk-6OEBM6QE.mjs +0 -42
  157. package/dist/lib/node-esm/chunk-6OEBM6QE.mjs.map +0 -7
  158. package/dist/lib/node-esm/chunk-HGAUN765.mjs +0 -12
  159. package/dist/lib/node-esm/chunk-HGAUN765.mjs.map +0 -7
  160. package/dist/lib/node-esm/chunk-LJSRL5PE.mjs +0 -18
  161. package/dist/lib/node-esm/chunk-LJSRL5PE.mjs.map +0 -7
  162. package/dist/lib/node-esm/chunk-POCWWX7Z.mjs +0 -33
  163. package/dist/lib/node-esm/chunk-POCWWX7Z.mjs.map +0 -7
  164. package/dist/lib/node-esm/cli/index.mjs +0 -25
  165. package/dist/lib/node-esm/cli/index.mjs.map +0 -7
  166. package/dist/lib/node-esm/client-ready-QDMM2N3K.mjs +0 -103
  167. package/dist/lib/node-esm/client-ready-QDMM2N3K.mjs.map +0 -7
  168. package/dist/lib/node-esm/index.mjs +0 -94
  169. package/dist/lib/node-esm/index.mjs.map +0 -7
  170. package/dist/lib/node-esm/meta.json +0 -1
  171. package/dist/lib/node-esm/operation-resolver-PKDJM72F.mjs +0 -79
  172. package/dist/lib/node-esm/operation-resolver-PKDJM72F.mjs.map +0 -7
  173. package/dist/lib/node-esm/react-surface-YJATSR4Q.mjs +0 -40
  174. package/dist/lib/node-esm/react-surface-YJATSR4Q.mjs.map +0 -7
  175. package/dist/lib/node-esm/settings-2PQK3YZN.mjs +0 -38
  176. package/dist/lib/node-esm/settings-2PQK3YZN.mjs.map +0 -7
  177. package/dist/lib/node-esm/state-ZVKG6WA6.mjs +0 -31
  178. package/dist/lib/node-esm/state-ZVKG6WA6.mjs.map +0 -7
  179. package/dist/lib/node-esm/types/index.mjs +0 -19
  180. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +0 -6
  181. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +0 -1
  182. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +0 -3
  183. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +0 -1
  184. package/dist/types/src/capabilities/client-ready/client-ready.d.ts.map +0 -1
  185. package/dist/types/src/capabilities/client-ready/index.d.ts +0 -4
  186. package/dist/types/src/capabilities/client-ready/index.d.ts.map +0 -1
  187. package/dist/types/src/capabilities/operation-resolver/index.d.ts +0 -5
  188. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +0 -1
  189. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +0 -7
  190. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +0 -1
  191. package/dist/types/src/capabilities/react-surface/index.d.ts +0 -3
  192. package/dist/types/src/capabilities/react-surface/index.d.ts.map +0 -1
  193. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +0 -1
  194. package/dist/types/src/capabilities/settings/index.d.ts +0 -7
  195. package/dist/types/src/capabilities/settings/index.d.ts.map +0 -1
  196. package/dist/types/src/capabilities/settings/settings.d.ts.map +0 -1
  197. package/dist/types/src/capabilities/state/index.d.ts +0 -11
  198. package/dist/types/src/capabilities/state/index.d.ts.map +0 -1
  199. package/dist/types/src/capabilities/state/state.d.ts.map +0 -1
  200. package/dist/types/src/cli/index.d.ts +0 -2
  201. package/dist/types/src/cli/index.d.ts.map +0 -1
  202. package/dist/types/src/cli/plugin.d.ts.map +0 -1
  203. package/dist/types/src/components/FeedbackForm/FeedbackForm.d.ts +0 -6
  204. package/dist/types/src/components/FeedbackForm/FeedbackForm.d.ts.map +0 -1
  205. package/dist/types/src/components/FeedbackForm/FeedbackForm.stories.d.ts +0 -35
  206. package/dist/types/src/components/FeedbackForm/FeedbackForm.stories.d.ts.map +0 -1
  207. package/dist/types/src/components/FeedbackForm/index.d.ts +0 -2
  208. package/dist/types/src/components/FeedbackForm/index.d.ts.map +0 -1
  209. package/dist/types/src/containers/HelpContainer/HelpContainer.d.ts +0 -4
  210. package/dist/types/src/containers/HelpContainer/HelpContainer.d.ts.map +0 -1
  211. package/dist/types/src/containers/HelpContainer/index.d.ts +0 -3
  212. package/dist/types/src/containers/HelpContainer/index.d.ts.map +0 -1
  213. package/dist/types/src/containers/ObservabilitySettings/ObservabilitySettings.d.ts +0 -12
  214. package/dist/types/src/containers/ObservabilitySettings/ObservabilitySettings.d.ts.map +0 -1
  215. package/dist/types/src/containers/ObservabilitySettings/index.d.ts +0 -3
  216. package/dist/types/src/containers/ObservabilitySettings/index.d.ts.map +0 -1
  217. package/dist/types/src/containers/index.d.ts +0 -6
  218. package/dist/types/src/containers/index.d.ts.map +0 -1
  219. package/dist/types/src/types/capabilities.d.ts +0 -27
  220. package/dist/types/src/types/capabilities.d.ts.map +0 -1
  221. package/dist/types/src/types/events.d.ts +0 -6
  222. package/dist/types/src/types/events.d.ts.map +0 -1
  223. package/dist/types/src/types/schema.d.ts +0 -63
  224. package/dist/types/src/types/schema.d.ts.map +0 -1
  225. package/src/capabilities/app-graph-builder/app-graph-builder.ts +0 -40
  226. package/src/capabilities/app-graph-builder/index.ts +0 -7
  227. package/src/capabilities/client-ready/index.ts +0 -9
  228. package/src/capabilities/operation-resolver/index.ts +0 -7
  229. package/src/capabilities/operation-resolver/operation-resolver.ts +0 -76
  230. package/src/capabilities/react-surface/index.ts +0 -7
  231. package/src/capabilities/react-surface/react-surface.tsx +0 -35
  232. package/src/capabilities/settings/index.ts +0 -7
  233. package/src/capabilities/state/index.ts +0 -7
  234. package/src/cli/index.ts +0 -5
  235. package/src/cli/plugin.ts +0 -28
  236. package/src/components/FeedbackForm/FeedbackForm.stories.tsx +0 -33
  237. package/src/components/FeedbackForm/FeedbackForm.tsx +0 -33
  238. package/src/components/FeedbackForm/index.ts +0 -5
  239. package/src/containers/HelpContainer/HelpContainer.tsx +0 -55
  240. package/src/containers/HelpContainer/index.ts +0 -7
  241. package/src/containers/ObservabilitySettings/ObservabilitySettings.tsx +0 -53
  242. package/src/containers/ObservabilitySettings/index.ts +0 -11
  243. package/src/containers/index.ts +0 -11
  244. package/src/types/capabilities.ts +0 -34
  245. package/src/types/schema.ts +0 -84
  246. /package/dist/lib/{browser/ObservabilitySettings-ICX2QGCA.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
  247. /package/dist/lib/{browser/types → neutral}/index.mjs.map +0 -0
  248. /package/dist/lib/{node-esm/ObservabilitySettings-WJ7CWCNV.mjs.map → neutral/meta.mjs.map} +0 -0
  249. /package/dist/lib/{node-esm/types → neutral/operations}/index.mjs.map +0 -0
  250. /package/dist/types/src/capabilities/{client-ready/client-ready.d.ts → client-ready.d.ts} +0 -0
  251. /package/dist/types/src/capabilities/{react-surface/react-surface.d.ts → react-surface.d.ts} +0 -0
  252. /package/dist/types/src/capabilities/{state/state.d.ts → state.d.ts} +0 -0
@@ -1,11 +0,0 @@
1
- import { Capability } from '@dxos/app-framework';
2
- export declare const ObservabilityState: Capability.LazyCapability<{
3
- namespace: string;
4
- }, Capability.Capability<Capability.InterfaceDef<import("@effect-atom/atom/Atom").Writable<{
5
- group?: string | undefined;
6
- notified?: boolean | undefined;
7
- }, {
8
- group?: string | undefined;
9
- notified?: boolean | undefined;
10
- }>>>, Error>;
11
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/state/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,eAAO,MAAM,kBAAkB;;;;;;;;YAAiE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/state/state.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAgB,UAAU,EAAE,MAAM,qBAAqB,CAAC;;eAQJ,MAAM;;;;;;;;AADjE,wBAeE"}
@@ -1,2 +0,0 @@
1
- export * from './plugin';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/index.ts"],"names":[],"mappings":"AAIA,cAAc,UAAU,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../../src/cli/plugin.ts"],"names":[],"mappings":"AAMA,OAAO,EAA4B,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAQvE,eAAO,MAAM,mBAAmB,4BAa/B,CAAC"}
@@ -1,6 +0,0 @@
1
- import React from 'react';
2
- import { type FormRootProps, type FormSubmitProps } from '@dxos/react-ui-form';
3
- import { UserFeedback } from '../../types';
4
- export type FeedbackFormProps = Pick<FormRootProps<UserFeedback>, 'onSave'> & Pick<FormSubmitProps, 'disabled'>;
5
- export declare const FeedbackForm: ({ onSave, disabled }: FeedbackFormProps) => React.JSX.Element;
6
- //# sourceMappingURL=FeedbackForm.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FeedbackForm.d.ts","sourceRoot":"","sources":["../../../../../src/components/FeedbackForm/FeedbackForm.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAQ,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGrF,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;AAOhH,eAAO,MAAM,YAAY,GAAI,sBAAsB,iBAAiB,sBAanE,CAAC"}
@@ -1,35 +0,0 @@
1
- import { type StoryObj } from '@storybook/react-vite';
2
- declare const meta: {
3
- title: string;
4
- component: ({ onSave, disabled }: import("./FeedbackForm").FeedbackFormProps) => import("react").JSX.Element;
5
- decorators: import("@storybook/react").Decorator[];
6
- parameters: {
7
- layout: string;
8
- translations: [{
9
- readonly 'en-US': {
10
- readonly [meta.id]: {
11
- readonly 'plugin name': "Telemetry";
12
- readonly 'settings title': "Telemetry settings";
13
- readonly 'observability toast label': "Privacy Notice";
14
- readonly 'observability toast description': "Composer collects usage and performance metrics to improve the product. No user data is collected.";
15
- readonly 'observability toast action label': "Settings";
16
- readonly 'observability toast action alt': "Open settings to learn more or to disable.";
17
- readonly 'observability toast close label': "Okay";
18
- readonly 'observability enabled label': "Enable telemetry";
19
- readonly 'observability description': "When enabled, basic usage data will used to improve the product. This may include performance metrics, error logs, and usage data. No personally identifiable information, other than your public key, is included with this data and no private data ever leaves your devices.";
20
- readonly 'help label': "Feedback & Support";
21
- readonly 'feedback textarea label': "Feedback";
22
- readonly 'feedback textarea placeholder': "Please enter your feedback, technical issue, or feature request.";
23
- readonly 'include debug logs label': "Include debug logs";
24
- readonly 'send feedback label': "Send Feedback";
25
- readonly 'feedback toast label': "Thank you for your feedback!";
26
- readonly 'feedback toast description': "We will review your feedback and get back to you as soon as possible.";
27
- };
28
- };
29
- }];
30
- };
31
- };
32
- export default meta;
33
- type Story = StoryObj<typeof meta>;
34
- export declare const Default: Story;
35
- //# sourceMappingURL=FeedbackForm.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FeedbackForm.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/FeedbackForm/FeedbackForm.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAQjE,QAAA,MAAM,IAAI;;;;;;;;yBANoD,CAEzD,IAAI,CAAC,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;CAYwB,CAAC;AAEtC,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAMrB,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from './FeedbackForm';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/FeedbackForm/index.ts"],"names":[],"mappings":"AAIA,cAAc,gBAAgB,CAAC"}
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- /** Renders the feedback form, disabling it when the feedback survey is unavailable. */
3
- export declare const HelpContainer: () => React.JSX.Element;
4
- //# sourceMappingURL=HelpContainer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"HelpContainer.d.ts","sourceRoot":"","sources":["../../../../../src/containers/HelpContainer/HelpContainer.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAYrD,uFAAuF;AACvF,eAAO,MAAM,aAAa,yBAoCzB,CAAC"}
@@ -1,3 +0,0 @@
1
- import { HelpContainer } from './HelpContainer';
2
- export default HelpContainer;
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/containers/HelpContainer/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,eAAe,aAAa,CAAC"}
@@ -1,12 +0,0 @@
1
- import * as Schema from 'effect/Schema';
2
- import React from 'react';
3
- export declare const ObservabilitySettingsSchema: Schema.mutable<Schema.Struct<{
4
- enabled: typeof Schema.Boolean;
5
- }>>;
6
- export type ObservabilitySettingsProps = Schema.Schema.Type<typeof ObservabilitySettingsSchema>;
7
- export type ObservabilitySettingsComponentProps = {
8
- settings: ObservabilitySettingsProps;
9
- onSettingsChange: (fn: (current: ObservabilitySettingsProps) => ObservabilitySettingsProps) => void;
10
- };
11
- export declare const ObservabilitySettings: ({ settings }: ObservabilitySettingsComponentProps) => React.JSX.Element;
12
- //# sourceMappingURL=ObservabilitySettings.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ObservabilitySettings.d.ts","sourceRoot":"","sources":["../../../../../src/containers/ObservabilitySettings/ObservabilitySettings.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,OAAO,CAAC;AAS1B,eAAO,MAAM,2BAA2B;;GAQvC,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhG,MAAM,MAAM,mCAAmC,GAAG;IAChD,QAAQ,EAAE,0BAA0B,CAAC;IACrC,gBAAgB,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,0BAA0B,KAAK,0BAA0B,KAAK,IAAI,CAAC;CACrG,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,cAAc,mCAAmC,sBAqBtF,CAAC"}
@@ -1,3 +0,0 @@
1
- export { ObservabilitySettings, ObservabilitySettingsSchema, type ObservabilitySettingsProps, type ObservabilitySettingsComponentProps, } from './ObservabilitySettings';
2
- export { ObservabilitySettings as default } from './ObservabilitySettings';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/containers/ObservabilitySettings/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,qBAAqB,EACrB,2BAA2B,EAC3B,KAAK,0BAA0B,EAC/B,KAAK,mCAAmC,GACzC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,qBAAqB,IAAI,OAAO,EAAE,MAAM,yBAAyB,CAAC"}
@@ -1,6 +0,0 @@
1
- import { type ComponentType } from 'react';
2
- export { ObservabilitySettingsSchema } from './ObservabilitySettings';
3
- export type { ObservabilitySettingsProps, ObservabilitySettingsComponentProps } from './ObservabilitySettings';
4
- export declare const HelpContainer: ComponentType<any>;
5
- export declare const ObservabilitySettings: ComponentType<any>;
6
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/containers/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,aAAa,EAAQ,MAAM,OAAO,CAAC;AAEjD,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACtE,YAAY,EAAE,0BAA0B,EAAE,mCAAmC,EAAE,MAAM,yBAAyB,CAAC;AAE/G,eAAO,MAAM,aAAa,EAAE,aAAa,CAAC,GAAG,CAAyC,CAAC;AACvF,eAAO,MAAM,qBAAqB,EAAE,aAAa,CAAC,GAAG,CAAiD,CAAC"}
@@ -1,27 +0,0 @@
1
- import { type Atom } from '@effect-atom/atom-react';
2
- import * as Schema from 'effect/Schema';
3
- import { Capability } from '@dxos/app-framework';
4
- import { type Client } from '@dxos/client';
5
- import { type Observability } from '@dxos/observability';
6
- export declare namespace ObservabilityCapabilities {
7
- const Settings: Capability.InterfaceDef<Atom.Writable<{
8
- enabled: boolean;
9
- }, {
10
- enabled: boolean;
11
- }>>;
12
- const StateSchema: Schema.mutable<Schema.Struct<{
13
- group: Schema.optional<typeof Schema.String>;
14
- notified: Schema.optional<typeof Schema.Boolean>;
15
- }>>;
16
- type State = Schema.Schema.Type<typeof StateSchema>;
17
- const State: Capability.InterfaceDef<Atom.Writable<{
18
- group?: string | undefined;
19
- notified?: boolean | undefined;
20
- }, {
21
- group?: string | undefined;
22
- notified?: boolean | undefined;
23
- }>>;
24
- const Observability: Capability.InterfaceDef<Observability.Observability>;
25
- }
26
- export declare const ClientCapability: Capability.InterfaceDef<Client>;
27
- //# sourceMappingURL=capabilities.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../../../src/types/capabilities.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAKzD,yBAAiB,yBAAyB,CAAC;IAClC,MAAM,QAAQ;;;;OAA+F,CAAC;IAE9G,MAAM,WAAW;;;OAKvB,CAAC;IAEF,KAAY,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,WAAW,CAAC,CAAC;IAEpD,MAAM,KAAK;;;;;;OAAuE,CAAC;IAEnF,MAAM,aAAa,sDAAsF,CAAC;CAClH;AAID,eAAO,MAAM,gBAAgB,iCAAsE,CAAC"}
@@ -1,6 +0,0 @@
1
- import { ActivationEvent } from '@dxos/app-framework';
2
- export declare namespace ObservabilityEvents {
3
- const StateReady: ActivationEvent.ActivationEvent;
4
- }
5
- export declare const ClientReadyEvent: ActivationEvent.ActivationEvent;
6
- //# sourceMappingURL=events.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../src/types/events.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAKtD,yBAAiB,mBAAmB,CAAC;IAC5B,MAAM,UAAU,EAAE,eAAe,CAAC,eAA+D,CAAC;CAC1G;AAGD,eAAO,MAAM,gBAAgB,iCAAoE,CAAC"}
@@ -1,63 +0,0 @@
1
- import * as Schema from 'effect/Schema';
2
- import { Capability } from '@dxos/app-framework';
3
- export declare const UserFeedback: Schema.Struct<{
4
- message: Schema.refine<string, Schema.filter<typeof Schema.String>>;
5
- includeLogs: Schema.optional<Schema.SchemaClass<boolean, boolean, never>>;
6
- }>;
7
- export type UserFeedback = Schema.Schema.Type<typeof UserFeedback>;
8
- /**
9
- * Operations for the Observability plugin.
10
- */
11
- export declare namespace ObservabilityOperation {
12
- const Toggle: Omit<{
13
- readonly meta: {
14
- readonly key: `${string}.toggle`;
15
- readonly name: "Toggle Observability";
16
- readonly description: "Toggle observability on or off.";
17
- };
18
- readonly services: readonly [typeof Capability.Service];
19
- readonly schema: {
20
- readonly input: Schema.Struct<{
21
- state: Schema.optional<typeof Schema.Boolean>;
22
- }>;
23
- readonly output: typeof Schema.Boolean;
24
- };
25
- }, "executionMode"> & import("effect/Pipeable").Pipeable & {
26
- readonly executionMode: "sync" | "async";
27
- };
28
- const CaptureUserFeedback: Omit<{
29
- readonly meta: {
30
- readonly key: `${string}.capture-feedback`;
31
- readonly name: "Capture User Feedback";
32
- readonly description: "Capture user feedback.";
33
- };
34
- readonly services: readonly [typeof Capability.Service];
35
- readonly schema: {
36
- readonly input: Schema.Struct<{
37
- message: Schema.refine<string, Schema.filter<typeof Schema.String>>;
38
- includeLogs: Schema.optional<Schema.SchemaClass<boolean, boolean, never>>;
39
- }>;
40
- readonly output: typeof Schema.Void;
41
- };
42
- }, "executionMode"> & import("effect/Pipeable").Pipeable & {
43
- readonly executionMode: "sync" | "async";
44
- };
45
- const SendEvent: Omit<{
46
- readonly meta: {
47
- readonly key: `${string}.send-event`;
48
- readonly name: "Send Event";
49
- readonly description: "Send an observability event.";
50
- };
51
- readonly services: readonly [typeof Capability.Service];
52
- readonly schema: {
53
- readonly input: Schema.Struct<{
54
- name: Schema.SchemaClass<string, string, never>;
55
- properties: Schema.optional<typeof Schema.Any>;
56
- }>;
57
- readonly output: typeof Schema.Void;
58
- };
59
- }, "executionMode"> & import("effect/Pipeable").Pipeable & {
60
- readonly executionMode: "sync" | "async";
61
- };
62
- }
63
- //# sourceMappingURL=schema.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/types/schema.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AASjD,eAAO,MAAM,YAAY;;;EAevB,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,YAAY,CAAC,CAAC;AAInE;;GAEG;AACH,yBAAiB,sBAAsB,CAAC;IAC/B,MAAM,MAAM;;;;;;;;;;;;;;;KAajB,CAAC;IAEI,MAAM,mBAAmB;;;;;;;;;;;;;;;;KAW9B,CAAC;IAEI,MAAM,SAAS;;;;;;;;;;;;;;;;KAcpB,CAAC;CACJ"}
@@ -1,40 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import * as Effect from 'effect/Effect';
6
-
7
- import { Capability } from '@dxos/app-framework';
8
- import { AppCapabilities, COMPANION_PREFIX } from '@dxos/app-toolkit';
9
- import { GraphBuilder, NodeMatcher } from '@dxos/plugin-graph';
10
-
11
- import { meta } from '../../meta';
12
-
13
- const DECK_COMPANION_TYPE = 'org.dxos.plugin.deck.deck-companion';
14
-
15
- export default Capability.makeModule(
16
- Effect.fnUntraced(function* () {
17
- const extensions = yield* Effect.all([
18
- GraphBuilder.createExtension({
19
- id: `${meta.id}.help`,
20
- match: NodeMatcher.whenRoot,
21
- connector: (node) =>
22
- Effect.succeed([
23
- {
24
- id: `${COMPANION_PREFIX}help`,
25
- type: DECK_COMPANION_TYPE,
26
- data: null,
27
- properties: {
28
- label: ['help label', { ns: meta.id }],
29
- icon: 'ph--question--regular',
30
- disposition: 'hidden',
31
- position: 'hoist',
32
- },
33
- },
34
- ]),
35
- }),
36
- ]);
37
-
38
- return Capability.contributes(AppCapabilities.AppGraphBuilder, extensions);
39
- }),
40
- );
@@ -1,7 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { Capability } from '@dxos/app-framework';
6
-
7
- export const AppGraphBuilder = Capability.lazy('AppGraphBuilder', () => import('./app-graph-builder'));
@@ -1,9 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { Capability } from '@dxos/app-framework';
6
-
7
- import { type ClientReadyOptions } from './client-ready';
8
-
9
- export const ClientReady = Capability.lazy<ClientReadyOptions>('ClientReady', () => import('./client-ready'));
@@ -1,7 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { Capability } from '@dxos/app-framework';
6
-
7
- export const OperationResolver = Capability.lazy('OperationResolver', () => import('./operation-resolver'));
@@ -1,76 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import * as Effect from 'effect/Effect';
6
-
7
- import { Capabilities, Capability } from '@dxos/app-framework';
8
- import { AppCapabilities } from '@dxos/app-toolkit';
9
- import { Observability } from '@dxos/observability';
10
- import { OperationResolver } from '@dxos/operation';
11
-
12
- import { type ObservabilitySettingsProps } from '../../containers';
13
- import { meta } from '../../meta';
14
- import { ObservabilityCapabilities, ObservabilityOperation } from '../../types';
15
-
16
- export default Capability.makeModule(
17
- Effect.fnUntraced(function* ({ namespace }: { namespace: string }) {
18
- const capabilities = yield* Capability.Service;
19
-
20
- return Capability.contributes(Capabilities.OperationResolver, [
21
- //
22
- // Toggle
23
- //
24
- OperationResolver.make({
25
- operation: ObservabilityOperation.Toggle,
26
- handler: Effect.fnUntraced(function* (input) {
27
- const observability = yield* Capability.get(ObservabilityCapabilities.Observability);
28
- const registry = capabilities.get(Capabilities.AtomRegistry);
29
- const allSettings = capabilities.getAll(AppCapabilities.Settings);
30
- const settingsObj = allSettings.find((s: AppCapabilities.Settings) => s.prefix === meta.id);
31
- if (!settingsObj) {
32
- return false;
33
- }
34
- const settings = registry.get(settingsObj.atom) as ObservabilitySettingsProps;
35
- const newEnabled = input.state ?? !settings.enabled;
36
- registry.set(settingsObj.atom, { ...settings, enabled: newEnabled });
37
- observability.events.captureEvent('observability.toggle', {
38
- enabled: newEnabled,
39
- });
40
-
41
- if (newEnabled) {
42
- yield* observability.enable();
43
- } else {
44
- yield* observability.disable();
45
- }
46
- yield* Effect.promise(() => Observability.storeObservabilityDisabled(namespace, !newEnabled));
47
- return newEnabled;
48
- }),
49
- }),
50
-
51
- //
52
- // SendEvent
53
- //
54
- OperationResolver.make({
55
- operation: ObservabilityOperation.SendEvent,
56
- handler: Effect.fnUntraced(function* (input) {
57
- // NOTE: This is to ensure that events fired before observability is ready are still sent.
58
- const observability = yield* Capability.waitFor(ObservabilityCapabilities.Observability);
59
- const properties = input.properties ?? {};
60
- observability.events.captureEvent(input.name, properties);
61
- }),
62
- }),
63
-
64
- //
65
- // CaptureUserFeedback
66
- //
67
- OperationResolver.make({
68
- operation: ObservabilityOperation.CaptureUserFeedback,
69
- handler: Effect.fnUntraced(function* (input) {
70
- const observability = yield* Capability.get(ObservabilityCapabilities.Observability);
71
- observability.feedback.captureUserFeedback({ message: input.message, includeLogs: input.includeLogs });
72
- }),
73
- }),
74
- ]);
75
- }),
76
- );
@@ -1,7 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { Capability } from '@dxos/app-framework';
6
-
7
- export const ReactSurface = Capability.lazy('ReactSurface', () => import('./react-surface'));
@@ -1,35 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import * as Effect from 'effect/Effect';
6
- import React from 'react';
7
-
8
- import { Capabilities, Capability } from '@dxos/app-framework';
9
- import { Surface, useSettingsState } from '@dxos/app-framework/ui';
10
- import { AppCapabilities } from '@dxos/app-toolkit';
11
-
12
- import { HelpContainer, ObservabilitySettings, type ObservabilitySettingsProps } from '../../containers';
13
- import { meta } from '../../meta';
14
-
15
- export default Capability.makeModule(() =>
16
- Effect.succeed(
17
- Capability.contributes(Capabilities.ReactSurface, [
18
- Surface.create({
19
- id: meta.id,
20
- role: 'article',
21
- filter: (data): data is { subject: AppCapabilities.Settings } =>
22
- AppCapabilities.isSettings(data.subject) && data.subject.prefix === meta.id,
23
- component: ({ data: { subject } }) => {
24
- const { settings, updateSettings } = useSettingsState<ObservabilitySettingsProps>(subject.atom);
25
- return <ObservabilitySettings settings={settings} onSettingsChange={updateSettings} />;
26
- },
27
- }),
28
- Surface.create({
29
- id: `${meta.id}.help`,
30
- role: 'deck-companion--help',
31
- component: () => <HelpContainer />,
32
- }),
33
- ]),
34
- ),
35
- );
@@ -1,7 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { Capability } from '@dxos/app-framework';
6
-
7
- export const ObservabilitySettings = Capability.lazy('ObservabilitySettings', () => import('./settings'));
@@ -1,7 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { Capability } from '@dxos/app-framework';
6
-
7
- export const ObservabilityState = Capability.lazy('ObservabilityState', () => import('./state'));
package/src/cli/index.ts DELETED
@@ -1,5 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- export * from './plugin';
package/src/cli/plugin.ts DELETED
@@ -1,28 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import * as Effect from 'effect/Effect';
6
-
7
- import { Capabilities, Capability, Plugin } from '@dxos/app-framework';
8
- import { AppPlugin } from '@dxos/app-toolkit';
9
- import { OperationResolver } from '@dxos/operation';
10
-
11
- import { meta } from '../meta';
12
- import { ObservabilityOperation } from '../types';
13
-
14
- // TODO(wittjosiah): Hook up.
15
- export const ObservabilityPlugin = Plugin.define(meta).pipe(
16
- AppPlugin.addOperationResolverModule({
17
- activate: () =>
18
- Effect.succeed(
19
- Capability.contributes(Capabilities.OperationResolver, [
20
- OperationResolver.make({
21
- operation: ObservabilityOperation.SendEvent,
22
- handler: () => Effect.void,
23
- }),
24
- ]),
25
- ),
26
- }),
27
- Plugin.make,
28
- );
@@ -1,33 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { type Meta, type StoryObj } from '@storybook/react-vite';
6
-
7
- import { withLayout, withTheme } from '@dxos/react-ui/testing';
8
-
9
- import { translations } from '../../translations';
10
-
11
- import { FeedbackForm } from './FeedbackForm';
12
-
13
- const meta = {
14
- title: 'plugins/plugin-observability/components/FeedbackForm',
15
- component: FeedbackForm,
16
- decorators: [withTheme(), withLayout({ layout: 'column' })],
17
- parameters: {
18
- layout: 'fullscreen',
19
- translations,
20
- },
21
- } satisfies Meta<typeof FeedbackForm>;
22
-
23
- export default meta;
24
-
25
- type Story = StoryObj<typeof meta>;
26
-
27
- export const Default: Story = {
28
- args: {
29
- onSave: (values) => {
30
- console.log(values);
31
- },
32
- },
33
- };
@@ -1,33 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- import React from 'react';
6
-
7
- import { useTranslation } from '@dxos/react-ui';
8
- import { Form, type FormRootProps, type FormSubmitProps } from '@dxos/react-ui-form';
9
-
10
- import { meta } from '../../meta';
11
- import { UserFeedback } from '../../types';
12
-
13
- export type FeedbackFormProps = Pick<FormRootProps<UserFeedback>, 'onSave'> & Pick<FormSubmitProps, 'disabled'>;
14
-
15
- const defaultValues: UserFeedback = {
16
- message: '',
17
- includeLogs: true,
18
- };
19
-
20
- export const FeedbackForm = ({ onSave, disabled }: FeedbackFormProps) => {
21
- const { t } = useTranslation(meta.id);
22
-
23
- return (
24
- <Form.Root schema={UserFeedback} defaultValues={defaultValues} onSave={onSave}>
25
- <Form.Viewport>
26
- <Form.Content>
27
- <Form.FieldSet />
28
- <Form.Submit icon='ph--paper-plane-tilt--regular' label={t('send feedback label')} disabled={disabled} />
29
- </Form.Content>
30
- </Form.Viewport>
31
- </Form.Root>
32
- );
33
- };
@@ -1,5 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- export * from './FeedbackForm';
@@ -1,55 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import * as Effect from 'effect/Effect';
6
- import React, { useCallback, useState } from 'react';
7
-
8
- import { useCapability, useOperationInvoker } from '@dxos/app-framework/ui';
9
- import { LayoutOperation } from '@dxos/app-toolkit';
10
- import { runAndForwardErrors } from '@dxos/effect';
11
- import { useAsyncEffect } from '@dxos/react-hooks';
12
- import { osTranslations } from '@dxos/ui-theme';
13
-
14
- import { FeedbackForm } from '../../components';
15
- import { meta } from '../../meta';
16
- import { ObservabilityCapabilities, ObservabilityOperation, type UserFeedback } from '../../types';
17
-
18
- /** Renders the feedback form, disabling it when the feedback survey is unavailable. */
19
- export const HelpContainer = () => {
20
- const { invokePromise } = useOperationInvoker();
21
- const observability = useCapability(ObservabilityCapabilities.Observability);
22
- const [feedbackAvailable, setFeedbackAvailable] = useState(false);
23
-
24
- useAsyncEffect(
25
- async (controller) => {
26
- const available = await observability.isAvailable('feedback').pipe(
27
- Effect.catchAll(() => Effect.succeed(false)),
28
- Effect.catchAllDefect(() => Effect.succeed(false)),
29
- runAndForwardErrors,
30
- );
31
- if (!controller.signal.aborted) {
32
- setFeedbackAvailable(available);
33
- }
34
- },
35
- [observability],
36
- );
37
-
38
- const handleSave = useCallback(
39
- async (values: UserFeedback) => {
40
- await invokePromise(ObservabilityOperation.CaptureUserFeedback, values);
41
- await invokePromise(LayoutOperation.UpdateComplementary, { state: 'collapsed' });
42
- await invokePromise(LayoutOperation.AddToast, {
43
- id: `${meta.id}.feedback-success`,
44
- icon: 'ph--paper-plane-tilt--regular',
45
- duration: 3000,
46
- title: ['feedback toast label', { ns: meta.id }],
47
- description: ['feedback toast description', { ns: meta.id }],
48
- closeLabel: ['close label', { ns: osTranslations }],
49
- });
50
- },
51
- [invokePromise],
52
- );
53
-
54
- return <FeedbackForm onSave={handleSave} disabled={!feedbackAvailable} />;
55
- };