@dxos/plugin-help 0.8.4-main.3f58842 → 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.
Files changed (185) hide show
  1. package/dist/lib/neutral/HelpPlugin.mjs +30 -0
  2. package/dist/lib/neutral/HelpPlugin.mjs.map +7 -0
  3. package/dist/lib/neutral/ShortcutsDialogContent-TB5PZWVY.mjs +17 -0
  4. package/dist/lib/neutral/ShortcutsDialogContent-TB5PZWVY.mjs.map +7 -0
  5. package/dist/lib/neutral/ShortcutsHints-P4SUBCY7.mjs +8 -0
  6. package/dist/lib/neutral/ShortcutsList-MZHWIVDH.mjs +8 -0
  7. package/dist/lib/neutral/app-graph-builder-BJYIYNMN.mjs +75 -0
  8. package/dist/lib/neutral/app-graph-builder-BJYIYNMN.mjs.map +7 -0
  9. package/dist/lib/neutral/capabilities/index.mjs +17 -0
  10. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  11. package/dist/lib/neutral/chunk-BI3HKFKB.mjs +63 -0
  12. package/dist/lib/neutral/chunk-BI3HKFKB.mjs.map +7 -0
  13. package/dist/lib/neutral/chunk-GZL2J55W.mjs +8 -0
  14. package/dist/lib/neutral/chunk-GZL2J55W.mjs.map +7 -0
  15. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  16. package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +7 -0
  17. package/dist/lib/neutral/chunk-MQQNHGDV.mjs +8 -0
  18. package/dist/lib/neutral/chunk-MQQNHGDV.mjs.map +7 -0
  19. package/dist/lib/neutral/chunk-NHTI7NEQ.mjs +19 -0
  20. package/dist/lib/neutral/chunk-NHTI7NEQ.mjs.map +7 -0
  21. package/dist/lib/neutral/chunk-NJCLRR5U.mjs +331 -0
  22. package/dist/lib/neutral/chunk-NJCLRR5U.mjs.map +7 -0
  23. package/dist/lib/neutral/components/index.mjs +20 -0
  24. package/dist/lib/neutral/components/index.mjs.map +7 -0
  25. package/dist/lib/neutral/containers/index.mjs +13 -0
  26. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  27. package/dist/lib/neutral/hooks/index.mjs +13 -0
  28. package/dist/lib/neutral/hooks/index.mjs.map +7 -0
  29. package/dist/lib/neutral/index.mjs +24 -0
  30. package/dist/lib/neutral/index.mjs.map +7 -0
  31. package/dist/lib/neutral/meta.json +1 -0
  32. package/dist/lib/{browser → neutral}/meta.mjs +2 -3
  33. package/dist/lib/neutral/meta.mjs.map +7 -0
  34. package/dist/lib/neutral/operation-handler-F2JU4V62.mjs +13 -0
  35. package/dist/lib/neutral/operation-handler-F2JU4V62.mjs.map +7 -0
  36. package/dist/lib/neutral/operations/index.mjs +8 -0
  37. package/dist/lib/neutral/operations/index.mjs.map +7 -0
  38. package/dist/lib/neutral/plugin.mjs +16 -0
  39. package/dist/lib/neutral/plugin.mjs.map +7 -0
  40. package/dist/lib/neutral/react-root-PYPAXETF.mjs +38 -0
  41. package/dist/lib/neutral/react-root-PYPAXETF.mjs.map +7 -0
  42. package/dist/lib/neutral/react-surface-SNS4QQMR.mjs +33 -0
  43. package/dist/lib/neutral/react-surface-SNS4QQMR.mjs.map +7 -0
  44. package/dist/lib/neutral/start-XYUDZGXJ.mjs +21 -0
  45. package/dist/lib/neutral/start-XYUDZGXJ.mjs.map +7 -0
  46. package/dist/lib/neutral/state-5HQJG3KW.mjs +24 -0
  47. package/dist/lib/neutral/state-5HQJG3KW.mjs.map +7 -0
  48. package/dist/lib/neutral/translations.mjs +20 -0
  49. package/dist/lib/neutral/translations.mjs.map +7 -0
  50. package/dist/lib/neutral/types/index.mjs +12 -0
  51. package/dist/lib/neutral/types/index.mjs.map +7 -0
  52. package/dist/types/src/HelpPlugin.d.ts +4 -2
  53. package/dist/types/src/HelpPlugin.d.ts.map +1 -1
  54. package/dist/types/src/HelpPlugin.test.d.ts +2 -0
  55. package/dist/types/src/HelpPlugin.test.d.ts.map +1 -0
  56. package/dist/types/src/capabilities/app-graph-builder.d.ts +4 -2
  57. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  58. package/dist/types/src/capabilities/index.d.ts +16 -6
  59. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  60. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  61. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  62. package/dist/types/src/capabilities/react-root.d.ts +5 -3
  63. package/dist/types/src/capabilities/react-root.d.ts.map +1 -1
  64. package/dist/types/src/capabilities/react-surface.d.ts +3 -2
  65. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  66. package/dist/types/src/capabilities/state.d.ts +11 -2
  67. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  68. package/dist/types/src/components/Shortcuts/Key.d.ts.map +1 -1
  69. package/dist/types/src/components/Shortcuts/ShortcutsHints.d.ts.map +1 -1
  70. package/dist/types/src/components/Shortcuts/ShortcutsList.d.ts.map +1 -1
  71. package/dist/types/src/components/Shortcuts/ShortcutsSection.d.ts.map +1 -1
  72. package/dist/types/src/components/Shortcuts/index.d.ts +0 -1
  73. package/dist/types/src/components/Shortcuts/index.d.ts.map +1 -1
  74. package/dist/types/src/components/Tooltip/Tooltip.d.ts +9 -9
  75. package/dist/types/src/components/Tooltip/Tooltip.d.ts.map +1 -1
  76. package/dist/types/src/components/WelcomeTour/WelcomeTour.d.ts +1 -1
  77. package/dist/types/src/components/WelcomeTour/WelcomeTour.d.ts.map +1 -1
  78. package/dist/types/src/components/WelcomeTour/WelcomeTour.stories.d.ts +9 -4
  79. package/dist/types/src/components/WelcomeTour/WelcomeTour.stories.d.ts.map +1 -1
  80. package/dist/types/src/constants.d.ts +2 -0
  81. package/dist/types/src/constants.d.ts.map +1 -0
  82. package/dist/types/src/containers/ShortcutsDialogContent/ShortcutsDialogContent.d.ts +3 -0
  83. package/dist/types/src/containers/ShortcutsDialogContent/ShortcutsDialogContent.d.ts.map +1 -0
  84. package/dist/types/src/containers/ShortcutsDialogContent/ShortcutsDialogContent.stories.d.ts +25 -0
  85. package/dist/types/src/containers/ShortcutsDialogContent/ShortcutsDialogContent.stories.d.ts.map +1 -0
  86. package/dist/types/src/containers/ShortcutsDialogContent/index.d.ts +2 -0
  87. package/dist/types/src/containers/ShortcutsDialogContent/index.d.ts.map +1 -0
  88. package/dist/types/src/containers/ShortcutsHints/ShortcutsHints.d.ts +2 -0
  89. package/dist/types/src/containers/ShortcutsHints/ShortcutsHints.d.ts.map +1 -0
  90. package/dist/types/src/containers/ShortcutsHints/index.d.ts +2 -0
  91. package/dist/types/src/containers/ShortcutsHints/index.d.ts.map +1 -0
  92. package/dist/types/src/containers/ShortcutsList/ShortcutsList.d.ts +2 -0
  93. package/dist/types/src/containers/ShortcutsList/ShortcutsList.d.ts.map +1 -0
  94. package/dist/types/src/containers/ShortcutsList/index.d.ts +2 -0
  95. package/dist/types/src/containers/ShortcutsList/index.d.ts.map +1 -0
  96. package/dist/types/src/containers/index.d.ts +5 -0
  97. package/dist/types/src/containers/index.d.ts.map +1 -0
  98. package/dist/types/src/hooks/useHelp.d.ts +1 -1
  99. package/dist/types/src/hooks/useHelp.d.ts.map +1 -1
  100. package/dist/types/src/index.d.ts +2 -4
  101. package/dist/types/src/index.d.ts.map +1 -1
  102. package/dist/types/src/meta.d.ts +2 -3
  103. package/dist/types/src/meta.d.ts.map +1 -1
  104. package/dist/types/src/operations/index.d.ts +3 -0
  105. package/dist/types/src/operations/index.d.ts.map +1 -0
  106. package/dist/types/src/operations/start.d.ts +5 -0
  107. package/dist/types/src/operations/start.d.ts.map +1 -0
  108. package/dist/types/src/plugin.d.ts +5 -0
  109. package/dist/types/src/plugin.d.ts.map +1 -0
  110. package/dist/types/src/translations.d.ts +5 -6
  111. package/dist/types/src/translations.d.ts.map +1 -1
  112. package/dist/types/src/types/HelpCapabilities.d.ts +19 -0
  113. package/dist/types/src/types/HelpCapabilities.d.ts.map +1 -0
  114. package/dist/types/src/types/HelpOperation.d.ts +4 -0
  115. package/dist/types/src/types/HelpOperation.d.ts.map +1 -0
  116. package/dist/types/src/types/index.d.ts +2 -0
  117. package/dist/types/src/types/index.d.ts.map +1 -1
  118. package/dist/types/src/types/schema.d.ts +2 -14
  119. package/dist/types/src/types/schema.d.ts.map +1 -1
  120. package/dist/types/tsconfig.tsbuildinfo +1 -1
  121. package/package.json +97 -51
  122. package/src/HelpPlugin.test.ts +30 -0
  123. package/src/HelpPlugin.tsx +24 -49
  124. package/src/capabilities/app-graph-builder.ts +53 -67
  125. package/src/capabilities/index.ts +10 -7
  126. package/src/capabilities/operation-handler.ts +16 -0
  127. package/src/capabilities/react-root.tsx +28 -24
  128. package/src/capabilities/react-surface.tsx +28 -22
  129. package/src/capabilities/state.ts +19 -15
  130. package/src/components/Shortcuts/ShortcutsHints.tsx +15 -7
  131. package/src/components/Shortcuts/ShortcutsList.tsx +6 -5
  132. package/src/components/Shortcuts/ShortcutsSection.tsx +1 -3
  133. package/src/components/Shortcuts/index.ts +0 -1
  134. package/src/components/Shortcuts/styles.ts +3 -3
  135. package/src/components/Tooltip/Tooltip.tsx +5 -6
  136. package/src/components/WelcomeTour/WelcomeTour.stories.tsx +22 -16
  137. package/src/components/WelcomeTour/WelcomeTour.tsx +19 -19
  138. package/src/constants.ts +7 -0
  139. package/src/containers/ShortcutsDialogContent/ShortcutsDialogContent.stories.tsx +39 -0
  140. package/src/containers/ShortcutsDialogContent/ShortcutsDialogContent.tsx +28 -0
  141. package/src/containers/ShortcutsDialogContent/index.ts +5 -0
  142. package/src/containers/ShortcutsHints/ShortcutsHints.tsx +5 -0
  143. package/src/containers/ShortcutsHints/index.ts +5 -0
  144. package/src/containers/ShortcutsList/ShortcutsList.tsx +5 -0
  145. package/src/containers/ShortcutsList/index.ts +5 -0
  146. package/src/containers/index.ts +9 -0
  147. package/src/hooks/useHelp.tsx +1 -1
  148. package/src/index.ts +2 -4
  149. package/src/meta.ts +9 -6
  150. package/src/operations/index.ts +7 -0
  151. package/src/operations/start.ts +20 -0
  152. package/src/plugin.ts +12 -0
  153. package/src/translations.ts +5 -5
  154. package/src/types/HelpCapabilities.ts +24 -0
  155. package/src/types/HelpOperation.ts +21 -0
  156. package/src/types/index.ts +2 -0
  157. package/src/types/schema.ts +2 -12
  158. package/dist/lib/browser/app-graph-builder-BYCMEBNG.mjs +0 -79
  159. package/dist/lib/browser/app-graph-builder-BYCMEBNG.mjs.map +0 -7
  160. package/dist/lib/browser/chunk-3Y4CMOZP.mjs +0 -13
  161. package/dist/lib/browser/chunk-3Y4CMOZP.mjs.map +0 -7
  162. package/dist/lib/browser/chunk-J2SJSGSX.mjs +0 -34
  163. package/dist/lib/browser/chunk-J2SJSGSX.mjs.map +0 -7
  164. package/dist/lib/browser/chunk-LDRUZNSN.mjs +0 -16
  165. package/dist/lib/browser/chunk-LDRUZNSN.mjs.map +0 -7
  166. package/dist/lib/browser/chunk-MNETJXKS.mjs +0 -409
  167. package/dist/lib/browser/chunk-MNETJXKS.mjs.map +0 -7
  168. package/dist/lib/browser/index.mjs +0 -112
  169. package/dist/lib/browser/index.mjs.map +0 -7
  170. package/dist/lib/browser/meta.json +0 -1
  171. package/dist/lib/browser/react-root-W6ZDEGBU.mjs +0 -34
  172. package/dist/lib/browser/react-root-W6ZDEGBU.mjs.map +0 -7
  173. package/dist/lib/browser/react-surface-SATVEWS5.mjs +0 -36
  174. package/dist/lib/browser/react-surface-SATVEWS5.mjs.map +0 -7
  175. package/dist/lib/browser/state-FWUZG6NL.mjs +0 -29
  176. package/dist/lib/browser/state-FWUZG6NL.mjs.map +0 -7
  177. package/dist/lib/browser/types/index.mjs +0 -10
  178. package/dist/types/src/capabilities/capabilities.d.ts +0 -10
  179. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  180. package/dist/types/src/components/Shortcuts/ShortcutsDialog.d.ts +0 -4
  181. package/dist/types/src/components/Shortcuts/ShortcutsDialog.d.ts.map +0 -1
  182. package/src/capabilities/capabilities.ts +0 -13
  183. package/src/components/Shortcuts/ShortcutsDialog.tsx +0 -34
  184. /package/dist/lib/{browser/meta.mjs.map → neutral/ShortcutsHints-P4SUBCY7.mjs.map} +0 -0
  185. /package/dist/lib/{browser/types/index.mjs.map → neutral/ShortcutsList-MZHWIVDH.mjs.map} +0 -0
