@dxos/plugin-registry 0.6.10 → 0.6.11-staging.e6894a4
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.
- package/dist/lib/browser/index.mjs +2 -2
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/types/src/components/PluginSettings.d.ts.map +1 -1
- package/package.json +14 -14
- package/src/components/PluginList.tsx +2 -2
- package/src/components/PluginSettings.tsx +1 -0
|
@@ -24,8 +24,8 @@ var PluginList = ({ plugins = [], loaded = [], enabled = [], onChange, onReload
|
|
|
24
24
|
return /* @__PURE__ */ React.createElement(DensityProvider, {
|
|
25
25
|
density: "fine"
|
|
26
26
|
}, /* @__PURE__ */ React.createElement(List, {
|
|
27
|
-
classNames: "select-none"
|
|
28
|
-
}, plugins.map(({ id, name, description, homePage,
|
|
27
|
+
classNames: "mb-4 select-none"
|
|
28
|
+
}, plugins.map(({ id, name, description, homePage, iconComponent: Icon = Circle }) => {
|
|
29
29
|
const isEnabled = enabled.includes(id);
|
|
30
30
|
const isLoaded = loaded.includes(id);
|
|
31
31
|
const reloadRequired = isEnabled !== isLoaded;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/RegistryPlugin.tsx", "../../../src/components/PluginList.tsx", "../../../src/components/PluginSettings.tsx", "../../../src/translations.ts", "../../../src/index.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport type { PluginDefinition, SettingsProvides, SurfaceProvides, TranslationsProvides } from '@dxos/app-framework';\nimport { LocalStorageStore } from '@dxos/local-storage';\n\nimport { PluginSettings } from './components';\nimport meta, { REGISTRY_PLUGIN } from './meta';\nimport translations from './translations';\n\nexport type RegistrySettingsProps = {\n experimental?: boolean;\n};\n\nexport type RegistryPluginProvides = SurfaceProvides & TranslationsProvides & SettingsProvides<RegistrySettingsProps>;\n\nexport const RegistryPlugin = (): PluginDefinition<RegistryPluginProvides> => {\n const settings = new LocalStorageStore<RegistrySettingsProps>(REGISTRY_PLUGIN);\n\n return {\n meta,\n ready: async () => {\n settings.prop({ key: 'experimental', type: LocalStorageStore.bool({ allowUndefined: true }) });\n },\n provides: {\n settings: settings.values,\n translations,\n surface: {\n component: ({ data, role }) => {\n switch (role) {\n case 'settings':\n return data.plugin === meta.id ? <PluginSettings settings={settings.values} /> : null;\n }\n\n return null;\n },\n },\n },\n };\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { ArrowClockwise, Circle } from '@phosphor-icons/react';\nimport React from 'react';\n\nimport type { Plugin } from '@dxos/app-framework';\nimport {\n Button,\n // type ChromaticPalette,\n // type NeutralPalette,\n DensityProvider,\n Input,\n List,\n ListItem,\n useTranslation,\n // Link,\n} from '@dxos/react-ui';\nimport { descriptionText, fineBlockSize, getSize, ghostHover, mx } from '@dxos/react-ui-theme';\n\nimport { REGISTRY_PLUGIN } from '../meta';\n\n// TODO(burdon): Reconcile with theme.\n// const palette: { [tag: string]: ChromaticPalette | NeutralPalette } = {\n// default: 'neutral',\n// new: 'green',\n// beta: 'cyan',\n// alpha: 'purple',\n// experimental: 'indigo',\n// 新発売: 'red',\n// };\n\nexport type PluginListProps = {\n plugins?: Plugin['meta'][];\n loaded?: string[];\n enabled?: string[];\n onChange?: (id: string, enabled: boolean) => void;\n onReload?: () => void;\n};\n\nexport const PluginList = ({ plugins = [], loaded = [], enabled = [], onChange, onReload }: PluginListProps) => {\n const { t } = useTranslation(REGISTRY_PLUGIN);\n\n return (\n <DensityProvider density='fine'>\n <List classNames='select-none'>\n {plugins.map(({ id, name, description, homePage,
|
|
5
|
-
"mappings": ";;;;;;AAIA,OAAOA,YAAW;AAGlB,SAASC,yBAAyB;;;ACHlC,SAASC,gBAAgBC,cAAc;AACvC,OAAOC,WAAW;AAGlB;EACEC;EAGAC;EACAC;EACAC;EACAC;EACAC;OAEK;AACP,SAASC,iBAAiBC,eAAeC,SAASC,YAAYC,UAAU;AAsBjE,IAAMC,aAAa,CAAC,EAAEC,UAAU,CAAA,GAAIC,SAAS,CAAA,GAAIC,UAAU,CAAA,GAAIC,UAAUC,SAAQ,MAAmB;AACzG,QAAM,EAAEC,EAAC,IAAKC,eAAeC,eAAAA;AAE7B,SACE,sBAAA,cAACC,iBAAAA;IAAgBC,SAAQ;KACvB,sBAAA,cAACC,MAAAA;IAAKC,YAAW;KACdX,QAAQY,IAAI,CAAC,EAAEC,IAAIC,MAAMC,aAAaC,UAAUC,
|
|
6
|
-
"names": ["React", "LocalStorageStore", "ArrowClockwise", "Circle", "React", "Button", "DensityProvider", "Input", "List", "ListItem", "useTranslation", "descriptionText", "fineBlockSize", "getSize", "ghostHover", "mx", "PluginList", "plugins", "loaded", "enabled", "onChange", "onReload", "t", "useTranslation", "REGISTRY_PLUGIN", "DensityProvider", "density", "List", "classNames", "map", "id", "name", "description", "homePage", "
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport type { PluginDefinition, SettingsProvides, SurfaceProvides, TranslationsProvides } from '@dxos/app-framework';\nimport { LocalStorageStore } from '@dxos/local-storage';\n\nimport { PluginSettings } from './components';\nimport meta, { REGISTRY_PLUGIN } from './meta';\nimport translations from './translations';\n\nexport type RegistrySettingsProps = {\n experimental?: boolean;\n};\n\nexport type RegistryPluginProvides = SurfaceProvides & TranslationsProvides & SettingsProvides<RegistrySettingsProps>;\n\nexport const RegistryPlugin = (): PluginDefinition<RegistryPluginProvides> => {\n const settings = new LocalStorageStore<RegistrySettingsProps>(REGISTRY_PLUGIN);\n\n return {\n meta,\n ready: async () => {\n settings.prop({ key: 'experimental', type: LocalStorageStore.bool({ allowUndefined: true }) });\n },\n provides: {\n settings: settings.values,\n translations,\n surface: {\n component: ({ data, role }) => {\n switch (role) {\n case 'settings':\n return data.plugin === meta.id ? <PluginSettings settings={settings.values} /> : null;\n }\n\n return null;\n },\n },\n },\n };\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { ArrowClockwise, Circle } from '@phosphor-icons/react';\nimport React from 'react';\n\nimport type { Plugin } from '@dxos/app-framework';\nimport {\n Button,\n // type ChromaticPalette,\n // type NeutralPalette,\n DensityProvider,\n Input,\n List,\n ListItem,\n useTranslation,\n // Link,\n} from '@dxos/react-ui';\nimport { descriptionText, fineBlockSize, getSize, ghostHover, mx } from '@dxos/react-ui-theme';\n\nimport { REGISTRY_PLUGIN } from '../meta';\n\n// TODO(burdon): Reconcile with theme.\n// const palette: { [tag: string]: ChromaticPalette | NeutralPalette } = {\n// default: 'neutral',\n// new: 'green',\n// beta: 'cyan',\n// alpha: 'purple',\n// experimental: 'indigo',\n// 新発売: 'red',\n// };\n\nexport type PluginListProps = {\n plugins?: Plugin['meta'][];\n loaded?: string[];\n enabled?: string[];\n onChange?: (id: string, enabled: boolean) => void;\n onReload?: () => void;\n};\n\nexport const PluginList = ({ plugins = [], loaded = [], enabled = [], onChange, onReload }: PluginListProps) => {\n const { t } = useTranslation(REGISTRY_PLUGIN);\n\n return (\n <DensityProvider density='fine'>\n <List classNames='mb-4 select-none'>\n {plugins.map(({ id, name, description, homePage, iconComponent: Icon = Circle }) => {\n const isEnabled = enabled.includes(id);\n const isLoaded = loaded.includes(id);\n const reloadRequired = isEnabled !== isLoaded;\n const inputId = `${id}-input`;\n const labelId = `${id}-label`;\n const descriptionId = `${id}-description`;\n\n return (\n <Input.Root key={id} id={inputId}>\n <ListItem.Root\n labelId={labelId}\n data-testid={`pluginList.${id}`}\n aria-describedby={descriptionId}\n classNames={['flex gap-2 cursor-pointer plb-2 pli-2 -mli-2 rounded', ghostHover]}\n >\n <Icon weight='duotone' className={mx('shrink-0 mbs-1', getSize(6))} />\n <div role='none' className={mx(fineBlockSize, 'grow pbs-1 pl-1')}>\n <label htmlFor={inputId} id={labelId} className='truncate'>\n {name ?? id}\n </label>\n {(description || reloadRequired || homePage) && (\n <div id={descriptionId} className='space-b-1 pbs-1 pbe-1'>\n <p className={descriptionText}>{description}</p>\n {/* TODO(wittjosiah): Include once plugin docs are available. */}\n {/* {homePage && (\n <Link\n href={homePage}\n target='_blank'\n rel='noreferrer'\n aria-describedby={descriptionId}\n classNames='text-xs'\n >\n {t('home page label')}\n <ArrowSquareOut weight='bold' className={mx(getSize(3), 'inline-block leading-none mli-1')} />\n </Link>\n )} */}\n {reloadRequired && (\n <Button variant='ghost' classNames='p-0 gap-2' onClick={onReload}>\n <ArrowClockwise />\n <p className='text-sm font-medium'>{t('reload required message')}</p>\n </Button>\n )}\n </div>\n )}\n </div>\n <div className='pbs-1'>\n <Input.Switch\n classNames='self-center'\n checked={!!isEnabled}\n onClick={() => onChange?.(id, !isEnabled)}\n />\n </div>\n </ListItem.Root>\n </Input.Root>\n );\n })}\n </List>\n </DensityProvider>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useMemo, type PropsWithChildren } from 'react';\n\nimport { type Plugin, useIntentDispatcher, usePlugins } from '@dxos/app-framework';\nimport { ObservabilityAction } from '@dxos/plugin-observability/meta';\nimport { SettingsValue } from '@dxos/plugin-settings';\nimport { Input, useTranslation } from '@dxos/react-ui';\n\nimport { PluginList } from './PluginList';\nimport { type RegistrySettingsProps } from '../RegistryPlugin';\nimport { REGISTRY_PLUGIN } from '../meta';\n\nexport const PluginSettings = ({ settings }: { settings: RegistrySettingsProps }) => {\n const { t } = useTranslation(REGISTRY_PLUGIN);\n const { enabled, core, plugins, setPlugin, ...pluginContext } = usePlugins();\n const dispatch = useIntentDispatcher();\n\n const sort = (a: Plugin['meta'], b: Plugin['meta']) => a.name?.localeCompare(b.name ?? '') ?? 0;\n\n // Memoize to prevent plugins from disappearing when toggling enabled.\n const installed = useMemo(\n () =>\n plugins\n .filter(({ meta }) => !core.includes(meta.id))\n .filter(({ meta }) => enabled.includes(meta.id))\n .map(({ meta }) => meta)\n .sort(sort),\n [],\n );\n\n const available = useMemo(() => pluginContext.available.filter(({ id }) => !enabled.includes(id)).sort(sort), []);\n const recommended = available.filter((meta) => !meta.tags?.includes('experimental'));\n const experimental = available.filter((meta) => meta.tags?.includes('experimental'));\n\n const handleChange = (id: string, enabled: boolean) => {\n setPlugin(id, enabled);\n void dispatch({\n action: ObservabilityAction.SEND_EVENT,\n data: {\n name: 'plugins.toggle',\n properties: { plugin: id, enabled },\n },\n });\n };\n\n const handleReload = () => {\n window.location.reload();\n };\n\n return (\n <>\n <SettingsValue label={t('settings show experimental label')}>\n <Input.Switch\n data-testid='pluginSettings.experimental'\n checked={settings.experimental}\n onCheckedChange={(checked) => (settings.experimental = !!checked)}\n />\n </SettingsValue>\n\n <Section label={t('settings section installed label')}>\n <PluginList\n plugins={installed}\n loaded={plugins.map(({ meta }) => meta.id)}\n enabled={enabled}\n onChange={handleChange}\n onReload={handleReload}\n />\n </Section>\n\n <Section label={t('settings section recommended label')}>\n <PluginList\n plugins={recommended}\n loaded={plugins.map(({ meta }) => meta.id)}\n enabled={enabled}\n onChange={handleChange}\n onReload={handleReload}\n />\n </Section>\n\n {settings.experimental && (\n <Section label={t('settings section experimental label')}>\n <PluginList\n plugins={experimental}\n loaded={plugins.map(({ meta }) => meta.id)}\n enabled={enabled}\n onChange={handleChange}\n onReload={handleReload}\n />\n </Section>\n )}\n </>\n );\n};\n\nconst Section = ({ label, children }: PropsWithChildren<{ label: string }>) => {\n return (\n <div>\n <h2 className='py-2 text-sm text-neutral-500'>{label}</h2>\n {children}\n </div>\n );\n};\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 'reload required message': 'Reload required.',\n 'settings show experimental label': 'Show experimental plugins',\n 'settings section installed label': 'Installed',\n 'settings section recommended label': 'Recommended',\n 'settings section experimental label': 'Experimental',\n 'home page label': 'Home page',\n },\n },\n },\n];\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { RegistryPlugin } from './RegistryPlugin';\n\nexport default RegistryPlugin;\n\nexport * from './RegistryPlugin';\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "LocalStorageStore", "ArrowClockwise", "Circle", "React", "Button", "DensityProvider", "Input", "List", "ListItem", "useTranslation", "descriptionText", "fineBlockSize", "getSize", "ghostHover", "mx", "PluginList", "plugins", "loaded", "enabled", "onChange", "onReload", "t", "useTranslation", "REGISTRY_PLUGIN", "DensityProvider", "density", "List", "classNames", "map", "id", "name", "description", "homePage", "iconComponent", "Icon", "Circle", "isEnabled", "includes", "isLoaded", "reloadRequired", "inputId", "labelId", "descriptionId", "Input", "Root", "key", "ListItem", "data-testid", "aria-describedby", "ghostHover", "weight", "className", "mx", "getSize", "div", "role", "fineBlockSize", "label", "htmlFor", "p", "descriptionText", "Button", "variant", "onClick", "ArrowClockwise", "Switch", "checked", "React", "useMemo", "useIntentDispatcher", "usePlugins", "ObservabilityAction", "SettingsValue", "Input", "useTranslation", "PluginSettings", "settings", "t", "useTranslation", "REGISTRY_PLUGIN", "enabled", "core", "plugins", "setPlugin", "pluginContext", "usePlugins", "dispatch", "useIntentDispatcher", "sort", "a", "b", "name", "localeCompare", "installed", "useMemo", "filter", "meta", "includes", "id", "map", "available", "recommended", "tags", "experimental", "handleChange", "action", "ObservabilityAction", "SEND_EVENT", "data", "properties", "plugin", "handleReload", "window", "location", "reload", "React", "SettingsValue", "label", "Input", "Switch", "data-testid", "checked", "onCheckedChange", "Section", "PluginList", "loaded", "onChange", "onReload", "children", "div", "h2", "className", "REGISTRY_PLUGIN", "RegistryPlugin", "settings", "LocalStorageStore", "REGISTRY_PLUGIN", "meta", "ready", "prop", "key", "type", "bool", "allowUndefined", "provides", "values", "translations", "surface", "component", "data", "role", "plugin", "id", "React", "PluginSettings", "RegistryPlugin"]
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"packages/plugins/plugin-registry/src/meta.ts":{"bytes":851,"imports":[],"format":"esm"},"packages/plugins/plugin-registry/src/components/PluginList.tsx":{"bytes":
|
|
1
|
+
{"inputs":{"packages/plugins/plugin-registry/src/meta.ts":{"bytes":851,"imports":[],"format":"esm"},"packages/plugins/plugin-registry/src/components/PluginList.tsx":{"bytes":11469,"imports":[{"path":"@phosphor-icons/react","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/PluginSettings.tsx":{"bytes":11868,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-observability/meta","kind":"import-statement","external":true},{"path":"@dxos/plugin-settings","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-registry/src/components/PluginList.tsx","kind":"import-statement","original":"./PluginList"},{"path":"packages/plugins/plugin-registry/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-registry/src/components/index.ts":{"bytes":627,"imports":[{"path":"packages/plugins/plugin-registry/src/components/PluginList.tsx","kind":"import-statement","original":"./PluginList"},{"path":"packages/plugins/plugin-registry/src/components/PluginSettings.tsx","kind":"import-statement","original":"./PluginSettings"}],"format":"esm"},"packages/plugins/plugin-registry/src/translations.ts":{"bytes":2036,"imports":[{"path":"packages/plugins/plugin-registry/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-registry/src/RegistryPlugin.tsx":{"bytes":4337,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/local-storage","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"},{"path":"packages/plugins/plugin-registry/src/translations.ts","kind":"import-statement","original":"./translations"}],"format":"esm"},"packages/plugins/plugin-registry/src/index.ts":{"bytes":804,"imports":[{"path":"packages/plugins/plugin-registry/src/RegistryPlugin.tsx","kind":"import-statement","original":"./RegistryPlugin"},{"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":15802},"packages/plugins/plugin-registry/dist/lib/browser/index.mjs":{"imports":[{"path":"packages/plugins/plugin-registry/dist/lib/browser/chunk-2FC6QNHB.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"@phosphor-icons/react","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":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-observability/meta","kind":"import-statement","external":true},{"path":"@dxos/plugin-settings","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"exports":["RegistryPlugin","default"],"entryPoint":"packages/plugins/plugin-registry/src/index.ts","inputs":{"packages/plugins/plugin-registry/src/RegistryPlugin.tsx":{"bytesInOutput":830},"packages/plugins/plugin-registry/src/components/PluginList.tsx":{"bytesInOutput":2559},"packages/plugins/plugin-registry/src/components/index.ts":{"bytesInOutput":0},"packages/plugins/plugin-registry/src/components/PluginSettings.tsx":{"bytesInOutput":2976},"packages/plugins/plugin-registry/src/translations.ts":{"bytesInOutput":479},"packages/plugins/plugin-registry/src/index.ts":{"bytesInOutput":34}},"bytes":7407},"packages/plugins/plugin-registry/dist/lib/browser/meta.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-registry/dist/lib/browser/meta.mjs":{"imports":[{"path":"packages/plugins/plugin-registry/dist/lib/browser/chunk-2FC6QNHB.mjs","kind":"import-statement"}],"exports":["REGISTRY_PLUGIN","default"],"entryPoint":"packages/plugins/plugin-registry/src/meta.ts","inputs":{},"bytes":165},"packages/plugins/plugin-registry/dist/lib/browser/chunk-2FC6QNHB.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":377},"packages/plugins/plugin-registry/dist/lib/browser/chunk-2FC6QNHB.mjs":{"imports":[],"exports":["REGISTRY_PLUGIN","meta_default"],"inputs":{"packages/plugins/plugin-registry/src/meta.ts":{"bytesInOutput":115}},"bytes":254}}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluginSettings.d.ts","sourceRoot":"","sources":["../../../../src/components/PluginSettings.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAQ/D,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAG/D,eAAO,MAAM,cAAc,iBAAkB;IAAE,QAAQ,EAAE,qBAAqB,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"PluginSettings.d.ts","sourceRoot":"","sources":["../../../../src/components/PluginSettings.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAQ/D,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAG/D,eAAO,MAAM,cAAc,iBAAkB;IAAE,QAAQ,EAAE,qBAAqB,CAAA;CAAE,sBAgF/E,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/plugin-registry",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.11-staging.e6894a4",
|
|
4
4
|
"description": "Braneframe plugin gallery",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -29,11 +29,11 @@
|
|
|
29
29
|
"src"
|
|
30
30
|
],
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@dxos/app-framework": "0.6.
|
|
33
|
-
"@dxos/local-storage": "0.6.
|
|
34
|
-
"@dxos/plugin-
|
|
35
|
-
"@dxos/
|
|
36
|
-
"@dxos/
|
|
32
|
+
"@dxos/app-framework": "0.6.11-staging.e6894a4",
|
|
33
|
+
"@dxos/local-storage": "0.6.11-staging.e6894a4",
|
|
34
|
+
"@dxos/plugin-observability": "0.6.11-staging.e6894a4",
|
|
35
|
+
"@dxos/plugin-settings": "0.6.11-staging.e6894a4",
|
|
36
|
+
"@dxos/util": "0.6.11-staging.e6894a4"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@phosphor-icons/react": "^2.1.5",
|
|
@@ -42,19 +42,19 @@
|
|
|
42
42
|
"react": "~18.2.0",
|
|
43
43
|
"react-dom": "~18.2.0",
|
|
44
44
|
"vite": "^5.3.4",
|
|
45
|
-
"@dxos/random": "0.6.
|
|
46
|
-
"@dxos/react-ui": "0.6.
|
|
47
|
-
"@dxos/react-ui-mosaic": "0.6.
|
|
48
|
-
"@dxos/storybook-utils": "0.6.
|
|
49
|
-
"@dxos/react-ui-theme": "0.6.
|
|
45
|
+
"@dxos/random": "0.6.11-staging.e6894a4",
|
|
46
|
+
"@dxos/react-ui": "0.6.11-staging.e6894a4",
|
|
47
|
+
"@dxos/react-ui-mosaic": "0.6.11-staging.e6894a4",
|
|
48
|
+
"@dxos/storybook-utils": "0.6.11-staging.e6894a4",
|
|
49
|
+
"@dxos/react-ui-theme": "0.6.11-staging.e6894a4"
|
|
50
50
|
},
|
|
51
51
|
"peerDependencies": {
|
|
52
52
|
"@phosphor-icons/react": "^2.1.5",
|
|
53
53
|
"react": "^18.0.0",
|
|
54
54
|
"react-dom": "^18.0.0",
|
|
55
|
-
"@dxos/react-ui": "0.6.
|
|
56
|
-
"@dxos/react-ui-theme": "0.6.
|
|
57
|
-
"@dxos/react-ui-mosaic": "0.6.
|
|
55
|
+
"@dxos/react-ui": "0.6.11-staging.e6894a4",
|
|
56
|
+
"@dxos/react-ui-theme": "0.6.11-staging.e6894a4",
|
|
57
|
+
"@dxos/react-ui-mosaic": "0.6.11-staging.e6894a4"
|
|
58
58
|
},
|
|
59
59
|
"publishConfig": {
|
|
60
60
|
"access": "public"
|
|
@@ -44,8 +44,8 @@ export const PluginList = ({ plugins = [], loaded = [], enabled = [], onChange,
|
|
|
44
44
|
|
|
45
45
|
return (
|
|
46
46
|
<DensityProvider density='fine'>
|
|
47
|
-
<List classNames='select-none'>
|
|
48
|
-
{plugins.map(({ id, name, description, homePage,
|
|
47
|
+
<List classNames='mb-4 select-none'>
|
|
48
|
+
{plugins.map(({ id, name, description, homePage, iconComponent: Icon = Circle }) => {
|
|
49
49
|
const isEnabled = enabled.includes(id);
|
|
50
50
|
const isLoaded = loaded.includes(id);
|
|
51
51
|
const reloadRequired = isEnabled !== isLoaded;
|
|
@@ -30,6 +30,7 @@ export const PluginSettings = ({ settings }: { settings: RegistrySettingsProps }
|
|
|
30
30
|
.sort(sort),
|
|
31
31
|
[],
|
|
32
32
|
);
|
|
33
|
+
|
|
33
34
|
const available = useMemo(() => pluginContext.available.filter(({ id }) => !enabled.includes(id)).sort(sort), []);
|
|
34
35
|
const recommended = available.filter((meta) => !meta.tags?.includes('experimental'));
|
|
35
36
|
const experimental = available.filter((meta) => meta.tags?.includes('experimental'));
|