@dxos/plugin-presenter 0.8.2-main.f11618f → 0.8.2-staging.7ac8446
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.
- package/dist/lib/browser/{CollectionPresenterContainer-5ETXRUWZ.mjs → PresenterMain-PQPWYIWU.mjs} +42 -15
- package/dist/lib/browser/PresenterMain-PQPWYIWU.mjs.map +7 -0
- package/dist/lib/browser/{DocumentPresenterContainer-CAPKSXNP.mjs → RevealMain-B2PJXHND.mjs} +27 -13
- package/dist/lib/browser/RevealMain-B2PJXHND.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-builder-QS5KTYD3.mjs → app-graph-builder-CWMMBJTB.mjs} +5 -25
- package/dist/lib/browser/app-graph-builder-CWMMBJTB.mjs.map +7 -0
- package/dist/lib/browser/{chunk-VTBPPB5Z.mjs → chunk-3VVM67QE.mjs} +5 -5
- package/dist/lib/browser/{chunk-VTBPPB5Z.mjs.map → chunk-3VVM67QE.mjs.map} +3 -3
- package/dist/lib/browser/chunk-FK2KJZ73.mjs +16 -0
- package/dist/lib/browser/chunk-FK2KJZ73.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +31 -12
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/intent-resolver-TTGJCKQ5.mjs +46 -0
- package/dist/lib/browser/intent-resolver-TTGJCKQ5.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-N23VEZ2O.mjs → react-surface-6JT4CB4B.mjs} +29 -14
- package/dist/lib/browser/react-surface-6JT4CB4B.mjs.map +7 -0
- package/dist/lib/browser/{settings-KWSP73SU.mjs → settings-RBF22MVS.mjs} +3 -3
- package/dist/lib/browser/settings-RBF22MVS.mjs.map +7 -0
- package/dist/lib/browser/state-KI7F4I6V.mjs +18 -0
- package/dist/lib/browser/state-KI7F4I6V.mjs.map +7 -0
- package/dist/types/src/PresenterPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/capabilities.d.ts +8 -0
- package/dist/types/src/capabilities/capabilities.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +3 -0
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +4 -0
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/state.d.ts +4 -0
- package/dist/types/src/capabilities/state.d.ts.map +1 -0
- package/dist/types/src/components/PresenterMain.d.ts +7 -0
- package/dist/types/src/components/PresenterMain.d.ts.map +1 -0
- package/dist/types/src/components/RevealMain.d.ts +7 -0
- package/dist/types/src/components/RevealMain.d.ts.map +1 -0
- package/dist/types/src/components/index.d.ts +2 -2
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -0
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/types.d.ts +8 -120
- package/dist/types/src/types.d.ts.map +1 -1
- package/package.json +21 -24
- package/src/PresenterPlugin.tsx +14 -1
- package/src/capabilities/app-graph-builder.ts +3 -22
- package/src/capabilities/capabilities.ts +13 -0
- package/src/capabilities/index.ts +4 -0
- package/src/capabilities/intent-resolver.ts +43 -0
- package/src/capabilities/react-surface.tsx +24 -16
- package/src/capabilities/settings.ts +2 -2
- package/src/capabilities/state.ts +17 -0
- package/src/components/PresenterMain.tsx +63 -0
- package/src/components/RevealMain.tsx +38 -0
- package/src/components/index.ts +2 -2
- package/src/index.ts +1 -0
- package/dist/lib/browser/CollectionPresenterContainer-5ETXRUWZ.mjs.map +0 -7
- package/dist/lib/browser/DocumentPresenterContainer-CAPKSXNP.mjs.map +0 -7
- package/dist/lib/browser/app-graph-builder-QS5KTYD3.mjs.map +0 -7
- package/dist/lib/browser/chunk-2RWWAQZK.mjs +0 -36
- package/dist/lib/browser/chunk-2RWWAQZK.mjs.map +0 -7
- package/dist/lib/browser/react-surface-N23VEZ2O.mjs.map +0 -7
- package/dist/lib/browser/settings-KWSP73SU.mjs.map +0 -7
- package/dist/types/src/components/CollectionPresenterContainer.d.ts +0 -7
- package/dist/types/src/components/CollectionPresenterContainer.d.ts.map +0 -1
- package/dist/types/src/components/DocumentPresenterContainer.d.ts +0 -7
- package/dist/types/src/components/DocumentPresenterContainer.d.ts.map +0 -1
- package/dist/types/src/useExitPresenter.d.ts +0 -6
- package/dist/types/src/useExitPresenter.d.ts.map +0 -1
- package/src/components/CollectionPresenterContainer.tsx +0 -43
- package/src/components/DocumentPresenterContainer.tsx +0 -22
- package/src/useExitPresenter.ts +0 -35
package/dist/lib/browser/{CollectionPresenterContainer-5ETXRUWZ.mjs → PresenterMain-PQPWYIWU.mjs}
RENAMED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
} from "./chunk-2RWWAQZK.mjs";
|
|
4
|
-
import {
|
|
2
|
+
PresenterAction,
|
|
5
3
|
PresenterContext
|
|
6
4
|
} from "./chunk-CQR4O6KC.mjs";
|
|
7
5
|
import "./chunk-S2S5RFJ4.mjs";
|
|
8
6
|
|
|
9
|
-
// packages/plugins/plugin-presenter/src/components/
|
|
7
|
+
// packages/plugins/plugin-presenter/src/components/PresenterMain.tsx
|
|
10
8
|
import React3, { useContext, useState } from "react";
|
|
11
|
-
import { Surface } from "@dxos/app-framework";
|
|
12
|
-
import {
|
|
9
|
+
import { Surface, createIntent, useLayout, useIntentDispatcher } from "@dxos/app-framework";
|
|
10
|
+
import { Main } from "@dxos/react-ui";
|
|
11
|
+
import { baseSurface, topbarBlockPaddingStart, fixedInsetFlexLayout, bottombarBlockPaddingEnd } from "@dxos/react-ui-theme";
|
|
13
12
|
|
|
14
13
|
// packages/plugins/plugin-presenter/src/components/Presenter/Layout.tsx
|
|
15
14
|
import React from "react";
|
|
@@ -131,15 +130,43 @@ var PageNumber = ({ index = 0, count = 1 }) => {
|
|
|
131
130
|
className: "flex items-center text-neutral-500 text-2xl"
|
|
132
131
|
}, /* @__PURE__ */ React2.createElement("div", null, index + 1, " / ", count));
|
|
133
132
|
};
|
|
133
|
+
var StartButton = ({ running, onClick }) => {
|
|
134
|
+
return /* @__PURE__ */ React2.createElement(Button, {
|
|
135
|
+
variant: "ghost",
|
|
136
|
+
classNames: "p-0",
|
|
137
|
+
onClick: () => onClick?.(!running)
|
|
138
|
+
}, running && /* @__PURE__ */ React2.createElement(X, {
|
|
139
|
+
className: mx2(getSize(6))
|
|
140
|
+
}) || /* @__PURE__ */ React2.createElement(Play, {
|
|
141
|
+
className: mx2(getSize(6))
|
|
142
|
+
}));
|
|
143
|
+
};
|
|
134
144
|
|
|
135
|
-
// packages/plugins/plugin-presenter/src/components/
|
|
136
|
-
var
|
|
145
|
+
// packages/plugins/plugin-presenter/src/components/PresenterMain.tsx
|
|
146
|
+
var PresenterMain = ({ collection }) => {
|
|
137
147
|
const [slide, setSlide] = useState(0);
|
|
148
|
+
const layout = useLayout();
|
|
149
|
+
const fullscreen = layout.mode === "fullscreen";
|
|
138
150
|
const { running } = useContext(PresenterContext);
|
|
139
|
-
const
|
|
140
|
-
|
|
141
|
-
|
|
151
|
+
const { dispatchPromise: dispatch } = useIntentDispatcher();
|
|
152
|
+
const handleSetRunning = (running2) => {
|
|
153
|
+
void dispatch(createIntent(PresenterAction.TogglePresentation, {
|
|
154
|
+
object: collection,
|
|
155
|
+
state: running2
|
|
156
|
+
}));
|
|
157
|
+
};
|
|
158
|
+
return /* @__PURE__ */ React3.createElement(Main.Content, {
|
|
159
|
+
classNames: [
|
|
160
|
+
baseSurface,
|
|
161
|
+
fixedInsetFlexLayout,
|
|
162
|
+
!fullscreen && topbarBlockPaddingStart,
|
|
163
|
+
!fullscreen && bottombarBlockPaddingEnd
|
|
164
|
+
]
|
|
142
165
|
}, /* @__PURE__ */ React3.createElement(Layout, {
|
|
166
|
+
topRight: /* @__PURE__ */ React3.createElement(StartButton, {
|
|
167
|
+
running,
|
|
168
|
+
onClick: (running2) => handleSetRunning(running2)
|
|
169
|
+
}),
|
|
143
170
|
bottomRight: /* @__PURE__ */ React3.createElement(PageNumber, {
|
|
144
171
|
index: slide,
|
|
145
172
|
count: collection.objects.length
|
|
@@ -149,7 +176,7 @@ var CollectionPresenterContainer = ({ collection }) => {
|
|
|
149
176
|
count: collection.objects.length,
|
|
150
177
|
keys: running,
|
|
151
178
|
onChange: setSlide,
|
|
152
|
-
onExit:
|
|
179
|
+
onExit: () => handleSetRunning(false)
|
|
153
180
|
})
|
|
154
181
|
}, /* @__PURE__ */ React3.createElement(Surface, {
|
|
155
182
|
role: "slide",
|
|
@@ -159,8 +186,8 @@ var CollectionPresenterContainer = ({ collection }) => {
|
|
|
159
186
|
placeholder: /* @__PURE__ */ React3.createElement(React3.Fragment, null)
|
|
160
187
|
})));
|
|
161
188
|
};
|
|
162
|
-
var
|
|
189
|
+
var PresenterMain_default = PresenterMain;
|
|
163
190
|
export {
|
|
164
|
-
|
|
191
|
+
PresenterMain_default as default
|
|
165
192
|
};
|
|
166
|
-
//# sourceMappingURL=
|
|
193
|
+
//# sourceMappingURL=PresenterMain-PQPWYIWU.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/PresenterMain.tsx", "../../../src/components/Presenter/Layout.tsx", "../../../src/components/Presenter/Pager.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { type FC, useContext, useState } from 'react';\n\nimport { Surface, createIntent, useLayout, useIntentDispatcher } from '@dxos/app-framework';\nimport { type CollectionType } from '@dxos/plugin-space/types';\nimport { Main } from '@dxos/react-ui';\nimport {\n baseSurface,\n topbarBlockPaddingStart,\n fixedInsetFlexLayout,\n bottombarBlockPaddingEnd,\n} from '@dxos/react-ui-theme';\n\nimport { Layout, PageNumber, Pager, StartButton } from './Presenter';\nimport { PresenterContext, PresenterAction } from '../types';\n\nconst PresenterMain: FC<{ collection: CollectionType }> = ({ collection }) => {\n const [slide, setSlide] = useState(0);\n\n // TODO(burdon): Should not depend on split screen.\n const layout = useLayout();\n const fullscreen = layout.mode === 'fullscreen';\n const { running } = useContext(PresenterContext);\n\n // TODO(burdon): Currently conflates fullscreen and running.\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const handleSetRunning = (running: boolean) => {\n void dispatch(createIntent(PresenterAction.TogglePresentation, { object: collection, state: running }));\n };\n\n return (\n <Main.Content\n classNames={[\n baseSurface,\n fixedInsetFlexLayout,\n !fullscreen && topbarBlockPaddingStart,\n !fullscreen && bottombarBlockPaddingEnd,\n ]}\n >\n <Layout\n topRight={<StartButton running={running} onClick={(running) => handleSetRunning(running)} />}\n bottomRight={<PageNumber index={slide} count={collection.objects.length} />}\n bottomLeft={\n <Pager\n index={slide}\n count={collection.objects.length}\n keys={running}\n onChange={setSlide}\n onExit={() => handleSetRunning(false)}\n />\n }\n >\n {/* TODO(wittjosiah): Better slide placeholder. */}\n <Surface role='slide' data={{ subject: collection.objects[slide] }} placeholder={<></>} />\n </Layout>\n </Main.Content>\n );\n};\n\nexport default PresenterMain;\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { type PropsWithChildren, type ReactNode } from 'react';\n\nimport { type ThemedClassName } from '@dxos/react-ui';\nimport { mx } from '@dxos/react-ui-theme';\n\nexport type LayoutProps = ThemedClassName<\n PropsWithChildren<{\n className?: string;\n topLeft?: ReactNode;\n topRight?: ReactNode;\n bottomLeft?: ReactNode;\n bottomRight?: ReactNode;\n }>\n>;\n\nexport const Layout = ({ children, classNames, topLeft, topRight, bottomLeft, bottomRight }: LayoutProps) => {\n return (\n <div className={mx('flex grow relative overflow-hidden bg-attention', classNames)}>\n <div className={mx('flex flex-col grow overflow-hidden')}>{children}</div>\n\n <div className='z-[200]'>\n <div className='absolute top-4 left-4'>{topLeft}</div>\n <div className='absolute top-4 right-4'>{topRight}</div>\n <div className='absolute bottom-4 left-4'>{bottomLeft}</div>\n <div className='absolute bottom-4 right-4'>{bottomRight}</div>\n </div>\n </div>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Play, X, CaretDoubleLeft, CaretDoubleRight, CaretLeft, CaretRight } from '@phosphor-icons/react';\nimport React, { type FC, useEffect } from 'react';\n\nimport { Button, useControlledState } from '@dxos/react-ui';\nimport { getSize, mx } from '@dxos/react-ui-theme';\n\nexport type PagerProps = {\n index?: number;\n count?: number;\n keys?: boolean; // TODO(burdon): Rename.\n onChange?: (index: number) => void;\n onExit?: () => void;\n};\n\nexport const Pager = ({ index: controlledIndex = 0, count = 0, keys, onChange, onExit }: PagerProps) => {\n const [index, setIndex] = useControlledState(controlledIndex);\n useEffect(() => {\n onChange?.(index);\n }, [index]);\n\n const handleChangeIndex = (dir: number) => {\n setIndex((index) => {\n const next = index + dir;\n return next >= 0 && next < count ? next : index;\n });\n };\n\n // TODO(burdon): Standardize via system key binding.\n useEffect(() => {\n if (!keys) {\n return;\n }\n\n const keydownHandler = (event: KeyboardEvent) => {\n switch (event.key) {\n case 'Escape': {\n onExit?.();\n break;\n }\n case 'ArrowLeft': {\n if (event.shiftKey) {\n onChange?.(0);\n } else {\n handleChangeIndex(-1);\n }\n break;\n }\n case 'ArrowRight': {\n if (event.shiftKey) {\n onChange?.(count - 1);\n } else {\n handleChangeIndex(1);\n }\n break;\n }\n case 'ArrowUp': {\n onChange?.(0);\n break;\n }\n case 'ArrowDown': {\n onChange?.(count - 1);\n break;\n }\n }\n };\n\n window.addEventListener('keydown', keydownHandler);\n return () => window.removeEventListener('keydown', keydownHandler);\n }, [keys, count]);\n\n if (index === undefined || !count) {\n return null;\n }\n\n return (\n <div className='flex items-center text-neutral-500'>\n <Button variant='ghost' classNames='p-0' onClick={() => onChange?.(0)}>\n <CaretDoubleLeft className={mx(getSize(6))} />\n </Button>\n <Button variant='ghost' classNames='p-0' onClick={() => handleChangeIndex(-1)}>\n <CaretLeft className={mx(getSize(6))} />\n </Button>\n <Button variant='ghost' classNames='p-0' onClick={() => handleChangeIndex(1)}>\n <CaretRight className={mx(getSize(6))} />\n </Button>\n <Button variant='ghost' classNames='p-0' onClick={() => onChange?.(count - 1)}>\n <CaretDoubleRight className={mx(getSize(6))} />\n </Button>\n </div>\n );\n};\n\nexport type PageNumberProps = {\n index?: number;\n count?: number;\n};\n\nexport const PageNumber = ({ index = 0, count = 1 }: PageNumberProps) => {\n if (index === undefined || !count) {\n return null;\n }\n\n return (\n <div className='flex items-center text-neutral-500 text-2xl'>\n <div>\n {index + 1} / {count}\n </div>\n </div>\n );\n};\n\nexport const StartButton: FC<{ running?: boolean; onClick?: (start: boolean) => void }> = ({ running, onClick }) => {\n return (\n <Button variant='ghost' classNames='p-0' onClick={() => onClick?.(!running)}>\n {(running && <X className={mx(getSize(6))} />) || <Play className={mx(getSize(6))} />}\n </Button>\n );\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "useContext", "useState", "Surface", "createIntent", "useLayout", "useIntentDispatcher", "Main", "baseSurface", "topbarBlockPaddingStart", "fixedInsetFlexLayout", "bottombarBlockPaddingEnd", "React", "mx", "Layout", "children", "classNames", "topLeft", "topRight", "bottomLeft", "bottomRight", "div", "className", "mx", "Play", "X", "CaretDoubleLeft", "CaretDoubleRight", "CaretLeft", "CaretRight", "React", "useEffect", "Button", "useControlledState", "getSize", "mx", "Pager", "index", "controlledIndex", "count", "keys", "onChange", "onExit", "setIndex", "useControlledState", "useEffect", "handleChangeIndex", "dir", "next", "keydownHandler", "event", "key", "shiftKey", "window", "addEventListener", "removeEventListener", "undefined", "React", "div", "className", "Button", "variant", "classNames", "onClick", "CaretDoubleLeft", "mx", "getSize", "CaretLeft", "CaretRight", "CaretDoubleRight", "PageNumber", "StartButton", "running", "X", "Play", "PresenterMain", "collection", "slide", "setSlide", "useState", "layout", "useLayout", "fullscreen", "mode", "running", "useContext", "PresenterContext", "dispatchPromise", "dispatch", "useIntentDispatcher", "handleSetRunning", "createIntent", "PresenterAction", "TogglePresentation", "object", "state", "React", "Main", "Content", "classNames", "baseSurface", "fixedInsetFlexLayout", "topbarBlockPaddingStart", "bottombarBlockPaddingEnd", "Layout", "topRight", "StartButton", "onClick", "bottomRight", "PageNumber", "index", "count", "objects", "length", "bottomLeft", "Pager", "keys", "onChange", "onExit", "Surface", "role", "data", "subject", "placeholder"]
|
|
7
|
+
}
|
package/dist/lib/browser/{DocumentPresenterContainer-CAPKSXNP.mjs → RevealMain-B2PJXHND.mjs}
RENAMED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
} from "./chunk-
|
|
2
|
+
PresenterAction
|
|
3
|
+
} from "./chunk-CQR4O6KC.mjs";
|
|
4
|
+
import "./chunk-S2S5RFJ4.mjs";
|
|
4
5
|
|
|
5
|
-
// packages/plugins/plugin-presenter/src/components/
|
|
6
|
+
// packages/plugins/plugin-presenter/src/components/RevealMain.tsx
|
|
6
7
|
import React2 from "react";
|
|
7
|
-
import {
|
|
8
|
+
import { createIntent, useLayout, useIntentDispatcher } from "@dxos/app-framework";
|
|
9
|
+
import { Main } from "@dxos/react-ui";
|
|
10
|
+
import { topbarBlockPaddingStart, fixedInsetFlexLayout, bottombarBlockPaddingEnd } from "@dxos/react-ui-theme";
|
|
8
11
|
|
|
9
12
|
// packages/plugins/plugin-presenter/src/components/RevealPlayer/RevealPlayer.tsx
|
|
10
13
|
import "reveal.js/dist/reveal.css";
|
|
@@ -156,18 +159,29 @@ var RevealPlayer = ({ classNames, content, slide, fullscreen = true, onExit }) =
|
|
|
156
159
|
}))))));
|
|
157
160
|
};
|
|
158
161
|
|
|
159
|
-
// packages/plugins/plugin-presenter/src/components/
|
|
160
|
-
var
|
|
161
|
-
const
|
|
162
|
-
|
|
163
|
-
|
|
162
|
+
// packages/plugins/plugin-presenter/src/components/RevealMain.tsx
|
|
163
|
+
var PresenterMain = ({ document }) => {
|
|
164
|
+
const layout = useLayout();
|
|
165
|
+
const fullscreen = layout.mode === "fullscreen";
|
|
166
|
+
const { dispatchPromise: dispatch } = useIntentDispatcher();
|
|
167
|
+
return /* @__PURE__ */ React2.createElement(Main.Content, {
|
|
168
|
+
classNames: [
|
|
169
|
+
fixedInsetFlexLayout,
|
|
170
|
+
!fullscreen && topbarBlockPaddingStart,
|
|
171
|
+
!fullscreen && bottombarBlockPaddingEnd
|
|
172
|
+
]
|
|
164
173
|
}, /* @__PURE__ */ React2.createElement(RevealPlayer, {
|
|
165
174
|
content: document.content.target?.content ?? "",
|
|
166
|
-
onExit:
|
|
175
|
+
onExit: () => {
|
|
176
|
+
void dispatch(createIntent(PresenterAction.TogglePresentation, {
|
|
177
|
+
object: document,
|
|
178
|
+
state: false
|
|
179
|
+
}));
|
|
180
|
+
}
|
|
167
181
|
}));
|
|
168
182
|
};
|
|
169
|
-
var
|
|
183
|
+
var RevealMain_default = PresenterMain;
|
|
170
184
|
export {
|
|
171
|
-
|
|
185
|
+
RevealMain_default as default
|
|
172
186
|
};
|
|
173
|
-
//# sourceMappingURL=
|
|
187
|
+
//# sourceMappingURL=RevealMain-B2PJXHND.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/RevealMain.tsx", "../../../src/components/RevealPlayer/RevealPlayer.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { type FC } from 'react';\n\nimport { createIntent, useLayout, useIntentDispatcher } from '@dxos/app-framework';\nimport { type DocumentType } from '@dxos/plugin-markdown/types';\nimport { Main } from '@dxos/react-ui';\nimport { topbarBlockPaddingStart, fixedInsetFlexLayout, bottombarBlockPaddingEnd } from '@dxos/react-ui-theme';\n\nimport { RevealPlayer } from './RevealPlayer';\nimport { PresenterAction } from '../types';\n\nconst PresenterMain: FC<{ document: DocumentType }> = ({ document }) => {\n const layout = useLayout();\n const fullscreen = layout.mode === 'fullscreen';\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n\n return (\n <Main.Content\n classNames={[\n fixedInsetFlexLayout,\n !fullscreen && topbarBlockPaddingStart,\n !fullscreen && bottombarBlockPaddingEnd,\n ]}\n >\n <RevealPlayer\n content={document.content.target?.content ?? ''}\n onExit={() => {\n void dispatch(createIntent(PresenterAction.TogglePresentation, { object: document, state: false }));\n }}\n />\n </Main.Content>\n );\n};\n\nexport default PresenterMain;\n", "//\n// Copyright 2024 DXOS.org\n//\n\n// eslint-disable-next-line no-restricted-imports\nimport 'reveal.js/dist/reveal.css';\n// eslint-disable-next-line no-restricted-imports\nimport 'reveal.js/dist/theme/black.css';\n\n// https://github.com/highlightjs/highlight.js/tree/main/src/styles\n// import 'highlight.js/styles/github-dark.css';\nimport 'highlight.js/styles/tokyo-night-dark.css';\n\nimport hljs from 'highlight.js';\nimport typescript from 'highlight.js/lib/languages/typescript';\nimport React, { useEffect, useRef } from 'react';\nimport Reveal from 'reveal.js';\nimport RevealHighlight from 'reveal.js/plugin/highlight/highlight';\nimport RevealMarkdown from 'reveal.js/plugin/markdown/plugin.js';\n\nimport { type ThemedClassName } from '@dxos/react-ui';\nimport { mx } from '@dxos/react-ui-theme';\n\nconst styles = `\n<style type=\"text/css\">\n .reveal h1 {\n font-weight: 100;\n font-size: 60px;\n opacity: 0.5;\n }\n .reveal h2 {\n font-weight: 100;\n padding-top: 60px;\n padding-left: 40px;\n font-size: 48px;\n opacity: 0.3;\n }\n .reveal h1, h2, p {\n font-family: \"Raleway\", sans-serif;\n text-align: left;\n font-weight: 200;\n }\n .reveal ul {\n font-family: \"Raleway\", sans-serif;\n display: block;\n list-style: \"- \";\n }\n .reveal blockquote p {\n text-align: center;\n font-weight: 100;\n padding: 32px;\n }\n .reveal pre {\n margin-left: 0;\n }\n .reveal code {\n font-size: 20px;\n background: #111111;\n color: #eeeeee;\n max-height: unset !important;\n }\n</style>\n`;\n\nexport type RevealProps = ThemedClassName<{\n content: string;\n slide?: number;\n fullscreen?: boolean;\n onExit?: () => void;\n}>;\n\nexport const RevealPlayer = ({ classNames, content, slide, fullscreen = true, onExit }: RevealProps) => {\n const deckDivRef = useRef<HTMLDivElement>(null);\n const deckRef = useRef<Reveal.Api | null>(null);\n useEffect(() => {\n if (deckRef.current) {\n return;\n }\n\n // Required for syntax highlighting.\n hljs.registerLanguage('typescript', typescript);\n\n const t = setTimeout(async () => {\n // https://revealjs.com/react\n // https://revealjs.com/config\n // https://github.com/hakimel/reveal.js\n // TODO(burdon): Fragments and scroll view steps 2 at a time (safe mode?)\n deckRef.current = new Reveal(deckDivRef.current!, {\n // view: 'scroll',\n progress: false,\n transition: 'none',\n slideNumber: false,\n embedded: true,\n\n // TODO(burdon): Speaker view requires server to serve popout window.\n // https://revealjs.com/speaker-view\n showNotes: false,\n\n // width: 1600,\n // height: 900,\n margin: 0.1,\n // center: false,\n // minScale: 0.1,\n // maxScale: 1.4,\n\n // https://revealjs.com/markdown\n // TODO(burdon): Requires server to serve popout window.\n plugins: [RevealMarkdown, RevealHighlight],\n\n // See https://marked.js.org/using_advanced#options\n markdown: {\n gfm: true,\n smartypants: true,\n highlight: (code, language) => {\n if (language) {\n return hljs.highlight(code, { language }).value;\n }\n\n return hljs.highlightAuto(code).value;\n },\n },\n });\n\n await deckRef.current.initialize();\n\n if (slide !== undefined) {\n deckRef.current.slide(slide < 0 ? deckRef.current?.getTotalSlides() + slide : slide - 1);\n }\n\n deckRef.current.addKeyBinding({ keyCode: 27, key: 'Escape', description: 'Exit full screen' }, () => {\n onExit?.();\n });\n });\n\n return () => {\n try {\n clearTimeout(t);\n if (deckRef.current) {\n deckRef.current.destroy();\n deckRef.current = null;\n }\n } catch (err) {\n // Ignore.\n }\n };\n });\n\n return (\n <div className={mx('absolute flex h-full w-full items-center justify-center', fullscreen && 'inset-0', classNames)}>\n <div className='relative aspect-video w-full'>\n <div ref={deckDivRef} className='reveal'>\n {/* TODO(burdon): Must be in head. */}\n <style>\n <link rel='preconnect' href='https://fonts.googleapis.com' />\n <link rel='preconnect' href='https://fonts.gstatic.com' {...{ crossOrigin: '' }} />\n <link\n rel='stylesheet'\n href='https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,100..900;1,100..900&display=swap'\n />\n </style>\n <div className='slides'>\n <div className='!text-center' />\n <section {...{ 'data-markdown': [] }}>\n <textarea {...{ 'data-template': true }} defaultValue={[styles, content].join('\\n')}></textarea>\n </section>\n </div>\n </div>\n </div>\n </div>\n );\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "createIntent", "useLayout", "useIntentDispatcher", "Main", "topbarBlockPaddingStart", "fixedInsetFlexLayout", "bottombarBlockPaddingEnd", "hljs", "typescript", "React", "useEffect", "useRef", "Reveal", "RevealHighlight", "RevealMarkdown", "mx", "styles", "RevealPlayer", "classNames", "content", "slide", "fullscreen", "onExit", "deckDivRef", "useRef", "deckRef", "useEffect", "current", "hljs", "registerLanguage", "typescript", "t", "setTimeout", "Reveal", "progress", "transition", "slideNumber", "embedded", "showNotes", "margin", "plugins", "RevealMarkdown", "RevealHighlight", "markdown", "gfm", "smartypants", "highlight", "code", "language", "value", "highlightAuto", "initialize", "undefined", "getTotalSlides", "addKeyBinding", "keyCode", "key", "description", "clearTimeout", "destroy", "err", "div", "className", "mx", "ref", "style", "link", "rel", "href", "crossOrigin", "section", "textarea", "defaultValue", "join", "PresenterMain", "document", "layout", "useLayout", "fullscreen", "mode", "dispatchPromise", "dispatch", "useIntentDispatcher", "React", "Main", "Content", "classNames", "fixedInsetFlexLayout", "topbarBlockPaddingStart", "bottombarBlockPaddingEnd", "RevealPlayer", "content", "target", "onExit", "createIntent", "PresenterAction", "TogglePresentation", "object", "state"]
|
|
7
|
+
}
|
|
@@ -6,14 +6,12 @@ import {
|
|
|
6
6
|
} from "./chunk-S2S5RFJ4.mjs";
|
|
7
7
|
|
|
8
8
|
// packages/plugins/plugin-presenter/src/capabilities/app-graph-builder.ts
|
|
9
|
-
import { contributes, Capabilities, createIntent
|
|
9
|
+
import { contributes, Capabilities, createIntent } from "@dxos/app-framework";
|
|
10
10
|
import { isInstanceOf } from "@dxos/echo-schema";
|
|
11
|
-
import { DeckCapabilities } from "@dxos/plugin-deck";
|
|
12
|
-
import { ATTENDABLE_PATH_SEPARATOR, DeckAction } from "@dxos/plugin-deck/types";
|
|
13
11
|
import { createExtension } from "@dxos/plugin-graph";
|
|
14
12
|
import { DocumentType } from "@dxos/plugin-markdown/types";
|
|
15
13
|
import { CollectionType } from "@dxos/plugin-space/types";
|
|
16
|
-
import { fullyQualifiedId
|
|
14
|
+
import { fullyQualifiedId } from "@dxos/react-client/echo";
|
|
17
15
|
var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBuilder, createExtension({
|
|
18
16
|
id: PRESENTER_PLUGIN,
|
|
19
17
|
filter: (node) => {
|
|
@@ -23,7 +21,6 @@ var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBu
|
|
|
23
21
|
actions: ({ node }) => {
|
|
24
22
|
const object = node.data;
|
|
25
23
|
const id = fullyQualifiedId(object);
|
|
26
|
-
const spaceId = getSpace(object)?.id;
|
|
27
24
|
return [
|
|
28
25
|
{
|
|
29
26
|
id: `${PresenterAction.TogglePresentation._tag}/${id}`,
|
|
@@ -31,25 +28,8 @@ var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBu
|
|
|
31
28
|
// So can set explicit fullscreen state coordinated with current presenter state.
|
|
32
29
|
data: async () => {
|
|
33
30
|
const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
id,
|
|
37
|
-
"presenter"
|
|
38
|
-
].join(ATTENDABLE_PATH_SEPARATOR);
|
|
39
|
-
if (!layout.deck.fullscreen) {
|
|
40
|
-
void dispatch(createIntent(DeckAction.Adjust, {
|
|
41
|
-
type: "solo--fullscreen",
|
|
42
|
-
id: presenterId
|
|
43
|
-
}));
|
|
44
|
-
}
|
|
45
|
-
await dispatch(createIntent(LayoutAction.Open, {
|
|
46
|
-
part: "main",
|
|
47
|
-
subject: [
|
|
48
|
-
presenterId
|
|
49
|
-
],
|
|
50
|
-
options: {
|
|
51
|
-
workspace: spaceId
|
|
52
|
-
}
|
|
31
|
+
await dispatch(createIntent(PresenterAction.TogglePresentation, {
|
|
32
|
+
object
|
|
53
33
|
}));
|
|
54
34
|
},
|
|
55
35
|
properties: {
|
|
@@ -72,4 +52,4 @@ var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBu
|
|
|
72
52
|
export {
|
|
73
53
|
app_graph_builder_default as default
|
|
74
54
|
};
|
|
75
|
-
//# sourceMappingURL=app-graph-builder-
|
|
55
|
+
//# sourceMappingURL=app-graph-builder-CWMMBJTB.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/app-graph-builder.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { contributes, type PluginsContext, Capabilities, createIntent } from '@dxos/app-framework';\nimport { isInstanceOf } from '@dxos/echo-schema';\nimport { createExtension, type Node } from '@dxos/plugin-graph';\nimport { DocumentType } from '@dxos/plugin-markdown/types';\nimport { CollectionType } from '@dxos/plugin-space/types';\nimport { fullyQualifiedId } from '@dxos/react-client/echo';\n\nimport { PRESENTER_PLUGIN } from '../meta';\nimport { PresenterAction, type PresenterSettingsProps } from '../types';\n\nexport default (context: PluginsContext) =>\n contributes(\n Capabilities.AppGraphBuilder,\n createExtension({\n id: PRESENTER_PLUGIN,\n filter: (node): node is Node<CollectionType | DocumentType> => {\n const settings = context\n .requestCapabilities(Capabilities.SettingsStore)[0]\n ?.getStore<PresenterSettingsProps>(PRESENTER_PLUGIN)?.value;\n return settings?.presentCollections\n ? isInstanceOf(CollectionType, node.data) || isInstanceOf(DocumentType, node.data)\n : isInstanceOf(DocumentType, node.data);\n },\n actions: ({ node }) => {\n const object = node.data;\n const id = fullyQualifiedId(object);\n return [\n {\n id: `${PresenterAction.TogglePresentation._tag}/${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: async () => {\n const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);\n await dispatch(createIntent(PresenterAction.TogglePresentation, { object }));\n },\n properties: {\n label: ['toggle presentation label', { ns: PRESENTER_PLUGIN }],\n icon: 'ph--presentation--regular',\n keyBinding: {\n macos: 'shift+meta+p',\n windows: 'shift+alt+p',\n },\n },\n },\n ];\n },\n }),\n );\n"],
|
|
5
|
+
"mappings": ";;;;;;;;AAIA,SAASA,aAAkCC,cAAcC,oBAAoB;AAC7E,SAASC,oBAAoB;AAC7B,SAASC,uBAAkC;AAC3C,SAASC,oBAAoB;AAC7B,SAASC,sBAAsB;AAC/B,SAASC,wBAAwB;AAKjC,IAAA,4BAAe,CAACC,YACdC,YACEC,aAAaC,iBACbC,gBAAgB;EACdC,IAAIC;EACJC,QAAQ,CAACC,SAAAA;AACP,UAAMC,WAAWT,QACdU,oBAAoBR,aAAaS,aAAa,EAAE,CAAA,GAC/CC,SAAiCN,gBAAAA,GAAmBO;AACxD,WAAOJ,UAAUK,qBACbC,aAAaC,gBAAgBR,KAAKS,IAAI,KAAKF,aAAaG,cAAcV,KAAKS,IAAI,IAC/EF,aAAaG,cAAcV,KAAKS,IAAI;EAC1C;EACAE,SAAS,CAAC,EAAEX,KAAI,MAAE;AAChB,UAAMY,SAASZ,KAAKS;AACpB,UAAMZ,KAAKgB,iBAAiBD,MAAAA;AAC5B,WAAO;MACL;QACEf,IAAI,GAAGiB,gBAAgBC,mBAAmBC,IAAI,IAAInB,EAAAA;;;QAGlDY,MAAM,YAAA;AACJ,gBAAM,EAAEQ,iBAAiBC,SAAQ,IAAK1B,QAAQ2B,kBAAkBzB,aAAa0B,gBAAgB;AAC7F,gBAAMF,SAASG,aAAaP,gBAAgBC,oBAAoB;YAAEH;UAAO,CAAA,CAAA;QAC3E;QACAU,YAAY;UACVC,OAAO;YAAC;YAA6B;cAAEC,IAAI1B;YAAiB;;UAC5D2B,MAAM;UACNC,YAAY;YACVC,OAAO;YACPC,SAAS;UACX;QACF;MACF;;EAEJ;AACF,CAAA,CAAA;",
|
|
6
|
+
"names": ["contributes", "Capabilities", "createIntent", "isInstanceOf", "createExtension", "DocumentType", "CollectionType", "fullyQualifiedId", "context", "contributes", "Capabilities", "AppGraphBuilder", "createExtension", "id", "PRESENTER_PLUGIN", "filter", "node", "settings", "requestCapabilities", "SettingsStore", "getStore", "value", "presentCollections", "isInstanceOf", "CollectionType", "data", "DocumentType", "actions", "object", "fullyQualifiedId", "PresenterAction", "TogglePresentation", "_tag", "dispatchPromise", "dispatch", "requestCapability", "IntentDispatcher", "createIntent", "properties", "label", "ns", "icon", "keyBinding", "macos", "windows"]
|
|
7
|
+
}
|
|
@@ -19,13 +19,13 @@ var PresenterSettings = ({ settings }) => {
|
|
|
19
19
|
// packages/plugins/plugin-presenter/src/components/index.ts
|
|
20
20
|
import { lazy } from "react";
|
|
21
21
|
var MarkdownSlide = lazy(() => import("./MarkdownSlide-5NYXG5SC.mjs"));
|
|
22
|
-
var
|
|
23
|
-
var
|
|
22
|
+
var RevealMain = lazy(() => import("./RevealMain-B2PJXHND.mjs"));
|
|
23
|
+
var PresenterMain = lazy(() => import("./PresenterMain-PQPWYIWU.mjs"));
|
|
24
24
|
|
|
25
25
|
export {
|
|
26
26
|
PresenterSettings,
|
|
27
27
|
MarkdownSlide,
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
RevealMain,
|
|
29
|
+
PresenterMain
|
|
30
30
|
};
|
|
31
|
-
//# sourceMappingURL=chunk-
|
|
31
|
+
//# sourceMappingURL=chunk-3VVM67QE.mjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
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 { DeprecatedFormContainer, DeprecatedFormInput } from '@dxos/react-ui-form';\n\nimport { PRESENTER_PLUGIN } from '../meta';\nimport { type PresenterSettingsProps } from '../types';\n\nexport const PresenterSettings = ({ settings }: { settings: PresenterSettingsProps }) => {\n const { t } = useTranslation(PRESENTER_PLUGIN);\n\n return (\n <DeprecatedFormContainer>\n <DeprecatedFormInput label={t('present collections label')}>\n <Input.Switch\n checked={settings.presentCollections}\n onCheckedChange={(checked) => (settings.presentCollections = !!checked)}\n />\n </DeprecatedFormInput>\n </DeprecatedFormContainer>\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
|
|
5
|
-
"mappings": ";;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,OAAOC,sBAAsB;AACtC,SAASC,yBAAyBC,2BAA2B;AAKtD,IAAMC,oBAAoB,CAAC,EAAEC,SAAQ,MAAwC;AAClF,QAAM,EAAEC,EAAC,IAAKC,eAAeC,gBAAAA;AAE7B,SACE,sBAAA,cAACC,yBAAAA,MACC,sBAAA,cAACC,qBAAAA;IAAoBC,OAAOL,EAAE,2BAAA;KAC5B,sBAAA,cAACM,MAAMC,QAAM;IACXC,SAAST,SAASU;IAClBC,iBAAiB,CAACF,YAAaT,SAASU,qBAAqB,CAAC,CAACD;;AAKzE;;;ACrBA,SAASG,YAAY;AAId,IAAMC,gBAAgBC,KAAK,MAAM,OAAO,8BAAA,CAAA;AACxC,IAAMC,
|
|
6
|
-
"names": ["React", "Input", "useTranslation", "DeprecatedFormContainer", "DeprecatedFormInput", "PresenterSettings", "settings", "t", "useTranslation", "PRESENTER_PLUGIN", "DeprecatedFormContainer", "DeprecatedFormInput", "label", "Input", "Switch", "checked", "presentCollections", "onCheckedChange", "lazy", "MarkdownSlide", "lazy", "
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Input, useTranslation } from '@dxos/react-ui';\nimport { DeprecatedFormContainer, DeprecatedFormInput } from '@dxos/react-ui-form';\n\nimport { PRESENTER_PLUGIN } from '../meta';\nimport { type PresenterSettingsProps } from '../types';\n\nexport const PresenterSettings = ({ settings }: { settings: PresenterSettingsProps }) => {\n const { t } = useTranslation(PRESENTER_PLUGIN);\n\n return (\n <DeprecatedFormContainer>\n <DeprecatedFormInput label={t('present collections label')}>\n <Input.Switch\n checked={settings.presentCollections}\n onCheckedChange={(checked) => (settings.presentCollections = !!checked)}\n />\n </DeprecatedFormInput>\n </DeprecatedFormContainer>\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 RevealMain = lazy(() => import('./RevealMain'));\nexport const PresenterMain = lazy(() => import('./PresenterMain'));\n"],
|
|
5
|
+
"mappings": ";;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,OAAOC,sBAAsB;AACtC,SAASC,yBAAyBC,2BAA2B;AAKtD,IAAMC,oBAAoB,CAAC,EAAEC,SAAQ,MAAwC;AAClF,QAAM,EAAEC,EAAC,IAAKC,eAAeC,gBAAAA;AAE7B,SACE,sBAAA,cAACC,yBAAAA,MACC,sBAAA,cAACC,qBAAAA;IAAoBC,OAAOL,EAAE,2BAAA;KAC5B,sBAAA,cAACM,MAAMC,QAAM;IACXC,SAAST,SAASU;IAClBC,iBAAiB,CAACF,YAAaT,SAASU,qBAAqB,CAAC,CAACD;;AAKzE;;;ACrBA,SAASG,YAAY;AAId,IAAMC,gBAAgBC,KAAK,MAAM,OAAO,8BAAA,CAAA;AACxC,IAAMC,aAAaD,KAAK,MAAM,OAAO,2BAAA,CAAA;AACrC,IAAME,gBAAgBF,KAAK,MAAM,OAAO,8BAAA,CAAA;",
|
|
6
|
+
"names": ["React", "Input", "useTranslation", "DeprecatedFormContainer", "DeprecatedFormInput", "PresenterSettings", "settings", "t", "useTranslation", "PRESENTER_PLUGIN", "DeprecatedFormContainer", "DeprecatedFormInput", "label", "Input", "Switch", "checked", "presentCollections", "onCheckedChange", "lazy", "MarkdownSlide", "lazy", "RevealMain", "PresenterMain"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import {
|
|
2
|
+
PRESENTER_PLUGIN
|
|
3
|
+
} from "./chunk-S2S5RFJ4.mjs";
|
|
4
|
+
|
|
5
|
+
// packages/plugins/plugin-presenter/src/capabilities/capabilities.ts
|
|
6
|
+
import { defineCapability } from "@dxos/app-framework";
|
|
7
|
+
var PresenterCapabilities;
|
|
8
|
+
(function(PresenterCapabilities2) {
|
|
9
|
+
PresenterCapabilities2.State = defineCapability(`${PRESENTER_PLUGIN}/capability/state`);
|
|
10
|
+
PresenterCapabilities2.MutableState = defineCapability(`${PRESENTER_PLUGIN}/capability/state`);
|
|
11
|
+
})(PresenterCapabilities || (PresenterCapabilities = {}));
|
|
12
|
+
|
|
13
|
+
export {
|
|
14
|
+
PresenterCapabilities
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=chunk-FK2KJZ73.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/capabilities.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { defineCapability } from '@dxos/app-framework';\n\nimport { PRESENTER_PLUGIN } from '../meta';\n\nexport namespace PresenterCapabilities {\n export type State = { presenting: boolean };\n export const State = defineCapability<Readonly<State>>(`${PRESENTER_PLUGIN}/capability/state`);\n export const MutableState = defineCapability<State>(`${PRESENTER_PLUGIN}/capability/state`);\n}\n"],
|
|
5
|
+
"mappings": ";;;;;AAIA,SAASA,wBAAwB;;UAIhBC,wBAAAA;yBAEFC,QAAQC,iBAAkC,GAAGC,gBAAAA,mBAAmC;yBAChFC,eAAeF,iBAAwB,GAAGC,gBAAAA,mBAAmC;AAC5F,GAJiBH,0BAAAA,wBAAAA,CAAAA,EAAAA;",
|
|
6
|
+
"names": ["defineCapability", "PresenterCapabilities", "State", "defineCapability", "PRESENTER_PLUGIN", "MutableState"]
|
|
7
|
+
}
|
|
@@ -1,22 +1,27 @@
|
|
|
1
1
|
import {
|
|
2
|
-
CollectionPresenterContainer,
|
|
3
|
-
DocumentPresenterContainer,
|
|
4
2
|
MarkdownSlide,
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
PresenterMain,
|
|
4
|
+
PresenterSettings,
|
|
5
|
+
RevealMain
|
|
6
|
+
} from "./chunk-3VVM67QE.mjs";
|
|
7
|
+
import {
|
|
8
|
+
PresenterCapabilities
|
|
9
|
+
} from "./chunk-FK2KJZ73.mjs";
|
|
7
10
|
import {
|
|
8
11
|
PRESENTER_PLUGIN,
|
|
9
12
|
meta
|
|
10
13
|
} from "./chunk-S2S5RFJ4.mjs";
|
|
11
14
|
|
|
12
|
-
// packages/plugins/plugin-presenter/src/PresenterPlugin.tsx
|
|
13
|
-
import { definePlugin, defineModule, Events, contributes, Capabilities } from "@dxos/app-framework";
|
|
14
|
-
|
|
15
15
|
// packages/plugins/plugin-presenter/src/capabilities/index.ts
|
|
16
16
|
import { lazy } from "@dxos/app-framework";
|
|
17
|
-
var AppGraphBuilder = lazy(() => import("./app-graph-builder-
|
|
18
|
-
var
|
|
19
|
-
var
|
|
17
|
+
var AppGraphBuilder = lazy(() => import("./app-graph-builder-CWMMBJTB.mjs"));
|
|
18
|
+
var IntentResolver = lazy(() => import("./intent-resolver-TTGJCKQ5.mjs"));
|
|
19
|
+
var ReactSurface = lazy(() => import("./react-surface-6JT4CB4B.mjs"));
|
|
20
|
+
var PresenterSettings2 = lazy(() => import("./settings-RBF22MVS.mjs"));
|
|
21
|
+
var PresenterState = lazy(() => import("./state-KI7F4I6V.mjs"));
|
|
22
|
+
|
|
23
|
+
// packages/plugins/plugin-presenter/src/PresenterPlugin.tsx
|
|
24
|
+
import { definePlugin, defineModule, Events, contributes, Capabilities } from "@dxos/app-framework";
|
|
20
25
|
|
|
21
26
|
// packages/plugins/plugin-presenter/src/translations.ts
|
|
22
27
|
var translations_default = [
|
|
@@ -38,6 +43,14 @@ var PresenterPlugin = () => definePlugin(meta, [
|
|
|
38
43
|
activatesOn: Events.SetupSettings,
|
|
39
44
|
activate: PresenterSettings2
|
|
40
45
|
}),
|
|
46
|
+
defineModule({
|
|
47
|
+
id: `${meta.id}/module/state`,
|
|
48
|
+
// TODO(wittjosiah): Does not integrate with settings store.
|
|
49
|
+
// Should this be a different event?
|
|
50
|
+
// Should settings store be renamed to be more generic?
|
|
51
|
+
activatesOn: Events.SetupSettings,
|
|
52
|
+
activate: PresenterState
|
|
53
|
+
}),
|
|
41
54
|
defineModule({
|
|
42
55
|
id: `${meta.id}/module/translations`,
|
|
43
56
|
activatesOn: Events.SetupTranslations,
|
|
@@ -48,6 +61,11 @@ var PresenterPlugin = () => definePlugin(meta, [
|
|
|
48
61
|
activatesOn: Events.SetupReactSurface,
|
|
49
62
|
activate: ReactSurface
|
|
50
63
|
}),
|
|
64
|
+
defineModule({
|
|
65
|
+
id: `${meta.id}/module/intent-resolver`,
|
|
66
|
+
activatesOn: Events.SetupIntentResolver,
|
|
67
|
+
activate: IntentResolver
|
|
68
|
+
}),
|
|
51
69
|
defineModule({
|
|
52
70
|
id: `${meta.id}/module/app-graph-builder`,
|
|
53
71
|
activatesOn: Events.SetupAppGraph,
|
|
@@ -55,12 +73,13 @@ var PresenterPlugin = () => definePlugin(meta, [
|
|
|
55
73
|
})
|
|
56
74
|
]);
|
|
57
75
|
export {
|
|
58
|
-
CollectionPresenterContainer,
|
|
59
|
-
DocumentPresenterContainer,
|
|
60
76
|
MarkdownSlide,
|
|
61
77
|
PRESENTER_PLUGIN,
|
|
78
|
+
PresenterCapabilities,
|
|
79
|
+
PresenterMain,
|
|
62
80
|
PresenterPlugin,
|
|
63
81
|
PresenterSettings,
|
|
82
|
+
RevealMain,
|
|
64
83
|
meta
|
|
65
84
|
};
|
|
66
85
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../src/
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { definePlugin, defineModule, Events, contributes, Capabilities } from '@dxos/app-framework';\n\nimport { AppGraphBuilder, PresenterSettings, ReactSurface } from './capabilities';\nimport { meta } from './meta';\nimport translations from './translations';\n\n// TODO(burdon): Only scale markdown content.\n// TODO(burdon): Map stack content; Slide content type (e.g., markdown, sketch, IPFS image, table, etc.)\n\nexport const PresenterPlugin = () =>\n definePlugin(meta, [\n defineModule({\n id: `${meta.id}/module/settings`,\n activatesOn: Events.SetupSettings,\n activate: PresenterSettings,\n }),\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, translations),\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["
|
|
3
|
+
"sources": ["../../../src/capabilities/index.ts", "../../../src/PresenterPlugin.tsx", "../../../src/translations.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { lazy } from '@dxos/app-framework';\n\nexport const AppGraphBuilder = lazy(() => import('./app-graph-builder'));\nexport const IntentResolver = lazy(() => import('./intent-resolver'));\nexport const ReactSurface = lazy(() => import('./react-surface'));\nexport const PresenterSettings = lazy(() => import('./settings'));\nexport const PresenterState = lazy(() => import('./state'));\n\nexport * from './capabilities';\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { definePlugin, defineModule, Events, contributes, Capabilities } from '@dxos/app-framework';\n\nimport { AppGraphBuilder, IntentResolver, PresenterSettings, PresenterState, ReactSurface } from './capabilities';\nimport { meta } from './meta';\nimport translations from './translations';\n\n// TODO(burdon): Only scale markdown content.\n// TODO(burdon): Map stack content; Slide content type (e.g., markdown, sketch, IPFS image, table, etc.)\n\nexport const PresenterPlugin = () =>\n definePlugin(meta, [\n defineModule({\n id: `${meta.id}/module/settings`,\n activatesOn: Events.SetupSettings,\n activate: PresenterSettings,\n }),\n defineModule({\n id: `${meta.id}/module/state`,\n // TODO(wittjosiah): Does not integrate with settings store.\n // Should this be a different event?\n // Should settings store be renamed to be more generic?\n activatesOn: Events.SetupSettings,\n activate: PresenterState,\n }),\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, translations),\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntentResolver,\n activate: IntentResolver,\n }),\n defineModule({\n id: `${meta.id}/module/app-graph-builder`,\n activatesOn: Events.SetupAppGraph,\n activate: AppGraphBuilder,\n }),\n ]);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { PRESENTER_PLUGIN } from './meta';\n\nexport default [\n {\n 'en-US': {\n [PRESENTER_PLUGIN]: {\n 'plugin name': 'Presenter',\n 'toggle presentation label': 'Present',\n 'present collections label': 'Present collections (experimental)',\n },\n },\n },\n];\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;AAIA,SAASA,YAAY;AAEd,IAAMC,kBAAkBC,KAAK,MAAM,OAAO,kCAAA,CAAA;AAC1C,IAAMC,iBAAiBD,KAAK,MAAM,OAAO,gCAAA,CAAA;AACzC,IAAME,eAAeF,KAAK,MAAM,OAAO,8BAAA,CAAA;AACvC,IAAMG,qBAAoBH,KAAK,MAAM,OAAO,yBAAA,CAAA;AAC5C,IAAMI,iBAAiBJ,KAAK,MAAM,OAAO,sBAAA,CAAA;;;ACNhD,SAASK,cAAcC,cAAcC,QAAQC,aAAaC,oBAAoB;;;ACE9E,IAAA,uBAAe;EACb;IACE,SAAS;MACP,CAACC,gBAAAA,GAAmB;QAClB,eAAe;QACf,6BAA6B;QAC7B,6BAA6B;MAC/B;IACF;EACF;;;;ADFK,IAAMC,kBAAkB,MAC7BC,aAAaC,MAAM;EACjBC,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOC;IACpBC,UAAUC;EACZ,CAAA;EACAN,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;;;;IAIdC,aAAaC,OAAOC;IACpBC,UAAUE;EACZ,CAAA;EACAP,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOK;IACpBH,UAAU,MAAMI,YAAYC,aAAaC,cAAcC,oBAAAA;EACzD,CAAA;EACAZ,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOU;IACpBR,UAAUS;EACZ,CAAA;EACAd,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOY;IACpBV,UAAUW;EACZ,CAAA;EACAhB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOc;IACpBZ,UAAUa;EACZ,CAAA;CACD;",
|
|
6
|
+
"names": ["lazy", "AppGraphBuilder", "lazy", "IntentResolver", "ReactSurface", "PresenterSettings", "PresenterState", "definePlugin", "defineModule", "Events", "contributes", "Capabilities", "PRESENTER_PLUGIN", "PresenterPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "SetupSettings", "activate", "PresenterSettings", "PresenterState", "SetupTranslations", "contributes", "Capabilities", "Translations", "translations", "SetupReactSurface", "ReactSurface", "SetupIntentResolver", "IntentResolver", "SetupAppGraph", "AppGraphBuilder"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import {
|
|
2
|
+
PresenterCapabilities
|
|
3
|
+
} from "./chunk-FK2KJZ73.mjs";
|
|
4
|
+
import {
|
|
5
|
+
PresenterAction
|
|
6
|
+
} from "./chunk-CQR4O6KC.mjs";
|
|
7
|
+
import "./chunk-S2S5RFJ4.mjs";
|
|
8
|
+
|
|
9
|
+
// packages/plugins/plugin-presenter/src/capabilities/intent-resolver.ts
|
|
10
|
+
import { Capabilities, contributes, createIntent, createResolver, LayoutAction } from "@dxos/app-framework";
|
|
11
|
+
import { fullyQualifiedId } from "@dxos/react-client/echo";
|
|
12
|
+
var intent_resolver_default = (context) => contributes(Capabilities.IntentResolver, createResolver({
|
|
13
|
+
intent: PresenterAction.TogglePresentation,
|
|
14
|
+
resolve: ({ object, state: next }) => {
|
|
15
|
+
const state = context.requestCapability(PresenterCapabilities.MutableState);
|
|
16
|
+
state.presenting = next ?? !state.presenting;
|
|
17
|
+
if (state.presenting) {
|
|
18
|
+
return {
|
|
19
|
+
intents: [
|
|
20
|
+
createIntent(LayoutAction.SetLayoutMode, {
|
|
21
|
+
part: "mode",
|
|
22
|
+
subject: fullyQualifiedId(object),
|
|
23
|
+
options: {
|
|
24
|
+
mode: "fullscreen"
|
|
25
|
+
}
|
|
26
|
+
})
|
|
27
|
+
]
|
|
28
|
+
};
|
|
29
|
+
} else {
|
|
30
|
+
return {
|
|
31
|
+
intents: [
|
|
32
|
+
createIntent(LayoutAction.SetLayoutMode, {
|
|
33
|
+
part: "mode",
|
|
34
|
+
options: {
|
|
35
|
+
revert: true
|
|
36
|
+
}
|
|
37
|
+
})
|
|
38
|
+
]
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}));
|
|
43
|
+
export {
|
|
44
|
+
intent_resolver_default as default
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=intent-resolver-TTGJCKQ5.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/intent-resolver.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport {\n Capabilities,\n contributes,\n createIntent,\n createResolver,\n LayoutAction,\n type PluginsContext,\n} from '@dxos/app-framework';\nimport { fullyQualifiedId } from '@dxos/react-client/echo';\n\nimport { PresenterCapabilities } from './capabilities';\nimport { PresenterAction } from '../types';\n\nexport default (context: PluginsContext) =>\n contributes(\n Capabilities.IntentResolver,\n createResolver({\n intent: PresenterAction.TogglePresentation,\n resolve: ({ object, state: next }) => {\n const state = context.requestCapability(PresenterCapabilities.MutableState);\n state.presenting = next ?? !state.presenting;\n if (state.presenting) {\n return {\n intents: [\n createIntent(LayoutAction.SetLayoutMode, {\n part: 'mode',\n subject: fullyQualifiedId(object),\n options: { mode: 'fullscreen' },\n }),\n ],\n };\n } else {\n return {\n intents: [createIntent(LayoutAction.SetLayoutMode, { part: 'mode', options: { revert: true } })],\n };\n }\n },\n }),\n );\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;AAIA,SACEA,cACAC,aACAC,cACAC,gBACAC,oBAEK;AACP,SAASC,wBAAwB;AAKjC,IAAA,0BAAe,CAACC,YACdC,YACEC,aAAaC,gBACbC,eAAe;EACbC,QAAQC,gBAAgBC;EACxBC,SAAS,CAAC,EAAEC,QAAQC,OAAOC,KAAI,MAAE;AAC/B,UAAMD,QAAQV,QAAQY,kBAAkBC,sBAAsBC,YAAY;AAC1EJ,UAAMK,aAAaJ,QAAQ,CAACD,MAAMK;AAClC,QAAIL,MAAMK,YAAY;AACpB,aAAO;QACLC,SAAS;UACPC,aAAaC,aAAaC,eAAe;YACvCC,MAAM;YACNC,SAASC,iBAAiBb,MAAAA;YAC1Bc,SAAS;cAAEC,MAAM;YAAa;UAChC,CAAA;;MAEJ;IACF,OAAO;AACL,aAAO;QACLR,SAAS;UAACC,aAAaC,aAAaC,eAAe;YAAEC,MAAM;YAAQG,SAAS;cAAEE,QAAQ;YAAK;UAAE,CAAA;;MAC/F;IACF;EACF;AACF,CAAA,CAAA;",
|
|
6
|
+
"names": ["Capabilities", "contributes", "createIntent", "createResolver", "LayoutAction", "fullyQualifiedId", "context", "contributes", "Capabilities", "IntentResolver", "createResolver", "intent", "PresenterAction", "TogglePresentation", "resolve", "object", "state", "next", "requestCapability", "PresenterCapabilities", "MutableState", "presenting", "intents", "createIntent", "LayoutAction", "SetLayoutMode", "part", "subject", "fullyQualifiedId", "options", "mode", "revert"]
|
|
7
|
+
}
|