@dxos/plugin-registry 0.8.3 → 0.8.4-main.3f58842

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 (27) hide show
  1. package/dist/lib/browser/{app-graph-builder-J5YHAGNI.mjs → app-graph-builder-LKQBQDUA.mjs} +3 -3
  2. package/dist/lib/browser/{chunk-ISC56E5F.mjs → chunk-AEBASNOI.mjs} +2 -2
  3. package/dist/lib/browser/index.mjs +11 -11
  4. package/dist/lib/browser/index.mjs.map +3 -3
  5. package/dist/lib/browser/{intent-resolver-AQJNBUT3.mjs → intent-resolver-W67CIJI3.mjs} +3 -3
  6. package/dist/lib/browser/meta.json +1 -1
  7. package/dist/lib/browser/{react-surface-W5RNDLXV.mjs → react-surface-3GNB7AOY.mjs} +10 -12
  8. package/dist/lib/browser/{react-surface-W5RNDLXV.mjs.map → react-surface-3GNB7AOY.mjs.map} +2 -2
  9. package/dist/types/src/components/Icon.stories.d.ts +1 -1
  10. package/dist/types/src/components/Icon.stories.d.ts.map +1 -1
  11. package/dist/types/src/components/PluginDetail.stories.d.ts +1 -1
  12. package/dist/types/src/components/PluginDetail.stories.d.ts.map +1 -1
  13. package/dist/types/src/components/PluginList.stories.d.ts +1 -1
  14. package/dist/types/src/components/PluginList.stories.d.ts.map +1 -1
  15. package/dist/types/src/translations.d.ts +19 -19
  16. package/dist/types/src/translations.d.ts.map +1 -1
  17. package/dist/types/tsconfig.tsbuildinfo +1 -1
  18. package/package.json +21 -22
  19. package/src/RegistryPlugin.tsx +1 -1
  20. package/src/capabilities/react-surface.tsx +1 -1
  21. package/src/components/Icon.stories.tsx +4 -3
  22. package/src/components/PluginDetail.stories.tsx +2 -2
  23. package/src/components/PluginList.stories.tsx +2 -2
  24. package/src/translations.ts +6 -4
  25. /package/dist/lib/browser/{app-graph-builder-J5YHAGNI.mjs.map → app-graph-builder-LKQBQDUA.mjs.map} +0 -0
  26. /package/dist/lib/browser/{chunk-ISC56E5F.mjs.map → chunk-AEBASNOI.mjs.map} +0 -0
  27. /package/dist/lib/browser/{intent-resolver-AQJNBUT3.mjs.map → intent-resolver-W67CIJI3.mjs.map} +0 -0
@@ -2,9 +2,9 @@ import {
2
2
  REGISTRY_ID,
3
3
  REGISTRY_KEY,
4
4
  REGISTRY_PLUGIN
5
- } from "./chunk-ISC56E5F.mjs";
5
+ } from "./chunk-AEBASNOI.mjs";
6
6
 
7
- // packages/plugins/plugin-registry/src/capabilities/app-graph-builder.ts
7
+ // src/capabilities/app-graph-builder.ts
8
8
  import { Rx } from "@effect-rx/rx-react";
9
9
  import { Option, pipe } from "effect";
10
10
  import { Capabilities, contributes, createIntent, SettingsAction } from "@dxos/app-framework";
@@ -158,4 +158,4 @@ var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBu
158
158
  export {
159
159
  app_graph_builder_default as default
160
160
  };
161
- //# sourceMappingURL=app-graph-builder-J5YHAGNI.mjs.map
161
+ //# sourceMappingURL=app-graph-builder-LKQBQDUA.mjs.map
@@ -1,4 +1,4 @@
1
- // packages/plugins/plugin-registry/src/meta.ts
1
+ // src/meta.ts
2
2
  var REGISTRY_PLUGIN = "dxos.org/plugin/registry";
3
3
  var REGISTRY_ID = "!dxos:plugin-registry";
4
4
  var REGISTRY_KEY = "plugin-registry";
@@ -13,4 +13,4 @@ export {
13
13
  REGISTRY_KEY,
14
14
  meta
15
15
  };
16
- //# sourceMappingURL=chunk-ISC56E5F.mjs.map
16
+ //# sourceMappingURL=chunk-AEBASNOI.mjs.map
@@ -3,22 +3,22 @@ import {
3
3
  REGISTRY_KEY,
4
4
  REGISTRY_PLUGIN,
5
5
  meta
6
- } from "./chunk-ISC56E5F.mjs";
6
+ } from "./chunk-AEBASNOI.mjs";
7
7
 
8
- // packages/plugins/plugin-registry/src/RegistryPlugin.tsx
8
+ // src/RegistryPlugin.tsx
9
9
  import { Capabilities, contributes, defineModule, definePlugin, Events } from "@dxos/app-framework";
10
10
 
11
- // packages/plugins/plugin-registry/src/capabilities/index.ts
11
+ // src/capabilities/index.ts
12
12
  import { lazy } from "@dxos/app-framework";
13
- var AppGraphBuilder = lazy(() => import("./app-graph-builder-J5YHAGNI.mjs"));
14
- var IntentResolver = lazy(() => import("./intent-resolver-AQJNBUT3.mjs"));
15
- var ReactSurface = lazy(() => import("./react-surface-W5RNDLXV.mjs"));
13
+ var AppGraphBuilder = lazy(() => import("./app-graph-builder-LKQBQDUA.mjs"));
14
+ var IntentResolver = lazy(() => import("./intent-resolver-W67CIJI3.mjs"));
15
+ var ReactSurface = lazy(() => import("./react-surface-3GNB7AOY.mjs"));
16
16
 
