mautourco-components 0.2.8 → 0.2.10

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 (206) hide show
  1. package/dist/components/atoms/Button/Button.css +28 -0
  2. package/dist/components/atoms/Button/Button.d.ts +1 -1
  3. package/dist/components/atoms/Button/Button.js +2 -1
  4. package/dist/components/atoms/Chip/Chip.css +2238 -0
  5. package/dist/components/atoms/Chip/Chip.d.ts +27 -0
  6. package/dist/components/atoms/Chip/Chip.js +37 -0
  7. package/dist/components/atoms/Divider/Divider.css +2135 -0
  8. package/dist/components/atoms/Divider/Divider.d.ts +14 -0
  9. package/dist/components/atoms/Divider/Divider.js +16 -0
  10. package/dist/components/atoms/Icon/Icon.d.ts +5 -3
  11. package/dist/components/atoms/Icon/Icon.js +4 -119
  12. package/dist/components/atoms/Icon/icons/AccomIcon.d.ts +12 -0
  13. package/dist/components/atoms/Icon/icons/AccomIcon.js +36 -0
  14. package/dist/components/atoms/Icon/icons/ArrowDownOutlineIcon.d.ts +8 -0
  15. package/dist/components/atoms/Icon/icons/ArrowDownOutlineIcon.js +36 -0
  16. package/dist/components/atoms/Icon/icons/ArrowRightOutlineIcon.d.ts +8 -0
  17. package/dist/components/atoms/Icon/icons/ArrowRightOutlineIcon.js +36 -0
  18. package/dist/components/atoms/Icon/icons/Building2OutlineIcon.d.ts +8 -0
  19. package/dist/components/atoms/Icon/icons/Building2OutlineIcon.js +36 -0
  20. package/dist/components/atoms/Icon/icons/BusIcon.d.ts +12 -0
  21. package/dist/components/atoms/Icon/icons/BusIcon.js +36 -0
  22. package/dist/components/atoms/Icon/icons/Calendar2Icon.d.ts +12 -0
  23. package/dist/components/atoms/Icon/icons/Calendar2Icon.js +36 -0
  24. package/dist/components/atoms/Icon/icons/CalendarRangeOutlineIcon.d.ts +8 -0
  25. package/dist/components/atoms/Icon/icons/CalendarRangeOutlineIcon.js +36 -0
  26. package/dist/components/atoms/Icon/icons/Chevron.d.ts +2 -0
  27. package/dist/components/atoms/Icon/icons/Chevron.js +10 -10
  28. package/dist/components/atoms/Icon/icons/MapIcon.d.ts +8 -0
  29. package/dist/components/atoms/Icon/icons/MapIcon.js +36 -0
  30. package/dist/components/atoms/Icon/icons/MicroIcon.d.ts +12 -0
  31. package/dist/components/atoms/Icon/icons/MicroIcon.js +36 -0
  32. package/dist/components/atoms/Icon/icons/MoreVerticalIcon.d.ts +12 -0
  33. package/dist/components/atoms/Icon/icons/MoreVerticalIcon.js +36 -0
  34. package/dist/components/atoms/Icon/icons/NightIcon.d.ts +12 -0
  35. package/dist/components/atoms/Icon/icons/NightIcon.js +36 -0
  36. package/dist/components/atoms/Icon/icons/PlaneLandingOutlineIcon.d.ts +8 -0
  37. package/dist/components/atoms/Icon/icons/PlaneLandingOutlineIcon.js +36 -0
  38. package/dist/components/atoms/Icon/icons/PlaneTakeoffOutlineIcon.d.ts +8 -0
  39. package/dist/components/atoms/Icon/icons/PlaneTakeoffOutlineIcon.js +36 -0
  40. package/dist/components/atoms/Icon/icons/RowExcursion.d.ts +16 -0
  41. package/dist/components/atoms/Icon/icons/RowExcursion.js +28 -0
  42. package/dist/components/atoms/Icon/icons/StopWatchIcon.d.ts +12 -0
  43. package/dist/components/atoms/Icon/icons/StopWatchIcon.js +36 -0
  44. package/dist/components/atoms/Icon/icons/Utensils.d.ts +12 -0
  45. package/dist/components/atoms/Icon/icons/Utensils.js +36 -0
  46. package/dist/components/atoms/Icon/icons/WalletIcon.d.ts +12 -0
  47. package/dist/components/atoms/Icon/icons/WalletIcon.js +36 -0
  48. package/dist/components/atoms/Icon/icons/registry.d.ts +66 -0
  49. package/dist/components/atoms/Icon/icons/registry.js +121 -0
  50. package/dist/components/atoms/Typography/Typography.d.ts +3 -1
  51. package/dist/components/atoms/Typography/Typography.js +3 -15
  52. package/dist/components/molecules/ActionDropdown/ActionDropdown.css +2119 -0
  53. package/dist/components/molecules/ActionDropdown/ActionDropdown.d.ts +21 -0
  54. package/dist/components/molecules/ActionDropdown/ActionDropdown.js +34 -0
  55. package/dist/components/molecules/DateDisplay/DateDisplay.d.ts +14 -0
  56. package/dist/components/molecules/DateDisplay/DateDisplay.js +39 -0
  57. package/dist/components/molecules/FeatureRow/FeatureRow.css +2130 -0
  58. package/dist/components/molecules/FeatureRow/FeatureRow.d.ts +17 -0
  59. package/dist/components/molecules/FeatureRow/FeatureRow.js +22 -0
  60. package/dist/components/molecules/FromTo/FromTo.d.ts +8 -0
  61. package/dist/components/molecules/FromTo/FromTo.js +24 -0
  62. package/dist/components/molecules/LocationDropdown/LocationDropdown.d.ts +1 -0
  63. package/dist/components/molecules/LocationDropdown/LocationDropdown.js +17 -4
  64. package/dist/components/molecules/Pagination/Pagination.css +2168 -0
  65. package/dist/components/molecules/Pagination/Pagination.d.ts +16 -0
  66. package/dist/components/molecules/Pagination/Pagination.js +90 -0
  67. package/dist/components/molecules/SectionTitle/SectionTitle.css +2112 -0
  68. package/dist/components/molecules/SectionTitle/SectionTitle.d.ts +16 -0
  69. package/dist/components/molecules/SectionTitle/SectionTitle.js +21 -0
  70. package/dist/components/molecules/ServiceSelector/ServiceSelector.d.ts +22 -0
  71. package/dist/components/molecules/ServiceSelector/ServiceSelector.js +85 -0
  72. package/dist/components/molecules/ServiceSelector/index.d.ts +2 -0
  73. package/dist/components/molecules/ServiceSelector/index.js +1 -0
  74. package/dist/components/molecules/Stepper/Stepper.css +2144 -0
  75. package/dist/components/molecules/Stepper/Stepper.d.ts +18 -0
  76. package/dist/components/molecules/Stepper/Stepper.js +33 -0
  77. package/dist/components/molecules/TableServiceItem/DetailsCol.d.ts +12 -0
  78. package/dist/components/molecules/TableServiceItem/DetailsCol.js +17 -0
  79. package/dist/components/molecules/TableServiceItem/ItemCol.d.ts +13 -0
  80. package/dist/components/molecules/TableServiceItem/ItemCol.js +24 -0
  81. package/dist/components/molecules/TableServiceItem/RowAccommodation.d.ts +16 -0
  82. package/dist/components/molecules/TableServiceItem/RowAccommodation.js +37 -0
  83. package/dist/components/molecules/TableServiceItem/RowExcursion.d.ts +16 -0
  84. package/dist/components/molecules/TableServiceItem/RowExcursion.js +22 -0
  85. package/dist/components/molecules/TableServiceItem/RowOtherServices.d.ts +9 -0
  86. package/dist/components/molecules/TableServiceItem/RowOtherServices.js +34 -0
  87. package/dist/components/molecules/TableServiceItem/RowTransfer.d.ts +15 -0
  88. package/dist/components/molecules/TableServiceItem/RowTransfer.js +37 -0
  89. package/dist/components/molecules/TableServiceItem/index.d.ts +17 -0
  90. package/dist/components/molecules/TableServiceItem/index.js +15 -0
  91. package/dist/components/molecules/TextWithIcon/TextWithIcon.d.ts +30 -0
  92. package/dist/components/molecules/TextWithIcon/TextWithIcon.js +31 -0
  93. package/dist/components/molecules/TooltipDisplay/TooltipDisplay.d.ts +13 -0
  94. package/dist/components/molecules/TooltipDisplay/TooltipDisplay.js +18 -0
  95. package/dist/components/organisms/CarBookingCard/CarBookingCard.css +2313 -0
  96. package/dist/components/organisms/CarBookingCard/CarBookingCard.d.ts +51 -0
  97. package/dist/components/organisms/CarBookingCard/CarBookingCard.js +39 -0
  98. package/dist/components/organisms/CarBookingCard/index.d.ts +2 -0
  99. package/dist/components/organisms/CarBookingCard/index.js +1 -0
  100. package/dist/components/organisms/Table/Table.css +2280 -0
  101. package/dist/components/organisms/Table/Table.d.ts +50 -0
  102. package/dist/components/organisms/Table/Table.js +95 -0
  103. package/dist/components/organisms/Table/TableCell.d.ts +15 -0
  104. package/dist/components/organisms/Table/TableCell.js +16 -0
  105. package/dist/components/organisms/Table/columns/booking-columns.d.ts +7 -0
  106. package/dist/components/organisms/Table/columns/booking-columns.js +83 -0
  107. package/dist/components/organisms/Table/columns/detail-resume-columns.d.ts +3 -0
  108. package/dist/components/organisms/Table/columns/detail-resume-columns.js +178 -0
  109. package/dist/components/organisms/Table/columns/index.d.ts +12 -0
  110. package/dist/components/organisms/Table/columns/index.js +9 -0
  111. package/dist/components/organisms/Table/columns/quotation-columns.d.ts +7 -0
  112. package/dist/components/organisms/Table/columns/quotation-columns.js +91 -0
  113. package/dist/components/organisms/Table/constant.d.ts +6 -0
  114. package/dist/components/organisms/Table/constant.js +24 -0
  115. package/dist/components/organisms/Table/index.d.ts +2 -0
  116. package/dist/components/organisms/Table/index.js +2 -0
  117. package/dist/components/ui/button.d.ts +1 -1
  118. package/dist/components/ui/popover.d.ts +3 -3
  119. package/dist/components/ui/popover.js +5 -5
  120. package/dist/components/ui/tooltip.d.ts +7 -0
  121. package/dist/components/ui/tooltip.js +42 -0
  122. package/dist/index.d.ts +47 -25
  123. package/dist/index.js +30 -16
  124. package/dist/styles/components/molecule/location-dropdown.css +38 -0
  125. package/dist/styles/components/molecule/service-selector.css +2310 -0
  126. package/dist/styles/components/typography.css +1 -0
  127. package/dist/types/table/action-dropdown-type.types.d.ts +5 -0
  128. package/dist/types/table/action-dropdown-type.types.js +6 -0
  129. package/dist/types/table/booking.types.d.ts +16 -0
  130. package/dist/types/table/booking.types.js +1 -0
  131. package/dist/types/table/detail-resume.types.d.ts +155 -0
  132. package/dist/types/table/detail-resume.types.js +7 -0
  133. package/dist/types/table/index.d.ts +3 -0
  134. package/dist/types/table/index.js +3 -0
  135. package/dist/types/table/quotation.types.d.ts +23 -0
  136. package/dist/types/table/quotation.types.js +1 -0
  137. package/package.json +6 -1
  138. package/src/components/atoms/Button/Button.css +28 -0
  139. package/src/components/atoms/Button/Button.tsx +3 -2
  140. package/src/components/atoms/Chip/Chip.css +161 -0
  141. package/src/components/atoms/Chip/Chip.tsx +79 -0
  142. package/src/components/atoms/Divider/Divider.css +58 -0
  143. package/src/components/atoms/Divider/Divider.tsx +36 -0
  144. package/src/components/atoms/Icon/Icon.tsx +8 -153
  145. package/src/components/atoms/Icon/icons/AccomIcon.tsx +45 -0
  146. package/src/components/atoms/Icon/icons/ArrowDownOutlineIcon.tsx +41 -0
  147. package/src/components/atoms/Icon/icons/ArrowRightOutlineIcon.tsx +50 -0
  148. package/src/components/atoms/Icon/icons/Building2OutlineIcon.tsx +52 -0
  149. package/src/components/atoms/Icon/icons/BusIcon.tsx +52 -0
  150. package/src/components/atoms/Icon/icons/Calendar2Icon.tsx +54 -0
  151. package/src/components/atoms/Icon/icons/CalendarRangeOutlineIcon.tsx +55 -0
  152. package/src/components/atoms/Icon/icons/Chevron.tsx +30 -11
  153. package/src/components/atoms/Icon/icons/MapIcon.tsx +48 -0
  154. package/src/components/atoms/Icon/icons/MicroIcon.tsx +45 -0
  155. package/src/components/atoms/Icon/icons/MoreVerticalIcon.tsx +53 -0
  156. package/src/components/atoms/Icon/icons/NightIcon.tsx +45 -0
  157. package/src/components/atoms/Icon/icons/PlaneLandingOutlineIcon.tsx +56 -0
  158. package/src/components/atoms/Icon/icons/PlaneTakeoffOutlineIcon.tsx +52 -0
  159. package/src/components/atoms/Icon/icons/RowExcursion.tsx +54 -0
  160. package/src/components/atoms/Icon/icons/StopWatchIcon.tsx +45 -0
  161. package/src/components/atoms/Icon/icons/Utensils.tsx +45 -0
  162. package/src/components/atoms/Icon/icons/WalletIcon.tsx +45 -0
  163. package/src/components/atoms/Icon/icons/registry.tsx +127 -0
  164. package/src/components/atoms/Typography/Typography.tsx +22 -30
  165. package/src/components/molecules/ActionDropdown/ActionDropdown.css +23 -0
  166. package/src/components/molecules/ActionDropdown/ActionDropdown.tsx +53 -0
  167. package/src/components/molecules/DateDisplay/DateDisplay.tsx +47 -0
  168. package/src/components/molecules/FeatureRow/FeatureRow.css +53 -0
  169. package/src/components/molecules/FeatureRow/FeatureRow.tsx +46 -0
  170. package/src/components/molecules/FromTo/FromTo.tsx +31 -0
  171. package/src/components/molecules/LocationDropdown/LocationDropdown.tsx +67 -38
  172. package/src/components/molecules/Pagination/Pagination.css +90 -0
  173. package/src/components/molecules/Pagination/Pagination.tsx +149 -0
  174. package/src/components/molecules/SectionTitle/SectionTitle.css +35 -0
  175. package/src/components/molecules/SectionTitle/SectionTitle.tsx +43 -0
  176. package/src/components/molecules/ServiceSelector/ServiceSelector.tsx +179 -0
  177. package/src/components/molecules/ServiceSelector/index.ts +3 -0
  178. package/src/components/molecules/Stepper/Stepper.css +67 -0
  179. package/src/components/molecules/Stepper/Stepper.tsx +74 -0
  180. package/src/components/molecules/TableServiceItem/DetailsCol.tsx +25 -0
  181. package/src/components/molecules/TableServiceItem/ItemCol.tsx +68 -0
  182. package/src/components/molecules/TableServiceItem/RowAccommodation.tsx +56 -0
  183. package/src/components/molecules/TableServiceItem/RowExcursion.tsx +40 -0
  184. package/src/components/molecules/TableServiceItem/RowOtherServices.tsx +50 -0
  185. package/src/components/molecules/TableServiceItem/RowTransfer.tsx +60 -0
  186. package/src/components/molecules/TableServiceItem/index.ts +24 -0
  187. package/src/components/molecules/TextWithIcon/TextWithIcon.tsx +62 -0
  188. package/src/components/molecules/TooltipDisplay/TooltipDisplay.tsx +32 -0
  189. package/src/components/organisms/CarBookingCard/CarBookingCard.css +236 -0
  190. package/src/components/organisms/CarBookingCard/CarBookingCard.tsx +238 -0
  191. package/src/components/organisms/CarBookingCard/index.ts +12 -0
  192. package/src/components/organisms/Table/Table.css +185 -0
  193. package/src/components/organisms/Table/Table.tsx +273 -0
  194. package/src/components/organisms/Table/TableCell.tsx +40 -0
  195. package/src/components/organisms/Table/columns/booking-columns.tsx +118 -0
  196. package/src/components/organisms/Table/columns/detail-resume-columns.tsx +226 -0
  197. package/src/components/organisms/Table/columns/index.ts +11 -0
  198. package/src/components/organisms/Table/columns/quotation-columns.tsx +150 -0
  199. package/src/components/organisms/Table/constant.ts +31 -0
  200. package/src/components/organisms/Table/index.ts +2 -0
  201. package/src/components/ui/popover.tsx +10 -10
  202. package/src/components/ui/tooltip.tsx +45 -0
  203. package/src/styles/components/molecule/location-dropdown.css +29 -0
  204. package/src/styles/components/molecule/service-selector.css +228 -0
  205. package/src/styles/components/typography.css +4 -0
  206. package/src/components/atoms/Icon/icons/ChevronDownIcon.tsx +0 -46
