@parhelia/core 0.3.12827 → 0.3.12832

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 (171) hide show
  1. package/dist/editor/agent-changes/agentChangeTargets.d.ts +58 -0
  2. package/dist/editor/agent-changes/agentChangeTargets.js +174 -0
  3. package/dist/editor/agent-changes/agentChangeTargets.js.map +1 -0
  4. package/dist/editor/agent-changes/agentChangeTextHighlight.d.ts +57 -0
  5. package/dist/editor/agent-changes/agentChangeTextHighlight.js +109 -0
  6. package/dist/editor/agent-changes/agentChangeTextHighlight.js.map +1 -0
  7. package/dist/editor/ai/activityRowNavigation.d.ts +28 -0
  8. package/dist/editor/ai/activityRowNavigation.js +53 -0
  9. package/dist/editor/ai/activityRowNavigation.js.map +1 -0
  10. package/dist/editor/ai/terminal/activeReasoningModel.d.ts +9 -0
  11. package/dist/editor/ai/terminal/activeReasoningModel.js +20 -0
  12. package/dist/editor/ai/terminal/activeReasoningModel.js.map +1 -0
  13. package/dist/editor/ai/terminal/agentDurations.d.ts +27 -0
  14. package/dist/editor/ai/terminal/agentDurations.js +89 -0
  15. package/dist/editor/ai/terminal/agentDurations.js.map +1 -0
  16. package/dist/editor/ai/terminal/agentTurnTiming.d.ts +35 -0
  17. package/dist/editor/ai/terminal/agentTurnTiming.js +128 -0
  18. package/dist/editor/ai/terminal/agentTurnTiming.js.map +1 -0
  19. package/dist/editor/ai/terminal/components/AgentMemorySettingsSection.d.ts +9 -0
  20. package/dist/editor/ai/terminal/components/AgentMemorySettingsSection.js +75 -0
  21. package/dist/editor/ai/terminal/components/AgentMemorySettingsSection.js.map +1 -0
  22. package/dist/editor/ai/terminal/components/AgentProfileRecovery.d.ts +10 -0
  23. package/dist/editor/ai/terminal/components/AgentProfileRecovery.js +12 -0
  24. package/dist/editor/ai/terminal/components/AgentProfileRecovery.js.map +1 -0
  25. package/dist/editor/ai/terminal/components/CreateItemToolCallContent.d.ts +3 -0
  26. package/dist/editor/ai/terminal/components/CreateItemToolCallContent.js +47 -0
  27. package/dist/editor/ai/terminal/components/CreateItemToolCallContent.js.map +1 -0
  28. package/dist/editor/ai/terminal/components/ResponseTurnDuration.d.ts +15 -0
  29. package/dist/editor/ai/terminal/components/ResponseTurnDuration.js +63 -0
  30. package/dist/editor/ai/terminal/components/ResponseTurnDuration.js.map +1 -0
  31. package/dist/editor/ai/terminal/components/toolCallResultJson.d.ts +1 -0
  32. package/dist/editor/ai/terminal/components/toolCallResultJson.js +46 -0
  33. package/dist/editor/ai/terminal/components/toolCallResultJson.js.map +1 -0
  34. package/dist/editor/ai/terminal/reasoningEffortLevels.d.ts +8 -0
  35. package/dist/editor/ai/terminal/reasoningEffortLevels.js +54 -0
  36. package/dist/editor/ai/terminal/reasoningEffortLevels.js.map +1 -0
  37. package/dist/editor/ai/terminal/requestUsage.d.ts +3 -0
  38. package/dist/editor/ai/terminal/requestUsage.js +22 -0
  39. package/dist/editor/ai/terminal/requestUsage.js.map +1 -0
  40. package/dist/editor/ai/terminal/useAgentProviderWait.d.ts +18 -0
  41. package/dist/editor/ai/terminal/useAgentProviderWait.js +23 -0
  42. package/dist/editor/ai/terminal/useAgentProviderWait.js.map +1 -0
  43. package/dist/editor/ai/terminal/useAgentReasoningEffortState.d.ts +5 -0
  44. package/dist/editor/ai/terminal/useAgentReasoningEffortState.js +10 -0
  45. package/dist/editor/ai/terminal/useAgentReasoningEffortState.js.map +1 -0
  46. package/dist/editor/bridge/bridgeKeys.d.ts +5 -0
  47. package/dist/editor/bridge/bridgeKeys.js +8 -0
  48. package/dist/editor/bridge/bridgeKeys.js.map +1 -0
  49. package/dist/editor/client/SessionsDialog.d.ts +2 -0
  50. package/dist/editor/client/SessionsDialog.js +27 -0
  51. package/dist/editor/client/SessionsDialog.js.map +1 -0
  52. package/dist/editor/client/agentLoadItemPolicy.d.ts +22 -0
  53. package/dist/editor/client/agentLoadItemPolicy.js +60 -0
  54. package/dist/editor/client/agentLoadItemPolicy.js.map +1 -0
  55. package/dist/editor/client/localUserEditActivity.d.ts +3 -0
  56. package/dist/editor/client/localUserEditActivity.js +12 -0
  57. package/dist/editor/client/localUserEditActivity.js.map +1 -0
  58. package/dist/editor/commands/mediaCommands.d.ts +5 -0
  59. package/dist/editor/commands/mediaCommands.js +59 -0
  60. package/dist/editor/commands/mediaCommands.js.map +1 -0
  61. package/dist/editor/componentVisualMode.d.ts +14 -0
  62. package/dist/editor/componentVisualMode.js +43 -0
  63. package/dist/editor/componentVisualMode.js.map +1 -0
  64. package/dist/editor/field-types/FieldHistoryBoundary.d.ts +7 -0
  65. package/dist/editor/field-types/FieldHistoryBoundary.js +19 -0
  66. package/dist/editor/field-types/FieldHistoryBoundary.js.map +1 -0
  67. package/dist/editor/field-types/richtext/utils/changeHighlight.d.ts +18 -0
  68. package/dist/editor/field-types/richtext/utils/changeHighlight.js +57 -0
  69. package/dist/editor/field-types/richtext/utils/changeHighlight.js.map +1 -0
  70. package/dist/editor/itemContextMenuGroups.d.ts +16 -0
  71. package/dist/editor/itemContextMenuGroups.js +48 -0
  72. package/dist/editor/itemContextMenuGroups.js.map +1 -0
  73. package/dist/editor/media-selector/UploadMediaFileDialog.d.ts +5 -0
  74. package/dist/editor/media-selector/UploadMediaFileDialog.js +14 -0
  75. package/dist/editor/media-selector/UploadMediaFileDialog.js.map +1 -0
  76. package/dist/editor/menubar/OpenPublishedPageButton.d.ts +1 -0
  77. package/dist/editor/menubar/OpenPublishedPageButton.js +22 -0
  78. package/dist/editor/menubar/OpenPublishedPageButton.js.map +1 -0
  79. package/dist/editor/page-editor-chrome/AgentChangeHighlightings.d.ts +20 -0
  80. package/dist/editor/page-editor-chrome/AgentChangeHighlightings.js +31 -0
  81. package/dist/editor/page-editor-chrome/AgentChangeHighlightings.js.map +1 -0
  82. package/dist/editor/page-editor-chrome/DiffHighlightOverlay.d.ts +33 -0
  83. package/dist/editor/page-editor-chrome/DiffHighlightOverlay.js +290 -0
  84. package/dist/editor/page-editor-chrome/DiffHighlightOverlay.js.map +1 -0
  85. package/dist/editor/page-editor-chrome/diffRulerSegments.d.ts +18 -0
  86. package/dist/editor/page-editor-chrome/diffRulerSegments.js +37 -0
  87. package/dist/editor/page-editor-chrome/diffRulerSegments.js.map +1 -0
  88. package/dist/editor/page-viewer/PreviewModeNotice.d.ts +7 -0
  89. package/dist/editor/page-viewer/PreviewModeNotice.js +19 -0
  90. package/dist/editor/page-viewer/PreviewModeNotice.js.map +1 -0
  91. package/dist/editor/page-viewer/previewEditAttempt.d.ts +31 -0
  92. package/dist/editor/page-viewer/previewEditAttempt.js +68 -0
  93. package/dist/editor/page-viewer/previewEditAttempt.js.map +1 -0
  94. package/dist/editor/services/migrationService.d.ts +31 -0
  95. package/dist/editor/services/migrationService.js +22 -0
  96. package/dist/editor/services/migrationService.js.map +1 -0
  97. package/dist/editor/services/publicSiteService.d.ts +40 -0
  98. package/dist/editor/services/publicSiteService.js +5 -0
  99. package/dist/editor/services/publicSiteService.js.map +1 -0
  100. package/dist/editor/settings/MigrationJournalCard.d.ts +12 -0
  101. package/dist/editor/settings/MigrationJournalCard.js +114 -0
  102. package/dist/editor/settings/MigrationJournalCard.js.map +1 -0
  103. package/dist/editor/settings/panels/PublicSiteEntryDialog.d.ts +8 -0
  104. package/dist/editor/settings/panels/PublicSiteEntryDialog.js +113 -0
  105. package/dist/editor/settings/panels/PublicSiteEntryDialog.js.map +1 -0
  106. package/dist/editor/settings/panels/PublicSitesPanel.d.ts +1 -0
  107. package/dist/editor/settings/panels/PublicSitesPanel.js +153 -0
  108. package/dist/editor/settings/panels/PublicSitesPanel.js.map +1 -0
  109. package/dist/editor/settings/panels/publicSiteHelpers.d.ts +6 -0
  110. package/dist/editor/settings/panels/publicSiteHelpers.js +30 -0
  111. package/dist/editor/settings/panels/publicSiteHelpers.js.map +1 -0
  112. package/dist/editor/sidebar/OperationDetailsContent.d.ts +14 -0
  113. package/dist/editor/sidebar/OperationDetailsContent.js +521 -0
  114. package/dist/editor/sidebar/OperationDetailsContent.js.map +1 -0
  115. package/dist/editor/sidebar/liveComponentThumbnails.d.ts +53 -0
  116. package/dist/editor/sidebar/liveComponentThumbnails.js +204 -0
  117. package/dist/editor/sidebar/liveComponentThumbnails.js.map +1 -0
  118. package/dist/editor/ui/PublishReadinessSummary.d.ts +12 -0
  119. package/dist/editor/ui/PublishReadinessSummary.js +34 -0
  120. package/dist/editor/ui/PublishReadinessSummary.js.map +1 -0
  121. package/dist/editor/ui/publishReadiness.d.ts +98 -0
  122. package/dist/editor/ui/publishReadiness.js +307 -0
  123. package/dist/editor/ui/publishReadiness.js.map +1 -0
  124. package/dist/editor/ui/usePublishingItem.d.ts +8 -0
  125. package/dist/editor/ui/usePublishingItem.js +47 -0
  126. package/dist/editor/ui/usePublishingItem.js.map +1 -0
  127. package/dist/editor/utils/linkDisplay.d.ts +12 -0
  128. package/dist/editor/utils/linkDisplay.js +23 -0
  129. package/dist/editor/utils/linkDisplay.js.map +1 -0
  130. package/dist/editor/validation/ValidationIssuesPopover.d.ts +39 -0
  131. package/dist/editor/validation/ValidationIssuesPopover.js +51 -0
  132. package/dist/editor/validation/ValidationIssuesPopover.js.map +1 -0
  133. package/dist/editor/validation/navigateToValidationIssue.d.ts +13 -0
  134. package/dist/editor/validation/navigateToValidationIssue.js +43 -0
  135. package/dist/editor/validation/navigateToValidationIssue.js.map +1 -0
  136. package/dist/editor/validation/validationFixAgent.d.ts +26 -0
  137. package/dist/editor/validation/validationFixAgent.js +124 -0
  138. package/dist/editor/validation/validationFixAgent.js.map +1 -0
  139. package/dist/editor/validation/validationSeverity.d.ts +15 -0
  140. package/dist/editor/validation/validationSeverity.js +47 -0
  141. package/dist/editor/validation/validationSeverity.js.map +1 -0
  142. package/dist/lib/viewportClip.d.ts +18 -0
  143. package/dist/lib/viewportClip.js +22 -0
  144. package/dist/lib/viewportClip.js.map +1 -0
  145. package/dist/revision.d.ts +2 -2
  146. package/dist/revision.js +2 -2
  147. package/dist/task-board/components/ProjectProgressIndicator.d.ts +8 -0
  148. package/dist/task-board/components/ProjectProgressIndicator.js +17 -0
  149. package/dist/task-board/components/ProjectProgressIndicator.js.map +1 -0
  150. package/dist/task-board/components/commentAuthor.d.ts +14 -0
  151. package/dist/task-board/components/commentAuthor.js +25 -0
  152. package/dist/task-board/components/commentAuthor.js.map +1 -0
  153. package/dist/task-board/utils/projectDashboardModel.d.ts +68 -0
  154. package/dist/task-board/utils/projectDashboardModel.js +355 -0
  155. package/dist/task-board/utils/projectDashboardModel.js.map +1 -0
  156. package/dist/task-board/views/ProjectDashboardView.d.ts +28 -0
  157. package/dist/task-board/views/ProjectDashboardView.js +316 -0
  158. package/dist/task-board/views/ProjectDashboardView.js.map +1 -0
  159. package/dist/tour/TourInputBoundary.d.ts +6 -0
  160. package/dist/tour/TourInputBoundary.js +82 -0
  161. package/dist/tour/TourInputBoundary.js.map +1 -0
  162. package/dist/tour/sandbox-tour-copy.d.ts +48 -0
  163. package/dist/tour/sandbox-tour-copy.js +48 -0
  164. package/dist/tour/sandbox-tour-copy.js.map +1 -0
  165. package/dist/tour/sandbox-tour.d.ts +3 -0
  166. package/dist/tour/sandbox-tour.js +212 -0
  167. package/dist/tour/sandbox-tour.js.map +1 -0
  168. package/dist/tour/tour-utils.d.ts +32 -0
  169. package/dist/tour/tour-utils.js +148 -0
  170. package/dist/tour/tour-utils.js.map +1 -0
  171. package/package.json +1 -1
