@dxos/plugin-registry 0.8.4-main.84f28bd → 0.8.4-main.ae835ea

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 (66) hide show
  1. package/dist/lib/browser/{app-graph-builder-LKQBQDUA.mjs → app-graph-builder-AOIN4N2Q.mjs} +26 -25
  2. package/dist/lib/browser/app-graph-builder-AOIN4N2Q.mjs.map +7 -0
  3. package/dist/lib/browser/chunk-XPEFEID2.mjs +19 -0
  4. package/dist/lib/browser/chunk-XPEFEID2.mjs.map +7 -0
  5. package/dist/lib/browser/index.mjs +6 -8
  6. package/dist/lib/browser/index.mjs.map +3 -3
  7. package/dist/lib/browser/{intent-resolver-W67CIJI3.mjs → intent-resolver-LKNUYBTN.mjs} +5 -5
  8. package/dist/lib/browser/{intent-resolver-W67CIJI3.mjs.map → intent-resolver-LKNUYBTN.mjs.map} +3 -3
  9. package/dist/lib/browser/meta.json +1 -1
  10. package/dist/lib/browser/{react-surface-SRFVJQKE.mjs → react-surface-KP3NX4UD.mjs} +114 -92
  11. package/dist/lib/browser/react-surface-KP3NX4UD.mjs.map +7 -0
  12. package/dist/types/src/RegistryPlugin.d.ts +1 -1
  13. package/dist/types/src/RegistryPlugin.d.ts.map +1 -1
  14. package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
  15. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  16. package/dist/types/src/capabilities/index.d.ts +3 -3
  17. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  18. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
  19. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  20. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  21. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  22. package/dist/types/src/components/PluginDetail.d.ts.map +1 -1
  23. package/dist/types/src/components/PluginDetail.stories.d.ts +29 -5
  24. package/dist/types/src/components/PluginDetail.stories.d.ts.map +1 -1
  25. package/dist/types/src/components/PluginItem.d.ts +1 -1
  26. package/dist/types/src/components/PluginItem.d.ts.map +1 -1
  27. package/dist/types/src/components/PluginList.d.ts.map +1 -1
  28. package/dist/types/src/components/PluginList.stories.d.ts +31 -8
  29. package/dist/types/src/components/PluginList.stories.d.ts.map +1 -1
  30. package/dist/types/src/components/RegistryContainer.d.ts.map +1 -1
  31. package/dist/types/src/meta.d.ts +0 -1
  32. package/dist/types/src/meta.d.ts.map +1 -1
  33. package/dist/types/src/types.d.ts +3 -1
  34. package/dist/types/src/types.d.ts.map +1 -1
  35. package/dist/types/tsconfig.tsbuildinfo +1 -1
  36. package/package.json +27 -29
  37. package/src/RegistryPlugin.tsx +23 -24
  38. package/src/capabilities/app-graph-builder.ts +22 -21
  39. package/src/capabilities/intent-resolver.ts +4 -4
  40. package/src/capabilities/react-surface.tsx +8 -13
  41. package/src/components/PluginDetail.stories.tsx +9 -9
  42. package/src/components/PluginDetail.tsx +53 -34
  43. package/src/components/PluginItem.tsx +53 -52
  44. package/src/components/PluginList.stories.tsx +25 -27
  45. package/src/components/PluginList.tsx +2 -4
  46. package/src/components/RegistryContainer.tsx +2 -2
  47. package/src/meta.ts +6 -3
  48. package/src/types.ts +5 -1
  49. package/dist/lib/browser/app-graph-builder-LKQBQDUA.mjs.map +0 -7
  50. package/dist/lib/browser/chunk-AEBASNOI.mjs +0 -16
  51. package/dist/lib/browser/chunk-AEBASNOI.mjs.map +0 -7
  52. package/dist/lib/browser/react-surface-SRFVJQKE.mjs.map +0 -7
  53. package/dist/lib/node-esm/app-graph-builder-N44OGVQA.mjs +0 -162
  54. package/dist/lib/node-esm/app-graph-builder-N44OGVQA.mjs.map +0 -7
  55. package/dist/lib/node-esm/chunk-R3GXMWPJ.mjs +0 -18
  56. package/dist/lib/node-esm/chunk-R3GXMWPJ.mjs.map +0 -7
  57. package/dist/lib/node-esm/index.mjs +0 -72
  58. package/dist/lib/node-esm/index.mjs.map +0 -7
  59. package/dist/lib/node-esm/intent-resolver-M2CBVUVQ.mjs +0 -24
  60. package/dist/lib/node-esm/intent-resolver-M2CBVUVQ.mjs.map +0 -7
  61. package/dist/lib/node-esm/meta.json +0 -1
  62. package/dist/lib/node-esm/react-surface-5XAG2EYX.mjs +0 -336
  63. package/dist/lib/node-esm/react-surface-5XAG2EYX.mjs.map +0 -7
  64. package/dist/types/src/components/Icon.stories.d.ts +0 -6
  65. package/dist/types/src/components/Icon.stories.d.ts.map +0 -1
  66. package/src/components/Icon.stories.tsx +0 -107
@@ -1,47 +1,64 @@
1
1
  import {
2
2
  REGISTRY_KEY,
3
- REGISTRY_PLUGIN
4
- } from "./chunk-AEBASNOI.mjs";
3
+ meta
4
+ } from "./chunk-XPEFEID2.mjs";
5
5
 
6
6
  // src/capabilities/react-surface.tsx
7
7
  import React5, { useCallback as useCallback3, useMemo as useMemo2 } from "react";
8
- import { Capabilities as Capabilities2, contributes, createSurface, Plugin, usePluginManager as usePluginManager2 } from "@dxos/app-framework";
9
- import { StackItem as StackItem2 } from "@dxos/react-ui-stack";
8
+ import { Capabilities as Capabilities2, Plugin, contributes, createSurface, usePluginManager as usePluginManager2 } from "@dxos/app-framework";
10
9
 
11
10
  // src/components/PluginDetail.tsx
12
11
  import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
13
12
  import React from "react";
14
13
  import { Icon, Input, Link, useTranslation } from "@dxos/react-ui";