17
- // packages/plugins/plugin-registry/src/translations.ts
18
- var translations_default = [
17
+ // src/translations.ts
18
+ var translations = [
19
19
  {
20
20
  "en-US": {
21
- [REGISTRY_PLUGIN]: {
21
+ [meta.id]: {
22
22
  "plugin name": "Registry",
23
23
  "details label": "Details",
24
24
  "home page label": "Website",
@@ -38,12 +38,12 @@ var translations_default = [
38
38
  }
39
39
  ];
40
40
 
41
- // packages/plugins/plugin-registry/src/RegistryPlugin.tsx
41
+ // src/RegistryPlugin.tsx
42
42
  var RegistryPlugin = () => definePlugin(meta, [
43
43
  defineModule({
44
44
  id: `${meta.id}/module/translations`,
45
45
  activatesOn: Events.SetupTranslations,
46
- activate: () => contributes(Capabilities.Translations, translations_default)
46
+ activate: () => contributes(Capabilities.Translations, translations)
47
47
  }),
48
48
  defineModule({
49
49
  id: `${meta.id}/module/react-surface`,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/RegistryPlugin.tsx", "../../../src/capabilities/index.ts", "../../../src/translations.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Capabilities, contributes, defineModule, definePlugin, Events } from '@dxos/app-framework';\n\nimport { AppGraphBuilder, IntentResolver, ReactSurface } from './capabilities';\nimport { meta } from './meta';\nimport translations from './translations';\n\nexport const RegistryPlugin = () =>\n definePlugin(meta, [\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, translations),\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntentResolver,\n activate: IntentResolver,\n }),\n defineModule({\n id: `${meta.id}/module/app-graph-builder`,\n activatesOn: Events.SetupAppGraph,\n activate: AppGraphBuilder,\n }),\n ]);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { lazy } from '@dxos/app-framework';\n\nexport const AppGraphBuilder = lazy(() => import('./app-graph-builder'));\nexport const IntentResolver = lazy(() => import('./intent-resolver'));\nexport const ReactSurface = lazy(() => import('./react-surface'));\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { REGISTRY_PLUGIN } from './meta';\n\nexport default [\n {\n 'en-US': {\n [REGISTRY_PLUGIN]: {\n 'plugin name': 'Registry',\n 'details label': 'Details',\n 'home page label': 'Website',\n 'source label': 'Source',\n 'plugin registry label': 'Plugin Registry',\n 'all plugins label': 'All',\n 'installed plugins label': 'Enabled',\n 'recommended plugins label': 'Recommended',\n 'labs plugins label': 'Labs',\n 'community plugins label': 'Community',\n 'load by url label': 'Load by URL (soon)',\n 'coming soon label': 'Coming soon!',\n 'open plugin registry label': 'Open plugin registry',\n 'settings label': 'Settings',\n },\n },\n },\n];\n"],
5
- "mappings": ";;;;;;;;AAIA,SAASA,cAAcC,aAAaC,cAAcC,cAAcC,cAAc;;;ACA9E,SAASC,YAAY;AAEd,IAAMC,kBAAkBC,KAAK,MAAM,OAAO,kCAAA,CAAA;AAC1C,IAAMC,iBAAiBD,KAAK,MAAM,OAAO,gCAAA,CAAA;AACzC,IAAME,eAAeF,KAAK,MAAM,OAAO,8BAAA,CAAA;;;ACF9C,IAAA,uBAAe;EACb;IACE,SAAS;MACP,CAACG,eAAAA,GAAkB;QACjB,eAAe;QACf,iBAAiB;QACjB,mBAAmB;QACnB,gBAAgB;QAChB,yBAAyB;QACzB,qBAAqB;QACrB,2BAA2B;QAC3B,6BAA6B;QAC7B,sBAAsB;QACtB,2BAA2B;QAC3B,qBAAqB;QACrB,qBAAqB;QACrB,8BAA8B;QAC9B,kBAAkB;MACpB;IACF;EACF;;;;AFhBK,IAAMC,iBAAiB,MAC5BC,aAAaC,MAAM;EACjBC,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOC;IACpBC,UAAU,MAAMC,YAAYC,aAAaC,cAAcC,oBAAAA;EACzD,CAAA;EACAT,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOO;IACpBL,UAAUM;EACZ,CAAA;EACAX,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOS;IACpBP,UAAUQ;EACZ,CAAA;EACAb,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOW;IACpBT,UAAUU;EACZ,CAAA;CACD;",
6
- "names": ["Capabilities", "contributes", "defineModule", "definePlugin", "Events", "lazy", "AppGraphBuilder", "lazy", "IntentResolver", "ReactSurface", "REGISTRY_PLUGIN", "RegistryPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "SetupTranslations", "activate", "contributes", "Capabilities", "Translations", "translations", "SetupReactSurface", "ReactSurface", "SetupIntentResolver", "IntentResolver", "SetupAppGraph", "AppGraphBuilder"]
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Capabilities, contributes, defineModule, definePlugin, Events } from '@dxos/app-framework';\n\nimport { AppGraphBuilder, IntentResolver, ReactSurface } from './capabilities';\nimport { meta } from './meta';\nimport { translations } from './translations';\n\nexport const RegistryPlugin = () =>\n definePlugin(meta, [\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, translations),\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntentResolver,\n activate: IntentResolver,\n }),\n defineModule({\n id: `${meta.id}/module/app-graph-builder`,\n activatesOn: Events.SetupAppGraph,\n activate: AppGraphBuilder,\n }),\n ]);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { lazy } from '@dxos/app-framework';\n\nexport const AppGraphBuilder = lazy(() => import('./app-graph-builder'));\nexport const IntentResolver = lazy(() => import('./intent-resolver'));\nexport const ReactSurface = lazy(() => 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 'plugin name': 'Registry',\n 'details label': 'Details',\n 'home page label': 'Website',\n 'source label': 'Source',\n 'plugin registry label': 'Plugin Registry',\n 'all plugins label': 'All',\n 'installed plugins label': 'Enabled',\n 'recommended plugins label': 'Recommended',\n 'labs plugins label': 'Labs',\n 'community plugins label': 'Community',\n 'load by url label': 'Load by URL (soon)',\n 'coming soon label': 'Coming soon!',\n 'open plugin registry label': 'Open plugin registry',\n 'settings label': 'Settings',\n },\n },\n },\n] as const satisfies Resource[];\n"],
5
+ "mappings": ";;;;;;;;AAIA,SAASA,cAAcC,aAAaC,cAAcC,cAAcC,cAAc;;;ACA9E,SAASC,YAAY;AAEd,IAAMC,kBAAkBC,KAAK,MAAM,OAAO,kCAAA,CAAA;AAC1C,IAAMC,iBAAiBD,KAAK,MAAM,OAAO,gCAAA,CAAA;AACzC,IAAME,eAAeF,KAAK,MAAM,OAAO,8BAAA,CAAA;;;ACAvC,IAAMG,eAAe;EAC1B;IACE,SAAS;MACP,CAACC,KAAKC,EAAE,GAAG;QACT,eAAe;QACf,iBAAiB;QACjB,mBAAmB;QACnB,gBAAgB;QAChB,yBAAyB;QACzB,qBAAqB;QACrB,2BAA2B;QAC3B,6BAA6B;QAC7B,sBAAsB;QACtB,2BAA2B;QAC3B,qBAAqB;QACrB,qBAAqB;QACrB,8BAA8B;QAC9B,kBAAkB;MACpB;IACF;EACF;;;;AFlBK,IAAMC,iBAAiB,MAC5BC,aAAaC,MAAM;EACjBC,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOC;IACpBC,UAAU,MAAMC,YAAYC,aAAaC,cAAcC,YAAAA;EACzD,CAAA;EACAT,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOO;IACpBL,UAAUM;EACZ,CAAA;EACAX,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOS;IACpBP,UAAUQ;EACZ,CAAA;EACAb,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOW;IACpBT,UAAUU;EACZ,CAAA;CACD;",
6
+ "names": ["Capabilities", "contributes", "defineModule", "definePlugin", "Events", "lazy", "AppGraphBuilder", "lazy", "IntentResolver", "ReactSurface", "translations", "meta", "id", "RegistryPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "SetupTranslations", "activate", "contributes", "Capabilities", "Translations", "translations", "SetupReactSurface", "ReactSurface", "SetupIntentResolver", "IntentResolver", "SetupAppGraph", "AppGraphBuilder"]
7
7
  }
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  REGISTRY_ID
3
- } from "./chunk-ISC56E5F.mjs";
3
+ } from "./chunk-AEBASNOI.mjs";
4
4
 
5
- // packages/plugins/plugin-registry/src/capabilities/intent-resolver.ts
5
+ // src/capabilities/intent-resolver.ts
6
6
  import { contributes, SettingsAction, createResolver, LayoutAction, Capabilities, createIntent } from "@dxos/app-framework";
