@planetaexo/design-system 0.3.15 → 0.3.17

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.cts CHANGED
@@ -431,6 +431,117 @@ interface BookingFormProps {
431
431
  }
432
432
  declare function BookingForm({ defaultValues, onSubmit, submitLabel, loading, showHeader, title, subtitle, className, }: BookingFormProps): react_jsx_runtime.JSX.Element;
433
433
 
434
+ type RegistrationFieldType = "text" | "textarea" | "number" | "date" | "birthDate" | "select" | "radio" | "checkbox" | "name" | "phone" | "nationality" | "emergencyContact";
435
+ interface RegistrationFieldOption {
436
+ value: string;
437
+ label: string;
438
+ }
439
+ interface RegistrationField {
440
+ id: string;
441
+ label: string;
442
+ type: RegistrationFieldType;
443
+ required?: boolean;
444
+ order?: number;
445
+ helpText?: string;
446
+ options?: RegistrationFieldOption[];
447
+ }
448
+ interface RegistrationNameValue {
449
+ firstName: string;
450
+ lastName: string;
451
+ }
452
+ interface RegistrationPhoneValue {
453
+ /** ISO country code used by PhoneCountrySelect, e.g. "BR" */
454
+ country: string;
455
+ /** National number, digits only */
456
+ nationalNumber: string;
457
+ }
458
+ interface RegistrationEmergencyContactValue {
459
+ contactName: RegistrationNameValue;
460
+ phone: RegistrationPhoneValue;
461
+ }
462
+ type RegistrationFieldValue = string | Date | boolean | string[] | RegistrationNameValue | RegistrationPhoneValue | RegistrationEmergencyContactValue | undefined;
463
+ type RegistrationFormValues = Record<string, RegistrationFieldValue>;
464
+ interface RegistrationAdventure {
465
+ name: string;
466
+ startDate?: string;
467
+ endDate?: string;
468
+ partnerName?: string;
469
+ }
470
+ interface RegistrationBooking {
471
+ id: string;
472
+ }
473
+ interface RegistrationTraveller {
474
+ fullName: string;
475
+ }
476
+ interface RegistrationTerms {
477
+ markdown: string;
478
+ acceptControl?: "checkbox" | "radio";
479
+ }
480
+ interface RegistrationFormLabels {
481
+ formSubtitle?: string;
482
+ detailsSectionTitle?: string;
483
+ tripInfoSectionTitle?: string;
484
+ termsSectionTitle?: string;
485
+ termsAccept?: string;
486
+ termsDecline?: string;
487
+ submitButton?: string;
488
+ submitting?: string;
489
+ adventureLabel?: string;
490
+ bookingLabel?: string;
491
+ partnerLabel?: string;
492
+ travellerLabel?: string;
493
+ firstNameLabel?: string;
494
+ lastNameLabel?: string;
495
+ phoneLabel?: string;
496
+ emergencyContactFirstName?: string;
497
+ emergencyContactLastName?: string;
498
+ emergencyContactPhoneLabel?: string;
499
+ nationalityLabel?: string;
500
+ selectPlaceholder?: string;
501
+ optionalLabel?: string;
502
+ }
503
+ interface RegistrationFormProps {
504
+ /** Logo shown above the title. Defaults to "/logo-planetaexo.png" (matching Offer). Pass null to hide. */
505
+ logo?: string | null;
506
+ logoAlt?: string;
507
+ /**
508
+ * When provided, the header becomes a hero card with this image as the background
509
+ * and the logo automatically inverted to white. Title and subtitle overlay the image.
510
+ */
511
+ heroImage?: string;
512
+ heroImageAlt?: string;
513
+ title: string;
514
+ subtitle?: string;
515
+ adventure?: RegistrationAdventure;
516
+ booking?: RegistrationBooking;
517
+ traveller?: RegistrationTraveller;
518
+ fields: RegistrationField[];
519
+ values?: RegistrationFormValues;
520
+ defaultValues?: RegistrationFormValues;
521
+ onChange?: (values: RegistrationFormValues) => void;
522
+ onSubmit?: (values: RegistrationFormValues) => void;
523
+ terms?: RegistrationTerms;
524
+ includeTerms?: boolean;
525
+ loading?: boolean;
526
+ error?: string;
527
+ defaultPhoneCountry?: string;
528
+ dateFormatter?: (iso: string | undefined) => string;
529
+ labels?: RegistrationFormLabels;
530
+ className?: string;
531
+ }
532
+ declare function RegistrationForm({ logo, logoAlt, heroImage, heroImageAlt, title, subtitle, adventure, booking, traveller, fields, values, defaultValues, onChange, onSubmit, terms, includeTerms, loading, error, defaultPhoneCountry, dateFormatter, labels, className, }: RegistrationFormProps): react_jsx_runtime.JSX.Element;
533
+ interface RegistrationSuccessCardProps {
534
+ title?: string;
535
+ message?: string;
536
+ answersTitle?: string;
537
+ fields: RegistrationField[];
538
+ answers: RegistrationFormValues;
539
+ dateFormatter?: (date: Date | string | undefined) => string;
540
+ formatAnswer?: (field: RegistrationField, value: RegistrationFieldValue) => string;
541
+ className?: string;
542
+ }
543
+ declare function RegistrationSuccessCard({ title, message, answersTitle, fields, answers, dateFormatter, formatAnswer, className, }: RegistrationSuccessCardProps): react_jsx_runtime.JSX.Element;
544
+
434
545
  interface FloatingInputProps extends React.InputHTMLAttributes<HTMLInputElement> {
435
546
  label: string;
436
547
  error?: string;
@@ -490,6 +601,15 @@ interface DatePickerFieldProps {
490
601
  }
491
602
  declare function DatePickerField({ label, required, value, onChange, placeholder, disabled, fromDate, className, }: DatePickerFieldProps): react_jsx_runtime.JSX.Element;
492
603
 
604
+ interface BirthDateFieldProps {
605
+ label: string;
606
+ required?: boolean;
607
+ value: Date | undefined;
608
+ onChange: (date: Date | undefined) => void;
609
+ className?: string;
610
+ }
611
+ declare function BirthDateField({ label, required, value, onChange, className, }: BirthDateFieldProps): react_jsx_runtime.JSX.Element;
612
+
493
613
  interface FilterItem {
494
614
  id: string;
495
615
  label: string;
@@ -1173,4 +1293,4 @@ declare function LeadCapturePopup({ config: _config, }: {
1173
1293
  config: LeadCapturePopupConfig;
1174
1294
  }): react_jsx_runtime.JSX.Element | null;
1175
1295
 
1176
- export { ActivityCard, type ActivityCardProps, type ActivityCardSize, Alert, type AlertProps, type AlertVariant, type BookingAdventure, BookingConfirmation, BookingConfirmationEmail, type BookingConfirmationEmailLabels, type BookingConfirmationEmailProps, type BookingConfirmationLabels, type BookingConfirmationProps, BookingConfirmedCard, type BookingConfirmedCardProps, type BookingContact, type BookingDepositInfo, BookingDetails, type BookingDetailsProps, BookingForm, type BookingFormProps, type BookingFormValues, BookingShell, type BookingShellProps, type BookingStatus, type BookingSummaryLineItem, type BookingTraveller, Button, type ButtonProps, COUNTRIES, type ConfirmationAdventure, type ConfirmationDepositInfo, type ConfirmationLineItem, type ConfirmationTraveller, CounterField, type CounterFieldProps, type CountryOption, CountrySearchField, type CountrySearchFieldProps, DEFAULT_HEADER_LINKS, DEFAULT_LANGUAGES, DatePickerField, type DatePickerFieldProps, type FilterGroup, type FilterItem, FilterPanel, type FilterPanelProps, FloatingInput, type FloatingInputProps, FloatingSelect, type FloatingSelectProps, Itinerary, type ItineraryProps, type ItineraryRoute, type ItineraryStop, LeadCapturePopup, type LeadCapturePopupConfig, MenuTrip, type MenuTripProps, type MenuTripSection, type MenuTripVariant, Offer, OfferAdventureCard, type OfferAdventureItem, type OfferAgentInfo, type OfferDepositInfo, type OfferOptionalItem, type OfferProps, type OfferSummaryLineItem, PaymentAmountSelector, type PaymentAmountSelectorProps, type PaymentMethodOption, PaymentMethodSelector, type PaymentMethodSelectorProps, PaymentModalShell, type PaymentModalShellProps, PhoneCountrySelect, PhotoGallery, type PhotoGalleryPhoto, type PhotoGalleryProps, type PhotoGalleryVariant, type PricingOption, PricingTrip, type PricingTripProps, type PricingTripVariant, SiteHeader, type SiteHeaderLanguage, type SiteHeaderLink, type SiteHeaderProps, type SiteHeaderSubItem, type SiteHeaderVariant, type StripeAppearance, type SuggestedTraveller, TermsSection, type TermsSectionProps, ThemeToggle, TripCard, type TripCardCta, type TripCardProps, type TripCardSize, type TripCardStatus, type TripDuration, type TripFaq, TripHeader, type TripHeaderProps, type TripHighlight, type TripInfoGroup, type TripItineraryStep, type TripMeetingPoint, TripPage, type TripPageProps, type TripPricingOption, type TripReview, buttonVariants, cn, getStripeAppearance, stripeAppearance };
1296
+ export { ActivityCard, type ActivityCardProps, type ActivityCardSize, Alert, type AlertProps, type AlertVariant, BirthDateField, type BirthDateFieldProps, type BookingAdventure, BookingConfirmation, BookingConfirmationEmail, type BookingConfirmationEmailLabels, type BookingConfirmationEmailProps, type BookingConfirmationLabels, type BookingConfirmationProps, BookingConfirmedCard, type BookingConfirmedCardProps, type BookingContact, type BookingDepositInfo, BookingDetails, type BookingDetailsProps, BookingForm, type BookingFormProps, type BookingFormValues, BookingShell, type BookingShellProps, type BookingStatus, type BookingSummaryLineItem, type BookingTraveller, Button, type ButtonProps, COUNTRIES, type ConfirmationAdventure, type ConfirmationDepositInfo, type ConfirmationLineItem, type ConfirmationTraveller, CounterField, type CounterFieldProps, type CountryOption, CountrySearchField, type CountrySearchFieldProps, DEFAULT_HEADER_LINKS, DEFAULT_LANGUAGES, DatePickerField, type DatePickerFieldProps, type FilterGroup, type FilterItem, FilterPanel, type FilterPanelProps, FloatingInput, type FloatingInputProps, FloatingSelect, type FloatingSelectProps, Itinerary, type ItineraryProps, type ItineraryRoute, type ItineraryStop, LeadCapturePopup, type LeadCapturePopupConfig, MenuTrip, type MenuTripProps, type MenuTripSection, type MenuTripVariant, Offer, OfferAdventureCard, type OfferAdventureItem, type OfferAgentInfo, type OfferDepositInfo, type OfferOptionalItem, type OfferProps, type OfferSummaryLineItem, PaymentAmountSelector, type PaymentAmountSelectorProps, type PaymentMethodOption, PaymentMethodSelector, type PaymentMethodSelectorProps, PaymentModalShell, type PaymentModalShellProps, PhoneCountrySelect, PhotoGallery, type PhotoGalleryPhoto, type PhotoGalleryProps, type PhotoGalleryVariant, type PricingOption, PricingTrip, type PricingTripProps, type PricingTripVariant, type RegistrationAdventure, type RegistrationBooking, type RegistrationEmergencyContactValue, type RegistrationField, type RegistrationFieldOption, type RegistrationFieldType, type RegistrationFieldValue, RegistrationForm, type RegistrationFormLabels, type RegistrationFormProps, type RegistrationFormValues, type RegistrationNameValue, type RegistrationPhoneValue, RegistrationSuccessCard, type RegistrationSuccessCardProps, type RegistrationTerms, type RegistrationTraveller, SiteHeader, type SiteHeaderLanguage, type SiteHeaderLink, type SiteHeaderProps, type SiteHeaderSubItem, type SiteHeaderVariant, type StripeAppearance, type SuggestedTraveller, TermsSection, type TermsSectionProps, ThemeToggle, TripCard, type TripCardCta, type TripCardProps, type TripCardSize, type TripCardStatus, type TripDuration, type TripFaq, TripHeader, type TripHeaderProps, type TripHighlight, type TripInfoGroup, type TripItineraryStep, type TripMeetingPoint, TripPage, type TripPageProps, type TripPricingOption, type TripReview, buttonVariants, cn, getStripeAppearance, stripeAppearance };
package/dist/index.d.ts CHANGED
@@ -431,6 +431,117 @@ interface BookingFormProps {
431
431
  }
432
432
  declare function BookingForm({ defaultValues, onSubmit, submitLabel, loading, showHeader, title, subtitle, className, }: BookingFormProps): react_jsx_runtime.JSX.Element;
433
433
 
434
+ type RegistrationFieldType = "text" | "textarea" | "number" | "date" | "birthDate" | "select" | "radio" | "checkbox" | "name" | "phone" | "nationality" | "emergencyContact";
435
+ interface RegistrationFieldOption {
436
+ value: string;
437
+ label: string;
438
+ }
439
+ interface RegistrationField {
440
+ id: string;
441
+ label: string;
442
+ type: RegistrationFieldType;
443
+ required?: boolean;
444
+ order?: number;
445
+ helpText?: string;
446
+ options?: RegistrationFieldOption[];
447
+ }
448
+ interface RegistrationNameValue {
449
+ firstName: string;
450
+ lastName: string;
451
+ }
452
+ interface RegistrationPhoneValue {
453
+ /** ISO country code used by PhoneCountrySelect, e.g. "BR" */
454
+ country: string;
455
+ /** National number, digits only */
456
+ nationalNumber: string;
457
+ }
458
+ interface RegistrationEmergencyContactValue {
459
+ contactName: RegistrationNameValue;
460
+ phone: RegistrationPhoneValue;
461
+ }
462
+ type RegistrationFieldValue = string | Date | boolean | string[] | RegistrationNameValue | RegistrationPhoneValue | RegistrationEmergencyContactValue | undefined;
463
+ type RegistrationFormValues = Record<string, RegistrationFieldValue>;
464
+ interface RegistrationAdventure {
465
+ name: string;
466
+ startDate?: string;
467
+ endDate?: string;
468
+ partnerName?: string;
469
+ }
470
+ interface RegistrationBooking {
471
+ id: string;
472
+ }
473
+ interface RegistrationTraveller {
474
+ fullName: string;
475
+ }
476
+ interface RegistrationTerms {
477
+ markdown: string;
478
+ acceptControl?: "checkbox" | "radio";
479
+ }
480
+ interface RegistrationFormLabels {
481
+ formSubtitle?: string;
482
+ detailsSectionTitle?: string;
483
+ tripInfoSectionTitle?: string;
484
+ termsSectionTitle?: string;
485
+ termsAccept?: string;
486
+ termsDecline?: string;
487
+ submitButton?: string;
488
+ submitting?: string;
489
+ adventureLabel?: string;
490
+ bookingLabel?: string;
491
+ partnerLabel?: string;
492
+ travellerLabel?: string;
493
+ firstNameLabel?: string;
494
+ lastNameLabel?: string;
495
+ phoneLabel?: string;
496
+ emergencyContactFirstName?: string;
497
+ emergencyContactLastName?: string;
498
+ emergencyContactPhoneLabel?: string;
499
+ nationalityLabel?: string;
500
+ selectPlaceholder?: string;
501
+ optionalLabel?: string;
502
+ }
503
+ interface RegistrationFormProps {
504
+ /** Logo shown above the title. Defaults to "/logo-planetaexo.png" (matching Offer). Pass null to hide. */
505
+ logo?: string | null;
506
+ logoAlt?: string;
507
+ /**
508
+ * When provided, the header becomes a hero card with this image as the background
509
+ * and the logo automatically inverted to white. Title and subtitle overlay the image.
510
+ */
511
+ heroImage?: string;
512
+ heroImageAlt?: string;
513
+ title: string;
514
+ subtitle?: string;
515
+ adventure?: RegistrationAdventure;
516
+ booking?: RegistrationBooking;
517
+ traveller?: RegistrationTraveller;
518
+ fields: RegistrationField[];
519
+ values?: RegistrationFormValues;
520
+ defaultValues?: RegistrationFormValues;
521
+ onChange?: (values: RegistrationFormValues) => void;
522
+ onSubmit?: (values: RegistrationFormValues) => void;
523
+ terms?: RegistrationTerms;
524
+ includeTerms?: boolean;
525
+ loading?: boolean;
526
+ error?: string;
527
+ defaultPhoneCountry?: string;
528
+ dateFormatter?: (iso: string | undefined) => string;
529
+ labels?: RegistrationFormLabels;
530
+ className?: string;
531
+ }
532
+ declare function RegistrationForm({ logo, logoAlt, heroImage, heroImageAlt, title, subtitle, adventure, booking, traveller, fields, values, defaultValues, onChange, onSubmit, terms, includeTerms, loading, error, defaultPhoneCountry, dateFormatter, labels, className, }: RegistrationFormProps): react_jsx_runtime.JSX.Element;
533
+ interface RegistrationSuccessCardProps {
534
+ title?: string;
535
+ message?: string;
536
+ answersTitle?: string;
537
+ fields: RegistrationField[];
538
+ answers: RegistrationFormValues;
539
+ dateFormatter?: (date: Date | string | undefined) => string;
540
+ formatAnswer?: (field: RegistrationField, value: RegistrationFieldValue) => string;
541
+ className?: string;
542
+ }
543
+ declare function RegistrationSuccessCard({ title, message, answersTitle, fields, answers, dateFormatter, formatAnswer, className, }: RegistrationSuccessCardProps): react_jsx_runtime.JSX.Element;
544
+
434
545
  interface FloatingInputProps extends React.InputHTMLAttributes<HTMLInputElement> {
435
546
  label: string;
436
547
  error?: string;
@@ -490,6 +601,15 @@ interface DatePickerFieldProps {
490
601
  }
491
602
  declare function DatePickerField({ label, required, value, onChange, placeholder, disabled, fromDate, className, }: DatePickerFieldProps): react_jsx_runtime.JSX.Element;
492
603
 
604
+ interface BirthDateFieldProps {
605
+ label: string;
606
+ required?: boolean;
607
+ value: Date | undefined;
608
+ onChange: (date: Date | undefined) => void;
609
+ className?: string;
610
+ }
611
+ declare function BirthDateField({ label, required, value, onChange, className, }: BirthDateFieldProps): react_jsx_runtime.JSX.Element;
612
+
493
613
  interface FilterItem {
494
614
  id: string;
495
615
  label: string;
@@ -1173,4 +1293,4 @@ declare function LeadCapturePopup({ config: _config, }: {
1173
1293
  config: LeadCapturePopupConfig;
1174
1294
  }): react_jsx_runtime.JSX.Element | null;
1175
1295
 
1176
- export { ActivityCard, type ActivityCardProps, type ActivityCardSize, Alert, type AlertProps, type AlertVariant, type BookingAdventure, BookingConfirmation, BookingConfirmationEmail, type BookingConfirmationEmailLabels, type BookingConfirmationEmailProps, type BookingConfirmationLabels, type BookingConfirmationProps, BookingConfirmedCard, type BookingConfirmedCardProps, type BookingContact, type BookingDepositInfo, BookingDetails, type BookingDetailsProps, BookingForm, type BookingFormProps, type BookingFormValues, BookingShell, type BookingShellProps, type BookingStatus, type BookingSummaryLineItem, type BookingTraveller, Button, type ButtonProps, COUNTRIES, type ConfirmationAdventure, type ConfirmationDepositInfo, type ConfirmationLineItem, type ConfirmationTraveller, CounterField, type CounterFieldProps, type CountryOption, CountrySearchField, type CountrySearchFieldProps, DEFAULT_HEADER_LINKS, DEFAULT_LANGUAGES, DatePickerField, type DatePickerFieldProps, type FilterGroup, type FilterItem, FilterPanel, type FilterPanelProps, FloatingInput, type FloatingInputProps, FloatingSelect, type FloatingSelectProps, Itinerary, type ItineraryProps, type ItineraryRoute, type ItineraryStop, LeadCapturePopup, type LeadCapturePopupConfig, MenuTrip, type MenuTripProps, type MenuTripSection, type MenuTripVariant, Offer, OfferAdventureCard, type OfferAdventureItem, type OfferAgentInfo, type OfferDepositInfo, type OfferOptionalItem, type OfferProps, type OfferSummaryLineItem, PaymentAmountSelector, type PaymentAmountSelectorProps, type PaymentMethodOption, PaymentMethodSelector, type PaymentMethodSelectorProps, PaymentModalShell, type PaymentModalShellProps, PhoneCountrySelect, PhotoGallery, type PhotoGalleryPhoto, type PhotoGalleryProps, type PhotoGalleryVariant, type PricingOption, PricingTrip, type PricingTripProps, type PricingTripVariant, SiteHeader, type SiteHeaderLanguage, type SiteHeaderLink, type SiteHeaderProps, type SiteHeaderSubItem, type SiteHeaderVariant, type StripeAppearance, type SuggestedTraveller, TermsSection, type TermsSectionProps, ThemeToggle, TripCard, type TripCardCta, type TripCardProps, type TripCardSize, type TripCardStatus, type TripDuration, type TripFaq, TripHeader, type TripHeaderProps, type TripHighlight, type TripInfoGroup, type TripItineraryStep, type TripMeetingPoint, TripPage, type TripPageProps, type TripPricingOption, type TripReview, buttonVariants, cn, getStripeAppearance, stripeAppearance };
1296
+ export { ActivityCard, type ActivityCardProps, type ActivityCardSize, Alert, type AlertProps, type AlertVariant, BirthDateField, type BirthDateFieldProps, type BookingAdventure, BookingConfirmation, BookingConfirmationEmail, type BookingConfirmationEmailLabels, type BookingConfirmationEmailProps, type BookingConfirmationLabels, type BookingConfirmationProps, BookingConfirmedCard, type BookingConfirmedCardProps, type BookingContact, type BookingDepositInfo, BookingDetails, type BookingDetailsProps, BookingForm, type BookingFormProps, type BookingFormValues, BookingShell, type BookingShellProps, type BookingStatus, type BookingSummaryLineItem, type BookingTraveller, Button, type ButtonProps, COUNTRIES, type ConfirmationAdventure, type ConfirmationDepositInfo, type ConfirmationLineItem, type ConfirmationTraveller, CounterField, type CounterFieldProps, type CountryOption, CountrySearchField, type CountrySearchFieldProps, DEFAULT_HEADER_LINKS, DEFAULT_LANGUAGES, DatePickerField, type DatePickerFieldProps, type FilterGroup, type FilterItem, FilterPanel, type FilterPanelProps, FloatingInput, type FloatingInputProps, FloatingSelect, type FloatingSelectProps, Itinerary, type ItineraryProps, type ItineraryRoute, type ItineraryStop, LeadCapturePopup, type LeadCapturePopupConfig, MenuTrip, type MenuTripProps, type MenuTripSection, type MenuTripVariant, Offer, OfferAdventureCard, type OfferAdventureItem, type OfferAgentInfo, type OfferDepositInfo, type OfferOptionalItem, type OfferProps, type OfferSummaryLineItem, PaymentAmountSelector, type PaymentAmountSelectorProps, type PaymentMethodOption, PaymentMethodSelector, type PaymentMethodSelectorProps, PaymentModalShell, type PaymentModalShellProps, PhoneCountrySelect, PhotoGallery, type PhotoGalleryPhoto, type PhotoGalleryProps, type PhotoGalleryVariant, type PricingOption, PricingTrip, type PricingTripProps, type PricingTripVariant, type RegistrationAdventure, type RegistrationBooking, type RegistrationEmergencyContactValue, type RegistrationField, type RegistrationFieldOption, type RegistrationFieldType, type RegistrationFieldValue, RegistrationForm, type RegistrationFormLabels, type RegistrationFormProps, type RegistrationFormValues, type RegistrationNameValue, type RegistrationPhoneValue, RegistrationSuccessCard, type RegistrationSuccessCardProps, type RegistrationTerms, type RegistrationTraveller, SiteHeader, type SiteHeaderLanguage, type SiteHeaderLink, type SiteHeaderProps, type SiteHeaderSubItem, type SiteHeaderVariant, type StripeAppearance, type SuggestedTraveller, TermsSection, type TermsSectionProps, ThemeToggle, TripCard, type TripCardCta, type TripCardProps, type TripCardSize, type TripCardStatus, type TripDuration, type TripFaq, TripHeader, type TripHeaderProps, type TripHighlight, type TripInfoGroup, type TripItineraryStep, type TripMeetingPoint, TripPage, type TripPageProps, type TripPricingOption, type TripReview, buttonVariants, cn, getStripeAppearance, stripeAppearance };