@asdp/ferryui 0.1.16 → 0.1.20

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.mts CHANGED
@@ -235,6 +235,10 @@ interface CardPromoProps {
235
235
  * Loading state
236
236
  */
237
237
  isLoading?: boolean;
238
+ /**
239
+ * Image Only
240
+ */
241
+ imageOnly?: boolean;
238
242
  }
239
243
  declare const CardPromo: React$1.FC<CardPromoProps>;
240
244
 
@@ -355,26 +359,96 @@ declare const BackgroundTicketCard: (props: React$1.SVGProps<SVGSVGElement>) =>
355
359
  */
356
360
  declare const BackgroundTicketCardVertical: (props: React$1.SVGProps<SVGSVGElement>) => react_jsx_runtime.JSX.Element;
357
361
 
358
- interface ServiceMenuItem {
359
- id: string;
360
- label: string;
361
- logo?: string;
362
- description?: string;
363
- customStyle?: React$1.CSSProperties;
364
- }
362
+ type Language = 'id' | 'en';
363
+
364
+ declare const SERVICE_MENU_ITEMS: {
365
+ readonly ferry: {
366
+ readonly id: "ferry";
367
+ readonly logo: "/assets/images/icons/ferry.svg";
368
+ readonly labels: {
369
+ readonly id: {
370
+ readonly label: "Ferry";
371
+ readonly description: "Layanan penyeberangan ferry ASDP";
372
+ };
373
+ readonly en: {
374
+ readonly label: "Ferry";
375
+ readonly description: "ASDP Ferry Crossing Service";
376
+ };
377
+ };
378
+ };
379
+ readonly ifcs: {
380
+ readonly id: "ifcs";
381
+ readonly logo: "/assets/logo/asdp-default.svg";
382
+ readonly labels: {
383
+ readonly id: {
384
+ readonly label: "IFCS";
385
+ readonly description: "Integrated Ferry Control System";
386
+ };
387
+ readonly en: {
388
+ readonly label: "IFCS";
389
+ readonly description: "Integrated Ferry Control System";
390
+ };
391
+ };
392
+ };
393
+ readonly skpt: {
394
+ readonly id: "skpt";
395
+ readonly logo: "/assets/logo/asdp-default.svg";
396
+ readonly labels: {
397
+ readonly id: {
398
+ readonly label: "SKPT";
399
+ readonly description: "Sistem Karcis Penumpang Terpadu";
400
+ };
401
+ readonly en: {
402
+ readonly label: "SKPT";
403
+ readonly description: "Integrated Passenger Ticketing System";
404
+ };
405
+ };
406
+ };
407
+ readonly hotel: {
408
+ readonly id: "hotel";
409
+ readonly logo: "/assets/images/icons/hotel.svg";
410
+ readonly labels: {
411
+ readonly id: {
412
+ readonly label: "Hotel";
413
+ readonly description: "Layanan pemesanan hotel";
414
+ };
415
+ readonly en: {
416
+ readonly label: "Hotel";
417
+ readonly description: "Hotel Booking Service";
418
+ };
419
+ };
420
+ };
421
+ readonly other: {
422
+ readonly id: "other";
423
+ readonly logo: "/assets/images/icons/other.svg";
424
+ readonly labels: {
425
+ readonly id: {
426
+ readonly label: "Lainnya";
427
+ readonly description: "Layanan lainnya";
428
+ };
429
+ readonly en: {
430
+ readonly label: "Other";
431
+ readonly description: "Other Services";
432
+ };
433
+ };
434
+ };
435
+ };
436
+ type ServiceId = keyof typeof SERVICE_MENU_ITEMS;
365
437
  interface CardServiceMenuProps {
366
438
  /**
367
- * Array of menu items to display
439
+ * Currently active service ID
440
+ * @default 'ferry'
368
441
  */
369
- items: ServiceMenuItem[];
442
+ activeServiceId?: ServiceId;
370
443
  /**
371
- * Currently active item ID
444
+ * Language for labels (Indonesian or English)
445
+ * @default 'id'
372
446
  */
373
- activeItemId?: string;
447
+ language?: Language;
374
448
  /**
375
- * Callback when an item is clicked
449
+ * Callback when a service is clicked
376
450
  */
377
- onItemClick?: (itemId: string) => void;
451
+ onServiceClick?: (serviceId: ServiceId) => void;
378
452
  /**
379
453
  * Whether to show descriptions on desktop
380
454
  * @default true
@@ -387,6 +461,107 @@ interface CardServiceMenuProps {
387
461
  }
388
462
  declare const CardServiceMenu: React$1.FC<CardServiceMenuProps>;
389
463
 
464
+ interface ServiceMenuItem {
465
+ id: string;
466
+ label: string;
467
+ logo: string;
468
+ description: string;
469
+ }
470
+ interface CardTicketSearchFormData {
471
+ from: string;
472
+ to: string;
473
+ startDate: string;
474
+ roundTrip: boolean;
475
+ endDate: string;
476
+ serviceClass: string;
477
+ typeOfService: string;
478
+ passenger: string;
479
+ }
480
+ interface CardTicketSearchLabels {
481
+ fromLabel: string;
482
+ toLabel: string;
483
+ departureDateLabel: string;
484
+ returnDateLabel: string;
485
+ serviceClassLabel: string;
486
+ typeOfServiceLabel: string;
487
+ passengerLabel: string;
488
+ roundTripLabel: string;
489
+ searchButton: string;
490
+ placeholderPort: string;
491
+ placeholderDestinationPort: string;
492
+ placeholderDepartureDate: string;
493
+ placeholderReturnDate: string;
494
+ placeholderTypeClass: string;
495
+ placeholderTypeService: string;
496
+ placeholderPassenger: string;
497
+ }
498
+ interface CardTicketSearchProps {
499
+ /**
500
+ * Language for labels (Indonesian or English)
501
+ * @default 'id'
502
+ */
503
+ language?: Language;
504
+ /**
505
+ * Form values
506
+ */
507
+ from?: string;
508
+ to?: string;
509
+ startDate?: string;
510
+ endDate?: string;
511
+ roundTrip?: boolean;
512
+ serviceClass?: string;
513
+ typeOfService?: string;
514
+ passenger?: string;
515
+ /**
516
+ * Disabled states
517
+ */
518
+ toDisabled?: boolean;
519
+ endDateDisabled?: boolean;
520
+ serviceClassDisabled?: boolean;
521
+ typeOfServiceDisabled?: boolean;
522
+ switchDisabled?: boolean;
523
+ roundTripDisabled?: boolean;
524
+ submitDisabled?: boolean;
525
+ /**
526
+ * Event handlers
527
+ */
528
+ onFromClick?: () => void;
529
+ onToClick?: () => void;
530
+ onFromChange?: () => void;
531
+ onStartDateClick?: () => void;
532
+ onEndDateClick?: () => void;
533
+ onServiceClassClick?: () => void;
534
+ onTypeOfServiceClick?: () => void;
535
+ onPassengerClick?: () => void;
536
+ onSwitchClick?: () => void;
537
+ onRoundTripChange?: (value: boolean) => void;
538
+ onSubmit?: (data: CardTicketSearchFormData) => void;
539
+ /**
540
+ * Active service ID
541
+ * @default 'ferry'
542
+ */
543
+ activeServiceId?: ServiceId;
544
+ /**
545
+ * Custom labels override (optional)
546
+ * If not provided, default labels based on locale will be used
547
+ */
548
+ labels?: Partial<CardTicketSearchLabels>;
549
+ /**
550
+ * Styling
551
+ */
552
+ className?: string;
553
+ /**
554
+ * UI state
555
+ */
556
+ isRotating?: boolean;
557
+ showPassengerField?: boolean;
558
+ showRoundTrip?: boolean;
559
+ }
560
+
561
+ declare const CardTicketSearch: React$1.FC<CardTicketSearchProps>;
562
+
563
+ declare const DEFAULT_LABELS: Record<Language, CardTicketSearchLabels>;
564
+
390
565
  type InputType = 'checkbox' | 'date' | 'datetime-local' | 'email' | 'file' | 'identity' | 'emailOrPhone' | 'number' | 'otp' | 'passport' | 'password' | 'phone' | 'radio' | 'radiobutton' | 'select' | 'switch' | 'tel' | 'text' | 'textarea' | 'time' | 'url';
