@dxos/app-framework 0.3.10-main.4001251 → 0.3.10-main.463b538

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 (29) hide show
  1. package/dist/lib/browser/index.mjs +214 -30
  2. package/dist/lib/browser/index.mjs.map +4 -4
  3. package/dist/lib/browser/meta.json +1 -1
  4. package/dist/lib/node/index.cjs +221 -42
  5. package/dist/lib/node/index.cjs.map +4 -4
  6. package/dist/lib/node/meta.json +1 -1
  7. package/dist/types/src/plugins/common/layout.d.ts +11 -8
  8. package/dist/types/src/plugins/common/layout.d.ts.map +1 -1
  9. package/dist/types/src/plugins/common/settings.d.ts +5 -6
  10. package/dist/types/src/plugins/common/settings.d.ts.map +1 -1
  11. package/dist/types/src/plugins/components/CommandsDialog.d.ts +5 -0
  12. package/dist/types/src/plugins/components/CommandsDialog.d.ts.map +1 -0
  13. package/dist/types/src/plugins/components/SettingsDialog.d.ts +2 -0
  14. package/dist/types/src/plugins/components/SettingsDialog.d.ts.map +1 -0
  15. package/dist/types/src/plugins/components/SettingsValue.d.ts +8 -0
  16. package/dist/types/src/plugins/components/SettingsValue.d.ts.map +1 -0
  17. package/dist/types/src/plugins/components/index.d.ts +4 -0
  18. package/dist/types/src/plugins/components/index.d.ts.map +1 -0
  19. package/dist/types/src/plugins/index.d.ts +1 -0
  20. package/dist/types/src/plugins/index.d.ts.map +1 -1
  21. package/package.json +16 -9
  22. package/src/plugins/common/layout.ts +6 -1
  23. package/src/plugins/common/settings.ts +5 -11
  24. package/src/plugins/components/CommandsDialog.tsx +100 -0
  25. package/src/plugins/components/SettingsDialog.tsx +98 -0
  26. package/src/plugins/components/SettingsValue.tsx +36 -0
  27. package/src/plugins/components/index.ts +7 -0
  28. package/src/plugins/index.ts +1 -0
  29. package/tsconfig.json +15 -0
