@geomak/ui 6.30.0 → 6.32.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.
- package/dist/index.cjs +552 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +409 -1
- package/dist/index.d.ts +409 -1
- package/dist/index.js +543 -4
- package/dist/index.js.map +1 -1
- package/dist/styles.css +232 -0
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -5042,6 +5042,414 @@ interface JwtResult<T> {
|
|
|
5042
5042
|
*/
|
|
5043
5043
|
declare function useJwt<T = Record<string, unknown>>(token: string | null | undefined): JwtResult<T>;
|
|
5044
5044
|
|
|
5045
|
+
type JumbotronLayout = 'centered' | 'split';
|
|
5046
|
+
type JumbotronBackground = 'none' | 'surface' | 'gradient';
|
|
5047
|
+
interface JumbotronProps {
|
|
5048
|
+
/** Small label above the title (kicker / category). */
|
|
5049
|
+
eyebrow?: React__default.ReactNode;
|
|
5050
|
+
/** The hero headline. */
|
|
5051
|
+
title: React__default.ReactNode;
|
|
5052
|
+
/** Supporting paragraph under the title. */
|
|
5053
|
+
description?: React__default.ReactNode;
|
|
5054
|
+
/** Call-to-action row — typically one or two `Button`s. */
|
|
5055
|
+
actions?: React__default.ReactNode;
|
|
5056
|
+
/** Media (image / screenshot / illustration). Shown beside the copy in
|
|
5057
|
+
* `split`, below it in `centered`. */
|
|
5058
|
+
media?: React__default.ReactNode;
|
|
5059
|
+
/** `centered` (default) stacks copy centred; `split` is copy + media side-by-side. */
|
|
5060
|
+
layout?: JumbotronLayout;
|
|
5061
|
+
/** Backdrop: none, a raised surface card, or a soft accent gradient glow. */
|
|
5062
|
+
background?: JumbotronBackground;
|
|
5063
|
+
className?: string;
|
|
5064
|
+
style?: React__default.CSSProperties;
|
|
5065
|
+
}
|
|
5066
|
+
/**
|
|
5067
|
+
* A landing-page hero ("jumbotron"): an eyebrow, a large headline, a supporting
|
|
5068
|
+
* line, and call-to-action buttons — optionally paired with media. `centered`
|
|
5069
|
+
* stacks everything centred; `split` puts the copy next to the media and stacks
|
|
5070
|
+
* on small screens. Pair with FeatureGrid / PricingPlans / Testimonials to
|
|
5071
|
+
* compose a full page.
|
|
5072
|
+
*
|
|
5073
|
+
* @example
|
|
5074
|
+
* <Jumbotron
|
|
5075
|
+
* background="gradient"
|
|
5076
|
+
* eyebrow={<Badge tone="accent">New</Badge>}
|
|
5077
|
+
* title="Ship maritime ops faster"
|
|
5078
|
+
* description="One portal for compliance, performance and voyage data."
|
|
5079
|
+
* actions={<><Button content="Get started" /><Button variant="outline" content="Book a demo" /></>}
|
|
5080
|
+
* />
|
|
5081
|
+
*/
|
|
5082
|
+
declare function Jumbotron({ eyebrow, title, description, actions, media, layout, background, className, style, }: JumbotronProps): react_jsx_runtime.JSX.Element;
|
|
5083
|
+
|
|
5084
|
+
interface Feature {
|
|
5085
|
+
/** Stable key. */
|
|
5086
|
+
key?: string | number;
|
|
5087
|
+
/** Leading icon (rendered in an accent-tinted tile). */
|
|
5088
|
+
icon?: React__default.ReactNode;
|
|
5089
|
+
title: React__default.ReactNode;
|
|
5090
|
+
description?: React__default.ReactNode;
|
|
5091
|
+
}
|
|
5092
|
+
interface FeatureGridProps {
|
|
5093
|
+
/** The features to render. */
|
|
5094
|
+
features: Feature[];
|
|
5095
|
+
/** Section eyebrow / kicker. */
|
|
5096
|
+
eyebrow?: React__default.ReactNode;
|
|
5097
|
+
/** Section heading. */
|
|
5098
|
+
title?: React__default.ReactNode;
|
|
5099
|
+
/** Section sub-heading. */
|
|
5100
|
+
description?: React__default.ReactNode;
|
|
5101
|
+
/** Columns at the largest breakpoint (collapses responsively). Default `3`. */
|
|
5102
|
+
columns?: 2 | 3 | 4;
|
|
5103
|
+
/** Centre the section header. Default `true`. */
|
|
5104
|
+
centeredHeader?: boolean;
|
|
5105
|
+
className?: string;
|
|
5106
|
+
style?: React__default.CSSProperties;
|
|
5107
|
+
}
|
|
5108
|
+
/**
|
|
5109
|
+
* A responsive grid of product features — icon, title, blurb — with an optional
|
|
5110
|
+
* section header. Collapses to a single column on mobile.
|
|
5111
|
+
*
|
|
5112
|
+
* @example
|
|
5113
|
+
* <FeatureGrid
|
|
5114
|
+
* title="Everything in one portal"
|
|
5115
|
+
* columns={3}
|
|
5116
|
+
* features={[{ icon: <BoltIcon />, title: 'Realtime', description: 'Live vessel data.' }, …]}
|
|
5117
|
+
* />
|
|
5118
|
+
*/
|
|
5119
|
+
declare function FeatureGrid({ features, eyebrow, title, description, columns, centeredHeader, className, style, }: FeatureGridProps): react_jsx_runtime.JSX.Element;
|
|
5120
|
+
|
|
5121
|
+
interface PricingPlan {
|
|
5122
|
+
key?: string | number;
|
|
5123
|
+
/** Plan name, e.g. "Pro". */
|
|
5124
|
+
name: React__default.ReactNode;
|
|
5125
|
+
/** Price, e.g. "$49" or "Custom". */
|
|
5126
|
+
price: React__default.ReactNode;
|
|
5127
|
+
/** Billing period suffix, e.g. "/mo". */
|
|
5128
|
+
period?: React__default.ReactNode;
|
|
5129
|
+
/** Short positioning line. */
|
|
5130
|
+
description?: React__default.ReactNode;
|
|
5131
|
+
/** Included features (rendered with check marks). */
|
|
5132
|
+
features: React__default.ReactNode[];
|
|
5133
|
+
/** CTA button. */
|
|
5134
|
+
cta: {
|
|
5135
|
+
label: React__default.ReactNode;
|
|
5136
|
+
onClick?: () => void;
|
|
5137
|
+
};
|
|
5138
|
+
/** Emphasise this plan (accent border, lift, badge). */
|
|
5139
|
+
highlighted?: boolean;
|
|
5140
|
+
/** Small ribbon label on a highlighted plan, e.g. "Most popular". */
|
|
5141
|
+
badge?: React__default.ReactNode;
|
|
5142
|
+
}
|
|
5143
|
+
interface PricingPlansProps {
|
|
5144
|
+
plans: PricingPlan[];
|
|
5145
|
+
eyebrow?: React__default.ReactNode;
|
|
5146
|
+
title?: React__default.ReactNode;
|
|
5147
|
+
description?: React__default.ReactNode;
|
|
5148
|
+
className?: string;
|
|
5149
|
+
style?: React__default.CSSProperties;
|
|
5150
|
+
}
|
|
5151
|
+
/**
|
|
5152
|
+
* A pricing-tier section: a responsive row of plan cards, each with a price,
|
|
5153
|
+
* a feature checklist and a CTA. Mark one plan `highlighted` to lift it with an
|
|
5154
|
+
* accent border and an optional `badge`.
|
|
5155
|
+
*
|
|
5156
|
+
* @example
|
|
5157
|
+
* <PricingPlans title="Pricing" plans={[
|
|
5158
|
+
* { name: 'Starter', price: '$0', period: '/mo', features: ['1 vessel', 'Email support'], cta: { label: 'Start free' } },
|
|
5159
|
+
* { name: 'Pro', price: '$49', period: '/mo', highlighted: true, badge: 'Most popular',
|
|
5160
|
+
* features: ['Unlimited vessels', 'Priority support'], cta: { label: 'Go Pro' } },
|
|
5161
|
+
* ]} />
|
|
5162
|
+
*/
|
|
5163
|
+
declare function PricingPlans({ plans, eyebrow, title, description, className, style }: PricingPlansProps): react_jsx_runtime.JSX.Element;
|
|
5164
|
+
|
|
5165
|
+
interface Testimonial {
|
|
5166
|
+
key?: string | number;
|
|
5167
|
+
/** The quote text. */
|
|
5168
|
+
quote: React__default.ReactNode;
|
|
5169
|
+
/** Author name. */
|
|
5170
|
+
author: React__default.ReactNode;
|
|
5171
|
+
/** Author role / company. */
|
|
5172
|
+
role?: React__default.ReactNode;
|
|
5173
|
+
/** Author avatar URL (falls back to initials of `author`). */
|
|
5174
|
+
avatar?: string;
|
|
5175
|
+
/** Optional 1–5 star rating. */
|
|
5176
|
+
rating?: number;
|
|
5177
|
+
}
|
|
5178
|
+
interface TestimonialsProps {
|
|
5179
|
+
testimonials: Testimonial[];
|
|
5180
|
+
eyebrow?: React__default.ReactNode;
|
|
5181
|
+
title?: React__default.ReactNode;
|
|
5182
|
+
description?: React__default.ReactNode;
|
|
5183
|
+
/** Columns at the largest breakpoint. Default `3`. */
|
|
5184
|
+
columns?: 1 | 2 | 3;
|
|
5185
|
+
className?: string;
|
|
5186
|
+
style?: React__default.CSSProperties;
|
|
5187
|
+
}
|
|
5188
|
+
/**
|
|
5189
|
+
* A wall of customer testimonials — quote, star rating, and author with avatar.
|
|
5190
|
+
* Responsive grid (single column on mobile); use `columns={1}` for one centred
|
|
5191
|
+
* featured quote.
|
|
5192
|
+
*
|
|
5193
|
+
* @example
|
|
5194
|
+
* <Testimonials title="Loved by ops teams" testimonials={[
|
|
5195
|
+
* { quote: 'Cut our reporting time in half.', author: 'Maria F.', role: 'Fleet Manager', rating: 5 },
|
|
5196
|
+
* ]} />
|
|
5197
|
+
*/
|
|
5198
|
+
declare function Testimonials({ testimonials, eyebrow, title, description, columns, className, style }: TestimonialsProps): react_jsx_runtime.JSX.Element;
|
|
5199
|
+
|
|
5200
|
+
interface Slide {
|
|
5201
|
+
key?: string | number;
|
|
5202
|
+
eyebrow?: React__default.ReactNode;
|
|
5203
|
+
title: React__default.ReactNode;
|
|
5204
|
+
description?: React__default.ReactNode;
|
|
5205
|
+
/** CTA row (your Buttons). */
|
|
5206
|
+
actions?: React__default.ReactNode;
|
|
5207
|
+
/** Background image URL. Without it the slide uses the surface background. */
|
|
5208
|
+
image?: string;
|
|
5209
|
+
/** Text alignment. Default `'center'`. */
|
|
5210
|
+
align?: 'start' | 'center';
|
|
5211
|
+
}
|
|
5212
|
+
interface SlideShowProps {
|
|
5213
|
+
slides: Slide[];
|
|
5214
|
+
/** Auto-advance. Default `true`. */
|
|
5215
|
+
autoPlay?: boolean;
|
|
5216
|
+
/** Auto-advance interval (ms). Default `6000`. */
|
|
5217
|
+
interval?: number;
|
|
5218
|
+
showArrows?: boolean;
|
|
5219
|
+
showDots?: boolean;
|
|
5220
|
+
/** Stage height. Default `460`. */
|
|
5221
|
+
height?: number | string;
|
|
5222
|
+
'aria-label'?: string;
|
|
5223
|
+
className?: string;
|
|
5224
|
+
style?: React__default.CSSProperties;
|
|
5225
|
+
}
|
|
5226
|
+
/**
|
|
5227
|
+
* A full-bleed hero slideshow: each slide carries an eyebrow, title, description
|
|
5228
|
+
* and CTAs over an optional background image (with a legibility scrim).
|
|
5229
|
+
* Cross-fades between slides, auto-advances (pause on hover), and offers arrows
|
|
5230
|
+
* + dots. Respects `prefers-reduced-motion`.
|
|
5231
|
+
*
|
|
5232
|
+
* @example
|
|
5233
|
+
* <SlideShow slides={[
|
|
5234
|
+
* { title: 'Welcome aboard', description: '…', image: hero1, actions: <Button content="Start" /> },
|
|
5235
|
+
* { title: 'Track everything', image: hero2 },
|
|
5236
|
+
* ]} />
|
|
5237
|
+
*/
|
|
5238
|
+
declare function SlideShow({ slides, autoPlay, interval, showArrows, showDots, height, 'aria-label': ariaLabel, className, style, }: SlideShowProps): react_jsx_runtime.JSX.Element;
|
|
5239
|
+
|
|
5240
|
+
interface VideoProps {
|
|
5241
|
+
/** A video file URL (rendered as a native `<video>`). */
|
|
5242
|
+
src?: string;
|
|
5243
|
+
/** An embed URL (YouTube / Vimeo / etc.), rendered in an `<iframe>`. Takes precedence over `src`. */
|
|
5244
|
+
embedUrl?: string;
|
|
5245
|
+
/** Poster image (native video, and the click-to-play thumbnail). */
|
|
5246
|
+
poster?: string;
|
|
5247
|
+
/** Aspect ratio of the frame. Default `'16/9'`. */
|
|
5248
|
+
aspect?: '16/9' | '4/3' | '1/1' | '21/9';
|
|
5249
|
+
/** Accessible title for the frame. */
|
|
5250
|
+
title?: string;
|
|
5251
|
+
/** Native controls. Default `true`. */
|
|
5252
|
+
controls?: boolean;
|
|
5253
|
+
autoPlay?: boolean;
|
|
5254
|
+
loop?: boolean;
|
|
5255
|
+
muted?: boolean;
|
|
5256
|
+
/** Rounded corners + border. Default `true`. */
|
|
5257
|
+
framed?: boolean;
|
|
5258
|
+
className?: string;
|
|
5259
|
+
style?: React__default.CSSProperties;
|
|
5260
|
+
}
|
|
5261
|
+
/**
|
|
5262
|
+
* A responsive video frame that keeps its aspect ratio at any width. Renders a
|
|
5263
|
+
* native `<video>` for file `src` (with an optional click-to-play poster
|
|
5264
|
+
* overlay) or an `<iframe>` for an `embedUrl` (YouTube, Vimeo, …).
|
|
5265
|
+
*
|
|
5266
|
+
* @example
|
|
5267
|
+
* <Video src="/clips/tour.mp4" poster="/clips/tour.jpg" title="Product tour" />
|
|
5268
|
+
* <Video embedUrl="https://www.youtube.com/embed/abc123" title="Webinar" />
|
|
5269
|
+
*/
|
|
5270
|
+
declare function Video({ src, embedUrl, poster, aspect, title, controls, autoPlay, loop, muted, framed, className, style, }: VideoProps): react_jsx_runtime.JSX.Element;
|
|
5271
|
+
|
|
5272
|
+
interface ParallaxProps {
|
|
5273
|
+
/** Background image URL, or any node (e.g. an illustration) to park behind the content. */
|
|
5274
|
+
background: React__default.ReactNode | string;
|
|
5275
|
+
/** Foreground content, vertically + horizontally centred. */
|
|
5276
|
+
children?: React__default.ReactNode;
|
|
5277
|
+
/** Frame height. Default `440`. */
|
|
5278
|
+
height?: number | string;
|
|
5279
|
+
/**
|
|
5280
|
+
* How far the background drifts relative to scroll, as a fraction of the
|
|
5281
|
+
* frame height. `0` = static, `0.3` = moves 30%. Default `0.3`.
|
|
5282
|
+
*/
|
|
5283
|
+
speed?: number;
|
|
5284
|
+
/** Dim the background with a scrim for text legibility. Default `true`. */
|
|
5285
|
+
overlay?: boolean;
|
|
5286
|
+
className?: string;
|
|
5287
|
+
style?: React__default.CSSProperties;
|
|
5288
|
+
}
|
|
5289
|
+
/**
|
|
5290
|
+
* A scroll-driven parallax band: the background drifts slower than the page as
|
|
5291
|
+
* the frame passes through the viewport, with centred foreground content over
|
|
5292
|
+
* an optional scrim. Honours `prefers-reduced-motion` (background stays still).
|
|
5293
|
+
*
|
|
5294
|
+
* @example
|
|
5295
|
+
* <Parallax background="/img/ocean.jpg" height={520}>
|
|
5296
|
+
* <h2 className="text-4xl font-bold text-white">Built for the open sea</h2>
|
|
5297
|
+
* </Parallax>
|
|
5298
|
+
*/
|
|
5299
|
+
declare function Parallax({ background, children, height, speed, overlay, className, style, }: ParallaxProps): react_jsx_runtime.JSX.Element;
|
|
5300
|
+
|
|
5301
|
+
interface BlogPost {
|
|
5302
|
+
key?: string | number;
|
|
5303
|
+
title: React__default.ReactNode;
|
|
5304
|
+
excerpt?: React__default.ReactNode;
|
|
5305
|
+
/** Cover image URL (rendered 16/9). */
|
|
5306
|
+
image?: string;
|
|
5307
|
+
/** Tag pill shown over / above the card. */
|
|
5308
|
+
tag?: React__default.ReactNode;
|
|
5309
|
+
author?: React__default.ReactNode;
|
|
5310
|
+
/** Pre-formatted date string (you control the format / locale). */
|
|
5311
|
+
date?: React__default.ReactNode;
|
|
5312
|
+
/** Read time, e.g. `'4 min read'`. */
|
|
5313
|
+
readTime?: React__default.ReactNode;
|
|
5314
|
+
/** Link target — renders the card as an anchor. */
|
|
5315
|
+
href?: string;
|
|
5316
|
+
onClick?: () => void;
|
|
5317
|
+
}
|
|
5318
|
+
interface BlogProps {
|
|
5319
|
+
posts: BlogPost[];
|
|
5320
|
+
eyebrow?: React__default.ReactNode;
|
|
5321
|
+
title?: React__default.ReactNode;
|
|
5322
|
+
description?: React__default.ReactNode;
|
|
5323
|
+
/** Widest-breakpoint column count. Default `3`. */
|
|
5324
|
+
columns?: 2 | 3;
|
|
5325
|
+
centeredHeader?: boolean;
|
|
5326
|
+
className?: string;
|
|
5327
|
+
style?: React__default.CSSProperties;
|
|
5328
|
+
}
|
|
5329
|
+
/**
|
|
5330
|
+
* A grid of article cards — cover image, tag, title, excerpt, and a byline of
|
|
5331
|
+
* author / date / read-time. Cards link out via `href` or fire `onClick`.
|
|
5332
|
+
*
|
|
5333
|
+
* @example
|
|
5334
|
+
* <Blog title="From the blog" posts={[
|
|
5335
|
+
* { title: 'Cutting CII red days', excerpt: '…', image: cover, tag: 'Compliance', author: 'A. Costa', date: 'May 2026', href: '/blog/cii' },
|
|
5336
|
+
* ]} />
|
|
5337
|
+
*/
|
|
5338
|
+
declare function Blog({ posts, eyebrow, title, description, columns, centeredHeader, className, style, }: BlogProps): react_jsx_runtime.JSX.Element;
|
|
5339
|
+
|
|
5340
|
+
type SocialPlatform = 'x' | 'twitter' | 'github' | 'linkedin' | 'youtube' | 'instagram' | 'facebook' | 'mastodon' | 'email' | 'website';
|
|
5341
|
+
interface SocialLink {
|
|
5342
|
+
/** Known platform — supplies the icon + default label. */
|
|
5343
|
+
platform?: SocialPlatform;
|
|
5344
|
+
href: string;
|
|
5345
|
+
/** Accessible label / tooltip. Falls back to the platform name. */
|
|
5346
|
+
label?: string;
|
|
5347
|
+
/** Custom icon (overrides the built-in for `platform`). */
|
|
5348
|
+
icon?: React__default.ReactNode;
|
|
5349
|
+
}
|
|
5350
|
+
interface SocialsProps {
|
|
5351
|
+
links: SocialLink[];
|
|
5352
|
+
/** Button treatment. Default `'ghost'`. */
|
|
5353
|
+
variant?: 'ghost' | 'solid' | 'outline';
|
|
5354
|
+
/** Icon button size. Default `'md'`. */
|
|
5355
|
+
size?: 'sm' | 'md';
|
|
5356
|
+
/** Open links in a new tab. Default `true`. */
|
|
5357
|
+
newTab?: boolean;
|
|
5358
|
+
'aria-label'?: string;
|
|
5359
|
+
className?: string;
|
|
5360
|
+
style?: React__default.CSSProperties;
|
|
5361
|
+
}
|
|
5362
|
+
/**
|
|
5363
|
+
* A row of social / contact icon links. Pass `platform` for a built-in brand
|
|
5364
|
+
* glyph (x, github, linkedin, youtube, instagram, facebook, mastodon, email,
|
|
5365
|
+
* website) or supply your own `icon`. Each link is a labelled, focusable anchor.
|
|
5366
|
+
*
|
|
5367
|
+
* @example
|
|
5368
|
+
* <Socials links={[
|
|
5369
|
+
* { platform: 'github', href: 'https://github.com/acme' },
|
|
5370
|
+
* { platform: 'linkedin', href: 'https://linkedin.com/company/acme' },
|
|
5371
|
+
* { platform: 'email', href: 'mailto:hi@acme.com' },
|
|
5372
|
+
* ]} />
|
|
5373
|
+
*/
|
|
5374
|
+
declare function Socials({ links, variant, size, newTab, 'aria-label': ariaLabel, className, style, }: SocialsProps): react_jsx_runtime.JSX.Element;
|
|
5375
|
+
|
|
5376
|
+
type ConsentChoice = 'accepted' | 'declined';
|
|
5377
|
+
interface CookieConsentProps {
|
|
5378
|
+
/** Banner body. */
|
|
5379
|
+
message?: React__default.ReactNode;
|
|
5380
|
+
/** Optional bold heading above the message. */
|
|
5381
|
+
title?: React__default.ReactNode;
|
|
5382
|
+
acceptLabel?: string;
|
|
5383
|
+
/** Show a decline action with this label (omit for accept-only). */
|
|
5384
|
+
declineLabel?: string;
|
|
5385
|
+
onAccept?: () => void;
|
|
5386
|
+
onDecline?: () => void;
|
|
5387
|
+
/** Link to your cookie / privacy policy. */
|
|
5388
|
+
learnMoreHref?: string;
|
|
5389
|
+
learnMoreLabel?: string;
|
|
5390
|
+
/**
|
|
5391
|
+
* localStorage key that remembers the choice so the banner stays dismissed.
|
|
5392
|
+
* Default `'oxygen-cookie-consent'`. Pass `null` to disable persistence and
|
|
5393
|
+
* control visibility yourself via `open`.
|
|
5394
|
+
*/
|
|
5395
|
+
storageKey?: string | null;
|
|
5396
|
+
/** Controlled visibility. Overrides the persisted state when provided. */
|
|
5397
|
+
open?: boolean;
|
|
5398
|
+
/** On-screen placement. Default `'bottom'`. */
|
|
5399
|
+
position?: 'bottom' | 'bottom-left' | 'bottom-right';
|
|
5400
|
+
className?: string;
|
|
5401
|
+
}
|
|
5402
|
+
/**
|
|
5403
|
+
* A cookie / consent banner. Self-managing by default: it remembers the visitor's
|
|
5404
|
+
* choice in `localStorage` (`storageKey`) and stays dismissed on return. Pass
|
|
5405
|
+
* `storageKey={null}` + `open` to control it yourself. Fires `onAccept` /
|
|
5406
|
+
* `onDecline` so you can (de)activate analytics.
|
|
5407
|
+
*
|
|
5408
|
+
* @example
|
|
5409
|
+
* <CookieConsent
|
|
5410
|
+
* message="We use cookies to improve your experience."
|
|
5411
|
+
* declineLabel="Reject"
|
|
5412
|
+
* learnMoreHref="/privacy"
|
|
5413
|
+
* onAccept={enableAnalytics}
|
|
5414
|
+
* />
|
|
5415
|
+
*/
|
|
5416
|
+
declare function CookieConsent({ message, title, acceptLabel, declineLabel, onAccept, onDecline, learnMoreHref, learnMoreLabel, storageKey, open, position, className, }: CookieConsentProps): react_jsx_runtime.JSX.Element;
|
|
5417
|
+
|
|
5418
|
+
interface LeadCaptureProps {
|
|
5419
|
+
title: React__default.ReactNode;
|
|
5420
|
+
description?: React__default.ReactNode;
|
|
5421
|
+
/** Email field placeholder. Default `'you@company.com'`. */
|
|
5422
|
+
placeholder?: string;
|
|
5423
|
+
/** Accessible label for the email field. Default `'Email address'`. */
|
|
5424
|
+
inputLabel?: string;
|
|
5425
|
+
buttonLabel?: React__default.ReactNode;
|
|
5426
|
+
/** Fired with the entered email on submit. */
|
|
5427
|
+
onSubmit?: (email: string) => void;
|
|
5428
|
+
/** Small print under the form (e.g. a privacy note). */
|
|
5429
|
+
note?: React__default.ReactNode;
|
|
5430
|
+
/** Confirmation shown after a successful submit (replaces the form). */
|
|
5431
|
+
successMessage?: React__default.ReactNode;
|
|
5432
|
+
/** Backdrop treatment. Default `'gradient'`. */
|
|
5433
|
+
background?: 'surface' | 'gradient';
|
|
5434
|
+
centered?: boolean;
|
|
5435
|
+
className?: string;
|
|
5436
|
+
style?: React__default.CSSProperties;
|
|
5437
|
+
}
|
|
5438
|
+
/**
|
|
5439
|
+
* A footer call-to-action band with an inline email-capture form — title,
|
|
5440
|
+
* supporting copy, an email field, and a submit button. Shows a confirmation in
|
|
5441
|
+
* place of the form once submitted.
|
|
5442
|
+
*
|
|
5443
|
+
* @example
|
|
5444
|
+
* <LeadCapture
|
|
5445
|
+
* title="Stay in the loop"
|
|
5446
|
+
* description="Product updates and maritime insights, monthly."
|
|
5447
|
+
* buttonLabel="Subscribe"
|
|
5448
|
+
* onSubmit={(email) => subscribe(email)}
|
|
5449
|
+
* />
|
|
5450
|
+
*/
|
|
5451
|
+
declare function LeadCapture({ title, description, placeholder, inputLabel, buttonLabel, onSubmit, note, successMessage, background, centered, className, style, }: LeadCaptureProps): react_jsx_runtime.JSX.Element;
|
|
5452
|
+
|
|
5045
5453
|
/**
|
|
5046
5454
|
* Zero-dependency credit-card helpers: brand detection, Luhn checksum, and
|
|
5047
5455
|
* display formatting. Pure functions — no React, no deps — so they're unit
|
|
@@ -5084,4 +5492,4 @@ declare function expiryError(value: string, now?: Date): string | undefined;
|
|
|
5084
5492
|
/** Validate the CVV against the detected brand's expected length. */
|
|
5085
5493
|
declare function cvvError(value: string, cardNumber: string): string | undefined;
|
|
5086
5494
|
|
|
5087
|
-
export { Accordion, type AccordionItemProps, type AccordionProps, AppShell, type AppShellProps, AutoComplete, type AutoCompleteProps, Avatar, type AvatarProps, type AvatarShape, type AvatarSize, type AvatarStatus, Badge, type BadgeProps, type BadgeSize, type BadgeTone, type BadgeVariant, Box, type BoxBackground, type BoxBorder, type BoxProps, type BoxRadius, type BoxShadow, type BreadcrumbItem, Breadcrumbs, type BreadcrumbsProps, type Breakpoint, type BreakpointState, Button, type ButtonProps, CARD_BRANDS, Card, type CardBodyProps, type CardBrand, CardCarousel, type CardCarouselProps, type CardFooterProps, type CardHeaderProps, type CardMediaProps, type CardProps, Cart, CartButton, type CartButtonProps, type CartContextValue, type CartItemInput, type CartLineItem, type CartProps, CartProvider, type CartProviderProps, type CartSummaryRow, Catalog, CatalogCarousel, type CatalogCarouselProps, CatalogGrid, type CatalogGridProps, type CatalogProps, Chat, type ChatMessage, type ChatProps, Checkbox, type CheckboxProps, Checkout, type CheckoutProps, ColorPicker, type ColorPickerProps, ContextMenu, type ContextMenuActionItem, type ContextMenuPosition, type ContextMenuProps, CreditCardForm, type CreditCardFormProps, type CreditCardValue, type DatePickerProps, type DateRange, DateRangePicker, type DateRangePickerProps, type DateRangePreset, type DeltaDirection, Drawer, type DrawerProps, type DrawerSize, Dropdown, type DropdownItem, type DropdownProps, EmptyCart, type EmptyCartProps, type ErrorMap, type ExpandRowOptions, FAB, type FABAction, type FABPosition, type FABProps, type FABSize, type FABTone, FadingBase, type FadingBaseProps, Field, type FieldArrayItem, type FieldBindings, FieldHelpIcon, type FieldKind, FieldLabel, type FieldLabelProps, type FieldProps, type FieldRule, type FieldRules, type FieldShellOptions, type FieldSize, type FieldSnapshot, FileInput, type FileInputProps, Flex, type FlexAlign, type FlexDirection, type FlexJustify, type FlexProps, type FlexWrap, Form, FormContext, FormField, type FormFieldProps, type FormProps, FormStore, type FormStoreOptions, type FormValues, Grid, GridCard, type GridCardItem, type GridCardProps, type GridProps, Icon, IconButton, type IconButtonProps, type JwtResult, Kbd, type KbdProps, type KbdSize, List, type ListItem, type ListProps, LoadingSpinner, type LoadingSpinnerProps, LogoutTimer, type LogoutTimerProps, MegaMenu, type MegaMenuFeaturedProps, type MegaMenuItemProps, type MegaMenuLinkProps, type MegaMenuPanelProps, type MegaMenuProps, type MegaMenuSectionProps, MenuButton, type MenuButtonItem, type MenuButtonProps, Modal, type ModalProps, type ModalSize, type NotificationPayload, NotificationProvider, NumberInput, type NumberInputProps, OpaqueGridCard, type OpaqueGridCardProps, OtpInput, type OtpInputProps, type PaginationOptions, Password, type PasswordProps, PopConfirm, type PopConfirmProps, type PopConfirmTone, Portal, type PortalProps, RadioGroup, type RadioGroupProps, type RadioOption, Rating, type RatingProps, type RulesMap, ScalableContainer, type ScalableContainerProps, Scheduler, type SchedulerEvent, type SchedulerProps, type SchedulerRange, type SchedulerView, SearchInput, type SearchInputProps, SecureLayout, type SecureLayoutProps, SegmentedControl, type SegmentedControlProps, type SegmentedOption, Sidebar, type SidebarItem, type SidebarProps, type SidebarSection, SkeletonBox, type SkeletonBoxProps, SkeletonCard, type SkeletonCardProps, SkeletonCircle, type SkeletonCircleProps, SkeletonText, type SkeletonTextProps, Slider, type SliderMark, type SliderProps, type SliderValue, type Spacing, Statistic, type StatisticDelta, type StatisticProps, type StatisticSize, Stepper, type StepperActiveStatus, type StepperProps, type StepperStep, Switch, type SwitchInputProps, Table, type TableColumn, type TableProps, Tabs, type TabsAddProps, type TabsListProps, type TabsOrientation, type TabsPanelProps, type TabsProps, type TabsSize, type TabsTriggerProps, type TabsVariant, TagsInput, type TagsInputProps, DatePicker as Temporal, type TemporalPickerProps, TextArea, type TextAreaProps, TextInput, type TextInputProps, type ThemeColors, type ThemeConfig, type ThemeDensity, type ThemeMotion, ThemeProvider, type ThemeProviderProps, type ThemeRadius, type ThemeShadows, ThemeSwitch, type ThemeSwitchProps, type ThemeTypography, TimePicker, type TimePickerProps, Timeline, type TimelineEvent, type TimelineProps, type TimelineStatus, Tooltip, type TooltipProps, TooltipProvider, TopBar, type TopBarProps, Tree, type TreeItemClickPayload, type TreeNode, type TreeProps, TreeSelect, type TreeSelectProps, Typography, type TypographyAlign, type TypographyColor, type TypographyProps, type TypographyVariant, type TypographyWeight, type UseFieldArrayReturn, type UseFormFieldOptions, type UseFormReturn, type ValidateTrigger, Wizard, type WizardProps, type WizardStep, cardNumberError, cvvError, detectBrand, expiryError, fieldShell, formatCardNumber, formatExpiry, isRequired, luhnValid, onlyDigits, patterns, runFieldRules, useBreakpoint, useCart, useFieldArray, useForm, useFormField, useFormStore, useJwt, useLocalStorage, useMediaQuery, useNotification };
|
|
5495
|
+
export { Accordion, type AccordionItemProps, type AccordionProps, AppShell, type AppShellProps, AutoComplete, type AutoCompleteProps, Avatar, type AvatarProps, type AvatarShape, type AvatarSize, type AvatarStatus, Badge, type BadgeProps, type BadgeSize, type BadgeTone, type BadgeVariant, Blog, type BlogPost, type BlogProps, Box, type BoxBackground, type BoxBorder, type BoxProps, type BoxRadius, type BoxShadow, type BreadcrumbItem, Breadcrumbs, type BreadcrumbsProps, type Breakpoint, type BreakpointState, Button, type ButtonProps, CARD_BRANDS, Card, type CardBodyProps, type CardBrand, CardCarousel, type CardCarouselProps, type CardFooterProps, type CardHeaderProps, type CardMediaProps, type CardProps, Cart, CartButton, type CartButtonProps, type CartContextValue, type CartItemInput, type CartLineItem, type CartProps, CartProvider, type CartProviderProps, type CartSummaryRow, Catalog, CatalogCarousel, type CatalogCarouselProps, CatalogGrid, type CatalogGridProps, type CatalogProps, Chat, type ChatMessage, type ChatProps, Checkbox, type CheckboxProps, Checkout, type CheckoutProps, ColorPicker, type ColorPickerProps, type ConsentChoice, ContextMenu, type ContextMenuActionItem, type ContextMenuPosition, type ContextMenuProps, CookieConsent, type CookieConsentProps, CreditCardForm, type CreditCardFormProps, type CreditCardValue, type DatePickerProps, type DateRange, DateRangePicker, type DateRangePickerProps, type DateRangePreset, type DeltaDirection, Drawer, type DrawerProps, type DrawerSize, Dropdown, type DropdownItem, type DropdownProps, EmptyCart, type EmptyCartProps, type ErrorMap, type ExpandRowOptions, FAB, type FABAction, type FABPosition, type FABProps, type FABSize, type FABTone, FadingBase, type FadingBaseProps, type Feature, FeatureGrid, type FeatureGridProps, Field, type FieldArrayItem, type FieldBindings, FieldHelpIcon, type FieldKind, FieldLabel, type FieldLabelProps, type FieldProps, type FieldRule, type FieldRules, type FieldShellOptions, type FieldSize, type FieldSnapshot, FileInput, type FileInputProps, Flex, type FlexAlign, type FlexDirection, type FlexJustify, type FlexProps, type FlexWrap, Form, FormContext, FormField, type FormFieldProps, type FormProps, FormStore, type FormStoreOptions, type FormValues, Grid, GridCard, type GridCardItem, type GridCardProps, type GridProps, Icon, IconButton, type IconButtonProps, Jumbotron, type JumbotronBackground, type JumbotronLayout, type JumbotronProps, type JwtResult, Kbd, type KbdProps, type KbdSize, LeadCapture, type LeadCaptureProps, List, type ListItem, type ListProps, LoadingSpinner, type LoadingSpinnerProps, LogoutTimer, type LogoutTimerProps, MegaMenu, type MegaMenuFeaturedProps, type MegaMenuItemProps, type MegaMenuLinkProps, type MegaMenuPanelProps, type MegaMenuProps, type MegaMenuSectionProps, MenuButton, type MenuButtonItem, type MenuButtonProps, Modal, type ModalProps, type ModalSize, type NotificationPayload, NotificationProvider, NumberInput, type NumberInputProps, OpaqueGridCard, type OpaqueGridCardProps, OtpInput, type OtpInputProps, type PaginationOptions, Parallax, type ParallaxProps, Password, type PasswordProps, PopConfirm, type PopConfirmProps, type PopConfirmTone, Portal, type PortalProps, type PricingPlan, PricingPlans, type PricingPlansProps, RadioGroup, type RadioGroupProps, type RadioOption, Rating, type RatingProps, type RulesMap, ScalableContainer, type ScalableContainerProps, Scheduler, type SchedulerEvent, type SchedulerProps, type SchedulerRange, type SchedulerView, SearchInput, type SearchInputProps, SecureLayout, type SecureLayoutProps, SegmentedControl, type SegmentedControlProps, type SegmentedOption, Sidebar, type SidebarItem, type SidebarProps, type SidebarSection, SkeletonBox, type SkeletonBoxProps, SkeletonCard, type SkeletonCardProps, SkeletonCircle, type SkeletonCircleProps, SkeletonText, type SkeletonTextProps, type Slide, SlideShow, type SlideShowProps, Slider, type SliderMark, type SliderProps, type SliderValue, type SocialLink, type SocialPlatform, Socials, type SocialsProps, type Spacing, Statistic, type StatisticDelta, type StatisticProps, type StatisticSize, Stepper, type StepperActiveStatus, type StepperProps, type StepperStep, Switch, type SwitchInputProps, Table, type TableColumn, type TableProps, Tabs, type TabsAddProps, type TabsListProps, type TabsOrientation, type TabsPanelProps, type TabsProps, type TabsSize, type TabsTriggerProps, type TabsVariant, TagsInput, type TagsInputProps, DatePicker as Temporal, type TemporalPickerProps, type Testimonial, Testimonials, type TestimonialsProps, TextArea, type TextAreaProps, TextInput, type TextInputProps, type ThemeColors, type ThemeConfig, type ThemeDensity, type ThemeMotion, ThemeProvider, type ThemeProviderProps, type ThemeRadius, type ThemeShadows, ThemeSwitch, type ThemeSwitchProps, type ThemeTypography, TimePicker, type TimePickerProps, Timeline, type TimelineEvent, type TimelineProps, type TimelineStatus, Tooltip, type TooltipProps, TooltipProvider, TopBar, type TopBarProps, Tree, type TreeItemClickPayload, type TreeNode, type TreeProps, TreeSelect, type TreeSelectProps, Typography, type TypographyAlign, type TypographyColor, type TypographyProps, type TypographyVariant, type TypographyWeight, type UseFieldArrayReturn, type UseFormFieldOptions, type UseFormReturn, type ValidateTrigger, Video, type VideoProps, Wizard, type WizardProps, type WizardStep, cardNumberError, cvvError, detectBrand, expiryError, fieldShell, formatCardNumber, formatExpiry, isRequired, luhnValid, onlyDigits, patterns, runFieldRules, useBreakpoint, useCart, useFieldArray, useForm, useFormField, useFormStore, useJwt, useLocalStorage, useMediaQuery, useNotification };
|