@dxos/plugin-markdown 0.6.14-staging.934c9de → 0.6.14-staging.9b873ce

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 (64) hide show
  1. package/dist/lib/browser/{MarkdownContainer-HRGXWEA4.mjs → MarkdownContainer-UBYHA366.mjs} +44 -54
  2. package/dist/lib/browser/MarkdownContainer-UBYHA366.mjs.map +7 -0
  3. package/dist/lib/browser/{chunk-DRJ3FPYF.mjs → chunk-4X6YX3KU.mjs} +3 -3
  4. package/dist/lib/browser/chunk-4X6YX3KU.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-VGIHBUXB.mjs → chunk-PV4AWYWK.mjs} +2 -2
  6. package/dist/lib/browser/{chunk-US5O2P3R.mjs → chunk-VZAGHNHU.mjs} +2 -2
  7. package/dist/lib/browser/index.mjs +13 -14
  8. package/dist/lib/browser/index.mjs.map +3 -3
  9. package/dist/lib/browser/meta.json +1 -1
  10. package/dist/lib/browser/meta.mjs +1 -1
  11. package/dist/lib/browser/types/index.mjs +2 -2
  12. package/dist/lib/node/{MarkdownContainer-QZ4YLO7M.cjs → MarkdownContainer-2S666KPG.cjs} +48 -58
  13. package/dist/lib/node/MarkdownContainer-2S666KPG.cjs.map +7 -0
  14. package/dist/lib/node/{chunk-6HPTH2F5.cjs → chunk-2A5P424C.cjs} +7 -7
  15. package/dist/lib/node/{chunk-UJMOZCIA.cjs → chunk-BHPFK7YI.cjs} +6 -6
  16. package/dist/lib/node/{chunk-P7YU53RP.cjs → chunk-PHHIPRJC.cjs} +6 -6
  17. package/dist/lib/node/chunk-PHHIPRJC.cjs.map +7 -0
  18. package/dist/lib/node/index.cjs +57 -58
  19. package/dist/lib/node/index.cjs.map +3 -3
  20. package/dist/lib/node/meta.cjs +3 -3
  21. package/dist/lib/node/meta.cjs.map +1 -1
  22. package/dist/lib/node/meta.json +1 -1
  23. package/dist/lib/node/types/index.cjs +6 -6
  24. package/dist/lib/node/types/index.cjs.map +1 -1
  25. package/dist/lib/node-esm/{MarkdownContainer-FSWQL76V.mjs → MarkdownContainer-IITZD46A.mjs} +44 -54
  26. package/dist/lib/node-esm/MarkdownContainer-IITZD46A.mjs.map +7 -0
  27. package/dist/lib/node-esm/{chunk-NEVN5WR6.mjs → chunk-BABK7FMW.mjs} +3 -3
  28. package/dist/lib/node-esm/chunk-BABK7FMW.mjs.map +7 -0
  29. package/dist/lib/node-esm/{chunk-HPOTHJC4.mjs → chunk-EREAR7QS.mjs} +2 -2
  30. package/dist/lib/node-esm/{chunk-MIDCCMIX.mjs → chunk-OEMU3XY7.mjs} +2 -2
  31. package/dist/lib/node-esm/index.mjs +13 -14
  32. package/dist/lib/node-esm/index.mjs.map +3 -3
  33. package/dist/lib/node-esm/meta.json +1 -1
  34. package/dist/lib/node-esm/meta.mjs +1 -1
  35. package/dist/lib/node-esm/types/index.mjs +2 -2
  36. package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
  37. package/dist/types/src/components/MarkdownContainer.d.ts +5 -5
  38. package/dist/types/src/components/MarkdownContainer.d.ts.map +1 -1
  39. package/dist/types/src/components/MarkdownEditor.d.ts +1 -2
  40. package/dist/types/src/components/MarkdownEditor.d.ts.map +1 -1
  41. package/dist/types/src/components/index.d.ts +1 -1
  42. package/dist/types/src/components/index.d.ts.map +1 -1
  43. package/dist/types/src/extensions.d.ts +1 -1
  44. package/dist/types/src/extensions.d.ts.map +1 -1
  45. package/dist/types/src/meta.d.ts +1 -1
  46. package/package.json +28 -29
  47. package/src/MarkdownPlugin.tsx +1 -4
  48. package/src/components/MarkdownContainer.tsx +29 -24
  49. package/src/components/MarkdownEditor.tsx +19 -41
  50. package/src/components/MarkdownSettings.tsx +15 -15
  51. package/src/extensions.tsx +25 -13
  52. package/src/meta.ts +2 -2
  53. package/dist/lib/browser/MarkdownContainer-HRGXWEA4.mjs.map +0 -7
  54. package/dist/lib/browser/chunk-DRJ3FPYF.mjs.map +0 -7
  55. package/dist/lib/node/MarkdownContainer-QZ4YLO7M.cjs.map +0 -7
  56. package/dist/lib/node/chunk-P7YU53RP.cjs.map +0 -7
  57. package/dist/lib/node-esm/MarkdownContainer-FSWQL76V.mjs.map +0 -7
  58. package/dist/lib/node-esm/chunk-NEVN5WR6.mjs.map +0 -7
  59. /package/dist/lib/browser/{chunk-VGIHBUXB.mjs.map → chunk-PV4AWYWK.mjs.map} +0 -0
  60. /package/dist/lib/browser/{chunk-US5O2P3R.mjs.map → chunk-VZAGHNHU.mjs.map} +0 -0
  61. /package/dist/lib/node/{chunk-6HPTH2F5.cjs.map → chunk-2A5P424C.cjs.map} +0 -0
  62. /package/dist/lib/node/{chunk-UJMOZCIA.cjs.map → chunk-BHPFK7YI.cjs.map} +0 -0
  63. /package/dist/lib/node-esm/{chunk-HPOTHJC4.mjs.map → chunk-EREAR7QS.mjs.map} +0 -0
  64. /package/dist/lib/node-esm/{chunk-MIDCCMIX.mjs.map → chunk-OEMU3XY7.mjs.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/MarkdownContainer.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAKlD,OAAO,EAAkB,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5E,OAAO,EAAE,YAAY,EAAE,KAAK,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAGpE,MAAM,MAAM,sBAAsB,GAAG,IAAI,CACvC,mBAAmB,EACnB,MAAM,GAAG,YAAY,GAAG,oBAAoB,GAAG,UAAU,GAAG,kBAAkB,GAAG,kBAAkB,CACpG,GAAG;IACF,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,YAAY,GAAG,GAAG,CAAC;IAC3B,QAAQ,EAAE,qBAAqB,CAAC;CACjC,CAAC;AAIF,QAAA,MAAM,iBAAiB,6CAA8C,sBAAsB,sBAyB1F,CAAC;AAEF,KAAK,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,EAAE,QAAQ,CAAC,GAAG;IAAE,QAAQ,EAAE,YAAY,CAAA;CAAE,GAAG,IAAI,CACjG,mBAAmB,EACnB,IAAI,GAAG,eAAe,CACvB,CAAC;AAEJ,eAAO,MAAM,cAAc,8FAQxB,mBAAmB,sBAmCrB,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"MarkdownContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/MarkdownContainer.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAKlD,OAAO,EAAkB,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5E,OAAO,EAAE,YAAY,EAAE,KAAK,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAGpE,MAAM,MAAM,sBAAsB,GAAG,IAAI,CACvC,mBAAmB,EACnB,MAAM,GAAG,oBAAoB,GAAG,UAAU,GAAG,kBAAkB,GAAG,kBAAkB,CACrF,GAAG;IACF,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,YAAY,GAAG,GAAG,CAAC;IAC3B,QAAQ,EAAE,qBAAqB,CAAC;CACjC,CAAC;AAIF,QAAA,MAAM,iBAAiB,sGASpB,sBAAsB,sBAgCxB,CAAC;AAEF,KAAK,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,EAAE,QAAQ,GAAG,oBAAoB,GAAG,kBAAkB,CAAC,GAC3G,IAAI,CAAC,mBAAmB,EAAE,IAAI,GAAG,eAAe,GAAG,YAAY,CAAC,GAAG;IACjE,QAAQ,EAAE,YAAY,CAAC;CACxB,CAAC;AAEJ,eAAO,MAAM,cAAc,wDAAyD,mBAAmB,sBAgCtG,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -1,11 +1,10 @@
1
1
  import React from 'react';
2
- import { type FileInfo, type LayoutCoordinate } from '@dxos/app-framework';
2
+ import { type FileInfo } from '@dxos/app-framework';
3
3
  import { type EditorViewMode, type EditorInputMode, type EditorStateStore, type UseTextEditorProps } from '@dxos/react-ui-editor';
4
4
  import { type MarkdownPluginState } from '../types';
5
5
  export type MarkdownEditorProps = {
6
6
  id: string;
7
7
  role?: string;
8
- coordinate?: LayoutCoordinate;
9
8
  inputMode?: EditorInputMode;
10
9
  scrollPastEnd?: boolean;
11
10
  toolbar?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownEditor.d.ts","sourceRoot":"","sources":["../../../../src/components/MarkdownEditor.tsx"],"names":[],"mappings":"AAMA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAE/D,OAAO,EAAE,KAAK,QAAQ,EAAgB,KAAK,gBAAgB,EAAuB,MAAM,qBAAqB,CAAC;AAG9G,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,eAAe,EAEpB,KAAK,gBAAgB,EAErB,KAAK,kBAAkB,EAaxB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAIpD,MAAM,MAAM,mBAAmB,GAAG;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,gBAAgB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IAC9D,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC;CAC9D,GAAG,IAAI,CAAC,kBAAkB,EAAE,cAAc,GAAG,YAAY,CAAC,GACzD,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,CAAC,CAAC;AAE3D;;;;;GAKG;AACH,eAAO,MAAM,cAAc,oJAYxB,mBAAmB,sBA0JrB,CAAC"}
1
+ {"version":3,"file":"MarkdownEditor.d.ts","sourceRoot":"","sources":["../../../../src/components/MarkdownEditor.tsx"],"names":[],"mappings":"AAMA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAE/D,OAAO,EAAE,KAAK,QAAQ,EAAqC,MAAM,qBAAqB,CAAC;AAGvF,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,eAAe,EAEpB,KAAK,gBAAgB,EAErB,KAAK,kBAAkB,EAaxB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAIpD,MAAM,MAAM,mBAAmB,GAAG;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,gBAAgB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IAC9D,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC;CAC9D,GAAG,IAAI,CAAC,kBAAkB,EAAE,cAAc,GAAG,YAAY,CAAC,GACzD,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,CAAC,CAAC;AAE3D;;;;;GAKG;AACH,eAAO,MAAM,cAAc,oJAYxB,mBAAmB,sBAqIrB,CAAC"}
@@ -1,3 +1,3 @@
1
1
  export * from './MarkdownSettings';
2
- export declare const MarkdownContainer: import("react").LazyExoticComponent<({ id, role, object, settings, ...props }: import("./MarkdownContainer").MarkdownContainerProps) => import("react").JSX.Element>;
2
+ export declare const MarkdownContainer: import("react").LazyExoticComponent<({ id, role, object, extensionProviders, settings, viewMode, editorStateStore, onViewModeChange, }: import("./MarkdownContainer").MarkdownContainerProps) => import("react").JSX.Element>;
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAMA,cAAc,oBAAoB,CAAC;AAEnC,eAAO,MAAM,iBAAiB,sKAA4C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAMA,cAAc,oBAAoB,CAAC;AAEnC,eAAO,MAAM,iBAAiB,+NAA4C,CAAC"}
@@ -4,7 +4,7 @@ import { type Query } from '@dxos/react-client/echo';
4
4
  import { type EditorStateStore, type EditorViewMode, type Extension } from '@dxos/react-ui-editor';
5
5
  import { type DocumentType, type MarkdownPluginState, type MarkdownSettingsProps } from './types';
6
6
  type ExtensionsOptions = {
7
- document: DocumentType;
7
+ document?: DocumentType;
8
8
  dispatch?: IntentDispatcher;
9
9
  query?: Query<DocumentType>;
10
10
  settings: MarkdownSettingsProps;
@@ -1 +1 @@
1
- {"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../../../src/extensions.tsx"],"names":[],"mappings":"AAIA,OAAc,EAA6B,KAAK,SAAS,EAAW,MAAM,OAAO,CAAC;AAGlF,OAAO,EAAE,KAAK,gBAAgB,EAAyC,MAAM,qBAAqB,CAAC;AAEnG,OAAO,EAAiD,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAGpG,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,SAAS,EAWf,MAAM,uBAAuB,CAAC;AAI/B,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,mBAAmB,EAAE,KAAK,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAGlG,KAAK,iBAAiB,GAAG;IACvB,QAAQ,EAAE,YAAY,CAAC;IACvB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,KAAK,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IAC5B,QAAQ,EAAE,qBAAqB,CAAC;IAChC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,CAAC;AAGF,eAAO,MAAM,aAAa,4EAMvB,iBAAiB,GAAG,IAAI,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,KAAG,SAAS,EA2DjF,CAAC;AA+HF,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,OAAO,QAAQ,CAAC,QAAQ,SAAS,KAAG,CAGxE,CAAC"}
1
+ {"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../../../src/extensions.tsx"],"names":[],"mappings":"AAIA,OAAc,EAA6B,KAAK,SAAS,EAAW,MAAM,OAAO,CAAC;AAGlF,OAAO,EAAE,KAAK,gBAAgB,EAAyC,MAAM,qBAAqB,CAAC;AAEnG,OAAO,EAAiD,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAGpG,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,SAAS,EAWf,MAAM,uBAAuB,CAAC;AAI/B,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,mBAAmB,EAAE,KAAK,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAGlG,KAAK,iBAAiB,GAAG;IACvB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,KAAK,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IAC5B,QAAQ,EAAE,qBAAqB,CAAC;IAChC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,CAAC;AAGF,eAAO,MAAM,aAAa,4EAMvB,iBAAiB,GAAG,IAAI,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,KAAG,SAAS,EAuEjF,CAAC;AA+HF,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,OAAO,QAAQ,CAAC,QAAQ,SAAS,KAAG,CAGxE,CAAC"}
@@ -3,7 +3,7 @@ declare const _default: {
3
3
  id: string;
4
4
  name: string;
5
5
  description: string;
6
- homePage: string;
6
+ source: string;
7
7
  icon: string;
8
8
  };
9
9
  export default _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/plugin-markdown",
3
- "version": "0.6.14-staging.934c9de",
3
+ "version": "0.6.14-staging.9b873ce",
4
4
  "description": "DXOS Surface plugin for interacting with Markdown",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -44,28 +44,27 @@
44
44
  "@codemirror/view": "^6.34.1",
45
45
  "@effect/schema": "^0.75.1",
46
46
  "@preact/signals-core": "^1.6.0",
47
- "@dxos/app-framework": "0.6.14-staging.934c9de",
48
- "@dxos/async": "0.6.14-staging.934c9de",
49
- "@dxos/echo-schema": "0.6.14-staging.934c9de",
50
- "@dxos/invariant": "0.6.14-staging.934c9de",
51
- "@dxos/keys": "0.6.14-staging.934c9de",
52
- "@dxos/local-storage": "0.6.14-staging.934c9de",
53
- "@dxos/log": "0.6.14-staging.934c9de",
54
- "@dxos/plugin-attention": "0.6.14-staging.934c9de",
55
- "@dxos/plugin-client": "0.6.14-staging.934c9de",
56
- "@dxos/plugin-graph": "0.6.14-staging.934c9de",
57
- "@dxos/plugin-theme": "0.6.14-staging.934c9de",
58
- "@dxos/plugin-space": "0.6.14-staging.934c9de",
59
- "@dxos/react-hooks": "0.6.14-staging.934c9de",
60
- "@dxos/react-client": "0.6.14-staging.934c9de",
61
- "@dxos/react-ui-attention": "0.6.14-staging.934c9de",
62
- "@dxos/react-ui-deck": "0.6.14-staging.934c9de",
63
- "@dxos/react-ui-card": "0.6.14-staging.934c9de",
64
- "@dxos/react-ui-data": "0.6.14-staging.934c9de",
65
- "@dxos/react-ui-editor": "0.6.14-staging.934c9de",
66
- "@dxos/react-ui-stack": "0.6.14-staging.934c9de",
67
- "@dxos/react-ui-mosaic": "0.6.14-staging.934c9de",
68
- "@dxos/util": "0.6.14-staging.934c9de"
47
+ "@dxos/echo-schema": "0.6.14-staging.9b873ce",
48
+ "@dxos/invariant": "0.6.14-staging.9b873ce",
49
+ "@dxos/local-storage": "0.6.14-staging.9b873ce",
50
+ "@dxos/keys": "0.6.14-staging.9b873ce",
51
+ "@dxos/app-framework": "0.6.14-staging.9b873ce",
52
+ "@dxos/async": "0.6.14-staging.9b873ce",
53
+ "@dxos/log": "0.6.14-staging.9b873ce",
54
+ "@dxos/plugin-attention": "0.6.14-staging.9b873ce",
55
+ "@dxos/plugin-space": "0.6.14-staging.9b873ce",
56
+ "@dxos/plugin-graph": "0.6.14-staging.9b873ce",
57
+ "@dxos/plugin-client": "0.6.14-staging.9b873ce",
58
+ "@dxos/react-client": "0.6.14-staging.9b873ce",
59
+ "@dxos/plugin-theme": "0.6.14-staging.9b873ce",
60
+ "@dxos/react-hooks": "0.6.14-staging.9b873ce",
61
+ "@dxos/react-ui-attention": "0.6.14-staging.9b873ce",
62
+ "@dxos/react-ui-data": "0.6.14-staging.9b873ce",
63
+ "@dxos/react-ui-editor": "0.6.14-staging.9b873ce",
64
+ "@dxos/react-ui-card": "0.6.14-staging.9b873ce",
65
+ "@dxos/react-ui-mosaic": "0.6.14-staging.9b873ce",
66
+ "@dxos/react-ui-stack": "0.6.14-staging.9b873ce",
67
+ "@dxos/util": "0.6.14-staging.9b873ce"
69
68
  },
