@duffel/components 3.5.1 → 3.6.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.
Files changed (39) hide show
  1. package/components/DuffelAncillaries/bags/BaggageSelectionCard.d.ts +4 -4
  2. package/components/DuffelAncillaries/bags/BaggageSelectionController.d.ts +2 -2
  3. package/components/DuffelAncillaries/bags/BaggageSelectionModal.d.ts +4 -4
  4. package/components/DuffelAncillaries/bags/BaggageSelectionModalBody.d.ts +3 -3
  5. package/components/DuffelAncillaries/bags/BaggageSelectionModalBodyPassenger.d.ts +3 -3
  6. package/components/DuffelAncillaries/seats/Element.d.ts +4 -4
  7. package/components/DuffelAncillaries/seats/Row.d.ts +4 -4
  8. package/components/DuffelAncillaries/seats/RowSection.d.ts +4 -4
  9. package/components/DuffelAncillaries/seats/SeatElement.d.ts +3 -3
  10. package/components/DuffelAncillaries/seats/SeatMap.d.ts +4 -4
  11. package/components/DuffelAncillaries/seats/SeatSelectionCard.d.ts +4 -4
  12. package/components/DuffelAncillaries/seats/SeatSelectionModal.d.ts +3 -3
  13. package/components/DuffelNGSView/DuffelNGSView.d.ts +3 -3
  14. package/components/DuffelNGSView/NGSSliceFareCard.d.ts +3 -2
  15. package/components/DuffelNGSView/NGSTable.d.ts +10 -0
  16. package/components/DuffelNGSView/lib/group-offers-for-ngs-view.d.ts +6 -3
  17. package/components/DuffelNGSView/lib/index.d.ts +3 -45
  18. package/components/OfferSlice/OfferSlice.d.ts +1 -4
  19. package/components/OfferSlice/OfferSliceConditions.d.ts +7 -0
  20. package/components/OfferSliceModal/OfferSliceModal.d.ts +7 -0
  21. package/components/shared/Icon.d.ts +4 -0
  22. package/components/shared/Modal.d.ts +6 -3
  23. package/custom-elements.js +21 -21
  24. package/custom-elements.js.map +4 -4
  25. package/index.d.ts +1 -0
  26. package/index.js +19 -19
  27. package/index.js.map +4 -4
  28. package/lib/colors.d.ts +2 -0
  29. package/lib/hasAvailableSeatService.d.ts +3 -0
  30. package/lib/hasBaggageServiceOfSameMetadataTypeAlreadyBeenSelected.d.ts +4 -0
  31. package/package.json +6 -6
  32. package/stories/DuffelAncillaries.stories.d.ts +5 -0
  33. package/stories/OfferSlice.stories.d.ts +1 -0
  34. package/stories/OfferSliceModal.stories.d.ts +6 -0
  35. package/tests/lib/hasBaggageServiceOfSameMetadataTypeAlreadyBeenSelected.test.d.ts +1 -0
  36. package/tsconfig.tsbuildinfo +1 -1
  37. package/types/DuffelAncillariesProps.d.ts +9 -3
  38. package/lib/hasServiceOfSameMetadataTypeAlreadyBeenSelected.d.ts +0 -3
  39. /package/tests/lib/{hasServiceOfSameMetadataTypeAlreadyBeenSelected.test.d.ts → hasAvailableSeatService.test.d.ts} +0 -0
@@ -1,12 +1,12 @@
1
1
  /// <reference types="@duffel/api" />
2
- import React from "react";
3
2
  import { CreateOrder, CreateOrderService, Offer } from "@duffel/api/types";
4
- import { WithServiceInformation } from "src/types";
3
+ import React from "react";
4
+ import { WithBaggageServiceInformation } from "src/types";
5
5
  export interface BaggageSelectionCardProps {
6
6
  isLoading: boolean;
7
7
  offer?: Offer;
8
8
  passengers: CreateOrder["passengers"];
9
- selectedServices: WithServiceInformation<CreateOrderService>[];
10
- setSelectedServices: (selectedServices: WithServiceInformation<CreateOrderService>[]) => void;
9
+ selectedServices: WithBaggageServiceInformation<CreateOrderService>[];
10
+ setSelectedServices: (selectedServices: WithBaggageServiceInformation<CreateOrderService>[]) => void;
11
11
  }
