@stokr/components-library 2.3.65-beta.8 → 2.3.65

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 (255) hide show
  1. package/dist/components/2FA/login-with-otp-flow.js +1 -1
  2. package/dist/components/2FA/main-flow.js +40 -12
  3. package/dist/components/AdminDashboard/Table/ReactTable.js +123 -7
  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/favicon.ico +0 -0
  35. package/dist/index.css +1 -0
  36. package/dist/index.js +44 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/index.umd.cjs +10371 -0
  39. package/dist/index.umd.cjs.map +1 -0
  40. package/dist/logo192.png +0 -0
  41. package/dist/logo512.png +0 -0
  42. package/dist/manifest.json +25 -0
  43. package/dist/robots.txt +3 -0
  44. package/dist/static/animations/checked.lottie +0 -0
  45. package/dist/static/animations/progress.lottie +0 -0
  46. package/dist/static/images/add-folder-icon.svg +5 -0
  47. package/dist/static/images/background3.png +0 -0
  48. package/dist/static/images/bmn2-logo.svg +9 -9
  49. package/dist/static/images/checkmark-circle-icon.svg +4 -0
  50. package/dist/static/images/close-circle-icon.svg +3 -0
  51. package/dist/static/images/doc-icon.svg +4 -0
  52. package/dist/static/images/filter-icon.svg +6 -0
  53. package/dist/styles/colors.js +2 -1
  54. package/dist/styles/global.js +1 -1
  55. package/dist/utils/customHooks.js +24 -2
  56. package/dist/utils/formatCurrencyValue.js +9 -2
  57. package/package.json +4 -2
  58. package/dist/components/2FA/EnterCode.stories.js +0 -35
  59. package/dist/components/2FA/disable-2fa-flow.stories.js +0 -31
  60. package/dist/components/2FA/enable-2fa-flow.stories.js +0 -31
  61. package/dist/components/2FA/login-with-otp-flow.stories.js +0 -31
  62. package/dist/components/2FA/main-flow.stories.js +0 -162
  63. package/dist/components/AccountBalance/AccountBalance.stories.js +0 -83
  64. package/dist/components/AdminDashboard/Table/ReactTable.stories.js +0 -406
  65. package/dist/components/AgreementItem/AgreementItem.stories.js +0 -105
  66. package/dist/components/AnalyticGraphs/Analytic.js +0 -541
  67. package/dist/components/AnalyticGraphs/Analytic.styles.js +0 -25
  68. package/dist/components/BackButton/BackButton.stories.js +0 -32
  69. package/dist/components/Background/Background.stories.js +0 -75
  70. package/dist/components/BarChart/BarChart.js +0 -263
  71. package/dist/components/BarChart/BarChart.stories.js +0 -66
  72. package/dist/components/BarChart/BarChart.styles.js +0 -26
  73. package/dist/components/BarChartLegend/BarChartLegend.js +0 -79
  74. package/dist/components/BarChartLegend/BarChartLegend.styles.js +0 -21
  75. package/dist/components/BasicTable/BasicTable.stories.js +0 -59
  76. package/dist/components/BlogPost/BlogPost.stories.js +0 -160
  77. package/dist/components/Button/Button.stories.js +0 -146
  78. package/dist/components/Button/GlareButton.stories.js +0 -132
  79. package/dist/components/CapitalRaisedSummary/CapitalRaisedSummery.stories.js +0 -42
  80. package/dist/components/ChartBox/ChartBox.js +0 -41
  81. package/dist/components/ChartBox/ChartBox.stories.js +0 -17
  82. package/dist/components/ChartBox/ChartBox.styles.js +0 -27
  83. package/dist/components/ChartBox/ChartBoxDistribution.js +0 -27
  84. package/dist/components/ChartBox/ChartBoxDistribution.stories.js +0 -18
  85. package/dist/components/ChartLegend/ChartLegend.stories.js +0 -90
  86. package/dist/components/Checkbox/Checkbox.stories.js +0 -88
  87. package/dist/components/Checklist/ChecklistCard.stories.js +0 -102
  88. package/dist/components/Checklist/UserChecklist.js +0 -184
  89. package/dist/components/Checklist/UserChecklist.stories.js +0 -317
  90. package/dist/components/Chips/Chip.stories.js +0 -36
  91. package/dist/components/Chips/ChipsWrapper.stories.js +0 -47
  92. package/dist/components/ComponentScroll/ComponentScroll.stories.js +0 -111
  93. package/dist/components/CryptoAddress/CryptoAddress.stories.js +0 -205
  94. package/dist/components/CryptoAddressDetails/CryptoAddressDetails.stories.js +0 -70
  95. package/dist/components/DonutChart/DonutChart.stories.js +0 -54
  96. package/dist/components/FAQ/FAQ.stories.js +0 -76
  97. package/dist/components/Footer/Footer.stories.js +0 -49
  98. package/dist/components/Footer/FooterLayout.stories.js +0 -26
  99. package/dist/components/Footer/FooterMenu.stories.js +0 -113
  100. package/dist/components/Footer/mangopay.png +0 -0
  101. package/dist/components/Footer/mangopay.svg +0 -20
  102. package/dist/components/ForgotPasswordModal/ForgotPasswordModal.stories.js +0 -69
  103. package/dist/components/Form/Form.stories.js +0 -32
  104. package/dist/components/FullscreenCard/FullscreenCard.styles.js +0 -27
  105. package/dist/components/Header/Header.stories.js +0 -192
  106. package/dist/components/Icon/Icon.stories.js +0 -108
  107. package/dist/components/InfoIcon/InfoIcon.stories.js +0 -299
  108. package/dist/components/InfoPanel/InfoPanel.js +0 -124
  109. package/dist/components/Input/DatePickerInput.stories.js +0 -87
  110. package/dist/components/Input/Input.stories.js +0 -217
  111. package/dist/components/Input/InputPassword.stories.js +0 -80
  112. package/dist/components/Input/InputWithButton.stories.js +0 -75
  113. package/dist/components/Input/MultiSelect.stories.js +0 -264
  114. package/dist/components/Input/OtpInput.stories.js +0 -57
  115. package/dist/components/Input/RangeInput.stories.js +0 -58
  116. package/dist/components/Input/SearchInput.stories.js +0 -366
  117. package/dist/components/Input/Select.stories.js +0 -478
  118. package/dist/components/InvestCalculator/InvestCalculator.stories.js +0 -135
  119. package/dist/components/InvestmentStat/InvestmentStat.stories.js +0 -52
  120. package/dist/components/KYCFlow/BasicInfo.js +0 -448
  121. package/dist/components/KYCFlow/Confirmation.js +0 -46
  122. package/dist/components/KYCFlow/DocumentFileUpload.js +0 -263
  123. package/dist/components/KYCFlow/DocumentScan.js +0 -75
  124. package/dist/components/KYCFlow/DocumentScanUpload.js +0 -251
  125. package/dist/components/KYCFlow/DocumentSelect.js +0 -118
  126. package/dist/components/KYCFlow/DocumentSuccess.js +0 -63
  127. package/dist/components/KYCFlow/DocumentUpload.js +0 -53
  128. package/dist/components/KYCFlow/DocumentVerificationType.js +0 -131
  129. package/dist/components/KYCFlow/FaceScan.js +0 -54
  130. package/dist/components/KYCFlow/FaceScanRecognition.js +0 -61
  131. package/dist/components/KYCFlow/FaceScanSuccess.js +0 -56
  132. package/dist/components/KYCFlow/Terms.js +0 -119
  133. package/dist/components/KYCFlow/_styles.js +0 -111
  134. package/dist/components/KYCFlow/index.js +0 -97
  135. package/dist/components/KYCSelectBox/KYCSelectBox.styles.js +0 -29
  136. package/dist/components/LatestUpdate/LatestUpdate.stories.js +0 -58
  137. package/dist/components/Layout/Layout.stories.js +0 -60
  138. package/dist/components/LearnMoreCarousel/LearnMoreCarousel.stories.js +0 -66
  139. package/dist/components/LearnMorePage/LearnMore.stories.js +0 -48
  140. package/dist/components/LearnMorePage/LearnMoreItem.stories.js +0 -62
  141. package/dist/components/LearnMoreSection/LearnMore.stories.js +0 -30
  142. package/dist/components/LearnMoreSection/LearnMoreItem.stories.js +0 -59
  143. package/dist/components/LoginModal/LoginModal.stories.js +0 -74
  144. package/dist/components/MatomoConnect/Matomo.js +0 -228
  145. package/dist/components/MatomoConnect/Matomo_fuckup.js +0 -387
  146. package/dist/components/Modal/Modal.stories.js +0 -75
  147. package/dist/components/Modal/NewVentureModal/NewVentureModal.stories.js +0 -150
  148. package/dist/components/Modal/PaymentModal.stories.js +0 -57
  149. package/dist/components/Modal/SideModal.stories.js +0 -342
  150. package/dist/components/MultiProgressBar/MultiProgressBar.stories.js +0 -67
  151. package/dist/components/Newsletter/Newsletter.stories.js +0 -16
  152. package/dist/components/NotificationContext/NotificationContext.js +0 -141
  153. package/dist/components/Number/Number.stories.js +0 -92
  154. package/dist/components/Pagination/Pagination.stories.js +0 -83
  155. package/dist/components/Pagination/PaginationControls.stories.js +0 -112
  156. package/dist/components/Payment/PaymentDetailsCard.stories.js +0 -198
  157. package/dist/components/Payment/PaymentDisplay.stories.js +0 -302
  158. package/dist/components/Payment/TimerComponent.stories.js +0 -236
  159. package/dist/components/Process/Process.stories.js +0 -42
  160. package/dist/components/ProfileBadge/ProfileBadge.stories.js +0 -45
  161. package/dist/components/ProfileBox/ProfileBox.stories.js +0 -35
  162. package/dist/components/ProfileHeader/ProfileHeader.js +0 -252
  163. package/dist/components/ProfileHeader/ProfileHeader.styles.js +0 -65
  164. package/dist/components/ProfileStat/ProfileStat.stories.js +0 -66
  165. package/dist/components/ProofOfAddress/ProofOfAddress.styles.js +0 -53
  166. package/dist/components/QRCode/QRCode.stories.js +0 -104
  167. package/dist/components/Radio/Radio.stories.js +0 -73
  168. package/dist/components/RefreshButton/RefreshButton.stories.js +0 -38
  169. package/dist/components/RegisterAlgorand/AlgoAddressName.js +0 -138
  170. package/dist/components/RegisterAlgorand/AlgoAdressSelect.js +0 -443
  171. package/dist/components/RegisterAlgorand/AlgoConnectWallet.js +0 -47
  172. package/dist/components/RegisterAlgorand/AlgoSuccess.js +0 -38
  173. package/dist/components/RegisterAlgorand/Algorand.stories.js +0 -80
  174. package/dist/components/RegisterAlgorand/ChooseWallet.js +0 -97
  175. package/dist/components/RegisterAlgorand/SelectProject.js +0 -89
  176. package/dist/components/RegisterAlgorand/_styles.js +0 -28
  177. package/dist/components/RegisterAlgorand/flow.js +0 -409
  178. package/dist/components/RegisterAlgorand/flowWithMemo.js +0 -410
  179. package/dist/components/RegisterAlgorand/index.js +0 -48
  180. package/dist/components/RegisterConfirmModal/RegisterConfirmModal.stories.js +0 -41
  181. package/dist/components/RegisterEthereum/EthAddressLedger.js +0 -226
  182. package/dist/components/RegisterEthereum/EthAddressMetamask.js +0 -204
  183. package/dist/components/RegisterEthereum/EthAddressName.js +0 -135
  184. package/dist/components/RegisterEthereum/EthConnectLedger.js +0 -194
  185. package/dist/components/RegisterEthereum/EthConnectMetamask.js +0 -35
  186. package/dist/components/RegisterEthereum/EthFinish.js +0 -41
  187. package/dist/components/RegisterEthereum/EthIntro.js +0 -95
  188. package/dist/components/RegisterEthereum/_styles.js +0 -28
  189. package/dist/components/RegisterEthereum/index.js +0 -68
  190. package/dist/components/RegisterModal/RegisterModal.stories.js +0 -49
  191. package/dist/components/RequestDataBox/RequestDataBox.stories.js +0 -37
  192. package/dist/components/RiskQuestionnaire/RiskQuestionnaireContext.js +0 -185
  193. package/dist/components/RiskQuestionnaire/_styles.js +0 -15
  194. package/dist/components/SEO/SEO.stories.js +0 -60
  195. package/dist/components/SideLine/SideLine.stories.js +0 -28
  196. package/dist/components/SigningSubflow/SignSubAddressMetamask.js +0 -137
  197. package/dist/components/SigningSubflow/SignSubConnectLedger.js +0 -150
  198. package/dist/components/SigningSubflow/SignSubConnectMetamask.js +0 -137
  199. package/dist/components/SigningSubflow/SignSubIntro.js +0 -55
  200. package/dist/components/SigningSubflow/SignSubSendLedger.js +0 -150
  201. package/dist/components/SigningSubflow/SignSubSendMetamask.js +0 -62
  202. package/dist/components/SigningSubflow/SignSubTransactionLedger.js +0 -161
  203. package/dist/components/SigningSubflow/SignSubTransactionMetamask.js +0 -166
  204. package/dist/components/SigningSubflow/_styles.js +0 -34
  205. package/dist/components/SigningSubflow/index.js +0 -32
  206. package/dist/components/Slider/Slider.stories.js +0 -68
  207. package/dist/components/Snackbar/Snackbar.stories.js +0 -292
  208. package/dist/components/StatusTag/StatusTag.stories.js +0 -262
  209. package/dist/components/StepController/StepController.stories.js +0 -60
  210. package/dist/components/StepController/StepControllerProgress.stories.js +0 -49
  211. package/dist/components/StepsProgress/StepIndicator.stories.js +0 -153
  212. package/dist/components/StepsProgress/StepsProgress.stories.js +0 -49
  213. package/dist/components/Switch/Switch.stories.js +0 -81
  214. package/dist/components/Tabs/Tabs.stories.js +0 -36
  215. package/dist/components/TabsNav/TabNav.stories.js +0 -40
  216. package/dist/components/TabsNav/TabsNav.stories.js +0 -37
  217. package/dist/components/TeamOverview/TeamOverview.stories.js +0 -76
  218. package/dist/components/TermsModal/TermsModal.stories.js +0 -31
  219. package/dist/components/Text/Headline.stories.js +0 -48
  220. package/dist/components/Text/Text.stories.js +0 -70
  221. package/dist/components/TextLink/TextLink.stories.js +0 -35
  222. package/dist/components/Timeline/Timeline.stories.js +0 -393
  223. package/dist/components/ToDoList/ToDoList.stories.js +0 -133
  224. package/dist/components/ToDoList/ToDoListTask.stories.js +0 -70
  225. package/dist/components/TransactionDetails/TransactionDetails.stories.js +0 -55
  226. package/dist/components/TransactionDetails/TransactionDetailsTable.stories.js +0 -305
  227. package/dist/components/TransactionInfo/TransactionInfo.stories.js +0 -61
  228. package/dist/components/TwoFactorModal/TwoFactorModal.js +0 -100
  229. package/dist/components/VerifyEmailModal/VerifyEmailModal.stories.js +0 -59
  230. package/dist/components/headerHo/HeaderHo.stories.js +0 -35
  231. package/dist/components/icons/Arrow.stories.js +0 -42
  232. package/dist/components/icons/ArrowSimple.stories.js +0 -48
  233. package/dist/components/icons/Check.stories.js +0 -22
  234. package/dist/components/icons/Facebook.stories.js +0 -21
  235. package/dist/components/icons/Facebook_Logo.png +0 -0
  236. package/dist/components/icons/Info.stories.js +0 -16
  237. package/dist/components/icons/Instagram.stories.js +0 -21
  238. package/dist/components/icons/LI-In-Bug.png +0 -0
  239. package/dist/components/icons/LinkIcon.stories.js +0 -21
  240. package/dist/components/icons/LinkedIn.stories.js +0 -16
  241. package/dist/components/icons/Medium.stories.js +0 -16
  242. package/dist/components/icons/Reddit.stories.js +0 -21
  243. package/dist/components/icons/Share.stories.js +0 -16
  244. package/dist/components/icons/Telegram-Logo.png +0 -0
  245. package/dist/components/icons/Telegram.stories.js +0 -16
  246. package/dist/components/icons/Twitter.stories.js +0 -21
  247. package/dist/components/icons/X-logo-black.png +0 -0
  248. package/dist/components/icons/X.stories.js +0 -16
  249. package/dist/components/icons/Youtube.stories.js +0 -21
  250. package/dist/components/icons/youtube_social_circle_red.png +0 -0
  251. package/dist/components/logo/Logo.stories.js +0 -260
  252. package/dist/components/taxId/TaxId.stories.js +0 -50
  253. package/dist/components/video/Video.stories.js +0 -52
  254. package/dist/static/images/document-icon.svg +0 -3
  255. 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;