15
- import { DeprecatedFormContainer } from "@dxos/react-ui-form";
14
+ import { StackItem } from "@dxos/react-ui-stack";
15
+ import { getStyles, mx } from "@dxos/react-ui-theme";
16
16
  var PluginDetail = ({ plugin, enabled, onEnable }) => {
17
17
  var _effect = _useSignals();
18
18
  try {
19
- const { t } = useTranslation(REGISTRY_PLUGIN);
20
- const { id, name, description, homePage, source, screenshots } = plugin.meta;
21
- return /* @__PURE__ */ React.createElement(DeprecatedFormContainer, {
22
- classNames: "gap-6"
19
+ const { t } = useTranslation(meta.id);
20
+ const { id, name, description, homePage, source, screenshots, icon = "ph--circle--regular", iconHue = "neutral" } = plugin.meta;
21
+ const styles = getStyles(iconHue);
22
+ return /* @__PURE__ */ React.createElement(StackItem.Content, {
23
+ scrollable: true
24
+ }, /* @__PURE__ */ React.createElement("div", {
25
+ role: "none",
26
+ className: "grid grid-cols-[min-content_1fr] gap-4 container-max-width p-4"
27
+ }, /* @__PURE__ */ React.createElement("div", {
28
+ role: "none"
29
+ }, /* @__PURE__ */ React.createElement(Icon, {
30
+ classNames: mx("p-1 rounded", styles.bg, styles.icon),
31
+ icon,
32
+ size: 14
33
+ })), /* @__PURE__ */ React.createElement("div", {
34
+ role: "none",
35
+ className: "flex flex-col gap-6"
23
36
  }, /* @__PURE__ */ React.createElement("div", {
24
37
  role: "none",
25
- className: "flex justify-between items-center"
26
- }, /* @__PURE__ */ React.createElement("p", null, id), /* @__PURE__ */ React.createElement(Input.Root, null, /* @__PURE__ */ React.createElement(Input.Switch, {
38
+ className: "grid grid-cols-[1fr_min-content] gap-x-3 is-full pbs-1"
39
+ }, /* @__PURE__ */ React.createElement("h2", {
40
+ className: "text-xl"
41
+ }, name), /* @__PURE__ */ React.createElement(Input.Root, null, /* @__PURE__ */ React.createElement(Input.Switch, {
27
42
  classNames: "self-center",
28
43
  checked: enabled,
29
44
  onClick: onEnable
30
- }))), screenshots && screenshots.length > 0 && /* @__PURE__ */ React.createElement("div", {
45
+ })), /* @__PURE__ */ React.createElement("p", {
46
+ className: "pbs-0.5 text-sm text-description"
47
+ }, id)), /* @__PURE__ */ React.createElement("div", {
31
48
  role: "none"
32
- }, /* @__PURE__ */ React.createElement("h1", {
33
- className: "text-lg mb-2"
34
- }, "Preview"), /* @__PURE__ */ React.createElement("img", {
49
+ }, /* @__PURE__ */ React.createElement("p", {
50
+ className: "text-description"
51
+ }, description)), screenshots && screenshots.length > 0 && /* @__PURE__ */ React.createElement("div", {
52
+ role: "none",
53
+ className: "flex flex-col gap-2"
54
+ }, /* @__PURE__ */ React.createElement("h2", null, "Preview"), /* @__PURE__ */ React.createElement("img", {
35
55
  src: screenshots[0],
36
56
  alt: name,
37
57
  className: "aspect-video object-fit"
38
58
  })), /* @__PURE__ */ React.createElement("div", {
39
- role: "none"
40
- }, /* @__PURE__ */ React.createElement("p", null, description)), /* @__PURE__ */ React.createElement("div", {
41
- role: "none"
42
- }, /* @__PURE__ */ React.createElement("h1", {
43
- className: "text-lg mb-2"
44
- }, "Resources"), /* @__PURE__ */ React.createElement("div", {
59
+ role: "none",
60
+ className: "flex flex-col gap-2"
61
+ }, /* @__PURE__ */ React.createElement("h2", null, "Resources"), /* @__PURE__ */ React.createElement("div", {
45
62
  className: "flex gap-2"
46
63
  }, homePage && /* @__PURE__ */ React.createElement(Link, {
47
64
  href: homePage,
@@ -61,7 +78,7 @@ var PluginDetail = ({ plugin, enabled, onEnable }) => {
61
78
  icon: "ph--arrow-square-out--bold",
62
79
  size: 3,
63
80
  classNames: "inline-block leading-none mli-1"
64
- })))));
81
+ })))))));
65
82
  } finally {
66
83
  _effect.f();
67
84
  }
@@ -76,12 +93,13 @@ import { List } from "@dxos/react-ui";
76
93
  import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
77
94
  import React2, { useCallback } from "react";
78
95
  import { Icon as Icon2, IconButton, Input as Input2, Link as Link2, ListItem, Tag, useTranslation as useTranslation2 } from "@dxos/react-ui";
