@dxos/plugin-presenter 0.8.4-main.4a85c3132b → 0.8.4-main.51f1e5ca51

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 (151) hide show
  1. package/dist/lib/browser/PresenterSettings-2G4XD4QY.mjs +25 -0
  2. package/dist/lib/browser/PresenterSettings-2G4XD4QY.mjs.map +7 -0
  3. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  4. package/dist/lib/browser/chunk-J5LGTIGS.mjs.map +7 -0
  5. package/dist/lib/browser/index.mjs +507 -37
  6. package/dist/lib/browser/index.mjs.map +4 -4
  7. package/dist/lib/browser/meta.json +1 -1
  8. package/dist/lib/browser/operations/index.mjs +30 -0
  9. package/dist/lib/browser/operations/index.mjs.map +7 -0
  10. package/dist/lib/browser/translations.mjs +19 -0
  11. package/dist/lib/browser/translations.mjs.map +7 -0
  12. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
  13. package/dist/types/src/capabilities/index.d.ts +4 -3
  14. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  15. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  16. package/dist/types/src/capabilities/{settings/settings.d.ts → settings.d.ts} +2 -5
  17. package/dist/types/src/capabilities/settings.d.ts.map +1 -0
  18. package/dist/types/src/components/Markdown/Panel.d.ts +8 -0
  19. package/dist/types/src/components/Markdown/Panel.d.ts.map +1 -0
  20. package/dist/types/src/components/Markdown/{Container.stories.d.ts → Panel.stories.d.ts} +1 -1
  21. package/dist/types/src/components/Markdown/Panel.stories.d.ts.map +1 -0
  22. package/dist/types/src/components/Markdown/Slide.d.ts +1 -1
  23. package/dist/types/src/components/Markdown/Slide.d.ts.map +1 -1
  24. package/dist/types/src/components/Markdown/Slide.stories.d.ts.map +1 -1
  25. package/dist/types/src/components/Markdown/index.d.ts +1 -1
  26. package/dist/types/src/components/Markdown/index.d.ts.map +1 -1
  27. package/dist/types/src/components/Markdown/theme.d.ts.map +1 -1
  28. package/dist/types/src/components/Presenter/Layout.d.ts +5 -5
  29. package/dist/types/src/components/Presenter/Layout.d.ts.map +1 -1
  30. package/dist/types/src/components/Presenter/Pager.d.ts.map +1 -1
  31. package/dist/types/src/components/Presenter/Pager.stories.d.ts.map +1 -1
  32. package/dist/types/src/components/PresenterSettings/PresenterSettings.d.ts +6 -0
  33. package/dist/types/src/components/PresenterSettings/PresenterSettings.d.ts.map +1 -0
  34. package/dist/types/src/components/PresenterSettings/PresenterSettings.stories.d.ts +23 -0
  35. package/dist/types/src/components/PresenterSettings/PresenterSettings.stories.d.ts.map +1 -0
  36. package/dist/types/src/components/PresenterSettings/index.d.ts +2 -0
  37. package/dist/types/src/components/PresenterSettings/index.d.ts.map +1 -0
  38. package/dist/types/src/components/RevealPlayer/RevealPlayer.d.ts +5 -4
  39. package/dist/types/src/components/RevealPlayer/RevealPlayer.d.ts.map +1 -1
  40. package/dist/types/src/components/RevealPlayer/RevealPlayer.stories.d.ts +7 -6
  41. package/dist/types/src/components/RevealPlayer/RevealPlayer.stories.d.ts.map +1 -1
  42. package/dist/types/src/components/index.d.ts +2 -0
  43. package/dist/types/src/components/index.d.ts.map +1 -1
  44. package/dist/types/src/containers/CollectionPresenterContainer/CollectionPresenterContainer.d.ts +2 -3
  45. package/dist/types/src/containers/CollectionPresenterContainer/CollectionPresenterContainer.d.ts.map +1 -1
  46. package/dist/types/src/containers/CollectionPresenterContainer/index.d.ts +1 -2
  47. package/dist/types/src/containers/CollectionPresenterContainer/index.d.ts.map +1 -1
  48. package/dist/types/src/containers/DocumentPresenterContainer/DocumentPresenterContainer.d.ts.map +1 -1
  49. package/dist/types/src/containers/DocumentPresenterContainer/index.d.ts +1 -2
  50. package/dist/types/src/containers/DocumentPresenterContainer/index.d.ts.map +1 -1
  51. package/dist/types/src/containers/MarkdownSlide/MarkdownSlide.d.ts.map +1 -1
  52. package/dist/types/src/containers/MarkdownSlide/index.d.ts +1 -2
  53. package/dist/types/src/containers/MarkdownSlide/index.d.ts.map +1 -1
  54. package/dist/types/src/containers/index.d.ts +0 -1
  55. package/dist/types/src/containers/index.d.ts.map +1 -1
  56. package/dist/types/src/operations/definitions.d.ts +17 -0
  57. package/dist/types/src/operations/definitions.d.ts.map +1 -0
  58. package/dist/types/src/operations/index.d.ts +2 -0
  59. package/dist/types/src/operations/index.d.ts.map +1 -0
  60. package/dist/types/src/testing.d.ts.map +1 -1
  61. package/dist/types/src/translations.d.ts +4 -6
  62. package/dist/types/src/translations.d.ts.map +1 -1
  63. package/dist/types/src/types/Settings.d.ts +7 -0
  64. package/dist/types/src/types/Settings.d.ts.map +1 -0
  65. package/dist/types/src/types/index.d.ts +15 -0
  66. package/dist/types/src/types/index.d.ts.map +1 -0
  67. package/dist/types/src/useExitPresenter.d.ts +1 -1
  68. package/dist/types/src/useExitPresenter.d.ts.map +1 -1
  69. package/dist/types/tsconfig.tsbuildinfo +1 -1
  70. package/package.json +51 -32
  71. package/src/PresenterPlugin.tsx +3 -3
  72. package/src/capabilities/{app-graph-builder/app-graph-builder.ts → app-graph-builder.ts} +22 -24
  73. package/src/capabilities/index.ts +5 -3
  74. package/src/capabilities/react-surface.tsx +68 -0
  75. package/src/capabilities/{settings/settings.ts → settings.ts} +4 -4
  76. package/src/components/Markdown/{Container.stories.tsx → Panel.stories.tsx} +5 -5
  77. package/src/components/Markdown/{Container.tsx → Panel.tsx} +4 -4
  78. package/src/components/Markdown/Slide.stories.tsx +1 -1
  79. package/src/components/Markdown/Slide.tsx +2 -2
  80. package/src/components/Markdown/index.ts +1 -1
  81. package/src/components/Presenter/Layout.tsx +24 -23
  82. package/src/components/PresenterSettings/PresenterSettings.stories.tsx +32 -0
  83. package/src/components/PresenterSettings/PresenterSettings.tsx +31 -0
  84. package/src/components/PresenterSettings/index.ts +5 -0
  85. package/src/components/RevealPlayer/RevealPlayer.stories.tsx +2 -2
  86. package/src/components/RevealPlayer/RevealPlayer.tsx +104 -105
  87. package/src/components/index.ts +4 -0
  88. package/src/containers/CollectionPresenterContainer/CollectionPresenterContainer.tsx +13 -6
  89. package/src/containers/CollectionPresenterContainer/index.ts +1 -3
  90. package/src/containers/DocumentPresenterContainer/DocumentPresenterContainer.tsx +2 -1
  91. package/src/containers/DocumentPresenterContainer/index.ts +1 -3
  92. package/src/containers/MarkdownSlide/MarkdownSlide.tsx +3 -3
  93. package/src/containers/MarkdownSlide/index.ts +1 -3
  94. package/src/containers/index.ts +0 -1
  95. package/src/meta.ts +1 -1
  96. package/src/operations/definitions.ts +23 -0
  97. package/src/operations/index.ts +5 -0
  98. package/src/testing.ts +6 -6
  99. package/src/translations.ts +4 -5
  100. package/src/types/Settings.ts +20 -0
  101. package/src/types/index.ts +30 -0
  102. package/src/useExitPresenter.ts +9 -7
  103. package/dist/lib/browser/CollectionPresenterContainer-5RJIT3DA.mjs +0 -52
  104. package/dist/lib/browser/CollectionPresenterContainer-5RJIT3DA.mjs.map +0 -7
  105. package/dist/lib/browser/DocumentPresenterContainer-ISD6N5FM.mjs +0 -28
  106. package/dist/lib/browser/DocumentPresenterContainer-ISD6N5FM.mjs.map +0 -7
  107. package/dist/lib/browser/MarkdownSlide-Q2XLZTMW.mjs +0 -23
  108. package/dist/lib/browser/MarkdownSlide-Q2XLZTMW.mjs.map +0 -7
  109. package/dist/lib/browser/PresenterSettings-WGQMXH4I.mjs +0 -31
  110. package/dist/lib/browser/PresenterSettings-WGQMXH4I.mjs.map +0 -7
  111. package/dist/lib/browser/app-graph-builder-LNUGLW3H.mjs +0 -113
  112. package/dist/lib/browser/app-graph-builder-LNUGLW3H.mjs.map +0 -7
  113. package/dist/lib/browser/chunk-46CHA6Y5.mjs +0 -41
  114. package/dist/lib/browser/chunk-46CHA6Y5.mjs.map +0 -7
  115. package/dist/lib/browser/chunk-BHTOR7TG.mjs +0 -485
  116. package/dist/lib/browser/chunk-BHTOR7TG.mjs.map +0 -7
  117. package/dist/lib/browser/chunk-PSOOAW44.mjs +0 -50
  118. package/dist/lib/browser/chunk-PSOOAW44.mjs.map +0 -7
  119. package/dist/lib/browser/chunk-VQVZVXPJ.mjs +0 -18
  120. package/dist/lib/browser/chunk-VQVZVXPJ.mjs.map +0 -7
  121. package/dist/lib/browser/react-surface-UCM2KRSP.mjs +0 -67
  122. package/dist/lib/browser/react-surface-UCM2KRSP.mjs.map +0 -7
  123. package/dist/lib/browser/settings-GIQOCH6O.mjs +0 -32
  124. package/dist/lib/browser/settings-GIQOCH6O.mjs.map +0 -7
  125. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +0 -1
  126. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +0 -3
  127. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +0 -1
  128. package/dist/types/src/capabilities/react-surface/index.d.ts +0 -3
  129. package/dist/types/src/capabilities/react-surface/index.d.ts.map +0 -1
  130. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +0 -1
  131. package/dist/types/src/capabilities/settings/index.d.ts +0 -7
  132. package/dist/types/src/capabilities/settings/index.d.ts.map +0 -1
  133. package/dist/types/src/capabilities/settings/settings.d.ts.map +0 -1
  134. package/dist/types/src/components/Markdown/Container.d.ts +0 -8
  135. package/dist/types/src/components/Markdown/Container.d.ts.map +0 -1
  136. package/dist/types/src/components/Markdown/Container.stories.d.ts.map +0 -1
  137. package/dist/types/src/containers/PresenterSettings/PresenterSettings.d.ts +0 -8
  138. package/dist/types/src/containers/PresenterSettings/PresenterSettings.d.ts.map +0 -1
  139. package/dist/types/src/containers/PresenterSettings/index.d.ts +0 -3
  140. package/dist/types/src/containers/PresenterSettings/index.d.ts.map +0 -1
  141. package/dist/types/src/types.d.ts +0 -49
  142. package/dist/types/src/types.d.ts.map +0 -1
  143. package/src/capabilities/app-graph-builder/index.ts +0 -7
  144. package/src/capabilities/react-surface/index.ts +0 -7
  145. package/src/capabilities/react-surface/react-surface.tsx +0 -71
  146. package/src/capabilities/settings/index.ts +0 -7
  147. package/src/containers/PresenterSettings/PresenterSettings.tsx +0 -35
  148. package/src/containers/PresenterSettings/index.ts +0 -7
  149. package/src/types.ts +0 -54
  150. /package/dist/types/src/capabilities/{app-graph-builder/app-graph-builder.d.ts → app-graph-builder.d.ts} +0 -0
  151. /package/dist/types/src/capabilities/{react-surface/react-surface.d.ts → react-surface.d.ts} +0 -0
