@stokr/components-library 2.3.65-beta.9 → 2.3.66

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 (256) hide show
  1. package/dist/analytics/index.js +162 -0
  2. package/dist/components/2FA/login-with-otp-flow.js +1 -1
  3. package/dist/components/2FA/main-flow.js +40 -12
  4. package/dist/components/Chips/Chip.js +1 -2
  5. package/dist/components/Chips/Chip.styles.js +3 -2
  6. package/dist/components/ConfirmModal/ConfirmModal.js +240 -0
  7. package/dist/components/ConfirmModal/ConfirmModal.styles.js +26 -0
  8. package/dist/components/CryptoAddress/CryptoAddress.js +10 -4
  9. package/dist/components/CryptoAddress/CryptoAddress.styles.js +1 -1
  10. package/dist/components/Footer/FooterLayout.js +13 -4
  11. package/dist/components/Footer/FooterMenu.js +19 -3
  12. package/dist/components/Footer/FooterMenu.styles.js +14 -2
  13. package/dist/components/Header/Header.styles.js +1 -1
  14. package/dist/components/Input/DatePickerInput.js +134 -30
  15. package/dist/components/Input/DatePickerInput.styles.js +16 -3
  16. package/dist/components/Input/MultiSelect.js +10 -8
  17. package/dist/components/Input/TableFilterDropdown.js +228 -0
  18. package/dist/components/Input/Textarea.js +59 -0
  19. package/dist/components/Input/Textarea.styles.js +18 -0
  20. package/dist/components/Modal/Modal.js +39 -6
  21. package/dist/components/Modal/Modal.styles.js +2 -2
  22. package/dist/components/Modal/SideModal.js +44 -2
  23. package/dist/components/Modal/SuccessModal/SuccessModal.js +173 -0
  24. package/dist/components/Modal/SuccessModal/SuccessModal.styles.js +29 -0
  25. package/dist/components/Modal/SuccessModal/index.js +37 -0
  26. package/dist/components/Payment/PaymentDetailsCard.js +14 -11
  27. package/dist/components/Payment/PaymentDisplay.js +2 -12
  28. package/dist/components/Snackbar/Snackbar.js +3 -0
  29. package/dist/components/Snackbar/Snackbar.styles.js +18 -9
  30. package/dist/components/StatusTag/StatusTag.js +38 -71
  31. package/dist/components/StatusTag/StatusTag.styles.js +4 -16
  32. package/dist/components/Timeline/Timeline.styles.js +1 -1
  33. package/dist/components/Timeline/TimelineStep.js +0 -1
  34. package/dist/context/AuthContext.js +5 -0
  35. package/dist/favicon.ico +0 -0
  36. package/dist/index.css +1 -0
  37. package/dist/index.js +55 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/index.umd.cjs +10371 -0
  40. package/dist/index.umd.cjs.map +1 -0
  41. package/dist/logo192.png +0 -0
  42. package/dist/logo512.png +0 -0
  43. package/dist/manifest.json +25 -0
  44. package/dist/robots.txt +3 -0
  45. package/dist/static/animations/checked.lottie +0 -0
  46. package/dist/static/animations/progress.lottie +0 -0
  47. package/dist/static/images/add-folder-icon.svg +5 -0
  48. package/dist/static/images/background3.png +0 -0
  49. package/dist/static/images/bmn2-logo.svg +9 -9
  50. package/dist/static/images/checkmark-circle-icon.svg +4 -0
  51. package/dist/static/images/close-circle-icon.svg +3 -0
  52. package/dist/static/images/doc-icon.svg +4 -0
  53. package/dist/static/images/filter-icon.svg +6 -0
  54. package/dist/styles/colors.js +2 -1
  55. package/dist/styles/global.js +1 -1
  56. package/dist/utils/customHooks.js +24 -2
  57. package/dist/utils/formatCurrencyValue.js +9 -2
  58. package/package.json +5 -2
  59. package/dist/components/2FA/EnterCode.stories.js +0 -35
  60. package/dist/components/2FA/disable-2fa-flow.stories.js +0 -31
  61. package/dist/components/2FA/enable-2fa-flow.stories.js +0 -31
  62. package/dist/components/2FA/login-with-otp-flow.stories.js +0 -31
  63. package/dist/components/2FA/main-flow.stories.js +0 -162
  64. package/dist/components/AccountBalance/AccountBalance.stories.js +0 -83
  65. package/dist/components/AdminDashboard/Table/ReactTable.stories.js +0 -913
  66. package/dist/components/AgreementItem/AgreementItem.stories.js +0 -105
  67. package/dist/components/AnalyticGraphs/Analytic.js +0 -541
  68. package/dist/components/AnalyticGraphs/Analytic.styles.js +0 -25
  69. package/dist/components/BackButton/BackButton.stories.js +0 -32
  70. package/dist/components/Background/Background.stories.js +0 -75
  71. package/dist/components/BarChart/BarChart.js +0 -263
  72. package/dist/components/BarChart/BarChart.stories.js +0 -66
  73. package/dist/components/BarChart/BarChart.styles.js +0 -26
  74. package/dist/components/BarChartLegend/BarChartLegend.js +0 -79
  75. package/dist/components/BarChartLegend/BarChartLegend.styles.js +0 -21
  76. package/dist/components/BasicTable/BasicTable.stories.js +0 -59
  77. package/dist/components/BlogPost/BlogPost.stories.js +0 -160
  78. package/dist/components/Button/Button.stories.js +0 -146
  79. package/dist/components/Button/GlareButton.stories.js +0 -132
  80. package/dist/components/CapitalRaisedSummary/CapitalRaisedSummery.stories.js +0 -42
  81. package/dist/components/ChartBox/ChartBox.js +0 -41
  82. package/dist/components/ChartBox/ChartBox.stories.js +0 -17
  83. package/dist/components/ChartBox/ChartBox.styles.js +0 -27
  84. package/dist/components/ChartBox/ChartBoxDistribution.js +0 -27
  85. package/dist/components/ChartBox/ChartBoxDistribution.stories.js +0 -18
  86. package/dist/components/ChartLegend/ChartLegend.stories.js +0 -90
  87. package/dist/components/Checkbox/Checkbox.stories.js +0 -88
  88. package/dist/components/Checklist/ChecklistCard.stories.js +0 -102
  89. package/dist/components/Checklist/UserChecklist.js +0 -184
  90. package/dist/components/Checklist/UserChecklist.stories.js +0 -317
  91. package/dist/components/Chips/Chip.stories.js +0 -36
  92. package/dist/components/Chips/ChipsWrapper.stories.js +0 -47
  93. package/dist/components/ComponentScroll/ComponentScroll.stories.js +0 -111
  94. package/dist/components/CryptoAddress/CryptoAddress.stories.js +0 -205
  95. package/dist/components/CryptoAddressDetails/CryptoAddressDetails.stories.js +0 -70
  96. package/dist/components/DonutChart/DonutChart.stories.js +0 -54
  97. package/dist/components/FAQ/FAQ.stories.js +0 -76
  98. package/dist/components/Footer/Footer.stories.js +0 -49
  99. package/dist/components/Footer/FooterLayout.stories.js +0 -26
  100. package/dist/components/Footer/FooterMenu.stories.js +0 -113
  101. package/dist/components/Footer/mangopay.png +0 -0
  102. package/dist/components/Footer/mangopay.svg +0 -20
  103. package/dist/components/ForgotPasswordModal/ForgotPasswordModal.stories.js +0 -69
  104. package/dist/components/Form/Form.stories.js +0 -32
  105. package/dist/components/FullscreenCard/FullscreenCard.styles.js +0 -27
  106. package/dist/components/Header/Header.stories.js +0 -192
  107. package/dist/components/Icon/Icon.stories.js +0 -108
  108. package/dist/components/InfoIcon/InfoIcon.stories.js +0 -299
  109. package/dist/components/InfoPanel/InfoPanel.js +0 -124
  110. package/dist/components/Input/DatePickerInput.stories.js +0 -87
  111. package/dist/components/Input/Input.stories.js +0 -217
  112. package/dist/components/Input/InputPassword.stories.js +0 -80
  113. package/dist/components/Input/InputWithButton.stories.js +0 -75
  114. package/dist/components/Input/MultiSelect.stories.js +0 -264
  115. package/dist/components/Input/OtpInput.stories.js +0 -57
  116. package/dist/components/Input/RangeInput.stories.js +0 -58
  117. package/dist/components/Input/SearchInput.stories.js +0 -366
  118. package/dist/components/Input/Select.stories.js +0 -478
  119. package/dist/components/InvestCalculator/InvestCalculator.stories.js +0 -135
  120. package/dist/components/InvestmentStat/InvestmentStat.stories.js +0 -52
  121. package/dist/components/KYCFlow/BasicInfo.js +0 -448
  122. package/dist/components/KYCFlow/Confirmation.js +0 -46
  123. package/dist/components/KYCFlow/DocumentFileUpload.js +0 -263
  124. package/dist/components/KYCFlow/DocumentScan.js +0 -75
  125. package/dist/components/KYCFlow/DocumentScanUpload.js +0 -251
  126. package/dist/components/KYCFlow/DocumentSelect.js +0 -118
  127. package/dist/components/KYCFlow/DocumentSuccess.js +0 -63
  128. package/dist/components/KYCFlow/DocumentUpload.js +0 -53
  129. package/dist/components/KYCFlow/DocumentVerificationType.js +0 -131
  130. package/dist/components/KYCFlow/FaceScan.js +0 -54
  131. package/dist/components/KYCFlow/FaceScanRecognition.js +0 -61
  132. package/dist/components/KYCFlow/FaceScanSuccess.js +0 -56
  133. package/dist/components/KYCFlow/Terms.js +0 -119
  134. package/dist/components/KYCFlow/_styles.js +0 -111
  135. package/dist/components/KYCFlow/index.js +0 -97
  136. package/dist/components/KYCSelectBox/KYCSelectBox.styles.js +0 -29
  137. package/dist/components/LatestUpdate/LatestUpdate.stories.js +0 -58
  138. package/dist/components/Layout/Layout.stories.js +0 -60
  139. package/dist/components/LearnMoreCarousel/LearnMoreCarousel.stories.js +0 -66
  140. package/dist/components/LearnMorePage/LearnMore.stories.js +0 -48
  141. package/dist/components/LearnMorePage/LearnMoreItem.stories.js +0 -62
  142. package/dist/components/LearnMoreSection/LearnMore.stories.js +0 -30
  143. package/dist/components/LearnMoreSection/LearnMoreItem.stories.js +0 -59
  144. package/dist/components/LoginModal/LoginModal.stories.js +0 -74
  145. package/dist/components/MatomoConnect/Matomo.js +0 -228
  146. package/dist/components/MatomoConnect/Matomo_fuckup.js +0 -387
  147. package/dist/components/Modal/Modal.stories.js +0 -75
  148. package/dist/components/Modal/NewVentureModal/NewVentureModal.stories.js +0 -150
  149. package/dist/components/Modal/PaymentModal.stories.js +0 -57
  150. package/dist/components/Modal/SideModal.stories.js +0 -342
  151. package/dist/components/MultiProgressBar/MultiProgressBar.stories.js +0 -67
  152. package/dist/components/Newsletter/Newsletter.stories.js +0 -16
  153. package/dist/components/NotificationContext/NotificationContext.js +0 -141
  154. package/dist/components/Number/Number.stories.js +0 -92
  155. package/dist/components/Pagination/Pagination.stories.js +0 -83
  156. package/dist/components/Pagination/PaginationControls.stories.js +0 -112
  157. package/dist/components/Payment/PaymentDetailsCard.stories.js +0 -198
  158. package/dist/components/Payment/PaymentDisplay.stories.js +0 -302
  159. package/dist/components/Payment/TimerComponent.stories.js +0 -236
  160. package/dist/components/Process/Process.stories.js +0 -42
  161. package/dist/components/ProfileBadge/ProfileBadge.stories.js +0 -45
  162. package/dist/components/ProfileBox/ProfileBox.stories.js +0 -35
  163. package/dist/components/ProfileHeader/ProfileHeader.js +0 -252
  164. package/dist/components/ProfileHeader/ProfileHeader.styles.js +0 -65
  165. package/dist/components/ProfileStat/ProfileStat.stories.js +0 -66
  166. package/dist/components/ProofOfAddress/ProofOfAddress.styles.js +0 -53
  167. package/dist/components/QRCode/QRCode.stories.js +0 -104
  168. package/dist/components/Radio/Radio.stories.js +0 -73
  169. package/dist/components/RefreshButton/RefreshButton.stories.js +0 -38
  170. package/dist/components/RegisterAlgorand/AlgoAddressName.js +0 -138
  171. package/dist/components/RegisterAlgorand/AlgoAdressSelect.js +0 -443
  172. package/dist/components/RegisterAlgorand/AlgoConnectWallet.js +0 -47
  173. package/dist/components/RegisterAlgorand/AlgoSuccess.js +0 -38
  174. package/dist/components/RegisterAlgorand/Algorand.stories.js +0 -80
  175. package/dist/components/RegisterAlgorand/ChooseWallet.js +0 -97
  176. package/dist/components/RegisterAlgorand/SelectProject.js +0 -89
  177. package/dist/components/RegisterAlgorand/_styles.js +0 -28
  178. package/dist/components/RegisterAlgorand/flow.js +0 -409
  179. package/dist/components/RegisterAlgorand/flowWithMemo.js +0 -410
  180. package/dist/components/RegisterAlgorand/index.js +0 -48
  181. package/dist/components/RegisterConfirmModal/RegisterConfirmModal.stories.js +0 -41
  182. package/dist/components/RegisterEthereum/EthAddressLedger.js +0 -226
  183. package/dist/components/RegisterEthereum/EthAddressMetamask.js +0 -204
  184. package/dist/components/RegisterEthereum/EthAddressName.js +0 -135
  185. package/dist/components/RegisterEthereum/EthConnectLedger.js +0 -194
  186. package/dist/components/RegisterEthereum/EthConnectMetamask.js +0 -35
  187. package/dist/components/RegisterEthereum/EthFinish.js +0 -41
  188. package/dist/components/RegisterEthereum/EthIntro.js +0 -95
  189. package/dist/components/RegisterEthereum/_styles.js +0 -28
  190. package/dist/components/RegisterEthereum/index.js +0 -68
  191. package/dist/components/RegisterModal/RegisterModal.stories.js +0 -49
  192. package/dist/components/RequestDataBox/RequestDataBox.stories.js +0 -37
  193. package/dist/components/RiskQuestionnaire/RiskQuestionnaireContext.js +0 -185
  194. package/dist/components/RiskQuestionnaire/_styles.js +0 -15
  195. package/dist/components/SEO/SEO.stories.js +0 -60
  196. package/dist/components/SideLine/SideLine.stories.js +0 -28
  197. package/dist/components/SigningSubflow/SignSubAddressMetamask.js +0 -137
  198. package/dist/components/SigningSubflow/SignSubConnectLedger.js +0 -150
  199. package/dist/components/SigningSubflow/SignSubConnectMetamask.js +0 -137
  200. package/dist/components/SigningSubflow/SignSubIntro.js +0 -55
  201. package/dist/components/SigningSubflow/SignSubSendLedger.js +0 -150
  202. package/dist/components/SigningSubflow/SignSubSendMetamask.js +0 -62
  203. package/dist/components/SigningSubflow/SignSubTransactionLedger.js +0 -161
  204. package/dist/components/SigningSubflow/SignSubTransactionMetamask.js +0 -166
  205. package/dist/components/SigningSubflow/_styles.js +0 -34
  206. package/dist/components/SigningSubflow/index.js +0 -32
  207. package/dist/components/Slider/Slider.stories.js +0 -68
  208. package/dist/components/Snackbar/Snackbar.stories.js +0 -292
  209. package/dist/components/StatusTag/StatusTag.stories.js +0 -262
  210. package/dist/components/StepController/StepController.stories.js +0 -60
  211. package/dist/components/StepController/StepControllerProgress.stories.js +0 -49
  212. package/dist/components/StepsProgress/StepIndicator.stories.js +0 -153
  213. package/dist/components/StepsProgress/StepsProgress.stories.js +0 -49
  214. package/dist/components/Switch/Switch.stories.js +0 -81
  215. package/dist/components/Tabs/Tabs.stories.js +0 -36
  216. package/dist/components/TabsNav/TabNav.stories.js +0 -40
  217. package/dist/components/TabsNav/TabsNav.stories.js +0 -37
  218. package/dist/components/TeamOverview/TeamOverview.stories.js +0 -76
  219. package/dist/components/TermsModal/TermsModal.stories.js +0 -31
  220. package/dist/components/Text/Headline.stories.js +0 -48
  221. package/dist/components/Text/Text.stories.js +0 -70
  222. package/dist/components/TextLink/TextLink.stories.js +0 -35
  223. package/dist/components/Timeline/Timeline.stories.js +0 -393
  224. package/dist/components/ToDoList/ToDoList.stories.js +0 -133
  225. package/dist/components/ToDoList/ToDoListTask.stories.js +0 -70
  226. package/dist/components/TransactionDetails/TransactionDetails.stories.js +0 -55
  227. package/dist/components/TransactionDetails/TransactionDetailsTable.stories.js +0 -305
  228. package/dist/components/TransactionInfo/TransactionInfo.stories.js +0 -61
  229. package/dist/components/TwoFactorModal/TwoFactorModal.js +0 -100
  230. package/dist/components/VerifyEmailModal/VerifyEmailModal.stories.js +0 -59
  231. package/dist/components/headerHo/HeaderHo.stories.js +0 -35
  232. package/dist/components/icons/Arrow.stories.js +0 -42
  233. package/dist/components/icons/ArrowSimple.stories.js +0 -48
  234. package/dist/components/icons/Check.stories.js +0 -22
  235. package/dist/components/icons/Facebook.stories.js +0 -21
  236. package/dist/components/icons/Facebook_Logo.png +0 -0
  237. package/dist/components/icons/Info.stories.js +0 -16
  238. package/dist/components/icons/Instagram.stories.js +0 -21
  239. package/dist/components/icons/LI-In-Bug.png +0 -0
  240. package/dist/components/icons/LinkIcon.stories.js +0 -21
  241. package/dist/components/icons/LinkedIn.stories.js +0 -16
  242. package/dist/components/icons/Medium.stories.js +0 -16
  243. package/dist/components/icons/Reddit.stories.js +0 -21
  244. package/dist/components/icons/Share.stories.js +0 -16
  245. package/dist/components/icons/Telegram-Logo.png +0 -0
  246. package/dist/components/icons/Telegram.stories.js +0 -16
  247. package/dist/components/icons/Twitter.stories.js +0 -21
  248. package/dist/components/icons/X-logo-black.png +0 -0
  249. package/dist/components/icons/X.stories.js +0 -16
  250. package/dist/components/icons/Youtube.stories.js +0 -21
  251. package/dist/components/icons/youtube_social_circle_red.png +0 -0
  252. package/dist/components/logo/Logo.stories.js +0 -260
  253. package/dist/components/taxId/TaxId.stories.js +0 -50
  254. package/dist/components/video/Video.stories.js +0 -52
  255. package/dist/static/images/document-icon.svg +0 -3
  256. package/dist/static/images/sent-icon.svg +0 -10
