@dxos/plugin-registry 0.8.4-main.fd6878d → 0.8.4-staging.60fe92afc8

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 (237) hide show
  1. package/LICENSE +102 -5
  2. package/dist/lib/neutral/RegistryPlugin.mjs +27 -0
  3. package/dist/lib/neutral/RegistryPlugin.mjs.map +7 -0
  4. package/dist/lib/neutral/RegistryPlugin.node.mjs +153 -0
  5. package/dist/lib/neutral/RegistryPlugin.node.mjs.map +7 -0
  6. package/dist/lib/neutral/RegistryPlugin.workerd.mjs +10 -0
  7. package/dist/lib/neutral/RegistryPlugin.workerd.mjs.map +7 -0
  8. package/dist/lib/neutral/chunk-GRQI6MLI.mjs +36 -0
  9. package/dist/lib/neutral/chunk-GRQI6MLI.mjs.map +7 -0
  10. package/dist/lib/neutral/chunk-XK2JMH3H.mjs +33 -0
  11. package/dist/lib/neutral/chunk-XK2JMH3H.mjs.map +7 -0
  12. package/dist/lib/neutral/index.mjs +25 -0
  13. package/dist/lib/neutral/index.mjs.map +7 -0
  14. package/dist/lib/neutral/meta.json +1 -0
  15. package/dist/lib/neutral/open-plugin-registry-II735N76.mjs +15 -0
  16. package/dist/lib/neutral/open-plugin-registry-II735N76.mjs.map +7 -0
  17. package/dist/lib/neutral/plugin.mjs +18 -0
  18. package/dist/lib/neutral/plugin.mjs.map +7 -0
  19. package/dist/lib/neutral/translations.mjs +72 -0
  20. package/dist/lib/neutral/translations.mjs.map +7 -0
  21. package/dist/types/src/RegistryPlugin.d.ts +3 -1
  22. package/dist/types/src/RegistryPlugin.d.ts.map +1 -1
  23. package/dist/types/src/RegistryPlugin.node.d.ts +4 -0
  24. package/dist/types/src/RegistryPlugin.node.d.ts.map +1 -0
  25. package/dist/types/src/RegistryPlugin.test.d.ts +2 -0
  26. package/dist/types/src/RegistryPlugin.test.d.ts.map +1 -0
  27. package/dist/types/src/RegistryPlugin.workerd.d.ts +4 -0
  28. package/dist/types/src/RegistryPlugin.workerd.d.ts.map +1 -0
  29. package/dist/types/src/capabilities/app-graph-builder.d.ts +4 -2
  30. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  31. package/dist/types/src/capabilities/dev-plugin-loader.d.ts +11 -0
  32. package/dist/types/src/capabilities/dev-plugin-loader.d.ts.map +1 -0
  33. package/dist/types/src/capabilities/index.d.ts +15 -3
  34. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  35. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  36. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  37. package/dist/types/src/capabilities/react-surface.d.ts +3 -2
  38. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  39. package/dist/types/src/capabilities/settings.d.ts +14 -0
  40. package/dist/types/src/capabilities/settings.d.ts.map +1 -0
  41. package/dist/types/src/categories.d.ts +18 -0
  42. package/dist/types/src/categories.d.ts.map +1 -0
  43. package/dist/types/src/commands/disable.d.ts +11 -0
  44. package/dist/types/src/commands/disable.d.ts.map +1 -0
  45. package/dist/types/src/commands/enable.d.ts +11 -0
  46. package/dist/types/src/commands/enable.d.ts.map +1 -0
  47. package/dist/types/src/commands/index.d.ts +3 -0
  48. package/dist/types/src/commands/index.d.ts.map +1 -0
  49. package/dist/types/src/commands/list.d.ts +7 -0
  50. package/dist/types/src/commands/list.d.ts.map +1 -0
  51. package/dist/types/src/commands/util.d.ts +11 -0
  52. package/dist/types/src/commands/util.d.ts.map +1 -0
  53. package/dist/types/src/components/DisableDependentsAlert/DisableDependentsAlert.d.ts +24 -0
  54. package/dist/types/src/components/DisableDependentsAlert/DisableDependentsAlert.d.ts.map +1 -0
  55. package/dist/types/src/components/DisableDependentsAlert/index.d.ts +2 -0
  56. package/dist/types/src/components/DisableDependentsAlert/index.d.ts.map +1 -0
  57. package/dist/types/src/components/PluginDetail/PluginDetail.d.ts +82 -0
  58. package/dist/types/src/components/PluginDetail/PluginDetail.d.ts.map +1 -0
  59. package/dist/types/src/components/PluginDetail/PluginDetail.stories.d.ts +79 -0
  60. package/dist/types/src/components/PluginDetail/PluginDetail.stories.d.ts.map +1 -0
  61. package/dist/types/src/components/PluginDetail/index.d.ts +2 -0
  62. package/dist/types/src/components/PluginDetail/index.d.ts.map +1 -0
  63. package/dist/types/src/components/PluginFailureBadge/PluginFailureBadge.d.ts +20 -0
  64. package/dist/types/src/components/PluginFailureBadge/PluginFailureBadge.d.ts.map +1 -0
  65. package/dist/types/src/components/PluginFailureBadge/index.d.ts +2 -0
  66. package/dist/types/src/components/PluginFailureBadge/index.d.ts.map +1 -0
  67. package/dist/types/src/components/PluginList/PluginItem.d.ts +40 -0
  68. package/dist/types/src/components/PluginList/PluginItem.d.ts.map +1 -0
  69. package/dist/types/src/components/PluginList/PluginList.d.ts +23 -0
  70. package/dist/types/src/components/PluginList/PluginList.d.ts.map +1 -0
  71. package/dist/types/src/components/PluginList/PluginList.stories.d.ts +78 -0
  72. package/dist/types/src/components/PluginList/PluginList.stories.d.ts.map +1 -0
  73. package/dist/types/src/components/PluginList/index.d.ts +2 -0
  74. package/dist/types/src/components/PluginList/index.d.ts.map +1 -0
  75. package/dist/types/src/components/RegistrySettings/RegistrySettings.d.ts +18 -0
  76. package/dist/types/src/components/RegistrySettings/RegistrySettings.d.ts.map +1 -0
  77. package/dist/types/src/components/RegistrySettings/index.d.ts +2 -0
  78. package/dist/types/src/components/RegistrySettings/index.d.ts.map +1 -0
  79. package/dist/types/src/components/index.d.ts +3 -1
  80. package/dist/types/src/components/index.d.ts.map +1 -1
  81. package/dist/types/src/containers/BaseRegistryArticle/BaseRegistryArticle.d.ts +20 -0
  82. package/dist/types/src/containers/BaseRegistryArticle/BaseRegistryArticle.d.ts.map +1 -0
  83. package/dist/types/src/containers/BaseRegistryArticle/index.d.ts +2 -0
  84. package/dist/types/src/containers/BaseRegistryArticle/index.d.ts.map +1 -0
  85. package/dist/types/src/containers/LoadPluginDialog/LoadPluginDialog.d.ts +5 -0
  86. package/dist/types/src/containers/LoadPluginDialog/LoadPluginDialog.d.ts.map +1 -0
  87. package/dist/types/src/containers/LoadPluginDialog/index.d.ts +2 -0
  88. package/dist/types/src/containers/LoadPluginDialog/index.d.ts.map +1 -0
  89. package/dist/types/src/containers/PluginArticle/PluginArticle.d.ts +7 -0
  90. package/dist/types/src/containers/PluginArticle/PluginArticle.d.ts.map +1 -0
  91. package/dist/types/src/containers/PluginArticle/index.d.ts +2 -0
  92. package/dist/types/src/containers/PluginArticle/index.d.ts.map +1 -0
  93. package/dist/types/src/containers/PublicRegistryArticle/PublicRegistryArticle.d.ts +8 -0
  94. package/dist/types/src/containers/PublicRegistryArticle/PublicRegistryArticle.d.ts.map +1 -0
  95. package/dist/types/src/containers/PublicRegistryArticle/index.d.ts +2 -0
  96. package/dist/types/src/containers/PublicRegistryArticle/index.d.ts.map +1 -0
  97. package/dist/types/src/containers/RegistryArticle/RegistryArticle.d.ts +14 -0
  98. package/dist/types/src/containers/RegistryArticle/RegistryArticle.d.ts.map +1 -0
  99. package/dist/types/src/containers/RegistryArticle/index.d.ts +2 -0
  100. package/dist/types/src/containers/RegistryArticle/index.d.ts.map +1 -0
  101. package/dist/types/src/containers/RegistrySettingsContainer/RegistrySettingsContainer.d.ts +13 -0
  102. package/dist/types/src/containers/RegistrySettingsContainer/RegistrySettingsContainer.d.ts.map +1 -0
  103. package/dist/types/src/containers/RegistrySettingsContainer/index.d.ts +2 -0
  104. package/dist/types/src/containers/RegistrySettingsContainer/index.d.ts.map +1 -0
  105. package/dist/types/src/containers/index.d.ts +8 -0
  106. package/dist/types/src/containers/index.d.ts.map +1 -0
  107. package/dist/types/src/hooks/index.d.ts +9 -0
  108. package/dist/types/src/hooks/index.d.ts.map +1 -0
  109. package/dist/types/src/hooks/useAutoTags.d.ts +20 -0
  110. package/dist/types/src/hooks/useAutoTags.d.ts.map +1 -0
  111. package/dist/types/src/hooks/useCatalogEntry.d.ts +11 -0
  112. package/dist/types/src/hooks/useCatalogEntry.d.ts.map +1 -0
  113. package/dist/types/src/hooks/useDisableConfirmation.d.ts +19 -0
  114. package/dist/types/src/hooks/useDisableConfirmation.d.ts.map +1 -0
  115. package/dist/types/src/hooks/useInstalledVersionTag.d.ts +18 -0
  116. package/dist/types/src/hooks/useInstalledVersionTag.d.ts.map +1 -0
  117. package/dist/types/src/hooks/usePluginActions.d.ts +36 -0
  118. package/dist/types/src/hooks/usePluginActions.d.ts.map +1 -0
  119. package/dist/types/src/hooks/useRegistryPlugins.d.ts +15 -0
  120. package/dist/types/src/hooks/useRegistryPlugins.d.ts.map +1 -0
  121. package/dist/types/src/hooks/useUpdateAvailable.d.ts +18 -0
  122. package/dist/types/src/hooks/useUpdateAvailable.d.ts.map +1 -0
  123. package/dist/types/src/hooks/useVersionPicker.d.ts +21 -0
  124. package/dist/types/src/hooks/useVersionPicker.d.ts.map +1 -0
  125. package/dist/types/src/index.d.ts +1 -1
  126. package/dist/types/src/index.d.ts.map +1 -1
  127. package/dist/types/src/meta.d.ts +21 -4
  128. package/dist/types/src/meta.d.ts.map +1 -1
  129. package/dist/types/src/operations/index.d.ts +3 -0
  130. package/dist/types/src/operations/index.d.ts.map +1 -0
  131. package/dist/types/src/operations/open-plugin-registry.d.ts +5 -0
  132. package/dist/types/src/operations/open-plugin-registry.d.ts.map +1 -0
  133. package/dist/types/src/plugin.d.ts +4 -0
  134. package/dist/types/src/plugin.d.ts.map +1 -0
  135. package/dist/types/src/storage.d.ts +18 -0
  136. package/dist/types/src/storage.d.ts.map +1 -0
  137. package/dist/types/src/translations.d.ts +59 -16
  138. package/dist/types/src/translations.d.ts.map +1 -1
  139. package/dist/types/src/types.d.ts +32 -1
  140. package/dist/types/src/types.d.ts.map +1 -1
  141. package/dist/types/tsconfig.tsbuildinfo +1 -1
  142. package/package.json +76 -37
  143. package/src/RegistryPlugin.node.ts +19 -0
  144. package/src/RegistryPlugin.test.ts +24 -0
  145. package/src/RegistryPlugin.tsx +20 -27
  146. package/src/RegistryPlugin.workerd.ts +11 -0
  147. package/src/capabilities/app-graph-builder.ts +199 -135
  148. package/src/capabilities/dev-plugin-loader.ts +39 -0
  149. package/src/capabilities/index.ts +10 -4
  150. package/src/capabilities/operation-handler.ts +16 -0
  151. package/src/capabilities/react-surface.tsx +115 -79
  152. package/src/capabilities/settings.ts +34 -0
  153. package/src/categories.ts +44 -0
  154. package/src/commands/disable.ts +47 -0
  155. package/src/commands/enable.ts +44 -0
  156. package/src/commands/index.ts +14 -0
  157. package/src/commands/list.ts +41 -0
  158. package/src/commands/util.ts +24 -0
  159. package/src/components/DisableDependentsAlert/DisableDependentsAlert.tsx +69 -0
  160. package/src/components/DisableDependentsAlert/index.ts +5 -0
  161. package/src/components/PluginDetail/PluginDetail.stories.tsx +48 -0
  162. package/src/components/PluginDetail/PluginDetail.tsx +345 -0
  163. package/src/components/PluginDetail/index.ts +5 -0
  164. package/src/components/PluginFailureBadge/PluginFailureBadge.tsx +68 -0
  165. package/src/components/PluginFailureBadge/index.ts +5 -0
  166. package/src/components/PluginList/PluginItem.tsx +223 -0
  167. package/src/components/PluginList/PluginList.stories.tsx +90 -0
  168. package/src/components/PluginList/PluginList.tsx +52 -0
  169. package/src/components/PluginList/index.ts +5 -0
  170. package/src/components/RegistrySettings/RegistrySettings.tsx +120 -0
  171. package/src/components/RegistrySettings/index.ts +5 -0
  172. package/src/components/index.ts +3 -1
  173. package/src/containers/BaseRegistryArticle/BaseRegistryArticle.tsx +178 -0
  174. package/src/containers/BaseRegistryArticle/index.ts +5 -0
  175. package/src/containers/LoadPluginDialog/LoadPluginDialog.tsx +88 -0
  176. package/src/containers/LoadPluginDialog/index.ts +5 -0
  177. package/src/containers/PluginArticle/PluginArticle.tsx +117 -0
  178. package/src/containers/PluginArticle/index.ts +5 -0
  179. package/src/containers/PublicRegistryArticle/PublicRegistryArticle.tsx +193 -0
  180. package/src/containers/PublicRegistryArticle/index.ts +5 -0
  181. package/src/containers/RegistryArticle/RegistryArticle.tsx +53 -0
  182. package/src/containers/RegistryArticle/index.ts +5 -0
  183. package/src/containers/RegistrySettingsContainer/RegistrySettingsContainer.tsx +59 -0
  184. package/src/containers/RegistrySettingsContainer/index.ts +5 -0
  185. package/src/containers/index.ts +12 -0
  186. package/src/hooks/index.ts +12 -0
  187. package/src/hooks/useAutoTags.ts +52 -0
  188. package/src/hooks/useCatalogEntry.ts +25 -0
  189. package/src/hooks/useDisableConfirmation.ts +58 -0
  190. package/src/hooks/useInstalledVersionTag.ts +41 -0
  191. package/src/hooks/usePluginActions.ts +177 -0
  192. package/src/hooks/useRegistryPlugins.ts +29 -0
  193. package/src/hooks/useUpdateAvailable.ts +31 -0
  194. package/src/hooks/useVersionPicker.ts +112 -0
  195. package/src/index.ts +1 -1
  196. package/src/meta.ts +39 -10
  197. package/src/operations/index.ts +7 -0
  198. package/src/operations/open-plugin-registry.ts +21 -0
  199. package/src/plugin.ts +11 -0
  200. package/src/storage.ts +50 -0
  201. package/src/translations.ts +64 -15
  202. package/src/types.ts +37 -1
  203. package/dist/lib/browser/app-graph-builder-6JQNRTEQ.mjs +0 -161
  204. package/dist/lib/browser/app-graph-builder-6JQNRTEQ.mjs.map +0 -7
  205. package/dist/lib/browser/chunk-AEBASNOI.mjs +0 -16
  206. package/dist/lib/browser/chunk-AEBASNOI.mjs.map +0 -7
  207. package/dist/lib/browser/index.mjs +0 -71
  208. package/dist/lib/browser/index.mjs.map +0 -7
  209. package/dist/lib/browser/intent-resolver-UGDFPMAG.mjs +0 -23
  210. package/dist/lib/browser/intent-resolver-UGDFPMAG.mjs.map +0 -7
  211. package/dist/lib/browser/meta.json +0 -1
  212. package/dist/lib/browser/react-surface-BQPO3F3E.mjs +0 -333
  213. package/dist/lib/browser/react-surface-BQPO3F3E.mjs.map +0 -7
  214. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  215. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  216. package/dist/types/src/components/Icon.stories.d.ts +0 -6
  217. package/dist/types/src/components/Icon.stories.d.ts.map +0 -1
  218. package/dist/types/src/components/PluginDetail.d.ts +0 -9
  219. package/dist/types/src/components/PluginDetail.d.ts.map +0 -1
  220. package/dist/types/src/components/PluginDetail.stories.d.ts +0 -8
  221. package/dist/types/src/components/PluginDetail.stories.d.ts.map +0 -1
  222. package/dist/types/src/components/PluginItem.d.ts +0 -13
  223. package/dist/types/src/components/PluginItem.d.ts.map +0 -1
  224. package/dist/types/src/components/PluginList.d.ts +0 -8
  225. package/dist/types/src/components/PluginList.d.ts.map +0 -1
  226. package/dist/types/src/components/PluginList.stories.d.ts +0 -11
  227. package/dist/types/src/components/PluginList.stories.d.ts.map +0 -1
  228. package/dist/types/src/components/RegistryContainer.d.ts +0 -7
  229. package/dist/types/src/components/RegistryContainer.d.ts.map +0 -1
  230. package/src/capabilities/intent-resolver.ts +0 -27
  231. package/src/components/Icon.stories.tsx +0 -108
  232. package/src/components/PluginDetail.stories.tsx +0 -46
  233. package/src/components/PluginDetail.tsx +0 -63
  234. package/src/components/PluginItem.tsx +0 -119
  235. package/src/components/PluginList.stories.tsx +0 -83
  236. package/src/components/PluginList.tsx +0 -26
  237. package/src/components/RegistryContainer.tsx +0 -84