@@ -1,79 +0,0 @@
1
- import {
2
- SHORTCUTS_DIALOG
3
- } from "./chunk-MNETJXKS.mjs";
4
- import {
5
- HelpAction
6
- } from "./chunk-J2SJSGSX.mjs";
7
- import {
8
- HelpCapabilities
9
- } from "./chunk-LDRUZNSN.mjs";
10
- import {
11
- HELP_PLUGIN
12
- } from "./chunk-3Y4CMOZP.mjs";
13
-
14
- // src/capabilities/app-graph-builder.ts
15
- import { Rx } from "@effect-rx/rx-react";
16
- import { Option, pipe } from "effect";
17
- import { Capabilities, contributes, createIntent, LayoutAction } from "@dxos/app-framework";
18
- import { createExtension } from "@dxos/app-graph";
19
- var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBuilder, createExtension({
20
- id: HELP_PLUGIN,
21
- actions: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => node2.id === "root" ? Option.some(node2) : Option.none()), Option.map(() => [
22
- {
23
- id: HelpAction.Start._tag,
24
- data: async () => {
25
- const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);
26
- const state = context.getCapability(HelpCapabilities.MutableState);
27
- state.showHints = true;
28
- await dispatch(createIntent(HelpAction.Start));
29
- },
30
- properties: {
31
- label: [
32
- "open help tour",
33
- {
34
- ns: HELP_PLUGIN
35
- }
36
- ],
37
- icon: "ph--info--regular",
38
- keyBinding: {
39
- macos: "shift+meta+/",
40
- // TODO(wittjosiah): Test on windows to see if it behaves the same as linux.
41
- windows: "shift+ctrl+/",
42
- linux: "shift+ctrl+?"
43
- },
44
- testId: "helpPlugin.openHelp"
45
- }
46
- },
47
- {
48
- id: "dxos.org/plugin/help/open-shortcuts",
49
- data: async () => {
50
- const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);
51
- const state = context.getCapability(HelpCapabilities.MutableState);
52
- state.showHints = true;
53
- await dispatch(createIntent(LayoutAction.UpdateDialog, {
54
- part: "dialog",
55
- subject: SHORTCUTS_DIALOG,
56
- options: {
57
- blockAlign: "center"
58
- }
59
- }));
60
- },
61
- properties: {
62
- label: [
63
- "open shortcuts label",
64
- {
65
- ns: HELP_PLUGIN
66
- }
67
- ],
68
- icon: "ph--keyboard--regular",
69
- keyBinding: {
70
- macos: "meta+ctrl+/"
71
- }
72
- }
73
- }
74
- ]), Option.getOrElse(() => [])))
75
- }));
76
- export {
77
- app_graph_builder_default as default
78
- };
79
- //# sourceMappingURL=app-graph-builder-BYCMEBNG.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/app-graph-builder.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Rx } from '@effect-rx/rx-react';\nimport { Option, pipe } from 'effect';\n\nimport { Capabilities, contributes, createIntent, LayoutAction, type PluginContext } from '@dxos/app-framework';\nimport { createExtension } from '@dxos/app-graph';\n\nimport { HelpCapabilities } from './capabilities';\nimport { SHORTCUTS_DIALOG } from '../components';\nimport { HELP_PLUGIN } from '../meta';\nimport { HelpAction } from '../types';\n\nexport default (context: PluginContext) =>\n contributes(\n Capabilities.AppGraphBuilder,\n createExtension({\n id: HELP_PLUGIN,\n actions: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (node.id === 'root' ? Option.some(node) : Option.none())),\n Option.map(() => [\n {\n id: HelpAction.Start._tag,\n data: async () => {\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const state = context.getCapability(HelpCapabilities.MutableState);\n state.showHints = true;\n await dispatch(createIntent(HelpAction.Start));\n },\n properties: {\n label: ['open help tour', { ns: HELP_PLUGIN }],\n icon: 'ph--info--regular',\n keyBinding: {\n macos: 'shift+meta+/',\n // TODO(wittjosiah): Test on windows to see if it behaves the same as linux.\n windows: 'shift+ctrl+/',\n linux: 'shift+ctrl+?',\n },\n testId: 'helpPlugin.openHelp',\n },\n },\n {\n id: 'dxos.org/plugin/help/open-shortcuts',\n data: async () => {\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const state = context.getCapability(HelpCapabilities.MutableState);\n state.showHints = true;\n await dispatch(\n createIntent(LayoutAction.UpdateDialog, {\n part: 'dialog',\n subject: SHORTCUTS_DIALOG,\n options: {\n blockAlign: 'center',\n },\n }),\n );\n },\n properties: {\n label: ['open shortcuts label', { ns: HELP_PLUGIN }],\n icon: 'ph--keyboard--regular',\n keyBinding: {\n macos: 'meta+ctrl+/',\n },\n },\n },\n ]),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n );\n"],
5
- "mappings": ";;;;;;;;;;;;;;AAIA,SAASA,UAAU;AACnB,SAASC,QAAQC,YAAY;AAE7B,SAASC,cAAcC,aAAaC,cAAcC,oBAAwC;AAC1F,SAASC,uBAAuB;AAOhC,IAAA,4BAAe,CAACC,YACdC,YACEC,aAAaC,iBACbC,gBAAgB;EACdC,IAAIC;EACJC,SAAS,CAACC,SACRC,GAAGC,KAAK,CAACC,QACPC,KACED,IAAIH,IAAAA,GACJK,OAAOC,QAAQ,CAACN,UAAUA,MAAKH,OAAO,SAASQ,OAAOE,KAAKP,KAAAA,IAAQK,OAAOG,KAAI,CAAA,GAC9EH,OAAOI,IAAI,MAAM;IACf;MACEZ,IAAIa,WAAWC,MAAMC;MACrBC,MAAM,YAAA;AACJ,cAAM,EAAEC,iBAAiBC,SAAQ,IAAKvB,QAAQwB,cAActB,aAAauB,gBAAgB;AACzF,cAAMC,QAAQ1B,QAAQwB,cAAcG,iBAAiBC,YAAY;AACjEF,cAAMG,YAAY;AAClB,cAAMN,SAASO,aAAaZ,WAAWC,KAAK,CAAA;MAC9C;MACAY,YAAY;QACVC,OAAO;UAAC;UAAkB;YAAEC,IAAI3B;UAAY;;QAC5C4B,MAAM;QACNC,YAAY;UACVC,OAAO;;UAEPC,SAAS;UACTC,OAAO;QACT;QACAC,QAAQ;MACV;IACF;IACA;MACElC,IAAI;MACJgB,MAAM,YAAA;AACJ,cAAM,EAAEC,iBAAiBC,SAAQ,IAAKvB,QAAQwB,cAActB,aAAauB,gBAAgB;AACzF,cAAMC,QAAQ1B,QAAQwB,cAAcG,iBAAiBC,YAAY;AACjEF,cAAMG,YAAY;AAClB,cAAMN,SACJO,aAAaU,aAAaC,cAAc;UACtCC,MAAM;UACNC,SAASC;UACTC,SAAS;YACPC,YAAY;UACd;QACF,CAAA,CAAA;MAEJ;MACAf,YAAY;QACVC,OAAO;UAAC;UAAwB;YAAEC,IAAI3B;UAAY;;QAClD4B,MAAM;QACNC,YAAY;UACVC,OAAO;QACT;MACF;IACF;GACD,GACDvB,OAAOkC,UAAU,MAAM,CAAA,CAAE,CAAA,CAAA;AAGjC,CAAA,CAAA;",
6
- "names": ["Rx", "Option", "pipe", "Capabilities", "contributes", "createIntent", "LayoutAction", "createExtension", "context", "contributes", "Capabilities", "AppGraphBuilder", "createExtension", "id", "HELP_PLUGIN", "actions", "node", "Rx", "make", "get", "pipe", "Option", "flatMap", "some", "none", "map", "HelpAction", "Start", "_tag", "data", "dispatchPromise", "dispatch", "getCapability", "IntentDispatcher", "state", "HelpCapabilities", "MutableState", "showHints", "createIntent", "properties", "label", "ns", "icon", "keyBinding", "macos", "windows", "linux", "testId", "LayoutAction", "UpdateDialog", "part", "subject", "SHORTCUTS_DIALOG", "options", "blockAlign", "getOrElse"]
7
- }
@@ -1,13 +0,0 @@
1
- // src/meta.ts
2
- var HELP_PLUGIN = "dxos.org/plugin/help";
3
- var meta = {
4
- id: HELP_PLUGIN,
5
- name: "Help",
6
- icon: "ph--info--regular"
7
- };
8
-
9
- export {
10
- HELP_PLUGIN,
11
- meta
12
- };
13
- //# sourceMappingURL=chunk-3Y4CMOZP.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/meta.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\n\n// TODO(burdon): Rename Guide? Help?\nexport const HELP_PLUGIN = 'dxos.org/plugin/help';\n\nexport const meta: PluginMeta = {\n id: HELP_PLUGIN,\n name: 'Help',\n icon: 'ph--info--regular',\n};\n"],
5
- "mappings": ";AAOO,IAAMA,cAAc;AAEpB,IAAMC,OAAmB;EAC9BC,IAAIF;EACJG,MAAM;EACNC,MAAM;AACR;",
6
- "names": ["HELP_PLUGIN", "meta", "id", "name", "icon"]
7
- }
@@ -1,34 +0,0 @@
1
- import {
2
- meta
3
- } from "./chunk-3Y4CMOZP.mjs";
4
-
5
- // src/types/schema.ts
6
- import { Schema } from "effect";
7
- import { createContext } from "react";
8
- var HelpContext = createContext({
9
- running: false,
10
- steps: [],
11
- setSteps: () => {
12
- },
13
- setIndex: () => {
14
- },
15
- start: () => {
16
- },
17
- stop: () => {
18
- }
19
- });
20
- (function(HelpAction2) {
21
- class Start extends Schema.TaggedClass()(`${meta.id}/action/start`, {
22
- input: Schema.Void,
23
- output: Schema.Void
24
- }) {
25
- }
26
- HelpAction2.Start = Start;
27
- })(HelpAction || (HelpAction = {}));
28
- var HelpAction;
29
-
30
- export {
31
- HelpContext,
32
- HelpAction
33
- };
34
- //# sourceMappingURL=chunk-J2SJSGSX.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/types/schema.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Schema } from 'effect';\nimport { type Context, createContext } from 'react';\nimport { type Step as BaseStep } from 'react-joyride';\n\nimport { type PluginContext } from '@dxos/app-framework';\n\nimport { meta } from '../meta';\n\nexport type Step = BaseStep & {\n before?: (context: PluginContext) => void;\n};\n\nexport type HelpContextType = {\n running: boolean;\n steps: Step[];\n setSteps: (steps: Step[]) => void;\n setIndex: (index: number) => void;\n start: () => void;\n stop: () => void;\n};\n\nexport const HelpContext: Context<HelpContextType> = createContext<HelpContextType>({\n running: false,\n steps: [],\n setSteps: () => {},\n setIndex: () => {},\n start: () => {},\n stop: () => {},\n});\n\nexport namespace HelpAction {\n export class Start extends Schema.TaggedClass<Start>()(`${meta.id}/action/start`, {\n input: Schema.Void,\n output: Schema.Void,\n }) {}\n}\n"],
5
- "mappings": ";;;;;AAIA,SAASA,cAAc;AACvB,SAAuBC,qBAAqB;AAoBrC,IAAMC,cAAwCC,cAA+B;EAClFC,SAAS;EACTC,OAAO,CAAA;EACPC,UAAU,MAAA;EAAO;EACjBC,UAAU,MAAA;EAAO;EACjBC,OAAO,MAAA;EAAO;EACdC,MAAM,MAAA;EAAO;AACf,CAAA;UAEiBC,aAAAA;EACR,MAAMC,cAAcC,OAAOC,YAAW,EAAU,GAAGC,KAAKC,EAAE,iBAAiB;IAChFC,OAAOJ,OAAOK;IACdC,QAAQN,OAAOK;EACjB,CAAA,EAAA;EAAI;cAHSN,QAAAA;AAIf,GALiBD,eAAAA,aAAAA,CAAAA,EAAAA;;",
6
- "names": ["Schema", "createContext", "HelpContext", "createContext", "running", "steps", "setSteps", "setIndex", "start", "stop", "HelpAction", "Start", "Schema", "TaggedClass", "meta", "id", "input", "Void", "output"]
7
- }
@@ -1,16 +0,0 @@
1
- import {
2
- HELP_PLUGIN
3
- } from "./chunk-3Y4CMOZP.mjs";
4
-
5
- // src/capabilities/capabilities.ts
6
- import { defineCapability } from "@dxos/app-framework";
7
- (function(HelpCapabilities2) {
8
- HelpCapabilities2.State = defineCapability(`${HELP_PLUGIN}/capability/state`);
9
- HelpCapabilities2.MutableState = defineCapability(`${HELP_PLUGIN}/capability/state`);
10
- })(HelpCapabilities || (HelpCapabilities = {}));
11
- var HelpCapabilities;
12
-
13
- export {
14
- HelpCapabilities
15
- };
16
- //# sourceMappingURL=chunk-LDRUZNSN.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/capabilities.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { defineCapability } from '@dxos/app-framework';\n\nimport { HELP_PLUGIN } from '../meta';\n\nexport namespace HelpCapabilities {\n export type State = { running: boolean; showHints: boolean; showWelcome: boolean };\n export const State = defineCapability<Readonly<State>>(`${HELP_PLUGIN}/capability/state`);\n export const MutableState = defineCapability<State>(`${HELP_PLUGIN}/capability/state`);\n}\n"],
5
- "mappings": ";;;;;AAIA,SAASA,wBAAwB;UAIhBC,mBAAAA;oBAEFC,QAAQC,iBAAkC,GAAGC,WAAAA,mBAA8B;oBAC3EC,eAAeF,iBAAwB,GAAGC,WAAAA,mBAA8B;AACvF,GAJiBH,qBAAAA,mBAAAA,CAAAA,EAAAA;;",
6
- "names": ["defineCapability", "HelpCapabilities", "State", "defineCapability", "HELP_PLUGIN", "MutableState"]
7
- }
@@ -1,409 +0,0 @@
1
- import {
2
- HelpContext
3
- } from "./chunk-J2SJSGSX.mjs";
4
- import {
5
- HELP_PLUGIN
6
- } from "./chunk-3Y4CMOZP.mjs";
7
-
8
- // src/components/Shortcuts/Key.tsx
9
- import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
10
- import React from "react";
11
- import { keySymbols } from "@dxos/keyboard";
12
-
13
- // src/components/Shortcuts/styles.ts
14
- import { mx } from "@dxos/react-ui-theme";
15
- var shortcutKey = mx("inline-flex min-is-[24px] bs-[24px] pli-0.5 justify-center items-center text-xs", "rounded bg-neutral-100 dark:bg-neutral-900");
16
-
17
- // src/components/Shortcuts/Key.tsx
18
- var Key = ({ binding }) => {
19
- var _effect = _useSignals();
20
- try {
21
- return /* @__PURE__ */ React.createElement("span", {
22
- role: "term",
23
- className: "inline-flex gap-1",
24
- "aria-label": binding,
25
- id: binding
26
- }, keySymbols(binding).map((c, i) => /* @__PURE__ */ React.createElement("span", {
27
- key: i,
28
- className: shortcutKey
29
- }, c)));
30
- } finally {
31
- _effect.f();
32
- }
33
- };
34
-
35
- // src/components/Shortcuts/ShortcutsList.tsx
36
- import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
37
- import React2, { Fragment } from "react";
38
- import { Keyboard } from "@dxos/keyboard";
39
- import { toLocalizedString, useTranslation } from "@dxos/react-ui";
40
- import { mx as mx2 } from "@dxos/react-ui-theme";
41
- var ShortcutsList = () => {
42
- var _effect = _useSignals2();
43
- try {
44
- const { t } = useTranslation(HELP_PLUGIN);
45
- const bindings = Keyboard.singleton.getBindings();
46
- bindings.sort((a, b) => {
47
- return toLocalizedString(a.data, t)?.toLowerCase().localeCompare(toLocalizedString(b.data, t)?.toLowerCase());
48
- });
49
- return /* @__PURE__ */ React2.createElement("dl", {
50
- className: mx2("is-fit grid grid-cols-[min-content_minmax(12rem,1fr)] gap-2 mlb-4 text-subdued select-none")
51
- }, bindings.map((binding, i) => /* @__PURE__ */ React2.createElement(Fragment, {
52
- key: i
53
- }, /* @__PURE__ */ React2.createElement(Key, {
54
- binding: binding.shortcut
55
- }), /* @__PURE__ */ React2.createElement("span", {
56
- role: "definition",
57
- className: "mis-4",
58
- "aria-labelledby": binding.shortcut
59
- }, toLocalizedString(binding.data, t)))));
60
- } finally {
61
- _effect.f();
62
- }
63
- };
64
-
65
- // src/components/Shortcuts/ShortcutsDialog.tsx
66
- import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
67
- import React3 from "react";
68
- import { Button, Dialog, Icon, useTranslation as useTranslation2 } from "@dxos/react-ui";
69
- var SHORTCUTS_DIALOG = `${HELP_PLUGIN}/ShortcutsDialog`;
70
- var ShortcutsDialogContent = () => {
71
- var _effect = _useSignals3();
72
- try {
73
- const { t } = useTranslation2(HELP_PLUGIN);
74
- return /* @__PURE__ */ React3.createElement(Dialog.Content, {
75
- classNames: "p-0 bs-content max-bs-full md:max-is-[25rem] overflow-hidden"
76
- }, /* @__PURE__ */ React3.createElement("div", {
77
- role: "none",
78
- className: "flex justify-between mbe-1 pbs-3 pis-2 pie-3 @md:pbs-4 @md:pis-4 @md:pie-5"
79
- }, /* @__PURE__ */ React3.createElement(Dialog.Title, null, t("shortcuts dialog title")), /* @__PURE__ */ React3.createElement(Dialog.Close, {
80
- asChild: true
81
- }, /* @__PURE__ */ React3.createElement(Button, {
82
- density: "fine",
83
- variant: "ghost",
84
- autoFocus: true
85
- }, /* @__PURE__ */ React3.createElement(Icon, {
86
- icon: "ph--x--bold",
87
- size: 3
88
- })))), /* @__PURE__ */ React3.createElement("div", {
89
- className: "flex items-center justify-center"
90
- }, /* @__PURE__ */ React3.createElement(ShortcutsList, null)));
91
- } finally {
92
- _effect.f();
93
- }
94
- };
95
-
96
- // src/components/Shortcuts/ShortcutsHints.tsx
97
- import { useSignals as _useSignals4 } from "@preact-signals/safe-react/tracking";
98
- import React4 from "react";
99
- import { Keyboard as Keyboard2 } from "@dxos/keyboard";
100
- import { Button as Button2, Icon as Icon2, toLocalizedString as toLocalizedString2, useTranslation as useTranslation3 } from "@dxos/react-ui";
101
- var Shortcut = ({ binding }) => {
102
- var _effect = _useSignals4();
103
- try {
104
- const { t } = useTranslation3("os");
105
- return /* @__PURE__ */ React4.createElement("div", {
106
- role: "none",
107
- className: "flex items-center gap-2 whitespace-nowrap"
108
- }, /* @__PURE__ */ React4.createElement(Key, {
109
- binding: binding.shortcut
110
- }), /* @__PURE__ */ React4.createElement("span", {
111
- className: "text-sm"
112
- }, toLocalizedString2(binding.data, t)));
113
- } finally {
114
- _effect.f();
115
- }
116
- };
117
- var ShortcutsHints = ({ onClose }) => {
118
- var _effect = _useSignals4();
119
- try {
120
- const defaults = [
121
- "meta+k",
122
- "meta+/",
123
- "meta+,"
124
- ];
125
- const bindings = Keyboard2.singleton.getBindings();
126
- const hints = bindings.filter((binding) => defaults.includes(binding.shortcut));
127
- return /* @__PURE__ */ React4.createElement("div", {
128
- role: "none",
129
- className: "flex overflow-hidden px-2 gap-4"
130
- }, hints.map((binding) => /* @__PURE__ */ React4.createElement(Shortcut, {
131
- key: binding.shortcut,
132
- binding
133
- })), onClose && /* @__PURE__ */ React4.createElement(Button2, {
134
- variant: "ghost",
135
- classNames: "p-0 cursor-pointer",
136
- onClick: onClose
137
- }, /* @__PURE__ */ React4.createElement(Icon2, {
138
- icon: "ph--x--regular",
139
- size: 4
140
- })));
141
- } finally {
142
- _effect.f();
143
- }
144
- };
145
-
146
- // src/components/Shortcuts/ShortcutsSection.tsx
147
- import { useSignals as _useSignals5 } from "@preact-signals/safe-react/tracking";
148
- import React5 from "react";
149
- import { descriptionText } from "@dxos/react-ui-theme";
150
- var ShortcutsSection = () => {
151
- var _effect = _useSignals5();
152
- try {
153
- return /* @__PURE__ */ React5.createElement("section", {
154
- className: descriptionText
155
- }, /* @__PURE__ */ React5.createElement(ShortcutsList, null));
156
- } finally {
157
- _effect.f();
158
- }
159
- };
160
-
161
- // src/components/Tooltip/Tooltip.tsx
162
- import { useSignals as _useSignals6 } from "@preact-signals/safe-react/tracking";
163
- import { useArrowNavigationGroup, useFocusableGroup } from "@fluentui/react-tabster";
164
- import React6, { forwardRef } from "react";
165
- import { Button as Button3, Icon as Icon3, IconButton } from "@dxos/react-ui";
166
- var floaterProps = {
167
- styles: {
168
- // Arrow color is set by joyride.
169
- arrow: {
170
- length: 8,
171
- spread: 16
172
- },
173
- floater: {
174
- // TODO(burdon): Get tokens from theme.
175
- filter: "drop-shadow(0 0 0.75rem rgba(0, 0, 0, 0.2))"
176
- }
177
- }
178
- };
179
- var Tooltip = /* @__PURE__ */ forwardRef(({ step: { title, content }, index, size, isLastStep, backProps, closeProps, primaryProps }, forwardedRef) => {
180
- var _effect = _useSignals6();
181
- try {
182
- const arrowNavigationAttrs = useArrowNavigationGroup({
183
- axis: "horizontal"
184
- });
185
- const focusableGroupAttrs = useFocusableGroup({
186
- tabBehavior: "limited-trap-focus"
187
- });
188
- return /* @__PURE__ */ React6.createElement("div", {
189
- className: "flex flex-col is-[15rem] min-bs-[10rem] overflow-hidden rounded-md shadow-xl bg-accentSurface text-accentSurfaceText",
190
- role: "tooltip",
191
- "data-testid": "helpPlugin.tooltip",
192
- "data-step": index + 1,
193
- ...focusableGroupAttrs,
194
- ref: forwardedRef
195
- }, /* @__PURE__ */ React6.createElement("div", {
196
- className: "flex p-2"
197
- }, /* @__PURE__ */ React6.createElement("h2", {
198
- className: "grow pli-2 plb-1 text-lg font-medium text-accentSurfaceText"
199
- }, title), /* @__PURE__ */ React6.createElement(IconButton, {
200
- density: "fine",
201
- icon: "ph--x--bold",
202
- iconOnly: true,
203
- label: closeProps["aria-label"],
204
- onClick: closeProps.onClick,
205
- size: 4,
206
- variant: "primary",
207
- "data-testid": "helpPlugin.tooltip.close"
208
- })), /* @__PURE__ */ React6.createElement("div", {
209
- className: "flex grow pli-4 mlb-2"
210
- }, content), /* @__PURE__ */ React6.createElement("div", {
211
- className: "flex p-2 items-center justify-between",
212
- ...arrowNavigationAttrs
213
- }, /* @__PURE__ */ React6.createElement(IconButton, {
214
- classNames: [
215
- !(index > 0 && backProps) && "invisible"
216
- ],
217
- icon: "ph--caret-left--regular",
218
- iconOnly: true,
219
- label: backProps["aria-label"],
220
- onClick: backProps.onClick,
221
- size: 5,
222
- variant: "primary",
223
- "data-testid": "helpPlugin.tooltip.back"
224
- }), /* @__PURE__ */ React6.createElement("div", {
225
- className: "flex grow gap-2 justify-center"
226
- }, /* @__PURE__ */ React6.createElement("div", {
227
- className: "flex"
228
- }, Array.from({
229
- length: size
230
- }).map((_, i) => /* @__PURE__ */ React6.createElement(Icon3, {
231
- key: i,
232
- icon: index === i ? "ph--circle--fill" : "ph--circle--regular",
233
- size: 2,
234
- classNames: "mli-1 cursor-pointer"
235
- })))), isLastStep ? /* @__PURE__ */ React6.createElement(Button3, {
236
- variant: "primary",
237
- onClick: closeProps.onClick,
238
- title: closeProps["aria-label"],
239
- autoFocus: true,
240
- "data-testid": "helpPlugin.tooltip.finish"
241
- }, "Done") : /* @__PURE__ */ React6.createElement(IconButton, {
242
- autoFocus: true,
243
- icon: "ph--caret-right--regular",
244
- iconOnly: true,
245
- label: primaryProps["aria-label"],
246
- onClick: primaryProps.onClick,
247
- size: 6,
248
- variant: "primary",
249
- "data-testid": "helpPlugin.tooltip.next"
250
- })));
251
- } finally {
252
- _effect.f();
253
- }
254
- });
255
-
256
- // src/components/WelcomeTour/WelcomeTour.tsx
257
- import { useSignals as _useSignals7 } from "@preact-signals/safe-react/tracking";
258
- import React7, { useState, useEffect } from "react";
259
- import Joyride, { ACTIONS, EVENTS } from "react-joyride";
260
- import { usePluginManager, useLayout } from "@dxos/app-framework";
261
- var addStepClass = (target) => {
262
- const element = typeof target === "string" ? document.querySelector(target) : target;
263
- if (element) {
264
- element.classList.add("joyride-target");
265
- }
266
- };
267
- var removeTargetClass = (target) => {
268
- const element = typeof target === "string" ? document.querySelector(target) : target;
269
- if (element) {
270
- element.classList.remove("joyride-target");
271
- }
272
- };
273
- var getTarget = (step) => {
274
- return typeof step.target === "string" ? document.querySelector(step.target) : step.target;
275
- };
276
- var waitForTarget = async (step) => {
277
- if (typeof step.target === "string") {
278
- const target = step.target;
279
- const element = document.querySelector(target);
280
- if (element) {
281
- return;
282
- }
283
- await new Promise((resolve) => {
284
- const observer = new MutationObserver((mutations) => {
285
- mutations.forEach((mutation) => {
286
- if (mutation.addedNodes.length > 0) {
287
- const element2 = document.querySelector(target);
288
- if (element2) {
289
- observer.disconnect();
290
- resolve();
291
- }
292
- }
293
- });
294
- });
295
- observer.observe(document.body, {
296
- childList: true,
297
- subtree: true
298
- });
299
- });
300
- }
301
- };
302
- var WelcomeTour = ({ steps: initialSteps, running: runningProp, onRunningChanged }) => {
303
- var _effect = _useSignals7();
304
- try {
305
- const manager = usePluginManager();
306
- const layout = useLayout();
307
- const [running, setRunning] = useState(!!runningProp && !!getTarget(initialSteps[0]));
308
- const [stepIndex, _setStepIndex] = useState(0);
309
- const [steps, setSteps] = useState(initialSteps);
310
- const paused = layout.dialogOpen;
311
- const setStepIndex = (index) => {
312
- if (runningProp) {
313
- const step = steps[index];
314
- step?.before?.(manager.context);
315
- }
316
- _setStepIndex(index);
317
- };
318
- const setRunningChanged = (state) => {
319
- if (typeof runningProp !== "undefined") {
320
- onRunningChanged?.(state);
321
- } else {
322
- if (state) {
323
- setStepIndex(0);
324
- setRunning(true);
325
- } else {
326
- setRunning(false);
327
- }
328
- }
329
- };
330
- useEffect(() => {
331
- const timeout = setTimeout(async () => {
332
- if (runningProp) {
333
- await waitForTarget(steps[stepIndex]);
334
- setStepIndex(0);
335
- setRunning(true);
336
- } else if (typeof runningProp !== "undefined") {
337
- setRunning(false);
338
- }
339
- });
340
- return () => clearTimeout(timeout);
341
- }, [
342
- runningProp
343
- ]);
344
- const callback = async (options) => {
345
- const { type, action, index, size } = options;
346
- switch (type) {
347
- case EVENTS.STEP_BEFORE:
348
- addStepClass(options.step.target);
349
- break;
350
- case EVENTS.TOUR_END:
351
- break;
352
- case EVENTS.STEP_AFTER:
353
- removeTargetClass(options.step.target);
354
- switch (action) {
355
- case ACTIONS.NEXT:
356
- if (index < size - 1) {
357
- setStepIndex(index + 1);
358
- }
359
- break;
360
- case ACTIONS.PREV:
361
- if (index > 0) {
362
- setStepIndex(index - 1);
363
- }
364
- break;
365
- case ACTIONS.CLOSE:
366
- setRunningChanged(false);
367
- setStepIndex(0);
368
- break;
369
- }
370
- break;
371
- }
372
- };
373
- return /* @__PURE__ */ React7.createElement(HelpContext.Provider, {
374
- value: {
375
- running: running && !paused,
376
- steps,
377
- setSteps,
378
- setIndex: setStepIndex,
379
- start: () => setRunningChanged(true),
380
- stop: () => setRunningChanged(false)
381
- }
382
- }, /* @__PURE__ */ React7.createElement("style", null, `.joyride-target {
383
- --controls-opacity: 1;
384
- }`), /* @__PURE__ */ React7.createElement(Joyride, {
385
- continuous: true,
386
- steps,
387
- stepIndex,
388
- run: running && !paused,
389
- callback,
390
- floaterProps,
391
- tooltipComponent: Tooltip
392
- }));
393
- } finally {
394
- _effect.f();
395
- }
396
- };
397
-
398
- export {
399
- Key,
400
- ShortcutsList,
401
- SHORTCUTS_DIALOG,
402
- ShortcutsDialogContent,
403
- ShortcutsHints,
404
- ShortcutsSection,
405
- floaterProps,
406
- Tooltip,
407
- WelcomeTour
408
- };
409
- //# sourceMappingURL=chunk-MNETJXKS.mjs.map