@dxos/plugin-preview 0.8.4-main.406dc2a → 0.8.4-main.422d1c7879

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 (89) hide show
  1. package/dist/lib/browser/index.mjs +41 -46
  2. package/dist/lib/browser/index.mjs.map +4 -4
  3. package/dist/lib/browser/meta.json +1 -1
  4. package/dist/lib/node-esm/index.mjs +42 -46
  5. package/dist/lib/node-esm/index.mjs.map +4 -4
  6. package/dist/lib/node-esm/meta.json +1 -1
  7. package/dist/types/src/PreviewPlugin.d.ts +2 -1
  8. package/dist/types/src/PreviewPlugin.d.ts.map +1 -1
  9. package/dist/types/src/capabilities/index.d.ts +3 -2
  10. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  11. package/dist/types/src/capabilities/preview-popover.d.ts +3 -2
  12. package/dist/types/src/capabilities/preview-popover.d.ts.map +1 -1
  13. package/dist/types/src/capabilities/react-surface.d.ts +3 -2
  14. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  15. package/dist/types/src/cards/FormCard.d.ts +7 -0
  16. package/dist/types/src/cards/FormCard.d.ts.map +1 -0
  17. package/dist/types/src/cards/JsonCard.d.ts +5 -0
  18. package/dist/types/src/cards/JsonCard.d.ts.map +1 -0
  19. package/dist/types/src/cards/OrganizationCard.d.ts +5 -0
  20. package/dist/types/src/cards/OrganizationCard.d.ts.map +1 -0
  21. package/dist/types/src/cards/PersonCard.d.ts +5 -0
  22. package/dist/types/src/cards/PersonCard.d.ts.map +1 -0
  23. package/dist/types/src/cards/ProjectCard.d.ts +5 -0
  24. package/dist/types/src/cards/ProjectCard.d.ts.map +1 -0
  25. package/dist/types/src/cards/TaskCard.d.ts +5 -0
  26. package/dist/types/src/cards/TaskCard.d.ts.map +1 -0
  27. package/dist/types/src/cards/index.d.ts +7 -0
  28. package/dist/types/src/cards/index.d.ts.map +1 -0
  29. package/dist/types/src/index.d.ts +0 -1
  30. package/dist/types/src/index.d.ts.map +1 -1
  31. package/dist/types/src/meta.d.ts +2 -2
  32. package/dist/types/src/meta.d.ts.map +1 -1
  33. package/dist/types/src/stories/Card.stories.d.ts +19 -13
  34. package/dist/types/src/stories/Card.stories.d.ts.map +1 -1
  35. package/dist/types/src/stories/testing.d.ts +14 -12
  36. package/dist/types/src/stories/testing.d.ts.map +1 -1
  37. package/dist/types/src/translations.d.ts +8 -8
  38. package/dist/types/src/translations.d.ts.map +1 -1
  39. package/dist/types/tsconfig.tsbuildinfo +1 -1
  40. package/package.json +49 -37
  41. package/src/PreviewPlugin.tsx +15 -25
  42. package/src/capabilities/index.ts +3 -3
  43. package/src/capabilities/preview-popover.ts +69 -42
  44. package/src/capabilities/react-surface.tsx +98 -121
  45. package/src/cards/FormCard.tsx +48 -0
  46. package/src/cards/JsonCard.tsx +16 -0
  47. package/src/cards/OrganizationCard.tsx +29 -0
  48. package/src/cards/PersonCard.tsx +65 -0
  49. package/src/cards/ProjectCard.tsx +22 -0
  50. package/src/cards/TaskCard.tsx +44 -0
  51. package/src/cards/index.ts +10 -0
  52. package/src/index.ts +0 -1
  53. package/src/meta.ts +8 -3
  54. package/src/stories/Card.stories.tsx +70 -22
  55. package/src/stories/testing.tsx +55 -78
  56. package/src/translations.ts +8 -8
  57. package/dist/lib/browser/chunk-XKCIQK3C.mjs +0 -12
  58. package/dist/lib/browser/chunk-XKCIQK3C.mjs.map +0 -7
  59. package/dist/lib/browser/preview-popover-RKHENTFP.mjs +0 -65
  60. package/dist/lib/browser/preview-popover-RKHENTFP.mjs.map +0 -7
  61. package/dist/lib/browser/react-surface-X56QWACK.mjs +0 -448
  62. package/dist/lib/browser/react-surface-X56QWACK.mjs.map +0 -7
  63. package/dist/lib/node-esm/chunk-L3IZVX56.mjs +0 -14
  64. package/dist/lib/node-esm/chunk-L3IZVX56.mjs.map +0 -7
  65. package/dist/lib/node-esm/preview-popover-TZKX67EY.mjs +0 -67
  66. package/dist/lib/node-esm/preview-popover-TZKX67EY.mjs.map +0 -7
  67. package/dist/lib/node-esm/react-surface-4P7UCMK7.mjs +0 -449
  68. package/dist/lib/node-esm/react-surface-4P7UCMK7.mjs.map +0 -7
  69. package/dist/types/src/components/CardSubjectMenu.d.ts +0 -12
  70. package/dist/types/src/components/CardSubjectMenu.d.ts.map +0 -1
  71. package/dist/types/src/components/ContactCard.d.ts +0 -7
  72. package/dist/types/src/components/ContactCard.d.ts.map +0 -1
  73. package/dist/types/src/components/OrganizationCard.d.ts +0 -5
  74. package/dist/types/src/components/OrganizationCard.d.ts.map +0 -1
  75. package/dist/types/src/components/ProjectCard.d.ts +0 -5
  76. package/dist/types/src/components/ProjectCard.d.ts.map +0 -1
  77. package/dist/types/src/components/TaskCard.d.ts +0 -5
  78. package/dist/types/src/components/TaskCard.d.ts.map +0 -1
  79. package/dist/types/src/components/index.d.ts +0 -4
  80. package/dist/types/src/components/index.d.ts.map +0 -1
  81. package/dist/types/src/types.d.ts +0 -9
  82. package/dist/types/src/types.d.ts.map +0 -1
  83. package/src/components/CardSubjectMenu.tsx +0 -82
  84. package/src/components/ContactCard.tsx +0 -78
  85. package/src/components/OrganizationCard.tsx +0 -44
  86. package/src/components/ProjectCard.tsx +0 -28
  87. package/src/components/TaskCard.tsx +0 -46
  88. package/src/components/index.ts +0 -7
  89. package/src/types.ts +0 -14
