@sakaniui/react 0.1.0 → 0.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.
- package/README.md +64 -17
- package/dist/TopBar-B88BmNES.js +3777 -0
- package/dist/TopBar-CM5noziF.cjs +1 -0
- package/dist/blocks/AccountOverviewBlock/AccountOverviewBlock.d.ts +8 -0
- package/dist/blocks/AccountOverviewBlock/index.d.ts +2 -0
- package/dist/blocks/ActivityLogBlock/ActivityLogBlock.d.ts +8 -0
- package/dist/blocks/ActivityLogBlock/index.d.ts +2 -0
- package/dist/blocks/AppHeaderBlock/AppHeaderBlock.d.ts +19 -0
- package/dist/blocks/AppHeaderBlock/index.d.ts +2 -0
- package/dist/blocks/Billing/AddCardFormBlock/AddCardFormBlock.d.ts +20 -0
- package/dist/blocks/Billing/AddCardFormBlock/index.d.ts +2 -0
- package/dist/blocks/Billing/BillingAddressBlock/BillingAddressBlock.d.ts +24 -0
- package/dist/blocks/Billing/BillingAddressBlock/index.d.ts +2 -0
- package/dist/blocks/Billing/BillingHistoryBlock/BillingHistoryBlock.d.ts +24 -0
- package/dist/blocks/Billing/BillingHistoryBlock/index.d.ts +2 -0
- package/dist/blocks/Billing/CurrentPlanBlock/CurrentPlanBlock.d.ts +29 -0
- package/dist/blocks/Billing/CurrentPlanBlock/index.d.ts +2 -0
- package/dist/blocks/Billing/PaymentMethodBlock/PaymentMethodBlock.d.ts +23 -0
- package/dist/blocks/Billing/PaymentMethodBlock/cardBrandIcons.d.ts +3 -0
- package/dist/blocks/Billing/PaymentMethodBlock/index.d.ts +3 -0
- package/dist/blocks/BlogListingBlock/BlogListingBlock.d.ts +33 -0
- package/dist/blocks/BlogListingBlock/index.d.ts +2 -0
- package/dist/blocks/CRMDashboardBlock/CRMDashboardBlock.d.ts +6 -0
- package/dist/blocks/CRMDashboardBlock/index.d.ts +2 -0
- package/dist/blocks/CareersBlock/CareersBlock.d.ts +16 -0
- package/dist/blocks/CareersBlock/index.d.ts +2 -0
- package/dist/blocks/ChatInterfaceBlock/ChatInterfaceBlock.d.ts +8 -0
- package/dist/blocks/ChatInterfaceBlock/index.d.ts +2 -0
- package/dist/blocks/CheckoutFlowBlock/CheckoutFlowBlock.d.ts +33 -0
- package/dist/blocks/CheckoutFlowBlock/index.d.ts +2 -0
- package/dist/blocks/CtaBannerBlock/CtaBannerBlock.d.ts +19 -0
- package/dist/blocks/CtaBannerBlock/index.d.ts +2 -0
- package/dist/blocks/DataTableBlock/DataTableBlock.d.ts +8 -0
- package/dist/blocks/DataTableBlock/index.d.ts +2 -0
- package/dist/blocks/EmailVerificationBlock/EmailVerificationBlock.d.ts +13 -0
- package/dist/blocks/EmailVerificationBlock/index.d.ts +2 -0
- package/dist/blocks/FaqBlock/FaqBlock.d.ts +17 -0
- package/dist/blocks/FaqBlock/index.d.ts +2 -0
- package/dist/blocks/FeatureGridBlock/FeatureGridBlock.d.ts +15 -0
- package/dist/blocks/FeatureGridBlock/index.d.ts +2 -0
- package/dist/blocks/FileUploadPanelBlock/FileUploadPanelBlock.d.ts +9 -0
- package/dist/blocks/FileUploadPanelBlock/index.d.ts +2 -0
- package/dist/blocks/ForgotPasswordBlock/ForgotPasswordBlock.d.ts +12 -0
- package/dist/blocks/ForgotPasswordBlock/index.d.ts +2 -0
- package/dist/blocks/FormModalBlock/FormModalBlock.d.ts +8 -0
- package/dist/blocks/FormModalBlock/index.d.ts +2 -0
- package/dist/blocks/HeroBlock/HeroBlock.d.ts +27 -0
- package/dist/blocks/HeroBlock/ScratchRevealImage.d.ts +11 -0
- package/dist/blocks/HeroBlock/index.d.ts +2 -0
- package/dist/blocks/InlineCtaBlock/InlineCtaBlock.d.ts +13 -0
- package/dist/blocks/InlineCtaBlock/index.d.ts +2 -0
- package/dist/blocks/KanbanBoardBlock/KanbanBoardBlock.d.ts +8 -0
- package/dist/blocks/KanbanBoardBlock/index.d.ts +2 -0
- package/dist/blocks/LoginBlock/LoginBlock.d.ts +18 -0
- package/dist/blocks/LoginBlock/index.d.ts +2 -0
- package/dist/blocks/LogoCloudBlock/LogoCloudBlock.d.ts +12 -0
- package/dist/blocks/LogoCloudBlock/brandLogos.d.ts +10 -0
- package/dist/blocks/LogoCloudBlock/index.d.ts +3 -0
- package/dist/blocks/MultistepModalBlock/MultistepModalBlock.d.ts +10 -0
- package/dist/blocks/MultistepModalBlock/index.d.ts +2 -0
- package/dist/blocks/NotificationPanelBlock/NotificationPanelBlock.d.ts +15 -0
- package/dist/blocks/NotificationPanelBlock/index.d.ts +2 -0
- package/dist/blocks/OnboardingProgressBlock/OnboardingProgressBlock.d.ts +15 -0
- package/dist/blocks/OnboardingProgressBlock/index.d.ts +2 -0
- package/dist/blocks/OrderConfirmationBlock/OrderConfirmationBlock.d.ts +25 -0
- package/dist/blocks/OrderConfirmationBlock/index.d.ts +2 -0
- package/dist/blocks/PricingTableBlock/PricingTableBlock.d.ts +26 -0
- package/dist/blocks/PricingTableBlock/index.d.ts +2 -0
- package/dist/blocks/ProductDetailBlock/ProductDetailBlock.d.ts +39 -0
- package/dist/blocks/ProductDetailBlock/index.d.ts +2 -0
- package/dist/blocks/ProductGridBlock/ProductGridBlock.d.ts +24 -0
- package/dist/blocks/ProductGridBlock/index.d.ts +2 -0
- package/dist/blocks/ProfileSettingsBlock/ProfileSettingsBlock.d.ts +13 -0
- package/dist/blocks/ProfileSettingsBlock/index.d.ts +2 -0
- package/dist/blocks/ResetPasswordBlock/ResetPasswordBlock.d.ts +11 -0
- package/dist/blocks/ResetPasswordBlock/index.d.ts +2 -0
- package/dist/blocks/SectionFooterBlock/SectionFooterBlock.d.ts +14 -0
- package/dist/blocks/SectionFooterBlock/index.d.ts +2 -0
- package/dist/blocks/ShoppingCartBlock/ShoppingCartBlock.d.ts +23 -0
- package/dist/blocks/ShoppingCartBlock/index.d.ts +2 -0
- package/dist/blocks/SignUpBlock/SignUpBlock.d.ts +20 -0
- package/dist/blocks/SignUpBlock/index.d.ts +2 -0
- package/dist/blocks/TeamSectionBlock/TeamSectionBlock.d.ts +16 -0
- package/dist/blocks/TeamSectionBlock/index.d.ts +2 -0
- package/dist/blocks/TestimonialBlock/TestimonialBlock.d.ts +13 -0
- package/dist/blocks/TestimonialBlock/index.d.ts +2 -0
- package/dist/blocks/TwoFactorAuthBlock/TwoFactorAuthBlock.d.ts +12 -0
- package/dist/blocks/TwoFactorAuthBlock/index.d.ts +2 -0
- package/dist/blocks/index.d.ts +90 -0
- package/dist/blocks.cjs +1 -0
- package/dist/blocks.d.ts +2 -0
- package/dist/blocks.mjs +5935 -0
- package/dist/components/ECommerceComponents/CartItem/CartItem.d.ts +21 -0
- package/dist/components/ECommerceComponents/CartItem/index.d.ts +2 -0
- package/dist/components/ECommerceComponents/CheckoutSteps/CheckoutSteps.d.ts +11 -0
- package/dist/components/ECommerceComponents/CheckoutSteps/index.d.ts +2 -0
- package/dist/components/ECommerceComponents/ColorSwatch/ColorSwatch.d.ts +14 -0
- package/dist/components/ECommerceComponents/ColorSwatch/index.d.ts +2 -0
- package/dist/components/ECommerceComponents/PriceDisplay/PriceDisplay.d.ts +12 -0
- package/dist/components/ECommerceComponents/PriceDisplay/index.d.ts +2 -0
- package/dist/components/ECommerceComponents/ProductCard/ProductCard.d.ts +28 -0
- package/dist/components/ECommerceComponents/ProductCard/index.d.ts +2 -0
- package/dist/components/ECommerceComponents/ProductGallery/ProductGallery.d.ts +17 -0
- package/dist/components/ECommerceComponents/ProductGallery/index.d.ts +2 -0
- package/dist/components/ECommerceComponents/QuantitySelector/QuantitySelector.d.ts +12 -0
- package/dist/components/ECommerceComponents/QuantitySelector/index.d.ts +2 -0
- package/dist/components/ECommerceComponents/SizeSelector/SizeSelector.d.ts +12 -0
- package/dist/components/ECommerceComponents/SizeSelector/index.d.ts +2 -0
- package/dist/components/ECommerceComponents/StarRating/StarRating.d.ts +15 -0
- package/dist/components/ECommerceComponents/StarRating/index.d.ts +2 -0
- package/dist/components/ECommerceComponents/StockStatus/StockStatus.d.ts +11 -0
- package/dist/components/ECommerceComponents/StockStatus/index.d.ts +2 -0
- package/dist/components/ECommerceComponents/WishlistButton/WishlistButton.d.ts +10 -0
- package/dist/components/ECommerceComponents/WishlistButton/index.d.ts +2 -0
- package/dist/components/MarketingComponents/BlogBlockquote/BlogBlockquote.d.ts +16 -0
- package/dist/components/MarketingComponents/BlogBlockquote/index.d.ts +2 -0
- package/dist/components/MarketingComponents/BlogFeatureText/BlogFeatureText.d.ts +10 -0
- package/dist/components/MarketingComponents/BlogFeatureText/index.d.ts +2 -0
- package/dist/components/MarketingComponents/BlogImage/BlogImage.d.ts +13 -0
- package/dist/components/MarketingComponents/BlogImage/index.d.ts +2 -0
- package/dist/components/MarketingComponents/BlogListingCard/BlogListingCard.d.ts +24 -0
- package/dist/components/MarketingComponents/BlogListingCard/index.d.ts +2 -0
- package/dist/components/MarketingComponents/BlogListingFeaturedCard/BlogListingFeaturedCard.d.ts +27 -0
- package/dist/components/MarketingComponents/BlogListingFeaturedCard/index.d.ts +2 -0
- package/dist/components/MarketingComponents/FeaturedIcon/FeaturedIcon.d.ts +13 -0
- package/dist/components/MarketingComponents/FeaturedIcon/index.d.ts +2 -0
- package/dist/components/MarketingComponents/FirstPageHeading/FirstPageHeading.d.ts +24 -0
- package/dist/components/MarketingComponents/FirstPageHeading/index.d.ts +2 -0
- package/dist/components/MarketingComponents/JobListing/JobListing.d.ts +19 -0
- package/dist/components/MarketingComponents/JobListing/index.d.ts +2 -0
- package/dist/components/MarketingComponents/List/List.d.ts +10 -0
- package/dist/components/MarketingComponents/List/index.d.ts +2 -0
- package/dist/components/MarketingComponents/LocationDot/LocationDot.d.ts +10 -0
- package/dist/components/MarketingComponents/LocationDot/index.d.ts +2 -0
- package/dist/components/MarketingComponents/Marquee/Marquee.d.ts +11 -0
- package/dist/components/MarketingComponents/Marquee/index.d.ts +2 -0
- package/dist/components/MarketingComponents/Metric/Metric.d.ts +10 -0
- package/dist/components/MarketingComponents/Metric/index.d.ts +2 -0
- package/dist/components/MarketingComponents/MobileNavigationMenu/MobileNavigationMenu.d.ts +19 -0
- package/dist/components/MarketingComponents/MobileNavigationMenu/index.d.ts +2 -0
- package/dist/components/MarketingComponents/PlaceholderLogo/PlaceholderLogo.d.ts +13 -0
- package/dist/components/MarketingComponents/PlaceholderLogo/index.d.ts +2 -0
- package/dist/components/MarketingComponents/ProfileCard/ProfileCard.d.ts +20 -0
- package/dist/components/MarketingComponents/ProfileCard/SocialIcons.d.ts +7 -0
- package/dist/components/MarketingComponents/ProfileCard/index.d.ts +2 -0
- package/dist/components/MarketingComponents/RichTextHeading/RichTextHeading.d.ts +10 -0
- package/dist/components/MarketingComponents/RichTextHeading/index.d.ts +2 -0
- package/dist/components/MarketingComponents/RichTextParagraph/RichTextParagraph.d.ts +7 -0
- package/dist/components/MarketingComponents/RichTextParagraph/index.d.ts +2 -0
- package/dist/components/MarketingComponents/SectionHeading/SectionHeading.d.ts +15 -0
- package/dist/components/MarketingComponents/SectionHeading/index.d.ts +2 -0
- package/dist/components/MarketingComponents/SubFeature/SubFeature.d.ts +14 -0
- package/dist/components/MarketingComponents/SubFeature/index.d.ts +2 -0
- package/dist/components/MarketingComponents/TeamCard/TeamCard.d.ts +23 -0
- package/dist/components/MarketingComponents/TeamCard/TeamSocialIcons.d.ts +10 -0
- package/dist/components/MarketingComponents/TeamCard/index.d.ts +2 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +37 -0
- package/dist/index.mjs +2051 -4361
- package/dist/style.css +1 -1
- package/package.json +6 -1
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export interface CartItemProps {
|
|
3
|
+
image: string;
|
|
4
|
+
imageAlt?: string;
|
|
5
|
+
name: string;
|
|
6
|
+
/** e.g. "Color: Sand". */
|
|
7
|
+
variant?: string;
|
|
8
|
+
price: number;
|
|
9
|
+
/** Presence switches to the Sale price treatment (struck-through original + danger price). */
|
|
10
|
+
compareAtPrice?: number;
|
|
11
|
+
quantity: number;
|
|
12
|
+
onQuantityChange?: (quantity: number) => void;
|
|
13
|
+
minQuantity?: number;
|
|
14
|
+
maxQuantity?: number;
|
|
15
|
+
onRemove?: () => void;
|
|
16
|
+
removeLabel?: string;
|
|
17
|
+
formatPrice?: (amount: number) => string;
|
|
18
|
+
className?: string;
|
|
19
|
+
}
|
|
20
|
+
export declare const CartItem: React.FC<CartItemProps>;
|
|
21
|
+
export default CartItem;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export declare const DEFAULT_CHECKOUT_STEPS: string[];
|
|
3
|
+
export interface CheckoutStepsProps {
|
|
4
|
+
steps?: string[];
|
|
5
|
+
/** 0-indexed. Steps before this are "completed", this one is "active",
|
|
6
|
+
* steps after are "upcoming". */
|
|
7
|
+
currentStep: number;
|
|
8
|
+
className?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare const CheckoutSteps: React.FC<CheckoutStepsProps>;
|
|
11
|
+
export default CheckoutSteps;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export interface ColorSwatchProps {
|
|
3
|
+
/** CSS color value for the swatch fill. */
|
|
4
|
+
color: string;
|
|
5
|
+
/** Accessible name, e.g. "Navy". */
|
|
6
|
+
label: string;
|
|
7
|
+
selected?: boolean;
|
|
8
|
+
/** Defaults to true. False renders a disabled, unclickable swatch. */
|
|
9
|
+
available?: boolean;
|
|
10
|
+
onSelect?: () => void;
|
|
11
|
+
className?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare const ColorSwatch: React.FC<ColorSwatchProps>;
|
|
14
|
+
export default ColorSwatch;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export interface PriceDisplayProps {
|
|
3
|
+
price: number;
|
|
4
|
+
/** Presence switches to the struck-through-original + danger-solid current price. */
|
|
5
|
+
compareAtPrice?: number;
|
|
6
|
+
/** Shows a "Save X%" badge, computed from price vs. compareAtPrice. No-op without compareAtPrice. */
|
|
7
|
+
showBadge?: boolean;
|
|
8
|
+
formatPrice?: (amount: number) => string;
|
|
9
|
+
className?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare const PriceDisplay: React.FC<PriceDisplayProps>;
|
|
12
|
+
export default PriceDisplay;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { ColorSwatchProps } from '../ColorSwatch';
|
|
3
|
+
export interface ProductCardColor extends Omit<ColorSwatchProps, 'onSelect'> {
|
|
4
|
+
/** Unique key for selection -- defaults to `label` if omitted. */
|
|
5
|
+
id?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface ProductCardProps {
|
|
8
|
+
image: string;
|
|
9
|
+
imageAlt?: string;
|
|
10
|
+
name: string;
|
|
11
|
+
description?: string;
|
|
12
|
+
price: number;
|
|
13
|
+
/** Presence switches to the sale badge + struck-original/danger-current price. */
|
|
14
|
+
compareAtPrice?: number;
|
|
15
|
+
rating?: number;
|
|
16
|
+
reviewCount?: number;
|
|
17
|
+
colors?: ProductCardColor[];
|
|
18
|
+
onColorSelect?: (id: string) => void;
|
|
19
|
+
inStock?: boolean;
|
|
20
|
+
wishlisted?: boolean;
|
|
21
|
+
onWishlistToggle?: (wishlisted: boolean) => void;
|
|
22
|
+
onAddItem?: () => void;
|
|
23
|
+
addItemLabel?: string;
|
|
24
|
+
formatPrice?: (amount: number) => string;
|
|
25
|
+
className?: string;
|
|
26
|
+
}
|
|
27
|
+
export declare const ProductCard: React.FC<ProductCardProps>;
|
|
28
|
+
export default ProductCard;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export interface ProductGalleryImage {
|
|
3
|
+
src: string;
|
|
4
|
+
alt?: string;
|
|
5
|
+
}
|
|
6
|
+
export type ProductGalleryThumbsPosition = 'bottom' | 'left';
|
|
7
|
+
export interface ProductGalleryProps {
|
|
8
|
+
images: ProductGalleryImage[];
|
|
9
|
+
thumbsPosition?: ProductGalleryThumbsPosition;
|
|
10
|
+
/** Controlled active image index. Omit to let the gallery manage its own selection. */
|
|
11
|
+
activeIndex?: number;
|
|
12
|
+
defaultActiveIndex?: number;
|
|
13
|
+
onActiveIndexChange?: (index: number) => void;
|
|
14
|
+
className?: string;
|
|
15
|
+
}
|
|
16
|
+
export declare const ProductGallery: React.FC<ProductGalleryProps>;
|
|
17
|
+
export default ProductGallery;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export interface QuantitySelectorProps {
|
|
3
|
+
quantity: number;
|
|
4
|
+
onQuantityChange?: (quantity: number) => void;
|
|
5
|
+
min?: number;
|
|
6
|
+
max?: number;
|
|
7
|
+
/** Accessible group label, e.g. "Quantity for Ceramic Pour-Over Mug". */
|
|
8
|
+
label?: string;
|
|
9
|
+
className?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare const QuantitySelector: React.FC<QuantitySelectorProps>;
|
|
12
|
+
export default QuantitySelector;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export interface SizeSelectorProps {
|
|
3
|
+
/** Size label, e.g. "M", "XL", "38". */
|
|
4
|
+
size: string;
|
|
5
|
+
selected?: boolean;
|
|
6
|
+
/** Defaults to true. False renders a disabled, unclickable button. */
|
|
7
|
+
available?: boolean;
|
|
8
|
+
onSelect?: () => void;
|
|
9
|
+
className?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare const SizeSelector: React.FC<SizeSelectorProps>;
|
|
12
|
+
export default SizeSelector;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export type StarRatingOrientation = 'horizontal' | 'horizontal-reverse' | 'vertical';
|
|
3
|
+
export interface StarRatingProps {
|
|
4
|
+
/** 0-5. Drives the filled/half/empty star count. */
|
|
5
|
+
rating: number;
|
|
6
|
+
reviewCount?: number;
|
|
7
|
+
/** Shows the numeric rating + review count text next to the stars. Defaults to true. */
|
|
8
|
+
showLabel?: boolean;
|
|
9
|
+
/** Figma Orientation axis. Only meaningful while showLabel is true. Defaults to "horizontal". */
|
|
10
|
+
orientation?: StarRatingOrientation;
|
|
11
|
+
formatReviewCount?: (count: number) => string;
|
|
12
|
+
className?: string;
|
|
13
|
+
}
|
|
14
|
+
export declare const StarRating: React.FC<StarRatingProps>;
|
|
15
|
+
export default StarRating;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export interface StockStatusProps {
|
|
3
|
+
quantity: number;
|
|
4
|
+
/** At or below this (and above 0), shows "Only N left" in warning. Defaults to 5. */
|
|
5
|
+
lowStockThreshold?: number;
|
|
6
|
+
/** Overrides the derived label text; the derived color still applies. */
|
|
7
|
+
label?: string;
|
|
8
|
+
className?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare const StockStatus: React.FC<StockStatusProps>;
|
|
11
|
+
export default StockStatus;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export interface WishlistButtonProps {
|
|
3
|
+
saved?: boolean;
|
|
4
|
+
onToggle?: (saved: boolean) => void;
|
|
5
|
+
/** Accessible name for the item being saved, e.g. "Ceramic Pour-Over Mug". */
|
|
6
|
+
label?: string;
|
|
7
|
+
className?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const WishlistButton: React.FC<WishlistButtonProps>;
|
|
10
|
+
export default WishlistButton;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export interface BlogBlockquoteAuthor {
|
|
3
|
+
name: string;
|
|
4
|
+
/** e.g. "Founder at Loopline" -- rendered after the name as ", {role}". */
|
|
5
|
+
role: string;
|
|
6
|
+
avatarSrc?: string;
|
|
7
|
+
avatarAlt?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface BlogBlockquoteProps {
|
|
10
|
+
quote: string;
|
|
11
|
+
/** Presence switches to the card + quote-mark-glyphs + attribution-row treatment. */
|
|
12
|
+
author?: BlogBlockquoteAuthor;
|
|
13
|
+
className?: string;
|
|
14
|
+
}
|
|
15
|
+
export declare const BlogBlockquote: React.FC<BlogBlockquoteProps>;
|
|
16
|
+
export default BlogBlockquote;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export type BlogFeatureTextAlign = 'left' | 'top';
|
|
3
|
+
export interface BlogFeatureTextProps {
|
|
4
|
+
text: string;
|
|
5
|
+
/** Figma Align axis. Defaults to "left". */
|
|
6
|
+
align?: BlogFeatureTextAlign;
|
|
7
|
+
className?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const BlogFeatureText: React.FC<BlogFeatureTextProps>;
|
|
10
|
+
export default BlogFeatureText;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export type BlogImageSize = 'large' | 'small';
|
|
3
|
+
export interface BlogImageProps {
|
|
4
|
+
src: string;
|
|
5
|
+
alt?: string;
|
|
6
|
+
/** Figma Size axis. Defaults to "large". */
|
|
7
|
+
size?: BlogImageSize;
|
|
8
|
+
/** Presence renders the centered caption row below the image. */
|
|
9
|
+
caption?: string;
|
|
10
|
+
className?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare const BlogImage: React.FC<BlogImageProps>;
|
|
13
|
+
export default BlogImage;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export type BlogListingCardLayout = 'default' | 'horizontal';
|
|
3
|
+
export interface BlogListingCardAuthor {
|
|
4
|
+
name: string;
|
|
5
|
+
/** e.g. "Aug 12, 2026" -- rendered after the name as " · {date}". */
|
|
6
|
+
date: string;
|
|
7
|
+
avatarSrc?: string;
|
|
8
|
+
avatarAlt?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface BlogListingCardProps {
|
|
11
|
+
image: string;
|
|
12
|
+
imageAlt?: string;
|
|
13
|
+
category: string;
|
|
14
|
+
/** e.g. "11 mins read". */
|
|
15
|
+
readTime: string;
|
|
16
|
+
title: string;
|
|
17
|
+
excerpt: string;
|
|
18
|
+
author: BlogListingCardAuthor;
|
|
19
|
+
/** Figma Style axis. Defaults to "default". */
|
|
20
|
+
layout?: BlogListingCardLayout;
|
|
21
|
+
className?: string;
|
|
22
|
+
}
|
|
23
|
+
export declare const BlogListingCard: React.FC<BlogListingCardProps>;
|
|
24
|
+
export default BlogListingCard;
|
package/dist/components/MarketingComponents/BlogListingFeaturedCard/BlogListingFeaturedCard.d.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export type BlogListingFeaturedCardOrientation = 'horizontal' | 'vertical';
|
|
3
|
+
export interface BlogListingFeaturedCardAuthor {
|
|
4
|
+
name: string;
|
|
5
|
+
/** e.g. "Aug 12, 2026" -- rendered after the name as " · {date}". */
|
|
6
|
+
date: string;
|
|
7
|
+
avatarSrc?: string;
|
|
8
|
+
avatarAlt?: string;
|
|
9
|
+
/** 1–2 letters, shown when no avatarSrc -- e.g. "AK", matching Figma's own initials Avatar here. */
|
|
10
|
+
initials?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface BlogListingFeaturedCardProps {
|
|
13
|
+
image: string;
|
|
14
|
+
imageAlt?: string;
|
|
15
|
+
/** Defaults to "Featured", matching this card's own purpose. */
|
|
16
|
+
badgeLabel?: string;
|
|
17
|
+
title: string;
|
|
18
|
+
excerpt: string;
|
|
19
|
+
author: BlogListingFeaturedCardAuthor;
|
|
20
|
+
ctaLabel?: string;
|
|
21
|
+
onCtaClick?: () => void;
|
|
22
|
+
/** Figma Orientation axis. Defaults to "horizontal". */
|
|
23
|
+
orientation?: BlogListingFeaturedCardOrientation;
|
|
24
|
+
className?: string;
|
|
25
|
+
}
|
|
26
|
+
export declare const BlogListingFeaturedCard: React.FC<BlogListingFeaturedCardProps>;
|
|
27
|
+
export default BlogListingFeaturedCard;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export type FeaturedIconSize = 'sm' | 'md' | 'lg';
|
|
3
|
+
export type FeaturedIconVariant = 'light' | 'outline' | 'solid' | 'subtle';
|
|
4
|
+
export interface FeaturedIconProps {
|
|
5
|
+
icon: React.ReactNode;
|
|
6
|
+
/** Figma Size axis. Defaults to "md". */
|
|
7
|
+
size?: FeaturedIconSize;
|
|
8
|
+
/** Figma Style axis (renamed to avoid colliding with the DOM `style` prop). Defaults to "light". */
|
|
9
|
+
variant?: FeaturedIconVariant;
|
|
10
|
+
className?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare const FeaturedIcon: React.FC<FeaturedIconProps>;
|
|
13
|
+
export default FeaturedIcon;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { AvatarGroupProps } from '../../AvatarGroup';
|
|
3
|
+
export type FirstPageHeadingAlign = 'center' | 'left';
|
|
4
|
+
export interface FirstPageHeadingCta {
|
|
5
|
+
label: string;
|
|
6
|
+
onClick?: () => void;
|
|
7
|
+
}
|
|
8
|
+
export interface FirstPageHeadingProps {
|
|
9
|
+
title: string;
|
|
10
|
+
description?: string;
|
|
11
|
+
/** Presence renders the pill badge above the title. */
|
|
12
|
+
badgeLabel?: string;
|
|
13
|
+
primaryCta?: FirstPageHeadingCta;
|
|
14
|
+
secondaryCta?: FirstPageHeadingCta;
|
|
15
|
+
/** Presence (non-empty) renders the overlapping avatar stack. */
|
|
16
|
+
avatars?: AvatarGroupProps['avatars'];
|
|
17
|
+
/** Optional caption under the avatar stack, e.g. "21.3K happy users". */
|
|
18
|
+
avatarsCaption?: string;
|
|
19
|
+
/** Figma Align axis. Defaults to "center". */
|
|
20
|
+
align?: FirstPageHeadingAlign;
|
|
21
|
+
className?: string;
|
|
22
|
+
}
|
|
23
|
+
export declare const FirstPageHeading: React.FC<FirstPageHeadingProps>;
|
|
24
|
+
export default FirstPageHeading;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { LocationDotStatus } from '../LocationDot';
|
|
3
|
+
export type JobListingLayout = 'card' | 'row';
|
|
4
|
+
export interface JobListingProps {
|
|
5
|
+
title: string;
|
|
6
|
+
description: string;
|
|
7
|
+
department: string;
|
|
8
|
+
employmentType: string;
|
|
9
|
+
location: string;
|
|
10
|
+
/** Drives LocationDot's color. Defaults to "remote", matching Figma's own Job Listing instances. */
|
|
11
|
+
locationStatus?: LocationDotStatus;
|
|
12
|
+
onApply?: () => void;
|
|
13
|
+
applyLabel?: string;
|
|
14
|
+
/** Figma Style axis. Defaults to "card". */
|
|
15
|
+
layout?: JobListingLayout;
|
|
16
|
+
className?: string;
|
|
17
|
+
}
|
|
18
|
+
export declare const JobListing: React.FC<JobListingProps>;
|
|
19
|
+
export default JobListing;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export type ListStyle = 'check' | 'bullet' | 'arrow';
|
|
3
|
+
export interface ListProps {
|
|
4
|
+
items: string[];
|
|
5
|
+
/** Figma Style axis. Defaults to "check". */
|
|
6
|
+
style?: ListStyle;
|
|
7
|
+
className?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const List: React.FC<ListProps>;
|
|
10
|
+
export default List;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export type LocationDotStatus = 'active' | 'remote';
|
|
3
|
+
export interface LocationDotProps {
|
|
4
|
+
location: string;
|
|
5
|
+
/** Figma Status axis. Defaults to "active". */
|
|
6
|
+
status?: LocationDotStatus;
|
|
7
|
+
className?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const LocationDot: React.FC<LocationDotProps>;
|
|
10
|
+
export default LocationDot;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export interface MarqueeProps {
|
|
3
|
+
items: React.ReactNode[];
|
|
4
|
+
/** Scroll speed in pixels/second at rest (pre-hover). Defaults to 40. */
|
|
5
|
+
speed?: number;
|
|
6
|
+
/** Gap between items, in px. Figma uses 32 for Logos, 12 for Text -- no shared default assumption, so this must be passed explicitly. */
|
|
7
|
+
gap: number;
|
|
8
|
+
className?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare const Marquee: React.FC<MarqueeProps>;
|
|
11
|
+
export default Marquee;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export interface MetricProps {
|
|
3
|
+
value: string;
|
|
4
|
+
label: string;
|
|
5
|
+
/** Signed percentage (e.g. -0.2 for a decline). Presence renders the trend chip. */
|
|
6
|
+
trend?: number;
|
|
7
|
+
className?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const Metric: React.FC<MetricProps>;
|
|
10
|
+
export default Metric;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export interface MobileNavLink {
|
|
3
|
+
label: string;
|
|
4
|
+
href?: string;
|
|
5
|
+
onClick?: () => void;
|
|
6
|
+
}
|
|
7
|
+
export interface MobileNavigationMenuProps {
|
|
8
|
+
label: string;
|
|
9
|
+
links: MobileNavLink[];
|
|
10
|
+
ctaLabel?: string;
|
|
11
|
+
onCtaClick?: () => void;
|
|
12
|
+
/** Controlled open state. Omit to let the menu manage its own toggle. */
|
|
13
|
+
open?: boolean;
|
|
14
|
+
defaultOpen?: boolean;
|
|
15
|
+
onOpenChange?: (open: boolean) => void;
|
|
16
|
+
className?: string;
|
|
17
|
+
}
|
|
18
|
+
export declare const MobileNavigationMenu: React.FC<MobileNavigationMenuProps>;
|
|
19
|
+
export default MobileNavigationMenu;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export type PlaceholderLogoSize = 'sm' | 'md' | 'lg';
|
|
3
|
+
export interface PlaceholderLogoProps {
|
|
4
|
+
/** Figma Size axis. Defaults to "md". */
|
|
5
|
+
size?: PlaceholderLogoSize;
|
|
6
|
+
/** Custom logo/icon slot. Defaults to the Sakani mark, matching Figma. */
|
|
7
|
+
logo?: React.ReactNode;
|
|
8
|
+
/** Accessible name, e.g. "Acme Inc." */
|
|
9
|
+
label?: string;
|
|
10
|
+
className?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare const PlaceholderLogo: React.FC<PlaceholderLogoProps>;
|
|
13
|
+
export default PlaceholderLogo;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export interface ProfileCardSocialLink {
|
|
3
|
+
icon: React.ReactNode;
|
|
4
|
+
/** Accessible name, e.g. "X (Twitter)". */
|
|
5
|
+
label: string;
|
|
6
|
+
href?: string;
|
|
7
|
+
onClick?: () => void;
|
|
8
|
+
}
|
|
9
|
+
export interface ProfileCardProps {
|
|
10
|
+
name: string;
|
|
11
|
+
role: string;
|
|
12
|
+
avatarSrc?: string;
|
|
13
|
+
avatarAlt?: string;
|
|
14
|
+
/** Presence (with or without socialLinks) switches to the centered Detailed layout. */
|
|
15
|
+
bio?: string;
|
|
16
|
+
socialLinks?: ProfileCardSocialLink[];
|
|
17
|
+
className?: string;
|
|
18
|
+
}
|
|
19
|
+
export declare const ProfileCard: React.FC<ProfileCardProps>;
|
|
20
|
+
export default ProfileCard;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export type RichTextHeadingLevel = 'h2' | 'h3';
|
|
3
|
+
export interface RichTextHeadingProps {
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
/** Figma Level axis. Defaults to "h2". */
|
|
6
|
+
level?: RichTextHeadingLevel;
|
|
7
|
+
className?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const RichTextHeading: React.FC<RichTextHeadingProps>;
|
|
10
|
+
export default RichTextHeading;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export type SectionHeadingAlign = 'center' | 'left';
|
|
3
|
+
export interface SectionHeadingProps {
|
|
4
|
+
/** Small pill above the title, e.g. "Features". Omit to hide it. */
|
|
5
|
+
eyebrow?: string;
|
|
6
|
+
title: string;
|
|
7
|
+
subtitle?: string;
|
|
8
|
+
/** Figma Align axis. Defaults to "center". */
|
|
9
|
+
align?: SectionHeadingAlign;
|
|
10
|
+
/** Heading tag for `title`. Defaults to "h2". */
|
|
11
|
+
titleAs?: 'h1' | 'h2' | 'h3' | 'h4';
|
|
12
|
+
className?: string;
|
|
13
|
+
}
|
|
14
|
+
export declare const SectionHeading: React.FC<SectionHeadingProps>;
|
|
15
|
+
export default SectionHeading;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export type SubFeatureLayout = 'horizontal' | 'vertical';
|
|
3
|
+
export interface SubFeatureProps {
|
|
4
|
+
icon: React.ReactNode;
|
|
5
|
+
title: string;
|
|
6
|
+
description: string;
|
|
7
|
+
/** Figma Layout axis. Defaults to "horizontal". */
|
|
8
|
+
layout?: SubFeatureLayout;
|
|
9
|
+
/** Figma "Left border" axis. Defaults to false. */
|
|
10
|
+
leftBorder?: boolean;
|
|
11
|
+
className?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare const SubFeature: React.FC<SubFeatureProps>;
|
|
14
|
+
export default SubFeature;
|