@dxos/plugin-markdown 0.8.2 → 0.8.3-main.7f5a14c

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 (143) hide show
  1. package/dist/lib/browser/{MarkdownContainer-5IEINNQB.mjs → MarkdownContainer-3KTC7Q4C.mjs} +132 -18
  2. package/dist/lib/browser/MarkdownContainer-3KTC7Q4C.mjs.map +7 -0
  3. package/dist/lib/browser/{MarkdownPreview-YW5CS3ID.mjs → MarkdownPreview-F4PYFW5L.mjs} +15 -22
  4. package/dist/lib/browser/MarkdownPreview-F4PYFW5L.mjs.map +7 -0
  5. package/dist/lib/browser/{anchor-sort-VS4OZVPP.mjs → anchor-sort-BMAN2ABT.mjs} +4 -4
  6. package/dist/lib/browser/anchor-sort-BMAN2ABT.mjs.map +7 -0
  7. package/dist/lib/browser/{app-graph-serializer-V6RLEHVY.mjs → app-graph-serializer-FLQI6GFL.mjs} +3 -3
  8. package/dist/lib/browser/{artifact-definition-5NAODQLG.mjs → artifact-definition-FQ2R6KPT.mjs} +6 -6
  9. package/dist/lib/browser/artifact-definition-FQ2R6KPT.mjs.map +7 -0
  10. package/dist/lib/browser/{chunk-C5RABVIX.mjs → chunk-CX5GYZYO.mjs} +2 -2
  11. package/dist/lib/browser/{chunk-ACAID3XF.mjs → chunk-LCMXUTQB.mjs} +7 -7
  12. package/dist/lib/browser/{chunk-77NGW7EO.mjs → chunk-LXSRQPEP.mjs} +9 -9
  13. package/dist/lib/browser/chunk-LXSRQPEP.mjs.map +7 -0
  14. package/dist/lib/browser/{chunk-ECSM56YC.mjs → chunk-N2D26K6W.mjs} +4 -5
  15. package/dist/lib/browser/chunk-N2D26K6W.mjs.map +7 -0
  16. package/dist/lib/browser/index.mjs +7 -8
  17. package/dist/lib/browser/index.mjs.map +3 -3
  18. package/dist/lib/browser/{intent-resolver-4GDYST4Y.mjs → intent-resolver-6ZOABX2J.mjs} +6 -7
  19. package/dist/lib/browser/intent-resolver-6ZOABX2J.mjs.map +7 -0
  20. package/dist/lib/browser/meta.json +1 -1
  21. package/dist/lib/browser/{react-surface-QE4SKXBT.mjs → react-surface-RJQKYJJQ.mjs} +8 -8
  22. package/dist/lib/browser/react-surface-RJQKYJJQ.mjs.map +7 -0
  23. package/dist/lib/browser/{settings-W5CK4PXP.mjs → settings-PLH54VC7.mjs} +4 -4
  24. package/dist/lib/browser/settings-PLH54VC7.mjs.map +7 -0
  25. package/dist/lib/browser/types/index.mjs +1 -1
  26. package/dist/lib/node/{MarkdownContainer-LSNNPNRB.cjs → MarkdownContainer-NG4H6AZJ.cjs} +181 -67
  27. package/dist/lib/node/MarkdownContainer-NG4H6AZJ.cjs.map +7 -0
  28. package/dist/lib/node/{MarkdownPreview-G34HSQEB.cjs → MarkdownPreview-GCJJCXY6.cjs} +24 -31
  29. package/dist/lib/node/MarkdownPreview-GCJJCXY6.cjs.map +7 -0
  30. package/dist/lib/node/{anchor-sort-NHVF23EU.cjs → anchor-sort-V3T4SFFI.cjs} +12 -12
  31. package/dist/lib/node/anchor-sort-V3T4SFFI.cjs.map +7 -0
  32. package/dist/lib/node/{app-graph-serializer-CLALIYN3.cjs → app-graph-serializer-BZPM7HHJ.cjs} +9 -9
  33. package/dist/lib/node/{artifact-definition-VEAHK7BX.cjs → artifact-definition-U27MH5SC.cjs} +16 -16
  34. package/dist/lib/node/artifact-definition-U27MH5SC.cjs.map +7 -0
  35. package/dist/lib/node/{chunk-RQS4KBMG.cjs → chunk-3HHV4MM6.cjs} +6 -7
  36. package/dist/lib/node/chunk-3HHV4MM6.cjs.map +7 -0
  37. package/dist/lib/node/{chunk-C4HR7UXE.cjs → chunk-4DYNEQG3.cjs} +10 -10
  38. package/dist/lib/node/{chunk-G7RBJX22.cjs → chunk-CJLYFGPI.cjs} +12 -12
  39. package/dist/lib/node/chunk-CJLYFGPI.cjs.map +7 -0
  40. package/dist/lib/node/{chunk-ZDTL47I7.cjs → chunk-SYEFGLXN.cjs} +6 -6
  41. package/dist/lib/node/index.cjs +26 -27
  42. package/dist/lib/node/index.cjs.map +3 -3
  43. package/dist/lib/node/{intent-resolver-AUZVK3NZ.cjs → intent-resolver-OEFLRNEJ.cjs} +14 -15
  44. package/dist/lib/node/intent-resolver-OEFLRNEJ.cjs.map +7 -0
  45. package/dist/lib/node/meta.json +1 -1
  46. package/dist/lib/node/{react-surface-WJZTEBYO.cjs → react-surface-5RKEWAXS.cjs} +15 -15
  47. package/dist/lib/node/react-surface-5RKEWAXS.cjs.map +7 -0
  48. package/dist/lib/node/{settings-IRKU3WPM.cjs → settings-E3NUTXJ4.cjs} +7 -7
  49. package/dist/lib/node/settings-E3NUTXJ4.cjs.map +7 -0
  50. package/dist/lib/node/types/index.cjs +7 -7
  51. package/dist/lib/node/types/index.cjs.map +1 -1
  52. package/dist/lib/node-esm/{MarkdownContainer-UZSLXMWO.mjs → MarkdownContainer-DZPXCA6J.mjs} +132 -18
  53. package/dist/lib/node-esm/MarkdownContainer-DZPXCA6J.mjs.map +7 -0
  54. package/dist/lib/node-esm/{MarkdownPreview-TCV7BI32.mjs → MarkdownPreview-KFDRV4GC.mjs} +15 -22
  55. package/dist/lib/node-esm/MarkdownPreview-KFDRV4GC.mjs.map +7 -0
  56. package/dist/lib/node-esm/{anchor-sort-G2HLCYFK.mjs → anchor-sort-BXL7BE67.mjs} +4 -4
  57. package/dist/lib/node-esm/anchor-sort-BXL7BE67.mjs.map +7 -0
  58. package/dist/lib/node-esm/{app-graph-serializer-C3RNTQGM.mjs → app-graph-serializer-EBH54X6Z.mjs} +3 -3
  59. package/dist/lib/node-esm/{artifact-definition-7TIJW2CO.mjs → artifact-definition-NQOHB6S5.mjs} +6 -6
  60. package/dist/lib/node-esm/artifact-definition-NQOHB6S5.mjs.map +7 -0
  61. package/dist/lib/node-esm/{chunk-6RPARLIK.mjs → chunk-K26TX5V4.mjs} +9 -9
  62. package/dist/lib/node-esm/chunk-K26TX5V4.mjs.map +7 -0
  63. package/dist/lib/node-esm/{chunk-TCFJNUAE.mjs → chunk-Q7WUBLL3.mjs} +2 -2
  64. package/dist/lib/node-esm/{chunk-NCMPVEXO.mjs → chunk-T2Y2BT53.mjs} +4 -5
  65. package/dist/lib/node-esm/chunk-T2Y2BT53.mjs.map +7 -0
  66. package/dist/lib/node-esm/{chunk-EIUTPXGL.mjs → chunk-WANCCPU7.mjs} +7 -7
  67. package/dist/lib/node-esm/index.mjs +7 -8
  68. package/dist/lib/node-esm/index.mjs.map +3 -3
  69. package/dist/lib/node-esm/{intent-resolver-FTNXUNI2.mjs → intent-resolver-CLMSVF2K.mjs} +6 -7
  70. package/dist/lib/node-esm/intent-resolver-CLMSVF2K.mjs.map +7 -0
  71. package/dist/lib/node-esm/meta.json +1 -1
  72. package/dist/lib/node-esm/{react-surface-XNM3YDFB.mjs → react-surface-Z3DX37JV.mjs} +8 -8
  73. package/dist/lib/node-esm/react-surface-Z3DX37JV.mjs.map +7 -0
  74. package/dist/lib/node-esm/{settings-MK7D7LHQ.mjs → settings-SIY33P3F.mjs} +4 -4
  75. package/dist/lib/node-esm/settings-SIY33P3F.mjs.map +7 -0
  76. package/dist/lib/node-esm/types/index.mjs +1 -1
  77. package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
  78. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  79. package/dist/types/src/components/MarkdownContainer.d.ts +1 -1
  80. package/dist/types/src/components/MarkdownContainer.d.ts.map +1 -1
  81. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts +4 -2
  82. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
  83. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.d.ts +1 -1
  84. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.d.ts.map +1 -1
  85. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.stories.d.ts +2 -6
  86. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.stories.d.ts.map +1 -1
  87. package/dist/types/src/components/Suggestions.stories.d.ts.map +1 -1
  88. package/dist/types/src/components/index.d.ts +1 -1
  89. package/dist/types/src/components/index.d.ts.map +1 -1
  90. package/dist/types/src/types/schema.d.ts.map +1 -1
  91. package/dist/types/src/util.d.ts.map +1 -1
  92. package/package.json +38 -39
  93. package/src/MarkdownPlugin.tsx +3 -5
  94. package/src/capabilities/anchor-sort.ts +2 -2
  95. package/src/capabilities/artifact-definition.ts +3 -3
  96. package/src/capabilities/intent-resolver.ts +4 -5
  97. package/src/capabilities/react-surface.tsx +4 -4
  98. package/src/capabilities/settings.ts +2 -2
  99. package/src/components/MarkdownContainer.tsx +61 -7
  100. package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +3 -3
  101. package/src/components/MarkdownEditor/MarkdownEditor.tsx +196 -144
  102. package/src/components/MarkdownPreview/MarkdownPreview.stories.tsx +8 -7
  103. package/src/components/MarkdownPreview/MarkdownPreview.tsx +14 -28
  104. package/src/components/Suggestions.stories.tsx +8 -9
  105. package/src/components/Toolbar.stories.tsx +3 -3
  106. package/src/types/schema.ts +2 -3
  107. package/src/util.tsx +5 -7
  108. package/dist/lib/browser/MarkdownContainer-5IEINNQB.mjs.map +0 -7
  109. package/dist/lib/browser/MarkdownPreview-YW5CS3ID.mjs.map +0 -7
  110. package/dist/lib/browser/anchor-sort-VS4OZVPP.mjs.map +0 -7
  111. package/dist/lib/browser/artifact-definition-5NAODQLG.mjs.map +0 -7
  112. package/dist/lib/browser/chunk-77NGW7EO.mjs.map +0 -7
  113. package/dist/lib/browser/chunk-ECSM56YC.mjs.map +0 -7
  114. package/dist/lib/browser/intent-resolver-4GDYST4Y.mjs.map +0 -7
  115. package/dist/lib/browser/react-surface-QE4SKXBT.mjs.map +0 -7
  116. package/dist/lib/browser/settings-W5CK4PXP.mjs.map +0 -7
  117. package/dist/lib/node/MarkdownContainer-LSNNPNRB.cjs.map +0 -7
  118. package/dist/lib/node/MarkdownPreview-G34HSQEB.cjs.map +0 -7
  119. package/dist/lib/node/anchor-sort-NHVF23EU.cjs.map +0 -7
  120. package/dist/lib/node/artifact-definition-VEAHK7BX.cjs.map +0 -7
  121. package/dist/lib/node/chunk-G7RBJX22.cjs.map +0 -7
  122. package/dist/lib/node/chunk-RQS4KBMG.cjs.map +0 -7
  123. package/dist/lib/node/intent-resolver-AUZVK3NZ.cjs.map +0 -7
  124. package/dist/lib/node/react-surface-WJZTEBYO.cjs.map +0 -7
  125. package/dist/lib/node/settings-IRKU3WPM.cjs.map +0 -7
  126. package/dist/lib/node-esm/MarkdownContainer-UZSLXMWO.mjs.map +0 -7
  127. package/dist/lib/node-esm/MarkdownPreview-TCV7BI32.mjs.map +0 -7
  128. package/dist/lib/node-esm/anchor-sort-G2HLCYFK.mjs.map +0 -7
  129. package/dist/lib/node-esm/artifact-definition-7TIJW2CO.mjs.map +0 -7
  130. package/dist/lib/node-esm/chunk-6RPARLIK.mjs.map +0 -7
  131. package/dist/lib/node-esm/chunk-NCMPVEXO.mjs.map +0 -7
  132. package/dist/lib/node-esm/intent-resolver-FTNXUNI2.mjs.map +0 -7
  133. package/dist/lib/node-esm/react-surface-XNM3YDFB.mjs.map +0 -7
  134. package/dist/lib/node-esm/settings-MK7D7LHQ.mjs.map +0 -7
  135. /package/dist/lib/browser/{app-graph-serializer-V6RLEHVY.mjs.map → app-graph-serializer-FLQI6GFL.mjs.map} +0 -0
  136. /package/dist/lib/browser/{chunk-C5RABVIX.mjs.map → chunk-CX5GYZYO.mjs.map} +0 -0
  137. /package/dist/lib/browser/{chunk-ACAID3XF.mjs.map → chunk-LCMXUTQB.mjs.map} +0 -0
  138. /package/dist/lib/node/{app-graph-serializer-CLALIYN3.cjs.map → app-graph-serializer-BZPM7HHJ.cjs.map} +0 -0
  139. /package/dist/lib/node/{chunk-C4HR7UXE.cjs.map → chunk-4DYNEQG3.cjs.map} +0 -0
  140. /package/dist/lib/node/{chunk-ZDTL47I7.cjs.map → chunk-SYEFGLXN.cjs.map} +0 -0
  141. /package/dist/lib/node-esm/{app-graph-serializer-C3RNTQGM.mjs.map → app-graph-serializer-EBH54X6Z.mjs.map} +0 -0
  142. /package/dist/lib/node-esm/{chunk-TCFJNUAE.mjs.map → chunk-Q7WUBLL3.mjs.map} +0 -0
  143. /package/dist/lib/node-esm/{chunk-EIUTPXGL.mjs.map → chunk-WANCCPU7.mjs.map} +0 -0