12
12
  export declare const BaggageSelectionCard: React.FC<BaggageSelectionCardProps>;
@@ -1,12 +1,12 @@
1
1
  /// <reference types="@duffel/api" />
2
2
  import { CreateOrderService, OfferAvailableServiceBaggage } from "@duffel/api/types";
3
3
  import React from "react";
4
- import { WithServiceInformation } from "src/types";
4
+ import { WithBaggageServiceInformation } from "src/types";
5
5
  interface BaggageSelectionControllerProps {
6
6
  segmentId: string;
7
7
  passengerId: string;
8
8
  availableService: OfferAvailableServiceBaggage;
9
- selectedServices: WithServiceInformation<CreateOrderService>[];
9
+ selectedServices: WithBaggageServiceInformation<CreateOrderService>[];
10
10
  quantity: number;
11
11
  onQuantityChanged: (quantity: number) => void;
12
12
  }
@@ -1,12 +1,12 @@
1
1
  /// <reference types="@duffel/api" />
2
- import React from "react";
3
2
  import { CreateOrder, CreateOrderService, Offer } from "@duffel/api/types";
4
- import { WithServiceInformation } from "src/types";
3
+ import React from "react";
4
+ import { WithBaggageServiceInformation } from "src/types";
5
5
  export interface BaggageSelectionModalProps {
6
6
  isOpen: boolean;
7
7
  offer?: Offer;
8
8
  passengers: CreateOrder["passengers"];
9
- selectedServices: WithServiceInformation<CreateOrderService>[];
10
- onClose: (selectedServices: WithServiceInformation<CreateOrderService>[]) => void;
9
+ selectedServices: WithBaggageServiceInformation<CreateOrderService>[];
10
+ onClose: (selectedServices: WithBaggageServiceInformation<CreateOrderService>[]) => void;
11
11
  }
12
12
  export declare const BaggageSelectionModal: React.FC<BaggageSelectionModalProps>;
@@ -1,12 +1,12 @@
1
1
  /// <reference types="@duffel/api" />
2
2
  import React from "react";
3
3
  import { CreateOrderPassenger, CreateOrderService, Offer, OfferSliceSegment } from "@duffel/api/types";
4
- import { WithServiceInformation } from "src/types";
4
+ import { WithBaggageServiceInformation } from "src/types";
5
5
  export interface BaggageSelectionModalBodyProps {
6
6
  offer: Offer;
7
7
  segment: OfferSliceSegment;
8
8
  passengersById: Record<CreateOrderPassenger["id"], CreateOrderPassenger>;
9
- selectedServices: WithServiceInformation<CreateOrderService>[];
10
- setSelectedServices: (selectedServices: WithServiceInformation<CreateOrderService>[]) => void;
9
+ selectedServices: WithBaggageServiceInformation<CreateOrderService>[];
10
+ setSelectedServices: (selectedServices: WithBaggageServiceInformation<CreateOrderService>[]) => void;
11
11
  }
12
12
  export declare const BaggageSelectionModalBody: React.FC<BaggageSelectionModalBodyProps>;
@@ -1,14 +1,14 @@
1
1
  /// <reference types="@duffel/api" />
2
2
  import { CreateOrderService, OfferAvailableServiceBaggage, OfferSliceSegmentPassengerBaggage } from "@duffel/api/types";
3
3
  import React from "react";
4
- import { WithServiceInformation } from "src/types";
4
+ import { WithBaggageServiceInformation } from "src/types";
5
5
  export interface BaggageSelectionModalBodyPassengerProps {
6
6
  segmentId: string;
7
7
  passengerId: string;
8
8
  passengerName: string;
9
9
  includedBaggage: OfferSliceSegmentPassengerBaggage[];
10
10
  passengerServicesForSegment: OfferAvailableServiceBaggage[];
11
- selectedServices: WithServiceInformation<CreateOrderService>[];
12
- setSelectedServices: (selectedServices: WithServiceInformation<CreateOrderService>[]) => void;
11
+ selectedServices: WithBaggageServiceInformation<CreateOrderService>[];
12
+ setSelectedServices: (selectedServices: WithBaggageServiceInformation<CreateOrderService>[]) => void;
13
13
  }
