mautourco-components 0.2.4 → 0.2.7

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 (297) hide show
  1. package/README.md +190 -190
  2. package/dist/components/atoms/Avatar/Avatar.d.ts +14 -14
  3. package/dist/components/atoms/Avatar/Avatar.js +31 -31
  4. package/dist/components/atoms/Button/Button.css +320 -320
  5. package/dist/components/atoms/Button/Button.d.ts +27 -27
  6. package/dist/components/atoms/Button/Button.js +35 -35
  7. package/dist/components/atoms/Checkbox/Checkbox.d.ts +13 -13
  8. package/dist/components/atoms/Checkbox/Checkbox.js +39 -39
  9. package/dist/components/atoms/Icon/Icon.d.ts +10 -10
  10. package/dist/components/atoms/Icon/Icon.js +123 -123
  11. package/dist/components/atoms/Icon/icons/ArrivalIcon.d.ts +8 -8
  12. package/dist/components/atoms/Icon/icons/ArrivalIcon.js +31 -31
  13. package/dist/components/atoms/Icon/icons/BuildingIcon.d.ts +8 -8
  14. package/dist/components/atoms/Icon/icons/BuildingIcon.js +36 -36
  15. package/dist/components/atoms/Icon/icons/CalendarIcon.d.ts +12 -12
  16. package/dist/components/atoms/Icon/icons/CalendarIcon.js +41 -41
  17. package/dist/components/atoms/Icon/icons/CalendarOutlineIcon.d.ts +8 -8
  18. package/dist/components/atoms/Icon/icons/CalendarOutlineIcon.js +36 -36
  19. package/dist/components/atoms/Icon/icons/CarIcon.d.ts +8 -8
  20. package/dist/components/atoms/Icon/icons/CarIcon.js +30 -30
  21. package/dist/components/atoms/Icon/icons/Check.d.ts +8 -8
  22. package/dist/components/atoms/Icon/icons/Check.js +30 -30
  23. package/dist/components/atoms/Icon/icons/CheckCircleIcon.d.ts +8 -8
  24. package/dist/components/atoms/Icon/icons/CheckCircleIcon.js +30 -30
  25. package/dist/components/atoms/Icon/icons/Chevron.d.ts +9 -9
  26. package/dist/components/atoms/Icon/icons/Chevron.js +54 -54
  27. package/dist/components/atoms/Icon/icons/ChevronDownIcon.d.ts +8 -8
  28. package/dist/components/atoms/Icon/icons/ChevronDownIcon.js +30 -30
  29. package/dist/components/atoms/Icon/icons/Close.d.ts +8 -8
  30. package/dist/components/atoms/Icon/icons/Close.js +30 -30
  31. package/dist/components/atoms/Icon/icons/DeleteIcon.d.ts +8 -8
  32. package/dist/components/atoms/Icon/icons/DeleteIcon.js +30 -30
  33. package/dist/components/atoms/Icon/icons/DepartureIcon.d.ts +8 -8
  34. package/dist/components/atoms/Icon/icons/DepartureIcon.js +30 -30
  35. package/dist/components/atoms/Icon/icons/EyeIcon.d.ts +8 -8
  36. package/dist/components/atoms/Icon/icons/EyeIcon.js +30 -30
  37. package/dist/components/atoms/Icon/icons/FacebookIcon.d.ts +8 -8
  38. package/dist/components/atoms/Icon/icons/FacebookIcon.js +36 -36
  39. package/dist/components/atoms/Icon/icons/HomeIcon.d.ts +8 -8
  40. package/dist/components/atoms/Icon/icons/HomeIcon.js +25 -25
  41. package/dist/components/atoms/Icon/icons/InfoIcon.d.ts +8 -8
  42. package/dist/components/atoms/Icon/icons/InfoIcon.js +30 -30
  43. package/dist/components/atoms/Icon/icons/LinkedInIcon.d.ts +8 -8
  44. package/dist/components/atoms/Icon/icons/LinkedInIcon.js +36 -36
  45. package/dist/components/atoms/Icon/icons/MapPinIcon.d.ts +8 -8
  46. package/dist/components/atoms/Icon/icons/MapPinIcon.js +30 -30
  47. package/dist/components/atoms/Icon/icons/MautoucoLogo.d.ts +8 -8
  48. package/dist/components/atoms/Icon/icons/MautoucoLogo.js +37 -37
  49. package/dist/components/atoms/Icon/icons/MenuIcon.d.ts +8 -8
  50. package/dist/components/atoms/Icon/icons/MenuIcon.js +37 -37
  51. package/dist/components/atoms/Icon/icons/MinusIcon.d.ts +8 -8
  52. package/dist/components/atoms/Icon/icons/MinusIcon.js +25 -25
  53. package/dist/components/atoms/Icon/icons/MoreIcon.d.ts +8 -8
  54. package/dist/components/atoms/Icon/icons/MoreIcon.js +30 -30
  55. package/dist/components/atoms/Icon/icons/PlaneIcon.d.ts +8 -8
  56. package/dist/components/atoms/Icon/icons/PlaneIcon.js +36 -36
  57. package/dist/components/atoms/Icon/icons/PlusIcon.d.ts +8 -8
  58. package/dist/components/atoms/Icon/icons/PlusIcon.js +25 -25
  59. package/dist/components/atoms/Icon/icons/Search.d.ts +8 -8
  60. package/dist/components/atoms/Icon/icons/Search.js +30 -30
  61. package/dist/components/atoms/Icon/icons/Settings.d.ts +8 -8
  62. package/dist/components/atoms/Icon/icons/Settings.js +30 -30
  63. package/dist/components/atoms/Icon/icons/ShipIcon.d.ts +8 -8
  64. package/dist/components/atoms/Icon/icons/ShipIcon.js +36 -36
  65. package/dist/components/atoms/Icon/icons/StrollerIcon.d.ts +8 -8
  66. package/dist/components/atoms/Icon/icons/StrollerIcon.js +30 -30
  67. package/dist/components/atoms/Icon/icons/TwitterIcon.d.ts +8 -8
  68. package/dist/components/atoms/Icon/icons/TwitterIcon.js +36 -36
  69. package/dist/components/atoms/Icon/icons/User.d.ts +8 -8
  70. package/dist/components/atoms/Icon/icons/User.js +30 -30
  71. package/dist/components/atoms/Icon/icons/UserIcon.d.ts +12 -12
  72. package/dist/components/atoms/Icon/icons/UserIcon.js +41 -41
  73. package/dist/components/atoms/Icon/icons/Youtube.d.ts +8 -8
  74. package/dist/components/atoms/Icon/icons/Youtube.js +36 -36
  75. package/dist/components/atoms/Illustration/Illustration.d.ts +14 -14
  76. package/dist/components/atoms/Illustration/Illustration.js +33 -33
  77. package/dist/components/atoms/Illustration/illustrations.d.ts +51 -51
  78. package/dist/components/atoms/Illustration/illustrations.js +97 -97
  79. package/dist/components/atoms/Inputs/DropdownInput/DropdownInput.d.ts +12 -12
  80. package/dist/components/atoms/Inputs/DropdownInput/DropdownInput.js +53 -53
  81. package/dist/components/atoms/Inputs/Input/Input.d.ts +15 -15
  82. package/dist/components/atoms/Inputs/Input/Input.js +27 -27
  83. package/dist/components/atoms/Inputs/Textarea/Textarea.d.ts +14 -14
  84. package/dist/components/atoms/Inputs/Textarea/Textarea.js +15 -15
  85. package/dist/components/atoms/Link/Link.d.ts +44 -44
  86. package/dist/components/atoms/Link/Link.js +76 -76
  87. package/dist/components/atoms/RatingStar/RatingStar.d.ts +40 -40
  88. package/dist/components/atoms/RatingStar/RatingStar.js +54 -54
  89. package/dist/components/atoms/SegmentedButton/SegmentedButton.d.ts +27 -27
  90. package/dist/components/atoms/SegmentedButton/SegmentedButton.js +49 -49
  91. package/dist/components/atoms/SelectedValue/SelectedValue.d.ts +11 -11
  92. package/dist/components/atoms/SelectedValue/SelectedValue.js +29 -29
  93. package/dist/components/atoms/Slider/Slider.d.ts +52 -52
  94. package/dist/components/atoms/Slider/Slider.js +30 -30
  95. package/dist/components/atoms/Spinner/Spinner.d.ts +9 -9
  96. package/dist/components/atoms/Spinner/Spinner.js +38 -38
  97. package/dist/components/atoms/Spinner/variants/ButtonSpinner.d.ts +8 -8
  98. package/dist/components/atoms/Spinner/variants/ButtonSpinner.js +19 -19
  99. package/dist/components/atoms/Spinner/variants/LoadingSpinner.d.ts +7 -7
  100. package/dist/components/atoms/Spinner/variants/LoadingSpinner.js +7 -7
  101. package/dist/components/atoms/Tab/Tab.css +266 -266
  102. package/dist/components/atoms/Tab/Tab.d.ts +22 -22
  103. package/dist/components/atoms/Tab/Tab.js +54 -54
  104. package/dist/components/atoms/Typography/Typography.d.ts +24 -24
  105. package/dist/components/atoms/Typography/Typography.js +100 -100
  106. package/dist/components/molecules/Calendar/CalendarInput.d.ts +34 -34
  107. package/dist/components/molecules/Calendar/CalendarInput.js +49 -49
  108. package/dist/components/molecules/Calendar/DateTime.d.ts +25 -25
  109. package/dist/components/molecules/Calendar/DateTime.js +106 -106
  110. package/dist/components/molecules/Calendar/TimePicker.d.ts +16 -16
  111. package/dist/components/molecules/Calendar/TimePicker.js +91 -91
  112. package/dist/components/molecules/LocationDropdown/LocationDropdown.d.ts +34 -34
  113. package/dist/components/molecules/LocationDropdown/LocationDropdown.js +120 -120
  114. package/dist/components/molecules/LocationDropdown/index.d.ts +2 -2
  115. package/dist/components/molecules/LocationDropdown/index.js +1 -1
  116. package/dist/components/molecules/MultiSelectDropdown/MultiSelectDropdown.d.ts +29 -29
  117. package/dist/components/molecules/MultiSelectDropdown/MultiSelectDropdown.js +106 -106
  118. package/dist/components/molecules/RatingTab/RatingTab.d.ts +39 -39
  119. package/dist/components/molecules/RatingTab/RatingTab.js +41 -41
  120. package/dist/components/molecules/TabGroup/TabGroup.d.ts +17 -17
  121. package/dist/components/molecules/TabGroup/TabGroup.js +30 -30
  122. package/dist/components/molecules/UserCard/UserCard.d.ts +20 -20
  123. package/dist/components/molecules/UserCard/UserCard.js +57 -57
  124. package/dist/components/organisms/CardContainer/CardContainer.d.ts +37 -37
  125. package/dist/components/organisms/CardContainer/CardContainer.js +27 -27
  126. package/dist/components/organisms/DateTimePicker/DateTimePicker.d.ts +15 -15
  127. package/dist/components/organisms/DateTimePicker/DateTimePicker.js +66 -66
  128. package/dist/components/organisms/Dialog/Dialog.d.ts +103 -103
  129. package/dist/components/organisms/Dialog/Dialog.js +162 -162
  130. package/dist/components/organisms/Footer/Footer.d.ts +38 -38
  131. package/dist/components/organisms/Footer/Footer.js +74 -74
  132. package/dist/components/organisms/PaxSelector/PaxSelector.d.ts +63 -63
  133. package/dist/components/organisms/PaxSelector/PaxSelector.js +402 -402
  134. package/dist/components/organisms/RoundTrip/RoundTrip.d.ts +54 -54
  135. package/dist/components/organisms/RoundTrip/RoundTrip.js +179 -179
  136. package/dist/components/organisms/RoundTrip/index.d.ts +2 -2
  137. package/dist/components/organisms/RoundTrip/index.js +1 -1
  138. package/dist/components/organisms/SearchBarTransfer/SearchBarTransfer.d.ts +35 -35
  139. package/dist/components/organisms/SearchBarTransfer/SearchBarTransfer.js +192 -192
  140. package/dist/components/organisms/SearchBarTransfer/index.d.ts +2 -2
  141. package/dist/components/organisms/SearchBarTransfer/index.js +1 -1
  142. package/dist/components/organisms/TopNavigation/DesktopNav.d.ts +33 -33
  143. package/dist/components/organisms/TopNavigation/DesktopNav.js +32 -26
  144. package/dist/components/organisms/TopNavigation/MobileNav.d.ts +32 -32
  145. package/dist/components/organisms/TopNavigation/MobileNav.js +45 -45
  146. package/dist/components/organisms/TopNavigation/TopNavigation.d.ts +33 -33
  147. package/dist/components/organisms/TopNavigation/TopNavigation.js +20 -20
  148. package/dist/components/organisms/TransferLine/TransferLine.d.ts +53 -53
  149. package/dist/components/organisms/TransferLine/TransferLine.js +179 -179
  150. package/dist/components/ui/button.d.ts +10 -10
  151. package/dist/components/ui/button.js +56 -56
  152. package/dist/components/ui/calendar.d.ts +8 -8
  153. package/dist/components/ui/calendar.js +87 -87
  154. package/dist/components/ui/popover.d.ts +7 -7
  155. package/dist/components/ui/popover.js +42 -42
  156. package/dist/hooks/useMobile.d.ts +5 -5
  157. package/dist/hooks/useMobile.js +26 -26
  158. package/dist/index.d.ts +49 -49
  159. package/dist/index.js +46 -46
  160. package/dist/lib/utils.d.ts +7 -7
  161. package/dist/lib/utils.js +13 -13
  162. package/dist/styles/components/avatar.css +122 -122
  163. package/dist/styles/components/calendar.css +140 -140
  164. package/dist/styles/components/checkbox.css +206 -206
  165. package/dist/styles/components/dropdown.css +269 -269
  166. package/dist/styles/components/forms.css +209 -209
  167. package/dist/styles/components/illustration.css +123 -123
  168. package/dist/styles/components/molecule/calendarInput.css +133 -133
  169. package/dist/styles/components/molecule/dateTime.css +126 -126
  170. package/dist/styles/components/molecule/location-dropdown.css +132 -132
  171. package/dist/styles/components/molecule/timePicker.css +122 -122
  172. package/dist/styles/components/multiselect-dropdown.css +286 -286
  173. package/dist/styles/components/organism/card-container.css +148 -148
  174. package/dist/styles/components/organism/dialog.css +168 -168
  175. package/dist/styles/components/organism/footer.css +119 -119
  176. package/dist/styles/components/organism/pax-selector.css +617 -617
  177. package/dist/styles/components/organism/round-trip.css +139 -139
  178. package/dist/styles/components/organism/search-bar-transfer.css +158 -161
  179. package/dist/styles/components/organism/topnavigation.css +143 -143
  180. package/dist/styles/components/organism/transfer-line.css +138 -138
  181. package/dist/styles/components/rating-star.css +145 -145
  182. package/dist/styles/components/rating-tab.css +179 -179
  183. package/dist/styles/components/scrollbar.css +155 -155
  184. package/dist/styles/components/segmented-button.css +214 -214
  185. package/dist/styles/components/selected-value.css +175 -175
  186. package/dist/styles/components/slider.css +182 -182
  187. package/dist/styles/components/typography.css +245 -245
  188. package/dist/styles/tokens/tokens.css +119 -119
  189. package/dist/styles/tokens/tokens.d.ts +3108 -3108
  190. package/dist/styles/tokens/tokens.js +2652 -2652
  191. package/package.json +103 -103
  192. package/src/components/atoms/Avatar/Avatar.tsx +60 -60
  193. package/src/components/atoms/Button/Button.css +200 -200
  194. package/src/components/atoms/Button/Button.tsx +82 -82
  195. package/src/components/atoms/Checkbox/Checkbox.tsx +83 -83
  196. package/src/components/atoms/Icon/Icon.tsx +163 -163
  197. package/src/components/atoms/Icon/icons/ArrivalIcon.tsx +52 -52
  198. package/src/components/atoms/Icon/icons/BuildingIcon.tsx +50 -50
  199. package/src/components/atoms/Icon/icons/CalendarIcon.tsx +63 -63
  200. package/src/components/atoms/Icon/icons/CalendarOutlineIcon.tsx +50 -50
  201. package/src/components/atoms/Icon/icons/CarIcon.tsx +44 -44
  202. package/src/components/atoms/Icon/icons/Check.tsx +36 -36
  203. package/src/components/atoms/Icon/icons/CheckCircleIcon.tsx +48 -48
  204. package/src/components/atoms/Icon/icons/Chevron.tsx +73 -73
  205. package/src/components/atoms/Icon/icons/ChevronDownIcon.tsx +46 -46
  206. package/src/components/atoms/Icon/icons/Close.tsx +39 -39
  207. package/src/components/atoms/Icon/icons/DeleteIcon.tsx +44 -44
  208. package/src/components/atoms/Icon/icons/DepartureIcon.tsx +50 -50
  209. package/src/components/atoms/Icon/icons/EyeIcon.tsx +44 -44
  210. package/src/components/atoms/Icon/icons/FacebookIcon.tsx +50 -50
  211. package/src/components/atoms/Icon/icons/HomeIcon.tsx +52 -52
  212. package/src/components/atoms/Icon/icons/InfoIcon.tsx +44 -44
  213. package/src/components/atoms/Icon/icons/LinkedInIcon.tsx +50 -50
  214. package/src/components/atoms/Icon/icons/MapPinIcon.tsx +44 -44
  215. package/src/components/atoms/Icon/icons/MautoucoLogo.tsx +93 -93
  216. package/src/components/atoms/Icon/icons/MenuIcon.tsx +49 -49
  217. package/src/components/atoms/Icon/icons/MinusIcon.tsx +45 -45
  218. package/src/components/atoms/Icon/icons/MoreIcon.tsx +44 -44
  219. package/src/components/atoms/Icon/icons/PlaneIcon.tsx +50 -50
  220. package/src/components/atoms/Icon/icons/PlusIcon.tsx +45 -45
  221. package/src/components/atoms/Icon/icons/Search.tsx +37 -37
  222. package/src/components/atoms/Icon/icons/Settings.tsx +38 -38
  223. package/src/components/atoms/Icon/icons/ShipIcon.tsx +50 -50
  224. package/src/components/atoms/Icon/icons/StrollerIcon.tsx +44 -44
  225. package/src/components/atoms/Icon/icons/TwitterIcon.tsx +50 -50
  226. package/src/components/atoms/Icon/icons/User.tsx +37 -37
  227. package/src/components/atoms/Icon/icons/UserIcon.tsx +63 -63
  228. package/src/components/atoms/Icon/icons/Youtube.tsx +50 -50
  229. package/src/components/atoms/Illustration/Illustration.tsx +28 -28
  230. package/src/components/atoms/Illustration/illustrations.ts +116 -116
  231. package/src/components/atoms/Inputs/DropdownInput/DropdownInput.tsx +96 -96
  232. package/src/components/atoms/Inputs/Textarea/Textarea.tsx +51 -51
  233. package/src/components/atoms/Link/Link.tsx +168 -168
  234. package/src/components/atoms/RatingStar/RatingStar.tsx +114 -114
  235. package/src/components/atoms/SegmentedButton/SegmentedButton.tsx +94 -94
  236. package/src/components/atoms/SelectedValue/SelectedValue.tsx +59 -59
  237. package/src/components/atoms/Slider/Slider.tsx +95 -95
  238. package/src/components/atoms/Spinner/Spinner.tsx +56 -56
  239. package/src/components/atoms/Spinner/variants/ButtonSpinner.tsx +37 -37
  240. package/src/components/atoms/Spinner/variants/LoadingSpinner.tsx +22 -22
  241. package/src/components/atoms/Tab/Tab.css +147 -147
  242. package/src/components/atoms/Tab/Tab.tsx +96 -96
  243. package/src/components/atoms/Typography/Typography.tsx +153 -153
  244. package/src/components/molecules/Calendar/CalendarInput.tsx +135 -135
  245. package/src/components/molecules/Calendar/DateTime.tsx +172 -172
  246. package/src/components/molecules/Calendar/TimePicker.tsx +174 -174
  247. package/src/components/molecules/LocationDropdown/LocationDropdown.tsx +234 -234
  248. package/src/components/molecules/LocationDropdown/index.ts +2 -2
  249. package/src/components/molecules/RatingTab/RatingTab.tsx +96 -96
  250. package/src/components/molecules/TabGroup/TabGroup.tsx +60 -60
  251. package/src/components/molecules/UserCard/UserCard.stories.tsx +36 -36
  252. package/src/components/molecules/UserCard/UserCard.tsx +173 -173
  253. package/src/components/organisms/CardContainer/CardContainer.tsx +66 -66
  254. package/src/components/organisms/DateTimePicker/DateTimePicker.tsx +110 -110
  255. package/src/components/organisms/Dialog/Dialog.tsx +352 -352
  256. package/src/components/organisms/Footer/Footer.tsx +290 -290
  257. package/src/components/organisms/PaxSelector/PaxSelector.tsx +979 -979
  258. package/src/components/organisms/RoundTrip/RoundTrip.tsx +335 -335
  259. package/src/components/organisms/RoundTrip/index.ts +2 -2
  260. package/src/components/organisms/SearchBarTransfer/SearchBarTransfer.tsx +388 -388
  261. package/src/components/organisms/SearchBarTransfer/index.ts +2 -2
  262. package/src/components/organisms/TopNavigation/DesktopNav.tsx +133 -122
  263. package/src/components/organisms/TopNavigation/MobileNav.tsx +212 -212
  264. package/src/components/organisms/TopNavigation/TopNavigation.tsx +45 -45
  265. package/src/components/organisms/TransferLine/TransferLine.tsx +369 -369
  266. package/src/components/ui/button.tsx +60 -60
  267. package/src/components/ui/calendar.tsx +246 -246
  268. package/src/components/ui/popover.tsx +46 -46
  269. package/src/styles/components/avatar.css +58 -58
  270. package/src/styles/components/calendar.css +85 -85
  271. package/src/styles/components/checkbox.css +130 -130
  272. package/src/styles/components/dropdown.css +214 -214
  273. package/src/styles/components/forms.css +147 -147
  274. package/src/styles/components/illustration.css +7 -7
  275. package/src/styles/components/molecule/calendarInput.css +156 -156
  276. package/src/styles/components/molecule/dateTime.css +14 -14
  277. package/src/styles/components/molecule/location-dropdown.css +204 -204
  278. package/src/styles/components/molecule/timePicker.css +78 -78
  279. package/src/styles/components/multiselect-dropdown.css +230 -230
  280. package/src/styles/components/organism/card-container.css +49 -49
  281. package/src/styles/components/organism/dialog.css +241 -241
  282. package/src/styles/components/organism/footer.css +113 -113
  283. package/src/styles/components/organism/pax-selector.css +702 -702
  284. package/src/styles/components/organism/round-trip.css +55 -55
  285. package/src/styles/components/organism/search-bar-transfer.css +128 -127
  286. package/src/styles/components/organism/topnavigation.css +161 -161
  287. package/src/styles/components/organism/transfer-line.css +86 -86
  288. package/src/styles/components/rating-star.css +39 -39
  289. package/src/styles/components/rating-tab.css +83 -83
  290. package/src/styles/components/scrollbar.css +63 -63
  291. package/src/styles/components/segmented-button.css +134 -134
  292. package/src/styles/components/selected-value.css +80 -80
  293. package/src/styles/components/slider.css +86 -86
  294. package/src/styles/components/typography.css +251 -251
  295. package/src/styles/fonts.css +50 -0
  296. package/src/styles/tokens/tokens.css +119 -119
  297. package/src/styles/tokens/tokens.js +12 -6
