@dxos/plugin-template 0.8.4-main.2e9d522 → 0.8.4-main.3c1ae3b

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 (34) hide show
  1. package/dist/lib/browser/{chunk-LT6IO5CC.mjs → chunk-6T47OUOE.mjs} +9 -3
  2. package/dist/lib/browser/chunk-6T47OUOE.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +11 -17
  4. package/dist/lib/browser/index.mjs.map +3 -3
  5. package/dist/lib/browser/{intent-resolver-TZQ5RSMB.mjs → intent-resolver-4BJJ7NBA.mjs} +5 -5
  6. package/dist/lib/browser/{intent-resolver-TZQ5RSMB.mjs.map → intent-resolver-4BJJ7NBA.mjs.map} +3 -3
  7. package/dist/lib/browser/meta.json +1 -1
  8. package/dist/lib/browser/{react-surface-NRU2N7BS.mjs → react-surface-6MKCSI4S.mjs} +8 -8
  9. package/dist/lib/browser/react-surface-6MKCSI4S.mjs.map +7 -0
  10. package/dist/lib/browser/types/index.mjs +1 -1
  11. package/dist/types/src/TemplatePlugin.d.ts +1 -1
  12. package/dist/types/src/TemplatePlugin.d.ts.map +1 -1
  13. package/dist/types/src/capabilities/index.d.ts +2 -2
  14. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  15. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
  16. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  17. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  18. package/dist/types/src/components/TemplateContainer.d.ts +1 -1
  19. package/dist/types/src/components/TemplateContainer.d.ts.map +1 -1
  20. package/dist/types/src/meta.d.ts.map +1 -1
  21. package/dist/types/src/translations.d.ts +1 -0
  22. package/dist/types/src/translations.d.ts.map +1 -1
  23. package/dist/types/src/types/schema.d.ts +6 -5
  24. package/dist/types/src/types/schema.d.ts.map +1 -1
  25. package/dist/types/tsconfig.tsbuildinfo +1 -1
  26. package/package.json +27 -24
  27. package/src/TemplatePlugin.tsx +39 -50
  28. package/src/capabilities/intent-resolver.ts +1 -1
  29. package/src/components/TemplateContainer.tsx +2 -3
  30. package/src/meta.ts +6 -0
  31. package/src/translations.ts +1 -0
  32. package/src/types/schema.ts +2 -2
  33. package/dist/lib/browser/chunk-LT6IO5CC.mjs.map +0 -7
  34. package/dist/lib/browser/react-surface-NRU2N7BS.mjs.map +0 -7
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/plugin-template",
3
- "version": "0.8.4-main.2e9d522",
3
+ "version": "0.8.4-main.3c1ae3b",
4
4
  "description": "Template for new plugin",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -10,10 +10,12 @@
10
10
  "type": "module",
11
11
  "exports": {
12
12
  ".": {
13
+ "source": "./src/index.ts",
13
14
  "types": "./dist/types/src/index.d.ts",
14
15
  "browser": "./dist/lib/browser/index.mjs"
15
16
  },
16
17
  "./types": {
18
+ "source": "./src/types/index.ts",
17
19
  "types": "./dist/types/src/types/index.d.ts",
18
20
  "browser": "./dist/lib/browser/types/index.mjs"
19
21
  }
@@ -32,34 +34,35 @@
32
34
  ],
33
35
  "dependencies": {
34
36
  "@preact-signals/safe-react": "^0.9.0",
35
- "@preact/signals-core": "^1.9.0",
36
- "effect": "3.17.0",
37
- "@dxos/app-framework": "0.8.4-main.2e9d522",
38
- "@dxos/echo": "0.8.4-main.2e9d522",
39
- "@dxos/async": "0.8.4-main.2e9d522",
40
- "@dxos/echo-schema": "0.8.4-main.2e9d522",
41
- "@dxos/plugin-client": "0.8.4-main.2e9d522",
42
- "@dxos/plugin-graph": "0.8.4-main.2e9d522",
43
- "@dxos/plugin-space": "0.8.4-main.2e9d522",
44
- "@dxos/react-ui-stack": "0.8.4-main.2e9d522",
45
- "@dxos/react-client": "0.8.4-main.2e9d522"
37
+ "@preact/signals-core": "^1.12.1",
38
+ "@radix-ui/react-context": "1.1.1",
39
+ "effect": "3.18.3",
40
+ "@dxos/app-framework": "0.8.4-main.3c1ae3b",
41
+ "@dxos/async": "0.8.4-main.3c1ae3b",
42
+ "@dxos/echo": "0.8.4-main.3c1ae3b",
43
+ "@dxos/plugin-client": "0.8.4-main.3c1ae3b",
44
+ "@dxos/plugin-space": "0.8.4-main.3c1ae3b",
45
+ "@dxos/util": "0.8.4-main.3c1ae3b",
46
+ "@dxos/react-ui-stack": "0.8.4-main.3c1ae3b",
47
+ "@dxos/plugin-graph": "0.8.4-main.3c1ae3b",
48
+ "@dxos/react-client": "0.8.4-main.3c1ae3b"
46
49
  },
