@stokr/components-library 2.3.65-beta.9 → 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 (254) 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/Chips/Chip.js +1 -2
  4. package/dist/components/Chips/Chip.styles.js +3 -2
  5. package/dist/components/ConfirmModal/ConfirmModal.js +240 -0
  6. package/dist/components/ConfirmModal/ConfirmModal.styles.js +26 -0
  7. package/dist/components/CryptoAddress/CryptoAddress.js +10 -4
  8. package/dist/components/CryptoAddress/CryptoAddress.styles.js +1 -1
  9. package/dist/components/Footer/FooterLayout.js +13 -4
  10. package/dist/components/Footer/FooterMenu.js +19 -3
  11. package/dist/components/Footer/FooterMenu.styles.js +14 -2
  12. package/dist/components/Header/Header.styles.js +1 -1
  13. package/dist/components/Input/DatePickerInput.js +134 -30
  14. package/dist/components/Input/DatePickerInput.styles.js +16 -3
  15. package/dist/components/Input/MultiSelect.js +10 -8
  16. package/dist/components/Input/TableFilterDropdown.js +228 -0
  17. package/dist/components/Input/Textarea.js +59 -0
  18. package/dist/components/Input/Textarea.styles.js +18 -0
  19. package/dist/components/Modal/Modal.js +39 -6
  20. package/dist/components/Modal/Modal.styles.js +2 -2
  21. package/dist/components/Modal/SideModal.js +44 -2
  22. package/dist/components/Modal/SuccessModal/SuccessModal.js +173 -0
  23. package/dist/components/Modal/SuccessModal/SuccessModal.styles.js +29 -0
  24. package/dist/components/Modal/SuccessModal/index.js +37 -0
  25. package/dist/components/Payment/PaymentDetailsCard.js +14 -11
  26. package/dist/components/Payment/PaymentDisplay.js +2 -12
  27. package/dist/components/Snackbar/Snackbar.js +3 -0
  28. package/dist/components/Snackbar/Snackbar.styles.js +18 -9
  29. package/dist/components/StatusTag/StatusTag.js +38 -71
  30. package/dist/components/StatusTag/StatusTag.styles.js +4 -16
  31. package/dist/components/Timeline/Timeline.styles.js +1 -1
  32. package/dist/components/Timeline/TimelineStep.js +0 -1
  33. package/dist/favicon.ico +0 -0
  34. package/dist/index.css +1 -0
  35. package/dist/index.js +44 -0
  36. package/dist/index.js.map +1 -0
  37. package/dist/index.umd.cjs +10371 -0
  38. package/dist/index.umd.cjs.map +1 -0
  39. package/dist/logo192.png +0 -0
  40. package/dist/logo512.png +0 -0
  41. package/dist/manifest.json +25 -0
  42. package/dist/robots.txt +3 -0
  43. package/dist/static/animations/checked.lottie +0 -0
  44. package/dist/static/animations/progress.lottie +0 -0
  45. package/dist/static/images/add-folder-icon.svg +5 -0
  46. package/dist/static/images/background3.png +0 -0
  47. package/dist/static/images/bmn2-logo.svg +9 -9
  48. package/dist/static/images/checkmark-circle-icon.svg +4 -0
  49. package/dist/static/images/close-circle-icon.svg +3 -0
  50. package/dist/static/images/doc-icon.svg +4 -0
  51. package/dist/static/images/filter-icon.svg +6 -0
  52. package/dist/styles/colors.js +2 -1
  53. package/dist/styles/global.js +1 -1
  54. package/dist/utils/customHooks.js +24 -2
  55. package/dist/utils/formatCurrencyValue.js +9 -2
  56. package/package.json +4 -2
  57. package/dist/components/2FA/EnterCode.stories.js +0 -35
  58. package/dist/components/2FA/disable-2fa-flow.stories.js +0 -31
  59. package/dist/components/2FA/enable-2fa-flow.stories.js +0 -31
  60. package/dist/components/2FA/login-with-otp-flow.stories.js +0 -31
  61. package/dist/components/2FA/main-flow.stories.js +0 -162
  62. package/dist/components/AccountBalance/AccountBalance.stories.js +0 -83
  63. package/dist/components/AdminDashboard/Table/ReactTable.stories.js +0 -913
  64. package/dist/components/AgreementItem/AgreementItem.stories.js +0 -105
  65. package/dist/components/AnalyticGraphs/Analytic.js +0 -541
  66. package/dist/components/AnalyticGraphs/Analytic.styles.js +0 -25
  67. package/dist/components/BackButton/BackButton.stories.js +0 -32
  68. package/dist/components/Background/Background.stories.js +0 -75
  69. package/dist/components/BarChart/BarChart.js +0 -263
  70. package/dist/components/BarChart/BarChart.stories.js +0 -66
  71. package/dist/components/BarChart/BarChart.styles.js +0 -26
  72. package/dist/components/BarChartLegend/BarChartLegend.js +0 -79
  73. package/dist/components/BarChartLegend/BarChartLegend.styles.js +0 -21
  74. package/dist/components/BasicTable/BasicTable.stories.js +0 -59
  75. package/dist/components/BlogPost/BlogPost.stories.js +0 -160
  76. package/dist/components/Button/Button.stories.js +0 -146
  77. package/dist/components/Button/GlareButton.stories.js +0 -132
  78. package/dist/components/CapitalRaisedSummary/CapitalRaisedSummery.stories.js +0 -42
  79. package/dist/components/ChartBox/ChartBox.js +0 -41
  80. package/dist/components/ChartBox/ChartBox.stories.js +0 -17
  81. package/dist/components/ChartBox/ChartBox.styles.js +0 -27
  82. package/dist/components/ChartBox/ChartBoxDistribution.js +0 -27
  83. package/dist/components/ChartBox/ChartBoxDistribution.stories.js +0 -18
  84. package/dist/components/ChartLegend/ChartLegend.stories.js +0 -90
  85. package/dist/components/Checkbox/Checkbox.stories.js +0 -88
  86. package/dist/components/Checklist/ChecklistCard.stories.js +0 -102
  87. package/dist/components/Checklist/UserChecklist.js +0 -184
  88. package/dist/components/Checklist/UserChecklist.stories.js +0 -317
  89. package/dist/components/Chips/Chip.stories.js +0 -36
  90. package/dist/components/Chips/ChipsWrapper.stories.js +0 -47
  91. package/dist/components/ComponentScroll/ComponentScroll.stories.js +0 -111
  92. package/dist/components/CryptoAddress/CryptoAddress.stories.js +0 -205
  93. package/dist/components/CryptoAddressDetails/CryptoAddressDetails.stories.js +0 -70
  94. package/dist/components/DonutChart/DonutChart.stories.js +0 -54
  95. package/dist/components/FAQ/FAQ.stories.js +0 -76
  96. package/dist/components/Footer/Footer.stories.js +0 -49
  97. package/dist/components/Footer/FooterLayout.stories.js +0 -26
  98. package/dist/components/Footer/FooterMenu.stories.js +0 -113
  99. package/dist/components/Footer/mangopay.png +0 -0
  100. package/dist/components/Footer/mangopay.svg +0 -20
  101. package/dist/components/ForgotPasswordModal/ForgotPasswordModal.stories.js +0 -69
  102. package/dist/components/Form/Form.stories.js +0 -32
  103. package/dist/components/FullscreenCard/FullscreenCard.styles.js +0 -27
  104. package/dist/components/Header/Header.stories.js +0 -192
  105. package/dist/components/Icon/Icon.stories.js +0 -108
  106. package/dist/components/InfoIcon/InfoIcon.stories.js +0 -299
  107. package/dist/components/InfoPanel/InfoPanel.js +0 -124
  108. package/dist/components/Input/DatePickerInput.stories.js +0 -87
  109. package/dist/components/Input/Input.stories.js +0 -217
  110. package/dist/components/Input/InputPassword.stories.js +0 -80
  111. package/dist/components/Input/InputWithButton.stories.js +0 -75
  112. package/dist/components/Input/MultiSelect.stories.js +0 -264
  113. package/dist/components/Input/OtpInput.stories.js +0 -57
  114. package/dist/components/Input/RangeInput.stories.js +0 -58
  115. package/dist/components/Input/SearchInput.stories.js +0 -366
  116. package/dist/components/Input/Select.stories.js +0 -478
  117. package/dist/components/InvestCalculator/InvestCalculator.stories.js +0 -135
  118. package/dist/components/InvestmentStat/InvestmentStat.stories.js +0 -52
  119. package/dist/components/KYCFlow/BasicInfo.js +0 -448
  120. package/dist/components/KYCFlow/Confirmation.js +0 -46
  121. package/dist/components/KYCFlow/DocumentFileUpload.js +0 -263
  122. package/dist/components/KYCFlow/DocumentScan.js +0 -75
  123. package/dist/components/KYCFlow/DocumentScanUpload.js +0 -251
  124. package/dist/components/KYCFlow/DocumentSelect.js +0 -118
  125. package/dist/components/KYCFlow/DocumentSuccess.js +0 -63
  126. package/dist/components/KYCFlow/DocumentUpload.js +0 -53
  127. package/dist/components/KYCFlow/DocumentVerificationType.js +0 -131
  128. package/dist/components/KYCFlow/FaceScan.js +0 -54
  129. package/dist/components/KYCFlow/FaceScanRecognition.js +0 -61
  130. package/dist/components/KYCFlow/FaceScanSuccess.js +0 -56
  131. package/dist/components/KYCFlow/Terms.js +0 -119
  132. package/dist/components/KYCFlow/_styles.js +0 -111
  133. package/dist/components/KYCFlow/index.js +0 -97
  134. package/dist/components/KYCSelectBox/KYCSelectBox.styles.js +0 -29
  135. package/dist/components/LatestUpdate/LatestUpdate.stories.js +0 -58
  136. package/dist/components/Layout/Layout.stories.js +0 -60
  137. package/dist/components/LearnMoreCarousel/LearnMoreCarousel.stories.js +0 -66
  138. package/dist/components/LearnMorePage/LearnMore.stories.js +0 -48
  139. package/dist/components/LearnMorePage/LearnMoreItem.stories.js +0 -62
  140. package/dist/components/LearnMoreSection/LearnMore.stories.js +0 -30
  141. package/dist/components/LearnMoreSection/LearnMoreItem.stories.js +0 -59
  142. package/dist/components/LoginModal/LoginModal.stories.js +0 -74
  143. package/dist/components/MatomoConnect/Matomo.js +0 -228
  144. package/dist/components/MatomoConnect/Matomo_fuckup.js +0 -387
  145. package/dist/components/Modal/Modal.stories.js +0 -75
  146. package/dist/components/Modal/NewVentureModal/NewVentureModal.stories.js +0 -150
  147. package/dist/components/Modal/PaymentModal.stories.js +0 -57
  148. package/dist/components/Modal/SideModal.stories.js +0 -342
  149. package/dist/components/MultiProgressBar/MultiProgressBar.stories.js +0 -67
  150. package/dist/components/Newsletter/Newsletter.stories.js +0 -16
  151. package/dist/components/NotificationContext/NotificationContext.js +0 -141
  152. package/dist/components/Number/Number.stories.js +0 -92
  153. package/dist/components/Pagination/Pagination.stories.js +0 -83
  154. package/dist/components/Pagination/PaginationControls.stories.js +0 -112
  155. package/dist/components/Payment/PaymentDetailsCard.stories.js +0 -198
  156. package/dist/components/Payment/PaymentDisplay.stories.js +0 -302
  157. package/dist/components/Payment/TimerComponent.stories.js +0 -236
  158. package/dist/components/Process/Process.stories.js +0 -42
  159. package/dist/components/ProfileBadge/ProfileBadge.stories.js +0 -45
  160. package/dist/components/ProfileBox/ProfileBox.stories.js +0 -35
  161. package/dist/components/ProfileHeader/ProfileHeader.js +0 -252
  162. package/dist/components/ProfileHeader/ProfileHeader.styles.js +0 -65
  163. package/dist/components/ProfileStat/ProfileStat.stories.js +0 -66
  164. package/dist/components/ProofOfAddress/ProofOfAddress.styles.js +0 -53
  165. package/dist/components/QRCode/QRCode.stories.js +0 -104
  166. package/dist/components/Radio/Radio.stories.js +0 -73
  167. package/dist/components/RefreshButton/RefreshButton.stories.js +0 -38
  168. package/dist/components/RegisterAlgorand/AlgoAddressName.js +0 -138
  169. package/dist/components/RegisterAlgorand/AlgoAdressSelect.js +0 -443
  170. package/dist/components/RegisterAlgorand/AlgoConnectWallet.js +0 -47
  171. package/dist/components/RegisterAlgorand/AlgoSuccess.js +0 -38
  172. package/dist/components/RegisterAlgorand/Algorand.stories.js +0 -80
  173. package/dist/components/RegisterAlgorand/ChooseWallet.js +0 -97
  174. package/dist/components/RegisterAlgorand/SelectProject.js +0 -89
  175. package/dist/components/RegisterAlgorand/_styles.js +0 -28
  176. package/dist/components/RegisterAlgorand/flow.js +0 -409
  177. package/dist/components/RegisterAlgorand/flowWithMemo.js +0 -410
  178. package/dist/components/RegisterAlgorand/index.js +0 -48
  179. package/dist/components/RegisterConfirmModal/RegisterConfirmModal.stories.js +0 -41
  180. package/dist/components/RegisterEthereum/EthAddressLedger.js +0 -226
  181. package/dist/components/RegisterEthereum/EthAddressMetamask.js +0 -204
  182. package/dist/components/RegisterEthereum/EthAddressName.js +0 -135
  183. package/dist/components/RegisterEthereum/EthConnectLedger.js +0 -194
  184. package/dist/components/RegisterEthereum/EthConnectMetamask.js +0 -35
  185. package/dist/components/RegisterEthereum/EthFinish.js +0 -41
  186. package/dist/components/RegisterEthereum/EthIntro.js +0 -95
  187. package/dist/components/RegisterEthereum/_styles.js +0 -28
  188. package/dist/components/RegisterEthereum/index.js +0 -68
  189. package/dist/components/RegisterModal/RegisterModal.stories.js +0 -49
  190. package/dist/components/RequestDataBox/RequestDataBox.stories.js +0 -37
  191. package/dist/components/RiskQuestionnaire/RiskQuestionnaireContext.js +0 -185
  192. package/dist/components/RiskQuestionnaire/_styles.js +0 -15
  193. package/dist/components/SEO/SEO.stories.js +0 -60
  194. package/dist/components/SideLine/SideLine.stories.js +0 -28
  195. package/dist/components/SigningSubflow/SignSubAddressMetamask.js +0 -137
  196. package/dist/components/SigningSubflow/SignSubConnectLedger.js +0 -150
  197. package/dist/components/SigningSubflow/SignSubConnectMetamask.js +0 -137
  198. package/dist/components/SigningSubflow/SignSubIntro.js +0 -55
  199. package/dist/components/SigningSubflow/SignSubSendLedger.js +0 -150
  200. package/dist/components/SigningSubflow/SignSubSendMetamask.js +0 -62
  201. package/dist/components/SigningSubflow/SignSubTransactionLedger.js +0 -161
  202. package/dist/components/SigningSubflow/SignSubTransactionMetamask.js +0 -166
  203. package/dist/components/SigningSubflow/_styles.js +0 -34
  204. package/dist/components/SigningSubflow/index.js +0 -32
  205. package/dist/components/Slider/Slider.stories.js +0 -68
  206. package/dist/components/Snackbar/Snackbar.stories.js +0 -292
  207. package/dist/components/StatusTag/StatusTag.stories.js +0 -262
  208. package/dist/components/StepController/StepController.stories.js +0 -60
  209. package/dist/components/StepController/StepControllerProgress.stories.js +0 -49
  210. package/dist/components/StepsProgress/StepIndicator.stories.js +0 -153
  211. package/dist/components/StepsProgress/StepsProgress.stories.js +0 -49
  212. package/dist/components/Switch/Switch.stories.js +0 -81
  213. package/dist/components/Tabs/Tabs.stories.js +0 -36
  214. package/dist/components/TabsNav/TabNav.stories.js +0 -40
  215. package/dist/components/TabsNav/TabsNav.stories.js +0 -37
  216. package/dist/components/TeamOverview/TeamOverview.stories.js +0 -76
  217. package/dist/components/TermsModal/TermsModal.stories.js +0 -31
  218. package/dist/components/Text/Headline.stories.js +0 -48
  219. package/dist/components/Text/Text.stories.js +0 -70
  220. package/dist/components/TextLink/TextLink.stories.js +0 -35
  221. package/dist/components/Timeline/Timeline.stories.js +0 -393
  222. package/dist/components/ToDoList/ToDoList.stories.js +0 -133
  223. package/dist/components/ToDoList/ToDoListTask.stories.js +0 -70
  224. package/dist/components/TransactionDetails/TransactionDetails.stories.js +0 -55
  225. package/dist/components/TransactionDetails/TransactionDetailsTable.stories.js +0 -305
  226. package/dist/components/TransactionInfo/TransactionInfo.stories.js +0 -61
  227. package/dist/components/TwoFactorModal/TwoFactorModal.js +0 -100
  228. package/dist/components/VerifyEmailModal/VerifyEmailModal.stories.js +0 -59
  229. package/dist/components/headerHo/HeaderHo.stories.js +0 -35
  230. package/dist/components/icons/Arrow.stories.js +0 -42
  231. package/dist/components/icons/ArrowSimple.stories.js +0 -48
  232. package/dist/components/icons/Check.stories.js +0 -22
  233. package/dist/components/icons/Facebook.stories.js +0 -21
  234. package/dist/components/icons/Facebook_Logo.png +0 -0
  235. package/dist/components/icons/Info.stories.js +0 -16
  236. package/dist/components/icons/Instagram.stories.js +0 -21
  237. package/dist/components/icons/LI-In-Bug.png +0 -0
  238. package/dist/components/icons/LinkIcon.stories.js +0 -21
  239. package/dist/components/icons/LinkedIn.stories.js +0 -16
  240. package/dist/components/icons/Medium.stories.js +0 -16
  241. package/dist/components/icons/Reddit.stories.js +0 -21
  242. package/dist/components/icons/Share.stories.js +0 -16
  243. package/dist/components/icons/Telegram-Logo.png +0 -0
  244. package/dist/components/icons/Telegram.stories.js +0 -16
  245. package/dist/components/icons/Twitter.stories.js +0 -21
  246. package/dist/components/icons/X-logo-black.png +0 -0
  247. package/dist/components/icons/X.stories.js +0 -16
  248. package/dist/components/icons/Youtube.stories.js +0 -21
  249. package/dist/components/icons/youtube_social_circle_red.png +0 -0
  250. package/dist/components/logo/Logo.stories.js +0 -260
  251. package/dist/components/taxId/TaxId.stories.js +0 -50
  252. package/dist/components/video/Video.stories.js +0 -52
  253. package/dist/static/images/document-icon.svg +0 -3
  254. package/dist/static/images/sent-icon.svg +0 -10