@@ -10,7 +10,7 @@ var _FooterMenu = _interopRequireDefault(require("./FooterMenu"));
10
10
  var _Newsletter = _interopRequireDefault(require("../Newsletter/Newsletter"));
11
11
  var _Footer = _interopRequireDefault(require("./Footer"));
12
12
  var _globalVariables = require("../../constants/globalVariables");
13
- const _excluded = ["withNewsLetter", "withFooterMenu", "color", "jobOpeningsNumber", "lemonWayLogo", "dropdownCollapsed"];
13
+ const _excluded = ["withNewsLetter", "withFooterMenu", "color", "jobOpeningsNumber", "lemonWayLogo", "dropdownCollapsed", "footnotes", "footnotesTitle"];
14
14
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
15
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
16
16
  function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
@@ -22,13 +22,17 @@ function FooterLayout(_ref) {
22
22
  color = 'red',
23
23
  jobOpeningsNumber = 0,
24
24
  lemonWayLogo,
25
- dropdownCollapsed
25
+ dropdownCollapsed,
26
+ footnotes,
27
+ footnotesTitle
26
28
  } = _ref,
27
29
  props = _objectWithoutProperties(_ref, _excluded);
28
30
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, withFooterMenu && /*#__PURE__*/_react.default.createElement(_FooterMenu.default, {
29
31
  groups: footerGroups,
30
32
  jobOpeningsNumber: jobOpeningsNumber,
31
- dropdownCollapsed: dropdownCollapsed
33
+ dropdownCollapsed: dropdownCollapsed,
34
+ footnotes: footnotes,
35
+ footnotesTitle: footnotesTitle
32
36
  }), withNewsLetter && /*#__PURE__*/_react.default.createElement(_Newsletter.default, null), /*#__PURE__*/_react.default.createElement(_Footer.default, _extends({
33
37
  color: color,
34
38
  lemonwayLogo: lemonWayLogo
@@ -40,7 +44,12 @@ FooterLayout.propTypes = {
40
44
  color: _propTypes.default.oneOf(['primary', 'red']),
41
45
  jobOpeningsNumber: _propTypes.default.number,
42
46
  lemonwayLogo: _propTypes.default.string,
43
- dropdownCollapsed: _propTypes.default.bool
47
+ dropdownCollapsed: _propTypes.default.bool,
48
+ footnotesTitle: _propTypes.default.string,
49
+ footnotes: _propTypes.default.arrayOf(_propTypes.default.shape({
50
+ number: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
51
+ description: _propTypes.default.string
52
+ }))
44
53
  };
45
54
  var _default = exports.default = FooterLayout;
46
55
  const footerGroups = exports.footerGroups = [{
@@ -78,9 +78,12 @@ const FooterMenu = _ref2 => {
78
78
  let {
79
79
  groups,
80
80
  jobOpeningsNumber = 0,
81
- dropdownCollapsed
81
+ dropdownCollapsed,
82
+ footnotes,
83
+ footnotesTitle = 'Disclosures'
82
84
  } = _ref2;
83
85
  const isMobile = (0, _customHooks.useMobileView)(_rwd.sizes.MLarge);
86
+ const hasFootnotes = Array.isArray(footnotes) && footnotes.length > 0;
84
87
 
85
88
  // "New to STOKR" needs to be open by default
86
89
  const [activeGroups, setactiveGroups] = _react.default.useState(() => {
@@ -137,10 +140,23 @@ const FooterMenu = _ref2 => {
137
140
  style: {
138
141
  marginLeft: '4px'
139
142
  }
140
- }, jobOpeningsNumber))))))))));
143
+ }, jobOpeningsNumber))))))))), hasFootnotes && /*#__PURE__*/_react.default.createElement(_FooterMenu.Footnotes, null, /*#__PURE__*/_react.default.createElement(_FooterMenu.FootnotesText, null, footnotesTitle), footnotes.map((note, index) => {
144
+ var _note$number;
145
+ return /*#__PURE__*/_react.default.createElement(_FooterMenu.FootnotesItem, {
146
+ key: "".concat(note.number || index, "-").concat(note.description || 'note')
147
+ }, /*#__PURE__*/_react.default.createElement(_FooterMenu.FootnotesText, {
148
+ isNumber: true
149
+ }, (_note$number = note.number) !== null && _note$number !== void 0 ? _note$number : index + 1), /*#__PURE__*/_react.default.createElement(_FooterMenu.FootnotesText, null, note.description));
150
+ })));
141
151
  };