@@ -0,0 +1,212 @@
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { ArrowLeft, ArrowRight, Check } from "lucide-react";
3
+ import { elementState, isElementVisible } from "./tour-utils";
4
+ import { SANDBOX_TOUR_COPY } from "./sandbox-tour-copy";
5
+ export { SANDBOX_TOUR_COPY } from "./sandbox-tour-copy";
6
+ const SELECTORS = {
7
+ "start-tour": '[data-testid="pageEditoriframe"]',
8
+ "insert-component": '[data-testid="insert-component-button"]',
9
+ "undo-redo": 'div:has(> [data-testid="toolbar-undo-button"])',
10
+ "content-tree": '[data-testid="content-tree-toggle-button"]',
11
+ "preview-mode": '[data-testid="preview-mode-button"]',
12
+ "device-switcher": '[data-testid="viewport-mode-switcher-button"]',
13
+ "agent-prompt": "[data-agent-terminal-root]",
14
+ "agents-button": '[data-testid="agents-panel-button"]',
15
+ help: '[data-testid="help-button"]',
16
+ };
17
+ /**
18
+ * The editor chrome the tour waits for before it treats an absent optional
19
+ * control as "not part of this layout". The toolbar and its siblings mount in
20
+ * the same React commit, so once these two exist the rest has settled. Waiting
21
+ * on every step selector instead would stall the first bubble for the full
22
+ * timeout whenever one control is legitimately missing (mobile, closed agents
23
+ * panel).
24
+ */
25
+ const REQUIRED_CHROME_SELECTORS = [
26
+ SELECTORS["start-tour"],
27
+ '[data-testid="genericToolbar"]',
28
+ ];
29
+ const SETTLE_TIMEOUT_MS = 3000;
30
+ export function createSandboxTour() {
31
+ let settled = false;
32
+ let settlePromise;
33
+ let settleGeneration = 0;
34
+ const resetSettleState = () => {
35
+ settled = false;
36
+ settlePromise = undefined;
37
+ settleGeneration += 1;
38
+ };
39
+ return {
40
+ dismissOnEscape: true,
41
+ disableUserInput: true,
42
+ animateStepTransitions: false,
43
+ pointer: "caret",
44
+ getSteps: (params) => {
45
+ const selectorShouldBeSkipped = (selector) => {
46
+ const state = elementState(selector);
47
+ return state === "hidden" || (settled && state === "absent");
48
+ };
49
+ const definitions = [
50
+ {
51
+ id: "start-tour",
52
+ focusElement: SELECTORS["start-tour"],
53
+ bubblePosition: "right",
54
+ bubbleVerticalAnchor: "center",
55
+ },
56
+ {
57
+ id: "insert-component",
58
+ focusElement: SELECTORS["insert-component"],
59
+ bubblePosition: "bottom",
60
+ skipIf: () => selectorShouldBeSkipped(SELECTORS["insert-component"]),
61
+ },
62
+ {
63
+ id: "undo-redo",
64
+ focusElement: SELECTORS["undo-redo"],
65
+ bubblePosition: "bottom",
66
+ skipIf: () => selectorShouldBeSkipped(SELECTORS["undo-redo"]),
67
+ },
68
+ {
69
+ id: "content-tree",
70
+ focusElement: SELECTORS["content-tree"],
71
+ bubblePosition: "bottom",
72
+ skipIf: () => selectorShouldBeSkipped(SELECTORS["content-tree"]),
73
+ },
74
+ {
75
+ id: "preview-mode",
76
+ focusElement: SELECTORS["preview-mode"],
77
+ bubblePosition: "bottom",
78
+ skipIf: () => selectorShouldBeSkipped(SELECTORS["preview-mode"]),
79
+ },
80
+ {
81
+ id: "device-switcher",
82
+ focusElement: SELECTORS["device-switcher"],
83
+ bubblePosition: "bottom",
84
+ skipIf: () => selectorShouldBeSkipped(SELECTORS["device-switcher"]),
85
+ },
86
+ {
87
+ id: "agent-prompt",
88
+ focusElement: SELECTORS["agent-prompt"],
89
+ bubblePosition: "left",
90
+ skipIf: () => selectorShouldBeSkipped(SELECTORS["agent-prompt"]),
91
+ },
92
+ {
93
+ id: "agents-button",
94
+ focusElement: SELECTORS["agents-button"],
95
+ bubblePosition: "bottom",
96
+ skipIf: () => isElementVisible(SELECTORS["agent-prompt"]) ||
97
+ selectorShouldBeSkipped(SELECTORS["agents-button"]),
98
+ },
99
+ {
100
+ id: "help",
101
+ focusElement: SELECTORS.help,
102
+ bubblePosition: "top",
103
+ skipIf: () => selectorShouldBeSkipped(SELECTORS.help),
104
+ },
105
+ { id: "done" },
106
+ ];
107
+ const startSettlePass = () => {
108
+ if (!settlePromise) {
109
+ const generation = settleGeneration;
110
+ // Defer one microtask: Tour's wait helper reads the current step, which
111
+ // is initialized immediately after getSteps returns.
112
+ settlePromise = Promise.resolve()
113
+ .then(() => Promise.all(REQUIRED_CHROME_SELECTORS.map((selector) => params.waitForElement(selector, SETTLE_TIMEOUT_MS))))
114
+ .then(() => {
115
+ if (generation === settleGeneration)
116
+ settled = true;
117
+ }, () => {
118
+ if (generation === settleGeneration)
119
+ settled = true;
120
+ });
121
+ }
122
+ return settlePromise;
123
+ };
124
+ void startSettlePass();
125
+ const stopTour = () => {
126
+ resetSettleState();
127
+ params.stopTour();
128
+ };
129
+ const isSkipped = (definition) => definition.skipIf?.(params.editContext.configuration) ?? false;
130
+ // Numbering only counts steps whose target is on screen right now (plus
131
+ // the element-less closing step). Before the chrome has settled, absent
132
+ // targets are deliberately not skipped, but counting them would make
133
+ // "n of N" shrink once they are confirmed missing.
134
+ const isCounted = (definition) => !isSkipped(definition) &&
135
+ (!definition.focusElement ||
136
+ elementState(definition.focusElement) === "visible");
137
+ const visibleDefinitions = definitions.filter(isCounted);
138
+ const findPreviousVisible = (index) => {
139
+ for (let previous = index - 1; previous >= 0; previous -= 1) {
140
+ const candidate = definitions[previous];
141
+ if (candidate && !isSkipped(candidate))
142
+ return candidate.id;
143
+ }
144
+ return undefined;
145
+ };
146
+ const steps = {};
147
+ definitions.forEach((definition, index) => {
148
+ const copy = SANDBOX_TOUR_COPY[definition.id];
149
+ const visibleIndex = visibleDefinitions.findIndex((candidate) => candidate.id === definition.id);
150
+ const nextId = definitions[index + 1]?.id ?? "done";
151
+ const previousId = findPreviousVisible(index);
152
+ const isDone = definition.id === "done";
153
+ steps[definition.id] = {
154
+ title: copy.label,
155
+ progress: {
156
+ index: visibleIndex + 1,
157
+ total: visibleDefinitions.length,
158
+ },
159
+ description: copy.description,
160
+ focusElement: definition.focusElement,
161
+ bubblePosition: definition.bubblePosition,
162
+ bubbleVerticalAnchor: definition.bubbleVerticalAnchor,
163
+ skipIf: definition.skipIf,
164
+ nextStep: nextId,
165
+ ...(definition.id === "start-tour"
166
+ ? {
167
+ prepareAction: async () => {
168
+ // Every fresh run passes through here (only a URL-restored
169
+ // run skips it), so this also clears state left behind when
170
+ // the engine's own close button or Escape ended the last run
171
+ // without going through the wrapped stopTour.
172
+ resetSettleState();
173
+ await startSettlePass();
174
+ },
175
+ }
176
+ : {}),
177
+ buttons: [
178
+ ...(previousId
179
+ ? [
180
+ {
181
+ label: (_jsxs(_Fragment, { children: [_jsx(ArrowLeft, { strokeWidth: 1, className: "inline h-4 w-4" }), "Back"] })),
182
+ onClick: () => params.nextStep(previousId),
183
+ className: "button button-secondary mt-2",
184
+ variant: "secondary",
185
+ },
186
+ ]
187
+ : []),
188
+ {
189
+ label: isDone ? (_jsxs(_Fragment, { children: [_jsx(Check, { strokeWidth: 1, className: "inline h-4 w-4" }), " Finish"] })) : (_jsxs(_Fragment, { children: ["Next ", _jsx(ArrowRight, { strokeWidth: 1, className: "inline h-4 w-4" })] })),
190
+ onClick: () => (isDone ? stopTour() : params.nextStep(nextId)),
191
+ className: "button button-primary mt-2",
192
+ variant: "primary",
193
+ },
194
+ ],
195
+ };
196
+ });
197
+ steps.error = {
198
+ title: "Oh no...",
199
+ description: "Something went wrong.",
200
+ nextStep: "done",
201
+ buttons: [
202
+ {
203
+ label: (_jsxs(_Fragment, { children: [_jsx(Check, { strokeWidth: 1, className: "inline h-4 w-4" }), " Close"] })),
204
+ onClick: stopTour,
205
+ },
206
+ ],
207
+ };
208
+ return steps;
209
+ },
210
+ };
211
+ }
212
+ //# sourceMappingURL=sandbox-tour.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sandbox-tour.js","sourceRoot":"","sources":["../../src/tour/sandbox-tour.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /** Resolve duplicate selectors to the mounted instance the user can actually see. */
2
+ export declare function resolveTourElement(selector: string, root?: Document | Element): Element | null;
3
+ export declare function isElementVisible(selector: string): boolean;
4
+ export declare function elementState(selector: string): "absent" | "hidden" | "visible";
5
+ /**
6
+ * A zero-size rect at the centre of `rect` (viewport centre when absent). Used
7
+ * to close the spotlight hole without dropping the dim mask, so a step without
8
+ * a focus target still darkens the whole screen.
9
+ */
10
+ export declare function collapseRect(rect: DOMRect | null): DOMRect;
11
+ export type CaretSide = "top" | "bottom" | "left" | "right";
12
+ export type CaretPlacement = {
13
+ left: number;
14
+ top: number;
15
+ /** Which bubble edge carries the caret; null when the bubble overlaps the target. */
16
+ caretSide: CaretSide | null;
17
+ /** Caret centre along that edge, in px from the bubble's left/top edge. */
18
+ caretOffset: number;
19
+ };
20
+ /**
21
+ * Places a bubble of a known size next to a target and keeps it inside the
22
+ * viewport. The caret is positioned independently of the bubble's clamped
23
+ * position so it keeps pointing at the target's centre.
24
+ */
25
+ export declare function placeCaretBubble(position: string, target: DOMRect, bubble: {
26
+ width: number;
27
+ height: number;
28
+ }, viewport: {
29
+ width: number;
30
+ height: number;
31
+ }, margin?: number): CaretPlacement;
32
+ export declare function useTourEscape(enabled: boolean, onEscape: () => void): void;
@@ -0,0 +1,148 @@
1
+ import { useEffect, useRef } from "react";
2
+ function hasArea(rect) {
3
+ return rect.width > 0 && rect.height > 0;
4
+ }
5
+ function rectsIntersect(a, b) {
6
+ return (a.right > b.left && a.left < b.right && a.bottom > b.top && a.top < b.bottom);
7
+ }
8
+ function isClippingOverflow(value) {
9
+ return value === "hidden" || value === "auto" || value === "scroll";
10
+ }
11
+ function isTourElementVisible(element) {
12
+ const visibilityElement = element;
13
+ if (typeof visibilityElement.checkVisibility === "function") {
14
+ if (!visibilityElement.checkVisibility({
15
+ checkOpacity: true,
16
+ checkVisibilityCSS: true,
17
+ })) {
18
+ return false;
19
+ }
20
+ }
21
+ else {
22
+ const styles = window.getComputedStyle(element);
23
+ if (styles.display === "none" ||
24
+ styles.visibility === "hidden" ||
25
+ styles.opacity === "0") {
26
+ return false;
27
+ }
28
+ }
29
+ const rect = element.getBoundingClientRect();
30
+ if (!hasArea(rect))
31
+ return false;
32
+ let ancestor = element.parentElement;
33
+ while (ancestor) {
34
+ const styles = window.getComputedStyle(ancestor);
35
+ if (isClippingOverflow(styles.overflow) ||
36
+ isClippingOverflow(styles.overflowX) ||
37
+ isClippingOverflow(styles.overflowY)) {
38
+ const ancestorRect = ancestor.getBoundingClientRect();
39
+ if (!hasArea(ancestorRect) || !rectsIntersect(rect, ancestorRect)) {
40
+ return false;
41
+ }
42
+ }
43
+ ancestor = ancestor.parentElement;
44
+ }
45
+ return true;
46
+ }
47
+ /** Resolve duplicate selectors to the mounted instance the user can actually see. */
48
+ export function resolveTourElement(selector, root = document) {
49
+ const matches = Array.from(root.querySelectorAll(selector));
50
+ return matches.find(isTourElementVisible) ?? matches[0] ?? null;
51
+ }
52
+ export function isElementVisible(selector) {
53
+ const element = resolveTourElement(selector);
54
+ return element !== null && isTourElementVisible(element);
55
+ }
56
+ export function elementState(selector) {
57
+ const matches = document.querySelectorAll(selector);
58
+ if (matches.length === 0)
59
+ return "absent";
60
+ return Array.from(matches).some(isTourElementVisible) ? "visible" : "hidden";
61
+ }
62
+ /**
63
+ * A zero-size rect at the centre of `rect` (viewport centre when absent). Used
64
+ * to close the spotlight hole without dropping the dim mask, so a step without
65
+ * a focus target still darkens the whole screen.
66
+ */
67
+ export function collapseRect(rect) {
68
+ const centerX = rect ? rect.left + rect.width / 2 : window.innerWidth / 2;
69
+ const centerY = rect ? rect.top + rect.height / 2 : window.innerHeight / 2;
70
+ return new DOMRect(centerX, centerY, 0, 0);
71
+ }
72
+ const CARET_GAP = 14;
73
+ const CARET_EDGE_INSET = 24;
74
+ /**
75
+ * Places a bubble of a known size next to a target and keeps it inside the
76
+ * viewport. The caret is positioned independently of the bubble's clamped
77
+ * position so it keeps pointing at the target's centre.
78
+ */
79
+ export function placeCaretBubble(position, target, bubble, viewport, margin = 12) {
80
+ const clamp = (value, min, max) => Math.min(Math.max(value, min), Math.max(min, max));
81
+ const targetCenterX = target.left + target.width / 2;
82
+ const targetCenterY = target.top + target.height / 2;
83
+ const maxLeft = viewport.width - bubble.width - margin;
84
+ const maxTop = viewport.height - bubble.height - margin;
85
+ let left;
86
+ let top;
87
+ let caretSide;
88
+ switch (position) {
89
+ case "top":
90
+ case "top-left":
91
+ case "top-right":
92
+ left = clamp(targetCenterX - bubble.width / 2, margin, maxLeft);
93
+ top = clamp(target.top - CARET_GAP - bubble.height, margin, maxTop);
94
+ caretSide = "bottom";
95
+ break;
96
+ case "left":
97
+ left = clamp(target.left - CARET_GAP - bubble.width, margin, maxLeft);
98
+ top = clamp(targetCenterY - bubble.height / 2, margin, maxTop);
99
+ caretSide = "right";
100
+ break;
101
+ case "right":
102
+ left = clamp(target.left + target.width + CARET_GAP, margin, maxLeft);
103
+ top = clamp(targetCenterY - bubble.height / 2, margin, maxTop);
104
+ caretSide = "left";
105
+ break;
106
+ default:
107
+ // "bottom" and "bottom-right"
108
+ left = clamp(targetCenterX - bubble.width / 2, margin, maxLeft);
109
+ top = clamp(target.top + target.height + CARET_GAP, margin, maxTop);
110
+ caretSide = "top";
111
+ break;
112
+ }
113
+ const overlapsTarget = left < target.left + target.width &&
114
+ left + bubble.width > target.left &&
115
+ top < target.top + target.height &&
116
+ top + bubble.height > target.top;
117
+ const horizontal = caretSide === "top" || caretSide === "bottom";
118
+ const caretOffset = horizontal
119
+ ? clamp(targetCenterX - left, CARET_EDGE_INSET, bubble.width - CARET_EDGE_INSET)
120
+ : clamp(targetCenterY - top, CARET_EDGE_INSET, bubble.height - CARET_EDGE_INSET);
121
+ return {
122
+ left,
123
+ top,
124
+ caretSide: overlapsTarget ? null : caretSide,
125
+ caretOffset,
126
+ };
127
+ }
128
+ export function useTourEscape(enabled, onEscape) {
129
+ // Callers pass a fresh callback every render; keep the listener stable and
130
+ // read the latest callback through a ref instead of re-subscribing.
131
+ const onEscapeRef = useRef(onEscape);
132
+ onEscapeRef.current = onEscape;
133
+ useEffect(() => {
134
+ if (!enabled)
135
+ return;
136
+ const handleKeyDown = (event) => {
137
+ if (event.key !== "Escape")
138
+ return;
139
+ event.preventDefault();
140
+ event.stopPropagation();
141
+ event.stopImmediatePropagation();
142
+ onEscapeRef.current();
143
+ };
144
+ window.addEventListener("keydown", handleKeyDown, true);
145
+ return () => window.removeEventListener("keydown", handleKeyDown, true);
146
+ }, [enabled]);
147
+ }
148
+ //# sourceMappingURL=tour-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tour-utils.js","sourceRoot":"","sources":["../../src/tour/tour-utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@parhelia/core",
3
- "version": "0.3.12827",
3
+ "version": "0.3.12832",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },