@dxos/plugin-presenter 0.8.4-main.3c1ae3b → 0.8.4-main.3fbcb4aa9b
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/neutral/CollectionPresenterContainer-JMX6INMS.mjs +46 -0
- package/dist/lib/neutral/CollectionPresenterContainer-JMX6INMS.mjs.map +7 -0
- package/dist/lib/neutral/DocumentPresenterContainer-KCDZ2O2C.mjs +24 -0
- package/dist/lib/neutral/DocumentPresenterContainer-KCDZ2O2C.mjs.map +7 -0
- package/dist/lib/neutral/MarkdownSlide-WXILOIBE.mjs +18 -0
- package/dist/lib/neutral/MarkdownSlide-WXILOIBE.mjs.map +7 -0
- package/dist/lib/neutral/PresenterPlugin.mjs +23 -0
- package/dist/lib/neutral/PresenterPlugin.mjs.map +7 -0
- package/dist/lib/neutral/PresenterPlugin.node.mjs +16 -0
- package/dist/lib/neutral/PresenterPlugin.node.mjs.map +7 -0
- package/dist/lib/neutral/PresenterSettings-2G4XD4QY.mjs +25 -0
- package/dist/lib/neutral/PresenterSettings-2G4XD4QY.mjs.map +7 -0
- package/dist/lib/neutral/app-graph-builder-LOVUQ6U5.mjs +98 -0
- package/dist/lib/neutral/app-graph-builder-LOVUQ6U5.mjs.map +7 -0
- package/dist/lib/neutral/capabilities/index.mjs +13 -0
- package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
- package/dist/lib/{browser/chunk-TMTUZQCK.mjs → neutral/chunk-4XSSDLGN.mjs} +2 -2
- package/dist/lib/neutral/chunk-4XSSDLGN.mjs.map +7 -0
- package/dist/lib/neutral/chunk-DCPA267T.mjs +68 -0
- package/dist/lib/neutral/chunk-DCPA267T.mjs.map +7 -0
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +7 -0
- package/dist/lib/neutral/chunk-V323QBC3.mjs +41 -0
- package/dist/lib/neutral/chunk-V323QBC3.mjs.map +7 -0
- package/dist/lib/neutral/components/index.mjs +502 -0
- package/dist/lib/neutral/components/index.mjs.map +7 -0
- package/dist/lib/neutral/containers/index.mjs +13 -0
- package/dist/lib/neutral/containers/index.mjs.map +7 -0
- package/dist/lib/neutral/index.mjs +18 -0
- package/dist/lib/neutral/index.mjs.map +7 -0
- package/dist/lib/neutral/meta.json +1 -0
- package/dist/lib/neutral/meta.mjs +8 -0
- package/dist/lib/neutral/meta.mjs.map +7 -0
- package/dist/lib/neutral/plugin.mjs +12 -0
- package/dist/lib/neutral/plugin.mjs.map +7 -0
- package/dist/lib/neutral/react-surface-ATYTHPAA.mjs +55 -0
- package/dist/lib/neutral/react-surface-ATYTHPAA.mjs.map +7 -0
- package/dist/lib/neutral/settings-R6LRDAAK.mjs +28 -0
- package/dist/lib/neutral/settings-R6LRDAAK.mjs.map +7 -0
- package/dist/lib/neutral/translations.mjs +19 -0
- package/dist/lib/neutral/translations.mjs.map +7 -0
- package/dist/lib/neutral/types/index.mjs +14 -0
- package/dist/lib/neutral/types/index.mjs.map +7 -0
- package/dist/types/src/PresenterPlugin.d.ts +3 -1
- package/dist/types/src/PresenterPlugin.d.ts.map +1 -1
- package/dist/types/src/PresenterPlugin.node.d.ts +4 -0
- package/dist/types/src/PresenterPlugin.node.d.ts.map +1 -0
- package/dist/types/src/PresenterPlugin.test.d.ts +2 -0
- package/dist/types/src/PresenterPlugin.test.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder.d.ts +4 -2
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +4 -3
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts +3 -2
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/settings.d.ts +5 -2
- package/dist/types/src/capabilities/settings.d.ts.map +1 -1
- package/dist/types/src/components/Markdown/Panel.d.ts +8 -0
- package/dist/types/src/components/Markdown/Panel.d.ts.map +1 -0
- package/dist/types/src/components/Markdown/{Container.stories.d.ts → Panel.stories.d.ts} +1 -1
- package/dist/types/src/components/Markdown/Panel.stories.d.ts.map +1 -0
- package/dist/types/src/components/Markdown/Slide.d.ts +1 -1
- package/dist/types/src/components/Markdown/Slide.d.ts.map +1 -1
- package/dist/types/src/components/Markdown/Slide.stories.d.ts.map +1 -1
- package/dist/types/src/components/Markdown/index.d.ts +1 -1
- package/dist/types/src/components/Markdown/index.d.ts.map +1 -1
- package/dist/types/src/components/Markdown/theme.d.ts.map +1 -1
- package/dist/types/src/components/Presenter/Layout.d.ts +5 -5
- package/dist/types/src/components/Presenter/Layout.d.ts.map +1 -1
- package/dist/types/src/components/Presenter/Pager.d.ts +1 -1
- package/dist/types/src/components/Presenter/Pager.d.ts.map +1 -1
- package/dist/types/src/components/Presenter/Pager.stories.d.ts.map +1 -1
- package/dist/types/src/components/PresenterSettings/PresenterSettings.d.ts +6 -0
- package/dist/types/src/components/PresenterSettings/PresenterSettings.d.ts.map +1 -0
- package/dist/types/src/components/PresenterSettings/PresenterSettings.stories.d.ts +23 -0
- package/dist/types/src/components/PresenterSettings/PresenterSettings.stories.d.ts.map +1 -0
- package/dist/types/src/components/PresenterSettings/index.d.ts +2 -0
- package/dist/types/src/components/PresenterSettings/index.d.ts.map +1 -0
- package/dist/types/src/components/RevealPlayer/RevealPlayer.d.ts +5 -4
- package/dist/types/src/components/RevealPlayer/RevealPlayer.d.ts.map +1 -1
- package/dist/types/src/components/RevealPlayer/RevealPlayer.stories.d.ts +7 -6
- package/dist/types/src/components/RevealPlayer/RevealPlayer.stories.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +5 -27
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/containers/CollectionPresenterContainer/CollectionPresenterContainer.d.ts +6 -0
- package/dist/types/src/containers/CollectionPresenterContainer/CollectionPresenterContainer.d.ts.map +1 -0
- package/dist/types/src/containers/CollectionPresenterContainer/index.d.ts +2 -0
- package/dist/types/src/containers/CollectionPresenterContainer/index.d.ts.map +1 -0
- package/dist/types/src/containers/DocumentPresenterContainer/DocumentPresenterContainer.d.ts +6 -0
- package/dist/types/src/containers/DocumentPresenterContainer/DocumentPresenterContainer.d.ts.map +1 -0
- package/dist/types/src/containers/DocumentPresenterContainer/index.d.ts +2 -0
- package/dist/types/src/containers/DocumentPresenterContainer/index.d.ts.map +1 -0
- package/dist/types/src/containers/MarkdownSlide/MarkdownSlide.d.ts +8 -0
- package/dist/types/src/containers/MarkdownSlide/MarkdownSlide.d.ts.map +1 -0
- package/dist/types/src/containers/MarkdownSlide/index.d.ts +2 -0
- package/dist/types/src/containers/MarkdownSlide/index.d.ts.map +1 -0
- package/dist/types/src/containers/index.d.ts +5 -0
- package/dist/types/src/containers/index.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +1 -2
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +2 -2
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/plugin.d.ts +3 -0
- package/dist/types/src/plugin.d.ts.map +1 -0
- package/dist/types/src/testing.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +4 -6
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/PresenterCapabilities.d.ts +4 -0
- package/dist/types/src/types/PresenterCapabilities.d.ts.map +1 -0
- package/dist/types/src/types/PresenterOperation.d.ts +17 -0
- package/dist/types/src/types/PresenterOperation.d.ts.map +1 -0
- package/dist/types/src/types/Settings.d.ts +7 -0
- package/dist/types/src/types/Settings.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +11 -0
- package/dist/types/src/types/index.d.ts.map +1 -0
- package/dist/types/src/useExitPresenter.d.ts +3 -4
- package/dist/types/src/useExitPresenter.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +100 -43
- package/src/PresenterPlugin.node.ts +16 -0
- package/src/PresenterPlugin.test.ts +23 -0
- package/src/PresenterPlugin.tsx +14 -26
- package/src/capabilities/app-graph-builder.ts +92 -106
- package/src/capabilities/index.ts +4 -4
- package/src/capabilities/react-surface.tsx +59 -54
- package/src/capabilities/settings.ts +24 -12
- package/src/components/Markdown/{Container.stories.tsx → Panel.stories.tsx} +7 -7
- package/src/components/Markdown/{Container.tsx → Panel.tsx} +6 -6
- package/src/components/Markdown/Slide.stories.tsx +4 -4
- package/src/components/Markdown/Slide.tsx +2 -2
- package/src/components/Markdown/index.ts +1 -1
- package/src/components/Markdown/theme.ts +6 -6
- package/src/components/Presenter/Layout.tsx +24 -23
- package/src/components/Presenter/Pager.stories.tsx +2 -2
- package/src/components/Presenter/Pager.tsx +2 -2
- package/src/components/PresenterSettings/PresenterSettings.stories.tsx +32 -0
- package/src/components/PresenterSettings/PresenterSettings.tsx +31 -0
- package/src/components/PresenterSettings/index.ts +5 -0
- package/src/components/RevealPlayer/RevealPlayer.stories.tsx +5 -5
- package/src/components/RevealPlayer/RevealPlayer.tsx +104 -102
- package/src/components/index.ts +5 -5
- package/src/containers/CollectionPresenterContainer/CollectionPresenterContainer.tsx +50 -0
- package/src/containers/CollectionPresenterContainer/index.ts +5 -0
- package/src/containers/DocumentPresenterContainer/DocumentPresenterContainer.tsx +24 -0
- package/src/containers/DocumentPresenterContainer/index.ts +5 -0
- package/src/containers/MarkdownSlide/MarkdownSlide.tsx +26 -0
- package/src/containers/MarkdownSlide/index.ts +5 -0
- package/src/containers/index.ts +9 -0
- package/src/index.ts +1 -3
- package/src/meta.ts +3 -3
- package/src/plugin.ts +9 -0
- package/src/testing.ts +6 -6
- package/src/translations.ts +4 -5
- package/src/types/PresenterCapabilities.ts +15 -0
- package/src/types/PresenterOperation.ts +25 -0
- package/src/types/Settings.ts +20 -0
- package/src/types/index.ts +21 -0
- package/src/useExitPresenter.ts +25 -26
- package/dist/lib/browser/CollectionPresenterContainer-4JFW3EKV.mjs +0 -199
- package/dist/lib/browser/CollectionPresenterContainer-4JFW3EKV.mjs.map +0 -7
- package/dist/lib/browser/DocumentPresenterContainer-SX32NAEH.mjs +0 -183
- package/dist/lib/browser/DocumentPresenterContainer-SX32NAEH.mjs.map +0 -7
- package/dist/lib/browser/MarkdownSlide-MEXR54L5.mjs +0 -223
- package/dist/lib/browser/MarkdownSlide-MEXR54L5.mjs.map +0 -7
- package/dist/lib/browser/app-graph-builder-UJEKUKAP.mjs +0 -106
- package/dist/lib/browser/app-graph-builder-UJEKUKAP.mjs.map +0 -7
- package/dist/lib/browser/chunk-BJWK5GQV.mjs +0 -38
- package/dist/lib/browser/chunk-BJWK5GQV.mjs.map +0 -7
- package/dist/lib/browser/chunk-Q3H4KEFB.mjs +0 -41
- package/dist/lib/browser/chunk-Q3H4KEFB.mjs.map +0 -7
- package/dist/lib/browser/chunk-TMTUZQCK.mjs.map +0 -7
- package/dist/lib/browser/chunk-VRRPVTKA.mjs +0 -39
- package/dist/lib/browser/chunk-VRRPVTKA.mjs.map +0 -7
- package/dist/lib/browser/index.mjs +0 -65
- package/dist/lib/browser/index.mjs.map +0 -7
- package/dist/lib/browser/meta.json +0 -1
- package/dist/lib/browser/react-surface-S4T6X72R.mjs +0 -57
- package/dist/lib/browser/react-surface-S4T6X72R.mjs.map +0 -7
- package/dist/lib/browser/settings-57TUVRW3.mjs +0 -22
- package/dist/lib/browser/settings-57TUVRW3.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/components/Markdown/Container.d.ts +0 -8
- package/dist/types/src/components/Markdown/Container.d.ts.map +0 -1
- package/dist/types/src/components/Markdown/Container.stories.d.ts.map +0 -1
- package/dist/types/src/components/MarkdownSlide.d.ts +0 -7
- package/dist/types/src/components/MarkdownSlide.d.ts.map +0 -1
- package/dist/types/src/components/PresenterSettings.d.ts +0 -6
- package/dist/types/src/components/PresenterSettings.d.ts.map +0 -1
- package/dist/types/src/types.d.ts +0 -37
- package/dist/types/src/types.d.ts.map +0 -1
- package/src/components/CollectionPresenterContainer.tsx +0 -44
- package/src/components/DocumentPresenterContainer.tsx +0 -23
- package/src/components/MarkdownSlide.tsx +0 -24
- package/src/components/PresenterSettings.tsx +0 -30
- package/src/types.ts +0 -46
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2023 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import React, { useContext, useState } from 'react';
|
|
6
|
+
|
|
7
|
+
import { Surface } from '@dxos/app-framework/ui';
|
|
8
|
+
import { AppSurface } from '@dxos/app-toolkit/ui';
|
|
9
|
+
import { type Collection, Obj } from '@dxos/echo';
|
|
10
|
+
import { Panel } from '@dxos/react-ui';
|
|
11
|
+
|
|
12
|
+
import { PageNumber, Pager, Layout as PresenterLayout } from '#components';
|
|
13
|
+
import { PresenterContext } from '#types';
|
|
14
|
+
|
|
15
|
+
import { useExitPresenter } from '../../useExitPresenter';
|
|
16
|
+
|
|
17
|
+
export type CollectionPresenterContainerProps = AppSurface.ObjectArticleProps<Collection.Collection>;
|
|
18
|
+
|
|
19
|
+
export const CollectionPresenterContainer = ({ role, subject: collection }: CollectionPresenterContainerProps) => {
|
|
20
|
+
const [slide, setSlide] = useState(0);
|
|
21
|
+
const { running } = useContext(PresenterContext);
|
|
22
|
+
const handleExit = useExitPresenter(collection);
|
|
23
|
+
|
|
24
|
+
return (
|
|
25
|
+
<Panel.Root role={role} classNames='relative'>
|
|
26
|
+
<Panel.Content asChild>
|
|
27
|
+
<PresenterLayout
|
|
28
|
+
bottomRight={<PageNumber index={slide} count={collection.objects.length} />}
|
|
29
|
+
bottomLeft={
|
|
30
|
+
<Pager
|
|
31
|
+
index={slide}
|
|
32
|
+
count={collection.objects.length}
|
|
33
|
+
keys={running}
|
|
34
|
+
onChange={setSlide}
|
|
35
|
+
onExit={handleExit}
|
|
36
|
+
/>
|
|
37
|
+
}
|
|
38
|
+
>
|
|
39
|
+
<Surface.Surface
|
|
40
|
+
type={AppSurface.Slide}
|
|
41
|
+
data={{
|
|
42
|
+
subject: collection.objects[slide],
|
|
43
|
+
attendableId: Obj.getDXN(collection).toString(),
|
|
44
|
+
}}
|
|
45
|
+
/>
|
|
46
|
+
</PresenterLayout>
|
|
47
|
+
</Panel.Content>
|
|
48
|
+
</Panel.Root>
|
|
49
|
+
);
|
|
50
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2023 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import React, { type FC } from 'react';
|
|
6
|
+
|
|
7
|
+
import { type Markdown } from '@dxos/plugin-markdown';
|
|
8
|
+
import { Panel } from '@dxos/react-ui';
|
|
9
|
+
|
|
10
|
+
import { RevealPlayer } from '#components';
|
|
11
|
+
|
|
12
|
+
import { useExitPresenter } from '../../useExitPresenter';
|
|
13
|
+
|
|
14
|
+
export const DocumentPresenterContainer: FC<{ document: Markdown.Document }> = ({ document }) => {
|
|
15
|
+
const handleExit = useExitPresenter(document);
|
|
16
|
+
|
|
17
|
+
return (
|
|
18
|
+
<Panel.Root classNames='relative'>
|
|
19
|
+
<Panel.Content asChild>
|
|
20
|
+
<RevealPlayer content={document.content.target?.content ?? ''} onExit={handleExit} />
|
|
21
|
+
</Panel.Content>
|
|
22
|
+
</Panel.Root>
|
|
23
|
+
);
|
|
24
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2023 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import React from 'react';
|
|
6
|
+
|
|
7
|
+
import { type Markdown } from '@dxos/plugin-markdown';
|
|
8
|
+
|
|
9
|
+
import { Panel, Slide } from '#components';
|
|
10
|
+
|
|
11
|
+
type MarkdownSlideProps = {
|
|
12
|
+
document: Markdown.Document;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export const MarkdownSlide = ({ document }: MarkdownSlideProps) => {
|
|
16
|
+
const content = document.content.target?.content;
|
|
17
|
+
if (!content) {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
return (
|
|
22
|
+
<Panel>
|
|
23
|
+
<Slide content={content} />
|
|
24
|
+
</Panel>
|
|
25
|
+
);
|
|
26
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2023 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import { type ComponentType, lazy } from 'react';
|
|
6
|
+
|
|
7
|
+
export const CollectionPresenterContainer: ComponentType<any> = lazy(() => import('./CollectionPresenterContainer'));
|
|
8
|
+
export const DocumentPresenterContainer: ComponentType<any> = lazy(() => import('./DocumentPresenterContainer'));
|
|
9
|
+
export const MarkdownSlide: ComponentType<any> = lazy(() => import('./MarkdownSlide'));
|
package/src/index.ts
CHANGED
package/src/meta.ts
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { type
|
|
5
|
+
import { type Plugin } from '@dxos/app-framework';
|
|
6
6
|
import { trim } from '@dxos/util';
|
|
7
7
|
|
|
8
|
-
export const meta:
|
|
9
|
-
id: 'dxos.
|
|
8
|
+
export const meta: Plugin.Meta = {
|
|
9
|
+
id: 'org.dxos.plugin.presenter',
|
|
10
10
|
name: 'Presenter',
|
|
11
11
|
description: trim`
|
|
12
12
|
Transform markdown documents into interactive presentation slideshows.
|
package/src/plugin.ts
ADDED
package/src/testing.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import { random } from '@dxos/random';
|
|
6
6
|
|
|
7
7
|
type SlideOptions = {
|
|
8
8
|
text?: string;
|
|
@@ -26,21 +26,21 @@ export const createSlide = (options: SlideOptions = {}) => {
|
|
|
26
26
|
|
|
27
27
|
const list = (length = 3) =>
|
|
28
28
|
Array.from({ length })
|
|
29
|
-
.map(() => `- ${
|
|
29
|
+
.map(() => `- ${random.lorem.sentence(3)}`)
|
|
30
30
|
.join('\n');
|
|
31
31
|
|
|
32
32
|
const ordered = (length = 3) =>
|
|
33
33
|
Array.from({ length })
|
|
34
|
-
.map((_, i) => `${i + 1}. ${
|
|
34
|
+
.map((_, i) => `${i + 1}. ${random.lorem.sentence(3)}`)
|
|
35
35
|
.join('\n');
|
|
36
36
|
|
|
37
37
|
return [
|
|
38
|
-
`# ${num}${
|
|
39
|
-
options.text &&
|
|
38
|
+
`# ${num}${random.lorem.sentence(3)}`,
|
|
39
|
+
options.text && random.lorem.sentences(),
|
|
40
40
|
options.code && code(),
|
|
41
41
|
options.list && list(options.list),
|
|
42
42
|
options.ordered && ordered(options.ordered),
|
|
43
|
-
|
|
43
|
+
random.lorem.sentences(),
|
|
44
44
|
]
|
|
45
45
|
.filter(Boolean)
|
|
46
46
|
.join('\n\r');
|
package/src/translations.ts
CHANGED
|
@@ -4,16 +4,15 @@
|
|
|
4
4
|
|
|
5
5
|
import { type Resource } from '@dxos/react-ui';
|
|
6
6
|
|
|
7
|
-
import { meta } from '
|
|
7
|
+
import { meta } from '#meta';
|
|
8
8
|
|
|
9
9
|
export const translations = [
|
|
10
10
|
{
|
|
11
11
|
'en-US': {
|
|
12
12
|
[meta.id]: {
|
|
13
|
-
'plugin
|
|
14
|
-
'settings
|
|
15
|
-
'toggle
|
|
16
|
-
'present collections label': 'Present collections (experimental)',
|
|
13
|
+
'plugin.name': 'Presenter',
|
|
14
|
+
'settings.title': 'Presenter settings',
|
|
15
|
+
'toggle-presentation.label': 'Present',
|
|
17
16
|
},
|
|
18
17
|
},
|
|
19
18
|
},
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2025 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
// @import-as-namespace
|
|
6
|
+
|
|
7
|
+
import { type Atom } from '@effect-atom/atom-react';
|
|
8
|
+
|
|
9
|
+
import { Capability } from '@dxos/app-framework';
|
|
10
|
+
|
|
11
|
+
import { meta } from '#meta';
|
|
12
|
+
|
|
13
|
+
// Inline import to avoid `Settings` namespace alias colliding with the
|
|
14
|
+
// `Settings` capability export below.
|
|
15
|
+
export const Settings = Capability.make<Atom.Writable<import('./Settings').Settings>>(`${meta.id}.capability.settings`);
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2025 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
// @import-as-namespace
|
|
6
|
+
|
|
7
|
+
import * as Schema from 'effect/Schema';
|
|
8
|
+
|
|
9
|
+
import { Operation } from '@dxos/compute';
|
|
10
|
+
import { Collection } from '@dxos/echo';
|
|
11
|
+
import { Markdown } from '@dxos/plugin-markdown';
|
|
12
|
+
|
|
13
|
+
import { meta } from '#meta';
|
|
14
|
+
|
|
15
|
+
const PRESENTER_OPERATION = `${meta.id}.operation`;
|
|
16
|
+
|
|
17
|
+
// TODO(wittjosiah): This appears to be unused.
|
|
18
|
+
export const TogglePresentation = Operation.make({
|
|
19
|
+
meta: { key: `${PRESENTER_OPERATION}.toggle-presentation`, name: 'Toggle Presentation' },
|
|
20
|
+
input: Schema.Struct({
|
|
21
|
+
object: Schema.Union(Markdown.Document, Collection.Collection),
|
|
22
|
+
state: Schema.optional(Schema.Boolean),
|
|
23
|
+
}),
|
|
24
|
+
output: Schema.Void,
|
|
25
|
+
});
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2023 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
// @import-as-namespace
|
|
6
|
+
|
|
7
|
+
import * as Schema from 'effect/Schema';
|
|
8
|
+
|
|
9
|
+
export const Settings = Schema.mutable(
|
|
10
|
+
Schema.Struct({
|
|
11
|
+
presentCollections: Schema.optional(
|
|
12
|
+
Schema.Boolean.annotations({
|
|
13
|
+
title: 'Present collections (experimental)',
|
|
14
|
+
description: 'Enable presenting collections of documents as a slideshow.',
|
|
15
|
+
}),
|
|
16
|
+
),
|
|
17
|
+
}),
|
|
18
|
+
);
|
|
19
|
+
|
|
20
|
+
export interface Settings extends Schema.Schema.Type<typeof Settings> {}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2023 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import { type Context, createContext } from 'react';
|
|
6
|
+
|
|
7
|
+
export type PresenterContextType = {
|
|
8
|
+
running: boolean;
|
|
9
|
+
start: () => void;
|
|
10
|
+
stop: () => void;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export const PresenterContext: Context<PresenterContextType> = createContext<PresenterContextType>({
|
|
14
|
+
running: false,
|
|
15
|
+
start: () => {},
|
|
16
|
+
stop: () => {},
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
export * as PresenterCapabilities from './PresenterCapabilities';
|
|
20
|
+
export * as PresenterOperation from './PresenterOperation';
|
|
21
|
+
export * as Settings from './Settings';
|
package/src/useExitPresenter.ts
CHANGED
|
@@ -2,36 +2,35 @@
|
|
|
2
2
|
// Copyright 2025 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import { useAtomValue } from '@effect-atom/atom-react';
|
|
6
|
+
import { useCallback, useMemo } from 'react';
|
|
6
7
|
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
8
|
+
import { useCapability, useOperationInvoker } from '@dxos/app-framework/ui';
|
|
9
|
+
import { LayoutOperation, getObjectPathFromObject, getSpacePath } from '@dxos/app-toolkit';
|
|
9
10
|
import { Obj } from '@dxos/echo';
|
|
10
|
-
import {
|
|
11
|
-
import { DeckCapabilities } from '@dxos/plugin-deck';
|
|
12
|
-
import { DeckAction } from '@dxos/plugin-deck/types';
|
|
13
|
-
import { getSpace } from '@dxos/react-client/echo';
|
|
11
|
+
import { DeckCapabilities, DeckOperation } from '@dxos/plugin-deck';
|
|
14
12
|
|
|
15
|
-
export const useExitPresenter = (object:
|
|
16
|
-
const {
|
|
17
|
-
const
|
|
13
|
+
export const useExitPresenter = (object: any) => {
|
|
14
|
+
const { invokePromise } = useOperationInvoker();
|
|
15
|
+
const stateAtom = useCapability(DeckCapabilities.State);
|
|
16
|
+
const state = useAtomValue(stateAtom);
|
|
17
|
+
|
|
18
|
+
// Compute deck from decks[activeDeck] since the getter doesn't survive spread operations.
|
|
19
|
+
const deck = useMemo(() => state.decks[state.activeDeck], [state.decks, state.activeDeck]);
|
|
18
20
|
|
|
19
21
|
return useCallback(() => {
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
);
|
|
22
|
+
const objectPath = getObjectPathFromObject(object);
|
|
23
|
+
const db = Obj.getDatabase(object);
|
|
24
|
+
if (deck?.fullscreen) {
|
|
25
|
+
void invokePromise(DeckOperation.Adjust, {
|
|
26
|
+
type: 'solo--fullscreen' as const,
|
|
27
|
+
id: objectPath,
|
|
28
|
+
});
|
|
28
29
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
);
|
|
36
|
-
}, [dispatch, object]);
|
|
30
|
+
|
|
31
|
+
return invokePromise(LayoutOperation.Open, {
|
|
32
|
+
subject: [objectPath],
|
|
33
|
+
workspace: db ? getSpacePath(db.spaceId) : undefined,
|
|
34
|
+
});
|
|
35
|
+
}, [invokePromise, object, deck]);
|
|
37
36
|
};
|
|
@@ -1,199 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
useExitPresenter
|
|
3
|
-
} from "./chunk-BJWK5GQV.mjs";
|
|
4
|
-
import {
|
|
5
|
-
PresenterContext
|
|
6
|
-
} from "./chunk-VRRPVTKA.mjs";
|
|
7
|
-
import "./chunk-TMTUZQCK.mjs";
|
|
8
|
-
|
|
9
|
-
// src/components/CollectionPresenterContainer.tsx
|
|
10
|
-
import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
|
|
11
|
-
import React3, { useContext, useState } from "react";
|
|
12
|
-
import { Surface } from "@dxos/app-framework/react";
|
|
13
|
-
import { StackItem } from "@dxos/react-ui-stack";
|
|
14
|
-
|
|
15
|
-
// src/components/Presenter/Layout.tsx
|
|
16
|
-
import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
|
|
17
|
-
import React from "react";
|
|
18
|
-
import { mx } from "@dxos/react-ui-theme";
|
|
19
|
-
var Layout = ({ children, classNames, topLeft, topRight, bottomLeft, bottomRight }) => {
|
|
20
|
-
var _effect = _useSignals();
|
|
21
|
-
try {
|
|
22
|
-
return /* @__PURE__ */ React.createElement("div", {
|
|
23
|
-
className: mx("flex grow relative overflow-hidden bg-attention", classNames)
|
|
24
|
-
}, /* @__PURE__ */ React.createElement("div", {
|
|
25
|
-
className: mx("flex flex-col grow overflow-hidden")
|
|
26
|
-
}, children), /* @__PURE__ */ React.createElement("div", {
|
|
27
|
-
className: "z-[200]"
|
|
28
|
-
}, /* @__PURE__ */ React.createElement("div", {
|
|
29
|
-
className: "absolute top-4 left-4"
|
|
30
|
-
}, topLeft), /* @__PURE__ */ React.createElement("div", {
|
|
31
|
-
className: "absolute top-4 right-4"
|
|
32
|
-
}, topRight), /* @__PURE__ */ React.createElement("div", {
|
|
33
|
-
className: "absolute bottom-4 left-4"
|
|
34
|
-
}, bottomLeft), /* @__PURE__ */ React.createElement("div", {
|
|
35
|
-
className: "absolute bottom-4 right-4"
|
|
36
|
-
}, bottomRight)));
|
|
37
|
-
} finally {
|
|
38
|
-
_effect.f();
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
// src/components/Presenter/Pager.tsx
|
|
43
|
-
import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
|
|
44
|
-
import React2, { useEffect } from "react";
|
|
45
|
-
import { IconButton, useControlledState } from "@dxos/react-ui";
|
|
46
|
-
var Pager = ({ index: indexParam = 0, count = 0, keys, onChange, onExit }) => {
|
|
47
|
-
var _effect = _useSignals2();
|
|
48
|
-
try {
|
|
49
|
-
const [index, setIndex] = useControlledState(indexParam);
|
|
50
|
-
useEffect(() => {
|
|
51
|
-
onChange?.(index);
|
|
52
|
-
}, [
|
|
53
|
-
index
|
|
54
|
-
]);
|
|
55
|
-
const handleChangeIndex = (dir) => {
|
|
56
|
-
setIndex((index2) => {
|
|
57
|
-
const next = index2 + dir;
|
|
58
|
-
return next >= 0 && next < count ? next : index2;
|
|
59
|
-
});
|
|
60
|
-
};
|
|
61
|
-
useEffect(() => {
|
|
62
|
-
if (!keys) {
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
const keydownHandler = (event) => {
|
|
66
|
-
switch (event.key) {
|
|
67
|
-
case "Escape": {
|
|
68
|
-
onExit?.();
|
|
69
|
-
break;
|
|
70
|
-
}
|
|
71
|
-
case "ArrowLeft": {
|
|
72
|
-
if (event.shiftKey) {
|
|
73
|
-
onChange?.(0);
|
|
74
|
-
} else {
|
|
75
|
-
handleChangeIndex(-1);
|
|
76
|
-
}
|
|
77
|
-
break;
|
|
78
|
-
}
|
|
79
|
-
case "ArrowRight": {
|
|
80
|
-
if (event.shiftKey) {
|
|
81
|
-
onChange?.(count - 1);
|
|
82
|
-
} else {
|
|
83
|
-
handleChangeIndex(1);
|
|
84
|
-
}
|
|
85
|
-
break;
|
|
86
|
-
}
|
|
87
|
-
case "ArrowUp": {
|
|
88
|
-
onChange?.(0);
|
|
89
|
-
break;
|
|
90
|
-
}
|
|
91
|
-
case "ArrowDown": {
|
|
92
|
-
onChange?.(count - 1);
|
|
93
|
-
break;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
};
|
|
97
|
-
window.addEventListener("keydown", keydownHandler);
|
|
98
|
-
return () => window.removeEventListener("keydown", keydownHandler);
|
|
99
|
-
}, [
|
|
100
|
-
keys,
|
|
101
|
-
count
|
|
102
|
-
]);
|
|
103
|
-
if (index === void 0 || !count) {
|
|
104
|
-
return null;
|
|
105
|
-
}
|
|
106
|
-
return /* @__PURE__ */ React2.createElement("div", {
|
|
107
|
-
className: "flex items-center text-neutral-500"
|
|
108
|
-
}, /* @__PURE__ */ React2.createElement(IconButton, {
|
|
109
|
-
icon: "ph--caret-double-left--regular",
|
|
110
|
-
size: 6,
|
|
111
|
-
label: "Jump to first",
|
|
112
|
-
iconOnly: true,
|
|
113
|
-
noTooltip: true,
|
|
114
|
-
variant: "ghost",
|
|
115
|
-
classNames: "p-0",
|
|
116
|
-
onClick: () => onChange?.(0)
|
|
117
|
-
}), /* @__PURE__ */ React2.createElement(IconButton, {
|
|
118
|
-
icon: "ph--caret-left--regular",
|
|
119
|
-
size: 6,
|
|
120
|
-
label: "Previous",
|
|
121
|
-
iconOnly: true,
|
|
122
|
-
noTooltip: true,
|
|
123
|
-
variant: "ghost",
|
|
124
|
-
classNames: "p-0",
|
|
125
|
-
onClick: () => handleChangeIndex(-1)
|
|
126
|
-
}), /* @__PURE__ */ React2.createElement(IconButton, {
|
|
127
|
-
icon: "ph--caret-right--regular",
|
|
128
|
-
size: 6,
|
|
129
|
-
label: "Next",
|
|
130
|
-
iconOnly: true,
|
|
131
|
-
noTooltip: true,
|
|
132
|
-
variant: "ghost",
|
|
133
|
-
classNames: "p-0",
|
|
134
|
-
onClick: () => handleChangeIndex(1)
|
|
135
|
-
}), /* @__PURE__ */ React2.createElement(IconButton, {
|
|
136
|
-
icon: "ph--caret-double-right--regular",
|
|
137
|
-
size: 6,
|
|
138
|
-
label: "Jump to last",
|
|
139
|
-
iconOnly: true,
|
|
140
|
-
noTooltip: true,
|
|
141
|
-
variant: "ghost",
|
|
142
|
-
classNames: "p-0",
|
|
143
|
-
onClick: () => onChange?.(count - 1)
|
|
144
|
-
}));
|
|
145
|
-
} finally {
|
|
146
|
-
_effect.f();
|
|
147
|
-
}
|
|
148
|
-
};
|
|
149
|
-
var PageNumber = ({ index = 0, count = 1 }) => {
|
|
150
|
-
var _effect = _useSignals2();
|
|
151
|
-
try {
|
|
152
|
-
if (index === void 0 || !count) {
|
|
153
|
-
return null;
|
|
154
|
-
}
|
|
155
|
-
return /* @__PURE__ */ React2.createElement("div", {
|
|
156
|
-
className: "flex items-center text-neutral-500 text-2xl"
|
|
157
|
-
}, /* @__PURE__ */ React2.createElement("div", null, index + 1, " / ", count));
|
|
158
|
-
} finally {
|
|
159
|
-
_effect.f();
|
|
160
|
-
}
|
|
161
|
-
};
|
|
162
|
-
|
|
163
|
-
// src/components/CollectionPresenterContainer.tsx
|
|
164
|
-
var CollectionPresenterContainer = ({ collection }) => {
|
|
165
|
-
var _effect = _useSignals3();
|
|
166
|
-
try {
|
|
167
|
-
const [slide, setSlide] = useState(0);
|
|
168
|
-
const { running } = useContext(PresenterContext);
|
|
169
|
-
const handleExit = useExitPresenter(collection);
|
|
170
|
-
return /* @__PURE__ */ React3.createElement(StackItem.Content, {
|
|
171
|
-
classNames: "relative"
|
|
172
|
-
}, /* @__PURE__ */ React3.createElement(Layout, {
|
|
173
|
-
bottomRight: /* @__PURE__ */ React3.createElement(PageNumber, {
|
|
174
|
-
index: slide,
|
|
175
|
-
count: collection.objects.length
|
|
176
|
-
}),
|
|
177
|
-
bottomLeft: /* @__PURE__ */ React3.createElement(Pager, {
|
|
178
|
-
index: slide,
|
|
179
|
-
count: collection.objects.length,
|
|
180
|
-
keys: running,
|
|
181
|
-
onChange: setSlide,
|
|
182
|
-
onExit: handleExit
|
|
183
|
-
})
|
|
184
|
-
}, /* @__PURE__ */ React3.createElement(Surface, {
|
|
185
|
-
role: "slide",
|
|
186
|
-
data: {
|
|
187
|
-
subject: collection.objects[slide]
|
|
188
|
-
},
|
|
189
|
-
placeholder: /* @__PURE__ */ React3.createElement(React3.Fragment, null)
|
|
190
|
-
})));
|
|
191
|
-
} finally {
|
|
192
|
-
_effect.f();
|
|
193
|
-
}
|
|
194
|
-
};
|
|
195
|
-
var CollectionPresenterContainer_default = CollectionPresenterContainer;
|
|
196
|
-
export {
|
|
197
|
-
CollectionPresenterContainer_default as default
|
|
198
|
-
};
|
|
199
|
-
//# sourceMappingURL=CollectionPresenterContainer-4JFW3EKV.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/CollectionPresenterContainer.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 } from '@dxos/app-framework/react';\nimport { StackItem } from '@dxos/react-ui-stack';\nimport { type Collection } from '@dxos/schema';\n\nimport { PresenterContext } from '../types';\nimport { useExitPresenter } from '../useExitPresenter';\n\nimport { Layout, PageNumber, Pager } from './Presenter';\n\nconst CollectionPresenterContainer: FC<{ collection: Collection.Collection }> = ({ collection }) => {\n const [slide, setSlide] = useState(0);\n\n const { running } = useContext(PresenterContext);\n\n const handleExit = useExitPresenter(collection);\n\n return (\n <StackItem.Content classNames='relative'>\n <Layout\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={handleExit}\n />\n }\n >\n {/* TODO(wittjosiah): Better slide placeholder. */}\n <Surface role='slide' data={{ subject: collection.objects[slide] }} placeholder={<></>} />\n </Layout>\n </StackItem.Content>\n );\n};\n\nexport default CollectionPresenterContainer;\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 React, { useEffect } from 'react';\n\nimport { IconButton, useControlledState } from '@dxos/react-ui';\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: indexParam = 0, count = 0, keys, onChange, onExit }: PagerProps) => {\n const [index, setIndex] = useControlledState(indexParam);\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 <IconButton\n icon='ph--caret-double-left--regular'\n size={6}\n label='Jump to first'\n iconOnly\n noTooltip\n variant='ghost'\n classNames='p-0'\n onClick={() => onChange?.(0)}\n />\n <IconButton\n icon='ph--caret-left--regular'\n size={6}\n label='Previous'\n iconOnly\n noTooltip\n variant='ghost'\n classNames='p-0'\n onClick={() => handleChangeIndex(-1)}\n />\n <IconButton\n icon='ph--caret-right--regular'\n size={6}\n label='Next'\n iconOnly\n noTooltip\n variant='ghost'\n classNames='p-0'\n onClick={() => handleChangeIndex(1)}\n />\n <IconButton\n icon='ph--caret-double-right--regular'\n size={6}\n label='Jump to last'\n iconOnly\n noTooltip\n variant='ghost'\n classNames='p-0'\n onClick={() => onChange?.(count - 1)}\n />\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 = ({ running, onClick }: { running?: boolean; onClick?: (start: boolean) => void }) => {\n return (\n <IconButton\n icon={running ? 'ph--x--regular' : 'ph--play--regular'}\n size={6}\n label={running ? 'Stop' : 'Play'}\n iconOnly\n noTooltip\n variant='ghost'\n classNames='p-0'\n onClick={() => onClick?.(!running)}\n />\n );\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["React", "useContext", "useState", "Surface", "StackItem", "React", "mx", "Layout", "children", "classNames", "topLeft", "topRight", "bottomLeft", "bottomRight", "div", "className", "mx", "React", "useEffect", "IconButton", "useControlledState", "Pager", "index", "indexParam", "count", "keys", "onChange", "onExit", "setIndex", "useControlledState", "useEffect", "handleChangeIndex", "dir", "next", "keydownHandler", "event", "key", "shiftKey", "window", "addEventListener", "removeEventListener", "undefined", "React", "div", "className", "IconButton", "icon", "size", "label", "iconOnly", "noTooltip", "variant", "classNames", "onClick", "PageNumber", "CollectionPresenterContainer", "collection", "slide", "setSlide", "useState", "running", "useContext", "PresenterContext", "handleExit", "useExitPresenter", "React", "StackItem", "Content", "classNames", "Layout", "bottomRight", "PageNumber", "index", "count", "objects", "length", "bottomLeft", "Pager", "keys", "onChange", "onExit", "Surface", "role", "data", "subject", "placeholder"]
|
|
7
|
-
}
|