14
14
  export declare const BaggageSelectionModalBodyPassenger: React.FC<BaggageSelectionModalBodyPassengerProps>;
@@ -1,13 +1,13 @@
1
1
  /// <reference types="@duffel/api" />
2
- import * as React from "react";
3
2
  import { CreateOrderService, SeatMapCabinRowSectionElement } from "@duffel/api/types";
4
- import { WithServiceInformation } from "src/types";
3
+ import * as React from "react";
4
+ import { WithSeatServiceInformation } from "src/types";
5
5
  interface ElementProps {
6
6
  sectionIndex: number;
7
7
  elementIndex: number;
8
8
  element: SeatMapCabinRowSectionElement;
9
- selectedServicesMap: Record<string, WithServiceInformation<CreateOrderService>>;
10
- onSeatToggled: (seatService: WithServiceInformation<CreateOrderService>) => void;
9
+ selectedServicesMap: Record<string, WithSeatServiceInformation<CreateOrderService>>;
10
+ onSeatToggled: (seatService: WithSeatServiceInformation<CreateOrderService>) => void;
11
11
  currentPassengerId: string;
12
12
  currentSegmentId: string;
13
13
  currentPassengerName: string;
@@ -1,12 +1,12 @@
1
1
  /// <reference types="@duffel/api" />
2
- import * as React from "react";
3
2
  import { CreateOrderService, SeatMapCabinRow } from "@duffel/api/types";
4
- import { WithServiceInformation } from "src/types";
3
+ import * as React from "react";
4
+ import { WithSeatServiceInformation } from "src/types";
5
5
  export interface RowProps {
6
6
  row: SeatMapCabinRow;
7
7
  hasWings: boolean;
8
- selectedServicesMap: Record<string, WithServiceInformation<CreateOrderService>>;
9
- onSeatToggled: (seatService: WithServiceInformation<CreateOrderService>) => void;
8
+ selectedServicesMap: Record<string, WithSeatServiceInformation<CreateOrderService>>;
9
+ onSeatToggled: (seatService: WithSeatServiceInformation<CreateOrderService>) => void;
10
10
  currentPassengerId: string;
11
11
  currentPassengerName: string;
12
12
  currentSegmentId: string;
@@ -1,15 +1,15 @@
1
1
  /// <reference types="@duffel/api" />
2
- import * as React from "react";
3
2
  import { CreateOrderService, SeatMapCabinRow, SeatMapCabinRowSection } from "@duffel/api/types";
4
- import { WithServiceInformation } from "src/types";
3
+ import * as React from "react";
4
+ import { WithSeatServiceInformation } from "src/types";
5
5
  interface RowSectionProps {
6
6
  row: SeatMapCabinRow;
7
7
  rowNumber: string | null;
8
8
  hasWings: boolean;
9
9
  section: SeatMapCabinRowSection;
10
10
  sectionIndex: number;
11
- selectedServicesMap: Record<string, WithServiceInformation<CreateOrderService>>;
12
- onSeatToggled: (seatService: WithServiceInformation<CreateOrderService>) => void;
11
+ selectedServicesMap: Record<string, WithSeatServiceInformation<CreateOrderService>>;
12
+ onSeatToggled: (seatService: WithSeatServiceInformation<CreateOrderService>) => void;
13
13
  currentPassengerId: string;
14
14
  currentPassengerName: string;
15
15
  currentSegmentId: string;
@@ -1,14 +1,14 @@
1
1
  /// <reference types="@duffel/api" />
2
2
  import { CreateOrderService, SeatMapCabinRowSectionElementSeat } from "@duffel/api/types";
3
3
  import * as React from "react";
4
- import { WithServiceInformation } from "src/types";
4
+ import { WithSeatServiceInformation } from "src/types";
5
5
  interface SeatElementProps {
6
6
  element: SeatMapCabinRowSectionElementSeat;
7
7
  currentSegmentId: string;
8
8
  currentPassengerId: string;
9
9
  currentPassengerName: string;
10
- onSeatToggled: (seatService: WithServiceInformation<CreateOrderService>) => void;
11
- selectedServicesMap: Record<string, WithServiceInformation<CreateOrderService>>;
10
+ onSeatToggled: (seatService: WithSeatServiceInformation<CreateOrderService>) => void;
11
+ selectedServicesMap: Record<string, WithSeatServiceInformation<CreateOrderService>>;
12
12
  }
13
13
  export declare const SeatElement: React.FC<SeatElementProps>;
14
14
  export {};
@@ -1,11 +1,11 @@
1
1
  /// <reference types="@duffel/api" />
2
- import * as React from "react";
3
2
  import { CreateOrderService, SeatMap as SeatMapType } from "@duffel/api/types";
4
- import { WithServiceInformation } from "src/types";
3
+ import * as React from "react";
4
+ import { WithSeatServiceInformation } from "src/types";
5
5
  export interface SeatMapProps {
6
6
  seatMap: SeatMapType;
7
- selectedServicesMap: Record<string, WithServiceInformation<CreateOrderService>>;
8
- onSeatToggled: (seatService: WithServiceInformation<CreateOrderService>) => void;
7
+ selectedServicesMap: Record<string, WithSeatServiceInformation<CreateOrderService>>;
8
+ onSeatToggled: (seatService: WithSeatServiceInformation<CreateOrderService>) => void;
9
9
  currentPassengerId: string;
10
10
  currentPassengerName: string;
11
11
  currentSegmentId: string;
@@ -1,13 +1,13 @@
1
1
  /// <reference types="@duffel/api" />
2
- import React from "react";
3
2
  import { CreateOrder, CreateOrderService, Offer, SeatMap } from "@duffel/api/types";
4
- import { WithServiceInformation } from "src/types";
3
+ import React from "react";
4
+ import { WithSeatServiceInformation } from "src/types";
5
5
  export interface SeatSelectionCardProps {
6
6
  isLoading: boolean;
7
7
  offer?: Offer;
8
8
  seatMaps?: SeatMap[];
9
9
  passengers: CreateOrder["passengers"];
10
- selectedServices: WithServiceInformation<CreateOrderService>[];
11
- setSelectedServices: (selectedServices: WithServiceInformation<CreateOrderService>[]) => void;
10
+ selectedServices: WithSeatServiceInformation<CreateOrderService>[];
11
+ setSelectedServices: (selectedServices: WithSeatServiceInformation<CreateOrderService>[]) => void;
12
12
  }
13
13
  export declare const SeatSelectionCard: React.FC<SeatSelectionCardProps>;
@@ -1,8 +1,8 @@
1
1
  /// <reference types="@duffel/api" />
2
- import React from "react";
3
2
  import { CreateOrder, CreateOrderService, Offer, SeatMap } from "@duffel/api/types";
4
- import { WithServiceInformation } from "src/types";
5
- type CreateOrderServiceWithInformation = WithServiceInformation<CreateOrderService>;
3
+ import React from "react";
4
+ import { WithSeatServiceInformation } from "src/types";
5
+ type CreateOrderServiceWithInformation = WithSeatServiceInformation<CreateOrderService>;
6
6
  export interface SeatSelectionModalProps {
7
7
  isOpen: boolean;
8
8
  offer?: Offer;
@@ -1,8 +1,8 @@
1
+ /// <reference types="@duffel/api" />
1
2
  import * as React from "react";
2
- import { OfferWithNGS } from "./lib";
3
+ import { Offer } from "@duffel/api/types";
3
4
  export interface DuffelNGSViewProps {
4
- offers: OfferWithNGS[];
5
- sliceIndex: number;
5
+ offers: Offer[];
6
6
  onSelect: (offerId: string) => void;
7
7
  }
8
8
  export declare const DuffelNGSView: React.FC<DuffelNGSViewProps>;
@@ -1,7 +1,8 @@
1
+ /// <reference types="@duffel/api" />
1
2
  import * as React from "react";
2
- import { OfferWithNGS } from "./lib";
3
+ import { Offer } from "@duffel/api/types";
3
4
  export interface NGSSliceFareCardProps {
4
- offer: OfferWithNGS;
5
+ offer: Offer;
5
6
  sliceIndex: number;
6
7
  selected?: boolean;
7
8
  onSelect?: () => void;
@@ -0,0 +1,10 @@
1
+ /// <reference types="@duffel/api" />
2
+ import * as React from "react";
3
+ import { Offer } from "@duffel/api/types";
4
+ export interface NGSTableProps {
5
+ offers: Offer[];
6
+ sliceIndex: number;
7
+ previousSliceKeys: string[];
8
+ onSelect: (offerId: string, sliceKey: string) => void;
9
+ }
10
+ export declare const NGSTable: React.FC<NGSTableProps>;
@@ -1,3 +1,6 @@
1
- import { NGSShelf, OfferSliceWithNGS, OfferWithNGS } from ".";
2
- export type NGSOfferRow = Record<"slice", OfferSliceWithNGS> & Record<NGSShelf, OfferWithNGS | null>;
3
- export declare const groupOffersForNGSView: (offers: OfferWithNGS[], sliceIndex: number) => NGSOfferRow[];
1
+ /// <reference types="@duffel/api" />
2
+ import { Offer, OfferSlice } from "@duffel/api/types";
3
+ import { NGSShelf } from ".";
4
+ export type NGSOfferRow = Record<"slice", OfferSlice> & Record<NGSShelf, Offer | null>;
5
+ export declare const getNGSSliceKey: (slice: OfferSlice) => string;
6
+ export declare const groupOffersForNGSView: (offers: Offer[], sliceIndex: number, previousSliceKeys: string[]) => NGSOfferRow[];
@@ -1,56 +1,14 @@
1
1
  /// <reference types="@duffel/api" />
2
2
  import { IconName } from "@components/shared/Icon";
3
- import { Offer, OfferSlice, OfferSliceSegment, OfferSliceSegmentPassenger } from "@duffel/api/types";
4
- export declare const NGS_SHELVES: readonly ["1", "2", "3", "4", "5"];
3
+ import { OfferSlice, SeatType } from "@duffel/api/types";
4
+ export declare const NGS_SHELVES: readonly [1, 2, 3, 4, 5];
5
5
  export type NGSShelf = (typeof NGS_SHELVES)[number];
6
- type SeatWithNGS = {
7
- type: string;
8
- flatness: string;
9
- };
10
- type CabinWithNGS = {
11
- amenities: {
12
- seat: SeatWithNGS;
13
- power: {
14
- available: boolean;
15
- };
16
- wifi: {
17
- available: boolean;
18
- cost: "free" | "paid" | "free or paid" | "n/a";
19
- };
20
- };
21
- layout: {
22
- type: string;
23
- };
24
- };
25
- type OfferSliceSegmentPassengerWithNGS = OfferSliceSegmentPassenger & {
26
- cabin: CabinWithNGS;
27
- ticket_attributes: {
28
- advanced_selection_available: boolean;
29
- };
30
- };
31
- export type OfferSliceSegmentWithNGS = OfferSliceSegment & {
32
- passengers: OfferSliceSegmentPassengerWithNGS[];
33
- };
34
- export type OfferSliceWithNGS = OfferSlice & {
35
- segments: OfferSliceSegmentWithNGS[];
36
- ngs_shelf: NGSShelf;
37
- };
38
- export type OfferWithNGS = Offer & {
39
- slices: OfferSliceWithNGS[];
40
- };
41
- type SeatType = "Standard seat" | "Extra legroom" | "Larger seat" | "Lie flat bed" | "Lie flat suite";
42
6
  type ShelfInfo = {
43
7
  short_title: string;
44
8
  full_title: string;
45
9
  description: string;
46
- seat: {
47
- description: SeatType;
48
- icon: IconName;
49
- };
50
- checked_bag: boolean;
51
- seat_selection: boolean;
52
10
  icon: IconName;
53
11
  };
12
+ export declare const NGS_SHELF_INFO: Record<OfferSlice["ngs_shelf"], ShelfInfo>;
54
13
  export declare const SEAT_ICONS_MAP: Record<SeatType, IconName>;
55
- export declare const NGS_SHELF_INFO: Record<NGSShelf, ShelfInfo>;
56
14
  export {};
@@ -1,10 +1,7 @@
1
1
  /// <reference types="@duffel/api" />
2
2
  import { OfferSlice as OfferSliceType } from "@duffel/api/types";
3
+ import React from "react";
3
4
  export interface OfferSliceProps {
4
5
  slice: OfferSliceType;
5
- showFullDate?: boolean;
6
- showFlightNumbers?: boolean;
7
- hideFareBrand?: boolean;
8
- highlightAll?: boolean;
9
6
  }
10
7
  export declare const OfferSlice: React.FC<OfferSliceProps>;
@@ -0,0 +1,7 @@
1
+ /// <reference types="@duffel/api" />
2
+ import { OfferSlice } from "@duffel/api/types";
3
+ interface OfferSliceConditionsProps {
4
+ slice: OfferSlice;
5
+ }
6
+ export declare const OfferSliceConditions: React.FC<OfferSliceConditionsProps>;
7
+ export {};
@@ -0,0 +1,7 @@
1
+ import { OfferSliceProps } from "@components/OfferSlice/OfferSlice";
2
+ import { ModalProps } from "@components/shared/Modal";
3
+ interface OfferSliceModalProps extends Pick<ModalProps, "isOpen" | "onClose"> {
4
+ slice: OfferSliceProps["slice"];
5
+ }
6
+ export declare const OfferSliceModal: React.FC<OfferSliceModalProps>;
7
+ export {};
@@ -8,6 +8,7 @@ export declare const ICON_MAP: {
8
8
  airline_seat_legroom_extra: import("react/jsx-runtime").JSX.Element;
9
9
  airline_seat_recline_extra: import("react/jsx-runtime").JSX.Element;
10
10
  airline_seat_recline_normal: import("react/jsx-runtime").JSX.Element;
11
+ airline_stops: import("react/jsx-runtime").JSX.Element;
11
12
  airplane_ticket: import("react/jsx-runtime").JSX.Element;
12
13
  apartment: import("react/jsx-runtime").JSX.Element;
13
14
  arrow_downward: import("react/jsx-runtime").JSX.Element;
@@ -22,6 +23,7 @@ export declare const ICON_MAP: {
22
23
  bedroom_parent: import("react/jsx-runtime").JSX.Element;
23
24
  brunch_dining: import("react/jsx-runtime").JSX.Element;
24
25
  cabin_bag: import("react/jsx-runtime").JSX.Element;
26
+ calendar_month: import("react/jsx-runtime").JSX.Element;
25
27
  carry_on_bag_inactive: import("react/jsx-runtime").JSX.Element;
26
28
  check: import("react/jsx-runtime").JSX.Element;
27
29
  check_circle: import("react/jsx-runtime").JSX.Element;
@@ -39,7 +41,9 @@ export declare const ICON_MAP: {
39
41
  exit_row_right: import("react/jsx-runtime").JSX.Element;
40
42
  expand_content: import("react/jsx-runtime").JSX.Element;
41
43
  fitness_center: import("react/jsx-runtime").JSX.Element;
44
+ flight: import("react/jsx-runtime").JSX.Element;
42
45
  flight_class: import("react/jsx-runtime").JSX.Element;
46
+ flight_landing: import("react/jsx-runtime").JSX.Element;
43
47
  flight_takeoff: import("react/jsx-runtime").JSX.Element;
44
48
  galley: import("react/jsx-runtime").JSX.Element;
45
49
  hearing: import("react/jsx-runtime").JSX.Element;
@@ -1,11 +1,14 @@
1
1
  import * as React from "react";
2
- interface ModalProps {
2
+ export interface ModalProps {
3
3
  onClose: () => void;
4
4
  isOpen: boolean;
5
5
  children: React.ReactNode;
6
6
  }
7
7
  export declare const Modal: React.FC<ModalProps>;
8
- export declare const ModalBody: React.FC<{
8
+ interface ModalBodyProps {
9
+ tall?: boolean;
10
+ noPadding?: boolean;
9
11
  children: React.ReactNode;
10
- }>;
12
+ }
13
+ export declare const ModalBody: React.FC<ModalBodyProps>;
11
14
  export {};