47
50
  "devDependencies": {
48
- "@types/react": "~18.2.0",
49
- "@types/react-dom": "~18.2.0",
50
- "react": "~18.2.0",
51
- "react-dom": "~18.2.0",
52
- "vite": "5.4.7",
53
- "@dxos/react-ui-theme": "0.8.4-main.2e9d522",
54
- "@dxos/react-ui": "0.8.4-main.2e9d522",
55
- "@dxos/storybook-utils": "0.8.4-main.2e9d522"
51
+ "@types/react": "~19.2.2",
52
+ "@types/react-dom": "~19.2.2",
53
+ "react": "~19.2.0",
54
+ "react-dom": "~19.2.0",
55
+ "vite": "7.1.9",
56
+ "@dxos/react-ui-theme": "0.8.4-main.3c1ae3b",
57
+ "@dxos/react-ui": "0.8.4-main.3c1ae3b",
58
+ "@dxos/storybook-utils": "0.8.4-main.3c1ae3b"
56
59
  },
57
60
  "peerDependencies": {
58
61
  "effect": "^3.13.3",
59
- "react": "~18.2.0",
60
- "react-dom": "~18.2.0",
61
- "@dxos/react-ui": "0.8.4-main.2e9d522",
62
- "@dxos/react-ui-theme": "0.8.4-main.2e9d522"
62
+ "react": "^19.0.0",
63
+ "react-dom": "^19.0.0",
64
+ "@dxos/react-ui": "0.8.4-main.3c1ae3b",
65
+ "@dxos/react-ui-theme": "0.8.4-main.3c1ae3b"
63
66
  },
