@dxos/plugin-debug 0.8.0 → 0.8.1-main.81238a8

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 (73) hide show
  1. package/dist/lib/browser/{DebugApp-LQHFFK3Y.mjs → DebugApp-7PFYN52J.mjs} +30 -23
  2. package/dist/lib/browser/{DebugApp-LQHFFK3Y.mjs.map → DebugApp-7PFYN52J.mjs.map} +4 -4
  3. package/dist/lib/browser/{SpaceGenerator-SPEJBGP7.mjs → SpaceGenerator-ATLTIBZ2.mjs} +2 -2
  4. package/dist/lib/browser/{SpaceGenerator-SPEJBGP7.mjs.map → SpaceGenerator-ATLTIBZ2.mjs.map} +1 -1
  5. package/dist/lib/browser/{app-graph-builder-5STXPSZJ.mjs → app-graph-builder-EJHONTKA.mjs} +87 -29
  6. package/dist/lib/browser/{app-graph-builder-5STXPSZJ.mjs.map → app-graph-builder-EJHONTKA.mjs.map} +3 -3
  7. package/dist/lib/browser/{chunk-Y4ZZEHUN.mjs → chunk-F2R7TJCJ.mjs} +2 -2
  8. package/dist/lib/browser/{chunk-Y4ZZEHUN.mjs.map → chunk-F2R7TJCJ.mjs.map} +3 -3
  9. package/dist/lib/browser/{chunk-EF3UVAVI.mjs → chunk-RORUXVAC.mjs} +1 -1
  10. package/dist/lib/browser/chunk-RORUXVAC.mjs.map +7 -0
  11. package/dist/lib/browser/index.mjs +7 -6
  12. package/dist/lib/browser/index.mjs.map +2 -2
  13. package/dist/lib/browser/meta.json +1 -1
  14. package/dist/lib/browser/{react-context-TCD3MNIT.mjs → react-context-ZRLN5KUI.mjs} +2 -2
  15. package/dist/lib/browser/{react-surface-GLOHHHOD.mjs → react-surface-XWBF5EHO.mjs} +38 -23
  16. package/dist/lib/browser/react-surface-XWBF5EHO.mjs.map +7 -0
  17. package/dist/lib/browser/{settings-XWFV3P44.mjs → settings-R47ZDKXO.mjs} +5 -5
  18. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  19. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  20. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  21. package/dist/types/src/components/Container.d.ts +2 -2
  22. package/dist/types/src/components/Container.d.ts.map +1 -1
  23. package/dist/types/src/components/DebugObjectPanel.d.ts +2 -1
  24. package/dist/types/src/components/DebugObjectPanel.d.ts.map +1 -1
  25. package/dist/types/src/components/DebugSettings.d.ts +2 -1
  26. package/dist/types/src/components/DebugSettings.d.ts.map +1 -1
  27. package/dist/types/src/components/DebugStatus.d.ts +2 -1
  28. package/dist/types/src/components/DebugStatus.d.ts.map +1 -1
  29. package/dist/types/src/components/SpaceGenerator/SchemaTable.d.ts +2 -1
  30. package/dist/types/src/components/SpaceGenerator/SchemaTable.d.ts.map +1 -1
  31. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.d.ts +2 -1
  32. package/dist/types/src/components/SpaceGenerator/SpaceGenerator.d.ts.map +1 -1
  33. package/dist/types/src/components/Wireframe.d.ts +2 -1
  34. package/dist/types/src/components/Wireframe.d.ts.map +1 -1
  35. package/dist/types/src/components/index.d.ts +1 -5
  36. package/dist/types/src/components/index.d.ts.map +1 -1
  37. package/dist/types/src/meta.d.ts +2 -9
  38. package/dist/types/src/meta.d.ts.map +1 -1
  39. package/dist/types/src/translations.d.ts +1 -0
  40. package/dist/types/src/translations.d.ts.map +1 -1
  41. package/dist/types/src/types.d.ts +1 -0
  42. package/dist/types/src/types.d.ts.map +1 -1
  43. package/package.json +49 -49
  44. package/src/capabilities/app-graph-builder.ts +53 -15
  45. package/src/capabilities/react-surface.tsx +30 -24
  46. package/src/components/SpaceGenerator/SpaceGenerator.tsx +1 -1
  47. package/src/components/index.ts +0 -1
  48. package/src/meta.ts +2 -2
  49. package/src/translations.ts +1 -0
  50. package/src/types.ts +1 -0
  51. package/dist/lib/browser/DebugSpace-EBJYT5JG.mjs +0 -277
  52. package/dist/lib/browser/DebugSpace-EBJYT5JG.mjs.map +0 -7
  53. package/dist/lib/browser/chunk-EF3UVAVI.mjs.map +0 -7
  54. package/dist/lib/browser/chunk-GSJS3HEM.mjs +0 -15
  55. package/dist/lib/browser/chunk-GSJS3HEM.mjs.map +0 -7
  56. package/dist/lib/browser/react-surface-GLOHHHOD.mjs.map +0 -7
  57. package/dist/types/src/components/DebugSpace/DebugSpace.d.ts +0 -8
  58. package/dist/types/src/components/DebugSpace/DebugSpace.d.ts.map +0 -1
  59. package/dist/types/src/components/DebugSpace/DebugSpace.stories.d.ts +0 -6
  60. package/dist/types/src/components/DebugSpace/DebugSpace.stories.d.ts.map +0 -1
  61. package/dist/types/src/components/DebugSpace/ObjectCreator.d.ts +0 -14
  62. package/dist/types/src/components/DebugSpace/ObjectCreator.d.ts.map +0 -1
  63. package/dist/types/src/components/DebugSpace/ObjectCreator.stories.d.ts +0 -6
  64. package/dist/types/src/components/DebugSpace/ObjectCreator.stories.d.ts.map +0 -1
  65. package/dist/types/src/components/DebugSpace/index.d.ts +0 -3
  66. package/dist/types/src/components/DebugSpace/index.d.ts.map +0 -1
  67. package/src/components/DebugSpace/DebugSpace.stories.tsx +0 -46
  68. package/src/components/DebugSpace/DebugSpace.tsx +0 -183
  69. package/src/components/DebugSpace/ObjectCreator.stories.tsx +0 -51
  70. package/src/components/DebugSpace/ObjectCreator.tsx +0 -100
  71. package/src/components/DebugSpace/index.ts +0 -7
  72. /package/dist/lib/browser/{react-context-TCD3MNIT.mjs.map → react-context-ZRLN5KUI.mjs.map} +0 -0
  73. /package/dist/lib/browser/{settings-XWFV3P44.mjs.map → settings-R47ZDKXO.mjs.map} +0 -0
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/DebugSpace/DebugSpace.tsx", "../../../src/components/DebugSpace/ObjectCreator.tsx", "../../../src/components/DebugSpace/index.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { type FC, useContext, useMemo, useState } from 'react';\n\nimport { createSpaceObjectGenerator } from '@dxos/echo-generator';\nimport { type ReactiveObject } from '@dxos/live-object';\nimport { DocumentType } from '@dxos/plugin-markdown/types';\nimport { Invitation } from '@dxos/protocols/proto/dxos/client/services';\nimport { faker } from '@dxos/random';\nimport { useClient } from '@dxos/react-client';\nimport { Filter, type Space, useSpaceInvitation } from '@dxos/react-client/echo';\nimport { InvitationEncoder } from '@dxos/react-client/invitations';\nimport { useAsyncEffect } from '@dxos/react-hooks';\nimport { Icon, IconButton, Input, type IconProps, type TextInputProps, Toolbar, useFileDownload } from '@dxos/react-ui';\nimport { safeParseInt } from '@dxos/util';\n\nimport { ObjectCreator } from './ObjectCreator';\nimport { DebugContext } from '../../types';\nimport { Container } from '../Container';\n\nconst DEFAULT_COUNT = 100;\nconst DEFAULT_PERIOD = 500;\nconst DEFAULT_JITTER = 50;\n\nconst useRefresh = (): [any, () => void] => {\n const [update, setUpdate] = useState({});\n return [update, () => setUpdate({})];\n};\n\nconst CustomInput = ({ icon, ...props }: Pick<IconProps, 'icon'> & TextInputProps) => {\n return (\n <div role='none' className='relative'>\n <Input.Root>\n <Input.TextInput classNames='w-[100px] text-right pie-[22px]' size={5} {...props} />\n </Input.Root>\n <Icon icon={icon} size={3} classNames='absolute inline-end-1 block-start-1 mt-[6px]' />\n </div>\n );\n};\n\nexport const DebugSpace: FC<{\n space: Space;\n onAddObjects?: (objects: ReactiveObject<any>[]) => void;\n}> = ({ space, onAddObjects }) => {\n const { connect } = useSpaceInvitation(space?.key);\n const client = useClient();\n const [data, setData] = useState<any>({});\n\n const [update, handleUpdate] = useRefresh();\n useAsyncEffect(\n async (isMounted) => {\n const data = await client.diagnostics({ truncate: true });\n if (isMounted()) {\n setData(\n data?.diagnostics?.spaces?.find(({ key }: any) => {\n return space.key.toHex().startsWith(key);\n }),\n );\n }\n },\n [space, update],\n );\n\n const download = useFileDownload();\n const handleDownload = async () => {\n download(\n new Blob([JSON.stringify(data, undefined, 2)], { type: 'text/plain' }),\n `${new Date().toISOString().replace(/\\W/g, '-')}.json`,\n );\n };\n\n const [mutationCount, setMutationCount] = useState(String(DEFAULT_COUNT));\n const [mutationInterval, setMutationInterval] = useState(String(DEFAULT_PERIOD));\n const [mutationJitter, setMutationJitter] = useState(String(DEFAULT_JITTER));\n\n const generator = useMemo(() => createSpaceObjectGenerator(space), [space]);\n\n // TODO(burdon): Note: this is shared across all spaces!\n const { running, start, stop } = useContext(DebugContext);\n const handleToggleRunning = () => {\n if (running) {\n stop();\n handleUpdate();\n } else {\n start(\n async () => {\n const { objects } = await space.db.query(Filter.schema(DocumentType)).run();\n if (objects.length) {\n const object = faker.helpers.arrayElement(objects);\n await generator.mutateObject(object, { count: 10, mutationSize: 10, maxContentLength: 1000 });\n }\n },\n {\n count: safeParseInt(mutationCount) ?? 0,\n interval: safeParseInt(mutationInterval) ?? 0,\n jitter: safeParseInt(mutationJitter) ?? 0,\n },\n );\n }\n };\n\n const handleCreateInvitation = () => {\n const invitation = space.share({\n type: Invitation.Type.INTERACTIVE,\n authMethod: Invitation.AuthMethod.NONE,\n multiUse: true,\n });\n\n // TODO(burdon): Refactor.\n // TODO(burdon): Unsubscribe?\n connect(invitation);\n const code = InvitationEncoder.encode(invitation.get());\n new URL(window.origin).searchParams.set('spaceInvitationCode', code);\n const url = `${window.origin}?spaceInvitationCode=${code}`;\n void navigator.clipboard.writeText(url);\n };\n\n const handleCreateEpoch = async () => {\n await space.internal.createEpoch();\n handleUpdate();\n };\n\n return (\n <Container\n toolbar={\n <Toolbar.Root classNames='p-1'>\n <CustomInput\n icon='ph--flag--regular'\n autoComplete='off'\n placeholder='Count'\n value={mutationCount}\n onChange={({ target: { value } }) => setMutationCount(value)}\n />\n <CustomInput\n icon='ph--timer--regular'\n autoComplete='off'\n placeholder='Interval'\n value={mutationInterval}\n onChange={({ target: { value } }) => setMutationInterval(value)}\n />\n <CustomInput\n icon='ph--plus-minus--regular'\n autoComplete='off'\n placeholder='Jitter'\n value={mutationJitter}\n onChange={({ target: { value } }) => setMutationJitter(value)}\n />\n\n <IconButton\n icon={running ? 'ph--pause-circle--regular' : 'ph--play-circle--regular'}\n iconOnly\n label='Start/stop'\n size={5}\n onClick={handleToggleRunning}\n />\n <IconButton icon='ph--arrow-clockwise--regular' iconOnly label='Refresh' size={5} onClick={handleUpdate} />\n <IconButton icon='ph--download-simple--regular' iconOnly label='Download' size={5} onClick={handleDownload} />\n\n <Toolbar.Separator variant='gap' />\n <IconButton\n icon='ph--flag-pennant--regular'\n iconOnly\n label='Create epoch'\n size={5}\n onClick={handleCreateEpoch}\n />\n <IconButton\n icon='ph--user-circle-plus--regular'\n iconOnly\n iconClassNames='text-blue-500'\n label='Create Invitation'\n size={5}\n onClick={handleCreateInvitation}\n />\n </Toolbar.Root>\n }\n >\n <ObjectCreator space={space} onAddObjects={onAddObjects} />\n </Container>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useMemo, useState } from 'react';\n\nimport { type MutationsProviderParams, TestSchemaType, createSpaceObjectGenerator } from '@dxos/echo-generator';\nimport { type ReactiveEchoObject, type ReactiveObject, type Space } from '@dxos/react-client/echo';\nimport { IconButton, Toolbar } from '@dxos/react-ui';\nimport { createColumnBuilder, type TableColumnDef, Table } from '@dxos/react-ui-table/deprecated';\n\nconst BATCH_SIZE = 10;\n\nexport type CreateObjectsParams = {\n schema: string;\n enabled: boolean;\n objects: number;\n mutations: Pick<MutationsProviderParams, 'count' | 'mutationSize' | 'maxContentLength'>;\n};\n\nexport type ObjectCreatorProps = {\n space: Space;\n onAddObjects?: (objects: ReactiveObject<any>[]) => void;\n};\n\nexport const ObjectCreator = ({ space, onAddObjects }: ObjectCreatorProps) => {\n const generator = useMemo(() => createSpaceObjectGenerator(space), [space]);\n\n const [objects, setObjects] = useState<CreateObjectsParams[]>(\n Object.values(TestSchemaType).map((schema) => ({\n schema,\n enabled: true,\n objects: 10,\n mutations: {\n count: 10,\n mutationSize: 10,\n maxContentLength: 1000,\n },\n })),\n );\n\n const handleCreate = async () => {\n for (const params of objects) {\n if (!params.enabled) {\n continue;\n }\n\n let objectsCreated = 0;\n while (objectsCreated < params.objects) {\n const objects = (await generator.createObjects({\n [params.schema]: Math.min(BATCH_SIZE, params.objects - objectsCreated),\n })) as ReactiveEchoObject<any>[];\n\n await generator.mutateObjects(objects, params.mutations);\n objectsCreated += objects.length;\n onAddObjects?.(objects);\n }\n }\n\n await space.db.flush();\n };\n\n const handleUpdate = (row: CreateObjectsParams, key: string, value: any) => {\n const newObjects = [...objects];\n Object.assign(newObjects.find((object) => object.schema === row.schema)!, { [key]: value });\n setObjects(newObjects);\n };\n\n const { helper, builder } = createColumnBuilder<CreateObjectsParams>();\n const columns: TableColumnDef<CreateObjectsParams>[] = [\n helper.accessor('enabled', builder.switch({ label: 'Live', onUpdate: handleUpdate })),\n helper.accessor('schema', builder.string({ label: 'Schema', classNames: 'font-mono' })),\n helper.accessor('objects', builder.number({ label: 'Objects', onUpdate: handleUpdate })),\n helper.accessor((obj) => obj.mutations.count, {\n id: 'mutations',\n ...builder.number({ label: 'Mutations', onUpdate: handleUpdate }),\n }),\n helper.accessor((obj) => obj.mutations.mutationSize, {\n id: 'mutationSize',\n ...builder.number({ label: 'Mut. Size', onUpdate: handleUpdate }),\n }),\n helper.accessor((obj) => obj.mutations.maxContentLength, {\n id: 'mutationMaxContentLength',\n ...builder.number({ label: 'Length', onUpdate: handleUpdate }),\n }),\n ];\n\n return (\n <>\n <Table.Root>\n <Table.Viewport>\n <Table.Main<CreateObjectsParams> columns={columns} data={objects} />\n </Table.Viewport>\n </Table.Root>\n <Toolbar.Root classNames='p-1'>\n <IconButton icon='ph--plus--regular' label='Create' onClick={handleCreate} />\n </Toolbar.Root>\n </>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { DebugSpace } from './DebugSpace';\n\nexport default DebugSpace;\n"],
5
- "mappings": "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",
6
- "names": ["React", "useContext", "useMemo", "useState", "createSpaceObjectGenerator", "DocumentType", "Invitation", "faker", "useClient", "Filter", "useSpaceInvitation", "InvitationEncoder", "useAsyncEffect", "Icon", "IconButton", "Input", "Toolbar", "useFileDownload", "safeParseInt", "React", "useMemo", "useState", "TestSchemaType", "createSpaceObjectGenerator", "IconButton", "Toolbar", "createColumnBuilder", "Table", "BATCH_SIZE", "ObjectCreator", "space", "onAddObjects", "generator", "useMemo", "createSpaceObjectGenerator", "objects", "setObjects", "useState", "Object", "values", "TestSchemaType", "map", "schema", "enabled", "mutations", "count", "mutationSize", "maxContentLength", "handleCreate", "params", "objectsCreated", "createObjects", "Math", "min", "mutateObjects", "length", "db", "flush", "handleUpdate", "row", "key", "value", "newObjects", "assign", "find", "object", "helper", "builder", "createColumnBuilder", "columns", "accessor", "switch", "label", "onUpdate", "string", "classNames", "number", "obj", "id", "Table", "Root", "Viewport", "Main", "data", "Toolbar", "IconButton", "icon", "onClick", "DEFAULT_COUNT", "DEFAULT_PERIOD", "DEFAULT_JITTER", "useRefresh", "update", "setUpdate", "useState", "CustomInput", "icon", "props", "React", "div", "role", "className", "Input", "Root", "TextInput", "classNames", "size", "Icon", "DebugSpace", "space", "onAddObjects", "connect", "useSpaceInvitation", "key", "client", "useClient", "data", "setData", "handleUpdate", "useAsyncEffect", "isMounted", "diagnostics", "truncate", "spaces", "find", "toHex", "startsWith", "download", "useFileDownload", "handleDownload", "Blob", "JSON", "stringify", "undefined", "type", "Date", "toISOString", "replace", "mutationCount", "setMutationCount", "String", "mutationInterval", "setMutationInterval", "mutationJitter", "setMutationJitter", "generator", "useMemo", "createSpaceObjectGenerator", "running", "start", "stop", "useContext", "DebugContext", "handleToggleRunning", "objects", "db", "query", "Filter", "schema", "DocumentType", "run", "length", "object", "faker", "helpers", "arrayElement", "mutateObject", "count", "mutationSize", "maxContentLength", "safeParseInt", "interval", "jitter", "handleCreateInvitation", "invitation", "share", "Invitation", "Type", "INTERACTIVE", "authMethod", "AuthMethod", "NONE", "multiUse", "code", "InvitationEncoder", "encode", "get", "URL", "window", "origin", "searchParams", "set", "url", "navigator", "clipboard", "writeText", "handleCreateEpoch", "internal", "createEpoch", "Container", "toolbar", "Toolbar", "autoComplete", "placeholder", "value", "onChange", "target", "IconButton", "iconOnly", "label", "onClick", "Separator", "variant", "iconClassNames", "ObjectCreator", "DebugSpace"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/meta.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\n\nexport const DEBUG_PLUGIN = 'dxos.org/plugin/debug';\n\nexport const meta = {\n id: DEBUG_PLUGIN,\n name: 'Debug',\n description:\n 'The debug plugin is useful for troubleshooting inside of Composer. You can also use the Debug plugin to create test data inside of sheets or tables or explore pre-built automations. Non-technical users will likely not spend much time here, but this plugin is invaluable for developers and technical users.',\n icon: 'ph--bug--regular',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-debug',\n tags: ['experimental'],\n screenshots: ['https://dxos.network/plugin-details-debug-dark.png'],\n} satisfies PluginMeta;\n"],
5
- "mappings": ";AAMO,IAAMA,eAAe;AAErB,IAAMC,OAAO;EAClBC,IAAIF;EACJG,MAAM;EACNC,aACE;EACFC,MAAM;EACNC,QAAQ;EACRC,MAAM;IAAC;;EACPC,aAAa;IAAC;;AAChB;",
6
- "names": ["DEBUG_PLUGIN", "meta", "id", "name", "description", "icon", "source", "tags", "screenshots"]
7
- }
@@ -1,15 +0,0 @@
1
- // packages/plugins/plugin-debug/src/components/Container.tsx
2
- import React from "react";
3
- var Container = ({ toolbar, children }) => {
4
- return /* @__PURE__ */ React.createElement("div", {
5
- role: "none",
6
- className: "flex flex-col grow overflow-hidden divide-y divide-separator"
7
- }, toolbar, /* @__PURE__ */ React.createElement("div", {
8
- className: "flex flex-col grow overflow-auto"
9
- }, children));
10
- };
11
-
12
- export {
13
- Container
14
- };
15
- //# sourceMappingURL=chunk-GSJS3HEM.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/Container.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { type PropsWithChildren, type ReactNode } from 'react';\n\n// TODO(burdon): Convert to grid.\nexport const Container = ({ toolbar, children }: PropsWithChildren<{ toolbar: ReactNode }>) => {\n return (\n <div role='none' className='flex flex-col grow overflow-hidden divide-y divide-separator'>\n {toolbar}\n <div className='flex flex-col grow overflow-auto'>{children}</div>\n </div>\n );\n};\n"],
5
- "mappings": ";AAIA,OAAOA,WAAuD;AAGvD,IAAMC,YAAY,CAAC,EAAEC,SAASC,SAAQ,MAA6C;AACxF,SACE,sBAAA,cAACC,OAAAA;IAAIC,MAAK;IAAOC,WAAU;KACxBJ,SACD,sBAAA,cAACE,OAAAA;IAAIE,WAAU;KAAoCH,QAAAA,CAAAA;AAGzD;",
6
- "names": ["React", "Container", "toolbar", "children", "div", "role", "className"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/react-surface.tsx", "../../../src/components/index.ts", "../../../src/components/DebugObjectPanel.tsx", "../../../src/components/DebugSettings.tsx", "../../../src/components/DebugStatus.tsx", "../../../src/components/Wireframe.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport {\n Capabilities,\n contributes,\n createIntent,\n createSurface,\n LayoutAction,\n type PluginsContext,\n} from '@dxos/app-framework';\nimport {\n ConfigPanel,\n CredentialsPanel,\n DeviceListPanel,\n DiagnosticsPanel,\n FeedsPanel,\n IdentityPanel,\n KeyringPanel,\n LoggingPanel,\n MembersPanel,\n MetadataPanel,\n NetworkPanel,\n ObjectsPanel,\n SignalPanel,\n SpaceInfoPanel,\n SpaceListPanel,\n StoragePanel,\n SwarmPanel,\n TracingPanel,\n DashboardPanel,\n EdgeDashboardPanel,\n SearchPanel,\n AutomergePanel,\n WorkflowPanel,\n QueuesPanel,\n} from '@dxos/devtools';\nimport { SettingsStore } from '@dxos/local-storage';\nimport { Graph } from '@dxos/plugin-graph';\nimport { SpaceAction, CollectionType } from '@dxos/plugin-space/types';\nimport {\n SpaceState,\n isSpace,\n isEchoObject,\n type ReactiveEchoObject,\n type ReactiveObject,\n type Space,\n} from '@dxos/react-client/echo';\n\nimport {\n DebugApp,\n DebugObjectPanel,\n DebugSettings,\n DebugSpace,\n DebugStatus,\n SpaceGenerator,\n Wireframe,\n} from '../components';\nimport { DEBUG_PLUGIN } from '../meta';\nimport { type DebugSettingsProps, Devtools } from '../types';\n\ntype SpaceDebug = {\n type: string;\n space: Space;\n};\n\ntype GraphDebug = {\n graph: Graph;\n};\n\nconst isSpaceDebug = (data: any): data is SpaceDebug => data?.type === `${DEBUG_PLUGIN}/space` && isSpace(data.space);\nconst isGraphDebug = (data: any): data is GraphDebug => data?.graph instanceof Graph;\n\nexport default (context: PluginsContext) =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: `${DEBUG_PLUGIN}/settings`,\n role: 'article',\n filter: (data): data is { subject: SettingsStore<DebugSettingsProps> } =>\n data.subject instanceof SettingsStore && data.subject.prefix === DEBUG_PLUGIN,\n component: ({ data: { subject } }) => <DebugSettings settings={subject.value} />,\n }),\n createSurface({\n id: `${DEBUG_PLUGIN}/space`,\n role: 'article',\n filter: (data): data is { subject: SpaceDebug } => isSpaceDebug(data.subject),\n component: ({ data }) => {\n const handleCreateObject = useCallback(\n (objects: ReactiveObject<any>[]) => {\n if (!isSpace(data.subject.space)) {\n return;\n }\n\n const collection =\n data.subject.space.state.get() === SpaceState.SPACE_READY &&\n data.subject.space.properties[CollectionType.typename]?.target;\n if (!(collection instanceof CollectionType)) {\n return;\n }\n\n const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);\n objects.forEach((object) => {\n void dispatch(createIntent(SpaceAction.AddObject, { target: collection, object }));\n });\n },\n [data.subject.space],\n );\n\n const deprecated = false;\n return deprecated ? (\n <DebugSpace space={data.subject.space} onAddObjects={handleCreateObject} />\n ) : (\n <SpaceGenerator space={data.subject.space} onCreateObjects={handleCreateObject} />\n );\n },\n }),\n createSurface({\n id: `${DEBUG_PLUGIN}/graph`,\n role: 'article',\n filter: (data): data is { subject: GraphDebug } => isGraphDebug(data.subject),\n component: ({ data }) => <DebugApp graph={data.subject.graph} />,\n }),\n createSurface({\n id: `${DEBUG_PLUGIN}/wireframe`,\n role: ['article', 'section'],\n position: 'hoist',\n filter: (data): data is { subject: ReactiveEchoObject<any> } => {\n const settings = context\n .requestCapability(Capabilities.SettingsStore)\n .getStore<DebugSettingsProps>(DEBUG_PLUGIN)!.value;\n return isEchoObject(data.subject) && !!settings.wireframe;\n },\n component: ({ data, role }) => (\n <Wireframe label={`${role}:${name}`} object={data.subject} classNames='row-span-2 overflow-hidden' />\n ),\n }),\n createSurface({\n id: `${DEBUG_PLUGIN}/complementary`,\n role: 'complementary--debug',\n filter: (data): data is { subject: ReactiveEchoObject<any> } => isEchoObject(data.subject),\n component: ({ data }) => <DebugObjectPanel object={data.subject} />,\n }),\n createSurface({\n id: `${DEBUG_PLUGIN}/status`,\n role: 'status',\n component: () => <DebugStatus />,\n }),\n\n //\n // Devtools\n //\n\n createSurface({\n id: `${DEBUG_PLUGIN}/client/config`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Client.Config,\n component: () => <ConfigPanel />,\n }),\n createSurface({\n id: `${DEBUG_PLUGIN}/client/storage`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Client.Storage,\n component: () => <StoragePanel />,\n }),\n createSurface({\n id: `${DEBUG_PLUGIN}/client/logs`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Client.Logs,\n component: () => <LoggingPanel />,\n }),\n createSurface({\n id: `${DEBUG_PLUGIN}/client/diagnostics`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Client.Diagnostics,\n component: () => <DiagnosticsPanel />,\n }),\n createSurface({\n id: `${DEBUG_PLUGIN}/client/tracing`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Client.Tracing,\n component: () => <TracingPanel />,\n }),\n createSurface({\n id: `${DEBUG_PLUGIN}/halo/identity`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Halo.Identity,\n component: () => <IdentityPanel />,\n }),\n createSurface({\n id: `${DEBUG_PLUGIN}/halo/devices`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Halo.Devices,\n component: () => <DeviceListPanel />,\n }),\n createSurface({\n id: `${DEBUG_PLUGIN}/halo/keyring`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Halo.Keyring,\n component: () => <KeyringPanel />,\n }),\n createSurface({\n id: `${DEBUG_PLUGIN}/halo/credentials`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Halo.Credentials,\n component: () => <CredentialsPanel />,\n }),\n createSurface({\n id: `${DEBUG_PLUGIN}/echo/spaces`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Echo.Spaces,\n component: () => {\n const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);\n const handleSelect = useCallback(\n () => dispatch(createIntent(LayoutAction.Open, { part: 'main', subject: [Devtools.Echo.Space] })),\n [dispatch],\n );\n return <SpaceListPanel onSelect={handleSelect} />;\n },\n }),\n createSurface({\n id: `${DEBUG_PLUGIN}/echo/space`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Echo.Space,\n component: () => {\n const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);\n const handleSelect = useCallback(\n () => dispatch(createIntent(LayoutAction.Open, { part: 'main', subject: [Devtools.Echo.Feeds] })),\n [dispatch],\n );\n return <SpaceInfoPanel onSelectFeed={handleSelect} onSelectPipeline={handleSelect} />;\n },\n }),\n createSurface({\n id: `${DEBUG_PLUGIN}/echo/feeds`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Echo.Feeds,\n component: () => <FeedsPanel />,\n }),\n createSurface({\n id: `${DEBUG_PLUGIN}/echo/objects`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Echo.Objects,\n component: () => <ObjectsPanel />,\n }),\n createSurface({\n id: `${DEBUG_PLUGIN}/echo/automerge`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Echo.Automerge,\n component: () => <AutomergePanel />,\n }),\n createSurface({\n id: `${DEBUG_PLUGIN}/echo/queues`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Echo.Queues,\n component: () => <QueuesPanel />,\n }),\n createSurface({\n id: `${DEBUG_PLUGIN}/echo/members`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Echo.Members,\n component: () => <MembersPanel />,\n }),\n createSurface({\n id: `${DEBUG_PLUGIN}/echo/metadata`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Echo.Metadata,\n component: () => <MetadataPanel />,\n }),\n createSurface({\n id: `${DEBUG_PLUGIN}/mesh/signal`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Mesh.Signal,\n component: () => <SignalPanel />,\n }),\n createSurface({\n id: `${DEBUG_PLUGIN}/mesh/swarm`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Mesh.Swarm,\n component: () => <SwarmPanel />,\n }),\n createSurface({\n id: `${DEBUG_PLUGIN}/mesh/network`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Mesh.Network,\n component: () => <NetworkPanel />,\n }),\n createSurface({\n id: `${DEBUG_PLUGIN}/agent/dashboard`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Agent.Dashboard,\n component: () => <DashboardPanel />,\n }),\n createSurface({\n id: `${DEBUG_PLUGIN}/agent/search`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Agent.Search,\n component: () => <SearchPanel />,\n }),\n createSurface({\n id: `${DEBUG_PLUGIN}/edge/dashboard`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Edge.Dashboard,\n component: () => <EdgeDashboardPanel />,\n }),\n createSurface({\n id: `${DEBUG_PLUGIN}/edge/workflows`,\n role: 'article',\n filter: (data): data is any => data.subject === Devtools.Edge.Workflows,\n component: () => <WorkflowPanel />,\n }),\n ]);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { lazy } from 'react';\n\nexport const DebugApp = lazy(() => import('./DebugApp'));\nexport const DebugSpace = lazy(() => import('./DebugSpace'));\nexport const SpaceGenerator = lazy(() => import('./SpaceGenerator'));\n\nexport * from './DebugObjectPanel';\nexport * from './DebugSettings';\nexport * from './DebugStatus';\nexport * from './Wireframe';\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type ReactiveEchoObject } from '@dxos/client/echo';\nimport { Clipboard, Input } from '@dxos/react-ui';\nimport { SyntaxHighlighter } from '@dxos/react-ui-syntax-highlighter';\n\nexport type DebugObjectPanelProps = {\n object: ReactiveEchoObject<any>;\n};\n\n// TODO(burdon): Get schema and traverse references.\nexport const DebugObjectPanel = ({ object }: DebugObjectPanelProps) => {\n const dxn = `dxn:echo:@:${object.id}`;\n return (\n <Clipboard.Provider>\n <div className='flex flex-col'>\n <Input.Root>\n <div role='none' className='flex flex-col gap-1'>\n <div role='none' className='flex gap-1'>\n <Input.TextInput disabled value={dxn} />\n <Clipboard.IconButton value={dxn} />\n </div>\n </div>\n </Input.Root>\n <SyntaxHighlighter classNames='flex text-xs' language='json'>\n {JSON.stringify(object, null, 2)}\n </SyntaxHighlighter>\n </div>\n </Clipboard.Provider>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useEffect, useState } from 'react';\n\nimport { Capabilities, useCapabilities } from '@dxos/app-framework';\nimport { type ConfigProto, defs, SaveConfig, Storage } from '@dxos/config';\nimport { log } from '@dxos/log';\nimport { useClient } from '@dxos/react-client';\nimport { useTranslation, Button, Toast, Input, useFileDownload, Select, Icon } from '@dxos/react-ui';\nimport { DeprecatedFormContainer, DeprecatedFormInput } from '@dxos/react-ui-form';\nimport { setDeep } from '@dxos/util';\n\nimport { DEBUG_PLUGIN } from '../meta';\nimport { type DebugSettingsProps } from '../types';\n\ntype Toast = {\n title: string;\n description?: string;\n};\n\nconst StorageAdapters = {\n opfs: defs.Runtime.Client.Storage.StorageDriver.WEBFS,\n idb: defs.Runtime.Client.Storage.StorageDriver.IDB,\n} as const;\n\nexport const DebugSettings = ({ settings }: { settings: DebugSettingsProps }) => {\n const { t } = useTranslation(DEBUG_PLUGIN);\n const [toast, setToast] = useState<Toast>();\n const client = useClient();\n const download = useFileDownload();\n // TODO(mykola): Get updates from other places that change Config.\n const [storageConfig, setStorageConfig] = useState<ConfigProto>({});\n const [upload] = useCapabilities(Capabilities.FileUploader);\n\n useEffect(() => {\n void Storage().then((config) => setStorageConfig(config));\n }, []);\n\n const handleToast = (toast: Toast) => {\n setToast(toast);\n const t = setTimeout(() => setToast(undefined), 5_000);\n return () => clearTimeout(t);\n };\n\n const handleDownload = async () => {\n const data = await client.diagnostics();\n const file = new Blob([JSON.stringify(data, undefined, 2)], { type: 'text/plain' });\n const fileName = `composer-${new Date().toISOString().replace(/\\W/g, '-')}.json`;\n download(file, fileName);\n\n if (upload) {\n const info = await upload(new File([file], fileName), client.spaces.default);\n if (!info) {\n log.error('diagnostics failed to upload to IPFS');\n return;\n }\n handleToast({ title: t('settings uploaded'), description: t('settings uploaded to clipboard') });\n\n // TODO(nf): move to IpfsPlugin?\n const url = client.config.values.runtime!.services!.ipfs!.gateway + '/' + info.cid;\n void navigator.clipboard.writeText(url);\n handleToast({ title: t('settings uploaded'), description: t('settings uploaded to clipboard') });\n log.info('diagnostics', { url });\n }\n };\n\n const handleRepair = async () => {\n try {\n const info = await client.repair();\n setStorageConfig(await Storage());\n handleToast({ title: t('settings repair success'), description: JSON.stringify(info, undefined, 2) });\n } catch (err: any) {\n handleToast({ title: t('settings repair failed'), description: err.message });\n }\n };\n\n return (\n <DeprecatedFormContainer>\n <DeprecatedFormInput label={t('settings show debug panel')}>\n <Input.Switch checked={settings.debug} onCheckedChange={(checked) => (settings.debug = !!checked)} />\n </DeprecatedFormInput>\n <DeprecatedFormInput label={t('settings wireframe')}>\n <Input.Switch checked={settings.wireframe} onCheckedChange={(checked) => (settings.wireframe = !!checked)} />\n </DeprecatedFormInput>\n <DeprecatedFormInput label={t('settings download diagnostics')}>\n <Button onClick={handleDownload}>\n <Icon icon='ph--download-simple--regular' size={5} />\n </Button>\n </DeprecatedFormInput>\n <DeprecatedFormInput label={t('settings repair')}>\n <Button onClick={handleRepair}>\n <Icon icon='ph--first-aid-kit--regular' size={5} />\n </Button>\n </DeprecatedFormInput>\n\n {/* TODO(burdon): Move to layout? */}\n {toast && (\n <Toast.Root>\n <Toast.Body>\n <Toast.Title>\n <Icon icon='ph--gift--duotone' size={5} classNames='inline mr-1' />\n <span>{toast.title}</span>\n </Toast.Title>\n {toast.description && <Toast.Description>{toast.description}</Toast.Description>}\n </Toast.Body>\n </Toast.Root>\n )}\n\n <DeprecatedFormInput label={t('settings choose storage adaptor')}>\n <Select.Root\n value={\n Object.entries(StorageAdapters).find(\n ([name, value]) => value === storageConfig?.runtime?.client?.storage?.dataStore,\n )?.[0]\n }\n onValueChange={(value) => {\n if (confirm(t('settings storage adapter changed alert'))) {\n updateConfig(\n storageConfig,\n setStorageConfig,\n ['runtime', 'client', 'storage', 'dataStore'],\n StorageAdapters[value as keyof typeof StorageAdapters],\n );\n }\n }}\n >\n <Select.TriggerButton placeholder={t('settings data store label')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n {Object.keys(StorageAdapters).map((key) => (\n <Select.Option key={key} value={key}>\n {t(`settings storage adaptor ${key} label`)}\n </Select.Option>\n ))}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </DeprecatedFormInput>\n </DeprecatedFormContainer>\n );\n};\n\nconst updateConfig = (config: ConfigProto, setConfig: (newConfig: ConfigProto) => void, path: string[], value: any) => {\n const storageConfigCopy = JSON.parse(JSON.stringify(config ?? {}));\n setDeep(storageConfigCopy, path, value);\n setConfig(storageConfigCopy);\n queueMicrotask(async () => {\n await SaveConfig(storageConfigCopy);\n });\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { useAppGraph, useLayout } from '@dxos/app-framework';\nimport { TimeoutError } from '@dxos/async';\nimport { StatsPanel, useStats } from '@dxos/devtools';\nimport { getActiveSpace } from '@dxos/plugin-space';\nimport { StatusBar } from '@dxos/plugin-status-bar';\nimport { ConnectionState } from '@dxos/protocols/proto/dxos/client/services';\nimport { useNetworkStatus } from '@dxos/react-client/mesh';\nimport { Icon, Popover } from '@dxos/react-ui';\n\nconst styles = {\n success: 'text-sky-300 dark:text-green-700',\n warning: 'text-orange-300 dark:text-orange-600',\n error: 'text-red-300 dark:text-red-600',\n};\n\n// TODO(burdon): Move out of debug plugin.\n// TODO(burdon): Make pluggable (move indicators to relevant plugins).\n// TODO(burdon): Vault heartbeat indicator (global scope)?\n\n/**\n * Ensure light doesn't flicker immediately after start.\n */\n// TODO(burdon): Move to @dxos/async (debounce?)\nconst _timer = (cb: (err?: Error) => void, options?: { min?: number; max?: number }) => {\n const min = options?.min ?? 500;\n let start: number;\n let pending: NodeJS.Timeout;\n let timeout: NodeJS.Timeout;\n return {\n start: () => {\n start = Date.now();\n clearTimeout(pending);\n if (options?.max) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n cb(new TimeoutError(options.max));\n }, options.max);\n }\n },\n stop: () => {\n clearTimeout(timeout);\n const delta = Date.now() - start;\n if (delta < min) {\n pending = setTimeout(() => {\n cb();\n }, min - delta);\n }\n },\n };\n};\n\n/**\n * Global error handler.\n */\n// TODO(burdon): Integrate with Sentry?\nconst ErrorIndicator = () => {\n const [, forceUpdate] = useState({});\n const errorRef = useRef<Error>();\n useEffect(() => {\n const errorListener = (event: any) => {\n const error: Error = event.error ?? event.reason;\n if (errorRef.current !== error) {\n errorRef.current = error;\n forceUpdate({});\n }\n };\n\n // TODO(burdon): Register globally?\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/error_event\n window.addEventListener('error', errorListener);\n\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/unhandledrejection_event\n window.addEventListener('unhandledrejection', errorListener);\n\n return () => {\n window.removeEventListener('error', errorListener);\n window.removeEventListener('unhandledrejection', errorListener);\n };\n }, []);\n\n const handleReset = () => {\n errorRef.current = undefined;\n forceUpdate({});\n };\n\n if (errorRef.current) {\n return (\n <StatusBar.Button title={errorRef.current.message} onClick={handleReset}>\n <Icon icon='ph--warning-circle--duotone' size={4} classNames={styles.error} />\n </StatusBar.Button>\n );\n } else {\n return (\n <StatusBar.Item title='No errors.'>\n <Icon icon='ph--check--regular' size={4} />\n </StatusBar.Item>\n );\n }\n};\n\n/**\n * Swarm connection handler.\n */\nconst SwarmIndicator = () => {\n const [state, setState] = useState(0);\n const { swarm } = useNetworkStatus();\n useEffect(() => {\n setState(swarm === ConnectionState.ONLINE ? 0 : 1);\n }, [swarm]);\n\n if (state === 0) {\n return (\n <StatusBar.Item title='Connected to swarm.'>\n <Icon icon='ph--lightning--regular' size={4} />\n </StatusBar.Item>\n );\n } else {\n return (\n <StatusBar.Item title='Disconnected from swarm.'>\n <Icon icon='ph--lightning-slash--regular' size={4} classNames={styles.warning} />\n </StatusBar.Item>\n );\n }\n};\n\n/**\n * Data saving indicator.\n */\n// TODO(burdon): Merge with SaveStatus.\nconst SavingIndicator = () => {\n const [state, _setState] = useState(0);\n const layout = useLayout();\n const { graph } = useAppGraph();\n const _space = graph ? getActiveSpace(graph, layout.active[0]) : undefined;\n // TODO(dmaretskyi): Fix this when we have save status for automerge.\n // useEffect(() => {\n // if (!space) {\n // return;\n // }\n // const { start, stop } = timer(() => setState(0), { min: 250 });\n // return space.db.pendingBatch.on(({ duration, error }) => {\n // if (error) {\n // setState(2);\n // stop();\n // } else if (duration === undefined) {\n // setState(1);\n // start();\n // } else {\n // stop();\n // }\n // });\n // }, [space]);\n\n switch (state) {\n case 2:\n return (\n <StatusBar.Item title='Edit not saved.'>\n <Icon icon='ph--circle--duotone' size={4} classNames={styles.warning} />\n </StatusBar.Item>\n );\n case 1:\n return (\n <StatusBar.Item title='Saving...'>\n <Icon icon='ph--circle--duotone' size={4} classNames={styles.success} />\n </StatusBar.Item>\n );\n case 0:\n default:\n return (\n <StatusBar.Item title='Modified indicator.'>\n <Icon icon='ph--circle--duotone' size={4} />\n </StatusBar.Item>\n );\n }\n};\n\nconst PerformanceIndicator = () => {\n const [visible, setVisible] = useState(false);\n const [stats, refreshStats] = useStats();\n\n return (\n <Popover.Root open={visible} onOpenChange={setVisible}>\n <Popover.Trigger asChild>\n <StatusBar.Button onClick={() => setVisible((visible) => !visible)} title='Performance panels'>\n <Icon icon='ph--chart-bar--regular' size={4} />\n </StatusBar.Button>\n </Popover.Trigger>\n <Popover.Portal>\n <Popover.Content classNames='max-is-[min(var(--radix-popover-content-available-width),300px)] max-bs-[--radix-popover-content-available-height]'>\n <StatsPanel stats={stats} onRefresh={refreshStats} />\n <Popover.Arrow />\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n );\n};\n\nconst indicators = [SavingIndicator, SwarmIndicator, PerformanceIndicator, ErrorIndicator];\n\nexport const DebugStatus = () => {\n return (\n <>\n {indicators.map((Indicator) => (\n <Indicator key={Indicator.name} />\n ))}\n </>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\nimport { useResizeDetector } from 'react-resize-detector';\n\nimport { fullyQualifiedId, type ReactiveEchoObject } from '@dxos/react-client/echo';\nimport { type ThemedClassName } from '@dxos/react-ui';\nimport { useAttendableAttributes } from '@dxos/react-ui-attention';\nimport { SyntaxHighlighter } from '@dxos/react-ui-syntax-highlighter';\nimport { mx } from '@dxos/react-ui-theme';\n\n// TODO(burdon): Create generic container with wireframe mode.\nexport type WireframeProps = ThemedClassName<{\n label?: string;\n object: ReactiveEchoObject<any>;\n}>;\n\n// TODO(burdon): Make focusable and attendable with input.\nexport const Wireframe = ({ classNames, label, object }: WireframeProps) => {\n const attendableAttrs = useAttendableAttributes(fullyQualifiedId(object));\n const { width, height, ref } = useResizeDetector();\n return (\n <div ref={ref} className={mx('relative grow min-bs-96', classNames)} {...attendableAttrs}>\n <div className='absolute inset-2 flex flex-col gap-2 overflow-hidden font-mono'>\n <div className='flex justify-between'>\n <div>{label}</div>\n <div>{`[${width}x${height}]`}</div>\n </div>\n {object && (\n <SyntaxHighlighter language='json' classNames='flex w-full text-xs opacity-75 rounded'>\n {JSON.stringify(object, undefined, 2)}\n </SyntaxHighlighter>\n )}\n </div>\n <svg width={width} height={height} className='bg-transparent [&>*]:text-subdued'>\n <rect x={0} y={0} width={width} height={height} strokeWidth={1} fill='none' />\n <line x1={0} y1={0} x2={width} y2={height} strokeWidth={1} />\n <line x1={0} y1={height} x2={width} y2={0} strokeWidth={1} />\n </svg>\n </div>\n );\n};\n"],
5
- "mappings": ";;;;;;;;AAIA,OAAOA,UAASC,mBAAmB;AAEnC,SACEC,gBAAAA,eACAC,aACAC,cACAC,eACAC,oBAEK;AACP,SACEC,aACAC,kBACAC,iBACAC,kBACAC,YACAC,eACAC,cACAC,cACAC,cACAC,eACAC,cACAC,cACAC,aACAC,gBACAC,gBACAC,cACAC,YACAC,cACAC,gBACAC,oBACAC,aACAC,gBACAC,eACAC,mBACK;AACP,SAASC,qBAAqB;AAC9B,SAASC,aAAa;AACtB,SAASC,aAAaC,sBAAsB;AAC5C,SACEC,YACAC,SACAC,oBAIK;;;AC9CP,SAASC,YAAY;;;ACArB,OAAOC,WAAW;AAGlB,SAASC,WAAWC,aAAa;AACjC,SAASC,yBAAyB;AAO3B,IAAMC,mBAAmB,CAAC,EAAEC,OAAM,MAAyB;AAChE,QAAMC,MAAM,cAAcD,OAAOE,EAAE;AACnC,SACE,sBAAA,cAACC,UAAUC,UAAQ,MACjB,sBAAA,cAACC,OAAAA;IAAIC,WAAU;KACb,sBAAA,cAACC,MAAMC,MAAI,MACT,sBAAA,cAACH,OAAAA;IAAII,MAAK;IAAOH,WAAU;KACzB,sBAAA,cAACD,OAAAA;IAAII,MAAK;IAAOH,WAAU;KACzB,sBAAA,cAACC,MAAMG,WAAS;IAACC,UAAAA;IAASC,OAAOX;MACjC,sBAAA,cAACE,UAAUU,YAAU;IAACD,OAAOX;SAInC,sBAAA,cAACa,mBAAAA;IAAkBC,YAAW;IAAeC,UAAS;KACnDC,KAAKC,UAAUlB,QAAQ,MAAM,CAAA,CAAA,CAAA,CAAA;AAKxC;;;AC9BA,OAAOmB,UAASC,WAAWC,gBAAgB;AAE3C,SAASC,cAAcC,uBAAuB;AAC9C,SAA2BC,MAAMC,YAAYC,eAAe;AAC5D,SAASC,WAAW;AACpB,SAASC,iBAAiB;AAC1B,SAASC,gBAAgBC,QAAQC,OAAOC,SAAAA,QAAOC,iBAAiBC,QAAQC,YAAY;AACpF,SAASC,yBAAyBC,2BAA2B;AAC7D,SAASC,eAAe;;AAUxB,IAAMC,kBAAkB;EACtBC,MAAMC,KAAKC,QAAQC,OAAOC,QAAQC,cAAcC;EAChDC,KAAKN,KAAKC,QAAQC,OAAOC,QAAQC,cAAcG;AACjD;AAEO,IAAMC,gBAAgB,CAAC,EAAEC,SAAQ,MAAoC;AAC1E,QAAM,EAAEC,EAAC,IAAKC,eAAeC,YAAAA;AAC7B,QAAM,CAACC,OAAOC,QAAAA,IAAYC,SAAAA;AAC1B,QAAMC,SAASC,UAAAA;AACf,QAAMC,WAAWC,gBAAAA;AAEjB,QAAM,CAACC,eAAeC,gBAAAA,IAAoBN,SAAsB,CAAC,CAAA;AACjE,QAAM,CAACO,MAAAA,IAAUC,gBAAgBC,aAAaC,YAAY;AAE1DC,YAAU,MAAA;AACR,SAAKvB,QAAAA,EAAUwB,KAAK,CAACC,WAAWP,iBAAiBO,MAAAA,CAAAA;EACnD,GAAG,CAAA,CAAE;AAEL,QAAMC,cAAc,CAAChB,WAAAA;AACnBC,aAASD,MAAAA;AACT,UAAMH,KAAIoB,WAAW,MAAMhB,SAASiB,MAAAA,GAAY,GAAA;AAChD,WAAO,MAAMC,aAAatB,EAAAA;EAC5B;AAEA,QAAMuB,iBAAiB,YAAA;AACrB,UAAMC,OAAO,MAAMlB,OAAOmB,YAAW;AACrC,UAAMC,OAAO,IAAIC,KAAK;MAACC,KAAKC,UAAUL,MAAMH,QAAW,CAAA;OAAK;MAAES,MAAM;IAAa,CAAA;AACjF,UAAMC,WAAW,aAAY,oBAAIC,KAAAA,GAAOC,YAAW,EAAGC,QAAQ,OAAO,GAAA,CAAA;AACrE1B,aAASkB,MAAMK,QAAAA;AAEf,QAAInB,QAAQ;AACV,YAAMuB,OAAO,MAAMvB,OAAO,IAAIwB,KAAK;QAACV;SAAOK,QAAAA,GAAWzB,OAAO+B,OAAOC,OAAO;AAC3E,UAAI,CAACH,MAAM;AACTI,YAAIC,MAAM,wCAAA,QAAA;;;;;;AACV;MACF;AACArB,kBAAY;QAAEsB,OAAOzC,EAAE,mBAAA;QAAsB0C,aAAa1C,EAAE,gCAAA;MAAkC,CAAA;AAG9F,YAAM2C,MAAMrC,OAAOY,OAAO0B,OAAOC,QAASC,SAAUC,KAAMC,UAAU,MAAMb,KAAKc;AAC/E,WAAKC,UAAUC,UAAUC,UAAUT,GAAAA;AACnCxB,kBAAY;QAAEsB,OAAOzC,EAAE,mBAAA;QAAsB0C,aAAa1C,EAAE,gCAAA;MAAkC,CAAA;AAC9FuC,UAAIJ,KAAK,eAAe;QAAEQ;MAAI,GAAA;;;;;;IAChC;EACF;AAEA,QAAMU,eAAe,YAAA;AACnB,QAAI;AACF,YAAMlB,OAAO,MAAM7B,OAAOgD,OAAM;AAChC3C,uBAAiB,MAAMlB,QAAAA,CAAAA;AACvB0B,kBAAY;QAAEsB,OAAOzC,EAAE,yBAAA;QAA4B0C,aAAad,KAAKC,UAAUM,MAAMd,QAAW,CAAA;MAAG,CAAA;IACrG,SAASkC,KAAU;AACjBpC,kBAAY;QAAEsB,OAAOzC,EAAE,wBAAA;QAA2B0C,aAAaa,IAAIC;MAAQ,CAAA;IAC7E;EACF;AAEA,SACE,gBAAAC,OAAA,cAACC,yBAAAA,MACC,gBAAAD,OAAA,cAACE,qBAAAA;IAAoBC,OAAO5D,EAAE,2BAAA;KAC5B,gBAAAyD,OAAA,cAACI,OAAMC,QAAM;IAACC,SAAShE,SAASiE;IAAOC,iBAAiB,CAACF,YAAahE,SAASiE,QAAQ,CAAC,CAACD;OAE3F,gBAAAN,OAAA,cAACE,qBAAAA;IAAoBC,OAAO5D,EAAE,oBAAA;KAC5B,gBAAAyD,OAAA,cAACI,OAAMC,QAAM;IAACC,SAAShE,SAASmE;IAAWD,iBAAiB,CAACF,YAAahE,SAASmE,YAAY,CAAC,CAACH;OAEnG,gBAAAN,OAAA,cAACE,qBAAAA;IAAoBC,OAAO5D,EAAE,+BAAA;KAC5B,gBAAAyD,OAAA,cAACU,QAAAA;IAAOC,SAAS7C;KACf,gBAAAkC,OAAA,cAACY,MAAAA;IAAKC,MAAK;IAA+BC,MAAM;QAGpD,gBAAAd,OAAA,cAACE,qBAAAA;IAAoBC,OAAO5D,EAAE,iBAAA;KAC5B,gBAAAyD,OAAA,cAACU,QAAAA;IAAOC,SAASf;KACf,gBAAAI,OAAA,cAACY,MAAAA;IAAKC,MAAK;IAA6BC,MAAM;QAKjDpE,SACC,gBAAAsD,OAAA,cAACe,MAAMC,MAAI,MACT,gBAAAhB,OAAA,cAACe,MAAME,MAAI,MACT,gBAAAjB,OAAA,cAACe,MAAMG,OAAK,MACV,gBAAAlB,OAAA,cAACY,MAAAA;IAAKC,MAAK;IAAoBC,MAAM;IAAGK,YAAW;MACnD,gBAAAnB,OAAA,cAACoB,QAAAA,MAAM1E,MAAMsC,KAAK,CAAA,GAEnBtC,MAAMuC,eAAe,gBAAAe,OAAA,cAACe,MAAMM,aAAW,MAAE3E,MAAMuC,WAAW,CAAA,CAAA,GAKjE,gBAAAe,OAAA,cAACE,qBAAAA;IAAoBC,OAAO5D,EAAE,iCAAA;KAC5B,gBAAAyD,OAAA,cAACsB,OAAON,MAAI;IACVO,OACEC,OAAOC,QAAQ9F,eAAAA,EAAiB+F,KAC9B,CAAC,CAACC,OAAMJ,KAAAA,MAAWA,UAAUtE,eAAemC,SAASvC,QAAQ+E,SAASC,SAAAA,IACpE,CAAA;IAENC,eAAe,CAACP,UAAAA;AACd,UAAIQ,QAAQxF,EAAE,wCAAA,CAAA,GAA4C;AACxDyF,qBACE/E,eACAC,kBACA;UAAC;UAAW;UAAU;UAAW;WACjCvB,gBAAgB4F,KAAAA,CAAsC;MAE1D;IACF;KAEA,gBAAAvB,OAAA,cAACsB,OAAOW,eAAa;IAACC,aAAa3F,EAAE,2BAAA;MACrC,gBAAAyD,OAAA,cAACsB,OAAOa,QAAM,MACZ,gBAAAnC,OAAA,cAACsB,OAAOc,SAAO,MACb,gBAAApC,OAAA,cAACsB,OAAOe,UAAQ,MACbb,OAAOc,KAAK3G,eAAAA,EAAiB4G,IAAI,CAACC,QACjC,gBAAAxC,OAAA,cAACsB,OAAOmB,QAAM;IAACD;IAAUjB,OAAOiB;KAC7BjG,EAAE,4BAA4BiG,GAAAA,QAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAU9D;AAEA,IAAMR,eAAe,CAACvE,QAAqBiF,WAA6CC,MAAgBpB,UAAAA;AACtG,QAAMqB,oBAAoBzE,KAAK0E,MAAM1E,KAAKC,UAAUX,UAAU,CAAC,CAAA,CAAA;AAC/DqF,UAAQF,mBAAmBD,MAAMpB,KAAAA;AACjCmB,YAAUE,iBAAAA;AACVG,iBAAe,YAAA;AACb,UAAMC,WAAWJ,iBAAAA;EACnB,CAAA;AACF;;;ACrJA,OAAOK,UAASC,aAAAA,YAAWC,QAAQC,YAAAA,iBAAgB;AAEnD,SAASC,aAAaC,iBAAiB;AACvC,SAASC,oBAAoB;AAC7B,SAASC,YAAYC,gBAAgB;AACrC,SAASC,sBAAsB;AAC/B,SAASC,iBAAiB;AAC1B,SAASC,uBAAuB;AAChC,SAASC,wBAAwB;AACjC,SAASC,QAAAA,OAAMC,eAAe;AAE9B,IAAMC,SAAS;EACbC,SAAS;EACTC,SAAS;EACTC,OAAO;AACT;AA0CA,IAAMC,iBAAiB,MAAA;AACrB,QAAM,CAAA,EAAGC,WAAAA,IAAeC,UAAS,CAAC,CAAA;AAClC,QAAMC,WAAWC,OAAAA;AACjBC,EAAAA,WAAU,MAAA;AACR,UAAMC,gBAAgB,CAACC,UAAAA;AACrB,YAAMC,QAAeD,MAAMC,SAASD,MAAME;AAC1C,UAAIN,SAASO,YAAYF,OAAO;AAC9BL,iBAASO,UAAUF;AACnBP,oBAAY,CAAC,CAAA;MACf;IACF;AAIAU,WAAOC,iBAAiB,SAASN,aAAAA;AAGjCK,WAAOC,iBAAiB,sBAAsBN,aAAAA;AAE9C,WAAO,MAAA;AACLK,aAAOE,oBAAoB,SAASP,aAAAA;AACpCK,aAAOE,oBAAoB,sBAAsBP,aAAAA;IACnD;EACF,GAAG,CAAA,CAAE;AAEL,QAAMQ,cAAc,MAAA;AAClBX,aAASO,UAAUK;AACnBd,gBAAY,CAAC,CAAA;EACf;AAEA,MAAIE,SAASO,SAAS;AACpB,WACE,gBAAAM,OAAA,cAACC,UAAUC,QAAM;MAACC,OAAOhB,SAASO,QAAQU;MAASC,SAASP;OAC1D,gBAAAE,OAAA,cAACM,OAAAA;MAAKC,MAAK;MAA8BC,MAAM;MAAGC,YAAYC,OAAOlB;;EAG3E,OAAO;AACL,WACE,gBAAAQ,OAAA,cAACC,UAAUU,MAAI;MAACR,OAAM;OACpB,gBAAAH,OAAA,cAACM,OAAAA;MAAKC,MAAK;MAAqBC,MAAM;;EAG5C;AACF;AAKA,IAAMI,iBAAiB,MAAA;AACrB,QAAM,CAACC,OAAOC,QAAAA,IAAY5B,UAAS,CAAA;AACnC,QAAM,EAAE6B,MAAK,IAAKC,iBAAAA;AAClB3B,EAAAA,WAAU,MAAA;AACRyB,aAASC,UAAUE,gBAAgBC,SAAS,IAAI,CAAA;EAClD,GAAG;IAACH;GAAM;AAEV,MAAIF,UAAU,GAAG;AACf,WACE,gBAAAb,OAAA,cAACC,UAAUU,MAAI;MAACR,OAAM;OACpB,gBAAAH,OAAA,cAACM,OAAAA;MAAKC,MAAK;MAAyBC,MAAM;;EAGhD,OAAO;AACL,WACE,gBAAAR,OAAA,cAACC,UAAUU,MAAI;MAACR,OAAM;OACpB,gBAAAH,OAAA,cAACM,OAAAA;MAAKC,MAAK;MAA+BC,MAAM;MAAGC,YAAYC,OAAOS;;EAG5E;AACF;AAMA,IAAMC,kBAAkB,MAAA;AACtB,QAAM,CAACP,OAAOQ,SAAAA,IAAanC,UAAS,CAAA;AACpC,QAAMoC,SAASC,UAAAA;AACf,QAAM,EAAEC,MAAK,IAAKC,YAAAA;AAClB,QAAMC,SAASF,QAAQG,eAAeH,OAAOF,OAAOM,OAAO,CAAA,CAAE,IAAI7B;AAoBjE,UAAQc,OAAAA;IACN,KAAK;AACH,aACE,gBAAAb,OAAA,cAACC,UAAUU,MAAI;QAACR,OAAM;SACpB,gBAAAH,OAAA,cAACM,OAAAA;QAAKC,MAAK;QAAsBC,MAAM;QAAGC,YAAYC,OAAOS;;IAGnE,KAAK;AACH,aACE,gBAAAnB,OAAA,cAACC,UAAUU,MAAI;QAACR,OAAM;SACpB,gBAAAH,OAAA,cAACM,OAAAA;QAAKC,MAAK;QAAsBC,MAAM;QAAGC,YAAYC,OAAOmB;;IAGnE,KAAK;IACL;AACE,aACE,gBAAA7B,OAAA,cAACC,UAAUU,MAAI;QAACR,OAAM;SACpB,gBAAAH,OAAA,cAACM,OAAAA;QAAKC,MAAK;QAAsBC,MAAM;;EAG/C;AACF;AAEA,IAAMsB,uBAAuB,MAAA;AAC3B,QAAM,CAACC,SAASC,UAAAA,IAAc9C,UAAS,KAAA;AACvC,QAAM,CAAC+C,OAAOC,YAAAA,IAAgBC,SAAAA;AAE9B,SACE,gBAAAnC,OAAA,cAACoC,QAAQC,MAAI;IAACC,MAAMP;IAASQ,cAAcP;KACzC,gBAAAhC,OAAA,cAACoC,QAAQI,SAAO;IAACC,SAAAA;KACf,gBAAAzC,OAAA,cAACC,UAAUC,QAAM;IAACG,SAAS,MAAM2B,WAAW,CAACD,aAAY,CAACA,QAAAA;IAAU5B,OAAM;KACxE,gBAAAH,OAAA,cAACM,OAAAA;IAAKC,MAAK;IAAyBC,MAAM;QAG9C,gBAAAR,OAAA,cAACoC,QAAQM,QAAM,MACb,gBAAA1C,OAAA,cAACoC,QAAQO,SAAO;IAAClC,YAAW;KAC1B,gBAAAT,OAAA,cAAC4C,YAAAA;IAAWX;IAAcY,WAAWX;MACrC,gBAAAlC,OAAA,cAACoC,QAAQU,OAAK,IAAA,CAAA,CAAA,CAAA;AAKxB;AAEA,IAAMC,aAAa;EAAC3B;EAAiBR;EAAgBkB;EAAsB9C;;AAEpE,IAAMgE,cAAc,MAAA;AACzB,SACE,gBAAAhD,OAAA,cAAAA,OAAA,UAAA,MACG+C,WAAWE,IAAI,CAACC,cACf,gBAAAlD,OAAA,cAACkD,WAAAA;IAAUC,KAAKD,UAAUE;;AAIlC;;;ACjNA,OAAOC,YAAW;AAClB,SAASC,yBAAyB;AAElC,SAASC,wBAAiD;AAE1D,SAASC,+BAA+B;AACxC,SAASC,qBAAAA,0BAAyB;AAClC,SAASC,UAAU;AASZ,IAAMC,YAAY,CAAC,EAAEC,YAAYC,OAAOC,OAAM,MAAkB;AACrE,QAAMC,kBAAkBC,wBAAwBC,iBAAiBH,MAAAA,CAAAA;AACjE,QAAM,EAAEI,OAAOC,QAAQC,IAAG,IAAKC,kBAAAA;AAC/B,SACE,gBAAAC,OAAA,cAACC,OAAAA;IAAIH;IAAUI,WAAWC,GAAG,2BAA2Bb,UAAAA;IAAc,GAAGG;KACvE,gBAAAO,OAAA,cAACC,OAAAA;IAAIC,WAAU;KACb,gBAAAF,OAAA,cAACC,OAAAA;IAAIC,WAAU;KACb,gBAAAF,OAAA,cAACC,OAAAA,MAAKV,KAAAA,GACN,gBAAAS,OAAA,cAACC,OAAAA,MAAK,IAAIL,KAAAA,IAASC,MAAAA,GAAS,CAAA,GAE7BL,UACC,gBAAAQ,OAAA,cAACI,oBAAAA;IAAkBC,UAAS;IAAOf,YAAW;KAC3CgB,KAAKC,UAAUf,QAAQgB,QAAW,CAAA,CAAA,CAAA,GAIzC,gBAAAR,OAAA,cAACS,OAAAA;IAAIb;IAAcC;IAAgBK,WAAU;KAC3C,gBAAAF,OAAA,cAACU,QAAAA;IAAKC,GAAG;IAAGC,GAAG;IAAGhB;IAAcC;IAAgBgB,aAAa;IAAGC,MAAK;MACrE,gBAAAd,OAAA,cAACe,QAAAA;IAAKC,IAAI;IAAGC,IAAI;IAAGC,IAAItB;IAAOuB,IAAItB;IAAQgB,aAAa;MACxD,gBAAAb,OAAA,cAACe,QAAAA;IAAKC,IAAI;IAAGC,IAAIpB;IAAQqB,IAAItB;IAAOuB,IAAI;IAAGN,aAAa;;AAIhE;;;AJrCO,IAAMO,WAAWC,KAAK,MAAM,OAAO,yBAAA,CAAA;AACnC,IAAMC,aAAaD,KAAK,MAAM,OAAO,2BAAA,CAAA;AACrC,IAAME,iBAAiBF,KAAK,MAAM,OAAO,+BAAA,CAAA;;;ADiEhD,IAAMG,eAAe,CAACC,SAAkCA,MAAMC,SAAS,GAAGC,YAAAA,YAAwBC,QAAQH,KAAKI,KAAK;AACpH,IAAMC,eAAe,CAACL,SAAkCA,MAAMM,iBAAiBC;AAE/E,IAAA,wBAAe,CAACC,YACdC,YAAYC,cAAaC,cAAc;EACrCC,cAAc;IACZC,IAAI,GAAGX,YAAAA;IACPY,MAAM;IACNC,QAAQ,CAACf,SACPA,KAAKgB,mBAAmBC,iBAAiBjB,KAAKgB,QAAQE,WAAWhB;IACnEiB,WAAW,CAAC,EAAEnB,MAAM,EAAEgB,QAAO,EAAE,MAAO,gBAAAI,OAAA,cAACC,eAAAA;MAAcC,UAAUN,QAAQO;;EACzE,CAAA;EACAX,cAAc;IACZC,IAAI,GAAGX,YAAAA;IACPY,MAAM;IACNC,QAAQ,CAACf,SAA0CD,aAAaC,KAAKgB,OAAO;IAC5EG,WAAW,CAAC,EAAEnB,KAAI,MAAE;AAClB,YAAMwB,qBAAqBC,YACzB,CAACC,YAAAA;AACC,YAAI,CAACvB,QAAQH,KAAKgB,QAAQZ,KAAK,GAAG;AAChC;QACF;AAEA,cAAMuB,aACJ3B,KAAKgB,QAAQZ,MAAMwB,MAAMC,IAAG,MAAOC,WAAWC,eAC9C/B,KAAKgB,QAAQZ,MAAM4B,WAAWC,eAAeC,QAAQ,GAAGC;AAC1D,YAAI,EAAER,sBAAsBM,iBAAiB;AAC3C;QACF;AAEA,cAAM,EAAEG,iBAAiBC,SAAQ,IAAK7B,QAAQ8B,kBAAkB5B,cAAa6B,gBAAgB;AAC7Fb,gBAAQc,QAAQ,CAACC,WAAAA;AACf,eAAKJ,SAASK,aAAaC,YAAYC,WAAW;YAAET,QAAQR;YAAYc;UAAO,CAAA,CAAA;QACjF,CAAA;MACF,GACA;QAACzC,KAAKgB,QAAQZ;OAAM;AAGtB,YAAMyC,aAAa;AACnB,aAAOA,aACL,gBAAAzB,OAAA,cAAC0B,YAAAA;QAAW1C,OAAOJ,KAAKgB,QAAQZ;QAAO2C,cAAcvB;WAErD,gBAAAJ,OAAA,cAAC4B,gBAAAA;QAAe5C,OAAOJ,KAAKgB,QAAQZ;QAAO6C,iBAAiBzB;;IAEhE;EACF,CAAA;EACAZ,cAAc;IACZC,IAAI,GAAGX,YAAAA;IACPY,MAAM;IACNC,QAAQ,CAACf,SAA0CK,aAAaL,KAAKgB,OAAO;IAC5EG,WAAW,CAAC,EAAEnB,KAAI,MAAO,gBAAAoB,OAAA,cAAC8B,UAAAA;MAAS5C,OAAON,KAAKgB,QAAQV;;EACzD,CAAA;EACAM,cAAc;IACZC,IAAI,GAAGX,YAAAA;IACPY,MAAM;MAAC;MAAW;;IAClBqC,UAAU;IACVpC,QAAQ,CAACf,SAAAA;AACP,YAAMsB,WAAWd,QACd8B,kBAAkB5B,cAAaO,aAAa,EAC5CmC,SAA6BlD,YAAAA,EAAeqB;AAC/C,aAAO8B,aAAarD,KAAKgB,OAAO,KAAK,CAAC,CAACM,SAASgC;IAClD;IACAnC,WAAW,CAAC,EAAEnB,MAAMc,KAAI,MACtB,gBAAAM,OAAA,cAACmC,WAAAA;MAAUC,OAAO,GAAG1C,IAAAA,IAAQ2C,IAAAA;MAAQhB,QAAQzC,KAAKgB;MAAS0C,YAAW;;EAE1E,CAAA;EACA9C,cAAc;IACZC,IAAI,GAAGX,YAAAA;IACPY,MAAM;IACNC,QAAQ,CAACf,SAAuDqD,aAAarD,KAAKgB,OAAO;IACzFG,WAAW,CAAC,EAAEnB,KAAI,MAAO,gBAAAoB,OAAA,cAACuC,kBAAAA;MAAiBlB,QAAQzC,KAAKgB;;EAC1D,CAAA;EACAJ,cAAc;IACZC,IAAI,GAAGX,YAAAA;IACPY,MAAM;IACNK,WAAW,MAAM,gBAAAC,OAAA,cAACwC,aAAAA,IAAAA;EACpB,CAAA;;;;EAMAhD,cAAc;IACZC,IAAI,GAAGX,YAAAA;IACPY,MAAM;IACNC,QAAQ,CAACf,SAAsBA,KAAKgB,YAAY6C,SAASC,OAAOC;IAChE5C,WAAW,MAAM,gBAAAC,OAAA,cAAC4C,aAAAA,IAAAA;EACpB,CAAA;EACApD,cAAc;IACZC,IAAI,GAAGX,YAAAA;IACPY,MAAM;IACNC,QAAQ,CAACf,SAAsBA,KAAKgB,YAAY6C,SAASC,OAAOG;IAChE9C,WAAW,MAAM,gBAAAC,OAAA,cAAC8C,cAAAA,IAAAA;EACpB,CAAA;EACAtD,cAAc;IACZC,IAAI,GAAGX,YAAAA;IACPY,MAAM;IACNC,QAAQ,CAACf,SAAsBA,KAAKgB,YAAY6C,SAASC,OAAOK;IAChEhD,WAAW,MAAM,gBAAAC,OAAA,cAACgD,cAAAA,IAAAA;EACpB,CAAA;EACAxD,cAAc;IACZC,IAAI,GAAGX,YAAAA;IACPY,MAAM;IACNC,QAAQ,CAACf,SAAsBA,KAAKgB,YAAY6C,SAASC,OAAOO;IAChElD,WAAW,MAAM,gBAAAC,OAAA,cAACkD,kBAAAA,IAAAA;EACpB,CAAA;EACA1D,cAAc;IACZC,IAAI,GAAGX,YAAAA;IACPY,MAAM;IACNC,QAAQ,CAACf,SAAsBA,KAAKgB,YAAY6C,SAASC,OAAOS;IAChEpD,WAAW,MAAM,gBAAAC,OAAA,cAACoD,cAAAA,IAAAA;EACpB,CAAA;EACA5D,cAAc;IACZC,IAAI,GAAGX,YAAAA;IACPY,MAAM;IACNC,QAAQ,CAACf,SAAsBA,KAAKgB,YAAY6C,SAASY,KAAKC;IAC9DvD,WAAW,MAAM,gBAAAC,OAAA,cAACuD,eAAAA,IAAAA;EACpB,CAAA;EACA/D,cAAc;IACZC,IAAI,GAAGX,YAAAA;IACPY,MAAM;IACNC,QAAQ,CAACf,SAAsBA,KAAKgB,YAAY6C,SAASY,KAAKG;IAC9DzD,WAAW,MAAM,gBAAAC,OAAA,cAACyD,iBAAAA,IAAAA;EACpB,CAAA;EACAjE,cAAc;IACZC,IAAI,GAAGX,YAAAA;IACPY,MAAM;IACNC,QAAQ,CAACf,SAAsBA,KAAKgB,YAAY6C,SAASY,KAAKK;IAC9D3D,WAAW,MAAM,gBAAAC,OAAA,cAAC2D,cAAAA,IAAAA;EACpB,CAAA;EACAnE,cAAc;IACZC,IAAI,GAAGX,YAAAA;IACPY,MAAM;IACNC,QAAQ,CAACf,SAAsBA,KAAKgB,YAAY6C,SAASY,KAAKO;IAC9D7D,WAAW,MAAM,gBAAAC,OAAA,cAAC6D,kBAAAA,IAAAA;EACpB,CAAA;EACArE,cAAc;IACZC,IAAI,GAAGX,YAAAA;IACPY,MAAM;IACNC,QAAQ,CAACf,SAAsBA,KAAKgB,YAAY6C,SAASqB,KAAKC;IAC9DhE,WAAW,MAAA;AACT,YAAM,EAAEiB,iBAAiBC,SAAQ,IAAK7B,QAAQ8B,kBAAkB5B,cAAa6B,gBAAgB;AAC7F,YAAM6C,eAAe3D,YACnB,MAAMY,SAASK,aAAa2C,aAAaC,MAAM;QAAEC,MAAM;QAAQvE,SAAS;UAAC6C,SAASqB,KAAKM;;MAAO,CAAA,CAAA,GAC9F;QAACnD;OAAS;AAEZ,aAAO,gBAAAjB,OAAA,cAACqE,gBAAAA;QAAeC,UAAUN;;IACnC;EACF,CAAA;EACAxE,cAAc;IACZC,IAAI,GAAGX,YAAAA;IACPY,MAAM;IACNC,QAAQ,CAACf,SAAsBA,KAAKgB,YAAY6C,SAASqB,KAAKM;IAC9DrE,WAAW,MAAA;AACT,YAAM,EAAEiB,iBAAiBC,SAAQ,IAAK7B,QAAQ8B,kBAAkB5B,cAAa6B,gBAAgB;AAC7F,YAAM6C,eAAe3D,YACnB,MAAMY,SAASK,aAAa2C,aAAaC,MAAM;QAAEC,MAAM;QAAQvE,SAAS;UAAC6C,SAASqB,KAAKS;;MAAO,CAAA,CAAA,GAC9F;QAACtD;OAAS;AAEZ,aAAO,gBAAAjB,OAAA,cAACwE,gBAAAA;QAAeC,cAAcT;QAAcU,kBAAkBV;;IACvE;EACF,CAAA;EACAxE,cAAc;IACZC,IAAI,GAAGX,YAAAA;IACPY,MAAM;IACNC,QAAQ,CAACf,SAAsBA,KAAKgB,YAAY6C,SAASqB,KAAKS;IAC9DxE,WAAW,MAAM,gBAAAC,OAAA,cAAC2E,YAAAA,IAAAA;EACpB,CAAA;EACAnF,cAAc;IACZC,IAAI,GAAGX,YAAAA;IACPY,MAAM;IACNC,QAAQ,CAACf,SAAsBA,KAAKgB,YAAY6C,SAASqB,KAAKc;IAC9D7E,WAAW,MAAM,gBAAAC,OAAA,cAAC6E,cAAAA,IAAAA;EACpB,CAAA;EACArF,cAAc;IACZC,IAAI,GAAGX,YAAAA;IACPY,MAAM;IACNC,QAAQ,CAACf,SAAsBA,KAAKgB,YAAY6C,SAASqB,KAAKgB;IAC9D/E,WAAW,MAAM,gBAAAC,OAAA,cAAC+E,gBAAAA,IAAAA;EACpB,CAAA;EACAvF,cAAc;IACZC,IAAI,GAAGX,YAAAA;IACPY,MAAM;IACNC,QAAQ,CAACf,SAAsBA,KAAKgB,YAAY6C,SAASqB,KAAKkB;IAC9DjF,WAAW,MAAM,gBAAAC,OAAA,cAACiF,aAAAA,IAAAA;EACpB,CAAA;EACAzF,cAAc;IACZC,IAAI,GAAGX,YAAAA;IACPY,MAAM;IACNC,QAAQ,CAACf,SAAsBA,KAAKgB,YAAY6C,SAASqB,KAAKoB;IAC9DnF,WAAW,MAAM,gBAAAC,OAAA,cAACmF,cAAAA,IAAAA;EACpB,CAAA;EACA3F,cAAc;IACZC,IAAI,GAAGX,YAAAA;IACPY,MAAM;IACNC,QAAQ,CAACf,SAAsBA,KAAKgB,YAAY6C,SAASqB,KAAKsB;IAC9DrF,WAAW,MAAM,gBAAAC,OAAA,cAACqF,eAAAA,IAAAA;EACpB,CAAA;EACA7F,cAAc;IACZC,IAAI,GAAGX,YAAAA;IACPY,MAAM;IACNC,QAAQ,CAACf,SAAsBA,KAAKgB,YAAY6C,SAAS6C,KAAKC;IAC9DxF,WAAW,MAAM,gBAAAC,OAAA,cAACwF,aAAAA,IAAAA;EACpB,CAAA;EACAhG,cAAc;IACZC,IAAI,GAAGX,YAAAA;IACPY,MAAM;IACNC,QAAQ,CAACf,SAAsBA,KAAKgB,YAAY6C,SAAS6C,KAAKG;IAC9D1F,WAAW,MAAM,gBAAAC,OAAA,cAAC0F,YAAAA,IAAAA;EACpB,CAAA;EACAlG,cAAc;IACZC,IAAI,GAAGX,YAAAA;IACPY,MAAM;IACNC,QAAQ,CAACf,SAAsBA,KAAKgB,YAAY6C,SAAS6C,KAAKK;IAC9D5F,WAAW,MAAM,gBAAAC,OAAA,cAAC4F,cAAAA,IAAAA;EACpB,CAAA;EACApG,cAAc;IACZC,IAAI,GAAGX,YAAAA;IACPY,MAAM;IACNC,QAAQ,CAACf,SAAsBA,KAAKgB,YAAY6C,SAASoD,MAAMC;IAC/D/F,WAAW,MAAM,gBAAAC,OAAA,cAAC+F,gBAAAA,IAAAA;EACpB,CAAA;EACAvG,cAAc;IACZC,IAAI,GAAGX,YAAAA;IACPY,MAAM;IACNC,QAAQ,CAACf,SAAsBA,KAAKgB,YAAY6C,SAASoD,MAAMG;IAC/DjG,WAAW,MAAM,gBAAAC,OAAA,cAACiG,aAAAA,IAAAA;EACpB,CAAA;EACAzG,cAAc;IACZC,IAAI,GAAGX,YAAAA;IACPY,MAAM;IACNC,QAAQ,CAACf,SAAsBA,KAAKgB,YAAY6C,SAASyD,KAAKJ;IAC9D/F,WAAW,MAAM,gBAAAC,OAAA,cAACmG,oBAAAA,IAAAA;EACpB,CAAA;EACA3G,cAAc;IACZC,IAAI,GAAGX,YAAAA;IACPY,MAAM;IACNC,QAAQ,CAACf,SAAsBA,KAAKgB,YAAY6C,SAASyD,KAAKE;IAC9DrG,WAAW,MAAM,gBAAAC,OAAA,cAACqG,eAAAA,IAAAA;EACpB,CAAA;CACD;",
6
- "names": ["React", "useCallback", "Capabilities", "contributes", "createIntent", "createSurface", "LayoutAction", "ConfigPanel", "CredentialsPanel", "DeviceListPanel", "DiagnosticsPanel", "FeedsPanel", "IdentityPanel", "KeyringPanel", "LoggingPanel", "MembersPanel", "MetadataPanel", "NetworkPanel", "ObjectsPanel", "SignalPanel", "SpaceInfoPanel", "SpaceListPanel", "StoragePanel", "SwarmPanel", "TracingPanel", "DashboardPanel", "EdgeDashboardPanel", "SearchPanel", "AutomergePanel", "WorkflowPanel", "QueuesPanel", "SettingsStore", "Graph", "SpaceAction", "CollectionType", "SpaceState", "isSpace", "isEchoObject", "lazy", "React", "Clipboard", "Input", "SyntaxHighlighter", "DebugObjectPanel", "object", "dxn", "id", "Clipboard", "Provider", "div", "className", "Input", "Root", "role", "TextInput", "disabled", "value", "IconButton", "SyntaxHighlighter", "classNames", "language", "JSON", "stringify", "React", "useEffect", "useState", "Capabilities", "useCapabilities", "defs", "SaveConfig", "Storage", "log", "useClient", "useTranslation", "Button", "Toast", "Input", "useFileDownload", "Select", "Icon", "DeprecatedFormContainer", "DeprecatedFormInput", "setDeep", "StorageAdapters", "opfs", "defs", "Runtime", "Client", "Storage", "StorageDriver", "WEBFS", "idb", "IDB", "DebugSettings", "settings", "t", "useTranslation", "DEBUG_PLUGIN", "toast", "setToast", "useState", "client", "useClient", "download", "useFileDownload", "storageConfig", "setStorageConfig", "upload", "useCapabilities", "Capabilities", "FileUploader", "useEffect", "then", "config", "handleToast", "setTimeout", "undefined", "clearTimeout", "handleDownload", "data", "diagnostics", "file", "Blob", "JSON", "stringify", "type", "fileName", "Date", "toISOString", "replace", "info", "File", "spaces", "default", "log", "error", "title", "description", "url", "values", "runtime", "services", "ipfs", "gateway", "cid", "navigator", "clipboard", "writeText", "handleRepair", "repair", "err", "message", "React", "DeprecatedFormContainer", "DeprecatedFormInput", "label", "Input", "Switch", "checked", "debug", "onCheckedChange", "wireframe", "Button", "onClick", "Icon", "icon", "size", "Toast", "Root", "Body", "Title", "classNames", "span", "Description", "Select", "value", "Object", "entries", "find", "name", "storage", "dataStore", "onValueChange", "confirm", "updateConfig", "TriggerButton", "placeholder", "Portal", "Content", "Viewport", "keys", "map", "key", "Option", "setConfig", "path", "storageConfigCopy", "parse", "setDeep", "queueMicrotask", "SaveConfig", "React", "useEffect", "useRef", "useState", "useAppGraph", "useLayout", "TimeoutError", "StatsPanel", "useStats", "getActiveSpace", "StatusBar", "ConnectionState", "useNetworkStatus", "Icon", "Popover", "styles", "success", "warning", "error", "ErrorIndicator", "forceUpdate", "useState", "errorRef", "useRef", "useEffect", "errorListener", "event", "error", "reason", "current", "window", "addEventListener", "removeEventListener", "handleReset", "undefined", "React", "StatusBar", "Button", "title", "message", "onClick", "Icon", "icon", "size", "classNames", "styles", "Item", "SwarmIndicator", "state", "setState", "swarm", "useNetworkStatus", "ConnectionState", "ONLINE", "warning", "SavingIndicator", "_setState", "layout", "useLayout", "graph", "useAppGraph", "_space", "getActiveSpace", "active", "success", "PerformanceIndicator", "visible", "setVisible", "stats", "refreshStats", "useStats", "Popover", "Root", "open", "onOpenChange", "Trigger", "asChild", "Portal", "Content", "StatsPanel", "onRefresh", "Arrow", "indicators", "DebugStatus", "map", "Indicator", "key", "name", "React", "useResizeDetector", "fullyQualifiedId", "useAttendableAttributes", "SyntaxHighlighter", "mx", "Wireframe", "classNames", "label", "object", "attendableAttrs", "useAttendableAttributes", "fullyQualifiedId", "width", "height", "ref", "useResizeDetector", "React", "div", "className", "mx", "SyntaxHighlighter", "language", "JSON", "stringify", "undefined", "svg", "rect", "x", "y", "strokeWidth", "fill", "line", "x1", "y1", "x2", "y2", "DebugApp", "lazy", "DebugSpace", "SpaceGenerator", "isSpaceDebug", "data", "type", "DEBUG_PLUGIN", "isSpace", "space", "isGraphDebug", "graph", "Graph", "context", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "role", "filter", "subject", "SettingsStore", "prefix", "component", "React", "DebugSettings", "settings", "value", "handleCreateObject", "useCallback", "objects", "collection", "state", "get", "SpaceState", "SPACE_READY", "properties", "CollectionType", "typename", "target", "dispatchPromise", "dispatch", "requestCapability", "IntentDispatcher", "forEach", "object", "createIntent", "SpaceAction", "AddObject", "deprecated", "DebugSpace", "onAddObjects", "SpaceGenerator", "onCreateObjects", "DebugApp", "position", "getStore", "isEchoObject", "wireframe", "Wireframe", "label", "name", "classNames", "DebugObjectPanel", "DebugStatus", "Devtools", "Client", "Config", "ConfigPanel", "Storage", "StoragePanel", "Logs", "LoggingPanel", "Diagnostics", "DiagnosticsPanel", "Tracing", "TracingPanel", "Halo", "Identity", "IdentityPanel", "Devices", "DeviceListPanel", "Keyring", "KeyringPanel", "Credentials", "CredentialsPanel", "Echo", "Spaces", "handleSelect", "LayoutAction", "Open", "part", "Space", "SpaceListPanel", "onSelect", "Feeds", "SpaceInfoPanel", "onSelectFeed", "onSelectPipeline", "FeedsPanel", "Objects", "ObjectsPanel", "Automerge", "AutomergePanel", "Queues", "QueuesPanel", "Members", "MembersPanel", "Metadata", "MetadataPanel", "Mesh", "Signal", "SignalPanel", "Swarm", "SwarmPanel", "Network", "NetworkPanel", "Agent", "Dashboard", "DashboardPanel", "Search", "SearchPanel", "Edge", "EdgeDashboardPanel", "Workflows", "WorkflowPanel"]
7
- }
@@ -1,8 +0,0 @@
1
- import { type FC } from 'react';
2
- import { type ReactiveObject } from '@dxos/live-object';
3
- import { type Space } from '@dxos/react-client/echo';
4
- export declare const DebugSpace: FC<{
5
- space: Space;
6
- onAddObjects?: (objects: ReactiveObject<any>[]) => void;
7
- }>;
8
- //# sourceMappingURL=DebugSpace.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DebugSpace.d.ts","sourceRoot":"","sources":["../../../../../src/components/DebugSpace/DebugSpace.tsx"],"names":[],"mappings":"AAIA,OAAc,EAAE,KAAK,EAAE,EAAiC,MAAM,OAAO,CAAC;AAGtE,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAKxD,OAAO,EAAU,KAAK,KAAK,EAAsB,MAAM,yBAAyB,CAAC;AA8BjF,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC;IAC1B,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC;CACzD,CAyIA,CAAC"}
@@ -1,6 +0,0 @@
1
- import '@dxos-theme';
2
- import { type Meta } from '@storybook/react';
3
- declare const meta: Meta;
4
- export default meta;
5
- export declare const Default: {};
6
- //# sourceMappingURL=DebugSpace.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DebugSpace.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/DebugSpace/DebugSpace.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,aAAa,CAAC;AAErB,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,kBAAkB,CAAC;AA2B7C,QAAA,MAAM,IAAI,EAAE,IAQX,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,eAAO,MAAM,OAAO,IAAK,CAAC"}
@@ -1,14 +0,0 @@
1
- import { type MutationsProviderParams } from '@dxos/echo-generator';
2
- import { type ReactiveObject, type Space } from '@dxos/react-client/echo';
3
- export type CreateObjectsParams = {
4
- schema: string;
5
- enabled: boolean;
6
- objects: number;
7
- mutations: Pick<MutationsProviderParams, 'count' | 'mutationSize' | 'maxContentLength'>;
8
- };
9
- export type ObjectCreatorProps = {
10
- space: Space;
11
- onAddObjects?: (objects: ReactiveObject<any>[]) => void;
12
- };
13
- export declare const ObjectCreator: ({ space, onAddObjects }: ObjectCreatorProps) => import("react/jsx-runtime").JSX.Element;
14
- //# sourceMappingURL=ObjectCreator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ObjectCreator.d.ts","sourceRoot":"","sources":["../../../../../src/components/DebugSpace/ObjectCreator.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,uBAAuB,EAA8C,MAAM,sBAAsB,CAAC;AAChH,OAAO,EAA2B,KAAK,cAAc,EAAE,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAMnG,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC,uBAAuB,EAAE,OAAO,GAAG,cAAc,GAAG,kBAAkB,CAAC,CAAC;CACzF,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC;CACzD,CAAC;AAEF,eAAO,MAAM,aAAa,4BAA6B,kBAAkB,4CA0ExE,CAAC"}
@@ -1,6 +0,0 @@
1
- import '@dxos-theme';
2
- import { type Meta } from '@storybook/react';
3
- declare const meta: Meta;
4
- export default meta;
5
- export declare const Default: {};
6
- //# sourceMappingURL=ObjectCreator.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ObjectCreator.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/DebugSpace/ObjectCreator.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,aAAa,CAAC;AAErB,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAgC7C,QAAA,MAAM,IAAI,EAAE,IAQX,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,eAAO,MAAM,OAAO,IAAK,CAAC"}
@@ -1,3 +0,0 @@
1
- import { DebugSpace } from './DebugSpace';
2
- export default DebugSpace;
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/DebugSpace/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,eAAe,UAAU,CAAC"}
@@ -1,46 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import '@dxos-theme';
6
-
7
- import { type Meta } from '@storybook/react';
8
- import React from 'react';
9
-
10
- import { createSpaceObjectGenerator } from '@dxos/echo-generator';
11
- import { useSpaces } from '@dxos/react-client/echo';
12
- import { withClientProvider } from '@dxos/react-client/testing';
13
- import { useAsyncEffect } from '@dxos/react-hooks';
14
- import { render, withLayout, withTheme } from '@dxos/storybook-utils';
15
-
16
- import { DebugSpace } from './DebugSpace';
17
-
18
- const DefaultStory = () => {
19
- const [space] = useSpaces();
20
- useAsyncEffect(async () => {
21
- if (space) {
22
- const generator = createSpaceObjectGenerator(space);
23
- await generator.addSchemas();
24
- }
25
- }, [space]);
26
-
27
- if (!space) {
28
- return null;
29
- }
30
-
31
- return <DebugSpace space={space} />;
32
- };
33
-
34
- const meta: Meta = {
35
- title: 'plugins/plugin-debug/DebugSpace',
36
- component: DebugSpace,
37
- render: render(DefaultStory),
38
- decorators: [withClientProvider({ createSpace: true }), withLayout({ tooltips: true }), withTheme],
39
- parameters: {
40
- layout: 'fullscreen',
41
- },
42
- };
43
-
44
- export default meta;
45
-
46
- export const Default = {};
@@ -1,183 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import React, { type FC, useContext, useMemo, useState } from 'react';
6
-
7
- import { createSpaceObjectGenerator } from '@dxos/echo-generator';
8
- import { type ReactiveObject } from '@dxos/live-object';
9
- import { DocumentType } from '@dxos/plugin-markdown/types';
10
- import { Invitation } from '@dxos/protocols/proto/dxos/client/services';
11
- import { faker } from '@dxos/random';
12
- import { useClient } from '@dxos/react-client';
13
- import { Filter, type Space, useSpaceInvitation } from '@dxos/react-client/echo';
14
- import { InvitationEncoder } from '@dxos/react-client/invitations';
15
- import { useAsyncEffect } from '@dxos/react-hooks';
16
- import { Icon, IconButton, Input, type IconProps, type TextInputProps, Toolbar, useFileDownload } from '@dxos/react-ui';
17
- import { safeParseInt } from '@dxos/util';
18
-
19
- import { ObjectCreator } from './ObjectCreator';
20
- import { DebugContext } from '../../types';
21
- import { Container } from '../Container';
22
-
23
- const DEFAULT_COUNT = 100;
24
- const DEFAULT_PERIOD = 500;
25
- const DEFAULT_JITTER = 50;
26
-
27
- const useRefresh = (): [any, () => void] => {
28
- const [update, setUpdate] = useState({});
29
- return [update, () => setUpdate({})];
30
- };
31
-
32
- const CustomInput = ({ icon, ...props }: Pick<IconProps, 'icon'> & TextInputProps) => {
33
- return (
34
- <div role='none' className='relative'>
35
- <Input.Root>
36
- <Input.TextInput classNames='w-[100px] text-right pie-[22px]' size={5} {...props} />
37
- </Input.Root>
38
- <Icon icon={icon} size={3} classNames='absolute inline-end-1 block-start-1 mt-[6px]' />
39
- </div>
40
- );
41
- };
42
-
43
- export const DebugSpace: FC<{
44
- space: Space;
45
- onAddObjects?: (objects: ReactiveObject<any>[]) => void;
46
- }> = ({ space, onAddObjects }) => {
47
- const { connect } = useSpaceInvitation(space?.key);
48
- const client = useClient();
49
- const [data, setData] = useState<any>({});
50
-
51
- const [update, handleUpdate] = useRefresh();
52
- useAsyncEffect(
53
- async (isMounted) => {
54
- const data = await client.diagnostics({ truncate: true });
55
- if (isMounted()) {
56
- setData(
57
- data?.diagnostics?.spaces?.find(({ key }: any) => {
58
- return space.key.toHex().startsWith(key);
59
- }),
60
- );
61
- }
62
- },
63
- [space, update],
64
- );
65
-
66
- const download = useFileDownload();
67
- const handleDownload = async () => {
68
- download(
69
- new Blob([JSON.stringify(data, undefined, 2)], { type: 'text/plain' }),
70
- `${new Date().toISOString().replace(/\W/g, '-')}.json`,
71
- );
72
- };
73
-
74
- const [mutationCount, setMutationCount] = useState(String(DEFAULT_COUNT));
75
- const [mutationInterval, setMutationInterval] = useState(String(DEFAULT_PERIOD));
76
- const [mutationJitter, setMutationJitter] = useState(String(DEFAULT_JITTER));
77
-
78
- const generator = useMemo(() => createSpaceObjectGenerator(space), [space]);
79
-
80
- // TODO(burdon): Note: this is shared across all spaces!
81
- const { running, start, stop } = useContext(DebugContext);
82
- const handleToggleRunning = () => {
83
- if (running) {
84
- stop();
85
- handleUpdate();
86
- } else {
87
- start(
88
- async () => {
89
- const { objects } = await space.db.query(Filter.schema(DocumentType)).run();
90
- if (objects.length) {
91
- const object = faker.helpers.arrayElement(objects);
92
- await generator.mutateObject(object, { count: 10, mutationSize: 10, maxContentLength: 1000 });
93
- }
94
- },
95
- {
96
- count: safeParseInt(mutationCount) ?? 0,
97
- interval: safeParseInt(mutationInterval) ?? 0,
98
- jitter: safeParseInt(mutationJitter) ?? 0,
99
- },
100
- );
101
- }
102
- };
103
-
104
- const handleCreateInvitation = () => {
105
- const invitation = space.share({
106
- type: Invitation.Type.INTERACTIVE,
107
- authMethod: Invitation.AuthMethod.NONE,
108
- multiUse: true,
109
- });
110
-
111
- // TODO(burdon): Refactor.
112
- // TODO(burdon): Unsubscribe?
113
- connect(invitation);
114
- const code = InvitationEncoder.encode(invitation.get());
115
- new URL(window.origin).searchParams.set('spaceInvitationCode', code);
116
- const url = `${window.origin}?spaceInvitationCode=${code}`;
117
- void navigator.clipboard.writeText(url);
118
- };
119
-
120
- const handleCreateEpoch = async () => {
121
- await space.internal.createEpoch();
122
- handleUpdate();
123
- };
124
-
125
- return (
126
- <Container
127
- toolbar={
128
- <Toolbar.Root classNames='p-1'>
129
- <CustomInput
130
- icon='ph--flag--regular'
131
- autoComplete='off'
132
- placeholder='Count'
133
- value={mutationCount}
134
- onChange={({ target: { value } }) => setMutationCount(value)}
135
- />
136
- <CustomInput
137
- icon='ph--timer--regular'
138
- autoComplete='off'
139
- placeholder='Interval'
140
- value={mutationInterval}
141
- onChange={({ target: { value } }) => setMutationInterval(value)}
142
- />
143
- <CustomInput
144
- icon='ph--plus-minus--regular'
145
- autoComplete='off'
146
- placeholder='Jitter'
147
- value={mutationJitter}
148
- onChange={({ target: { value } }) => setMutationJitter(value)}
149
- />
150
-
151
- <IconButton
152
- icon={running ? 'ph--pause-circle--regular' : 'ph--play-circle--regular'}
153
- iconOnly
154
- label='Start/stop'
155
- size={5}
156
- onClick={handleToggleRunning}
157
- />
158
- <IconButton icon='ph--arrow-clockwise--regular' iconOnly label='Refresh' size={5} onClick={handleUpdate} />
159
- <IconButton icon='ph--download-simple--regular' iconOnly label='Download' size={5} onClick={handleDownload} />
160
-
161
- <Toolbar.Separator variant='gap' />
162
- <IconButton
163
- icon='ph--flag-pennant--regular'
164
- iconOnly
165
- label='Create epoch'
166
- size={5}
167
- onClick={handleCreateEpoch}
168
- />
169
- <IconButton
170
- icon='ph--user-circle-plus--regular'
171
- iconOnly
172
- iconClassNames='text-blue-500'
173
- label='Create Invitation'
174
- size={5}
175
- onClick={handleCreateInvitation}
176
- />
177
- </Toolbar.Root>
178
- }
179
- >
180
- <ObjectCreator space={space} onAddObjects={onAddObjects} />
181
- </Container>
182
- );
183
- };
@@ -1,51 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import '@dxos-theme';
6
-
7
- import { type Meta } from '@storybook/react';
8
- import React from 'react';
9
-
10
- import { createSpaceObjectGenerator } from '@dxos/echo-generator';
11
- import { log } from '@dxos/log';
12
- import { useSpaces } from '@dxos/react-client/echo';
13
- import { withClientProvider } from '@dxos/react-client/testing';
14
- import { useAsyncEffect } from '@dxos/react-hooks';
15
- import { render, withLayout, withTheme } from '@dxos/storybook-utils';
16
-
17
- import { ObjectCreator, type ObjectCreatorProps } from './ObjectCreator';
18
-
19
- const DefaultStory = () => {
20
- const [space] = useSpaces();
21
- useAsyncEffect(async () => {
22
- if (space) {
23
- const generator = createSpaceObjectGenerator(space);
24
- await generator.addSchemas();
25
- }
26
- }, [space]);
27
-
28
- const handleCreate: ObjectCreatorProps['onAddObjects'] = (objects) => {
29
- log.info('created', { objects });
30
- };
31
-
32
- if (!space) {
33
- return null;
34
- }
35
-
36
- return <ObjectCreator space={space} onAddObjects={handleCreate} />;
37
- };
38
-
39
- const meta: Meta = {
40
- title: 'plugins/plugin-debug/ObjectCreator',
41
- component: ObjectCreator,
42
- render: render(DefaultStory),
43
- decorators: [withClientProvider({ createSpace: true }), withLayout({ tooltips: true }), withTheme],
44
- parameters: {
45
- layout: 'fullscreen',
46
- },
47
- };
48
-
49
- export default meta;
50
-
51
- export const Default = {};