@olwiba/ui 0.2.19 → 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,6 +579,54 @@ 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;
@@ -625,8 +673,10 @@ interface FeaturesSectionProps {
625
673
  }>;
626
674
  /** How the feature cards are arranged. @default 'grid' */
627
675
  layout?: 'grid' | 'carousel';
676
+ /** How the section sits on the page. @default 'card' */
677
+ surface?: MarketingSurface;
628
678
  }
629
- 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;
630
680
 
631
681
  interface GroupedFeatureGroup {
632
682
  label: string;
@@ -642,8 +692,10 @@ interface GroupedFeaturesSectionProps {
642
692
  title?: string;
643
693
  description?: string;
644
694
  groups: GroupedFeatureGroup[];
695
+ /** How the section sits on the page. @default 'card' */
696
+ surface?: MarketingSurface;
645
697
  }
646
- 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;
647
699
 
648
700
  interface StepItem {
649
701
  emoji?: string;
@@ -664,8 +716,10 @@ interface StepsSectionProps {
664
716
  variant?: 'default' | 'timeline';
665
717
  /** Timeline only — step groups with optional interstitial content; overrides `steps`. Numbering continues across groups. */
666
718
  groups?: StepGroup[];
719
+ /** How the section sits on the page. @default 'card' */
720
+ surface?: MarketingSurface;
667
721
  }
668
- 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;
669
723
 
670
724
  interface TechStackItem {
671
725
  icon: LucideIcon;
@@ -678,8 +732,10 @@ interface TechStackSectionProps {
678
732
  title?: string;
679
733
  description?: string;
680
734
  items: TechStackItem[];
735
+ /** How the section sits on the page. @default 'card' */
736
+ surface?: MarketingSurface;
681
737
  }
682
- 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;
683
739
 
684
740
  interface FeatureMarqueeItem {
685
741
  icon: LucideIcon;
@@ -696,8 +752,10 @@ interface FeatureMarqueeSectionProps {
696
752
  rows: FeatureMarqueeRow[];
697
753
  speed?: 'slow' | 'normal' | 'fast';
698
754
  pauseOnHover?: boolean;
755
+ /** How the section sits on the page. @default 'card' */
756
+ surface?: MarketingSurface;
699
757
  }
700
- 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;
701
759
 
702
760
  interface CtaSectionProps {
703
761
  heading: string;
@@ -721,6 +779,8 @@ interface CtaSectionProps {
721
779
  /** (showcase) Watermark icon rendered behind the content. @default <Rocket /> */
722
780
  icon?: React.ReactNode;
723
781
  renderLink?: AppShellRenderLink;
782
+ /** How the section sits on the page. @default 'card' */
783
+ surface?: MarketingSurface;
724
784
  }
725
785
  declare function CtaSection(props: CtaSectionProps): react_jsx_runtime.JSX.Element;
726
786
 
@@ -890,8 +950,16 @@ interface PricingSectionProps {
890
950
  * mode.
891
951
  */
892
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;
893
961
  }
894
- 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;
895
963
 
896
964
  interface TestimonialsSectionProps {
897
965
  title?: string;
@@ -906,8 +974,10 @@ interface TestimonialsSectionProps {
906
974
  initials?: string;
907
975
  rating?: number;
908
976
  }>;
977
+ /** How the section sits on the page. @default 'card' */
978
+ surface?: MarketingSurface;
909
979
  }
910
- 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;
911
981
 
912
982
  interface TeamMember {
913
983
  name: string;
@@ -926,8 +996,10 @@ interface TeamSectionProps {
926
996
  badge?: string;
927
997
  title?: string;
928
998
  description?: string;
999
+ /** How the section sits on the page. @default 'card' */
1000
+ surface?: MarketingSurface;
929
1001
  }
930
- 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;
931
1003
 
932
1004
  interface FaqSectionProps {
933
1005
  title?: string;
@@ -937,8 +1009,10 @@ interface FaqSectionProps {
937
1009
  question: string;
938
1010
  answer: string;
939
1011
  }>;
1012
+ /** How the section sits on the page. @default 'card' */
1013
+ surface?: MarketingSurface;
940
1014
  }
941
- 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;
942
1016
 
943
1017
  interface StatsSectionProps {
944
1018
  title?: string;
@@ -949,8 +1023,10 @@ interface StatsSectionProps {
949
1023
  label: string;
950
1024
  description?: string;
951
1025
  }>;
1026
+ /** How the section sits on the page. @default 'card' */
1027
+ surface?: MarketingSurface;
952
1028
  }
953
- 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;
954
1030
 
955
1031
  interface NewsletterSectionProps {
956
1032
  badge?: string;
@@ -963,8 +1039,10 @@ interface NewsletterSectionProps {
963
1039
  successTitle?: string;
964
1040
  successDescription?: string;
965
1041
  onSubscribe?: (email: string) => void | Promise<void>;
1042
+ /** How the section sits on the page. @default 'card' */
1043
+ surface?: MarketingSurface;
966
1044
  }
967
- 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;
968
1046
 
969
1047
  type ContactInfoItem = {
970
1048
  label: string;
@@ -981,8 +1059,10 @@ interface ContactSectionProps {
981
1059
  successDescription?: string;
982
1060
  sendAnotherLabel?: string;
983
1061
  onSubmit?: (event: React.FormEvent<HTMLFormElement>) => void | Promise<void>;
1062
+ /** How the section sits on the page. @default 'card' */
1063
+ surface?: MarketingSurface;
984
1064
  }
985
- 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;
986
1066
 
987
1067
  interface ComparisonColumn {
988
1068
  label: string;
@@ -996,8 +1076,10 @@ interface ComparisonSectionProps {
996
1076
  title?: string;
997
1077
  description?: string;
998
1078
  columns: ComparisonColumn[];
1079
+ /** How the section sits on the page. @default 'card' */
1080
+ surface?: MarketingSurface;
999
1081
  }
1000
- 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;
1001
1083
 
1002
1084
  interface QualificationColumn {
1003
1085
  heading: string;
@@ -1009,8 +1091,10 @@ interface QualificationSectionProps {
1009
1091
  title?: string;
1010
1092
  description?: string;
1011
1093
  columns: [QualificationColumn, QualificationColumn];
1094
+ /** How the section sits on the page. @default 'card' */
1095
+ surface?: MarketingSurface;
1012
1096
  }
1013
- 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;
1014
1098
 
1015
1099
  interface NavbarProps {
1016
1100
  brand: {
@@ -2011,4 +2095,4 @@ interface UsePaginationReturn {
2011
2095
  }
2012
2096
  declare function usePagination(total: number, pageSize: number): UsePaginationReturn;
2013
2097
 
2014
- 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 };