mautourco-components 0.2.10 → 0.2.11

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 (132) hide show
  1. package/dist/components/atoms/Icon/Icon.d.ts +1 -1
  2. package/dist/components/atoms/Icon/Icon.js +1 -1
  3. package/dist/components/atoms/Icon/icons/ArrowRightOutlineIcon.js +1 -1
  4. package/dist/components/atoms/Icon/icons/registry.d.ts +0 -11
  5. package/dist/components/atoms/Icon/icons/registry.js +27 -49
  6. package/dist/components/atoms/Typography/Typography.d.ts +1 -3
  7. package/dist/components/atoms/Typography/Typography.js +15 -3
  8. package/dist/components/ui/popover.d.ts +3 -3
  9. package/dist/components/ui/popover.js +5 -5
  10. package/dist/index.d.ts +33 -41
  11. package/dist/index.js +20 -26
  12. package/dist/styles/components/typography.css +0 -1
  13. package/package.json +1 -6
  14. package/src/components/atoms/Icon/Icon.tsx +8 -2
  15. package/src/components/atoms/Icon/icons/ArrowRightOutlineIcon.tsx +7 -2
  16. package/src/components/atoms/Icon/icons/registry.tsx +28 -50
  17. package/src/components/atoms/Typography/Typography.tsx +30 -22
  18. package/src/components/ui/popover.tsx +10 -10
  19. package/src/styles/components/typography.css +0 -4
  20. package/dist/components/atoms/Icon/icons/AccomIcon.d.ts +0 -12
  21. package/dist/components/atoms/Icon/icons/AccomIcon.js +0 -36
  22. package/dist/components/atoms/Icon/icons/ArrowDownOutlineIcon.d.ts +0 -8
  23. package/dist/components/atoms/Icon/icons/ArrowDownOutlineIcon.js +0 -36
  24. package/dist/components/atoms/Icon/icons/BusIcon.d.ts +0 -12
  25. package/dist/components/atoms/Icon/icons/BusIcon.js +0 -36
  26. package/dist/components/atoms/Icon/icons/Calendar2Icon.d.ts +0 -12
  27. package/dist/components/atoms/Icon/icons/Calendar2Icon.js +0 -36
  28. package/dist/components/atoms/Icon/icons/MapIcon.d.ts +0 -8
  29. package/dist/components/atoms/Icon/icons/MapIcon.js +0 -36
  30. package/dist/components/atoms/Icon/icons/MicroIcon.d.ts +0 -12
  31. package/dist/components/atoms/Icon/icons/MicroIcon.js +0 -36
  32. package/dist/components/atoms/Icon/icons/MoreVerticalIcon.d.ts +0 -12
  33. package/dist/components/atoms/Icon/icons/MoreVerticalIcon.js +0 -36
  34. package/dist/components/atoms/Icon/icons/NightIcon.d.ts +0 -12
  35. package/dist/components/atoms/Icon/icons/NightIcon.js +0 -36
  36. package/dist/components/atoms/Icon/icons/RowExcursion.d.ts +0 -16
  37. package/dist/components/atoms/Icon/icons/RowExcursion.js +0 -28
  38. package/dist/components/atoms/Icon/icons/StopWatchIcon.d.ts +0 -12
  39. package/dist/components/atoms/Icon/icons/StopWatchIcon.js +0 -36
  40. package/dist/components/atoms/Icon/icons/Utensils.d.ts +0 -12
  41. package/dist/components/atoms/Icon/icons/Utensils.js +0 -36
  42. package/dist/components/atoms/Icon/icons/WalletIcon.d.ts +0 -12
  43. package/dist/components/atoms/Icon/icons/WalletIcon.js +0 -36
  44. package/dist/components/molecules/ActionDropdown/ActionDropdown.css +0 -2119
  45. package/dist/components/molecules/ActionDropdown/ActionDropdown.d.ts +0 -21
  46. package/dist/components/molecules/ActionDropdown/ActionDropdown.js +0 -34
  47. package/dist/components/molecules/DateDisplay/DateDisplay.d.ts +0 -14
  48. package/dist/components/molecules/DateDisplay/DateDisplay.js +0 -39
  49. package/dist/components/molecules/FromTo/FromTo.d.ts +0 -8
  50. package/dist/components/molecules/FromTo/FromTo.js +0 -24
  51. package/dist/components/molecules/TableServiceItem/DetailsCol.d.ts +0 -12
  52. package/dist/components/molecules/TableServiceItem/DetailsCol.js +0 -17
  53. package/dist/components/molecules/TableServiceItem/ItemCol.d.ts +0 -13
  54. package/dist/components/molecules/TableServiceItem/ItemCol.js +0 -24
  55. package/dist/components/molecules/TableServiceItem/RowAccommodation.d.ts +0 -16
  56. package/dist/components/molecules/TableServiceItem/RowAccommodation.js +0 -37
  57. package/dist/components/molecules/TableServiceItem/RowExcursion.d.ts +0 -16
  58. package/dist/components/molecules/TableServiceItem/RowExcursion.js +0 -22
  59. package/dist/components/molecules/TableServiceItem/RowOtherServices.d.ts +0 -9
  60. package/dist/components/molecules/TableServiceItem/RowOtherServices.js +0 -34
  61. package/dist/components/molecules/TableServiceItem/RowTransfer.d.ts +0 -15
  62. package/dist/components/molecules/TableServiceItem/RowTransfer.js +0 -37
  63. package/dist/components/molecules/TableServiceItem/index.d.ts +0 -17
  64. package/dist/components/molecules/TableServiceItem/index.js +0 -15
  65. package/dist/components/molecules/TextWithIcon/TextWithIcon.d.ts +0 -30
  66. package/dist/components/molecules/TextWithIcon/TextWithIcon.js +0 -31
  67. package/dist/components/molecules/TooltipDisplay/TooltipDisplay.d.ts +0 -13
  68. package/dist/components/molecules/TooltipDisplay/TooltipDisplay.js +0 -18
  69. package/dist/components/organisms/Table/Table.css +0 -2280
  70. package/dist/components/organisms/Table/Table.d.ts +0 -50
  71. package/dist/components/organisms/Table/Table.js +0 -95
  72. package/dist/components/organisms/Table/TableCell.d.ts +0 -15
  73. package/dist/components/organisms/Table/TableCell.js +0 -16
  74. package/dist/components/organisms/Table/columns/booking-columns.d.ts +0 -7
  75. package/dist/components/organisms/Table/columns/booking-columns.js +0 -83
  76. package/dist/components/organisms/Table/columns/detail-resume-columns.d.ts +0 -3
  77. package/dist/components/organisms/Table/columns/detail-resume-columns.js +0 -178
  78. package/dist/components/organisms/Table/columns/index.d.ts +0 -12
  79. package/dist/components/organisms/Table/columns/index.js +0 -9
  80. package/dist/components/organisms/Table/columns/quotation-columns.d.ts +0 -7
  81. package/dist/components/organisms/Table/columns/quotation-columns.js +0 -91
  82. package/dist/components/organisms/Table/constant.d.ts +0 -6
  83. package/dist/components/organisms/Table/constant.js +0 -24
  84. package/dist/components/organisms/Table/index.d.ts +0 -2
  85. package/dist/components/organisms/Table/index.js +0 -2
  86. package/dist/components/ui/tooltip.d.ts +0 -7
  87. package/dist/components/ui/tooltip.js +0 -42
  88. package/dist/types/table/action-dropdown-type.types.d.ts +0 -5
  89. package/dist/types/table/action-dropdown-type.types.js +0 -6
  90. package/dist/types/table/booking.types.d.ts +0 -16
  91. package/dist/types/table/booking.types.js +0 -1
  92. package/dist/types/table/detail-resume.types.d.ts +0 -155
  93. package/dist/types/table/detail-resume.types.js +0 -7
  94. package/dist/types/table/index.d.ts +0 -3
  95. package/dist/types/table/index.js +0 -3
  96. package/dist/types/table/quotation.types.d.ts +0 -23
  97. package/dist/types/table/quotation.types.js +0 -1
  98. package/src/components/atoms/Icon/icons/AccomIcon.tsx +0 -45
  99. package/src/components/atoms/Icon/icons/ArrowDownOutlineIcon.tsx +0 -41
  100. package/src/components/atoms/Icon/icons/BusIcon.tsx +0 -52
  101. package/src/components/atoms/Icon/icons/Calendar2Icon.tsx +0 -54
  102. package/src/components/atoms/Icon/icons/MapIcon.tsx +0 -48
  103. package/src/components/atoms/Icon/icons/MicroIcon.tsx +0 -45
  104. package/src/components/atoms/Icon/icons/MoreVerticalIcon.tsx +0 -53
  105. package/src/components/atoms/Icon/icons/NightIcon.tsx +0 -45
  106. package/src/components/atoms/Icon/icons/RowExcursion.tsx +0 -54
  107. package/src/components/atoms/Icon/icons/StopWatchIcon.tsx +0 -45
  108. package/src/components/atoms/Icon/icons/Utensils.tsx +0 -45
  109. package/src/components/atoms/Icon/icons/WalletIcon.tsx +0 -45
  110. package/src/components/molecules/ActionDropdown/ActionDropdown.css +0 -23
  111. package/src/components/molecules/ActionDropdown/ActionDropdown.tsx +0 -53
  112. package/src/components/molecules/DateDisplay/DateDisplay.tsx +0 -47
  113. package/src/components/molecules/FromTo/FromTo.tsx +0 -31
  114. package/src/components/molecules/TableServiceItem/DetailsCol.tsx +0 -25
  115. package/src/components/molecules/TableServiceItem/ItemCol.tsx +0 -68
  116. package/src/components/molecules/TableServiceItem/RowAccommodation.tsx +0 -56
  117. package/src/components/molecules/TableServiceItem/RowExcursion.tsx +0 -40
  118. package/src/components/molecules/TableServiceItem/RowOtherServices.tsx +0 -50
  119. package/src/components/molecules/TableServiceItem/RowTransfer.tsx +0 -60
  120. package/src/components/molecules/TableServiceItem/index.ts +0 -24
  121. package/src/components/molecules/TextWithIcon/TextWithIcon.tsx +0 -62
  122. package/src/components/molecules/TooltipDisplay/TooltipDisplay.tsx +0 -32
  123. package/src/components/organisms/Table/Table.css +0 -185
  124. package/src/components/organisms/Table/Table.tsx +0 -273
  125. package/src/components/organisms/Table/TableCell.tsx +0 -40
  126. package/src/components/organisms/Table/columns/booking-columns.tsx +0 -118
  127. package/src/components/organisms/Table/columns/detail-resume-columns.tsx +0 -226
  128. package/src/components/organisms/Table/columns/index.ts +0 -11
  129. package/src/components/organisms/Table/columns/quotation-columns.tsx +0 -150
  130. package/src/components/organisms/Table/constant.ts +0 -31
  131. package/src/components/organisms/Table/index.ts +0 -2
  132. package/src/components/ui/tooltip.tsx +0 -45
