impact-nova 2.2.7 → 2.2.9

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 (121) 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/components/section-renderers.js +19 -18
  5. package/dist/components/data/ag-grid-react/headers/custom-header.js +1 -1
  6. package/dist/components/data/ag-grid-react/headers/custom-inner-header-group.js +7 -7
  7. package/dist/components/data/ag-grid-react/info-system-story-columns.d.ts +38 -1
  8. package/dist/components/data/ag-grid-react/strip-column-min-width-constraints.d.ts +3 -0
  9. package/dist/components/data/data-table/data-table.d.ts +1 -1
  10. package/dist/components/data/data-table/data-table.js +41 -39
  11. package/dist/components/data/data-table/data-table.types.d.ts +1 -1
  12. package/dist/components/flows/filter-panel/filter-panel.js +101 -94
  13. package/dist/components/flows/filter-strip/filter-tag-list.js +96 -88
  14. package/dist/components/flows/guidance/adapters/ag-grid-adapter.d.ts +13 -0
  15. package/dist/components/flows/guidance/adapters/ag-grid-adapter.js +30 -0
  16. package/dist/components/flows/guidance/adapters/ag-grid.d.ts +2 -0
  17. package/dist/components/flows/guidance/adapters/ag-grid.js +6 -0
  18. package/dist/components/flows/guidance/adapters/dialog.d.ts +1 -0
  19. package/dist/components/flows/guidance/adapters/dialog.js +5 -0
  20. package/dist/components/flows/guidance/adapters/overlay-adapter.d.ts +5 -0
  21. package/dist/components/flows/guidance/adapters/overlay-adapter.js +21 -0
  22. package/dist/components/flows/guidance/engine.d.ts +1 -0
  23. package/dist/components/flows/guidance/engine.js +36 -0
  24. package/dist/components/flows/guidance/guidance-context.d.ts +29 -0
  25. package/dist/components/flows/guidance/guidance-context.js +35 -0
  26. package/dist/components/flows/guidance/guidance-error-boundary.d.ts +16 -0
  27. package/dist/components/flows/guidance/guidance-error-boundary.js +49 -0
  28. package/dist/components/flows/guidance/guidance-layer.d.ts +2 -0
  29. package/dist/components/flows/guidance/guidance-layer.js +71 -0
  30. package/dist/components/flows/guidance/guidance-provider.d.ts +3 -0
  31. package/dist/components/flows/guidance/guidance-provider.js +58 -0
  32. package/dist/components/flows/guidance/guidance-target.d.ts +7 -0
  33. package/dist/components/flows/guidance/guidance-target.js +27 -0
  34. package/dist/components/flows/guidance/guidance.types.d.ts +1 -0
  35. package/dist/components/flows/guidance/help-center/filter-help-center-guides.d.ts +7 -0
  36. package/dist/components/flows/guidance/help-center/filter-help-center-guides.js +11 -0
  37. package/dist/components/flows/guidance/help-center/guide-catalog.d.ts +3 -0
  38. package/dist/components/flows/guidance/help-center/guide-catalog.js +118 -0
  39. package/dist/components/flows/guidance/help-center/help-center-header.d.ts +3 -0
  40. package/dist/components/flows/guidance/help-center/help-center-header.js +43 -0
  41. package/dist/components/flows/guidance/help-center/help-center.constants.d.ts +5 -0
  42. package/dist/components/flows/guidance/help-center/help-center.constants.js +7 -0
  43. package/dist/components/flows/guidance/help-center/help-center.d.ts +10 -0
  44. package/dist/components/flows/guidance/help-center/help-center.js +95 -0
  45. package/dist/components/flows/guidance/help-center/help-center.story-helpers.d.ts +10 -0
  46. package/dist/components/flows/guidance/help-center/help-center.types.d.ts +39 -0
  47. package/dist/components/flows/guidance/help-center.d.ts +6 -0
  48. package/dist/components/flows/guidance/help-center.js +19 -0
  49. package/dist/components/flows/guidance/hooks/use-guidance.d.ts +19 -0
  50. package/dist/components/flows/guidance/hooks/use-guidance.js +50 -0
  51. package/dist/components/flows/guidance/hooks/use-help-center.d.ts +24 -0
  52. package/dist/components/flows/guidance/hooks/use-help-center.js +67 -0
  53. package/dist/components/flows/guidance/hooks/useGuidanceOverlayGeometry.d.ts +2 -0
  54. package/dist/components/flows/guidance/hooks/useGuidanceOverlayGeometry.js +30 -0
  55. package/dist/components/flows/guidance/index.d.ts +18 -0
  56. package/dist/components/flows/guidance/index.js +48 -0
  57. package/dist/components/flows/guidance/renderers/announcement-renderer.d.ts +3 -0
  58. package/dist/components/flows/guidance/renderers/announcement-renderer.js +40 -0
  59. package/dist/components/flows/guidance/renderers/coach-mark-renderer.d.ts +2 -0
  60. package/dist/components/flows/guidance/renderers/coach-mark-renderer.js +14 -0
  61. package/dist/components/flows/guidance/renderers/guidance-card-shared.d.ts +42 -0
  62. package/dist/components/flows/guidance/renderers/guidance-card-shared.js +213 -0
  63. package/dist/components/flows/guidance/renderers/guidance-renderer-shared.d.ts +48 -0
  64. package/dist/components/flows/guidance/renderers/guidance-renderer-shared.js +254 -0
  65. package/dist/components/flows/guidance/renderers/guidance-tour-overlay.d.ts +11 -0
  66. package/dist/components/flows/guidance/renderers/guidance-tour-overlay.js +217 -0
  67. package/dist/components/flows/guidance/renderers/renderer-registry.d.ts +6 -0
  68. package/dist/components/flows/guidance/renderers/renderer-registry.js +19 -0
  69. package/dist/components/flows/guidance/renderers/spotlight-renderer.d.ts +2 -0
  70. package/dist/components/flows/guidance/renderers/spotlight-renderer.js +14 -0
  71. package/dist/components/flows/guidance/renderers.d.ts +4 -0
  72. package/dist/components/flows/guidance/renderers.js +11 -0
  73. package/dist/components/flows/guidance/target.d.ts +3 -0
  74. package/dist/components/flows/guidance/target.js +6 -0
  75. package/dist/components/flows/guidance/triggers.d.ts +2 -0
  76. package/dist/components/flows/guidance/triggers.js +16 -0
  77. package/dist/components/flows/guidance/use-guidance-target.d.ts +5 -0
  78. package/dist/components/flows/guidance/use-guidance-target.js +16 -0
  79. package/dist/components/flows/guidance/utils/motion-settle.d.ts +2 -0
  80. package/dist/components/flows/guidance/utils/motion-settle.js +17 -0
  81. package/dist/components/forms/prompt/prompt.js +13 -13
  82. package/dist/i18n/defaultMessages.d.ts +13 -0
  83. package/dist/i18n/defaultMessages.js +23 -11
  84. package/dist/i18n/index.d.ts +1 -1
  85. package/dist/i18n/locales/de.js +12 -0
  86. package/dist/i18n/locales/es.js +12 -0
  87. package/dist/i18n/locales/hi.js +12 -0
  88. package/dist/i18n/locales/kn.js +12 -0
  89. package/dist/impact-nova-components.css +52 -10
  90. package/dist/impact-nova.css +1 -1
  91. package/dist/lib/guidance/analytics/analytics-adapter.d.ts +16 -0
  92. package/dist/lib/guidance/analytics/analytics-adapter.js +50 -0
  93. package/dist/lib/guidance/engine/guidance-engine.d.ts +74 -0
  94. package/dist/lib/guidance/engine/guidance-engine.js +384 -0
  95. package/dist/lib/guidance/engine/guide-registry.d.ts +21 -0
  96. package/dist/lib/guidance/engine/guide-registry.js +71 -0
  97. package/dist/lib/guidance/engine/manifest-validator.d.ts +4 -0
  98. package/dist/lib/guidance/engine/manifest-validator.js +102 -0
  99. package/dist/lib/guidance/engine/step-navigation.d.ts +5 -0
  100. package/dist/lib/guidance/engine/step-navigation.js +35 -0
  101. package/dist/lib/guidance/index.d.ts +12 -0
  102. package/dist/lib/guidance/storage/storage-adapter.d.ts +10 -0
  103. package/dist/lib/guidance/storage/storage-adapter.js +51 -0
  104. package/dist/lib/guidance/storage/storage-keys.d.ts +10 -0
  105. package/dist/lib/guidance/storage/storage-keys.js +23 -0
  106. package/dist/lib/guidance/targets/ref-registry.d.ts +12 -0
  107. package/dist/lib/guidance/targets/ref-registry.js +65 -0
  108. package/dist/lib/guidance/targets/target-resolver.d.ts +13 -0
  109. package/dist/lib/guidance/targets/target-resolver.js +85 -0
  110. package/dist/lib/guidance/triggers/built-in-triggers.d.ts +14 -0
  111. package/dist/lib/guidance/triggers/built-in-triggers.js +88 -0
  112. package/dist/lib/guidance/triggers/trigger-registry.d.ts +9 -0
  113. package/dist/lib/guidance/triggers/trigger-registry.js +44 -0
  114. package/dist/lib/guidance/types/guidance.types.d.ts +181 -0
  115. package/dist/lib/overflow/is-line-clamp-text-clipped.d.ts +2 -0
  116. package/dist/lib/overflow/is-line-clamp-text-clipped.js +33 -0
  117. package/dist/lib/overflow/is-text-overflowing.d.ts +1 -0
  118. package/dist/lib/overflow/is-text-overflowing.js +8 -3
  119. package/dist/llms/rules/installation.js +1 -1
  120. package/dist/llms/rules/requirements.js +1 -1
  121. package/package.json +51 -22