@@ -26,40 +26,39 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var MarkdownPreview_G34HSQEB_exports = {};
30
- __export(MarkdownPreview_G34HSQEB_exports, {
29
+ var MarkdownPreview_GCJJCXY6_exports = {};
30
+ __export(MarkdownPreview_GCJJCXY6_exports, {
31
31
  MarkdownPreview: () => MarkdownPreview,
32
32
  default: () => MarkdownPreview_default
33
33
  });
34
- module.exports = __toCommonJS(MarkdownPreview_G34HSQEB_exports);
35
- var import_chunk_G7RBJX22 = require("./chunk-G7RBJX22.cjs");
36
- var import_chunk_RQS4KBMG = require("./chunk-RQS4KBMG.cjs");
34
+ module.exports = __toCommonJS(MarkdownPreview_GCJJCXY6_exports);
35
+ var import_chunk_CJLYFGPI = require("./chunk-CJLYFGPI.cjs");
36
+ var import_chunk_3HHV4MM6 = require("./chunk-3HHV4MM6.cjs");
37
37
  var import_chunk_ZU5OIHCY = require("./chunk-ZU5OIHCY.cjs");
38
38
  var import_tracking = require("@preact-signals/safe-react/tracking");
39
39
  var import_effect = require("effect");
40
40
  var import_react = __toESM(require("react"));
41
41
  var import_app_framework = require("@dxos/app-framework");
42
- var import_echo_schema = require("@dxos/echo-schema");
43
- var import_plugin_preview = require("@dxos/plugin-preview");
44
- var import_echo = require("@dxos/react-client/echo");
42
+ var import_echo = require("@dxos/echo");
43
+ var import_echo2 = require("@dxos/react-client/echo");
45
44
  var import_react_ui = require("@dxos/react-ui");
46
- var import_react_ui_theme = require("@dxos/react-ui-theme");
45
+ var import_react_ui_stack = require("@dxos/react-ui-stack");
47
46
  var import_schema = require("@dxos/schema");
48
47
  var getTitle = (subject, fallback) => {
49
- if ((0, import_echo_schema.isInstanceOf)(import_chunk_RQS4KBMG.DocumentType, subject)) {
50
- return subject.name ?? subject.fallbackName ?? (0, import_chunk_G7RBJX22.getFallbackName)(subject.content?.target?.content ?? fallback);
51
- } else if ((0, import_echo_schema.isInstanceOf)(import_schema.DataType.Text, subject)) {
52
- return (0, import_chunk_G7RBJX22.getFallbackName)(subject.content);
48
+ if (import_echo.Obj.instanceOf(import_chunk_3HHV4MM6.DocumentType, subject)) {
49
+ return subject.name ?? subject.fallbackName ?? (0, import_chunk_CJLYFGPI.getFallbackName)(subject.content?.target?.content ?? fallback);
50
+ } else if (import_echo.Obj.instanceOf(import_schema.DataType.Text, subject)) {
51
+ return (0, import_chunk_CJLYFGPI.getFallbackName)(subject.content);
53
52
  }
54
53
  };
55
54
  var getSnippet = (subject, fallback) => {
56
- if ((0, import_echo_schema.isInstanceOf)(import_chunk_RQS4KBMG.DocumentType, subject)) {
57
- return (0, import_chunk_G7RBJX22.getAbstract)(subject.content?.target?.content ?? fallback);
58
- } else if ((0, import_echo_schema.isInstanceOf)(import_schema.DataType.Text, subject)) {
59
- return (0, import_chunk_G7RBJX22.getAbstract)(subject.content);
55
+ if (import_echo.Obj.instanceOf(import_chunk_3HHV4MM6.DocumentType, subject)) {
56
+ return (0, import_chunk_CJLYFGPI.getAbstract)(subject.content?.target?.content ?? fallback);
57
+ } else if (import_echo.Obj.instanceOf(import_schema.DataType.Text, subject)) {
58
+ return (0, import_chunk_CJLYFGPI.getAbstract)(subject.content);
60
59
  }
61
60
  };
62
- var MarkdownPreview = ({ classNames, subject, role }) => {
61
+ var MarkdownPreview = ({ subject, role }) => {
63
62
  var _effect = (0, import_tracking.useSignals)();
64
63
  try {
65
64
  const { dispatchPromise: dispatch } = (0, import_app_framework.useIntentDispatcher)();
@@ -75,23 +74,17 @@ var MarkdownPreview = ({ classNames, subject, role }) => {
75
74
  }), (0, import_app_framework.chain)(import_app_framework.LayoutAction.Open, {
76
75
  part: "main",
77
76
  subject: [
78
- (0, import_echo.fullyQualifiedId)(subject)
77
+ (0, import_echo2.fullyQualifiedId)(subject)
79
78
  ]
80
79
  }))), [
81
80
  dispatch,
82
81
  subject
83
82
  ]);
84
- return /* @__PURE__ */ import_react.default.createElement("div", {
85
- role: "none",
86
- className: (0, import_react_ui_theme.mx)(role === "popover" ? import_plugin_preview.popoverCard : role === "card--kanban" ? import_plugin_preview.kanbanCardWithoutPoster : import_plugin_preview.defaultCard, classNames)
87
- }, /* @__PURE__ */ import_react.default.createElement("h2", {
88
- className: (0, import_react_ui_theme.mx)(import_plugin_preview.previewTitle, import_plugin_preview.previewProse)
89
- }, getTitle(subject, t("fallback title"))), snippet && /* @__PURE__ */ import_react.default.createElement("p", {
90
- className: (0, import_react_ui_theme.mx)(import_plugin_preview.previewProse, "line-clamp-3 break-words col-span-2")
91
- }, snippet), /* @__PURE__ */ import_react.default.createElement("div", {
92
- role: "none",
93
- className: import_plugin_preview.previewChrome
94
- }, /* @__PURE__ */ import_react.default.createElement(import_react_ui.Button, {
83
+ return /* @__PURE__ */ import_react.default.createElement(import_react_ui_stack.Card.Container, {
84
+ role
85
+ }, /* @__PURE__ */ import_react.default.createElement(import_react_ui_stack.Card.Heading, null, getTitle(subject, t("fallback title"))), snippet && /* @__PURE__ */ import_react.default.createElement(import_react_ui_stack.Card.Text, {
86
+ classNames: "line-clamp-3 break-words col-span-2"
87
+ }, snippet), /* @__PURE__ */ import_react.default.createElement(import_react_ui_stack.Card.Chrome, null, /* @__PURE__ */ import_react.default.createElement(import_react_ui.Button, {
95
88
  onClick: handleNavigate
96
89
  }, /* @__PURE__ */ import_react.default.createElement("span", {
97
90
  className: "grow"
@@ -107,4 +100,4 @@ var MarkdownPreview_default = MarkdownPreview;
107
100
  0 && (module.exports = {
108
101
  MarkdownPreview
109
102
  });
110
- //# sourceMappingURL=MarkdownPreview-G34HSQEB.cjs.map
103
+ //# sourceMappingURL=MarkdownPreview-GCJJCXY6.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/MarkdownPreview/MarkdownPreview.tsx", "../../../src/components/MarkdownPreview/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { pipe } from 'effect';\nimport React, { useCallback } from 'react';\n\nimport { chain, createIntent, LayoutAction, useIntentDispatcher } from '@dxos/app-framework';\nimport { Obj } from '@dxos/echo';\nimport { type PreviewProps } from '@dxos/plugin-preview';\nimport { fullyQualifiedId } from '@dxos/react-client/echo';\nimport { Button, Icon, useTranslation } from '@dxos/react-ui';\nimport { Card } from '@dxos/react-ui-stack';\nimport { DataType } from '@dxos/schema';\n\nimport { MARKDOWN_PLUGIN } from '../../meta';\nimport { DocumentType } from '../../types';\nimport { getAbstract, getFallbackName } from '../../util';\n\n// TODO(burdon): Factor out.\nconst getTitle = (subject: DocumentType | DataType.Text, fallback: string) => {\n if (Obj.instanceOf(DocumentType, subject)) {\n return subject.name ?? subject.fallbackName ?? getFallbackName(subject.content?.target?.content ?? fallback);\n } else if (Obj.instanceOf(DataType.Text, subject)) {\n return getFallbackName(subject.content);\n }\n};\n\n// TODO(burdon): Factor out.\nconst getSnippet = (subject: DocumentType | DataType.Text, fallback: string) => {\n if (Obj.instanceOf(DocumentType, subject)) {\n return getAbstract(subject.content?.target?.content ?? fallback);\n } else if (Obj.instanceOf(DataType.Text, subject)) {\n return getAbstract(subject.content);\n }\n};\n\nexport const MarkdownPreview = ({ subject, role }: PreviewProps<DocumentType | DataType.Text>) => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const { t } = useTranslation(MARKDOWN_PLUGIN);\n const snippet = getSnippet(subject, t('fallback abstract'));\n\n // TODO(wittjosiah): Factor out so this component isn't dependent on the app framework.\n const handleNavigate = useCallback(\n () =>\n dispatch(\n pipe(\n createIntent(LayoutAction.UpdatePopover, {\n part: 'popover',\n subject: null,\n options: { state: false, anchorId: '' },\n }),\n chain(LayoutAction.Open, { part: 'main', subject: [fullyQualifiedId(subject)] }),\n ),\n ),\n [dispatch, subject],\n );\n\n return (\n <Card.Container role={role}>\n <Card.Heading>{getTitle(subject, t('fallback title'))}</Card.Heading>\n {snippet && <Card.Text classNames='line-clamp-3 break-words col-span-2'>{snippet}</Card.Text>}\n <Card.Chrome>\n <Button onClick={handleNavigate}>\n <span className='grow'>{t('navigate to document label')}</span>\n <Icon icon='ph--arrow-right--regular' />\n </Button>\n </Card.Chrome>\n </Card.Container>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { MarkdownPreview } from './MarkdownPreview';\n\nexport * from './MarkdownPreview';\n\nexport default MarkdownPreview;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,oBAAqB;AACrB,mBAAmC;AAEnC,2BAAuE;AACvE,kBAAoB;AAEpB,IAAAA,eAAiC;AACjC,sBAA6C;AAC7C,4BAAqB;AACrB,oBAAyB;AAOzB,IAAMC,WAAW,CAACC,SAAuCC,aAAAA;AACvD,MAAIC,gBAAIC,WAAWC,oCAAcJ,OAAAA,GAAU;AACzC,WAAOA,QAAQK,QAAQL,QAAQM,oBAAgBC,uCAAgBP,QAAQQ,SAASC,QAAQD,WAAWP,QAAAA;EACrG,WAAWC,gBAAIC,WAAWO,uBAASC,MAAMX,OAAAA,GAAU;AACjD,eAAOO,uCAAgBP,QAAQQ,OAAO;EACxC;AACF;AAGA,IAAMI,aAAa,CAACZ,SAAuCC,aAAAA;AACzD,MAAIC,gBAAIC,WAAWC,oCAAcJ,OAAAA,GAAU;AACzC,eAAOa,mCAAYb,QAAQQ,SAASC,QAAQD,WAAWP,QAAAA;EACzD,WAAWC,gBAAIC,WAAWO,uBAASC,MAAMX,OAAAA,GAAU;AACjD,eAAOa,mCAAYb,QAAQQ,OAAO;EACpC;AACF;AAEO,IAAMM,kBAAkB,CAAC,EAAEd,SAASe,KAAI,MAA8C;;;AAC3F,UAAM,EAAEC,iBAAiBC,SAAQ,QAAKC,0CAAAA;AACtC,UAAM,EAAEC,EAAC,QAAKC,gCAAeC,qCAAAA;AAC7B,UAAMC,UAAUV,WAAWZ,SAASmB,EAAE,mBAAA,CAAA;AAGtC,UAAMI,qBAAiBC,0BACrB,MACEP,aACEQ,wBACEC,mCAAaC,kCAAaC,eAAe;MACvCC,MAAM;MACN7B,SAAS;MACT8B,SAAS;QAAEC,OAAO;QAAOC,UAAU;MAAG;IACxC,CAAA,OACAC,4BAAMN,kCAAaO,MAAM;MAAEL,MAAM;MAAQ7B,SAAS;YAACmC,+BAAiBnC,OAAAA;;IAAU,CAAA,CAAA,CAAA,GAGpF;MAACiB;MAAUjB;KAAQ;AAGrB,WACE,6BAAAoC,QAAA,cAACC,2BAAKC,WAAS;MAACvB;OACd,6BAAAqB,QAAA,cAACC,2BAAKE,SAAO,MAAExC,SAASC,SAASmB,EAAE,gBAAA,CAAA,CAAA,GAClCG,WAAW,6BAAAc,QAAA,cAACC,2BAAK1B,MAAI;MAAC6B,YAAW;OAAuClB,OAAAA,GACzE,6BAAAc,QAAA,cAACC,2BAAKI,QAAM,MACV,6BAAAL,QAAA,cAACM,wBAAAA;MAAOC,SAASpB;OACf,6BAAAa,QAAA,cAACQ,QAAAA;MAAKC,WAAU;OAAQ1B,EAAE,4BAAA,CAAA,GAC1B,6BAAAiB,QAAA,cAACU,sBAAAA;MAAKC,MAAK;;;;;AAKrB;AC9DA,IAAA,0BAAejC;",
6
+ "names": ["import_echo", "getTitle", "subject", "fallback", "Obj", "instanceOf", "DocumentType", "name", "fallbackName", "getFallbackName", "content", "target", "DataType", "Text", "getSnippet", "getAbstract", "MarkdownPreview", "role", "dispatchPromise", "dispatch", "useIntentDispatcher", "t", "useTranslation", "MARKDOWN_PLUGIN", "snippet", "handleNavigate", "useCallback", "pipe", "createIntent", "LayoutAction", "UpdatePopover", "part", "options", "state", "anchorId", "chain", "Open", "fullyQualifiedId", "React", "Card", "Container", "Heading", "classNames", "Chrome", "Button", "onClick", "span", "className", "Icon", "icon"]
7
+ }
@@ -16,28 +16,28 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var anchor_sort_NHVF23EU_exports = {};
20
- __export(anchor_sort_NHVF23EU_exports, {
19
+ var anchor_sort_V3T4SFFI_exports = {};
20
+ __export(anchor_sort_V3T4SFFI_exports, {
21
21
  default: () => anchor_sort_default
22
22
  });
23
- module.exports = __toCommonJS(anchor_sort_NHVF23EU_exports);
24
- var import_chunk_RQS4KBMG = require("./chunk-RQS4KBMG.cjs");
23
+ module.exports = __toCommonJS(anchor_sort_V3T4SFFI_exports);
24
+ var import_chunk_3HHV4MM6 = require("./chunk-3HHV4MM6.cjs");
25
25
  var import_chunk_ZU5OIHCY = require("./chunk-ZU5OIHCY.cjs");
26
26
  var import_app_framework = require("@dxos/app-framework");
27
- var import_echo_schema = require("@dxos/echo-schema");
28
- var import_echo = require("@dxos/react-client/echo");
27
+ var import_echo = require("@dxos/echo");
28
+ var import_echo2 = require("@dxos/react-client/echo");
29
29
  var anchor_sort_default = () => (0, import_app_framework.contributes)(import_app_framework.Capabilities.AnchorSort, {
30
- key: (0, import_echo_schema.getSchemaTypename)(import_chunk_RQS4KBMG.DocumentType),
30
+ key: import_echo.Type.getTypename(import_chunk_3HHV4MM6.DocumentType),
31
31
  sort: (anchorA, anchorB) => {
32
- const doc = (0, import_echo.getTarget)(anchorA);
33
- const accessor = doc.content.target ? (0, import_echo.createDocAccessor)(doc.content.target, [
32
+ const doc = (0, import_echo2.getTarget)(anchorA);
33
+ const accessor = doc.content.target ? (0, import_echo2.createDocAccessor)(doc.content.target, [
34
34
  "content"
35
35
  ]) : void 0;
36
- if (doc !== (0, import_echo.getTarget)(anchorB) || !accessor) {
36
+ if (doc !== (0, import_echo2.getTarget)(anchorB) || !accessor) {
37
37
  return 0;
38
38
  }
39
39
  const getStartPosition = (cursor) => {
40
- const range = cursor ? (0, import_echo.getRangeFromCursor)(accessor, cursor) : void 0;
40
+ const range = cursor ? (0, import_echo2.getRangeFromCursor)(accessor, cursor) : void 0;
41
41
  return range?.start ?? Number.MAX_SAFE_INTEGER;
42
42
  };
43
43
  const posA = getStartPosition(anchorA.anchor);
@@ -45,4 +45,4 @@ var anchor_sort_default = () => (0, import_app_framework.contributes)(import_app
45
45
  return posA - posB;
46
46
  }
47
47
  });
48
- //# sourceMappingURL=anchor-sort-NHVF23EU.cjs.map
48
+ //# sourceMappingURL=anchor-sort-V3T4SFFI.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/anchor-sort.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes } from '@dxos/app-framework';\nimport { Type } from '@dxos/echo';\nimport { createDocAccessor, getRangeFromCursor, getTarget } from '@dxos/react-client/echo';\n\nimport { DocumentType } from '../types';\n\nexport default () =>\n contributes(Capabilities.AnchorSort, {\n key: Type.getTypename(DocumentType)!,\n sort: (anchorA, anchorB) => {\n const doc = getTarget(anchorA) as DocumentType;\n const accessor = doc.content.target ? createDocAccessor(doc.content.target, ['content']) : undefined;\n if (doc !== getTarget(anchorB) || !accessor) {\n return 0;\n }\n\n const getStartPosition = (cursor: string | undefined) => {\n const range = cursor ? getRangeFromCursor(accessor, cursor) : undefined;\n return range?.start ?? Number.MAX_SAFE_INTEGER;\n };\n\n const posA = getStartPosition(anchorA.anchor);\n const posB = getStartPosition(anchorB.anchor);\n return posA - posB;\n },\n });\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;AAIA,2BAA0C;AAC1C,kBAAqB;AACrB,IAAAA,eAAiE;AAIjE,IAAA,sBAAe,UACbC,kCAAYC,kCAAaC,YAAY;EACnCC,KAAKC,iBAAKC,YAAYC,kCAAAA;EACtBC,MAAM,CAACC,SAASC,YAAAA;AACd,UAAMC,UAAMC,wBAAUH,OAAAA;AACtB,UAAMI,WAAWF,IAAIG,QAAQC,aAASC,gCAAkBL,IAAIG,QAAQC,QAAQ;MAAC;KAAU,IAAIE;AAC3F,QAAIN,YAAQC,wBAAUF,OAAAA,KAAY,CAACG,UAAU;AAC3C,aAAO;IACT;AAEA,UAAMK,mBAAmB,CAACC,WAAAA;AACxB,YAAMC,QAAQD,aAASE,iCAAmBR,UAAUM,MAAAA,IAAUF;AAC9D,aAAOG,OAAOE,SAASC,OAAOC;IAChC;AAEA,UAAMC,OAAOP,iBAAiBT,QAAQiB,MAAM;AAC5C,UAAMC,OAAOT,iBAAiBR,QAAQgB,MAAM;AAC5C,WAAOD,OAAOE;EAChB;AACF,CAAA;",
6
+ "names": ["import_echo", "contributes", "Capabilities", "AnchorSort", "key", "Type", "getTypename", "DocumentType", "sort", "anchorA", "anchorB", "doc", "getTarget", "accessor", "content", "target", "createDocAccessor", "undefined", "getStartPosition", "cursor", "range", "getRangeFromCursor", "start", "Number", "MAX_SAFE_INTEGER", "posA", "anchor", "posB"]
7
+ }
@@ -16,13 +16,13 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var app_graph_serializer_CLALIYN3_exports = {};
20
- __export(app_graph_serializer_CLALIYN3_exports, {
19
+ var app_graph_serializer_BZPM7HHJ_exports = {};
20
+ __export(app_graph_serializer_BZPM7HHJ_exports, {
21
21
  default: () => app_graph_serializer_default
22
22
  });
23
- module.exports = __toCommonJS(app_graph_serializer_CLALIYN3_exports);
24
- var import_chunk_ZDTL47I7 = require("./chunk-ZDTL47I7.cjs");
25
- var import_chunk_RQS4KBMG = require("./chunk-RQS4KBMG.cjs");
23
+ module.exports = __toCommonJS(app_graph_serializer_BZPM7HHJ_exports);
24
+ var import_chunk_SYEFGLXN = require("./chunk-SYEFGLXN.cjs");
25
+ var import_chunk_3HHV4MM6 = require("./chunk-3HHV4MM6.cjs");
26
26
  var import_chunk_ZU5OIHCY = require("./chunk-ZU5OIHCY.cjs");
27
27
  var import_effect = require("effect");
28
28
  var import_app_framework = require("@dxos/app-framework");
@@ -30,14 +30,14 @@ var import_types = require("@dxos/plugin-space/types");
30
30
  var import_echo = require("@dxos/react-client/echo");
31
31
  var app_graph_serializer_default = (context) => (0, import_app_framework.contributes)(import_app_framework.Capabilities.AppGraphSerializer, [
32
32
  {
33
- inputType: import_chunk_RQS4KBMG.DocumentType.typename,
33
+ inputType: import_chunk_3HHV4MM6.DocumentType.typename,
34
34
  outputType: "text/markdown",
35
35
  // Reconcile with metadata serializers.
36
36
  serialize: async (node) => {
37
37
  const doc = node.data;
38
38
  const content = await doc.content.load();
39
39
  return {
40
- name: doc.name || doc.fallbackName || import_chunk_ZDTL47I7.translations_default[0]["en-US"][import_chunk_RQS4KBMG.DocumentType.typename]["object name placeholder"],
40
+ name: doc.name || doc.fallbackName || import_chunk_SYEFGLXN.translations_default[0]["en-US"][import_chunk_3HHV4MM6.DocumentType.typename]["object name placeholder"],
41
41
  data: content.content,
42
42
  type: "text/markdown"
43
43
  };
@@ -49,7 +49,7 @@ var app_graph_serializer_default = (context) => (0, import_app_framework.contrib
49
49
  return;
50
50
  }
51
51
  const { dispatchPromise: dispatch } = context.getCapability(import_app_framework.Capabilities.IntentDispatcher);
52
- const result = await dispatch((0, import_effect.pipe)((0, import_app_framework.createIntent)(import_chunk_RQS4KBMG.MarkdownAction.Create, {
52
+ const result = await dispatch((0, import_effect.pipe)((0, import_app_framework.createIntent)(import_chunk_3HHV4MM6.MarkdownAction.Create, {
53
53
  spaceId: space.id,
54
54
  name: data.name,
55
55
  content: data.data
@@ -60,4 +60,4 @@ var app_graph_serializer_default = (context) => (0, import_app_framework.contrib
60
60
  }
61
61
  }
62
62
  ]);
63
- //# sourceMappingURL=app-graph-serializer-CLALIYN3.cjs.map
63
+ //# sourceMappingURL=app-graph-serializer-BZPM7HHJ.cjs.map
@@ -16,22 +16,22 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var artifact_definition_VEAHK7BX_exports = {};
20
- __export(artifact_definition_VEAHK7BX_exports, {
19
+ var artifact_definition_U27MH5SC_exports = {};
20
+ __export(artifact_definition_U27MH5SC_exports, {
21
21
  default: () => artifact_definition_default
22
22
  });
23
- module.exports = __toCommonJS(artifact_definition_VEAHK7BX_exports);
24
- var import_chunk_RQS4KBMG = require("./chunk-RQS4KBMG.cjs");
23
+ module.exports = __toCommonJS(artifact_definition_U27MH5SC_exports);
24
+ var import_chunk_3HHV4MM6 = require("./chunk-3HHV4MM6.cjs");
25
25
  var import_chunk_ZU5OIHCY = require("./chunk-ZU5OIHCY.cjs");
26
26
  var import_effect = require("effect");
27
27
  var import_ai = require("@dxos/ai");
28
28
  var import_app_framework = require("@dxos/app-framework");
29
29
  var import_artifact = require("@dxos/artifact");
30
30
  var import_assistant = require("@dxos/assistant");
31
- var import_echo_schema = require("@dxos/echo-schema");
31
+ var import_echo = require("@dxos/echo");
32
32
  var import_invariant = require("@dxos/invariant");
33
33
  var import_types = require("@dxos/plugin-space/types");
34
- var import_echo = require("@dxos/react-client/echo");
34
+ var import_echo2 = require("@dxos/react-client/echo");
35
35
  var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-markdown/src/capabilities/artifact-definition.ts";
36
36
  var artifact_definition_default = () => {
37
37
  const definition = (0, import_artifact.defineArtifact)({
@@ -42,7 +42,7 @@ var artifact_definition_default = () => {
42
42
  - Use these tools to interact with documents, including listing available documents and retrieving their content.
43
43
  - Documents are stored in Markdown format.
44
44
  `,
45
- schema: import_chunk_RQS4KBMG.DocumentType,
45
+ schema: import_chunk_3HHV4MM6.DocumentType,
46
46
  tools: [
47
47
  (0, import_ai.createTool)(import_chunk_ZU5OIHCY.meta.id, {
48
48
  name: "create",
@@ -75,7 +75,7 @@ var artifact_definition_default = () => {
75
75
  "'No intent dispatcher'"
76
76
  ]
77
77
  });
78
- const intent = (0, import_effect.pipe)((0, import_app_framework.createIntent)(import_chunk_RQS4KBMG.MarkdownAction.Create, {
78
+ const intent = (0, import_effect.pipe)((0, import_app_framework.createIntent)(import_chunk_3HHV4MM6.MarkdownAction.Create, {
79
79
  spaceId: extensions.space.id,
80
80
  name,
81
81
  content
@@ -105,19 +105,19 @@ var artifact_definition_default = () => {
105
105
  ]
106
106
  });
107
107
  const space = extensions.space;
108
- const { objects: documents } = await space.db.query(import_echo.Filter.type(import_chunk_RQS4KBMG.DocumentType)).run();
108
+ const { objects: documents } = await space.db.query(import_echo2.Filter.type(import_chunk_3HHV4MM6.DocumentType)).run();
109
109
  const documentInfo = documents.map((doc) => {
110
- (0, import_invariant.invariant)((0, import_echo_schema.isInstanceOf)(import_chunk_RQS4KBMG.DocumentType, doc), void 0, {
110
+ (0, import_invariant.invariant)(import_echo.Obj.instanceOf(import_chunk_3HHV4MM6.DocumentType, doc), void 0, {
111
111
  F: __dxlog_file,
112
112
  L: 81,
113
113
  S: void 0,
114
114
  A: [
115
- "isInstanceOf(DocumentType, doc)",
115
+ "Obj.instanceOf(DocumentType, doc)",
116
116
  ""
117
117
  ]
118
118
  });
119
119
  return {
120
- id: (0, import_echo.fullyQualifiedId)(doc),
120
+ id: (0, import_echo2.fullyQualifiedId)(doc),
121
121
  name: doc.name || doc.fallbackName || "Unnamed Document"
122
122
  };
123
123
  });
@@ -141,11 +141,11 @@ var artifact_definition_default = () => {
141
141
  "'No space'"
142
142
  ]
143
143
  });
144
- const document = await extensions.space.db.query(import_echo.Filter.ids(import_artifact.ArtifactId.toDXN(id).toString())).first();
145
- (0, import_invariant.assertArgument)((0, import_echo_schema.isInstanceOf)(import_chunk_RQS4KBMG.DocumentType, document), "Invalid type");
144
+ const document = await extensions.space.db.query(import_echo2.Filter.ids(import_artifact.ArtifactId.toDXN(id).toString())).first();
145
+ (0, import_invariant.assertArgument)(import_echo.Obj.instanceOf(import_chunk_3HHV4MM6.DocumentType, document), "Invalid type");
146
146
  const { content } = await document.content?.load();
147
147
  return import_ai.ToolResult.Success({
148
- id: (0, import_echo.fullyQualifiedId)(document),
148
+ id: (0, import_echo2.fullyQualifiedId)(document),
149
149
  name: document.name || document.fallbackName || "Unnamed Document",
150
150
  content
151
151
  });
@@ -155,4 +155,4 @@ var artifact_definition_default = () => {
155
155
  });
156
156
  return (0, import_app_framework.contributes)(import_app_framework.Capabilities.ArtifactDefinition, definition);
157
157
  };
158
- //# sourceMappingURL=artifact-definition-VEAHK7BX.cjs.map
158
+ //# sourceMappingURL=artifact-definition-U27MH5SC.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/artifact-definition.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { pipe, Schema } from 'effect';\n\nimport { createTool, ToolResult } from '@dxos/ai';\nimport { Capabilities, chain, contributes, createIntent, type PromiseIntentDispatcher } from '@dxos/app-framework';\nimport { ArtifactId, defineArtifact } from '@dxos/artifact';\nimport { createArtifactElement } from '@dxos/assistant';\nimport { Obj } from '@dxos/echo';\nimport { invariant, assertArgument } from '@dxos/invariant';\nimport { SpaceAction } from '@dxos/plugin-space/types';\nimport { Filter, fullyQualifiedId, type Space } from '@dxos/react-client/echo';\n\nimport { meta } from '../meta';\nimport { DocumentType, MarkdownAction } from '../types';\n\n// TODO(burdon): Factor out.\ndeclare global {\n interface ToolContextExtensions {\n space?: Space;\n dispatch?: PromiseIntentDispatcher;\n }\n}\n\nexport default () => {\n const definition = defineArtifact({\n id: `artifact:${meta.id}`,\n name: meta.name,\n instructions: `\n - The markdown plugin allows you to work with text documents in the current space.\n - Use these tools to interact with documents, including listing available documents and retrieving their content.\n - Documents are stored in Markdown format.\n `,\n schema: DocumentType,\n tools: [\n createTool(meta.id, {\n name: 'create',\n description: 'Create a new markdown document',\n caption: 'Creating document...',\n schema: Schema.Struct({\n name: Schema.optional(Schema.String).annotations({\n description: 'Optional name for the document.',\n }),\n content: Schema.String.annotations({\n description: 'The content of the document.',\n }),\n }),\n execute: async ({ name, content }, { extensions }) => {\n invariant(extensions?.space, 'No space');\n invariant(extensions?.dispatch, 'No intent dispatcher');\n\n const intent = pipe(\n createIntent(MarkdownAction.Create, {\n spaceId: extensions.space.id,\n name,\n content,\n }),\n chain(SpaceAction.AddObject, { target: extensions.space }),\n );\n\n const { data, error } = await extensions.dispatch(intent);\n if (!data || error) {\n return ToolResult.Error(error?.message ?? 'Failed to create document');\n }\n\n return ToolResult.Success(createArtifactElement(data.id));\n },\n }),\n createTool(meta.id, {\n name: 'list',\n description: 'List all markdown documents in the current space.',\n caption: 'Listing markdown documents...',\n schema: Schema.Struct({}),\n execute: async (_input, { extensions }) => {\n invariant(extensions?.space, 'No space');\n const space = extensions.space;\n const { objects: documents } = await space.db.query(Filter.type(DocumentType)).run();\n const documentInfo = documents.map((doc) => {\n invariant(Obj.instanceOf(DocumentType, doc));\n return {\n id: fullyQualifiedId(doc),\n name: doc.name || doc.fallbackName || 'Unnamed Document',\n // TODO(ZaymonFC): Include updatedAt?\n };\n });\n\n return ToolResult.Success(documentInfo);\n },\n }),\n createTool(meta.id, {\n name: 'inspect',\n description: 'Read the content of a markdown document.',\n caption: 'Inspecting markdown document...',\n schema: Schema.Struct({\n id: ArtifactId,\n }),\n execute: async ({ id }, { extensions }) => {\n invariant(extensions?.space, 'No space');\n const document = await extensions.space.db.query(Filter.ids(ArtifactId.toDXN(id).toString())).first();\n assertArgument(Obj.instanceOf(DocumentType, document), 'Invalid type');\n\n const { content } = await document.content?.load();\n return ToolResult.Success({\n id: fullyQualifiedId(document),\n name: document.name || document.fallbackName || 'Unnamed Document',\n content,\n });\n },\n }),\n ],\n });\n\n return contributes(Capabilities.ArtifactDefinition, definition);\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;AAIA,oBAA6B;AAE7B,gBAAuC;AACvC,2BAA6F;AAC7F,sBAA2C;AAC3C,uBAAsC;AACtC,kBAAoB;AACpB,uBAA0C;AAC1C,mBAA4B;AAC5B,IAAAA,eAAqD;;AAarD,IAAA,8BAAe,MAAA;AACb,QAAMC,iBAAaC,gCAAe;IAChCC,IAAI,YAAYC,2BAAKD,EAAE;IACvBE,MAAMD,2BAAKC;IACXC,cAAc;;;;;IAKdC,QAAQC;IACRC,OAAO;UACLC,sBAAWN,2BAAKD,IAAI;QAClBE,MAAM;QACNM,aAAa;QACbC,SAAS;QACTL,QAAQM,qBAAOC,OAAO;UACpBT,MAAMQ,qBAAOE,SAASF,qBAAOG,MAAM,EAAEC,YAAY;YAC/CN,aAAa;UACf,CAAA;UACAO,SAASL,qBAAOG,OAAOC,YAAY;YACjCN,aAAa;UACf,CAAA;QACF,CAAA;QACAQ,SAAS,OAAO,EAAEd,MAAMa,QAAO,GAAI,EAAEE,WAAU,MAAE;AAC/CC,0CAAUD,YAAYE,OAAO,YAAA;;;;;;;;;AAC7BD,0CAAUD,YAAYG,UAAU,wBAAA;;;;;;;;;AAEhC,gBAAMC,aAASC,wBACbC,mCAAaC,qCAAeC,QAAQ;YAClCC,SAAST,WAAWE,MAAMnB;YAC1BE;YACAa;UACF,CAAA,OACAY,4BAAMC,yBAAYC,WAAW;YAAEC,QAAQb,WAAWE;UAAM,CAAA,CAAA;AAG1D,gBAAM,EAAEY,MAAMC,MAAK,IAAK,MAAMf,WAAWG,SAASC,MAAAA;AAClD,cAAI,CAACU,QAAQC,OAAO;AAClB,mBAAOC,qBAAWC,MAAMF,OAAOG,WAAW,2BAAA;UAC5C;AAEA,iBAAOF,qBAAWG,YAAQC,wCAAsBN,KAAK/B,EAAE,CAAA;QACzD;MACF,CAAA;UACAO,sBAAWN,2BAAKD,IAAI;QAClBE,MAAM;QACNM,aAAa;QACbC,SAAS;QACTL,QAAQM,qBAAOC,OAAO,CAAC,CAAA;QACvBK,SAAS,OAAOsB,QAAQ,EAAErB,WAAU,MAAE;AACpCC,0CAAUD,YAAYE,OAAO,YAAA;;;;;;;;;AAC7B,gBAAMA,QAAQF,WAAWE;AACzB,gBAAM,EAAEoB,SAASC,UAAS,IAAK,MAAMrB,MAAMsB,GAAGC,MAAMC,oBAAOC,KAAKvC,kCAAAA,CAAAA,EAAewC,IAAG;AAClF,gBAAMC,eAAeN,UAAUO,IAAI,CAACC,QAAAA;AAClC9B,4CAAU+B,gBAAIC,WAAW7C,oCAAc2C,GAAAA,GAAAA,QAAAA;;;;;;;;;AACvC,mBAAO;cACLhD,QAAImD,+BAAiBH,GAAAA;cACrB9C,MAAM8C,IAAI9C,QAAQ8C,IAAII,gBAAgB;YAExC;UACF,CAAA;AAEA,iBAAOnB,qBAAWG,QAAQU,YAAAA;QAC5B;MACF,CAAA;UACAvC,sBAAWN,2BAAKD,IAAI;QAClBE,MAAM;QACNM,aAAa;QACbC,SAAS;QACTL,QAAQM,qBAAOC,OAAO;UACpBX,IAAIqD;QACN,CAAA;QACArC,SAAS,OAAO,EAAEhB,GAAE,GAAI,EAAEiB,WAAU,MAAE;AACpCC,0CAAUD,YAAYE,OAAO,YAAA;;;;;;;;;AAC7B,gBAAMmC,WAAW,MAAMrC,WAAWE,MAAMsB,GAAGC,MAAMC,oBAAOY,IAAIF,2BAAWG,MAAMxD,EAAAA,EAAIyD,SAAQ,CAAA,CAAA,EAAKC,MAAK;AACnGC,+CAAeV,gBAAIC,WAAW7C,oCAAciD,QAAAA,GAAW,cAAA;AAEvD,gBAAM,EAAEvC,QAAO,IAAK,MAAMuC,SAASvC,SAAS6C,KAAAA;AAC5C,iBAAO3B,qBAAWG,QAAQ;YACxBpC,QAAImD,+BAAiBG,QAAAA;YACrBpD,MAAMoD,SAASpD,QAAQoD,SAASF,gBAAgB;YAChDrC;UACF,CAAA;QACF;MACF,CAAA;;EAEJ,CAAA;AAEA,aAAO8C,kCAAYC,kCAAaC,oBAAoBjE,UAAAA;AACtD;",
6
+ "names": ["import_echo", "definition", "defineArtifact", "id", "meta", "name", "instructions", "schema", "DocumentType", "tools", "createTool", "description", "caption", "Schema", "Struct", "optional", "String", "annotations", "content", "execute", "extensions", "invariant", "space", "dispatch", "intent", "pipe", "createIntent", "MarkdownAction", "Create", "spaceId", "chain", "SpaceAction", "AddObject", "target", "data", "error", "ToolResult", "Error", "message", "Success", "createArtifactElement", "_input", "objects", "documents", "db", "query", "Filter", "type", "run", "documentInfo", "map", "doc", "Obj", "instanceOf", "fullyQualifiedId", "fallbackName", "ArtifactId", "document", "ids", "toDXN", "toString", "first", "assertArgument", "load", "contributes", "Capabilities", "ArtifactDefinition"]
7
+ }
@@ -16,8 +16,8 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var chunk_RQS4KBMG_exports = {};
20
- __export(chunk_RQS4KBMG_exports, {
19
+ var chunk_3HHV4MM6_exports = {};
20
+ __export(chunk_3HHV4MM6_exports, {
21
21
  DocumentSchema: () => DocumentSchema,
22
22
  DocumentType: () => DocumentType,
23
23
  MarkdownAction: () => MarkdownAction,
@@ -25,12 +25,11 @@ __export(chunk_RQS4KBMG_exports, {
25
25
  createDocument: () => createDocument,
26
26
  isEditorModel: () => isEditorModel
27
27
  });
28
- module.exports = __toCommonJS(chunk_RQS4KBMG_exports);
28
+ module.exports = __toCommonJS(chunk_3HHV4MM6_exports);
29
29
  var import_chunk_ZU5OIHCY = require("./chunk-ZU5OIHCY.cjs");
30
30
  var import_effect = require("effect");
31
31
  var import_echo = require("@dxos/echo");
32
32
  var import_echo_schema = require("@dxos/echo-schema");
33
- var import_live_object = require("@dxos/live-object");
34
33
  var import_schema = require("@dxos/schema");
35
34
  var import_effect2 = require("effect");
36
35
  var import_echo2 = require("@dxos/echo");
@@ -47,9 +46,9 @@ var DocumentType = DocumentSchema.pipe(import_echo.Type.Obj({
47
46
  typename: "dxos.org/type/Document",
48
47
  version: "0.1.0"
49
48
  }));
50
- var createDocument = ({ name, content }) => (0, import_live_object.live)(DocumentType, {
49
+ var createDocument = ({ name, content }) => import_echo.Obj.make(DocumentType, {
51
50
  name,
52
- content: import_echo.Ref.make((0, import_live_object.live)(import_schema.DataType.Text, {
51
+ content: import_echo.Ref.make(import_echo.Obj.make(import_schema.DataType.Text, {
53
52
  content
54
53
  }))
55
54
  });
@@ -99,4 +98,4 @@ var MarkdownAction;
99
98
  createDocument,
100
99
  isEditorModel
101
100
  });
102
- //# sourceMappingURL=chunk-RQS4KBMG.cjs.map
101
+ //# sourceMappingURL=chunk-3HHV4MM6.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/types/schema.ts", "../../../src/types/types.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { Obj, Ref, Type } from '@dxos/echo';\nimport { LabelAnnotation } from '@dxos/echo-schema';\nimport { DataType } from '@dxos/schema';\n\nexport const DocumentSchema = Schema.Struct({\n name: Schema.optional(Schema.String),\n fallbackName: Schema.optional(Schema.String),\n content: Type.Ref(DataType.Text),\n}).pipe(LabelAnnotation.set(['name', 'fallbackName']));\n\nexport const DocumentType = DocumentSchema.pipe(\n Type.Obj({\n typename: 'dxos.org/type/Document',\n version: '0.1.0',\n }),\n);\nexport type DocumentType = Schema.Schema.Type<typeof DocumentType>;\n\n// TODO(burdon): Replace when defaults are supported.\nexport const createDocument = ({ name, content }: { name: string; content: string }) =>\n Obj.make(DocumentType, { name, content: Ref.make(Obj.make(DataType.Text, { content })) });\n\n/**\n * Checks if an object conforms to the interface needed to render an editor.\n */\n// TODO(burdon): Normalize types (from FilesPlugin).\nexport const isEditorModel = (data: any): data is { id: string; text: string } =>\n data &&\n typeof data === 'object' &&\n 'id' in data &&\n typeof data.id === 'string' &&\n 'text' in data &&\n typeof data.text === 'string';\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { Type } from '@dxos/echo';\n// TODO(wittjosiah): This pulls in UI code into the types entrypoint.\nimport { type Extension, EditorInputMode, EditorViewMode } from '@dxos/react-ui-editor';\n\nimport { DocumentType } from './schema';\nimport { MARKDOWN_PLUGIN } from '../meta';\n\nconst MARKDOWN_ACTION = `${MARKDOWN_PLUGIN}/action`;\n\nexport namespace MarkdownAction {\n export class Create extends Schema.TaggedClass<Create>()(MARKDOWN_ACTION, {\n input: Schema.Struct({\n spaceId: Type.SpaceId,\n name: Schema.optional(Schema.String),\n content: Schema.optional(Schema.String),\n }),\n output: Schema.Struct({\n object: DocumentType,\n }),\n }) {}\n\n export class SetViewMode extends Schema.TaggedClass<SetViewMode>()(`${MARKDOWN_ACTION}/set-view-mode`, {\n input: Schema.Struct({\n id: Schema.String,\n viewMode: EditorViewMode,\n }),\n output: Schema.Void,\n }) {}\n}\n\nexport type MarkdownProperties = Record<string, any>;\n\n// TODO(burdon): Async.\nexport type MarkdownExtensionProvider = (props: { document?: DocumentType }) => Extension | undefined;\n\nexport type OnChange = (text: string) => void;\n\nexport type MarkdownPluginState = {\n // Codemirror extensions provided by other plugins.\n extensionProviders?: MarkdownExtensionProvider[];\n\n // TODO(burdon): Extend view mode per document to include scroll position, etc.\n // View mode per document.\n viewMode: Record<string, EditorViewMode>;\n};\n\nexport const MarkdownSettingsSchema = Schema.mutable(\n Schema.Struct({\n defaultViewMode: EditorViewMode,\n editorInputMode: Schema.optional(EditorInputMode),\n experimental: Schema.optional(Schema.Boolean),\n debug: Schema.optional(Schema.Boolean),\n toolbar: Schema.optional(Schema.Boolean),\n typewriter: Schema.optional(Schema.String),\n // TODO(burdon): Per document settings.\n numberedHeadings: Schema.optional(Schema.Boolean),\n folding: Schema.optional(Schema.Boolean),\n }),\n);\n\nexport type MarkdownSettingsProps = Schema.Schema.Type<typeof MarkdownSettingsSchema>;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,oBAAuB;AAEvB,kBAA+B;AAC/B,yBAAgC;AAChC,oBAAyB;ACJzB,IAAAA,iBAAuB;AAEvB,IAAAC,eAAqB;AAErB,6BAAgE;ADEzD,IAAMC,iBAAiBC,qBAAOC,OAAO;EAC1CC,MAAMF,qBAAOG,SAASH,qBAAOI,MAAM;EACnCC,cAAcL,qBAAOG,SAASH,qBAAOI,MAAM;EAC3CE,SAASC,iBAAKC,IAAIC,uBAASC,IAAI;AACjC,CAAA,EAAGC,KAAKC,mCAAgBC,IAAI;EAAC;EAAQ;CAAe,CAAA;AAE7C,IAAMC,eAAef,eAAeY,KACzCJ,iBAAKQ,IAAI;EACPC,UAAU;EACVC,SAAS;AACX,CAAA,CAAA;AAKK,IAAMC,iBAAiB,CAAC,EAAEhB,MAAMI,QAAO,MAC5CS,gBAAII,KAAKL,cAAc;EAAEZ;EAAMI,SAASE,gBAAIW,KAAKJ,gBAAII,KAAKV,uBAASC,MAAM;IAAEJ;EAAQ,CAAA,CAAA;AAAI,CAAA;AAMlF,IAAMc,gBAAgB,CAACC,SAC5BA,QACA,OAAOA,SAAS,YAChB,QAAQA,QACR,OAAOA,KAAKC,OAAO,YACnB,UAAUD,QACV,OAAOA,KAAKE,SAAS;ACzBvB,IAAMC,kBAAkB,GAAGC,qCAAAA;UAEVC,iBAAAA;EACR,MAAMC,eAAe3B,eAAAA,OAAO4B,YAAW,EAAWJ,iBAAiB;IACxEK,OAAO7B,eAAAA,OAAOC,OAAO;MACnB6B,SAASvB,aAAAA,KAAKwB;MACd7B,MAAMF,eAAAA,OAAOG,SAASH,eAAAA,OAAOI,MAAM;MACnCE,SAASN,eAAAA,OAAOG,SAASH,eAAAA,OAAOI,MAAM;IACxC,CAAA;IACA4B,QAAQhC,eAAAA,OAAOC,OAAO;MACpBgC,QAAQnB;IACV,CAAA;EACF,CAAA,EAAA;EAAI;kBATSa,SAAAA;EAWN,MAAMO,oBAAoBlC,eAAAA,OAAO4B,YAAW,EAAgB,GAAGJ,eAAAA,kBAAiC;IACrGK,OAAO7B,eAAAA,OAAOC,OAAO;MACnBqB,IAAItB,eAAAA,OAAOI;MACX+B,UAAUC;IACZ,CAAA;IACAJ,QAAQhC,eAAAA,OAAOqC;EACjB,CAAA,EAAA;EAAI;kBANSH,cAAAA;AAOf,GAnBiBR,mBAAAA,iBAAAA,CAAAA,EAAAA;AAqCV,IAAMY,yBAAyBtC,eAAAA,OAAOuC,QAC3CvC,eAAAA,OAAOC,OAAO;EACZuC,iBAAiBJ;EACjBK,iBAAiBzC,eAAAA,OAAOG,SAASuC,sCAAAA;EACjCC,cAAc3C,eAAAA,OAAOG,SAASH,eAAAA,OAAO4C,OAAO;EAC5CC,OAAO7C,eAAAA,OAAOG,SAASH,eAAAA,OAAO4C,OAAO;EACrCE,SAAS9C,eAAAA,OAAOG,SAASH,eAAAA,OAAO4C,OAAO;EACvCG,YAAY/C,eAAAA,OAAOG,SAASH,eAAAA,OAAOI,MAAM;;EAEzC4C,kBAAkBhD,eAAAA,OAAOG,SAASH,eAAAA,OAAO4C,OAAO;EAChDK,SAASjD,eAAAA,OAAOG,SAASH,eAAAA,OAAO4C,OAAO;AACzC,CAAA,CAAA;;",
6
+ "names": ["import_effect", "import_echo", "DocumentSchema", "Schema", "Struct", "name", "optional", "String", "fallbackName", "content", "Type", "Ref", "DataType", "Text", "pipe", "LabelAnnotation", "set", "DocumentType", "Obj", "typename", "version", "createDocument", "make", "isEditorModel", "data", "id", "text", "MARKDOWN_ACTION", "MARKDOWN_PLUGIN", "MarkdownAction", "Create", "TaggedClass", "input", "spaceId", "SpaceId", "output", "object", "SetViewMode", "viewMode", "EditorViewMode", "Void", "MarkdownSettingsSchema", "mutable", "defaultViewMode", "editorInputMode", "EditorInputMode", "experimental", "Boolean", "debug", "toolbar", "typewriter", "numberedHeadings", "folding"]
7
+ }
@@ -26,8 +26,8 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var chunk_C4HR7UXE_exports = {};
30
- __export(chunk_C4HR7UXE_exports, {
29
+ var chunk_4DYNEQG3_exports = {};
30
+ __export(chunk_4DYNEQG3_exports, {
31
31
  AnchorSort: () => AnchorSort,
32
32
  AppGraphSerializer: () => AppGraphSerializer,
33
33
  ArtifactDefinition: () => ArtifactDefinition,
@@ -36,14 +36,14 @@ __export(chunk_C4HR7UXE_exports, {
36
36
  MarkdownState: () => MarkdownState,
37
37
  ReactSurface: () => ReactSurface
38
38
  });
39
- module.exports = __toCommonJS(chunk_C4HR7UXE_exports);
39
+ module.exports = __toCommonJS(chunk_4DYNEQG3_exports);
40
40
  var import_app_framework = require("@dxos/app-framework");
41
- var AnchorSort = (0, import_app_framework.lazy)(() => import("./anchor-sort-NHVF23EU.cjs"));
42
- var AppGraphSerializer = (0, import_app_framework.lazy)(() => import("./app-graph-serializer-CLALIYN3.cjs"));
43
- var ArtifactDefinition = (0, import_app_framework.lazy)(() => import("./artifact-definition-VEAHK7BX.cjs"));
44
- var IntentResolver = (0, import_app_framework.lazy)(() => import("./intent-resolver-AUZVK3NZ.cjs"));
45
- var ReactSurface = (0, import_app_framework.lazy)(() => import("./react-surface-WJZTEBYO.cjs"));
46
- var MarkdownSettings = (0, import_app_framework.lazy)(() => import("./settings-IRKU3WPM.cjs"));
41
+ var AnchorSort = (0, import_app_framework.lazy)(() => import("./anchor-sort-V3T4SFFI.cjs"));
42
+ var AppGraphSerializer = (0, import_app_framework.lazy)(() => import("./app-graph-serializer-BZPM7HHJ.cjs"));
43
+ var ArtifactDefinition = (0, import_app_framework.lazy)(() => import("./artifact-definition-U27MH5SC.cjs"));
44
+ var IntentResolver = (0, import_app_framework.lazy)(() => import("./intent-resolver-OEFLRNEJ.cjs"));
45
+ var ReactSurface = (0, import_app_framework.lazy)(() => import("./react-surface-5RKEWAXS.cjs"));
46
+ var MarkdownSettings = (0, import_app_framework.lazy)(() => import("./settings-E3NUTXJ4.cjs"));
47
47
  var MarkdownState = (0, import_app_framework.lazy)(() => import("./state-KKDRAG7X.cjs"));
48
48
  // Annotate the CommonJS export names for ESM import in node:
49
49
  0 && (module.exports = {
@@ -55,4 +55,4 @@ var MarkdownState = (0, import_app_framework.lazy)(() => import("./state-KKDRAG7
55
55
  MarkdownState,
56
56
  ReactSurface
57
57
  });
58
- //# sourceMappingURL=chunk-C4HR7UXE.cjs.map
58
+ //# sourceMappingURL=chunk-4DYNEQG3.cjs.map
@@ -16,20 +16,20 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var chunk_G7RBJX22_exports = {};
20
- __export(chunk_G7RBJX22_exports, {
19
+ var chunk_CJLYFGPI_exports = {};
20
+ __export(chunk_CJLYFGPI_exports, {
21
21
  getAbstract: () => getAbstract,
22
22
  getFallbackName: () => getFallbackName,
23
23
  isMarkdownProperties: () => isMarkdownProperties,
24
24
  serializer: () => serializer,
25
25
  setFallbackName: () => setFallbackName
26
26
  });
27
- module.exports = __toCommonJS(chunk_G7RBJX22_exports);
28
- var import_chunk_RQS4KBMG = require("./chunk-RQS4KBMG.cjs");
27
+ module.exports = __toCommonJS(chunk_CJLYFGPI_exports);
28
+ var import_chunk_3HHV4MM6 = require("./chunk-3HHV4MM6.cjs");
29
29
  var import_async = require("@dxos/async");
30
- var import_echo = require("@dxos/react-client/echo");
30
+ var import_echo = require("@dxos/echo");
31
31
  var import_schema = require("@dxos/schema");
32
- var isMarkdownProperties = (data) => (0, import_echo.isEchoObject)(data) ? true : data && typeof data === "object" ? "title" in data && typeof data.title === "string" : false;
32
+ var isMarkdownProperties = (data) => import_echo.Obj.isObject(data) ? true : data && typeof data === "object" ? "title" in data && typeof data.title === "string" : false;
33
33
  var nonTitleChars = /[^\w ]/g;
34
34
  var getFallbackName = (content) => {
35
35
  return content.substring(0, 31).split("\n")[0].replaceAll(nonTitleChars, "").trim();
@@ -45,22 +45,22 @@ var setFallbackName = (0, import_async.debounce)((doc, content) => {
45
45
  }, 200);
46
46
  var serializer = {
47
47
  serialize: async ({ object }) => {
48
- const content = await (0, import_echo.loadObjectReferences)(object, (doc) => doc.content);
48
+ const { content } = await object.content.load();
49
49
  return JSON.stringify({
50
50
  name: object.name,
51
51
  fallbackName: object.fallbackName,
52
- content: content.target?.content
52
+ content
53
53
  });
54
54
  },
55
55
  deserialize: async ({ content: serialized }) => {
56
56
  const { name, fallbackName, content } = JSON.parse(serialized);
57
- return (0, import_echo.createObject)((0, import_echo.live)(import_chunk_RQS4KBMG.DocumentType, {
57
+ return import_echo.Obj.make(import_chunk_3HHV4MM6.DocumentType, {
58
58
  name,
59
59
  fallbackName,
60
- content: import_echo.Ref.make((0, import_echo.live)(import_schema.DataType.Text, {
60
+ content: import_echo.Ref.make(import_echo.Obj.make(import_schema.DataType.Text, {
61
61
  content
62
62
  }))
63
- }));
63
+ });
64
64
  }
65
65
  };
66
66
  // Annotate the CommonJS export names for ESM import in node:
@@ -71,4 +71,4 @@ var serializer = {
71
71
  serializer,
72
72
  setFallbackName
73
73
  });
74
- //# sourceMappingURL=chunk-G7RBJX22.cjs.map
74
+ //# sourceMappingURL=chunk-CJLYFGPI.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/util.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { debounce } from '@dxos/async';\nimport { Obj, Ref } from '@dxos/echo';\nimport { type TypedObjectSerializer } from '@dxos/plugin-space/types';\nimport { DataType } from '@dxos/schema';\n\nimport { DocumentType, type MarkdownProperties } from './types';\n\nexport const isMarkdownProperties = (data: unknown): data is MarkdownProperties =>\n (Obj.isObject(data) as boolean)\n ? true\n : data && typeof data === 'object'\n ? 'title' in data && typeof data.title === 'string'\n : false;\n\nconst nonTitleChars = /[^\\w ]/g;\n\nexport const getFallbackName = (content: string) => {\n return content.substring(0, 31).split('\\n')[0].replaceAll(nonTitleChars, '').trim();\n};\n\nexport const getAbstract = (content: string) => {\n return content.substring(0, 128).split('\\n')[0].replaceAll(nonTitleChars, '').trim();\n};\n\nexport const setFallbackName = debounce((doc: DocumentType, content: string) => {\n const name = getFallbackName(content);\n if (doc.fallbackName !== name) {\n doc.fallbackName = name;\n }\n}, 200);\n\nexport const serializer: TypedObjectSerializer<DocumentType> = {\n serialize: async ({ object }): Promise<string> => {\n const { content } = await object.content.load();\n return JSON.stringify({ name: object.name, fallbackName: object.fallbackName, content });\n },\n\n deserialize: async ({ content: serialized }) => {\n const { name, fallbackName, content } = JSON.parse(serialized);\n return Obj.make(DocumentType, { name, fallbackName, content: Ref.make(Obj.make(DataType.Text, { content })) });\n },\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,mBAAyB;AACzB,kBAAyB;AAEzB,oBAAyB;AAIlB,IAAMA,uBAAuB,CAACC,SAClCC,gBAAIC,SAASF,IAAAA,IACV,OACAA,QAAQ,OAAOA,SAAS,WACtB,WAAWA,QAAQ,OAAOA,KAAKG,UAAU,WACzC;AAER,IAAMC,gBAAgB;AAEf,IAAMC,kBAAkB,CAACC,YAAAA;AAC9B,SAAOA,QAAQC,UAAU,GAAG,EAAA,EAAIC,MAAM,IAAA,EAAM,CAAA,EAAGC,WAAWL,eAAe,EAAA,EAAIM,KAAI;AACnF;AAEO,IAAMC,cAAc,CAACL,YAAAA;AAC1B,SAAOA,QAAQC,UAAU,GAAG,GAAA,EAAKC,MAAM,IAAA,EAAM,CAAA,EAAGC,WAAWL,eAAe,EAAA,EAAIM,KAAI;AACpF;AAEO,IAAME,sBAAkBC,uBAAS,CAACC,KAAmBR,YAAAA;AAC1D,QAAMS,OAAOV,gBAAgBC,OAAAA;AAC7B,MAAIQ,IAAIE,iBAAiBD,MAAM;AAC7BD,QAAIE,eAAeD;EACrB;AACF,GAAG,GAAA;AAEI,IAAME,aAAkD;EAC7DC,WAAW,OAAO,EAAEC,OAAM,MAAE;AAC1B,UAAM,EAAEb,QAAO,IAAK,MAAMa,OAAOb,QAAQc,KAAI;AAC7C,WAAOC,KAAKC,UAAU;MAAEP,MAAMI,OAAOJ;MAAMC,cAAcG,OAAOH;MAAcV;IAAQ,CAAA;EACxF;EAEAiB,aAAa,OAAO,EAAEjB,SAASkB,WAAU,MAAE;AACzC,UAAM,EAAET,MAAMC,cAAcV,QAAO,IAAKe,KAAKI,MAAMD,UAAAA;AACnD,WAAOvB,gBAAIyB,KAAKC,oCAAc;MAAEZ;MAAMC;MAAcV,SAASsB,gBAAIF,KAAKzB,gBAAIyB,KAAKG,uBAASC,MAAM;QAAExB;MAAQ,CAAA,CAAA;IAAI,CAAA;EAC9G;AACF;",
6
+ "names": ["isMarkdownProperties", "data", "Obj", "isObject", "title", "nonTitleChars", "getFallbackName", "content", "substring", "split", "replaceAll", "trim", "getAbstract", "setFallbackName", "debounce", "doc", "name", "fallbackName", "serializer", "serialize", "object", "load", "JSON", "stringify", "deserialize", "serialized", "parse", "make", "DocumentType", "Ref", "DataType", "Text"]
7
+ }
@@ -16,17 +16,17 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var chunk_ZDTL47I7_exports = {};
20
- __export(chunk_ZDTL47I7_exports, {
19
+ var chunk_SYEFGLXN_exports = {};
20
+ __export(chunk_SYEFGLXN_exports, {
21
21
  translations_default: () => translations_default
22
22
  });
23
- module.exports = __toCommonJS(chunk_ZDTL47I7_exports);
24
- var import_chunk_RQS4KBMG = require("./chunk-RQS4KBMG.cjs");
23
+ module.exports = __toCommonJS(chunk_SYEFGLXN_exports);
24
+ var import_chunk_3HHV4MM6 = require("./chunk-3HHV4MM6.cjs");
25
25
  var import_chunk_ZU5OIHCY = require("./chunk-ZU5OIHCY.cjs");
26
26
  var translations_default = [
27
27
  {
28
28
  "en-US": {
29
- [import_chunk_RQS4KBMG.DocumentType.typename]: {
29
+ [import_chunk_3HHV4MM6.DocumentType.typename]: {
30
30
  "typename label": "Document",
31
31
  "object name placeholder": "New document"
32
32
  },
@@ -61,4 +61,4 @@ var translations_default = [
61
61
  0 && (module.exports = {
62
62
  translations_default
63
63
  });
64
- //# sourceMappingURL=chunk-ZDTL47I7.cjs.map
64
+ //# sourceMappingURL=chunk-SYEFGLXN.cjs.map