142
152
  FooterMenu.propTypes = {
143
153
  groups: _propTypes.default.arrayOf(Object).isRequired,
144
- jobOpeningsNumber: _propTypes.default.number
154
+ jobOpeningsNumber: _propTypes.default.number,
155
+ dropdownCollapsed: _propTypes.default.bool,
156
+ footnotesTitle: _propTypes.default.string,
157
+ footnotes: _propTypes.default.arrayOf(_propTypes.default.shape({
158
+ number: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
159
+ description: _propTypes.default.string
160
+ }))
145
161
  };
146
162
  var _default = exports.default = FooterMenu;
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.TitleContainer = exports.Title = exports.SocialLink = exports.Link = exports.Items = exports.Item = exports.HiringTotalNumber = exports.Groups = exports.Group = exports.Container = exports.ArrowDown = void 0;
6
+ exports.TitleContainer = exports.Title = exports.SocialLink = exports.Link = exports.Items = exports.Item = exports.HiringTotalNumber = exports.Groups = exports.Group = exports.FootnotesText = exports.FootnotesItem = exports.Footnotes = exports.Container = exports.ArrowDown = void 0;
7
7
  var _styledComponents = _interopRequireDefault(require("styled-components"));
8
8
  var _colors = _interopRequireDefault(require("../../styles/colors"));
