impact-nova 2.2.8 → 2.3.0

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 (124) hide show
  1. package/dist/components/data/ag-grid-react/ag-grid-header-dom.js +6 -8
  2. package/dist/components/data/ag-grid-react/ag-grid-tooltip-overflow.d.ts +1 -1
  3. package/dist/components/data/ag-grid-react/ag-grid-tooltip-overflow.js +25 -13
  4. package/dist/components/data/ag-grid-react/headers/custom-header.js +1 -1
  5. package/dist/components/data/ag-grid-react/headers/custom-inner-header-group.js +7 -7
  6. package/dist/components/data/ag-grid-react/headers/utils/filter-utils.js +9 -9
  7. package/dist/components/data/ag-grid-react/strip-column-min-width-constraints.d.ts +3 -0
  8. package/dist/components/data/data-table/data-table.d.ts +1 -1
  9. package/dist/components/data/data-table/data-table.js +41 -39
  10. package/dist/components/data/data-table/data-table.types.d.ts +1 -1
  11. package/dist/components/data-display/calendar/calendar-day-picker-components.js +69 -56
  12. package/dist/components/data-display/calendar/calendar-padding-week.utils.d.ts +5 -0
  13. package/dist/components/data-display/calendar/calendar-padding-week.utils.js +6 -0
  14. package/dist/components/data-display/calendar/calendar.types.d.ts +1 -1
  15. package/dist/components/flows/filter-panel/filter-panel.js +101 -94
  16. package/dist/components/flows/guidance/adapters/ag-grid-adapter.d.ts +13 -0
  17. package/dist/components/flows/guidance/adapters/ag-grid-adapter.js +30 -0
  18. package/dist/components/flows/guidance/adapters/ag-grid.d.ts +2 -0
  19. package/dist/components/flows/guidance/adapters/ag-grid.js +6 -0
  20. package/dist/components/flows/guidance/adapters/dialog.d.ts +1 -0
  21. package/dist/components/flows/guidance/adapters/dialog.js +5 -0
  22. package/dist/components/flows/guidance/adapters/overlay-adapter.d.ts +5 -0
  23. package/dist/components/flows/guidance/adapters/overlay-adapter.js +21 -0
  24. package/dist/components/flows/guidance/engine.d.ts +1 -0
  25. package/dist/components/flows/guidance/engine.js +36 -0
  26. package/dist/components/flows/guidance/guidance-context.d.ts +29 -0
  27. package/dist/components/flows/guidance/guidance-context.js +35 -0
  28. package/dist/components/flows/guidance/guidance-error-boundary.d.ts +16 -0
  29. package/dist/components/flows/guidance/guidance-error-boundary.js +49 -0
  30. package/dist/components/flows/guidance/guidance-layer.d.ts +2 -0
  31. package/dist/components/flows/guidance/guidance-layer.js +71 -0
  32. package/dist/components/flows/guidance/guidance-provider.d.ts +3 -0
  33. package/dist/components/flows/guidance/guidance-provider.js +58 -0
  34. package/dist/components/flows/guidance/guidance-target.d.ts +7 -0
  35. package/dist/components/flows/guidance/guidance-target.js +27 -0
  36. package/dist/components/flows/guidance/guidance.types.d.ts +1 -0
  37. package/dist/components/flows/guidance/help-center/filter-help-center-guides.d.ts +7 -0
  38. package/dist/components/flows/guidance/help-center/filter-help-center-guides.js +11 -0
  39. package/dist/components/flows/guidance/help-center/guide-catalog.d.ts +3 -0
  40. package/dist/components/flows/guidance/help-center/guide-catalog.js +118 -0
  41. package/dist/components/flows/guidance/help-center/help-center-header.d.ts +3 -0
  42. package/dist/components/flows/guidance/help-center/help-center-header.js +43 -0
  43. package/dist/components/flows/guidance/help-center/help-center.constants.d.ts +5 -0
  44. package/dist/components/flows/guidance/help-center/help-center.constants.js +7 -0
  45. package/dist/components/flows/guidance/help-center/help-center.d.ts +10 -0
  46. package/dist/components/flows/guidance/help-center/help-center.js +95 -0
  47. package/dist/components/flows/guidance/help-center/help-center.story-helpers.d.ts +10 -0
  48. package/dist/components/flows/guidance/help-center/help-center.types.d.ts +39 -0
  49. package/dist/components/flows/guidance/help-center.d.ts +6 -0
  50. package/dist/components/flows/guidance/help-center.js +19 -0
  51. package/dist/components/flows/guidance/hooks/use-guidance.d.ts +19 -0
  52. package/dist/components/flows/guidance/hooks/use-guidance.js +50 -0
  53. package/dist/components/flows/guidance/hooks/use-help-center.d.ts +24 -0
  54. package/dist/components/flows/guidance/hooks/use-help-center.js +67 -0
  55. package/dist/components/flows/guidance/hooks/useGuidanceOverlayGeometry.d.ts +2 -0
  56. package/dist/components/flows/guidance/hooks/useGuidanceOverlayGeometry.js +30 -0
  57. package/dist/components/flows/guidance/index.d.ts +18 -0
  58. package/dist/components/flows/guidance/index.js +48 -0
  59. package/dist/components/flows/guidance/renderers/announcement-renderer.d.ts +3 -0
  60. package/dist/components/flows/guidance/renderers/announcement-renderer.js +40 -0
  61. package/dist/components/flows/guidance/renderers/coach-mark-renderer.d.ts +2 -0
  62. package/dist/components/flows/guidance/renderers/coach-mark-renderer.js +14 -0
  63. package/dist/components/flows/guidance/renderers/guidance-card-shared.d.ts +42 -0
  64. package/dist/components/flows/guidance/renderers/guidance-card-shared.js +213 -0
  65. package/dist/components/flows/guidance/renderers/guidance-renderer-shared.d.ts +48 -0
  66. package/dist/components/flows/guidance/renderers/guidance-renderer-shared.js +254 -0
  67. package/dist/components/flows/guidance/renderers/guidance-tour-overlay.d.ts +11 -0
  68. package/dist/components/flows/guidance/renderers/guidance-tour-overlay.js +217 -0
  69. package/dist/components/flows/guidance/renderers/renderer-registry.d.ts +6 -0
  70. package/dist/components/flows/guidance/renderers/renderer-registry.js +19 -0
  71. package/dist/components/flows/guidance/renderers/spotlight-renderer.d.ts +2 -0
  72. package/dist/components/flows/guidance/renderers/spotlight-renderer.js +14 -0
  73. package/dist/components/flows/guidance/renderers.d.ts +4 -0
  74. package/dist/components/flows/guidance/renderers.js +11 -0
  75. package/dist/components/flows/guidance/target.d.ts +3 -0
  76. package/dist/components/flows/guidance/target.js +6 -0
  77. package/dist/components/flows/guidance/triggers.d.ts +2 -0
  78. package/dist/components/flows/guidance/triggers.js +16 -0
  79. package/dist/components/flows/guidance/use-guidance-target.d.ts +5 -0
  80. package/dist/components/flows/guidance/use-guidance-target.js +16 -0
  81. package/dist/components/flows/guidance/utils/motion-settle.d.ts +2 -0
  82. package/dist/components/flows/guidance/utils/motion-settle.js +17 -0
  83. package/dist/components/forms/combobox/combobox.js +185 -160
  84. package/dist/components/forms/combobox/combobox.types.d.ts +2 -0
  85. package/dist/i18n/defaultMessages.d.ts +13 -0
  86. package/dist/i18n/defaultMessages.js +23 -11
  87. package/dist/i18n/index.d.ts +1 -1
  88. package/dist/i18n/locales/de.js +12 -0
  89. package/dist/i18n/locales/es.js +12 -0
  90. package/dist/i18n/locales/hi.js +12 -0
  91. package/dist/i18n/locales/kn.js +12 -0
  92. package/dist/impact-nova-components.css +52 -10
  93. package/dist/impact-nova.css +1 -1
  94. package/dist/lib/guidance/analytics/analytics-adapter.d.ts +16 -0
  95. package/dist/lib/guidance/analytics/analytics-adapter.js +50 -0
  96. package/dist/lib/guidance/engine/guidance-engine.d.ts +74 -0
  97. package/dist/lib/guidance/engine/guidance-engine.js +384 -0
  98. package/dist/lib/guidance/engine/guide-registry.d.ts +21 -0
  99. package/dist/lib/guidance/engine/guide-registry.js +71 -0
  100. package/dist/lib/guidance/engine/manifest-validator.d.ts +4 -0
  101. package/dist/lib/guidance/engine/manifest-validator.js +102 -0
  102. package/dist/lib/guidance/engine/step-navigation.d.ts +5 -0
  103. package/dist/lib/guidance/engine/step-navigation.js +35 -0
  104. package/dist/lib/guidance/index.d.ts +12 -0
  105. package/dist/lib/guidance/storage/storage-adapter.d.ts +10 -0
  106. package/dist/lib/guidance/storage/storage-adapter.js +51 -0
  107. package/dist/lib/guidance/storage/storage-keys.d.ts +10 -0
  108. package/dist/lib/guidance/storage/storage-keys.js +23 -0
  109. package/dist/lib/guidance/targets/ref-registry.d.ts +12 -0
  110. package/dist/lib/guidance/targets/ref-registry.js +65 -0
  111. package/dist/lib/guidance/targets/target-resolver.d.ts +13 -0
  112. package/dist/lib/guidance/targets/target-resolver.js +85 -0
  113. package/dist/lib/guidance/triggers/built-in-triggers.d.ts +14 -0
  114. package/dist/lib/guidance/triggers/built-in-triggers.js +88 -0
  115. package/dist/lib/guidance/triggers/trigger-registry.d.ts +9 -0
  116. package/dist/lib/guidance/triggers/trigger-registry.js +44 -0
  117. package/dist/lib/guidance/types/guidance.types.d.ts +181 -0
  118. package/dist/lib/overflow/is-line-clamp-text-clipped.d.ts +2 -0
  119. package/dist/lib/overflow/is-line-clamp-text-clipped.js +33 -0
  120. package/dist/lib/overflow/is-text-overflowing.d.ts +1 -0
  121. package/dist/lib/overflow/is-text-overflowing.js +8 -3
  122. package/dist/llms/rules/installation.js +1 -1
  123. package/dist/llms/rules/requirements.js +1 -1
  124. package/package.json +51 -22