@@ -1,120 +1,120 @@
1
- var __assign = (this && this.__assign) || function () {
2
- __assign = Object.assign || function(t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
- t[p] = s[p];
7
- }
8
- return t;
9
- };
10
- return __assign.apply(this, arguments);
11
- };
12
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
13
- import { useState, useRef, useEffect } from 'react';
14
- import Icon from '../../atoms/Icon/Icon';
15
- import { Text } from '../../atoms/Typography/Typography';
16
- import '../../../styles/components/molecule/location-dropdown.css';
17
- var LocationDropdown = function (_a) {
18
- var _b = _a.options, options = _b === void 0 ? [] : _b, _c = _a.groups, groups = _c === void 0 ? [] : _c, _d = _a.selectedValue, selectedValue = _d === void 0 ? null : _d, _e = _a.placeholder, placeholder = _e === void 0 ? 'Select a location' : _e, label = _a.label, onSelectionChange = _a.onSelectionChange, _f = _a.disabled, disabled = _f === void 0 ? false : _f, _g = _a.error, error = _g === void 0 ? false : _g, _h = _a.className, className = _h === void 0 ? '' : _h, _j = _a.type, type = _j === void 0 ? 'airport-port' : _j, _k = _a.maxHeight, maxHeight = _k === void 0 ? 240 : _k, _l = _a.direction, direction = _l === void 0 ? undefined : _l, _m = _a.showGroupTitles, showGroupTitles = _m === void 0 ? true : _m;
19
- var _o = useState(false), isOpen = _o[0], setIsOpen = _o[1];
20
- var dropdownRef = useRef(null);
21
- // Close dropdown when clicking outside
22
- useEffect(function () {
23
- var handleClickOutside = function (event) {
24
- if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {
25
- setIsOpen(false);
26
- }
27
- };
28
- document.addEventListener('mousedown', handleClickOutside);
29
- return function () {
30
- document.removeEventListener('mousedown', handleClickOutside);
31
- };
32
- }, []);
33
- var handleToggleDropdown = function () {
34
- if (!disabled) {
35
- setIsOpen(!isOpen);
36
- }
37
- };
38
- var handleOptionSelect = function (option) {
39
- if (disabled)
40
- return;
41
- var locationData = {
42
- id: option.id,
43
- locationName: option.label,
44
- };
45
- onSelectionChange(locationData);
46
- setIsOpen(false);
47
- };
48
- var getSelectedOption = function () {
49
- if (!selectedValue)
50
- return null;
51
- // Search in flat options
52
- var flatOption = options.find(function (opt) { return opt.id === selectedValue; });
53
- if (flatOption)
54
- return flatOption;
55
- // Search in groups
56
- for (var _i = 0, groups_1 = groups; _i < groups_1.length; _i++) {
57
- var group = groups_1[_i];
58
- var groupOption = group.options.find(function (opt) { return opt.id === selectedValue; });
59
- if (groupOption)
60
- return groupOption;
61
- }
62
- return null;
63
- };
64
- var getIconForType = function (optionType) {
65
- switch (optionType) {
66
- case 'airport':
67
- return 'plane';
68
- case 'port':
69
- return 'ship';
70
- case 'accommodation':
71
- return 'map-pin';
72
- default:
73
- return 'map-pin';
74
- }
75
- };
76
- var getInputIcon = function () {
77
- if (selectedOption) {
78
- // For airports, show arrival/departure based on direction
79
- console.log({ direction: direction });
80
- if (selectedOption.type === 'airport' && direction) {
81
- return direction === 'pickup' ? 'arrival' : 'departure';
82
- }
83
- return getIconForType(selectedOption.type);
84
- }
85
- // Use arrival/departure icons based on direction for pickup/dropoff types
86
- if ((type === 'pickup-dropoff' || type === 'airport-port') && direction) {
87
- return direction === 'pickup' ? 'arrival' : 'departure';
88
- }
89
- return 'map-pin';
90
- };
91
- var getOptionIcon = function (option, isSelected) {
92
- // For selected airports, show arrival/departure based on direction
93
- if (isSelected && option.type === 'airport' && direction) {
94
- return direction === 'pickup' ? 'arrival' : 'departure';
95
- }
96
- // For other types (port, accommodation), show their specific icon
97
- return getIconForType(option.type);
98
- };
99
- var getDropdownState = function () {
100
- if (disabled)
101
- return 'disabled';
102
- if (error)
103
- return 'error';
104
- if (isOpen)
105
- return 'open';
106
- if (selectedValue)
107
- return 'selected';
108
- return 'default';
109
- };
110
- var selectedOption = getSelectedOption();
111
- var displayText = selectedOption ? selectedOption.label : placeholder;
112
- // Prepare all options (flat or grouped)
113
- var allOptions = groups.length > 0 ? groups : [{ id: 'default', label: '', options: options }];
114
- return (_jsxs("div", __assign({ ref: dropdownRef, className: "location-dropdown location-dropdown--".concat(type, " ").concat(className) }, { children: [label && (_jsx("div", __assign({ className: "location-dropdown__label" }, { children: _jsx(Text, __assign({ size: "sm", variant: "medium" }, { children: label })) }))), _jsxs("div", __assign({ className: "location-dropdown__input location-dropdown__input--".concat(getDropdownState()), onClick: handleToggleDropdown }, { children: [_jsxs("div", __assign({ className: "location-dropdown__input-content" }, { children: [_jsx(Icon, { name: getInputIcon(), size: "sm", className: "location-dropdown__input-icon ".concat(!selectedOption ? 'location-dropdown__input-icon--placeholder' : '') }), _jsx("span", __assign({ className: "location-dropdown__input-text ".concat(!selectedOption ? 'location-dropdown__input-text--placeholder' : '') }, { children: displayText }))] })), _jsx(Icon, { name: "chevron-down", size: "sm", className: "location-dropdown__input-chevron" })] })), isOpen && (_jsx("div", __assign({ className: "location-dropdown__panel" }, { children: _jsx("div", __assign({ className: "location-dropdown__content", style: { maxHeight: "".concat(maxHeight, "px") } }, { children: _jsx("div", __assign({ className: "location-dropdown__options-wrapper" }, { children: allOptions.map(function (group, groupIndex) { return (_jsxs("div", __assign({ className: "location-dropdown__group" }, { children: [showGroupTitles && group.label && groups.length > 0 && (_jsxs(_Fragment, { children: [groupIndex > 0 && _jsx("div", { className: "location-dropdown__divider" }), _jsx("div", __assign({ className: "location-dropdown__group-header" }, { children: _jsx(Text, __assign({ size: "xs", variant: "bold" }, { children: group.label })) }))] })), _jsx("div", __assign({ className: "location-dropdown__group-options" }, { children: group.options.map(function (option) {
115
- var isSelected = selectedValue === option.id;
116
- var isDisabled = option.disabled || disabled;
117
- return (_jsxs("div", __assign({ className: "location-dropdown__option ".concat(isSelected ? 'location-dropdown__option--selected' : '', " ").concat(isDisabled ? 'location-dropdown__option--disabled' : ''), onClick: function () { return !isDisabled && handleOptionSelect(option); } }, { children: [_jsx(Icon, { name: getOptionIcon(option, isSelected), size: "sm", className: "location-dropdown__option-icon" }), _jsx("span", __assign({ className: "location-dropdown__option-text" }, { children: option.label }))] }), option.id));
118
- }) }))] }), group.id)); }) })) })) })))] })));
119
- };
120
- export default LocationDropdown;
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
13
+ import { useState, useRef, useEffect } from 'react';
14
+ import Icon from '../../atoms/Icon/Icon';
15
+ import { Text } from '../../atoms/Typography/Typography';
16
+ import '../../../styles/components/molecule/location-dropdown.css';
17
+ var LocationDropdown = function (_a) {
18
+ var _b = _a.options, options = _b === void 0 ? [] : _b, _c = _a.groups, groups = _c === void 0 ? [] : _c, _d = _a.selectedValue, selectedValue = _d === void 0 ? null : _d, _e = _a.placeholder, placeholder = _e === void 0 ? 'Select a location' : _e, label = _a.label, onSelectionChange = _a.onSelectionChange, _f = _a.disabled, disabled = _f === void 0 ? false : _f, _g = _a.error, error = _g === void 0 ? false : _g, _h = _a.className, className = _h === void 0 ? '' : _h, _j = _a.type, type = _j === void 0 ? 'airport-port' : _j, _k = _a.maxHeight, maxHeight = _k === void 0 ? 240 : _k, _l = _a.direction, direction = _l === void 0 ? undefined : _l, _m = _a.showGroupTitles, showGroupTitles = _m === void 0 ? true : _m;
19
+ var _o = useState(false), isOpen = _o[0], setIsOpen = _o[1];
20
+ var dropdownRef = useRef(null);
21
+ // Close dropdown when clicking outside
22
+ useEffect(function () {
23
+ var handleClickOutside = function (event) {
24
+ if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {
25
+ setIsOpen(false);
26
+ }
27
+ };
28
+ document.addEventListener('mousedown', handleClickOutside);
29
+ return function () {
30
+ document.removeEventListener('mousedown', handleClickOutside);
31
+ };
32
+ }, []);
33
+ var handleToggleDropdown = function () {
34
+ if (!disabled) {
35
+ setIsOpen(!isOpen);
36
+ }
37
+ };
38
+ var handleOptionSelect = function (option) {
39
+ if (disabled)
40
+ return;
41
+ var locationData = {
42
+ id: option.id,
43
+ locationName: option.label,
44
+ };
45
+ onSelectionChange(locationData);
46
+ setIsOpen(false);
47
+ };
48
+ var getSelectedOption = function () {
49
+ if (!selectedValue)
50
+ return null;
51
+ // Search in flat options
52
+ var flatOption = options.find(function (opt) { return opt.id === selectedValue; });
53
+ if (flatOption)
54
+ return flatOption;
55
+ // Search in groups
56
+ for (var _i = 0, groups_1 = groups; _i < groups_1.length; _i++) {
57
+ var group = groups_1[_i];
58
+ var groupOption = group.options.find(function (opt) { return opt.id === selectedValue; });
59
+ if (groupOption)
60
+ return groupOption;
61
+ }
62
+ return null;
63
+ };
64
+ var getIconForType = function (optionType) {
65
+ switch (optionType) {
66
+ case 'airport':
67
+ return 'plane';
68
+ case 'port':
69
+ return 'ship';
70
+ case 'accommodation':
71
+ return 'map-pin';
72
+ default:
73
+ return 'map-pin';
74
+ }
75
+ };
76
+ var getInputIcon = function () {
77
+ if (selectedOption) {
78
+ // For airports, show arrival/departure based on direction
79
+ console.log({ direction: direction });
80
+ if (selectedOption.type === 'airport' && direction) {
81
+ return direction === 'pickup' ? 'arrival' : 'departure';
82
+ }
83
+ return getIconForType(selectedOption.type);
84
+ }
85
+ // Use arrival/departure icons based on direction for pickup/dropoff types
86
+ if ((type === 'pickup-dropoff' || type === 'airport-port') && direction) {
87
+ return direction === 'pickup' ? 'arrival' : 'departure';
88
+ }
89
+ return 'map-pin';
90
+ };
91
+ var getOptionIcon = function (option, isSelected) {
92
+ // For selected airports, show arrival/departure based on direction
93
+ if (isSelected && option.type === 'airport' && direction) {
94
+ return direction === 'pickup' ? 'arrival' : 'departure';
95
+ }
96
+ // For other types (port, accommodation), show their specific icon
97
+ return getIconForType(option.type);
98
+ };
99
+ var getDropdownState = function () {
100
+ if (disabled)
101
+ return 'disabled';
102
+ if (error)
103
+ return 'error';
104
+ if (isOpen)
105
+ return 'open';
106
+ if (selectedValue)
107
+ return 'selected';
108
+ return 'default';
109
+ };
110
+ var selectedOption = getSelectedOption();
111
+ var displayText = selectedOption ? selectedOption.label : placeholder;
112
+ // Prepare all options (flat or grouped)
113
+ var allOptions = groups.length > 0 ? groups : [{ id: 'default', label: '', options: options }];
114
+ return (_jsxs("div", __assign({ ref: dropdownRef, className: "location-dropdown location-dropdown--".concat(type, " ").concat(className) }, { children: [label && (_jsx("div", __assign({ className: "location-dropdown__label" }, { children: _jsx(Text, __assign({ size: "sm", variant: "medium" }, { children: label })) }))), _jsxs("div", __assign({ className: "location-dropdown__input location-dropdown__input--".concat(getDropdownState()), onClick: handleToggleDropdown }, { children: [_jsxs("div", __assign({ className: "location-dropdown__input-content" }, { children: [_jsx(Icon, { name: getInputIcon(), size: "sm", className: "location-dropdown__input-icon ".concat(!selectedOption ? 'location-dropdown__input-icon--placeholder' : '') }), _jsx("span", __assign({ className: "location-dropdown__input-text ".concat(!selectedOption ? 'location-dropdown__input-text--placeholder' : '') }, { children: displayText }))] })), _jsx(Icon, { name: "chevron-down", size: "sm", className: "location-dropdown__input-chevron" })] })), isOpen && (_jsx("div", __assign({ className: "location-dropdown__panel" }, { children: _jsx("div", __assign({ className: "location-dropdown__content", style: { maxHeight: "".concat(maxHeight, "px") } }, { children: _jsx("div", __assign({ className: "location-dropdown__options-wrapper" }, { children: allOptions.map(function (group, groupIndex) { return (_jsxs("div", __assign({ className: "location-dropdown__group" }, { children: [showGroupTitles && group.label && groups.length > 0 && (_jsxs(_Fragment, { children: [groupIndex > 0 && _jsx("div", { className: "location-dropdown__divider" }), _jsx("div", __assign({ className: "location-dropdown__group-header" }, { children: _jsx(Text, __assign({ size: "xs", variant: "bold" }, { children: group.label })) }))] })), _jsx("div", __assign({ className: "location-dropdown__group-options" }, { children: group.options.map(function (option) {
115
+ var isSelected = selectedValue === option.id;
116
+ var isDisabled = option.disabled || disabled;
117
+ return (_jsxs("div", __assign({ className: "location-dropdown__option ".concat(isSelected ? 'location-dropdown__option--selected' : '', " ").concat(isDisabled ? 'location-dropdown__option--disabled' : ''), onClick: function () { return !isDisabled && handleOptionSelect(option); } }, { children: [_jsx(Icon, { name: getOptionIcon(option, isSelected), size: "sm", className: "location-dropdown__option-icon" }), _jsx("span", __assign({ className: "location-dropdown__option-text" }, { children: option.label }))] }), option.id));
118
+ }) }))] }), group.id)); }) })) })) })))] })));
119
+ };
120
+ export default LocationDropdown;
@@ -1,2 +1,2 @@
1
- export { default } from './LocationDropdown';
2
- export type { LocationDropdownProps, LocationOption, LocationGroup } from './LocationDropdown';
1
+ export { default } from './LocationDropdown';
2
+ export type { LocationDropdownProps, LocationOption, LocationGroup } from './LocationDropdown';
@@ -1 +1 @@
1
- export { default } from './LocationDropdown';
1
+ export { default } from './LocationDropdown';
@@ -1,29 +1,29 @@
1
- import React from 'react';
2
- export interface MultiSelectOption {
3
- id: string;
4
- label: string;
5
- disabled?: boolean;
6
- imageUrl?: string;
7
- }
8
- export interface MultiSelectGroup {
9
- id: string;
10
- label: string;
11
- options: MultiSelectOption[];
12
- imageUrl?: string;
13
- }
14
- export interface MultiSelectDropdownProps {
15
- options: MultiSelectOption[];
16
- selectedValues: string[];
17
- placeholder?: string;
18
- onSelectionChange: (selectedIds: string[]) => void;
19
- disabled?: boolean;
20
- error?: boolean;
21
- className?: string;
22
- maxDisplayedChips?: number;
23
- selectedValueVariant?: 'filled' | 'text';
24
- searchable?: boolean;
25
- searchPlaceholder?: string;
26
- groups?: MultiSelectGroup[];
27
- }
28
- declare const MultiSelectDropdown: React.FC<MultiSelectDropdownProps>;
29
- export default MultiSelectDropdown;
1
+ import React from 'react';
2
+ export interface MultiSelectOption {
3
+ id: string;
4
+ label: string;
5
+ disabled?: boolean;
6
+ imageUrl?: string;
7
+ }
8
+ export interface MultiSelectGroup {
9
+ id: string;
10
+ label: string;
11
+ options: MultiSelectOption[];
12
+ imageUrl?: string;
13
+ }
14
+ export interface MultiSelectDropdownProps {
15
+ options: MultiSelectOption[];
16
+ selectedValues: string[];
17
+ placeholder?: string;
18
+ onSelectionChange: (selectedIds: string[]) => void;
19
+ disabled?: boolean;
20
+ error?: boolean;
21
+ className?: string;
22
+ maxDisplayedChips?: number;
23
+ selectedValueVariant?: 'filled' | 'text';
24
+ searchable?: boolean;
25
+ searchPlaceholder?: string;
26
+ groups?: MultiSelectGroup[];
27
+ }
28
+ declare const MultiSelectDropdown: React.FC<MultiSelectDropdownProps>;
29
+ export default MultiSelectDropdown;
@@ -1,106 +1,106 @@
1
- var __assign = (this && this.__assign) || function () {
2
- __assign = Object.assign || function(t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
- t[p] = s[p];
7
- }
8
- return t;
9
- };
10
- return __assign.apply(this, arguments);
11
- };
12
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
13
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
14
- if (ar || !(i in from)) {
15
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
16
- ar[i] = from[i];
17
- }
18
- }
19
- return to.concat(ar || Array.prototype.slice.call(from));
20
- };
21
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
22
- import { useState, useRef, useEffect } from 'react';
23
- import DropdownInput from '../../atoms/Inputs/DropdownInput/DropdownInput';
24
- import Input from '../../atoms/Inputs/Input/Input';
25
- import Checkbox from '../../atoms/Checkbox/Checkbox';
26
- import SelectedValue from '../../atoms/SelectedValue/SelectedValue';
27
- import { Text } from '../../atoms/Typography/Typography';
28
- var MultiSelectDropdown = function (_a) {
29
- var options = _a.options, selectedValues = _a.selectedValues, _b = _a.placeholder, placeholder = _b === void 0 ? 'Select items' : _b, onSelectionChange = _a.onSelectionChange, _c = _a.disabled, disabled = _c === void 0 ? false : _c, _d = _a.error, error = _d === void 0 ? false : _d, _e = _a.className, className = _e === void 0 ? '' : _e, _f = _a.maxDisplayedChips, maxDisplayedChips = _f === void 0 ? 3 : _f, _g = _a.selectedValueVariant, selectedValueVariant = _g === void 0 ? 'filled' : _g, _h = _a.searchable, searchable = _h === void 0 ? false : _h, _j = _a.searchPlaceholder, searchPlaceholder = _j === void 0 ? 'Search' : _j, groups = _a.groups;
30
- var _k = useState(false), isOpen = _k[0], setIsOpen = _k[1];
31
- var _l = useState(''), query = _l[0], setQuery = _l[1];
32
- var dropdownRef = useRef(null);
33
- // Close dropdown when clicking outside
34
- useEffect(function () {
35
- var handleClickOutside = function (event) {
36
- if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {
37
- setIsOpen(false);
38
- }
39
- };
40
- document.addEventListener('mousedown', handleClickOutside);
41
- return function () {
42
- document.removeEventListener('mousedown', handleClickOutside);
43
- };
44
- }, []);
45
- var handleToggleDropdown = function () {
46
- if (!disabled) {
47
- setIsOpen(!isOpen);
48
- }
49
- };
50
- var handleOptionToggle = function (optionId) {
51
- if (disabled)
52
- return;
53
- var isSelected = selectedValues.includes(optionId);
54
- var newSelectedValues;
55
- if (isSelected) {
56
- newSelectedValues = selectedValues.filter(function (id) { return id !== optionId; });
57
- }
58
- else {
59
- newSelectedValues = __spreadArray(__spreadArray([], selectedValues, true), [optionId], false);
60
- }
61
- onSelectionChange(newSelectedValues);
62
- };
63
- var handleRemoveChip = function (optionId) {
64
- if (disabled)
65
- return;
66
- var newSelectedValues = selectedValues.filter(function (id) { return id !== optionId; });
67
- onSelectionChange(newSelectedValues);
68
- };
69
- var getSelectedOptions = function () {
70
- return options.filter(function (option) { return selectedValues.includes(option.id); });
71
- };
72
- var getFilteredOptions = function () {
73
- if (!searchable || query.trim() === '')
74
- return options;
75
- var q = query.toLowerCase();
76
- return options.filter(function (o) { return o.label.toLowerCase().includes(q); });
77
- };
78
- var getDisplayedChips = function () {
79
- var selectedOptions = getSelectedOptions();
80
- return selectedOptions.slice(0, maxDisplayedChips);
81
- };
82
- var getHiddenCount = function () {
83
- return Math.max(0, selectedValues.length - maxDisplayedChips);
84
- };
85
- var getDropdownState = function () {
86
- if (disabled)
87
- return 'disabled';
88
- if (error)
89
- return 'error';
90
- if (selectedValues.length > 0)
91
- return 'selected';
92
- return 'default';
93
- };
94
- return (_jsxs("div", __assign({ ref: dropdownRef, className: "multiselect-dropdown ".concat(className) }, { children: [_jsxs("div", __assign({ className: "multiselect-dropdown__input-container" }, { children: [_jsx(DropdownInput, { placeholder: selectedValues.length === 0 ? placeholder : '', state: getDropdownState(), onClick: handleToggleDropdown, className: "multiselect-dropdown__input" }), selectedValues.length > 0 && (_jsxs("div", __assign({ className: "multiselect-dropdown__chips" }, { children: [getDisplayedChips().map(function (option) { return (_jsx(SelectedValue, { value: option.label, onRemove: function () { return handleRemoveChip(option.id); }, className: "multiselect-dropdown__chip", size: "xs", iconSize: "xs", variant: selectedValueVariant }, option.id)); }), getHiddenCount() > 0 && (_jsxs("div", __assign({ className: "multiselect-dropdown__hidden-count" }, { children: ["+", getHiddenCount()] })))] })))] })), isOpen && (_jsxs("div", __assign({ className: "multiselect-dropdown__panel" }, { children: [_jsxs("div", __assign({ className: "multiselect-dropdown__menu" }, { children: [searchable && (_jsx("div", __assign({ className: "multiselect-dropdown__search" }, { children: _jsx(Input, { placeholder: searchPlaceholder, value: query, onChange: function (e) { return setQuery(e.target.value); }, icon: "search", iconPosition: "trailing" }) }))), _jsx("div", __assign({ className: "multiselect-dropdown__options" }, { children: groups && groups.length > 0 ? (groups.map(function (group) { return (_jsxs("div", __assign({ className: "multiselect-dropdown__group" }, { children: [_jsxs("div", __assign({ className: "multiselect-dropdown__group-header" }, { children: [group.imageUrl && (_jsx("span", __assign({ className: "multiselect-dropdown__group-icon", "aria-hidden": "true" }, { children: _jsx("img", { src: group.imageUrl, alt: "" }) }))), _jsx(Text, __assign({ size: "sm", variant: "medium" }, { children: group.label }))] })), _jsx("div", __assign({ className: "multiselect-dropdown__group-options" }, { children: getFilteredOptions()
95
- .filter(function (o) { return group.options.some(function (go) { return go.id === o.id; }); })
96
- .map(function (option) { return (_jsx("div", __assign({ className: "multiselect-dropdown__option" }, { children: _jsx(Checkbox, { checked: selectedValues.includes(option.id), disabled: option.disabled || disabled, label: option.label, leadingContent: option.imageUrl ? (_jsx("span", __assign({ className: "multiselect-dropdown__option-icon", "aria-hidden": "true" }, { children: _jsx("img", { src: option.imageUrl, alt: "" }) }))) : undefined, onChange: function (checked) {
97
- if (checked !== selectedValues.includes(option.id)) {
98
- handleOptionToggle(option.id);
99
- }
100
- } }) }), option.id)); }) }))] }), group.id)); })) : (getFilteredOptions().map(function (option) { return (_jsx("div", __assign({ className: "multiselect-dropdown__option" }, { children: _jsx(Checkbox, { checked: selectedValues.includes(option.id), disabled: option.disabled || disabled, label: option.label, leadingContent: option.imageUrl ? (_jsx("span", __assign({ className: "multiselect-dropdown__option-icon", "aria-hidden": "true" }, { children: _jsx("img", { src: option.imageUrl, alt: "" }) }))) : undefined, onChange: function (checked) {
101
- if (checked !== selectedValues.includes(option.id)) {
102
- handleOptionToggle(option.id);
103
- }
104
- } }) }), option.id)); })) }))] })), _jsx("div", __assign({ className: "multiselect-dropdown__footer" }, { children: _jsxs(Text, __assign({ size: "sm", variant: "regular", leading: "5", className: "multiselect-dropdown__footer-text" }, { children: [selectedValues.length, " item selected"] })) }))] })))] })));
105
- };
106
- export default MultiSelectDropdown;
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
13
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
14
+ if (ar || !(i in from)) {
15
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
16
+ ar[i] = from[i];
17
+ }
18
+ }
19
+ return to.concat(ar || Array.prototype.slice.call(from));
20
+ };
21
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
22
+ import { useState, useRef, useEffect } from 'react';
23
+ import DropdownInput from '../../atoms/Inputs/DropdownInput/DropdownInput';
24
+ import Input from '../../atoms/Inputs/Input/Input';
25
+ import Checkbox from '../../atoms/Checkbox/Checkbox';
26
+ import SelectedValue from '../../atoms/SelectedValue/SelectedValue';
27
+ import { Text } from '../../atoms/Typography/Typography';
28
+ var MultiSelectDropdown = function (_a) {
29
+ var options = _a.options, selectedValues = _a.selectedValues, _b = _a.placeholder, placeholder = _b === void 0 ? 'Select items' : _b, onSelectionChange = _a.onSelectionChange, _c = _a.disabled, disabled = _c === void 0 ? false : _c, _d = _a.error, error = _d === void 0 ? false : _d, _e = _a.className, className = _e === void 0 ? '' : _e, _f = _a.maxDisplayedChips, maxDisplayedChips = _f === void 0 ? 3 : _f, _g = _a.selectedValueVariant, selectedValueVariant = _g === void 0 ? 'filled' : _g, _h = _a.searchable, searchable = _h === void 0 ? false : _h, _j = _a.searchPlaceholder, searchPlaceholder = _j === void 0 ? 'Search' : _j, groups = _a.groups;
30
+ var _k = useState(false), isOpen = _k[0], setIsOpen = _k[1];
31
+ var _l = useState(''), query = _l[0], setQuery = _l[1];
32
+ var dropdownRef = useRef(null);
33
+ // Close dropdown when clicking outside
34
+ useEffect(function () {
35
+ var handleClickOutside = function (event) {
36
+ if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {
37
+ setIsOpen(false);
38
+ }
39
+ };
40
+ document.addEventListener('mousedown', handleClickOutside);
41
+ return function () {
42
+ document.removeEventListener('mousedown', handleClickOutside);
43
+ };
44
+ }, []);
45
+ var handleToggleDropdown = function () {
46
+ if (!disabled) {
47
+ setIsOpen(!isOpen);
48
+ }
49
+ };
50
+ var handleOptionToggle = function (optionId) {
51
+ if (disabled)
52
+ return;
53
+ var isSelected = selectedValues.includes(optionId);
54
+ var newSelectedValues;
55
+ if (isSelected) {
56
+ newSelectedValues = selectedValues.filter(function (id) { return id !== optionId; });
57
+ }
58
+ else {
59
+ newSelectedValues = __spreadArray(__spreadArray([], selectedValues, true), [optionId], false);
60
+ }
61
+ onSelectionChange(newSelectedValues);
62
+ };
63
+ var handleRemoveChip = function (optionId) {
64
+ if (disabled)
65
+ return;
66
+ var newSelectedValues = selectedValues.filter(function (id) { return id !== optionId; });
67
+ onSelectionChange(newSelectedValues);
68
+ };
69
+ var getSelectedOptions = function () {
70
+ return options.filter(function (option) { return selectedValues.includes(option.id); });
71
+ };
72
+ var getFilteredOptions = function () {
73
+ if (!searchable || query.trim() === '')
74
+ return options;
75
+ var q = query.toLowerCase();
76
+ return options.filter(function (o) { return o.label.toLowerCase().includes(q); });
77
+ };
78
+ var getDisplayedChips = function () {
79
+ var selectedOptions = getSelectedOptions();
80
+ return selectedOptions.slice(0, maxDisplayedChips);
81
+ };
82
+ var getHiddenCount = function () {
83
+ return Math.max(0, selectedValues.length - maxDisplayedChips);
84
+ };
85
+ var getDropdownState = function () {
86
+ if (disabled)
87
+ return 'disabled';
88
+ if (error)
89
+ return 'error';
90
+ if (selectedValues.length > 0)
91
+ return 'selected';
92
+ return 'default';
93
+ };
94
+ return (_jsxs("div", __assign({ ref: dropdownRef, className: "multiselect-dropdown ".concat(className) }, { children: [_jsxs("div", __assign({ className: "multiselect-dropdown__input-container" }, { children: [_jsx(DropdownInput, { placeholder: selectedValues.length === 0 ? placeholder : '', state: getDropdownState(), onClick: handleToggleDropdown, className: "multiselect-dropdown__input" }), selectedValues.length > 0 && (_jsxs("div", __assign({ className: "multiselect-dropdown__chips" }, { children: [getDisplayedChips().map(function (option) { return (_jsx(SelectedValue, { value: option.label, onRemove: function () { return handleRemoveChip(option.id); }, className: "multiselect-dropdown__chip", size: "xs", iconSize: "xs", variant: selectedValueVariant }, option.id)); }), getHiddenCount() > 0 && (_jsxs("div", __assign({ className: "multiselect-dropdown__hidden-count" }, { children: ["+", getHiddenCount()] })))] })))] })), isOpen && (_jsxs("div", __assign({ className: "multiselect-dropdown__panel" }, { children: [_jsxs("div", __assign({ className: "multiselect-dropdown__menu" }, { children: [searchable && (_jsx("div", __assign({ className: "multiselect-dropdown__search" }, { children: _jsx(Input, { placeholder: searchPlaceholder, value: query, onChange: function (e) { return setQuery(e.target.value); }, icon: "search", iconPosition: "trailing" }) }))), _jsx("div", __assign({ className: "multiselect-dropdown__options" }, { children: groups && groups.length > 0 ? (groups.map(function (group) { return (_jsxs("div", __assign({ className: "multiselect-dropdown__group" }, { children: [_jsxs("div", __assign({ className: "multiselect-dropdown__group-header" }, { children: [group.imageUrl && (_jsx("span", __assign({ className: "multiselect-dropdown__group-icon", "aria-hidden": "true" }, { children: _jsx("img", { src: group.imageUrl, alt: "" }) }))), _jsx(Text, __assign({ size: "sm", variant: "medium" }, { children: group.label }))] })), _jsx("div", __assign({ className: "multiselect-dropdown__group-options" }, { children: getFilteredOptions()
95
+ .filter(function (o) { return group.options.some(function (go) { return go.id === o.id; }); })
96
+ .map(function (option) { return (_jsx("div", __assign({ className: "multiselect-dropdown__option" }, { children: _jsx(Checkbox, { checked: selectedValues.includes(option.id), disabled: option.disabled || disabled, label: option.label, leadingContent: option.imageUrl ? (_jsx("span", __assign({ className: "multiselect-dropdown__option-icon", "aria-hidden": "true" }, { children: _jsx("img", { src: option.imageUrl, alt: "" }) }))) : undefined, onChange: function (checked) {
97
+ if (checked !== selectedValues.includes(option.id)) {
98
+ handleOptionToggle(option.id);
99
+ }
100
+ } }) }), option.id)); }) }))] }), group.id)); })) : (getFilteredOptions().map(function (option) { return (_jsx("div", __assign({ className: "multiselect-dropdown__option" }, { children: _jsx(Checkbox, { checked: selectedValues.includes(option.id), disabled: option.disabled || disabled, label: option.label, leadingContent: option.imageUrl ? (_jsx("span", __assign({ className: "multiselect-dropdown__option-icon", "aria-hidden": "true" }, { children: _jsx("img", { src: option.imageUrl, alt: "" }) }))) : undefined, onChange: function (checked) {
101
+ if (checked !== selectedValues.includes(option.id)) {
102
+ handleOptionToggle(option.id);
103
+ }
104
+ } }) }), option.id)); })) }))] })), _jsx("div", __assign({ className: "multiselect-dropdown__footer" }, { children: _jsxs(Text, __assign({ size: "sm", variant: "regular", leading: "5", className: "multiselect-dropdown__footer-text" }, { children: [selectedValues.length, " item selected"] })) }))] })))] })));
105
+ };
106
+ export default MultiSelectDropdown;
@@ -1,39 +1,39 @@
1
- import React from 'react';
2
- export interface RatingTabProps {
3
- /**
4
- * Label displayed next to the checkbox (e.g. "5 stars").
5
- */
6
- label: string;
7
- /**
8
- * Rating value displayed in the star row (0–max, typically 1–5).
9
- */
10
- ratingValue: number;
11
- /**
12
- * Maximum number of stars.
13
- */
14
- maxStars?: number;
15
- /**
16
- * Whether this tab is selected.
17
- */
18
- checked?: boolean;
19
- /**
20
- * Whether the tab is disabled.
21
- */
22
- disabled?: boolean;
23
- /**
24
- * Called when the selection state changes.
25
- */
26
- onChange?: (checked: boolean) => void;
27
- /**
28
- * Additional CSS classes for the container.
29
- */
30
- className?: string;
31
- }
32
- /**
33
- * RatingTab molecule
34
- *
35
- * Combines a checkbox-like selector, a label and the RatingStar atom.
36
- * Used for filters like "5 stars", "4 stars", etc.
37
- */
38
- declare const RatingTab: React.FC<RatingTabProps>;
39
- export default RatingTab;
1
+ import React from 'react';
2
+ export interface RatingTabProps {
3
+ /**
4
+ * Label displayed next to the checkbox (e.g. "5 stars").
5
+ */
6
+ label: string;
7
+ /**
8
+ * Rating value displayed in the star row (0–max, typically 1–5).
9
+ */
10
+ ratingValue: number;
11
+ /**
12
+ * Maximum number of stars.
13
+ */
14
+ maxStars?: number;
15
+ /**
16
+ * Whether this tab is selected.
17
+ */
18
+ checked?: boolean;
19
+ /**
20
+ * Whether the tab is disabled.
21
+ */
22
+ disabled?: boolean;
23
+ /**
24
+ * Called when the selection state changes.
25
+ */
26
+ onChange?: (checked: boolean) => void;
27
+ /**
28
+ * Additional CSS classes for the container.
29
+ */
30
+ className?: string;
31
+ }
32
+ /**
33
+ * RatingTab molecule
34
+ *
35
+ * Combines a checkbox-like selector, a label and the RatingStar atom.
36
+ * Used for filters like "5 stars", "4 stars", etc.
37
+ */
38
+ declare const RatingTab: React.FC<RatingTabProps>;
39
+ export default RatingTab;