@@ -0,0 +1,40 @@
1
+ import React from 'react';
2
+ import { type Plugin, type PluginManager } from '@dxos/app-framework';
3
+ export type PluginItemProps = {
4
+ plugin: Plugin.Plugin;
5
+ /** Ids of plugins currently installed (loaded into the manager). */
6
+ installed?: readonly string[];
7
+ /** Ids of plugins whose install is in flight. */
8
+ installing?: readonly string[];
9
+ enabled?: readonly string[];
10
+ /**
11
+ * Derived tags (e.g. `registry`, `local`) to display alongside the plugin's own meta.tags.
12
+ * Not persisted to plugin meta; computed per-render by the container.
13
+ */
14
+ extraTags?: readonly string[];
15
+ onClick?: (id: string) => void;
16
+ onChange?: (id: string, enabled: boolean) => void;
17
+ /**
18
+ * Install handler. When provided and the plugin is not installed, an Install button
19
+ * is rendered in place of the enable switch.
20
+ */
21
+ onInstall?: (id: string) => void;
22
+ /**
23
+ * When true and plugin is installed, shows an Update button instead of the enable switch.
24
+ */
25
+ hasUpdate?: boolean;
26
+ /** Called when the user clicks the Update button. */
27
+ onUpdate?: (id: string) => void;
28
+ /** Ids of plugins whose update is currently in flight. */
29
+ updating?: readonly string[];
30
+ hasSettings?: (id: string) => boolean;
31
+ onSettings?: (id: string) => void;
32
+ /**
33
+ * Failure record for this plugin, if any. When present a warning badge is
34
+ * rendered next to the plugin name; clicking it opens a popover with the
35
+ * phase, reason, and error message.
36
+ */
37
+ failure?: PluginManager.PluginFailure;
38
+ };
39
+ export declare const PluginItem: ({ plugin, installed, installing, enabled, extraTags, onClick, onChange, onInstall, hasUpdate, onUpdate, updating, hasSettings: hasSettingsProp, onSettings, failure, }: PluginItemProps) => React.JSX.Element;
40
+ //# sourceMappingURL=PluginItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PluginItem.d.ts","sourceRoot":"","sources":["../../../../../src/components/PluginList/PluginItem.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAgD,MAAM,OAAO,CAAC;AAErE,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAqBtE,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;IACtB,oEAAoE;IACpE,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,iDAAiD;IACjD,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B;;;OAGG;IACH,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAClD;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;IACtC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC;;;;OAIG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC;CACvC,CAAC;AAEF,eAAO,MAAM,UAAU,2KAepB,eAAe,sBAoIjB,CAAC"}
@@ -0,0 +1,23 @@
1
+ import React from 'react';
2
+ import { type Plugin, type PluginManager } from '@dxos/app-framework';
3
+ import { type PluginItemProps } from './PluginItem';
4
+ export type PluginListProps = Omit<PluginItemProps, 'plugin' | 'extraTags' | 'hasUpdate' | 'failure'> & {
5
+ plugins?: readonly Plugin.Plugin[];
6
+ /**
7
+ * Map from plugin id → extra tags to display (e.g. `registry`, `local`).
8
+ * Computed by the container; not persisted to plugin meta.
9
+ */
10
+ extraTagsById?: Record<string, readonly string[]>;
11
+ /**
12
+ * Set of plugin ids for which a newer version is available in the catalog.
13
+ * Causes each matching item to render an Update button instead of the enable switch.
14
+ */
15
+ updateAvailableIds?: ReadonlySet<string>;
16
+ /**
17
+ * Map from plugin id → most recent failure record. Used to render a warning
18
+ * badge next to the plugin name. Sourced from `PluginManager.failed`.
19
+ */
20
+ failuresById?: Record<string, PluginManager.PluginFailure>;
21
+ };
22
+ export declare const PluginList: ({ plugins, extraTagsById, updateAvailableIds, failuresById, ...props }: PluginListProps) => React.JSX.Element;
23
+ //# sourceMappingURL=PluginList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PluginList.d.ts","sourceRoot":"","sources":["../../../../../src/components/PluginList/PluginList.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGtE,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAEhE,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE,QAAQ,GAAG,WAAW,GAAG,WAAW,GAAG,SAAS,CAAC,GAAG;IACtG,OAAO,CAAC,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC;IACnC;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IAClD;;;OAGG;IACH,kBAAkB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACzC;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;CAC5D,CAAC;AAEF,eAAO,MAAM,UAAU,2EAMpB,eAAe,sBAejB,CAAC"}
@@ -0,0 +1,78 @@
1
+ import { type StoryObj } from '@storybook/react-vite';
2
+ import React from 'react';
3
+ declare const meta: {
4
+ title: string;
5
+ component: ({ plugins, extraTagsById, updateAvailableIds, failuresById, ...props }: import("./PluginList").PluginListProps) => React.JSX.Element;
6
+ render: () => React.JSX.Element;
7
+ parameters: {
8
+ translations: [{
9
+ readonly 'en-US': {
10
+ readonly [x: string]: {
11
+ readonly 'plugin.name': 'Registry';
12
+ readonly 'details.label': 'Details';
13
+ readonly 'description.label': 'Description';
14
+ readonly 'preview.label': 'Preview';
15
+ readonly 'home-page.label': 'Website';
16
+ readonly 'source.label': 'Source';
17
+ readonly 'resources.label': 'Resources';
18
+ readonly 'plugin-registry.label': 'Plugins';
19
+ readonly 'plugin-settings.label': 'Plugin Settings';
20
+ readonly 'bundled-plugins.label': 'Bundled';
21
+ readonly 'installed-plugins.label': 'Enabled';
22
+ readonly 'recommended-plugins.label': 'Recommended';
23
+ readonly 'labs-plugins.label': 'Labs';
24
+ readonly 'registry-plugins.label': 'Registry';
25
+ readonly 'load-by-url.label': 'Load from URL';
26
+ readonly 'load-by-url-dialog.title': 'Load Plugin from URL';
27
+ readonly 'plugin-url.label': 'Plugin URL';
28
+ readonly 'load-plugin.label': 'Load Plugin';
29
+ readonly 'loading.label': 'Loading...';
30
+ readonly 'filter.label': 'Filter plugins';
31
+ readonly 'filter.placeholder': 'Filter\u2026';
32
+ readonly 'registry.loading.label': 'Loading registry plugins\u2026';
33
+ readonly 'registry.error.label': 'Failed to load registry plugins: {{message}}';
34
+ readonly 'registry.empty.label': 'No registry plugins available.';
35
+ readonly 'dev-plugin.section.title': 'Dev plugin';
36
+ readonly 'dev-plugin.description': 'Load a plugin from a local Vite dev server (the `composerPlugin` defaults to port 3967). Composer reattaches it on every reload, surviving HMR \u2014 useful when iterating on a community plugin against a live registry version.';
37
+ readonly 'dev-plugin.url.label': 'Manifest URL';
38
+ readonly 'dev-plugin.url.description': 'Defaults to the local dev server. Edit if your dev server runs on a different port.';
39
+ readonly 'dev-plugin.toggle.label': 'Dev plugin';
40
+ readonly 'dev-plugin.toggle.description': 'Stays on across reloads. If the dev server is offline at boot, a warning is logged and the next reload retries.';
41
+ readonly 'dev-plugin.enable.label': 'Enable';
42
+ readonly 'dev-plugin.disable.label': 'Disable';
43
+ readonly 'dev-plugin.busy.label': 'Loading\u2026';
44
+ readonly 'dev-plugin.not-loaded.message': 'Dev plugin is enabled but not currently loaded. Check that the dev server is running, then reload.';
45
+ readonly 'coming-soon.label': 'Coming soon!';
46
+ readonly 'open-plugin-registry.label': 'Open plugin registry';
47
+ readonly 'install.label': 'Install';
48
+ readonly 'installing.label': 'Installing\u2026';
49
+ readonly 'uninstall.label': 'Uninstall';
50
+ readonly 'update.label': 'Update';
51
+ readonly 'updating.label': 'Updating\u2026';
52
+ readonly 'versions.label': 'Versions';
53
+ readonly 'installed.label': 'installed';
54
+ readonly 'install-version.label': 'Install version';
55
+ readonly 'failure-badge.label': 'Plugin failure details';
56
+ readonly 'failure-title.label': 'Plugin {{phase}} failed: {{reason}}';
57
+ readonly 'failure-phase-load.label': 'load';
58
+ readonly 'failure-phase-activation.label': 'activation';
59
+ readonly 'failure-reason-timeout.label': 'timed out';
60
+ readonly 'failure-reason-error.label': 'error';
61
+ readonly 'dependencies.label': 'Dependencies';
62
+ readonly 'dependents.label': 'Required by';
63
+ readonly 'spec.label': 'Specification';
64
+ readonly 'open-spec.label': 'Open Specification';
65
+ readonly 'disable-dependents-dialog.title': 'Disable dependent plugins?';
66
+ readonly 'disable-dependents-dialog.description': 'Disabling {{plugin}} will also disable the following plugins that depend on it:';
67
+ readonly 'disable-dependents-dialog.confirm.label': 'Disable';
68
+ readonly 'cancel.label': 'Cancel';
69
+ };
70
+ };
71
+ }];
72
+ };
73
+ };
74
+ export default meta;
75
+ type Story = StoryObj<typeof meta>;
76
+ export declare const Default: Story;
77
+ export declare const FullScreen: Story;
78
+ //# sourceMappingURL=PluginList.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PluginList.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/PluginList/PluginList.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAmB,MAAM,OAAO,CAAC;AA2DxC,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOyB,CAAC;eAErB,IAAI;AAEnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAKxB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './PluginList';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/PluginList/index.ts"],"names":[],"mappings":"AAIA,cAAc,cAAc,CAAC"}
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import { type AppSurface } from '@dxos/app-toolkit/ui';
3
+ import { type RegistrySettings as RegistrySettingsType } from '../../types';
4
+ export type RegistrySettingsProps = AppSurface.SettingsArticleProps<RegistrySettingsType, {
5
+ activeDevPluginIds: readonly string[];
6
+ onEnableDev: (url: string) => Promise<void>;
7
+ onDisableDev: (id: string) => Promise<void>;
8
+ }>;
9
+ /**
10
+ * Settings panel for `@dxos/plugin-registry`. The dev-plugin section lets a
11
+ * plugin author point Composer at a local Vite dev server (defaults to
12
+ * `localhost:3967`) and toggle the dev plugin on/off persistently — boot will
13
+ * re-attach it on the next reload, surviving HMR-triggered reloads. If the
14
+ * dev server is offline at boot, the toggle stays on and a warning is logged
15
+ * (the manager's `failed` atom also surfaces a badge on the plugin list).
16
+ */
17
+ export declare const RegistrySettings: ({ settings, onSettingsChange, activeDevPluginIds, onEnableDev, onDisableDev, }: RegistrySettingsProps) => React.JSX.Element;
18
+ //# sourceMappingURL=RegistrySettings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RegistrySettings.d.ts","sourceRoot":"","sources":["../../../../../src/components/RegistrySettings/RegistrySettings.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAErD,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAOvD,OAAO,EAAE,KAAK,gBAAgB,IAAI,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAE5E,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAAC,oBAAoB,CACjE,oBAAoB,EACpB;IACE,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7C,CACF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,mFAM1B,qBAAqB,sBAiFvB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './RegistrySettings';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/RegistrySettings/index.ts"],"names":[],"mappings":"AAIA,cAAc,oBAAoB,CAAC"}
@@ -1,4 +1,6 @@
1
+ export * from './DisableDependentsAlert';
1
2
  export * from './PluginDetail';