70
69
  "devDependencies": {
71
70
  "@phosphor-icons/react": "^2.1.5",
@@ -74,17 +73,17 @@
74
73
  "react": "~18.2.0",
75
74
  "react-dom": "~18.2.0",
76
75
  "vite": "5.4.7",
77
- "@dxos/random": "0.6.14-staging.934c9de",
78
- "@dxos/react-ui-theme": "0.6.14-staging.934c9de",
79
- "@dxos/react-ui": "0.6.14-staging.934c9de",
80
- "@dxos/storybook-utils": "0.6.14-staging.934c9de"
76
+ "@dxos/random": "0.6.14-staging.9b873ce",
77
+ "@dxos/react-ui": "0.6.14-staging.9b873ce",
78
+ "@dxos/react-ui-theme": "0.6.14-staging.9b873ce",
79
+ "@dxos/storybook-utils": "0.6.14-staging.9b873ce"
81
80
  },
82
81
  "peerDependencies": {
83
82
  "@phosphor-icons/react": "^2.1.5",
84
83
  "react": "~18.2.0",
85
84
  "react-dom": "~18.2.0",
86
- "@dxos/react-ui-theme": "0.6.14-staging.934c9de",
87
- "@dxos/react-ui": "0.6.14-staging.934c9de"
85
+ "@dxos/react-ui-theme": "0.6.14-staging.9b873ce",
86
+ "@dxos/react-ui": "0.6.14-staging.9b873ce"
88
87
  },
