@dxos/react-ui-editor 0.3.9-main.b7e6a67 → 0.3.9-main.c414ce0

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 (144) hide show
  1. package/dist/lib/browser/index.mjs +973 -499
  2. package/dist/lib/browser/index.mjs.map +4 -4
  3. package/dist/lib/browser/meta.json +1 -1
  4. package/dist/types/src/automerge/automerge-plugin/PatchSemaphore.d.ts +2 -2
  5. package/dist/types/src/automerge/automerge-plugin/PatchSemaphore.d.ts.map +1 -1
  6. package/dist/types/src/automerge/automerge-plugin/codeMirrorToAm.d.ts +2 -2
  7. package/dist/types/src/automerge/automerge-plugin/codeMirrorToAm.d.ts.map +1 -1
  8. package/dist/types/src/automerge/automerge-plugin/handle.d.ts +9 -0
  9. package/dist/types/src/automerge/automerge-plugin/handle.d.ts.map +1 -0
  10. package/dist/types/src/automerge/automerge-plugin/index.d.ts +2 -2
  11. package/dist/types/src/automerge/automerge-plugin/index.d.ts.map +1 -1
  12. package/dist/types/src/automerge/automerge-plugin/plugin.d.ts +6 -5
  13. package/dist/types/src/automerge/automerge-plugin/plugin.d.ts.map +1 -1
  14. package/dist/types/src/automerge/automerge.stories.d.ts +2 -1
  15. package/dist/types/src/automerge/automerge.stories.d.ts.map +1 -1
  16. package/dist/types/src/components/TextEditor/TextEditor.d.ts +43 -0
  17. package/dist/types/src/components/TextEditor/TextEditor.d.ts.map +1 -0
  18. package/dist/types/src/components/TextEditor/TextEditor.stories.d.ts +15 -0
  19. package/dist/types/src/components/TextEditor/TextEditor.stories.d.ts.map +1 -0
  20. package/dist/types/{stories/html/code-mirror.stories.d.ts → src/components/TextEditor/codemirror.stories.d.ts} +2 -2
  21. package/dist/types/src/components/TextEditor/codemirror.stories.d.ts.map +1 -0
  22. package/dist/types/src/components/TextEditor/extensions/basic/bundle.d.ts +8 -0
  23. package/dist/types/src/components/TextEditor/extensions/basic/bundle.d.ts.map +1 -0
  24. package/dist/types/src/components/TextEditor/extensions/basic/index.d.ts +3 -0
  25. package/dist/types/src/components/TextEditor/extensions/basic/index.d.ts.map +1 -0
  26. package/dist/types/src/components/TextEditor/extensions/basic/theme.d.ts +10 -0
  27. package/dist/types/src/components/TextEditor/extensions/basic/theme.d.ts.map +1 -0
  28. package/dist/types/src/components/TextEditor/extensions/change.d.ts +7 -0
  29. package/dist/types/src/components/TextEditor/extensions/change.d.ts.map +1 -0
  30. package/dist/types/src/components/TextEditor/extensions/hyperlink/hyperlinkDecoration.d.ts +11 -0
  31. package/dist/types/src/components/TextEditor/extensions/hyperlink/hyperlinkDecoration.d.ts.map +1 -0
  32. package/dist/types/src/components/TextEditor/extensions/hyperlink/hyperlinkTooltip.d.ts +8 -0
  33. package/dist/types/src/components/TextEditor/extensions/hyperlink/hyperlinkTooltip.d.ts.map +1 -0
  34. package/dist/types/src/components/TextEditor/extensions/hyperlink/hyperlinkWidget.d.ts +10 -0
  35. package/dist/types/src/components/TextEditor/extensions/hyperlink/hyperlinkWidget.d.ts.map +1 -0
  36. package/dist/types/src/components/TextEditor/extensions/hyperlink/index.d.ts +4 -0
  37. package/dist/types/src/components/TextEditor/extensions/hyperlink/index.d.ts.map +1 -0
  38. package/dist/types/src/components/TextEditor/extensions/index.d.ts +5 -0
  39. package/dist/types/src/components/TextEditor/extensions/index.d.ts.map +1 -0
  40. package/dist/types/src/components/TextEditor/extensions/markdown/bundle.d.ts +8 -0
  41. package/dist/types/src/components/TextEditor/extensions/markdown/bundle.d.ts.map +1 -0
  42. package/dist/types/src/components/TextEditor/extensions/markdown/index.d.ts +3 -0
  43. package/dist/types/src/components/TextEditor/extensions/markdown/index.d.ts.map +1 -0
  44. package/dist/types/src/components/{Markdown/markdownTags.d.ts → TextEditor/extensions/markdown/tags.d.ts} +1 -1
  45. package/dist/types/src/components/TextEditor/extensions/markdown/tags.d.ts.map +1 -0
  46. package/dist/types/src/components/TextEditor/extensions/markdown/theme.d.ts +21 -0
  47. package/dist/types/src/components/TextEditor/extensions/markdown/theme.d.ts.map +1 -0
  48. package/dist/types/src/components/TextEditor/index.d.ts +4 -0
  49. package/dist/types/src/components/TextEditor/index.d.ts.map +1 -0
  50. package/dist/types/src/components/TextEditor/yjs.stories.d.ts +11 -0
  51. package/dist/types/src/components/TextEditor/yjs.stories.d.ts.map +1 -0
  52. package/dist/types/src/components/index.d.ts +1 -3
  53. package/dist/types/src/components/index.d.ts.map +1 -1
  54. package/dist/types/src/hooks/index.d.ts +4 -0
  55. package/dist/types/src/hooks/index.d.ts.map +1 -0
  56. package/dist/types/src/hooks/useCollaboration.d.ts +9 -0
  57. package/dist/types/src/hooks/useCollaboration.d.ts.map +1 -0
  58. package/dist/types/src/{model.d.ts → hooks/useTextModel.d.ts} +3 -15
  59. package/dist/types/src/hooks/useTextModel.d.ts.map +1 -0
  60. package/dist/types/src/hooks/yjs/cursors.d.ts.map +1 -0
  61. package/dist/types/src/hooks/yjs/index.d.ts.map +1 -0
  62. package/dist/types/src/hooks/yjs/space-provider.d.ts.map +1 -0
  63. package/dist/types/src/index.d.ts +2 -2
  64. package/dist/types/src/index.d.ts.map +1 -1
  65. package/dist/types/src/styles/tokens.d.ts +4 -0
  66. package/dist/types/src/styles/tokens.d.ts.map +1 -1
  67. package/dist/types/src/testing/replicator.d.ts +1 -1
  68. package/dist/types/src/testing/replicator.d.ts.map +1 -1
  69. package/package.json +34 -27
  70. package/src/automerge/automerge-plugin/PatchSemaphore.ts +5 -5
  71. package/src/automerge/automerge-plugin/codeMirrorToAm.ts +10 -7
  72. package/src/automerge/automerge-plugin/handle.ts +14 -0
  73. package/src/automerge/automerge-plugin/index.ts +2 -2
  74. package/src/automerge/automerge-plugin/plugin.ts +39 -10
  75. package/src/automerge/automerge.stories.tsx +32 -48
  76. package/src/components/TextEditor/TextEditor.stories.tsx +79 -0
  77. package/src/components/TextEditor/TextEditor.tsx +188 -0
  78. package/src/components/TextEditor/codemirror.stories.ts +114 -0
  79. package/src/components/TextEditor/extensions/basic/bundle.ts +26 -0
  80. package/src/components/TextEditor/extensions/basic/index.ts +6 -0
  81. package/src/components/TextEditor/extensions/basic/theme.ts +49 -0
  82. package/src/components/TextEditor/extensions/change.ts +22 -0
  83. package/src/components/TextEditor/extensions/hyperlink/hyperlinkDecoration.ts +99 -0
  84. package/src/components/TextEditor/extensions/hyperlink/hyperlinkTooltip.tsx +61 -0
  85. package/src/components/TextEditor/extensions/hyperlink/hyperlinkWidget.tsx +119 -0
  86. package/src/components/TextEditor/extensions/hyperlink/index.ts +7 -0
  87. package/src/components/TextEditor/extensions/index.ts +8 -0
  88. package/src/components/TextEditor/extensions/markdown/bundle.ts +99 -0
  89. package/src/components/TextEditor/extensions/markdown/index.ts +6 -0
  90. package/src/components/{Markdown/markdownTheme.ts → TextEditor/extensions/markdown/theme.ts} +42 -27
  91. package/src/components/TextEditor/index.ts +8 -0
  92. package/src/components/TextEditor/yjs.stories.tsx +55 -0
  93. package/src/components/index.ts +1 -3
  94. package/src/hooks/index.ts +7 -0
  95. package/src/hooks/useCollaboration.ts +45 -0
  96. package/src/{model.ts → hooks/useTextModel.ts} +42 -17
  97. package/src/index.ts +3 -3
  98. package/src/styles/tokens.ts +6 -0
  99. package/src/testing/replicator.ts +1 -3
  100. package/dist/types/src/automerge/demo.d.ts +0 -25
  101. package/dist/types/src/automerge/demo.d.ts.map +0 -1
  102. package/dist/types/src/components/Editor/Editor.d.ts +0 -15
  103. package/dist/types/src/components/Editor/Editor.d.ts.map +0 -1
  104. package/dist/types/src/components/Editor/Editor.stories.d.ts +0 -28
  105. package/dist/types/src/components/Editor/Editor.stories.d.ts.map +0 -1
  106. package/dist/types/src/components/Editor/index.d.ts +0 -2
  107. package/dist/types/src/components/Editor/index.d.ts.map +0 -1
  108. package/dist/types/src/components/Markdown/Markdown.d.ts +0 -19
  109. package/dist/types/src/components/Markdown/Markdown.d.ts.map +0 -1
  110. package/dist/types/src/components/Markdown/Markdown.stories.d.ts +0 -19
  111. package/dist/types/src/components/Markdown/Markdown.stories.d.ts.map +0 -1
  112. package/dist/types/src/components/Markdown/index.d.ts +0 -2
  113. package/dist/types/src/components/Markdown/index.d.ts.map +0 -1
  114. package/dist/types/src/components/Markdown/markdownTags.d.ts.map +0 -1
  115. package/dist/types/src/components/Markdown/markdownTheme.d.ts +0 -107
  116. package/dist/types/src/components/Markdown/markdownTheme.d.ts.map +0 -1
  117. package/dist/types/src/components/RichText/RichText.d.ts +0 -20
  118. package/dist/types/src/components/RichText/RichText.d.ts.map +0 -1
  119. package/dist/types/src/components/RichText/RichText.stories.d.ts +0 -26
  120. package/dist/types/src/components/RichText/RichText.stories.d.ts.map +0 -1
  121. package/dist/types/src/components/RichText/index.d.ts +0 -2
  122. package/dist/types/src/components/RichText/index.d.ts.map +0 -1
  123. package/dist/types/src/model.d.ts.map +0 -1
  124. package/dist/types/src/yjs/cursors.d.ts.map +0 -1
  125. package/dist/types/src/yjs/index.d.ts.map +0 -1
  126. package/dist/types/src/yjs/space-provider.d.ts.map +0 -1
  127. package/dist/types/stories/html/code-mirror.stories.d.ts.map +0 -1
  128. package/src/automerge/demo.ts +0 -106
  129. package/src/components/Editor/Editor.stories.tsx +0 -80
  130. package/src/components/Editor/Editor.tsx +0 -33
  131. package/src/components/Editor/index.ts +0 -5
  132. package/src/components/Markdown/Markdown.stories.tsx +0 -56
  133. package/src/components/Markdown/Markdown.tsx +0 -206
  134. package/src/components/Markdown/index.ts +0 -5
  135. package/src/components/RichText/RichText.stories.tsx +0 -68
  136. package/src/components/RichText/RichText.tsx +0 -181
  137. package/src/components/RichText/index.ts +0 -5
  138. /package/dist/types/src/{yjs → hooks/yjs}/cursors.d.ts +0 -0
  139. /package/dist/types/src/{yjs → hooks/yjs}/index.d.ts +0 -0
  140. /package/dist/types/src/{yjs → hooks/yjs}/space-provider.d.ts +0 -0
  141. /package/src/components/{Markdown/markdownTags.ts → TextEditor/extensions/markdown/tags.ts} +0 -0
  142. /package/src/{yjs → hooks/yjs}/cursors.ts +0 -0
  143. /package/src/{yjs → hooks/yjs}/index.ts +0 -0
  144. /package/src/{yjs → hooks/yjs}/space-provider.ts +0 -0
