@dxos/plugin-presenter 0.8.4-main.f9ba587 → 0.8.4-main.fcc0d83b33

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 (181) 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 +521 -52
  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/PresenterPlugin.d.ts +2 -1
  13. package/dist/types/src/PresenterPlugin.d.ts.map +1 -1
  14. package/dist/types/src/capabilities/app-graph-builder.d.ts +4 -2
  15. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  16. package/dist/types/src/capabilities/index.d.ts +4 -3
  17. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  18. package/dist/types/src/capabilities/react-surface.d.ts +3 -2
  19. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  20. package/dist/types/src/capabilities/settings.d.ts +5 -2
  21. package/dist/types/src/capabilities/settings.d.ts.map +1 -1
  22. package/dist/types/src/components/Markdown/Panel.d.ts +8 -0
  23. package/dist/types/src/components/Markdown/Panel.d.ts.map +1 -0
  24. package/dist/types/src/components/Markdown/Panel.stories.d.ts +18 -0
  25. package/dist/types/src/components/Markdown/Panel.stories.d.ts.map +1 -0
  26. package/dist/types/src/components/Markdown/Slide.d.ts +2 -4
  27. package/dist/types/src/components/Markdown/Slide.d.ts.map +1 -1
  28. package/dist/types/src/components/Markdown/Slide.stories.d.ts +11 -12
  29. package/dist/types/src/components/Markdown/Slide.stories.d.ts.map +1 -1
  30. package/dist/types/src/components/Markdown/index.d.ts +1 -1
  31. package/dist/types/src/components/Markdown/index.d.ts.map +1 -1
  32. package/dist/types/src/components/Markdown/theme.d.ts.map +1 -1
  33. package/dist/types/src/components/Presenter/Layout.d.ts +5 -5
  34. package/dist/types/src/components/Presenter/Layout.d.ts.map +1 -1
  35. package/dist/types/src/components/Presenter/Pager.d.ts +4 -4
  36. package/dist/types/src/components/Presenter/Pager.d.ts.map +1 -1
  37. package/dist/types/src/components/Presenter/Pager.stories.d.ts +12 -4
  38. package/dist/types/src/components/Presenter/Pager.stories.d.ts.map +1 -1
  39. package/dist/types/src/components/PresenterSettings/PresenterSettings.d.ts +6 -0
  40. package/dist/types/src/components/PresenterSettings/PresenterSettings.d.ts.map +1 -0
  41. package/dist/types/src/components/PresenterSettings/PresenterSettings.stories.d.ts +23 -0
  42. package/dist/types/src/components/PresenterSettings/PresenterSettings.stories.d.ts.map +1 -0
  43. package/dist/types/src/components/PresenterSettings/index.d.ts +2 -0
  44. package/dist/types/src/components/PresenterSettings/index.d.ts.map +1 -0
  45. package/dist/types/src/components/RevealPlayer/RevealPlayer.d.ts +5 -4
  46. package/dist/types/src/components/RevealPlayer/RevealPlayer.d.ts.map +1 -1
  47. package/dist/types/src/components/RevealPlayer/RevealPlayer.stories.d.ts +19 -2
  48. package/dist/types/src/components/RevealPlayer/RevealPlayer.stories.d.ts.map +1 -1
  49. package/dist/types/src/components/index.d.ts +5 -10
  50. package/dist/types/src/components/index.d.ts.map +1 -1
  51. package/dist/types/src/containers/CollectionPresenterContainer/CollectionPresenterContainer.d.ts +6 -0
  52. package/dist/types/src/containers/CollectionPresenterContainer/CollectionPresenterContainer.d.ts.map +1 -0
  53. package/dist/types/src/containers/CollectionPresenterContainer/index.d.ts +2 -0
  54. package/dist/types/src/containers/CollectionPresenterContainer/index.d.ts.map +1 -0
  55. package/dist/types/src/containers/DocumentPresenterContainer/DocumentPresenterContainer.d.ts +6 -0
  56. package/dist/types/src/containers/DocumentPresenterContainer/DocumentPresenterContainer.d.ts.map +1 -0
  57. package/dist/types/src/containers/DocumentPresenterContainer/index.d.ts +2 -0
  58. package/dist/types/src/containers/DocumentPresenterContainer/index.d.ts.map +1 -0
  59. package/dist/types/src/containers/MarkdownSlide/MarkdownSlide.d.ts +8 -0
  60. package/dist/types/src/containers/MarkdownSlide/MarkdownSlide.d.ts.map +1 -0
  61. package/dist/types/src/containers/MarkdownSlide/index.d.ts +2 -0
  62. package/dist/types/src/containers/MarkdownSlide/index.d.ts.map +1 -0
  63. package/dist/types/src/containers/index.d.ts +5 -0
  64. package/dist/types/src/containers/index.d.ts.map +1 -0
  65. package/dist/types/src/meta.d.ts +2 -3
  66. package/dist/types/src/meta.d.ts.map +1 -1
  67. package/dist/types/src/operations/definitions.d.ts +17 -0
  68. package/dist/types/src/operations/definitions.d.ts.map +1 -0
  69. package/dist/types/src/operations/index.d.ts +2 -0
  70. package/dist/types/src/operations/index.d.ts.map +1 -0
  71. package/dist/types/src/testing.d.ts.map +1 -1
  72. package/dist/types/src/translations.d.ts +4 -5
  73. package/dist/types/src/translations.d.ts.map +1 -1
  74. package/dist/types/src/types/Settings.d.ts +7 -0
  75. package/dist/types/src/types/Settings.d.ts.map +1 -0
  76. package/dist/types/src/types/index.d.ts +15 -0
  77. package/dist/types/src/types/index.d.ts.map +1 -0
  78. package/dist/types/src/useExitPresenter.d.ts +3 -4
  79. package/dist/types/src/useExitPresenter.d.ts.map +1 -1
  80. package/dist/types/tsconfig.tsbuildinfo +1 -1
  81. package/package.json +71 -46
  82. package/src/PresenterPlugin.tsx +12 -27
  83. package/src/capabilities/app-graph-builder.ts +94 -72
  84. package/src/capabilities/index.ts +4 -4
  85. package/src/capabilities/react-surface.tsx +59 -44
  86. package/src/capabilities/settings.ts +24 -12
  87. package/src/components/Markdown/Panel.stories.tsx +58 -0
  88. package/src/components/Markdown/{Container.tsx → Panel.tsx} +6 -6
  89. package/src/components/Markdown/Slide.stories.tsx +12 -8
  90. package/src/components/Markdown/Slide.tsx +14 -130
  91. package/src/components/Markdown/index.ts +1 -1
  92. package/src/components/Markdown/styles.css +104 -0
  93. package/src/components/Markdown/theme.ts +5 -5
  94. package/src/components/Markdown/typings.d.ts +8 -0
  95. package/src/components/Presenter/Layout.tsx +24 -23
  96. package/src/components/Presenter/Pager.stories.tsx +10 -10
  97. package/src/components/Presenter/Pager.tsx +55 -22
  98. package/src/components/PresenterSettings/PresenterSettings.stories.tsx +32 -0
  99. package/src/components/PresenterSettings/PresenterSettings.tsx +31 -0
  100. package/src/components/PresenterSettings/index.ts +5 -0
  101. package/src/components/RevealPlayer/RevealPlayer.stories.tsx +9 -7
  102. package/src/components/RevealPlayer/RevealPlayer.tsx +58 -52
  103. package/src/components/index.ts +5 -5
  104. package/src/containers/CollectionPresenterContainer/CollectionPresenterContainer.tsx +50 -0
  105. package/src/containers/CollectionPresenterContainer/index.ts +5 -0
  106. package/src/containers/DocumentPresenterContainer/DocumentPresenterContainer.tsx +24 -0
  107. package/src/containers/DocumentPresenterContainer/index.ts +5 -0
  108. package/src/containers/MarkdownSlide/MarkdownSlide.tsx +26 -0
  109. package/src/containers/MarkdownSlide/index.ts +5 -0
  110. package/src/containers/index.ts +9 -0
  111. package/src/meta.ts +9 -6
  112. package/src/operations/definitions.ts +23 -0
  113. package/src/operations/index.ts +5 -0
  114. package/src/testing.ts +6 -6
  115. package/src/translations.ts +4 -4
  116. package/src/types/Settings.ts +20 -0
  117. package/src/types/index.ts +30 -0
  118. package/src/useExitPresenter.ts +26 -24
  119. package/dist/lib/browser/CollectionPresenterContainer-CMHKK7TI.mjs +0 -189
  120. package/dist/lib/browser/CollectionPresenterContainer-CMHKK7TI.mjs.map +0 -7
  121. package/dist/lib/browser/DocumentPresenterContainer-E7RGK572.mjs +0 -185
  122. package/dist/lib/browser/DocumentPresenterContainer-E7RGK572.mjs.map +0 -7
  123. package/dist/lib/browser/MarkdownSlide-QHC3GZII.mjs +0 -336
  124. package/dist/lib/browser/MarkdownSlide-QHC3GZII.mjs.map +0 -7
  125. package/dist/lib/browser/app-graph-builder-2ZLAWPF2.mjs +0 -77
  126. package/dist/lib/browser/app-graph-builder-2ZLAWPF2.mjs.map +0 -7
  127. package/dist/lib/browser/chunk-SW3HIRDA.mjs +0 -39
  128. package/dist/lib/browser/chunk-SW3HIRDA.mjs.map +0 -7
  129. package/dist/lib/browser/chunk-TANLITL2.mjs +0 -36
  130. package/dist/lib/browser/chunk-TANLITL2.mjs.map +0 -7
  131. package/dist/lib/browser/chunk-VSD5LSE5.mjs +0 -15
  132. package/dist/lib/browser/chunk-VSD5LSE5.mjs.map +0 -7
  133. package/dist/lib/browser/chunk-ZUDP646V.mjs +0 -37
  134. package/dist/lib/browser/chunk-ZUDP646V.mjs.map +0 -7
  135. package/dist/lib/browser/react-surface-5WI73FAE.mjs +0 -57
  136. package/dist/lib/browser/react-surface-5WI73FAE.mjs.map +0 -7
  137. package/dist/lib/browser/settings-X7M27QCY.mjs +0 -22
  138. package/dist/lib/browser/settings-X7M27QCY.mjs.map +0 -7
  139. package/dist/lib/node-esm/CollectionPresenterContainer-VGIYRG3V.mjs +0 -190
  140. package/dist/lib/node-esm/CollectionPresenterContainer-VGIYRG3V.mjs.map +0 -7
  141. package/dist/lib/node-esm/DocumentPresenterContainer-RG4P7XA6.mjs +0 -186
  142. package/dist/lib/node-esm/DocumentPresenterContainer-RG4P7XA6.mjs.map +0 -7
  143. package/dist/lib/node-esm/MarkdownSlide-IDPOGD64.mjs +0 -338
  144. package/dist/lib/node-esm/MarkdownSlide-IDPOGD64.mjs.map +0 -7
  145. package/dist/lib/node-esm/app-graph-builder-PNVMZBL6.mjs +0 -78
  146. package/dist/lib/node-esm/app-graph-builder-PNVMZBL6.mjs.map +0 -7
  147. package/dist/lib/node-esm/chunk-GDG7Q5H4.mjs +0 -40
  148. package/dist/lib/node-esm/chunk-GDG7Q5H4.mjs.map +0 -7
  149. package/dist/lib/node-esm/chunk-MVKQEF6Y.mjs +0 -17
  150. package/dist/lib/node-esm/chunk-MVKQEF6Y.mjs.map +0 -7
  151. package/dist/lib/node-esm/chunk-VZEWAW63.mjs +0 -38
  152. package/dist/lib/node-esm/chunk-VZEWAW63.mjs.map +0 -7
  153. package/dist/lib/node-esm/chunk-YI6PZYVI.mjs +0 -38
  154. package/dist/lib/node-esm/chunk-YI6PZYVI.mjs.map +0 -7
  155. package/dist/lib/node-esm/index.mjs +0 -67
  156. package/dist/lib/node-esm/index.mjs.map +0 -7
  157. package/dist/lib/node-esm/meta.json +0 -1
  158. package/dist/lib/node-esm/react-surface-JWLPKDCJ.mjs +0 -58
  159. package/dist/lib/node-esm/react-surface-JWLPKDCJ.mjs.map +0 -7
  160. package/dist/lib/node-esm/settings-G2PHYWSK.mjs +0 -23
  161. package/dist/lib/node-esm/settings-G2PHYWSK.mjs.map +0 -7
  162. package/dist/types/src/components/CollectionPresenterContainer.d.ts +0 -7
  163. package/dist/types/src/components/CollectionPresenterContainer.d.ts.map +0 -1
  164. package/dist/types/src/components/DocumentPresenterContainer.d.ts +0 -7
  165. package/dist/types/src/components/DocumentPresenterContainer.d.ts.map +0 -1
  166. package/dist/types/src/components/Markdown/Container.d.ts +0 -8
  167. package/dist/types/src/components/Markdown/Container.d.ts.map +0 -1
  168. package/dist/types/src/components/Markdown/Container.stories.d.ts +0 -26
  169. package/dist/types/src/components/Markdown/Container.stories.d.ts.map +0 -1
  170. package/dist/types/src/components/MarkdownSlide.d.ts +0 -7
  171. package/dist/types/src/components/MarkdownSlide.d.ts.map +0 -1
  172. package/dist/types/src/components/PresenterSettings.d.ts +0 -6
  173. package/dist/types/src/components/PresenterSettings.d.ts.map +0 -1
  174. package/dist/types/src/types.d.ts +0 -39
  175. package/dist/types/src/types.d.ts.map +0 -1
  176. package/src/components/CollectionPresenterContainer.tsx +0 -43
  177. package/src/components/DocumentPresenterContainer.tsx +0 -22
  178. package/src/components/Markdown/Container.stories.tsx +0 -57
  179. package/src/components/MarkdownSlide.tsx +0 -24
  180. package/src/components/PresenterSettings.tsx +0 -26
  181. package/src/types.ts +0 -46