@@ -1,448 +0,0 @@
1
- import {
2
- meta
3
- } from "./chunk-XKCIQK3C.mjs";
4
-
5
- // src/capabilities/react-surface.tsx
6
- import React6, { useCallback } from "react";
7
- import { Capabilities, LayoutAction as LayoutAction2, Surface, contributes, createIntent as createIntent2, createSurface, useIntentDispatcher as useIntentDispatcher2 } from "@dxos/app-framework";
8
- import { fullyQualifiedId as fullyQualifiedId2, getSchema, getSpace } from "@dxos/client/echo";
9
- import { Obj as Obj3 } from "@dxos/echo";
10
- import { setValue } from "@dxos/echo/internal";
11
- import { useActiveSpace } from "@dxos/plugin-space";
12
- import { useTranslation as useTranslation2 } from "@dxos/react-ui";
13
- import { Form } from "@dxos/react-ui-form";
14
- import { Card as Card5 } from "@dxos/react-ui-stack";
15
- import { descriptionMessage, mx as mx5 } from "@dxos/react-ui-theme";
16
- import { DataType as DataType2 } from "@dxos/schema";
17
-
18
- // src/components/ContactCard.tsx
19
- import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
20
- import React2, { Fragment } from "react";
21
- import { Avatar, Button, Icon } from "@dxos/react-ui";
22
- import { Card, cardHeading, cardText } from "@dxos/react-ui-stack";
23
- import { mx } from "@dxos/react-ui-theme";
24
-
25
- // src/components/CardSubjectMenu.tsx
26
- import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
27
- import { Rx } from "@effect-rx/rx-react";
28
- import React from "react";
29
- import { LayoutAction, createIntent, useIntentDispatcher } from "@dxos/app-framework";
30
- import { ACTION_TYPE } from "@dxos/app-graph";
31
- import { Obj } from "@dxos/echo";
32
- import { SpaceAction } from "@dxos/plugin-space/types";
33
- import { fullyQualifiedId } from "@dxos/react-client/echo";
34
- import { IconButton, useTranslation } from "@dxos/react-ui";
35
- import { DropdownMenu, MenuProvider, useMenuActions } from "@dxos/react-ui-menu";
36
- var useSubjectMenuGroupItems = (subject, activeSpace) => {
37
- const { dispatchPromise: dispatch } = useIntentDispatcher();
38
- const result = {
39
- edges: [],
40
- nodes: []
41
- };
42
- result.nodes.push({
43
- type: ACTION_TYPE,
44
- id: `${subject.id}/open`,
45
- data: () => dispatch(createIntent(LayoutAction.Open, {
46
- part: "main",
47
- subject: [
48
- fullyQualifiedId(subject)
49
- ]
50
- })),
51
- properties: {
52
- label: [
53
- "open object label",
54
- {
55
- ns: meta.id
56
- }
57
- ],
58
- icon: "ph--arrow-right--regular"
59
- }
60
- });
61
- if (activeSpace && Obj.getDXN(subject).asQueueDXN()) {
62
- result.nodes.push({
63
- type: ACTION_TYPE,
64
- id: `${subject.id}/add-to-space`,
65
- // TODO(wittjosiah): Update reference to point to db object when adding?
66
- data: () => dispatch(createIntent(SpaceAction.AddObject, {
67
- object: subject,
68
- target: activeSpace,
69
- hidden: true
70
- })),
71
- properties: {
72
- label: [
73
- "add object to space label",
74
- {
75
- ns: meta.id
76
- }
77
- ],
78
- icon: "ph--file-plus--regular"
79
- }
80
- });
81
- }
82
- result.nodes.forEach(({ id: target }) => {
83
- result.edges.push({
84
- source: "root",
85
- target
86
- });
87
- });
88
- return useMenuActions(Rx.make(result));
89
- };
90
- var CardSubjectMenu = ({ subject, activeSpace, ...props }) => {
91
- var _effect = _useSignals();
92
- try {
93
- const { t } = useTranslation(meta.id);
94
- const menuProps = useSubjectMenuGroupItems(subject, activeSpace);
95
- if (!activeSpace) {
96
- return null;
97
- }
98
- return /* @__PURE__ */ React.createElement(MenuProvider, menuProps, /* @__PURE__ */ React.createElement(DropdownMenu.Root, null, /* @__PURE__ */ React.createElement(DropdownMenu.Trigger, {
99
- asChild: true
100
- }, /* @__PURE__ */ React.createElement(IconButton, {
101
- iconOnly: true,
102
- variant: "ghost",
103
- icon: "ph--dots-three-vertical--bold",
104
- label: t("more options label"),
105
- ...props
106
- }))));
107
- } finally {
108
- _effect.f();
109
- }
110
- };
111
-
112
- // src/components/ContactCard.tsx
113
- var ContactCard = ({ children, subject, activeSpace, onOrgClick, role }) => {
114
- var _effect = _useSignals2();
115
- try {
116
- const { fullName, image, organization, emails } = subject;
117
- const organizationName = organization && typeof organization === "object" ? organization.target?.name : organization;
118
- return /* @__PURE__ */ React2.createElement(Card.SurfaceRoot, {
119
- role
120
- }, /* @__PURE__ */ React2.createElement(Avatar.Root, null, /* @__PURE__ */ React2.createElement(Card.Text, {
121
- role: "group",
122
- classNames: "grid gap-3 grid-cols-[min-content_1fr]"
123
- }, /* @__PURE__ */ React2.createElement(Avatar.Content, {
124
- imgSrc: image,
125
- icon: "ph--user--regular",
126
- size: 16,
127
- hue: "neutral"
128
- }), /* @__PURE__ */ React2.createElement("div", {
129
- role: "none",
130
- className: "bs-min self-center flex items-center"
131
- }, /* @__PURE__ */ React2.createElement(Avatar.Label, {
132
- asChild: true
133
- }, /* @__PURE__ */ React2.createElement("h2", {
134
- className: mx(cardHeading, "grow")
135
- }, fullName)), /* @__PURE__ */ React2.createElement(CardSubjectMenu, {
136
- subject,
137
- activeSpace
138
- })))), organizationName && /* @__PURE__ */ React2.createElement(Card.Chrome, null, typeof organization === "object" && onOrgClick ? /* @__PURE__ */ React2.createElement(Button, {
139
- variant: "ghost",
140
- classNames: "gap-2 text-start",
141
- onClick: () => onOrgClick(organization.target)
142
- }, /* @__PURE__ */ React2.createElement(Icon, {
143
- icon: "ph--buildings--regular",
144
- size: 5,
145
- classNames: "text-subdued"
146
- }), /* @__PURE__ */ React2.createElement("span", {
147
- className: "min-is-0 flex-1 truncate"
148
- }, organizationName), /* @__PURE__ */ React2.createElement(Icon, {
149
- icon: "ph--arrow-right--regular"
150
- })) : /* @__PURE__ */ React2.createElement("p", {
151
- className: "dx-button gap-2",
152
- "data-variant": "ghost"
153
- }, /* @__PURE__ */ React2.createElement(Icon, {
154
- icon: "ph--buildings--regular",
155
- size: 5,
156
- classNames: "text-subdued"
157
- }), /* @__PURE__ */ React2.createElement("span", {
158
- className: "min-is-0 flex-1 truncate"
159
- }, organizationName))), emails?.length && /* @__PURE__ */ React2.createElement("dl", {
160
- className: mx(cardText, "grid gap-2 grid-cols-[min-content_1fr] [&_dt]:text-subdued [&_dt]:pbs-0.5 [&_dd]:min-is-0")
161
- }, emails?.length && emails.map(({ label, value }) => /* @__PURE__ */ React2.createElement(Fragment, {
162
- key: value
163
- }, /* @__PURE__ */ React2.createElement("dt", null, /* @__PURE__ */ React2.createElement("span", {
164
- className: "sr-only"
165
- }, label), /* @__PURE__ */ React2.createElement(Icon, {
166
- icon: "ph--at--regular",
167
- size: 5
168
- })), /* @__PURE__ */ React2.createElement("dd", {
169
- key: value,
170
- className: "break-words"
171
- }, value)))), children);
172
- } finally {
173
- _effect.f();
174
- }
175
- };
176
-
177
- // src/components/OrganizationCard.tsx
178
- import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
179
- import React3 from "react";
180
- import { Icon as Icon2 } from "@dxos/react-ui";
181
- import { Card as Card2, cardNoSpacing, cardSpacing } from "@dxos/react-ui-stack";
182
- import { mx as mx2 } from "@dxos/react-ui-theme";
183
- var OrganizationCard = ({ children, subject, role, activeSpace }) => {
184
- var _effect = _useSignals3();
185
- try {
186
- const { name, image, description, website } = subject;
187
- return /* @__PURE__ */ React3.createElement(Card2.SurfaceRoot, {
188
- role
189
- }, /* @__PURE__ */ React3.createElement(Card2.Poster, {
190
- alt: name,
191
- ...image ? {
192
- image
193
- } : {
194
- icon: "ph--building-office--regular"
195
- }
196
- }), /* @__PURE__ */ React3.createElement("div", {
197
- role: "none",
198
- className: mx2("flex items-center gap-2", cardSpacing)
199
- }, /* @__PURE__ */ React3.createElement(Card2.Heading, {
200
- classNames: cardNoSpacing
201
- }, name), /* @__PURE__ */ React3.createElement(CardSubjectMenu, {
202
- subject,
203
- activeSpace
204
- })), description && /* @__PURE__ */ React3.createElement(Card2.Text, {
205
- classNames: "line-clamp-2"
206
- }, description), website && /* @__PURE__ */ React3.createElement(Card2.Chrome, null, /* @__PURE__ */ React3.createElement("a", {
207
- className: "dx-button dx-focus-ring gap-2",
208
- "data-variant": "ghost",
209
- href: website,
210
- target: "_blank",
211
- rel: "noreferrer"
212
- }, /* @__PURE__ */ React3.createElement(Icon2, {
213
- icon: "ph--link--regular",
214
- size: 5,
215
- classNames: "text-subdued"
216
- }), /* @__PURE__ */ React3.createElement("span", {
217
- className: "min-is-0 flex-1 truncate"
218
- }, website), /* @__PURE__ */ React3.createElement(Icon2, {
219
- icon: "ph--arrow-square-out--regular"
220
- }))), children);
221
- } finally {
222
- _effect.f();
223
- }
224
- };
225
-
226
- // src/components/ProjectCard.tsx
227
- import { useSignals as _useSignals4 } from "@preact-signals/safe-react/tracking";
228
- import React4 from "react";
229
- import { Obj as Obj2 } from "@dxos/echo";
230
- import { Card as Card3, cardNoSpacing as cardNoSpacing2, cardSpacing as cardSpacing2 } from "@dxos/react-ui-stack";
231
- import { mx as mx3 } from "@dxos/react-ui-theme";
232
- var ProjectCard = ({ subject, role, activeSpace }) => {
233
- var _effect = _useSignals4();
234
- try {
235
- const { name, image, description } = subject;
236
- return /* @__PURE__ */ React4.createElement(Card3.SurfaceRoot, {
237
- role
238
- }, image && /* @__PURE__ */ React4.createElement(Card3.Poster, {
239
- image,
240
- alt: Obj2.getLabel(subject) ?? "",
241
- aspect: "auto"
242
- }), /* @__PURE__ */ React4.createElement("div", {
243
- role: "none",
244
- className: mx3("flex items-center gap-2", cardSpacing2)
245
- }, /* @__PURE__ */ React4.createElement(Card3.Heading, {
246
- classNames: cardNoSpacing2
247
- }, name), /* @__PURE__ */ React4.createElement(CardSubjectMenu, {
248
- subject,
249
- activeSpace
250
- })), description && /* @__PURE__ */ React4.createElement(Card3.Text, {
251
- classNames: "line-clamp-2"
252
- }, description));
253
- } finally {
254
- _effect.f();
255
- }
256
- };
257
-
258
- // src/components/TaskCard.tsx
259
- import { useSignals as _useSignals5 } from "@preact-signals/safe-react/tracking";
260
- import * as SchemaAST from "effect/SchemaAST";
261
- import React5 from "react";
262
- import { PropertyMetaAnnotationId } from "@dxos/echo/internal";
263
- import { Card as Card4, cardNoSpacing as cardNoSpacing3, cardSpacing as cardSpacing3 } from "@dxos/react-ui-stack";
264
- import { mx as mx4 } from "@dxos/react-ui-theme";
265
- import { DataType } from "@dxos/schema";
266
- var getActiveStatusOption = (status) => {
267
- const properties = SchemaAST.getPropertySignatures(DataType.Task.ast);
268
- const statusProperty = properties.find((p) => p.name === "status");
269
- const statusMeta = SchemaAST.getAnnotation(PropertyMetaAnnotationId)(
270
- // TODO(thure): Typescript asserts `.type` doesn’t have `.types`, but in runtime it does.
271
- statusProperty.type.types[0]
272
- );
273
- const options = statusMeta.value.singleSelect.options;
274
- return options.find(({ id }) => id === status);
275
- };
276
- var TaskCard = ({ subject, role, activeSpace }) => {
277
- var _effect = _useSignals5();
278
- try {
279
- const { title, status } = subject;
280
- const statusOption = getActiveStatusOption(status);
281
- return /* @__PURE__ */ React5.createElement(Card4.SurfaceRoot, {
282
- role
283
- }, /* @__PURE__ */ React5.createElement("div", {
284
- role: "none",
285
- className: mx4("flex items-center gap-2", cardSpacing3)
286
- }, /* @__PURE__ */ React5.createElement(Card4.Heading, {
287
- classNames: [
288
- cardNoSpacing3,
289
- "min-is-0 flex-1 truncate"
290
- ]
291
- }, title), statusOption && /* @__PURE__ */ React5.createElement("span", {
292
- className: "dx-tag",
293
- "data-hue": statusOption.color
294
- }, statusOption.title), /* @__PURE__ */ React5.createElement(CardSubjectMenu, {
295
- subject,
296
- activeSpace
297
- })));
298
- } finally {
299
- _effect.f();
300
- }
301
- };
302
-
303
- // src/capabilities/react-surface.tsx
304
- var react_surface_default = (() => contributes(Capabilities.ReactSurface, [
305
- //
306
- // Specific schema types.
307
- //
308
- createSurface({
309
- id: `${meta.id}/schema-popover--contact`,
310
- role: [
311
- "card--popover",
312
- "card--intrinsic",
313
- "card--transclusion",
314
- "card--extrinsic",
315
- "card"
316
- ],
317
- filter: (data) => Obj3.instanceOf(DataType2.Person, data.subject),
318
- component: ({ data, role }) => {
319
- const { dispatchPromise: dispatch } = useIntentDispatcher2();
320
- const space = getSpace(data.subject);
321
- const activeSpace = useActiveSpace();
322
- const handleOrgClick = useCallback((org) => dispatch(createIntent2(LayoutAction2.Open, {
323
- part: "main",
324
- subject: [
325
- fullyQualifiedId2(org)
326
- ],
327
- options: {
328
- workspace: space?.id
329
- }
330
- })), [
331
- dispatch
332
- ]);
333
- return /* @__PURE__ */ React6.createElement(ContactCard, {
334
- role,
335
- subject: data.subject,
336
- activeSpace,
337
- onOrgClick: handleOrgClick
338
- }, role === "card--popover" && /* @__PURE__ */ React6.createElement(Surface, {
339
- role: "related",
340
- data
341
- }));
342
- }
343
- }),
344
- createSurface({
345
- id: `${meta.id}/schema-popover--organization`,
346
- role: [
347
- "card--popover",
348
- "card--intrinsic",
349
- "card--transclusion",
350
- "card--extrinsic",
351
- "card"
352
- ],
353
- filter: (data) => Obj3.instanceOf(DataType2.Organization, data.subject),
354
- component: ({ data, role }) => {
355
- const activeSpace = useActiveSpace();
356
- return /* @__PURE__ */ React6.createElement(OrganizationCard, {
357
- role,
358
- subject: data.subject,
359
- activeSpace
360
- }, role === "card--popover" && /* @__PURE__ */ React6.createElement(Surface, {
361
- role: "related",
362
- data
363
- }));
364
- }
365
- }),
366
- createSurface({
367
- id: `${meta.id}/schema-popover--project`,
368
- role: [
369
- "card--popover",
370
- "card--intrinsic",
371
- "card--transclusion",
372
- "card--extrinsic",
373
- "card"
374
- ],
375
- filter: (data) => Obj3.instanceOf(DataType2.Project, data.subject),
376
- component: ({ data, role }) => {
377
- const activeSpace = useActiveSpace();
378
- return /* @__PURE__ */ React6.createElement(ProjectCard, {
379
- subject: data.subject,
380
- role,
381
- activeSpace
382
- });
383
- }
384
- }),
385
- createSurface({
386
- id: `${meta.id}/schema-popover--task`,
387
- role: [
388
- "card--popover",
389
- "card--intrinsic",
390
- "card--transclusion",
391
- "card--extrinsic",
392
- "card"
393
- ],
394
- filter: (data) => Obj3.instanceOf(DataType2.Task, data.subject),
395
- component: ({ data, role }) => /* @__PURE__ */ React6.createElement(TaskCard, {
396
- subject: data.subject,
397
- role
398
- })
399
- }),
400
- //
401
- // Fallback for any object.
402
- //
403
- createSurface({
404
- id: `${meta.id}/fallback-popover`,
405
- role: [
406
- "card--popover",
407
- "card--intrinsic",
408
- "card--transclusion",
409
- "card--extrinsic",
410
- "card"
411
- ],
412
- position: "fallback",
413
- filter: (data) => Obj3.isObject(data.subject),
414
- component: ({ data, role }) => {
415
- const schema = getSchema(data.subject);
416
- const { t } = useTranslation2(meta.id);
417
- if (!schema) {
418
- return /* @__PURE__ */ React6.createElement("p", {
419
- className: mx5(descriptionMessage)
420
- }, t("unable to create preview message"));
421
- }
422
- const handleSave = useCallback((values, { changed }) => {
423
- const changedPaths = Object.keys(changed).filter((path) => changed[path]);
424
- for (const path of changedPaths) {
425
- const value = values[path];
426
- setValue(data.subject, path, value);
427
- }
428
- }, []);
429
- return /* @__PURE__ */ React6.createElement(Card5.SurfaceRoot, {
430
- role
431
- }, /* @__PURE__ */ React6.createElement(Form, {
432
- schema,
433
- projection: data.projection,
434
- values: data.subject,
435
- readonly: role === "card--popover" ? "static" : false,
436
- onSave: handleSave,
437
- autoSave: true,
438
- ...role === "card--intrinsic" && {
439
- outerSpacing: "blockStart-0"
440
- }
441
- }));
442
- }
443
- })
444
- ]));
445
- export {
446
- react_surface_default as default
447
- };
448
- //# sourceMappingURL=react-surface-X56QWACK.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/react-surface.tsx", "../../../src/components/ContactCard.tsx", "../../../src/components/CardSubjectMenu.tsx", "../../../src/components/OrganizationCard.tsx", "../../../src/components/ProjectCard.tsx", "../../../src/components/TaskCard.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport {\n Capabilities,\n LayoutAction,\n Surface,\n contributes,\n createIntent,\n createSurface,\n useIntentDispatcher,\n} from '@dxos/app-framework';\nimport { fullyQualifiedId, getSchema, getSpace } from '@dxos/client/echo';\nimport { Obj } from '@dxos/echo';\nimport { type JsonPath, setValue } from '@dxos/echo/internal';\nimport { useActiveSpace } from '@dxos/plugin-space';\nimport { useTranslation } from '@dxos/react-ui';\nimport { Form } from '@dxos/react-ui-form';\nimport { Card } from '@dxos/react-ui-stack';\nimport { descriptionMessage, mx } from '@dxos/react-ui-theme';\nimport { DataType, type ProjectionModel } from '@dxos/schema';\n\nimport { ContactCard, OrganizationCard, ProjectCard } from '../components';\nimport { TaskCard } from '../components/TaskCard';\nimport { meta } from '../meta';\n\nexport default () =>\n contributes(Capabilities.ReactSurface, [\n //\n // Specific schema types.\n //\n createSurface({\n id: `${meta.id}/schema-popover--contact`,\n role: ['card--popover', 'card--intrinsic', 'card--transclusion', 'card--extrinsic', 'card'],\n filter: (data): data is { subject: DataType.Person } => Obj.instanceOf(DataType.Person, data.subject),\n component: ({ data, role }) => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const space = getSpace(data.subject);\n const activeSpace = useActiveSpace();\n const handleOrgClick = useCallback(\n (org: DataType.Organization) =>\n dispatch(\n createIntent(LayoutAction.Open, {\n part: 'main',\n subject: [fullyQualifiedId(org)],\n options: {\n workspace: space?.id,\n },\n }),\n ),\n [dispatch],\n );\n\n return (\n <ContactCard role={role} subject={data.subject} activeSpace={activeSpace} onOrgClick={handleOrgClick}>\n {role === 'card--popover' && <Surface role='related' data={data} />}\n </ContactCard>\n );\n },\n }),\n createSurface({\n id: `${meta.id}/schema-popover--organization`,\n role: ['card--popover', 'card--intrinsic', 'card--transclusion', 'card--extrinsic', 'card'],\n filter: (data): data is { subject: DataType.Organization } => Obj.instanceOf(DataType.Organization, data.subject),\n component: ({ data, role }) => {\n const activeSpace = useActiveSpace();\n\n return (\n <OrganizationCard role={role} subject={data.subject} activeSpace={activeSpace}>\n {role === 'card--popover' && <Surface role='related' data={data} />}\n </OrganizationCard>\n );\n },\n }),\n createSurface({\n id: `${meta.id}/schema-popover--project`,\n role: ['card--popover', 'card--intrinsic', 'card--transclusion', 'card--extrinsic', 'card'],\n filter: (data): data is { subject: DataType.Project } => Obj.instanceOf(DataType.Project, data.subject),\n component: ({ data, role }) => {\n const activeSpace = useActiveSpace();\n\n return <ProjectCard subject={data.subject} role={role} activeSpace={activeSpace} />;\n },\n }),\n createSurface({\n id: `${meta.id}/schema-popover--task`,\n role: ['card--popover', 'card--intrinsic', 'card--transclusion', 'card--extrinsic', 'card'],\n filter: (data): data is { subject: DataType.Task } => Obj.instanceOf(DataType.Task, data.subject),\n component: ({ data, role }) => <TaskCard subject={data.subject} role={role} />,\n }),\n\n //\n // Fallback for any object.\n //\n createSurface({\n id: `${meta.id}/fallback-popover`,\n role: ['card--popover', 'card--intrinsic', 'card--transclusion', 'card--extrinsic', 'card'],\n position: 'fallback',\n filter: (data): data is { subject: Obj.Any; projection?: ProjectionModel } => Obj.isObject(data.subject),\n component: ({ data, role }) => {\n const schema = getSchema(data.subject);\n const { t } = useTranslation(meta.id);\n if (!schema) {\n // TODO(burdon): Use Alert.\n return <p className={mx(descriptionMessage)}>{t('unable to create preview message')}</p>;\n }\n\n const handleSave = useCallback((values: any, { changed }: { changed: Record<string, boolean> }) => {\n const changedPaths = Object.keys(changed).filter((path) => changed[path]);\n for (const path of changedPaths) {\n const value = values[path];\n setValue(data.subject, path as JsonPath, value);\n }\n }, []);\n\n return (\n <Card.SurfaceRoot role={role}>\n <Form\n schema={schema}\n projection={data.projection}\n values={data.subject}\n readonly={role === 'card--popover' ? 'static' : false}\n onSave={handleSave}\n autoSave\n {...(role === 'card--intrinsic' && { outerSpacing: 'blockStart-0' })}\n />\n </Card.SurfaceRoot>\n );\n },\n }),\n ]);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { Fragment } from 'react';\n\nimport { Avatar, Button, Icon } from '@dxos/react-ui';\nimport { Card, cardHeading, cardText } from '@dxos/react-ui-stack';\nimport { mx } from '@dxos/react-ui-theme';\nimport { type DataType } from '@dxos/schema';\n\nimport { type PreviewProps } from '../types';\n\nimport { CardSubjectMenu } from './CardSubjectMenu';\n\nexport const ContactCard = ({\n children,\n subject,\n activeSpace,\n onOrgClick,\n role,\n}: PreviewProps<DataType.Person> & { onOrgClick?: (org: DataType.Organization) => void }) => {\n const { fullName, image, organization, emails } = subject;\n const organizationName = organization && typeof organization === 'object' ? organization.target?.name : organization;\n return (\n <Card.SurfaceRoot role={role}>\n <Avatar.Root>\n <Card.Text role='group' classNames='grid gap-3 grid-cols-[min-content_1fr]'>\n <Avatar.Content imgSrc={image} icon='ph--user--regular' size={16} hue='neutral' />\n <div role='none' className='bs-min self-center flex items-center'>\n <Avatar.Label asChild>\n <h2 className={mx(cardHeading, 'grow')}>{fullName}</h2>\n </Avatar.Label>\n <CardSubjectMenu subject={subject} activeSpace={activeSpace} />\n </div>\n </Card.Text>\n </Avatar.Root>\n {organizationName && (\n <Card.Chrome>\n {typeof organization === 'object' && onOrgClick ? (\n <Button variant='ghost' classNames='gap-2 text-start' onClick={() => onOrgClick(organization.target!)}>\n <Icon icon='ph--buildings--regular' size={5} classNames='text-subdued' />\n <span className='min-is-0 flex-1 truncate'>{organizationName}</span>\n <Icon icon='ph--arrow-right--regular' />\n </Button>\n ) : (\n <p className='dx-button gap-2' data-variant='ghost'>\n <Icon icon='ph--buildings--regular' size={5} classNames='text-subdued' />\n <span className='min-is-0 flex-1 truncate'>{organizationName}</span>\n </p>\n )}\n </Card.Chrome>\n )}\n {emails?.length && (\n <dl\n className={mx(\n cardText,\n 'grid gap-2 grid-cols-[min-content_1fr] [&_dt]:text-subdued [&_dt]:pbs-0.5 [&_dd]:min-is-0',\n )}\n >\n {emails?.length &&\n emails.map(({ label, value }) => (\n <Fragment key={value}>\n <dt>\n <span className='sr-only'>{label}</span>\n <Icon icon='ph--at--regular' size={5} />\n </dt>\n <dd key={value} className='break-words'>\n {value}\n </dd>\n </Fragment>\n ))}\n </dl>\n )}\n {children}\n </Card.SurfaceRoot>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Rx } from '@effect-rx/rx-react';\nimport React from 'react';\n\nimport { LayoutAction, createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { ACTION_TYPE } from '@dxos/app-graph';\nimport { Obj } from '@dxos/echo';\nimport { SpaceAction } from '@dxos/plugin-space/types';\nimport { type Space, fullyQualifiedId } from '@dxos/react-client/echo';\nimport { IconButton, type IconButtonProps, useTranslation } from '@dxos/react-ui';\nimport { type ActionGraphProps, DropdownMenu, MenuProvider, useMenuActions } from '@dxos/react-ui-menu';\n\nimport { meta } from '../meta';\n\nconst useSubjectMenuGroupItems = (subject: Obj.Any, activeSpace?: Space) => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const result: ActionGraphProps = { edges: [], nodes: [] };\n\n result.nodes.push({\n type: ACTION_TYPE,\n id: `${subject.id}/open`,\n data: () => dispatch(createIntent(LayoutAction.Open, { part: 'main', subject: [fullyQualifiedId(subject)] })),\n properties: {\n label: ['open object label', { ns: meta.id }],\n icon: 'ph--arrow-right--regular',\n },\n });\n\n if (activeSpace && Obj.getDXN(subject).asQueueDXN()) {\n result.nodes.push({\n type: ACTION_TYPE,\n id: `${subject.id}/add-to-space`,\n // TODO(wittjosiah): Update reference to point to db object when adding?\n data: () => dispatch(createIntent(SpaceAction.AddObject, { object: subject, target: activeSpace, hidden: true })),\n properties: {\n label: ['add object to space label', { ns: meta.id }],\n icon: 'ph--file-plus--regular',\n },\n });\n }\n\n result.nodes.forEach(({ id: target }) => {\n result.edges.push({ source: 'root', target });\n });\n\n return useMenuActions(Rx.make(result));\n};\n\n/**\n * This is a generic menu for objects that tries to infer common actions.\n */\nexport const CardSubjectMenu = ({\n subject,\n activeSpace,\n ...props\n}: Omit<IconButtonProps, 'icon' | 'label'> & { subject: Obj.Any; activeSpace?: Space }) => {\n const { t } = useTranslation(meta.id);\n const menuProps = useSubjectMenuGroupItems(subject, activeSpace);\n\n if (!activeSpace) {\n return null;\n }\n\n return (\n <MenuProvider {...menuProps}>\n <DropdownMenu.Root>\n <DropdownMenu.Trigger asChild>\n <IconButton\n iconOnly\n variant='ghost'\n icon='ph--dots-three-vertical--bold'\n label={t('more options label')}\n {...props}\n />\n </DropdownMenu.Trigger>\n </DropdownMenu.Root>\n </MenuProvider>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Icon } from '@dxos/react-ui';\nimport { Card, cardNoSpacing, cardSpacing } from '@dxos/react-ui-stack';\nimport { mx } from '@dxos/react-ui-theme';\nimport { type DataType } from '@dxos/schema';\n\nimport { type PreviewProps } from '../types';\n\nimport { CardSubjectMenu } from './CardSubjectMenu';\n\nexport const OrganizationCard = ({ children, subject, role, activeSpace }: PreviewProps<DataType.Organization>) => {\n const { name, image, description, website } = subject;\n return (\n <Card.SurfaceRoot role={role}>\n <Card.Poster alt={name!} {...(image ? { image } : { icon: 'ph--building-office--regular' })} />\n <div role='none' className={mx('flex items-center gap-2', cardSpacing)}>\n <Card.Heading classNames={cardNoSpacing}>{name}</Card.Heading>\n <CardSubjectMenu subject={subject} activeSpace={activeSpace} />\n </div>\n {description && <Card.Text classNames='line-clamp-2'>{description}</Card.Text>}\n {website && (\n <Card.Chrome>\n <a\n className='dx-button dx-focus-ring gap-2'\n data-variant='ghost'\n href={website}\n target='_blank'\n rel='noreferrer'\n >\n <Icon icon='ph--link--regular' size={5} classNames='text-subdued' />\n <span className='min-is-0 flex-1 truncate'>{website}</span>\n <Icon icon='ph--arrow-square-out--regular' />\n </a>\n </Card.Chrome>\n )}\n {children}\n </Card.SurfaceRoot>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Obj } from '@dxos/echo';\nimport { Card, cardNoSpacing, cardSpacing } from '@dxos/react-ui-stack';\nimport { mx } from '@dxos/react-ui-theme';\nimport { type DataType } from '@dxos/schema';\n\nimport { type PreviewProps } from '../types';\n\nimport { CardSubjectMenu } from './CardSubjectMenu';\n\nexport const ProjectCard = ({ subject, role, activeSpace }: PreviewProps<DataType.Project>) => {\n const { name, image, description } = subject;\n return (\n <Card.SurfaceRoot role={role}>\n {image && <Card.Poster image={image} alt={Obj.getLabel(subject) ?? ''} aspect='auto' />}\n <div role='none' className={mx('flex items-center gap-2', cardSpacing)}>\n <Card.Heading classNames={cardNoSpacing}>{name}</Card.Heading>\n <CardSubjectMenu subject={subject} activeSpace={activeSpace} />\n </div>\n {description && <Card.Text classNames='line-clamp-2'>{description}</Card.Text>}\n </Card.SurfaceRoot>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as SchemaAST from 'effect/SchemaAST';\nimport React from 'react';\n\nimport { type PropertyMetaAnnotation, PropertyMetaAnnotationId } from '@dxos/echo/internal';\nimport { Card, cardNoSpacing, cardSpacing } from '@dxos/react-ui-stack';\nimport { mx } from '@dxos/react-ui-theme';\nimport { DataType } from '@dxos/schema';\n\nimport { type PreviewProps } from '../types';\n\nimport { CardSubjectMenu } from './CardSubjectMenu';\n\n// TODO(thure): Should this move upstream as a helper? Is there an easier way to get options?\nconst getActiveStatusOption = (status?: string) => {\n const properties = SchemaAST.getPropertySignatures(DataType.Task.ast);\n const statusProperty = properties.find((p) => p.name === 'status');\n const statusMeta = SchemaAST.getAnnotation<PropertyMetaAnnotation>(PropertyMetaAnnotationId)(\n // TODO(thure): Typescript asserts `.type` doesn’t have `.types`, but in runtime it does.\n (statusProperty!.type as any).types[0],\n );\n const options = // TODO(thure): Typescript asserts `statusMeta` doesn’t have `.value`, but in runtime it does.\n (statusMeta as any).value.singleSelect.options as { id: string; title: string; color: string }[];\n return options.find(({ id }) => id === status);\n};\n\nexport const TaskCard = ({ subject, role, activeSpace }: PreviewProps<DataType.Task>) => {\n const { title, status } = subject;\n const statusOption = getActiveStatusOption(status);\n return (\n <Card.SurfaceRoot role={role}>\n <div role='none' className={mx('flex items-center gap-2', cardSpacing)}>\n <Card.Heading classNames={[cardNoSpacing, 'min-is-0 flex-1 truncate']}>{title}</Card.Heading>\n {statusOption && (\n <span className='dx-tag' data-hue={statusOption.color}>\n {statusOption.title}\n </span>\n )}\n <CardSubjectMenu subject={subject} activeSpace={activeSpace} />\n </div>\n </Card.SurfaceRoot>\n );\n};\n"],
5
- "mappings": "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",
6
- "names": ["React", "useCallback", "Capabilities", "LayoutAction", "Surface", "contributes", "createIntent", "createSurface", "useIntentDispatcher", "fullyQualifiedId", "getSchema", "getSpace", "Obj", "setValue", "useActiveSpace", "useTranslation", "Form", "Card", "descriptionMessage", "mx", "DataType", "React", "Fragment", "Avatar", "Button", "Icon", "Card", "cardHeading", "cardText", "mx", "Rx", "React", "LayoutAction", "createIntent", "useIntentDispatcher", "ACTION_TYPE", "Obj", "SpaceAction", "fullyQualifiedId", "IconButton", "useTranslation", "DropdownMenu", "MenuProvider", "useMenuActions", "useSubjectMenuGroupItems", "subject", "activeSpace", "dispatchPromise", "dispatch", "useIntentDispatcher", "result", "edges", "nodes", "push", "type", "ACTION_TYPE", "id", "data", "createIntent", "LayoutAction", "Open", "part", "fullyQualifiedId", "properties", "label", "ns", "meta", "icon", "Obj", "getDXN", "asQueueDXN", "SpaceAction", "AddObject", "object", "target", "hidden", "forEach", "source", "useMenuActions", "Rx", "make", "CardSubjectMenu", "props", "t", "useTranslation", "menuProps", "MenuProvider", "DropdownMenu", "Root", "Trigger", "asChild", "IconButton", "iconOnly", "variant", "ContactCard", "children", "subject", "activeSpace", "onOrgClick", "role", "fullName", "image", "organization", "emails", "organizationName", "target", "name", "React", "Card", "SurfaceRoot", "Avatar", "Root", "Text", "classNames", "Content", "imgSrc", "icon", "size", "hue", "div", "className", "Label", "asChild", "h2", "mx", "cardHeading", "CardSubjectMenu", "Chrome", "Button", "variant", "onClick", "Icon", "span", "p", "data-variant", "length", "dl", "cardText", "map", "label", "value", "Fragment", "key", "dt", "dd", "React", "Icon", "Card", "cardNoSpacing", "cardSpacing", "mx", "OrganizationCard", "children", "subject", "role", "activeSpace", "name", "image", "description", "website", "React", "Card", "SurfaceRoot", "Poster", "alt", "icon", "div", "className", "mx", "cardSpacing", "Heading", "classNames", "cardNoSpacing", "CardSubjectMenu", "Text", "Chrome", "a", "data-variant", "href", "target", "rel", "Icon", "size", "span", "React", "Obj", "Card", "cardNoSpacing", "cardSpacing", "mx", "ProjectCard", "subject", "role", "activeSpace", "name", "image", "description", "React", "Card", "SurfaceRoot", "Poster", "alt", "Obj", "getLabel", "aspect", "div", "className", "mx", "cardSpacing", "Heading", "classNames", "cardNoSpacing", "CardSubjectMenu", "Text", "SchemaAST", "React", "PropertyMetaAnnotationId", "Card", "cardNoSpacing", "cardSpacing", "mx", "DataType", "getActiveStatusOption", "status", "properties", "getPropertySignatures", "DataType", "Task", "ast", "statusProperty", "find", "p", "name", "statusMeta", "getAnnotation", "PropertyMetaAnnotationId", "type", "types", "options", "value", "singleSelect", "id", "TaskCard", "subject", "role", "activeSpace", "title", "statusOption", "React", "Card", "SurfaceRoot", "div", "className", "mx", "cardSpacing", "Heading", "classNames", "cardNoSpacing", "span", "data-hue", "color", "CardSubjectMenu", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "meta", "role", "filter", "data", "Obj", "instanceOf", "DataType", "Person", "subject", "component", "dispatchPromise", "dispatch", "useIntentDispatcher", "space", "getSpace", "activeSpace", "useActiveSpace", "handleOrgClick", "useCallback", "org", "createIntent", "LayoutAction", "Open", "part", "fullyQualifiedId", "options", "workspace", "React", "ContactCard", "onOrgClick", "Surface", "Organization", "OrganizationCard", "Project", "ProjectCard", "Task", "TaskCard", "position", "isObject", "schema", "getSchema", "t", "useTranslation", "p", "className", "mx", "descriptionMessage", "handleSave", "values", "changed", "changedPaths", "Object", "keys", "path", "value", "setValue", "Card", "SurfaceRoot", "Form", "projection", "readonly", "onSave", "autoSave", "outerSpacing"]
7
- }
@@ -1,14 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
-
3
- // src/meta.ts
4
- var meta = {
5
- id: "dxos.org/plugin/preview",
6
- name: "Preview",
7
- icon: "ph--eye--regular",
8
- source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-preview"
9
- };
10
-
11
- export {
12
- meta
13
- };
14
- //# sourceMappingURL=chunk-L3IZVX56.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/meta.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\n\nexport const meta: PluginMeta = {\n id: 'dxos.org/plugin/preview',\n name: 'Preview',\n icon: 'ph--eye--regular',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-preview',\n};\n"],
5
- "mappings": ";;;AAMO,IAAMA,OAAmB;EAC9BC,IAAI;EACJC,MAAM;EACNC,MAAM;EACNC,QAAQ;AACV;",
6
- "names": ["meta", "id", "name", "icon", "source"]
7
- }
@@ -1,67 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
-
3
- // src/capabilities/preview-popover.ts
4
- import { Capabilities, LayoutAction, contributes, createIntent } from "@dxos/app-framework";
5
- import { addEventListener } from "@dxos/async";
6
- import { parseId } from "@dxos/client/echo";
7
- import { DXN } from "@dxos/keys";
8
- import { log } from "@dxos/log";
9
- import { ClientCapabilities } from "@dxos/plugin-client";
10
- import { DX_ANCHOR_ACTIVATE } from "@dxos/react-ui";
11
- var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-preview/src/capabilities/preview-popover.ts";
12
- var customEventOptions = {
13
- capture: true,
14
- passive: false
15
- };
16
- var handlePreviewLookup = async (client, defaultSpace, { ref, label }) => {
17
- try {
18
- const object = await defaultSpace.db.ref(DXN.parse(ref)).load();
19
- return {
20
- label,
21
- object
22
- };
23
- } catch {
24
- return null;
25
- }
26
- };
27
- var preview_popover_default = ((context) => {
28
- const handleDxAnchorActivate = async ({ refId, label, trigger }) => {
29
- const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);
30
- const client = context.getCapability(ClientCapabilities.Client);
31
- const [layout] = context.getCapabilities(Capabilities.Layout);
32
- const { spaceId } = parseId(layout.workspace);
33
- const space = (spaceId && client.spaces.get(spaceId)) ?? client.spaces.default;
34
- const result = await handlePreviewLookup(client, space, {
35
- ref: refId,
36
- label
37
- });
38
- if (!result) {
39
- return;
40
- }
41
- await dispatch(createIntent(LayoutAction.UpdatePopover, {
42
- part: "popover",
43
- subject: result.object,
44
- options: {
45
- state: true,
46
- variant: "virtual",
47
- anchor: trigger
48
- }
49
- }));
50
- };
51
- let cleanup;
52
- if (document.defaultView) {
53
- cleanup = addEventListener(document.defaultView, DX_ANCHOR_ACTIVATE, handleDxAnchorActivate, customEventOptions);
54
- } else {
55
- log.warn("No default view found", void 0, {
56
- F: __dxlog_file,
57
- L: 65,
58
- S: void 0,
59
- C: (f, a) => f(...a)
60
- });
61
- }
62
- return contributes(Capabilities.Null, null, () => cleanup());
63
- });
64
- export {
65
- preview_popover_default as default
66
- };
67
- //# sourceMappingURL=preview-popover-TZKX67EY.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/preview-popover.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, LayoutAction, type PluginContext, contributes, createIntent } from '@dxos/app-framework';\nimport { addEventListener } from '@dxos/async';\nimport { type Client } from '@dxos/client';\nimport { type Space, parseId } from '@dxos/client/echo';\nimport { DXN } from '@dxos/keys';\nimport { log } from '@dxos/log';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { DX_ANCHOR_ACTIVATE, type DxAnchorActivate } from '@dxos/react-ui';\nimport { type PreviewLinkRef, type PreviewLinkTarget } from '@dxos/react-ui-editor';\n\nconst customEventOptions = { capture: true, passive: false };\n\nconst handlePreviewLookup = async (\n client: Client,\n defaultSpace: Space,\n { ref, label }: PreviewLinkRef,\n): Promise<PreviewLinkTarget | null> => {\n try {\n const object = await defaultSpace.db.ref(DXN.parse(ref)).load();\n return { label, object };\n } catch {\n return null;\n }\n};\n\nexport default (context: PluginContext) => {\n // TODO(wittjosiah): Factor out lookup handlers to other plugins to make not ECHO-specific.\n const handleDxAnchorActivate = async ({ refId, label, trigger }: DxAnchorActivate) => {\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const client = context.getCapability(ClientCapabilities.Client);\n const [layout] = context.getCapabilities(Capabilities.Layout);\n const { spaceId } = parseId(layout.workspace);\n const space = (spaceId && client.spaces.get(spaceId)) ?? client.spaces.default;\n const result = await handlePreviewLookup(client, space, { ref: refId, label });\n if (!result) {\n return;\n }\n\n await dispatch(\n createIntent(LayoutAction.UpdatePopover, {\n part: 'popover',\n subject: result.object,\n options: {\n state: true,\n variant: 'virtual',\n anchor: trigger,\n },\n }),\n );\n };\n\n let cleanup: () => void;\n if (document.defaultView) {\n cleanup = addEventListener(\n document.defaultView,\n DX_ANCHOR_ACTIVATE as any,\n handleDxAnchorActivate,\n customEventOptions,\n );\n } else {\n log.warn('No default view found');\n }\n\n return contributes(Capabilities.Null, null, () => cleanup());\n};\n"],
5
- "mappings": ";;;AAIA,SAASA,cAAcC,cAAkCC,aAAaC,oBAAoB;AAC1F,SAASC,wBAAwB;AAEjC,SAAqBC,eAAe;AACpC,SAASC,WAAW;AACpB,SAASC,WAAW;AACpB,SAASC,0BAA0B;AACnC,SAASC,0BAAiD;;AAG1D,IAAMC,qBAAqB;EAAEC,SAAS;EAAMC,SAAS;AAAM;AAE3D,IAAMC,sBAAsB,OAC1BC,QACAC,cACA,EAAEC,KAAKC,MAAK,MAAkB;AAE9B,MAAI;AACF,UAAMC,SAAS,MAAMH,aAAaI,GAAGH,IAAIV,IAAIc,MAAMJ,GAAAA,CAAAA,EAAMK,KAAI;AAC7D,WAAO;MAAEJ;MAAOC;IAAO;EACzB,QAAQ;AACN,WAAO;EACT;AACF;AAEA,IAAA,2BAAe,CAACI,YAAAA;AAEd,QAAMC,yBAAyB,OAAO,EAAEC,OAAOP,OAAOQ,QAAO,MAAoB;AAC/E,UAAM,EAAEC,iBAAiBC,SAAQ,IAAKL,QAAQM,cAAc5B,aAAa6B,gBAAgB;AACzF,UAAMf,SAASQ,QAAQM,cAAcpB,mBAAmBsB,MAAM;AAC9D,UAAM,CAACC,MAAAA,IAAUT,QAAQU,gBAAgBhC,aAAaiC,MAAM;AAC5D,UAAM,EAAEC,QAAO,IAAK7B,QAAQ0B,OAAOI,SAAS;AAC5C,UAAMC,SAASF,WAAWpB,OAAOuB,OAAOC,IAAIJ,OAAAA,MAAapB,OAAOuB,OAAOE;AACvE,UAAMC,SAAS,MAAM3B,oBAAoBC,QAAQsB,OAAO;MAAEpB,KAAKQ;MAAOP;IAAM,CAAA;AAC5E,QAAI,CAACuB,QAAQ;AACX;IACF;AAEA,UAAMb,SACJxB,aAAaF,aAAawC,eAAe;MACvCC,MAAM;MACNC,SAASH,OAAOtB;MAChB0B,SAAS;QACPC,OAAO;QACPC,SAAS;QACTC,QAAQtB;MACV;IACF,CAAA,CAAA;EAEJ;AAEA,MAAIuB;AACJ,MAAIC,SAASC,aAAa;AACxBF,cAAU5C,iBACR6C,SAASC,aACTzC,oBACAc,wBACAb,kBAAAA;EAEJ,OAAO;AACLH,QAAI4C,KAAK,yBAAA,QAAA;;;;;;EACX;AAEA,SAAOjD,YAAYF,aAAaoD,MAAM,MAAM,MAAMJ,QAAAA,CAAAA;AACpD;",
6
- "names": ["Capabilities", "LayoutAction", "contributes", "createIntent", "addEventListener", "parseId", "DXN", "log", "ClientCapabilities", "DX_ANCHOR_ACTIVATE", "customEventOptions", "capture", "passive", "handlePreviewLookup", "client", "defaultSpace", "ref", "label", "object", "db", "parse", "load", "context", "handleDxAnchorActivate", "refId", "trigger", "dispatchPromise", "dispatch", "getCapability", "IntentDispatcher", "Client", "layout", "getCapabilities", "Layout", "spaceId", "workspace", "space", "spaces", "get", "default", "result", "UpdatePopover", "part", "subject", "options", "state", "variant", "anchor", "cleanup", "document", "defaultView", "warn", "Null"]
7
- }