@@ -1,45 +0,0 @@
1
- import React from 'react';
2
-
3
- interface NightIconProps {
4
- size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
5
- className?: string;
6
- color?: string;
7
- /**
8
- * Couleur par défaut si aucune couleur n'est spécifiée
9
- */
10
- defaultColor?: string;
11
- }
12
-
13
- const NightIcon: React.FC<NightIconProps> = ({ size = 'md', className = '', color }) => {
14
- const getSizeClasses = () => {
15
- switch (size) {
16
- case 'xs':
17
- return 'w-3 h-3';
18
- case 'sm':
19
- return 'w-4 h-4';
20
- case 'md':
21
- return 'w-5 h-5';
22
- case 'lg':
23
- return 'w-6 h-6';
24
- case 'xl':
25
- return 'w-8 h-8';
26
- default:
27
- return 'w-5 h-5';
28
- }
29
- };
30
-
31
- const sizeClasses = getSizeClasses();
32
- const colorClass = color ? `text-${color}` : 'text-current';
33
- const classes = `${sizeClasses} ${colorClass} ${className}`;
34
-
35
- return (
36
- <svg className={classes} viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
37
- <path
38
- d="M6.00764 5C6.00764 4.30117 6.15448 3.61779 6.43049 2.99023C5.9555 3.13903 5.50121 3.35522 5.08284 3.63477C4.21956 4.21164 3.54658 5.03196 3.14924 5.99121C2.752 6.95043 2.64787 8.00613 2.85042 9.02441C3.053 10.0428 3.55372 10.9777 4.28792 11.7119C5.02211 12.4461 5.95707 12.9468 6.97542 13.1494C7.9937 13.352 9.0494 13.2478 10.0086 12.8506C10.9679 12.4533 11.7882 11.7803 12.3651 10.917C12.6447 10.4984 12.8598 10.0436 13.0086 9.56836C12.3812 9.84424 11.6985 9.99219 10.9998 9.99219C9.6757 9.99219 8.40586 9.46657 7.46956 8.53027C6.53326 7.59397 6.00764 6.32413 6.00764 5ZM7.50764 5C7.50764 5.92631 7.87511 6.81473 8.5301 7.46973C9.1851 8.12472 10.0735 8.49219 10.9998 8.49219C11.9261 8.49219 12.8146 8.12472 13.4696 7.46973C13.684 7.25525 14.0067 7.1906 14.2869 7.30664C14.5672 7.42273 14.7498 7.69665 14.7498 8C14.7498 9.33502 14.3538 10.64 13.6121 11.75C12.8704 12.86 11.8162 13.7254 10.5828 14.2363C9.3496 14.7471 7.99262 14.8805 6.68342 14.6201C5.37405 14.3597 4.1704 13.7174 3.22639 12.7734C2.28239 11.8294 1.64016 10.6258 1.37971 9.31641C1.11938 8.00721 1.25271 6.65023 1.7635 5.41699C2.27439 4.18359 3.1398 3.12939 4.24983 2.3877C5.35986 1.646 6.66481 1.25 7.99983 1.25C8.30318 1.25 8.5771 1.43263 8.69319 1.71289C8.80923 1.99313 8.74458 2.31579 8.5301 2.53027C7.87511 3.18527 7.50764 4.07369 7.50764 5Z"
39
- fill="currentColor"
40
- />
41
- </svg>
42
- );
43
- };
44
-
45
- export default NightIcon;
@@ -1,54 +0,0 @@
1
- import React from 'react';
2
- import { DetailsCol as DetailsColComponent } from '../../../molecules/TableServiceItem/DetailsCol';
3
- import { ItemCol, ItemColProps } from '../../../molecules/TableServiceItem/ItemCol';
4
-
5
- export interface RowExcursionProps {
6
- data: {
7
- languages?: string[];
8
- duration?: string;
9
- accessibility?: string;
10
- transferType?: string;
11
- };
12
- }
13
-
14
- const clientType: Record<string, string> = {
15
- standard: 'STD',
16
- honeymooners: 'HMN',
17
- vip: 'VIP',
18
- vvip: 'VVIP',
19
- };
20
-
21
- export function RowExcursion() {
22
- return <></>;
23
- }
24
-
25
- export const DetailsCol: React.FC<RowExcursionProps> = (props) => {
26
- const { data } = props;
27
-
28
- return (
29
- <DetailsColComponent
30
- data={[
31
- { icon: 'micro', value: `Languages: ${data.languages?.join(' and ')}` },
32
- { icon: 'stopwatch', value: `Duration: ${data.duration}` },
33
- { icon: 'user', value: `Difficulty: ${data.accessibility}` },
34
- { icon: 'bus', value: `Type: ${data.transferType}` },
35
- ]}
36
- />
37
- );
38
- };
39
-
40
- const FirstCol: React.FC<Omit<ItemColProps, 'serviceType' | 'status'>> = (props) => {
41
- const { serviceName, offers } = props;
42
-
43
- return (
44
- <ItemCol
45
- serviceType="Excursion"
46
- serviceName={serviceName}
47
- offers={offers}
48
- iconName="map-pin"
49
- />
50
- );
51
- };
52
-
53
- RowExcursion.FirstCol = FirstCol;
54
- RowExcursion.DetailsCol = DetailsCol;
@@ -1,45 +0,0 @@
1
- import React from 'react';
2
-
3
- interface StopWatchIconProps {
4
- size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
5
- className?: string;
6
- color?: string;
7
- /**
8
- * Couleur par défaut si aucune couleur n'est spécifiée
9
- */
10
- defaultColor?: string;
11
- }
12
-
13
- const StopWatchIcon: React.FC<StopWatchIconProps> = ({ size = 'md', className = '', color }) => {
14
- const getSizeClasses = () => {
15
- switch (size) {
16
- case 'xs':
17
- return 'w-3 h-3';
18
- case 'sm':
19
- return 'w-4 h-4';
20
- case 'md':
21
- return 'w-5 h-5';
22
- case 'lg':
23
- return 'w-6 h-6';
24
- case 'xl':
25
- return 'w-8 h-8';
26
- default:
27
- return 'w-5 h-5';
28
- }
29
- };
30
-
31
- const sizeClasses = getSizeClasses();
32
- const colorClass = color ? `text-${color}` : 'text-current';
33
- const classes = `${sizeClasses} ${colorClass} ${className}`;
34
-
35
- return (
36
- <svg className={classes} viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
37
- <path
38
- d="M12.585 9.33398C12.585 6.80268 10.5323 4.75098 8.00098 4.75098C5.46982 4.75115 3.41797 6.80279 3.41797 9.33398C3.41797 11.8652 5.46982 13.9168 8.00098 13.917C10.5323 13.917 12.585 11.8653 12.585 9.33398ZM9.4707 6.80371C9.76354 6.51087 10.2383 6.51098 10.5312 6.80371C10.8241 7.0966 10.8241 7.57136 10.5312 7.86426L8.53125 9.86426C8.23834 10.157 7.76354 10.1571 7.4707 9.86426C7.17803 9.57141 7.17803 9.09656 7.4707 8.80371L9.4707 6.80371ZM9.33496 0.583984L9.41113 0.587891C9.78941 0.626215 10.085 0.945597 10.085 1.33398C10.085 1.72237 9.78941 2.04175 9.41113 2.08008L9.33496 2.08398H6.66797C6.25376 2.08398 5.91797 1.7482 5.91797 1.33398C5.91797 0.919771 6.25376 0.583984 6.66797 0.583984H9.33496ZM14.085 9.33398C14.085 12.6937 11.3607 15.417 8.00098 15.417C4.64139 15.4168 1.91797 12.6936 1.91797 9.33398C1.91797 5.97436 4.64139 3.25115 8.00098 3.25098C11.3607 3.25098 14.085 5.97425 14.085 9.33398Z"
39
- fill="currentColor"
40
- />
41
- </svg>
42
- );
43
- };
44
-
45
- export default StopWatchIcon;
@@ -1,45 +0,0 @@
1
- import React from 'react';
2
-
3
- interface UtensilsIconProps {
4
- size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
5
- className?: string;
6
- color?: string;
7
- /**
8
- * Couleur par défaut si aucune couleur n'est spécifiée
9
- */
10
- defaultColor?: string;
11
- }
12
-
13
- const UtensilsIcon: React.FC<UtensilsIconProps> = ({ size = 'md', className = '', color }) => {
14
- const getSizeClasses = () => {
15
- switch (size) {
16
- case 'xs':
17
- return 'w-3 h-3';
18
- case 'sm':
19
- return 'w-4 h-4';
20
- case 'md':
21
- return 'w-5 h-5';
22
- case 'lg':
23
- return 'w-6 h-6';
24
- case 'xl':
25
- return 'w-8 h-8';
26
- default:
27
- return 'w-5 h-5';
28
- }
29
- };
30
-
31
- const sizeClasses = getSizeClasses();
32
- const colorClass = color ? `text-${color}` : 'text-current';
33
- const classes = `${sizeClasses} ${colorClass} ${className}`;
34
-
35
- return (
36
- <svg className={classes} viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
37
- <path
38
- d="M3.91699 14.667V8.08398H3.33301C2.18572 8.08381 1.25018 7.14827 1.25 6.00098V1.33398C1.25 0.919771 1.58579 0.583984 2 0.583984C2.41421 0.583984 2.75 0.919771 2.75 1.33398V6.00098C2.75018 6.31984 3.01414 6.5838 3.33301 6.58398H3.91699V1.33398C3.91699 0.919771 4.25278 0.583984 4.66699 0.583984C5.08106 0.58416 5.41699 0.919879 5.41699 1.33398V6.58398H6C6.15463 6.58398 6.30273 6.52238 6.41211 6.41309C6.52143 6.30377 6.58292 6.15557 6.58301 6.00098V1.33398C6.58301 0.919879 6.91894 0.58416 7.33301 0.583984C7.74722 0.583984 8.08301 0.919771 8.08301 1.33398V6.00098C8.08292 6.55339 7.86328 7.08301 7.47266 7.47363C7.08197 7.86423 6.55246 8.08398 6 8.08398H5.41699V14.667C5.41699 15.0811 5.08106 15.4168 4.66699 15.417C4.25278 15.417 3.91699 15.0812 3.91699 14.667ZM13.25 14.667V10.751H12C10.8525 10.751 9.91699 9.81454 9.91699 8.66699V4.66699C9.91708 3.5843 10.3468 2.54594 11.1123 1.78027C11.8781 1.0145 12.917 0.583984 14 0.583984L14.1475 0.598633C14.2914 0.627508 14.4249 0.698334 14.5303 0.803711C14.6709 0.944363 14.75 1.13507 14.75 1.33398V14.667C14.75 15.0812 14.4142 15.417 14 15.417C13.5858 15.417 13.25 15.0812 13.25 14.667ZM11.417 8.66699C11.417 8.98611 11.6809 9.25098 12 9.25098H13.25V2.19434C12.847 2.31656 12.476 2.53763 12.1729 2.84082C11.6887 3.32518 11.4171 3.98212 11.417 4.66699V8.66699Z"
39
- fill="#303642"
40
- />
41
- </svg>
42
- );
43
- };
44
-
45
- export default UtensilsIcon;
@@ -1,45 +0,0 @@
1
- import React from 'react';
2
-
3
- interface WalletIconProps {
4
- size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
5
- className?: string;
6
- color?: string;
7
- /**
8
- * Couleur par défaut si aucune couleur n'est spécifiée
9
- */
10
- defaultColor?: string;
11
- }
12
-
13
- const WalletIcon: React.FC<WalletIconProps> = ({ size = 'md', className = '', color }) => {
14
- const getSizeClasses = () => {
15
- switch (size) {
16
- case 'xs':
17
- return 'w-3 h-3';
18
- case 'sm':
19
- return 'w-4 h-4';
20
- case 'md':
21
- return 'w-5 h-5';
22
- case 'lg':
23
- return 'w-6 h-6';
24
- case 'xl':
25
- return 'w-8 h-8';
26
- default:
27
- return 'w-5 h-5';
28
- }
29
- };
30
-
31
- const sizeClasses = getSizeClasses();
32
- const colorClass = color ? `text-${color}` : 'text-current';
33
- const classes = `${sizeClasses} ${colorClass} ${className}`;
34
-
35
- return (
36
- <svg className={classes} viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
37
- <path
38
- d="M2.75 12.667C2.75009 12.8216 2.81158 12.9698 2.9209 13.0791C3.03022 13.1884 3.17841 13.2499 3.33301 13.25H13.25V11.417H12C11.4476 11.417 10.918 11.1971 10.5273 10.8066C10.1366 10.4159 9.91699 9.88554 9.91699 9.33301C9.91708 8.78059 10.1367 8.25097 10.5273 7.86035C10.918 7.46975 11.4475 7.25 12 7.25H13.25V5.41699H3.33301C3.1337 5.41696 2.93795 5.38594 2.75 5.33105V12.667ZM11.417 9.33301C11.417 9.48772 11.4785 9.6367 11.5879 9.74609C11.6973 9.85529 11.8454 9.91699 12 9.91699H13.917V8.75H12C11.8454 8.75 11.6973 8.8116 11.5879 8.9209C11.4786 9.03022 11.4171 9.17842 11.417 9.33301ZM2.75 3.33301C2.75 3.48772 2.8115 3.6367 2.9209 3.74609C3.0302 3.85531 3.17849 3.91691 3.33301 3.91699H11.917V2.75H3.33301C3.17842 2.75009 3.03022 2.81158 2.9209 2.9209C2.81158 3.03022 2.75009 3.17842 2.75 3.33301ZM13.417 3.9209C13.7156 3.93857 14.0008 4.04832 14.2314 4.2373L14.335 4.33203L14.4287 4.43555C14.6353 4.68759 14.7499 5.00428 14.75 5.33301V7.46582C14.8012 7.49777 14.8505 7.53279 14.8975 7.57129L15.002 7.66504L15.0957 7.76855C15.3024 8.02068 15.417 8.33813 15.417 8.66699V10C15.417 10.3757 15.2676 10.7363 15.002 11.002C14.9255 11.0784 14.8402 11.1438 14.75 11.2002V13.333C14.75 13.7087 14.6006 14.0693 14.335 14.335C14.0693 14.6006 13.7087 14.75 13.333 14.75H3.33301C2.78059 14.7499 2.25098 14.5303 1.86035 14.1396C1.46973 13.749 1.25009 13.2194 1.25 12.667V3.33301C1.25009 2.78059 1.46973 2.25098 1.86035 1.86035C2.25098 1.46973 2.78059 1.25009 3.33301 1.25H12C12.3288 1.25 12.6454 1.36473 12.8975 1.57129L13.002 1.66504L13.0957 1.76855C13.3024 2.02068 13.417 2.33813 13.417 2.66699V3.9209Z"
39
- fill="black"
40
- />
41
- </svg>
42
- );
43
- };
44
-
45
- export default WalletIcon;
@@ -1,23 +0,0 @@
1
- .action-dropdown {
2
- @apply relative;
3
- width: 153px;
4
- background-color: #fff;
5
- padding: var(--spacing-padding-px-4);
6
- border-radius: var(--border-radius-rounded-xl);
7
- button {
8
- @apply flex items-center w-full;
9
- @apply transition-all duration-200;
10
- height: 36px;
11
- border-radius: var(--border-radius-rounded-md);
12
- padding-inline: var(--spacing-padding-px-2);
13
- &:hover {
14
- background-color: var(--color-neutral-100);
15
- }
16
- }
17
- }
18
-
19
- .action-dropdown-trigger {
20
- @apply w-8 h-8 flex items-center justify-center;
21
- border-radius: var(--border-radius-rounded-lg);
22
- background-color: var(--color-neutral-100);
23
- }
@@ -1,53 +0,0 @@
1
- import { useState } from 'react';
2
- import Icon from '../../atoms/Icon/Icon';
3
- import { Text } from '../../atoms/Typography/Typography';
4
- import { Popover, PopoverContent, PopoverTrigger } from '../../ui/popover';
5
- import './ActionDropdown.css';
6
-
7
- export interface ActionDropdownItem {
8
- /** Label for the action dropdown item */
9
- label: string;
10
- /** Callback function to be called when the action dropdown item is clicked */
11
- onClick?: () => void;
12
- }
13
-
14
- export interface ActionDropdownProps {
15
- /** Data for the action dropdown */
16
- data: ActionDropdownItem[];
17
- }
18
-
19
- /**
20
- * A dropdown component that displays a list of actions triggered by a more icon button. Uses a Popover for the dropdown menu.
21
- *
22
- * @example
23
- * <ActionDropdown data={data} />
24
- * @param ActionDropdownProps
25
- * @returns
26
- */
27
- export const ActionDropdown: React.FC<ActionDropdownProps> = ({ data }) => {
28
- const [open, setOpen] = useState(false);
29
-
30
- return (
31
- <Popover open={open} onOpenChange={setOpen}>
32
- <PopoverTrigger>
33
- <button className="action-dropdown-trigger">
34
- <Icon name="more-vertical" />
35
- </button>
36
- </PopoverTrigger>
37
- <PopoverContent className="action-dropdown" align="end">
38
- {data.map((item, index) => (
39
- <button
40
- key={`ad-${index}`}
41
- onClick={() => {
42
- setOpen(false);
43
- item.onClick?.();
44
- }}>
45
- <Text variant="medium" size="sm" as="span">
46
- {item.label}
47
- </Text>
48
- </button>
49
- ))}
50
- </PopoverContent>
51
- </Popover>
52
- );
53
- };
@@ -1,47 +0,0 @@
1
- import { format, isValid } from 'date-fns';
2
- import React, { Fragment, useMemo } from 'react';
3
- import Icon from '../../atoms/Icon/Icon';
4
- import { Text } from '../../atoms/Typography/Typography';
5
-
6
- export interface DateDisplayProps {
7
- /** Dates to display */
8
- date: string[] | Date[];
9
- }
10
-
11
- /**
12
- * A component for displaying a list of dates in a readable format.
13
- *
14
- * @example
15
- * <DateDisplay date={['2025-01-01', '2025-01-02']} />
16
- * @param DateDisplayProps
17
- * @returns
18
- */
19
- export const DateDisplay: React.FC<DateDisplayProps> = ({ date }) => {
20
- const formattedDate = useMemo(() => {
21
- return date.map((d) => {
22
- const dateObj = new Date(d);
23
- // Check if the date is valid then format it to dd/MM/yyyy format
24
- if (isValid(dateObj)) {
25
- return format(dateObj, 'dd/MM/yyyy');
26
- }
27
- // If the date is not valid, return the original date
28
- return d;
29
- }) as string[];
30
- }, [date]);
31
-
32
- return (
33
- <div className="flex items-center gap-x-3">
34
- {formattedDate.map((date, index) => (
35
- <Fragment key={`dd-${index}`}>
36
- <span className="flex items-center gap-x-2">
37
- <Icon name="calendar2" size="sm" />
38
- <Text variant="medium" size="sm">
39
- {date}
40
- </Text>
41
- </span>
42
- {formattedDate.length > 1 && index === 0 && <Icon name="arrow-right-outline" size="sm" />}
43
- </Fragment>
44
- ))}
45
- </div>
46
- );
47
- };
@@ -1,31 +0,0 @@
1
- import Icon from '../../atoms/Icon/Icon';
2
- import { Text } from '../../atoms/Typography/Typography';
3
-
4
- export interface FromToProps {
5
- from?: string;
6
- to?: string;
7
- transferType?: string;
8
- }
9
-
10
- const FromTo: React.FC<Omit<FromToProps, 'transferType'>> = (props) => {
11
- const { from, to } = props;
12
-
13
- const getTransferLocationName = (location?: string) => {
14
- if (!location) return '';
15
- return location.toLowerCase() === 'airport' ? 'Plaisance Airport' : location;
16
- };
17
-
18
- return (
19
- <div className="grid gap-y-1">
20
- <Text variant="regular" size="sm" leading="5">
21
- {getTransferLocationName(from)}
22
- </Text>
23
- <Icon name="arrow-down-outline" size="sm" />
24
- <Text variant="regular" size="sm" leading="5">
25
- {getTransferLocationName(to)}
26
- </Text>
27
- </div>
28
- );
29
- };
30
-
31
- export default FromTo;
@@ -1,25 +0,0 @@
1
- import React from 'react';
2
- import { IconName } from '../../atoms/Icon/Icon';
3
- import TextWithIcon from '../TextWithIcon/TextWithIcon';
4
-
5
- interface DetailsColData {
6
- icon: IconName;
7
- value: React.ReactNode;
8
- }
9
-
10
- export interface DetailsColProps {
11
- data: DetailsColData[];
12
- index?: number;
13
- }
14
-
15
- export const DetailsCol: React.FC<DetailsColProps> = (props) => {
16
- const { data } = props;
17
-
18
- return (
19
- <div className="grid gap-y-1">
20
- {data.map((item) => (
21
- <TextWithIcon icon={item.icon}>{item.value}</TextWithIcon>
22
- ))}
23
- </div>
24
- );
25
- };
@@ -1,68 +0,0 @@
1
- import { Text } from '@/src/components/atoms/Typography/Typography';
2
- import { cn } from '@/src/lib/utils';
3
- import Chip from '../../atoms/Chip/Chip';
4
- import { IconName } from '../../atoms/Icon/Icon';
5
- import TextWithIcon from '../TextWithIcon/TextWithIcon';
6
-
7
- export interface ItemColProps {
8
- serviceType: 'Accommodation' | 'Excursion' | 'Transfer' | 'Other Services';
9
- serviceName?: string;
10
- extraTitle?: React.ReactNode;
11
- offers?: any[];
12
- status?: string;
13
- iconName?: IconName;
14
- showName?: boolean;
15
- children?: React.ReactNode;
16
- }
17
-
18
- export const ItemCol: React.FC<ItemColProps> = (props) => {
19
- const {
20
- serviceType,
21
- serviceName,
22
- offers,
23
- status,
24
- iconName = 'accom',
25
- showName = true,
26
- extraTitle,
27
- children,
28
- } = props;
29
-
30
- const isOnRequest = status?.toLowerCase() === 'on request';
31
-
32
- return (
33
- <div className={cn('grid', offers?.length && 'gap-y-3')}>
34
- <div>
35
- {serviceName && (
36
- <div className="grid gap-y-1">
37
- <div className="flex items-center gap-x-2">
38
- <TextWithIcon icon={iconName} color={isOnRequest ? 'yellow' : 'accent'}>
39
- {serviceType}
40
- </TextWithIcon>
41
- {isOnRequest && <Chip color="yellow">{status}</Chip>}
42
- {extraTitle}
43
- </div>
44
- <Text variant="bold" size="sm">
45
- {showName && serviceName}
46
- </Text>
47
- </div>
48
- )}
49
- {children}
50
- </div>
51
- {offers && offers.length > 0 && (
52
- <div>
53
- <Text variant="bold" size="sm" leading="5">
54
- Applicable offers:
55
- </Text>
56
- <Text variant="regular" size="sm" leading="5">
57
- {offers.map((o) => {
58
- const offerValue =
59
- o.OfferType === 'GIFT' ? o.OfferName : `${o.OfferValue}% offers applied`;
60
-
61
- return <span>{offerValue}</span>;
62
- })}
63
- </Text>
64
- </div>
65
- )}
66
- </div>
67
- );
68
- };
@@ -1,56 +0,0 @@
1
- import { differenceInDays } from 'date-fns';
2
- import React, { useMemo } from 'react';
3
- import { DetailsCol as DetailsColComponent } from './DetailsCol';
4
- import { ItemCol, ItemColProps } from './ItemCol';
5
-
6
- export interface RowAccommodationProps {
7
- data: {
8
- RoomName?: string;
9
- Dates?: string[];
10
- ClientCategory?: string;
11
- MealPlan?: string;
12
- };
13
- index?: number;
14
- }
15
-
16
- const clientType: Record<string, string> = {
17
- standard: 'STD',
18
- honeymooners: 'HMN',
19
- vip: 'VIP',
20
- vvip: 'VVIP',
21
- };
22
-
23
- export function RowAccommodation() {
24
- return <></>;
25
- }
26
-
27
- const DetailsCol: React.FC<RowAccommodationProps> = (props) => {
28
- const { data, index = 0 } = props;
29
-
30
- const stay = useMemo(() => {
31
- if (data.Dates?.length) {
32
- return differenceInDays(data.Dates[1], data.Dates[0]);
33
- }
34
-
35
- return 0;
36
- }, [data]);
37
- return (
38
- <DetailsColComponent
39
- data={[
40
- { icon: 'calendar2', value: `Room ${index + 1} : ${data.RoomName}` },
41
- { icon: 'night', value: `${stay} Nights` },
42
- { icon: 'user', value: `Client type : ${clientType[data.ClientCategory?.toLowerCase() as string]}` },
43
- { icon: 'utensils', value: `Meal plan : ${data.MealPlan}` },
44
- ]}
45
- />
46
- );
47
- };
48
-
49
- const FirstCol: React.FC<Omit<ItemColProps, 'serviceType'>> = (props) => {
50
- const { serviceName, offers, status } = props;
51
-
52
- return <ItemCol serviceType="Accommodation" serviceName={serviceName} offers={offers} status={status} />;
53
- };
54
-
55
- RowAccommodation.FirstCol = FirstCol;
56
- RowAccommodation.DetailsCol = DetailsCol;
@@ -1,40 +0,0 @@
1
- import React from 'react';
2
- import { DetailsCol as DetailsColComponent } from './DetailsCol';
3
- import { ItemCol, ItemColProps } from './ItemCol';
4
-
5
- export interface RowExcursionProps {
6
- data: {
7
- languages?: string[];
8
- duration?: string;
9
- accessibility?: string;
10
- transferType?: string;
11
- };
12
- }
13
-
14
- export function RowExcursion() {
15
- return <></>;
16
- }
17
-
18
- export const DetailsCol: React.FC<RowExcursionProps> = (props) => {
19
- const { data } = props;
20
-
21
- return (
22
- <DetailsColComponent
23
- data={[
24
- { icon: 'micro', value: `Languages: ${data.languages?.join(' and ')}` },
25
- { icon: 'stopwatch', value: `Duration: ${data.duration}` },
26
- { icon: 'user', value: `Difficulty: ${data.accessibility}` },
27
- { icon: 'bus', value: `Type: ${data.transferType}` },
28
- ]}
29
- />
30
- );
31
- };
32
-
33
- const FirstCol: React.FC<Omit<ItemColProps, 'serviceType' | 'status'>> = (props) => {
34
- const { serviceName, offers } = props;
35
-
36
- return <ItemCol serviceType="Excursion" serviceName={serviceName} offers={offers} iconName="map" />;
37
- };
38
-
39
- RowExcursion.FirstCol = FirstCol;
40
- RowExcursion.DetailsCol = DetailsCol;
@@ -1,50 +0,0 @@
1
- import '@/src/index.css';
2
- import React from 'react';
3
- import Icon from '../../atoms/Icon/Icon';
4
- import { Text } from '../../atoms/Typography/Typography';
5
- import { TooltipDisplay } from '../TooltipDisplay/TooltipDisplay';
6
- import { DetailsCol as DetailsColComponent } from './DetailsCol';
7
- import { ItemCol, ItemColProps } from './ItemCol';
8
-
9
- export function RowOtherServices() {
10
- return <></>;
11
- }
12
-
13
- export const DetailsCol = () => {
14
- return (
15
- <DetailsColComponent
16
- data={[
17
- {
18
- icon: 'wallet',
19
- value: (
20
- <Text
21
- variant="medium"
22
- size="sm"
23
- leading="5"
24
- as="div"
25
- className="flex items-center gap-x-2">
26
- Handling Fee
27
- <TooltipDisplay content="Handling fee varies and is determined by the final number of people during booking. ">
28
- <Icon name="info" size="sm" />
29
- </TooltipDisplay>
30
- </Text>
31
- ),
32
- },
33
- ]}
34
- />
35
- );
36
- };
37
-
38
- const FirstCol: React.FC<Omit<ItemColProps, 'serviceType' | 'status'>> = (props) => {
39
- return (
40
- <ItemCol
41
- serviceType="Other Services"
42
- iconName="more"
43
- serviceName="Handling Fee"
44
- showName={false}
45
- />
46
- );
47
- };
48
-
49
- RowOtherServices.FirstCol = FirstCol;
50
- RowOtherServices.DetailsCol = DetailsCol;