@@ -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
+ };
@@ -8,8 +8,8 @@ import { useImpactNovaI18n as u } from "../../../i18n/use-impact-nova-i18n.js";
8
8
  import { Tooltip as W, TooltipTrigger as q, TooltipContent as A } from "../../feedback/tooltip/tooltip.js";
9
9
  import { Button as f } from "../../primitives/button/button.js";
10
10
  import { Dialog as E, DialogContent as G, DialogHeader as J, DialogTitle as K, DialogDescription as M, DialogFooter as Q } from "../../feedback/dialog/dialog.js";
11
- const re = p("PromptClose", ({ className: i, ...s }, l) => {
12
- const { t: c } = u();
11
+ const re = p("PromptClose", ({ className: i, ...c }, l) => {
12
+ const { t: s } = u();
13
13
  return /* @__PURE__ */ n(W, { children: [
14
14
  /* @__PURE__ */ e(q, { asChild: !0, children: /* @__PURE__ */ e(
15
15
  "button",
@@ -17,20 +17,20 @@ const re = p("PromptClose", ({ className: i, ...s }, l) => {
17
17
  ref: l,
18
18
  className: r("text-content-tertiary hover:text-content transition-colors", i),
19
19
  type: "button",
20
- "aria-label": c("aria.close"),
21
- ...s,
20
+ "aria-label": s("aria.close"),
21
+ ...c,
22
22
  children: /* @__PURE__ */ e(B, { size: 16 })
23
23
  }
24
24
  ) }),
25
- /* @__PURE__ */ e(A, { side: "top", variant: "tertiary", children: c("aria.close") })
25
+ /* @__PURE__ */ e(A, { side: "top", variant: "tertiary", children: s("aria.close") })
26
26
  ] });
27
27
  }), oe = p(
28
28
  "Prompt",
29
29
  ({
30
30
  open: i,
31
- onOpenChange: s,
31
+ onOpenChange: c,
32
32
  title: l,
33
- description: c,
33
+ description: s,
34
34
  confirmLabel: x,
35
35
  cancelLabel: b,
36
36
  onConfirm: h,
@@ -46,11 +46,11 @@ const re = p("PromptClose", ({ className: i, ...s }, l) => {
46
46
  ...D
47
47
  }, j) => {
48
48
  const { t: m } = u(), k = b ?? m("prompt.cancel"), z = x ?? m("prompt.confirm"), P = () => {
49
- h?.(), s?.(!1);
49
+ h?.(), c?.(!1);
50
50
  }, T = () => {
51
- g?.(), s?.(!1);
51
+ g?.(), c?.(!1);
52
52
  }, o = t !== "default", I = C || (t === "destructive" ? "destructive" : "default");
53
- return /* @__PURE__ */ e(E, { open: i, onOpenChange: s, ...D, children: /* @__PURE__ */ n(
53
+ return /* @__PURE__ */ e(E, { open: i, onOpenChange: c, ...D, children: /* @__PURE__ */ n(
54
54
  G,
55
55
  {
56
56
  ref: j,
@@ -88,7 +88,7 @@ const re = p("PromptClose", ({ className: i, ...s }, l) => {
88
88
  /* @__PURE__ */ n(
89
89
  J,
90
90
  {
91
- className: r(o && "space-y-2 items-center bg-canvas-elevated border-none"),
91
+ className: r(o && "space-y-2 items-center bg-canvas-elevated border-none text-center sm:text-center pe-4"),
92
92
  children: [
93
93
  /* @__PURE__ */ e(
94
94
  K,
@@ -99,11 +99,11 @@ const re = p("PromptClose", ({ className: i, ...s }, l) => {
99
99
  children: l
100
100
  }
101
101
  ),
102
- c && /* @__PURE__ */ e(
102
+ s && /* @__PURE__ */ e(
103
103
  M,
104
104
  {
105
105
  className: r(o && "text-sm text-content-tertiary"),
106
- children: c
106
+ children: s
107
107
  }
108
108
  )
109
109
  ]
@@ -228,6 +228,18 @@ export interface NotificationPanelMessages {
228
228
  emptyArchivedTitle: string;
229
229
  emptyArchivedSub: string;
230
230
  }
231
+ export interface HelpCenterMessages {
232
+ title: string;
233
+ description: string;
234
+ searchPlaceholder: string;
235
+ searchAriaLabel: string;
236
+ allCategory: string;
237
+ replay: string;
238
+ emptyState: string;
239
+ stepCount: string;
240
+ supportFooterMessage: string;
241
+ supportTicketLabel: string;
242
+ }
231
243
  export interface HorizontalScrollerMessages {
232
244
  scrollLeft: string;
233
245
  scrollRight: string;
@@ -306,6 +318,7 @@ export interface ImpactNovaMessages {
306
318
  advancedFilter: AdvancedFilterMessages;
307
319
  gridHeader: GridHeaderMessages;
308
320
  notificationPanel: NotificationPanelMessages;
321
+ helpCenter: HelpCenterMessages;
309
322
  horizontalScroller: HorizontalScrollerMessages;
310
323
  sidebar: SidebarMessages;
311
324
  stepper: StepperMessages;
@@ -197,15 +197,26 @@ const e = {
197
197
  emptyArchivedTitle: "No archived notifications",
198
198
  emptyArchivedSub: "Archived notifications will appear here."
199
199
  }, m = {
200
+ title: "Help Center",
201
+ description: "Browse and replay in-app guides",
202
+ searchPlaceholder: "Search",
203
+ searchAriaLabel: "Search guides",
204
+ allCategory: "All",
205
+ replay: "Replay",
206
+ emptyState: "No guides match your search.",
207
+ stepCount: "{{count}} steps",
208
+ supportFooterMessage: "Need more help?",
209
+ supportTicketLabel: "Submit a support ticket"
210
+ }, h = {
200
211
  scrollLeft: "Scroll left",
201
212
  scrollRight: "Scroll right"
202
- }, h = {
213
+ }, f = {
203
214
  viewMore: "View More",
204
215
  viewLess: "View Less",
205
216
  logout: "Logout"
206
- }, f = {
207
- stepOfTotal: "Step {{current}} of {{total}}"
208
217
  }, S = {
218
+ stepOfTotal: "Step {{current}} of {{total}}"
219
+ }, v = {
209
220
  title: "Advanced Filter",
210
221
  currentColumn: "Current Column",
211
222
  allFilters: "Active Filters",
@@ -219,7 +230,7 @@ const e = {
219
230
  addRule: "+ Add Rule",
220
231
  deleteColumn: "Delete",
221
232
  noValueNeeded: "No value needed"
222
- }, v = {
233
+ }, g = {
223
234
  activeFilter: "Active filter",
224
235
  search: "Search",
225
236
  selection: "Selection",
@@ -254,7 +265,7 @@ const e = {
254
265
  columnOptions: "Column Options",
255
266
  chooseColumns: "Choose Columns",
256
267
  resetColumns: "Reset Columns"
257
- }, g = {
268
+ }, w = {
258
269
  calendar: e,
259
270
  datePicker: t,
260
271
  filter: o,
@@ -266,13 +277,14 @@ const e = {
266
277
  fileUpload: c,
267
278
  filterStrip: d,
268
279
  filterPanel: u,
269
- advancedFilter: S,
270
- gridHeader: v,
280
+ advancedFilter: v,
281
+ gridHeader: g,
271
282
  notificationPanel: p,
272
- horizontalScroller: m,
273
- sidebar: h,
274
- stepper: f
283
+ helpCenter: m,
284
+ horizontalScroller: h,
285
+ sidebar: f,
286
+ stepper: S
275
287
  };
276
288
  export {
277
- g as defaultMessages
289
+ w as defaultMessages
278
290
  };
@@ -1,7 +1,7 @@
1
1
  export { ImpactNovaI18nProvider } from './impact-nova-i18n-context';
2
2
  export { useImpactNovaI18n } from './use-impact-nova-i18n';
3
3
  export type { ImpactNovaI18nContextValue, ImpactNovaI18nProviderProps, I18nParams, } from './i18n.types';
4
- export { defaultMessages, type ImpactNovaMessages, type CalendarMessages, type DatePickerMessages, type FilterMessages, type FilterOperatorMessages, type AdvancedFilterMessages, type GridHeaderMessages, type SelectMessages, type NestedListMessages, type DataTableMessages, type AriaMessages, type PromptMessages, type FileUploadMessages, type FilterStripMessages, type FilterPanelMessages, type NotificationPanelMessages, type HorizontalScrollerMessages, type SidebarMessages, type StepperMessages, } from './defaultMessages';
4
+ export { defaultMessages, type ImpactNovaMessages, type CalendarMessages, type DatePickerMessages, type FilterMessages, type FilterOperatorMessages, type AdvancedFilterMessages, type GridHeaderMessages, type SelectMessages, type NestedListMessages, type DataTableMessages, type AriaMessages, type PromptMessages, type FileUploadMessages, type FilterStripMessages, type FilterPanelMessages, type NotificationPanelMessages, type HelpCenterMessages, type HorizontalScrollerMessages, type SidebarMessages, type StepperMessages, } from './defaultMessages';
5
5
  export { getDateFnsLocale, getIntlLocale } from './getDateFnsLocale';
6
6
  /** Locale message packs for i18n. Use as-is or spread and override specific keys. */
7
7
  export { de, es, hi, kn } from './locales';
@@ -260,6 +260,18 @@ const e = {
260
260
  emptyArchivedTitle: "Keine archivierten Benachrichtigungen",
261
261
  emptyArchivedSub: "Archivierte Benachrichtigungen erscheinen hier."
262
262
  },
263
+ helpCenter: {
264
+ title: "Help Center",
265
+ description: "In-App-Anleitungen durchsuchen und erneut abspielen",
266
+ searchPlaceholder: "Suchen",
267
+ searchAriaLabel: "Anleitungen suchen",
268
+ allCategory: "Alle",
269
+ replay: "Erneut abspielen",
270
+ emptyState: "Keine Anleitungen entsprechen Ihrer Suche.",
271
+ stepCount: "{{count}} Schritte",
272
+ supportFooterMessage: "Brauchen Sie mehr Hilfe?",
273
+ supportTicketLabel: "Support-Ticket einreichen"
274
+ },
263
275
  horizontalScroller: {
264
276
  scrollLeft: "Nach links scrollen",
265
277
  scrollRight: "Nach rechts scrollen"
@@ -260,6 +260,18 @@ const e = {
260
260
  emptyArchivedTitle: "No hay notificaciones archivadas",
261
261
  emptyArchivedSub: "Las notificaciones archivadas aparecerán aquí."
262
262
  },
263
+ helpCenter: {
264
+ title: "Help Center",
265
+ description: "Explora y reproduce guías de la aplicación",
266
+ searchPlaceholder: "Buscar",
267
+ searchAriaLabel: "Buscar guías",
268
+ allCategory: "Todas",
269
+ replay: "Reproducir",
270
+ emptyState: "Ninguna guía coincide con tu búsqueda.",
271
+ stepCount: "{{count}} pasos",
272
+ supportFooterMessage: "¿Necesitas más ayuda?",
273
+ supportTicketLabel: "Enviar ticket de soporte"
274
+ },
263
275
  horizontalScroller: {
264
276
  scrollLeft: "Desplazar a la izquierda",
265
277
  scrollRight: "Desplazar a la derecha"
@@ -260,6 +260,18 @@ const e = {
260
260
  emptyArchivedTitle: "कोई संग्रहीत सूचना नहीं",
261
261
  emptyArchivedSub: "संग्रहीत सूचनाएँ यहाँ दिखाई देंगी।"
262
262
  },
263
+ helpCenter: {
264
+ title: "Help Center",
265
+ description: "इन-ऐप गाइड ब्राउज़ करें और दोबारा चलाएं",
266
+ searchPlaceholder: "खोजें",
267
+ searchAriaLabel: "गाइड खोजें",
268
+ allCategory: "सभी",
269
+ replay: "फिर से चलाएं",
270
+ emptyState: "आपकी खोज से कोई गाइड मेल नहीं खाती।",
271
+ stepCount: "{{count}} चरण",
272
+ supportFooterMessage: "और मदद चाहिए?",
273
+ supportTicketLabel: "सहायता टिकट जमा करें"
274
+ },
263
275
  horizontalScroller: {
264
276
  scrollLeft: "बाएं स्क्रॉल करें",
265
277
  scrollRight: "दाएं स्क्रॉल करें"
@@ -260,6 +260,18 @@ const e = {
260
260
  emptyArchivedTitle: "ಆರ್ಕೈವ್ ಅಧಿಸೂಚನೆಗಳಿಲ್ಲ",
261
261
  emptyArchivedSub: "ಆರ್ಕೈವ್ ಮಾಡಿದ ಅಧಿಸೂಚನೆಗಳು ಇಲ್ಲಿ ಕಾಣಿಸುತ್ತವೆ."
262
262
  },
263
+ helpCenter: {
264
+ title: "Help Center",
265
+ description: "ಇನ್-ಆ್ಯಪ್ ಮಾರ್ಗದರ್ಶಿಗಳನ್ನು ಬ್ರೌಸ್ ಮಾಡಿ ಮತ್ತು ಮರುಪ್ಲೇ ಮಾಡಿ",
266
+ searchPlaceholder: "ಹುಡುಕಿ",
267
+ searchAriaLabel: "ಮಾರ್ಗದರ್ಶಿಗಳನ್ನು ಹುಡುಕಿ",
268
+ allCategory: "ಎಲ್ಲಾ",
269
+ replay: "ಮರುಪ್ಲೇ",
270
+ emptyState: "ನಿಮ್ಮ ಹುಡುಕಾಟಕ್ಕೆ ಯಾವುದೇ ಮಾರ್ಗದರ್ಶಿಗಳು ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ.",
271
+ stepCount: "{{count}} ಹಂತಗಳು",
272
+ supportFooterMessage: "ಇನ್ನಷ್ಟು ಸಹಾಯ ಬೇಕೇ?",
273
+ supportTicketLabel: "ಬೆಂಬಲ ಟಿಕೆಟ್ ಸಲ್ಲಿಸಿ"
274
+ },
263
275
  horizontalScroller: {
264
276
  scrollLeft: "ಎಡಕ್ಕೆ ಸ್ಕ್ರಾಲ್ ಮಾಡಿ",
265
277
  scrollRight: "ಬಲಕ್ಕೆ ಸ್ಕ್ರಾಲ್ ಮಾಡಿ"