kupos-ui-components-lib 1.0.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 (177) hide show
  1. package/README copy.md +125 -0
  2. package/README.md +125 -0
  3. package/build-css.js +28 -0
  4. package/copy-assets.js +45 -0
  5. package/dist/KuposUIComponent.d.ts +84 -0
  6. package/dist/KuposUIComponent.js +49 -0
  7. package/dist/ResponsiveServiceItem.d.ts +3 -0
  8. package/dist/ResponsiveServiceItem.js +10 -0
  9. package/dist/ServiceItemDesktop.d.ts +3 -0
  10. package/dist/ServiceItemDesktop.js +6 -0
  11. package/dist/ServiceItemMobile.d.ts +3 -0
  12. package/dist/ServiceItemMobile.js +5 -0
  13. package/dist/ServiceItemMobileView.d.ts +4 -0
  14. package/dist/ServiceItemMobileView.js +33 -0
  15. package/dist/ServiceItemPb.d.ts +4 -0
  16. package/dist/ServiceItemPb.js +486 -0
  17. package/dist/ServivceItemPbMobile.d.ts +4 -0
  18. package/dist/ServivceItemPbMobile.js +248 -0
  19. package/dist/assets/LottieIcon.d.ts +7 -0
  20. package/dist/assets/LottieIcon.js +8 -0
  21. package/dist/assets/LottieIcon.tsx +26 -0
  22. package/dist/assets/LottiePlayer.d.ts +20 -0
  23. package/dist/assets/LottiePlayer.js +24 -0
  24. package/dist/assets/LottiePlayer.tsx +63 -0
  25. package/dist/assets/PopupComponent.d.ts +12 -0
  26. package/dist/assets/PopupComponent.js +18 -0
  27. package/dist/assets/PopupComponent.tsx +65 -0
  28. package/dist/assets/images/amenities/Icon_More-Amenities.svg +1 -0
  29. package/dist/assets/images/amenities/Restrooms-white.svg +1 -0
  30. package/dist/assets/images/amenities/Restrooms.svg +1 -0
  31. package/dist/assets/images/amenities/air_condtion-white.svg +1 -0
  32. package/dist/assets/images/amenities/air_condtion.svg +1 -0
  33. package/dist/assets/images/amenities/amenity-cortina.png +0 -0
  34. package/dist/assets/images/amenities/baggage-white.svg +1 -0
  35. package/dist/assets/images/amenities/baggage.svg +1 -0
  36. package/dist/assets/images/amenities/charging_plug-white.svg +1 -0
  37. package/dist/assets/images/amenities/charging_plug.svg +17 -0
  38. package/dist/assets/images/amenities/coffee.svg +1 -0
  39. package/dist/assets/images/amenities/cortina_divisoria.svg +19 -0
  40. package/dist/assets/images/amenities/divider-curtain.svg +34 -0
  41. package/dist/assets/images/amenities/food_new_icon-white.svg +1 -0
  42. package/dist/assets/images/amenities/food_new_icon.svg +1 -0
  43. package/dist/assets/images/amenities/frazda_amenity.svg +11 -0
  44. package/dist/assets/images/amenities/handicap-white.svg +1 -0
  45. package/dist/assets/images/amenities/handicap.svg +1 -0
  46. package/dist/assets/images/amenities/icon-app-cortina.svg +19 -0
  47. package/dist/assets/images/amenities/mobile_ticket-white.svg +1 -0
  48. package/dist/assets/images/amenities/mobile_ticket.svg +29 -0
  49. package/dist/assets/images/amenities/movie-white.svg +1 -0
  50. package/dist/assets/images/amenities/movie.svg +1 -0
  51. package/dist/assets/images/amenities/music-white.svg +1 -0
  52. package/dist/assets/images/amenities/music.svg +1 -0
  53. package/dist/assets/images/amenities/snacks_new-white.svg +1 -0
  54. package/dist/assets/images/amenities/snacks_new.svg +27 -0
  55. package/dist/assets/images/amenities/whatsapp-charges-info-icon.svg +5 -0
  56. package/dist/assets/images/amenities/wifi-white.svg +1 -0
  57. package/dist/assets/images/amenities/wifi.svg +1 -0
  58. package/dist/assets/images/anims/service_list/flexible.json +391 -0
  59. package/dist/assets/images/anims/service_list/location.json +589 -0
  60. package/dist/assets/images/index.d.ts +32 -0
  61. package/dist/assets/images/index.js +35 -0
  62. package/dist/assets/images/index.ts +35 -0
  63. package/dist/components/InternationalServicePopupBody.d.ts +3 -0
  64. package/dist/components/InternationalServicePopupBody.js +21 -0
  65. package/dist/components/PaymentSideBar/PaymentSideBarDesktop.d.ts +4 -0
  66. package/dist/components/PaymentSideBar/PaymentSideBarDesktop.js +107 -0
  67. package/dist/components/PaymentSideBar/PaymentSideBarMobile.d.ts +4 -0
  68. package/dist/components/PaymentSideBar/PaymentSideBarMobile.js +115 -0
  69. package/dist/components/PaymentSideBar/ResponsivePaymentSideBar.d.ts +3 -0
  70. package/dist/components/PaymentSideBar/ResponsivePaymentSideBar.js +10 -0
  71. package/dist/components/PaymentSideBar/index.d.ts +5 -0
  72. package/dist/components/PaymentSideBar/index.js +4 -0
  73. package/dist/components/PaymentSideBar/types.d.ts +38 -0
  74. package/dist/components/PaymentSideBar/types.js +1 -0
  75. package/dist/components/ServiceItem/ResponsiveServiceItem.d.ts +3 -0
  76. package/dist/components/ServiceItem/ResponsiveServiceItem.js +10 -0
  77. package/dist/components/ServiceItem/ServiceItemDesktop.d.ts +4 -0
  78. package/dist/components/ServiceItem/ServiceItemDesktop.js +486 -0
  79. package/dist/components/ServiceItem/ServiceItemMobile.d.ts +4 -0
  80. package/dist/components/ServiceItem/ServiceItemMobile.js +248 -0
  81. package/dist/components/ServiceItem/index.d.ts +5 -0
  82. package/dist/components/ServiceItem/index.js +4 -0
  83. package/dist/components/ServiceItem/mobileTypes.d.ts +141 -0
  84. package/dist/components/ServiceItem/mobileTypes.js +1 -0
  85. package/dist/components/ServiceItem/types.d.ts +164 -0
  86. package/dist/components/ServiceItem/types.js +1 -0
  87. package/dist/components/ServiceList/ResponsiveServiceList.d.ts +3 -0
  88. package/dist/components/ServiceList/ResponsiveServiceList.js +10 -0
  89. package/dist/components/ServiceList/ServiceListDesktop.d.ts +4 -0
  90. package/dist/components/ServiceList/ServiceListDesktop.js +164 -0
  91. package/dist/components/ServiceList/ServiceListMobile.d.ts +4 -0
  92. package/dist/components/ServiceList/ServiceListMobile.js +195 -0
  93. package/dist/components/ServiceList/index.d.ts +5 -0
  94. package/dist/components/ServiceList/index.js +4 -0
  95. package/dist/components/ServiceList/types.d.ts +35 -0
  96. package/dist/components/ServiceList/types.js +1 -0
  97. package/dist/example.d.ts +5 -0
  98. package/dist/example.js +240 -0
  99. package/dist/index.d.ts +13 -0
  100. package/dist/index.js +15 -0
  101. package/dist/mobileTypes.d.ts +141 -0
  102. package/dist/mobileTypes.js +1 -0
  103. package/dist/styles.css +803 -0
  104. package/dist/types.d.ts +151 -0
  105. package/dist/types.js +1 -0
  106. package/dist/utils/DateService.d.ts +16 -0
  107. package/dist/utils/DateService.js +160 -0
  108. package/dist/utils/ModalEventManager.d.ts +40 -0
  109. package/dist/utils/ModalEventManager.js +329 -0
  110. package/kupos-service-item-package-1.0.0.tgz +0 -0
  111. package/package.json +43 -0
  112. package/postcss.config.js +6 -0
  113. package/src/KuposUIComponent.tsx +152 -0
  114. package/src/ServiceItemPb.tsx +1048 -0
  115. package/src/assets/LottieIcon.tsx +26 -0
  116. package/src/assets/LottiePlayer.tsx +63 -0
  117. package/src/assets/PopupComponent.tsx +65 -0
  118. package/src/assets/images/amenities/Icon_More-Amenities.svg +1 -0
  119. package/src/assets/images/amenities/Restrooms-white.svg +1 -0
  120. package/src/assets/images/amenities/Restrooms.svg +1 -0
  121. package/src/assets/images/amenities/air_condtion-white.svg +1 -0
  122. package/src/assets/images/amenities/air_condtion.svg +1 -0
  123. package/src/assets/images/amenities/amenity-cortina.png +0 -0
  124. package/src/assets/images/amenities/baggage-white.svg +1 -0
  125. package/src/assets/images/amenities/baggage.svg +1 -0
  126. package/src/assets/images/amenities/charging_plug-white.svg +1 -0
  127. package/src/assets/images/amenities/charging_plug.svg +17 -0
  128. package/src/assets/images/amenities/coffee.svg +1 -0
  129. package/src/assets/images/amenities/cortina_divisoria.svg +19 -0
  130. package/src/assets/images/amenities/divider-curtain.svg +34 -0
  131. package/src/assets/images/amenities/food_new_icon-white.svg +1 -0
  132. package/src/assets/images/amenities/food_new_icon.svg +1 -0
  133. package/src/assets/images/amenities/frazda_amenity.svg +11 -0
  134. package/src/assets/images/amenities/handicap-white.svg +1 -0
  135. package/src/assets/images/amenities/handicap.svg +1 -0
  136. package/src/assets/images/amenities/icon-app-cortina.svg +19 -0
  137. package/src/assets/images/amenities/mobile_ticket-white.svg +1 -0
  138. package/src/assets/images/amenities/mobile_ticket.svg +29 -0
  139. package/src/assets/images/amenities/movie-white.svg +1 -0
  140. package/src/assets/images/amenities/movie.svg +1 -0
  141. package/src/assets/images/amenities/music-white.svg +1 -0
  142. package/src/assets/images/amenities/music.svg +1 -0
  143. package/src/assets/images/amenities/snacks_new-white.svg +1 -0
  144. package/src/assets/images/amenities/snacks_new.svg +27 -0
  145. package/src/assets/images/amenities/whatsapp-charges-info-icon.svg +5 -0
  146. package/src/assets/images/amenities/wifi-white.svg +1 -0
  147. package/src/assets/images/amenities/wifi.svg +1 -0
  148. package/src/assets/images/anims/service_list/flexible.json +391 -0
  149. package/src/assets/images/anims/service_list/location.json +589 -0
  150. package/src/assets/images/index.ts +35 -0
  151. package/src/components/InternationalServicePopupBody.tsx +40 -0
  152. package/src/components/PaymentSideBar/PaymentSideBarDesktop.tsx +183 -0
  153. package/src/components/PaymentSideBar/PaymentSideBarMobile.tsx +197 -0
  154. package/src/components/PaymentSideBar/ResponsivePaymentSideBar.tsx +14 -0
  155. package/src/components/PaymentSideBar/index.ts +5 -0
  156. package/src/components/PaymentSideBar/types.ts +44 -0
  157. package/src/components/ServiceItem/ResponsiveServiceItem.tsx +14 -0
  158. package/src/components/ServiceItem/ServiceItemDesktop.tsx +1048 -0
  159. package/src/components/ServiceItem/ServiceItemMobile.tsx +544 -0
  160. package/src/components/ServiceItem/index.ts +5 -0
  161. package/src/components/ServiceItem/mobileTypes.ts +159 -0
  162. package/src/components/ServiceItem/types.ts +163 -0
  163. package/src/components/ServiceList/ResponsiveServiceList.tsx +14 -0
  164. package/src/components/ServiceList/ServiceListDesktop.tsx +353 -0
  165. package/src/components/ServiceList/ServiceListMobile.tsx +400 -0
  166. package/src/components/ServiceList/index.ts +5 -0
  167. package/src/components/ServiceList/types.ts +43 -0
  168. package/src/dummyData.json +73 -0
  169. package/src/example.tsx +348 -0
  170. package/src/index.ts +37 -0
  171. package/src/lottie-player.d.ts +0 -0
  172. package/src/styles.css +77 -0
  173. package/src/types.ts +150 -0
  174. package/src/utils/DateService.ts +197 -0
  175. package/src/utils/ModalEventManager.ts +405 -0
  176. package/tailwind.config.js +39 -0
  177. package/tsconfig.json +18 -0