9
9
  var _rwd = _interopRequireDefault(require("../../styles/rwd"));
@@ -54,4 +54,16 @@ const ArrowDown = exports.ArrowDown = _styledComponents.default.i.attrs({
54
54
  }).withConfig({
55
55
  displayName: "FooterMenustyles__ArrowDown",
56
56
  componentId: "sc-40ddqf-10"
57
- })(["&&&{top:50%;right:0;transition:0.3s transform;transform:rotate(0);text-align:center;font-size:16px;line-height:16px;height:16px;margin-top:-8px;", "}", ""], props => props.isOpened && "\n transform: rotate(180deg);\n ", props => !props.displayAlways && "\n @media screen and (min-width: 992px) {\n display: none;\n }\n ");
57
+ })(["&&&{top:50%;right:0;transition:0.3s transform;transform:rotate(0);text-align:center;font-size:16px;line-height:16px;height:16px;margin-top:-8px;", "}", ""], props => props.isOpened && "\n transform: rotate(180deg);\n ", props => !props.displayAlways && "\n @media screen and (min-width: 992px) {\n display: none;\n }\n ");
58
+ const Footnotes = exports.Footnotes = _styledComponents.default.div.withConfig({
59
+ displayName: "FooterMenustyles__Footnotes",
60
+ componentId: "sc-40ddqf-11"
61
+ })(["padding:0px 48px 40px;display:flex;flex-direction:column;gap:6px;@media screen and (min-width:992px){padding:0px 65px 48px;}"]);
62
+ const FootnotesText = exports.FootnotesText = _styledComponents.default.div.withConfig({
63
+ displayName: "FooterMenustyles__FootnotesText",
64
+ componentId: "sc-40ddqf-12"
65
+ })(["font-family:'Open Sans';font-weight:300;font-size:11px;line-height:16px;letter-spacing:0.4px;color:", ";", ""], _theme.default.cBlack, props => props.isNumber && "\n font-size: 9px;\n\n ");
66
+ const FootnotesItem = exports.FootnotesItem = _styledComponents.default.div.withConfig({
67
+ displayName: "FooterMenustyles__FootnotesItem",
68
+ componentId: "sc-40ddqf-13"
69
+ })(["display:flex;gap:6px;"]);
@@ -23,7 +23,7 @@ const StyledSubMenu = exports.StyledSubMenu = _styledComponents.default.div.with
23
23
  const StyledHeader = exports.StyledHeader = _styledComponents.default.header.withConfig({
24
24
  displayName: "Headerstyles__StyledHeader",
25
25
  componentId: "sc-hifrdy-1"
26
- })(["z-index:1000;position:relative;color:", ";border-bottom:1px solid rgb(237,237,237);", ""], _colors.default.black, _rwd.default.MLarge(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: ", "px;\n background-color: ", ";\n box-shadow: inset 0 -1px 0 0 ", ";\n\n ", "\n "])), _spacing.default.headerHeight, _colors.default.white, _colors.default.lightGrey, props => props.noFixedPosition && "\n position:initial;\n "));
26
+ })(["z-index:1000;position:relative;color:", ";border-bottom:1px solid rgb(237,237,237);", ""], _colors.default.black, _rwd.default.MLarge(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: ", "px;\n background-color: ", ";\n box-shadow: inset 0 -1px 0 0 ", ";\n\n /* Compensate for scrollbar when modal is open */\n padding-right: var(--scrollbar-compensation, 0px);\n\n ", "\n "])), _spacing.default.headerHeight, _colors.default.white, _colors.default.lightGrey, props => props.noFixedPosition && "\n position:initial;\n "));
27
27
  const HeaderInner = exports.HeaderInner = _styledComponents.default.div.withConfig({
28
28
  displayName: "Headerstyles__HeaderInner",
29
29
  componentId: "sc-hifrdy-2"
@@ -6,68 +6,172 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = exports.DatePickerInput = void 0;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _dateFns = require("date-fns");
9
10
  var _reactDayPicker = require("react-day-picker");
10
11
  var _Input = require("./Input.styles");
11
12
  var _DatePickerInput = require("./DatePickerInput.styles");
13
+ var _customHooks = require("../../utils/customHooks");
14
+ const _excluded = ["onChange", "name", "value", "id", "label", "placeholder", "error", "touched", "dashboard", "dateFormat"];
12
15
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
16
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
17
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
18
+ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
19
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
20
+ const DATE_FORMAT = 'MMM dd, yyyy';
14
21
  const DatePickerInput = props => {
15
22
  const {
16
- id,
17
- name,
18
- label,
19
- placeholder,
20
- value,
21
- error,
22
- touched,
23
- dashboard
24
- } = props;
23
+ onChange,
24
+ name,
25
+ value,
26
+ id,
27
+ label,
28
+ placeholder,
29
+ error,
30
+ touched,
31
+ dashboard,
32
+ dateFormat = DATE_FORMAT
33
+ } = props,
34
+ dayPickerProps = _objectWithoutProperties(props, _excluded);
25
35
  const [labelUp, setLabelUp] = (0, _react.useState)(false);
36
+ const [inputValue, setInputValue] = (0, _react.useState)('');
37
+ const [month, setMonth] = (0, _react.useState)(new Date());
38
+ const [selectedDate, setSelectedDate] = (0, _react.useState)(undefined);
39
+ const {
40
+ ref,
41
+ isComponentVisible,
42
+ setIsComponentVisible
43
+ } = (0, _customHooks.useComponentVisible)(false);
44
+
45
+ // Sync external value prop with internal state
46
+ (0, _react.useEffect)(() => {
47
+ if (value) {
48
+ const dateValue = value instanceof Date ? value : new Date(value);
49
+ if ((0, _dateFns.isValid)(dateValue)) {
50
+ setSelectedDate(dateValue);
51
+ setMonth(dateValue);
52
+ setInputValue((0, _dateFns.format)(dateValue, dateFormat));
53
+ }
54
+ } else {
55
+ setSelectedDate(undefined);
56
+ setInputValue('');
57
+ }
58
+ }, [value, dateFormat]);
59
+
60
+ // Update label position
26
61
  (0, _react.useEffect)(() => {
27
- checkLabel(false);
28
- }, []);
29
- const onChange = value => {
30
- props.onChange && props.onChange(null, {
62
+ setLabelUp(!!inputValue || isComponentVisible);
63
+ }, [inputValue, isComponentVisible]);
64
+ const handleInputChange = e => {
65
+ const newValue = e.target.value;
66
+ setInputValue(newValue);
67
+
68
+ // Try to parse the input value
69
+ const parsedDate = (0, _dateFns.parse)(newValue, dateFormat, new Date());
70
+ if ((0, _dateFns.isValid)(parsedDate)) {
71
+ setSelectedDate(parsedDate);
72
+ setMonth(parsedDate);
73
+ onChange && onChange(parsedDate, {
74
+ name,
75
+ value: parsedDate
76
+ });
77
+ } else {
78
+ setSelectedDate(undefined);
79
+ }
80
+ };
81
+ const handleDaySelect = date => {
82
+ if (date) {
83
+ setSelectedDate(date);
84
+ setMonth(date);
85
+ setInputValue((0, _dateFns.format)(date, dateFormat));
86
+ onChange && onChange(date, {
87
+ name,
88
+ value: date
89
+ });
90
+ } else {
91
+ setSelectedDate(undefined);
92
+ setInputValue('');
93
+ onChange && onChange(undefined, {
94
+ name,
95
+ value: undefined
96
+ });
97
+ }
98
+ setIsComponentVisible(false);
99
+ };
100
+ const handleClear = e => {
101
+ e.stopPropagation();
102
+ setSelectedDate(undefined);
103
+ setInputValue('');
104
+ onChange && onChange(undefined, {
31
105
  name,
32
- value
106
+ value: undefined
33
107
  });
108
+ setIsComponentVisible(false);
109
+ };
110
+ const handleInputClick = () => {
111
+ setIsComponentVisible(true);
112
+ };
113
+ const handleInputFocus = () => {
114
+ setLabelUp(true);
34
115
  };
35
- const checkLabel = focus => {
36
- setLabelUp(focus || !!value);
116
+ const handleInputBlur = () => {
117
+ if (!inputValue) {
118
+ setLabelUp(false);
119
+ }
37
120
  };
38
- return /*#__PURE__*/_react.default.createElement(_Input.Wrapper, null, label && /*#__PURE__*/_react.default.createElement(_Input.Label, {
121
+ return /*#__PURE__*/_react.default.createElement(_Input.Wrapper, {
122
+ ref: ref
123
+ }, label && /*#__PURE__*/_react.default.createElement(_Input.Label, {
39
124
  isUp: labelUp,
40
125
  error: error && touched,
41
- htmlFor: id
126
+ htmlFor: id,
127
+ active: isComponentVisible
42
128
  }, label), /*#__PURE__*/_react.default.createElement(_DatePickerInput.DatePickerOverlay, {
43
- onClick: () => checkLabel(true),
44
129
  dashboard: dashboard
45
- }, /*#__PURE__*/_react.default.createElement(_reactDayPicker.DayPicker, {
130
+ }, /*#__PURE__*/_react.default.createElement(_DatePickerInput.InputWrapper, null, /*#__PURE__*/_react.default.createElement(_DatePickerInput.DateInput, {
46
131
  id: id,
47
132
  name: name,
48
- value: value,
133
+ type: "text",
134
+ value: inputValue,
49
135
  placeholder: placeholder,
50
- onDayChange: onChange,
51
- error: error
52
- })));
136
+ onChange: handleInputChange,
137
+ onClick: handleInputClick,
138
+ onFocus: handleInputFocus,
139
+ onBlur: handleInputBlur,
140
+ dashboard: dashboard,
141
+ autoComplete: "off"
142
+ }), selectedDate && /*#__PURE__*/_react.default.createElement(_DatePickerInput.ClearButton, {
143
+ type: "button",
144
+ onClick: handleClear,
145
+ dashboard: dashboard,
146
+ title: "Clear date"
147
+ }, "\u2715")), isComponentVisible && /*#__PURE__*/_react.default.createElement(_reactDayPicker.DayPicker, _extends({
148
+ mode: "single",
149
+ month: month,
150
+ onMonthChange: setMonth,
151
+ selected: selectedDate,
152
+ onSelect: handleDaySelect
153
+ }, dayPickerProps))));
53
154
  };
54
155
  exports.DatePickerInput = DatePickerInput;
55
156
  DatePickerInput.propTypes = {
56
- id: _propTypes.default.string.isRequired,
57
- name: _propTypes.default.string.isRequired,
157
+ id: _propTypes.default.string,
158
+ name: _propTypes.default.string,
58
159
  label: _propTypes.default.string,
59
160
  placeholder: _propTypes.default.string,
60
161
  error: _propTypes.default.bool,
61
162
  touched: _propTypes.default.bool,
62
- value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.instanceOf(Date)]).isRequired,
63
- onChange: _propTypes.default.func.isRequired,
64
- dashboard: _propTypes.default.bool
163
+ value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.instanceOf(Date)]),
164
+ onChange: _propTypes.default.func,
165
+ dashboard: _propTypes.default.bool,
166
+ dateFormat: _propTypes.default.string
65
167
  };
66
168
  DatePickerInput.defaultProps = {
67
169
  label: '',
68
170
  placeholder: '',
69
171
  error: false,
70
172
  touched: false,
71
- dashboard: false
173
+ dashboard: false,
174
+ value: undefined,
175
+ dateFormat: DATE_FORMAT
72
176
  };
73
177
  var _default = exports.default = DatePickerInput;
@@ -3,13 +3,26 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = exports.DatePickerOverlay = void 0;
6
+ exports.default = exports.InputWrapper = exports.DatePickerOverlay = exports.DateInput = exports.ClearButton = void 0;
7
7
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
8
8
  var _theme = _interopRequireDefault(require("../../styles/theme"));
9
+ var _colors = _interopRequireDefault(require("../../styles/colors"));
9
10
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
11
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
12
+ const InputWrapper = exports.InputWrapper = _styledComponents.default.div.withConfig({
13
+ displayName: "DatePickerInputstyles__InputWrapper",
14
+ componentId: "sc-102qruz-0"
15
+ })(["position:relative;display:flex;align-items:center;"]);
16
+ const ClearButton = exports.ClearButton = _styledComponents.default.button.withConfig({
17
+ displayName: "DatePickerInputstyles__ClearButton",
18
+ componentId: "sc-102qruz-1"
19
+ })(["position:absolute;right:0;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;padding:4px 8px;font-size:16px;color:", ";line-height:1;display:flex;align-items:center;justify-content:center;&:hover{color:", ";}", ""], _colors.default.lightGrey, _colors.default.black, props => props.dashboard && (0, _styledComponents.css)(["right:0;padding:2px 4px;font-size:14px;"]));
20
+ const DateInput = exports.DateInput = _styledComponents.default.input.withConfig({
21
+ displayName: "DatePickerInputstyles__DateInput",
22
+ componentId: "sc-102qruz-2"
23
+ })(["font-family:'Open sans';display:block;width:100%;height:40px;font-weight:600;font-size:12px;line-height:18px;padding:13px 0;padding-bottom:7px;border-radius:0;box-shadow:none;outline:0;border:0;border-top:1px solid transparent;border-bottom:1px solid ", ";color:", ";background-color:transparent;transition:border-color 0.2s;&:focus,&:hover{box-shadow:none;border-top-color:transparent;border-bottom-color:", ";}&::placeholder{color:transparent;opacity:0;}", ""], _theme.default.cGrey, _theme.default.cBlack, _theme.default.cPrimary, props => props.dashboard && (0, _styledComponents.css)(["border:0;padding:0;height:22px;font-family:'Open Sans';font-weight:300;font-size:14px;line-height:22px;letter-spacing:0.53px;text-transform:normal;color:", ";&::placeholder{color:", ";opacity:1;}"], _theme.default.cBlack, _theme.default.cGrey2));
11
24
  const DatePickerOverlay = exports.DatePickerOverlay = _styledComponents.default.div.withConfig({
12
25
  displayName: "DatePickerInputstyles__DatePickerOverlay",
13
- componentId: "sc-102qruz-0"
14
- })(["&&& > .DayPickerInput{display:block;position:relative;width:100%;}&&& > .DayPickerInput-OverlayWrapper{z-index:100;}&&& > .DayPickerInput > input{font-family:'Open sans';display:block;width:100%;height:40px;font-weight:600;font-size:12px;line-height:18px;padding:13px 0;padding-bottom:7px;border-radius:0;box-shadow:none;outline:0;border:0;border-top:1px solid transparent;border-bottom:1px solid ", ";color:", ";background-color:transparent;transition:border-color 0.2s;&:focus,&:hover{box-shadow:none;border-top-color:transparent;border-bottom-color:", ";}&::placeholder{color:transparent;opacity:0;}}", ""], props => _theme.default.cGrey, props => _theme.default.cBlack, props => _theme.default.cPrimary, props => props.dashboard && (0, _styledComponents.css)(["&&& > .DayPickerInput > input{border:0;padding:0;height:22px;font-family:'Open Sans';font-weight:300;font-size:14px;line-height:22px;letter-spacing:0.53px;text-transform:normal;color:", ";&::placeholder{color:", ";opacity:1;}}"], _theme.default.cBlack, _theme.default.cGrey2));
26
+ componentId: "sc-102qruz-3"
27
+ })(["position:relative;.rdp{position:absolute;z-index:20;background-color:white;margin:0;box-shadow:0 4px 12px rgba(0,0,0,0.15);padding:12px;border-radius:4px;min-width:fit-content;--rdp-accent-color:", ";--rdp-accent-background-color:", ";--rdp-day-height:32px;--rdp-day-width:32px;--rdp-selected-font:600 13px 'Open Sans',sans-serif;--rdp-weekday-font:600 11px 'Open Sans',sans-serif;--rdp-font-family:'Open Sans',sans-serif;--rdp-selected-border:none;--rdp-outside-opacity:0.4;}.rdp-day{font-size:13px;font-weight:400;}.rdp-selected .rdp-day_button,.rdp-day_button[aria-selected='true']{background-color:", " !important;color:white !important;border:none !important;outline:none !important;}.rdp-today:not(.rdp-selected) .rdp-day_button{font-weight:700;color:", ";}.rdp-weekday{font-size:11px;font-weight:700;text-transform:uppercase;color:", ";}.rdp-month_caption{font-weight:600;}.rdp-chevron{fill:", ";&:hover{fill:", ";background:transparent;}}"], _colors.default.blue, _colors.default.blue, _colors.default.blue, _colors.default.blue, _colors.default.black, _colors.default.grey2, _colors.default.black);
15
28
  var _default = exports.default = DatePickerOverlay;
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = exports.MultiSelect = void 0;
6
+ exports.default = exports.OptionLabel = exports.MultiSelect = exports.CheckboxWrapperDiv = exports.CheckboxDiv = void 0;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
9
  var _reactSelect = _interopRequireWildcard(require("react-select"));