@@ -0,0 +1,55 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import '@dxosTheme';
6
+
7
+ import React, { useState } from 'react';
8
+
9
+ import { PublicKey } from '@dxos/react-client';
10
+ import { TextKind } from '@dxos/react-client/echo';
11
+ import { ClientRepeater, textGenerator, useDataGenerator } from '@dxos/react-client/testing';
12
+ import { useId, Input } from '@dxos/react-ui';
13
+ import { withTheme } from '@dxos/storybook-utils';
14
+
15
+ import { MarkdownEditor } from './TextEditor';
16
+ import { Replicator, useYjsModel } from '../../testing';
17
+
18
+ export default {
19
+ component: MarkdownEditor,
20
+ decorators: [withTheme],
21
+ };
22
+
23
+ const replicator = new Replicator(TextKind.PLAIN);
24
+
25
+ const Story = () => {
26
+ const [generate, setGenerate] = useState(false);
27
+ const generateId = useId('generate');
28
+
29
+ const [id] = useState(PublicKey.random().toHex());
30
+ const model = useYjsModel({ id, replicator });
31
+
32
+ useDataGenerator({
33
+ generator: generate ? textGenerator : undefined,
34
+ options: { text: typeof model?.content !== 'string' ? (model?.content as any) : undefined },
35
+ });
36
+
37
+ return (
38
+ <main className='flex flex-col flex-1 p-4 gap-4'>
39
+ <div id={generateId} className='flex gap-2'>
40
+ <Input.Root>
41
+ <Input.Checkbox checked={generate} onCheckedChange={(checked) => setGenerate(!!checked)} />
42
+ <Input.Label>Start</Input.Label>
43
+ </Input.Root>
44
+ </div>
45
+ <div className='border'>
46
+ <MarkdownEditor model={model} />
47
+ </div>
48
+ </main>
49
+ );
50
+ };
51
+
52
+ export const Default = {
53
+ // TODO(wittjosiah): Decorator for doing this without clients being initialized?
54
+ render: () => <ClientRepeater count={2} Component={Story} />,
55
+ };
@@ -2,6 +2,4 @@
2
2
  // Copyright 2022 DXOS.org