391
566
  interface SelectOption {
392
567
  value: string;
@@ -466,7 +641,7 @@ interface InputDynamicProps<T extends FieldValues = FieldValues> {
466
641
  onChange?: (value: any) => void;
467
642
  }
468
643
 
469
- declare function InputDynamic<T extends FieldValues = FieldValues>({ name, control, label, type, placeholder, required, disabled, options, multiple, accept, rows, min, max, step, isMultiSelect, selectScrollbarColor, contentBefore, appearance, validationRules, helperText, className, layout, size, onClick, style, countryCodes, defaultCountry, maxLength, autoAdvance, otpIndex, hasError, autoComplete, onInput, contentAfter, onChange, }: InputDynamicProps<T>): react_jsx_runtime.JSX.Element;
644
+ declare const InputDynamic: React$1.FC<InputDynamicProps>;
470
645
 
471
646
  declare const DEFAULT_COUNTRY_CODES: CountryCode[];
472
647
 
@@ -579,7 +754,7 @@ interface ModalSearchHarborProps {
579
754
  * />
580
755
  * ```
581
756
  */
582
- declare const ModalSearchHarbor: React.FC<ModalSearchHarborProps>;
757
+ declare const ModalSearchHarbor: React$1.FC<ModalSearchHarborProps>;
583
758
 
584
759
  /**
585
760
  * Tab type for trip selection
@@ -670,7 +845,7 @@ interface ModalSelectDateProps {
670
845
  * />
671
846
  * ```
672
847
  */
673
- declare const ModalSelectDate: React.FC<ModalSelectDateProps>;
848
+ declare const ModalSelectDate: React$1.FC<ModalSelectDateProps>;
674
849
 
675
850
  /**
676
851
  * Service item structure
@@ -757,7 +932,7 @@ interface ModalServiceProps {
757
932
  * />
758
933
  * ```
759
934
  */
760
- declare const ModalService: React.FC<ModalServiceProps>;
935
+ declare const ModalService: React$1.FC<ModalServiceProps>;
761
936
 
762
937
  /**
763
938
  * Service class codes for passenger services
@@ -978,4 +1153,4 @@ declare const DEFAULT_VEHICLE_ICONS: {
978
1153
  readonly looseLoad: "/assets/images/icons/loose-load.webp";
979
1154
  };
980
1155
 
981
- export { BackgroundTicketCard, BackgroundTicketCardVertical, CardBanner, type CardBannerProps, CardPromo, type CardPromoProps, CardServiceMenu, type CardServiceMenuProps, CardTicket, type CardTicketButton, type CardTicketProps, CarouselWithCustomNav, type CarouselWithCustomNavProps, type CountryCode, DEFAULT_COUNTRY_CODES, DEFAULT_SERVICE_CLASSES, DEFAULT_VEHICLE_ICONS, type HarborItem, InputDynamic, type InputDynamicProps, type InputType, MODAL_PRESETS, ModalIllustration, type ModalIllustrationButton, type ModalIllustrationProps, type ModalPresetKey, ModalSearchHarbor, type ModalSearchHarborProps, ModalSelectDate, type ModalSelectDateProps, ModalService, type ModalServiceProps, ModalTotalPassengers, type ModalTotalPassengersProps, ModalTypeOfService, type ModalTypeOfServiceProps, type Passenger, type PassengerService, type PassengerServiceCode, type PassengerType, type RadioOption, type SelectOption, type SelectedPassengerItem, type ServiceClass, type ServiceItem, type ServiceMenuItem, type TabType, type TypeOfService, getModalPreset };
1156
+ export { BackgroundTicketCard, BackgroundTicketCardVertical, CardBanner, type CardBannerProps, CardPromo, type CardPromoProps, CardServiceMenu, type CardServiceMenuProps, CardTicket, type CardTicketButton, type CardTicketProps, CardTicketSearch, DEFAULT_LABELS as CardTicketSearchDefaultLabels, type CardTicketSearchFormData, type CardTicketSearchLabels, type CardTicketSearchProps, type ServiceMenuItem as CardTicketSearchServiceMenuItem, CarouselWithCustomNav, type CarouselWithCustomNavProps, type CountryCode, DEFAULT_COUNTRY_CODES, DEFAULT_SERVICE_CLASSES, DEFAULT_VEHICLE_ICONS, type HarborItem, InputDynamic, type InputDynamicProps, type InputType, MODAL_PRESETS, ModalIllustration, type ModalIllustrationButton, type ModalIllustrationProps, type ModalPresetKey, ModalSearchHarbor, type ModalSearchHarborProps, ModalSelectDate, type ModalSelectDateProps, ModalService, type ModalServiceProps, ModalTotalPassengers, type ModalTotalPassengersProps, ModalTypeOfService, type ModalTypeOfServiceProps, type Passenger, type PassengerService, type PassengerServiceCode, type PassengerType, type RadioOption, type SelectOption, type SelectedPassengerItem, type ServiceClass, type ServiceId, type ServiceItem, type TabType, type TypeOfService, getModalPreset };
package/dist/index.d.ts CHANGED
@@ -235,6 +235,10 @@ interface CardPromoProps {
235
235
  * Loading state
236
236
  */
237
237
  isLoading?: boolean;
238
+ /**
239
+ * Image Only
240
+ */
241
+ imageOnly?: boolean;
238
242
  }
239
243
  declare const CardPromo: React$1.FC<CardPromoProps>;
240
244
 
@@ -355,26 +359,96 @@ declare const BackgroundTicketCard: (props: React$1.SVGProps<SVGSVGElement>) =>
355
359
  */
356
360
  declare const BackgroundTicketCardVertical: (props: React$1.SVGProps<SVGSVGElement>) => react_jsx_runtime.JSX.Element;
357
361
 
358
- interface ServiceMenuItem {
359
- id: string;
360
- label: string;
361
- logo?: string;
362
- description?: string;
363
- customStyle?: React$1.CSSProperties;
364
- }
362
+ type Language = 'id' | 'en';
363
+
364
+ declare const SERVICE_MENU_ITEMS: {
365
+ readonly ferry: {
366
+ readonly id: "ferry";
367
+ readonly logo: "/assets/images/icons/ferry.svg";
368
+ readonly labels: {
369
+ readonly id: {
370
+ readonly label: "Ferry";
371
+ readonly description: "Layanan penyeberangan ferry ASDP";
372
+ };
373
+ readonly en: {
374
+ readonly label: "Ferry";
375
+ readonly description: "ASDP Ferry Crossing Service";
376
+ };
377
+ };
378
+ };
379
+ readonly ifcs: {
380
+ readonly id: "ifcs";
381
+ readonly logo: "/assets/logo/asdp-default.svg";
382
+ readonly labels: {
383
+ readonly id: {
384
+ readonly label: "IFCS";
385
+ readonly description: "Integrated Ferry Control System";
386
+ };
387
+ readonly en: {
388
+ readonly label: "IFCS";
389
+ readonly description: "Integrated Ferry Control System";
390
+ };
391
+ };
392
+ };
393
+ readonly skpt: {
394
+ readonly id: "skpt";
395
+ readonly logo: "/assets/logo/asdp-default.svg";
396
+ readonly labels: {
397
+ readonly id: {
398
+ readonly label: "SKPT";
399
+ readonly description: "Sistem Karcis Penumpang Terpadu";
400
+ };
401
+ readonly en: {
402
+ readonly label: "SKPT";
403
+ readonly description: "Integrated Passenger Ticketing System";
404
+ };
405
+ };
406
+ };
407
+ readonly hotel: {
408
+ readonly id: "hotel";
409
+ readonly logo: "/assets/images/icons/hotel.svg";
410
+ readonly labels: {
411
+ readonly id: {
412
+ readonly label: "Hotel";
413
+ readonly description: "Layanan pemesanan hotel";
414
+ };
415
+ readonly en: {
416
+ readonly label: "Hotel";
417
+ readonly description: "Hotel Booking Service";
418
+ };
419
+ };
420
+ };
421
+ readonly other: {
422
+ readonly id: "other";
423
+ readonly logo: "/assets/images/icons/other.svg";
424
+ readonly labels: {
425
+ readonly id: {
426
+ readonly label: "Lainnya";
427
+ readonly description: "Layanan lainnya";
428
+ };
429
+ readonly en: {
430
+ readonly label: "Other";
431
+ readonly description: "Other Services";
432
+ };
433
+ };
434
+ };
435
+ };
436
+ type ServiceId = keyof typeof SERVICE_MENU_ITEMS;
365
437
  interface CardServiceMenuProps {
366
438
  /**
367
- * Array of menu items to display
439
+ * Currently active service ID
440
+ * @default 'ferry'
368
441
  */
369
- items: ServiceMenuItem[];
442
+ activeServiceId?: ServiceId;
370
443
  /**
371
- * Currently active item ID
444
+ * Language for labels (Indonesian or English)
445
+ * @default 'id'
372
446
  */
373
- activeItemId?: string;
447
+ language?: Language;
374
448
  /**
375
- * Callback when an item is clicked
449
+ * Callback when a service is clicked
376
450
  */
377
- onItemClick?: (itemId: string) => void;
451
+ onServiceClick?: (serviceId: ServiceId) => void;
378
452
  /**
379
453
  * Whether to show descriptions on desktop
380
454
  * @default true
@@ -387,6 +461,107 @@ interface CardServiceMenuProps {
387
461
  }
388
462
  declare const CardServiceMenu: React$1.FC<CardServiceMenuProps>;
389
463
 
464
+ interface ServiceMenuItem {
465
+ id: string;
466
+ label: string;
467
+ logo: string;
468
+ description: string;
469
+ }
470
+ interface CardTicketSearchFormData {
471
+ from: string;
472
+ to: string;
473
+ startDate: string;
474
+ roundTrip: boolean;
475
+ endDate: string;
476
+ serviceClass: string;
477
+ typeOfService: string;
478
+ passenger: string;
479
+ }
480
+ interface CardTicketSearchLabels {
481
+ fromLabel: string;
482
+ toLabel: string;
483
+ departureDateLabel: string;
484
+ returnDateLabel: string;
485
+ serviceClassLabel: string;
486
+ typeOfServiceLabel: string;
487
+ passengerLabel: string;
488
+ roundTripLabel: string;
489
+ searchButton: string;
490
+ placeholderPort: string;
491
+ placeholderDestinationPort: string;
492
+ placeholderDepartureDate: string;
493
+ placeholderReturnDate: string;
494
+ placeholderTypeClass: string;
495
+ placeholderTypeService: string;
496
+ placeholderPassenger: string;
497
+ }
498
+ interface CardTicketSearchProps {
499
+ /**
500
+ * Language for labels (Indonesian or English)
501
+ * @default 'id'
502
+ */
503
+ language?: Language;
504
+ /**
505
+ * Form values
506
+ */
507
+ from?: string;
508
+ to?: string;
509
+ startDate?: string;
510
+ endDate?: string;
511
+ roundTrip?: boolean;
512
+ serviceClass?: string;
513
+ typeOfService?: string;
514
+ passenger?: string;
515
+ /**
516
+ * Disabled states
517
+ */
518
+ toDisabled?: boolean;
519
+ endDateDisabled?: boolean;
520
+ serviceClassDisabled?: boolean;
521
+ typeOfServiceDisabled?: boolean;
522
+ switchDisabled?: boolean;
523
+ roundTripDisabled?: boolean;
524
+ submitDisabled?: boolean;
525
+ /**
526
+ * Event handlers
527
+ */
528
+ onFromClick?: () => void;
529
+ onToClick?: () => void;
530
+ onFromChange?: () => void;
531
+ onStartDateClick?: () => void;
532
+ onEndDateClick?: () => void;
533
+ onServiceClassClick?: () => void;
534
+ onTypeOfServiceClick?: () => void;
535
+ onPassengerClick?: () => void;
536
+ onSwitchClick?: () => void;
537
+ onRoundTripChange?: (value: boolean) => void;
538
+ onSubmit?: (data: CardTicketSearchFormData) => void;
539
+ /**
540
+ * Active service ID
541
+ * @default 'ferry'
542
+ */
543
+ activeServiceId?: ServiceId;
544
+ /**
545
+ * Custom labels override (optional)
546
+ * If not provided, default labels based on locale will be used
547
+ */
548
+ labels?: Partial<CardTicketSearchLabels>;
549
+ /**
550
+ * Styling
551
+ */
552
+ className?: string;
553
+ /**
554
+ * UI state
555
+ */
556
+ isRotating?: boolean;
557
+ showPassengerField?: boolean;
558
+ showRoundTrip?: boolean;
559
+ }
560
+
561
+ declare const CardTicketSearch: React$1.FC<CardTicketSearchProps>;
562
+
563
+ declare const DEFAULT_LABELS: Record<Language, CardTicketSearchLabels>;
564
+
390
565
  type InputType = 'checkbox' | 'date' | 'datetime-local' | 'email' | 'file' | 'identity' | 'emailOrPhone' | 'number' | 'otp' | 'passport' | 'password' | 'phone' | 'radio' | 'radiobutton' | 'select' | 'switch' | 'tel' | 'text' | 'textarea' | 'time' | 'url';
391
566
  interface SelectOption {
392
567
  value: string;
@@ -466,7 +641,7 @@ interface InputDynamicProps<T extends FieldValues = FieldValues> {
466
641
  onChange?: (value: any) => void;
467
642
  }
468
643
 
469
- declare function InputDynamic<T extends FieldValues = FieldValues>({ name, control, label, type, placeholder, required, disabled, options, multiple, accept, rows, min, max, step, isMultiSelect, selectScrollbarColor, contentBefore, appearance, validationRules, helperText, className, layout, size, onClick, style, countryCodes, defaultCountry, maxLength, autoAdvance, otpIndex, hasError, autoComplete, onInput, contentAfter, onChange, }: InputDynamicProps<T>): react_jsx_runtime.JSX.Element;
644
+ declare const InputDynamic: React$1.FC<InputDynamicProps>;
470
645
 
471
646
  declare const DEFAULT_COUNTRY_CODES: CountryCode[];
472
647
 
@@ -579,7 +754,7 @@ interface ModalSearchHarborProps {
579
754
  * />
580
755
  * ```
581
756
  */
582
- declare const ModalSearchHarbor: React.FC<ModalSearchHarborProps>;
757
+ declare const ModalSearchHarbor: React$1.FC<ModalSearchHarborProps>;
583
758
 
584
759
  /**
585
760
  * Tab type for trip selection
@@ -670,7 +845,7 @@ interface ModalSelectDateProps {
670
845
  * />
671
846
  * ```
672
847
  */
673
- declare const ModalSelectDate: React.FC<ModalSelectDateProps>;
848
+ declare const ModalSelectDate: React$1.FC<ModalSelectDateProps>;
674
849
 
675
850
  /**
676
851
  * Service item structure
@@ -757,7 +932,7 @@ interface ModalServiceProps {
757
932
  * />
758
933
  * ```
759
934
  */
760
- declare const ModalService: React.FC<ModalServiceProps>;
935
+ declare const ModalService: React$1.FC<ModalServiceProps>;
761
936
 
762
937
  /**
763
938
  * Service class codes for passenger services
@@ -978,4 +1153,4 @@ declare const DEFAULT_VEHICLE_ICONS: {
978
1153
  readonly looseLoad: "/assets/images/icons/loose-load.webp";
979
1154
  };
980
1155
 
981
- export { BackgroundTicketCard, BackgroundTicketCardVertical, CardBanner, type CardBannerProps, CardPromo, type CardPromoProps, CardServiceMenu, type CardServiceMenuProps, CardTicket, type CardTicketButton, type CardTicketProps, CarouselWithCustomNav, type CarouselWithCustomNavProps, type CountryCode, DEFAULT_COUNTRY_CODES, DEFAULT_SERVICE_CLASSES, DEFAULT_VEHICLE_ICONS, type HarborItem, InputDynamic, type InputDynamicProps, type InputType, MODAL_PRESETS, ModalIllustration, type ModalIllustrationButton, type ModalIllustrationProps, type ModalPresetKey, ModalSearchHarbor, type ModalSearchHarborProps, ModalSelectDate, type ModalSelectDateProps, ModalService, type ModalServiceProps, ModalTotalPassengers, type ModalTotalPassengersProps, ModalTypeOfService, type ModalTypeOfServiceProps, type Passenger, type PassengerService, type PassengerServiceCode, type PassengerType, type RadioOption, type SelectOption, type SelectedPassengerItem, type ServiceClass, type ServiceItem, type ServiceMenuItem, type TabType, type TypeOfService, getModalPreset };
1156
+ export { BackgroundTicketCard, BackgroundTicketCardVertical, CardBanner, type CardBannerProps, CardPromo, type CardPromoProps, CardServiceMenu, type CardServiceMenuProps, CardTicket, type CardTicketButton, type CardTicketProps, CardTicketSearch, DEFAULT_LABELS as CardTicketSearchDefaultLabels, type CardTicketSearchFormData, type CardTicketSearchLabels, type CardTicketSearchProps, type ServiceMenuItem as CardTicketSearchServiceMenuItem, CarouselWithCustomNav, type CarouselWithCustomNavProps, type CountryCode, DEFAULT_COUNTRY_CODES, DEFAULT_SERVICE_CLASSES, DEFAULT_VEHICLE_ICONS, type HarborItem, InputDynamic, type InputDynamicProps, type InputType, MODAL_PRESETS, ModalIllustration, type ModalIllustrationButton, type ModalIllustrationProps, type ModalPresetKey, ModalSearchHarbor, type ModalSearchHarborProps, ModalSelectDate, type ModalSelectDateProps, ModalService, type ModalServiceProps, ModalTotalPassengers, type ModalTotalPassengersProps, ModalTypeOfService, type ModalTypeOfServiceProps, type Passenger, type PassengerService, type PassengerServiceCode, type PassengerType, type RadioOption, type SelectOption, type SelectedPassengerItem, type ServiceClass, type ServiceId, type ServiceItem, type TabType, type TypeOfService, getModalPreset };