@@ -0,0 +1,254 @@
1
+ import * as A from "react";
2
+ const T = 8, S = 12, H = 16, v = 32;
3
+ function R(e) {
4
+ const t = window.getComputedStyle(e);
5
+ return t.overflow === "hidden" || t.overflow === "auto" || t.overflow === "scroll" || t.overflow === "clip" || t.overflowY === "hidden" || t.overflowY === "auto" || t.overflowY === "scroll" || t.overflowY === "clip" || t.overflowX === "hidden" || t.overflowX === "auto" || t.overflowX === "scroll" || t.overflowX === "clip";
6
+ }
7
+ function C(e) {
8
+ const t = [];
9
+ let n = e.parentElement;
10
+ for (; n; )
11
+ R(n) && t.push(n), n = n.parentElement;
12
+ return t;
13
+ }
14
+ function h(e, t) {
15
+ const n = Math.max(e.x, t.x), o = Math.max(e.y, t.y), i = Math.min(
16
+ e.x + e.width,
17
+ t.x + t.width
18
+ ), r = Math.min(
19
+ e.y + e.height,
20
+ t.y + t.height
21
+ );
22
+ return i <= n || r <= o ? null : {
23
+ x: n,
24
+ y: o,
25
+ width: i - n,
26
+ height: r - o
27
+ };
28
+ }
29
+ function f(e) {
30
+ return {
31
+ x: e.left,
32
+ y: e.top,
33
+ width: e.width,
34
+ height: e.height
35
+ };
36
+ }
37
+ function M(e) {
38
+ let t = f(
39
+ e.getBoundingClientRect()
40
+ );
41
+ for (const i of C(e)) {
42
+ const r = h(
43
+ t,
44
+ f(i.getBoundingClientRect())
45
+ );
46
+ if (!r)
47
+ break;
48
+ t = r;
49
+ }
50
+ const n = {
51
+ x: 0,
52
+ y: 0,
53
+ width: window.innerWidth,
54
+ height: window.innerHeight
55
+ };
56
+ return h(
57
+ t,
58
+ n
59
+ ) ?? t;
60
+ }
61
+ function E(e) {
62
+ let t = {
63
+ x: 0,
64
+ y: 0,
65
+ width: window.innerWidth,
66
+ height: window.innerHeight
67
+ };
68
+ for (const n of C(e)) {
69
+ const o = h(
70
+ t,
71
+ f(n.getBoundingClientRect())
72
+ );
73
+ o && (t = o);
74
+ }
75
+ return t;
76
+ }
77
+ function x(e) {
78
+ const t = [];
79
+ let n = e.parentElement;
80
+ for (; n; ) {
81
+ const o = window.getComputedStyle(n);
82
+ (o.overflowY === "auto" || o.overflowY === "scroll" || o.overflowY === "overlay") && n.scrollHeight > n.clientHeight && t.push(n), n = n.parentElement;
83
+ }
84
+ return t;
85
+ }
86
+ function I(e) {
87
+ return x(e).map((t) => ({
88
+ element: t,
89
+ scrollTop: t.scrollTop,
90
+ scrollLeft: t.scrollLeft
91
+ }));
92
+ }
93
+ function L(e) {
94
+ for (const t of e)
95
+ t.element.isConnected && (t.element.scrollTop = t.scrollTop, t.element.scrollLeft = t.scrollLeft);
96
+ }
97
+ let s = null;
98
+ function _(e) {
99
+ s === null && (s = I(e));
100
+ }
101
+ function V() {
102
+ s !== null && (L(s), s = null);
103
+ }
104
+ function D(e, t = v) {
105
+ const n = e.getBoundingClientRect(), o = window.innerHeight;
106
+ return n.top < t || n.bottom > o - t;
107
+ }
108
+ function B(e) {
109
+ const { targetElement: t, scrollContainer: n, viewportPadding: o } = e, i = n.getBoundingClientRect(), r = t.getBoundingClientRect(), c = n.clientHeight - o * 2;
110
+ if (r.height >= c) {
111
+ const l = r.top - i.top - o;
112
+ Math.abs(l) > 1 && (n.scrollTop += l);
113
+ return;
114
+ }
115
+ if (r.top < i.top + o) {
116
+ n.scrollTop -= i.top + o - r.top;
117
+ return;
118
+ }
119
+ r.bottom > i.bottom - o && (n.scrollTop += r.bottom - (i.bottom - o));
120
+ }
121
+ function O(e, t = v) {
122
+ if (!D(e, t))
123
+ return;
124
+ const o = x(e)[0];
125
+ if (o) {
126
+ B({
127
+ targetElement: e,
128
+ scrollContainer: o,
129
+ viewportPadding: t
130
+ });
131
+ return;
132
+ }
133
+ e.scrollIntoView({
134
+ behavior: "auto",
135
+ block: "center",
136
+ inline: "nearest"
137
+ });
138
+ }
139
+ function N(e, t) {
140
+ const n = e.advanceOn === "click-target";
141
+ return A.useEffect(() => {
142
+ if (!n)
143
+ return;
144
+ const o = e.target?.element;
145
+ if (!o)
146
+ return;
147
+ const i = () => {
148
+ queueMicrotask(() => {
149
+ t();
150
+ });
151
+ };
152
+ return o.addEventListener("click", i, { once: !0 }), () => {
153
+ o.removeEventListener("click", i);
154
+ };
155
+ }, [
156
+ n,
157
+ e.stepId,
158
+ e.target?.element,
159
+ t
160
+ ]), n;
161
+ }
162
+ function G(e, t = T, n) {
163
+ const o = {
164
+ x: e.x - t,
165
+ y: e.y - t,
166
+ width: e.width + t * 2,
167
+ height: e.height + t * 2
168
+ };
169
+ return n ? h(o, n) ?? o : o;
170
+ }
171
+ function F(e, t = T) {
172
+ const n = M(e), o = E(e);
173
+ return G(n, t, o);
174
+ }
175
+ function U(e) {
176
+ const {
177
+ targetRect: t,
178
+ popoverWidth: n,
179
+ popoverHeight: o,
180
+ gap: i = S,
181
+ viewportPadding: r = H
182
+ } = e, c = t.x + t.width, g = t.y + t.height, l = t.x, y = window.innerWidth - c;
183
+ if (t.width <= 280 && t.x >= window.innerWidth * 0.35 && l >= n + i)
184
+ return {
185
+ placement: "left",
186
+ left: Math.max(r, t.x - n - i),
187
+ top: Math.max(
188
+ r,
189
+ Math.min(
190
+ t.y,
191
+ window.innerHeight - o - r
192
+ )
193
+ )
194
+ };
195
+ if (t.width >= 480 && c >= window.innerWidth - r - 80 && l >= n + i)
196
+ return {
197
+ placement: "left",
198
+ left: Math.max(r, t.x - n - i),
199
+ top: Math.max(
200
+ r,
201
+ Math.min(
202
+ t.y + 16,
203
+ window.innerHeight - o - r
204
+ )
205
+ )
206
+ };
207
+ if (t.height > t.width * 2.5) {
208
+ const m = Math.max(
209
+ r,
210
+ Math.min(
211
+ t.y,
212
+ window.innerHeight - o - r
213
+ )
214
+ );
215
+ if (y >= n + i)
216
+ return {
217
+ placement: "right",
218
+ left: c + i,
219
+ top: m
220
+ };
221
+ if (l >= n + i)
222
+ return {
223
+ placement: "left",
224
+ left: t.x - n - i,
225
+ top: m
226
+ };
227
+ }
228
+ const p = window.innerHeight - g, w = t.y, b = t.y + t.height / 2 > window.innerHeight * 0.55;
229
+ let a;
230
+ b && w >= o + i && p < o + i * 2 ? a = "top" : a = p >= o + i || p >= w ? "bottom" : "top";
231
+ let u = a === "bottom" ? g + i : t.y - o - i, d = t.x + t.width / 2 - n / 2;
232
+ return d = Math.max(
233
+ r,
234
+ Math.min(d, window.innerWidth - n - r)
235
+ ), u = Math.max(
236
+ r,
237
+ Math.min(u, window.innerHeight - o - r)
238
+ ), { top: u, left: d, placement: a };
239
+ }
240
+ export {
241
+ S as GUIDANCE_POPOVER_GAP,
242
+ T as GUIDANCE_SPOTLIGHT_PADDING,
243
+ v as GUIDANCE_TARGET_SCROLL_PADDING,
244
+ H as GUIDANCE_VIEWPORT_PADDING,
245
+ _ as beginTourScrollSnapshot,
246
+ G as buildHighlightRect,
247
+ F as buildHighlightRectForTarget,
248
+ U as computePopoverPosition,
249
+ V as endTourScrollSnapshot,
250
+ M as getVisibleTargetRect,
251
+ D as needsGuidanceTargetScroll,
252
+ O as scrollGuidanceTargetIntoView,
253
+ N as useAdvanceOnTargetClick
254
+ };
@@ -0,0 +1,11 @@
1
+ import { RenderInstruction } from '../../../../lib/guidance';
2
+ import * as React from 'react';
3
+ interface GuidanceTourOverlayProps {
4
+ instruction: RenderInstruction;
5
+ overlayComponent: 'guidance-spotlight' | 'guidance-coach-mark';
6
+ onNext: () => void;
7
+ onSkip: () => void;
8
+ onDismiss: () => void;
9
+ }
10
+ export declare function GuidanceTourOverlay({ instruction, overlayComponent, onNext, onSkip, onDismiss, }: GuidanceTourOverlayProps): React.ReactElement | null;
11
+ export {};
@@ -0,0 +1,217 @@
1
+ import { jsxs as h, jsx as o, Fragment as C } from "react/jsx-runtime";
2
+ import * as l from "react";
3
+ import { createPortal as $ } from "react-dom";
4
+ import { GuidanceStepPanel as S } from "./guidance-card-shared.js";
5
+ import { useGuidanceOverlayGeometry as z } from "../hooks/useGuidanceOverlayGeometry.js";
6
+ import { useAdvanceOnTargetClick as E, buildHighlightRectForTarget as P, computePopoverPosition as A } from "./guidance-renderer-shared.js";
7
+ const G = 220, n = `motion-safe:transition-[top,left,width,height] motion-safe:duration-[${G}ms] motion-safe:ease-[cubic-bezier(0.22,1,0.36,1)]`;
8
+ function H({
9
+ highlightRect: e,
10
+ blocksPointerEvents: u = !0
11
+ }) {
12
+ const d = typeof window < "u" ? window.innerWidth : 0, g = typeof window < "u" ? window.innerHeight : 0, s = e.x + e.width, a = e.y + e.height, i = u ? `pointer-events-auto absolute bg-[var(--guidance-backdrop-bg)] opacity-[var(--guidance-backdrop-opacity,0.6)] ${n}` : `pointer-events-none absolute bg-[var(--guidance-backdrop-bg)] opacity-[var(--guidance-backdrop-opacity,0.6)] ${n}`;
13
+ return /* @__PURE__ */ h(C, { children: [
14
+ /* @__PURE__ */ o(
15
+ "div",
16
+ {
17
+ className: i,
18
+ style: { top: 0, left: 0, width: d, height: e.y },
19
+ "aria-hidden": "true"
20
+ }
21
+ ),
22
+ /* @__PURE__ */ o(
23
+ "div",
24
+ {
25
+ className: i,
26
+ style: {
27
+ top: a,
28
+ left: 0,
29
+ width: d,
30
+ height: Math.max(0, g - a)
31
+ },
32
+ "aria-hidden": "true"
33
+ }
34
+ ),
35
+ /* @__PURE__ */ o(
36
+ "div",
37
+ {
38
+ className: i,
39
+ style: {
40
+ top: e.y,
41
+ left: 0,
42
+ width: e.x,
43
+ height: e.height
44
+ },
45
+ "aria-hidden": "true"
46
+ }
47
+ ),
48
+ /* @__PURE__ */ o(
49
+ "div",
50
+ {
51
+ className: i,
52
+ style: {
53
+ top: e.y,
54
+ left: s,
55
+ width: Math.max(0, d - s),
56
+ height: e.height
57
+ },
58
+ "aria-hidden": "true"
59
+ }
60
+ )
61
+ ] });
62
+ }
63
+ function B({
64
+ instruction: e,
65
+ overlayComponent: u,
66
+ onNext: d,
67
+ onSkip: g,
68
+ onDismiss: s
69
+ }) {
70
+ const a = e.target?.element, i = z(a, e.stepId), I = e.stepIndex + 1 >= e.totalSteps, c = E(e, d), m = c || e.advanceOn === "auto", v = l.useRef(null), f = l.useRef(null), [b, O] = l.useState({ width: 400, height: 240 }), N = l.useCallback(() => {
71
+ a?.click();
72
+ }, [a]);
73
+ if (l.useLayoutEffect(() => {
74
+ const r = f.current;
75
+ r?.parentElement === document.body && document.body.appendChild(r);
76
+ }, [e.stepId, m]), l.useLayoutEffect(() => {
77
+ const r = v.current;
78
+ if (!r)
79
+ return;
80
+ const k = () => {
81
+ const p = r.getBoundingClientRect();
82
+ p.width > 0 && p.height > 0 && O({
83
+ width: p.width,
84
+ height: p.height
85
+ });
86
+ };
87
+ k();
88
+ const x = new ResizeObserver(k);
89
+ return x.observe(r), () => {
90
+ x.disconnect();
91
+ };
92
+ }, [e.stepId, e.content.title, e.content.body]), !i || !a || typeof document > "u")
93
+ return null;
94
+ const t = P(a), y = A({
95
+ targetRect: i,
96
+ popoverWidth: b.width,
97
+ popoverHeight: b.height
98
+ }), w = `guidance-mask-${e.stepId}`;
99
+ return $(
100
+ /* @__PURE__ */ h(
101
+ "div",
102
+ {
103
+ ref: f,
104
+ "data-component": u,
105
+ className: "fixed inset-0 z-50 pointer-events-none",
106
+ role: "presentation",
107
+ children: [
108
+ /* @__PURE__ */ h(
109
+ "svg",
110
+ {
111
+ className: `pointer-events-none absolute inset-0 size-full ${n}`,
112
+ "aria-hidden": "true",
113
+ children: [
114
+ /* @__PURE__ */ o("defs", { children: /* @__PURE__ */ h("mask", { id: w, children: [
115
+ /* @__PURE__ */ o("rect", { width: "100%", height: "100%", fill: "white" }),
116
+ /* @__PURE__ */ o(
117
+ "rect",
118
+ {
119
+ x: t.x,
120
+ y: t.y,
121
+ width: t.width,
122
+ height: t.height,
123
+ rx: "8",
124
+ fill: "black",
125
+ className: n
126
+ }
127
+ )
128
+ ] }) }),
129
+ /* @__PURE__ */ o(
130
+ "rect",
131
+ {
132
+ width: "100%",
133
+ height: "100%",
134
+ fill: "var(--guidance-backdrop-bg)",
135
+ fillOpacity: "var(--guidance-backdrop-opacity, 0.6)",
136
+ mask: `url(#${w})`
137
+ }
138
+ )
139
+ ]
140
+ }
141
+ ),
142
+ /* @__PURE__ */ o(
143
+ H,
144
+ {
145
+ highlightRect: t,
146
+ blocksPointerEvents: !m
147
+ }
148
+ ),
149
+ c ? /* @__PURE__ */ o(
150
+ "button",
151
+ {
152
+ type: "button",
153
+ className: `absolute z-10 cursor-pointer border-0 bg-transparent p-0 pointer-events-auto ${n}`,
154
+ style: {
155
+ top: t.y,
156
+ left: t.x,
157
+ width: t.width,
158
+ height: t.height
159
+ },
160
+ "aria-label": `Click ${e.content.title}`,
161
+ onClick: N
162
+ }
163
+ ) : null,
164
+ /* @__PURE__ */ o(
165
+ "div",
166
+ {
167
+ className: `pointer-events-none absolute rounded-lg ring-2 ring-[var(--guidance-highlight-ring,var(--color-primary))] ${n}`,
168
+ style: {
169
+ top: t.y,
170
+ left: t.x,
171
+ width: t.width,
172
+ height: t.height
173
+ }
174
+ }
175
+ ),
176
+ /* @__PURE__ */ o(
177
+ "div",
178
+ {
179
+ ref: v,
180
+ className: `pointer-events-auto absolute z-20 w-[min(400px,calc(100vw-2rem))] overflow-hidden rounded-2xl border border-stroke bg-canvas shadow-elevation-floating ${n}`,
181
+ style: {
182
+ top: y.top,
183
+ left: y.left
184
+ },
185
+ role: "dialog",
186
+ "aria-labelledby": `guidance-tour-title-${e.stepId}`,
187
+ "aria-describedby": `guidance-tour-body-${e.stepId}`,
188
+ children: /* @__PURE__ */ o(
189
+ S,
190
+ {
191
+ title: e.content.title,
192
+ body: e.content.body,
193
+ optionalFooter: e.advanceOn !== "auto" ? e.content.footer : void 0,
194
+ stepIndex: e.stepIndex,
195
+ totalSteps: e.totalSteps,
196
+ skippable: e.skippable,
197
+ primaryActionLabel: I ? "Done" : "Next",
198
+ onSkip: g,
199
+ onDismiss: s,
200
+ onPrimaryAction: d,
201
+ showPrimaryAction: !c && e.advanceOn !== "auto",
202
+ footerHint: c ? "Click highlighted area" : e.advanceOn === "auto" ? e.content.footer ?? "Complete this step to continue" : null,
203
+ titleId: `guidance-tour-title-${e.stepId}`,
204
+ bodyId: `guidance-tour-body-${e.stepId}`
205
+ }
206
+ )
207
+ }
208
+ )
209
+ ]
210
+ }
211
+ ),
212
+ document.body
213
+ );
214
+ }
215
+ export {
216
+ B as GuidanceTourOverlay
217
+ };
@@ -0,0 +1,6 @@
1
+ import { RendererProps } from '../../../../lib/guidance';
2
+ import type * as React from 'react';
3
+ export type GuidanceRendererComponent = (props: RendererProps) => React.ReactNode;
4
+ export declare function registerRendererPlugins(): void;
5
+ export declare function getRenderer(rendererKey: string): GuidanceRendererComponent | undefined;
6
+ export declare function registerRenderer(rendererKey: string, component: GuidanceRendererComponent): void;
@@ -0,0 +1,19 @@
1
+ import { SpotlightRenderer as o } from "./spotlight-renderer.js";
2
+ import { CoachMarkRenderer as i } from "./coach-mark-renderer.js";
3
+ import { AnnouncementRenderer as s } from "./announcement-renderer.js";
4
+ const e = /* @__PURE__ */ new Map();
5
+ let t = !1;
6
+ function m() {
7
+ t || (e.set("spotlight", o), e.set("coach-mark", i), e.set("announcement", s), t = !0);
8
+ }
9
+ function d(r) {
10
+ return e.get(r);
11
+ }
12
+ function f(r, n) {
13
+ e.set(r, n);
14
+ }
15
+ export {
16
+ d as getRenderer,
17
+ f as registerRenderer,
18
+ m as registerRendererPlugins
19
+ };
@@ -0,0 +1,2 @@
1
+ import { RendererProps } from '../../../../lib/guidance';
2
+ export declare function SpotlightRenderer(props: RendererProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,14 @@
1
+ import { jsx as r } from "react/jsx-runtime";
2
+ import { GuidanceTourOverlay as e } from "./guidance-tour-overlay.js";
3
+ function i(o) {
4
+ return /* @__PURE__ */ r(
5
+ e,
6
+ {
7
+ ...o,
8
+ overlayComponent: "guidance-spotlight"
9
+ }
10
+ );
11
+ }
12
+ export {
13
+ i as SpotlightRenderer
14
+ };
@@ -0,0 +1,4 @@
1
+ export { SpotlightRenderer } from './renderers/spotlight-renderer';
2
+ export { CoachMarkRenderer } from './renderers/coach-mark-renderer';
3
+ export { AnnouncementRenderer } from './renderers/announcement-renderer';
4
+ export { registerRenderer, getRenderer } from './renderers/renderer-registry';
@@ -0,0 +1,11 @@
1
+ import { SpotlightRenderer as o } from "./renderers/spotlight-renderer.js";
2
+ import { CoachMarkRenderer as t } from "./renderers/coach-mark-renderer.js";
3
+ import { AnnouncementRenderer as m } from "./renderers/announcement-renderer.js";
4
+ import { getRenderer as R, registerRenderer as f } from "./renderers/renderer-registry.js";
5
+ export {
6
+ m as AnnouncementRenderer,
7
+ t as CoachMarkRenderer,
8
+ o as SpotlightRenderer,
9
+ R as getRenderer,
10
+ f as registerRenderer
11
+ };
@@ -0,0 +1,3 @@
1
+ export { GuidanceTarget } from './guidance-target';
2
+ export { useGuidanceTarget } from './use-guidance-target';
3
+ export type { GuidanceTargetProps } from './guidance-target';
@@ -0,0 +1,6 @@
1
+ import { GuidanceTarget as a } from "./guidance-target.js";
2
+ import { useGuidanceTarget as t } from "./use-guidance-target.js";
3
+ export {
4
+ a as GuidanceTarget,
5
+ t as useGuidanceTarget
6
+ };
@@ -0,0 +1,2 @@
1
+ export { registerBuiltInTriggerPlugins, createRouteEnteredTriggerPlugin, createRouteExitedTriggerPlugin, createFirstVisitTriggerPlugin, createNthVisitTriggerPlugin, createAppVersionTriggerPlugin, createFeatureFlagTriggerPlugin, createPermissionTriggerPlugin, createUserSegmentTriggerPlugin, createCustomEventTriggerPlugin, createManualTriggerPlugin, } from '../../../lib/guidance/triggers/built-in-triggers';
2
+ export { TriggerPluginRegistry } from '../../../lib/guidance/triggers/trigger-registry';
@@ -0,0 +1,16 @@
1
+ import { createAppVersionTriggerPlugin as g, createCustomEventTriggerPlugin as i, createFeatureFlagTriggerPlugin as t, createFirstVisitTriggerPlugin as n, createManualTriggerPlugin as u, createNthVisitTriggerPlugin as l, createPermissionTriggerPlugin as a, createRouteEnteredTriggerPlugin as P, createRouteExitedTriggerPlugin as T, createUserSegmentTriggerPlugin as s, registerBuiltInTriggerPlugins as c } from "../../../lib/guidance/triggers/built-in-triggers.js";
2
+ import { TriggerPluginRegistry as m } from "../../../lib/guidance/triggers/trigger-registry.js";
3
+ export {
4
+ m as TriggerPluginRegistry,
5
+ g as createAppVersionTriggerPlugin,
6
+ i as createCustomEventTriggerPlugin,
7
+ t as createFeatureFlagTriggerPlugin,
8
+ n as createFirstVisitTriggerPlugin,
9
+ u as createManualTriggerPlugin,
10
+ l as createNthVisitTriggerPlugin,
11
+ a as createPermissionTriggerPlugin,
12
+ P as createRouteEnteredTriggerPlugin,
13
+ T as createRouteExitedTriggerPlugin,
14
+ s as createUserSegmentTriggerPlugin,
15
+ c as registerBuiltInTriggerPlugins
16
+ };
@@ -0,0 +1,5 @@
1
+ import * as React from 'react';
2
+ export declare function useGuidanceTarget(targetId: string, scope?: string): {
3
+ readonly ref: React.RefObject<HTMLElement | null>;
4
+ readonly 'data-guidance-target': string;
5
+ };
@@ -0,0 +1,16 @@
1
+ import * as i from "react";
2
+ import { useGuidanceContext as o } from "./guidance-context.js";
3
+ function f(e, t) {
4
+ const { engine: n } = o(), r = i.useRef(null);
5
+ return i.useEffect(() => {
6
+ const u = r.current;
7
+ if (u)
8
+ return n.targets.register(e, u, t);
9
+ }, [n, e, t]), {
10
+ ref: r,
11
+ "data-guidance-target": e
12
+ };
13
+ }
14
+ export {
15
+ f as useGuidanceTarget
16
+ };
@@ -0,0 +1,2 @@
1
+ export declare function hasRunningAnimations(element: HTMLElement): boolean;
2
+ export declare function waitForTargetMotionSettled(targetElement: HTMLElement, maxWaitMs: number): Promise<void>;
@@ -0,0 +1,17 @@
1
+ function o(n) {
2
+ if (typeof n.getAnimations != "function")
3
+ return [];
4
+ const i = [];
5
+ let t = n;
6
+ for (; t; )
7
+ i.push(...t.getAnimations()), t = t.parentElement;
8
+ return i.filter(
9
+ (e) => e.playState === "running"
10
+ );
11
+ }
12
+ function r(n) {
13
+ return o(n).length > 0;
14
+ }
15
+ export {
16
+ r as hasRunningAnimations
17
+ };