3
+ export * from './PluginFailureBadge';
2
4
  export * from './PluginList';
3
- export * from './RegistryContainer';
5
+ export * from './RegistrySettings';
4
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAIA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAIA,cAAc,0BAA0B,CAAC;AACzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,20 @@
1
+ import React, { type ReactNode } from 'react';
2
+ import { type Plugin } from '@dxos/app-framework';
3
+ import { type PluginListProps } from '#components';
4
+ export type BaseRegistryArticleProps = {
5
+ /** Article id used as the pivotId when opening a plugin's detail surface. */
6
+ id: string;
7
+ /** Plugins to display, pre-sorted by the caller. */
8
+ plugins: readonly Plugin.Plugin[];
9
+ /**
10
+ * Distinguishes the source of toggle events for observability
11
+ * (e.g. `'registry'` for the public registry surface).
12
+ */
13
+ source?: string;
14
+ /** Rendered in place of the list when no plugins match the current filter. */
15
+ empty?: ReactNode;
16
+ } & Pick<PluginListProps, 'installed' | 'installing' | 'updating' | 'updateAvailableIds' | 'extraTagsById' | 'failuresById' | 'onInstall' | 'onUpdate'>;
17
+ export declare const BaseRegistryArticle: React.ForwardRefExoticComponent<Omit<BaseRegistryArticleProps, "className"> & {
18
+ classNames?: import("@dxos/ui-types").ClassNameValue;
19
+ } & Pick<React.HTMLAttributes<Element>, "children" | "className" | "role" | "style"> & React.RefAttributes<HTMLDivElement>>;
20
+ //# sourceMappingURL=BaseRegistryArticle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseRegistryArticle.d.ts","sourceRoot":"","sources":["../../../../../src/containers/BaseRegistryArticle/BaseRegistryArticle.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,EAAE,KAAK,SAAS,EAAkC,MAAM,OAAO,CAAC;AAE9E,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAQlD,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAU/D,MAAM,MAAM,wBAAwB,GAAG;IACrC,6EAA6E;IAC7E,EAAE,EAAE,MAAM,CAAC;IACX,oDAAoD;IACpD,OAAO,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC;IAClC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8EAA8E;IAC9E,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB,GAAG,IAAI,CACN,eAAe,EACb,WAAW,GACX,YAAY,GACZ,UAAU,GACV,oBAAoB,GACpB,eAAe,GACf,cAAc,GACd,WAAW,GACX,UAAU,CACb,CAAC;AAEF,eAAO,MAAM,mBAAmB;;2HA6H/B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './BaseRegistryArticle';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/containers/BaseRegistryArticle/index.ts"],"names":[],"mappings":"AAIA,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import { DXN } from '@dxos/keys';
3
+ export declare const LOAD_PLUGIN_DIALOG: DXN.DXN;
4
+ export declare const LoadPluginDialog: () => React.JSX.Element;
5
+ //# sourceMappingURL=LoadPluginDialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoadPluginDialog.d.ts","sourceRoot":"","sources":["../../../../../src/containers/LoadPluginDialog/LoadPluginDialog.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAI7D,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAKjC,eAAO,MAAM,kBAAkB,SAA0C,CAAC;AAE1E,eAAO,MAAM,gBAAgB,yBAuE5B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { LoadPluginDialog as default } from './LoadPluginDialog';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/containers/LoadPluginDialog/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,IAAI,OAAO,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { type Plugin } from '@dxos/app-framework';
3
+ export type PluginArticleProps = {
4
+ subject: Plugin.Plugin;
5
+ };
6
+ export declare const PluginArticle: ({ subject: plugin }: PluginArticleProps) => React.JSX.Element;
7
+ //# sourceMappingURL=PluginArticle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PluginArticle.d.ts","sourceRoot":"","sources":["../../../../../src/containers/PluginArticle/PluginArticle.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAEpD,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAgBlD,MAAM,MAAM,kBAAkB,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAA;CAAE,CAAC;AAE5D,eAAO,MAAM,aAAa,wBAAyB,kBAAkB,sBA2FpE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { PluginArticle as default } from './PluginArticle';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/containers/PluginArticle/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,IAAI,OAAO,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ export type PublicRegistryArticleProps = {
3
+ id: string;
4
+ };
5
+ export declare const PublicRegistryArticle: React.ForwardRefExoticComponent<Omit<PublicRegistryArticleProps, "className"> & {
6
+ classNames?: import("@dxos/ui-types").ClassNameValue;
7
+ } & Pick<React.HTMLAttributes<Element>, "children" | "className" | "role" | "style"> & React.RefAttributes<HTMLDivElement>>;
8
+ //# sourceMappingURL=PublicRegistryArticle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PublicRegistryArticle.d.ts","sourceRoot":"","sources":["../../../../../src/containers/PublicRegistryArticle/PublicRegistryArticle.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAyC,MAAM,OAAO,CAAC;AA0C9D,MAAM,MAAM,0BAA0B,GAAG;IACvC,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,eAAO,MAAM,qBAAqB;;2HA0IjC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { PublicRegistryArticle as default, PublicRegistryArticle } from './PublicRegistryArticle';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/containers/PublicRegistryArticle/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,IAAI,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import { type Plugin } from '@dxos/app-framework';
3
+ export type RegistryArticleProps = {
4
+ id: string;
5
+ plugins: Plugin.Plugin[];
6
+ /**
7
+ * Map from plugin id → display-only tags (e.g. `registry`, `local`) computed by the caller.
8
+ */
9
+ extraTagsById?: Record<string, readonly string[]>;
10
+ };
11
+ export declare const RegistryArticle: React.ForwardRefExoticComponent<Omit<RegistryArticleProps, "className"> & {
12
+ classNames?: import("@dxos/ui-types").ClassNameValue;
13
+ } & Pick<React.HTMLAttributes<Element>, "children" | "className" | "role" | "style"> & React.RefAttributes<HTMLDivElement>>;
14
+ //# sourceMappingURL=RegistryArticle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RegistryArticle.d.ts","sourceRoot":"","sources":["../../../../../src/containers/RegistryArticle/RegistryArticle.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAE,KAAK,MAAM,EAAsB,MAAM,qBAAqB,CAAC;AAStE,MAAM,MAAM,oBAAoB,GAAG;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IACzB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;CACnD,CAAC;AAEF,eAAO,MAAM,eAAe;;2HAyB3B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { RegistryArticle as default, RegistryArticle } from './RegistryArticle';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/containers/RegistryArticle/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,IAAI,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import { type AppCapabilities } from '@dxos/app-toolkit';
3
+ export type RegistrySettingsContainerProps = {
4
+ subject: AppCapabilities.Settings;
5
+ };
6
+ /**
7
+ * Wires the {@link RegistrySettings} presentational component to the plugin
8
+ * manager and the settings atom: subscribes to `manager.devPluginIds` for the
9
+ * "currently loaded" indicator and exposes enable/disable callbacks that drive
10
+ * the manager's add/enable/remove flow.
11
+ */
12
+ export declare const RegistrySettingsContainer: ({ subject }: RegistrySettingsContainerProps) => React.JSX.Element;
13
+ //# sourceMappingURL=RegistrySettingsContainer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RegistrySettingsContainer.d.ts","sourceRoot":"","sources":["../../../../../src/containers/RegistrySettingsContainer/RegistrySettingsContainer.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAG3C,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAMzD,MAAM,MAAM,8BAA8B,GAAG;IAC3C,OAAO,EAAE,eAAe,CAAC,QAAQ,CAAC;CACnC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,gBAAiB,8BAA8B,sBAiCpF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { RegistrySettingsContainer as default } from './RegistrySettingsContainer';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/containers/RegistrySettingsContainer/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,yBAAyB,IAAI,OAAO,EAAE,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { type ComponentType } from 'react';
2
+ export { LOAD_PLUGIN_DIALOG } from './LoadPluginDialog/LoadPluginDialog';
3
+ export declare const LoadPluginDialog: ComponentType<any>;
4
+ export declare const PluginArticle: ComponentType<any>;
5
+ export declare const PublicRegistryArticle: ComponentType<any>;
6
+ export declare const RegistryArticle: ComponentType<any>;
7
+ export declare const RegistrySettingsContainer: ComponentType<any>;
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
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,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAAC,GAAG,CAA4C,CAAC;AAC7F,eAAO,MAAM,aAAa,EAAE,aAAa,CAAC,GAAG,CAAyC,CAAC;AACvF,eAAO,MAAM,qBAAqB,EAAE,aAAa,CAAC,GAAG,CAAiD,CAAC;AACvG,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC,GAAG,CAA2C,CAAC;AAC3F,eAAO,MAAM,yBAAyB,EAAE,aAAa,CAAC,GAAG,CAAqD,CAAC"}
@@ -0,0 +1,9 @@
1
+ export * from './useAutoTags';
2
+ export * from './useCatalogEntry';
3
+ export * from './useDisableConfirmation';
4
+ export * from './useInstalledVersionTag';
5
+ export * from './usePluginActions';
6
+ export * from './useRegistryPlugins';
7
+ export * from './useUpdateAvailable';
8
+ export * from './useVersionPicker';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/hooks/index.ts"],"names":[],"mappings":"AAIA,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { type Registry } from '@dxos/app-framework';
2
+ /**
3
+ * Auto-tags that are derived at display time rather than persisted to `Plugin.Meta`.
4
+ * - `registry`: plugin id appears in the registry catalog manifest.
5
+ * - `local`: plugin was loaded from a `localhost` / `127.0.0.1` / `::1` URL.
6
+ */
7
+ export type AutoTagsMap = Record<string, readonly string[]>;
8
+ /**
9
+ * Computes the per-plugin-id extra tags the UI should display.
10
+ *
11
+ * Reads the persisted remote-plugin entries synchronously to derive `local`, and
12
+ * adds `registry` for any plugin id found in the supplied registry manifest entries.
13
+ */
14
+ export declare const useAutoTags: (registryEntries: readonly Registry.Plugin[]) => AutoTagsMap;
15
+ /**
16
+ * Returns the set of plugin ids known to originate from a remote URL (not bundled).
17
+ * Used to filter the Official/Recommended sections so third-party plugins are excluded.
18
+ */
19
+ export declare const useRemotePluginIds: () => ReadonlySet<string>;
20
+ //# sourceMappingURL=useAutoTags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAutoTags.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useAutoTags.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,QAAQ,EAAa,MAAM,qBAAqB,CAAC;AAI/D;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;AAE5D;;;;;GAKG;AACH,eAAO,MAAM,WAAW,oBAAqB,SAAS,QAAQ,CAAC,MAAM,EAAE,KAAG,WAsBnD,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QAAO,WAAW,CAAC,MAAM,CAA4C,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { type Registry } from '@dxos/app-framework';
2
+ /**
3
+ * Resolves the registry catalog entry for a plugin by id, plus the two fields
4
+ * (`moduleUrl`, `repo`) the rest of the article cares about.
5
+ */
6
+ export declare const useCatalogEntry: (pluginId: string) => {
7
+ catalogEntry: Registry.Plugin | undefined;
8
+ moduleUrl: string | undefined;
9
+ repo: string | undefined;
10
+ };
11
+ //# sourceMappingURL=useCatalogEntry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCatalogEntry.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useCatalogEntry.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAIpD;;;GAGG;AACH,eAAO,MAAM,eAAe,aAChB,MAAM,KACf;IACD,YAAY,EAAE,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAC;IAC1C,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;CAK1B,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { type PluginManager } from '@dxos/app-framework';
2
+ /**
3
+ * Returns `requestDisable(pluginId)` that gates `manager.disable` on a
4
+ * confirmation prompt when the target has currently-enabled dependents.
5
+ *
6
+ * `PluginManager.disable` cascades by default; this hook is the UX safeguard
7
+ * around that. The caller supplies a `dispatch` callback that performs the
8
+ * actual disable (wrapping it with observability or any other side effects).
9
+ * When there are no enabled dependents, dispatch runs immediately; otherwise
10
+ * we open the shared {@link DISABLE_DEPENDENTS_DIALOG} surface — its
11
+ * `onConfirm` runs the dispatch and closes the dialog.
12
+ *
13
+ * Display-name resolution for the dialog is delegated to the registered
14
+ * plugin set (`Plugin.Meta.name`). Per-plugin i18n translations only load
15
+ * when a plugin is activated, so `meta.name` is the only label always
16
+ * available regardless of enabled state.
17
+ */
18
+ export declare const useDisableConfirmation: (manager: PluginManager.PluginManager, dispatch: (id: string) => void) => (pluginId: string) => void;
19
+ //# sourceMappingURL=useDisableConfirmation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDisableConfirmation.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useDisableConfirmation.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAMzD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,sBAAsB,YAAa,aAAa,CAAC,aAAa,YAAY,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,gBAI5F,MAAM,KAAG,IAyBvB,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { type Plugin } from '@dxos/app-framework';
2
+ /**
3
+ * Tracks the per-plugin installed version (sourced from `UrlLoader` localStorage)
4
+ * as React state so post-install/update re-renders are deterministic — the value
5
+ * lives in component state rather than being read inline on every render.
6
+ *
7
+ * - Initialised from localStorage at mount.
8
+ * - Auto-resyncs when the plugin manager's plugin list changes (catches external
9
+ * installs / removes triggered by the list view).
10
+ * - `syncInstalledVersion()` is the explicit handle install/update operations
11
+ * call inside their `Effect.ensuring` so the post-mutation render sees both
12
+ * the new version and the cleared `installing`/`updating` flag together.
13
+ */
14
+ export declare const useInstalledVersionTag: (pluginId: string, plugins: readonly Plugin.Plugin[]) => {
15
+ installedVersionTag: string | undefined;
16
+ syncInstalledVersion: () => void;
17
+ };
18
+ //# sourceMappingURL=useInstalledVersionTag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useInstalledVersionTag.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useInstalledVersionTag.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,MAAM,EAAa,MAAM,qBAAqB,CAAC;AAE7D;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,sBAAsB,aACvB,MAAM,WACP,SAAS,MAAM,CAAC,MAAM,EAAE,KAChC;IACD,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,oBAAoB,EAAE,MAAM,IAAI,CAAC;CAelC,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { type PluginManager, type Registry } from '@dxos/app-framework';
2
+ export type PluginActionsProps = {
3
+ manager: PluginManager.PluginManager;
4
+ pluginId: string;
5
+ isInstalled: boolean;
6
+ moduleUrl: string | undefined;
7
+ catalogEntry: Registry.Plugin | undefined;
8
+ pickerVersions: readonly Registry.PluginVersion[];
9
+ selectedVersionTag: string | undefined;
10
+ syncInstalledVersion: () => void;
11
+ };
12
+ export type PluginActions = {
13
+ installing: boolean;
14
+ updating: boolean;
15
+ handleEnableChange: (enabled: boolean) => void;
16
+ handleUninstall: () => void;
17
+ handleInstall: () => void;
18
+ handleUpdate: () => void;
19
+ handleInstallVersion: () => void;
20
+ handleOpenSpec?: () => void;
21
+ };
22
+ /**
23
+ * The user-facing actions the article exposes — enable/disable, uninstall,
24
+ * install (latest), update (to latest catalog version), and install-from-picker —
25
+ * plus the `installing`/`updating` flags they drive. Each handler ends with a
26
+ * `syncInstalledVersion()` call inside its `Effect.ensuring` so the cached
27
+ * installed version snaps to the freshly-written localStorage value in the same
28
+ * render that clears the in-flight flag.
29
+ *
30
+ * `handleOpenSpec` is included only when a `spec` child graph node exists for
31
+ * this plugin — contributed by whichever plugin can render MDL (today
32
+ * `plugin-code`). When that contributor isn't enabled, the action is absent
33
+ * and the detail view hides its "Open Specification" chip.
34
+ */
35
+ export declare const usePluginActions: ({ manager, pluginId, isInstalled, moduleUrl, catalogEntry, pickerVersions, selectedVersionTag, syncInstalledVersion, }: PluginActionsProps) => PluginActions;
36
+ //# sourceMappingURL=usePluginActions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePluginActions.d.ts","sourceRoot":"","sources":["../../../../src/hooks/usePluginActions.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAa,MAAM,qBAAqB,CAAC;AAWnF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,aAAa,CAAC,aAAa,CAAC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,YAAY,EAAE,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAC;IAC1C,cAAc,EAAE,SAAS,QAAQ,CAAC,aAAa,EAAE,CAAC;IAClD,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,oBAAoB,EAAE,MAAM,IAAI,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,kBAAkB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/C,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,oBAAoB,EAAE,MAAM,IAAI,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gBAAgB,2HAS1B,kBAAkB,KAAG,aAkHvB,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { type Registry } from '@dxos/app-framework';
2
+ /**
3
+ * Reads the registry plugin catalog from `manager.pluginRegistry.plugins`.
4
+ * The catalog is loaded once when the plugin manager is constructed (with a
5
+ * provider) so this hook is purely reactive — subscribers re-render as the
6
+ * `{entries, loading, error}` state settles.
7
+ */
8
+ export declare const useRegistryPlugins: () => Registry.PluginsState;
9
+ /**
10
+ * Returns the live `Registry.Manager` from the plugin manager so callers can
11
+ * issue `listVersions` / `getPlugin` calls directly. The catalog state itself
12
+ * is best read through {@link useRegistryPlugins} above.
13
+ */
14
+ export declare const useRegistryPluginProvider: () => Registry.Manager;
15
+ //# sourceMappingURL=useRegistryPlugins.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRegistryPlugins.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useRegistryPlugins.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAGpD;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,QAAO,QAAQ,CAAC,YAG9C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,QAAO,QAAQ,CAAC,OAGrD,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { type Registry } from '@dxos/app-framework';
2
+ /**
3
+ * Returns a set of plugin ids for which the registry has a newer version
4
+ * than what was recorded at install time.
5
+ *
6
+ * Only flags plugins where a version was recorded at install time AND it differs
7
+ * from the catalog's current version. Legacy installs (no version stored) are ignored.
8
+ *
9
+ * NOTE: this is intentionally NOT memoised. The installed-version side of the
10
+ * comparison lives in localStorage and is mutated by `manager.add` /
11
+ * `manager.remove` / `UrlLoader.setInstalledVersion` outside React's view, so a
12
+ * memo keyed on `entries` would happily return stale data for the rest of the
13
+ * session after an update completes (the bug that produced "Update button
14
+ * reappears after Updating…"). The loop is O(catalog size) sync reads — cheap
15
+ * enough to do every render.
16
+ */
17
+ export declare const useUpdateAvailableIds: (entries: readonly Registry.Plugin[]) => ReadonlySet<string>;
18
+ //# sourceMappingURL=useUpdateAvailable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useUpdateAvailable.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useUpdateAvailable.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,QAAQ,EAAa,MAAM,qBAAqB,CAAC;AAE/D;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,qBAAqB,YAAa,SAAS,QAAQ,CAAC,MAAM,EAAE,KAAG,WAAW,CAAC,MAAM,CAS7F,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { type Dispatch, type SetStateAction } from 'react';
2
+ import { type Registry } from '@dxos/app-framework';
3
+ /**
4
+ * Owns the version picker's state machine: fetches the available versions list
5
+ * from the provider, prepends the installed version when the catalog stub omits
6
+ * it, and keeps the selection clamped to whatever's currently in the list (so
7
+ * an external update doesn't strand the trigger on a tag that's no longer
8
+ * available).
9
+ */
10
+ export declare const useVersionPicker: ({ provider, pluginId, repo, moduleUrl, installedVersionTag, }: {
11
+ provider: Registry.Manager;
12
+ pluginId: string;
13
+ repo: string | undefined;
14
+ moduleUrl: string | undefined;
15
+ installedVersionTag: string | undefined;
16
+ }) => {
17
+ pickerVersions: readonly Registry.PluginVersion[];
18
+ selectedVersionTag: string | undefined;
19
+ setSelectedVersionTag: Dispatch<SetStateAction<string | undefined>>;
20
+ };
21
+ //# sourceMappingURL=useVersionPicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useVersionPicker.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useVersionPicker.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,cAAc,EAAgC,MAAM,OAAO,CAAC;AAEzF,OAAO,EAAE,KAAK,QAAQ,EAAa,MAAM,qBAAqB,CAAC;AAG/D;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,kEAM1B;IACD,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC,KAAG;IACF,cAAc,EAAE,SAAS,QAAQ,CAAC,aAAa,EAAE,CAAC;IAClD,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,qBAAqB,EAAE,QAAQ,CAAC,cAAc,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;CA+ErE,CAAC"}
@@ -1,3 +1,3 @@
1
1
  export * from './meta';
2
- export * from './RegistryPlugin';
2
+ export * from './storage';
3
3
  //# sourceMappingURL=index.d.ts.map