79
- import { descriptionText, mx } from "@dxos/react-ui-theme";
80
- var PluginItem = ({ plugin, enabled = [], onClick, onChange, hasSettings: _hasSettings, onSettings }) => {
96
+ import { descriptionText, mx as mx2 } from "@dxos/react-ui-theme";
97
+ import { getStyles as getStyles2 } from "@dxos/react-ui-theme";
98
+ var PluginItem = ({ plugin, enabled = [], onClick, onChange, hasSettings: hasSettingsParam, onSettings }) => {
81
99
  var _effect = _useSignals2();
82
100
  try {
83
- const { t } = useTranslation2(REGISTRY_PLUGIN);
84
- const { id, name, description, tags, icon = "ph--circle--regular" } = plugin.meta;
101
+ const { t } = useTranslation2(meta.id);
102
+ const { id, name, description, tags, icon = "ph--circle--regular", iconHue = "neutral" } = plugin.meta;
85
103
  const isEnabled = enabled.includes(id);
86
104
  const inputId = `${id}-input`;
87
105
  const labelId = `${id}-label`;
@@ -98,86 +116,92 @@ var PluginItem = ({ plugin, enabled = [], onClick, onChange, hasSettings: _hasSe
98
116
  isEnabled,
99
117
  onChange
100
118
  ]);
101
- const hasSettings = _hasSettings?.(id) ?? false;
119
+ const hasSettings = hasSettingsParam?.(id) ?? false;
102
120
  const handleSettings = useCallback(() => onSettings?.(id), [
103
121
  id,
104
122
  onSettings
105
123
  ]);
124
+ const styles = getStyles2(iconHue);
125
+ const gridCols = "grid grid-cols-[5rem_1fr]";
126
+ const gridRows = "grid grid-rows-[40px_1fr_min-content_40px]";
106
127
  return /* @__PURE__ */ React2.createElement(ListItem.Root, {
107
128
  key: id,
108
129
  labelId,
109
130
  "data-testid": `pluginList.${id}`,
110
131
  "aria-describedby": descriptionId,
111
- // TODO(burdon): Use Rail vars.
112
- classNames: "is-full bs-full grid grid-cols-[48px_1fr_48px] grid-rows-[40px_1fr_32px] p-1 border border-separator rounded-md"
132
+ classNames: mx2(gridCols, "bs-[12rem] is-full gap-3 pie-2 border border-separator rounded-md overflow-hidden")
113
133
  }, /* @__PURE__ */ React2.createElement("div", {
114
- className: "flex flex-col grow justify-center items-center"
115
- }, /* @__PURE__ */ React2.createElement(Icon2, {
134
+ className: mx2(gridRows, "justify-center rounded-l-md", styles.bg)
135
+ }, /* @__PURE__ */ React2.createElement("div", null), /* @__PURE__ */ React2.createElement(Icon2, {
136
+ classNames: mx2("cursor-pointer", styles.icon),
116
137
  icon,
117
- size: 6,
118
- onClick: handleClick,
119
- classNames: "text-subdued cursor-pointer"
138
+ size: 14,
139
+ onClick: handleClick
120
140
  })), /* @__PURE__ */ React2.createElement("div", {
141
+ className: mx2(gridRows)
142
+ }, /* @__PURE__ */ React2.createElement("div", {
121
143
  className: "flex items-center overflow-hidden cursor-pointer",
122
144
  onClick: handleClick
123
145
  }, /* @__PURE__ */ React2.createElement("span", {
124
- className: "truncate"
125
- }, name ?? id)), /* @__PURE__ */ React2.createElement("div", {
126
- className: "flex justify-center items-center"
127
- }, /* @__PURE__ */ React2.createElement(Input2.Root, {
128
- id: inputId
129
- }, /* @__PURE__ */ React2.createElement(Input2.Switch, {
130
- classNames: "self-center",
131
- checked: isEnabled,
132
- onClick: handleChange
133
- }))), /* @__PURE__ */ React2.createElement("div", null), (description || tags) && /* @__PURE__ */ React2.createElement("div", {
134
- id: descriptionId,
135
- className: "col-span-2 flex flex-col w-full justify-between gap-2 pb-2"
136
- }, /* @__PURE__ */ React2.createElement("div", {
137
- className: "grow"
138
- }, /* @__PURE__ */ React2.createElement("p", {
139
- className: mx(descriptionText, "line-clamp-3 min-w-0 pie-2")
140
- }, description)), tags && tags.length > 0 && /* @__PURE__ */ React2.createElement("div", null, tags.map((tag) => /* @__PURE__ */ React2.createElement(Tag, {
146
+ className: "text-lg truncate"
147
+ }, name ?? id)), /* @__PURE__ */ React2.createElement("div", null, /* @__PURE__ */ React2.createElement("p", {
148
+ className: mx2(descriptionText, "line-clamp-4 min-is-0")
149
+ }, description)), /* @__PURE__ */ React2.createElement("div", {
150
+ className: "flex -mis-0.5 overflow-x-auto scrollbar-none"
151
+ }, tags?.map((tag) => /* @__PURE__ */ React2.createElement(Tag, {
141
152
  key: tag,
142
- palette: "indigo",
143
- classNames: "text-xs capitalize"
144
- }, tag)))), /* @__PURE__ */ React2.createElement("div", null), /* @__PURE__ */ React2.createElement("div", {
145
- className: "flex gap-2 items-center pie-1"
146
- }, /* @__PURE__ */ React2.createElement(Link2, {
147
- "aria-describedby": descriptionId,
148
- classNames: "text-sm text-description cursor-pointer",
149
- onClick: handleClick
150
- }, t("details label")), /* @__PURE__ */ React2.createElement("div", {
151
- className: "flex-1"
152
- })), /* @__PURE__ */ React2.createElement("div", {
153
- className: "flex justify-center items-center"
154
- }, hasSettings && /* @__PURE__ */ React2.createElement(IconButton, {
153
+ palette: tagColors[tag],
154
+ classNames: "text-xs uppercase font-thin"
155
+ }, tag))), /* @__PURE__ */ React2.createElement("div", {
156
+ className: "flex gap-2 items-center text-sm"
157
+ }, /* @__PURE__ */ React2.createElement(IconButton, {
155
158
  "aria-describedby": descriptionId,
156
- classNames: "text-sm text-description cursor-pointer",
159
+ classNames: "cursor-pointer",
157
160
  icon: "ph--gear--regular",
158
161
  label: t("settings label"),
159
162
  iconOnly: true,
160
163
  size: 4,
161
- onClick: handleSettings
162
- })));
164
+ onClick: handleSettings,
165
+ disabled: !hasSettings
166
+ }), /* @__PURE__ */ React2.createElement(Link2, {
167
+ "aria-describedby": descriptionId,
168
+ classNames: "text-description cursor-pointer",
169
+ onClick: handleClick
170
+ }, t("details label")), /* @__PURE__ */ React2.createElement("div", {
171
+ className: "grow"
172
+ }), /* @__PURE__ */ React2.createElement("div", {
173
+ className: "pie-1"
174
+ }, /* @__PURE__ */ React2.createElement(Input2.Root, {
175
+ id: inputId
176
+ }, /* @__PURE__ */ React2.createElement(Input2.Switch, {
177
+ classNames: "self-center",
178
+ checked: isEnabled,
179
+ onClick: handleChange
180
+ }))))));
163
181
  } finally {
164
182
  _effect.f();
165
183
  }
166
184
  };
185
+ var tagColors = {
186
+ new: "rose",
187
+ beta: "teal",
188
+ labs: "blue",
189
+ popular: "green",
190
+ featured: "pink",
191
+ experimental: "amber"
192
+ };
167
193
 
168
194
  // src/components/PluginList.tsx
169
195
  var PluginList = ({ plugins = [], ...props }) => {
170
196
  var _effect = _useSignals3();
171
197
  try {
172
198
  return /* @__PURE__ */ React3.createElement(List, {
173
- classNames: "grid grid-cols-[repeat(auto-fill,minmax(280px,1fr))] auto-rows-[12rem] gap-3 p-3"
174
- }, plugins.map((plugin) => /* @__PURE__ */ React3.createElement("div", {
199
+ classNames: "grid grid-cols-[repeat(auto-fill,minmax(18rem,1fr))] gap-4 p-4"
200
+ }, plugins.map((plugin) => /* @__PURE__ */ React3.createElement(PluginItem, {
175
201
  key: plugin.meta.id,
176
- className: "flex"
177
- }, /* @__PURE__ */ React3.createElement(PluginItem, {
178
202
  plugin,
179
203
  ...props
180
- }))));
204
+ })));
181
205
  } finally {
182
206
  _effect.f();
183
207
  }
