@dxos/plugin-presenter 0.8.4-main.1068cf700f → 0.8.4-main.1c7ec43d41

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 (170) hide show
  1. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  2. package/dist/lib/browser/chunk-J5LGTIGS.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +17 -50
  4. package/dist/lib/browser/index.mjs.map +4 -4
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/lib/browser/operations/index.mjs +30 -0
  7. package/dist/lib/browser/operations/index.mjs.map +7 -0
  8. package/dist/lib/browser/translations.mjs +19 -0
  9. package/dist/lib/browser/translations.mjs.map +7 -0
  10. package/dist/types/src/PresenterPlugin.d.ts +1 -0
  11. package/dist/types/src/PresenterPlugin.d.ts.map +1 -1
  12. package/dist/types/src/PresenterPlugin.node.d.ts +4 -0
  13. package/dist/types/src/PresenterPlugin.node.d.ts.map +1 -0
  14. package/dist/types/src/PresenterPlugin.test.d.ts +2 -0
  15. package/dist/types/src/PresenterPlugin.test.d.ts.map +1 -0
  16. package/dist/types/src/capabilities/app-graph-builder.d.ts +6 -0
  17. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
  18. package/dist/types/src/capabilities/index.d.ts +4 -3
  19. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  20. package/dist/types/src/capabilities/react-surface.d.ts +5 -0
  21. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  22. package/dist/types/src/capabilities/settings.d.ts +7 -0
  23. package/dist/types/src/capabilities/settings.d.ts.map +1 -0
  24. package/dist/types/src/components/Markdown/Panel.d.ts +8 -0
  25. package/dist/types/src/components/Markdown/Panel.d.ts.map +1 -0
  26. package/dist/types/src/components/Markdown/{Container.stories.d.ts → Panel.stories.d.ts} +1 -1
  27. package/dist/types/src/components/Markdown/Panel.stories.d.ts.map +1 -0
  28. package/dist/types/src/components/Markdown/Slide.d.ts +1 -1
  29. package/dist/types/src/components/Markdown/Slide.d.ts.map +1 -1
  30. package/dist/types/src/components/Markdown/Slide.stories.d.ts.map +1 -1
  31. package/dist/types/src/components/Markdown/index.d.ts +1 -1
  32. package/dist/types/src/components/Markdown/index.d.ts.map +1 -1
  33. package/dist/types/src/components/Markdown/theme.d.ts.map +1 -1
  34. package/dist/types/src/components/Presenter/Layout.d.ts +5 -5
  35. package/dist/types/src/components/Presenter/Layout.d.ts.map +1 -1
  36. package/dist/types/src/components/Presenter/Pager.d.ts.map +1 -1
  37. package/dist/types/src/components/Presenter/Pager.stories.d.ts.map +1 -1
  38. package/dist/types/src/components/PresenterSettings/PresenterSettings.d.ts +6 -0
  39. package/dist/types/src/components/PresenterSettings/PresenterSettings.d.ts.map +1 -0
  40. package/dist/types/src/components/PresenterSettings/PresenterSettings.stories.d.ts +23 -0
  41. package/dist/types/src/components/PresenterSettings/PresenterSettings.stories.d.ts.map +1 -0
  42. package/dist/types/src/components/PresenterSettings/index.d.ts +2 -0
  43. package/dist/types/src/components/PresenterSettings/index.d.ts.map +1 -0
  44. package/dist/types/src/components/RevealPlayer/RevealPlayer.d.ts +5 -4
  45. package/dist/types/src/components/RevealPlayer/RevealPlayer.d.ts.map +1 -1
  46. package/dist/types/src/components/RevealPlayer/RevealPlayer.stories.d.ts +7 -6
  47. package/dist/types/src/components/RevealPlayer/RevealPlayer.stories.d.ts.map +1 -1
  48. package/dist/types/src/components/index.d.ts +5 -28
  49. package/dist/types/src/components/index.d.ts.map +1 -1
  50. package/dist/types/src/containers/CollectionPresenterContainer/CollectionPresenterContainer.d.ts +6 -0
  51. package/dist/types/src/containers/CollectionPresenterContainer/CollectionPresenterContainer.d.ts.map +1 -0
  52. package/dist/types/src/containers/CollectionPresenterContainer/index.d.ts +2 -0
  53. package/dist/types/src/containers/CollectionPresenterContainer/index.d.ts.map +1 -0
  54. package/dist/types/src/containers/DocumentPresenterContainer/DocumentPresenterContainer.d.ts +6 -0
  55. package/dist/types/src/containers/DocumentPresenterContainer/DocumentPresenterContainer.d.ts.map +1 -0
  56. package/dist/types/src/containers/DocumentPresenterContainer/index.d.ts +2 -0
  57. package/dist/types/src/containers/DocumentPresenterContainer/index.d.ts.map +1 -0
  58. package/dist/types/src/containers/MarkdownSlide/MarkdownSlide.d.ts +8 -0
  59. package/dist/types/src/containers/MarkdownSlide/MarkdownSlide.d.ts.map +1 -0
  60. package/dist/types/src/containers/MarkdownSlide/index.d.ts +2 -0
  61. package/dist/types/src/containers/MarkdownSlide/index.d.ts.map +1 -0
  62. package/dist/types/src/containers/index.d.ts +5 -0
  63. package/dist/types/src/containers/index.d.ts.map +1 -0
  64. package/dist/types/src/index.d.ts +2 -2
  65. package/dist/types/src/index.d.ts.map +1 -1
  66. package/dist/types/src/operations/definitions.d.ts +17 -0
  67. package/dist/types/src/operations/definitions.d.ts.map +1 -0
  68. package/dist/types/src/operations/index.d.ts +2 -0
  69. package/dist/types/src/operations/index.d.ts.map +1 -0
  70. package/dist/types/src/testing.d.ts.map +1 -1
  71. package/dist/types/src/translations.d.ts +4 -6
  72. package/dist/types/src/translations.d.ts.map +1 -1
  73. package/dist/types/src/types/Settings.d.ts +7 -0
  74. package/dist/types/src/types/Settings.d.ts.map +1 -0
  75. package/dist/types/src/types/index.d.ts +15 -0
  76. package/dist/types/src/types/index.d.ts.map +1 -0
  77. package/dist/types/src/useExitPresenter.d.ts +1 -1
  78. package/dist/types/src/useExitPresenter.d.ts.map +1 -1
  79. package/dist/types/tsconfig.tsbuildinfo +1 -1
  80. package/package.json +58 -33
  81. package/src/PresenterPlugin.node.ts +16 -0
  82. package/src/PresenterPlugin.test.ts +23 -0
  83. package/src/PresenterPlugin.tsx +5 -3
  84. package/src/capabilities/{app-graph-builder/app-graph-builder.ts → app-graph-builder.ts} +23 -25
  85. package/src/capabilities/index.ts +5 -3
  86. package/src/capabilities/react-surface.tsx +68 -0
  87. package/src/capabilities/{settings/settings.ts → settings.ts} +4 -4
  88. package/src/components/Markdown/{Container.stories.tsx → Panel.stories.tsx} +7 -7
  89. package/src/components/Markdown/{Container.tsx → Panel.tsx} +5 -5
  90. package/src/components/Markdown/Slide.stories.tsx +4 -4
  91. package/src/components/Markdown/Slide.tsx +2 -2
  92. package/src/components/Markdown/index.ts +1 -1
  93. package/src/components/Markdown/theme.ts +6 -6
  94. package/src/components/Presenter/Layout.tsx +24 -23
  95. package/src/components/Presenter/Pager.stories.tsx +1 -1
  96. package/src/components/PresenterSettings/PresenterSettings.stories.tsx +32 -0
  97. package/src/components/PresenterSettings/PresenterSettings.tsx +31 -0
  98. package/src/components/PresenterSettings/index.ts +5 -0
  99. package/src/components/RevealPlayer/RevealPlayer.stories.tsx +5 -5
  100. package/src/components/RevealPlayer/RevealPlayer.tsx +104 -105
  101. package/src/components/index.ts +5 -5
  102. package/src/containers/CollectionPresenterContainer/CollectionPresenterContainer.tsx +50 -0
  103. package/src/containers/CollectionPresenterContainer/index.ts +5 -0
  104. package/src/containers/DocumentPresenterContainer/DocumentPresenterContainer.tsx +24 -0
  105. package/src/containers/DocumentPresenterContainer/index.ts +5 -0
  106. package/src/{components → containers/MarkdownSlide}/MarkdownSlide.tsx +4 -6
  107. package/src/containers/MarkdownSlide/index.ts +5 -0
  108. package/src/containers/index.ts +9 -0
  109. package/src/index.ts +5 -2
  110. package/src/meta.ts +1 -1
  111. package/src/operations/definitions.ts +23 -0
  112. package/src/operations/index.ts +5 -0
  113. package/src/testing.ts +6 -6
  114. package/src/translations.ts +4 -5
  115. package/src/types/Settings.ts +20 -0
  116. package/src/types/index.ts +30 -0
  117. package/src/useExitPresenter.ts +9 -7
  118. package/dist/lib/browser/CollectionPresenterContainer-WE7HOMFY.mjs +0 -176
  119. package/dist/lib/browser/CollectionPresenterContainer-WE7HOMFY.mjs.map +0 -7
  120. package/dist/lib/browser/DocumentPresenterContainer-3BU2DS5E.mjs +0 -173
  121. package/dist/lib/browser/DocumentPresenterContainer-3BU2DS5E.mjs.map +0 -7
  122. package/dist/lib/browser/MarkdownSlide-GIYJABHE.mjs +0 -200
  123. package/dist/lib/browser/MarkdownSlide-GIYJABHE.mjs.map +0 -7
  124. package/dist/lib/browser/app-graph-builder-OH6QU3DC.mjs +0 -113
  125. package/dist/lib/browser/app-graph-builder-OH6QU3DC.mjs.map +0 -7
  126. package/dist/lib/browser/chunk-46CHA6Y5.mjs +0 -41
  127. package/dist/lib/browser/chunk-46CHA6Y5.mjs.map +0 -7
  128. package/dist/lib/browser/chunk-4PZXJXBO.mjs +0 -50
  129. package/dist/lib/browser/chunk-4PZXJXBO.mjs.map +0 -7
  130. package/dist/lib/browser/chunk-L7QYO6LF.mjs +0 -38
  131. package/dist/lib/browser/chunk-L7QYO6LF.mjs.map +0 -7
  132. package/dist/lib/browser/chunk-VQVZVXPJ.mjs +0 -18
  133. package/dist/lib/browser/chunk-VQVZVXPJ.mjs.map +0 -7
  134. package/dist/lib/browser/react-surface-QY4ETW6S.mjs +0 -64
  135. package/dist/lib/browser/react-surface-QY4ETW6S.mjs.map +0 -7
  136. package/dist/lib/browser/settings-OLQ7QNLC.mjs +0 -32
  137. package/dist/lib/browser/settings-OLQ7QNLC.mjs.map +0 -7
  138. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +0 -6
  139. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +0 -1
  140. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +0 -3
  141. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +0 -1
  142. package/dist/types/src/capabilities/react-surface/index.d.ts +0 -3
  143. package/dist/types/src/capabilities/react-surface/index.d.ts.map +0 -1
  144. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +0 -5
  145. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +0 -1
  146. package/dist/types/src/capabilities/settings/index.d.ts +0 -7
  147. package/dist/types/src/capabilities/settings/index.d.ts.map +0 -1
  148. package/dist/types/src/capabilities/settings/settings.d.ts +0 -10
  149. package/dist/types/src/capabilities/settings/settings.d.ts.map +0 -1
  150. package/dist/types/src/components/CollectionPresenterContainer.d.ts +0 -7
  151. package/dist/types/src/components/CollectionPresenterContainer.d.ts.map +0 -1
  152. package/dist/types/src/components/DocumentPresenterContainer.d.ts +0 -7
  153. package/dist/types/src/components/DocumentPresenterContainer.d.ts.map +0 -1
  154. package/dist/types/src/components/Markdown/Container.d.ts +0 -8
  155. package/dist/types/src/components/Markdown/Container.d.ts.map +0 -1
  156. package/dist/types/src/components/Markdown/Container.stories.d.ts.map +0 -1
  157. package/dist/types/src/components/MarkdownSlide.d.ts +0 -8
  158. package/dist/types/src/components/MarkdownSlide.d.ts.map +0 -1
  159. package/dist/types/src/components/PresenterSettings.d.ts +0 -8
  160. package/dist/types/src/components/PresenterSettings.d.ts.map +0 -1
  161. package/dist/types/src/types.d.ts +0 -49
  162. package/dist/types/src/types.d.ts.map +0 -1
  163. package/src/capabilities/app-graph-builder/index.ts +0 -7
  164. package/src/capabilities/react-surface/index.ts +0 -7
  165. package/src/capabilities/react-surface/react-surface.tsx +0 -71
  166. package/src/capabilities/settings/index.ts +0 -7
  167. package/src/components/CollectionPresenterContainer.tsx +0 -44
  168. package/src/components/DocumentPresenterContainer.tsx +0 -23
  169. package/src/components/PresenterSettings.tsx +0 -35
  170. package/src/types.ts +0 -54
