@yoamigo.com/core 1.0.1 → 1.1.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.
@@ -1,11 +1,3 @@
1
- /**
2
- * API Client
3
- *
4
- * Handles communication with the backend API for:
5
- * - Email subscriptions
6
- * - Contact form submissions
7
- * - Product/cart operations (future)
8
- */
9
1
  /**
10
2
  * Subscribe to newsletter
11
3
  */
@@ -1,5 +1,6 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import React$1, { ReactNode, CSSProperties } from 'react';
2
+ import React$1, { ReactNode, CSSProperties, ComponentType } from 'react';
3
+ import { IconProps } from '@tabler/icons-react';
3
4
 
4
5
  type EditMode = 'read-only' | 'inline-edit';
5
6
  interface ContentStore {
@@ -159,11 +160,23 @@ interface YaLinkProps {
159
160
  /** Available pages for href dropdown (injected by template) */
160
161
  availablePages?: PageInfo[];
161
162
  /** Optional click handler called after navigation */
162
- onClick?: () => void;
163
+ onClick?: (e?: React$1.MouseEvent) => void;
163
164
  /** Target attribute for the link (e.g., "_blank" to open in new tab) */
164
165
  target?: string;
165
166
  /** Rel attribute for the link (e.g., "noopener noreferrer" for security) */
166
167
  rel?: string;
168
+ /** Title attribute for accessibility (tooltip on hover) */
169
+ title?: string;
170
+ /**
171
+ * Icon position relative to text. Uses fieldId.icon for icon name.
172
+ * - 'left': Icon before text (e.g., "🐦 Follow us")
173
+ * - 'right': Icon after text (e.g., "Learn more →")
174
+ * - 'only': Icon only, no text (e.g., social media buttons)
175
+ * - undefined: No icon, text only (default)
176
+ */
177
+ iconPosition?: 'left' | 'right' | 'only';
178
+ /** Icon size in pixels (default: 20 for left/right, 24 for only) */
179
+ iconSize?: number;
167
180
  }
168
181
  declare module '@tiptap/core' {
169
182
  interface Commands<ReturnType> {
@@ -177,7 +190,7 @@ declare module '@tiptap/core' {
177
190
  };
178
191
  }
179
192
  }
180
- declare function YaLink({ fieldId, href: defaultHref, className, wrapperClassName, style, as: Component, children, availablePages, onClick, target, rel }: YaLinkProps): react_jsx_runtime.JSX.Element;
193
+ declare function YaLink({ fieldId, href: defaultHref, className, wrapperClassName, style, as: Component, children, availablePages, onClick, target, rel, title, iconPosition, iconSize }: YaLinkProps): react_jsx_runtime.JSX.Element;
181
194
 
182
195
  interface BackgroundImageConfig {
183
196
  src: string;
@@ -374,5 +387,197 @@ declare function video(config: VideoFieldValue): string;
374
387
  * embed({ type: "soundcloud", src: "user/track" })
375
388
  */
376
389
  declare function embed(config: EmbedFieldValue): string;
390
+ /**
391
+ * Link field value for YaLink components (href only).
392
+ *
393
+ * YaLink uses compound fields: fieldId.text and fieldId.href
394
+ * Use this helper for the href value. The text is stored separately.
395
+ *
396
+ * @example
397
+ * // In content.ts:
398
+ * "hero.listenButton.href": link("#player"),
399
+ * "hero.listenButton.text": text("Listen to Preview"),
400
+ *
401
+ * // Or for external links:
402
+ * "footer.twitterLink.href": link("https://twitter.com/username"),
403
+ */
404
+ declare function link(href: string): string;
405
+
406
+ /**
407
+ * DynamicIcon Component - Render icons by name with lazy loading
408
+ *
409
+ * This component loads Tabler icons dynamically to enable tree-shaking.
410
+ * Icons are loaded on-demand and cached for subsequent renders.
411
+ *
412
+ * @example
413
+ * ```tsx
414
+ * // Basic usage
415
+ * <DynamicIcon name="IconBrandTwitter" size={24} />
416
+ *
417
+ * // With custom styling
418
+ * <DynamicIcon name="IconHeart" size={20} color="red" stroke={1.5} />
419
+ *
420
+ * // With fallback while loading
421
+ * <DynamicIcon name="IconUser" size={24} fallback={<Spinner />} />
422
+ * ```
423
+ */
424
+
425
+ interface DynamicIconProps extends Omit<IconProps, 'ref'> {
426
+ /** Name of the Tabler icon (e.g., "IconBrandTwitter", "IconHeart") */
427
+ name: string;
428
+ /** Optional fallback element to show while loading */
429
+ fallback?: React$1.ReactNode;
430
+ /** Additional class name for the icon wrapper */
431
+ className?: string;
432
+ }
433
+ /**
434
+ * Renders a Tabler icon by name with lazy loading.
435
+ *
436
+ * The component first checks the cache for an already-loaded icon.
437
+ * If not found, it dynamically imports the icon and caches it.
438
+ *
439
+ * For production builds where specific icons are known ahead of time,
440
+ * consider pre-registering icons with `registerIcon()` for faster initial render.
441
+ */
442
+ declare function DynamicIconComponent({ name, fallback, className, size, stroke, ...props }: DynamicIconProps): React$1.ReactElement | null;
443
+ /**
444
+ * Memoized DynamicIcon to prevent unnecessary re-renders.
445
+ * Re-renders only when name or size/stroke props change.
446
+ */
447
+ declare const DynamicIcon: React$1.MemoExoticComponent<typeof DynamicIconComponent>;
448
+
449
+ /**
450
+ * Icon Registry - Dynamic import system with caching
451
+ *
452
+ * This module provides tree-shakeable icon loading:
453
+ * - Pre-register icons for faster initial render (sync)
454
+ * - Dynamic import for lazy loading (async)
455
+ * - LRU-like cache to prevent memory bloat
456
+ */
457
+
458
+ type IconComponent = ComponentType<IconProps>;
459
+ type IconLoader = () => Promise<{
460
+ default: IconComponent;
461
+ }>;
462
+ /**
463
+ * Pre-register an icon with a custom loader.
464
+ * Use this for icons that should be available immediately (e.g., commonly used icons).
465
+ *
466
+ * @example
467
+ * ```ts
468
+ * // Pre-register for faster loading
469
+ * registerIcon('IconBrandTwitter', () => import('@tabler/icons-react').then(m => ({ default: m.IconBrandTwitter })))
470
+ * ```
471
+ */
472
+ declare function registerIcon(name: string, loader: IconLoader): void;
473
+ /**
474
+ * Pre-register multiple icons at once.
475
+ *
476
+ * @example
477
+ * ```ts
478
+ * registerIcons({
479
+ * IconBrandTwitter: () => import('@tabler/icons-react').then(m => ({ default: m.IconBrandTwitter })),
480
+ * IconBrandFacebook: () => import('@tabler/icons-react').then(m => ({ default: m.IconBrandFacebook })),
481
+ * })
482
+ * ```
483
+ */
484
+ declare function registerIcons(loaders: Record<string, IconLoader>): void;
485
+ /**
486
+ * Get a cached icon component synchronously.
487
+ * Returns null if the icon hasn't been loaded yet.
488
+ *
489
+ * @example
490
+ * ```ts
491
+ * const Icon = getIcon('IconBrandTwitter')
492
+ * if (Icon) {
493
+ * return <Icon size={24} />
494
+ * }
495
+ * ```
496
+ */
497
+ declare function getIcon(name: string): IconComponent | null;
498
+ /**
499
+ * Load an icon dynamically with caching.
500
+ * Uses pre-registered loader if available, otherwise falls back to dynamic import.
501
+ *
502
+ * @example
503
+ * ```ts
504
+ * const Icon = await loadIcon('IconBrandTwitter')
505
+ * if (Icon) {
506
+ * return <Icon size={24} />
507
+ * }
508
+ * ```
509
+ */
510
+ declare function loadIcon(name: string): Promise<IconComponent | null>;
511
+ /**
512
+ * Preload multiple icons in parallel.
513
+ * Useful for preloading icons that will be used soon.
514
+ *
515
+ * @example
516
+ * ```ts
517
+ * // Preload social icons before they're needed
518
+ * await preloadIcons(['IconBrandTwitter', 'IconBrandFacebook', 'IconBrandInstagram'])
519
+ * ```
520
+ */
521
+ declare function preloadIcons(names: string[]): Promise<void>;
522
+ /**
523
+ * Check if an icon is loaded and cached.
524
+ */
525
+ declare function isIconLoaded(name: string): boolean;
526
+
527
+ /**
528
+ * Icon Metadata - Curated list of commonly used icons
529
+ *
530
+ * This file contains ONLY metadata (strings) for search/filtering.
531
+ * Actual icon components are loaded dynamically via icon-registry.ts
532
+ *
533
+ * Categories:
534
+ * - brand: Social media and brand logos
535
+ * - communication: Email, phone, chat
536
+ * - media: Play, pause, volume, music
537
+ * - navigation: Arrows, menu, home
538
+ * - commerce: Cart, payment, shipping
539
+ * - ui: Common UI elements
540
+ * - files: Documents, folders
541
+ * - weather: Weather icons
542
+ * - misc: Miscellaneous useful icons
543
+ *
544
+ * Search Features:
545
+ * - Keyword matching (exact substring)
546
+ * - Alias matching (common abbreviations, rebrands)
547
+ * - Fuzzy matching (typo tolerance via Levenshtein distance)
548
+ */
549
+ type IconCategory = 'brand' | 'communication' | 'media' | 'navigation' | 'commerce' | 'ui' | 'files' | 'weather' | 'misc';
550
+ interface IconMeta {
551
+ name: string;
552
+ category: IconCategory;
553
+ keywords: string[];
554
+ }
555
+ /**
556
+ * Curated list of ~150 commonly used icons
557
+ * These cover most website builder use cases
558
+ */
559
+ declare const ICON_METADATA: IconMeta[];
560
+ /**
561
+ * Category display names for the icon picker UI
562
+ */
563
+ declare const ICON_CATEGORIES: Record<IconCategory, string>;
564
+ /**
565
+ * Get icons by category
566
+ */
567
+ declare function getIconsByCategory(category: IconCategory): IconMeta[];
568
+ /**
569
+ * Search icons by keyword, alias, or fuzzy name match
570
+ */
571
+ declare function searchIcons(query: string): IconMeta[];
572
+ /**
573
+ * Get icon metadata by name
574
+ */
575
+ declare function getIconMeta(name: string): IconMeta | undefined;
576
+ /**
577
+ * Get human-readable label from icon name
578
+ * e.g., "IconBrandTwitter" -> "Twitter"
579
+ * e.g., "IconShoppingCart" -> "Shopping Cart"
580
+ */
581
+ declare function getIconLabel(name: string): string;
377
582
 
378
- export { serializeBackgroundConfig as A, type YaContainerProps as B, ContentStoreProvider as C, type BackgroundConfig as D, type EditMode as E, type BackgroundImageConfig as F, type ImageFieldValue as I, MpText as M, type OverlayConfig as O, type PageInfo as P, type StaticTextProps as S, type VideoFieldValue as V, YaImage as Y, type ContentStore as a, background as b, MpImage as c, type StaticImageProps as d, embed as e, MarkdownText as f, type MarkdownTextProps as g, type YaImageProps as h, image as i, YaVideo as j, serializeVideoValue as k, type YaVideoProps as l, YaEmbed as m, serializeEmbedValue as n, type YaEmbedProps as o, parseEmbedUrl as p, type EmbedFieldValue as q, type EmbedType as r, serializeImageValue as s, text as t, useContentStore as u, video as v, YaLink as w, type YaLinkProps as x, YaContainer as y, parseBackgroundConfig as z };
583
+ export { serializeBackgroundConfig as $, getIconMeta as A, type IconCategory as B, ContentStoreProvider as C, DynamicIcon as D, type EditMode as E, type IconMeta as F, serializeImageValue as G, type YaImageProps as H, type IconComponent as I, type ImageFieldValue as J, YaVideo as K, serializeVideoValue as L, MpText as M, type YaVideoProps as N, YaEmbed as O, type PageInfo as P, serializeEmbedValue as Q, type YaEmbedProps as R, type StaticTextProps as S, type EmbedFieldValue as T, type EmbedType as U, type VideoFieldValue as V, YaLink as W, type YaLinkProps as X, YaImage as Y, YaContainer as Z, parseBackgroundConfig as _, type DynamicIconProps as a, type YaContainerProps as a0, type BackgroundConfig as a1, type BackgroundImageConfig as a2, type OverlayConfig as a3, background as b, registerIcons as c, loadIcon as d, embed as e, isIconLoaded as f, getIcon as g, type IconLoader as h, image as i, getIconLabel as j, type ContentStore as k, link as l, MpImage as m, type StaticImageProps as n, MarkdownText as o, preloadIcons as p, type MarkdownTextProps as q, registerIcon as r, parseEmbedUrl as s, text as t, useContentStore as u, video as v, ICON_METADATA as w, ICON_CATEGORIES as x, getIconsByCategory as y, searchIcons as z };
package/dist/index.d.ts CHANGED
@@ -1,11 +1,12 @@
1
1
  import { C as ChangeSource, Q as QueryFilter, b as CollectionRecord, o as CartItem, E as EditMode } from './cart-storage-DFdGPcwm.js';
2
2
  export { a as CollectionClient, d as CollectionClientConfig, t as ContentStoreContextType, v as ContentStoreMode, p as ContentStoreProvider, L as ListOptions, c as ListResponse, S as SingleResponse, f as clearSessionId, g as getCollectionClient, n as getLocalCartItemCount, k as getLocalCartItems, e as getSessionId, i as initBuilderSelection, r as resetCollectionClient, q as useContentStore } from './cart-storage-DFdGPcwm.js';
3
- export { D as BackgroundConfig, F as BackgroundImageConfig, C as ContentStoreProviderProd, q as EmbedFieldValue, r as EmbedType, I as ImageFieldValue, f as MarkdownText, g as MarkdownTextProps, O as OverlayConfig, P as PageInfo, c as StaticImage, d as StaticImageProps, M as StaticText, S as StaticTextProps, V as VideoFieldValue, y as YaContainer, B as YaContainerProps, m as YaEmbed, o as YaEmbedProps, Y as YaImage, h as YaImageProps, w as YaLink, x as YaLinkProps, j as YaVideo, l as YaVideoProps, b as background, e as embed, i as image, z as parseBackgroundConfig, p as parseEmbedUrl, A as serializeBackgroundConfig, n as serializeEmbedValue, s as serializeImageValue, k as serializeVideoValue, t as text, u as useContentStoreProd, v as video } from './content-helpers-DOUKazMz.js';
3
+ export { a1 as BackgroundConfig, a2 as BackgroundImageConfig, C as ContentStoreProviderProd, D as DynamicIcon, a as DynamicIconProps, T as EmbedFieldValue, U as EmbedType, x as ICON_CATEGORIES, w as ICON_METADATA, B as IconCategory, I as IconComponent, h as IconLoader, F as IconMeta, J as ImageFieldValue, o as MarkdownText, q as MarkdownTextProps, a3 as OverlayConfig, P as PageInfo, m as StaticImage, n as StaticImageProps, M as StaticText, S as StaticTextProps, V as VideoFieldValue, Z as YaContainer, a0 as YaContainerProps, O as YaEmbed, R as YaEmbedProps, Y as YaImage, H as YaImageProps, W as YaLink, X as YaLinkProps, K as YaVideo, N as YaVideoProps, b as background, e as embed, g as getIcon, j as getIconLabel, A as getIconMeta, y as getIconsByCategory, i as image, f as isIconLoaded, l as link, d as loadIcon, _ as parseBackgroundConfig, s as parseEmbedUrl, p as preloadIcons, r as registerIcon, c as registerIcons, z as searchIcons, $ as serializeBackgroundConfig, Q as serializeEmbedValue, G as serializeImageValue, L as serializeVideoValue, t as text, u as useContentStoreProd, v as video } from './icon-metadata-CVUpe16i.js';
4
4
  import * as react_jsx_runtime from 'react/jsx-runtime';
5
5
  import React$1, { ReactNode } from 'react';
6
6
  export { Link, LinkProps, NavigateFunction, RouteDefinition, Router, RouterProps, ScrollRestoration, createRouteDefinition, extractRouteParams, filePathToRoutePath, generatePath, sortRoutesBySpecificity, useNavigate } from './router.js';
7
7
  export { Route, Switch, useLocation, useParams } from 'wouter';
8
8
  export { A as AssetResolverFn, C as ContentRegistry, c as contentRegistry, a as getAllContent, g as getContent, h as hasContent, r as registerContent, b as resolveAssetUrl, s as setAssetResolver } from './asset-resolver-BnIvDkVv.js';
9
+ import '@tabler/icons-react';
9
10
 
10
11
  /** Common HTML elements that YaText can render as */
11
12
  type YaTextElement = 'span' | 'div' | 'p' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'label' | 'strong' | 'em';
@@ -30,6 +31,58 @@ declare module '@tiptap/core' {
30
31
  }
31
32
  declare function YaText({ fieldId, className, as: Component, children }: YaTextProps): react_jsx_runtime.JSX.Element;
32
33
 
34
+ type AccessRule = 'PUBLIC' | 'EMAIL_SIGNUP' | 'SUBSCRIBERS_ONLY' | 'PASSWORD_PROTECTED';
35
+ interface AssetAccessInfo {
36
+ assetId: string;
37
+ filename: string;
38
+ fileType: string;
39
+ folderId?: string;
40
+ folderName?: string;
41
+ accessRule: AccessRule;
42
+ showPreview: boolean;
43
+ previewDuration: number;
44
+ requiresAuth: boolean;
45
+ authType: 'email' | 'password' | 'subscriber' | null;
46
+ url?: string;
47
+ }
48
+ interface YaProtectedMediaProps {
49
+ /** Field ID for the asset */
50
+ fieldId: string;
51
+ /** Asset ID from the database */
52
+ assetId: string;
53
+ /** Media type: audio or video */
54
+ type: 'audio' | 'video';
55
+ /** Optional CSS class name */
56
+ className?: string;
57
+ /** Preview poster image for video */
58
+ poster?: string;
59
+ /** Default aspect ratio (for video) */
60
+ aspectRatio?: string;
61
+ /** Optional title/label for the media */
62
+ title?: string;
63
+ /** Called when unlock is successful */
64
+ onUnlock?: () => void;
65
+ /** Called when unlock fails */
66
+ onUnlockError?: (error: string) => void;
67
+ }
68
+ declare function YaProtectedMedia({ fieldId, assetId, type, className, poster, aspectRatio, title, onUnlock, onUnlockError, }: YaProtectedMediaProps): react_jsx_runtime.JSX.Element | null;
69
+
70
+ interface YaIconProps {
71
+ /** Field ID for content storage - icon name stored at fieldId.icon */
72
+ fieldId: string;
73
+ /** Default icon name if none set in content store (e.g., "IconHeart") */
74
+ fallback?: string;
75
+ /** Icon size in pixels (default: 24) */
76
+ size?: number;
77
+ /** Icon stroke width (default: 2) */
78
+ stroke?: number;
79
+ /** Additional classes for the icon itself */
80
+ className?: string;
81
+ /** Classes for the wrapper span (edit mode only) */
82
+ wrapperClassName?: string;
83
+ }
84
+ declare function YaIcon({ fieldId, fallback, size, stroke, className, wrapperClassName, }: YaIconProps): react_jsx_runtime.JSX.Element | null;
85
+
33
86
  /**
34
87
  * SafeHtml Component - Secure HTML Renderer
35
88
  *
@@ -1731,4 +1784,19 @@ interface UseSubscriptionStatusResult {
1731
1784
  */
1732
1785
  declare function useSubscriptionStatus(options: UseSubscriptionStatusOptions): UseSubscriptionStatusResult;
1733
1786
 
1734
- export { type AIEditContextValue, AIEditProvider, type AnimatedTextOptions, type AnimatedTextResult, type AnimationConfig, type AnimationMetadata, type AnimationOptions, type AnimationPhase, type AnimationResult, type AnimationState, type AnimationStrategy, type AnyField, CartItem, CartProvider, type CartProviderProps, type CheckoutOptions, type CheckoutResult, type CheckoutSessionStatus, type CollectionContentContextValue, CollectionContentProvider, type CollectionContentProviderProps, type CollectionData, CollectionDetailPage, type CollectionDetailPageProps, type CollectionDetailRenderProps, CollectionItem, type CollectionItemProps, type CollectionItemRenderProps, CollectionList, type CollectionListData, CollectionListPage, type CollectionListPageProps, type CollectionListPaginationProps, type CollectionListProps, type CollectionListRenderProps, CollectionRecord, type ContainerField, type ContentHandle, type CustomerPortalParams, type CustomerPortalResult, type EmbedField, type ImageField, type ImageValue, type LinkField, type LinkValue, type Product, QueryFilter, SafeHtml, type SafeHtmlProps, SafeTriangleBelow, type SubscribeParams, type SubscribeResult, type SubscriptionDetails, type SubscriptionPrice, type SubscriptionProduct, type SubscriptionStatusResult, type SubscriptionStatusType, type SubscriptionTier, type TextAnimationMetadata, type TextDiff, type TextField, Tooltip, type TooltipProps, type UseCartOptions, type UseCartResult, type UseCheckoutOptions, type UseCheckoutResult, type UseCheckoutStatusOptions, type UseCheckoutStatusResult, type UseCollectionListOptions, type UseCollectionListResult, type UseCollectionRecordOptions, type UseCollectionRecordResult, type UseCustomerPortalOptions, type UseCustomerPortalResult, type UseProductOptions, type UseProductResult, type UseProductsOptions, type UseProductsResult, type UseSubscriptionOptions, type UseSubscriptionResult, type UseSubscriptionStatusOptions, type UseSubscriptionStatusResult, type UseSubscriptionTiersOptions, type UseSubscriptionTiersResult, type VideoField, YaText, type YaTextProps, buildIntermediateText, calculateAnimationTiming, computeTextDiff, containsHtml, getTextCursorPosition, imageCrossfadeStrategy, linkTransitionStrategy, parseFieldValue, stringifyFieldValue, stripHtml, textTypingStrategy, useAIEditAnimation, useAIEditContext, useAIEditContextOptional, useAnimatedText, useCart, useCartContext, useCheckout, useCheckoutStatus, useCollectionContent, useCollectionList, useCollectionRecord, useContent, useCustomerPortal, useOptionalCartContext, useProduct, useProducts, useSafeTriangle, useSubscription, useSubscriptionStatus, useSubscriptionTiers };
1787
+ interface IconPickerProps {
1788
+ /** Currently selected icon name (e.g., "IconBrandTwitter") */
1789
+ value: string | null;
1790
+ /** Callback when icon is selected */
1791
+ onChange: (iconName: string | null) => void;
1792
+ /** Callback to close the picker */
1793
+ onClose: () => void;
1794
+ }
1795
+ /**
1796
+ * Get display label for the icon picker trigger
1797
+ */
1798
+ declare function getIconPickerLabel(value: string | null): string;
1799
+
1800
+ declare function IconPicker({ value, onChange, onClose }: IconPickerProps): react_jsx_runtime.JSX.Element;
1801
+
1802
+ export { type AIEditContextValue, AIEditProvider, type AccessRule, type AnimatedTextOptions, type AnimatedTextResult, type AnimationConfig, type AnimationMetadata, type AnimationOptions, type AnimationPhase, type AnimationResult, type AnimationState, type AnimationStrategy, type AnyField, type AssetAccessInfo, CartItem, CartProvider, type CartProviderProps, type CheckoutOptions, type CheckoutResult, type CheckoutSessionStatus, type CollectionContentContextValue, CollectionContentProvider, type CollectionContentProviderProps, type CollectionData, CollectionDetailPage, type CollectionDetailPageProps, type CollectionDetailRenderProps, CollectionItem, type CollectionItemProps, type CollectionItemRenderProps, CollectionList, type CollectionListData, CollectionListPage, type CollectionListPageProps, type CollectionListPaginationProps, type CollectionListProps, type CollectionListRenderProps, CollectionRecord, type ContainerField, type ContentHandle, type CustomerPortalParams, type CustomerPortalResult, type EmbedField, IconPicker, type IconPickerProps, type ImageField, type ImageValue, type LinkField, type LinkValue, type Product, QueryFilter, SafeHtml, type SafeHtmlProps, SafeTriangleBelow, type SubscribeParams, type SubscribeResult, type SubscriptionDetails, type SubscriptionPrice, type SubscriptionProduct, type SubscriptionStatusResult, type SubscriptionStatusType, type SubscriptionTier, type TextAnimationMetadata, type TextDiff, type TextField, Tooltip, type TooltipProps, type UseCartOptions, type UseCartResult, type UseCheckoutOptions, type UseCheckoutResult, type UseCheckoutStatusOptions, type UseCheckoutStatusResult, type UseCollectionListOptions, type UseCollectionListResult, type UseCollectionRecordOptions, type UseCollectionRecordResult, type UseCustomerPortalOptions, type UseCustomerPortalResult, type UseProductOptions, type UseProductResult, type UseProductsOptions, type UseProductsResult, type UseSubscriptionOptions, type UseSubscriptionResult, type UseSubscriptionStatusOptions, type UseSubscriptionStatusResult, type UseSubscriptionTiersOptions, type UseSubscriptionTiersResult, type VideoField, YaIcon, type YaIconProps, YaProtectedMedia, type YaProtectedMediaProps, YaText, type YaTextProps, buildIntermediateText, calculateAnimationTiming, computeTextDiff, containsHtml, getIconPickerLabel, getTextCursorPosition, imageCrossfadeStrategy, linkTransitionStrategy, parseFieldValue, stringifyFieldValue, stripHtml, textTypingStrategy, useAIEditAnimation, useAIEditContext, useAIEditContextOptional, useAnimatedText, useCart, useCartContext, useCheckout, useCheckoutStatus, useCollectionContent, useCollectionList, useCollectionRecord, useContent, useCustomerPortal, useOptionalCartContext, useProduct, useProducts, useSafeTriangle, useSubscription, useSubscriptionStatus, useSubscriptionTiers };