@@ -28,15 +28,17 @@ const CountBadge = _styledComponents.default.span.withConfig({
28
28
  displayName: "MultiSelect__CountBadge",
29
29
  componentId: "sc-1udb3q8-0"
30
30
  })(["display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 6px;background-color:", ";color:", ";border-radius:10px;font-size:12px;font-weight:600;margin-left:8px;"], _colors.default.black, _colors.default.white);
31
- const CheckboxWrapper = _styledComponents.default.div.withConfig({
32
- displayName: "MultiSelect__CheckboxWrapper",
31
+
32
+ // Exported for reuse in TableFilterDropdown
33
+ const CheckboxWrapperDiv = exports.CheckboxWrapperDiv = _styledComponents.default.div.withConfig({
34
+ displayName: "MultiSelect__CheckboxWrapperDiv",
33
35
  componentId: "sc-1udb3q8-1"
34
36
  })(["display:flex;align-items:center;padding:16px 12px;cursor:pointer;transition:background-color 0.15s ease;&:hover{background-color:", ";}"], _colors.default.grey);
35
- const Checkbox = _styledComponents.default.div.withConfig({
36
- displayName: "MultiSelect__Checkbox",
37
+ const CheckboxDiv = exports.CheckboxDiv = _styledComponents.default.div.withConfig({
38
+ displayName: "MultiSelect__CheckboxDiv",
37
39
  componentId: "sc-1udb3q8-2"
38
40
  })(["width:14px;height:14px;border:1px solid ", ";border-radius:3px;margin-right:12px;display:flex;align-items:center;justify-content:center;background-color:", ";transition:all 0.15s ease;flex-shrink:0;svg{opacity:", ";transition:opacity 0.15s ease;width:8px;height:8px;}svg path{stroke:", ";}"], props => props.isSelected ? _colors.default.black : _colors.default.grey2, props => props.isSelected ? _colors.default.white : _colors.default.white, props => props.isSelected ? 1 : 0, _colors.default.blue);
39
- const OptionLabel = _styledComponents.default.span.withConfig({
41
+ const OptionLabel = exports.OptionLabel = _styledComponents.default.span.withConfig({
40
42
  displayName: "MultiSelect__OptionLabel",
41
43
  componentId: "sc-1udb3q8-3"
42
44
  })(["font-size:14px;color:", ";font-weight:400;letter-spacing:0.6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0;"], _colors.default.black);
@@ -53,9 +55,9 @@ const CheckboxOption = props => {
53
55
  innerRef,
54
56
  innerProps
55
57
  } = props;
56
- return /*#__PURE__*/_react.default.createElement(CheckboxWrapper, _extends({
58
+ return /*#__PURE__*/_react.default.createElement(CheckboxWrapperDiv, _extends({
57
59
  ref: innerRef
58
- }, innerProps), /*#__PURE__*/_react.default.createElement(Checkbox, {
60
+ }, innerProps), /*#__PURE__*/_react.default.createElement(CheckboxDiv, {
59
61
  isSelected: isSelected
60
62
  }, /*#__PURE__*/_react.default.createElement(_checkIcon.ReactComponent, null)), /*#__PURE__*/_react.default.createElement(OptionLabel, null, label));
61
63
  };
@@ -0,0 +1,228 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.TableFilterDropdown = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactDom = require("react-dom");
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
11
+ var _colors = _interopRequireDefault(require("../../styles/colors"));
12
+ var _checkIcon = require("../../static/images/check-icon.svg");
13
+ var _filterIcon = require("../../static/images/filter-icon.svg");
14
+ var _MultiSelect = require("./MultiSelect");
15
+ const _excluded = ["label", "options", "value", "onChange", "icon", "minWidth", "maxWidth", "menuAlign", "menuTop", "showClearAll", "clearAllText"];
16
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
17
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
18
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
19
+ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
20
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
21
+ // Trigger container - matches table header styling
22
+ const TriggerContainer = _styledComponents.default.div.withConfig({
23
+ displayName: "TableFilterDropdown__TriggerContainer",
24
+ componentId: "sc-z6x0ne-0"
25
+ })(["display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;user-select:none;white-space:nowrap;"]);
26
+ const IconWrapper = _styledComponents.default.div.withConfig({
27
+ displayName: "TableFilterDropdown__IconWrapper",
28
+ componentId: "sc-z6x0ne-1"
29
+ })(["display:flex;align-items:center;justify-content:center;width:16px;height:16px;position:relative;svg{width:14px;height:14px;}svg path,svg line,svg circle,svg rect{stroke:currentColor;}"]);
30
+
31
+ // Active indicator dot
32
+ const ActiveDot = _styledComponents.default.div.withConfig({
33
+ displayName: "TableFilterDropdown__ActiveDot",
34
+ componentId: "sc-z6x0ne-2"
35
+ })(["position:absolute;top:-2px;right:-2px;width:6px;height:6px;background-color:", ";border-radius:50%;"], _colors.default.blue);
36
+
37
+ // Dropdown container
38
+ const DropdownContainer = _styledComponents.default.div.withConfig({
39
+ displayName: "TableFilterDropdown__DropdownContainer",
40
+ componentId: "sc-z6x0ne-3"
41
+ })(["position:relative;display:inline-block;"]);
42
+
43
+ // Dropdown menu - now rendered via portal with fixed positioning
44
+ const DropdownMenu = _styledComponents.default.div.withConfig({
45
+ displayName: "TableFilterDropdown__DropdownMenu",
46
+ componentId: "sc-z6x0ne-4"
47
+ })(["position:fixed;z-index:10000;min-width:150px;max-width:300px;background-color:", ";border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,0.15);border:1px solid ", ";overflow:hidden;"], _colors.default.white, _colors.default.lightGrey);
48
+ const OptionsList = _styledComponents.default.div.withConfig({
49
+ displayName: "TableFilterDropdown__OptionsList",
50
+ componentId: "sc-z6x0ne-5"
51
+ })(["max-height:300px;overflow-y:auto;"]);
52
+ const ClearAllOption = _styledComponents.default.div.withConfig({
53
+ displayName: "TableFilterDropdown__ClearAllOption",
54
+ componentId: "sc-z6x0ne-6"
55
+ })(["display:flex;align-items:center;padding:16px 12px;cursor:pointer;font-size:14px;font-weight:400;letter-spacing:0.6px;color:", ";border-top:1px solid ", ";transition:background-color 0.15s ease;&:hover{background-color:", ";}"], _colors.default.blue, _colors.default.lightGrey, _colors.default.grey);
56
+ const TableFilterDropdown = _ref => {
57
+ let {
58
+ label,
59
+ options,
60
+ value = [],
61
+ onChange,
62
+ icon: CustomIcon,
63
+ minWidth,
64
+ maxWidth,
65
+ menuAlign = 'left',
66
+ menuTop = 8,
67
+ showClearAll = false,
68
+ clearAllText = 'Clear all'
69
+ } = _ref,
70
+ props = _objectWithoutProperties(_ref, _excluded);
71
+ const [isOpen, setIsOpen] = (0, _react.useState)(false);
72
+ const [menuPosition, setMenuPosition] = (0, _react.useState)({
73
+ top: 0,
74
+ left: 0
75
+ });
76
+ const containerRef = (0, _react.useRef)(null);
77
+ const triggerRef = (0, _react.useRef)(null);
78
+ const menuRef = (0, _react.useRef)(null);
79
+ const hasActiveFilters = value.length > 0;
80
+
81
+ // Calculate menu position based on trigger element
82
+ const updateMenuPosition = (0, _react.useCallback)(() => {
83
+ if (!triggerRef.current) return;
84
+ const triggerRect = triggerRef.current.getBoundingClientRect();
85
+ const menuWidth = minWidth || 150;
86
+ let left = triggerRect.left;
87
+ if (menuAlign === 'right') {
88
+ left = triggerRect.right - menuWidth;
89
+ }
90
+
91
+ // Ensure menu doesn't go off-screen horizontally
92
+ const viewportWidth = window.innerWidth;
93
+ if (left + menuWidth > viewportWidth - 10) {
94
+ left = viewportWidth - menuWidth - 10;
95
+ }
96
+ if (left < 10) {
97
+ left = 10;
98
+ }
99
+ setMenuPosition({
100
+ top: triggerRect.bottom + menuTop,
101
+ left: left
102
+ });
103
+ }, [menuAlign, menuTop, minWidth]);
104
+
105
+ // Update position when menu opens and on scroll/resize
106
+ (0, _react.useEffect)(() => {
107
+ if (isOpen) {
108
+ updateMenuPosition();
109
+ const handleScrollOrResize = () => {
110
+ updateMenuPosition();
111
+ };
112
+ window.addEventListener('scroll', handleScrollOrResize, true);
113
+ window.addEventListener('resize', handleScrollOrResize);
114
+ return () => {
115
+ window.removeEventListener('scroll', handleScrollOrResize, true);
116
+ window.removeEventListener('resize', handleScrollOrResize);
117
+ };
118
+ }
119
+ }, [isOpen, updateMenuPosition]);
120
+
121
+ // Close dropdown when clicking outside or pressing Escape
122
+ (0, _react.useEffect)(() => {
123
+ if (!isOpen) return;
124
+ const handleClickOutside = event => {
125
+ const clickedOutsideContainer = containerRef.current && !containerRef.current.contains(event.target);
126
+ const clickedOutsideMenu = menuRef.current && !menuRef.current.contains(event.target);
127
+ if (clickedOutsideContainer && clickedOutsideMenu) {
128
+ setIsOpen(false);
129
+ }
130
+ };
131
+ const handleEscape = event => {
132
+ if (event.key === 'Escape') {
133
+ setIsOpen(false);
134
+ }
135
+ };
136
+ document.addEventListener('mousedown', handleClickOutside);
137
+ document.addEventListener('keydown', handleEscape);
138
+ return () => {
139
+ document.removeEventListener('mousedown', handleClickOutside);
140
+ document.removeEventListener('keydown', handleEscape);
141
+ };
142
+ }, [isOpen]);
143
+ const handleTriggerClick = (0, _react.useCallback)(e => {
144
+ e.stopPropagation();
145
+ setIsOpen(prev => !prev);
146
+ }, []);
147
+ const handleOptionClick = (0, _react.useCallback)((optionValue, e) => {
148
+ e.stopPropagation();
149
+ const newValue = value.includes(optionValue) ? value.filter(v => v !== optionValue) : [...value, optionValue];
150
+ onChange === null || onChange === void 0 || onChange(newValue);
151
+ }, [value, onChange]);
152
+ const handleClearAll = (0, _react.useCallback)(e => {
153
+ e.stopPropagation();
154
+ onChange === null || onChange === void 0 || onChange([]);
155
+ }, [onChange]);
156
+ const IconComponent = CustomIcon || _filterIcon.ReactComponent;
157
+
158
+ // Render menu in portal
159
+ const renderMenu = () => {
160
+ if (!isOpen) return null;
161
+ const menu = /*#__PURE__*/_react.default.createElement(DropdownMenu, {
162
+ ref: menuRef,
163
+ style: {
164
+ top: menuPosition.top,
165
+ left: menuPosition.left,
166
+ minWidth: minWidth || 150,
167
+ maxWidth: maxWidth || 300
168
+ }
169
+ }, /*#__PURE__*/_react.default.createElement(OptionsList, null, options.map(option => {
170
+ const isSelected = value.includes(option.value);
171
+ return /*#__PURE__*/_react.default.createElement(_MultiSelect.CheckboxWrapperDiv, {
172
+ key: option.value,
173
+ onClick: e => handleOptionClick(option.value, e)
174
+ }, /*#__PURE__*/_react.default.createElement(_MultiSelect.CheckboxDiv, {
175
+ isSelected: isSelected
176
+ }, /*#__PURE__*/_react.default.createElement(_checkIcon.ReactComponent, null)), /*#__PURE__*/_react.default.createElement(_MultiSelect.OptionLabel, null, option.label));
177
+ })), showClearAll && hasActiveFilters && /*#__PURE__*/_react.default.createElement(ClearAllOption, {
178
+ onClick: handleClearAll
179
+ }, clearAllText));
180
+ return /*#__PURE__*/(0, _reactDom.createPortal)(menu, document.body);
181
+ };
182
+ return /*#__PURE__*/_react.default.createElement(DropdownContainer, _extends({
183
+ ref: containerRef
184
+ }, props), /*#__PURE__*/_react.default.createElement(TriggerContainer, {
185
+ ref: triggerRef,
186
+ onClick: handleTriggerClick,
187
+ "data-clickable": "true"
188
+ }, label && /*#__PURE__*/_react.default.createElement("span", null, label), /*#__PURE__*/_react.default.createElement(IconWrapper, null, /*#__PURE__*/_react.default.createElement(IconComponent, null), hasActiveFilters && /*#__PURE__*/_react.default.createElement(ActiveDot, null))), renderMenu());
189
+ };
190
+ exports.TableFilterDropdown = TableFilterDropdown;
191
+ TableFilterDropdown.propTypes = {
192
+ /** Label text displayed next to the filter icon */
193
+ label: _propTypes.default.string,
194
+ /** Array of options to display */
195
+ options: _propTypes.default.arrayOf(_propTypes.default.shape({
196
+ value: _propTypes.default.string.isRequired,
197
+ label: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.node]).isRequired
198
+ })).isRequired,
199
+ /** Array of selected values */
200
+ value: _propTypes.default.arrayOf(_propTypes.default.string),
201
+ /** Callback when selection changes: (newValues) => void */
202
+ onChange: _propTypes.default.func,
203
+ /** Custom icon component (defaults to FilterIcon) */
204
+ icon: _propTypes.default.elementType,
205
+ /** Minimum width of the dropdown menu */
206
+ minWidth: _propTypes.default.number,
207
+ /** Maximum width of the dropdown menu */
208
+ maxWidth: _propTypes.default.number,
209
+ /** Alignment of the dropdown menu */
210
+ menuAlign: _propTypes.default.oneOf(['left', 'right']),
211
+ /** Top offset for the dropdown menu in pixels (default: 8) */
212
+ menuTop: _propTypes.default.number,
213
+ /** Show "Clear all" option at the bottom of the list */
214
+ showClearAll: _propTypes.default.bool,
215
+ /** Custom text for the "Clear all" option */
216
+ clearAllText: _propTypes.default.string
217
+ };
218
+ TableFilterDropdown.defaultProps = {
219
+ value: [],
220
+ onChange: () => {},
221
+ minWidth: 150,
222
+ maxWidth: 300,
223
+ menuAlign: 'left',
224
+ menuTop: 8,
225
+ showClearAll: false,
226
+ clearAllText: 'Clear all'
227
+ };
228
+ var _default = exports.default = TableFilterDropdown;