@dxos/plugin-preview 0.8.4-main.bc674ce → 0.8.4-main.c351d160a8

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 (56) hide show
  1. package/dist/lib/browser/{chunk-XLN6KTHK.mjs → chunk-KLQDOIFV.mjs} +2 -2
  2. package/dist/lib/browser/{chunk-XLN6KTHK.mjs.map → chunk-KLQDOIFV.mjs.map} +1 -1
  3. package/dist/lib/browser/index.mjs +10 -9
  4. package/dist/lib/browser/index.mjs.map +3 -3
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/lib/browser/{preview-popover-Y67LE6TV.mjs → preview-popover-X2ZJM5MK.mjs} +18 -15
  7. package/dist/lib/browser/preview-popover-X2ZJM5MK.mjs.map +7 -0
  8. package/dist/lib/browser/{react-surface-YCDD5VZC.mjs → react-surface-L57ORUAL.mjs} +56 -75
  9. package/dist/lib/browser/react-surface-L57ORUAL.mjs.map +7 -0
  10. package/dist/lib/node-esm/{chunk-2G4FUGDA.mjs → chunk-GFWHEHC5.mjs} +2 -2
  11. package/dist/lib/node-esm/{chunk-2G4FUGDA.mjs.map → chunk-GFWHEHC5.mjs.map} +1 -1
  12. package/dist/lib/node-esm/index.mjs +10 -9
  13. package/dist/lib/node-esm/index.mjs.map +3 -3
  14. package/dist/lib/node-esm/meta.json +1 -1
  15. package/dist/lib/node-esm/{preview-popover-BGV2P6UX.mjs → preview-popover-6FLDJHHB.mjs} +18 -15
  16. package/dist/lib/node-esm/preview-popover-6FLDJHHB.mjs.map +7 -0
  17. package/dist/lib/node-esm/{react-surface-MYZZR7AQ.mjs → react-surface-RIM4RITC.mjs} +56 -75
  18. package/dist/lib/node-esm/react-surface-RIM4RITC.mjs.map +7 -0
  19. package/dist/types/src/PreviewPlugin.d.ts.map +1 -1
  20. package/dist/types/src/capabilities/preview-popover/preview-popover.d.ts +1 -1
  21. package/dist/types/src/capabilities/preview-popover/preview-popover.d.ts.map +1 -1
  22. package/dist/types/src/capabilities/react-surface/index.d.ts +1 -1
  23. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -1
  24. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +2 -2
  25. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -1
  26. package/dist/types/src/cards/FormCard.d.ts +1 -1
  27. package/dist/types/src/cards/FormCard.d.ts.map +1 -1
  28. package/dist/types/src/cards/OrganizationCard.d.ts +1 -1
  29. package/dist/types/src/cards/OrganizationCard.d.ts.map +1 -1
  30. package/dist/types/src/cards/PersonCard.d.ts +1 -1
  31. package/dist/types/src/cards/PersonCard.d.ts.map +1 -1
  32. package/dist/types/src/cards/ProjectCard.d.ts +3 -3
  33. package/dist/types/src/cards/ProjectCard.d.ts.map +1 -1
  34. package/dist/types/src/cards/TaskCard.d.ts +1 -1
  35. package/dist/types/src/cards/TaskCard.d.ts.map +1 -1
  36. package/dist/types/src/stories/Card.stories.d.ts +4 -3
  37. package/dist/types/src/stories/Card.stories.d.ts.map +1 -1
  38. package/dist/types/src/stories/testing.d.ts +3 -3
  39. package/dist/types/src/stories/testing.d.ts.map +1 -1
  40. package/dist/types/tsconfig.tsbuildinfo +1 -1
  41. package/package.json +37 -36
  42. package/src/PreviewPlugin.tsx +6 -5
  43. package/src/capabilities/preview-popover/preview-popover.ts +26 -13
  44. package/src/capabilities/react-surface/react-surface.tsx +33 -23
  45. package/src/cards/FormCard.tsx +11 -26
  46. package/src/cards/OrganizationCard.tsx +2 -2
  47. package/src/cards/PersonCard.tsx +8 -8
  48. package/src/cards/ProjectCard.tsx +5 -5
  49. package/src/cards/TaskCard.tsx +3 -3
  50. package/src/meta.ts +1 -1
  51. package/src/stories/Card.stories.tsx +15 -7
  52. package/src/stories/testing.tsx +24 -17
  53. package/dist/lib/browser/preview-popover-Y67LE6TV.mjs.map +0 -7
  54. package/dist/lib/browser/react-surface-YCDD5VZC.mjs.map +0 -7
  55. package/dist/lib/node-esm/preview-popover-BGV2P6UX.mjs.map +0 -7
  56. package/dist/lib/node-esm/react-surface-MYZZR7AQ.mjs.map +0 -7
@@ -1,7 +1,7 @@
1
1
  // src/meta.ts
2
2
  import { trim } from "@dxos/util";