@@ -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;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.Textarea = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _Textarea = require("./Textarea.styles");
9
+ const _excluded = ["id", "name", "placeholder", "value", "error", "touched", "readOnly", "disabled", "rows", "minHeight", "wrapperStyle", "onChange", "onBlur", "onFocus"];
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
+ 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); }
12
+ 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; }
13
+ 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; }
14
+ const Textarea = _ref => {
15
+ let {
16
+ id,
17
+ name,
18
+ placeholder,
19
+ value,
20
+ error,
21
+ touched,
22
+ readOnly,
23
+ disabled,
24
+ rows,
25
+ minHeight,
26
+ wrapperStyle,
27
+ onChange,
28
+ onBlur,
29
+ onFocus
30
+ } = _ref,
31
+ restProps = _objectWithoutProperties(_ref, _excluded);
32
+ const handleChange = e => {
33
+ onChange === null || onChange === void 0 || onChange(e);
34
+ };
35
+ const handleBlur = e => {
36
+ onBlur === null || onBlur === void 0 || onBlur(e);
37
+ };
38
+ const handleFocus = e => {
39
+ onFocus === null || onFocus === void 0 || onFocus(e);
40
+ };
41
+ return /*#__PURE__*/_react.default.createElement(_Textarea.TextareaWrapper, {
42
+ style: wrapperStyle
43
+ }, /*#__PURE__*/_react.default.createElement(_Textarea.StyledTextarea, _extends({
44
+ id: id,
45
+ name: name,
46
+ value: value,
47
+ onChange: handleChange,
48
+ onBlur: handleBlur,
49
+ onFocus: handleFocus,
50
+ readOnly: readOnly,
51
+ placeholder: placeholder,
52
+ disabled: disabled,
53
+ rows: rows,
54
+ minHeight: minHeight,
55
+ error: error && touched
56
+ }, restProps)));
57
+ };
58
+ exports.Textarea = Textarea;
59
+ var _default = exports.default = Textarea;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TextareaWrapper = exports.StyledTextarea = void 0;
7
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
8
+ var _theme = _interopRequireDefault(require("../../styles/theme"));
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ 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); }
11
+ const TextareaWrapper = exports.TextareaWrapper = _styledComponents.default.div.withConfig({
12
+ displayName: "Textareastyles__TextareaWrapper",
13
+ componentId: "sc-xnx9ic-0"
14
+ })(["position:relative;display:block;"]);
15
+ const StyledTextarea = exports.StyledTextarea = _styledComponents.default.textarea.withConfig({
16
+ displayName: "Textareastyles__StyledTextarea",
17
+ componentId: "sc-xnx9ic-1"
18
+ })(["font-family:'Open sans';display:block;width:100%;min-height:", ";font-weight:400;font-size:12px;line-height:18px;letter-spacing:0.6px;padding:12px 16px;box-shadow:none;outline:0;border:1px solid ", ";border-radius:4px;color:", ";background-color:transparent;transition:border-color 0.2s;resize:vertical;&:focus,&:hover{border-color:", ";}&::placeholder{color:", ";opacity:1;text-transform:uppercase;font-weight:400;font-size:11px;letter-spacing:2px;}", " ", ""], props => props.minHeight || '100px', _theme.default.cLightGrey, _theme.default.cBlack, _theme.default.cGrey2, _theme.default.cGrey2, props => props.disabled && (0, _styledComponents.css)(["color:", ";cursor:not-allowed;&:focus,&:hover{border-color:", ";}"], _theme.default.cGrey2, _theme.default.cLightGrey), props => props.error && (0, _styledComponents.css)(["border-color:", ";&:focus,&:hover{border-color:", ";}"], _theme.default.cWarning, _theme.default.cWarning));