@landtrustinc/design-system 1.2.75 → 1.2.77

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
@@ -2591,6 +2591,16 @@ type NavigationProps = {
2591
2591
  };
2592
2592
  declare const Navigation: ({ onMenuToggle, className, logoVariant, logoTheme, navLinks, onAvatarClick, ...rest }: NavigationProps) => _emotion_react_jsx_runtime.JSX.Element;
2593
2593
 
2594
+ type PackageCardFeatureCheck = {
2595
+ /**
2596
+ * Feature label (matched vs unmatched styling is controlled by `matched`)
2597
+ */
2598
+ label: React__default.ReactNode;
2599
+ /**
2600
+ * When false, shows error icon and muted label; otherwise success icon and primary label
2601
+ */
2602
+ matched?: boolean;
2603
+ };
2594
2604
  type PackageCardBadge = {
2595
2605
  /**
2596
2606
  * Icon variant for the badge
@@ -2638,6 +2648,10 @@ type PackageCardProps = {
2638
2648
  * Additional CSS class names
2639
2649
  */
2640
2650
  className?: string;
2651
+ /**
2652
+ * Stacked feature rows with check/x icons (below title/price; separate from amenity `badges`)
2653
+ */
2654
+ featureChecks?: PackageCardFeatureCheck[];
2641
2655
  /**
2642
2656
  * Array of badges to display (features/amenities)
2643
2657
  */
@@ -2698,7 +2712,7 @@ type PackageCardProps = {
2698
2712
  */
2699
2713
  isLoading?: boolean;
2700
2714
  };
2701
- declare const PackageCard: ({ images, title, subtitle, startingPrice, isFavorited, onFavoriteClick, onClick, className, badges, availabilityBadges, id, hasContentBackground, orientation, actions, size, isLoading, ...rest }: PackageCardProps) => _emotion_react_jsx_runtime.JSX.Element;
2715
+ declare const PackageCard: ({ images, title, subtitle, startingPrice, isFavorited, onFavoriteClick, onClick, className, featureChecks, badges, availabilityBadges, id, hasContentBackground, orientation, actions, size, isLoading, ...rest }: PackageCardProps) => _emotion_react_jsx_runtime.JSX.Element;
2702
2716
 
2703
2717
  type PackageHeaderProps = {
2704
2718
  /**
@@ -3129,4 +3143,4 @@ declare const Widget: React__default.FC<WidgetProps> & {
3129
3143
  }>;
3130
3144
  };
3131
3145
 
3132
- export { AIResponse, type AIResponseProps, ActionMenu, type ActionMenuItem, type ActionMenuProps, AddOnBlock, type AddOnBlockProps, AvailabilityBadge, type AvailabilityBadgeProps, type AvailabilityBadgeVariant, Avatar, type AvatarProps, type AvatarSize, type AvatarType, type BaseInputProps, BottomDrawer, type BottomDrawerProps, Box, type BoxProps, Button, type ButtonProps, type ButtonVariants, BytescaleImage, type BytescaleImageProps, type CarouselPositions, ChatWidget, type ChatWidgetMessage, type ChatWidgetProps, Column, type ColumnProps, ContactLandownerButton, type ContactLandownerButtonProps, Container, CtaCard, type CtaCardProps, Divider, type DividerProps, type DotsColors, type EarlyAccessTimerConfig, type FeatureItem, FeatureList, FeatureListItem, type FeatureListItemProps, type FeatureListProps, type FeatureListSection, FieldNoteCard, type FieldNoteCardProps, FormField, type FormFieldProps, GlobalStyle, Grid, type GridBreakpoint, GridContainer, type GridContainerProps, type GridProps, Heading, type HeadingProps, HuntCard, type HuntCardProps, Icon, IconLabel, type IconLabelProps, type IconProps, type IconSize, IconSizeMap, type IconVariantTypes$1 as IconVariantTypes, type ImageGalleryItem, ImageGalleryModal, ImageGalleryModal as ImageGalleryModalComponent, type ImageGalleryModalProps, InfoBox, type InfoBoxProps, Input, type InputProps, type InputSize, type InputVariant, LandownerProfile, type LandownerProfileProps, LayoutTokens, ListingChat, type ListingChatProps, Logo, type LogoProps, type LogoTheme, type LogoVariant, MarkdownContent, type MarkdownContentProps, MessageBubble, type MessageBubbleProps, Modal, Modal as ModalComponent, type ModalProps, type ModalSize, type NavLink, Navigation, type NavigationProps, PackageCard, type PackageCardBadge, type PackageCardProps, PackageHeader, type PackageHeaderProps, ProgressBar, type ProgressBarProps, type ResponsiveValue, ReviewCard, type ReviewCardProps, Reviews, type ReviewsProps, ReviewsShowcase, ScrollingCarousel, type ScrollingCarouselProps, ScrollingCarouselStep, type ScrollingCarouselStepProps, Select, type SelectOption, type SelectProps, Spinner, type SpinnerProps, StarRating, type StarRatingProps, type SuggestedPrompt, type TFontWeight, type THeadingSize, type TTextAlign, type TTextSize, type TTextWrap, TagChip, type TagChipProps, type TagChipVariant, Text, TextArea, type TextProps, type TextareaProps, ThemeTokens, ThinkingIndicator, type ThinkingIndicatorProps, type ThinkingIndicatorSize, type ThinkingStep, type ThinkingStepStatus, ThinkingSteps, type ThinkingStepsProps, type TimeLeft, Timer, type TimerProps, Tooltip, type TooltipPosition, type TooltipProps, TopMatchingFieldNote, type TopMatchingFieldNoteProps, TopMatchingReview, type TopMatchingReviewProps, type UseBottomDrawerOptions, type UseBottomDrawerReturn, UserCard, type UserCardProps, Widget, WidgetPanel, type WidgetPanelProps, type WidgetProps, WidgetTrigger, type WidgetTriggerProps, globalStyles, styles, useBottomDrawer, useBottomDrawer as useBottomDrawerHook };
3146
+ export { AIResponse, type AIResponseProps, ActionMenu, type ActionMenuItem, type ActionMenuProps, AddOnBlock, type AddOnBlockProps, AvailabilityBadge, type AvailabilityBadgeProps, type AvailabilityBadgeVariant, Avatar, type AvatarProps, type AvatarSize, type AvatarType, type BaseInputProps, BottomDrawer, type BottomDrawerProps, Box, type BoxProps, Button, type ButtonProps, type ButtonVariants, BytescaleImage, type BytescaleImageProps, type CarouselPositions, ChatWidget, type ChatWidgetMessage, type ChatWidgetProps, Column, type ColumnProps, ContactLandownerButton, type ContactLandownerButtonProps, Container, CtaCard, type CtaCardProps, Divider, type DividerProps, type DotsColors, type EarlyAccessTimerConfig, type FeatureItem, FeatureList, FeatureListItem, type FeatureListItemProps, type FeatureListProps, type FeatureListSection, FieldNoteCard, type FieldNoteCardProps, FormField, type FormFieldProps, GlobalStyle, Grid, type GridBreakpoint, GridContainer, type GridContainerProps, type GridProps, Heading, type HeadingProps, HuntCard, type HuntCardProps, Icon, IconLabel, type IconLabelProps, type IconProps, type IconSize, IconSizeMap, type IconVariantTypes$1 as IconVariantTypes, type ImageGalleryItem, ImageGalleryModal, ImageGalleryModal as ImageGalleryModalComponent, type ImageGalleryModalProps, InfoBox, type InfoBoxProps, Input, type InputProps, type InputSize, type InputVariant, LandownerProfile, type LandownerProfileProps, LayoutTokens, ListingChat, type ListingChatProps, Logo, type LogoProps, type LogoTheme, type LogoVariant, MarkdownContent, type MarkdownContentProps, MessageBubble, type MessageBubbleProps, Modal, Modal as ModalComponent, type ModalProps, type ModalSize, type NavLink, Navigation, type NavigationProps, PackageCard, type PackageCardBadge, type PackageCardFeatureCheck, type PackageCardProps, PackageHeader, type PackageHeaderProps, ProgressBar, type ProgressBarProps, type ResponsiveValue, ReviewCard, type ReviewCardProps, Reviews, type ReviewsProps, ReviewsShowcase, ScrollingCarousel, type ScrollingCarouselProps, ScrollingCarouselStep, type ScrollingCarouselStepProps, Select, type SelectOption, type SelectProps, Spinner, type SpinnerProps, StarRating, type StarRatingProps, type SuggestedPrompt, type TFontWeight, type THeadingSize, type TTextAlign, type TTextSize, type TTextWrap, TagChip, type TagChipProps, type TagChipVariant, Text, TextArea, type TextProps, type TextareaProps, ThemeTokens, ThinkingIndicator, type ThinkingIndicatorProps, type ThinkingIndicatorSize, type ThinkingStep, type ThinkingStepStatus, ThinkingSteps, type ThinkingStepsProps, type TimeLeft, Timer, type TimerProps, Tooltip, type TooltipPosition, type TooltipProps, TopMatchingFieldNote, type TopMatchingFieldNoteProps, TopMatchingReview, type TopMatchingReviewProps, type UseBottomDrawerOptions, type UseBottomDrawerReturn, UserCard, type UserCardProps, Widget, WidgetPanel, type WidgetPanelProps, type WidgetProps, WidgetTrigger, type WidgetTriggerProps, globalStyles, styles, useBottomDrawer, useBottomDrawer as useBottomDrawerHook };
package/dist/index.js CHANGED
@@ -6583,6 +6583,11 @@ var useWidgetScrollLock = (isExpanded, containerRef) => {
6583
6583
  (0, import_react34.useEffect)(() => {
6584
6584
  if (!isExpanded)
6585
6585
  return;
6586
+ const isMobile = window.matchMedia(
6587
+ `(max-width: calc(${screens.lg} - 1px))`
6588
+ ).matches;
6589
+ if (!isMobile)
6590
+ return;
6586
6591
  const scrollY = window.scrollY;
6587
6592
  const html = document.documentElement;
6588
6593
  const originalOverflow = html.style.overflow;
@@ -11035,6 +11040,7 @@ var PackageCard = ({
11035
11040
  onFavoriteClick,
11036
11041
  onClick,
11037
11042
  className,
11043
+ featureChecks,
11038
11044
  badges,
11039
11045
  availabilityBadges,
11040
11046
  id,
@@ -11176,7 +11182,7 @@ var PackageCard = ({
11176
11182
  display: "flex",
11177
11183
  flexDirection: "column",
11178
11184
  gap: "var(--spacing-1)",
11179
- mb: "var(--spacing-1)",
11185
+ mb: "var(--spacing-2)",
11180
11186
  children: [
11181
11187
  /* @__PURE__ */ (0, import_jsx_runtime266.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime266.jsx)(
11182
11188
  Text_default,
@@ -11196,6 +11202,48 @@ var PackageCard = ({
11196
11202
  ]
11197
11203
  }
11198
11204
  ),
11205
+ featureChecks && featureChecks.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime266.jsx)(
11206
+ Box_default,
11207
+ {
11208
+ display: "flex",
11209
+ flexDirection: "column",
11210
+ gap: "var(--spacing-1)",
11211
+ mb: "var(--spacing-1)",
11212
+ width: "100%",
11213
+ children: featureChecks.map((feature, index) => {
11214
+ const isMatched = feature.matched !== false;
11215
+ return /* @__PURE__ */ (0, import_jsx_runtime266.jsxs)(
11216
+ Box_default,
11217
+ {
11218
+ display: "flex",
11219
+ alignItems: "center",
11220
+ gap: "var(--spacing-2)",
11221
+ minWidth: 0,
11222
+ children: [
11223
+ /* @__PURE__ */ (0, import_jsx_runtime266.jsx)(
11224
+ Icon_default,
11225
+ {
11226
+ variant: isMatched ? "Check" : "Xmark",
11227
+ size: "small",
11228
+ fill: isMatched ? "var(--text-success)" : "var(--text-error)"
11229
+ }
11230
+ ),
11231
+ /* @__PURE__ */ (0, import_jsx_runtime266.jsx)(
11232
+ Text_default,
11233
+ {
11234
+ size: "xs",
11235
+ fontWeight: "semibold",
11236
+ color: isMatched ? "var(--text-primary)" : "var(--text-disabled)",
11237
+ children: feature.label
11238
+ }
11239
+ )
11240
+ ]
11241
+ },
11242
+ `feature-check-${index}`
11243
+ );
11244
+ })
11245
+ }
11246
+ ),
11199
11247
  badges && badges.length > 0 && size !== "xs" && /* @__PURE__ */ (0, import_jsx_runtime266.jsx)(
11200
11248
  Box_default,
11201
11249
  {