@@ -1 +1 @@
1
- {"inputs":{"packages/sdk/app-framework/src/plugins/common/graph.ts":{"bytes":2197,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/common/layout.ts":{"bytes":8022,"imports":[{"path":"zod","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/app-framework/src/plugins/common/metadata.ts":{"bytes":2058,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/common/settings.ts":{"bytes":2109,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/common/translations.ts":{"bytes":3465,"imports":[{"path":"zod","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/app-framework/src/plugins/common/index.ts":{"bytes":836,"imports":[{"path":"packages/sdk/app-framework/src/plugins/common/graph.ts","kind":"import-statement","original":"./graph"},{"path":"packages/sdk/app-framework/src/plugins/common/layout.ts","kind":"import-statement","original":"./layout"},{"path":"packages/sdk/app-framework/src/plugins/common/metadata.ts","kind":"import-statement","original":"./metadata"},{"path":"packages/sdk/app-framework/src/plugins/common/settings.ts","kind":"import-statement","original":"./settings"},{"path":"packages/sdk/app-framework/src/plugins/common/translations.ts","kind":"import-statement","original":"./translations"}],"format":"esm"},"packages/sdk/app-framework/src/plugins/helpers.ts":{"bytes":4017,"imports":[{"path":"@dxos/debug","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/app-framework/src/plugins/IntentPlugin/intent.ts":{"bytes":1706,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/IntentPlugin/provides.ts":{"bytes":1874,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/IntentPlugin/IntentContext.tsx":{"bytes":1616,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/app-framework/src/plugins/IntentPlugin/index.ts":{"bytes":678,"imports":[{"path":"packages/sdk/app-framework/src/plugins/IntentPlugin/intent.ts","kind":"import-statement","original":"./intent"},{"path":"packages/sdk/app-framework/src/plugins/IntentPlugin/provides.ts","kind":"import-statement","original":"./provides"},{"path":"packages/sdk/app-framework/src/plugins/IntentPlugin/IntentContext.tsx","kind":"import-statement","original":"./IntentContext"}],"format":"esm"},"packages/sdk/app-framework/src/plugins/PluginHost/plugin.ts":{"bytes":5235,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/PluginHost/PluginContext.tsx":{"bytes":4030,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"packages/sdk/app-framework/src/plugins/helpers.ts","kind":"import-statement","original":"../helpers"}],"format":"esm"},"packages/sdk/app-framework/src/plugins/PluginHost/PluginHost.tsx":{"bytes":18487,"imports":[{"path":"deepsignal/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/sdk/app-framework/src/plugins/PluginHost/PluginContext.tsx","kind":"import-statement","original":"./PluginContext"}],"format":"esm"},"packages/sdk/app-framework/src/plugins/PluginHost/index.ts":{"bytes":678,"imports":[{"path":"packages/sdk/app-framework/src/plugins/PluginHost/plugin.ts","kind":"import-statement","original":"./plugin"},{"path":"packages/sdk/app-framework/src/plugins/PluginHost/PluginContext.tsx","kind":"import-statement","original":"./PluginContext"},{"path":"packages/sdk/app-framework/src/plugins/PluginHost/PluginHost.tsx","kind":"import-statement","original":"./PluginHost"}],"format":"esm"},"packages/sdk/app-framework/src/plugins/SurfacePlugin/helpers.ts":{"bytes":1765,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/SurfacePlugin/provides.ts":{"bytes":1954,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/SurfacePlugin/ErrorBoundary.tsx":{"bytes":4120,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/app-framework/src/plugins/SurfacePlugin/SurfaceRootContext.tsx":{"bytes":2747,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/app-framework/src/plugins/SurfacePlugin/Surface.tsx":{"bytes":13254,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"packages/sdk/app-framework/src/plugins/SurfacePlugin/ErrorBoundary.tsx","kind":"import-statement","original":"./ErrorBoundary"},{"path":"packages/sdk/app-framework/src/plugins/SurfacePlugin/SurfaceRootContext.tsx","kind":"import-statement","original":"./SurfaceRootContext"}],"format":"esm"},"packages/sdk/app-framework/src/plugins/SurfacePlugin/index.ts":{"bytes":881,"imports":[{"path":"packages/sdk/app-framework/src/plugins/SurfacePlugin/helpers.ts","kind":"import-statement","original":"./helpers"},{"path":"packages/sdk/app-framework/src/plugins/SurfacePlugin/provides.ts","kind":"import-statement","original":"./provides"},{"path":"packages/sdk/app-framework/src/plugins/SurfacePlugin/ErrorBoundary.tsx","kind":"import-statement","original":"./ErrorBoundary"},{"path":"packages/sdk/app-framework/src/plugins/SurfacePlugin/Surface.tsx","kind":"import-statement","original":"./Surface"},{"path":"packages/sdk/app-framework/src/plugins/SurfacePlugin/SurfaceRootContext.tsx","kind":"import-statement","original":"./SurfaceRootContext"}],"format":"esm"},"packages/sdk/app-framework/src/plugins/index.ts":{"bytes":854,"imports":[{"path":"packages/sdk/app-framework/src/plugins/common/index.ts","kind":"import-statement","original":"./common"},{"path":"packages/sdk/app-framework/src/plugins/helpers.ts","kind":"import-statement","original":"./helpers"},{"path":"packages/sdk/app-framework/src/plugins/IntentPlugin/index.ts","kind":"import-statement","original":"./IntentPlugin"},{"path":"packages/sdk/app-framework/src/plugins/PluginHost/index.ts","kind":"import-statement","original":"./PluginHost"},{"path":"packages/sdk/app-framework/src/plugins/SurfacePlugin/index.ts","kind":"import-statement","original":"./SurfacePlugin"}],"format":"esm"},"packages/sdk/app-framework/src/plugins/IntentPlugin/meta.ts":{"bytes":690,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/SurfacePlugin/meta.ts":{"bytes":698,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/SurfacePlugin/plugin.tsx":{"bytes":4010,"imports":[{"path":"deepsignal/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"packages/sdk/app-framework/src/plugins/SurfacePlugin/SurfaceRootContext.tsx","kind":"import-statement","original":"./SurfaceRootContext"},{"path":"packages/sdk/app-framework/src/plugins/SurfacePlugin/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/sdk/app-framework/src/plugins/SurfacePlugin/provides.ts","kind":"import-statement","original":"./provides"},{"path":"packages/sdk/app-framework/src/plugins/helpers.ts","kind":"import-statement","original":"../helpers"}],"format":"esm"},"packages/sdk/app-framework/src/plugins/IntentPlugin/plugin.tsx":{"bytes":7167,"imports":[{"path":"deepsignal/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"packages/sdk/app-framework/src/plugins/IntentPlugin/IntentContext.tsx","kind":"import-statement","original":"./IntentContext"},{"path":"packages/sdk/app-framework/src/plugins/IntentPlugin/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/sdk/app-framework/src/plugins/IntentPlugin/provides.ts","kind":"import-statement","original":"./provides"},{"path":"packages/sdk/app-framework/src/plugins/helpers.ts","kind":"import-statement","original":"../helpers"}],"format":"esm"},"packages/sdk/app-framework/src/App.tsx":{"bytes":6903,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"packages/sdk/app-framework/src/plugins/index.ts","kind":"import-statement","original":"./plugins"},{"path":"packages/sdk/app-framework/src/plugins/IntentPlugin/meta.ts","kind":"import-statement","original":"./plugins/IntentPlugin/meta"},{"path":"packages/sdk/app-framework/src/plugins/SurfacePlugin/meta.ts","kind":"import-statement","original":"./plugins/SurfacePlugin/meta"},{"path":"packages/sdk/app-framework/src/plugins/SurfacePlugin/plugin.tsx","kind":"dynamic-import","original":"./plugins/SurfacePlugin/plugin"},{"path":"packages/sdk/app-framework/src/plugins/IntentPlugin/plugin.tsx","kind":"dynamic-import","original":"./plugins/IntentPlugin/plugin"}],"format":"esm"},"packages/sdk/app-framework/src/index.ts":{"bytes":544,"imports":[{"path":"packages/sdk/app-framework/src/plugins/index.ts","kind":"import-statement","original":"./plugins"},{"path":"packages/sdk/app-framework/src/App.tsx","kind":"import-statement","original":"./App"}],"format":"esm"}},"outputs":{"packages/sdk/app-framework/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":37673},"packages/sdk/app-framework/dist/lib/browser/index.mjs":{"imports":[{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-MNFAM2GF.mjs","kind":"import-statement"},{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-C2K6M6WC.mjs","kind":"import-statement"},{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-CFZ5JAJF.mjs","kind":"import-statement"},{"path":"zod","kind":"import-statement","external":true},{"path":"zod","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"deepsignal/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"packages/sdk/app-framework/dist/lib/browser/plugin-JDIMDLDU.mjs","kind":"dynamic-import"},{"path":"packages/sdk/app-framework/dist/lib/browser/plugin-CBPJO5NB.mjs","kind":"dynamic-import"}],"exports":["ErrorBoundary","IntentProvider","Layout","LayoutAction","Plugin","PluginHost","PluginProvider","Resource","ResourceKey","ResourceLanguage","SettingsAction","Surface","SurfaceProvider","createApp","filterPlugins","findPlugin","getPlugin","initializePlugin","isObject","parseGraphBuilderPlugin","parseGraphPlugin","parseIntentPlugin","parseIntentResolverPlugin","parseLayoutPlugin","parseMetadataRecordsPlugin","parseMetadataResolverPlugin","parsePluginHost","parseRootSurfacePlugin","parseSettingsPlugin","parseSurfacePlugin","parseTranslationsPlugin","pluginMeta","resolvePlugin","useIntent","usePlugin","usePlugins","useResolvePlugin","useSurface"],"entryPoint":"packages/sdk/app-framework/src/index.ts","inputs":{"packages/sdk/app-framework/src/plugins/common/graph.ts":{"bytesInOutput":174},"packages/sdk/app-framework/src/plugins/common/index.ts":{"bytesInOutput":0},"packages/sdk/app-framework/src/plugins/common/layout.ts":{"bytesInOutput":1773},"packages/sdk/app-framework/src/plugins/common/metadata.ts":{"bytesInOutput":226},"packages/sdk/app-framework/src/plugins/common/settings.ts":{"bytesInOutput":341},"packages/sdk/app-framework/src/plugins/common/translations.ts":{"bytesInOutput":357},"packages/sdk/app-framework/src/plugins/index.ts":{"bytesInOutput":0},"packages/sdk/app-framework/src/plugins/IntentPlugin/index.ts":{"bytesInOutput":0},"packages/sdk/app-framework/src/plugins/PluginHost/plugin.ts":{"bytesInOutput":241},"packages/sdk/app-framework/src/plugins/PluginHost/index.ts":{"bytesInOutput":0},"packages/sdk/app-framework/src/plugins/PluginHost/PluginContext.tsx":{"bytesInOutput":512},"packages/sdk/app-framework/src/plugins/PluginHost/PluginHost.tsx":{"bytesInOutput":4505},"packages/sdk/app-framework/src/plugins/SurfacePlugin/helpers.ts":{"bytesInOutput":61},"packages/sdk/app-framework/src/plugins/SurfacePlugin/index.ts":{"bytesInOutput":0},"packages/sdk/app-framework/src/plugins/SurfacePlugin/ErrorBoundary.tsx":{"bytesInOutput":676},"packages/sdk/app-framework/src/plugins/SurfacePlugin/Surface.tsx":{"bytesInOutput":2673},"packages/sdk/app-framework/src/index.ts":{"bytesInOutput":0},"packages/sdk/app-framework/src/App.tsx":{"bytesInOutput":1151}},"bytes":14582},"packages/sdk/app-framework/dist/lib/browser/plugin-JDIMDLDU.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2039},"packages/sdk/app-framework/dist/lib/browser/plugin-JDIMDLDU.mjs":{"imports":[{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-MNFAM2GF.mjs","kind":"import-statement"},{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-CFZ5JAJF.mjs","kind":"import-statement"},{"path":"deepsignal/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/sdk/app-framework/src/plugins/SurfacePlugin/plugin.tsx","inputs":{"packages/sdk/app-framework/src/plugins/SurfacePlugin/plugin.tsx":{"bytesInOutput":680}},"bytes":985},"packages/sdk/app-framework/dist/lib/browser/chunk-MNFAM2GF.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3064},"packages/sdk/app-framework/dist/lib/browser/chunk-MNFAM2GF.mjs":{"imports":[{"path":"react","kind":"import-statement","external":true}],"exports":["SurfaceProvider","meta_default","parseRootSurfacePlugin","parseSurfacePlugin","useSurface"],"inputs":{"packages/sdk/app-framework/src/plugins/SurfacePlugin/provides.ts":{"bytesInOutput":191},"packages/sdk/app-framework/src/plugins/SurfacePlugin/SurfaceRootContext.tsx":{"bytesInOutput":235},"packages/sdk/app-framework/src/plugins/SurfacePlugin/meta.ts":{"bytesInOutput":87}},"bytes":879},"packages/sdk/app-framework/dist/lib/browser/plugin-CBPJO5NB.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3442},"packages/sdk/app-framework/dist/lib/browser/plugin-CBPJO5NB.mjs":{"imports":[{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-C2K6M6WC.mjs","kind":"import-statement"},{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-CFZ5JAJF.mjs","kind":"import-statement"},{"path":"deepsignal/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/sdk/app-framework/src/plugins/IntentPlugin/plugin.tsx","inputs":{"packages/sdk/app-framework/src/plugins/IntentPlugin/plugin.tsx":{"bytesInOutput":1348}},"bytes":1672},"packages/sdk/app-framework/dist/lib/browser/chunk-C2K6M6WC.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2163},"packages/sdk/app-framework/dist/lib/browser/chunk-C2K6M6WC.mjs":{"imports":[{"path":"react","kind":"import-statement","external":true}],"exports":["IntentProvider","meta_default","parseIntentPlugin","parseIntentResolverPlugin","useIntent"],"inputs":{"packages/sdk/app-framework/src/plugins/IntentPlugin/provides.ts":{"bytesInOutput":184},"packages/sdk/app-framework/src/plugins/IntentPlugin/IntentContext.tsx":{"bytesInOutput":231},"packages/sdk/app-framework/src/plugins/IntentPlugin/meta.ts":{"bytesInOutput":84}},"bytes":857},"packages/sdk/app-framework/dist/lib/browser/chunk-CFZ5JAJF.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2110},"packages/sdk/app-framework/dist/lib/browser/chunk-CFZ5JAJF.mjs":{"imports":[{"path":"@dxos/debug","kind":"import-statement","external":true}],"exports":["filterPlugins","findPlugin","getPlugin","resolvePlugin"],"inputs":{"packages/sdk/app-framework/src/plugins/helpers.ts":{"bytesInOutput":525}},"bytes":695}}}
1
+ {"inputs":{"packages/sdk/app-framework/src/plugins/common/graph.ts":{"bytes":2197,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/common/layout.ts":{"bytes":8956,"imports":[{"path":"zod","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/app-framework/src/plugins/common/metadata.ts":{"bytes":2058,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/common/settings.ts":{"bytes":944,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/common/translations.ts":{"bytes":3465,"imports":[{"path":"zod","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/app-framework/src/plugins/common/index.ts":{"bytes":836,"imports":[{"path":"packages/sdk/app-framework/src/plugins/common/graph.ts","kind":"import-statement","original":"./graph"},{"path":"packages/sdk/app-framework/src/plugins/common/layout.ts","kind":"import-statement","original":"./layout"},{"path":"packages/sdk/app-framework/src/plugins/common/metadata.ts","kind":"import-statement","original":"./metadata"},{"path":"packages/sdk/app-framework/src/plugins/common/settings.ts","kind":"import-statement","original":"./settings"},{"path":"packages/sdk/app-framework/src/plugins/common/translations.ts","kind":"import-statement","original":"./translations"}],"format":"esm"},"packages/sdk/app-framework/src/plugins/components/CommandsDialog.tsx":{"bytes":13190,"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/keyboard","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-searchlist","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/app-framework/src/plugins/PluginHost/plugin.ts":{"bytes":5235,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/helpers.ts":{"bytes":4017,"imports":[{"path":"@dxos/debug","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/app-framework/src/plugins/PluginHost/PluginContext.tsx":{"bytes":4030,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"packages/sdk/app-framework/src/plugins/helpers.ts","kind":"import-statement","original":"../helpers"}],"format":"esm"},"packages/sdk/app-framework/src/plugins/PluginHost/PluginHost.tsx":{"bytes":18487,"imports":[{"path":"deepsignal/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/sdk/app-framework/src/plugins/PluginHost/PluginContext.tsx","kind":"import-statement","original":"./PluginContext"}],"format":"esm"},"packages/sdk/app-framework/src/plugins/PluginHost/index.ts":{"bytes":678,"imports":[{"path":"packages/sdk/app-framework/src/plugins/PluginHost/plugin.ts","kind":"import-statement","original":"./plugin"},{"path":"packages/sdk/app-framework/src/plugins/PluginHost/PluginContext.tsx","kind":"import-statement","original":"./PluginContext"},{"path":"packages/sdk/app-framework/src/plugins/PluginHost/PluginHost.tsx","kind":"import-statement","original":"./PluginHost"}],"format":"esm"},"packages/sdk/app-framework/src/plugins/SurfacePlugin/helpers.ts":{"bytes":1765,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/SurfacePlugin/provides.ts":{"bytes":1954,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/SurfacePlugin/ErrorBoundary.tsx":{"bytes":4120,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/app-framework/src/plugins/SurfacePlugin/SurfaceRootContext.tsx":{"bytes":2747,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/app-framework/src/plugins/SurfacePlugin/Surface.tsx":{"bytes":13254,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"packages/sdk/app-framework/src/plugins/SurfacePlugin/ErrorBoundary.tsx","kind":"import-statement","original":"./ErrorBoundary"},{"path":"packages/sdk/app-framework/src/plugins/SurfacePlugin/SurfaceRootContext.tsx","kind":"import-statement","original":"./SurfaceRootContext"}],"format":"esm"},"packages/sdk/app-framework/src/plugins/SurfacePlugin/index.ts":{"bytes":881,"imports":[{"path":"packages/sdk/app-framework/src/plugins/SurfacePlugin/helpers.ts","kind":"import-statement","original":"./helpers"},{"path":"packages/sdk/app-framework/src/plugins/SurfacePlugin/provides.ts","kind":"import-statement","original":"./provides"},{"path":"packages/sdk/app-framework/src/plugins/SurfacePlugin/ErrorBoundary.tsx","kind":"import-statement","original":"./ErrorBoundary"},{"path":"packages/sdk/app-framework/src/plugins/SurfacePlugin/Surface.tsx","kind":"import-statement","original":"./Surface"},{"path":"packages/sdk/app-framework/src/plugins/SurfacePlugin/SurfaceRootContext.tsx","kind":"import-statement","original":"./SurfaceRootContext"}],"format":"esm"},"packages/sdk/app-framework/src/plugins/components/SettingsDialog.tsx":{"bytes":11223,"imports":[{"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/sdk/app-framework/src/plugins/PluginHost/index.ts","kind":"import-statement","original":"../PluginHost"},{"path":"packages/sdk/app-framework/src/plugins/SurfacePlugin/index.ts","kind":"import-statement","original":"../SurfacePlugin"}],"format":"esm"},"packages/sdk/app-framework/src/plugins/components/SettingsValue.tsx":{"bytes":3597,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/app-framework/src/plugins/components/index.ts":{"bytes":710,"imports":[{"path":"packages/sdk/app-framework/src/plugins/components/CommandsDialog.tsx","kind":"import-statement","original":"./CommandsDialog"},{"path":"packages/sdk/app-framework/src/plugins/components/SettingsDialog.tsx","kind":"import-statement","original":"./SettingsDialog"},{"path":"packages/sdk/app-framework/src/plugins/components/SettingsValue.tsx","kind":"import-statement","original":"./SettingsValue"}],"format":"esm"},"packages/sdk/app-framework/src/plugins/IntentPlugin/intent.ts":{"bytes":1706,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/IntentPlugin/provides.ts":{"bytes":1874,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/IntentPlugin/IntentContext.tsx":{"bytes":1616,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/app-framework/src/plugins/IntentPlugin/index.ts":{"bytes":678,"imports":[{"path":"packages/sdk/app-framework/src/plugins/IntentPlugin/intent.ts","kind":"import-statement","original":"./intent"},{"path":"packages/sdk/app-framework/src/plugins/IntentPlugin/provides.ts","kind":"import-statement","original":"./provides"},{"path":"packages/sdk/app-framework/src/plugins/IntentPlugin/IntentContext.tsx","kind":"import-statement","original":"./IntentContext"}],"format":"esm"},"packages/sdk/app-framework/src/plugins/index.ts":{"bytes":948,"imports":[{"path":"packages/sdk/app-framework/src/plugins/common/index.ts","kind":"import-statement","original":"./common"},{"path":"packages/sdk/app-framework/src/plugins/components/index.ts","kind":"import-statement","original":"./components"},{"path":"packages/sdk/app-framework/src/plugins/helpers.ts","kind":"import-statement","original":"./helpers"},{"path":"packages/sdk/app-framework/src/plugins/IntentPlugin/index.ts","kind":"import-statement","original":"./IntentPlugin"},{"path":"packages/sdk/app-framework/src/plugins/PluginHost/index.ts","kind":"import-statement","original":"./PluginHost"},{"path":"packages/sdk/app-framework/src/plugins/SurfacePlugin/index.ts","kind":"import-statement","original":"./SurfacePlugin"}],"format":"esm"},"packages/sdk/app-framework/src/plugins/IntentPlugin/meta.ts":{"bytes":690,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/SurfacePlugin/meta.ts":{"bytes":698,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/SurfacePlugin/plugin.tsx":{"bytes":4010,"imports":[{"path":"deepsignal/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"packages/sdk/app-framework/src/plugins/SurfacePlugin/SurfaceRootContext.tsx","kind":"import-statement","original":"./SurfaceRootContext"},{"path":"packages/sdk/app-framework/src/plugins/SurfacePlugin/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/sdk/app-framework/src/plugins/SurfacePlugin/provides.ts","kind":"import-statement","original":"./provides"},{"path":"packages/sdk/app-framework/src/plugins/helpers.ts","kind":"import-statement","original":"../helpers"}],"format":"esm"},"packages/sdk/app-framework/src/plugins/IntentPlugin/plugin.tsx":{"bytes":7167,"imports":[{"path":"deepsignal/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"packages/sdk/app-framework/src/plugins/IntentPlugin/IntentContext.tsx","kind":"import-statement","original":"./IntentContext"},{"path":"packages/sdk/app-framework/src/plugins/IntentPlugin/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/sdk/app-framework/src/plugins/IntentPlugin/provides.ts","kind":"import-statement","original":"./provides"},{"path":"packages/sdk/app-framework/src/plugins/helpers.ts","kind":"import-statement","original":"../helpers"}],"format":"esm"},"packages/sdk/app-framework/src/App.tsx":{"bytes":6903,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"packages/sdk/app-framework/src/plugins/index.ts","kind":"import-statement","original":"./plugins"},{"path":"packages/sdk/app-framework/src/plugins/IntentPlugin/meta.ts","kind":"import-statement","original":"./plugins/IntentPlugin/meta"},{"path":"packages/sdk/app-framework/src/plugins/SurfacePlugin/meta.ts","kind":"import-statement","original":"./plugins/SurfacePlugin/meta"},{"path":"packages/sdk/app-framework/src/plugins/SurfacePlugin/plugin.tsx","kind":"dynamic-import","original":"./plugins/SurfacePlugin/plugin"},{"path":"packages/sdk/app-framework/src/plugins/IntentPlugin/plugin.tsx","kind":"dynamic-import","original":"./plugins/IntentPlugin/plugin"}],"format":"esm"},"packages/sdk/app-framework/src/index.ts":{"bytes":544,"imports":[{"path":"packages/sdk/app-framework/src/plugins/index.ts","kind":"import-statement","original":"./plugins"},{"path":"packages/sdk/app-framework/src/App.tsx","kind":"import-statement","original":"./App"}],"format":"esm"}},"outputs":{"packages/sdk/app-framework/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":51766},"packages/sdk/app-framework/dist/lib/browser/index.mjs":{"imports":[{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-MNFAM2GF.mjs","kind":"import-statement"},{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-C2K6M6WC.mjs","kind":"import-statement"},{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-CFZ5JAJF.mjs","kind":"import-statement"},{"path":"zod","kind":"import-statement","external":true},{"path":"zod","kind":"import-statement","external":true},{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/keyboard","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-searchlist","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","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":"react","kind":"import-statement","external":true},{"path":"deepsignal/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react","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/invariant","kind":"import-statement","external":true},{"path":"packages/sdk/app-framework/dist/lib/browser/plugin-JDIMDLDU.mjs","kind":"dynamic-import"},{"path":"packages/sdk/app-framework/dist/lib/browser/plugin-CBPJO5NB.mjs","kind":"dynamic-import"}],"exports":["CommandsDialogContent","ErrorBoundary","IntentProvider","Layout","LayoutAction","Plugin","PluginHost","PluginProvider","Resource","ResourceKey","ResourceLanguage","SettingsDialogContent","SettingsValue","Surface","SurfaceProvider","createApp","filterPlugins","findPlugin","getPlugin","initializePlugin","isObject","parseGraphBuilderPlugin","parseGraphPlugin","parseIntentPlugin","parseIntentResolverPlugin","parseLayoutPlugin","parseMetadataRecordsPlugin","parseMetadataResolverPlugin","parsePluginHost","parseRootSurfacePlugin","parseSurfacePlugin","parseTranslationsPlugin","pluginMeta","resolvePlugin","useIntent","usePlugin","usePlugins","useResolvePlugin","useSurface"],"entryPoint":"packages/sdk/app-framework/src/index.ts","inputs":{"packages/sdk/app-framework/src/plugins/common/graph.ts":{"bytesInOutput":174},"packages/sdk/app-framework/src/plugins/common/index.ts":{"bytesInOutput":0},"packages/sdk/app-framework/src/plugins/common/layout.ts":{"bytesInOutput":2131},"packages/sdk/app-framework/src/plugins/common/metadata.ts":{"bytesInOutput":226},"packages/sdk/app-framework/src/plugins/common/translations.ts":{"bytesInOutput":357},"packages/sdk/app-framework/src/plugins/index.ts":{"bytesInOutput":0},"packages/sdk/app-framework/src/plugins/components/CommandsDialog.tsx":{"bytesInOutput":3145},"packages/sdk/app-framework/src/plugins/components/index.ts":{"bytesInOutput":0},"packages/sdk/app-framework/src/plugins/components/SettingsDialog.tsx":{"bytesInOutput":2987},"packages/sdk/app-framework/src/plugins/PluginHost/plugin.ts":{"bytesInOutput":241},"packages/sdk/app-framework/src/plugins/PluginHost/index.ts":{"bytesInOutput":0},"packages/sdk/app-framework/src/plugins/PluginHost/PluginContext.tsx":{"bytesInOutput":512},"packages/sdk/app-framework/src/plugins/PluginHost/PluginHost.tsx":{"bytesInOutput":4513},"packages/sdk/app-framework/src/plugins/SurfacePlugin/helpers.ts":{"bytesInOutput":61},"packages/sdk/app-framework/src/plugins/SurfacePlugin/index.ts":{"bytesInOutput":0},"packages/sdk/app-framework/src/plugins/SurfacePlugin/ErrorBoundary.tsx":{"bytesInOutput":676},"packages/sdk/app-framework/src/plugins/SurfacePlugin/Surface.tsx":{"bytesInOutput":2673},"packages/sdk/app-framework/src/plugins/components/SettingsValue.tsx":{"bytesInOutput":919},"packages/sdk/app-framework/src/plugins/IntentPlugin/index.ts":{"bytesInOutput":0},"packages/sdk/app-framework/src/index.ts":{"bytesInOutput":0},"packages/sdk/app-framework/src/App.tsx":{"bytesInOutput":1151}},"bytes":21913},"packages/sdk/app-framework/dist/lib/browser/plugin-JDIMDLDU.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2039},"packages/sdk/app-framework/dist/lib/browser/plugin-JDIMDLDU.mjs":{"imports":[{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-MNFAM2GF.mjs","kind":"import-statement"},{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-CFZ5JAJF.mjs","kind":"import-statement"},{"path":"deepsignal/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/sdk/app-framework/src/plugins/SurfacePlugin/plugin.tsx","inputs":{"packages/sdk/app-framework/src/plugins/SurfacePlugin/plugin.tsx":{"bytesInOutput":680}},"bytes":985},"packages/sdk/app-framework/dist/lib/browser/chunk-MNFAM2GF.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3064},"packages/sdk/app-framework/dist/lib/browser/chunk-MNFAM2GF.mjs":{"imports":[{"path":"react","kind":"import-statement","external":true}],"exports":["SurfaceProvider","meta_default","parseRootSurfacePlugin","parseSurfacePlugin","useSurface"],"inputs":{"packages/sdk/app-framework/src/plugins/SurfacePlugin/provides.ts":{"bytesInOutput":191},"packages/sdk/app-framework/src/plugins/SurfacePlugin/SurfaceRootContext.tsx":{"bytesInOutput":235},"packages/sdk/app-framework/src/plugins/SurfacePlugin/meta.ts":{"bytesInOutput":87}},"bytes":879},"packages/sdk/app-framework/dist/lib/browser/plugin-CBPJO5NB.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3442},"packages/sdk/app-framework/dist/lib/browser/plugin-CBPJO5NB.mjs":{"imports":[{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-C2K6M6WC.mjs","kind":"import-statement"},{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-CFZ5JAJF.mjs","kind":"import-statement"},{"path":"deepsignal/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/sdk/app-framework/src/plugins/IntentPlugin/plugin.tsx","inputs":{"packages/sdk/app-framework/src/plugins/IntentPlugin/plugin.tsx":{"bytesInOutput":1348}},"bytes":1672},"packages/sdk/app-framework/dist/lib/browser/chunk-C2K6M6WC.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2163},"packages/sdk/app-framework/dist/lib/browser/chunk-C2K6M6WC.mjs":{"imports":[{"path":"react","kind":"import-statement","external":true}],"exports":["IntentProvider","meta_default","parseIntentPlugin","parseIntentResolverPlugin","useIntent"],"inputs":{"packages/sdk/app-framework/src/plugins/IntentPlugin/provides.ts":{"bytesInOutput":184},"packages/sdk/app-framework/src/plugins/IntentPlugin/IntentContext.tsx":{"bytesInOutput":231},"packages/sdk/app-framework/src/plugins/IntentPlugin/meta.ts":{"bytesInOutput":84}},"bytes":857},"packages/sdk/app-framework/dist/lib/browser/chunk-CFZ5JAJF.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2110},"packages/sdk/app-framework/dist/lib/browser/chunk-CFZ5JAJF.mjs":{"imports":[{"path":"@dxos/debug","kind":"import-statement","external":true}],"exports":["filterPlugins","findPlugin","getPlugin","resolvePlugin"],"inputs":{"packages/sdk/app-framework/src/plugins/helpers.ts":{"bytesInOutput":525}},"bytes":695}}}
@@ -28,6 +28,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
29
  var node_exports = {};
30
30
  __export(node_exports, {
31
+ CommandsDialogContent: () => CommandsDialogContent,
31
32
  ErrorBoundary: () => ErrorBoundary,
32
33
  IntentProvider: () => import_chunk_BOQBLWMX.IntentProvider,
33
34
  Layout: () => Layout,
@@ -38,7 +39,8 @@ __export(node_exports, {
38
39
  Resource: () => Resource,
39
40
  ResourceKey: () => ResourceKey,
40
41
  ResourceLanguage: () => ResourceLanguage,
41
- SettingsAction: () => SettingsAction,
42
+ SettingsDialogContent: () => SettingsDialogContent,
43
+ SettingsValue: () => SettingsValue,
42
44
  Surface: () => Surface,
43
45
  SurfaceProvider: () => import_chunk_DC3GU6QR.SurfaceProvider,
44
46
  createApp: () => createApp,
@@ -56,7 +58,6 @@ __export(node_exports, {
56
58
  parseMetadataResolverPlugin: () => parseMetadataResolverPlugin,
57
59
  parsePluginHost: () => parsePluginHost,
58
60
  parseRootSurfacePlugin: () => import_chunk_DC3GU6QR.parseRootSurfacePlugin,
59
- parseSettingsPlugin: () => parseSettingsPlugin,
60
61
  parseSurfacePlugin: () => import_chunk_DC3GU6QR.parseSurfacePlugin,
61
62
  parseTranslationsPlugin: () => parseTranslationsPlugin,
62
63
  pluginMeta: () => pluginMeta,
@@ -73,15 +74,26 @@ var import_chunk_BOQBLWMX = require("./chunk-BOQBLWMX.cjs");
73
74
  var import_chunk_VDKZ7AAF = require("./chunk-VDKZ7AAF.cjs");
74
75
  var import_zod = require("zod");
75
76
  var import_zod2 = require("zod");
76
- var import_react = require("react");
77
- var import_react2 = require("deepsignal/react");
77
+ var import_react = require("@phosphor-icons/react");
78
+ var import_react2 = __toESM(require("react"));
79
+ var import_keyboard = require("@dxos/keyboard");
80
+ var import_react_ui = require("@dxos/react-ui");
81
+ var import_react_ui_searchlist = require("@dxos/react-ui-searchlist");
82
+ var import_react_ui_theme = require("@dxos/react-ui-theme");
78
83
  var import_react3 = __toESM(require("react"));
84
+ var import_react_ui2 = require("@dxos/react-ui");
85
+ var import_react_ui_theme2 = require("@dxos/react-ui-theme");
86
+ var import_react4 = require("react");
87
+ var import_react5 = require("deepsignal/react");
88
+ var import_react6 = __toESM(require("react"));
79
89
  var import_local_storage = require("@dxos/local-storage");
80
90
  var import_log = require("@dxos/log");
81
- var import_react4 = __toESM(require("react"));
82
- var import_react5 = __toESM(require("react"));
83
- var import_react6 = require("react");
84
91
  var import_react7 = __toESM(require("react"));
92
+ var import_react8 = __toESM(require("react"));
93
+ var import_react9 = require("react");
94
+ var import_react10 = __toESM(require("react"));
95
+ var import_react_ui3 = require("@dxos/react-ui");
96
+ var import_react11 = __toESM(require("react"));
85
97
  var import_invariant = require("@dxos/invariant");
86
98
  var parseGraphPlugin = (plugin) => plugin.provides.graph?.root ? plugin : void 0;
87
99
  var parseGraphBuilderPlugin = (plugin) => plugin.provides.graph?.builder ? plugin : void 0;
@@ -104,7 +116,7 @@ var parseLayoutPlugin = (plugin) => {
104
116
  const { success } = Layout.safeParse(plugin.provides.layout);
105
117
  return success ? plugin : void 0;
106
118
  };
107
- var LAYOUT_ACTION = "dxos.org/plugin/layout";
119
+ var LAYOUT_ACTION = "dxos.org/plugin/intent";
108
120
  var LayoutAction;
109
121
  (function(LayoutAction2) {
110
122
  LayoutAction2[LayoutAction2["TOGGLE_FULLSCREEN"] = `${LAYOUT_ACTION}/toggle-fullscreen`] = "TOGGLE_FULLSCREEN";
@@ -115,6 +127,12 @@ var LayoutAction;
115
127
  LayoutAction2[LayoutAction2["OPEN_POPOVER"] = `${LAYOUT_ACTION}/open-popover`] = "OPEN_POPOVER";
116
128
  LayoutAction2[LayoutAction2["CLOSE_POPOVER"] = `${LAYOUT_ACTION}/close-popover`] = "CLOSE_POPOVER";
117
129
  LayoutAction2[LayoutAction2["ACTIVATE"] = `${LAYOUT_ACTION}/activate`] = "ACTIVATE";
130
+ LayoutAction2[LayoutAction2[
131
+ // TODO(burdon): Move to new plugin.
132
+ "OPEN_COMMANDS"
133
+ ] = `${LAYOUT_ACTION}/open-commands`] = "OPEN_COMMANDS";
134
+ LayoutAction2[LayoutAction2["OPEN_SETTINGS"] = `${LAYOUT_ACTION}/open-settings`] = "OPEN_SETTINGS";
135
+ LayoutAction2[LayoutAction2["OPEN_SHORTCUTS"] = `${LAYOUT_ACTION}/open-shortcuts`] = "OPEN_SHORTCUTS";
118
136
  })(LayoutAction || (LayoutAction = {}));
119
137
  var parseMetadataRecordsPlugin = (plugin) => {
120
138
  return plugin.provides.metadata?.records ? plugin : void 0;
@@ -122,14 +140,6 @@ var parseMetadataRecordsPlugin = (plugin) => {
122
140
  var parseMetadataResolverPlugin = (plugin) => {
123
141
  return plugin.provides.metadata?.resolver ? plugin : void 0;
124
142
  };
125
- var parseSettingsPlugin = (plugin) => {
126
- return typeof plugin.provides.settings === "object" ? plugin : void 0;
127
- };
128
- var SETTINGS_ACTION = "dxos.org/plugin/settings";
129
- var SettingsAction;
130
- (function(SettingsAction2) {
131
- SettingsAction2[SettingsAction2["OPEN"] = `${SETTINGS_ACTION}/open`] = "OPEN";
132
- })(SettingsAction || (SettingsAction = {}));
133
143
  var ResourceKey = import_zod2.z.union([
134
144
  import_zod2.z.string(),
135
145
  import_zod2.z.record(import_zod2.z.any())
@@ -140,6 +150,86 @@ var parseTranslationsPlugin = (plugin) => {
140
150
  const { success } = import_zod2.z.array(Resource).safeParse(plugin.provides.translations);
141
151
  return success ? plugin : void 0;
142
152
  };
153
+ var CommandsDialogContent = ({ graph }) => {
154
+ const { t } = (0, import_react_ui.useTranslation)("os");
155
+ const toString = (label) => Array.isArray(label) ? t(...label) : label;
156
+ const actions = (0, import_react2.useMemo)(() => {
157
+ const current = import_keyboard.Keyboard.singleton.getCurrentContext();
158
+ const actionMap = /* @__PURE__ */ new Set();
159
+ const actions2 = [];
160
+ graph?.traverse({
161
+ visitor: (node, path) => {
162
+ if (current.startsWith(path.join("/"))) {
163
+ node.actions.forEach((action) => {
164
+ if (!actionMap.has(action.id)) {
165
+ actionMap.add(action.id);
166
+ actions2.push(action);
167
+ }
168
+ });
169
+ }
170
+ }
171
+ });
172
+ actions2.sort(({ label: a }, { label: b }) => {
173
+ return toString(a)?.toLowerCase().localeCompare(toString(b)?.toLowerCase());
174
+ });
175
+ return actions2;
176
+ }, [
177
+ graph
178
+ ]);
179
+ const buttonRef = (0, import_react2.useRef)(null);
180
+ return /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Dialog.Content, {
181
+ classNames: [
182
+ "md:max-is-[30rem] overflow-hidden"
183
+ ]
184
+ }, /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Dialog.Title, null, t("commands dialog title", {
185
+ ns: "os"
186
+ })), /* @__PURE__ */ import_react2.default.createElement(import_react_ui_searchlist.SearchList.Root, {
187
+ label: t("commandlist input placeholder"),
188
+ classNames: "flex flex-col grow overflow-hidden my-2"
189
+ }, /* @__PURE__ */ import_react2.default.createElement(import_react_ui_searchlist.SearchList.Input, {
190
+ placeholder: t("commandlist input placeholder"),
191
+ classNames: (0, import_react_ui_theme.mx)("px-1 my-2")
192
+ }), /* @__PURE__ */ import_react2.default.createElement(import_react_ui_searchlist.SearchList.Content, {
193
+ classNames: [
194
+ "max-bs-[30rem] overflow-auto"
195
+ ]
196
+ }, actions?.map((action) => {
197
+ const label = toString(action.label);
198
+ const Icon = action.icon ?? import_react.DotOutline;
199
+ return /* @__PURE__ */ import_react2.default.createElement(import_react_ui_searchlist.SearchList.Item, {
200
+ value: label,
201
+ key: action.id,
202
+ onSelect: () => {
203
+ if (action.properties.disabled) {
204
+ return;
205
+ }
206
+ buttonRef.current?.click();
207
+ setTimeout(() => {
208
+ void action.invoke();
209
+ });
210
+ },
211
+ classNames: "flex items-center gap-2",
212
+ disabled: action.properties.disabled,
213
+ ...action.properties?.testId && {
214
+ "data-testid": action.properties.testId
215
+ }
216
+ }, /* @__PURE__ */ import_react2.default.createElement(Icon, {
217
+ className: (0, import_react_ui_theme.mx)((0, import_react_ui_theme.getSize)(4), "shrink-0", !action.icon && "invisible")
218
+ }), /* @__PURE__ */ import_react2.default.createElement("span", {
219
+ className: "grow truncate"
220
+ }, label), action.keyBinding && /* @__PURE__ */ import_react2.default.createElement("span", {
221
+ className: (0, import_react_ui_theme.mx)("shrink-0", import_react_ui_theme.descriptionText)
222
+ }, (0, import_keyboard.keySymbols)(action.keyBinding).join("")));
223
+ }))), /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Dialog.Close, {
224
+ asChild: true
225
+ }, /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Button, {
226
+ ref: buttonRef,
227
+ variant: "primary",
228
+ classNames: "mbs-2"
229
+ }, t("close label", {
230
+ ns: "os"
231
+ }))));
232
+ };
143
233
  var pluginMeta = (meta) => meta;
144
234
  var Plugin;
145
235
  (function(Plugin2) {
@@ -149,7 +239,7 @@ var Plugin;
149
239
  });
150
240
  };
151
241
  })(Plugin || (Plugin = {}));
152
- var PluginContext = /* @__PURE__ */ (0, import_react.createContext)({
242
+ var PluginContext = /* @__PURE__ */ (0, import_react4.createContext)({
153
243
  ready: false,
154
244
  enabled: [],
155
245
  plugins: [],
@@ -157,7 +247,7 @@ var PluginContext = /* @__PURE__ */ (0, import_react.createContext)({
157
247
  setPlugin: () => {
158
248
  }
159
249
  });
160
- var usePlugins = () => (0, import_react.useContext)(PluginContext);
250
+ var usePlugins = () => (0, import_react4.useContext)(PluginContext);
161
251
  var usePlugin = (id) => {
162
252
  const { plugins } = usePlugins();
163
253
  return (0, import_chunk_VDKZ7AAF.findPlugin)(plugins, id);
@@ -197,11 +287,11 @@ var PluginHost = ({ order, plugins: definitions, core = [], defaults = [], fallb
197
287
  },
198
288
  provides: {
199
289
  plugins: state.values,
200
- context: ({ children }) => /* @__PURE__ */ import_react3.default.createElement(PluginProvider, {
290
+ context: ({ children }) => /* @__PURE__ */ import_react6.default.createElement(PluginProvider, {
201
291
  value: state.values
202
292
  }, children),
203
293
  root: () => {
204
- (0, import_react3.useEffect)(() => {
294
+ (0, import_react6.useEffect)(() => {
205
295
  (0, import_log.log)("initializing plugins", {
206
296
  enabled: state.values.enabled
207
297
  }, {
@@ -246,7 +336,7 @@ var PluginHost = ({ order, plugins: definitions, core = [], defaults = [], fallb
246
336
  S: void 0,
247
337
  C: (f, a) => f(...a)
248
338
  });
249
- state.values.plugins = (0, import_react2.shallow)(plugins);
339
+ state.values.plugins = (0, import_react5.shallow)(plugins);
250
340
  state.values.ready = true;
251
341
  });
252
342
  return () => {
@@ -255,10 +345,10 @@ var PluginHost = ({ order, plugins: definitions, core = [], defaults = [], fallb
255
345
  };
256
346
  }, []);
257
347
  if (!state.values.ready) {
258
- return /* @__PURE__ */ import_react3.default.createElement(import_react3.default.Fragment, null, fallback);
348
+ return /* @__PURE__ */ import_react6.default.createElement(import_react6.default.Fragment, null, fallback);
259
349
  }
260
350
  const ComposedContext = composeContext(state.values.plugins);
261
- return /* @__PURE__ */ import_react3.default.createElement(ComposedContext, null, rootComponents(state.values.plugins));
351
+ return /* @__PURE__ */ import_react6.default.createElement(ComposedContext, null, rootComponents(state.values.plugins));
262
352
  }
263
353
  }
264
354
  };
@@ -277,7 +367,7 @@ var rootComponents = (plugins) => {
277
367
  return plugins.map((plugin) => {
278
368
  const Component2 = plugin.provides.root;
279
369
  if (Component2) {
280
- return /* @__PURE__ */ import_react3.default.createElement(Component2, {
370
+ return /* @__PURE__ */ import_react6.default.createElement(Component2, {
281
371
  key: plugin.meta.id
282
372
  });
283
373
  } else {
@@ -291,10 +381,10 @@ var composeContext = (plugins) => {
291
381
  var compose = (contexts) => {
292
382
  return [
293
383
  ...contexts
294
- ].reduce((Acc, Next) => ({ children }) => /* @__PURE__ */ import_react3.default.createElement(Acc, null, /* @__PURE__ */ import_react3.default.createElement(Next, null, children)));
384
+ ].reduce((Acc, Next) => ({ children }) => /* @__PURE__ */ import_react6.default.createElement(Acc, null, /* @__PURE__ */ import_react6.default.createElement(Next, null, children)));
295
385
  };
296
386
  var isObject = (data) => !!data && typeof data === "object";
297
- var ErrorBoundary = class extends import_react4.Component {
387
+ var ErrorBoundary = class extends import_react7.Component {
298
388
  constructor(props) {
299
389
  super(props);
300
390
  this.state = {
@@ -313,7 +403,7 @@ var ErrorBoundary = class extends import_react4.Component {
313
403
  }
314
404
  render() {
315
405
  if (this.state.error) {
316
- return /* @__PURE__ */ import_react4.default.createElement(this.props.fallback, {
406
+ return /* @__PURE__ */ import_react7.default.createElement(this.props.fallback, {
317
407
  error: this.state.error,
318
408
  reset: this.resetError
319
409
  });
@@ -326,30 +416,30 @@ var ErrorBoundary = class extends import_react4.Component {
326
416
  });
327
417
  }
328
418
  };
329
- var Surface = /* @__PURE__ */ (0, import_react5.forwardRef)(({ role, name = role, fallback, ...rest }, forwardedRef) => {
419
+ var Surface = /* @__PURE__ */ (0, import_react8.forwardRef)(({ role, name = role, fallback, ...rest }, forwardedRef) => {
330
420
  const props = {
331
421
  role,
332
422
  name,
333
423
  fallback,
334
424
  ...rest
335
425
  };
336
- const context = (0, import_react6.useContext)(SurfaceContext);
426
+ const context = (0, import_react9.useContext)(SurfaceContext);
337
427
  const data = props.data ?? (name && context?.surfaces?.[name]?.data || {});
338
- return /* @__PURE__ */ import_react5.default.createElement(import_react5.default.Fragment, null, fallback ? /* @__PURE__ */ import_react5.default.createElement(ErrorBoundary, {
428
+ return /* @__PURE__ */ import_react8.default.createElement(import_react8.default.Fragment, null, fallback ? /* @__PURE__ */ import_react8.default.createElement(ErrorBoundary, {
339
429
  data,
340
430
  fallback
341
- }, /* @__PURE__ */ import_react5.default.createElement(SurfaceResolver, {
431
+ }, /* @__PURE__ */ import_react8.default.createElement(SurfaceResolver, {
342
432
  ...props,
343
433
  ref: forwardedRef
344
- })) : /* @__PURE__ */ import_react5.default.createElement(SurfaceResolver, {
434
+ })) : /* @__PURE__ */ import_react8.default.createElement(SurfaceResolver, {
345
435
  ...props,
346
436
  ref: forwardedRef
347
437
  }));
348
438
  });
349
- var SurfaceContext = /* @__PURE__ */ (0, import_react6.createContext)(null);
350
- var SurfaceResolver = /* @__PURE__ */ (0, import_react5.forwardRef)((props, forwardedRef) => {
439
+ var SurfaceContext = /* @__PURE__ */ (0, import_react9.createContext)(null);
440
+ var SurfaceResolver = /* @__PURE__ */ (0, import_react8.forwardRef)((props, forwardedRef) => {
351
441
  const { components } = (0, import_chunk_DC3GU6QR.useSurface)();
352
- const parent = (0, import_react6.useContext)(SurfaceContext);
442
+ const parent = (0, import_react9.useContext)(SurfaceContext);
353
443
  const nodes = resolveNodes(components, props, parent, forwardedRef);
354
444
  const currentContext = {
355
445
  ...props,
@@ -358,9 +448,9 @@ var SurfaceResolver = /* @__PURE__ */ (0, import_react5.forwardRef)((props, forw
358
448
  ...props.surfaces
359
449
  }
360
450
  };
361
- return /* @__PURE__ */ import_react5.default.createElement(SurfaceContext.Provider, {
451
+ return /* @__PURE__ */ import_react8.default.createElement(SurfaceContext.Provider, {
362
452
  value: currentContext
363
- }, nodes.length > 0 ? nodes : props.contentFallback ? /* @__PURE__ */ import_react5.default.createElement(props.contentFallback, null) : null);
453
+ }, nodes.length > 0 ? nodes : props.contentFallback ? /* @__PURE__ */ import_react8.default.createElement(props.contentFallback, null) : null);
364
454
  });
365
455
  var resolveNodes = (components, props, context, forwardedRef) => {
366
456
  const data = {
@@ -378,7 +468,7 @@ var resolveNodes = (components, props, context, forwardedRef) => {
378
468
  return "node" in result ? [
379
469
  key,
380
470
  result
381
- ] : /* @__PURE__ */ (0, import_react5.isValidElement)(result) ? [
471
+ ] : /* @__PURE__ */ (0, import_react8.isValidElement)(result) ? [
382
472
  key,
383
473
  {
384
474
  node: result
@@ -395,11 +485,99 @@ var resolveNodes = (components, props, context, forwardedRef) => {
395
485
  return 1;
396
486
  }
397
487
  return 0;
398
- }).map(([key, result]) => /* @__PURE__ */ import_react5.default.createElement(import_react5.Fragment, {
488
+ }).map(([key, result]) => /* @__PURE__ */ import_react8.default.createElement(import_react8.Fragment, {
399
489
  key
400
490
  }, result.node));
401
491
  return props.limit ? nodes.slice(0, props.limit) : nodes;
402
492
  };
493
+ var SettingsDialogContent = () => {
494
+ const { t } = (0, import_react_ui2.useTranslation)("os");
495
+ const [plugin, setPlugin] = (0, import_react3.useState)("dxos.org/plugin/registry");
496
+ const { plugins, enabled } = usePlugins();
497
+ const core = [
498
+ "dxos.org/plugin/layout",
499
+ "dxos.org/plugin/client",
500
+ "dxos.org/plugin/space",
501
+ "dxos.org/plugin/registry"
502
+ ];
503
+ const filteredPlugins = enabled.map((id) => plugins.find((plugin2) => plugin2.meta.id === id)).filter((plugin2) => plugin2?.provides?.settings).map((plugin2) => plugin2.meta).sort(({ name: a }, { name: b }) => a?.localeCompare(b ?? "") ?? 0);
504
+ return /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Dialog.Content, {
505
+ classNames: [
506
+ "h-full md:max-is-[40rem] overflow-hidden"
507
+ ]
508
+ }, /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Dialog.Title, null, t("settings dialog title", {
509
+ ns: "os"
510
+ })), /* @__PURE__ */ import_react3.default.createElement("div", {
511
+ className: "flex grow mlb-4 overflow-hidden"
512
+ }, /* @__PURE__ */ import_react3.default.createElement("div", {
513
+ className: (0, import_react_ui_theme2.mx)("flex flex-col w-[200px] space-y-4 pr-4 border-r overflow-y-auto", import_react_ui_theme2.groupBorder)
514
+ }, /* @__PURE__ */ import_react3.default.createElement(PluginList, {
515
+ title: "Options",
516
+ plugins: core.map((id) => plugins.find((p) => p.meta.id === id).meta),
517
+ selected: plugin,
518
+ onSelect: (plugin2) => setPlugin(plugin2)
519
+ }), /* @__PURE__ */ import_react3.default.createElement(PluginList, {
520
+ title: "Plugins",
521
+ plugins: filteredPlugins,
522
+ selected: plugin,
523
+ onSelect: (plugin2) => setPlugin(plugin2)
524
+ })), /* @__PURE__ */ import_react3.default.createElement("div", {
525
+ className: (0, import_react_ui_theme2.mx)("flex flex-col w-full md:px-4 divide-y overflow-y-auto", import_react_ui_theme2.groupBorder)
526
+ }, /* @__PURE__ */ import_react3.default.createElement(Surface, {
527
+ role: "settings",
528
+ data: {
529
+ plugin
530
+ }
531
+ }))), /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Dialog.Close, {
532
+ asChild: true
533
+ }, /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Button, {
534
+ variant: "primary",
535
+ classNames: "mbs-2",
536
+ autoFocus: true
537
+ }, t("done label", {
538
+ ns: "os"
539
+ }))));
540
+ };
541
+ var PluginList = ({ title, plugins, selected, onSelect }) => {
542
+ return /* @__PURE__ */ import_react3.default.createElement("div", {
543
+ role: "none"
544
+ }, /* @__PURE__ */ import_react3.default.createElement("h2", {
545
+ className: "my-1 px-2 text-sm text-neutral-500"
546
+ }, title), /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.List, {
547
+ selectable: true
548
+ }, plugins.map((plugin) => /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.ListItem.Root, {
549
+ key: plugin.id,
550
+ onClick: () => onSelect(plugin.id),
551
+ selected: plugin.id === selected,
552
+ classNames: [
553
+ "px-2 rounded",
554
+ plugin.id === selected && import_react_ui_theme2.ghostSelected,
555
+ import_react_ui_theme2.ghostHover
556
+ ]
557
+ }, /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.ListItem.Heading, {
558
+ classNames: [
559
+ "flex w-full items-center cursor-pointer"
560
+ ]
561
+ }, plugin.name)))));
562
+ };
563
+ var SettingsValue = ({ label, description, children }) => {
564
+ return /* @__PURE__ */ import_react10.default.createElement("div", {
565
+ role: "none",
566
+ className: "flex w-full gap-4 py-1"
567
+ }, /* @__PURE__ */ import_react10.default.createElement(import_react_ui3.Input.Root, null, /* @__PURE__ */ import_react10.default.createElement("div", {
568
+ role: "none",
569
+ className: "flex flex-col w-full"
570
+ }, /* @__PURE__ */ import_react10.default.createElement(import_react_ui3.Input.Label, {
571
+ classNames: "flex min-h-[40px] items-center"
572
+ }, label), description && /* @__PURE__ */ import_react10.default.createElement(import_react_ui3.Input.DescriptionAndValidation, {
573
+ classNames: "mbs-0.5"
574
+ }, /* @__PURE__ */ import_react10.default.createElement(import_react_ui3.Input.Description, null, description))), /* @__PURE__ */ import_react10.default.createElement("div", {
575
+ role: "none"
576
+ }, /* @__PURE__ */ import_react10.default.createElement("div", {
577
+ role: "none",
578
+ className: "flex min-h-[40px] items-center"
579
+ }, children))));
580
+ };
403
581
  var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/sdk/app-framework/src/App.tsx";
404
582
  var createApp = ({ order, plugins, core = order.map(({ id }) => id), ...params }) => {
405
583
  const host = PluginHost({
@@ -440,10 +618,11 @@ var createApp = ({ order, plugins, core = order.map(({ id }) => id), ...params }
440
618
  });
441
619
  const Context = host.provides.context;
442
620
  const Root = host.provides.root;
443
- return () => /* @__PURE__ */ import_react7.default.createElement(Context, null, /* @__PURE__ */ import_react7.default.createElement(Root, null));
621
+ return () => /* @__PURE__ */ import_react11.default.createElement(Context, null, /* @__PURE__ */ import_react11.default.createElement(Root, null));
444
622
  };
445
623
  // Annotate the CommonJS export names for ESM import in node:
446
624
  0 && (module.exports = {
625
+ CommandsDialogContent,
447
626
  ErrorBoundary,
448
627
  IntentProvider,
449
628
  Layout,
@@ -454,7 +633,8 @@ var createApp = ({ order, plugins, core = order.map(({ id }) => id), ...params }
454
633
  Resource,
455
634
  ResourceKey,
456
635
  ResourceLanguage,
457
- SettingsAction,
636
+ SettingsDialogContent,
637
+ SettingsValue,
458
638
  Surface,
459
639
  SurfaceProvider,
460
640
  createApp,
@@ -472,7 +652,6 @@ var createApp = ({ order, plugins, core = order.map(({ id }) => id), ...params }
472
652
  parseMetadataResolverPlugin,
473
653
  parsePluginHost,
474
654
  parseRootSurfacePlugin,
475
- parseSettingsPlugin,
476
655
  parseSurfacePlugin,
477
656
  parseTranslationsPlugin,
478
657
  pluginMeta,