@@ -1,57 +0,0 @@
1
- import {
2
- CollectionPresenterContainer,
3
- DocumentPresenterContainer,
4
- MarkdownSlide,
5
- PresenterSettings
6
- } from "./chunk-ZUDP646V.mjs";
7
- import {
8
- PRESENTER_PLUGIN
9
- } from "./chunk-VSD5LSE5.mjs";
10
-
11
- // src/capabilities/react-surface.tsx
12
- import React from "react";
13
- import { Capabilities, contributes, createSurface } from "@dxos/app-framework";
14
- import { Obj } from "@dxos/echo";
15
- import { SettingsStore } from "@dxos/local-storage";
16
- import { DocumentType } from "@dxos/plugin-markdown/types";
17
- import { DataType } from "@dxos/schema";
18
- var react_surface_default = () => contributes(Capabilities.ReactSurface, [
19
- createSurface({
20
- id: `${PRESENTER_PLUGIN}/document`,
21
- role: "article",
22
- position: "hoist",
23
- filter: (data) => Obj.instanceOf(DocumentType, data.subject) && data.variant === "presenter",
24
- component: ({ data }) => /* @__PURE__ */ React.createElement(DocumentPresenterContainer, {
25
- document: data.subject
26
- })
27
- }),
28
- createSurface({
29
- id: `${PRESENTER_PLUGIN}/collection`,
30
- role: "article",
31
- position: "hoist",
32
- filter: (data) => Obj.instanceOf(DataType.Collection, data.subject) && data.variant === "presenter",
33
- component: ({ data }) => /* @__PURE__ */ React.createElement(CollectionPresenterContainer, {
34
- collection: data.subject
35
- })
36
- }),
37
- createSurface({
38
- id: `${PRESENTER_PLUGIN}/slide`,
39
- role: "slide",
40
- filter: (data) => Obj.instanceOf(DocumentType, data.subject),
41
- component: ({ data }) => /* @__PURE__ */ React.createElement(MarkdownSlide, {
42
- document: data.subject
43
- })
44
- }),
45
- createSurface({
46
- id: `${PRESENTER_PLUGIN}/plugin-settings`,
47
- role: "article",
48
- filter: (data) => data.subject instanceof SettingsStore && data.subject.prefix === PRESENTER_PLUGIN,
49
- component: ({ data: { subject } }) => /* @__PURE__ */ React.createElement(PresenterSettings, {
50
- settings: subject.value
51
- })
52
- })
53
- ]);
54
- export {
55
- react_surface_default as default
56
- };
57
- //# sourceMappingURL=react-surface-5WI73FAE.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/react-surface.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Capabilities, contributes, createSurface } from '@dxos/app-framework';\nimport { Obj } from '@dxos/echo';\nimport { SettingsStore } from '@dxos/local-storage';\nimport { DocumentType } from '@dxos/plugin-markdown/types';\nimport { DataType } from '@dxos/schema';\n\nimport {\n MarkdownSlide,\n PresenterSettings,\n DocumentPresenterContainer,\n CollectionPresenterContainer,\n} from '../components';\nimport { PRESENTER_PLUGIN } from '../meta';\nimport { type PresenterSettingsProps } from '../types';\n\nexport default () =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: `${PRESENTER_PLUGIN}/document`,\n role: 'article',\n position: 'hoist',\n filter: (data): data is { subject: DocumentType; variant: 'presenter' } =>\n Obj.instanceOf(DocumentType, data.subject) && data.variant === 'presenter',\n component: ({ data }) => <DocumentPresenterContainer document={data.subject} />,\n }),\n createSurface({\n id: `${PRESENTER_PLUGIN}/collection`,\n role: 'article',\n position: 'hoist',\n filter: (data): data is { subject: DataType.Collection; variant: 'presenter' } =>\n Obj.instanceOf(DataType.Collection, data.subject) && data.variant === 'presenter',\n component: ({ data }) => <CollectionPresenterContainer collection={data.subject} />,\n }),\n createSurface({\n id: `${PRESENTER_PLUGIN}/slide`,\n role: 'slide',\n filter: (data): data is { subject: DocumentType } => Obj.instanceOf(DocumentType, data.subject),\n component: ({ data }) => <MarkdownSlide document={data.subject} />,\n }),\n createSurface({\n id: `${PRESENTER_PLUGIN}/plugin-settings`,\n role: 'article',\n filter: (data): data is { subject: SettingsStore<PresenterSettingsProps> } =>\n data.subject instanceof SettingsStore && data.subject.prefix === PRESENTER_PLUGIN,\n component: ({ data: { subject } }) => <PresenterSettings settings={subject.value} />,\n }),\n ]);\n"],
5
- "mappings": ";;;;;;;;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,cAAcC,aAAaC,qBAAqB;AACzD,SAASC,WAAW;AACpB,SAASC,qBAAqB;AAC9B,SAASC,oBAAoB;AAC7B,SAASC,gBAAgB;AAWzB,IAAA,wBAAe,MACbC,YAAYC,aAAaC,cAAc;EACrCC,cAAc;IACZC,IAAI,GAAGC,gBAAAA;IACPC,MAAM;IACNC,UAAU;IACVC,QAAQ,CAACC,SACPC,IAAIC,WAAWC,cAAcH,KAAKI,OAAO,KAAKJ,KAAKK,YAAY;IACjEC,WAAW,CAAC,EAAEN,KAAI,MAAO,sBAAA,cAACO,4BAAAA;MAA2BC,UAAUR,KAAKI;;EACtE,CAAA;EACAV,cAAc;IACZC,IAAI,GAAGC,gBAAAA;IACPC,MAAM;IACNC,UAAU;IACVC,QAAQ,CAACC,SACPC,IAAIC,WAAWO,SAASC,YAAYV,KAAKI,OAAO,KAAKJ,KAAKK,YAAY;IACxEC,WAAW,CAAC,EAAEN,KAAI,MAAO,sBAAA,cAACW,8BAAAA;MAA6BC,YAAYZ,KAAKI;;EAC1E,CAAA;EACAV,cAAc;IACZC,IAAI,GAAGC,gBAAAA;IACPC,MAAM;IACNE,QAAQ,CAACC,SAA4CC,IAAIC,WAAWC,cAAcH,KAAKI,OAAO;IAC9FE,WAAW,CAAC,EAAEN,KAAI,MAAO,sBAAA,cAACa,eAAAA;MAAcL,UAAUR,KAAKI;;EACzD,CAAA;EACAV,cAAc;IACZC,IAAI,GAAGC,gBAAAA;IACPC,MAAM;IACNE,QAAQ,CAACC,SACPA,KAAKI,mBAAmBU,iBAAiBd,KAAKI,QAAQW,WAAWnB;IACnEU,WAAW,CAAC,EAAEN,MAAM,EAAEI,QAAO,EAAE,MAAO,sBAAA,cAACY,mBAAAA;MAAkBC,UAAUb,QAAQc;;EAC7E,CAAA;CACD;",
6
- "names": ["React", "Capabilities", "contributes", "createSurface", "Obj", "SettingsStore", "DocumentType", "DataType", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "PRESENTER_PLUGIN", "role", "position", "filter", "data", "Obj", "instanceOf", "DocumentType", "subject", "variant", "component", "DocumentPresenterContainer", "document", "DataType", "Collection", "CollectionPresenterContainer", "collection", "MarkdownSlide", "SettingsStore", "prefix", "PresenterSettings", "settings", "value"]
7
- }
@@ -1,22 +0,0 @@
1
- import {
2
- PresenterSettingsSchema
3
- } from "./chunk-SW3HIRDA.mjs";
4
- import {
5
- meta
6
- } from "./chunk-VSD5LSE5.mjs";
7
-
8
- // src/capabilities/settings.ts
9
- import { Capabilities, contributes } from "@dxos/app-framework";
10
- import { live } from "@dxos/live-object";
11
- var settings_default = () => {
12
- const settings = live({});
13
- return contributes(Capabilities.Settings, {
14
- prefix: meta.id,
15
- schema: PresenterSettingsSchema,
16
- value: settings
17
- });
18
- };
19
- export {
20
- settings_default as default
21
- };
22
- //# sourceMappingURL=settings-X7M27QCY.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/settings.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes } from '@dxos/app-framework';\nimport { live } from '@dxos/live-object';\n\nimport { meta } from '../meta';\nimport { PresenterSettingsSchema, type PresenterSettingsProps } from '../types';\n\nexport default () => {\n const settings = live<PresenterSettingsProps>({});\n\n return contributes(Capabilities.Settings, {\n prefix: meta.id,\n schema: PresenterSettingsSchema,\n value: settings,\n });\n};\n"],
5
- "mappings": ";;;;;;;;AAIA,SAASA,cAAcC,mBAAmB;AAC1C,SAASC,YAAY;AAKrB,IAAA,mBAAe,MAAA;AACb,QAAMC,WAAWC,KAA6B,CAAC,CAAA;AAE/C,SAAOC,YAAYC,aAAaC,UAAU;IACxCC,QAAQC,KAAKC;IACbC,QAAQC;IACRC,OAAOV;EACT,CAAA;AACF;",
6
- "names": ["Capabilities", "contributes", "live", "settings", "live", "contributes", "Capabilities", "Settings", "prefix", "meta", "id", "schema", "PresenterSettingsSchema", "value"]
7
- }
@@ -1,190 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- useExitPresenter
4
- } from "./chunk-YI6PZYVI.mjs";
5
- import {
6
- PresenterContext
7
- } from "./chunk-GDG7Q5H4.mjs";
8
- import "./chunk-MVKQEF6Y.mjs";
9
-
10
- // src/components/CollectionPresenterContainer.tsx
11
- import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
12
- import React3, { useContext, useState } from "react";
13
- import { Surface } from "@dxos/app-framework";
14
- import { StackItem } from "@dxos/react-ui-stack";
15
-
16
- // src/components/Presenter/Layout.tsx
17
- import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
18
- import React from "react";
19
- import { mx } from "@dxos/react-ui-theme";
20
- var Layout = ({ children, classNames, topLeft, topRight, bottomLeft, bottomRight }) => {
21
- var _effect = _useSignals();
22
- try {
23
- return /* @__PURE__ */ React.createElement("div", {
24
- className: mx("flex grow relative overflow-hidden bg-attention", classNames)
25
- }, /* @__PURE__ */ React.createElement("div", {
26
- className: mx("flex flex-col grow overflow-hidden")
27
- }, children), /* @__PURE__ */ React.createElement("div", {
28
- className: "z-[200]"
29
- }, /* @__PURE__ */ React.createElement("div", {
30
- className: "absolute top-4 left-4"
31
- }, topLeft), /* @__PURE__ */ React.createElement("div", {
32
- className: "absolute top-4 right-4"
33
- }, topRight), /* @__PURE__ */ React.createElement("div", {
34
- className: "absolute bottom-4 left-4"
35
- }, bottomLeft), /* @__PURE__ */ React.createElement("div", {
36
- className: "absolute bottom-4 right-4"
37
- }, bottomRight)));
38
- } finally {
39
- _effect.f();
40
- }
41
- };
42
-
43
- // src/components/Presenter/Pager.tsx
44
- import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
45
- import { Play, X, CaretDoubleLeft, CaretDoubleRight, CaretLeft, CaretRight } from "@phosphor-icons/react";
46
- import React2, { useEffect } from "react";
47
- import { Button, useControlledState } from "@dxos/react-ui";
48
- import { getSize, mx as mx2 } from "@dxos/react-ui-theme";
49
- var Pager = ({ index: controlledIndex = 0, count = 0, keys, onChange, onExit }) => {
50
- var _effect = _useSignals2();
51
- try {
52
- const [index, setIndex] = useControlledState(controlledIndex);
53
- useEffect(() => {
54
- onChange?.(index);
55
- }, [
56
- index
57
- ]);
58
- const handleChangeIndex = (dir) => {
59
- setIndex((index2) => {
60
- const next = index2 + dir;
61
- return next >= 0 && next < count ? next : index2;
62
- });
63
- };
64
- useEffect(() => {
65
- if (!keys) {
66
- return;
67
- }
68
- const keydownHandler = (event) => {
69
- switch (event.key) {
70
- case "Escape": {
71
- onExit?.();
72
- break;
73
- }
74
- case "ArrowLeft": {
75
- if (event.shiftKey) {
76
- onChange?.(0);
77
- } else {
78
- handleChangeIndex(-1);
79
- }
80
- break;
81
- }
82
- case "ArrowRight": {
83
- if (event.shiftKey) {
84
- onChange?.(count - 1);
85
- } else {
86
- handleChangeIndex(1);
87
- }
88
- break;
89
- }
90
- case "ArrowUp": {
91
- onChange?.(0);
92
- break;
93
- }
94
- case "ArrowDown": {
95
- onChange?.(count - 1);
96
- break;
97
- }
98
- }
99
- };
100
- window.addEventListener("keydown", keydownHandler);
101
- return () => window.removeEventListener("keydown", keydownHandler);
102
- }, [
103
- keys,
104
- count
105
- ]);
106
- if (index === void 0 || !count) {
107
- return null;
108
- }
109
- return /* @__PURE__ */ React2.createElement("div", {
110
- className: "flex items-center text-neutral-500"
111
- }, /* @__PURE__ */ React2.createElement(Button, {
112
- variant: "ghost",
113
- classNames: "p-0",
114
- onClick: () => onChange?.(0)
115
- }, /* @__PURE__ */ React2.createElement(CaretDoubleLeft, {
116
- className: mx2(getSize(6))
117
- })), /* @__PURE__ */ React2.createElement(Button, {
118
- variant: "ghost",
119
- classNames: "p-0",
120
- onClick: () => handleChangeIndex(-1)
121
- }, /* @__PURE__ */ React2.createElement(CaretLeft, {
122
- className: mx2(getSize(6))
123
- })), /* @__PURE__ */ React2.createElement(Button, {
124
- variant: "ghost",
125
- classNames: "p-0",
126
- onClick: () => handleChangeIndex(1)
127
- }, /* @__PURE__ */ React2.createElement(CaretRight, {
128
- className: mx2(getSize(6))
129
- })), /* @__PURE__ */ React2.createElement(Button, {
130
- variant: "ghost",
131
- classNames: "p-0",
132
- onClick: () => onChange?.(count - 1)
133
- }, /* @__PURE__ */ React2.createElement(CaretDoubleRight, {
134
- className: mx2(getSize(6))
135
- })));
136
- } finally {
137
- _effect.f();
138
- }
139
- };
140
- var PageNumber = ({ index = 0, count = 1 }) => {
141
- var _effect = _useSignals2();
142
- try {
143
- if (index === void 0 || !count) {
144
- return null;
145
- }
146
- return /* @__PURE__ */ React2.createElement("div", {
147
- className: "flex items-center text-neutral-500 text-2xl"
148
- }, /* @__PURE__ */ React2.createElement("div", null, index + 1, " / ", count));
149
- } finally {
150
- _effect.f();
151
- }
152
- };
153
-
154
- // src/components/CollectionPresenterContainer.tsx
155
- var CollectionPresenterContainer = ({ collection }) => {
156
- var _effect = _useSignals3();
157
- try {
158
- const [slide, setSlide] = useState(0);
159
- const { running } = useContext(PresenterContext);
160
- const handleExit = useExitPresenter(collection);
161
- return /* @__PURE__ */ React3.createElement(StackItem.Content, {
162
- classNames: "relative"
163
- }, /* @__PURE__ */ React3.createElement(Layout, {
164
- bottomRight: /* @__PURE__ */ React3.createElement(PageNumber, {
165
- index: slide,
166
- count: collection.objects.length
167
- }),
168
- bottomLeft: /* @__PURE__ */ React3.createElement(Pager, {
169
- index: slide,
170
- count: collection.objects.length,
171
- keys: running,
172
- onChange: setSlide,
173
- onExit: handleExit
174
- })
175
- }, /* @__PURE__ */ React3.createElement(Surface, {
176
- role: "slide",
177
- data: {
178
- subject: collection.objects[slide]
179
- },
180
- placeholder: /* @__PURE__ */ React3.createElement(React3.Fragment, null)
181
- })));
182
- } finally {
183
- _effect.f();
184
- }
185
- };
186
- var CollectionPresenterContainer_default = CollectionPresenterContainer;
187
- export {
188
- CollectionPresenterContainer_default as default
189
- };
190
- //# sourceMappingURL=CollectionPresenterContainer-VGIYRG3V.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';\nimport { StackItem } from '@dxos/react-ui-stack';\nimport { type DataType } from '@dxos/schema';\n\nimport { Layout, PageNumber, Pager } from './Presenter';\nimport { PresenterContext } from '../types';\nimport { useExitPresenter } from '../useExitPresenter';\n\nconst CollectionPresenterContainer: FC<{ collection: DataType.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 { 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", "StackItem", "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", "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
- }
@@ -1,186 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- useExitPresenter
4
- } from "./chunk-YI6PZYVI.mjs";
5
-
6
- // src/components/DocumentPresenterContainer.tsx
7
- import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
8
- import React2 from "react";
9
- import { StackItem } from "@dxos/react-ui-stack";
10
-
11
- // src/components/RevealPlayer/RevealPlayer.tsx
12
- import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
13
- import "reveal.js/dist/reveal.css";
14
- import "reveal.js/dist/theme/black.css";
15
- import "highlight.js/styles/tokyo-night-dark.css";
16
- import hljs from "highlight.js";
17
- import typescript from "highlight.js/lib/languages/typescript";
18
- import React, { useEffect, useRef } from "react";
19
- import Reveal from "reveal.js";
20
- import RevealHighlight from "reveal.js/plugin/highlight/highlight";
21
- import RevealMarkdown from "reveal.js/plugin/markdown/plugin.js";
22
- import { mx } from "@dxos/react-ui-theme";
23
- var styles = `
24
- <style type="text/css">
25
- .reveal h1 {
26
- font-weight: 100;
27
- font-size: 60px;
28
- opacity: 0.5;
29
- }
30
- .reveal h2 {
31
- font-weight: 100;
32
- padding-top: 60px;
33
- padding-left: 40px;
34
- font-size: 48px;
35
- opacity: 0.3;
36
- }
37
- .reveal h1, h2, p {
38
- font-family: "Raleway", sans-serif;
39
- text-align: left;
40
- font-weight: 200;
41
- }
42
- .reveal ul {
43
- font-family: "Raleway", sans-serif;
44
- display: block;
45
- list-style: "- ";
46
- }
47
- .reveal blockquote p {
48
- text-align: center;
49
- font-weight: 100;
50
- padding: 32px;
51
- }
52
- .reveal pre {
53
- margin-left: 0;
54
- }
55
- .reveal code {
56
- font-size: 20px;
57
- background: #111111;
58
- color: #eeeeee;
59
- max-height: unset !important;
60
- }
61
- </style>
62
- `;
63
- var RevealPlayer = ({ classNames, content, slide, fullscreen = true, onExit }) => {
64
- var _effect = _useSignals();
65
- try {
66
- const deckDivRef = useRef(null);
67
- const deckRef = useRef(null);
68
- useEffect(() => {
69
- if (deckRef.current) {
70
- return;
71
- }
72
- hljs.registerLanguage("typescript", typescript);
73
- const t = setTimeout(async () => {
74
- deckRef.current = new Reveal(deckDivRef.current, {
75
- // view: 'scroll',
76
- progress: false,
77
- transition: "none",
78
- slideNumber: false,
79
- embedded: true,
80
- // TODO(burdon): Speaker view requires server to serve popout window.
81
- // https://revealjs.com/speaker-view
82
- showNotes: false,
83
- // width: 1600,
84
- // height: 900,
85
- margin: 0.1,
86
- // center: false,
87
- // minScale: 0.1,
88
- // maxScale: 1.4,
89
- // https://revealjs.com/markdown
90
- // TODO(burdon): Requires server to serve popout window.
91
- plugins: [
92
- RevealMarkdown,
93
- RevealHighlight
94
- ],
95
- // See https://marked.js.org/using_advanced#options
96
- markdown: {
97
- gfm: true,
98
- smartypants: true,
99
- highlight: (code, language) => {
100
- if (language) {
101
- return hljs.highlight(code, {
102
- language
103
- }).value;
104
- }
105
- return hljs.highlightAuto(code).value;
106
- }
107
- }
108
- });
109
- await deckRef.current.initialize();
110
- if (slide !== void 0) {
111
- deckRef.current.slide(slide < 0 ? deckRef.current?.getTotalSlides() + slide : slide - 1);
112
- }
113
- deckRef.current.addKeyBinding({
114
- keyCode: 27,
115
- key: "Escape",
116
- description: "Exit full screen"
117
- }, () => {
118
- onExit?.();
119
- });
120
- });
121
- return () => {
122
- try {
123
- clearTimeout(t);
124
- if (deckRef.current) {
125
- deckRef.current.destroy();
126
- deckRef.current = null;
127
- }
128
- } catch (err) {
129
- }
130
- };
131
- });
132
- return /* @__PURE__ */ React.createElement("div", {
133
- className: mx("absolute flex h-full w-full items-center justify-center", fullscreen && "inset-0", classNames)
134
- }, /* @__PURE__ */ React.createElement("div", {
135
- className: "relative aspect-video w-full"
136
- }, /* @__PURE__ */ React.createElement("div", {
137
- ref: deckDivRef,
138
- className: "reveal"
139
- }, /* @__PURE__ */ React.createElement("style", null, /* @__PURE__ */ React.createElement("link", {
140
- rel: "preconnect",
141
- href: "https://fonts.googleapis.com"
142
- }), /* @__PURE__ */ React.createElement("link", {
143
- rel: "preconnect",
144
- href: "https://fonts.gstatic.com",
145
- crossOrigin: ""
146
- }), /* @__PURE__ */ React.createElement("link", {
147
- rel: "stylesheet",
148
- href: "https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,100..900;1,100..900&display=swap"
149
- })), /* @__PURE__ */ React.createElement("div", {
150
- className: "slides"
151
- }, /* @__PURE__ */ React.createElement("div", {
152
- className: "!text-center"
153
- }), /* @__PURE__ */ React.createElement("section", {
154
- "data-markdown": []
155
- }, /* @__PURE__ */ React.createElement("textarea", {
156
- "data-template": true,
157
- defaultValue: [
158
- styles,
159
- content
160
- ].join("\n")
161
- }))))));
162
- } finally {
163
- _effect.f();
164
- }
165
- };
166
-
167
- // src/components/DocumentPresenterContainer.tsx
168
- var DocumentPresenterContainer = ({ document }) => {
169
- var _effect = _useSignals2();
170
- try {
171
- const handleExit = useExitPresenter(document);
172
- return /* @__PURE__ */ React2.createElement(StackItem.Content, {
173
- classNames: "relative"
174
- }, /* @__PURE__ */ React2.createElement(RevealPlayer, {
175
- content: document.content.target?.content ?? "",
176
- onExit: handleExit
177
- }));
178
- } finally {
179
- _effect.f();
180
- }
181
- };
182
- var DocumentPresenterContainer_default = DocumentPresenterContainer;
183
- export {
184
- DocumentPresenterContainer_default as default
185
- };
186
- //# sourceMappingURL=DocumentPresenterContainer-RG4P7XA6.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/DocumentPresenterContainer.tsx", "../../../src/components/RevealPlayer/RevealPlayer.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\nimport React, { type FC } from 'react';\n\nimport { type DocumentType } from '@dxos/plugin-markdown/types';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport { RevealPlayer } from './RevealPlayer';\nimport { useExitPresenter } from '../useExitPresenter';\n\nconst DocumentPresenterContainer: FC<{ document: DocumentType }> = ({ document }) => {\n const handleExit = useExitPresenter(document);\n\n return (\n <StackItem.Content classNames='relative'>\n <RevealPlayer content={document.content.target?.content ?? ''} onExit={handleExit} />\n </StackItem.Content>\n );\n};\n\nexport default DocumentPresenterContainer;\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", "StackItem", "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", "DocumentPresenterContainer", "document", "handleExit", "useExitPresenter", "React", "StackItem", "Content", "classNames", "RevealPlayer", "content", "target", "onExit"]
7
- }