89
88
  "publishConfig": {
90
89
  "access": "public"
@@ -9,7 +9,6 @@ import {
9
9
  parseIntentPlugin,
10
10
  resolvePlugin,
11
11
  LayoutAction,
12
- type LayoutCoordinate,
13
12
  NavigationAction,
14
13
  type PluginDefinition,
15
14
  } from '@dxos/app-framework';
@@ -245,8 +244,7 @@ export const MarkdownPlugin = (): PluginDefinition<MarkdownPluginProvides> => {
245
244
  switch (role) {
246
245
  case 'section':
247
246
  case 'article': {
248
- // TODO(burdon): Normalize types (from FilesPlugin).
249
- const doc = getDoc(data.active) ?? getDoc(data.object);
247
+ const doc = getDoc(data.object);
250
248
  const { id, object } = isEditorModel(data.object)
251
249
  ? { id: data.object.id, object: data.object }
252
250
  : doc
@@ -262,7 +260,6 @@ export const MarkdownPlugin = (): PluginDefinition<MarkdownPluginProvides> => {
262
260
  id={id}
263
261
  object={object}
264
262
  role={role}
265
- coordinate={data.coordinate as LayoutCoordinate}
266
263
  settings={settings.values}
267
264
  extensionProviders={state.values.extensionProviders}
268
265
  viewMode={getViewMode(id)}
@@ -14,7 +14,7 @@ import { getFallbackName } from '../util';
14
14
 
15
15
  export type MarkdownContainerProps = Pick<
16
16
  MarkdownEditorProps,
17
- 'role' | 'coordinate' | 'extensionProviders' | 'viewMode' | 'editorStateStore' | 'onViewModeChange'
17
+ 'role' | 'extensionProviders' | 'viewMode' | 'editorStateStore' | 'onViewModeChange'
18
18
  > & {
19
19
  id: string;
20
20
  object: DocumentType | any;
@@ -23,17 +23,30 @@ export type MarkdownContainerProps = Pick<
23
23
 
24
24
  // TODO(burdon): Move toolbar here.
25
25
  // TODO(burdon): Factor out difference for ECHO and non-ECHO objects; i.e., single component.
26
- const MarkdownContainer = ({ id, role, object, settings, ...props }: MarkdownContainerProps) => {
26
+ const MarkdownContainer = ({
27
+ id,
28
+ role,
29
+ object,
30
+ extensionProviders,
31
+ settings,
32
+ viewMode,
33
+ editorStateStore,
34
+ onViewModeChange,
35
+ }: MarkdownContainerProps) => {
27
36
  const scrollPastEnd = role === 'article';
28
- if (object instanceof DocumentType) {
37
+ const doc = object instanceof DocumentType ? object : undefined;
38
+ const extensions = useExtensions({ extensionProviders, document: doc, settings, viewMode, editorStateStore });
39
+
40
+ if (doc) {
29
41
  return (
30
42
  <DocumentEditor
31
43
  id={fullyQualifiedId(object)}
32
44
  role={role}
33
- document={object}
45
+ document={doc}
46
+ extensions={extensions}
34
47
  settings={settings}
35
48
  scrollPastEnd={scrollPastEnd}
36
- {...props}
49
+ onViewModeChange={onViewModeChange}
37
50
  />
38
51
  );
39
52
  } else {
@@ -42,31 +55,24 @@ const MarkdownContainer = ({ id, role, object, settings, ...props }: MarkdownCon
42
55
  id={id}
43
56
  role={role}
44
57
  initialValue={object.text}
58
+ extensions={extensions}
59
+ viewMode={viewMode}
45
60
  toolbar={settings.toolbar}
61
+ inputMode={settings.editorInputMode}
46
62
  scrollPastEnd={scrollPastEnd}
47
- {...props}
63
+ onViewModeChange={onViewModeChange}
48
64
  />
49
65
  );
50
66
  }
51
67
  };
52
68
 
53
- type DocumentEditorProps = Omit<MarkdownContainerProps, 'object'> & { document: DocumentType } & Pick<
54
- MarkdownEditorProps,
55
- 'id' | 'scrollPastEnd'
56
- >;
69
+ type DocumentEditorProps = Omit<MarkdownContainerProps, 'object' | 'extensionProviders' | 'editorStateStore'> &
70
+ Pick<MarkdownEditorProps, 'id' | 'scrollPastEnd' | 'extensions'> & {
71
+ document: DocumentType;
72
+ };
57
73
 
58
- export const DocumentEditor = ({
59
- id,
60
- document: doc,
61
- extensionProviders,
62
- settings,
63
- viewMode,
64
- editorStateStore,
65
- ...props
66
- }: DocumentEditorProps) => {
74
+ export const DocumentEditor = ({ id, document: doc, settings, viewMode, ...props }: DocumentEditorProps) => {
67
75
  const space = getSpace(doc);
68
- const initialValue = useMemo(() => doc.content?.content, [doc.content]);
69
- const extensions = useExtensions({ extensionProviders, document: doc, settings, viewMode, editorStateStore });
70
76
 
71
77
  // Migrate gradually to `fallbackName`.
72
78
  useEffect(() => {
@@ -89,11 +95,10 @@ export const DocumentEditor = ({
89
95
  return (
90
96
  <MarkdownEditor
91
97
  id={id}
92
- initialValue={initialValue}
93
- extensions={extensions}
98
+ initialValue={doc.content?.content}
99
+ viewMode={viewMode}
94
100
  toolbar={settings.toolbar}
95
101
  inputMode={settings.editorInputMode}
96
- viewMode={viewMode}
97
102
  onFileUpload={handleFileUpload}
98
103
  {...props}
99
104
  />
@@ -6,9 +6,9 @@ import { openSearchPanel } from '@codemirror/search';
6
6
  import { type EditorView } from '@codemirror/view';
7
7
  import React, { useMemo, useEffect, useCallback } from 'react';
8
8
 
9
- import { type FileInfo, LayoutAction, type LayoutCoordinate, useIntentDispatcher } from '@dxos/app-framework';
9
+ import { type FileInfo, LayoutAction, useIntentDispatcher } from '@dxos/app-framework';
10
10
  import { useThemeContext, useTranslation } from '@dxos/react-ui';
11
- import { useAttendableAttributes, useAttention } from '@dxos/react-ui-attention';
11
+ import { useAttention } from '@dxos/react-ui-attention';
12
12
  import {
13
13
  type Action,
14
14
  type DNDOptions,
@@ -31,8 +31,8 @@ import {
31
31
  useFormattingState,
32
32
  useTextEditor,
33
33
  } from '@dxos/react-ui-editor';
34
- import { sectionToolbarLayout } from '@dxos/react-ui-stack';
35
- import { textBlockWidth, focusRing, mx } from '@dxos/react-ui-theme';
34
+ import { StackItem } from '@dxos/react-ui-stack';
35
+ import { mx, textBlockWidth } from '@dxos/react-ui-theme';
36
36
  import { isNotFalsy, nonNullable } from '@dxos/util';
37
37
 
38
38
  import { useSelectCurrentThread } from '../hooks';
@@ -44,7 +44,6 @@ const DEFAULT_VIEW_MODE: EditorViewMode = 'preview';
44
44
  export type MarkdownEditorProps = {
45
45
  id: string;
46
46
  role?: string;
47
- coordinate?: LayoutCoordinate;
48
47
  inputMode?: EditorInputMode;
49
48
  scrollPastEnd?: boolean;
50
49
  toolbar?: boolean;
@@ -78,7 +77,6 @@ export const MarkdownEditor = ({
78
77
  const { themeMode } = useThemeContext();
79
78
  const dispatch = useIntentDispatcher();
80
79
  const [formattingState, formattingObserver] = useFormattingState();
81
- const attendableAttributes = useAttendableAttributes(id);
82
80
  const { hasAttention } = useAttention(id);
83
81
 
84
82
  // Restore last selection and scroll point.
@@ -146,7 +144,7 @@ export const MarkdownEditor = ({
146
144
  moveToEndOfLine: true,
147
145
  }),
148
146
  }),
149
- [id, initialValue, formattingObserver, viewMode, themeMode, extensions, providerExtensions],
147
+ [id, formattingObserver, viewMode, themeMode, extensions, providerExtensions],
150
148
  );
151
149
 
152
150
  useTest(editorView);
@@ -172,30 +170,17 @@ export const MarkdownEditor = ({
172
170
  };
173
171
 
174
172
  return (
175
- <div
176
- role='none'
177
- {...(role === 'section'
178
- ? { className: 'flex flex-col' }
179
- : {
180
- className: 'contents',
181
- // TODO(wittjosiah): Factor out to `useAttendableAttributes`?
182
- ...(hasAttention && { 'aria-current': 'location' }),
183
- ...attendableAttributes,
184
- })}
185
- >
173
+ <StackItem.Content toolbar={toolbar} contentSize={role === 'article' ? 'cover' : 'intrinsic'}>
186
174
  {toolbar && (
187
- <div role='none' className='flex shrink-0 justify-center overflow-x-auto attention-surface'>
175
+ <div
176
+ role='none'
177
+ className={mx(
178
+ 'attention-surface is-full',
179
+ role === 'section' && 'sticky block-start-0 z-[1] border-be !border-separator -mbe-px min-is-0',
180
+ )}
181
+ >
188
182
  <Toolbar.Root
189
- classNames={
190
- role === 'section'
191
- ? [
192
- textBlockWidth,
193
- 'z-[2] group-focus-within/section:visible',
194
- !hasAttention && 'invisible',
195
- sectionToolbarLayout,
196
- ]
197
- : [textBlockWidth]
198
- }
183
+ classNames={[textBlockWidth, !hasAttention && 'opacity-20']}
199
184
  state={formattingState && { ...formattingState, ...commentsState }}
200
185
  onAction={handleAction}
201
186
  >
@@ -212,20 +197,13 @@ export const MarkdownEditor = ({
212
197
  ref={parentRef}
213
198
  data-testid='composer.markdownRoot'
214
199
  data-toolbar={toolbar ? 'enabled' : 'disabled'}
215
- className={
216
- role === 'section'
217
- ? mx('flex flex-col flex-1 min-bs-[12rem]', focusRing)
218
- : mx(
219
- 'flex is-full bs-full overflow-hidden',
220
- focusRing,
221
- 'focus-visible:ring-inset attention-surface',
222
- 'p-0.5', // TODO(burdon): Handle padding for focusRing consistently.
223
- 'data-[toolbar=disabled]:pbs-2 data-[toolbar=disabled]:row-span-2',
224
- )
225
- }
200
+ className={mx(
201
+ 'ch-focus-ring-inset data-[toolbar=disabled]:pbs-2 attention-surface',
202
+ role === 'article' ? 'min-bs-0' : '[&_.cm-scroller]:overflow-hidden [&_.cm-scroller]:min-bs-24',
203
+ )}
226
204
  {...focusAttributes}
227
205
  />
228
- </div>
206
+ </StackItem.Content>
229
207
  );
230
208
  };
231
209
 
@@ -5,7 +5,7 @@
5
5
  import React from 'react';
6
6
 
7
7
  import { Input, Select, useTranslation } from '@dxos/react-ui';
8
- import { FormInput } from '@dxos/react-ui-data';
8
+ import { DeprecatedFormInput } from '@dxos/react-ui-data';
9
9
  import { type EditorInputMode, EditorInputModes, type EditorViewMode, EditorViewModes } from '@dxos/react-ui-editor';
10
10
 
11
11
  import { MARKDOWN_PLUGIN } from '../meta';
@@ -17,7 +17,7 @@ export const MarkdownSettings = ({ settings }: { settings: MarkdownSettingsProps
17
17
  // TODO(wittjosiah): Add skill test confirmation for entering vim mode.
18
18
  return (
19
19
  <>
20
- <FormInput label={t('default view mode label')}>
20
+ <DeprecatedFormInput label={t('default view mode label')}>
21
21
  <Select.Root
22
22
  value={settings.defaultViewMode}
23
23
  onValueChange={(value) => {
@@ -37,9 +37,9 @@ export const MarkdownSettings = ({ settings }: { settings: MarkdownSettingsProps
37
37
  </Select.Content>
38
38
  </Select.Portal>
39
39
  </Select.Root>
40
- </FormInput>
40
+ </DeprecatedFormInput>
41
41
 
42
- <FormInput label={t('editor input mode label')}>
42
+ <DeprecatedFormInput label={t('editor input mode label')}>
43
43
  <Select.Root
44
44
  value={settings.editorInputMode ?? 'default'}
45
45
  onValueChange={(value) => {
@@ -59,31 +59,31 @@ export const MarkdownSettings = ({ settings }: { settings: MarkdownSettingsProps
59
59
  </Select.Content>
60
60
  </Select.Portal>
61
61
  </Select.Root>
62
- </FormInput>
62
+ </DeprecatedFormInput>
63
63
 
64
- <FormInput label={t('settings toolbar label')}>
64
+ <DeprecatedFormInput label={t('settings toolbar label')}>
65
65
  <Input.Switch checked={settings.toolbar} onCheckedChange={(checked) => (settings.toolbar = !!checked)} />
66
- </FormInput>
66
+ </DeprecatedFormInput>
67
67
 
68
- <FormInput label={t('settings numbered headings label')}>
68
+ <DeprecatedFormInput label={t('settings numbered headings label')}>
69
69
  <Input.Switch
70
70
  checked={settings.numberedHeadings}
71
71
  onCheckedChange={(checked) => (settings.numberedHeadings = !!checked)}
72
72
  />
73
- </FormInput>
73
+ </DeprecatedFormInput>
74
74
 
75
- <FormInput label={t('settings folding label')}>
75
+ <DeprecatedFormInput label={t('settings folding label')}>
76
76
  <Input.Switch checked={settings.folding} onCheckedChange={(checked) => (settings.folding = !!checked)} />
77
- </FormInput>
77
+ </DeprecatedFormInput>
78
78
 
79
- <FormInput label={t('settings experimental label')}>
79
+ <DeprecatedFormInput label={t('settings experimental label')}>
80
80
  <Input.Switch
81
81
  checked={settings.experimental}
82
82
  onCheckedChange={(checked) => (settings.experimental = !!checked)}
83
83
  />
84
- </FormInput>
84
+ </DeprecatedFormInput>
85
85
 
86
- <FormInput
86
+ <DeprecatedFormInput
87
87
  label={t('settings debug label')}
88
88
  secondary={
89
89
  settings.debug ? (
@@ -99,7 +99,7 @@ export const MarkdownSettings = ({ settings }: { settings: MarkdownSettingsProps
99
99
  }
100
100
  >
101
101
  <Input.Switch checked={settings.debug} onCheckedChange={(checked) => (settings.debug = !!checked)} />
102
- </FormInput>
102
+ </DeprecatedFormInput>
103
103
  </>
104
104
  );
105
105
  };
@@ -33,7 +33,7 @@ import { type DocumentType, type MarkdownPluginState, type MarkdownSettingsProps
33
33
  import { setFallbackName } from './util';
34
34
 
35
35
  type ExtensionsOptions = {
36
- document: DocumentType;
36
+ document?: DocumentType;
37
37
  dispatch?: IntentDispatcher;
38
38
  query?: Query<DocumentType>;
39
39
  settings: MarkdownSettingsProps;
@@ -66,7 +66,17 @@ export const useExtensions = ({
66
66
  dispatch,
67
67
  // query,
68
68
  }),
69
- [document, viewMode, dispatch, settings, settings.folding, settings.numberedHeadings],
69
+ [
70
+ document,
71
+ viewMode,
72
+ dispatch,
73
+ settings,
74
+ settings.editorInputMode,
75
+ settings.folding,
76
+ settings.numberedHeadings,
77
+ settings.debug,
78
+ settings.typewriter,
79
+ ],
70
80
  );
71
81
 
72
82
  //
@@ -82,7 +92,7 @@ export const useExtensions = ({
82
92
 
83
93
  return acc;
84
94
  }, []),
85
- [extensionProviders],
95
+ [extensionProviders, document],
86
96
  );
87
97
 
88
98
  //
@@ -92,20 +102,22 @@ export const useExtensions = ({
92
102
  () =>
93
103
  [
94
104
  // NOTE: Data extensions must be first so that automerge is updated before other extensions compute their state.
95
- createDataExtensions({
96
- id: document.id,
97
- text: document.content && createDocAccessor(document.content, ['content']),
98
- space,
99
- identity,
100
- }),
105
+ document &&
106
+ createDataExtensions({
107
+ id: document.id,
108
+ text: document.content && createDocAccessor(document.content, ['content']),
109
+ space,
110
+ identity,
111
+ }),
101
112
  selectionState(editorStateStore),
102
- listener({
103
- onChange: (text) => setFallbackName(document, text),
104
- }),
113
+ document &&
114
+ listener({
115
+ onChange: (text) => setFallbackName(document, text),
116
+ }),
105
117
  baseExtensions,
106
118
  pluginExtensions,
107
119
  ].filter(isNotFalsy),
108
- [baseExtensions, pluginExtensions, document, document.content, space, identity],
120
+ [baseExtensions, pluginExtensions, document, document?.content, space, identity],
109
121
  );
110
122
  };
111
123
 
package/src/meta.ts CHANGED
@@ -8,8 +8,8 @@ export const MARKDOWN_PLUGIN = 'dxos.org/plugin/markdown';
8
8
 
9
9
  export default {
10
10
  id: MARKDOWN_PLUGIN,
11
- name: 'Markdown Editor',
11
+ name: 'Markdown',
12
12
  description: 'Text editor supporting extended Markdown.',
13
- homePage: 'https://github.com/dxos/dxos/tree/main/packages/apps/plugins/plugin-markdown',
13
+ source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-markdown',
14
14
  icon: 'ph--text-aa--regular',
15
15
  } satisfies PluginMeta;