@@ -2072,6 +2072,7 @@
2072
2072
  --mobile-global-spacing-section-gap-md: 24px;
2073
2073
  --mobile-global-spacing-section-gap-lg: 32px;
2074
2074
  --mobile-global-spacing-section-gap-xl: 40px;
2075
+ --color-text-yellow: var(--color-yellow-600);
2075
2076
  }
2076
2077
 
2077
2078
  .heading-3xl {
@@ -0,0 +1,5 @@
1
+ export declare enum ActionDropdownType {
2
+ ADD_ITEM = "add_item",
3
+ SEND_VIA_MAIL = "send_via_mail",
4
+ DELETE_QUOTE = "delete_quote"
5
+ }
@@ -0,0 +1,6 @@
1
+ export var ActionDropdownType;
2
+ (function (ActionDropdownType) {
3
+ ActionDropdownType["ADD_ITEM"] = "add_item";
4
+ ActionDropdownType["SEND_VIA_MAIL"] = "send_via_mail";
5
+ ActionDropdownType["DELETE_QUOTE"] = "delete_quote";
6
+ })(ActionDropdownType || (ActionDropdownType = {}));
@@ -0,0 +1,16 @@
1
+ import { TableRowData } from '../../components/organisms/Table/Table';
2
+ export interface BookingListItem extends TableRowData<BookingListItem> {
3
+ agency_name: string;
4
+ created_by: string;
5
+ created_date: string;
6
+ status: string;
7
+ file_name: string;
8
+ booking_id: number;
9
+ date: string[];
10
+ pax_details: {
11
+ adult: number;
12
+ teen: number;
13
+ child: number;
14
+ infant: number;
15
+ };
16
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,155 @@
1
+ import { TableRowData } from '../../components/organisms/Table/Table';
2
+ export declare enum ServiceType {
3
+ ACCOMMODATION = "accommodation",
4
+ TRANSFER = "transfer",
5
+ EXCURSION = "excursion",
6
+ OTHER_SERVICE = "otherService"
7
+ }
8
+ export interface HotelAmenity {
9
+ AmenityIcon: string;
10
+ AmenityName: string;
11
+ }
12
+ export interface CancellationPolicy {
13
+ Description: string;
14
+ Value: number;
15
+ ValidFrom: string;
16
+ ValidTo: string;
17
+ }
18
+ export interface Offer {
19
+ OfferId: number;
20
+ OfferValue: number;
21
+ OfferName: string;
22
+ OfferType: string;
23
+ OfferDescription: string;
24
+ }
25
+ export interface Room extends TableRowData<DetailResumeItem> {
26
+ RoomDetailId: number;
27
+ Offers: Offer[];
28
+ Mandatory: any[];
29
+ RoomStatus: string;
30
+ RoomName: string;
31
+ RoomAmenities: Record<string, any>;
32
+ RoomImage: string;
33
+ AdultCount: number;
34
+ TeenCount: number;
35
+ ChildCount: number;
36
+ InfantCount: number;
37
+ MealPlanId: number;
38
+ MealPlan: string;
39
+ cancellation_policy: CancellationPolicy[];
40
+ ClientCategory: string;
41
+ Total: string;
42
+ GroupingUuid: string;
43
+ ClientDetails: any[];
44
+ ChildAge?: number[];
45
+ TeenAge?: number[];
46
+ InfantAge?: number[];
47
+ Dates: string[];
48
+ }
49
+ export interface DetailResumeAccommodation extends TableRowData<DetailResumeItem>, Partial<Room> {
50
+ Type: ServiceType;
51
+ HotelId: number;
52
+ HotelName: string;
53
+ HotelAmenities: HotelAmenity[];
54
+ MainImage: string;
55
+ Images: string[];
56
+ Total: string;
57
+ Currency: string;
58
+ Description: string;
59
+ TitleDescription: string;
60
+ Rooms: Room[];
61
+ }
62
+ export interface DetailResumeTransfer extends TableRowData<DetailResumeItem> {
63
+ Type: ServiceType;
64
+ ServiceId: number;
65
+ TransferType: 'ARV' | 'DEP' | string;
66
+ LocationFromId: number;
67
+ LocationToId: number;
68
+ Remarks: string | null;
69
+ Flight: any | null;
70
+ TransferCategoryId: number;
71
+ VehicleTypeId: number;
72
+ Currency: string;
73
+ TotalPrice: string;
74
+ TransferDate: string;
75
+ TransferTime: string;
76
+ AdultCount: number;
77
+ TeenCount: number;
78
+ ChildCount: number;
79
+ InfantCount: number;
80
+ BabySeat: number;
81
+ AirConditionning: boolean;
82
+ LuggageTruck: number;
83
+ LuggageCar: number;
84
+ CarCount: number;
85
+ ChildAge: number[];
86
+ TeenAge: number[];
87
+ InfantAge: number[];
88
+ HandlingFee: string;
89
+ VehicleImage: string;
90
+ MaxLuggage: string;
91
+ BabySeatId: number;
92
+ BabySeatDetailId: number;
93
+ TransferCategoryName: string;
94
+ VehicleTypeName: string;
95
+ LocationFromName: string;
96
+ LocationFromDetails: string;
97
+ LocationToName: string;
98
+ LocationToDetails: string;
99
+ }
100
+ export interface DetailResumeExcursion extends TableRowData<DetailResumeItem> {
101
+ Type: ServiceType;
102
+ ServiceId: number;
103
+ ExcursionID: number;
104
+ ExcursionCategoryID: number;
105
+ ServiceDate: string;
106
+ SelectedHotelId: number;
107
+ Currency: string;
108
+ SelectedHotel: string;
109
+ SelectedHotelDetails: string;
110
+ LocationToName: string;
111
+ LocationToDetails: string;
112
+ ToursType: string;
113
+ Remarks: string;
114
+ ClientDetails: any[];
115
+ AdultCount: number;
116
+ TeenCount: number;
117
+ ChildCount: number;
118
+ InfantCount: number;
119
+ TotalPrice: string;
120
+ Description: string;
121
+ TransferType: string;
122
+ AvailableLanguages: string[];
123
+ Duration: string;
124
+ ExcursionName: string;
125
+ MealIncluded: boolean;
126
+ ServiceName: string;
127
+ TransferIncluded: boolean;
128
+ Tagline: string;
129
+ Region: string;
130
+ MiniDescription: string;
131
+ CancellationPolicy: string;
132
+ MainExcursionImage: string;
133
+ Accessibility: string;
134
+ }
135
+ export interface DetailResumeOtherService extends TableRowData<DetailResumeItem> {
136
+ Type: ServiceType;
137
+ quote: number;
138
+ service_for: string;
139
+ service_detail_id: number;
140
+ service_date: string;
141
+ remarks: string;
142
+ currency: string;
143
+ unit: number;
144
+ adult_pax: number;
145
+ child_pax: number;
146
+ teen_pax: number;
147
+ infant_pax: number;
148
+ child_age: number[] | null;
149
+ teen_age: number[] | null;
150
+ infant_age: number[] | null;
151
+ total_price: string;
152
+ created_at: string;
153
+ active: number;
154
+ }
155
+ export type DetailResumeItem = DetailResumeAccommodation | DetailResumeTransfer | DetailResumeExcursion | DetailResumeOtherService;
@@ -0,0 +1,7 @@
1
+ export var ServiceType;
2
+ (function (ServiceType) {
3
+ ServiceType["ACCOMMODATION"] = "accommodation";
4
+ ServiceType["TRANSFER"] = "transfer";
5
+ ServiceType["EXCURSION"] = "excursion";
6
+ ServiceType["OTHER_SERVICE"] = "otherService";
7
+ })(ServiceType || (ServiceType = {}));
@@ -0,0 +1,3 @@
1
+ export * from './action-dropdown-type.types';
2
+ export * from './detail-resume.types';
3
+ export * from './quotation.types';
@@ -0,0 +1,3 @@
1
+ export * from './action-dropdown-type.types';
2
+ export * from './detail-resume.types';
3
+ export * from './quotation.types';
@@ -0,0 +1,23 @@
1
+ import { TableRowData } from '../../components/organisms/Table/Table';
2
+ export interface QuotationListItem extends TableRowData<QuotationListItem> {
3
+ agency_name: string;
4
+ client_type: string;
5
+ created_by: string;
6
+ created_date: string;
7
+ status: string;
8
+ file_name: string;
9
+ file_nb: string;
10
+ date: string[];
11
+ service_count: {
12
+ accom_count: number;
13
+ transfer_count: number;
14
+ tours_count: number;
15
+ others_count: number;
16
+ };
17
+ pax_details: {
18
+ adult: number;
19
+ teen: number;
20
+ child: number;
21
+ infant: number;
22
+ };
23
+ }
@@ -0,0 +1 @@
1
+ export {};
package/package.json CHANGED
@@ -1,10 +1,13 @@
1
1
  {
2
2
  "name": "mautourco-components",
3
- "version": "0.2.8",
3
+ "version": "0.2.10",
4
4
  "private": false,
5
5
  "description": "Bibliothèque de composants Motorco pour le redesign",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
8
+ "engines": {
9
+ "node": ">=23.0.0"
10
+ },
8
11
  "files": [
9
12
  "dist",
10
13
  "src/components",
@@ -24,6 +27,7 @@
24
27
  "dependencies": {
25
28
  "@radix-ui/react-popover": "^1.1.15",
26
29
  "@radix-ui/react-slot": "^1.2.4",
30
+ "@radix-ui/react-tooltip": "^1.2.8",
27
31
  "@testing-library/dom": "^10.4.1",
28
32
  "@testing-library/jest-dom": "^6.8.0",
29
33
  "@testing-library/react": "^16.3.0",
@@ -36,6 +40,7 @@
36
40
  "clsx": "^2.1.1",
37
41
  "date-fns": "^4.1.0",
38
42
  "lucide-react": "^0.554.0",
43
+ "motion": "^12.23.26",
39
44
  "react": "^19.1.1",
40
45
  "react-day-picker": "^9.11.2",
41
46
  "react-dom": "^19.1.1",
@@ -37,6 +37,11 @@
37
37
  line-height: calc(var(--font-leading-leading-sm, 20)* 1rem);
38
38
  }
39
39
 
40
+ .button--sm.button--with-icon {
41
+ /* Figma button/md gap is 10px even when used with 14px text + icon */
42
+ gap: var(--component-button-spacing-md-gap, 10px);
43
+ }
44
+
40
45
  .button--md {
41
46
  padding: var(--component-button-spacing-md-padding-y, 10rem)
42
47
  var(--component-button-spacing-md-padding-x, 14rem);
@@ -106,6 +111,29 @@
106
111
  color: var(--color-button-brand-foreground-secondary-default, #ffffff);
107
112
  }
108
113
 
114
+ .button--destructive {
115
+ background-color: var(--color-button-destructive-background-default, #dc2626);
116
+ color: var(--color-button-destructive-foreground-default, #ffffff);
117
+ }
118
+
119
+ .button--destructive:hover:not(:disabled) {
120
+ background-color: var(--color-button-destructive-background-hover, #991b1b);
121
+ }
122
+
123
+ .button--destructive:active:not(:disabled) {
124
+ background-color: var(--color-button-destructive-background-pressed, #450a0a);
125
+ }
126
+
127
+ .button--destructive:focus-visible:not(:disabled) {
128
+ outline: none;
129
+ box-shadow: 0 0 0 2rem var(--color-button-destructive-background-hover, #991b1b);
130
+ }
131
+
132
+ .button--destructive:disabled {
133
+ background-color: var(--color-button-destructive-background-disabled, #f5f5f5);
134
+ color: var(--color-button-destructive-foreground-disabled, #a3a3a3);
135
+ }
136
+
109
137
  .button--outline-primary {
110
138
  background-color: var(--component-button-color-outline-primary-background-default, #ffffff);
111
139
  color: var(--component-button-color-outline-primary-foreground-default, #fe8839);
@@ -4,7 +4,7 @@ import './Button.css';
4
4
 
5
5
  export interface ButtonProps {
6
6
  /** Variant du bouton */
7
- variant?: 'primary' | 'secondary' | 'outline' | 'outline-primary' | 'outline-secondary';
7
+ variant?: 'primary' | 'secondary' | 'outline' | 'outline-primary' | 'outline-secondary' | 'destructive';
8
8
  /** Taille du bouton */
9
9
  size?: 'sm' | 'md' | 'lg' | 'xl';
10
10
  /** Contenu du bouton */
@@ -56,11 +56,12 @@ const Button: React.FC<ButtonProps> = ({
56
56
 
57
57
  const hasLeadingIcon = Boolean(leadingIcon);
58
58
  const hasTrailingIcon = Boolean(trailingIcon);
59
+ const withIconClass = hasLeadingIcon || hasTrailingIcon ? 'button--with-icon' : '';
59
60
 
60
61
  return (
61
62
  <button
62
63
  type={type}
63
- className={buttonClasses}
64
+ className={[buttonClasses, withIconClass].filter(Boolean).join(' ')}
64
65
  disabled={disabled}
65
66
  onClick={onClick}
66
67
  >
@@ -0,0 +1,161 @@
1
+ .chip {
2
+ display: inline-flex;
3
+ align-items: center;
4
+ justify-content: center;
5
+ gap: var(--chip-spacing-sm-gap, 4px);
6
+ border-radius: var(--chip-border-radius-pill, 9999px);
7
+ font-family: var(--font-font-family-body, "Satoshi"), "Satoshi", "Inter", "Segoe UI", "system-ui", sans-serif;
8
+ font-weight: var(--font-weight-font-medium, 500);
9
+ line-height: calc(var(--font-leading-leading-base, 16) * 1px);
10
+ white-space: nowrap;
11
+ border: var(--chip-border-width-default, 1px) solid transparent;
12
+ }
13
+
14
+ /* Sizes */
15
+ .chip--sm {
16
+ padding: var(--chip-spacing-sm-padding-y, 4px) var(--chip-spacing-sm-padding-x, 8px);
17
+ font-size: var(--font-size-text-xs, 12px);
18
+ line-height: calc(var(--font-leading-leading-sm, 20) * 1px);
19
+ gap: var(--chip-spacing-sm-gap, 4px);
20
+ }
21
+
22
+ .chip--md {
23
+ padding: var(--chip-spacing-md-padding-y, 4px) var(--chip-spacing-md-padding-x, 12px);
24
+ font-size: var(--font-size-text-sm, 14px);
25
+ line-height: calc(var(--font-leading-leading-sm, 20) * 1px);
26
+ gap: var(--chip-spacing-md-gap, 4px);
27
+ }
28
+
29
+ .chip--lg {
30
+ padding: var(--chip-spacing-lg-padding-y, 4px) var(--chip-spacing-lg-padding-x, 16px);
31
+ font-size: var(--font-size-text-base, 16px);
32
+ line-height: calc(var(--font-leading-leading-base, 16) * 1px);
33
+ gap: var(--chip-spacing-lg-gap, 4px);
34
+ }
35
+
36
+ /* Types - Filled */
37
+ .chip--filled.chip--brand {
38
+ background-color: var(--chip-color-brand-filled-background, #ed4c09);
39
+ color: var(--chip-color-brand-filled-foreground, #ffffff);
40
+ border-color: transparent;
41
+ }
42
+
43
+ .chip--filled.chip--accent {
44
+ background-color: var(--chip-color-accent-filled-background, #0f7173);
45
+ color: var(--chip-color-accent-filled-foreground, #ffffff);
46
+ border-color: transparent;
47
+ }
48
+
49
+ .chip--filled.chip--blue {
50
+ background-color: var(--chip-color-blue-filled-background, #2e4780);
51
+ color: var(--chip-color-blue-filled-foreground, #ffffff);
52
+ border-color: transparent;
53
+ }
54
+
55
+ .chip--filled.chip--green {
56
+ background-color: var(--chip-color-green-filled-background, #dde8db);
57
+ color: var(--chip-color-green-filled-foreground, #384733);
58
+ border-color: transparent;
59
+ }
60
+
61
+ .chip--filled.chip--yellow {
62
+ background-color: var(--chip-color-yellow-filled-background, #eab308);
63
+ color: var(--chip-color-yellow-filled-foreground, #ffffff);
64
+ border-color: transparent;
65
+ }
66
+
67
+ .chip--filled.chip--red {
68
+ background-color: var(--chip-color-red-filled-background, #991b1b);
69
+ color: var(--chip-color-red-filled-foreground, #ffffff);
70
+ border-color: transparent;
71
+ }
72
+
73
+ .chip--filled.chip--neutral {
74
+ background-color: var(--chip-color-neutral-filled-background, #e5e7eb);
75
+ color: var(--chip-color-neutral-filled-foreground, #262626);
76
+ border-color: transparent;
77
+ }
78
+
79
+ /* Types - Outline */
80
+ .chip--outline.chip--brand {
81
+ background-color: var(--chip-color-brand-outline-background, rgba(255, 255, 255, 0));
82
+ color: var(--chip-color-brand-outline-foreground, #ed4c09);
83
+ border-color: var(--chip-color-brand-outline-foreground, #ed4c09);
84
+ }
85
+
86
+ .chip--outline.chip--accent {
87
+ background-color: var(--chip-color-accent-outline-background, rgba(255, 255, 255, 0));
88
+ color: var(--chip-color-accent-outline-foreground, #0f7173);
89
+ border-color: var(--chip-color-accent-outline-foreground, #0f7173);
90
+ }
91
+
92
+ .chip--outline.chip--blue {
93
+ background-color: var(--chip-color-blue-outline-background, rgba(255, 255, 255, 0));
94
+ color: var(--chip-color-blue-outline-foreground, #2e4780);
95
+ border-color: var(--chip-color-blue-outline-foreground, #2e4780);
96
+ }
97
+
98
+ .chip--outline.chip--green {
99
+ background-color: var(--chip-color-green-outline-background, rgba(255, 255, 255, 0));
100
+ color: var(--chip-color-green-outline-foreground, #4a6045);
101
+ border-color: var(--chip-color-green-outline-foreground, #4a6045);
102
+ }
103
+
104
+ .chip--outline.chip--yellow {
105
+ background-color: var(--chip-color-yellow-outline-background, rgba(255, 255, 255, 0));
106
+ color: var(--chip-color-yellow-outline-foreground, #eab308);
107
+ border-color: var(--chip-color-yellow-outline-foreground, #eab308);
108
+ }
109
+
110
+ .chip--outline.chip--red {
111
+ background-color: var(--chip-color-red-outline-background, rgba(255, 255, 255, 0));
112
+ color: var(--chip-color-red-outline-foreground, #991b1b);
113
+ border-color: var(--chip-color-red-outline-foreground, #991b1b);
114
+ }
115
+
116
+ .chip--outline.chip--neutral {
117
+ background-color: var(--chip-color-neutral-outline-background, rgba(255, 255, 255, 0));
118
+ color: var(--chip-color-neutral-outline-text, #262626);
119
+ border-color: var(--chip-color-neutral-outline-foreground, #9ca3af);
120
+ }
121
+
122
+ /* Icon styles */
123
+ .chip__icon {
124
+ display: inline-flex;
125
+ align-items: center;
126
+ justify-content: center;
127
+ flex-shrink: 0;
128
+ }
129
+
130
+ .chip__icon--leading {
131
+ margin-right: 0;
132
+ }
133
+
134
+ .chip__icon--trailing {
135
+ margin-left: 0;
136
+ }
137
+
138
+ /* Label */
139
+ .chip__label {
140
+ display: inline-block;
141
+ }
142
+
143
+ /* Clickable state */
144
+ .chip--clickable {
145
+ cursor: pointer;
146
+ transition: opacity 0.2s ease;
147
+ }
148
+
149
+ .chip--clickable:hover {
150
+ opacity: 0.8;
151
+ }
152
+
153
+ .chip--clickable:active {
154
+ opacity: 0.6;
155
+ }
156
+
157
+ .chip--clickable:focus {
158
+ outline: 2px solid var(--chip-color-brand-outline-foreground, #ed4c09);
159
+ outline-offset: 2px;
160
+ }
161
+
@@ -0,0 +1,79 @@
1
+ import React from 'react';
2
+ import Icon, { IconName } from '../Icon/Icon';
3
+ import './Chip.css';
4
+
5
+ export interface ChipProps {
6
+ /** Label du chip */
7
+ label?: string;
8
+ /** Contenu du chip (alternative à label) */
9
+ children?: React.ReactNode;
10
+ /** Taille du chip */
11
+ size?: 'sm' | 'md' | 'lg';
12
+ /** Type de chip */
13
+ type?: 'filled' | 'outline';
14
+ /** Couleur du chip */
15
+ color?: 'brand' | 'accent' | 'blue' | 'green' | 'yellow' | 'red' | 'neutral';
16
+ /** Icône affichée avant le label */
17
+ leadingIcon?: IconName;
18
+ /** Icône affichée après le label */
19
+ trailingIcon?: IconName;
20
+ /** Taille des icônes */
21
+ iconSize?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
22
+ /** Classes CSS supplémentaires */
23
+ className?: string;
24
+ /** Handler de clic (optionnel, rend le chip cliquable) */
25
+ onClick?: (event: React.MouseEvent<HTMLDivElement>) => void;
26
+ }
27
+
28
+ const Chip: React.FC<ChipProps> = ({
29
+ label,
30
+ children,
31
+ size = 'sm',
32
+ type = 'filled',
33
+ color = 'brand',
34
+ leadingIcon,
35
+ trailingIcon,
36
+ iconSize = 'sm',
37
+ className = '',
38
+ onClick,
39
+ }) => {
40
+ const baseClasses = 'chip';
41
+ const sizeClass = `chip--${size}`;
42
+ const typeClass = `chip--${type}`;
43
+ const colorClass = `chip--${color}`;
44
+ const clickableClass = onClick ? 'chip--clickable' : '';
45
+
46
+ const chipClasses = [
47
+ baseClasses,
48
+ sizeClass,
49
+ typeClass,
50
+ colorClass,
51
+ clickableClass,
52
+ className,
53
+ ]
54
+ .filter(Boolean)
55
+ .join(' ');
56
+
57
+ const hasLeadingIcon = Boolean(leadingIcon);
58
+ const hasTrailingIcon = Boolean(trailingIcon);
59
+ const content = label || children;
60
+
61
+ return (
62
+ <div className={chipClasses} onClick={onClick} role={onClick ? 'button' : undefined} tabIndex={onClick ? 0 : undefined}>
63
+ {hasLeadingIcon && (
64
+ <span className="chip__icon chip__icon--leading">
65
+ <Icon name={leadingIcon!} size={iconSize} />
66
+ </span>
67
+ )}
68
+ <span className="chip__label">{content}</span>
69
+ {hasTrailingIcon && (
70
+ <span className="chip__icon chip__icon--trailing">
71
+ <Icon name={trailingIcon!} size={iconSize} />
72
+ </span>
73
+ )}
74
+ </div>
75
+ );
76
+ };
77
+
78
+ export default Chip;
79
+
@@ -0,0 +1,58 @@
1
+ .divider {
2
+ flex-shrink: 0;
3
+ background-color: var(--divider-color-default, #d9d9d9);
4
+ border: none;
5
+ }
6
+
7
+ /* Horizontal divider */
8
+ .divider--horizontal {
9
+ width: 100%;
10
+ height: var(--divider-border-width-default, 1px);
11
+ }
12
+
13
+ /* Vertical divider */
14
+ .divider--vertical {
15
+ width: var(--divider-border-width-default, 1px);
16
+ height: 100%;
17
+ }
18
+
19
+ /* Dashed variant (Figma divider) */
20
+ .divider--dashed {
21
+ background-color: transparent;
22
+ }
23
+
24
+ .divider--dashed.divider--horizontal {
25
+ height: var(--divider-dash-thickness, var(--divider-border-width-default, 1px));
26
+ border: none;
27
+ background-image: repeating-linear-gradient(
28
+ to right,
29
+ var(--divider-dash-color, var(--card-color-border-default, #a3a3a3)) 0,
30
+ var(--divider-dash-color, var(--card-color-border-default, #a3a3a3)) var(--divider-dash-length, 10px),
31
+ transparent var(--divider-dash-length, 10px),
32
+ transparent calc(var(--divider-dash-length, 10px) + var(--divider-dash-gap, 6px))
33
+ );
34
+ }
35
+
36
+ .divider--dashed.divider--vertical {
37
+ width: var(--divider-dash-thickness, var(--divider-border-width-default, 1px));
38
+ border: none;
39
+ background-image: repeating-linear-gradient(
40
+ to bottom,
41
+ var(--divider-dash-color, var(--card-color-border-default, #a3a3a3)) 0,
42
+ var(--divider-dash-color, var(--card-color-border-default, #a3a3a3)) var(--divider-dash-length, 10px),
43
+ transparent var(--divider-dash-length, 10px),
44
+ transparent calc(var(--divider-dash-length, 10px) + var(--divider-dash-gap, 6px))
45
+ );
46
+ }
47
+
48
+ /* Color bar variant (used in Car Booking Card) */
49
+ .divider--color-bar {
50
+ height: var(--dimension-height-h-1, 4px);
51
+ background-color: var(--color-border-active-default, #0f7173);
52
+ }
53
+
54
+ .divider--color-bar.divider--vertical {
55
+ width: var(--dimension-width-w-1, 4px);
56
+ height: 100%;
57
+ }
58
+
@@ -0,0 +1,36 @@
1
+ import React from 'react';
2
+ import './Divider.css';
3
+
4
+ export interface DividerProps {
5
+ /** Orientation of the divider */
6
+ orientation?: 'horizontal' | 'vertical';
7
+ /** Variant of the divider */
8
+ variant?: 'default' | 'color-bar' | 'dashed';
9
+ /** Custom color (overrides default color) */
10
+ color?: string;
11
+ /** Additional CSS classes */
12
+ className?: string;
13
+ }
14
+
15
+ const Divider: React.FC<DividerProps> = ({
16
+ orientation = 'horizontal',
17
+ variant = 'default',
18
+ color,
19
+ className = '',
20
+ }) => {
21
+ const baseClass = 'divider';
22
+ const orientationClass = `divider--${orientation}`;
23
+ const variantClass = variant !== 'default' ? `divider--${variant}` : '';
24
+ const classes = [baseClass, orientationClass, variantClass, className]
25
+ .filter(Boolean)
26
+ .join(' ');
27
+
28
+ const style: React.CSSProperties = color
29
+ ? { backgroundColor: color, borderColor: color }
30
+ : {};
31
+
32
+ return <div className={classes} style={style} role="separator" aria-orientation={orientation} />;
33
+ };
34
+
35
+ export default Divider;
36
+