64
67
  "publishConfig": {
65
68
  "access": "public"
@@ -2,59 +2,48 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { createIntent, Capabilities, contributes, Events, defineModule, definePlugin } from '@dxos/app-framework';
5
+ import { Capabilities, Events, contributes, createIntent, defineModule, definePlugin } from '@dxos/app-framework';
6
6
  import { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';
7
- import { SpaceCapabilities } from '@dxos/plugin-space';
8
- import { defineObjectForm } from '@dxos/plugin-space/types';
7
+ import { type CreateObjectIntent } from '@dxos/plugin-space/types';
9
8
 
10
- import { ReactSurface, IntentResolver } from './capabilities';
9
+ import { IntentResolver, ReactSurface } from './capabilities';
11
10
  import { meta } from './meta';
12
11
  import { translations } from './translations';
13
12
  import { Template } from './types';
14
13
 
15
- export const TemplatePlugin = () =>
16
- definePlugin(meta, [
17
- defineModule({
18
- id: `${meta.id}/module/translations`,
19
- activatesOn: Events.SetupTranslations,
20
- activate: () => contributes(Capabilities.Translations, translations),
21
- }),
22
- defineModule({
23
- id: `${meta.id}/module/metadata`,
24
- activatesOn: Events.SetupMetadata,
25
- activate: () =>
26
- contributes(Capabilities.Metadata, {
27
- id: Template.Data.typename,
28
- metadata: {
29
- icon: 'ph--asterisk--regular',
30
- },
31
- }),
32
- }),
33
- defineModule({
34
- id: `${meta.id}/module/object-form`,
35
- activatesOn: ClientEvents.SetupSchema,
36
- activate: () =>
37
- contributes(
38
- SpaceCapabilities.ObjectForm,
39
- defineObjectForm({
40
- objectSchema: Template.Data,
41
- getIntent: () => createIntent(Template.Create),
42
- }),
43
- ),
44
- }),
45
- defineModule({
46
- id: `${meta.id}/module/schema`,
47
- activatesOn: ClientEvents.SetupSchema,
48
- activate: () => contributes(ClientCapabilities.Schema, [Template.Data]),
49
- }),
50
- defineModule({
51
- id: `${meta.id}/module/react-surface`,
52
- activatesOn: Events.SetupReactSurface,
53
- activate: ReactSurface,
54
- }),
55
- defineModule({
56
- id: `${meta.id}/module/intent-resolver`,
57
- activatesOn: Events.SetupIntentResolver,
58
- activate: IntentResolver,
59
- }),
60
- ]);
14
+ export const TemplatePlugin = definePlugin(meta, () => [
15
+ defineModule({
16
+ id: `${meta.id}/module/translations`,
17
+ activatesOn: Events.SetupTranslations,
18
+ activate: () => contributes(Capabilities.Translations, translations),
19
+ }),
20
+ defineModule({
21
+ id: `${meta.id}/module/metadata`,
22
+ activatesOn: Events.SetupMetadata,
23
+ activate: () =>
24
+ contributes(Capabilities.Metadata, {
25
+ id: Template.Data.typename,
26
+ metadata: {
27
+ icon: 'ph--asterisk--regular',
28
+ iconHue: 'sky',
29
+ createObjectIntent: (() => createIntent(Template.Create)) satisfies CreateObjectIntent,
30
+ addToCollectionOnCreate: true,
31
+ },
32
+ }),
33
+ }),
34
+ defineModule({
35
+ id: `${meta.id}/module/schema`,
36
+ activatesOn: ClientEvents.SetupSchema,
37
+ activate: () => contributes(ClientCapabilities.Schema, [Template.Data]),
38
+ }),
39
+ defineModule({
40
+ id: `${meta.id}/module/react-surface`,
41
+ activatesOn: Events.SetupReactSurface,
42
+ activate: ReactSurface,
43
+ }),
44
+ defineModule({
45
+ id: `${meta.id}/module/intent-resolver`,
46
+ activatesOn: Events.SetupIntentResolver,
47
+ activate: IntentResolver,
48
+ }),
49
+ ]);
@@ -2,7 +2,7 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { contributes, Capabilities, createResolver } from '@dxos/app-framework';
5
+ import { Capabilities, contributes, createResolver } from '@dxos/app-framework';
6
6
 
7
7
  import { Template } from '../types';
8
8
 
@@ -4,15 +4,14 @@
4
4
 
5
5
  import React from 'react';
6
6
 
7
- import { type Obj } from '@dxos/echo';
8
- import { fullyQualifiedId } from '@dxos/react-client/echo';
7
+ import { Obj } from '@dxos/echo';
9
8
  import { StackItem } from '@dxos/react-ui-stack';
10
9
 
11
10
  export const TemplateContainer = ({ object }: { object: Obj.Any; role: string }) => {
12
11
  return (
13
12
  <StackItem.Content>
14
13
  <pre className='m-4 p-2 ring'>
15
- <span>{fullyQualifiedId(object)}</span>
14
+ <span>{Obj.getDXN(object).toString()}</span>
16
15
  </pre>
17
16
  </StackItem.Content>
18
17
  );
package/src/meta.ts CHANGED
@@ -3,10 +3,16 @@
3
3
  //
4
4
 
5
5
  import { type PluginMeta } from '@dxos/app-framework';
6
+ import { trim } from '@dxos/util';
6
7
 
7
8
  export const meta: PluginMeta = {
8
9
  id: 'dxos.org/plugin/template',
9
10
  name: 'Template',
11
+ description: trim`
12
+ Create reusable templates for documents, tables, and other objects.
13
+ Define structured patterns that can be quickly instantiated with pre-configured content and settings.
14
+ `,
10
15
  icon: 'ph--asterisk--regular',
16
+ iconHue: 'sky',
11
17
  source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-template',
12
18
  };
@@ -18,6 +18,7 @@ export const translations = [
18
18
  'object name placeholder': 'New template',
19
19
  'rename object label': 'Rename template',
20
20
  'delete object label': 'Delete template',
21
+ 'object deleted label': 'Template deleted',
21
22
  },
22
23
  [meta.id]: {
23
24
  'plugin name': 'Template',
@@ -2,10 +2,10 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { Schema } from 'effect';
5
+ import * as Schema from 'effect/Schema';
6
6
 
7
7
  import { Obj } from '@dxos/echo';
8
- import { TypedObject } from '@dxos/echo-schema';
8
+ import { TypedObject } from '@dxos/echo/internal';
9
9
  import { ReactiveObjectSchema } from '@dxos/react-client/echo';
10
10
 
11
11
  import { meta } from '../meta';
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/types/schema.ts", "../../../src/meta.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { Obj } from '@dxos/echo';\nimport { TypedObject } from '@dxos/echo-schema';\nimport { ReactiveObjectSchema } from '@dxos/react-client/echo';\n\nimport { meta } from '../meta';\n\nexport namespace Template {\n export class Create extends Schema.TaggedClass<Create>()(`${meta.id}/action/create`, {\n input: Schema.Struct({\n name: Schema.optional(Schema.String),\n }),\n output: Schema.Struct({\n object: ReactiveObjectSchema,\n }),\n }) {}\n\n export class Data extends TypedObject({\n typename: 'dxos.org/type/Data',\n version: '0.1.0',\n })({\n name: Schema.optional(Schema.String),\n }) {}\n\n export const make = (props: Partial<Data>) => Obj.make(Data, props);\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\n\nexport const meta: PluginMeta = {\n id: 'dxos.org/plugin/template',\n name: 'Template',\n icon: 'ph--asterisk--regular',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-template',\n};\n"],
5
- "mappings": ";AAIA,SAASA,cAAc;AAEvB,SAASC,WAAW;AACpB,SAASC,mBAAmB;AAC5B,SAASC,4BAA4B;;;ACF9B,IAAMC,OAAmB;EAC9BC,IAAI;EACJC,MAAM;EACNC,MAAM;EACNC,QAAQ;AACV;;;UDCiBC,WAAAA;EACR,MAAMC,eAAeC,OAAOC,YAAW,EAAW,GAAGC,KAAKC,EAAE,kBAAkB;IACnFC,OAAOJ,OAAOK,OAAO;MACnBC,MAAMN,OAAOO,SAASP,OAAOQ,MAAM;IACrC,CAAA;IACAC,QAAQT,OAAOK,OAAO;MACpBK,QAAQC;IACV,CAAA;EACF,CAAA,EAAA;EAAI;YAPSZ,SAAAA;EASN,MAAMa,aAAaC,YAAY;IACpCC,UAAU;IACVC,SAAS;EACX,CAAA,EAAG;IACDT,MAAMN,OAAOO,SAASP,OAAOQ,MAAM;EACrC,CAAA,EAAA;EAAI;YALSI,OAAAA;YAOAI,OAAO,CAACC,UAAyBC,IAAIF,KAAKJ,MAAMK,KAAAA;AAC/D,GAlBiBnB,aAAAA,WAAAA,CAAAA,EAAAA;;",
6
- "names": ["Schema", "Obj", "TypedObject", "ReactiveObjectSchema", "meta", "id", "name", "icon", "source", "Template", "Create", "Schema", "TaggedClass", "meta", "id", "input", "Struct", "name", "optional", "String", "output", "object", "ReactiveObjectSchema", "Data", "TypedObject", "typename", "version", "make", "props", "Obj"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/react-surface.tsx", "../../../src/components/TemplateContainer.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Capabilities, contributes, createSurface } from '@dxos/app-framework';\nimport { Obj } from '@dxos/echo';\n\nimport { TemplateContainer } from '../components';\nimport { meta } from '../meta';\nimport { Template } from '../types';\n\nexport default () =>\n contributes(\n Capabilities.ReactSurface,\n createSurface({\n id: meta.id,\n role: 'article',\n filter: (data): data is { subject: Obj.Any } => Obj.instanceOf(Template.Data, data.subject),\n component: ({ data, role }) => <TemplateContainer role={role} object={data.subject} />,\n }),\n );\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type Obj } from '@dxos/echo';\nimport { fullyQualifiedId } from '@dxos/react-client/echo';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nexport const TemplateContainer = ({ object }: { object: Obj.Any; role: string }) => {\n return (\n <StackItem.Content>\n <pre className='m-4 p-2 ring'>\n <span>{fullyQualifiedId(object)}</span>\n </pre>\n </StackItem.Content>\n );\n};\n"],
5
- "mappings": ";;;;;;AAIA,OAAOA,YAAW;AAElB,SAASC,cAAcC,aAAaC,qBAAqB;AACzD,SAASC,WAAW;;;;ACHpB,OAAOC,WAAW;AAGlB,SAASC,wBAAwB;AACjC,SAASC,iBAAiB;AAEnB,IAAMC,oBAAoB,CAAC,EAAEC,OAAM,MAAqC;;;AAC7E,WACE,sBAAA,cAACC,UAAUC,SAAO,MAChB,sBAAA,cAACC,OAAAA;MAAIC,WAAU;OACb,sBAAA,cAACC,QAAAA,MAAMC,iBAAiBN,MAAAA,CAAAA,CAAAA,CAAAA;;;;AAIhC;;;ADLA,IAAA,wBAAe,MACbO,YACEC,aAAaC,cACbC,cAAc;EACZC,IAAIC,KAAKD;EACTE,MAAM;EACNC,QAAQ,CAACC,SAAuCC,IAAIC,WAAWC,SAASC,MAAMJ,KAAKK,OAAO;EAC1FC,WAAW,CAAC,EAAEN,MAAMF,KAAI,MAAO,gBAAAS,OAAA,cAACC,mBAAAA;IAAkBV;IAAYW,QAAQT,KAAKK;;AAC7E,CAAA,CAAA;",
6
- "names": ["React", "Capabilities", "contributes", "createSurface", "Obj", "React", "fullyQualifiedId", "StackItem", "TemplateContainer", "object", "StackItem", "Content", "pre", "className", "span", "fullyQualifiedId", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "meta", "role", "filter", "data", "Obj", "instanceOf", "Template", "Data", "subject", "component", "React", "TemplateContainer", "object"]
7
- }