@@ -186,9 +210,9 @@ var PluginList = ({ plugins = [], ...props }) => {
186
210
  // src/components/RegistryContainer.tsx
187
211
  import { useSignals as _useSignals4 } from "@preact-signals/safe-react/tracking";
188
212
  import React4, { useCallback as useCallback2, useMemo } from "react";
189
- import { Capabilities, createIntent, LayoutAction, SettingsAction, useCapability, useIntentDispatcher, usePluginManager } from "@dxos/app-framework";
213
+ import { Capabilities, LayoutAction, SettingsAction, createIntent, useCapability, useIntentDispatcher, usePluginManager } from "@dxos/app-framework";
190
214
  import { ObservabilityAction } from "@dxos/plugin-observability/types";
191
- import { StackItem } from "@dxos/react-ui-stack";
215
+ import { StackItem as StackItem2 } from "@dxos/react-ui-stack";
192
216
  var sortByPluginMeta = ({ meta: { name: a = "" } }, { meta: { name: b = "" } }) => a.localeCompare(b);
193
217
  var RegistryContainer = ({ id, plugins: _plugins }) => {
194
218
  var _effect = _useSignals4();
@@ -238,8 +262,8 @@ var RegistryContainer = ({ id, plugins: _plugins }) => {
238
262
  })), [
239
263
  dispatch
240
264
  ]);
