@dxos/plugin-preview 0.8.4-main.c1de068 → 0.8.4-main.dedc0f3

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 (67) hide show
  1. package/dist/lib/browser/index.mjs +6 -3
  2. package/dist/lib/browser/index.mjs.map +2 -2
  3. package/dist/lib/browser/meta.json +1 -1
  4. package/dist/lib/browser/{preview-popover-2UCEZUQW.mjs → preview-popover-HC6LHWXZ.mjs} +5 -10
  5. package/dist/lib/browser/preview-popover-HC6LHWXZ.mjs.map +7 -0
  6. package/dist/lib/browser/{react-surface-CZMUEWPV.mjs → react-surface-JGO43GLE.mjs} +146 -68
  7. package/dist/lib/browser/react-surface-JGO43GLE.mjs.map +7 -0
  8. package/dist/lib/node-esm/index.mjs +6 -3
  9. package/dist/lib/node-esm/index.mjs.map +2 -2
  10. package/dist/lib/node-esm/meta.json +1 -1
  11. package/dist/lib/node-esm/{preview-popover-OSHWR2YE.mjs → preview-popover-ROGTBCTT.mjs} +5 -10
  12. package/dist/lib/node-esm/preview-popover-ROGTBCTT.mjs.map +7 -0
  13. package/dist/lib/node-esm/{react-surface-IPZBISWS.mjs → react-surface-Q7F36L3Z.mjs} +146 -68
  14. package/dist/lib/node-esm/react-surface-Q7F36L3Z.mjs.map +7 -0
  15. package/dist/types/src/capabilities/index.d.ts +2 -2
  16. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  17. package/dist/types/src/capabilities/preview-popover.d.ts +1 -1
  18. package/dist/types/src/capabilities/preview-popover.d.ts.map +1 -1
  19. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  20. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  21. package/dist/types/src/components/CardSubjectMenu.d.ts +10 -0
  22. package/dist/types/src/components/CardSubjectMenu.d.ts.map +1 -0
  23. package/dist/types/src/components/ContactCard.d.ts +1 -1
  24. package/dist/types/src/components/ContactCard.d.ts.map +1 -1
  25. package/dist/types/src/components/OrganizationCard.d.ts +1 -1
  26. package/dist/types/src/components/OrganizationCard.d.ts.map +1 -1
  27. package/dist/types/src/components/ProjectCard.d.ts +1 -1
  28. package/dist/types/src/components/ProjectCard.d.ts.map +1 -1
  29. package/dist/types/src/components/TaskCard.d.ts +5 -0
  30. package/dist/types/src/components/TaskCard.d.ts.map +1 -0
  31. package/dist/types/src/stories/Card.stories.d.ts +27 -0
  32. package/dist/types/src/stories/Card.stories.d.ts.map +1 -0
  33. package/dist/types/src/stories/testing.d.ts +17 -0
  34. package/dist/types/src/stories/testing.d.ts.map +1 -0
  35. package/dist/types/src/translations.d.ts +3 -0
  36. package/dist/types/src/translations.d.ts.map +1 -1
  37. package/dist/types/src/types.d.ts +2 -1
  38. package/dist/types/src/types.d.ts.map +1 -1
  39. package/dist/types/tsconfig.tsbuildinfo +1 -1
  40. package/package.json +29 -25
  41. package/src/capabilities/preview-popover.ts +8 -13
  42. package/src/capabilities/react-surface.tsx +9 -8
  43. package/src/components/CardSubjectMenu.tsx +56 -0
  44. package/src/components/ContactCard.tsx +28 -22
  45. package/src/components/OrganizationCard.tsx +10 -7
  46. package/src/components/ProjectCard.tsx +12 -4
  47. package/src/components/TaskCard.tsx +46 -0
  48. package/src/stories/Card.stories.tsx +59 -0
  49. package/src/stories/testing.tsx +114 -0
  50. package/src/translations.ts +3 -0
  51. package/src/types.ts +2 -2
  52. package/dist/lib/browser/preview-popover-2UCEZUQW.mjs.map +0 -7
  53. package/dist/lib/browser/react-surface-CZMUEWPV.mjs.map +0 -7
  54. package/dist/lib/node-esm/preview-popover-OSHWR2YE.mjs.map +0 -7
  55. package/dist/lib/node-esm/react-surface-IPZBISWS.mjs.map +0 -7
  56. package/dist/types/src/testing/ExtrinsicPreviews.stories.d.ts +0 -35
  57. package/dist/types/src/testing/ExtrinsicPreviews.stories.d.ts.map +0 -1
  58. package/dist/types/src/testing/IntrinsicPreviews.stories.d.ts +0 -35
  59. package/dist/types/src/testing/IntrinsicPreviews.stories.d.ts.map +0 -1
  60. package/dist/types/src/testing/PopoverPreviews.stories.d.ts +0 -35
  61. package/dist/types/src/testing/PopoverPreviews.stories.d.ts.map +0 -1
  62. package/dist/types/src/testing/util.d.ts +0 -80
  63. package/dist/types/src/testing/util.d.ts.map +0 -1
  64. package/src/testing/ExtrinsicPreviews.stories.tsx +0 -55
  65. package/src/testing/IntrinsicPreviews.stories.tsx +0 -55
  66. package/src/testing/PopoverPreviews.stories.tsx +0 -55
  67. package/src/testing/util.tsx +0 -79