@@ -1,113 +0,0 @@
1
- import {
2
- PresenterCapabilities,
3
- PresenterOperation
4
- } from "./chunk-4PZXJXBO.mjs";
5
- import {
6
- meta
7
- } from "./chunk-VQVZVXPJ.mjs";
8
-
9
- // src/capabilities/app-graph-builder/app-graph-builder.ts
10
- import * as Effect from "effect/Effect";
11
- import * as Option from "effect/Option";
12
- import { Capabilities, Capability } from "@dxos/app-framework";
13
- import { AppCapabilities, LayoutOperation } from "@dxos/app-toolkit";
14
- import { Obj } from "@dxos/echo";
15
- import { Operation } from "@dxos/operation";
16
- import { DeckCapabilities } from "@dxos/plugin-deck";
17
- import { ATTENDABLE_PATH_SEPARATOR, DeckOperation } from "@dxos/plugin-deck/types";
18
- import { GraphBuilder, NodeMatcher } from "@dxos/plugin-graph";
19
- import { Markdown } from "@dxos/plugin-markdown/types";
20
- import { Collection } from "@dxos/schema";
21
- var whenPresentable = (node) => Option.orElse(NodeMatcher.whenEchoType(Collection.Collection)(node), () => NodeMatcher.whenEchoType(Markdown.Document)(node));
22
- var app_graph_builder_default = Capability.makeModule(Effect.fnUntraced(function* () {
23
- const capabilities = yield* Capability.Service;
24
- const extensions = yield* GraphBuilder.createExtension({
25
- id: `${meta.id}/root`,
26
- // TODO(wittjosiah): This is a hack to work around presenter previously relying on "variant". Remove.
27
- match: whenPresentable,
28
- connector: (object, get) => {
29
- const settingsAtom = capabilities.get(PresenterCapabilities.Settings);
30
- const settings = get(settingsAtom);
31
- const isPresentable = settings?.presentCollections ? Obj.instanceOf(Collection.Collection, object) || Obj.instanceOf(Markdown.Document, object) : Obj.instanceOf(Markdown.Document, object);
32
- if (!isPresentable) {
33
- return Effect.succeed([]);
34
- }
35
- const id = Obj.getDXN(object).toString();
36
- return Effect.succeed([
37
- {
38
- id: [
39
- id,
40
- "presenter"
41
- ].join(ATTENDABLE_PATH_SEPARATOR),
42
- data: {
43
- type: meta.id,
44
- object
45
- },
46
- type: meta.id,
47
- properties: {
48
- label: "Presenter",
49
- icon: "ph--presentation--regular",
50
- disposition: "hidden"
51
- }
52
- }
53
- ]);
54
- },
55
- actions: (object, get) => {
56
- const settingsAtom = capabilities.get(PresenterCapabilities.Settings);
57
- const settings = get(settingsAtom);
58
- const isPresentable = settings?.presentCollections ? Obj.instanceOf(Collection.Collection, object) || Obj.instanceOf(Markdown.Document, object) : Obj.instanceOf(Markdown.Document, object);
59
- if (!isPresentable) {
60
- return Effect.succeed([]);
61
- }
62
- const dxn = Obj.getDXN(object);
63
- const id = dxn.toString();
64
- const { spaceId } = dxn.asEchoDXN();
65
- return Effect.succeed([
66
- {
67
- id: `${PresenterOperation.TogglePresentation.meta.key}/${id}`,
68
- // TODO(burdon): Allow function so can generate state when activated.
69
- // So can set explicit fullscreen state coordinated with current presenter state.
70
- data: Effect.fnUntraced(function* () {
71
- const deckState = yield* Capabilities.getAtomValue(DeckCapabilities.State);
72
- const deck = deckState.decks[deckState.activeDeck];
73
- const presenterId = [
74
- id,
75
- "presenter"
76
- ].join(ATTENDABLE_PATH_SEPARATOR);
77
- if (!deck?.fullscreen) {
78
- yield* Operation.invoke(DeckOperation.Adjust, {
79
- type: "solo--fullscreen",
80
- id: presenterId
81
- });
82
- }
83
- yield* Operation.invoke(LayoutOperation.Open, {
84
- subject: [
85
- presenterId
86
- ],
87
- workspace: spaceId
88
- });
89
- }),
90
- properties: {
91
- label: [
92
- "toggle presentation label",
93
- {
94
- ns: meta.id
95
- }
96
- ],
97
- icon: "ph--presentation--regular",
98
- disposition: "list-item",
99
- keyBinding: {
100
- macos: "shift+meta+p",
101
- windows: "shift+alt+p"
102
- }
103
- }
104
- }
105
- ]);
106
- }
107
- });
108
- return Capability.contributes(AppCapabilities.AppGraphBuilder, extensions);
109
- }));
110
- export {
111
- app_graph_builder_default as default
112
- };
113
- //# sourceMappingURL=app-graph-builder-OH6QU3DC.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/app-graph-builder/app-graph-builder.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { AppCapabilities, LayoutOperation } from '@dxos/app-toolkit';\nimport { Obj } from '@dxos/echo';\nimport { Operation } from '@dxos/operation';\nimport { DeckCapabilities } from '@dxos/plugin-deck';\nimport { ATTENDABLE_PATH_SEPARATOR, DeckOperation } from '@dxos/plugin-deck/types';\nimport { GraphBuilder, type Node, NodeMatcher } from '@dxos/plugin-graph';\nimport { Markdown } from '@dxos/plugin-markdown/types';\nimport { Collection } from '@dxos/schema';\n\nimport { meta } from '../../meta';\nimport { PresenterCapabilities, PresenterOperation } from '../../types';\n\n/** Match nodes that can be presented (Collection or Document). */\nconst whenPresentable = (node: Node.Node) =>\n Option.orElse(NodeMatcher.whenEchoType(Collection.Collection)(node), () =>\n NodeMatcher.whenEchoType(Markdown.Document)(node),\n );\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const capabilities = yield* Capability.Service;\n\n const extensions = yield* GraphBuilder.createExtension({\n id: `${meta.id}/root`,\n // TODO(wittjosiah): This is a hack to work around presenter previously relying on \"variant\". Remove.\n match: whenPresentable,\n connector: (object, get) => {\n const settingsAtom = capabilities.get(PresenterCapabilities.Settings);\n const settings = get(settingsAtom);\n const isPresentable = settings?.presentCollections\n ? Obj.instanceOf(Collection.Collection, object) || Obj.instanceOf(Markdown.Document, object)\n : Obj.instanceOf(Markdown.Document, object);\n if (!isPresentable) {\n return Effect.succeed([]);\n }\n const id = Obj.getDXN(object).toString();\n return Effect.succeed([\n {\n id: [id, 'presenter'].join(ATTENDABLE_PATH_SEPARATOR),\n data: { type: meta.id, object },\n type: meta.id,\n properties: {\n label: 'Presenter',\n icon: 'ph--presentation--regular',\n disposition: 'hidden',\n },\n },\n ]);\n },\n actions: (object, get) => {\n const settingsAtom = capabilities.get(PresenterCapabilities.Settings);\n const settings = get(settingsAtom);\n const isPresentable = settings?.presentCollections\n ? Obj.instanceOf(Collection.Collection, object) || Obj.instanceOf(Markdown.Document, object)\n : Obj.instanceOf(Markdown.Document, object);\n if (!isPresentable) {\n return Effect.succeed([]);\n }\n const dxn = Obj.getDXN(object);\n const id = dxn.toString();\n const { spaceId } = dxn.asEchoDXN()!;\n return Effect.succeed([\n {\n id: `${PresenterOperation.TogglePresentation.meta.key}/${id}`,\n // TODO(burdon): Allow function so can generate state when activated.\n // So can set explicit fullscreen state coordinated with current presenter state.\n data: Effect.fnUntraced(function* () {\n const deckState = yield* Capabilities.getAtomValue(DeckCapabilities.State);\n const deck = deckState.decks[deckState.activeDeck];\n const presenterId = [id, 'presenter'].join(ATTENDABLE_PATH_SEPARATOR);\n if (!deck?.fullscreen) {\n yield* Operation.invoke(DeckOperation.Adjust, {\n type: 'solo--fullscreen' as const,\n id: presenterId,\n });\n }\n yield* Operation.invoke(LayoutOperation.Open, {\n subject: [presenterId],\n workspace: spaceId,\n });\n }),\n properties: {\n label: ['toggle presentation label', { ns: meta.id }],\n icon: 'ph--presentation--regular',\n disposition: 'list-item',\n keyBinding: {\n macos: 'shift+meta+p',\n windows: 'shift+alt+p',\n },\n },\n },\n ]);\n },\n });\n\n return Capability.contributes(AppCapabilities.AppGraphBuilder, extensions);\n }),\n);\n"],
5
- "mappings": ";;;;;;;;;AAIA,YAAYA,YAAY;AACxB,YAAYC,YAAY;AAExB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,iBAAiBC,uBAAuB;AACjD,SAASC,WAAW;AACpB,SAASC,iBAAiB;AAC1B,SAASC,wBAAwB;AACjC,SAASC,2BAA2BC,qBAAqB;AACzD,SAASC,cAAyBC,mBAAmB;AACrD,SAASC,gBAAgB;AACzB,SAASC,kBAAkB;AAM3B,IAAMC,kBAAkB,CAACC,SAChBC,cAAOC,YAAYC,aAAaC,WAAWA,UAAU,EAAEJ,IAAAA,GAAO,MACnEE,YAAYC,aAAaE,SAASC,QAAQ,EAAEN,IAAAA,CAAAA;AAGhD,IAAA,4BAAeO,WAAWC,WACjBC,kBAAW,aAAA;AAChB,QAAMC,eAAe,OAAOH,WAAWI;AAEvC,QAAMC,aAAa,OAAOC,aAAaC,gBAAgB;IACrDC,IAAI,GAAGC,KAAKD,EAAE;;IAEdE,OAAOlB;IACPmB,WAAW,CAACC,QAAQC,QAAAA;AAClB,YAAMC,eAAeX,aAAaU,IAAIE,sBAAsBC,QAAQ;AACpE,YAAMC,WAAWJ,IAAIC,YAAAA;AACrB,YAAMI,gBAAgBD,UAAUE,qBAC5BC,IAAIC,WAAWxB,WAAWA,YAAYe,MAAAA,KAAWQ,IAAIC,WAAWvB,SAASC,UAAUa,MAAAA,IACnFQ,IAAIC,WAAWvB,SAASC,UAAUa,MAAAA;AACtC,UAAI,CAACM,eAAe;AAClB,eAAcI,eAAQ,CAAA,CAAE;MAC1B;AACA,YAAMd,KAAKY,IAAIG,OAAOX,MAAAA,EAAQY,SAAQ;AACtC,aAAcF,eAAQ;QACpB;UACEd,IAAI;YAACA;YAAI;YAAaiB,KAAKC,yBAAAA;UAC3BC,MAAM;YAAEC,MAAMnB,KAAKD;YAAII;UAAO;UAC9BgB,MAAMnB,KAAKD;UACXqB,YAAY;YACVC,OAAO;YACPC,MAAM;YACNC,aAAa;UACf;QACF;OACD;IACH;IACAC,SAAS,CAACrB,QAAQC,QAAAA;AAChB,YAAMC,eAAeX,aAAaU,IAAIE,sBAAsBC,QAAQ;AACpE,YAAMC,WAAWJ,IAAIC,YAAAA;AACrB,YAAMI,gBAAgBD,UAAUE,qBAC5BC,IAAIC,WAAWxB,WAAWA,YAAYe,MAAAA,KAAWQ,IAAIC,WAAWvB,SAASC,UAAUa,MAAAA,IACnFQ,IAAIC,WAAWvB,SAASC,UAAUa,MAAAA;AACtC,UAAI,CAACM,eAAe;AAClB,eAAcI,eAAQ,CAAA,CAAE;MAC1B;AACA,YAAMY,MAAMd,IAAIG,OAAOX,MAAAA;AACvB,YAAMJ,KAAK0B,IAAIV,SAAQ;AACvB,YAAM,EAAEW,QAAO,IAAKD,IAAIE,UAAS;AACjC,aAAcd,eAAQ;QACpB;UACEd,IAAI,GAAG6B,mBAAmBC,mBAAmB7B,KAAK8B,GAAG,IAAI/B,EAAAA;;;UAGzDmB,MAAazB,kBAAW,aAAA;AACtB,kBAAMsC,YAAY,OAAOC,aAAaC,aAAaC,iBAAiBC,KAAK;AACzE,kBAAMC,OAAOL,UAAUM,MAAMN,UAAUO,UAAU;AACjD,kBAAMC,cAAc;cAACxC;cAAI;cAAaiB,KAAKC,yBAAAA;AAC3C,gBAAI,CAACmB,MAAMI,YAAY;AACrB,qBAAOC,UAAUC,OAAOC,cAAcC,QAAQ;gBAC5CzB,MAAM;gBACNpB,IAAIwC;cACN,CAAA;YACF;AACA,mBAAOE,UAAUC,OAAOG,gBAAgBC,MAAM;cAC5CC,SAAS;gBAACR;;cACVS,WAAWtB;YACb,CAAA;UACF,CAAA;UACAN,YAAY;YACVC,OAAO;cAAC;cAA6B;gBAAE4B,IAAIjD,KAAKD;cAAG;;YACnDuB,MAAM;YACNC,aAAa;YACb2B,YAAY;cACVC,OAAO;cACPC,SAAS;YACX;UACF;QACF;OACD;IACH;EACF,CAAA;AAEA,SAAO7D,WAAW8D,YAAYC,gBAAgBC,iBAAiB3D,UAAAA;AACjE,CAAA,CAAA;",
6
- "names": ["Effect", "Option", "Capabilities", "Capability", "AppCapabilities", "LayoutOperation", "Obj", "Operation", "DeckCapabilities", "ATTENDABLE_PATH_SEPARATOR", "DeckOperation", "GraphBuilder", "NodeMatcher", "Markdown", "Collection", "whenPresentable", "node", "orElse", "NodeMatcher", "whenEchoType", "Collection", "Markdown", "Document", "Capability", "makeModule", "fnUntraced", "capabilities", "Service", "extensions", "GraphBuilder", "createExtension", "id", "meta", "match", "connector", "object", "get", "settingsAtom", "PresenterCapabilities", "Settings", "settings", "isPresentable", "presentCollections", "Obj", "instanceOf", "succeed", "getDXN", "toString", "join", "ATTENDABLE_PATH_SEPARATOR", "data", "type", "properties", "label", "icon", "disposition", "actions", "dxn", "spaceId", "asEchoDXN", "PresenterOperation", "TogglePresentation", "key", "deckState", "Capabilities", "getAtomValue", "DeckCapabilities", "State", "deck", "decks", "activeDeck", "presenterId", "fullscreen", "Operation", "invoke", "DeckOperation", "Adjust", "LayoutOperation", "Open", "subject", "workspace", "ns", "keyBinding", "macos", "windows", "contributes", "AppCapabilities", "AppGraphBuilder"]
7
- }
@@ -1,41 +0,0 @@
1
- // src/useExitPresenter.ts
2
- import { useAtomValue } from "@effect-atom/atom-react";
3
- import { useCallback, useMemo } from "react";
4
- import { useCapability, useOperationInvoker } from "@dxos/app-framework/ui";
5
- import { LayoutOperation } from "@dxos/app-toolkit";
6
- import { Obj } from "@dxos/echo";
7
- import { DeckCapabilities } from "@dxos/plugin-deck";
8
- import { DeckOperation } from "@dxos/plugin-deck/types";
9
- var useExitPresenter = (object) => {
10
- const { invokePromise } = useOperationInvoker();
11
- const stateAtom = useCapability(DeckCapabilities.State);
12
- const state = useAtomValue(stateAtom);
13
- const deck = useMemo(() => state.decks[state.activeDeck], [
14
- state.decks,
15
- state.activeDeck
16
- ]);
17
- return useCallback(() => {
18
- const objectId = Obj.getDXN(object).toString();
19
- if (deck?.fullscreen) {
20
- void invokePromise(DeckOperation.Adjust, {
21
- type: "solo--fullscreen",
22
- id: objectId
23
- });
24
- }
25
- return invokePromise(LayoutOperation.Open, {
26
- subject: [
27
- objectId
28
- ],
29
- workspace: Obj.getDatabase(object)?.spaceId
30
- });
31
- }, [
32
- invokePromise,
33
- object,
34
- deck
35
- ]);
36
- };
37
-
38
- export {
39
- useExitPresenter
40
- };
41
- //# sourceMappingURL=chunk-46CHA6Y5.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/useExitPresenter.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { useAtomValue } from '@effect-atom/atom-react';\nimport { useCallback, useMemo } from 'react';\n\nimport { useCapability, useOperationInvoker } from '@dxos/app-framework/ui';\nimport { LayoutOperation } from '@dxos/app-toolkit';\nimport { Obj } from '@dxos/echo';\nimport { DeckCapabilities } from '@dxos/plugin-deck';\nimport { DeckOperation } from '@dxos/plugin-deck/types';\n\nexport const useExitPresenter = (object: any) => {\n const { invokePromise } = useOperationInvoker();\n const stateAtom = useCapability(DeckCapabilities.State);\n const state = useAtomValue(stateAtom);\n\n // Compute deck from decks[activeDeck] since the getter doesn't survive spread operations.\n const deck = useMemo(() => state.decks[state.activeDeck], [state.decks, state.activeDeck]);\n\n return useCallback(() => {\n const objectId = Obj.getDXN(object).toString();\n if (deck?.fullscreen) {\n void invokePromise(DeckOperation.Adjust, {\n type: 'solo--fullscreen',\n id: objectId,\n });\n }\n return invokePromise(LayoutOperation.Open, {\n subject: [objectId],\n workspace: Obj.getDatabase(object)?.spaceId,\n });\n }, [invokePromise, object, deck]);\n};\n"],
5
- "mappings": ";AAIA,SAASA,oBAAoB;AAC7B,SAASC,aAAaC,eAAe;AAErC,SAASC,eAAeC,2BAA2B;AACnD,SAASC,uBAAuB;AAChC,SAASC,WAAW;AACpB,SAASC,wBAAwB;AACjC,SAASC,qBAAqB;AAEvB,IAAMC,mBAAmB,CAACC,WAAAA;AAC/B,QAAM,EAAEC,cAAa,IAAKC,oBAAAA;AAC1B,QAAMC,YAAYC,cAAcC,iBAAiBC,KAAK;AACtD,QAAMC,QAAQC,aAAaL,SAAAA;AAG3B,QAAMM,OAAOC,QAAQ,MAAMH,MAAMI,MAAMJ,MAAMK,UAAU,GAAG;IAACL,MAAMI;IAAOJ,MAAMK;GAAW;AAEzF,SAAOC,YAAY,MAAA;AACjB,UAAMC,WAAWC,IAAIC,OAAOhB,MAAAA,EAAQiB,SAAQ;AAC5C,QAAIR,MAAMS,YAAY;AACpB,WAAKjB,cAAckB,cAAcC,QAAQ;QACvCC,MAAM;QACNC,IAAIR;MACN,CAAA;IACF;AACA,WAAOb,cAAcsB,gBAAgBC,MAAM;MACzCC,SAAS;QAACX;;MACVY,WAAWX,IAAIY,YAAY3B,MAAAA,GAAS4B;IACtC,CAAA;EACF,GAAG;IAAC3B;IAAeD;IAAQS;GAAK;AAClC;",
6
- "names": ["useAtomValue", "useCallback", "useMemo", "useCapability", "useOperationInvoker", "LayoutOperation", "Obj", "DeckCapabilities", "DeckOperation", "useExitPresenter", "object", "invokePromise", "useOperationInvoker", "stateAtom", "useCapability", "DeckCapabilities", "State", "state", "useAtomValue", "deck", "useMemo", "decks", "activeDeck", "useCallback", "objectId", "Obj", "getDXN", "toString", "fullscreen", "DeckOperation", "Adjust", "type", "id", "LayoutOperation", "Open", "subject", "workspace", "getDatabase", "spaceId"]
7
- }
@@ -1,50 +0,0 @@
1
- import {
2
- meta
3
- } from "./chunk-VQVZVXPJ.mjs";
4
-
5
- // src/types.ts
6
- import * as Schema from "effect/Schema";
7
- import { createContext } from "react";
8
- import { Capability } from "@dxos/app-framework";
9
- import { Operation } from "@dxos/operation";
10
- import { Markdown } from "@dxos/plugin-markdown/types";
11
- import { Collection } from "@dxos/schema";
12
- var PRESENTER_OPERATION = `${meta.id}/operation`;
13
- (function(PresenterOperation2) {
14
- PresenterOperation2.TogglePresentation = Operation.make({
15
- meta: {
16
- key: `${PRESENTER_OPERATION}/toggle-presentation`,
17
- name: "Toggle Presentation"
18
- },
19
- schema: {
20
- input: Schema.Struct({
21
- object: Schema.Union(Markdown.Document, Collection.Collection),
22
- state: Schema.optional(Schema.Boolean)
23
- }),
24
- output: Schema.Void
25
- }
26
- });
27
- })(PresenterOperation || (PresenterOperation = {}));
28
- var PresenterContext = createContext({
29
- running: false,
30
- start: () => {
31
- },
32
- stop: () => {
33
- }
34
- });
35
- var PresenterSettingsSchema = Schema.mutable(Schema.Struct({
36
- presentCollections: Schema.optional(Schema.Boolean)
37
- }));
38
- (function(PresenterCapabilities2) {
39
- PresenterCapabilities2.Settings = Capability.make(`${meta.id}/capability/settings`);
40
- })(PresenterCapabilities || (PresenterCapabilities = {}));
41
- var PresenterOperation;
42
- var PresenterCapabilities;
43
-
44
- export {
45
- PresenterContext,
46
- PresenterSettingsSchema,
47
- PresenterOperation,
48
- PresenterCapabilities
49
- };
50
- //# sourceMappingURL=chunk-4PZXJXBO.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/types.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Atom } from '@effect-atom/atom-react';\nimport * as Schema from 'effect/Schema';\nimport { type Context, createContext } from 'react';\n\nimport { Capability } from '@dxos/app-framework';\nimport { Operation } from '@dxos/operation';\nimport { Markdown } from '@dxos/plugin-markdown/types';\nimport { Collection } from '@dxos/schema';\n\nimport { meta } from './meta';\n\nconst PRESENTER_OPERATION = `${meta.id}/operation`;\n\n// TODO(wittjosiah): This appears to be unused.\nexport namespace PresenterOperation {\n export const TogglePresentation = Operation.make({\n meta: { key: `${PRESENTER_OPERATION}/toggle-presentation`, name: 'Toggle Presentation' },\n schema: {\n input: Schema.Struct({\n object: Schema.Union(Markdown.Document, Collection.Collection),\n state: Schema.optional(Schema.Boolean),\n }),\n output: Schema.Void,\n },\n });\n}\n\nexport type PresenterContextType = {\n running: boolean;\n start: () => void;\n stop: () => void;\n};\n\nexport const PresenterContext: Context<PresenterContextType> = createContext<PresenterContextType>({\n running: false,\n start: () => {},\n stop: () => {},\n});\n\nexport const PresenterSettingsSchema = Schema.mutable(\n Schema.Struct({\n presentCollections: Schema.optional(Schema.Boolean),\n }),\n);\n\nexport type PresenterSettingsProps = Schema.Schema.Type<typeof PresenterSettingsSchema>;\n\nexport namespace PresenterCapabilities {\n export const Settings = Capability.make<Atom.Writable<PresenterSettingsProps>>(`${meta.id}/capability/settings`);\n}\n"],
5
- "mappings": ";;;;;AAKA,YAAYA,YAAY;AACxB,SAAuBC,qBAAqB;AAE5C,SAASC,kBAAkB;AAC3B,SAASC,iBAAiB;AAC1B,SAASC,gBAAgB;AACzB,SAASC,kBAAkB;AAI3B,IAAMC,sBAAsB,GAAGC,KAAKC,EAAE;UAGrBC,qBAAAA;sBACFC,qBAAqBC,UAAUC,KAAK;IAC/CL,MAAM;MAAEM,KAAK,GAAGP,mBAAAA;MAA2CQ,MAAM;IAAsB;IACvFC,QAAQ;MACNC,OAAcC,cAAO;QACnBC,QAAeC,aAAMC,SAASC,UAAUC,WAAWA,UAAU;QAC7DC,OAAcC,gBAAgBC,cAAO;MACvC,CAAA;MACAC,QAAeC;IACjB;EACF,CAAA;AACF,GAXiBlB,uBAAAA,qBAAAA,CAAAA,EAAAA;AAmBV,IAAMmB,mBAAkDC,cAAoC;EACjGC,SAAS;EACTC,OAAO,MAAA;EAAO;EACdC,MAAM,MAAA;EAAO;AACf,CAAA;AAEO,IAAMC,0BAAiCC,eACrCjB,cAAO;EACZkB,oBAA2BX,gBAAgBC,cAAO;AACpD,CAAA,CAAA;UAKeW,wBAAAA;yBACFC,WAAWC,WAAW1B,KAA4C,GAAGL,KAAKC,EAAE,sBAAsB;AACjH,GAFiB4B,0BAAAA,wBAAAA,CAAAA,EAAAA;;;",
6
- "names": ["Schema", "createContext", "Capability", "Operation", "Markdown", "Collection", "PRESENTER_OPERATION", "meta", "id", "PresenterOperation", "TogglePresentation", "Operation", "make", "key", "name", "schema", "input", "Struct", "object", "Union", "Markdown", "Document", "Collection", "state", "optional", "Boolean", "output", "Void", "PresenterContext", "createContext", "running", "start", "stop", "PresenterSettingsSchema", "mutable", "presentCollections", "PresenterCapabilities", "Settings", "Capability"]
7
- }
@@ -1,38 +0,0 @@
1
- import {
2
- meta
3
- } from "./chunk-VQVZVXPJ.mjs";
4
-
5
- // src/components/PresenterSettings.tsx
6
- import React from "react";
7
- import { Input, useTranslation } from "@dxos/react-ui";
8
- import { Settings } from "@dxos/react-ui-form";
9
- var PresenterSettings = ({ settings, onSettingsChange }) => {
10
- const { t } = useTranslation(meta.id);
11
- return /* @__PURE__ */ React.createElement(Settings.Root, null, /* @__PURE__ */ React.createElement(Settings.Section, {
12
- title: t("settings title", {
13
- ns: meta.id
14
- })
15
- }, /* @__PURE__ */ React.createElement(Settings.Group, null, /* @__PURE__ */ React.createElement(Settings.ItemInput, {
16
- title: t("present collections label")
17
- }, /* @__PURE__ */ React.createElement(Input.Switch, {
18
- checked: settings.presentCollections,
19
- onCheckedChange: (checked) => onSettingsChange((s) => ({
20
- ...s,
21
- presentCollections: !!checked
22
- }))
23
- })))));
24
- };
25
-
26
- // src/components/index.ts
27
- import { lazy } from "react";
28
- var MarkdownSlide = lazy(() => import("./MarkdownSlide-GIYJABHE.mjs"));
29
- var DocumentPresenterContainer = lazy(() => import("./DocumentPresenterContainer-3BU2DS5E.mjs"));
30
- var CollectionPresenterContainer = lazy(() => import("./CollectionPresenterContainer-WE7HOMFY.mjs"));
31
-
32
- export {
33
- PresenterSettings,
34
- MarkdownSlide,
35
- DocumentPresenterContainer,
36
- CollectionPresenterContainer
37
- };
38
- //# sourceMappingURL=chunk-L7QYO6LF.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/PresenterSettings.tsx", "../../../src/components/index.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Input, useTranslation } from '@dxos/react-ui';\nimport { Settings } from '@dxos/react-ui-form';\n\nimport { meta } from '../meta';\nimport { type PresenterSettingsProps } from '../types';\n\nexport type PresenterSettingsComponentProps = {\n settings: PresenterSettingsProps;\n onSettingsChange: (fn: (current: PresenterSettingsProps) => PresenterSettingsProps) => void;\n};\n\nexport const PresenterSettings = ({ settings, onSettingsChange }: PresenterSettingsComponentProps) => {\n const { t } = useTranslation(meta.id);\n\n return (\n <Settings.Root>\n <Settings.Section title={t('settings title', { ns: meta.id })}>\n <Settings.Group>\n <Settings.ItemInput title={t('present collections label')}>\n <Input.Switch\n checked={settings.presentCollections}\n onCheckedChange={(checked) => onSettingsChange((s) => ({ ...s, presentCollections: !!checked }))}\n />\n </Settings.ItemInput>\n </Settings.Group>\n </Settings.Section>\n </Settings.Root>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { lazy } from 'react';\n\nexport * from './PresenterSettings';\n\nexport const MarkdownSlide = lazy(() => import('./MarkdownSlide'));\nexport const DocumentPresenterContainer = lazy(() => import('./DocumentPresenterContainer'));\nexport const CollectionPresenterContainer = lazy(() => import('./CollectionPresenterContainer'));\n"],
5
- "mappings": ";;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,OAAOC,sBAAsB;AACtC,SAASC,gBAAgB;AAUlB,IAAMC,oBAAoB,CAAC,EAAEC,UAAUC,iBAAgB,MAAmC;AAC/F,QAAM,EAAEC,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AAEpC,SACE,sBAAA,cAACC,SAASC,MAAI,MACZ,sBAAA,cAACD,SAASE,SAAO;IAACC,OAAOP,EAAE,kBAAkB;MAAEQ,IAAIN,KAAKC;IAAG,CAAA;KACzD,sBAAA,cAACC,SAASK,OAAK,MACb,sBAAA,cAACL,SAASM,WAAS;IAACH,OAAOP,EAAE,2BAAA;KAC3B,sBAAA,cAACW,MAAMC,QAAM;IACXC,SAASf,SAASgB;IAClBC,iBAAiB,CAACF,YAAYd,iBAAiB,CAACiB,OAAO;MAAE,GAAGA;MAAGF,oBAAoB,CAAC,CAACD;IAAQ,EAAA;;AAO3G;;;AC9BA,SAASI,YAAY;AAId,IAAMC,gBAAgBC,KAAK,MAAM,OAAO,8BAAA,CAAA;AACxC,IAAMC,6BAA6BD,KAAK,MAAM,OAAO,2CAAA,CAAA;AACrD,IAAME,+BAA+BF,KAAK,MAAM,OAAO,6CAAA,CAAA;",
6
- "names": ["React", "Input", "useTranslation", "Settings", "PresenterSettings", "settings", "onSettingsChange", "t", "useTranslation", "meta", "id", "Settings", "Root", "Section", "title", "ns", "Group", "ItemInput", "Input", "Switch", "checked", "presentCollections", "onCheckedChange", "s", "lazy", "MarkdownSlide", "lazy", "DocumentPresenterContainer", "CollectionPresenterContainer"]
7
- }
@@ -1,18 +0,0 @@
1
- // src/meta.ts
2
- import { trim } from "@dxos/util";
3
- var meta = {
4
- id: "dxos.org/plugin/presenter",
5
- name: "Presenter",
6
- description: trim`
7
- Transform markdown documents into interactive presentation slideshows.
8
- Navigate between slides with keyboard controls and present content in full-screen mode.
9
- `,
10
- icon: "ph--presentation--regular",
11
- iconHue: "indigo",
12
- source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-presenter"
13
- };
14
-
15
- export {
16
- meta
17
- };
18
- //# sourceMappingURL=chunk-VQVZVXPJ.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/meta.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: Plugin.Meta = {\n id: 'dxos.org/plugin/presenter',\n name: 'Presenter',\n description: trim`\n Transform markdown documents into interactive presentation slideshows.\n Navigate between slides with keyboard controls and present content in full-screen mode.\n `,\n icon: 'ph--presentation--regular',\n iconHue: 'indigo',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-presenter',\n};\n"],
5
- "mappings": ";AAKA,SAASA,YAAY;AAEd,IAAMC,OAAoB;EAC/BC,IAAI;EACJC,MAAM;EACNC,aAAaC;;;;EAIbC,MAAM;EACNC,SAAS;EACTC,QAAQ;AACV;",
6
- "names": ["trim", "meta", "id", "name", "description", "trim", "icon", "iconHue", "source"]
7
- }
@@ -1,64 +0,0 @@
1
- import {
2
- CollectionPresenterContainer,
3
- DocumentPresenterContainer,
4
- MarkdownSlide,
5
- PresenterSettings
6
- } from "./chunk-L7QYO6LF.mjs";
7
- import {
8
- meta
9
- } from "./chunk-VQVZVXPJ.mjs";
10
-
11
- // src/capabilities/react-surface/react-surface.tsx
12
- import * as Effect from "effect/Effect";
13
- import React from "react";
14
- import { Capabilities, Capability } from "@dxos/app-framework";
15
- import { Surface, useSettingsState } from "@dxos/app-framework/ui";
16
- import { AppCapabilities } from "@dxos/app-toolkit";
17
- import { Obj } from "@dxos/echo";
18
- import { Markdown } from "@dxos/plugin-markdown/types";
19
- import { Collection } from "@dxos/schema";
20
- var react_surface_default = Capability.makeModule(() => Effect.succeed(Capability.contributes(Capabilities.ReactSurface, [
21
- Surface.create({
22
- id: `${meta.id}/document`,
23
- role: "article",
24
- position: "hoist",
25
- filter: (data) => !!data.subject && typeof data.subject === "object" && "type" in data.subject && "object" in data.subject && data.subject.type === meta.id && Obj.instanceOf(Markdown.Document, data.subject.object),
26
- component: ({ data }) => /* @__PURE__ */ React.createElement(DocumentPresenterContainer, {
27
- document: data.subject.object
28
- })
29
- }),
30
- Surface.create({
31
- id: `${meta.id}/collection`,
32
- role: "article",
33
- position: "hoist",
34
- filter: (data) => !!data.subject && typeof data.subject === "object" && "type" in data.subject && "object" in data.subject && data.subject.type === meta.id && Obj.instanceOf(Collection.Collection, data.subject.object),
35
- component: ({ role, data }) => /* @__PURE__ */ React.createElement(CollectionPresenterContainer, {
36
- role,
37
- subject: data.subject.object
38
- })
39
- }),
40
- Surface.create({
41
- id: `${meta.id}/slide`,
42
- role: "slide",
43
- filter: (data) => Obj.instanceOf(Markdown.Document, data.subject),
44
- component: ({ data }) => /* @__PURE__ */ React.createElement(MarkdownSlide, {
45
- document: data.subject
46
- })
47
- }),
48
- Surface.create({
49
- id: `${meta.id}/plugin-settings`,
50
- role: "article",
51
- filter: (data) => AppCapabilities.isSettings(data.subject) && data.subject.prefix === meta.id,
52
- component: ({ data: { subject } }) => {
53
- const { settings, updateSettings } = useSettingsState(subject.atom);
54
- return /* @__PURE__ */ React.createElement(PresenterSettings, {
55
- settings,
56
- onSettingsChange: updateSettings
57
- });
58
- }
59
- })
60
- ])));
61
- export {
62
- react_surface_default as default
63
- };
64
- //# sourceMappingURL=react-surface-QY4ETW6S.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/react-surface/react-surface.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport React from 'react';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { Surface, useSettingsState } from '@dxos/app-framework/ui';\nimport { AppCapabilities } from '@dxos/app-toolkit';\nimport { Obj } from '@dxos/echo';\nimport { Markdown } from '@dxos/plugin-markdown/types';\nimport { Collection } from '@dxos/schema';\n\nimport {\n CollectionPresenterContainer,\n DocumentPresenterContainer,\n MarkdownSlide,\n PresenterSettings,\n} from '../../components';\nimport { meta } from '../../meta';\nimport { type PresenterSettingsProps } from '../../types';\n\nexport default Capability.makeModule(() =>\n Effect.succeed(\n Capability.contributes(Capabilities.ReactSurface, [\n Surface.create({\n id: `${meta.id}/document`,\n role: 'article',\n position: 'hoist',\n filter: (data): data is { subject: { type: typeof meta.id; object: Markdown.Document } } =>\n !!data.subject &&\n typeof data.subject === 'object' &&\n 'type' in data.subject &&\n 'object' in data.subject &&\n data.subject.type === meta.id &&\n Obj.instanceOf(Markdown.Document, data.subject.object),\n component: ({ data }) => <DocumentPresenterContainer document={data.subject.object} />,\n }),\n Surface.create({\n id: `${meta.id}/collection`,\n role: 'article',\n position: 'hoist',\n filter: (data): data is { subject: { type: typeof meta.id; object: Collection.Collection } } =>\n !!data.subject &&\n typeof data.subject === 'object' &&\n 'type' in data.subject &&\n 'object' in data.subject &&\n data.subject.type === meta.id &&\n Obj.instanceOf(Collection.Collection, data.subject.object),\n component: ({ role, data }) => <CollectionPresenterContainer role={role} subject={data.subject.object} />,\n }),\n Surface.create({\n id: `${meta.id}/slide`,\n role: 'slide',\n filter: (data): data is { subject: Markdown.Document } => Obj.instanceOf(Markdown.Document, data.subject),\n component: ({ data }) => <MarkdownSlide document={data.subject} />,\n }),\n Surface.create({\n id: `${meta.id}/plugin-settings`,\n role: 'article',\n filter: (data): data is { subject: AppCapabilities.Settings } =>\n AppCapabilities.isSettings(data.subject) && data.subject.prefix === meta.id,\n component: ({ data: { subject } }) => {\n const { settings, updateSettings } = useSettingsState<PresenterSettingsProps>(subject.atom);\n return <PresenterSettings settings={settings} onSettingsChange={updateSettings} />;\n },\n }),\n ]),\n ),\n);\n"],
5
- "mappings": ";;;;;;;;;;;AAIA,YAAYA,YAAY;AACxB,OAAOC,WAAW;AAElB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,SAASC,wBAAwB;AAC1C,SAASC,uBAAuB;AAChC,SAASC,WAAW;AACpB,SAASC,gBAAgB;AACzB,SAASC,kBAAkB;AAW3B,IAAA,wBAAeC,WAAWC,WAAW,MAC5BC,eACLF,WAAWG,YAAYC,aAAaC,cAAc;EAChDC,QAAQC,OAAO;IACbC,IAAI,GAAGC,KAAKD,EAAE;IACdE,MAAM;IACNC,UAAU;IACVC,QAAQ,CAACC,SACP,CAAC,CAACA,KAAKC,WACP,OAAOD,KAAKC,YAAY,YACxB,UAAUD,KAAKC,WACf,YAAYD,KAAKC,WACjBD,KAAKC,QAAQC,SAASN,KAAKD,MAC3BQ,IAAIC,WAAWC,SAASC,UAAUN,KAAKC,QAAQM,MAAM;IACvDC,WAAW,CAAC,EAAER,KAAI,MAAO,sBAAA,cAACS,4BAAAA;MAA2BC,UAAUV,KAAKC,QAAQM;;EAC9E,CAAA;EACAd,QAAQC,OAAO;IACbC,IAAI,GAAGC,KAAKD,EAAE;IACdE,MAAM;IACNC,UAAU;IACVC,QAAQ,CAACC,SACP,CAAC,CAACA,KAAKC,WACP,OAAOD,KAAKC,YAAY,YACxB,UAAUD,KAAKC,WACf,YAAYD,KAAKC,WACjBD,KAAKC,QAAQC,SAASN,KAAKD,MAC3BQ,IAAIC,WAAWO,WAAWA,YAAYX,KAAKC,QAAQM,MAAM;IAC3DC,WAAW,CAAC,EAAEX,MAAMG,KAAI,MAAO,sBAAA,cAACY,8BAAAA;MAA6Bf;MAAYI,SAASD,KAAKC,QAAQM;;EACjG,CAAA;EACAd,QAAQC,OAAO;IACbC,IAAI,GAAGC,KAAKD,EAAE;IACdE,MAAM;IACNE,QAAQ,CAACC,SAAiDG,IAAIC,WAAWC,SAASC,UAAUN,KAAKC,OAAO;IACxGO,WAAW,CAAC,EAAER,KAAI,MAAO,sBAAA,cAACa,eAAAA;MAAcH,UAAUV,KAAKC;;EACzD,CAAA;EACAR,QAAQC,OAAO;IACbC,IAAI,GAAGC,KAAKD,EAAE;IACdE,MAAM;IACNE,QAAQ,CAACC,SACPc,gBAAgBC,WAAWf,KAAKC,OAAO,KAAKD,KAAKC,QAAQe,WAAWpB,KAAKD;IAC3Ea,WAAW,CAAC,EAAER,MAAM,EAAEC,QAAO,EAAE,MAAE;AAC/B,YAAM,EAAEgB,UAAUC,eAAc,IAAKC,iBAAyClB,QAAQmB,IAAI;AAC1F,aAAO,sBAAA,cAACC,mBAAAA;QAAkBJ;QAAoBK,kBAAkBJ;;IAClE;EACF,CAAA;CACD,CAAA,CAAA;",
6
- "names": ["Effect", "React", "Capabilities", "Capability", "Surface", "useSettingsState", "AppCapabilities", "Obj", "Markdown", "Collection", "Capability", "makeModule", "succeed", "contributes", "Capabilities", "ReactSurface", "Surface", "create", "id", "meta", "role", "position", "filter", "data", "subject", "type", "Obj", "instanceOf", "Markdown", "Document", "object", "component", "DocumentPresenterContainer", "document", "Collection", "CollectionPresenterContainer", "MarkdownSlide", "AppCapabilities", "isSettings", "prefix", "settings", "updateSettings", "useSettingsState", "atom", "PresenterSettings", "onSettingsChange"]
7
- }
@@ -1,32 +0,0 @@
1
- import {
2
- PresenterCapabilities,
3
- PresenterSettingsSchema
4
- } from "./chunk-4PZXJXBO.mjs";
5
- import {
6
- meta
7
- } from "./chunk-VQVZVXPJ.mjs";
8
-
9
- // src/capabilities/settings/settings.ts
10
- import * as Effect from "effect/Effect";
11
- import { Capability } from "@dxos/app-framework";
12
- import { AppCapabilities } from "@dxos/app-toolkit";
13
- import { createKvsStore } from "@dxos/effect";
14
- var settings_default = Capability.makeModule(() => Effect.sync(() => {
15
- const settingsAtom = createKvsStore({
16
- key: meta.id,
17
- schema: PresenterSettingsSchema,
18
- defaultValue: () => ({})
19
- });
20
- return [
21
- Capability.contributes(PresenterCapabilities.Settings, settingsAtom),
22
- Capability.contributes(AppCapabilities.Settings, {
23
- prefix: meta.id,
24
- schema: PresenterSettingsSchema,
25
- atom: settingsAtom
26
- })
27
- ];
28
- }));
29
- export {
30
- settings_default as default
31
- };
32
- //# sourceMappingURL=settings-OLQ7QNLC.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/settings/settings.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { AppCapabilities } from '@dxos/app-toolkit';\nimport { createKvsStore } from '@dxos/effect';\n\nimport { meta } from '../../meta';\nimport { PresenterCapabilities, PresenterSettingsSchema } from '../../types';\n\nexport default Capability.makeModule(() =>\n Effect.sync(() => {\n const settingsAtom = createKvsStore({\n key: meta.id,\n schema: PresenterSettingsSchema,\n defaultValue: () => ({}),\n });\n\n return [\n Capability.contributes(PresenterCapabilities.Settings, settingsAtom),\n Capability.contributes(AppCapabilities.Settings, {\n prefix: meta.id,\n schema: PresenterSettingsSchema,\n atom: settingsAtom,\n }),\n ];\n }),\n);\n"],
5
- "mappings": ";;;;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,uBAAuB;AAChC,SAASC,sBAAsB;AAK/B,IAAA,mBAAeC,WAAWC,WAAW,MAC5BC,YAAK,MAAA;AACV,QAAMC,eAAeC,eAAe;IAClCC,KAAKC,KAAKC;IACVC,QAAQC;IACRC,cAAc,OAAO,CAAC;EACxB,CAAA;AAEA,SAAO;IACLV,WAAWW,YAAYC,sBAAsBC,UAAUV,YAAAA;IACvDH,WAAWW,YAAYG,gBAAgBD,UAAU;MAC/CE,QAAQT,KAAKC;MACbC,QAAQC;MACRO,MAAMb;IACR,CAAA;;AAEJ,CAAA,CAAA;",
6
- "names": ["Effect", "Capability", "AppCapabilities", "createKvsStore", "Capability", "makeModule", "sync", "settingsAtom", "createKvsStore", "key", "meta", "id", "schema", "PresenterSettingsSchema", "defaultValue", "contributes", "PresenterCapabilities", "Settings", "AppCapabilities", "prefix", "atom"]
7
- }
@@ -1,6 +0,0 @@
1
- import * as Effect from 'effect/Effect';
2
- import { Capability } from '@dxos/app-framework';
3
- import { GraphBuilder } from '@dxos/plugin-graph';
4
- declare const _default: (props?: void | undefined) => Effect.Effect<Capability.Capability<Capability.InterfaceDef<GraphBuilder.BuilderExtensions>>, never, Capability.Service>;
5
- export default _default;
6
- //# sourceMappingURL=app-graph-builder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"app-graph-builder.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/app-graph-builder/app-graph-builder.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAgB,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAM/D,OAAO,EAAE,YAAY,EAA0B,MAAM,oBAAoB,CAAC;;AAa1E,wBA+EE"}
@@ -1,3 +0,0 @@
1
- import { Capability } from '@dxos/app-framework';
2
- export declare const AppGraphBuilder: Capability.LazyCapability<void, Capability.Capability<Capability.InterfaceDef<import("@dxos/app-graph").BuilderExtensions>>, Error>;
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/app-graph-builder/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,eAAO,MAAM,eAAe,qIAA0E,CAAC"}
@@ -1,3 +0,0 @@
1
- import { Capability } from '@dxos/app-framework';
2
- export declare const ReactSurface: Capability.LazyCapability<void, Capability.Capability<Capability.InterfaceDef<import("@dxos/app-framework/Capabilities").ReactSurface>>, Error>;
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/react-surface/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,eAAO,MAAM,YAAY,iJAAmE,CAAC"}
@@ -1,5 +0,0 @@
1
- import * as Effect from 'effect/Effect';
2
- import { Capabilities, Capability } from '@dxos/app-framework';
3
- declare const _default: (props?: void | undefined) => Effect.Effect<Capability.Capability<Capability.InterfaceDef<Capabilities.ReactSurface>>, never, never>;
4
- export default _default;
5
- //# sourceMappingURL=react-surface.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"react-surface.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/react-surface/react-surface.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;;AAgB/D,wBA+CE"}
@@ -1,7 +0,0 @@
1
- import { Capability } from '@dxos/app-framework';
2
- export declare const PresenterSettings: Capability.LazyCapability<void, [Capability.Capability<Capability.InterfaceDef<import("@effect-atom/atom/Atom").Writable<{
3
- presentCollections?: boolean | undefined;
4
- }, {
5
- presentCollections?: boolean | undefined;
6
- }>>>, Capability.Capability<Capability.InterfaceDef<import("@dxos/app-toolkit").AppCapabilities.Settings>>], Error>;
7
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/settings/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,eAAO,MAAM,iBAAiB;;;;mHAAmE,CAAC"}
@@ -1,10 +0,0 @@
1
- import * as Effect from 'effect/Effect';
2
- import { Capability } from '@dxos/app-framework';
3
- import { AppCapabilities } from '@dxos/app-toolkit';
4
- declare const _default: (props?: void | undefined) => Effect.Effect<[Capability.Capability<Capability.InterfaceDef<import("@effect-atom/atom/Atom").Writable<{
5
- presentCollections?: boolean | undefined;
6
- }, {
7
- presentCollections?: boolean | undefined;
8
- }>>>, Capability.Capability<Capability.InterfaceDef<AppCapabilities.Settings>>], never, never>;
9
- export default _default;
10
- //# sourceMappingURL=settings.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/settings/settings.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;;;;;;AAMpD,wBAiBE"}
@@ -1,7 +0,0 @@
1
- import React from 'react';
2
- import { type SurfaceComponentProps } from '@dxos/app-toolkit/ui';
3
- import { type Collection } from '@dxos/schema';
4
- type CollectionPresenterContainerProps = SurfaceComponentProps<Collection.Collection>;
5
- declare const CollectionPresenterContainer: ({ role, subject: collection }: CollectionPresenterContainerProps) => React.JSX.Element;
6
- export default CollectionPresenterContainer;
7
- //# sourceMappingURL=CollectionPresenterContainer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CollectionPresenterContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/CollectionPresenterContainer.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAGpD,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAO/C,KAAK,iCAAiC,GAAG,qBAAqB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAEtF,QAAA,MAAM,4BAA4B,GAAI,+BAA+B,iCAAiC,sBAuBrG,CAAC;AAEF,eAAe,4BAA4B,CAAC"}
@@ -1,7 +0,0 @@
1
- import { type FC } from 'react';
2
- import { type Markdown } from '@dxos/plugin-markdown/types';
3
- declare const DocumentPresenterContainer: FC<{
4
- document: Markdown.Document;
5
- }>;
6
- export default DocumentPresenterContainer;
7
- //# sourceMappingURL=DocumentPresenterContainer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DocumentPresenterContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/DocumentPresenterContainer.tsx"],"names":[],"mappings":"AAGA,OAAc,EAAE,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAO5D,QAAA,MAAM,0BAA0B,EAAE,EAAE,CAAC;IAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAA;CAAE,CAQnE,CAAC;AAEF,eAAe,0BAA0B,CAAC"}
@@ -1,8 +0,0 @@
1
- import React, { type PropsWithChildren } from 'react';
2
- import { type ThemedClassName } from '@dxos/react-ui';
3
- export type ContainerProps = ThemedClassName<PropsWithChildren<{}>>;
4
- /**
5
- * Scaled markdown container.
6
- */
7
- export declare const Container: ({ children, classNames }: ContainerProps) => React.JSX.Element;
8
- //# sourceMappingURL=Container.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Container.d.ts","sourceRoot":"","sources":["../../../../../src/components/Markdown/Container.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAY,MAAM,OAAO,CAAC;AAGhE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGtD,MAAM,MAAM,cAAc,GAAG,eAAe,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC;AAEpE;;GAEG;AACH,eAAO,MAAM,SAAS,GAAI,0BAA0B,cAAc,sBA4BjE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Container.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/Markdown/Container.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AAUjD,QAAA,MAAM,IAAI;;0BAR8B,UAAU;;;;;CAeb,CAAC;AAEtC,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAIrB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,KAIlB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,KAIlB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAIrB,CAAC"}
@@ -1,8 +0,0 @@
1
- import React from 'react';
2
- import { type Markdown } from '@dxos/plugin-markdown/types';
3
- type MarkdownSlideProps = {
4
- document: Markdown.Document;
5
- };
6
- declare const MarkdownSlide: ({ document }: MarkdownSlideProps) => React.JSX.Element | null;
7
- export default MarkdownSlide;
8
- //# sourceMappingURL=MarkdownSlide.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MarkdownSlide.d.ts","sourceRoot":"","sources":["../../../../src/components/MarkdownSlide.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAI5D,KAAK,kBAAkB,GAAG;IACxB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC;CAC7B,CAAC;AAEF,QAAA,MAAM,aAAa,GAAI,cAAc,kBAAkB,6BAWtD,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -1,8 +0,0 @@
1
- import React from 'react';
2
- import { type PresenterSettingsProps } from '../types';
3
- export type PresenterSettingsComponentProps = {
4
- settings: PresenterSettingsProps;
5
- onSettingsChange: (fn: (current: PresenterSettingsProps) => PresenterSettingsProps) => void;
6
- };
7
- export declare const PresenterSettings: ({ settings, onSettingsChange }: PresenterSettingsComponentProps) => React.JSX.Element;
8
- //# sourceMappingURL=PresenterSettings.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PresenterSettings.d.ts","sourceRoot":"","sources":["../../../../src/components/PresenterSettings.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAEvD,MAAM,MAAM,+BAA+B,GAAG;IAC5C,QAAQ,EAAE,sBAAsB,CAAC;IACjC,gBAAgB,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,sBAAsB,KAAK,sBAAsB,KAAK,IAAI,CAAC;CAC7F,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,gCAAgC,+BAA+B,sBAiBhG,CAAC"}