@@ -0,0 +1,125 @@
1
+ # Service Item Package
2
+
3
+ A reusable React component for displaying service items in transportation and
4
+ booking applications.
5
+
6
+ ## Installation
7
+
8
+ ```bash
9
+ npm install service-item-package
10
+ # or
11
+ yarn add service-item-package
12
+ ```
13
+
14
+ ## Usage
15
+
16
+ ### Using the KuposUIComponent
17
+
18
+ The `KuposUIComponent` is a versatile component that can render different UI components based on the `typeOfComponent` prop:
19
+
20
+ ```jsx
21
+ import { KuposUIComponent } from "service-item-package";
22
+ import "service-item-package/dist/styles.css"; // If you add CSS in the future
23
+
24
+ // Sample data
25
+ const serviceItem = {
26
+ id: "12345",
27
+ operator_details: [
28
+ "https://example.com/logo.png", // logo URL
29
+ "4.5", // rating
30
+ "Operator Name", // operator name
31
+ ],
32
+ travel_date: "2025-08-01T09:00:00Z",
33
+ arrival_date: "2025-08-01T12:00:00Z",
34
+ dep_time: "09:00",
35
+ arr_time: "12:00",
36
+ available_seats: 5,
37
+ seat_types: [
38
+ { label: "Salon Cama", fare: 50 },
39
+ { label: "Premium", fare: 75 },
40
+ { label: "Economy", fare: 40 },
41
+ ],
42
+ offer_text: "Limited time offer: 20% off!",
43
+ is_direct_trip: true,
44
+ };
45
+
46
+ function App() {
47
+ return (
48
+ <div>
49
+ {/* Render Service Item */}
50
+ <KuposUIComponent
51
+ typeOfComponent="serviceitem"
52
+ variant="desktop"
53
+ serviceItem={serviceItem}
54
+ onBookButtonPress={() => console.log("Book pressed!")}
55
+ />
56
+
57
+ {/* Render Payment Sidebar */}
58
+ <KuposUIComponent
59
+ typeOfComponent="paymentsidebar"
60
+ variant="desktop"
61
+ // Add payment sidebar specific props here
62
+ />
63
+
64
+ {/* Render Service List */}
65
+ <KuposUIComponent
66
+ typeOfComponent="servicelist"
67
+ variant="mobile"
68
+ // Add service list specific props here
69
+ />
70
+ </div>
71
+ );
72
+ }
73
+ ```
74
+
75
+ ### Using Individual Components
76
+
77
+ You can also use the individual components directly:
78
+
79
+ ```jsx
80
+ import { ServiceItemPB } from "service-item-package";
81
+
82
+ function App() {
83
+ return (
84
+ <div>
85
+ <ServiceItemPB
86
+ serviceItem={serviceItem}
87
+ onBookButtonPress={() => console.log("Book pressed!")}
88
+ />
89
+ </div>
90
+ );
91
+ }
92
+ ```
93
+
94
+ ## Props
95
+
96
+ ### KuposUIComponent Props
97
+
98
+ | Prop | Type | Description |
99
+ | --------------- | -------- | ---------------------------------------------------------- |
100
+ | typeOfComponent | string | Type of component to render: "serviceitem", "paymentsidebar", or "servicelist" |
101
+ | variant | string | "mobile" or "desktop" to specify the variant |
102
+ | ...other props | various | All props required by the specific component type |
103
+
104
+ ### ServiceItem Props
105
+
106
+ | Prop | Type | Description |
107
+ | --------------------- | -------- | -------------------------------------------- |
108
+ | serviceItem | Object | The service item data object |
109
+ | onBookButtonPress | Function | Callback for when the book button is pressed |
110
+ | serviceDetailsLoading | boolean | Whether service details are loading |
111
+ | t | Function | Optional translation function |
112
+
113
+ ## Development
114
+
115
+ ```bash
116
+ # Install dependencies
117
+ npm install
118
+
119
+ # Build package
120
+ npm run build
121
+ ```
122
+
123
+ ## License
124
+
125
+ MIT
package/README.md ADDED
@@ -0,0 +1,125 @@
1
+ # Service Item Package
2
+
3
+ A reusable React component for displaying service items in transportation and
4
+ booking applications.
5
+
6
+ ## Installation
7
+
8
+ ```bash
9
+ npm install service-item-package
10
+ # or
11
+ yarn add service-item-package
12
+ ```
13
+
14
+ ## Usage
15
+
16
+ ### Using the KuposUIComponent
17
+
18
+ The `KuposUIComponent` is a versatile component that can render different UI components based on the `typeOfComponent` prop:
19
+
20
+ ```jsx
21
+ import { KuposUIComponent } from "service-item-package";
22
+ import "service-item-package/dist/styles.css"; // If you add CSS in the future
23
+
24
+ // Sample data
25
+ const serviceItem = {
26
+ id: "12345",
27
+ operator_details: [
28
+ "https://example.com/logo.png", // logo URL
29
+ "4.5", // rating
30
+ "Operator Name", // operator name
31
+ ],
32
+ travel_date: "2025-08-01T09:00:00Z",
33
+ arrival_date: "2025-08-01T12:00:00Z",
34
+ dep_time: "09:00",
35
+ arr_time: "12:00",
36
+ available_seats: 5,
37
+ seat_types: [
38
+ { label: "Salon Cama", fare: 50 },
39
+ { label: "Premium", fare: 75 },
40
+ { label: "Economy", fare: 40 },
41
+ ],
42
+ offer_text: "Limited time offer: 20% off!",
43
+ is_direct_trip: true,
44
+ };
45
+
46
+ function App() {
47
+ return (
48
+ <div>
49
+ {/* Render Service Item */}
50
+ <KuposUIComponent
51
+ typeOfComponent="serviceitem"
52
+ variant="desktop"
53
+ serviceItem={serviceItem}
54
+ onBookButtonPress={() => console.log("Book pressed!")}
55
+ />
56
+
57
+ {/* Render Payment Sidebar */}
58
+ <KuposUIComponent
59
+ typeOfComponent="paymentsidebar"
60
+ variant="desktop"
61
+ // Add payment sidebar specific props here
62
+ />
63
+
64
+ {/* Render Service List */}
65
+ <KuposUIComponent
66
+ typeOfComponent="servicelist"
67
+ variant="mobile"
68
+ // Add service list specific props here
69
+ />
70
+ </div>
71
+ );
72
+ }
73
+ ```
74
+
75
+ ### Using Individual Components
76
+
77
+ You can also use the individual components directly:
78
+
79
+ ```jsx
80
+ import { ServiceItemPB } from "service-item-package";
81
+
82
+ function App() {
83
+ return (
84
+ <div>
85
+ <ServiceItemPB
86
+ serviceItem={serviceItem}
87
+ onBookButtonPress={() => console.log("Book pressed!")}
88
+ />
89
+ </div>
90
+ );
91
+ }
92
+ ```
93
+
94
+ ## Props
95
+
96
+ ### KuposUIComponent Props
97
+
98
+ | Prop | Type | Description |
99
+ | --------------- | -------- | ---------------------------------------------------------- |
100
+ | typeOfComponent | string | Type of component to render: "serviceitem", "paymentsidebar", or "servicelist" |
101
+ | variant | string | "mobile" or "desktop" to specify the variant |
102
+ | ...other props | various | All props required by the specific component type |
103
+
104
+ ### ServiceItem Props
105
+
106
+ | Prop | Type | Description |
107
+ | --------------------- | -------- | -------------------------------------------- |
108
+ | serviceItem | Object | The service item data object |
109
+ | onBookButtonPress | Function | Callback for when the book button is pressed |
110
+ | serviceDetailsLoading | boolean | Whether service details are loading |
111
+ | t | Function | Optional translation function |
112
+
113
+ ## Development
114
+
115
+ ```bash
116
+ # Install dependencies
117
+ npm install
118
+
119
+ # Build package
120
+ npm run build
121
+ ```
122
+
123
+ ## License
124
+
125
+ MIT
package/build-css.js ADDED
@@ -0,0 +1,28 @@
1
+ const fs = require("fs");
2
+ const path = require("path");
3
+ const postcss = require("postcss");
4
+ const tailwindcssPlugin = require("@tailwindcss/postcss");
5
+ const autoprefixer = require("autoprefixer");
6
+
7
+ // Read the CSS file with Tailwind directives
8
+ const css = fs.readFileSync(
9
+ path.resolve(__dirname, "./src/styles.css"),
10
+ "utf8",
11
+ );
12
+
13
+ // Process the CSS with Tailwind and autoprefixer
14
+ postcss([tailwindcssPlugin("./tailwind.config.js"), autoprefixer])
15
+ .process(css, { from: "./src/styles.css", to: "./dist/styles.css" })
16
+ .then(result => {
17
+ // Create the dist directory if it doesn't exist
18
+ if (!fs.existsSync("./dist")) {
19
+ fs.mkdirSync("./dist");
20
+ }
21
+
22
+ // Write the processed CSS to the output file
23
+ fs.writeFileSync("./dist/styles.css", result.css);
24
+ console.log("CSS built successfully!");
25
+ })
26
+ .catch(error => {
27
+ console.error("Error building CSS:", error);
28
+ });
package/copy-assets.js ADDED
@@ -0,0 +1,45 @@
1
+ const fs = require('fs');
2
+ const path = require('path');
3
+
4
+ // Create dist/assets directory if it doesn't exist
5
+ const assetsDir = path.join(__dirname, 'dist', 'assets');
6
+ if (!fs.existsSync(assetsDir)) {
7
+ fs.mkdirSync(assetsDir, { recursive: true });
8
+ }
9
+
10
+ // Copy assets from src/assets to dist/assets
11
+ const srcAssetsDir = path.join(__dirname, 'src', 'assets');
12
+ if (fs.existsSync(srcAssetsDir)) {
13
+ copyFolderRecursiveSync(srcAssetsDir, path.join(__dirname, 'dist'));
14
+ }
15
+
16
+ console.log('Assets copied successfully!');
17
+
18
+ // Function to copy folder recursively
19
+ function copyFolderRecursiveSync(source, target) {
20
+ const targetFolder = path.join(target, path.basename(source));
21
+
22
+ // Create target folder if it doesn't exist
23
+ if (!fs.existsSync(targetFolder)) {
24
+ fs.mkdirSync(targetFolder, { recursive: true });
25
+ }
26
+
27
+ // Copy files
28
+ if (fs.lstatSync(source).isDirectory()) {
29
+ const files = fs.readdirSync(source);
30
+ files.forEach(function(file) {
31
+ const curSource = path.join(source, file);
32
+ if (fs.lstatSync(curSource).isDirectory()) {
33
+ copyFolderRecursiveSync(curSource, targetFolder);
34
+ } else {
35
+ copyFileSync(curSource, targetFolder);
36
+ }
37
+ });
38
+ }
39
+ }
40
+
41
+ // Function to copy file
42
+ function copyFileSync(source, target) {
43
+ const targetFile = path.join(target, path.basename(source));
44
+ fs.copyFileSync(source, targetFile);
45
+ }
@@ -0,0 +1,84 @@
1
+ import React from "react";
2
+ interface KuposUIComponentProps {
3
+ typeOfComponent: "serviceitem" | "paymentsidebar" | "servicelist";
4
+ variant?: "mobile" | "desktop";
5
+ serviceItem?: any;
6
+ onBookButtonPress?: () => void;
7
+ colors?: any;
8
+ metaData?: any;
9
+ children?: React.ReactNode;
10
+ busStage?: any;
11
+ serviceDetailsLoading?: boolean;
12
+ cityOrigin?: any;
13
+ cityDestination?: any;
14
+ translation?: any;
15
+ orignLabel?: string;
16
+ destinationLabel?: string;
17
+ t?: (key: string) => string;
18
+ id?: string;
19
+ name?: string;
20
+ description?: string;
21
+ price?: number;
22
+ currency?: string;
23
+ imageUrl?: string;
24
+ rating?: number;
25
+ available?: boolean;
26
+ featured?: boolean;
27
+ duration?: string;
28
+ location?: string;
29
+ provider?: {
30
+ name: string;
31
+ imageUrl?: string;
32
+ rating?: number;
33
+ };
34
+ onViewDetails?: () => void;
35
+ orderSummary?: {
36
+ subtotal: number;
37
+ taxes: number;
38
+ discount: number;
39
+ total: number;
40
+ };
41
+ paymentMethods?: Array<{
42
+ id: string;
43
+ name: string;
44
+ icon: string;
45
+ }>;
46
+ customerDetails?: {
47
+ name: string;
48
+ email: string;
49
+ phone: string;
50
+ };
51
+ orderDetails?: Array<{
52
+ name: string;
53
+ price: number;
54
+ quantity: number;
55
+ }>;
56
+ onPaymentMethodSelect?: (id: string) => void;
57
+ onPayButtonClick?: () => void;
58
+ services?: Array<{
59
+ id: string;
60
+ name: string;
61
+ description?: string;
62
+ price?: number;
63
+ currency?: string;
64
+ imageUrl?: string;
65
+ rating?: number;
66
+ available?: boolean;
67
+ featured?: boolean;
68
+ }>;
69
+ onServiceSelect?: (serviceId: string) => void;
70
+ onServiceView?: (serviceId: string) => void;
71
+ showFilters?: boolean;
72
+ filters?: {
73
+ categories?: string[];
74
+ priceRange?: {
75
+ min: number;
76
+ max: number;
77
+ };
78
+ sortBy?: "price" | "rating" | "name";
79
+ sortOrder?: "asc" | "desc";
80
+ };
81
+ onFilterChange?: (filters: any) => void;
82
+ }
83
+ export default function KuposUIComponent(props: KuposUIComponentProps): React.ReactElement;
84
+ export {};
@@ -0,0 +1,49 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import React from "react";
13
+ import ResponsiveServiceItem from "./components/ServiceItem/ResponsiveServiceItem";
14
+ import { ResponsivePaymentSideBar } from "./components/PaymentSideBar";
15
+ import { ResponsiveServiceList } from "./components/ServiceList";
16
+ // Using imported ResponsivePaymentSideBar component instead
17
+ export default function KuposUIComponent(props) {
18
+ var _a, _b, _c, _d;
19
+ const { typeOfComponent } = props, restProps = __rest(props, ["typeOfComponent"]);
20
+ switch (typeOfComponent.toLowerCase()) {
21
+ case "serviceitem":
22
+ return (React.createElement(ResponsiveServiceItem, Object.assign({}, restProps)));
23
+ case "paymentsidebar": {
24
+ const { orderDetails } = restProps, otherProps = __rest(restProps, ["orderDetails"]);
25
+ // Create a properly formatted PaymentSideBarProps object
26
+ const paymentProps = Object.assign(Object.assign({}, otherProps), (orderDetails && {
27
+ orderDetails: {
28
+ items: orderDetails.map((item) => ({
29
+ name: item.name,
30
+ quantity: item.quantity,
31
+ price: item.price,
32
+ })),
33
+ subtotal: ((_a = restProps.orderSummary) === null || _a === void 0 ? void 0 : _a.subtotal) || 0,
34
+ tax: ((_b = restProps.orderSummary) === null || _b === void 0 ? void 0 : _b.taxes) || 0,
35
+ discount: ((_c = restProps.orderSummary) === null || _c === void 0 ? void 0 : _c.discount) || 0,
36
+ total: ((_d = restProps.orderSummary) === null || _d === void 0 ? void 0 : _d.total) || 0,
37
+ },
38
+ }));
39
+ return React.createElement(ResponsivePaymentSideBar, Object.assign({}, paymentProps));
40
+ }
41
+ case "servicelist":
42
+ return (React.createElement(ResponsiveServiceList, Object.assign({}, restProps)));
43
+ default:
44
+ return (React.createElement("div", { className: "error-message" },
45
+ "Invalid component type: ",
46
+ typeOfComponent,
47
+ ". Please use one of: \"serviceitem\", \"paymentsidebar\", or \"servicelist\"."));
48
+ }
49
+ }
@@ -0,0 +1,3 @@
1
+ import React from "react";
2
+ import { MobileServiceItemProps } from "./mobileTypes";
3
+ export default function ResponsiveServiceItem(props: MobileServiceItemProps): React.JSX.Element;
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+ import ServiceItemDesktop from "./ServiceItemDesktop";
3
+ import ServiceItemMobile from "./ServiceItemMobile";
4
+ export default function ResponsiveServiceItem(props) {
5
+ const { variant } = props;
6
+ if (variant === "mobile") {
7
+ return React.createElement(ServiceItemMobile, Object.assign({}, props));
8
+ }
9
+ return React.createElement(ServiceItemDesktop, Object.assign({}, props));
10
+ }
@@ -0,0 +1,3 @@
1
+ import React from "react";
2
+ import { ServiceItemProps } from "./types";
3
+ export default function ServiceItemDesktop(props: ServiceItemProps): React.JSX.Element;
@@ -0,0 +1,6 @@
1
+ import React from "react";
2
+ import ServiceItemPB from "./ServiceItemPb";
3
+ // Desktop variant simply uses the current implementation
4
+ export default function ServiceItemDesktop(props) {
5
+ return React.createElement(ServiceItemPB, Object.assign({}, props));
6
+ }
@@ -0,0 +1,3 @@
1
+ import React from "react";
2
+ import { MobileServiceItemProps } from "./mobileTypes";
3
+ export default function ServiceItemMobile(props: MobileServiceItemProps): React.JSX.Element;
@@ -0,0 +1,5 @@
1
+ import React from "react";
2
+ import ServiceItemPBMobile from "./ServivceItemPbMobile";
3
+ export default function ServiceItemMobile(props) {
4
+ return React.createElement(ServiceItemPBMobile, Object.assign({}, props));
5
+ }
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { ServiceItemMobileProps } from "./types";
3
+ declare const ServiceItemMobileView: React.FC<ServiceItemMobileProps>;
4
+ export default ServiceItemMobileView;
@@ -0,0 +1,33 @@
1
+ import React from "react";
2
+ // Mobile-only view. Implement your mobile UI here.
3
+ // You will receive the same props as the desktop variant plus optional mobile overrides:
4
+ // - mobileServiceItem, mobileColors, mobileTranslation
5
+ // You can choose which data to render (e.g., prefer mobile* overrides when present).
6
+ const ServiceItemMobileView = props => {
7
+ const { mobileServiceItem, mobileColors, mobileTranslation, } = props;
8
+ // Choose the data source for mobile (override if provided)
9
+ const data = mobileServiceItem;
10
+ const palette = mobileColors;
11
+ const i18n = mobileTranslation;
12
+ return (React.createElement("div", { className: "bg-white rounded-[16px] p-4 shadow-service" },
13
+ React.createElement("div", { className: "text-[#464647] text-[14px]" },
14
+ React.createElement("div", { className: "font-semibold mb-2" }, "Mobile Service Item"),
15
+ React.createElement("div", { className: "mb-1" },
16
+ "Operator: ", data === null || data === void 0 ? void 0 :
17
+ data.operator_service_name),
18
+ React.createElement("div", { className: "mb-1" },
19
+ "Departure: ", data === null || data === void 0 ? void 0 :
20
+ data.dep_time),
21
+ React.createElement("div", { className: "mb-1" },
22
+ "Arrival: ", data === null || data === void 0 ? void 0 :
23
+ data.arr_time),
24
+ typeof (data === null || data === void 0 ? void 0 : data.available_seats) === "number" && (React.createElement("div", { className: "mb-1" },
25
+ "Available seats: ",
26
+ data.available_seats)),
27
+ (i18n === null || i18n === void 0 ? void 0 : i18n.hours) && (React.createElement("div", { className: "text-[12px] text-[#888]" }, data === null || data === void 0 ? void 0 :
28
+ data.duration,
29
+ " ",
30
+ i18n.hours))),
31
+ (palette === null || palette === void 0 ? void 0 : palette.buttonColor) && (React.createElement("div", { className: "mt-3 text-[12px]", style: { color: palette.buttonColor } }, "Colors and other theming can go here"))));
32
+ };
33
+ export default ServiceItemMobileView;
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { ServiceItemProps } from "./types";
3
+ declare function ServiceItemPB({ serviceItem, onBookButtonPress, colors, metaData, children, busStage, serviceDetailsLoading, cityOrigin, cityDestination, translation, orignLabel, destinationLabel, t, }: ServiceItemProps): React.ReactElement;
4
+ export default ServiceItemPB;