@olwiba/ui 0.2.18 → 0.2.20

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.
package/dist/index.d.ts CHANGED
@@ -579,11 +579,60 @@ declare const marketingSectionSpacing: {
579
579
  };
580
580
  type MarketingSectionSpacing = keyof typeof marketingSectionSpacing;
581
581
 
582
+ /**
583
+ * How a marketing section sits on the page.
584
+ *
585
+ * Every section used to hard-code the same island — an opaque `bg-card` panel
586
+ * with a border and a radius — which is right for a page that is only its
587
+ * sections, and wrong for one with an ambient background behind it: a run of
588
+ * opaque slabs blocks the thing that makes the page feel alive.
589
+ *
590
+ * - `'card'` — the opaque island. Contained, high contrast, reads as a panel.
591
+ * - `'soft'` — translucent and blurred. Still a shape, but the page behind it
592
+ * shows through, which is the treatment that works over an aura or gradient.
593
+ * - `'plain'` — no panel at all. The content sits directly on the page.
594
+ *
595
+ * `'card'` stays the default so nothing changes for a page that never sets it.
596
+ */
597
+ type MarketingSurface = 'card' | 'soft' | 'plain';
598
+ /**
599
+ * Sets the default surface for every marketing section beneath it.
600
+ *
601
+ * Page-level rather than per-section because "this page has an ambient
602
+ * background, so its sections should not be opaque" is one decision, and making
603
+ * it once beats repeating it on every section and having a new section silently
604
+ * default back to an island.
605
+ */
606
+ declare function MarketingSurfaceProvider({ surface, children, }: {
607
+ surface: MarketingSurface | undefined;
608
+ children: React.ReactNode;
609
+ }): react_jsx_runtime.JSX.Element;
610
+ declare function useMarketingSurface(): MarketingSurface | undefined;
611
+ /**
612
+ * The section wrapper's classes for the resolved surface and UI mode.
613
+ *
614
+ * `overflow-hidden` is unconditional on every surface, including `'plain'` —
615
+ * the marquee and carousel sections clip their own content against it, so
616
+ * dropping it with the panel would let them bleed across the page.
617
+ *
618
+ * Resolution order is prop, then `MarketingSurfaceProvider`, then `'card'`.
619
+ * Both context reads happen every render rather than short-circuiting on the
620
+ * prop: `modeProp ?? useHook()` skips a hook call and changes hook order
621
+ * between renders, which is the exact bug @olwiba/cn 0.1.28 and 0.1.30 fixed in
622
+ * `Toaster` and `Input`.
623
+ *
624
+ * Only `smooth`, `playful` and unset are branched on. olwibaCN's source has a
625
+ * fourth `glass` variant, but the published `UIVariant` type does not carry it
626
+ * yet, so a branch for it does not typecheck here.
627
+ */
628
+ declare function useSectionSurface(override?: MarketingSurface): string;
629
+
582
630
  interface HeroSectionProps {
583
631
  heading: string;
584
632
  badge?: string;
585
633
  description: string;
586
- primaryCta: {
634
+ /** Ignored when `primarySlot` is given. */
635
+ primaryCta?: {
587
636
  label: string;
588
637
  href: string;
589
638
  };
@@ -591,6 +640,18 @@ interface HeroSectionProps {
591
640
  label: string;
592
641
  href: string;
593
642
  };
643
+ /**
644
+ * Replaces the primary button with your own control — a search field, a
645
+ * short form, an email capture.
646
+ *
647
+ * A hero whose first action *is* the product converts better than one that
648
+ * links to a page where the product starts. `secondaryCta` still renders
649
+ * beside it, so "…or see pricing" survives.
650
+ *
651
+ * Rendered full-width above the secondary CTA on small screens, since a
652
+ * field sharing a row with a button gets squeezed to nothing on a phone.
653
+ */
654
+ primarySlot?: React.ReactNode;
594
655
  heroImage?: React.ReactNode;
595
656
  media?: 'image' | 'phone' | 'none';
596
657
  phoneSize?: 'sm' | 'md' | 'lg';
@@ -598,7 +659,7 @@ interface HeroSectionProps {
598
659
  socialProofText?: string;
599
660
  renderLink?: AppShellRenderLink;
600
661
  }
601
- declare function HeroSection({ heading, badge, description, primaryCta, secondaryCta, heroImage, media, phoneSize, avatarUrls, socialProofText, renderLink, }: HeroSectionProps): react_jsx_runtime.JSX.Element;
662
+ declare function HeroSection({ heading, badge, description, primaryCta, secondaryCta, primarySlot, heroImage, media, phoneSize, avatarUrls, socialProofText, renderLink, }: HeroSectionProps): react_jsx_runtime.JSX.Element;
602
663
 
603
664
  interface FeaturesSectionProps {
604
665
  title?: string;
@@ -612,8 +673,10 @@ interface FeaturesSectionProps {
612
673
  }>;
613
674
  /** How the feature cards are arranged. @default 'grid' */
614
675
  layout?: 'grid' | 'carousel';
676
+ /** How the section sits on the page. @default 'card' */
677
+ surface?: MarketingSurface;
615
678
  }
616
- declare function FeaturesSection({ title, description, badge, features, layout, }: FeaturesSectionProps): react_jsx_runtime.JSX.Element;
679
+ declare function FeaturesSection({ title, description, badge, features, layout, surface, }: FeaturesSectionProps): react_jsx_runtime.JSX.Element;
617
680
 
618
681
  interface GroupedFeatureGroup {
619
682
  label: string;
@@ -629,8 +692,10 @@ interface GroupedFeaturesSectionProps {
629
692
  title?: string;
630
693
  description?: string;
631
694
  groups: GroupedFeatureGroup[];
695
+ /** How the section sits on the page. @default 'card' */
696
+ surface?: MarketingSurface;
632
697
  }
633
- declare function GroupedFeaturesSection({ badge, title, description, groups, }: GroupedFeaturesSectionProps): react_jsx_runtime.JSX.Element;
698
+ declare function GroupedFeaturesSection({ badge, title, description, groups, surface, }: GroupedFeaturesSectionProps): react_jsx_runtime.JSX.Element;
634
699
 
635
700
  interface StepItem {
636
701
  emoji?: string;
@@ -651,8 +716,10 @@ interface StepsSectionProps {
651
716
  variant?: 'default' | 'timeline';
652
717
  /** Timeline only — step groups with optional interstitial content; overrides `steps`. Numbering continues across groups. */
653
718
  groups?: StepGroup[];
719
+ /** How the section sits on the page. @default 'card' */
720
+ surface?: MarketingSurface;
654
721
  }
655
- declare function StepsSection({ badge, title, description, steps, variant, groups, }: StepsSectionProps): react_jsx_runtime.JSX.Element;
722
+ declare function StepsSection({ badge, title, description, steps, variant, groups, surface, }: StepsSectionProps): react_jsx_runtime.JSX.Element;
656
723
 
657
724
  interface TechStackItem {
658
725
  icon: LucideIcon;
@@ -665,8 +732,10 @@ interface TechStackSectionProps {
665
732
  title?: string;
666
733
  description?: string;
667
734
  items: TechStackItem[];
735
+ /** How the section sits on the page. @default 'card' */
736
+ surface?: MarketingSurface;
668
737
  }
669
- declare function TechStackSection({ badge, title, description, items, }: TechStackSectionProps): react_jsx_runtime.JSX.Element;
738
+ declare function TechStackSection({ badge, title, description, items, surface, }: TechStackSectionProps): react_jsx_runtime.JSX.Element;
670
739
 
671
740
  interface FeatureMarqueeItem {
672
741
  icon: LucideIcon;
@@ -683,8 +752,10 @@ interface FeatureMarqueeSectionProps {
683
752
  rows: FeatureMarqueeRow[];
684
753
  speed?: 'slow' | 'normal' | 'fast';
685
754
  pauseOnHover?: boolean;
755
+ /** How the section sits on the page. @default 'card' */
756
+ surface?: MarketingSurface;
686
757
  }
687
- declare function FeatureMarqueeSection({ badge, title, description, rows, speed, pauseOnHover, }: FeatureMarqueeSectionProps): react_jsx_runtime.JSX.Element;
758
+ declare function FeatureMarqueeSection({ badge, title, description, rows, speed, pauseOnHover, surface, }: FeatureMarqueeSectionProps): react_jsx_runtime.JSX.Element;
688
759
 
689
760
  interface CtaSectionProps {
690
761
  heading: string;
@@ -708,6 +779,8 @@ interface CtaSectionProps {
708
779
  /** (showcase) Watermark icon rendered behind the content. @default <Rocket /> */
709
780
  icon?: React.ReactNode;
710
781
  renderLink?: AppShellRenderLink;
782
+ /** How the section sits on the page. @default 'card' */
783
+ surface?: MarketingSurface;
711
784
  }
712
785
  declare function CtaSection(props: CtaSectionProps): react_jsx_runtime.JSX.Element;
713
786
 
@@ -877,8 +950,16 @@ interface PricingSectionProps {
877
950
  * mode.
878
951
  */
879
952
  priceEffect?: PricingCardProps['priceEffect'];
953
+ /**
954
+ * How the section sits on the page. @default 'card'
955
+ *
956
+ * Named `surface` rather than following the `mode` convention the other
957
+ * sections use, because `mode` on this component already means
958
+ * subscription-vs-one-time.
959
+ */
960
+ surface?: MarketingSurface;
880
961
  }
881
- declare function PricingSection({ title, description, badge, plans, saveBadge, isAuthenticated, renderLink, footnote, mode, foundingDeadline, currency, highlightedBadgeLabel, renderPlanFooter, cadences, defaultCadence, onSelectPlan, pendingPlanName, priceEffect, }: PricingSectionProps): react_jsx_runtime.JSX.Element;
962
+ declare function PricingSection({ title, description, badge, plans, saveBadge, isAuthenticated, renderLink, footnote, mode, foundingDeadline, currency, highlightedBadgeLabel, renderPlanFooter, cadences, defaultCadence, onSelectPlan, pendingPlanName, priceEffect, surface, }: PricingSectionProps): react_jsx_runtime.JSX.Element;
882
963
 
883
964
  interface TestimonialsSectionProps {
884
965
  title?: string;
@@ -893,8 +974,10 @@ interface TestimonialsSectionProps {
893
974
  initials?: string;
894
975
  rating?: number;
895
976
  }>;
977
+ /** How the section sits on the page. @default 'card' */
978
+ surface?: MarketingSurface;
896
979
  }
897
- declare function TestimonialsSection({ title, description, badge, testimonials, }: TestimonialsSectionProps): react_jsx_runtime.JSX.Element;
980
+ declare function TestimonialsSection({ title, description, badge, testimonials, surface, }: TestimonialsSectionProps): react_jsx_runtime.JSX.Element;
898
981
 
899
982
  interface TeamMember {
900
983
  name: string;
@@ -913,8 +996,10 @@ interface TeamSectionProps {
913
996
  badge?: string;
914
997
  title?: string;
915
998
  description?: string;
999
+ /** How the section sits on the page. @default 'card' */
1000
+ surface?: MarketingSurface;
916
1001
  }
917
- declare function TeamSection({ members, badge, title, description, }: TeamSectionProps): react_jsx_runtime.JSX.Element;
1002
+ declare function TeamSection({ members, badge, title, description, surface, }: TeamSectionProps): react_jsx_runtime.JSX.Element;
918
1003
 
919
1004
  interface FaqSectionProps {
920
1005
  title?: string;
@@ -924,8 +1009,10 @@ interface FaqSectionProps {
924
1009
  question: string;
925
1010
  answer: string;
926
1011
  }>;
1012
+ /** How the section sits on the page. @default 'card' */
1013
+ surface?: MarketingSurface;
927
1014
  }
928
- declare function FaqSection({ title, description, badge, items, }: FaqSectionProps): react_jsx_runtime.JSX.Element;
1015
+ declare function FaqSection({ title, description, badge, items, surface, }: FaqSectionProps): react_jsx_runtime.JSX.Element;
929
1016
 
930
1017
  interface StatsSectionProps {
931
1018
  title?: string;
@@ -936,8 +1023,10 @@ interface StatsSectionProps {
936
1023
  label: string;
937
1024
  description?: string;
938
1025
  }>;
1026
+ /** How the section sits on the page. @default 'card' */
1027
+ surface?: MarketingSurface;
939
1028
  }
940
- declare function StatsSection({ title, description, badge, stats, }: StatsSectionProps): react_jsx_runtime.JSX.Element;
1029
+ declare function StatsSection({ title, description, badge, stats, surface, }: StatsSectionProps): react_jsx_runtime.JSX.Element;
941
1030
 
942
1031
  interface NewsletterSectionProps {
943
1032
  badge?: string;
@@ -950,8 +1039,10 @@ interface NewsletterSectionProps {
950
1039
  successTitle?: string;
951
1040
  successDescription?: string;
952
1041
  onSubscribe?: (email: string) => void | Promise<void>;
1042
+ /** How the section sits on the page. @default 'card' */
1043
+ surface?: MarketingSurface;
953
1044
  }
954
- declare function NewsletterSection({ badge, title, description, placeholder, submitLabel, privacyHref, privacyLabel, successTitle, successDescription, onSubscribe, }?: NewsletterSectionProps): react_jsx_runtime.JSX.Element;
1045
+ declare function NewsletterSection({ badge, title, description, placeholder, submitLabel, privacyHref, privacyLabel, successTitle, successDescription, onSubscribe, surface, }?: NewsletterSectionProps): react_jsx_runtime.JSX.Element;
955
1046
 
956
1047
  type ContactInfoItem = {
957
1048
  label: string;
@@ -968,8 +1059,10 @@ interface ContactSectionProps {
968
1059
  successDescription?: string;
969
1060
  sendAnotherLabel?: string;
970
1061
  onSubmit?: (event: React.FormEvent<HTMLFormElement>) => void | Promise<void>;
1062
+ /** How the section sits on the page. @default 'card' */
1063
+ surface?: MarketingSurface;
971
1064
  }
972
- declare function ContactSection({ badge, title, description, contactInfo, privacyHref, successTitle, successDescription, sendAnotherLabel, onSubmit, }?: ContactSectionProps): react_jsx_runtime.JSX.Element;
1065
+ declare function ContactSection({ badge, title, description, contactInfo, privacyHref, successTitle, successDescription, sendAnotherLabel, onSubmit, surface, }?: ContactSectionProps): react_jsx_runtime.JSX.Element;
973
1066
 
974
1067
  interface ComparisonColumn {
975
1068
  label: string;
@@ -983,8 +1076,10 @@ interface ComparisonSectionProps {
983
1076
  title?: string;
984
1077
  description?: string;
985
1078
  columns: ComparisonColumn[];
1079
+ /** How the section sits on the page. @default 'card' */
1080
+ surface?: MarketingSurface;
986
1081
  }
987
- declare function ComparisonSection({ badge, title, description, columns, }: ComparisonSectionProps): react_jsx_runtime.JSX.Element;
1082
+ declare function ComparisonSection({ badge, title, description, columns, surface, }: ComparisonSectionProps): react_jsx_runtime.JSX.Element;
988
1083
 
989
1084
  interface QualificationColumn {
990
1085
  heading: string;
@@ -996,8 +1091,10 @@ interface QualificationSectionProps {
996
1091
  title?: string;
997
1092
  description?: string;
998
1093
  columns: [QualificationColumn, QualificationColumn];
1094
+ /** How the section sits on the page. @default 'card' */
1095
+ surface?: MarketingSurface;
999
1096
  }
1000
- declare function QualificationSection({ badge, title, description, columns, }: QualificationSectionProps): react_jsx_runtime.JSX.Element;
1097
+ declare function QualificationSection({ badge, title, description, columns, surface, }: QualificationSectionProps): react_jsx_runtime.JSX.Element;
1001
1098
 
1002
1099
  interface NavbarProps {
1003
1100
  brand: {
@@ -1998,4 +2095,4 @@ interface UsePaginationReturn {
1998
2095
  }
1999
2096
  declare function usePagination(total: number, pageSize: number): UsePaginationReturn;
2000
2097
 
2001
- export { ActivityFeed, type ActivityFeedItem, type ActivityFeedProps, AnimatedPill, type AnimatedPillProps, AnimatedSwap, type AnimatedSwapEffect, type AnimatedSwapProps, type AnimatedSwapSpec, AppContent, type AppContentProps, AppGrid, AppGridCell, type AppGridCellProps, type AppGridColumns, type AppGridProps, type AppNavItem, AppPageHero, type AppPageHeroProps, AppScreen, AppShell, type AppShellAction, type AppShellBrand, type AppShellProps, type AppShellRenderLink, type AppShellUser, type AuthFormProps, AuthSection, type AuthSectionProps, Badge, type BadgeProps, type BillingInvoice, BillingPanel, type BillingPanelProps, type BillingPaymentMethod, type BillingUsageMetric, BrandColorSwitchMinimal, Button, type ButtonProps, Card, type CardProps, Carousel, type CarouselProps, ChangelogCard, type ChangelogCardProps, type ChangelogHighlight, ChangelogList, type ChangelogListProps, type ChangelogReleaseType, Chart, type ChartProps, type ChartSeries, Checkbox, type CheckboxProps, CommandMenu, type CommandMenuGroup, type CommandMenuItem, type CommandMenuProps, type ComparisonColumn, ComparisonSection, type ComparisonSectionProps, ConfirmDialog, type ConfirmDialogProps, type ConfirmOptions, type ContactInfoItem, ContactSection, type ContactSectionProps, ContextMenu, type ContextMenuDef, type ContextMenuProps, CountUp, type CountUpProps, CountdownTimer, type CountdownTimerProps, CtaSection, type CtaSectionProps, DataTable, type DataTableProps, DataView, type DataViewProps, DevBanner, type DevBannerProps, Dock, type DockItem, type DockProps, EmptyState, type EmptyStateProps, ErrorPage, type ErrorPageProps, FadeIn, type FadeInProps, FaqSection, type FaqSectionProps, FeatureCard, type FeatureCardProps, type FeatureMarqueeItem, type FeatureMarqueeRow, FeatureMarqueeSection, type FeatureMarqueeSectionProps, FeaturesSection, type FeaturesSectionProps, FileUpload, type FileUploadEntry, type FileUploadProps, FlowBracket, type FlowBracketProps, FlowConnector, type FlowConnectorProps, Footer, type FooterProps, FullPageSpinner, GlassCard, type GlassCardProps, Grid, GridItem, type GridItemProps, type GridProps, type GroupedFeatureGroup, GroupedFeaturesSection, type GroupedFeaturesSectionProps, HeroSection, type HeroSectionProps, type Hotkey, ImageCard, type ImageCardProps, Input, type InputProps, LogoStrip, type LogoStripProps, type MarketingSectionSpacing, MediaCard, type MediaCardProps, ModeSwitchMinimal, Navbar, type NavbarProps, NewsletterSection, type NewsletterSectionProps, type NotificationItem, NotificationToast, type NotificationToastProps, NotificationsPopover, type NotificationsPopoverProps, type NotifyAction, type NotifyOptions, OlwibaUIProvider, type OlwibaUIProviderProps, type OnboardingStep, OnboardingWizard, type OnboardingWizardProps, Overlay, type OverlayProps, type OverlayVariant, PageHeader, type PageHeaderBackButton, type PageHeaderBreadcrumb, type PageHeaderProps, PageTransition, type PageTransitionProps, PhoneFrame, type PhoneFrameProps, type PostAuthor, PostCard, type PostCardProps, PostList, type PostListProps, PricingCard, type PricingCardProps, type PricingFeature, type PricingPlan, PricingSection, type PricingSectionProps, PublicPageFrame, type PublicPageFrameProps, type QualificationColumn, QualificationSection, type QualificationSectionProps, RegisterHotkeys, RootErrorFallback, Section, type SectionProps, SectionTitle, type SectionTitleProps, SettingsSection, type SettingsSectionProps, Sortable, type SortableProps, Spotlight, type SpotlightGroup, type SpotlightItem, type SpotlightProps, Stack, type StackProps, StaggerChildren, type StaggerChildrenProps, StatCard, type StatCardProps, StatsSection, type StatsSectionProps, type StepGroup, type StepItem, StepsSection, type StepsSectionProps, Suspensed, Switch, type SwitchProps, type TeamMember, type TeamMemberRecord, TeamMembersPanel, type TeamMembersPanelProps, TeamSection, type TeamSectionProps, type TechStackItem, TechStackSection, type TechStackSectionProps, TestimonialCard, type TestimonialCardProps, TestimonialsSection, type TestimonialsSectionProps, Textarea, type TextareaProps, ThemeColorUpdater, ThemeSwitchMinimal, type UIMode, Underlay, type UnderlayProps, type UnderlayVariant, UpdateBanner, type UpdateBannerProps, type UpgradeComparisonRow, UpgradePrompt, type UpgradePromptProps, type UseConfirmReturn, type UseControlledOpenReturn, type UsePaginationReturn, type UseViewModeReturn, VersionBanner, type ViewMode, ViewToggle, type ViewToggleProps, cn, marketingSectionSpacing, notify, useConfirm, useControlledOpen, useCopyToClipboard, useDebounce, useIntersectionObserver, useLocalStorage, useMediaQuery, useMounted, useOlwibaUI, usePagination, useScrolledPast, useUIMode, useViewMode };
2098
+ export { ActivityFeed, type ActivityFeedItem, type ActivityFeedProps, AnimatedPill, type AnimatedPillProps, AnimatedSwap, type AnimatedSwapEffect, type AnimatedSwapProps, type AnimatedSwapSpec, AppContent, type AppContentProps, AppGrid, AppGridCell, type AppGridCellProps, type AppGridColumns, type AppGridProps, type AppNavItem, AppPageHero, type AppPageHeroProps, AppScreen, AppShell, type AppShellAction, type AppShellBrand, type AppShellProps, type AppShellRenderLink, type AppShellUser, type AuthFormProps, AuthSection, type AuthSectionProps, Badge, type BadgeProps, type BillingInvoice, BillingPanel, type BillingPanelProps, type BillingPaymentMethod, type BillingUsageMetric, BrandColorSwitchMinimal, Button, type ButtonProps, Card, type CardProps, Carousel, type CarouselProps, ChangelogCard, type ChangelogCardProps, type ChangelogHighlight, ChangelogList, type ChangelogListProps, type ChangelogReleaseType, Chart, type ChartProps, type ChartSeries, Checkbox, type CheckboxProps, CommandMenu, type CommandMenuGroup, type CommandMenuItem, type CommandMenuProps, type ComparisonColumn, ComparisonSection, type ComparisonSectionProps, ConfirmDialog, type ConfirmDialogProps, type ConfirmOptions, type ContactInfoItem, ContactSection, type ContactSectionProps, ContextMenu, type ContextMenuDef, type ContextMenuProps, CountUp, type CountUpProps, CountdownTimer, type CountdownTimerProps, CtaSection, type CtaSectionProps, DataTable, type DataTableProps, DataView, type DataViewProps, DevBanner, type DevBannerProps, Dock, type DockItem, type DockProps, EmptyState, type EmptyStateProps, ErrorPage, type ErrorPageProps, FadeIn, type FadeInProps, FaqSection, type FaqSectionProps, FeatureCard, type FeatureCardProps, type FeatureMarqueeItem, type FeatureMarqueeRow, FeatureMarqueeSection, type FeatureMarqueeSectionProps, FeaturesSection, type FeaturesSectionProps, FileUpload, type FileUploadEntry, type FileUploadProps, FlowBracket, type FlowBracketProps, FlowConnector, type FlowConnectorProps, Footer, type FooterProps, FullPageSpinner, GlassCard, type GlassCardProps, Grid, GridItem, type GridItemProps, type GridProps, type GroupedFeatureGroup, GroupedFeaturesSection, type GroupedFeaturesSectionProps, HeroSection, type HeroSectionProps, type Hotkey, ImageCard, type ImageCardProps, Input, type InputProps, LogoStrip, type LogoStripProps, type MarketingSectionSpacing, type MarketingSurface, MarketingSurfaceProvider, MediaCard, type MediaCardProps, ModeSwitchMinimal, Navbar, type NavbarProps, NewsletterSection, type NewsletterSectionProps, type NotificationItem, NotificationToast, type NotificationToastProps, NotificationsPopover, type NotificationsPopoverProps, type NotifyAction, type NotifyOptions, OlwibaUIProvider, type OlwibaUIProviderProps, type OnboardingStep, OnboardingWizard, type OnboardingWizardProps, Overlay, type OverlayProps, type OverlayVariant, PageHeader, type PageHeaderBackButton, type PageHeaderBreadcrumb, type PageHeaderProps, PageTransition, type PageTransitionProps, PhoneFrame, type PhoneFrameProps, type PostAuthor, PostCard, type PostCardProps, PostList, type PostListProps, PricingCard, type PricingCardProps, type PricingFeature, type PricingPlan, PricingSection, type PricingSectionProps, PublicPageFrame, type PublicPageFrameProps, type QualificationColumn, QualificationSection, type QualificationSectionProps, RegisterHotkeys, RootErrorFallback, Section, type SectionProps, SectionTitle, type SectionTitleProps, SettingsSection, type SettingsSectionProps, Sortable, type SortableProps, Spotlight, type SpotlightGroup, type SpotlightItem, type SpotlightProps, Stack, type StackProps, StaggerChildren, type StaggerChildrenProps, StatCard, type StatCardProps, StatsSection, type StatsSectionProps, type StepGroup, type StepItem, StepsSection, type StepsSectionProps, Suspensed, Switch, type SwitchProps, type TeamMember, type TeamMemberRecord, TeamMembersPanel, type TeamMembersPanelProps, TeamSection, type TeamSectionProps, type TechStackItem, TechStackSection, type TechStackSectionProps, TestimonialCard, type TestimonialCardProps, TestimonialsSection, type TestimonialsSectionProps, Textarea, type TextareaProps, ThemeColorUpdater, ThemeSwitchMinimal, type UIMode, Underlay, type UnderlayProps, type UnderlayVariant, UpdateBanner, type UpdateBannerProps, type UpgradeComparisonRow, UpgradePrompt, type UpgradePromptProps, type UseConfirmReturn, type UseControlledOpenReturn, type UsePaginationReturn, type UseViewModeReturn, VersionBanner, type ViewMode, ViewToggle, type ViewToggleProps, cn, marketingSectionSpacing, notify, useConfirm, useControlledOpen, useCopyToClipboard, useDebounce, useIntersectionObserver, useLocalStorage, useMarketingSurface, useMediaQuery, useMounted, useOlwibaUI, usePagination, useScrolledPast, useSectionSurface, useUIMode, useViewMode };