featuredrop 1.2.0 → 1.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 (84) hide show
  1. package/README.md +171 -0
  2. package/dist/admin.cjs +212 -0
  3. package/dist/admin.cjs.map +1 -0
  4. package/dist/admin.d.cts +176 -0
  5. package/dist/admin.d.ts +176 -0
  6. package/dist/admin.js +207 -0
  7. package/dist/admin.js.map +1 -0
  8. package/dist/angular.cjs +13 -3
  9. package/dist/angular.cjs.map +1 -1
  10. package/dist/angular.d.cts +4 -0
  11. package/dist/angular.d.ts +4 -0
  12. package/dist/angular.js +13 -3
  13. package/dist/angular.js.map +1 -1
  14. package/dist/bridges.cjs +401 -0
  15. package/dist/bridges.cjs.map +1 -0
  16. package/dist/bridges.d.cts +194 -0
  17. package/dist/bridges.d.ts +194 -0
  18. package/dist/bridges.js +394 -0
  19. package/dist/bridges.js.map +1 -0
  20. package/dist/ci.cjs +328 -0
  21. package/dist/ci.cjs.map +1 -0
  22. package/dist/ci.d.cts +176 -0
  23. package/dist/ci.d.ts +176 -0
  24. package/dist/ci.js +324 -0
  25. package/dist/ci.js.map +1 -0
  26. package/dist/featuredrop.cjs +139 -18
  27. package/dist/featuredrop.cjs.map +1 -1
  28. package/dist/flags.cjs +51 -0
  29. package/dist/flags.cjs.map +1 -0
  30. package/dist/flags.d.cts +48 -0
  31. package/dist/flags.d.ts +48 -0
  32. package/dist/flags.js +47 -0
  33. package/dist/flags.js.map +1 -0
  34. package/dist/index.cjs +2583 -665
  35. package/dist/index.cjs.map +1 -1
  36. package/dist/index.d.cts +743 -206
  37. package/dist/index.d.ts +743 -206
  38. package/dist/index.js +2552 -666
  39. package/dist/index.js.map +1 -1
  40. package/dist/preact.cjs +710 -209
  41. package/dist/preact.cjs.map +1 -1
  42. package/dist/preact.d.cts +67 -120
  43. package/dist/preact.d.ts +67 -120
  44. package/dist/preact.js +696 -195
  45. package/dist/preact.js.map +1 -1
  46. package/dist/react.cjs +710 -209
  47. package/dist/react.cjs.map +1 -1
  48. package/dist/react.d.cts +67 -120
  49. package/dist/react.d.ts +67 -120
  50. package/dist/react.js +696 -195
  51. package/dist/react.js.map +1 -1
  52. package/dist/schema.cjs +78 -1
  53. package/dist/schema.cjs.map +1 -1
  54. package/dist/schema.d.cts +142 -0
  55. package/dist/schema.d.ts +142 -0
  56. package/dist/schema.js +78 -1
  57. package/dist/schema.js.map +1 -1
  58. package/dist/solid.cjs +13 -3
  59. package/dist/solid.cjs.map +1 -1
  60. package/dist/solid.d.cts +4 -0
  61. package/dist/solid.d.ts +4 -0
  62. package/dist/solid.js +13 -3
  63. package/dist/solid.js.map +1 -1
  64. package/dist/svelte.cjs +13 -3
  65. package/dist/svelte.cjs.map +1 -1
  66. package/dist/svelte.js +13 -3
  67. package/dist/svelte.js.map +1 -1
  68. package/dist/testing.cjs +136 -15
  69. package/dist/testing.cjs.map +1 -1
  70. package/dist/testing.d.cts +22 -0
  71. package/dist/testing.d.ts +22 -0
  72. package/dist/testing.js +136 -15
  73. package/dist/testing.js.map +1 -1
  74. package/dist/vue.cjs +13 -3
  75. package/dist/vue.cjs.map +1 -1
  76. package/dist/vue.js +13 -3
  77. package/dist/vue.js.map +1 -1
  78. package/dist/web-components.cjs +14 -4
  79. package/dist/web-components.cjs.map +1 -1
  80. package/dist/web-components.d.cts +4 -0
  81. package/dist/web-components.d.ts +4 -0
  82. package/dist/web-components.js +14 -4
  83. package/dist/web-components.js.map +1 -1
  84. package/package.json +59 -1