7
7
  var intent_resolver_default = () => contributes(Capabilities.IntentResolver, createResolver({
8
8
  intent: SettingsAction.OpenPluginRegistry,
@@ -20,4 +20,4 @@ var intent_resolver_default = () => contributes(Capabilities.IntentResolver, cre
20
20
  export {
21
21
  intent_resolver_default as default
22
22
  };
23
- //# sourceMappingURL=intent-resolver-AQJNBUT3.mjs.map
23
+ //# sourceMappingURL=intent-resolver-W67CIJI3.mjs.map
@@ -1 +1 @@
1
- {"inputs":{"packages/plugins/plugin-registry/src/meta.ts":{"bytes":1906,"imports":[],"format":"esm"},"packages/plugins/plugin-registry/src/capabilities/app-graph-builder.ts":{"bytes":21266,"imports":[{"path":"@effect-rx/rx-react","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-registry/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-registry/src/capabilities/intent-resolver.ts":{"bytes":2408,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-registry/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-registry/src/components/PluginDetail.tsx":{"bytes":7723,"imports":[{"path":"@preact-signals/safe-react/tracking","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-form","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-registry/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-registry/src/components/PluginItem.tsx":{"bytes":13106,"imports":[{"path":"@preact-signals/safe-react/tracking","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-theme","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-registry/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-registry/src/components/PluginList.tsx":{"bytes":2695,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-registry/src/components/PluginItem.tsx","kind":"import-statement","original":"./PluginItem"}],"format":"esm"},"packages/plugins/plugin-registry/src/components/RegistryContainer.tsx":{"bytes":9249,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-observability/types","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-registry/src/components/PluginList.tsx","kind":"import-statement","original":"./PluginList"}],"format":"esm"},"packages/plugins/plugin-registry/src/components/index.ts":{"bytes":702,"imports":[{"path":"packages/plugins/plugin-registry/src/components/PluginDetail.tsx","kind":"import-statement","original":"./PluginDetail"},{"path":"packages/plugins/plugin-registry/src/components/PluginList.tsx","kind":"import-statement","original":"./PluginList"},{"path":"packages/plugins/plugin-registry/src/components/RegistryContainer.tsx","kind":"import-statement","original":"./RegistryContainer"}],"format":"esm"},"packages/plugins/plugin-registry/src/capabilities/react-surface.tsx":{"bytes":12316,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-registry/src/components/index.ts","kind":"import-statement","original":"../components"},{"path":"packages/plugins/plugin-registry/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-registry/src/capabilities/index.ts":{"bytes":1315,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-registry/src/capabilities/app-graph-builder.ts","kind":"dynamic-import","original":"./app-graph-builder"},{"path":"packages/plugins/plugin-registry/src/capabilities/intent-resolver.ts","kind":"dynamic-import","original":"./intent-resolver"},{"path":"packages/plugins/plugin-registry/src/capabilities/react-surface.tsx","kind":"dynamic-import","original":"./react-surface"}],"format":"esm"},"packages/plugins/plugin-registry/src/translations.ts":{"bytes":2711,"imports":[{"path":"packages/plugins/plugin-registry/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-registry/src/RegistryPlugin.tsx":{"bytes":4039,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-registry/src/capabilities/index.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-registry/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/plugin-registry/src/translations.ts","kind":"import-statement","original":"./translations"}],"format":"esm"},"packages/plugins/plugin-registry/src/index.ts":{"bytes":570,"imports":[{"path":"packages/plugins/plugin-registry/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/plugin-registry/src/RegistryPlugin.tsx","kind":"import-statement","original":"./RegistryPlugin"}],"format":"esm"}},"outputs":{"packages/plugins/plugin-registry/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3649},"packages/plugins/plugin-registry/dist/lib/browser/index.mjs":{"imports":[{"path":"packages/plugins/plugin-registry/dist/lib/browser/chunk-ISC56E5F.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-registry/dist/lib/browser/app-graph-builder-J5YHAGNI.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-registry/dist/lib/browser/intent-resolver-AQJNBUT3.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-registry/dist/lib/browser/react-surface-W5RNDLXV.mjs","kind":"dynamic-import"}],"exports":["REGISTRY_ID","REGISTRY_KEY","REGISTRY_PLUGIN","RegistryPlugin","meta"],"entryPoint":"packages/plugins/plugin-registry/src/index.ts","inputs":{"packages/plugins/plugin-registry/src/index.ts":{"bytesInOutput":0},"packages/plugins/plugin-registry/src/RegistryPlugin.tsx":{"bytesInOutput":758},"packages/plugins/plugin-registry/src/capabilities/index.ts":{"bytesInOutput":268},"packages/plugins/plugin-registry/src/translations.ts":{"bytesInOutput":706}},"bytes":2191},"packages/plugins/plugin-registry/dist/lib/browser/app-graph-builder-J5YHAGNI.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":9265},"packages/plugins/plugin-registry/dist/lib/browser/app-graph-builder-J5YHAGNI.mjs":{"imports":[{"path":"packages/plugins/plugin-registry/dist/lib/browser/chunk-ISC56E5F.mjs","kind":"import-statement"},{"path":"@effect-rx/rx-react","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-registry/src/capabilities/app-graph-builder.ts","inputs":{"packages/plugins/plugin-registry/src/capabilities/app-graph-builder.ts":{"bytesInOutput":4841}},"bytes":5112},"packages/plugins/plugin-registry/dist/lib/browser/intent-resolver-AQJNBUT3.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1265},"packages/plugins/plugin-registry/dist/lib/browser/intent-resolver-AQJNBUT3.mjs":{"imports":[{"path":"packages/plugins/plugin-registry/dist/lib/browser/chunk-ISC56E5F.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-registry/src/capabilities/intent-resolver.ts","inputs":{"packages/plugins/plugin-registry/src/capabilities/intent-resolver.ts":{"bytesInOutput":461}},"bytes":691},"packages/plugins/plugin-registry/dist/lib/browser/react-surface-W5RNDLXV.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":22567},"packages/plugins/plugin-registry/dist/lib/browser/react-surface-W5RNDLXV.mjs":{"imports":[{"path":"packages/plugins/plugin-registry/dist/lib/browser/chunk-ISC56E5F.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","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-form","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","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-theme","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-observability/types","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-registry/src/capabilities/react-surface.tsx","inputs":{"packages/plugins/plugin-registry/src/capabilities/react-surface.tsx":{"bytesInOutput":3131},"packages/plugins/plugin-registry/src/components/PluginDetail.tsx":{"bytesInOutput":2439},"packages/plugins/plugin-registry/src/components/index.ts":{"bytesInOutput":0},"packages/plugins/plugin-registry/src/components/PluginList.tsx":{"bytesInOutput":661},"packages/plugins/plugin-registry/src/components/PluginItem.tsx":{"bytesInOutput":3972},"packages/plugins/plugin-registry/src/components/RegistryContainer.tsx":{"bytesInOutput":2339}},"bytes":13203},"packages/plugins/plugin-registry/dist/lib/browser/chunk-ISC56E5F.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":869},"packages/plugins/plugin-registry/dist/lib/browser/chunk-ISC56E5F.mjs":{"imports":[],"exports":["REGISTRY_ID","REGISTRY_KEY","REGISTRY_PLUGIN","meta"],"inputs":{"packages/plugins/plugin-registry/src/meta.ts":{"bytesInOutput":188}},"bytes":350}}}
1
+ {"inputs":{"src/meta.ts":{"bytes":1893,"imports":[],"format":"esm"},"src/capabilities/app-graph-builder.ts":{"bytes":21253,"imports":[{"path":"@effect-rx/rx-react","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"src/capabilities/intent-resolver.ts":{"bytes":2395,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"src/components/PluginDetail.tsx":{"bytes":7710,"imports":[{"path":"@preact-signals/safe-react/tracking","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-form","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"src/components/PluginItem.tsx":{"bytes":13093,"imports":[{"path":"@preact-signals/safe-react/tracking","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-theme","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"src/components/PluginList.tsx":{"bytes":2682,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"src/components/PluginItem.tsx","kind":"import-statement","original":"./PluginItem"}],"format":"esm"},"src/components/RegistryContainer.tsx":{"bytes":9236,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-observability/types","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"src/components/PluginList.tsx","kind":"import-statement","original":"./PluginList"}],"format":"esm"},"src/components/index.ts":{"bytes":689,"imports":[{"path":"src/components/PluginDetail.tsx","kind":"import-statement","original":"./PluginDetail"},{"path":"src/components/PluginList.tsx","kind":"import-statement","original":"./PluginList"},{"path":"src/components/RegistryContainer.tsx","kind":"import-statement","original":"./RegistryContainer"}],"format":"esm"},"src/capabilities/react-surface.tsx":{"bytes":12216,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"src/components/index.ts","kind":"import-statement","original":"../components"},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"src/capabilities/index.ts":{"bytes":1302,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"src/capabilities/app-graph-builder.ts","kind":"dynamic-import","original":"./app-graph-builder"},{"path":"src/capabilities/intent-resolver.ts","kind":"dynamic-import","original":"./intent-resolver"},{"path":"src/capabilities/react-surface.tsx","kind":"dynamic-import","original":"./react-surface"}],"format":"esm"},"src/translations.ts":{"bytes":2832,"imports":[{"path":"src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"src/RegistryPlugin.tsx":{"bytes":4038,"imports":[{"path":"@dxos/app-framework","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":557,"imports":[{"path":"src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"src/RegistryPlugin.tsx","kind":"import-statement","original":"./RegistryPlugin"}],"format":"esm"}},"outputs":{"dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3742},"dist/lib/browser/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-AEBASNOI.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"dist/lib/browser/app-graph-builder-LKQBQDUA.mjs","kind":"dynamic-import"},{"path":"dist/lib/browser/intent-resolver-W67CIJI3.mjs","kind":"dynamic-import"},{"path":"dist/lib/browser/react-surface-3GNB7AOY.mjs","kind":"dynamic-import"}],"exports":["REGISTRY_ID","REGISTRY_KEY","REGISTRY_PLUGIN","RegistryPlugin","meta"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":0},"src/RegistryPlugin.tsx":{"bytesInOutput":750},"src/capabilities/index.ts":{"bytesInOutput":268},"src/translations.ts":{"bytesInOutput":690}},"bytes":2035},"dist/lib/browser/app-graph-builder-LKQBQDUA.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":9265},"dist/lib/browser/app-graph-builder-LKQBQDUA.mjs":{"imports":[{"path":"dist/lib/browser/chunk-AEBASNOI.mjs","kind":"import-statement"},{"path":"@effect-rx/rx-react","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/app-graph-builder.ts","inputs":{"src/capabilities/app-graph-builder.ts":{"bytesInOutput":4841}},"bytes":5079},"dist/lib/browser/intent-resolver-W67CIJI3.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1265},"dist/lib/browser/intent-resolver-W67CIJI3.mjs":{"imports":[{"path":"dist/lib/browser/chunk-AEBASNOI.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/intent-resolver.ts","inputs":{"src/capabilities/intent-resolver.ts":{"bytesInOutput":461}},"bytes":658},"dist/lib/browser/react-surface-3GNB7AOY.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":22540},"dist/lib/browser/react-surface-3GNB7AOY.mjs":{"imports":[{"path":"dist/lib/browser/chunk-AEBASNOI.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","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-form","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","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-theme","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-observability/types","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/react-surface.tsx","inputs":{"src/capabilities/react-surface.tsx":{"bytesInOutput":3102},"src/components/PluginDetail.tsx":{"bytesInOutput":2439},"src/components/index.ts":{"bytesInOutput":0},"src/components/PluginList.tsx":{"bytesInOutput":661},"src/components/PluginItem.tsx":{"bytesInOutput":3972},"src/components/RegistryContainer.tsx":{"bytesInOutput":2339}},"bytes":12943},"dist/lib/browser/chunk-AEBASNOI.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":869},"dist/lib/browser/chunk-AEBASNOI.mjs":{"imports":[],"exports":["REGISTRY_ID","REGISTRY_KEY","REGISTRY_PLUGIN","meta"],"inputs":{"src/meta.ts":{"bytesInOutput":188}},"bytes":317}}}
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  REGISTRY_KEY,
3
3
  REGISTRY_PLUGIN
4
- } from "./chunk-ISC56E5F.mjs";
4
+ } from "./chunk-AEBASNOI.mjs";
5
5
 
6
- // packages/plugins/plugin-registry/src/capabilities/react-surface.tsx
6
+ // src/capabilities/react-surface.tsx
7
7
  import React5, { useCallback as useCallback3, useMemo as useMemo2 } from "react";
8
8
  import { Capabilities as Capabilities2, contributes, createSurface, Plugin, usePluginManager as usePluginManager2 } from "@dxos/app-framework";
9
9
  import { StackItem as StackItem2 } from "@dxos/react-ui-stack";
10
10
 
11
- // packages/plugins/plugin-registry/src/components/PluginDetail.tsx
11
+ // src/components/PluginDetail.tsx
12
12
  import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
13
13
  import React from "react";
14
14
  import { Icon, Input, Link, useTranslation } from "@dxos/react-ui";
@@ -67,12 +67,12 @@ var PluginDetail = ({ plugin, enabled, onEnable }) => {
67
67
  }
68
68
  };
69
69
 
70
- // packages/plugins/plugin-registry/src/components/PluginList.tsx
70
+ // src/components/PluginList.tsx
71
71
  import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
72
72
  import React3 from "react";
73
73
  import { List } from "@dxos/react-ui";
74
74
 
75
- // packages/plugins/plugin-registry/src/components/PluginItem.tsx
75
+ // src/components/PluginItem.tsx
76
76
  import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
77
77
  import React2, { useCallback } from "react";
78
78
  import { Icon as Icon2, IconButton, Input as Input2, Link as Link2, ListItem, Tag, useTranslation as useTranslation2 } from "@dxos/react-ui";
@@ -165,7 +165,7 @@ var PluginItem = ({ plugin, enabled = [], onClick, onChange, hasSettings: _hasSe
165
165
  }
166
166
  };
167
167
 
168
- // packages/plugins/plugin-registry/src/components/PluginList.tsx
168
+ // src/components/PluginList.tsx
169
169
  var PluginList = ({ plugins = [], ...props }) => {
170
170
  var _effect = _useSignals3();
171
171
  try {
@@ -183,7 +183,7 @@ var PluginList = ({ plugins = [], ...props }) => {
183
183
  }
184
184
  };
185
185
 
186
- // packages/plugins/plugin-registry/src/components/RegistryContainer.tsx
186
+ // src/components/RegistryContainer.tsx
187
187
  import { useSignals as _useSignals4 } from "@preact-signals/safe-react/tracking";
188
188
  import React4, { useCallback as useCallback2, useMemo } from "react";
189
189
  import { Capabilities, createIntent, LayoutAction, SettingsAction, useCapability, useIntentDispatcher, usePluginManager } from "@dxos/app-framework";
@@ -253,7 +253,7 @@ var RegistryContainer = ({ id, plugins: _plugins }) => {
253
253
  }
254
254
  };
255
255
 
256
- // packages/plugins/plugin-registry/src/capabilities/react-surface.tsx
256
+ // src/capabilities/react-surface.tsx
257
257
  var react_surface_default = () => contributes(Capabilities2.ReactSurface, [
258
258
  createSurface({
259
259
  id: `${REGISTRY_PLUGIN}/all`,
@@ -319,9 +319,7 @@ var react_surface_default = () => contributes(Capabilities2.ReactSurface, [
319
319
  subject.meta.id,
320
320
  enabled
321
321
  ]);
322
- return /* @__PURE__ */ React5.createElement(StackItem2.Content, {
323
- role: "article"
324
- }, /* @__PURE__ */ React5.createElement(PluginDetail, {
322
+ return /* @__PURE__ */ React5.createElement(StackItem2.Content, null, /* @__PURE__ */ React5.createElement(PluginDetail, {
325
323
  plugin: subject,
326
324
  enabled,
327
325
  onEnable: handleEnable
@@ -332,4 +330,4 @@ var react_surface_default = () => contributes(Capabilities2.ReactSurface, [
332
330
  export {
333
331
  react_surface_default as default
334
332
  };
335
- //# sourceMappingURL=react-surface-W5RNDLXV.mjs.map
333
+ //# sourceMappingURL=react-surface-3GNB7AOY.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/capabilities/react-surface.tsx", "../../../src/components/PluginDetail.tsx", "../../../src/components/PluginList.tsx", "../../../src/components/PluginItem.tsx", "../../../src/components/RegistryContainer.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport { Capabilities, contributes, createSurface, Plugin, usePluginManager } from '@dxos/app-framework';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport { PluginDetail, RegistryContainer } from '../components';\nimport { REGISTRY_KEY, REGISTRY_PLUGIN } from '../meta';\n\nexport default () =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: `${REGISTRY_PLUGIN}/all`,\n role: 'article',\n filter: (data): data is any => data.subject === `${REGISTRY_KEY}+all`,\n component: () => {\n const manager = usePluginManager();\n const filtered = useMemo(() => manager.plugins.filter(({ meta }) => !manager.core.includes(meta.id)), []);\n\n return <RegistryContainer id={`${REGISTRY_KEY}+all`} plugins={filtered} />;\n },\n }),\n createSurface({\n id: `${REGISTRY_PLUGIN}/installed`,\n role: 'article',\n filter: (data): data is any => data.subject === `${REGISTRY_KEY}+installed`,\n component: () => {\n const manager = usePluginManager();\n const filtered = useMemo(\n () =>\n manager.plugins\n .filter(({ meta }) => !manager.core.includes(meta.id))\n .filter(({ meta }) => manager.enabled.includes(meta.id)),\n [],\n );\n\n return <RegistryContainer id={`${REGISTRY_KEY}+installed`} plugins={filtered} />;\n },\n }),\n createSurface({\n id: `${REGISTRY_PLUGIN}/recommended`,\n role: 'article',\n filter: (data): data is any => data.subject === `${REGISTRY_KEY}+recommended`,\n component: () => {\n const manager = usePluginManager();\n const filtered = useMemo(\n () =>\n manager.plugins\n .filter(({ meta }) => !manager.core.includes(meta.id))\n .filter(({ meta }) => !meta.tags?.includes('labs')),\n [],\n );\n\n return <RegistryContainer id={`${REGISTRY_KEY}+recommended`} plugins={filtered} />;\n },\n }),\n createSurface({\n id: `${REGISTRY_PLUGIN}/labs`,\n role: 'article',\n filter: (data): data is any => data.subject === `${REGISTRY_KEY}+labs`,\n component: () => {\n const manager = usePluginManager();\n const filtered = useMemo(() => manager.plugins.filter(({ meta }) => meta.tags?.includes('labs')), []);\n\n return <RegistryContainer id={`${REGISTRY_KEY}+labs`} plugins={filtered} />;\n },\n }),\n createSurface({\n id: `${REGISTRY_PLUGIN}/plugin-details`,\n role: 'article',\n filter: (data): data is { subject: Plugin } => data.subject instanceof Plugin,\n component: ({ data: { subject } }) => {\n const manager = usePluginManager();\n const enabled = manager.enabled.includes(subject.meta.id);\n const handleEnable = useCallback(\n () => (enabled ? manager.disable(subject.meta.id) : manager.enable(subject.meta.id)),\n [manager, subject.meta.id, enabled],\n );\n\n return (\n <StackItem.Content role='article'>\n <PluginDetail plugin={subject} enabled={enabled} onEnable={handleEnable} />\n </StackItem.Content>\n );\n },\n }),\n ]);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { Icon, Input, Link, useTranslation } from '@dxos/react-ui';\nimport { DeprecatedFormContainer } from '@dxos/react-ui-form';\n\nimport { REGISTRY_PLUGIN } from '../meta';\n\nexport type PluginDetailProps = {\n plugin: Plugin;\n enabled?: boolean;\n onEnable?: () => void;\n};\n\nexport const PluginDetail = ({ plugin, enabled, onEnable }: PluginDetailProps) => {\n const { t } = useTranslation(REGISTRY_PLUGIN);\n const { id, name, description, homePage, source, screenshots } = plugin.meta;\n\n return (\n <DeprecatedFormContainer classNames='gap-6'>\n <div role='none' className='flex justify-between items-center'>\n <p>{id}</p>\n <Input.Root>\n <Input.Switch classNames='self-center' checked={enabled} onClick={onEnable} />\n </Input.Root>\n </div>\n\n {screenshots && screenshots.length > 0 && (\n <div role='none'>\n <h1 className='text-lg mb-2'>Preview</h1>\n <img src={screenshots[0]} alt={name} className='aspect-video object-fit' />\n </div>\n )}\n\n <div role='none'>\n <p>{description}</p>\n </div>\n\n <div role='none'>\n <h1 className='text-lg mb-2'>Resources</h1>\n <div className='flex gap-2'>\n {homePage && (\n <Link href={homePage} target='_blank' rel='noreferrer' classNames='text-sm text-description'>\n {t('home page label')}\n <Icon icon='ph--arrow-square-out--bold' size={3} classNames='inline-block leading-none mli-1' />\n </Link>\n )}\n\n {source && (\n <Link href={source} target='_blank' rel='noreferrer' classNames='text-sm text-description'>\n {t('source label')}\n <Icon icon='ph--arrow-square-out--bold' size={3} classNames='inline-block leading-none mli-1' />\n </Link>\n )}\n </div>\n </div>\n </DeprecatedFormContainer>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { List } from '@dxos/react-ui';\n\nimport { PluginItem, type PluginItemProps } from './PluginItem';\n\nexport type PluginListProps = Omit<PluginItemProps, 'plugin'> & {\n plugins?: readonly Plugin[];\n};\n\nexport const PluginList = ({ plugins = [], ...props }: PluginListProps) => {\n return (\n <List classNames='grid grid-cols-[repeat(auto-fill,minmax(280px,1fr))] auto-rows-[12rem] gap-3 p-3'>\n {plugins.map((plugin) => (\n <div key={plugin.meta.id} className='flex'>\n <PluginItem plugin={plugin} {...props} />\n </div>\n ))}\n </List>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { type MouseEvent, useCallback } from 'react';\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { Icon, IconButton, Input, Link, ListItem, Tag, useTranslation } from '@dxos/react-ui';\nimport { descriptionText, mx } from '@dxos/react-ui-theme';\n\nimport { REGISTRY_PLUGIN } from '../meta';\n\nexport type PluginItemProps = {\n plugin: Plugin;\n installed?: readonly string[];\n enabled?: readonly string[];\n onClick?: (id: string) => void;\n onChange?: (id: string, enabled: boolean) => void;\n hasSettings?: (id: string) => boolean;\n onSettings?: (id: string) => void;\n};\n\nexport const PluginItem = ({\n plugin,\n enabled = [],\n onClick,\n onChange,\n hasSettings: _hasSettings,\n onSettings,\n}: PluginItemProps) => {\n const { t } = useTranslation(REGISTRY_PLUGIN);\n const { id, name, description, tags, icon = 'ph--circle--regular' } = plugin.meta;\n const isEnabled = enabled.includes(id);\n const inputId = `${id}-input`;\n const labelId = `${id}-label`;\n const descriptionId = `${id}-description`;\n const handleClick = useCallback(() => onClick?.(id), [id, onClick]);\n\n const handleChange = useCallback(\n (event: MouseEvent) => {\n event.stopPropagation();\n onChange?.(id, !isEnabled);\n },\n [id, isEnabled, onChange],\n );\n\n const hasSettings = _hasSettings?.(id) ?? false;\n const handleSettings = useCallback(() => onSettings?.(id), [id, onSettings]);\n\n return (\n <ListItem.Root\n key={id}\n labelId={labelId}\n data-testid={`pluginList.${id}`}\n aria-describedby={descriptionId}\n // TODO(burdon): Use Rail vars.\n classNames='is-full bs-full grid grid-cols-[48px_1fr_48px] grid-rows-[40px_1fr_32px] p-1 border border-separator rounded-md'\n >\n {/* Header. */}\n <div className='flex flex-col grow justify-center items-center'>\n <Icon icon={icon} size={6} onClick={handleClick} classNames='text-subdued cursor-pointer' />\n </div>\n <div className='flex items-center overflow-hidden cursor-pointer' onClick={handleClick}>\n <span className='truncate'>{name ?? id}</span>\n </div>\n <div className='flex justify-center items-center'>\n <Input.Root id={inputId}>\n <Input.Switch classNames='self-center' checked={isEnabled} onClick={handleChange} />\n </Input.Root>\n </div>\n\n {/* Body. */}\n <div />\n {(description || tags) && (\n <div id={descriptionId} className='col-span-2 flex flex-col w-full justify-between gap-2 pb-2'>\n <div className='grow'>\n <p className={mx(descriptionText, 'line-clamp-3 min-w-0 pie-2')}>{description}</p>\n </div>\n {tags && tags.length > 0 && (\n <div>\n {tags.map((tag) => (\n <Tag key={tag} palette={'indigo'} classNames='text-xs capitalize'>\n {tag}\n </Tag>\n ))}\n </div>\n )}\n </div>\n )}\n\n {/* Footer. */}\n <div />\n <div className='flex gap-2 items-center pie-1'>\n <Link\n aria-describedby={descriptionId}\n classNames='text-sm text-description cursor-pointer'\n onClick={handleClick}\n >\n {t('details label')}\n </Link>\n\n <div className='flex-1' />\n </div>\n <div className='flex justify-center items-center'>\n {hasSettings && (\n <IconButton\n aria-describedby={descriptionId}\n classNames='text-sm text-description cursor-pointer'\n icon='ph--gear--regular'\n label={t('settings label')}\n iconOnly\n size={4}\n onClick={handleSettings}\n />\n )}\n </div>\n </ListItem.Root>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport {\n Capabilities,\n createIntent,\n LayoutAction,\n type Plugin,\n SettingsAction,\n useCapability,\n useIntentDispatcher,\n usePluginManager,\n} from '@dxos/app-framework';\nimport { ObservabilityAction } from '@dxos/plugin-observability/types';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport { PluginList } from './PluginList';\n\nconst sortByPluginMeta = ({ meta: { name: a = '' } }: Plugin, { meta: { name: b = '' } }: Plugin) => a.localeCompare(b);\n\nexport const RegistryContainer = ({ id, plugins: _plugins }: { id: string; plugins: Plugin[] }) => {\n const manager = usePluginManager();\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const plugins = useMemo(() => _plugins.sort(sortByPluginMeta), [_plugins]);\n const settingsStore = useCapability(Capabilities.SettingsStore);\n\n // TODO(wittjosiah): Factor out to an intent?\n const handleChange = useCallback(\n async (id: string, enabled: boolean) => {\n if (enabled) {\n await manager.enable(id);\n } else {\n await manager.disable(id);\n }\n\n await dispatch(\n createIntent(ObservabilityAction.SendEvent, {\n name: 'plugins.toggle',\n properties: {\n plugin: id,\n enabled,\n },\n }),\n );\n },\n [dispatch, manager],\n );\n\n const handleClick = useCallback(\n (pluginId: string) =>\n dispatch(\n createIntent(LayoutAction.Open, {\n part: 'main',\n // TODO(wittjosiah): `/` currently is not supported in ids.\n subject: [pluginId.replaceAll('/', ':')],\n options: { pivotId: id, positioning: 'end' },\n }),\n ),\n [dispatch, id],\n );\n\n const hasSettings = useCallback((pluginId: string) => !!settingsStore.getStore(pluginId), [settingsStore]);\n\n const handleSettings = useCallback(\n (pluginId: string) => dispatch(createIntent(SettingsAction.Open, { plugin: pluginId })),\n [dispatch],\n );\n\n return (\n <StackItem.Content classNames='min-bs-0 overflow-y-auto scrollbar-thin contain-layout'>\n <PluginList\n plugins={plugins}\n enabled={manager.enabled}\n onClick={handleClick}\n onChange={handleChange}\n hasSettings={hasSettings}\n onSettings={handleSettings}\n />\n </StackItem.Content>\n );\n};\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport { Capabilities, contributes, createSurface, Plugin, usePluginManager } from '@dxos/app-framework';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport { PluginDetail, RegistryContainer } from '../components';\nimport { REGISTRY_KEY, REGISTRY_PLUGIN } from '../meta';\n\nexport default () =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: `${REGISTRY_PLUGIN}/all`,\n role: 'article',\n filter: (data): data is any => data.subject === `${REGISTRY_KEY}+all`,\n component: () => {\n const manager = usePluginManager();\n const filtered = useMemo(() => manager.plugins.filter(({ meta }) => !manager.core.includes(meta.id)), []);\n\n return <RegistryContainer id={`${REGISTRY_KEY}+all`} plugins={filtered} />;\n },\n }),\n createSurface({\n id: `${REGISTRY_PLUGIN}/installed`,\n role: 'article',\n filter: (data): data is any => data.subject === `${REGISTRY_KEY}+installed`,\n component: () => {\n const manager = usePluginManager();\n const filtered = useMemo(\n () =>\n manager.plugins\n .filter(({ meta }) => !manager.core.includes(meta.id))\n .filter(({ meta }) => manager.enabled.includes(meta.id)),\n [],\n );\n\n return <RegistryContainer id={`${REGISTRY_KEY}+installed`} plugins={filtered} />;\n },\n }),\n createSurface({\n id: `${REGISTRY_PLUGIN}/recommended`,\n role: 'article',\n filter: (data): data is any => data.subject === `${REGISTRY_KEY}+recommended`,\n component: () => {\n const manager = usePluginManager();\n const filtered = useMemo(\n () =>\n manager.plugins\n .filter(({ meta }) => !manager.core.includes(meta.id))\n .filter(({ meta }) => !meta.tags?.includes('labs')),\n [],\n );\n\n return <RegistryContainer id={`${REGISTRY_KEY}+recommended`} plugins={filtered} />;\n },\n }),\n createSurface({\n id: `${REGISTRY_PLUGIN}/labs`,\n role: 'article',\n filter: (data): data is any => data.subject === `${REGISTRY_KEY}+labs`,\n component: () => {\n const manager = usePluginManager();\n const filtered = useMemo(() => manager.plugins.filter(({ meta }) => meta.tags?.includes('labs')), []);\n\n return <RegistryContainer id={`${REGISTRY_KEY}+labs`} plugins={filtered} />;\n },\n }),\n createSurface({\n id: `${REGISTRY_PLUGIN}/plugin-details`,\n role: 'article',\n filter: (data): data is { subject: Plugin } => data.subject instanceof Plugin,\n component: ({ data: { subject } }) => {\n const manager = usePluginManager();\n const enabled = manager.enabled.includes(subject.meta.id);\n const handleEnable = useCallback(\n () => (enabled ? manager.disable(subject.meta.id) : manager.enable(subject.meta.id)),\n [manager, subject.meta.id, enabled],\n );\n\n return (\n <StackItem.Content>\n <PluginDetail plugin={subject} enabled={enabled} onEnable={handleEnable} />\n </StackItem.Content>\n );\n },\n }),\n ]);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { Icon, Input, Link, useTranslation } from '@dxos/react-ui';\nimport { DeprecatedFormContainer } from '@dxos/react-ui-form';\n\nimport { REGISTRY_PLUGIN } from '../meta';\n\nexport type PluginDetailProps = {\n plugin: Plugin;\n enabled?: boolean;\n onEnable?: () => void;\n};\n\nexport const PluginDetail = ({ plugin, enabled, onEnable }: PluginDetailProps) => {\n const { t } = useTranslation(REGISTRY_PLUGIN);\n const { id, name, description, homePage, source, screenshots } = plugin.meta;\n\n return (\n <DeprecatedFormContainer classNames='gap-6'>\n <div role='none' className='flex justify-between items-center'>\n <p>{id}</p>\n <Input.Root>\n <Input.Switch classNames='self-center' checked={enabled} onClick={onEnable} />\n </Input.Root>\n </div>\n\n {screenshots && screenshots.length > 0 && (\n <div role='none'>\n <h1 className='text-lg mb-2'>Preview</h1>\n <img src={screenshots[0]} alt={name} className='aspect-video object-fit' />\n </div>\n )}\n\n <div role='none'>\n <p>{description}</p>\n </div>\n\n <div role='none'>\n <h1 className='text-lg mb-2'>Resources</h1>\n <div className='flex gap-2'>\n {homePage && (\n <Link href={homePage} target='_blank' rel='noreferrer' classNames='text-sm text-description'>\n {t('home page label')}\n <Icon icon='ph--arrow-square-out--bold' size={3} classNames='inline-block leading-none mli-1' />\n </Link>\n )}\n\n {source && (\n <Link href={source} target='_blank' rel='noreferrer' classNames='text-sm text-description'>\n {t('source label')}\n <Icon icon='ph--arrow-square-out--bold' size={3} classNames='inline-block leading-none mli-1' />\n </Link>\n )}\n </div>\n </div>\n </DeprecatedFormContainer>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { List } from '@dxos/react-ui';\n\nimport { PluginItem, type PluginItemProps } from './PluginItem';\n\nexport type PluginListProps = Omit<PluginItemProps, 'plugin'> & {\n plugins?: readonly Plugin[];\n};\n\nexport const PluginList = ({ plugins = [], ...props }: PluginListProps) => {\n return (\n <List classNames='grid grid-cols-[repeat(auto-fill,minmax(280px,1fr))] auto-rows-[12rem] gap-3 p-3'>\n {plugins.map((plugin) => (\n <div key={plugin.meta.id} className='flex'>\n <PluginItem plugin={plugin} {...props} />\n </div>\n ))}\n </List>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { type MouseEvent, useCallback } from 'react';\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { Icon, IconButton, Input, Link, ListItem, Tag, useTranslation } from '@dxos/react-ui';\nimport { descriptionText, mx } from '@dxos/react-ui-theme';\n\nimport { REGISTRY_PLUGIN } from '../meta';\n\nexport type PluginItemProps = {\n plugin: Plugin;\n installed?: readonly string[];\n enabled?: readonly string[];\n onClick?: (id: string) => void;\n onChange?: (id: string, enabled: boolean) => void;\n hasSettings?: (id: string) => boolean;\n onSettings?: (id: string) => void;\n};\n\nexport const PluginItem = ({\n plugin,\n enabled = [],\n onClick,\n onChange,\n hasSettings: _hasSettings,\n onSettings,\n}: PluginItemProps) => {\n const { t } = useTranslation(REGISTRY_PLUGIN);\n const { id, name, description, tags, icon = 'ph--circle--regular' } = plugin.meta;\n const isEnabled = enabled.includes(id);\n const inputId = `${id}-input`;\n const labelId = `${id}-label`;\n const descriptionId = `${id}-description`;\n const handleClick = useCallback(() => onClick?.(id), [id, onClick]);\n\n const handleChange = useCallback(\n (event: MouseEvent) => {\n event.stopPropagation();\n onChange?.(id, !isEnabled);\n },\n [id, isEnabled, onChange],\n );\n\n const hasSettings = _hasSettings?.(id) ?? false;\n const handleSettings = useCallback(() => onSettings?.(id), [id, onSettings]);\n\n return (\n <ListItem.Root\n key={id}\n labelId={labelId}\n data-testid={`pluginList.${id}`}\n aria-describedby={descriptionId}\n // TODO(burdon): Use Rail vars.\n classNames='is-full bs-full grid grid-cols-[48px_1fr_48px] grid-rows-[40px_1fr_32px] p-1 border border-separator rounded-md'\n >\n {/* Header. */}\n <div className='flex flex-col grow justify-center items-center'>\n <Icon icon={icon} size={6} onClick={handleClick} classNames='text-subdued cursor-pointer' />\n </div>\n <div className='flex items-center overflow-hidden cursor-pointer' onClick={handleClick}>\n <span className='truncate'>{name ?? id}</span>\n </div>\n <div className='flex justify-center items-center'>\n <Input.Root id={inputId}>\n <Input.Switch classNames='self-center' checked={isEnabled} onClick={handleChange} />\n </Input.Root>\n </div>\n\n {/* Body. */}\n <div />\n {(description || tags) && (\n <div id={descriptionId} className='col-span-2 flex flex-col w-full justify-between gap-2 pb-2'>\n <div className='grow'>\n <p className={mx(descriptionText, 'line-clamp-3 min-w-0 pie-2')}>{description}</p>\n </div>\n {tags && tags.length > 0 && (\n <div>\n {tags.map((tag) => (\n <Tag key={tag} palette={'indigo'} classNames='text-xs capitalize'>\n {tag}\n </Tag>\n ))}\n </div>\n )}\n </div>\n )}\n\n {/* Footer. */}\n <div />\n <div className='flex gap-2 items-center pie-1'>\n <Link\n aria-describedby={descriptionId}\n classNames='text-sm text-description cursor-pointer'\n onClick={handleClick}\n >\n {t('details label')}\n </Link>\n\n <div className='flex-1' />\n </div>\n <div className='flex justify-center items-center'>\n {hasSettings && (\n <IconButton\n aria-describedby={descriptionId}\n classNames='text-sm text-description cursor-pointer'\n icon='ph--gear--regular'\n label={t('settings label')}\n iconOnly\n size={4}\n onClick={handleSettings}\n />\n )}\n </div>\n </ListItem.Root>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport {\n Capabilities,\n createIntent,\n LayoutAction,\n type Plugin,\n SettingsAction,\n useCapability,\n useIntentDispatcher,\n usePluginManager,\n} from '@dxos/app-framework';\nimport { ObservabilityAction } from '@dxos/plugin-observability/types';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport { PluginList } from './PluginList';\n\nconst sortByPluginMeta = ({ meta: { name: a = '' } }: Plugin, { meta: { name: b = '' } }: Plugin) => a.localeCompare(b);\n\nexport const RegistryContainer = ({ id, plugins: _plugins }: { id: string; plugins: Plugin[] }) => {\n const manager = usePluginManager();\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const plugins = useMemo(() => _plugins.sort(sortByPluginMeta), [_plugins]);\n const settingsStore = useCapability(Capabilities.SettingsStore);\n\n // TODO(wittjosiah): Factor out to an intent?\n const handleChange = useCallback(\n async (id: string, enabled: boolean) => {\n if (enabled) {\n await manager.enable(id);\n } else {\n await manager.disable(id);\n }\n\n await dispatch(\n createIntent(ObservabilityAction.SendEvent, {\n name: 'plugins.toggle',\n properties: {\n plugin: id,\n enabled,\n },\n }),\n );\n },\n [dispatch, manager],\n );\n\n const handleClick = useCallback(\n (pluginId: string) =>\n dispatch(\n createIntent(LayoutAction.Open, {\n part: 'main',\n // TODO(wittjosiah): `/` currently is not supported in ids.\n subject: [pluginId.replaceAll('/', ':')],\n options: { pivotId: id, positioning: 'end' },\n }),\n ),\n [dispatch, id],\n );\n\n const hasSettings = useCallback((pluginId: string) => !!settingsStore.getStore(pluginId), [settingsStore]);\n\n const handleSettings = useCallback(\n (pluginId: string) => dispatch(createIntent(SettingsAction.Open, { plugin: pluginId })),\n [dispatch],\n );\n\n return (\n <StackItem.Content classNames='min-bs-0 overflow-y-auto scrollbar-thin contain-layout'>\n <PluginList\n plugins={plugins}\n enabled={manager.enabled}\n onClick={handleClick}\n onChange={handleChange}\n hasSettings={hasSettings}\n onSettings={handleSettings}\n />\n </StackItem.Content>\n );\n};\n"],
5
+ "mappings": ";;;;;;AAIA,OAAOA,UAASC,eAAAA,cAAaC,WAAAA,gBAAe;AAE5C,SAASC,gBAAAA,eAAcC,aAAaC,eAAeC,QAAQC,oBAAAA,yBAAwB;AACnF,SAASC,aAAAA,kBAAiB;;;;ACH1B,OAAOC,WAAW;AAGlB,SAASC,MAAMC,OAAOC,MAAMC,sBAAsB;AAClD,SAASC,+BAA+B;AAUjC,IAAMC,eAAe,CAAC,EAAEC,QAAQC,SAASC,SAAQ,MAAqB;;;AAC3E,UAAM,EAAEC,EAAC,IAAKC,eAAeC,eAAAA;AAC7B,UAAM,EAAEC,IAAIC,MAAMC,aAAaC,UAAUC,QAAQC,YAAW,IAAKX,OAAOY;AAExE,WACE,sBAAA,cAACC,yBAAAA;MAAwBC,YAAW;OAClC,sBAAA,cAACC,OAAAA;MAAIC,MAAK;MAAOC,WAAU;OACzB,sBAAA,cAACC,KAAAA,MAAGZ,EAAAA,GACJ,sBAAA,cAACa,MAAMC,MAAI,MACT,sBAAA,cAACD,MAAME,QAAM;MAACP,YAAW;MAAcQ,SAASrB;MAASsB,SAASrB;UAIrES,eAAeA,YAAYa,SAAS,KACnC,sBAAA,cAACT,OAAAA;MAAIC,MAAK;OACR,sBAAA,cAACS,MAAAA;MAAGR,WAAU;OAAe,SAAA,GAC7B,sBAAA,cAACS,OAAAA;MAAIC,KAAKhB,YAAY,CAAA;MAAIiB,KAAKrB;MAAMU,WAAU;SAInD,sBAAA,cAACF,OAAAA;MAAIC,MAAK;OACR,sBAAA,cAACE,KAAAA,MAAGV,WAAAA,CAAAA,GAGN,sBAAA,cAACO,OAAAA;MAAIC,MAAK;OACR,sBAAA,cAACS,MAAAA;MAAGR,WAAU;OAAe,WAAA,GAC7B,sBAAA,cAACF,OAAAA;MAAIE,WAAU;OACZR,YACC,sBAAA,cAACoB,MAAAA;MAAKC,MAAMrB;MAAUsB,QAAO;MAASC,KAAI;MAAalB,YAAW;OAC/DX,EAAE,iBAAA,GACH,sBAAA,cAAC8B,MAAAA;MAAKC,MAAK;MAA6BC,MAAM;MAAGrB,YAAW;SAI/DJ,UACC,sBAAA,cAACmB,MAAAA;MAAKC,MAAMpB;MAAQqB,QAAO;MAASC,KAAI;MAAalB,YAAW;OAC7DX,EAAE,cAAA,GACH,sBAAA,cAAC8B,MAAAA;MAAKC,MAAK;MAA6BC,MAAM;MAAGrB,YAAW;;;;;AAO1E;;;;AC1DA,OAAOsB,YAAW;AAGlB,SAASC,YAAY;;;;ACHrB,OAAOC,UAA0BC,mBAAmB;AAGpD,SAASC,QAAAA,OAAMC,YAAYC,SAAAA,QAAOC,QAAAA,OAAMC,UAAUC,KAAKC,kBAAAA,uBAAsB;AAC7E,SAASC,iBAAiBC,UAAU;AAc7B,IAAMC,aAAa,CAAC,EACzBC,QACAC,UAAU,CAAA,GACVC,SACAC,UACAC,aAAaC,cACbC,WAAU,MACM;;;AAChB,UAAM,EAAEC,EAAC,IAAKC,gBAAeC,eAAAA;AAC7B,UAAM,EAAEC,IAAIC,MAAMC,aAAaC,MAAMC,OAAO,sBAAqB,IAAKd,OAAOe;AAC7E,UAAMC,YAAYf,QAAQgB,SAASP,EAAAA;AACnC,UAAMQ,UAAU,GAAGR,EAAAA;AACnB,UAAMS,UAAU,GAAGT,EAAAA;AACnB,UAAMU,gBAAgB,GAAGV,EAAAA;AACzB,UAAMW,cAAcC,YAAY,MAAMpB,UAAUQ,EAAAA,GAAK;MAACA;MAAIR;KAAQ;AAElE,UAAMqB,eAAeD,YACnB,CAACE,UAAAA;AACCA,YAAMC,gBAAe;AACrBtB,iBAAWO,IAAI,CAACM,SAAAA;IAClB,GACA;MAACN;MAAIM;MAAWb;KAAS;AAG3B,UAAMC,cAAcC,eAAeK,EAAAA,KAAO;AAC1C,UAAMgB,iBAAiBJ,YAAY,MAAMhB,aAAaI,EAAAA,GAAK;MAACA;MAAIJ;KAAW;AAE3E,WACE,gBAAAqB,OAAA,cAACC,SAASC,MAAI;MACZC,KAAKpB;MACLS;MACAY,eAAa,cAAcrB,EAAAA;MAC3BsB,oBAAkBZ;;MAElBa,YAAW;OAGX,gBAAAN,OAAA,cAACO,OAAAA;MAAIC,WAAU;OACb,gBAAAR,OAAA,cAACS,OAAAA;MAAKtB;MAAYuB,MAAM;MAAGnC,SAASmB;MAAaY,YAAW;SAE9D,gBAAAN,OAAA,cAACO,OAAAA;MAAIC,WAAU;MAAmDjC,SAASmB;OACzE,gBAAAM,OAAA,cAACW,QAAAA;MAAKH,WAAU;OAAYxB,QAAQD,EAAAA,CAAAA,GAEtC,gBAAAiB,OAAA,cAACO,OAAAA;MAAIC,WAAU;OACb,gBAAAR,OAAA,cAACY,OAAMV,MAAI;MAACnB,IAAIQ;OACd,gBAAAS,OAAA,cAACY,OAAMC,QAAM;MAACP,YAAW;MAAcQ,SAASzB;MAAWd,SAASqB;UAKxE,gBAAAI,OAAA,cAACO,OAAAA,IAAAA,IACCtB,eAAeC,SACf,gBAAAc,OAAA,cAACO,OAAAA;MAAIxB,IAAIU;MAAee,WAAU;OAChC,gBAAAR,OAAA,cAACO,OAAAA;MAAIC,WAAU;OACb,gBAAAR,OAAA,cAACe,KAAAA;MAAEP,WAAWQ,GAAGC,iBAAiB,4BAAA;OAAgChC,WAAAA,CAAAA,GAEnEC,QAAQA,KAAKgC,SAAS,KACrB,gBAAAlB,OAAA,cAACO,OAAAA,MACErB,KAAKiC,IAAI,CAACC,QACT,gBAAApB,OAAA,cAACqB,KAAAA;MAAIlB,KAAKiB;MAAKE,SAAS;MAAUhB,YAAW;OAC1Cc,GAAAA,CAAAA,CAAAA,CAAAA,GASb,gBAAApB,OAAA,cAACO,OAAAA,IAAAA,GACD,gBAAAP,OAAA,cAACO,OAAAA;MAAIC,WAAU;OACb,gBAAAR,OAAA,cAACuB,OAAAA;MACClB,oBAAkBZ;MAClBa,YAAW;MACX/B,SAASmB;OAERd,EAAE,eAAA,CAAA,GAGL,gBAAAoB,OAAA,cAACO,OAAAA;MAAIC,WAAU;SAEjB,gBAAAR,OAAA,cAACO,OAAAA;MAAIC,WAAU;OACZ/B,eACC,gBAAAuB,OAAA,cAACwB,YAAAA;MACCnB,oBAAkBZ;MAClBa,YAAW;MACXnB,MAAK;MACLsC,OAAO7C,EAAE,gBAAA;MACT8C,UAAAA;MACAhB,MAAM;MACNnC,SAASwB;;;;;AAMrB;;;ADvGO,IAAM4B,aAAa,CAAC,EAAEC,UAAU,CAAA,GAAI,GAAGC,MAAAA,MAAwB;;;AACpE,WACE,gBAAAC,OAAA,cAACC,MAAAA;MAAKC,YAAW;OACdJ,QAAQK,IAAI,CAACC,WACZ,gBAAAJ,OAAA,cAACK,OAAAA;MAAIC,KAAKF,OAAOG,KAAKC;MAAIC,WAAU;OAClC,gBAAAT,OAAA,cAACU,YAAAA;MAAWN;MAAiB,GAAGL;;;;;AAK1C;;;;AErBA,OAAOY,UAASC,eAAAA,cAAaC,eAAe;AAE5C,SACEC,cACAC,cACAC,cAEAC,gBACAC,eACAC,qBACAC,wBACK;AACP,SAASC,2BAA2B;AACpC,SAASC,iBAAiB;AAI1B,IAAMC,mBAAmB,CAAC,EAAEC,MAAM,EAAEC,MAAMC,IAAI,GAAE,EAAE,GAAY,EAAEF,MAAM,EAAEC,MAAME,IAAI,GAAE,EAAE,MAAeD,EAAEE,cAAcD,CAAAA;AAE9G,IAAME,oBAAoB,CAAC,EAAEC,IAAIC,SAASC,SAAQ,MAAqC;;;AAC5F,UAAMC,UAAUC,iBAAAA;AAChB,UAAM,EAAEC,iBAAiBC,SAAQ,IAAKC,oBAAAA;AACtC,UAAMN,UAAUO,QAAQ,MAAMN,SAASO,KAAKhB,gBAAAA,GAAmB;MAACS;KAAS;AACzE,UAAMQ,gBAAgBC,cAAcC,aAAaC,aAAa;AAG9D,UAAMC,eAAeC,aACnB,OAAOf,KAAYgB,YAAAA;AACjB,UAAIA,SAAS;AACX,cAAMb,QAAQc,OAAOjB,GAAAA;MACvB,OAAO;AACL,cAAMG,QAAQe,QAAQlB,GAAAA;MACxB;AAEA,YAAMM,SACJa,aAAaC,oBAAoBC,WAAW;QAC1C1B,MAAM;QACN2B,YAAY;UACVC,QAAQvB;UACRgB;QACF;MACF,CAAA,CAAA;IAEJ,GACA;MAACV;MAAUH;KAAQ;AAGrB,UAAMqB,cAAcT,aAClB,CAACU,aACCnB,SACEa,aAAaO,aAAaC,MAAM;MAC9BC,MAAM;;MAENC,SAAS;QAACJ,SAASK,WAAW,KAAK,GAAA;;MACnCC,SAAS;QAAEC,SAAShC;QAAIiC,aAAa;MAAM;IAC7C,CAAA,CAAA,GAEJ;MAAC3B;MAAUN;KAAG;AAGhB,UAAMkC,cAAcnB,aAAY,CAACU,aAAqB,CAAC,CAACf,cAAcyB,SAASV,QAAAA,GAAW;MAACf;KAAc;AAEzG,UAAM0B,iBAAiBrB,aACrB,CAACU,aAAqBnB,SAASa,aAAakB,eAAeV,MAAM;MAAEJ,QAAQE;IAAS,CAAA,CAAA,GACpF;MAACnB;KAAS;AAGZ,WACE,gBAAAgC,OAAA,cAACC,UAAUC,SAAO;MAACC,YAAW;OAC5B,gBAAAH,OAAA,cAACI,YAAAA;MACCzC;MACAe,SAASb,QAAQa;MACjB2B,SAASnB;MACToB,UAAU9B;MACVoB;MACAW,YAAYT;;;;;AAIpB;;;AJvEA,IAAA,wBAAe,MACbU,YAAYC,cAAaC,cAAc;EACrCC,cAAc;IACZC,IAAI,GAAGC,eAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SAAsBA,KAAKC,YAAY,GAAGC,YAAAA;IACnDC,WAAW,MAAA;AACT,YAAMC,UAAUC,kBAAAA;AAChB,YAAMC,WAAWC,SAAQ,MAAMH,QAAQI,QAAQT,OAAO,CAAC,EAAEU,KAAI,MAAO,CAACL,QAAQM,KAAKC,SAASF,KAAKb,EAAE,CAAA,GAAI,CAAA,CAAE;AAExG,aAAO,gBAAAgB,OAAA,cAACC,mBAAAA;QAAkBjB,IAAI,GAAGM,YAAAA;QAAoBM,SAASF;;IAChE;EACF,CAAA;EACAX,cAAc;IACZC,IAAI,GAAGC,eAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SAAsBA,KAAKC,YAAY,GAAGC,YAAAA;IACnDC,WAAW,MAAA;AACT,YAAMC,UAAUC,kBAAAA;AAChB,YAAMC,WAAWC,SACf,MACEH,QAAQI,QACLT,OAAO,CAAC,EAAEU,KAAI,MAAO,CAACL,QAAQM,KAAKC,SAASF,KAAKb,EAAE,CAAA,EACnDG,OAAO,CAAC,EAAEU,KAAI,MAAOL,QAAQU,QAAQH,SAASF,KAAKb,EAAE,CAAA,GAC1D,CAAA,CAAE;AAGJ,aAAO,gBAAAgB,OAAA,cAACC,mBAAAA;QAAkBjB,IAAI,GAAGM,YAAAA;QAA0BM,SAASF;;IACtE;EACF,CAAA;EACAX,cAAc;IACZC,IAAI,GAAGC,eAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SAAsBA,KAAKC,YAAY,GAAGC,YAAAA;IACnDC,WAAW,MAAA;AACT,YAAMC,UAAUC,kBAAAA;AAChB,YAAMC,WAAWC,SACf,MACEH,QAAQI,QACLT,OAAO,CAAC,EAAEU,KAAI,MAAO,CAACL,QAAQM,KAAKC,SAASF,KAAKb,EAAE,CAAA,EACnDG,OAAO,CAAC,EAAEU,KAAI,MAAO,CAACA,KAAKM,MAAMJ,SAAS,MAAA,CAAA,GAC/C,CAAA,CAAE;AAGJ,aAAO,gBAAAC,OAAA,cAACC,mBAAAA;QAAkBjB,IAAI,GAAGM,YAAAA;QAA4BM,SAASF;;IACxE;EACF,CAAA;EACAX,cAAc;IACZC,IAAI,GAAGC,eAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SAAsBA,KAAKC,YAAY,GAAGC,YAAAA;IACnDC,WAAW,MAAA;AACT,YAAMC,UAAUC,kBAAAA;AAChB,YAAMC,WAAWC,SAAQ,MAAMH,QAAQI,QAAQT,OAAO,CAAC,EAAEU,KAAI,MAAOA,KAAKM,MAAMJ,SAAS,MAAA,CAAA,GAAU,CAAA,CAAE;AAEpG,aAAO,gBAAAC,OAAA,cAACC,mBAAAA;QAAkBjB,IAAI,GAAGM,YAAAA;QAAqBM,SAASF;;IACjE;EACF,CAAA;EACAX,cAAc;IACZC,IAAI,GAAGC,eAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SAAsCA,KAAKC,mBAAmBe;IACvEb,WAAW,CAAC,EAAEH,MAAM,EAAEC,QAAO,EAAE,MAAE;AAC/B,YAAMG,UAAUC,kBAAAA;AAChB,YAAMS,UAAUV,QAAQU,QAAQH,SAASV,QAAQQ,KAAKb,EAAE;AACxD,YAAMqB,eAAeC,aACnB,MAAOJ,UAAUV,QAAQe,QAAQlB,QAAQQ,KAAKb,EAAE,IAAIQ,QAAQgB,OAAOnB,QAAQQ,KAAKb,EAAE,GAClF;QAACQ;QAASH,QAAQQ,KAAKb;QAAIkB;OAAQ;AAGrC,aACE,gBAAAF,OAAA,cAACS,WAAUC,SAAO,MAChB,gBAAAV,OAAA,cAACW,cAAAA;QAAaC,QAAQvB;QAASa;QAAkBW,UAAUR;;IAGjE;EACF,CAAA;CACD;",
6
6
  "names": ["React", "useCallback", "useMemo", "Capabilities", "contributes", "createSurface", "Plugin", "usePluginManager", "StackItem", "React", "Icon", "Input", "Link", "useTranslation", "DeprecatedFormContainer", "PluginDetail", "plugin", "enabled", "onEnable", "t", "useTranslation", "REGISTRY_PLUGIN", "id", "name", "description", "homePage", "source", "screenshots", "meta", "DeprecatedFormContainer", "classNames", "div", "role", "className", "p", "Input", "Root", "Switch", "checked", "onClick", "length", "h1", "img", "src", "alt", "Link", "href", "target", "rel", "Icon", "icon", "size", "React", "List", "React", "useCallback", "Icon", "IconButton", "Input", "Link", "ListItem", "Tag", "useTranslation", "descriptionText", "mx", "PluginItem", "plugin", "enabled", "onClick", "onChange", "hasSettings", "_hasSettings", "onSettings", "t", "useTranslation", "REGISTRY_PLUGIN", "id", "name", "description", "tags", "icon", "meta", "isEnabled", "includes", "inputId", "labelId", "descriptionId", "handleClick", "useCallback", "handleChange", "event", "stopPropagation", "handleSettings", "React", "ListItem", "Root", "key", "data-testid", "aria-describedby", "classNames", "div", "className", "Icon", "size", "span", "Input", "Switch", "checked", "p", "mx", "descriptionText", "length", "map", "tag", "Tag", "palette", "Link", "IconButton", "label", "iconOnly", "PluginList", "plugins", "props", "React", "List", "classNames", "map", "plugin", "div", "key", "meta", "id", "className", "PluginItem", "React", "useCallback", "useMemo", "Capabilities", "createIntent", "LayoutAction", "SettingsAction", "useCapability", "useIntentDispatcher", "usePluginManager", "ObservabilityAction", "StackItem", "sortByPluginMeta", "meta", "name", "a", "b", "localeCompare", "RegistryContainer", "id", "plugins", "_plugins", "manager", "usePluginManager", "dispatchPromise", "dispatch", "useIntentDispatcher", "useMemo", "sort", "settingsStore", "useCapability", "Capabilities", "SettingsStore", "handleChange", "useCallback", "enabled", "enable", "disable", "createIntent", "ObservabilityAction", "SendEvent", "properties", "plugin", "handleClick", "pluginId", "LayoutAction", "Open", "part", "subject", "replaceAll", "options", "pivotId", "positioning", "hasSettings", "getStore", "handleSettings", "SettingsAction", "React", "StackItem", "Content", "classNames", "PluginList", "onClick", "onChange", "onSettings", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "REGISTRY_PLUGIN", "role", "filter", "data", "subject", "REGISTRY_KEY", "component", "manager", "usePluginManager", "filtered", "useMemo", "plugins", "meta", "core", "includes", "React", "RegistryContainer", "enabled", "tags", "Plugin", "handleEnable", "useCallback", "disable", "enable", "StackItem", "Content", "PluginDetail", "plugin", "onEnable"]
7
7
  }
@@ -1,5 +1,5 @@
1
1
  import '@dxos-theme';
2
- import { type Meta } from '@storybook/react';
2
+ import { type Meta } from '@storybook/react-vite';
3
3
  export declare const Default: {};
4
4
  declare const meta: Meta;
5
5
  export default meta;
@@ -1 +1 @@
1
- {"version":3,"file":"Icon.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/Icon.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,aAAa,CAAC;AAGrB,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAyF7C,eAAO,MAAM,OAAO,IAAK,CAAC;AAE1B,QAAA,MAAM,IAAI,EAAE,IAMX,CAAC;AAEF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"Icon.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/Icon.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,aAAa,CAAC;AAGrB,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,uBAAuB,CAAC;AA0FlD,eAAO,MAAM,OAAO,IAAK,CAAC;AAE1B,QAAA,MAAM,IAAI,EAAE,IAMX,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import '@dxos-theme';
2
- import { type StoryObj, type Meta } from '@storybook/react';
2
+ import { type StoryObj, type Meta } from '@storybook/react-vite';
3
3
  import { type PluginDetailProps } from './PluginDetail';
4
4
  declare const meta: Meta<PluginDetailProps>;
5
5
  export default meta;
@@ -1 +1 @@
1
- {"version":3,"file":"PluginDetail.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/PluginDetail.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,aAAa,CAAC;AAErB,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAK5D,OAAO,EAAgB,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGtE,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAOjC,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC;AAEzC,eAAO,MAAM,OAAO,EAAE,KAiBrB,CAAC"}
1
+ {"version":3,"file":"PluginDetail.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/PluginDetail.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,aAAa,CAAC;AAErB,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAKjE,OAAO,EAAgB,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGtE,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAOjC,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC;AAEzC,eAAO,MAAM,OAAO,EAAE,KAiBrB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import '@dxos-theme';
2
- import { type Meta } from '@storybook/react';
2
+ import { type Meta } from '@storybook/react-vite';
3
3
  declare const meta: Meta;
4
4
  export default meta;
5
5
  export declare const Default: {};
@@ -1 +1 @@
1
- {"version":3,"file":"PluginList.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/PluginList.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,aAAa,CAAC;AAErB,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAyD7C,QAAA,MAAM,IAAI,EAAE,IAQX,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,eAAO,MAAM,OAAO,IAAK,CAAC;AAE1B,eAAO,MAAM,MAAM;;;;CAIlB,CAAC"}
1
+ {"version":3,"file":"PluginList.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/PluginList.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,aAAa,CAAC;AAErB,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAyDlD,QAAA,MAAM,IAAI,EAAE,IAQX,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,eAAO,MAAM,OAAO,IAAK,CAAC;AAE1B,eAAO,MAAM,MAAM;;;;CAIlB,CAAC"}
@@ -1,22 +1,22 @@
1
- declare const _default: {
2
- 'en-US': {
3
- "dxos.org/plugin/registry": {
4
- 'plugin name': string;
5
- 'details label': string;
6
- 'home page label': string;
7
- 'source label': string;
8
- 'plugin registry label': string;
9
- 'all plugins label': string;
10
- 'installed plugins label': string;
11
- 'recommended plugins label': string;
12
- 'labs plugins label': string;
13
- 'community plugins label': string;
14
- 'load by url label': string;
15
- 'coming soon label': string;
16
- 'open plugin registry label': string;
17
- 'settings label': string;
1
+ import { meta } from './meta';
2
+ export declare const translations: [{
3
+ readonly 'en-US': {
4
+ readonly [meta.id]: {
5
+ readonly 'plugin name': "Registry";
6
+ readonly 'details label': "Details";
7
+ readonly 'home page label': "Website";
8
+ readonly 'source label': "Source";
9
+ readonly 'plugin registry label': "Plugin Registry";
10
+ readonly 'all plugins label': "All";
11
+ readonly 'installed plugins label': "Enabled";
12
+ readonly 'recommended plugins label': "Recommended";
13
+ readonly 'labs plugins label': "Labs";
14
+ readonly 'community plugins label': "Community";
15
+ readonly 'load by url label': "Load by URL (soon)";
16
+ readonly 'coming soon label': "Coming soon!";
17
+ readonly 'open plugin registry label': "Open plugin registry";
18
+ readonly 'settings label': "Settings";
18
19
  };
19
20
  };
20
- }[];
21
- export default _default;
21
+ }];
22
22
  //# sourceMappingURL=translations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../src/translations.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAMA,wBAqBE"}
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"}