241
- return /* @__PURE__ */ React4.createElement(StackItem.Content, {
242
- classNames: "min-bs-0 overflow-y-auto scrollbar-thin contain-layout"
265
+ return /* @__PURE__ */ React4.createElement(StackItem2.Content, {
266
+ scrollable: true
243
267
  }, /* @__PURE__ */ React4.createElement(PluginList, {
244
268
  plugins,
245
269
  enabled: manager.enabled,
@@ -254,14 +278,14 @@ var RegistryContainer = ({ id, plugins: _plugins }) => {
254
278
  };
255
279
 
256
280
  // src/capabilities/react-surface.tsx
257
- var react_surface_default = () => contributes(Capabilities2.ReactSurface, [
281
+ var react_surface_default = (() => contributes(Capabilities2.ReactSurface, [
258
282
  createSurface({
259
- id: `${REGISTRY_PLUGIN}/all`,
283
+ id: `${meta.id}/all`,
260
284
  role: "article",
261
285
  filter: (data) => data.subject === `${REGISTRY_KEY}+all`,
262
286
  component: () => {
263
287
  const manager = usePluginManager2();
264
- const filtered = useMemo2(() => manager.plugins.filter(({ meta }) => !manager.core.includes(meta.id)), []);
288
+ const filtered = useMemo2(() => manager.plugins.filter(({ meta: meta2 }) => !manager.core.includes(meta2.id)), []);
265
289
  return /* @__PURE__ */ React5.createElement(RegistryContainer, {
266
290
  id: `${REGISTRY_KEY}+all`,
267
291
  plugins: filtered
@@ -269,12 +293,12 @@ var react_surface_default = () => contributes(Capabilities2.ReactSurface, [
269
293
  }
270
294
  }),
271
295
  createSurface({
272
- id: `${REGISTRY_PLUGIN}/installed`,
296
+ id: `${meta.id}/installed`,
273
297
  role: "article",
274
298
  filter: (data) => data.subject === `${REGISTRY_KEY}+installed`,
275
299
  component: () => {
276
300
  const manager = usePluginManager2();
277
- const filtered = useMemo2(() => manager.plugins.filter(({ meta }) => !manager.core.includes(meta.id)).filter(({ meta }) => manager.enabled.includes(meta.id)), []);
301
+ const filtered = useMemo2(() => manager.plugins.filter(({ meta: meta2 }) => !manager.core.includes(meta2.id)).filter(({ meta: meta2 }) => manager.enabled.includes(meta2.id)), []);
278
302
  return /* @__PURE__ */ React5.createElement(RegistryContainer, {
279
303
  id: `${REGISTRY_KEY}+installed`,
280
304
  plugins: filtered
@@ -282,12 +306,12 @@ var react_surface_default = () => contributes(Capabilities2.ReactSurface, [
282
306
  }
283
307
  }),
284
308
  createSurface({
285
- id: `${REGISTRY_PLUGIN}/recommended`,
309
+ id: `${meta.id}/recommended`,
286
310
  role: "article",
287
311
  filter: (data) => data.subject === `${REGISTRY_KEY}+recommended`,
288
312
  component: () => {
289
313
  const manager = usePluginManager2();
290
- const filtered = useMemo2(() => manager.plugins.filter(({ meta }) => !manager.core.includes(meta.id)).filter(({ meta }) => !meta.tags?.includes("labs")), []);
314
+ const filtered = useMemo2(() => manager.plugins.filter(({ meta: meta2 }) => !manager.core.includes(meta2.id)).filter(({ meta: meta2 }) => !meta2.tags?.includes("labs")), []);
291
315
  return /* @__PURE__ */ React5.createElement(RegistryContainer, {
292
316
  id: `${REGISTRY_KEY}+recommended`,
293
317
  plugins: filtered
@@ -295,12 +319,12 @@ var react_surface_default = () => contributes(Capabilities2.ReactSurface, [
295
319
  }
296
320
  }),
297
321
  createSurface({
298
- id: `${REGISTRY_PLUGIN}/labs`,
322
+ id: `${meta.id}/labs`,
299
323
  role: "article",
300
324
  filter: (data) => data.subject === `${REGISTRY_KEY}+labs`,
301
325
  component: () => {
302
326
  const manager = usePluginManager2();
303
- const filtered = useMemo2(() => manager.plugins.filter(({ meta }) => meta.tags?.includes("labs")), []);
327
+ const filtered = useMemo2(() => manager.plugins.filter(({ meta: meta2 }) => meta2.tags?.includes("labs")), []);
304
328
  return /* @__PURE__ */ React5.createElement(RegistryContainer, {
305
329
  id: `${REGISTRY_KEY}+labs`,
306
330
  plugins: filtered
@@ -308,7 +332,7 @@ var react_surface_default = () => contributes(Capabilities2.ReactSurface, [
308
332
  }
309
333
  }),
310
334
  createSurface({
311
- id: `${REGISTRY_PLUGIN}/plugin-details`,
335
+ id: `${meta.id}/plugin-details`,
312
336
  role: "article",
313
337
  filter: (data) => data.subject instanceof Plugin,
314
338
  component: ({ data: { subject } }) => {
@@ -319,17 +343,15 @@ var react_surface_default = () => contributes(Capabilities2.ReactSurface, [
319
343
  subject.meta.id,
320
344
  enabled
321
345
  ]);
322
- return /* @__PURE__ */ React5.createElement(StackItem2.Content, {
323
- role: "article"
324
- }, /* @__PURE__ */ React5.createElement(PluginDetail, {
346
+ return /* @__PURE__ */ React5.createElement(PluginDetail, {
325
347
  plugin: subject,
326
348
  enabled,
327
349
  onEnable: handleEnable
328
- }));
350
+ });
329
351
  }
330
352
  })
331
- ]);
353
+ ]));
332
354
  export {
333
355
  react_surface_default as default
334
356
  };
335
- //# sourceMappingURL=react-surface-SRFVJQKE.mjs.map
357
+ //# sourceMappingURL=react-surface-KP3NX4UD.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/react-surface.tsx", "../../../src/components/PluginDetail.tsx", "../../../src/components/PluginList.tsx", "../../../src/components/PluginItem.tsx", "../../../src/components/RegistryContainer.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport { Capabilities, Plugin, contributes, createSurface, usePluginManager } from '@dxos/app-framework';\n\nimport { PluginDetail, RegistryContainer } from '../components';\nimport { REGISTRY_KEY, meta } from '../meta';\n\nexport default () =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: `${meta.id}/all`,\n role: 'article',\n filter: (data): data is any => data.subject === `${REGISTRY_KEY}+all`,\n component: () => {\n const manager = usePluginManager();\n const filtered = useMemo(() => manager.plugins.filter(({ meta }) => !manager.core.includes(meta.id)), []);\n\n return <RegistryContainer id={`${REGISTRY_KEY}+all`} plugins={filtered} />;\n },\n }),\n createSurface({\n id: `${meta.id}/installed`,\n role: 'article',\n filter: (data): data is any => data.subject === `${REGISTRY_KEY}+installed`,\n component: () => {\n const manager = usePluginManager();\n const filtered = useMemo(\n () =>\n manager.plugins\n .filter(({ meta }) => !manager.core.includes(meta.id))\n .filter(({ meta }) => manager.enabled.includes(meta.id)),\n [],\n );\n\n return <RegistryContainer id={`${REGISTRY_KEY}+installed`} plugins={filtered} />;\n },\n }),\n createSurface({\n id: `${meta.id}/recommended`,\n role: 'article',\n filter: (data): data is any => data.subject === `${REGISTRY_KEY}+recommended`,\n component: () => {\n const manager = usePluginManager();\n const filtered = useMemo(\n () =>\n manager.plugins\n .filter(({ meta }) => !manager.core.includes(meta.id))\n .filter(({ meta }) => !meta.tags?.includes('labs')),\n [],\n );\n\n return <RegistryContainer id={`${REGISTRY_KEY}+recommended`} plugins={filtered} />;\n },\n }),\n createSurface({\n id: `${meta.id}/labs`,\n role: 'article',\n filter: (data): data is any => data.subject === `${REGISTRY_KEY}+labs`,\n component: () => {\n const manager = usePluginManager();\n const filtered = useMemo(() => manager.plugins.filter(({ meta }) => meta.tags?.includes('labs')), []);\n\n return <RegistryContainer id={`${REGISTRY_KEY}+labs`} plugins={filtered} />;\n },\n }),\n createSurface({\n id: `${meta.id}/plugin-details`,\n role: 'article',\n filter: (data): data is { subject: Plugin } => data.subject instanceof Plugin,\n component: ({ data: { subject } }) => {\n const manager = usePluginManager();\n const enabled = manager.enabled.includes(subject.meta.id);\n const handleEnable = useCallback(\n () => (enabled ? manager.disable(subject.meta.id) : manager.enable(subject.meta.id)),\n [manager, subject.meta.id, enabled],\n );\n\n return <PluginDetail plugin={subject} enabled={enabled} onEnable={handleEnable} />;\n },\n }),\n ]);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { Icon, Input, Link, useTranslation } from '@dxos/react-ui';\nimport { StackItem } from '@dxos/react-ui-stack';\nimport { getStyles, mx } from '@dxos/react-ui-theme';\n\nimport { meta } from '../meta';\n\nexport type PluginDetailProps = {\n plugin: Plugin;\n enabled?: boolean;\n onEnable?: () => void;\n};\n\nexport const PluginDetail = ({ plugin, enabled, onEnable }: PluginDetailProps) => {\n const { t } = useTranslation(meta.id);\n const {\n id,\n name,\n description,\n homePage,\n source,\n screenshots,\n icon = 'ph--circle--regular',\n iconHue = 'neutral',\n } = plugin.meta;\n const styles = getStyles(iconHue);\n\n return (\n <StackItem.Content scrollable>\n <div role='none' className='grid grid-cols-[min-content_1fr] gap-4 container-max-width p-4'>\n <div role='none'>\n <Icon classNames={mx('p-1 rounded', styles.bg, styles.icon)} icon={icon} size={14} />\n </div>\n <div role='none' className='flex flex-col gap-6'>\n <div role='none' className='grid grid-cols-[1fr_min-content] gap-x-3 is-full pbs-1'>\n <h2 className='text-xl'>{name}</h2>\n <Input.Root>\n <Input.Switch classNames='self-center' checked={enabled} onClick={onEnable} />\n </Input.Root>\n <p className='pbs-0.5 text-sm text-description'>{id}</p>\n </div>\n\n <div role='none'>\n <p className='text-description'>{description}</p>\n </div>\n\n {screenshots && screenshots.length > 0 && (\n <div role='none' className='flex flex-col gap-2'>\n <h2>Preview</h2>\n <img src={screenshots[0]} alt={name} className='aspect-video object-fit' />\n </div>\n )}\n\n <div role='none' className='flex flex-col gap-2'>\n <h2>Resources</h2>\n <div className='flex gap-2'>\n {homePage && (\n <Link href={homePage} target='_blank' rel='noreferrer' classNames='text-sm text-description'>\n {t('home page label')}\n <Icon icon='ph--arrow-square-out--bold' size={3} classNames='inline-block leading-none mli-1' />\n </Link>\n )}\n\n {source && (\n <Link href={source} target='_blank' rel='noreferrer' classNames='text-sm text-description'>\n {t('source label')}\n <Icon icon='ph--arrow-square-out--bold' size={3} classNames='inline-block leading-none mli-1' />\n </Link>\n )}\n </div>\n </div>\n </div>\n </div>\n </StackItem.Content>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { List } from '@dxos/react-ui';\n\nimport { PluginItem, type PluginItemProps } from './PluginItem';\n\nexport type PluginListProps = Omit<PluginItemProps, 'plugin'> & {\n plugins?: readonly Plugin[];\n};\n\nexport const PluginList = ({ plugins = [], ...props }: PluginListProps) => {\n return (\n <List classNames='grid grid-cols-[repeat(auto-fill,minmax(18rem,1fr))] gap-4 p-4'>\n {plugins.map((plugin) => (\n <PluginItem key={plugin.meta.id} plugin={plugin} {...props} />\n ))}\n </List>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { type MouseEvent, useCallback } from 'react';\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { type ChromaticPalette, Icon, IconButton, Input, Link, ListItem, Tag, useTranslation } from '@dxos/react-ui';\nimport { descriptionText, mx } from '@dxos/react-ui-theme';\nimport { getStyles } from '@dxos/react-ui-theme';\n\nimport { meta } from '../meta';\nimport { type RegistryTagType } from '../types';\n\nexport type PluginItemProps = {\n plugin: Plugin;\n installed?: readonly string[];\n enabled?: readonly string[];\n onClick?: (id: string) => void;\n onChange?: (id: string, enabled: boolean) => void;\n hasSettings?: (id: string) => boolean;\n onSettings?: (id: string) => void;\n};\n\nexport const PluginItem = ({\n plugin,\n enabled = [],\n onClick,\n onChange,\n hasSettings: hasSettingsParam,\n onSettings,\n}: PluginItemProps) => {\n const { t } = useTranslation(meta.id);\n const { id, name, description, tags, icon = 'ph--circle--regular', iconHue = 'neutral' } = plugin.meta;\n const isEnabled = enabled.includes(id);\n const inputId = `${id}-input`;\n const labelId = `${id}-label`;\n const descriptionId = `${id}-description`;\n const handleClick = useCallback(() => onClick?.(id), [id, onClick]);\n\n const handleChange = useCallback(\n (event: MouseEvent) => {\n event.stopPropagation();\n onChange?.(id, !isEnabled);\n },\n [id, isEnabled, onChange],\n );\n\n const hasSettings = hasSettingsParam?.(id) ?? false;\n const handleSettings = useCallback(() => onSettings?.(id), [id, onSettings]);\n const styles = getStyles(iconHue);\n const gridCols = 'grid grid-cols-[5rem_1fr]';\n const gridRows = 'grid grid-rows-[40px_1fr_min-content_40px]';\n\n return (\n <ListItem.Root\n key={id}\n labelId={labelId}\n data-testid={`pluginList.${id}`}\n aria-describedby={descriptionId}\n classNames={mx(gridCols, 'bs-[12rem] is-full gap-3 pie-2 border border-separator rounded-md overflow-hidden')}\n >\n <div className={mx(gridRows, 'justify-center rounded-l-md', styles.bg)}>\n <div />\n <Icon classNames={mx('cursor-pointer', styles.icon)} icon={icon} size={14} onClick={handleClick} />\n </div>\n\n <div className={mx(gridRows)}>\n <div className='flex items-center overflow-hidden cursor-pointer' onClick={handleClick}>\n <span className='text-lg truncate'>{name ?? id}</span>\n </div>\n\n <div>\n <p className={mx(descriptionText, 'line-clamp-4 min-is-0')}>{description}</p>\n </div>\n\n <div className='flex -mis-0.5 overflow-x-auto scrollbar-none'>\n {tags?.map((tag) => (\n <Tag key={tag} palette={tagColors[tag as RegistryTagType]} classNames='text-xs uppercase font-thin'>\n {tag}\n </Tag>\n ))}\n </div>\n\n <div className='flex gap-2 items-center text-sm'>\n <IconButton\n aria-describedby={descriptionId}\n classNames='cursor-pointer'\n icon='ph--gear--regular'\n label={t('settings label')}\n iconOnly\n size={4}\n onClick={handleSettings}\n disabled={!hasSettings}\n />\n\n <Link aria-describedby={descriptionId} classNames='text-description cursor-pointer' onClick={handleClick}>\n {t('details label')}\n </Link>\n\n <div className='grow' />\n <div className='pie-1'>\n <Input.Root id={inputId}>\n <Input.Switch classNames='self-center' checked={isEnabled} onClick={handleChange} />\n </Input.Root>\n </div>\n </div>\n </div>\n </ListItem.Root>\n );\n};\n\nconst tagColors: Record<RegistryTagType, ChromaticPalette> = {\n new: 'rose',\n beta: 'teal',\n labs: 'blue',\n popular: 'green',\n featured: 'pink',\n experimental: 'amber',\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport {\n Capabilities,\n LayoutAction,\n type Plugin,\n SettingsAction,\n createIntent,\n useCapability,\n useIntentDispatcher,\n usePluginManager,\n} from '@dxos/app-framework';\nimport { ObservabilityAction } from '@dxos/plugin-observability/types';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport { PluginList } from './PluginList';\n\nconst sortByPluginMeta = ({ meta: { name: a = '' } }: Plugin, { meta: { name: b = '' } }: Plugin) => a.localeCompare(b);\n\nexport const RegistryContainer = ({ id, plugins: _plugins }: { id: string; plugins: Plugin[] }) => {\n const manager = usePluginManager();\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const plugins = useMemo(() => _plugins.sort(sortByPluginMeta), [_plugins]);\n const settingsStore = useCapability(Capabilities.SettingsStore);\n\n // TODO(wittjosiah): Factor out to an intent?\n const handleChange = useCallback(\n async (id: string, enabled: boolean) => {\n if (enabled) {\n await manager.enable(id);\n } else {\n await manager.disable(id);\n }\n\n await dispatch(\n createIntent(ObservabilityAction.SendEvent, {\n name: 'plugins.toggle',\n properties: {\n plugin: id,\n enabled,\n },\n }),\n );\n },\n [dispatch, manager],\n );\n\n const handleClick = useCallback(\n (pluginId: string) =>\n dispatch(\n createIntent(LayoutAction.Open, {\n part: 'main',\n // TODO(wittjosiah): `/` currently is not supported in ids.\n subject: [pluginId.replaceAll('/', ':')],\n options: { pivotId: id, positioning: 'end' },\n }),\n ),\n [dispatch, id],\n );\n\n const hasSettings = useCallback((pluginId: string) => !!settingsStore.getStore(pluginId), [settingsStore]);\n\n const handleSettings = useCallback(\n (pluginId: string) => dispatch(createIntent(SettingsAction.Open, { plugin: pluginId })),\n [dispatch],\n );\n\n return (\n <StackItem.Content scrollable>\n <PluginList\n plugins={plugins}\n enabled={manager.enabled}\n onClick={handleClick}\n onChange={handleChange}\n hasSettings={hasSettings}\n onSettings={handleSettings}\n />\n </StackItem.Content>\n );\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "useCallback", "useMemo", "Capabilities", "Plugin", "contributes", "createSurface", "usePluginManager", "React", "Icon", "Input", "Link", "useTranslation", "StackItem", "getStyles", "mx", "PluginDetail", "plugin", "enabled", "onEnable", "t", "useTranslation", "meta", "id", "name", "description", "homePage", "source", "screenshots", "icon", "iconHue", "styles", "getStyles", "StackItem", "Content", "scrollable", "div", "role", "className", "Icon", "classNames", "mx", "bg", "size", "h2", "Input", "Root", "Switch", "checked", "onClick", "p", "length", "img", "src", "alt", "Link", "href", "target", "rel", "React", "List", "React", "useCallback", "Icon", "IconButton", "Input", "Link", "ListItem", "Tag", "useTranslation", "descriptionText", "mx", "getStyles", "PluginItem", "plugin", "enabled", "onClick", "onChange", "hasSettings", "hasSettingsParam", "onSettings", "t", "useTranslation", "meta", "id", "name", "description", "tags", "icon", "iconHue", "isEnabled", "includes", "inputId", "labelId", "descriptionId", "handleClick", "useCallback", "handleChange", "event", "stopPropagation", "handleSettings", "styles", "getStyles", "gridCols", "gridRows", "React", "ListItem", "Root", "key", "data-testid", "aria-describedby", "classNames", "mx", "div", "className", "bg", "Icon", "size", "span", "p", "descriptionText", "map", "tag", "Tag", "palette", "tagColors", "IconButton", "label", "iconOnly", "disabled", "Link", "Input", "Switch", "checked", "new", "beta", "labs", "popular", "featured", "experimental", "PluginList", "plugins", "props", "React", "List", "classNames", "map", "plugin", "PluginItem", "key", "meta", "id", "React", "useCallback", "useMemo", "Capabilities", "LayoutAction", "SettingsAction", "createIntent", "useCapability", "useIntentDispatcher", "usePluginManager", "ObservabilityAction", "StackItem", "sortByPluginMeta", "meta", "name", "a", "b", "localeCompare", "RegistryContainer", "id", "plugins", "_plugins", "manager", "usePluginManager", "dispatchPromise", "dispatch", "useIntentDispatcher", "useMemo", "sort", "settingsStore", "useCapability", "Capabilities", "SettingsStore", "handleChange", "useCallback", "enabled", "enable", "disable", "createIntent", "ObservabilityAction", "SendEvent", "properties", "plugin", "handleClick", "pluginId", "LayoutAction", "Open", "part", "subject", "replaceAll", "options", "pivotId", "positioning", "hasSettings", "getStore", "handleSettings", "SettingsAction", "React", "StackItem", "Content", "scrollable", "PluginList", "onClick", "onChange", "onSettings", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "meta", "role", "filter", "data", "subject", "REGISTRY_KEY", "component", "manager", "usePluginManager", "filtered", "useMemo", "plugins", "core", "includes", "React", "RegistryContainer", "enabled", "tags", "Plugin", "handleEnable", "useCallback", "disable", "enable", "PluginDetail", "plugin", "onEnable"]
7
+ }
@@ -1,2 +1,2 @@
1
- export declare const RegistryPlugin: () => import("@dxos/app-framework").Plugin;
1
+ export declare const RegistryPlugin: import("@dxos/app-framework").PluginFactory<void>;
2
2
  //# sourceMappingURL=RegistryPlugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RegistryPlugin.d.ts","sourceRoot":"","sources":["../../../src/RegistryPlugin.tsx"],"names":[],"mappings":"AAUA,eAAO,MAAM,cAAc,4CAsBvB,CAAC"}
1
+ {"version":3,"file":"RegistryPlugin.d.ts","sourceRoot":"","sources":["../../../src/RegistryPlugin.tsx"],"names":[],"mappings":"AAUA,eAAO,MAAM,cAAc,mDAqBzB,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import { type PluginContext } from '@dxos/app-framework';
2
- declare const _default: (context: PluginContext) => import("@dxos/app-framework").Capability<import("@dxos/app-graph").BuilderExtensions>;
2
+ declare const _default: (context: PluginContext) => import("@dxos/app-framework").Capability<import("@dxos/app-framework").InterfaceDef<import("@dxos/app-graph").BuilderExtensions>>;
3
3
  export default _default;
4
4
  //# sourceMappingURL=app-graph-builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-graph-builder.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/app-graph-builder.ts"],"names":[],"mappings":"AAOA,OAAO,EAA2D,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;yBAKlG,SAAS,aAAa;AAAtC,wBA8IK"}
1
+ {"version":3,"file":"app-graph-builder.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/app-graph-builder.ts"],"names":[],"mappings":"AAQA,OAAO,EAAgB,KAAK,aAAa,EAA6C,MAAM,qBAAqB,CAAC;yBAKlG,SAAS,aAAa;AAAtC,wBA8IK"}
@@ -1,4 +1,4 @@
1
- export declare const AppGraphBuilder: (props?: import("@dxos/app-framework").PluginContext | undefined) => Promise<() => Promise<import("@dxos/app-framework").Capability<import("@dxos/app-graph").BuilderExtensions> | import("@dxos/app-framework").AnyCapability[]>>;
2
- export declare const IntentResolver: (props?: unknown) => Promise<() => Promise<import("@dxos/app-framework").Capability<import("@dxos/app-framework").Capabilities.IntentResolver> | import("@dxos/app-framework").AnyCapability[]>>;
3
- export declare const ReactSurface: (props?: unknown) => Promise<() => Promise<import("@dxos/app-framework").Capability<import("@dxos/app-framework").Capabilities.ReactSurface> | import("@dxos/app-framework").AnyCapability[]>>;
1
+ export declare const AppGraphBuilder: (props?: import("@dxos/app-framework").PluginContext | undefined) => Promise<() => Promise<import("@dxos/app-framework").Capability<import("@dxos/app-framework").InterfaceDef<import("@dxos/app-graph").BuilderExtensions>> | import("@dxos/app-framework").AnyCapability[]>>;
2
+ export declare const IntentResolver: (props?: unknown) => Promise<() => Promise<import("@dxos/app-framework").Capability<import("@dxos/app-framework").InterfaceDef<import("@dxos/app-framework").Capabilities.IntentResolver>> | import("@dxos/app-framework").AnyCapability[]>>;
3
+ export declare const ReactSurface: (props?: unknown) => Promise<() => Promise<import("@dxos/app-framework").Capability<import("@dxos/app-framework").InterfaceDef<import("@dxos/app-framework").Capabilities.ReactSurface>> | import("@dxos/app-framework").AnyCapability[]>>;
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/index.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,eAAe,oOAA4C,CAAC;AACzE,eAAO,MAAM,cAAc,kMAA0C,CAAC;AACtE,eAAO,MAAM,YAAY,gMAAwC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/index.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,eAAe,gRAA4C,CAAC;AACzE,eAAO,MAAM,cAAc,8OAA0C,CAAC;AACtE,eAAO,MAAM,YAAY,4OAAwC,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import { Capabilities } from '@dxos/app-framework';
2
- declare const _default: () => import("@dxos/app-framework").Capability<Capabilities.IntentResolver>;
2
+ declare const _default: () => import("@dxos/app-framework").Capability<import("@dxos/app-framework").InterfaceDef<Capabilities.IntentResolver>>;
3
3
  export default _default;
4
4
  //# sourceMappingURL=intent-resolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"intent-resolver.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/intent-resolver.ts"],"names":[],"mappings":"AAIA,OAAO,EAKL,YAAY,EAEb,MAAM,qBAAqB,CAAC;;AAI7B,wBAWI"}
1
+ {"version":3,"file":"intent-resolver.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/intent-resolver.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,YAAY,EAMb,MAAM,qBAAqB,CAAC;;AAI7B,wBAWI"}
@@ -1,4 +1,4 @@
1
1
  import { Capabilities } from '@dxos/app-framework';
2
- declare const _default: () => import("@dxos/app-framework").Capability<Capabilities.ReactSurface>;
2
+ declare const _default: () => import("@dxos/app-framework").Capability<import("@dxos/app-framework").InterfaceDef<Capabilities.ReactSurface>>;
3
3
  export default _default;
4
4
  //# sourceMappingURL=react-surface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"react-surface.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/react-surface.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAwD,MAAM,qBAAqB,CAAC;;AAMzG,wBA6EK"}
1
+ {"version":3,"file":"react-surface.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/react-surface.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAwD,MAAM,qBAAqB,CAAC;;AAKzG,wBAyEK"}
@@ -1 +1 @@
1
- {"version":3,"file":"PluginDetail.d.ts","sourceRoot":"","sources":["../../../../src/components/PluginDetail.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAMlD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,+BAA+B,iBAAiB,sBA4C5E,CAAC"}
1
+ {"version":3,"file":"PluginDetail.d.ts","sourceRoot":"","sources":["../../../../src/components/PluginDetail.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAOlD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,+BAA+B,iBAAiB,sBA8D5E,CAAC"}
@@ -1,8 +1,32 @@
1
- import '@dxos-theme';
2
- import { type StoryObj, type Meta } from '@storybook/react-vite';
3
- import { type PluginDetailProps } from './PluginDetail';
4
- declare const meta: Meta<PluginDetailProps>;
1
+ import { type StoryObj } from '@storybook/react-vite';
2
+ declare const meta: {
3
+ title: string;
4
+ component: ({ plugin, enabled, onEnable }: import("./PluginDetail").PluginDetailProps) => import("react").JSX.Element;
5
+ decorators: import("@storybook/react").Decorator[];
6
+ parameters: {
7
+ translations: [{
8
+ readonly 'en-US': {
9
+ readonly [meta.id]: {
10
+ readonly 'plugin name': "Registry";
11
+ readonly 'details label': "Details";
12
+ readonly 'home page label': "Website";
13
+ readonly 'source label': "Source";
14
+ readonly 'plugin registry label': "Plugin Registry";
15
+ readonly 'all plugins label': "All";
16
+ readonly 'installed plugins label': "Enabled";
17
+ readonly 'recommended plugins label': "Recommended";
18
+ readonly 'labs plugins label': "Labs";
19
+ readonly 'community plugins label': "Community";
20
+ readonly 'load by url label': "Load by URL (soon)";
21
+ readonly 'coming soon label': "Coming soon!";
22
+ readonly 'open plugin registry label': "Open plugin registry";
23
+ readonly 'settings label': "Settings";
24
+ };
25
+ };
26
+ }];
27
+ };
28
+ };
5
29
  export default meta;
6
- type Story = StoryObj<PluginDetailProps>;
30
+ type Story = StoryObj<typeof meta>;
7
31
  export declare const Default: Story;
8
32
  //# sourceMappingURL=PluginDetail.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PluginDetail.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/PluginDetail.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,aAAa,CAAC;AAErB,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAKjE,OAAO,EAAgB,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGtE,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAOjC,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC;AAEzC,eAAO,MAAM,OAAO,EAAE,KAiBrB,CAAC"}
1
+ {"version":3,"file":"PluginDetail.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/PluginDetail.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AASjE,QAAA,MAAM,IAAI;;;;;;;yBANc,CAAS,IAAG,CAAE,EAAC,CAAC;;;;;;;;;;;;;;;;;;;CAaH,CAAC;AAEtC,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAkBrB,CAAC"}
@@ -9,5 +9,5 @@ export type PluginItemProps = {
9
9
  hasSettings?: (id: string) => boolean;
10
10
  onSettings?: (id: string) => void;
11
11
  };
12
- export declare const PluginItem: ({ plugin, enabled, onClick, onChange, hasSettings: _hasSettings, onSettings, }: PluginItemProps) => React.JSX.Element;
12
+ export declare const PluginItem: ({ plugin, enabled, onClick, onChange, hasSettings: hasSettingsParam, onSettings, }: PluginItemProps) => React.JSX.Element;
13
13
  //# sourceMappingURL=PluginItem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PluginItem.d.ts","sourceRoot":"","sources":["../../../../src/components/PluginItem.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAE5D,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAMlD,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,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,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;IACtC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,gFAOxB,eAAe,sBAyFjB,CAAC"}
1
+ {"version":3,"file":"PluginItem.d.ts","sourceRoot":"","sources":["../../../../src/components/PluginItem.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAE5D,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAQlD,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,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,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;IACtC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,oFAOxB,eAAe,sBA+EjB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"PluginList.d.ts","sourceRoot":"","sources":["../../../../src/components/PluginList.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGlD,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAEhE,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,GAAG;IAC9D,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,uBAA4B,eAAe,sBAUrE,CAAC"}
1
+ {"version":3,"file":"PluginList.d.ts","sourceRoot":"","sources":["../../../../src/components/PluginList.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGlD,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAEhE,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,GAAG;IAC9D,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,uBAA4B,eAAe,sBAQrE,CAAC"}
@@ -1,11 +1,34 @@
1
- import '@dxos-theme';
2
- import { type Meta } from '@storybook/react-vite';
3
- declare const meta: Meta;
4
- export default meta;
5
- export declare const Default: {};
6
- export declare const Column: {
7
- args: {
8
- classNames: string;
1
+ import { type StoryObj } from '@storybook/react-vite';
2
+ import React from 'react';
3
+ declare const meta: {
4
+ title: string;
5
+ component: ({ plugins, ...props }: import("./PluginList").PluginListProps) => React.JSX.Element;
6
+ render: () => React.JSX.Element;
7
+ parameters: {
8
+ translations: [{
9
+ readonly 'en-US': {
10
+ readonly [meta.id]: {
11
+ readonly 'plugin name': "Registry";
12
+ readonly 'details label': "Details";
13
+ readonly 'home page label': "Website";
14
+ readonly 'source label': "Source";
15
+ readonly 'plugin registry label': "Plugin Registry";
16
+ readonly 'all plugins label': "All";
17
+ readonly 'installed plugins label': "Enabled";
18
+ readonly 'recommended plugins label': "Recommended";
19
+ readonly 'labs plugins label': "Labs";
20
+ readonly 'community plugins label': "Community";
21
+ readonly 'load by url label': "Load by URL (soon)";
22
+ readonly 'coming soon label': "Coming soon!";
23
+ readonly 'open plugin registry label': "Open plugin registry";
24
+ readonly 'settings label': "Settings";
25
+ };
26
+ };
27
+ }];
9
28
  };
10
29
  };
30
+ export default meta;
31
+ type Story = StoryObj<typeof meta>;
32
+ export declare const Default: Story;
33
+ export declare const FullScreen: Story;
11
34
  //# sourceMappingURL=PluginList.stories.d.ts.map