package/dist/react.d.cts CHANGED
@@ -1,11 +1,13 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
1
  import * as react from 'react';
3
2
  import { ReactNode, CSSProperties, RefObject } from 'react';
3
+ import * as react_jsx_runtime from 'react/jsx-runtime';
4
4
 
5
5
  /** Entry type label — determines default icon/color in UI */
6
6
  type FeatureType = "feature" | "improvement" | "fix" | "breaking";
7
7
  /** Priority level for announcements */
8
8
  type FeaturePriority = "critical" | "normal" | "low";
9
+ /** Motion preset for built-in component transitions */
10
+ type FeatureDropAnimationPreset = "none" | "subtle" | "normal" | "playful";
9
11
  /** Call-to-action for a feature entry */
10
12
  interface FeatureCTA {
11
13
  /** Button/link label */
@@ -50,6 +52,10 @@ interface UserContext {
50
52
  }
51
53
  /** Custom audience matcher function */
52
54
  type AudienceMatchFn = (audience: AudienceRule, userContext: UserContext) => boolean;
55
+ /** Feature flag resolver interface for gating announcement visibility */
56
+ interface FeatureFlagBridge {
57
+ isEnabled: (flagKey: string, userContext?: UserContext) => boolean;
58
+ }
53
59
  /** Dependency gates for progressive feature discovery */
54
60
  interface FeatureDependencies {
55
61
  /** Features the user must have seen before this one can surface */
@@ -130,8 +136,12 @@ interface FeatureEntry {
130
136
  sidebarKey?: string;
131
137
  /** Optional grouping category (e.g. "ai", "billing", "core") */
132
138
  category?: string;
139
+ /** Optional product scope (`"*"`, `"askverdict"`, etc.) for multi-product manifests */
140
+ product?: string;
133
141
  /** Optional URL to link to (e.g. docs page, changelog entry) */
134
142
  url?: string;
143
+ /** Optional feature flag key; requires a flag bridge to evaluate */
144
+ flagKey?: string;
135
145
  /** Entry type — determines default icon/color in UI components */
136
146
  type?: FeatureType;
137
147
  /** Priority level — critical entries get special treatment in UI */
@@ -280,6 +290,7 @@ interface FeatureDropTranslations {
280
290
  loadMore: string;
281
291
  share: string;
282
292
  skipToEntries: string;
293
+ newFeatureCount: (count: number) => string;
283
294
  stepOf: (current: number, total: number) => string;
284
295
  back: string;
285
296
  next: string;
@@ -302,20 +313,31 @@ interface FeatureDropProviderProps {
302
313
  storage: StorageAdapter;
303
314
  /** Optional analytics callbacks — pipe to your analytics provider */
304
315
  analytics?: AnalyticsCallbacks;
316
+ /** Optional error callback for monitoring caught component errors */
317
+ onError?: (error: unknown, context?: {
318
+ component?: string;
319
+ componentStack?: string;
320
+ }) => void;
305
321
  /** User context for audience targeting (plan, role, region, traits) */
306
322
  userContext?: UserContext;
307
323
  /** Custom audience matcher — overrides default AND/OR matching logic */
308
324
  matchAudience?: AudienceMatchFn;
309
325
  /** Current app version (semver) for version-pinned features */
310
326
  appVersion?: string;
327
+ /** Current product scope for multi-product manifests */
328
+ product?: string;
311
329
  /** Announcement throttling and session cooldown controls */
312
330
  throttle?: ThrottleOptions;
313
331
  /** Stable identifier for A/B variant assignment (e.g. userId) */
314
332
  variantKey?: string;
315
333
  /** Optional adoption analytics collector */
316
334
  collector?: AnalyticsCollector;
335
+ /** Feature flag bridge for evaluating `feature.flagKey` visibility */
336
+ flagBridge?: FeatureFlagBridge;
317
337
  /** Locale code for built-in component translations (e.g. "en", "fr", "es") */
318
338
  locale?: string;
339
+ /** Animation preset for built-in component transitions */
340
+ animation?: FeatureDropAnimationPreset;
319
341
  /** Custom translation overrides for built-in component strings */
320
342
  translations?: Partial<FeatureDropTranslations>;
321
343
  children: ReactNode;
@@ -326,7 +348,7 @@ interface FeatureDropProviderProps {
326
348
  * Wrap your app (or a subtree) with this provider to enable
327
349
  * `useFeatureDrop`, `useNewFeature`, `useNewCount`, and other hooks.
328
350
  */
329
- declare function FeatureDropProvider({ manifest, storage, analytics, userContext, matchAudience: matchAudienceFn, appVersion, throttle, variantKey, collector, locale, translations: translationOverrides, children, }: FeatureDropProviderProps): react_jsx_runtime.JSX.Element;
351
+ declare function FeatureDropProvider({ manifest, storage, analytics, onError, userContext, matchAudience: matchAudienceFn, appVersion, product, throttle, variantKey, collector, flagBridge, locale, animation, translations: translationOverrides, children, }: FeatureDropProviderProps): react_jsx_runtime.JSX.Element;
330
352
 
331
353
  interface FeatureDropTheme {
332
354
  colors: {
@@ -440,8 +462,17 @@ interface FeatureDropContextValue {
440
462
  activeSpotlightCount: number;
441
463
  /** Emit an adoption analytics event (collector-backed when configured) */
442
464
  trackAdoptionEvent: (event: AdoptionEventInput) => void;
465
+ /** Report a component/runtime error to provider-level monitoring hooks */
466
+ reportError: (error: unknown, context?: {
467
+ component?: string;
468
+ componentStack?: string;
469
+ }) => void;
443
470
  /** Active locale code used by built-in UI strings */
444
471
  locale: string;
472
+ /** Text direction derived from locale */
473
+ direction: "ltr" | "rtl";
474
+ /** Active motion preset for built-in component transitions */
475
+ animation: FeatureDropAnimationPreset;
445
476
  /** Resolved translation strings for built-in React components */
446
477
  translations: FeatureDropTranslations;
447
478
  /** Track a named usage event for trigger rules */
@@ -564,7 +595,6 @@ interface TourProps {
564
595
  persistence?: boolean;
565
596
  children?: (props: TourRenderProps) => ReactNode;
566
597
  }
567
- declare function Tour({ id, steps, onComplete, onSkip, onTourStarted, onTourCompleted, onTourSkipped, onStepViewed, overlay, showProgress, keyboard, persistence, children, }: TourProps): react_jsx_runtime.JSX.Element | null;
568
598
 
569
599
  interface TourSnapshot {
570
600
  isActive: boolean;
@@ -690,7 +720,6 @@ interface SurveyProps {
690
720
  style?: CSSProperties;
691
721
  children?: (props: SurveyRenderProps) => ReactNode;
692
722
  }
693
- declare function Survey({ id, type, prompt, featureId, questions, trigger, triggerRules, defaultOpen, showAskLater, submitLabel, askLaterLabel, closeLabel, title, metadata, onSubmit, onAskLater, onDismiss, className, style, children, }: SurveyProps): react_jsx_runtime.JSX.Element | null;
694
723
 
695
724
  interface UseSurveyResult {
696
725
  show: (options?: {
@@ -729,22 +758,6 @@ interface NewBadgeProps {
729
758
  /** Render prop for full customization */
730
759
  children?: (props: NewBadgeRenderProps) => ReactNode;
731
760
  }
732
- /**
733
- * Headless "New" badge component.
734
- *
735
- * Styled via CSS custom properties — zero CSS framework dependency:
736
- * - `--featuredrop-color` — text/dot color
737
- * - `--featuredrop-bg` — pill background
738
- * - `--featuredrop-font-size` — font size
739
- * - `--featuredrop-dot-size` — dot diameter
740
- * - `--featuredrop-glow` — dot glow color
741
- * - `--featuredrop-count-size` — count badge size
742
- * - `--featuredrop-count-color` — count text color
743
- * - `--featuredrop-count-bg` — count background
744
- *
745
- * Use `data-featuredrop` attribute for CSS selector styling.
746
- */
747
- declare function NewBadge({ variant, show, count, label, onDismiss, dismissOnClick, className, style, children, }: NewBadgeProps): react_jsx_runtime.JSX.Element | null;
748
761
 
749
762
  type ReactionCounts = Record<string, number>;
750
763
 
@@ -792,6 +805,8 @@ interface ChangelogWidgetProps {
792
805
  emptyLabel?: string;
793
806
  /** Max height for the feed area. Default: "400px" */
794
807
  maxHeight?: string;
808
+ /** Date display mode for entry metadata. Default: "absolute" */
809
+ dateFormat?: "absolute" | "relative";
795
810
  /** Analytics callbacks */
796
811
  analytics?: AnalyticsCallbacks;
797
812
  /** Additional CSS class for the container */
@@ -816,30 +831,6 @@ interface ChangelogWidgetProps {
816
831
  /** Callback fired when a reaction is persisted */
817
832
  onReaction?: (feature: FeatureEntry, reaction: string, counts: ReactionCounts) => void;
818
833
  }
819
- /**
820
- * Changelog widget — the #1 feature for feature discovery tools.
821
- *
822
- * Renders a trigger button with an unread count badge and a
823
- * slide-out panel, modal, or popover with the changelog feed.
824
- *
825
- * Styled via CSS custom properties — zero framework dependency.
826
- * Use `children` render prop for full headless control.
827
- *
828
- * @example
829
- * ```tsx
830
- * <ChangelogWidget variant="panel" />
831
- * ```
832
- *
833
- * @example Headless mode
834
- * ```tsx
835
- * <ChangelogWidget>
836
- * {({ isOpen, toggle, features, count }) => (
837
- * <MyCustomUI ... />
838
- * )}
839
- * </ChangelogWidget>
840
- * ```
841
- */
842
- declare function ChangelogWidget({ variant, title, triggerLabel, showCount, markAllLabel, showMarkAll, emptyLabel, maxHeight, analytics, className, style, theme, children, renderEntry, renderTrigger, showReactions, reactions, onReaction, }: ChangelogWidgetProps): react_jsx_runtime.JSX.Element;
843
834
 
844
835
  interface SpotlightRenderProps {
845
836
  /** The feature being spotlighted */
@@ -879,25 +870,6 @@ interface SpotlightProps {
879
870
  /** Render prop for full customization */
880
871
  children?: (props: SpotlightRenderProps) => ReactNode;
881
872
  }
882
- /**
883
- * Pulsing beacon that attaches to any DOM element to highlight a new feature.
884
- *
885
- * Clicking the beacon reveals a tooltip with feature info.
886
- * After dismissal, the beacon disappears permanently for this user.
887
- *
888
- * @example
889
- * ```tsx
890
- * const ref = useRef<HTMLButtonElement>(null);
891
- * <button ref={ref}>Analytics</button>
892
- * <Spotlight featureId="analytics-v2" targetRef={ref} />
893
- * ```
894
- *
895
- * @example With CSS selector
896
- * ```tsx
897
- * <Spotlight featureId="analytics-v2" targetSelector="#analytics-btn" />
898
- * ```
899
- */
900
- declare function Spotlight({ featureId, targetRef, targetSelector, placement, beaconSize, autoDismiss, autoDismissDelay, analytics, className, tooltipContent, children, }: SpotlightProps): react_jsx_runtime.JSX.Element | null;
901
873
 
902
874
  type BannerVariant = "info" | "success" | "warning" | "announcement";
903
875
  interface BannerRenderProps {
@@ -928,28 +900,6 @@ interface BannerProps {
928
900
  /** Render prop for full customization */
929
901
  children?: (props: BannerRenderProps) => ReactNode;
930
902
  }
931
- /**
932
- * Announcement banner for major feature launches or important notices.
933
- *
934
- * Shows at the top of the page (sticky/fixed) or inline in content.
935
- * Auto-expires using the same `showNewUntil` logic as badges.
936
- * Styled via CSS custom properties for each variant.
937
- *
938
- * @example
939
- * ```tsx
940
- * <Banner featureId="v2-launch" variant="announcement" />
941
- * ```
942
- *
943
- * @example Headless
944
- * ```tsx
945
- * <Banner featureId="v2-launch">
946
- * {({ feature, dismiss }) => (
947
- * <div>New: {feature?.label} <button onClick={dismiss}>x</button></div>
948
- * )}
949
- * </Banner>
950
- * ```
951
- */
952
- declare function Banner({ featureId, variant, dismissible, position, analytics, className, style, children, }: BannerProps): react_jsx_runtime.JSX.Element | null;
953
903
 
954
904
  interface ToastRenderProps {
955
905
  /** Features currently showing as toasts */
@@ -982,32 +932,6 @@ interface ToastProps {
982
932
  dismiss: () => void;
983
933
  }) => ReactNode;
984
934
  }
985
- /**
986
- * Toast notification component for feature announcements.
987
- *
988
- * Shows brief popups for new features. Auto-dismisses after a timeout.
989
- * Stacks multiple toasts with configurable max visible count.
990
- *
991
- * @example
992
- * ```tsx
993
- * <Toast position="bottom-right" maxVisible={3} />
994
- * ```
995
- *
996
- * @example Specific features
997
- * ```tsx
998
- * <Toast featureIds={["ai-journal", "analytics-v2"]} />
999
- * ```
1000
- *
1001
- * @example Headless
1002
- * ```tsx
1003
- * <Toast>
1004
- * {({ toasts, dismiss }) => toasts.map(t => (
1005
- * <div key={t.id}>{t.label} <button onClick={() => dismiss(t.id)}>x</button></div>
1006
- * ))}
1007
- * </Toast>
1008
- * ```
1009
- */
1010
- declare function Toast({ featureIds, maxVisible, autoDismissMs, position, analytics, className, style, children, renderToast, }: ToastProps): react_jsx_runtime.JSX.Element | null;
1011
935
 
1012
936
  type PaginationMode = "infinite-scroll" | "load-more" | "numbered";
1013
937
  interface ChangelogPageProps {
@@ -1019,6 +943,7 @@ interface ChangelogPageProps {
1019
943
  emptyState?: ReactNode;
1020
944
  renderEntry?: (entry: FeatureEntry, index: number) => ReactNode;
1021
945
  formatDate?: (date: string) => string;
946
+ dateFormat?: "absolute" | "relative";
1022
947
  basePath?: string;
1023
948
  manifest?: FeatureManifest;
1024
949
  className?: string;
@@ -1028,7 +953,6 @@ interface ChangelogPageProps {
1028
953
  reactions?: string[];
1029
954
  onReaction?: (entry: FeatureEntry, reaction: string, counts: ReactionCounts) => void;
1030
955
  }
1031
- declare function ChangelogPage({ pageSize, pagination, showFilters, showSearch, categories, emptyState, renderEntry, formatDate, basePath, manifest: manifestProp, className, style, theme, showReactions, reactions, onReaction, }: ChangelogPageProps): react_jsx_runtime.JSX.Element;
1032
956
 
1033
957
  interface ChecklistTask {
1034
958
  id: string;
@@ -1069,7 +993,6 @@ interface ChecklistProps {
1069
993
  actionHandlers?: Record<string, () => void>;
1070
994
  children?: (props: ChecklistRenderProps) => ReactNode;
1071
995
  }
1072
- declare function Checklist({ id, tasks, position, collapsible, showProgress, onComplete, dismissible, actionHandlers, children, }: ChecklistProps): react_jsx_runtime.JSX.Element | null;
1073
996
 
1074
997
  interface HotspotProps {
1075
998
  id: string;
@@ -1082,8 +1005,6 @@ interface TooltipGroupProps {
1082
1005
  maxVisible?: number;
1083
1006
  children: ReactNode;
1084
1007
  }
1085
- declare function TooltipGroup({ maxVisible, children }: TooltipGroupProps): react_jsx_runtime.JSX.Element;
1086
- declare function Hotspot({ id, target, type, frequency, children, }: HotspotProps): react_jsx_runtime.JSX.Element | null;
1087
1008
 
1088
1009
  type FeedbackEmoji = "thumbs-up" | "thumbs-down" | "heart" | "thinking" | "fire";
1089
1010
  interface FeedbackPayload {
@@ -1130,7 +1051,6 @@ interface FeedbackWidgetProps {
1130
1051
  style?: CSSProperties;
1131
1052
  children?: (props: FeedbackWidgetRenderProps) => ReactNode;
1132
1053
  }
1133
- declare function FeedbackWidget({ featureId, onSubmit, showScreenshot, showEmoji, rateLimit, categories, metadata, screenshotCapture, triggerLabel, title, className, style, children, }: FeedbackWidgetProps): react_jsx_runtime.JSX.Element;
1134
1054
 
1135
1055
  interface AnnouncementSlide {
1136
1056
  id?: string;
@@ -1170,7 +1090,6 @@ interface AnnouncementModalProps {
1170
1090
  style?: CSSProperties;
1171
1091
  children?: (props: AnnouncementModalRenderProps) => ReactNode;
1172
1092
  }
1173
- declare function AnnouncementModal({ id, featureId, feature, trigger, defaultOpen, slides, frequency, dismissible, mobileBreakpoint, onOpen, onDismiss, onPrimaryCtaClick, onSecondaryCtaClick, className, style, children, }: AnnouncementModalProps): react_jsx_runtime.JSX.Element | null;
1174
1093
 
1175
1094
  interface SpotlightChainStep {
1176
1095
  id?: string;
@@ -1198,7 +1117,6 @@ interface SpotlightChainProps {
1198
1117
  onSkip?: (step: SpotlightChainStep | null, index: number) => void;
1199
1118
  children?: (props: SpotlightChainRenderProps) => ReactNode;
1200
1119
  }
1201
- declare function SpotlightChain({ steps, startOnMount, autoAdvance, autoAdvanceMs, onComplete, onStepViewed, onSkip, children, }: SpotlightChainProps): react_jsx_runtime.JSX.Element | null;
1202
1120
 
1203
1121
  interface FeatureRequestRecord {
1204
1122
  id: string;
@@ -1231,7 +1149,6 @@ interface FeatureRequestButtonProps {
1231
1149
  style?: CSSProperties;
1232
1150
  children?: (props: FeatureRequestButtonRenderProps) => ReactNode;
1233
1151
  }
1234
- declare function FeatureRequestButton({ featureId, requestId, requestTitle, label, onVote, className, style, children, }: FeatureRequestButtonProps): react_jsx_runtime.JSX.Element;
1235
1152
 
1236
1153
  interface FeatureRequestPayload extends FeatureRequestRecord {
1237
1154
  metadata?: Record<string, unknown>;
@@ -1261,6 +1178,36 @@ interface FeatureRequestFormProps {
1261
1178
  style?: CSSProperties;
1262
1179
  children?: (props: FeatureRequestFormRenderProps) => ReactNode;
1263
1180
  }
1264
- declare function FeatureRequestForm({ onSubmit, onWebhook, categories, defaultSort, metadata, className, style, children, }: FeatureRequestFormProps): react_jsx_runtime.JSX.Element;
1181
+
1182
+ declare const NewBadge: react.ComponentType<NewBadgeProps>;
1183
+
1184
+ declare const ChangelogWidget: react.ComponentType<ChangelogWidgetProps>;
1185
+
1186
+ declare const Spotlight: react.ComponentType<SpotlightProps>;
1187
+
1188
+ declare const Banner: react.ComponentType<BannerProps>;
1189
+
1190
+ declare const Toast: react.ComponentType<ToastProps>;
1191
+
1192
+ declare const ChangelogPage: react.ComponentType<ChangelogPageProps>;
1193
+
1194
+ declare const Tour: react.ComponentType<TourProps>;
1195
+
1196
+ declare const Checklist: react.ComponentType<ChecklistProps>;
1197
+
1198
+ declare const Hotspot: react.ComponentType<HotspotProps>;
1199
+ declare const TooltipGroup: react.ComponentType<TooltipGroupProps>;
1200
+
1201
+ declare const FeedbackWidget: react.ComponentType<FeedbackWidgetProps>;
1202
+
1203
+ declare const AnnouncementModal: react.ComponentType<AnnouncementModalProps>;
1204
+
1205
+ declare const SpotlightChain: react.ComponentType<SpotlightChainProps>;
1206
+
1207
+ declare const Survey: react.ComponentType<SurveyProps>;
1208
+
1209
+ declare const FeatureRequestButton: react.ComponentType<FeatureRequestButtonProps>;
1210
+
1211
+ declare const FeatureRequestForm: react.ComponentType<FeatureRequestFormProps>;
1265
1212
 
1266
1213
  export { AnnouncementModal, type AnnouncementModalProps, type AnnouncementModalRenderProps, type AnnouncementSlide, Banner, type BannerProps, type BannerRenderProps, type BannerVariant, type ChangelogEntryRenderProps, ChangelogPage, type ChangelogPageProps, ChangelogWidget, type ChangelogWidgetProps, type ChangelogWidgetRenderProps, Checklist, type ChecklistProps, type ChecklistRenderProps, type ChecklistTask, FeatureDropContext, type FeatureDropContextValue, FeatureDropProvider, type FeatureDropProviderProps, FeatureRequestButton, type FeatureRequestButtonProps, type FeatureRequestButtonRenderProps, FeatureRequestForm, type FeatureRequestFormProps, type FeatureRequestFormRenderProps, type FeatureRequestPayload, type FeedbackEmoji, type FeedbackPayload, type FeedbackRateLimit, FeedbackWidget, type FeedbackWidgetProps, type FeedbackWidgetRenderProps, Hotspot, type HotspotProps, NewBadge, type NewBadgeProps, type NewBadgeRenderProps, type PaginationMode, Spotlight, SpotlightChain, type SpotlightChainProps, type SpotlightChainRenderProps, type SpotlightChainStep, type SpotlightProps, type SpotlightRenderProps, Survey, type SurveyPayload, type SurveyProps, type SurveyQuestion, type SurveyQuestionType, type SurveyRenderProps, type SurveyTriggerRules, type SurveyType, ThemeProvider, type ThemeProviderProps, Toast, type ToastProps, type ToastRenderProps, TooltipGroup, type TooltipGroupProps, Tour, type TourProps, type TourRenderProps, type TourSequenceItem, type TourStep, type UseChecklistResult, type UseNewFeatureResult, type UseSurveyResult, type UseTabNotificationOptions, type UseTourResult, type UseTourSequencerResult, useAdoptionAnalytics, useChecklist, useFeatureDrop, useNewCount, useNewFeature, useSurvey, useTabNotification, useTour, useTourSequencer };