@@ -5,77 +5,135 @@ import {
5
5
 
6
6
  // src/capabilities/react-surface.tsx
7
7
  import { Effect } from "effect";
8
- import React4, { useCallback } from "react";
8
+ import React5, { useCallback } from "react";
9
9
  import { Capabilities, LayoutAction, Surface, contributes, createIntent, createSurface, useIntentDispatcher } from "@dxos/app-framework";
10
10
  import { fullyQualifiedId, getSchema, getSpace } from "@dxos/client/echo";
11
- import { Filter, Obj } from "@dxos/echo";
11
+ import { Filter, Obj as Obj2 } from "@dxos/echo";
12
12
  import { setValue } from "@dxos/echo-schema";
13
13
  import { AttentionAction } from "@dxos/plugin-attention/types";
14
14
  import { ATTENDABLE_PATH_SEPARATOR, DeckAction } from "@dxos/plugin-deck/types";
15
15
  import { useQuery, useSpace } from "@dxos/react-client/echo";
16
- import { useTranslation } from "@dxos/react-ui";
16
+ import { useTranslation as useTranslation2 } from "@dxos/react-ui";
17
17
  import { Form } from "@dxos/react-ui-form";
18
18
  import { Card as Card4 } from "@dxos/react-ui-stack";
19
- import { TableView } from "@dxos/react-ui-table/types";
20
- import { descriptionMessage, mx as mx2 } from "@dxos/react-ui-theme";
21
- import { DataType } from "@dxos/schema";
19
+ import { Table } from "@dxos/react-ui-table/types";
20
+ import { descriptionMessage, mx as mx4 } from "@dxos/react-ui-theme";
21
+ import { DataType, typenameFromQuery } from "@dxos/schema";
22
22
 
23
23
  // src/components/ContactCard.tsx
24
- import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
25
- import React, { Fragment } from "react";
26
- import { Icon, Avatar, Button } from "@dxos/react-ui";
24
+ import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
25
+ import React2, { Fragment } from "react";
26
+ import { Avatar, Button, Icon } from "@dxos/react-ui";
27
27
  import { Card, cardHeading, cardText } from "@dxos/react-ui-stack";
28
28
  import { mx } from "@dxos/react-ui-theme";
29
- var ContactCard = ({ children, subject: { fullName, image, organization, emails }, onOrgClick, role }) => {
29
+
30
+ // src/components/CardSubjectMenu.tsx
31
+ import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
32
+ import { Rx } from "@effect-rx/rx-react";
33
+ import React from "react";
34
+ import { ACTION_TYPE } from "@dxos/app-graph";
35
+ import { IconButton, useTranslation } from "@dxos/react-ui";
36
+ import { DropdownMenu, MenuProvider, useMenuActions } from "@dxos/react-ui-menu";
37
+ var useSubjectMenuGroupItems = (subject) => {
38
+ const result = {
39
+ edges: [],
40
+ nodes: []
41
+ };
42
+ result.nodes.push({
43
+ type: ACTION_TYPE,
44
+ id: `${subject.id}/add-to-space`,
45
+ data: () => console.log("[TO DO]", "add object to space", subject),
46
+ properties: {
47
+ label: [
48
+ "add object to space label",
49
+ {
50
+ ns: "os"
51
+ }
52
+ ],
53
+ icon: "ph--file-plus--regular"
54
+ }
55
+ });
56
+ result.nodes.forEach(({ id: target }) => {
57
+ result.edges.push({
58
+ source: "root",
59
+ target
60
+ });
61
+ });
62
+ return useMenuActions(Rx.make(result));
63
+ };
64
+ var CardSubjectMenu = ({ subject, ...props }) => {
30
65
  var _effect = _useSignals();
31
66
  try {
67
+ const { t } = useTranslation("os");
68
+ const menuProps = useSubjectMenuGroupItems(subject);
69
+ return /* @__PURE__ */ React.createElement(MenuProvider, menuProps, /* @__PURE__ */ React.createElement(DropdownMenu.Root, null, /* @__PURE__ */ React.createElement(DropdownMenu.Trigger, {
70
+ asChild: true
71
+ }, /* @__PURE__ */ React.createElement(IconButton, {
72
+ iconOnly: true,
73
+ variant: "ghost",
74
+ icon: "ph--dots-three-vertical--bold",
75
+ label: t("more options label"),
76
+ ...props
77
+ }))));
78
+ } finally {
79
+ _effect.f();
80
+ }
81
+ };
82
+
83
+ // src/components/ContactCard.tsx
84
+ var ContactCard = ({ children, subject, onOrgClick, role }) => {
85
+ var _effect = _useSignals2();
86
+ try {
87
+ const { fullName, image, organization, emails } = subject;
32
88
  const organizationName = organization && typeof organization === "object" ? organization.target?.name : organization;
33
- return /* @__PURE__ */ React.createElement(Card.SurfaceRoot, {
89
+ return /* @__PURE__ */ React2.createElement(Card.SurfaceRoot, {
34
90
  role
35
- }, /* @__PURE__ */ React.createElement(Avatar.Root, null, /* @__PURE__ */ React.createElement(Card.Text, {
91
+ }, /* @__PURE__ */ React2.createElement(Avatar.Root, null, /* @__PURE__ */ React2.createElement(Card.Text, {
36
92
  role: "group",
37
93
  classNames: "grid gap-3 grid-cols-[min-content_1fr]"
38
- }, /* @__PURE__ */ React.createElement(Avatar.Content, {
94
+ }, /* @__PURE__ */ React2.createElement(Avatar.Content, {
39
95
  imgSrc: image,
40
96
  icon: "ph--user--regular",
41
97
  size: 16,
42
98
  hue: "neutral"
43
- }), /* @__PURE__ */ React.createElement("div", {
99
+ }), /* @__PURE__ */ React2.createElement("div", {
44
100
  role: "none",
45
- className: "bs-min self-center"
46
- }, /* @__PURE__ */ React.createElement(Avatar.Label, {
101
+ className: "bs-min self-center flex items-center"
102
+ }, /* @__PURE__ */ React2.createElement(Avatar.Label, {
47
103
  asChild: true
48
- }, /* @__PURE__ */ React.createElement("h2", {
49
- className: cardHeading
50
- }, fullName))))), organizationName && /* @__PURE__ */ React.createElement(Card.Chrome, null, typeof organization === "object" && onOrgClick ? /* @__PURE__ */ React.createElement(Button, {
104
+ }, /* @__PURE__ */ React2.createElement("h2", {
105
+ className: mx(cardHeading, "grow")
106
+ }, fullName)), /* @__PURE__ */ React2.createElement(CardSubjectMenu, {
107
+ subject
108
+ })))), organizationName && /* @__PURE__ */ React2.createElement(Card.Chrome, null, typeof organization === "object" && onOrgClick ? /* @__PURE__ */ React2.createElement(Button, {
51
109
  variant: "ghost",
52
110
  classNames: "gap-2 text-start",
53
111
  onClick: () => onOrgClick(organization.target)
54
- }, /* @__PURE__ */ React.createElement(Icon, {
112
+ }, /* @__PURE__ */ React2.createElement(Icon, {
55
113
  icon: "ph--buildings--regular",
56
114
  size: 5,
57
115
  classNames: "text-subdued"
58
- }), /* @__PURE__ */ React.createElement("span", {
116
+ }), /* @__PURE__ */ React2.createElement("span", {
59
117
  className: "min-is-0 flex-1 truncate"
60
- }, organizationName), /* @__PURE__ */ React.createElement(Icon, {
118
+ }, organizationName), /* @__PURE__ */ React2.createElement(Icon, {
61
119
  icon: "ph--arrow-right--regular"
62
- })) : /* @__PURE__ */ React.createElement("p", {
120
+ })) : /* @__PURE__ */ React2.createElement("p", {
63
121
  className: "dx-button gap-2",
64
122
  "data-variant": "ghost"
65
- }, /* @__PURE__ */ React.createElement(Icon, {
123
+ }, /* @__PURE__ */ React2.createElement(Icon, {
66
124
  icon: "ph--buildings--regular",
67
125
  size: 5,
68
126
  classNames: "text-subdued"
69
- }), /* @__PURE__ */ React.createElement("span", {
127
+ }), /* @__PURE__ */ React2.createElement("span", {
70
128
  className: "min-is-0 flex-1 truncate"
71
- }, organizationName))), /* @__PURE__ */ React.createElement("dl", {
129
+ }, organizationName))), emails?.length && /* @__PURE__ */ React2.createElement("dl", {
72
130
  className: mx(cardText, "grid gap-2 grid-cols-[min-content_1fr] [&_dt]:text-subdued [&_dt]:pbs-0.5 [&_dd]:min-is-0")
73
- }, emails?.length && emails.map(({ label, value }) => /* @__PURE__ */ React.createElement(Fragment, {
131
+ }, emails?.length && emails.map(({ label, value }) => /* @__PURE__ */ React2.createElement(Fragment, {
74
132
  key: value
75
- }, /* @__PURE__ */ React.createElement("dt", null, /* @__PURE__ */ React.createElement(Icon, {
133
+ }, /* @__PURE__ */ React2.createElement("dt", null, /* @__PURE__ */ React2.createElement(Icon, {
76
134
  icon: "ph--at--regular",
77
135
  size: 5
78
- })), /* @__PURE__ */ React.createElement("dd", {
136
+ })), /* @__PURE__ */ React2.createElement("dd", {
79
137
  key: value,
80
138
  className: "break-words"
81
139
  }, value)))), children);
@@ -85,37 +143,46 @@ var ContactCard = ({ children, subject: { fullName, image, organization, emails
85
143
  };
86
144
 
87
145
  // src/components/OrganizationCard.tsx
88
- import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
89
- import React2 from "react";
146
+ import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
147
+ import React3 from "react";
90
148
  import { Icon as Icon2 } from "@dxos/react-ui";
91
- import { Card as Card2 } from "@dxos/react-ui-stack";
92
- var OrganizationCard = ({ children, subject: { name, image, description, website }, role }) => {
93
- var _effect = _useSignals2();
149
+ import { Card as Card2, cardNoSpacing, cardSpacing } from "@dxos/react-ui-stack";
150
+ import { mx as mx2 } from "@dxos/react-ui-theme";
151
+ var OrganizationCard = ({ children, subject, role }) => {
152
+ var _effect = _useSignals3();
94
153
  try {
95
- return /* @__PURE__ */ React2.createElement(Card2.SurfaceRoot, {
154
+ const { name, image, description, website } = subject;
155
+ return /* @__PURE__ */ React3.createElement(Card2.SurfaceRoot, {
96
156
  role
97
- }, /* @__PURE__ */ React2.createElement(Card2.Poster, {
157
+ }, /* @__PURE__ */ React3.createElement(Card2.Poster, {
98
158
  alt: name,
99
159
  ...image ? {
100
160
  image
101
161
  } : {
102
162
  icon: "ph--building-office--regular"
103
163
  }
104
- }), /* @__PURE__ */ React2.createElement(Card2.Heading, null, name), description && /* @__PURE__ */ React2.createElement(Card2.Text, {
164
+ }), /* @__PURE__ */ React3.createElement("div", {
165
+ role: "none",
166
+ className: mx2("flex items-center gap-2", cardSpacing)
167
+ }, /* @__PURE__ */ React3.createElement(Card2.Heading, {
168
+ classNames: cardNoSpacing
169
+ }, name), /* @__PURE__ */ React3.createElement(CardSubjectMenu, {
170
+ subject
171
+ })), description && /* @__PURE__ */ React3.createElement(Card2.Text, {
105
172
  classNames: "line-clamp-2"
106
- }, description), website && /* @__PURE__ */ React2.createElement(Card2.Chrome, null, /* @__PURE__ */ React2.createElement("a", {
173
+ }, description), website && /* @__PURE__ */ React3.createElement(Card2.Chrome, null, /* @__PURE__ */ React3.createElement("a", {
107
174
  className: "dx-button dx-focus-ring gap-2",
108
175
  "data-variant": "ghost",
109
176
  href: website,
110
177
  target: "_blank",
111
178
  rel: "noreferrer"
112
- }, /* @__PURE__ */ React2.createElement(Icon2, {
179
+ }, /* @__PURE__ */ React3.createElement(Icon2, {
113
180
  icon: "ph--link--regular",
114
181
  size: 5,
115
182
  classNames: "text-subdued"
116
- }), /* @__PURE__ */ React2.createElement("span", {
183
+ }), /* @__PURE__ */ React3.createElement("span", {
117
184
  className: "grow"
118
- }, website), /* @__PURE__ */ React2.createElement(Icon2, {
185
+ }, website), /* @__PURE__ */ React3.createElement(Icon2, {
119
186
  icon: "ph--arrow-square-out--regular"
120
187
  }))), children);
121
188
  } finally {
@@ -124,19 +191,29 @@ var OrganizationCard = ({ children, subject: { name, image, description, website
124
191
  };
125
192
 
126
193
  // src/components/ProjectCard.tsx
127
- import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
128
- import React3 from "react";
129
- import { Card as Card3 } from "@dxos/react-ui-stack";
130
- var ProjectCard = ({ subject: { name, image, description }, role }) => {
131
- var _effect = _useSignals3();
194
+ import { useSignals as _useSignals4 } from "@preact-signals/safe-react/tracking";
195
+ import React4 from "react";
196
+ import { Obj } from "@dxos/echo";
197
+ import { Card as Card3, cardNoSpacing as cardNoSpacing2, cardSpacing as cardSpacing2 } from "@dxos/react-ui-stack";
198
+ import { mx as mx3 } from "@dxos/react-ui-theme";
199
+ var ProjectCard = ({ subject, role }) => {
200
+ var _effect = _useSignals4();
132
201
  try {
133
- return /* @__PURE__ */ React3.createElement(Card3.SurfaceRoot, {
202
+ const { name, image, description } = subject;
203
+ return /* @__PURE__ */ React4.createElement(Card3.SurfaceRoot, {
134
204
  role
135
- }, image && /* @__PURE__ */ React3.createElement(Card3.Poster, {
205
+ }, image && /* @__PURE__ */ React4.createElement(Card3.Poster, {
136
206
  image,
137
- alt: name,
207
+ alt: Obj.getLabel(subject) ?? "",
138
208
  aspect: "auto"
139
- }), /* @__PURE__ */ React3.createElement(Card3.Heading, null, name), description && /* @__PURE__ */ React3.createElement(Card3.Text, {
209
+ }), /* @__PURE__ */ React4.createElement("div", {
210
+ role: "none",
211
+ className: mx3("flex items-center gap-2", cardSpacing2)
212
+ }, /* @__PURE__ */ React4.createElement(Card3.Heading, {
213
+ classNames: cardNoSpacing2
214
+ }, name), /* @__PURE__ */ React4.createElement(CardSubjectMenu, {
215
+ subject
216
+ })), description && /* @__PURE__ */ React4.createElement(Card3.Text, {
140
217
  classNames: "line-clamp-2"
141
218
  }, description));
142
219
  } finally {
@@ -158,7 +235,7 @@ var react_surface_default = () => contributes(Capabilities.ReactSurface, [
158
235
  "card--extrinsic",
159
236
  "card"
160
237
  ],
161
- filter: (data) => Obj.instanceOf(DataType.Person, data.subject),
238
+ filter: (data) => Obj2.instanceOf(DataType.Person, data.subject),
162
239
  component: ({ data, role }) => {
163
240
  const { dispatch } = useIntentDispatcher();
164
241
  const space = getSpace(data.subject);
@@ -166,8 +243,8 @@ var react_surface_default = () => contributes(Capabilities.ReactSurface, [
166
243
  const currentSpaceOrgs = useQuery(space, Filter.type(DataType.Organization));
167
244
  const currentSpaceViews = useQuery(space, Filter.type(DataType.View));
168
245
  const defaultSpaceViews = useQuery(defaultSpace, Filter.type(DataType.View));
169
- const currentSpaceOrgTable = currentSpaceViews.find((view) => view.query.typename === DataType.Organization.typename && Obj.instanceOf(TableView, view.presentation.target));
170
- const defaultSpaceOrgTable = defaultSpaceViews.find((view) => view.query.typename === DataType.Organization.typename && Obj.instanceOf(TableView, view.presentation.target));
246
+ const currentSpaceOrgTable = currentSpaceViews.find((view) => typenameFromQuery(view.query) === DataType.Organization.typename && Obj2.instanceOf(Table.Table, view.presentation.target));
247
+ const defaultSpaceOrgTable = defaultSpaceViews.find((view) => typenameFromQuery(view.query) === DataType.Organization.typename && Obj2.instanceOf(Table.Table, view.presentation.target));
171
248
  const handleOrgClick = useCallback((org) => Effect.gen(function* () {
172
249
  const view = currentSpaceOrgs.includes(org) ? currentSpaceOrgTable : defaultSpaceOrgTable;
173
250
  yield* dispatch(createIntent(LayoutAction.UpdatePopover, {
@@ -211,11 +288,11 @@ var react_surface_default = () => contributes(Capabilities.ReactSurface, [
211
288
  currentSpaceOrgTable,
212
289
  defaultSpaceOrgTable
213
290
  ]);
214
- return /* @__PURE__ */ React4.createElement(ContactCard, {
291
+ return /* @__PURE__ */ React5.createElement(ContactCard, {
215
292
  role,
216
293
  subject: data.subject,
217
294
  onOrgClick: handleOrgClick
218
- }, role === "card--popover" && /* @__PURE__ */ React4.createElement(Surface, {
295
+ }, role === "card--popover" && /* @__PURE__ */ React5.createElement(Surface, {
219
296
  role: "related",
220
297
  data
221
298
  }));
@@ -230,11 +307,11 @@ var react_surface_default = () => contributes(Capabilities.ReactSurface, [
230
307
  "card--extrinsic",
231
308
  "card"
232
309
  ],
233
- filter: (data) => Obj.instanceOf(DataType.Organization, data.subject),
234
- component: ({ data, role }) => /* @__PURE__ */ React4.createElement(OrganizationCard, {
310
+ filter: (data) => Obj2.instanceOf(DataType.Organization, data.subject),
311
+ component: ({ data, role }) => /* @__PURE__ */ React5.createElement(OrganizationCard, {
235
312
  role,
236
313
  subject: data.subject
237
- }, role === "card--popover" && /* @__PURE__ */ React4.createElement(Surface, {
314
+ }, role === "card--popover" && /* @__PURE__ */ React5.createElement(Surface, {
238
315
  role: "related",
239
316
  data
240
317
  }))
@@ -248,8 +325,8 @@ var react_surface_default = () => contributes(Capabilities.ReactSurface, [
248
325
  "card--extrinsic",
249
326
  "card"
250
327
  ],
251
- filter: (data) => Obj.instanceOf(DataType.Project, data.subject),
252
- component: ({ data, role }) => /* @__PURE__ */ React4.createElement(ProjectCard, {
328
+ filter: (data) => Obj2.instanceOf(DataType.Project, data.subject),
329
+ component: ({ data, role }) => /* @__PURE__ */ React5.createElement(ProjectCard, {
253
330
  subject: data.subject,
254
331
  role
255
332
  })
@@ -267,13 +344,13 @@ var react_surface_default = () => contributes(Capabilities.ReactSurface, [
267
344
  "card"
268
345
  ],
269
346
  position: "fallback",
270
- filter: (data) => Obj.isObject(data.subject),
347
+ filter: (data) => Obj2.isObject(data.subject),
271
348
  component: ({ data, role }) => {
272
349
  const schema = getSchema(data.subject);
273
- const { t } = useTranslation(PREVIEW_PLUGIN);
350
+ const { t } = useTranslation2(PREVIEW_PLUGIN);
274
351
  if (!schema) {
275
- return /* @__PURE__ */ React4.createElement("p", {
276
- className: mx2(descriptionMessage)
352
+ return /* @__PURE__ */ React5.createElement("p", {
353
+ className: mx4(descriptionMessage)
277
354
  }, t("unable to create preview message"));
278
355
  }
279
356
  const handleSave = useCallback((values, { changed }) => {
@@ -283,12 +360,13 @@ var react_surface_default = () => contributes(Capabilities.ReactSurface, [
283
360
  setValue(data.subject, path, value);
284
361
  }
285
362
  }, []);
286
- return /* @__PURE__ */ React4.createElement(Card4.SurfaceRoot, {
363
+ return /* @__PURE__ */ React5.createElement(Card4.SurfaceRoot, {
287
364
  role
288
- }, /* @__PURE__ */ React4.createElement(Form, {
365
+ }, /* @__PURE__ */ React5.createElement(Form, {
289
366
  schema,
367
+ projection: data.projection,
290
368
  values: data.subject,
291
- readonly: role === "card--popover",
369
+ readonly: role === "card--popover" ? "static" : false,
292
370
  onSave: handleSave,
293
371
  autoSave: true,
294
372
  ...role === "card--intrinsic" && {
@@ -301,4 +379,4 @@ var react_surface_default = () => contributes(Capabilities.ReactSurface, [
301
379
  export {
302
380
  react_surface_default as default
303
381
  };
304
- //# sourceMappingURL=react-surface-IPZBISWS.mjs.map
382
+ //# sourceMappingURL=react-surface-Q7F36L3Z.mjs.map
@@ -0,0 +1,7 @@
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"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Effect } from 'effect';\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 { Filter, Obj } from '@dxos/echo';\nimport { type JsonPath, setValue } from '@dxos/echo-schema';\nimport { AttentionAction } from '@dxos/plugin-attention/types';\nimport { ATTENDABLE_PATH_SEPARATOR, DeckAction } from '@dxos/plugin-deck/types';\nimport { useQuery, useSpace } from '@dxos/react-client/echo';\nimport { useTranslation } from '@dxos/react-ui';\nimport { Form } from '@dxos/react-ui-form';\nimport { Card } from '@dxos/react-ui-stack';\nimport { Table } from '@dxos/react-ui-table/types';\nimport { descriptionMessage, mx } from '@dxos/react-ui-theme';\nimport { DataType, type ProjectionModel, typenameFromQuery } from '@dxos/schema';\n\nimport { ContactCard, OrganizationCard, ProjectCard } from '../components';\nimport { PREVIEW_PLUGIN } from '../meta';\n\nexport default () =>\n contributes(Capabilities.ReactSurface, [\n //\n // Specific schema types.\n //\n createSurface({\n id: `${PREVIEW_PLUGIN}/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 { dispatch } = useIntentDispatcher();\n const space = getSpace(data.subject);\n const defaultSpace = useSpace();\n\n const currentSpaceOrgs = useQuery(space, Filter.type(DataType.Organization));\n const currentSpaceViews = useQuery(space, Filter.type(DataType.View));\n const defaultSpaceViews = useQuery(defaultSpace, Filter.type(DataType.View));\n const currentSpaceOrgTable = currentSpaceViews.find(\n (view) =>\n typenameFromQuery(view.query) === DataType.Organization.typename &&\n Obj.instanceOf(Table.Table, view.presentation.target),\n );\n const defaultSpaceOrgTable = defaultSpaceViews.find(\n (view) =>\n typenameFromQuery(view.query) === DataType.Organization.typename &&\n Obj.instanceOf(Table.Table, view.presentation.target),\n );\n\n // TODO(wittjosiah): Generalized way of handling related objects navigation.\n const handleOrgClick = useCallback(\n (org: DataType.Organization) =>\n Effect.gen(function* () {\n const view = currentSpaceOrgs.includes(org) ? currentSpaceOrgTable : defaultSpaceOrgTable;\n yield* dispatch(\n createIntent(LayoutAction.UpdatePopover, {\n part: 'popover',\n options: {\n state: false,\n anchorId: '',\n },\n }),\n );\n if (view) {\n const id = fullyQualifiedId(view);\n yield* dispatch(\n createIntent(LayoutAction.Open, {\n part: 'main',\n subject: [id],\n options: { workspace: space?.id },\n }),\n );\n yield* dispatch(\n createIntent(DeckAction.ChangeCompanion, {\n primary: id,\n companion: [id, 'selected-objects'].join(ATTENDABLE_PATH_SEPARATOR),\n }),\n );\n yield* dispatch(\n createIntent(AttentionAction.Select, {\n contextId: id,\n selection: { mode: 'multi', ids: [org.id] },\n }),\n );\n }\n }).pipe(Effect.runPromise),\n [dispatch, currentSpaceOrgs, currentSpaceOrgTable, defaultSpaceOrgTable],\n );\n\n return (\n <ContactCard role={role} subject={data.subject} onOrgClick={handleOrgClick}>\n {role === 'card--popover' && <Surface role='related' data={data} />}\n </ContactCard>\n );\n },\n }),\n createSurface({\n id: `${PREVIEW_PLUGIN}/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 <OrganizationCard role={role} subject={data.subject}>\n {role === 'card--popover' && <Surface role='related' data={data} />}\n </OrganizationCard>\n ),\n }),\n createSurface({\n id: `${PREVIEW_PLUGIN}/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 }) => <ProjectCard subject={data.subject} role={role} />,\n }),\n\n //\n // Fallback for any object.\n //\n createSurface({\n id: `${PREVIEW_PLUGIN}/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(PREVIEW_PLUGIN);\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 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} />\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 <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\n// import { useIntentDispatcher } from '@dxos/app-framework';\nimport { ACTION_TYPE } from '@dxos/app-graph';\nimport { type AnyEchoObject } from '@dxos/echo-schema';\nimport { IconButton, type IconButtonProps, useTranslation } from '@dxos/react-ui';\nimport { type ActionGraphProps, DropdownMenu, MenuProvider, useMenuActions } from '@dxos/react-ui-menu';\n\nconst useSubjectMenuGroupItems = (subject: AnyEchoObject) => {\n // const { dispatchPromise: dispatch } = useIntentDispatcher();\n const result: ActionGraphProps = { edges: [], nodes: [] };\n result.nodes.push({\n type: ACTION_TYPE,\n id: `${subject.id}/add-to-space`,\n data: () => console.log('[TO DO]', 'add object to space', subject),\n properties: {\n label: ['add object to space label', { ns: 'os' }],\n icon: 'ph--file-plus--regular',\n },\n });\n result.nodes.forEach(({ id: target }) => {\n result.edges.push({ source: 'root', target });\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 ...props\n}: Omit<IconButtonProps, 'icon' | 'label'> & { subject: AnyEchoObject }) => {\n const { t } = useTranslation('os');\n const menuProps = useSubjectMenuGroupItems(subject);\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 }: 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} />\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='grow'>{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 }: 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} />\n </div>\n {description && <Card.Text classNames='line-clamp-2'>{description}</Card.Text>}\n </Card.SurfaceRoot>\n );\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["Effect", "React", "useCallback", "Capabilities", "LayoutAction", "Surface", "contributes", "createIntent", "createSurface", "useIntentDispatcher", "fullyQualifiedId", "getSchema", "getSpace", "Filter", "Obj", "setValue", "AttentionAction", "ATTENDABLE_PATH_SEPARATOR", "DeckAction", "useQuery", "useSpace", "useTranslation", "Form", "Card", "Table", "descriptionMessage", "mx", "DataType", "typenameFromQuery", "React", "Fragment", "Avatar", "Button", "Icon", "Card", "cardHeading", "cardText", "mx", "Rx", "React", "ACTION_TYPE", "IconButton", "useTranslation", "DropdownMenu", "MenuProvider", "useMenuActions", "useSubjectMenuGroupItems", "subject", "result", "edges", "nodes", "push", "type", "ACTION_TYPE", "id", "data", "console", "log", "properties", "label", "ns", "icon", "forEach", "target", "source", "useMenuActions", "Rx", "make", "CardSubjectMenu", "props", "t", "useTranslation", "menuProps", "MenuProvider", "DropdownMenu", "Root", "Trigger", "asChild", "IconButton", "iconOnly", "variant", "ContactCard", "children", "subject", "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", "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", "name", "image", "description", "React", "Card", "SurfaceRoot", "Poster", "alt", "Obj", "getLabel", "aspect", "div", "className", "mx", "cardSpacing", "Heading", "classNames", "cardNoSpacing", "CardSubjectMenu", "Text", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "PREVIEW_PLUGIN", "role", "filter", "data", "Obj", "instanceOf", "DataType", "Person", "subject", "component", "dispatch", "useIntentDispatcher", "space", "getSpace", "defaultSpace", "useSpace", "currentSpaceOrgs", "useQuery", "Filter", "type", "Organization", "currentSpaceViews", "View", "defaultSpaceViews", "currentSpaceOrgTable", "find", "view", "typenameFromQuery", "query", "typename", "Table", "presentation", "target", "defaultSpaceOrgTable", "handleOrgClick", "useCallback", "org", "Effect", "gen", "includes", "createIntent", "LayoutAction", "UpdatePopover", "part", "options", "state", "anchorId", "fullyQualifiedId", "Open", "workspace", "DeckAction", "ChangeCompanion", "primary", "companion", "join", "ATTENDABLE_PATH_SEPARATOR", "AttentionAction", "Select", "contextId", "selection", "mode", "ids", "pipe", "runPromise", "React", "ContactCard", "onOrgClick", "Surface", "OrganizationCard", "Project", "ProjectCard", "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,3 +1,3 @@
1
- export declare const PreviewPopover: (props?: import("@dxos/app-framework").PluginContext | undefined) => Promise<() => Promise<import("@dxos/app-framework").Capability<null> | import("@dxos/app-framework").AnyCapability[]>>;
2
- 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 PreviewPopover: (props?: import("@dxos/app-framework").PluginContext | undefined) => Promise<() => Promise<import("@dxos/app-framework").Capability<import("@dxos/app-framework").InterfaceDef<null>> | import("@dxos/app-framework").AnyCapability[]>>;
2
+ 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[]>>;
3
3
  //# 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,cAAc,6LAA0C,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,cAAc,yOAA0C,CAAC;AACtE,eAAO,MAAM,YAAY,4OAAwC,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<null>;
2
+ declare const _default: (context: PluginContext) => import("@dxos/app-framework").Capability<import("@dxos/app-framework").InterfaceDef<null>>;
3
3
  export default _default;
4
4
  //# sourceMappingURL=preview-popover.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"preview-popover.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/preview-popover.ts"],"names":[],"mappings":"AAIA,OAAO,EAAyD,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;yBA8BhG,SAAS,aAAa;AAAtC,wBAuCE"}
1
+ {"version":3,"file":"preview-popover.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/preview-popover.ts"],"names":[],"mappings":"AAIA,OAAO,EAA8B,KAAK,aAAa,EAA6B,MAAM,qBAAqB,CAAC;yBAyBhG,SAAS,aAAa;AAAtC,wBAuCE"}
@@ -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":"AAOA,OAAO,EACL,YAAY,EAOb,MAAM,qBAAqB,CAAC;;AAiB7B,wBAkIK"}
1
+ {"version":3,"file":"react-surface.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/react-surface.tsx"],"names":[],"mappings":"AAOA,OAAO,EACL,YAAY,EAOb,MAAM,qBAAqB,CAAC;;AAiB7B,wBAmIK"}
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import { type AnyEchoObject } from '@dxos/echo-schema';
3
+ import { type IconButtonProps } from '@dxos/react-ui';
4
+ /**
5
+ * This is a generic menu for objects that tries to infer common actions.
6
+ */
7
+ export declare const CardSubjectMenu: ({ subject, ...props }: Omit<IconButtonProps, "icon" | "label"> & {
8
+ subject: AnyEchoObject;
9
+ }) => React.JSX.Element;
10
+ //# sourceMappingURL=CardSubjectMenu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CardSubjectMenu.d.ts","sourceRoot":"","sources":["../../../../src/components/CardSubjectMenu.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAc,KAAK,eAAe,EAAkB,MAAM,gBAAgB,CAAC;AAqBlF;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,uBAG7B,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG;IAAE,OAAO,EAAE,aAAa,CAAA;CAAE,sBAkBtE,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { type DataType } from '@dxos/schema';
3
3
  import { type PreviewProps } from '../types';
4
- export declare const ContactCard: ({ children, subject: { fullName, image, organization, emails }, onOrgClick, role, }: PreviewProps<DataType.Person> & {
4
+ export declare const ContactCard: ({ children, subject, onOrgClick, role, }: PreviewProps<DataType.Person> & {
5
5
  onOrgClick?: (org: DataType.Organization) => void;
6
6
  }) => React.JSX.Element;
7
7
  //# sourceMappingURL=ContactCard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContactCard.d.ts","sourceRoot":"","sources":["../../../../src/components/ContactCard.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAKxC,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,eAAO,MAAM,WAAW,GAAI,qFAKzB,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG;IAAE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,YAAY,KAAK,IAAI,CAAA;CAAE,sBAmDvF,CAAC"}
1
+ {"version":3,"file":"ContactCard.d.ts","sourceRoot":"","sources":["../../../../src/components/ContactCard.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAKxC,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AAI7C,eAAO,MAAM,WAAW,GAAI,0CAKzB,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG;IAAE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,YAAY,KAAK,IAAI,CAAA;CAAE,sBAuDvF,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
2
  import { type DataType } from '@dxos/schema';
3
3
  import { type PreviewProps } from '../types';
4
- export declare const OrganizationCard: ({ children, subject: { name, image, description, website }, role, }: PreviewProps<DataType.Organization>) => React.JSX.Element;
4
+ export declare const OrganizationCard: ({ children, subject, role }: PreviewProps<DataType.Organization>) => React.JSX.Element;
5
5
  //# sourceMappingURL=OrganizationCard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OrganizationCard.d.ts","sourceRoot":"","sources":["../../../../src/components/OrganizationCard.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,eAAO,MAAM,gBAAgB,GAAI,qEAI9B,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,sBAwBrC,CAAC"}
1
+ {"version":3,"file":"OrganizationCard.d.ts","sourceRoot":"","sources":["../../../../src/components/OrganizationCard.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AAI7C,eAAO,MAAM,gBAAgB,GAAI,6BAA6B,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,sBA4BhG,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
2
  import { type DataType } from '@dxos/schema';
3
3
  import { type PreviewProps } from '../types';
4
- export declare const ProjectCard: ({ subject: { name, image, description }, role }: PreviewProps<DataType.Project>) => React.JSX.Element;
4
+ export declare const ProjectCard: ({ subject, role }: PreviewProps<DataType.Project>) => React.JSX.Element;
5
5
  //# sourceMappingURL=ProjectCard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectCard.d.ts","sourceRoot":"","sources":["../../../../src/components/ProjectCard.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,eAAO,MAAM,WAAW,GAAI,iDAAiD,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,sBAQ1G,CAAC"}
1
+ {"version":3,"file":"ProjectCard.d.ts","sourceRoot":"","sources":["../../../../src/components/ProjectCard.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AAI7C,eAAO,MAAM,WAAW,GAAI,mBAAmB,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,sBAY5E,CAAC"}
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import { DataType } from '@dxos/schema';
3
+ import { type PreviewProps } from '../types';
4
+ export declare const TaskCard: ({ subject, role }: PreviewProps<DataType.Task>) => React.JSX.Element;
5
+ //# sourceMappingURL=TaskCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaskCard.d.ts","sourceRoot":"","sources":["../../../../src/components/TaskCard.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AAiB7C,eAAO,MAAM,QAAQ,GAAI,mBAAmB,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,sBAgBtE,CAAC"}
@@ -0,0 +1,27 @@
1
+ import '@dxos-theme';
2
+ import { type StoryObj } from '@storybook/react-vite';
3
+ declare const meta: {
4
+ title: string;
5
+ render: ({ role, cards }: import("./testing").DefaultstoryProps) => import("react").JSX.Element;
6
+ decorators: import("@storybook/react").Decorator[];
7
+ parameters: {
8
+ translations: [{
9
+ readonly 'en-US': {
10
+ readonly [meta.id]: {
11
+ readonly 'unable to create preview message': "No preview";
12
+ readonly 'todo label': "To do";
13
+ readonly 'in-progress label': "In progress";
14
+ readonly 'done label': "Done";
15
+ };
16
+ };
17
+ }];
18
+ };
19
+ tags: string[];
20
+ };
21
+ export default meta;
22
+ type Story = StoryObj<typeof meta>;
23
+ export declare const Popover: Story;
24
+ export declare const Intrinsic: Story;
25
+ export declare const Extrinsic: Story;
26
+ export declare const ExtrinsicNoImage: Story;
27
+ //# sourceMappingURL=Card.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Card.stories.d.ts","sourceRoot":"","sources":["../../../../src/stories/Card.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,aAAa,CAAC;AAErB,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAQjE,QAAA,MAAM,IAAI;;;;;;;yBAN6B,CAAQ,IAAI,CAAC,EAAE,CAAC;;;;;;;;;;CAkBlB,CAAC;AAEtC,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAKvB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAKvB,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAK9B,CAAC"}
@@ -0,0 +1,17 @@
1
+ import React, { type FC } from 'react';
2
+ import { type PreviewProps } from '../types';
3
+ type CardProps<T extends object> = {
4
+ Component: FC<PreviewProps<T>>;
5
+ subject: T;
6
+ icon?: string;
7
+ image?: boolean;
8
+ };
9
+ export type DefaultstoryProps = {
10
+ role: 'card--popover' | 'card--intrinsic' | 'card--extrinsic' | 'card--transclusion';
11
+ cards: CardProps<any>[];
12
+ };
13
+ export declare const Defaultstory: ({ role, cards }: DefaultstoryProps) => React.JSX.Element;
14
+ export declare const omitImage: ({ image: _, ...rest }: any) => any;
15
+ export declare const createCards: (image?: boolean) => CardProps<any>[];
16
+ export {};
17
+ //# sourceMappingURL=testing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../../../src/stories/testing.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AASvC,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AAI7C,KAAK,SAAS,CAAC,CAAC,SAAS,MAAM,IAAI;IACjC,SAAS,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,OAAO,EAAE,CAAC,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,eAAe,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,oBAAoB,CAAC;IACrF,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,iBAAiB,iBAAiB,sBAY9D,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,uBAAuB,GAAG,QAAS,CAAC;AAG9D,eAAO,MAAM,WAAW,GAAI,eAAY,KAAG,SAAS,CAAC,GAAG,CAAC,EAmExD,CAAC"}
@@ -3,6 +3,9 @@ export declare const translations: [{
3
3
  readonly 'en-US': {
4
4
  readonly [meta.id]: {
5
5
  readonly 'unable to create preview message': "No preview";
6
+ readonly 'todo label': "To do";
7
+ readonly 'in-progress label': "In progress";
8
+ readonly 'done label': "Done";
6
9
  };
7
10
  };
8
11
  }];
@@ -1 +1 @@
1
- {"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../src/translations.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,eAAO,MAAM,YAAY;;QAGnB,SAAA,CAAC,IAAI,CAAC,EAAE,CAAC;;UAER;;EAGwB,CAAC"}
1
+ {"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../src/translations.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,eAAO,MAAM,YAAY;;QAGnB,SAAA,CAAC,IAAI,CAAC,EAAE,CAAC;;;;;UAKR;;EAGwB,CAAC"}