@@ -1,23 +0,0 @@
1
- import {
2
- Container,
3
- Slide
4
- } from "./chunk-BHTOR7TG.mjs";
5
-
6
- // src/containers/MarkdownSlide/MarkdownSlide.tsx
7
- import React from "react";
8
- var MarkdownSlide = ({ document }) => {
9
- const content = document.content.target?.content;
10
- if (!content) {
11
- return null;
12
- }
13
- return /* @__PURE__ */ React.createElement(Container, null, /* @__PURE__ */ React.createElement(Slide, {
14
- content
15
- }));
16
- };
17
-
18
- // src/containers/MarkdownSlide/index.ts
19
- var MarkdownSlide_default = MarkdownSlide;
20
- export {
21
- MarkdownSlide_default as default
22
- };
23
- //# sourceMappingURL=MarkdownSlide-Q2XLZTMW.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/containers/MarkdownSlide/MarkdownSlide.tsx", "../../../src/containers/MarkdownSlide/index.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type Markdown } from '@dxos/plugin-markdown/types';\n\nimport { Container, Slide } from '../../components';\n\ntype MarkdownSlideProps = {\n document: Markdown.Document;\n};\n\nexport const MarkdownSlide = ({ document }: MarkdownSlideProps) => {\n const content = document.content.target?.content;\n if (!content) {\n return null;\n }\n\n return (\n <Container>\n <Slide content={content} />\n </Container>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { MarkdownSlide } from './MarkdownSlide';\n\nexport default MarkdownSlide;\n"],
5
- "mappings": ";;;;;;AAIA,OAAOA,WAAW;AAUX,IAAMC,gBAAgB,CAAC,EAAEC,SAAQ,MAAsB;AAC5D,QAAMC,UAAUD,SAASC,QAAQC,QAAQD;AACzC,MAAI,CAACA,SAAS;AACZ,WAAO;EACT;AAEA,SACE,sBAAA,cAACE,WAAAA,MACC,sBAAA,cAACC,OAAAA;IAAMH;;AAGb;;;ACnBA,IAAA,wBAAeI;",
6
- "names": ["React", "MarkdownSlide", "document", "content", "target", "Container", "Slide", "MarkdownSlide"]
7
- }
@@ -1,31 +0,0 @@
1
- import {
2
- meta
3
- } from "./chunk-VQVZVXPJ.mjs";
4
-
5
- // src/containers/PresenterSettings/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/containers/PresenterSettings/index.ts
27
- var PresenterSettings_default = PresenterSettings;
28
- export {
29
- PresenterSettings_default as default
30
- };
31
- //# sourceMappingURL=PresenterSettings-WGQMXH4I.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/containers/PresenterSettings/PresenterSettings.tsx", "../../../src/containers/PresenterSettings/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 { PresenterSettings } from './PresenterSettings';\n\nexport default PresenterSettings;\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;;;AC5BA,IAAA,4BAAeI;",
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", "PresenterSettings"]
7
- }
@@ -1,113 +0,0 @@
1
- import {
2
- PresenterCapabilities,
3
- PresenterOperation
4
- } from "./chunk-PSOOAW44.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 { Collection } from "@dxos/echo";
16
- import { Operation } from "@dxos/operation";
17
- import { DeckCapabilities } from "@dxos/plugin-deck";
18
- import { ATTENDABLE_PATH_SEPARATOR, DeckOperation } from "@dxos/plugin-deck/types";
19
- import { GraphBuilder, NodeMatcher } from "@dxos/plugin-graph";
20
- import { Markdown } from "@dxos/plugin-markdown/types";
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-LNUGLW3H.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 { Collection } 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';\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": "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",
6
- "names": ["Effect", "Option", "Capabilities", "Capability", "AppCapabilities", "LayoutOperation", "Obj", "Collection", "Operation", "DeckCapabilities", "ATTENDABLE_PATH_SEPARATOR", "DeckOperation", "GraphBuilder", "NodeMatcher", "Markdown", "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
- }