3
3
  //
4
4
 
5
- export * from './Editor';
6
- export * from './Markdown';
7
- export * from './RichText';
5
+ export * from './TextEditor';
@@ -0,0 +1,7 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ export * from './useCollaboration';
6
+ export * from './useTextModel';
7
+ export * from './yjs';
@@ -0,0 +1,45 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import type { Extension } from '@codemirror/state';
6
+ import { useEffect, useMemo } from 'react';
7
+ import { yCollab } from 'y-codemirror.next';
8
+
9
+ import { generateName } from '@dxos/display-name';
10
+ import { isDocAccessor } from '@dxos/echo-schema';
11
+ import type { ThemeMode } from '@dxos/react-ui';
12
+ import { getColorForValue } from '@dxos/react-ui-theme';
13
+ import { YText } from '@dxos/text-model';
14
+
15
+ import type { EditorModel } from './useTextModel';
16
+ import { automergePlugin } from '../automerge/automerge-plugin';
17
+
18
+ /**
19
+ * Replication and awareness (incl. remote selection).
20
+ * https://codemirror.net/docs/ref/#collab
21
+ */
22
+ export const useCollaboration = (model: EditorModel, themeMode: ThemeMode): Extension | undefined => {
23
+ const { provider, peer, content } = model;
24
+ const extension = useMemo(() => {
25
+ if (content instanceof YText) {
26
+ return yCollab(content, provider?.awareness);
27
+ } else if (isDocAccessor(content)) {
28
+ return automergePlugin(content.handle, content.path);
29
+ } else {
30
+ return undefined;
31
+ }
32
+ }, []);
33
+
34
+ useEffect(() => {
35
+ if (provider && peer) {
36
+ provider.awareness.setLocalStateField('user', {
37
+ name: peer.name ?? generateName(peer.id),
38
+ color: getColorForValue({ value: peer.id, type: 'color' }),
39
+ colorLight: getColorForValue({ value: peer.id, themeMode, type: 'highlight' }),
40
+ });
41
+ }
42
+ }, [provider, peer, themeMode]);
43
+
44
+ return extension;
45
+ };
@@ -2,34 +2,30 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { type EditorView } from '@codemirror/view';
6
- import { type ComponentProps, useMemo } from 'react';
5
+ import { useMemo } from 'react';
7
6
  import type * as awarenessProtocol from 'y-protocols/awareness';