3
3
  var meta = {
4
- id: "dxos.org/plugin/preview",
4
+ id: "org.dxos.plugin.preview",
5
5
  name: "Preview",
6
6
  description: trim`
7
7
  Rich preview panel for viewing object content without opening full editors.
@@ -14,4 +14,4 @@ var meta = {
14
14
  export {
15
15
  meta
16
16
  };
17
- //# sourceMappingURL=chunk-XLN6KTHK.mjs.map
17
+ //# sourceMappingURL=chunk-KLQDOIFV.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/meta.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: Plugin.Meta = {\n id: 'dxos.org/plugin/preview',\n name: 'Preview',\n description: trim`\n Rich preview panel for viewing object content without opening full editors.\n Quick peek at documents, images, and data with inline rendering.\n `,\n icon: 'ph--eye--regular',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-preview',\n};\n"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: Plugin.Meta = {\n id: 'org.dxos.plugin.preview',\n name: 'Preview',\n description: trim`\n Rich preview panel for viewing object content without opening full editors.\n Quick peek at documents, images, and data with inline rendering.\n `,\n icon: 'ph--eye--regular',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-preview',\n};\n"],
5
5
  "mappings": ";AAKA,SAASA,YAAY;AAEd,IAAMC,OAAoB;EAC/BC,IAAI;EACJC,MAAM;EACNC,aAAaC;;;;EAIbC,MAAM;EACNC,QAAQ;AACV;",
6
6
  "names": ["trim", "meta", "id", "name", "description", "trim", "icon", "source"]
7
7
  }
@@ -1,18 +1,19 @@
1
1
  import {
2
2
  meta
3
- } from "./chunk-XLN6KTHK.mjs";
3
+ } from "./chunk-KLQDOIFV.mjs";
4
4
 
5
5
  // src/PreviewPlugin.tsx
6
- import { Common, Plugin } from "@dxos/app-framework";
6
+ import { ActivationEvents, Plugin } from "@dxos/app-framework";
7
+ import { AppPlugin } from "@dxos/app-toolkit";
7
8
  import { Organization, Person } from "@dxos/types";
8
9
 
9
10
  // src/capabilities/preview-popover/index.ts
10
11
  import { Capability } from "@dxos/app-framework";
11
- var PreviewPopover = Capability.lazy("PreviewPopover", () => import("./preview-popover-Y67LE6TV.mjs"));
12
+ var PreviewPopover = Capability.lazy("PreviewPopover", () => import("./preview-popover-X2ZJM5MK.mjs"));
12
13
 
13
14
  // src/capabilities/react-surface/index.ts
14
15
  import { Capability as Capability2 } from "@dxos/app-framework";
15
- var ReactSurface = Capability2.lazy("ReactSurface", () => import("./react-surface-YCDD5VZC.mjs"));
16
+ var ReactSurface = Capability2.lazy("ReactSurface", () => import("./react-surface-L57ORUAL.mjs"));
16
17
 
17
18
  // src/translations.ts
18
19
  var translations = [
@@ -32,19 +33,19 @@ var translations = [
32
33
  ];
33
34
 
34
35
  // src/PreviewPlugin.tsx
35
- var PreviewPlugin = Plugin.define(meta).pipe(Common.Plugin.addTranslationsModule({
36
- translations
37
- }), Common.Plugin.addSchemaModule({
36
+ var PreviewPlugin = Plugin.define(meta).pipe(AppPlugin.addSchemaModule({
38
37
  schema: [
39
38
  Person.Person,
40
39
  Organization.Organization
41
40
  ],
42
41
  id: "schema"
43
- }), Common.Plugin.addSurfaceModule({
42
+ }), AppPlugin.addSurfaceModule({
44
43
  activate: ReactSurface
44
+ }), AppPlugin.addTranslationsModule({
45
+ translations
45
46
  }), Plugin.addModule({
46
47
  id: "preview-popover",
47
- activatesOn: Common.ActivationEvent.Startup,
48
+ activatesOn: ActivationEvents.Startup,
48
49
  activate: PreviewPopover
49
50
  }), Plugin.make);
50
51
  export {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/PreviewPlugin.tsx", "../../../src/capabilities/preview-popover/index.ts", "../../../src/capabilities/react-surface/index.ts", "../../../src/translations.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Common, Plugin } from '@dxos/app-framework';\nimport { Organization, Person } from '@dxos/types';\n\nimport { PreviewPopover, ReactSurface } from './capabilities';\nimport { meta } from './meta';\nimport { translations } from './translations';\n\nexport const PreviewPlugin = Plugin.define(meta).pipe(\n Common.Plugin.addTranslationsModule({ translations }),\n Common.Plugin.addSchemaModule({ schema: [Person.Person, Organization.Organization], id: 'schema' }),\n Common.Plugin.addSurfaceModule({ activate: ReactSurface }),\n Plugin.addModule({\n id: 'preview-popover',\n activatesOn: Common.ActivationEvent.Startup,\n activate: PreviewPopover,\n }),\n Plugin.make,\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const PreviewPopover = Capability.lazy('PreviewPopover', () => import('./preview-popover'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const ReactSurface = Capability.lazy('ReactSurface', () => import('./react-surface'));\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Resource } from '@dxos/react-ui';\n\nimport { meta } from './meta';\n\nexport const translations = [\n {\n 'en-US': {\n [meta.id]: {\n 'unable to create preview message': 'No preview',\n 'todo label': 'To do',\n 'in-progress label': 'In progress',\n 'done label': 'Done',\n 'open object label': 'Open',\n 'add object to space label': 'Add to space',\n 'more options label': 'More options',\n },\n },\n },\n] as const satisfies Resource[];\n"],
5
- "mappings": ";;;;;AAIA,SAASA,QAAQC,cAAc;AAC/B,SAASC,cAAcC,cAAc;;;ACDrC,SAASC,kBAAkB;AAEpB,IAAMC,iBAAiBC,WAAWC,KAAK,kBAAkB,MAAM,OAAO,gCAAA,CAAA;;;ACF7E,SAASC,cAAAA,mBAAkB;AAEpB,IAAMC,eAAeC,YAAWC,KAAK,gBAAgB,MAAM,OAAO,8BAAA,CAAA;;;ACElE,IAAMC,eAAe;EAC1B;IACE,SAAS;MACP,CAACC,KAAKC,EAAE,GAAG;QACT,oCAAoC;QACpC,cAAc;QACd,qBAAqB;QACrB,cAAc;QACd,qBAAqB;QACrB,6BAA6B;QAC7B,sBAAsB;MACxB;IACF;EACF;;;;AHVK,IAAMC,gBAAgBC,OAAOC,OAAOC,IAAAA,EAAMC,KAC/CC,OAAOJ,OAAOK,sBAAsB;EAAEC;AAAa,CAAA,GACnDF,OAAOJ,OAAOO,gBAAgB;EAAEC,QAAQ;IAACC,OAAOA;IAAQC,aAAaA;;EAAeC,IAAI;AAAS,CAAA,GACjGP,OAAOJ,OAAOY,iBAAiB;EAAEC,UAAUC;AAAa,CAAA,GACxDd,OAAOe,UAAU;EACfJ,IAAI;EACJK,aAAaZ,OAAOa,gBAAgBC;EACpCL,UAAUM;AACZ,CAAA,GACAnB,OAAOoB,IAAI;",
6
- "names": ["Common", "Plugin", "Organization", "Person", "Capability", "PreviewPopover", "Capability", "lazy", "Capability", "ReactSurface", "Capability", "lazy", "translations", "meta", "id", "PreviewPlugin", "Plugin", "define", "meta", "pipe", "Common", "addTranslationsModule", "translations", "addSchemaModule", "schema", "Person", "Organization", "id", "addSurfaceModule", "activate", "ReactSurface", "addModule", "activatesOn", "ActivationEvent", "Startup", "PreviewPopover", "make"]
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { ActivationEvents, Plugin } from '@dxos/app-framework';\nimport { AppPlugin } from '@dxos/app-toolkit';\nimport { Organization, Person } from '@dxos/types';\n\nimport { PreviewPopover, ReactSurface } from './capabilities';\nimport { meta } from './meta';\nimport { translations } from './translations';\n\nexport const PreviewPlugin = Plugin.define(meta).pipe(\n AppPlugin.addSchemaModule({ schema: [Person.Person, Organization.Organization], id: 'schema' }),\n AppPlugin.addSurfaceModule({ activate: ReactSurface }),\n AppPlugin.addTranslationsModule({ translations }),\n Plugin.addModule({\n id: 'preview-popover',\n activatesOn: ActivationEvents.Startup,\n activate: PreviewPopover,\n }),\n Plugin.make,\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const PreviewPopover = Capability.lazy('PreviewPopover', () => import('./preview-popover'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const ReactSurface = Capability.lazy('ReactSurface', () => import('./react-surface'));\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Resource } from '@dxos/react-ui';\n\nimport { meta } from './meta';\n\nexport const translations = [\n {\n 'en-US': {\n [meta.id]: {\n 'unable to create preview message': 'No preview',\n 'todo label': 'To do',\n 'in-progress label': 'In progress',\n 'done label': 'Done',\n 'open object label': 'Open',\n 'add object to space label': 'Add to space',\n 'more options label': 'More options',\n },\n },\n },\n] as const satisfies Resource[];\n"],
5
+ "mappings": ";;;;;AAIA,SAASA,kBAAkBC,cAAc;AACzC,SAASC,iBAAiB;AAC1B,SAASC,cAAcC,cAAc;;;ACFrC,SAASC,kBAAkB;AAEpB,IAAMC,iBAAiBC,WAAWC,KAAK,kBAAkB,MAAM,OAAO,gCAAA,CAAA;;;ACF7E,SAASC,cAAAA,mBAAkB;AAEpB,IAAMC,eAAeC,YAAWC,KAAK,gBAAgB,MAAM,OAAO,8BAAA,CAAA;;;ACElE,IAAMC,eAAe;EAC1B;IACE,SAAS;MACP,CAACC,KAAKC,EAAE,GAAG;QACT,oCAAoC;QACpC,cAAc;QACd,qBAAqB;QACrB,cAAc;QACd,qBAAqB;QACrB,6BAA6B;QAC7B,sBAAsB;MACxB;IACF;EACF;;;;AHTK,IAAMC,gBAAgBC,OAAOC,OAAOC,IAAAA,EAAMC,KAC/CC,UAAUC,gBAAgB;EAAEC,QAAQ;IAACC,OAAOA;IAAQC,aAAaA;;EAAeC,IAAI;AAAS,CAAA,GAC7FL,UAAUM,iBAAiB;EAAEC,UAAUC;AAAa,CAAA,GACpDR,UAAUS,sBAAsB;EAAEC;AAAa,CAAA,GAC/Cd,OAAOe,UAAU;EACfN,IAAI;EACJO,aAAaC,iBAAiBC;EAC9BP,UAAUQ;AACZ,CAAA,GACAnB,OAAOoB,IAAI;",
6
+ "names": ["ActivationEvents", "Plugin", "AppPlugin", "Organization", "Person", "Capability", "PreviewPopover", "Capability", "lazy", "Capability", "ReactSurface", "Capability", "lazy", "translations", "meta", "id", "PreviewPlugin", "Plugin", "define", "meta", "pipe", "AppPlugin", "addSchemaModule", "schema", "Person", "Organization", "id", "addSurfaceModule", "activate", "ReactSurface", "addTranslationsModule", "translations", "addModule", "activatesOn", "ActivationEvents", "Startup", "PreviewPopover", "make"]
7
7
  }
@@ -1 +1 @@
1
- {"inputs":{"src/meta.ts":{"bytes":1673,"imports":[{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/capabilities/preview-popover/preview-popover.ts":{"bytes":9968,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"format":"esm"},"src/capabilities/preview-popover/index.ts":{"bytes":935,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"src/capabilities/preview-popover/preview-popover.ts","kind":"dynamic-import","original":"./preview-popover"}],"format":"esm"},"src/cards/FormCard.tsx":{"bytes":9151,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework/react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"@dxos/react-ui-mosaic","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"src/cards/OrganizationCard.tsx":{"bytes":3059,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-mosaic","kind":"import-statement","external":true}],"format":"esm"},"src/cards/PersonCard.tsx":{"bytes":4498,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-mosaic","kind":"import-statement","external":true}],"format":"esm"},"src/cards/ProjectCard.tsx":{"bytes":2488,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-mosaic","kind":"import-statement","external":true}],"format":"esm"},"src/cards/TaskCard.tsx":{"bytes":5358,"imports":[{"path":"effect/SchemaAST","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo/internal","kind":"import-statement","external":true},{"path":"@dxos/react-ui-mosaic","kind":"import-statement","external":true},{"path":"@dxos/types","kind":"import-statement","external":true}],"format":"esm"},"src/cards/index.ts":{"bytes":853,"imports":[{"path":"src/cards/FormCard.tsx","kind":"import-statement","original":"./FormCard"},{"path":"src/cards/OrganizationCard.tsx","kind":"import-statement","original":"./OrganizationCard"},{"path":"src/cards/PersonCard.tsx","kind":"import-statement","original":"./PersonCard"},{"path":"src/cards/ProjectCard.tsx","kind":"import-statement","original":"./ProjectCard"},{"path":"src/cards/TaskCard.tsx","kind":"import-statement","original":"./TaskCard"}],"format":"esm"},"src/capabilities/react-surface/react-surface.tsx":{"bytes":12562,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework/react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-mosaic","kind":"import-statement","external":true},{"path":"@dxos/types","kind":"import-statement","external":true},{"path":"src/cards/index.ts","kind":"import-statement","original":"../../cards"},{"path":"src/meta.ts","kind":"import-statement","original":"../../meta"}],"format":"esm"},"src/capabilities/react-surface/index.ts":{"bytes":911,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"src/capabilities/react-surface/react-surface.tsx","kind":"dynamic-import","original":"./react-surface"}],"format":"esm"},"src/capabilities/index.ts":{"bytes":595,"imports":[{"path":"src/capabilities/preview-popover/index.ts","kind":"import-statement","original":"./preview-popover"},{"path":"src/capabilities/react-surface/index.ts","kind":"import-statement","original":"./react-surface"}],"format":"esm"},"src/translations.ts":{"bytes":1903,"imports":[{"path":"src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"src/PreviewPlugin.tsx":{"bytes":3100,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/types","kind":"import-statement","external":true},{"path":"src/capabilities/index.ts","kind":"import-statement","original":"./capabilities"},{"path":"src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"src/translations.ts","kind":"import-statement","original":"./translations"}],"format":"esm"},"src/index.ts":{"bytes":555,"imports":[{"path":"src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"src/PreviewPlugin.tsx","kind":"import-statement","original":"./PreviewPlugin"}],"format":"esm"}},"outputs":{"dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3116},"dist/lib/browser/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-XLN6KTHK.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/types","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"dist/lib/browser/preview-popover-Y67LE6TV.mjs","kind":"dynamic-import"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"dist/lib/browser/react-surface-YCDD5VZC.mjs","kind":"dynamic-import"}],"exports":["PreviewPlugin","meta"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":0},"src/PreviewPlugin.tsx":{"bytesInOutput":523},"src/capabilities/preview-popover/index.ts":{"bytesInOutput":154},"src/capabilities/index.ts":{"bytesInOutput":0},"src/capabilities/react-surface/index.ts":{"bytesInOutput":164},"src/translations.ts":{"bytesInOutput":378}},"bytes":1503},"dist/lib/browser/preview-popover-Y67LE6TV.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5137},"dist/lib/browser/preview-popover-Y67LE6TV.mjs":{"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/preview-popover/preview-popover.ts","inputs":{"src/capabilities/preview-popover/preview-popover.ts":{"bytesInOutput":2393}},"bytes":2551},"dist/lib/browser/react-surface-YCDD5VZC.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":19019},"dist/lib/browser/react-surface-YCDD5VZC.mjs":{"imports":[{"path":"dist/lib/browser/chunk-XLN6KTHK.mjs","kind":"import-statement"},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework/react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-mosaic","kind":"import-statement","external":true},{"path":"@dxos/types","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework/react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"@dxos/react-ui-mosaic","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-mosaic","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-mosaic","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-mosaic","kind":"import-statement","external":true},{"path":"effect/SchemaAST","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo/internal","kind":"import-statement","external":true},{"path":"@dxos/react-ui-mosaic","kind":"import-statement","external":true},{"path":"@dxos/types","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/react-surface/react-surface.tsx","inputs":{"src/capabilities/react-surface/react-surface.tsx":{"bytesInOutput":3111},"src/cards/FormCard.tsx":{"bytesInOutput":2355},"src/cards/index.ts":{"bytesInOutput":0},"src/cards/OrganizationCard.tsx":{"bytesInOutput":728},"src/cards/PersonCard.tsx":{"bytesInOutput":1061},"src/cards/ProjectCard.tsx":{"bytesInOutput":537},"src/cards/TaskCard.tsx":{"bytesInOutput":1182}},"bytes":9374},"dist/lib/browser/chunk-XLN6KTHK.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":800},"dist/lib/browser/chunk-XLN6KTHK.mjs":{"imports":[{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["meta"],"inputs":{"src/meta.ts":{"bytesInOutput":389}},"bytes":468}}}
1
+ {"inputs":{"src/meta.ts":{"bytes":1673,"imports":[{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/capabilities/preview-popover/preview-popover.ts":{"bytes":10664,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"format":"esm"},"src/capabilities/preview-popover/index.ts":{"bytes":935,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"src/capabilities/preview-popover/preview-popover.ts","kind":"dynamic-import","original":"./preview-popover"}],"format":"esm"},"src/cards/FormCard.tsx":{"bytes":6024,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"src/cards/OrganizationCard.tsx":{"bytes":3036,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"format":"esm"},"src/cards/PersonCard.tsx":{"bytes":4475,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"format":"esm"},"src/cards/ProjectCard.tsx":{"bytes":2431,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"format":"esm"},"src/cards/TaskCard.tsx":{"bytes":5334,"imports":[{"path":"effect/SchemaAST","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo/internal","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/types","kind":"import-statement","external":true}],"format":"esm"},"src/cards/index.ts":{"bytes":853,"imports":[{"path":"src/cards/FormCard.tsx","kind":"import-statement","original":"./FormCard"},{"path":"src/cards/OrganizationCard.tsx","kind":"import-statement","original":"./OrganizationCard"},{"path":"src/cards/PersonCard.tsx","kind":"import-statement","original":"./PersonCard"},{"path":"src/cards/ProjectCard.tsx","kind":"import-statement","original":"./ProjectCard"},{"path":"src/cards/TaskCard.tsx","kind":"import-statement","original":"./TaskCard"}],"format":"esm"},"src/capabilities/react-surface/react-surface.tsx":{"bytes":13487,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework/ui","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/types","kind":"import-statement","external":true},{"path":"src/cards/index.ts","kind":"import-statement","original":"../../cards"},{"path":"src/meta.ts","kind":"import-statement","original":"../../meta"}],"format":"esm"},"src/capabilities/react-surface/index.ts":{"bytes":911,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"src/capabilities/react-surface/react-surface.tsx","kind":"dynamic-import","original":"./react-surface"}],"format":"esm"},"src/capabilities/index.ts":{"bytes":595,"imports":[{"path":"src/capabilities/preview-popover/index.ts","kind":"import-statement","original":"./preview-popover"},{"path":"src/capabilities/react-surface/index.ts","kind":"import-statement","original":"./react-surface"}],"format":"esm"},"src/translations.ts":{"bytes":1903,"imports":[{"path":"src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"src/PreviewPlugin.tsx":{"bytes":3183,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/types","kind":"import-statement","external":true},{"path":"src/capabilities/index.ts","kind":"import-statement","original":"./capabilities"},{"path":"src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"src/translations.ts","kind":"import-statement","original":"./translations"}],"format":"esm"},"src/index.ts":{"bytes":555,"imports":[{"path":"src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"src/PreviewPlugin.tsx","kind":"import-statement","original":"./PreviewPlugin"}],"format":"esm"}},"outputs":{"dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3180},"dist/lib/browser/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-KLQDOIFV.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/types","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"dist/lib/browser/preview-popover-X2ZJM5MK.mjs","kind":"dynamic-import"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"dist/lib/browser/react-surface-L57ORUAL.mjs","kind":"dynamic-import"}],"exports":["PreviewPlugin","meta"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":0},"src/PreviewPlugin.tsx":{"bytesInOutput":562},"src/capabilities/preview-popover/index.ts":{"bytesInOutput":154},"src/capabilities/index.ts":{"bytesInOutput":0},"src/capabilities/react-surface/index.ts":{"bytesInOutput":164},"src/translations.ts":{"bytesInOutput":378}},"bytes":1542},"dist/lib/browser/preview-popover-X2ZJM5MK.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5544},"dist/lib/browser/preview-popover-X2ZJM5MK.mjs":{"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/preview-popover/preview-popover.ts","inputs":{"src/capabilities/preview-popover/preview-popover.ts":{"bytesInOutput":2555}},"bytes":2713},"dist/lib/browser/react-surface-L57ORUAL.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":17769},"dist/lib/browser/react-surface-L57ORUAL.mjs":{"imports":[{"path":"dist/lib/browser/chunk-KLQDOIFV.mjs","kind":"import-statement"},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework/ui","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/types","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"effect/SchemaAST","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo/internal","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/types","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/react-surface/react-surface.tsx","inputs":{"src/capabilities/react-surface/react-surface.tsx":{"bytesInOutput":3428},"src/cards/FormCard.tsx":{"bytesInOutput":1416},"src/cards/index.ts":{"bytesInOutput":0},"src/cards/OrganizationCard.tsx":{"bytesInOutput":721},"src/cards/PersonCard.tsx":{"bytesInOutput":1054},"src/cards/ProjectCard.tsx":{"bytesInOutput":517},"src/cards/TaskCard.tsx":{"bytesInOutput":1174}},"bytes":8710},"dist/lib/browser/chunk-KLQDOIFV.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":800},"dist/lib/browser/chunk-KLQDOIFV.mjs":{"imports":[{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["meta"],"inputs":{"src/meta.ts":{"bytesInOutput":389}},"bytes":468}}}
@@ -1,8 +1,9 @@
1
1
  // src/capabilities/preview-popover/preview-popover.ts
2
2
  import * as Effect from "effect/Effect";
3
- import { Capability, Common } from "@dxos/app-framework";
3
+ import { Capabilities, Capability } from "@dxos/app-framework";
4
+ import { AppCapabilities, LayoutOperation, getSpaceIdFromPath } from "@dxos/app-toolkit";
4
5
  import { addEventListener } from "@dxos/async";
5
- import { parseId } from "@dxos/client/echo";
6
+ import { Obj } from "@dxos/echo";
6
7
  import { DXN } from "@dxos/keys";
7
8
  import { log } from "@dxos/log";
8
9
  import { ClientCapabilities } from "@dxos/plugin-client";
@@ -12,9 +13,9 @@ var customEventOptions = {
12
13
  capture: true,
13
14
  passive: false
14
15
  };
15
- var handlePreviewLookup = async (client, defaultSpace, { ref, label }) => {
16
+ var handlePreviewLookup = async (client, defaultSpace, { dxn, label }) => {
16
17
  try {
17
- const object = await defaultSpace.db.makeRef(DXN.parse(ref)).load();
18
+ const object = await defaultSpace.db.makeRef(DXN.parse(dxn)).load();
18
19
  return {
19
20
  label,
20
21
  object
@@ -25,22 +26,24 @@ var handlePreviewLookup = async (client, defaultSpace, { ref, label }) => {
25
26
  };
26
27
  var preview_popover_default = Capability.makeModule(Effect.fnUntraced(function* () {
27
28
  const capabilities = yield* Capability.Service;
28
- const handleAnchorActivate = async ({ refId, label, trigger, kind, title, side, props }) => {
29
- const { invokePromise } = capabilities.get(Common.Capability.OperationInvoker);
29
+ const handleAnchorActivate = async ({ dxn, label, trigger, kind = "card", title: titleProp, side, props }) => {
30
+ const { invokePromise } = capabilities.get(Capabilities.OperationInvoker);
30
31
  const client = capabilities.get(ClientCapabilities.Client);
31
- const registry = capabilities.get(Common.Capability.AtomRegistry);
32
- const [layoutAtom] = capabilities.getAll(Common.Capability.Layout);
32
+ const registry = capabilities.get(Capabilities.AtomRegistry);
33
+ const [layoutAtom] = capabilities.getAll(AppCapabilities.Layout);
33
34
  const layout = registry.get(layoutAtom);
34
- const { spaceId } = parseId(layout.workspace);
35
+ const spaceId = getSpaceIdFromPath(layout.workspace);
35
36
  const space = (spaceId && client.spaces.get(spaceId)) ?? client.spaces.default;
36
37
  const result = await handlePreviewLookup(client, space, {
37
- ref: refId,
38
+ dxn,
38
39
  label
39
40
  });
40
41
  if (!result) {
41
42
  return;
42
43
  }
43
- await invokePromise(Common.LayoutOperation.UpdatePopover, {
44
+ const title = titleProp ?? Obj.getLabel(result.object);
45
+ await invokePromise(LayoutOperation.UpdatePopover, {
46
+ subjectRef: dxn,
44
47
  subject: result.object,
45
48
  state: true,
46
49
  variant: "virtual",
@@ -63,16 +66,16 @@ var preview_popover_default = Capability.makeModule(Effect.fnUntraced(function*
63
66
  if (document.defaultView) {
64
67
  cleanup = addEventListener(document.defaultView, DX_ANCHOR_ACTIVATE, handleAnchorActivate, customEventOptions);
65
68
  } else {
66
- log.warn("No default view found", void 0, {
69
+ log.warn("no default view found", void 0, {
67
70
  F: __dxlog_file,
68
- L: 72,
71
+ L: 85,
69
72
  S: this,
70
73
  C: (f, a) => f(...a)
71
74
  });
72
75
  }
73
- return Capability.contributes(Common.Capability.Null, null, () => Effect.sync(() => cleanup?.()));
76
+ return Capability.contributes(Capabilities.Null, null, () => Effect.sync(() => cleanup?.()));
74
77
  }));
75
78
  export {
76
79
  preview_popover_default as default
77
80
  };
78
- //# sourceMappingURL=preview-popover-Y67LE6TV.mjs.map
81
+ //# sourceMappingURL=preview-popover-X2ZJM5MK.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/preview-popover/preview-popover.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { AppCapabilities, LayoutOperation, getSpaceIdFromPath } from '@dxos/app-toolkit';\nimport { addEventListener } from '@dxos/async';\nimport { type Client } from '@dxos/client';\nimport { type Space } from '@dxos/client/echo';\nimport { Obj } from '@dxos/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/ui-editor';\n\nconst customEventOptions = { capture: true, passive: false };\n\nconst handlePreviewLookup = async (\n client: Client,\n defaultSpace: Space,\n { dxn, label }: PreviewLinkRef,\n): Promise<PreviewLinkTarget | null> => {\n try {\n const object = await defaultSpace.db.makeRef(DXN.parse(dxn)).load();\n return { label, object };\n } catch {\n return null;\n }\n};\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n // Get context for lazy capability access in callbacks.\n const capabilities = yield* Capability.Service;\n\n // TODO(wittjosiah): Factor out lookup handlers to other plugins to make not ECHO-specific.\n const handleAnchorActivate = async ({\n dxn,\n label,\n trigger,\n kind = 'card',\n title: titleProp,\n side,\n props,\n }: DxAnchorActivate) => {\n const { invokePromise } = capabilities.get(Capabilities.OperationInvoker);\n const client = capabilities.get(ClientCapabilities.Client);\n const registry = capabilities.get(Capabilities.AtomRegistry);\n const [layoutAtom] = capabilities.getAll(AppCapabilities.Layout);\n const layout = registry.get(layoutAtom);\n const spaceId = getSpaceIdFromPath(layout.workspace);\n const space = (spaceId && client.spaces.get(spaceId)) ?? client.spaces.default;\n const result = await handlePreviewLookup(client, space, { dxn, label });\n if (!result) {\n return;\n }\n\n const title = titleProp ?? Obj.getLabel(result.object);\n\n await invokePromise(LayoutOperation.UpdatePopover, {\n subjectRef: dxn,\n subject: result.object,\n state: true,\n variant: 'virtual',\n anchor: trigger,\n ...(kind && { kind }),\n ...(title && { title }),\n ...(side && { side }),\n ...(props && { props }),\n });\n };\n\n let cleanup: () => void;\n if (document.defaultView) {\n cleanup = addEventListener(\n document.defaultView,\n DX_ANCHOR_ACTIVATE as any,\n handleAnchorActivate,\n customEventOptions,\n );\n } else {\n log.warn('no default view found');\n }\n\n return Capability.contributes(Capabilities.Null, null, () => Effect.sync(() => cleanup?.()));\n }),\n);\n"],
5
+ "mappings": ";AAIA,YAAYA,YAAY;AAExB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,iBAAiBC,iBAAiBC,0BAA0B;AACrE,SAASC,wBAAwB;AAGjC,SAASC,WAAW;AACpB,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,GAAGC,QAAQd,IAAIe,MAAML,GAAAA,CAAAA,EAAMM,KAAI;AACjE,WAAO;MAAEL;MAAOC;IAAO;EACzB,QAAQ;AACN,WAAO;EACT;AACF;AAEA,IAAA,0BAAelB,WAAWuB,WACjBC,kBAAW,aAAA;AAEhB,QAAMC,eAAe,OAAOzB,WAAW0B;AAGvC,QAAMC,uBAAuB,OAAO,EAClCX,KACAC,OACAW,SACAC,OAAO,QACPC,OAAOC,WACPC,MACAC,MAAK,MACY;AACjB,UAAM,EAAEC,cAAa,IAAKT,aAAaU,IAAIpC,aAAaqC,gBAAgB;AACxE,UAAMtB,SAASW,aAAaU,IAAI3B,mBAAmB6B,MAAM;AACzD,UAAMC,WAAWb,aAAaU,IAAIpC,aAAawC,YAAY;AAC3D,UAAM,CAACC,UAAAA,IAAcf,aAAagB,OAAOxC,gBAAgByC,MAAM;AAC/D,UAAMC,SAASL,SAASH,IAAIK,UAAAA;AAC5B,UAAMI,UAAUzC,mBAAmBwC,OAAOE,SAAS;AACnD,UAAMC,SAASF,WAAW9B,OAAOiC,OAAOZ,IAAIS,OAAAA,MAAa9B,OAAOiC,OAAOC;AACvE,UAAMC,SAAS,MAAMpC,oBAAoBC,QAAQgC,OAAO;MAAE9B;MAAKC;IAAM,CAAA;AACrE,QAAI,CAACgC,QAAQ;AACX;IACF;AAEA,UAAMnB,QAAQC,aAAa1B,IAAI6C,SAASD,OAAO/B,MAAM;AAErD,UAAMgB,cAAchC,gBAAgBiD,eAAe;MACjDC,YAAYpC;MACZqC,SAASJ,OAAO/B;MAChBoC,OAAO;MACPC,SAAS;MACTC,QAAQ5B;MACR,GAAIC,QAAQ;QAAEA;MAAK;MACnB,GAAIC,SAAS;QAAEA;MAAM;MACrB,GAAIE,QAAQ;QAAEA;MAAK;MACnB,GAAIC,SAAS;QAAEA;MAAM;IACvB,CAAA;EACF;AAEA,MAAIwB;AACJ,MAAIC,SAASC,aAAa;AACxBF,cAAUrD,iBACRsD,SAASC,aACTlD,oBACAkB,sBACAjB,kBAAAA;EAEJ,OAAO;AACLH,QAAIqD,KAAK,yBAAA,QAAA;;;;;;EACX;AAEA,SAAO5D,WAAW6D,YAAY9D,aAAa+D,MAAM,MAAM,MAAaC,YAAK,MAAMN,UAAAA,CAAAA,CAAAA;AACjF,CAAA,CAAA;",
6
+ "names": ["Effect", "Capabilities", "Capability", "AppCapabilities", "LayoutOperation", "getSpaceIdFromPath", "addEventListener", "Obj", "DXN", "log", "ClientCapabilities", "DX_ANCHOR_ACTIVATE", "customEventOptions", "capture", "passive", "handlePreviewLookup", "client", "defaultSpace", "dxn", "label", "object", "db", "makeRef", "parse", "load", "makeModule", "fnUntraced", "capabilities", "Service", "handleAnchorActivate", "trigger", "kind", "title", "titleProp", "side", "props", "invokePromise", "get", "OperationInvoker", "Client", "registry", "AtomRegistry", "layoutAtom", "getAll", "Layout", "layout", "spaceId", "workspace", "space", "spaces", "default", "result", "getLabel", "UpdatePopover", "subjectRef", "subject", "state", "variant", "anchor", "cleanup", "document", "defaultView", "warn", "contributes", "Null", "sync"]
7
+ }
@@ -1,49 +1,29 @@
1
1
  import {
2
2
  meta
3
- } from "./chunk-XLN6KTHK.mjs";
3
+ } from "./chunk-KLQDOIFV.mjs";
4
4
 
5
5
  // src/capabilities/react-surface/react-surface.tsx
6
6
  import * as Effect from "effect/Effect";
7
7
  import React6 from "react";
8
- import { Capability, Common as Common2 } from "@dxos/app-framework";
9
- import { Surface } from "@dxos/app-framework/react";
8
+ import { Capabilities, Capability } from "@dxos/app-framework";
9
+ import { Surface } from "@dxos/app-framework/ui";
10
10
  import { Obj as Obj3 } from "@dxos/echo";
11
- import { Card as Card6 } from "@dxos/react-ui-mosaic";
12
- import { Organization, Person, Project, Task as Task2 } from "@dxos/types";
11
+ import { Card as Card6 } from "@dxos/react-ui";
12
+ import { Organization, Person, Pipeline, Task as Task2 } from "@dxos/types";
13
13
 
14
14
  // src/cards/FormCard.tsx
15
- import React, { useCallback } from "react";
16
- import { Common } from "@dxos/app-framework";
17
- import { useOperationInvoker } from "@dxos/app-framework/react";
15
+ import React, { useCallback, useMemo } from "react";
18
16
  import { Obj } from "@dxos/echo";
19
17
  import { splitJsonPath } from "@dxos/effect";
20
- import { IconButton, useTranslation } from "@dxos/react-ui";
18
+ import { Card, useTranslation } from "@dxos/react-ui";
21
19
  import { Form, omitId } from "@dxos/react-ui-form";
22
- import { Card } from "@dxos/react-ui-mosaic";
23
20
  import { descriptionMessage, mx } from "@dxos/ui-theme";
24
21
  var FormCard = ({ subject, projection }) => {
25
- const { invokePromise } = useOperationInvoker();
26
- const schema = Obj.getSchema(subject);
27
22
  const { t } = useTranslation(meta.id);
28
- const handleNavigate = useCallback(async () => {
29
- await invokePromise(Common.LayoutOperation.UpdatePopover, {
30
- state: false,
31
- anchorId: ""
32
- });
33
- await invokePromise(Common.LayoutOperation.Open, {
34
- subject: [
35
- Obj.getDXN(subject).toString()
36
- ]
37
- });
38
- }, [
39
- invokePromise,
40
- subject
23
+ const echoSchema = Obj.getSchema(subject);
24
+ const schema = useMemo(() => echoSchema && omitId(echoSchema), [
25
+ echoSchema
41
26
  ]);
42
- if (!schema) {
43
- return /* @__PURE__ */ React.createElement("p", {
44
- className: mx(descriptionMessage)
45
- }, t("unable to create preview message"));
46
- }
47
27
  const handleSave = useCallback((values, { changed }) => {
48
28
  const paths = Object.keys(changed).filter((path) => changed[path]);
49
29
  Obj.change(subject, () => {
@@ -54,20 +34,13 @@ var FormCard = ({ subject, projection }) => {
54
34
  }
55
35
  });
56
36
  }, []);
57
- const label = Obj.getLabel(subject) ?? Obj.getTypename(subject) ?? t("unable to create preview message");
58
- return /* @__PURE__ */ React.createElement(Card.Root, {
59
- id: subject.id
60
- }, /* @__PURE__ */ React.createElement(Card.Heading, {
61
- classNames: "flex items-center"
62
- }, label, /* @__PURE__ */ React.createElement("span", {
63
- className: "grow"
64
- }), /* @__PURE__ */ React.createElement(IconButton, {
65
- iconOnly: true,
66
- icon: "ph--arrow-right--regular",
67
- label: t("open object label"),
68
- onClick: handleNavigate
69
- })), /* @__PURE__ */ React.createElement(Form.Root, {
70
- schema: omitId(schema),
37
+ if (!schema) {
38
+ return /* @__PURE__ */ React.createElement("p", {
39
+ className: mx(descriptionMessage)
40
+ }, t("unable to create preview message"));
41
+ }
42
+ return /* @__PURE__ */ React.createElement(Card.Content, null, /* @__PURE__ */ React.createElement(Form.Root, {
43
+ schema,
71
44
  projection,
72
45
  values: subject,
73
46
  autoSave: true,
@@ -77,7 +50,7 @@ var FormCard = ({ subject, projection }) => {
77
50
 
78
51
  // src/cards/OrganizationCard.tsx
79
52
  import React2 from "react";
80
- import { Card as Card2 } from "@dxos/react-ui-mosaic";
53
+ import { Card as Card2 } from "@dxos/react-ui";
81
54
  var OrganizationCard = ({ subject }) => {
82
55
  const { image, description, website } = subject;
83
56
  return /* @__PURE__ */ React2.createElement(Card2.Content, null, /* @__PURE__ */ React2.createElement(Card2.Poster, {
@@ -99,11 +72,11 @@ var OrganizationCard = ({ subject }) => {
99
72
  // src/cards/PersonCard.tsx
100
73
  import React3 from "react";
101
74
  import { Avatar } from "@dxos/react-ui";
102
- import { Card as Card3 } from "@dxos/react-ui-mosaic";
75
+ import { Card as Card3 } from "@dxos/react-ui";
103
76
  var PersonCard = ({ subject }) => {
104
77
  const { image, organization: { target: organization } = {}, emails = [] } = subject;
105
- return /* @__PURE__ */ React3.createElement(Avatar.Root, null, /* @__PURE__ */ React3.createElement(Card3.Content, null, image && /* @__PURE__ */ React3.createElement(Card3.Row, {
106
- className: "plb-1"
78
+ return /* @__PURE__ */ React3.createElement(Card3.Content, null, /* @__PURE__ */ React3.createElement(Avatar.Root, null, image && /* @__PURE__ */ React3.createElement(Card3.Row, {
79
+ className: "py-1"
107
80
  }, /* @__PURE__ */ React3.createElement(Avatar.Content, {
108
81
  imgSrc: image,
109
82
  icon: "ph--user--regular",
@@ -119,16 +92,16 @@ var PersonCard = ({ subject }) => {
119
92
  icon: "ph--at--regular"
120
93
  }, /* @__PURE__ */ React3.createElement(Card3.Text, {
121
94
  truncate: true,
122
- className: "text-primaryText"
95
+ className: "text-primary-text"
123
96
  }, value)))));
124
97
  };
125
98
 
126
99
  // src/cards/ProjectCard.tsx
127
100
  import React4 from "react";
128
101
  import { Obj as Obj2 } from "@dxos/echo";
129
- import { Card as Card4 } from "@dxos/react-ui-mosaic";
102
+ import { Card as Card4 } from "@dxos/react-ui";
130
103
  var ProjectCard = ({ subject }) => {
131
- const { name: name2, image, description } = subject;
104
+ const { image, description } = subject;
132
105
  return /* @__PURE__ */ React4.createElement(Card4.Content, null, image && /* @__PURE__ */ React4.createElement(Card4.Poster, {
133
106
  image,
134
107
  alt: Obj2.getLabel(subject) ?? "",
@@ -142,13 +115,13 @@ var ProjectCard = ({ subject }) => {
142
115
  import * as SchemaAST from "effect/SchemaAST";
143
116
  import React5 from "react";
144
117
  import { PropertyMetaAnnotationId } from "@dxos/echo/internal";
145
- import { Card as Card5 } from "@dxos/react-ui-mosaic";
118
+ import { Card as Card5 } from "@dxos/react-ui";
146
119
  import { Task } from "@dxos/types";
147
120
  var TaskCard = ({ subject }) => {
148
121
  const { title, status } = subject;
149
122
  const statusOption = getActiveStatusOption(status);
150
123
  return /* @__PURE__ */ React5.createElement(Card5.Content, null, /* @__PURE__ */ React5.createElement(Card5.Heading, {
151
- classNames: "min-is-0 flex-1 truncate"
124
+ classNames: "min-w-0 flex-1 truncate"
152
125
  }, title), statusOption && /* @__PURE__ */ React5.createElement("span", {
153
126
  className: "dx-tag",
154
127
  "data-hue": statusOption.color
@@ -166,40 +139,48 @@ var getActiveStatusOption = (status) => {
166
139
  };
167
140
 
168
141
  // src/capabilities/react-surface/react-surface.tsx
169
- var react_surface_default = Capability.makeModule(() => Effect.succeed(Capability.contributes(Common2.Capability.ReactSurface, [
142
+ var react_surface_default = Capability.makeModule(() => Effect.succeed(Capability.contributes(Capabilities.ReactSurface, [
170
143
  //
171
144
  // Specific schema types.
172
145
  // TODO(burdon): Create helpers and factor out.
173
146
  //
174
- Common2.createSurface({
175
- id: `${meta.id}/schema-popover--contact`,
147
+ Surface.create({
148
+ id: `${meta.id}.schema-popover--contact`,
176
149
  role: "card--content",
177
150
  position: "hoist",
178
151
  filter: (data) => Obj3.instanceOf(Person.Person, data.subject),
179
152
  component: ({ data, role }) => {
180
- return /* @__PURE__ */ React6.createElement(PersonCard, {
153
+ return /* @__PURE__ */ React6.createElement(React6.Fragment, null, /* @__PURE__ */ React6.createElement(PersonCard, {
181
154
  role,
182
155
  subject: data.subject
183
- });
156
+ }), /* @__PURE__ */ React6.createElement(Surface.Surface, {
157
+ role: "related",
158
+ data,
159
+ limit: 1
160
+ }));
184
161
  }
185
162
  }),
186
- Common2.createSurface({
187
- id: `${meta.id}/schema-popover--organization`,
163
+ Surface.create({
164
+ id: `${meta.id}.schema-popover--organization`,
188
165
  role: "card--content",
189
166
  position: "hoist",
190
167
  filter: (data) => Obj3.instanceOf(Organization.Organization, data.subject),
191
168
  component: ({ data, role }) => {
192
- return /* @__PURE__ */ React6.createElement(OrganizationCard, {
169
+ return /* @__PURE__ */ React6.createElement(React6.Fragment, null, /* @__PURE__ */ React6.createElement(OrganizationCard, {
193
170
  role,
194
171
  subject: data.subject
195
- });
172
+ }), /* @__PURE__ */ React6.createElement(Surface.Surface, {
173
+ role: "related",
174
+ data,
175
+ limit: 1
176
+ }));
196
177
  }
197
178
  }),
198
- Common2.createSurface({
199
- id: `${meta.id}/schema-popover--project`,
179
+ Surface.create({
180
+ id: `${meta.id}.schema-popover--project`,
200
181
  role: "card--content",
201
182
  position: "hoist",
202
- filter: (data) => Obj3.instanceOf(Project.Project, data.subject),
183
+ filter: (data) => Obj3.instanceOf(Pipeline.Pipeline, data.subject),
203
184
  component: ({ data, role }) => {
204
185
  return /* @__PURE__ */ React6.createElement(ProjectCard, {
205
186
  role,
@@ -207,8 +188,8 @@ var react_surface_default = Capability.makeModule(() => Effect.succeed(Capabilit
207
188
  });
208
189
  }
209
190
  }),
210
- Common2.createSurface({
211
- id: `${meta.id}/schema-popover--task`,
191
+ Surface.create({
192
+ id: `${meta.id}.schema-popover--task`,
212
193
  role: "card--content",
213
194
  position: "hoist",
214
195
  filter: (data) => Obj3.instanceOf(Task2.Task, data.subject),
@@ -222,8 +203,8 @@ var react_surface_default = Capability.makeModule(() => Effect.succeed(Capabilit
222
203
  //
223
204
  // Fallback for any object.
224
205
  //
225
- Common2.createSurface({
226
- id: `${meta.id}/fallback-popover`,
206
+ Surface.create({
207
+ id: `${meta.id}.fallback-popover`,
227
208
  role: "card--content",
228
209
  position: "fallback",
229
210
  filter: (data) => Obj3.isObject(data.subject),
@@ -235,8 +216,8 @@ var react_surface_default = Capability.makeModule(() => Effect.succeed(Capabilit
235
216
  });
236
217
  }
237
218
  }),
238
- Common2.createSurface({
239
- id: `${meta.id}/section`,
219
+ Surface.create({
220
+ id: `${meta.id}.section`,
240
221
  role: [
241
222
  "section"
242
223
  ],
@@ -245,11 +226,11 @@ var react_surface_default = Capability.makeModule(() => Effect.succeed(Capabilit
245
226
  component: ({ data }) => {
246
227
  return /* @__PURE__ */ React6.createElement("div", {
247
228
  role: "none",
248
- className: "flex is-full justify-center"
229
+ className: "flex w-full justify-center"
249
230
  }, /* @__PURE__ */ React6.createElement("div", {
250
231
  role: "none",
251
- className: "pbs-2 pbe-2 card-min-width card-max-width"
252
- }, /* @__PURE__ */ React6.createElement(Card6.Root, null, /* @__PURE__ */ React6.createElement(Surface, {
232
+ className: "pt-2 pb-2 dx-card-min-width dx-card-max-width"
233
+ }, /* @__PURE__ */ React6.createElement(Card6.Root, null, /* @__PURE__ */ React6.createElement(Surface.Surface, {
253
234
  role: "card--content",
254
235
  data,
255
236
  limit: 1
@@ -260,4 +241,4 @@ var react_surface_default = Capability.makeModule(() => Effect.succeed(Capabilit
260
241
  export {
261
242
  react_surface_default as default
262
243
  };
263
- //# sourceMappingURL=react-surface-YCDD5VZC.mjs.map
244
+ //# sourceMappingURL=react-surface-L57ORUAL.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/react-surface/react-surface.tsx", "../../../src/cards/FormCard.tsx", "../../../src/cards/OrganizationCard.tsx", "../../../src/cards/PersonCard.tsx", "../../../src/cards/ProjectCard.tsx", "../../../src/cards/TaskCard.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport React from 'react';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { Surface } from '@dxos/app-framework/ui';\nimport { Obj } from '@dxos/echo';\nimport { Card } from '@dxos/react-ui';\nimport { type ProjectionModel } from '@dxos/schema';\nimport { Organization, Person, Pipeline, Task } from '@dxos/types';\n\nimport { FormCard, OrganizationCard, PersonCard, ProjectCard, TaskCard } from '../../cards';\nimport { meta } from '../../meta';\n\nexport default Capability.makeModule(() =>\n Effect.succeed(\n Capability.contributes(Capabilities.ReactSurface, [\n //\n // Specific schema types.\n // TODO(burdon): Create helpers and factor out.\n //\n\n Surface.create<{ subject: Person.Person }>({\n id: `${meta.id}.schema-popover--contact`,\n role: 'card--content',\n position: 'hoist',\n filter: (data): data is { subject: Person.Person } => Obj.instanceOf(Person.Person, data.subject),\n component: ({ data, role }) => {\n return (\n <>\n <PersonCard role={role} subject={data.subject} />\n <Surface.Surface role='related' data={data} limit={1} />\n </>\n );\n },\n }),\n Surface.create({\n id: `${meta.id}.schema-popover--organization`,\n role: 'card--content',\n position: 'hoist',\n filter: (data): data is { subject: Organization.Organization } =>\n Obj.instanceOf(Organization.Organization, data.subject),\n component: ({ data, role }) => {\n return (\n <>\n <OrganizationCard role={role} subject={data.subject} />\n <Surface.Surface role='related' data={data} limit={1} />\n </>\n );\n },\n }),\n Surface.create({\n id: `${meta.id}.schema-popover--project`,\n role: 'card--content',\n position: 'hoist',\n filter: (data): data is { subject: Pipeline.Pipeline } => Obj.instanceOf(Pipeline.Pipeline, data.subject),\n component: ({ data, role }) => {\n return <ProjectCard role={role} subject={data.subject} />;\n },\n }),\n Surface.create({\n id: `${meta.id}.schema-popover--task`,\n role: 'card--content',\n position: 'hoist',\n filter: (data): data is { subject: Task.Task } => Obj.instanceOf(Task.Task, data.subject),\n component: ({ data, role }) => {\n return <TaskCard role={role} subject={data.subject} />;\n },\n }),\n\n //\n // Fallback for any object.\n //\n\n Surface.create({\n id: `${meta.id}.fallback-popover`,\n role: 'card--content',\n position: 'fallback',\n filter: (data): data is { subject: Obj.Unknown; projection?: ProjectionModel } => Obj.isObject(data.subject),\n component: ({ data, role }) => {\n return <FormCard role={role} subject={data.subject} projection={data.projection} />;\n },\n }),\n\n Surface.create({\n id: `${meta.id}.section`,\n role: ['section'],\n position: 'fallback',\n filter: (data): data is { subject: Obj.Unknown } => Obj.isObject(data.subject),\n component: ({ data }) => {\n return (\n <div role='none' className='flex w-full justify-center'>\n <div role='none' className='pt-2 pb-2 dx-card-min-width dx-card-max-width'>\n <Card.Root>\n <Surface.Surface role='card--content' data={data} limit={1} />\n </Card.Root>\n </div>\n </div>\n );\n },\n }),\n ]),\n ),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport { type SurfaceComponentProps } from '@dxos/app-toolkit/ui';\nimport { Obj } from '@dxos/echo';\nimport { type JsonPath, splitJsonPath } from '@dxos/effect';\nimport { Card, useTranslation } from '@dxos/react-ui';\nimport { Form, omitId } from '@dxos/react-ui-form';\nimport { type ProjectionModel } from '@dxos/schema';\nimport { descriptionMessage, mx } from '@dxos/ui-theme';\n\nimport { meta } from '../meta';\n\nexport const FormCard = ({ subject, projection }: SurfaceComponentProps & { projection?: ProjectionModel }) => {\n const { t } = useTranslation(meta.id);\n const echoSchema = Obj.getSchema(subject);\n const schema = useMemo(() => echoSchema && omitId(echoSchema), [echoSchema]);\n\n const handleSave = useCallback((values: any, { changed }: { changed: Record<string, boolean> }) => {\n const paths = Object.keys(changed).filter((path) => changed[path]);\n Obj.change(subject, () => {\n for (const path of paths) {\n const value = values[path];\n const parts = splitJsonPath(path as JsonPath);\n Obj.setValue(subject, parts, value);\n }\n });\n }, []);\n\n if (!schema) {\n return <p className={mx(descriptionMessage)}>{t('unable to create preview message')}</p>;\n }\n\n return (\n <Card.Content>\n <Form.Root schema={schema} projection={projection} values={subject} autoSave onSave={handleSave}>\n <Form.Viewport>\n <Form.Content>\n <Form.FieldSet />\n </Form.Content>\n </Form.Viewport>\n </Form.Root>\n </Card.Content>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type SurfaceComponentProps } from '@dxos/app-toolkit/ui';\nimport { Card } from '@dxos/react-ui';\nimport { type Organization } from '@dxos/types';\n\nexport const OrganizationCard = ({ subject }: SurfaceComponentProps<Organization.Organization>) => {\n const { image, description, website } = subject;\n\n return (\n <Card.Content>\n <Card.Poster\n alt={name ?? ''}\n {...(image ? { image } : { icon: 'ph--building-office--regular' })}\n classNames={!image && 'opacity-50'}\n />\n {description && (\n <Card.Row>\n <Card.Text variant='description'>{description}</Card.Text>\n </Card.Row>\n )}\n {website && <Card.Link label={website} href={website} />}\n </Card.Content>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type SurfaceComponentProps } from '@dxos/app-toolkit/ui';\nimport { Avatar } from '@dxos/react-ui';\nimport { Card } from '@dxos/react-ui';\nimport { type Person } from '@dxos/types';\n\nexport const PersonCard = ({ subject }: SurfaceComponentProps<Person.Person>) => {\n const { image, organization: { target: organization } = {}, emails = [] } = subject;\n\n return (\n <Card.Content>\n <Avatar.Root>\n {image && (\n <Card.Row className='py-1'>\n <Avatar.Content\n imgSrc={image}\n icon='ph--user--regular'\n size={16}\n classNames={!image && 'opacity-50'}\n hue='neutral'\n variant='square'\n />\n </Card.Row>\n )}\n {organization?.name && (\n <Card.Action\n icon='ph--buildings--regular'\n label={organization.name}\n // onClick={onSelect ? () => onSelect(organization) : undefined}\n />\n )}\n {emails.map(({ value }) => (\n <Card.Row key={value} icon='ph--at--regular'>\n <Card.Text truncate className='text-primary-text'>\n {value}\n </Card.Text>\n </Card.Row>\n ))}\n </Avatar.Root>\n </Card.Content>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type SurfaceComponentProps } from '@dxos/app-toolkit/ui';\nimport { Obj } from '@dxos/echo';\nimport { Card } from '@dxos/react-ui';\nimport { type Pipeline } from '@dxos/types';\n\nexport const ProjectCard = ({ subject }: SurfaceComponentProps<Pipeline.Pipeline>) => {\n const { image, description } = subject;\n\n return (\n <Card.Content>\n {image && <Card.Poster image={image} alt={Obj.getLabel(subject) ?? ''} aspect='auto' />}\n {/* <CardHeader label={name} subject={subject} db={db} /> */}\n {description && <Card.Text variant='description'>{description}</Card.Text>}\n </Card.Content>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as SchemaAST from 'effect/SchemaAST';\nimport React from 'react';\n\nimport { type SurfaceComponentProps } from '@dxos/app-toolkit/ui';\nimport { type PropertyMetaAnnotation, PropertyMetaAnnotationId } from '@dxos/echo/internal';\nimport { Card } from '@dxos/react-ui';\nimport { Task } from '@dxos/types';\n\nexport const TaskCard = ({ subject }: SurfaceComponentProps<Task.Task>) => {\n const { title, status } = subject;\n const statusOption = getActiveStatusOption(status);\n\n return (\n <Card.Content>\n <Card.Heading classNames='min-w-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 </Card.Content>\n );\n};\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(Task.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"],
5
+ "mappings": "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",
6
+ "names": ["Effect", "React", "Capabilities", "Capability", "Surface", "Obj", "Card", "Organization", "Person", "Pipeline", "Task", "React", "useCallback", "useMemo", "Obj", "splitJsonPath", "Card", "useTranslation", "Form", "omitId", "descriptionMessage", "mx", "FormCard", "subject", "projection", "t", "useTranslation", "meta", "id", "echoSchema", "Obj", "getSchema", "schema", "useMemo", "omitId", "handleSave", "useCallback", "values", "changed", "paths", "Object", "keys", "filter", "path", "change", "value", "parts", "splitJsonPath", "setValue", "p", "className", "mx", "descriptionMessage", "Card", "Content", "Form", "Root", "autoSave", "onSave", "Viewport", "FieldSet", "React", "Card", "OrganizationCard", "subject", "image", "description", "website", "React", "Card", "Content", "Poster", "alt", "name", "icon", "classNames", "Row", "Text", "variant", "Link", "label", "href", "React", "Avatar", "Card", "PersonCard", "subject", "image", "organization", "target", "emails", "React", "Card", "Content", "Avatar", "Root", "Row", "className", "imgSrc", "icon", "size", "classNames", "hue", "variant", "name", "Action", "label", "map", "value", "key", "Text", "truncate", "React", "Obj", "Card", "ProjectCard", "subject", "image", "description", "React", "Card", "Content", "Poster", "alt", "Obj", "getLabel", "aspect", "Text", "variant", "SchemaAST", "React", "PropertyMetaAnnotationId", "Card", "Task", "TaskCard", "subject", "title", "status", "statusOption", "getActiveStatusOption", "React", "Card", "Content", "Heading", "classNames", "span", "className", "data-hue", "color", "properties", "getPropertySignatures", "Task", "ast", "statusProperty", "find", "p", "name", "statusMeta", "getAnnotation", "PropertyMetaAnnotationId", "type", "types", "options", "value", "singleSelect", "id", "Capability", "makeModule", "succeed", "contributes", "Capabilities", "ReactSurface", "Surface", "create", "id", "meta", "role", "position", "filter", "data", "Obj", "instanceOf", "Person", "subject", "component", "React", "PersonCard", "limit", "Organization", "OrganizationCard", "Pipeline", "ProjectCard", "Task", "TaskCard", "isObject", "FormCard", "projection", "div", "className", "Card", "Root"]
7
+ }
@@ -3,7 +3,7 @@ import { createRequire } from 'node:module';const require = createRequire(import
3
3
  // src/meta.ts
4
4
  import { trim } from "@dxos/util";
5
5
  var meta = {
6
- id: "dxos.org/plugin/preview",
6
+ id: "org.dxos.plugin.preview",
7
7
  name: "Preview",
8
8
  description: trim`
9
9
  Rich preview panel for viewing object content without opening full editors.
@@ -16,4 +16,4 @@ var meta = {
16
16
  export {
17
17
  meta
18
18
  };
19
- //# sourceMappingURL=chunk-2G4FUGDA.mjs.map
19
+ //# sourceMappingURL=chunk-GFWHEHC5.mjs.map