8
7
 
9
- import { type Space, type TextObject } from '@dxos/react-client/echo';
8
+ import {
9
+ type DocAccessor,
10
+ type Space,
11
+ type TextObject,
12
+ type AutomergeTextCompat,
13
+ getRawDoc,
14
+ isActualAutomergeObject,
15
+ } from '@dxos/react-client/echo';
10
16
  import { type Identity } from '@dxos/react-client/halo';
11
17
  import type { YText, YXmlFragment } from '@dxos/text-model';
12
18
 
13
19
  import { SpaceAwarenessProvider } from './yjs';
14
20
 
15
- export type EditorSlots = {
16
- root?: Omit<ComponentProps<'div'>, 'ref'>;
17
- editor?: {
18
- className?: string;
19
- placeholder?: string;
20
- spellCheck?: boolean;
21
- tabIndex?: number;
22
- markdownTheme?: Parameters<typeof EditorView.theme>[0];
23
- };
24
- };
25
-
21
+ // TODO(burdon): Move.
26
22
  type Awareness = awarenessProtocol.Awareness;
27
23
  type Provider = { awareness: Awareness };
28
24
 
29
25
  // TODO(wittjosiah): Factor out to common package? @dxos/react-client?
30
26
  export type EditorModel = {
31
27
  id: string;
32
- content: string | YText | YXmlFragment;
28
+ content: string | YText | YXmlFragment | DocAccessor;
33
29
  provider?: Provider;
34
30
  peer?: {
35
31
  id: string;
@@ -43,16 +39,45 @@ export type UseTextModelOptions = {
43
39
  text?: TextObject;
44
40
  };
45
41
 
46
- // TODO(wittjosiah): Factor out to common package? @dxos/react-client?
42
+ // TODO(burdon): Don't support returning undefined (and remove checks from calling code).
47
43
  // TODO(burdon): Decouple space (make Editor less dependent on entire stack)?
44
+ // TODO(wittjosiah): Factor out to common package? @dxos/react-client?
48
45
  export const useTextModel = ({ identity, space, text }: UseTextModelOptions): EditorModel | undefined => {
49
46
  const provider = useMemo(() => {
47
+ if (isActualAutomergeObject(text)) {
48
+ return undefined;
49
+ }
50
+
50
51
  if (!space || !text?.doc) {
51
52
  return undefined;
52
53
  }
53
54
 
54
55
  return new SpaceAwarenessProvider({ space, doc: text.doc, channel: `yjs.awareness.${text.id}` });
55
- }, [identity, space, text?.doc]);
56
+ }, [identity, space, text, text?.doc]);
57
+
58
+ const content = useMemo(() => {
59
+ if (isActualAutomergeObject(text)) {
60
+ const obj = text as any as AutomergeTextCompat;
61
+ return getRawDoc(obj, [obj.field]);
62
+ } else {
63
+ return text?.content;
64
+ }
65
+ }, [text]);
66
+
67
+ if (isActualAutomergeObject(text)) {
68
+ const obj = text as any as AutomergeTextCompat;
69
+ return {
70
+ id: obj.id,
71
+ content: content!,
72
+ provider: undefined,
73
+ peer: identity
74
+ ? {
75
+ id: identity.identityKey.toHex(),
76
+ name: identity.profile?.displayName,
77
+ }
78
+ : undefined,
79
+ };
80
+ }
56
81
 
57
82
  if (!text?.doc || !text?.content) {
58
83
  return undefined;
package/src/index.ts CHANGED
@@ -2,8 +2,8 @@
2
2
  // Copyright 2022 DXOS.org
3
3
  //
4
4
 
5
- export * from './components';
6
- export * from './model';
7
-
8
5
  export { TextKind } from '@dxos/protocols/proto/dxos/echo/model/text';
9
6
  export { Doc, YText, YXmlFragment } from '@dxos/text-model';
7
+
8
+ export * from './components';
9
+ export * from './hooks';
@@ -2,7 +2,13 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
+ import type { StyleSpec } from 'style-mod';
6
+
5
7
  import { tailwindConfig, type TailwindConfig } from '@dxos/react-ui-theme';
6
8
 
9
+ export type ThemeStyles = {
10
+ [selector: string]: StyleSpec;
11
+ };
12
+
7
13
  // TODO(thure): Why export the whole theme? Can this be done differently?
8
14
  export const tokens: TailwindConfig['theme'] = tailwindConfig({}).theme;
@@ -15,8 +15,7 @@ import { Event } from '@dxos/async';
15
15
  import { log } from '@dxos/log';
16
16
  import { TextKind } from '@dxos/protocols/proto/dxos/echo/model/text';
17
17
 
18
- import { type EditorModel } from '../model';
19
- import { cursorColor } from '../yjs';
18
+ import { cursorColor, type EditorModel } from '../hooks';
20
19
 
21
20
  type Awareness = awarenessProtocol.Awareness;
22
21
 
@@ -186,6 +185,5 @@ export type UseYjsModelOptions = {
186
185
 
187
186
  export const useYjsModel = ({ replicator, id, doc }: UseYjsModelOptions): EditorModel => {
188
187
  const peer = useMemo(() => replicator.createPeer(id, doc), [doc]);
189
-
190
188
  return peer;
191
189
  };
@@ -1,25 +0,0 @@
1
- import { Event } from '@dxos/async';
2
- import { type Doc, next as automerge, type ChangeOptions, type ChangeFn, type Heads } from '@dxos/automerge/automerge';
3
- export declare class Peer {
4
- changeEvent: Event<void>;
5
- storage: Map<string, Uint8Array>;
6
- stats: {
7
- messagesSent: number;
8
- messagesReceived: number;
9
- bytesSent: number;
10
- bytesReceived: number;
11
- snapshotBytes: number;
12
- incrementalBytes: number;
13
- };
14
- doc: Doc<{
15
- text: string;
16
- }>;
17
- change(options: string | ChangeOptions<any> | ChangeFn<any>, callback?: ChangeFn<any>): void;
18
- changeAt(scope: Heads, options: string | ChangeOptions<any> | ChangeFn<any>, callback?: ChangeFn<any>): automerge.Heads | null;
19
- replicate(): {
20
- readable: ReadableStream<Uint8Array>;
21
- writable: WritableStream<Uint8Array>;
22
- };
23
- private _handleChange;
24
- }
25
- //# sourceMappingURL=demo.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"demo.d.ts","sourceRoot":"","sources":["../../../../src/automerge/demo.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EACL,KAAK,GAAG,EACR,IAAI,IAAI,SAAS,EACjB,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,KAAK,EAEX,MAAM,2BAA2B,CAAC;AAEnC,qBAAa,IAAI;IACf,WAAW,cAAe;IAE1B,OAAO,0BAAiC;IACxC,KAAK;;;;;;;MAOH;IAEF,GAAG,EAAG,GAAG,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAE5B,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC;IAKrF,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC;IAOrG,SAAS,IAAI;QAAE,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;QAAC,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,CAAA;KAAE;IAgD3F,OAAO,CAAC,aAAa;CAgBtB"}
@@ -1,15 +0,0 @@
1
- import React from 'react';
2
- import { type EditorSlots, type UseTextModelOptions } from '../../model';
3
- import { type MarkdownEditorRef } from '../Markdown';
4
- export type EditorProps = UseTextModelOptions & {
5
- slots?: EditorSlots;
6
- };
7
- /**
8
- * Memoized editor which depends on DXOS platform.
9
- *
10
- * Determines which editor to render based on the kind of text.
11
- */
12
- export declare const Editor: React.MemoExoticComponent<React.ForwardRefExoticComponent<UseTextModelOptions & {
13
- slots?: EditorSlots | undefined;
14
- } & React.RefAttributes<MarkdownEditorRef | import("@tiptap/react").Editor>>>;
15
- //# sourceMappingURL=Editor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Editor.d.ts","sourceRoot":"","sources":["../../../../../src/components/Editor/Editor.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAqC,MAAM,OAAO,CAAC;AAI1D,OAAO,EAAE,KAAK,WAAW,EAAgB,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGrE,MAAM,MAAM,WAAW,GAAG,mBAAmB,GAAG;IAC9C,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB,CAAC;AAEF;;;;GAIG;AAGH,eAAO,MAAM,MAAM;;6EASlB,CAAC"}
@@ -1,28 +0,0 @@
1
- import '@dxosTheme';
2
- import React from 'react';
3
- declare const _default: {
4
- component: React.MemoExoticComponent<React.ForwardRefExoticComponent<import("../..").UseTextModelOptions & {
5
- slots?: import("../..").EditorSlots | undefined;
6
- } & React.RefAttributes<import("..").MarkdownEditorRef | import("@tiptap/react").Editor>>>;
7
- };
8
- export default _default;
9
- export declare const Markdown: {
10
- render: (args: {
11
- id: number;
12
- }) => JSX.Element;
13
- decorators: import("@storybook/csf").DecoratorFunction<import("@storybook/react/dist/types-0a347bb9").R, any>[];
14
- };
15
- export declare const Rich: {
16
- render: (args: {
17
- id: number;
18
- }) => JSX.Element;
19
- args: {
20
- slots: {
21
- editor: {
22
- className: string;
23
- };
24
- };
25
- };
26
- decorators: import("@storybook/csf").DecoratorFunction<import("@storybook/react/dist/types-0a347bb9").R, any>[];
27
- };
28
- //# sourceMappingURL=Editor.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Editor.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/Editor/Editor.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,YAAY,CAAC;AAEpB,OAAO,KAAmB,MAAM,OAAO,CAAC;;;;;;AAWxC,wBAEE;AAoCF,eAAO,MAAM,QAAQ;mBACJ;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE;;CAE9B,CAAC;AAWF,eAAO,MAAM,IAAI;mBACA;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE;;;;;;;;;CAS9B,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from './Editor';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Editor/index.ts"],"names":[],"mappings":"AAIA,cAAc,UAAU,CAAC"}
@@ -1,19 +0,0 @@
1
- import { EditorState, type Text } from '@codemirror/state';
2
- import { EditorView } from '@codemirror/view';
3
- import React from 'react';
4
- import { type EditorModel, type EditorSlots } from '../../model';
5
- export declare const EditorModes: readonly ["default", "vim"];
6
- export type EditorMode = (typeof EditorModes)[number];
7
- export type MarkdownEditorProps = {
8
- model?: EditorModel;
9
- slots?: EditorSlots;
10
- editorMode?: EditorMode;
11
- onChange?: (content: string | Text) => void;
12
- };
13
- export type MarkdownEditorRef = {
14
- editor: HTMLDivElement | null;
15
- state?: EditorState;
16
- view?: EditorView;
17
- };
18
- export declare const MarkdownEditor: React.ForwardRefExoticComponent<MarkdownEditorProps & React.RefAttributes<MarkdownEditorRef>>;
19
- //# sourceMappingURL=Markdown.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Markdown.d.ts","sourceRoot":"","sources":["../../../../../src/components/Markdown/Markdown.tsx"],"names":[],"mappings":"AAiBA,OAAO,EAAE,WAAW,EAAc,KAAK,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEvE,OAAO,EAUL,UAAU,EACX,MAAM,kBAAkB,CAAC;AAG1B,OAAO,KAQN,MAAM,OAAO,CAAC;AAUf,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAEjE,eAAO,MAAM,WAAW,6BAA8B,CAAC;AACvD,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtD,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,cAAc,+FAwI1B,CAAC"}
@@ -1,19 +0,0 @@
1
- import '@dxosTheme';
2
- import React from 'react';
3
- declare const _default: {
4
- component: React.ForwardRefExoticComponent<import("./Markdown").MarkdownEditorProps & React.RefAttributes<import("./Markdown").MarkdownEditorRef>>;
5
- };
6
- export default _default;
7
- export declare const Default: {
8
- args: {
9
- model: {
10
- id: string;
11
- content: string;
12
- };
13
- };
14
- };
15
- export declare const WithYjs: {
16
- render: () => JSX.Element;
17
- decorators: import("@storybook/csf").DecoratorFunction<import("@storybook/react/dist/types-0a347bb9").R, any>[];
18
- };
19
- //# sourceMappingURL=Markdown.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Markdown.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/Markdown/Markdown.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,YAAY,CAAC;AAEpB,OAAO,KAAmB,MAAM,OAAO,CAAC;;;;AAUxC,wBAEE;AAEF,eAAO,MAAM,OAAO;;;;;;;CAOnB,CAAC;AAGF,eAAO,MAAM,OAAO;;;CAyBnB,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from './Markdown';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Markdown/index.ts"],"names":[],"mappings":"AAIA,cAAc,YAAY,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"markdownTags.d.ts","sourceRoot":"","sources":["../../../../../src/components/Markdown/markdownTags.ts"],"names":[],"mappings":"AAIA,OAAO,EAAa,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,eAAO,MAAM,YAAY;;;;;;;;;;;;CAYxB,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,cAgBnC,CAAC"}
@@ -1,107 +0,0 @@
1
- import { HighlightStyle } from '@codemirror/language';
2
- export declare const chalky = "#e5c07b";
3
- export declare const coral = "#e06c75";
4
- export declare const cyan = "#56b6c2";
5
- export declare const invalid = "#ffffff";
6
- export declare const ivory = "#abb2bf";
7
- export declare const stone = "#7d8799";
8
- export declare const malibu = "#61afef";
9
- export declare const sage = "#98c379";
10
- export declare const whiskey = "#d19a66";
11
- export declare const violet = "#c678dd";
12
- export declare const highlightBackground = "#2c313a";
13
- export declare const tooltipBackground = "#353a42";
14
- export declare const cursor = "#ffffff";
15
- export declare const markdownTheme: {
16
- '.dark & .cm-tooltip': {
17
- border: string;
18
- backgroundColor: string;
19
- };
20
- '.dark & .cm-tooltip .cm-tooltip-arrow:before': {
21
- borderTopColor: string;
22
- borderBottomColor: string;
23
- };
24
- '.dark & .cm-tooltip .cm-tooltip-arrow:after': {
25
- borderTopColor: string;
26
- borderBottomColor: string;
27
- };
28
- '.dark & .cm-tooltip-autocomplete': {
29
- '& > ul > li[aria-selected]': {
30
- backgroundColor: string;
31
- color: string;
32
- };
33
- };
34
- '&.cm-focused': {
35
- outline: string;
36
- };
37
- '& .cm-line': {
38
- paddingInline: number;
39
- minBlockSize: string;
40
- };
41
- '& .cm-line *': {
42
- lineHeight: number;
43
- };
44
- '&.cm-focused .cm-selectionBackground, & .cm-selectionBackground': {
45
- background: any;
46
- };
47
- '.dark & .cm-selectionBackground, .dark &.cm-focused .cm-selectionBackground': {
48
- background: any;
49
- };
50
- '& .cm-selectionMatch': {
51
- background: string;
52
- };
53
- '.dark & .cm-selectionMatch': {
54
- background: string;
55
- };
56
- '& .cm-content': {
57
- caretColor: string;
58
- };
59
- '.dark & .cm-content': {
60
- caretColor: string;
61
- };
62
- '& .cm-cursor': {
63
- borderLeftColor: string;
64
- };
65
- '.dark & .cm-cursor': {
66
- borderLeftColor: string;
67
- };
68
- '.cm-placeholder': {
69
- fontFamily: any;
70
- };
71
- '& .cm-scroller': {
72
- fontFamily: any;
73
- overflow: string;
74
- };
75
- '& .cm-activeLine': {
76
- backgroundColor: string;
77
- };
78
- '.dark & .cm-activeLine': {
79
- backgroundColor: string;
80
- };
81
- '& .cm-ySelectionInfo': {
82
- fontFamily: any;
83
- padding: string;
84
- marginBlockStart: string;
85
- };
86
- '& .cm-ySelection, & .cm-selectionMatch': {
87
- paddingBlockStart: string;
88
- paddingBlockEnd: string;
89
- };
90
- '& .cm-ySelection, & .cm-yLineSelection': {
91
- mixBlendMode: string;
92
- };
93
- '.dark & .cm-ySelection, .dark & .cm-yLineSelection': {
94
- mixBlendMode: string;
95
- };
96
- '& .cm-ySelectionCaret': {
97
- display: string;
98
- insetBlockStart: string;
99
- blockSize: string;
100
- verticalAlign: string;
101
- };
102
- '& .cm-yLineSelection': {
103
- margin: string;
104
- };
105
- };
106
- export declare const markdownDarkHighlighting: HighlightStyle;
107
- //# sourceMappingURL=markdownTheme.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"markdownTheme.d.ts","sourceRoot":"","sources":["../../../../../src/components/Markdown/markdownTheme.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAUtD,eAAO,MAAM,MAAM,YAAY,CAAC;AAChC,eAAO,MAAM,KAAK,YAAY,CAAC;AAC/B,eAAO,MAAM,IAAI,YAAY,CAAC;AAC9B,eAAO,MAAM,OAAO,YAAY,CAAC;AACjC,eAAO,MAAM,KAAK,YAAY,CAAC;AAC/B,eAAO,MAAM,KAAK,YAAY,CAAC;AAC/B,eAAO,MAAM,MAAM,YAAY,CAAC;AAChC,eAAO,MAAM,IAAI,YAAY,CAAC;AAC9B,eAAO,MAAM,OAAO,YAAY,CAAC;AACjC,eAAO,MAAM,MAAM,YAAY,CAAC;AAEhC,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAE7C,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAE3C,eAAO,MAAM,MAAM,YAAY,CAAC;AAIhC,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwIzB,CAAC;AAEF,eAAO,MAAM,wBAAwB,gBA6EpC,CAAC"}
@@ -1,20 +0,0 @@
1
- import { type Editor } from '@tiptap/react';
2
- import React from 'react';
3
- import { type EditorModel, type EditorSlots } from '../../model';
4
- export type TipTapEditor = Editor;
5
- type UseEditorOptions = {
6
- model?: EditorModel;
7
- placeholder?: string;
8
- slots?: Pick<EditorSlots, 'editor'>;
9
- };
10
- export type RichTextEditorProps = UseEditorOptions & {
11
- slots?: EditorSlots;
12
- };
13
- /**
14
- * @deprecated
15
- */
16
- export declare const RichTextEditor: React.ForwardRefExoticComponent<UseEditorOptions & {
17
- slots?: EditorSlots | undefined;
18
- } & React.RefAttributes<Editor | null>>;
19
- export {};
20
- //# sourceMappingURL=RichText.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RichText.d.ts","sourceRoot":"","sources":["../../../../../src/components/RichText/RichText.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,MAAM,EAAgD,MAAM,eAAe,CAAC;AAE1F,OAAO,KAAmD,MAAM,OAAO,CAAC;AAKxE,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAkBjE,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAElC,KAAK,gBAAgB,GAAG;IACtB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;CACrC,CAAC;AA2HF,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,GAAG;IACnD,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB,CAAC;AAEF;;GAEG;AAEH,eAAO,MAAM,cAAc;;uCASzB,CAAC"}
@@ -1,26 +0,0 @@
1
- import '@dxosTheme';
2
- import React from 'react';
3
- import { type RichTextEditorProps } from './RichText';
4
- declare const _default: {
5
- component: React.ForwardRefExoticComponent<{
6
- model?: import("../..").EditorModel | undefined;
7
- placeholder?: string | undefined;
8
- slots?: Pick<import("../..").EditorSlots, "editor"> | undefined;
9
- } & {
10
- slots?: import("../..").EditorSlots | undefined;
11
- } & React.RefAttributes<import("@tiptap/react").Editor | null>>;
12
- };
13
- export default _default;
14
- export declare const Default: {
15
- args: {
16
- model: {
17
- id: string;
18
- content: string;
19
- };
20
- };
21
- };
22
- export declare const WithYjs: {
23
- render: (args: Omit<RichTextEditorProps, 'model'>) => JSX.Element;
24
- decorators: import("@storybook/csf").DecoratorFunction<import("@storybook/react/dist/types-0a347bb9").R, any>[];
25
- };
26
- //# sourceMappingURL=RichText.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RichText.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/RichText/RichText.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,YAAY,CAAC;AAEpB,OAAO,KAAmB,MAAM,OAAO,CAAC;AAQxC,OAAO,EAAkB,KAAK,mBAAmB,EAAE,MAAM,YAAY,CAAC;;;;;;;;;;AAGtE,wBAEE;AAEF,eAAO,MAAM,OAAO;;;;;;;CAOnB,CAAC;AAGF,eAAO,MAAM,OAAO;mBACH,KAAK,mBAAmB,EAAE,OAAO,CAAC;;CAmClD,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from './RichText';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/RichText/index.ts"],"names":[],"mappings":"AAIA,cAAc,YAAY,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/model.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,KAAK,cAAc,EAAW,MAAM,OAAO,CAAC;AACrD,OAAO,KAAK,KAAK,iBAAiB,MAAM,uBAAuB,CAAC;AAEhE,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAI5D,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;IAC1C,MAAM,CAAC,EAAE;QACP,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACxD,CAAC;CACH,CAAC;AAEF,KAAK,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC;AAC7C,KAAK,QAAQ,GAAG;IAAE,SAAS,EAAE,SAAS,CAAA;CAAE,CAAC;AAGzC,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,YAAY,CAAC;IACvC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,IAAI,CAAC,EAAE;QACL,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB,CAAC;AAIF,eAAO,MAAM,YAAY,8BAA+B,mBAAmB,KAAG,WAAW,GAAG,SAwB3F,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"cursors.d.ts","sourceRoot":"","sources":["../../../../src/yjs/cursors.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,WAAW;;;CAAsD,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/yjs/index.ts"],"names":[],"mappings":"AAIA,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"space-provider.d.ts","sourceRoot":"","sources":["../../../../src/yjs/space-provider.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,iBAAiB,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AAG/B,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAGrD,KAAK,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC;AAO7C;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,UAAU,CAAC,GAAG,CAAC;IACzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEtB,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,GAAG,EAAE,GAAG,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,SAAS,CAAA;KAAE;IA+BlH,IAAI,SAAS,IAAI,SAAS,CAEzB;IAED,OAAO,CAAC,sBAAsB;IAY9B,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,YAAY;IAoCpB,OAAO,CAAC,mBAAmB;CAG5B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"code-mirror.stories.d.ts","sourceRoot":"","sources":["../../../../stories/html/code-mirror.stories.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAKhD,OAAO,EAAE,MAAM,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;;;;AAS5D,wBAEE;AAoEF,eAAO,MAAM,OAAO,EAAE,QAAQ,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,CAoBjF,CAAC"}