pixel-react 1.8.5 → 1.8.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/.yarn/install-state.gz +0 -0
  2. package/lib/components/Button/Button.d.ts +2 -2
  3. package/lib/components/ChooseFile/ChooseFile.d.ts +3 -2
  4. package/lib/components/DatePicker/types.d.ts +2 -0
  5. package/lib/components/FF_Captcha/Recaptcha.d.ts +2 -1
  6. package/lib/components/FF_Captcha/types.d.ts +11 -2
  7. package/lib/index.d.ts +17 -6
  8. package/lib/index.esm.js +1069 -846
  9. package/lib/index.esm.js.map +1 -1
  10. package/lib/index.js +1069 -846
  11. package/lib/index.js.map +1 -1
  12. package/lib/tsconfig.tsbuildinfo +1 -1
  13. package/package.json +1 -1
  14. package/src/components/Button/Button.tsx +3 -4
  15. package/src/components/ChooseFile/ChooseFile.tsx +3 -4
  16. package/src/components/DatePicker/DatePicker.scss +307 -2
  17. package/src/components/DatePicker/DatePicker.tsx +27 -19
  18. package/src/components/DatePicker/types.ts +4 -0
  19. package/src/components/FF_Captcha/Recaptcha.tsx +19 -9
  20. package/src/components/FF_Captcha/types.ts +12 -4
  21. package/src/components/LazyLoad/LazyLoad.stories.tsx +1 -0
  22. package/src/components/LazyLoad/LazyLoading.tsx +10 -1
  23. package/lib/1fb4472b34e4fe07.css +0 -1
  24. package/lib/StyleGuide/ColorPalette/ColorPalette.stories.d.ts +0 -6
  25. package/lib/StyleGuide/Typography/Typography.stories.d.ts +0 -6
  26. package/lib/components/Accordion/Accordion.stories.d.ts +0 -6
  27. package/lib/components/AddResourceButton/AddButton.stories.d.ts +0 -8
  28. package/lib/components/AllProjectsDropdown/AllProjectsDropdown.stories.d.ts +0 -7
  29. package/lib/components/AppHeader/AppHeader.stories.d.ts +0 -7
  30. package/lib/components/AttachmentButton/AttachmentButton.stories.d.ts +0 -9
  31. package/lib/components/Avatar/Avatar.stories.d.ts +0 -10
  32. package/lib/components/Button/Button.stories.d.ts +0 -13
  33. package/lib/components/Charts/DashboardDonutChart/DashboardDonutChart.stories.d.ts +0 -7
  34. package/lib/components/Charts/DonutChart/DonutChart.stories.d.ts +0 -6
  35. package/lib/components/Charts/PieChart/PieChart.stories.d.ts +0 -7
  36. package/lib/components/Charts/RadialChart/RadialChart.stories.d.ts +0 -6
  37. package/lib/components/Checkbox/Checkbox.stories.d.ts +0 -8
  38. package/lib/components/Chip/Chip.stories.d.ts +0 -14
  39. package/lib/components/DatePicker/DatePicker.stories.d.ts +0 -9
  40. package/lib/components/DragAndDrop/DragAndDrop.stories.d.ts +0 -6
  41. package/lib/components/Drawer/Drawer.stories.d.ts +0 -12
  42. package/lib/components/ExcelFile/ColorBarselector/ColorBarSelector.d.ts +0 -8
  43. package/lib/components/ExcelFile/ContextMenu/ContextMenu.d.ts +0 -4
  44. package/lib/components/ExcelFile/ExcelFile/Excel/ActiveCell.d.ts +0 -7
  45. package/lib/components/ExcelFile/ExcelFile/Excel/Cell.d.ts +0 -4
  46. package/lib/components/ExcelFile/ExcelFile/Excel/ColumnIndicator.d.ts +0 -5
  47. package/lib/components/ExcelFile/ExcelFile/Excel/Copied.d.ts +0 -3
  48. package/lib/components/ExcelFile/ExcelFile/Excel/CornerIndicator.d.ts +0 -5
  49. package/lib/components/ExcelFile/ExcelFile/Excel/DataEditor.d.ts +0 -5
  50. package/lib/components/ExcelFile/ExcelFile/Excel/DataViewer.d.ts +0 -8
  51. package/lib/components/ExcelFile/ExcelFile/Excel/FloatingRect.d.ts +0 -10
  52. package/lib/components/ExcelFile/ExcelFile/Excel/HeaderRow.d.ts +0 -3
  53. package/lib/components/ExcelFile/ExcelFile/Excel/Row.d.ts +0 -3
  54. package/lib/components/ExcelFile/ExcelFile/Excel/RowIndicator.d.ts +0 -5
  55. package/lib/components/ExcelFile/ExcelFile/Excel/Selected.d.ts +0 -3
  56. package/lib/components/ExcelFile/ExcelFile/Excel/Spreadsheet.d.ts +0 -80
  57. package/lib/components/ExcelFile/ExcelFile/Excel/Table.d.ts +0 -3
  58. package/lib/components/ExcelFile/ExcelFile/Excel/actions.d.ts +0 -174
  59. package/lib/components/ExcelFile/ExcelFile/Excel/areModelsEqual.d.ts +0 -1
  60. package/lib/components/ExcelFile/ExcelFile/Excel/context.d.ts +0 -8
  61. package/lib/components/ExcelFile/ExcelFile/Excel/engine/engine.d.ts +0 -22
  62. package/lib/components/ExcelFile/ExcelFile/Excel/engine/formula.d.ts +0 -17
  63. package/lib/components/ExcelFile/ExcelFile/Excel/engine/index.d.ts +0 -2
  64. package/lib/components/ExcelFile/ExcelFile/Excel/engine/point-graph.d.ts +0 -21
  65. package/lib/components/ExcelFile/ExcelFile/Excel/engine/point-hash.d.ts +0 -3
  66. package/lib/components/ExcelFile/ExcelFile/Excel/engine/point-set.d.ts +0 -24
  67. package/lib/components/ExcelFile/ExcelFile/Excel/index.d.ts +0 -13
  68. package/lib/components/ExcelFile/ExcelFile/Excel/matrix.d.ts +0 -67
  69. package/lib/components/ExcelFile/ExcelFile/Excel/point-range.d.ts +0 -22
  70. package/lib/components/ExcelFile/ExcelFile/Excel/point.d.ts +0 -11
  71. package/lib/components/ExcelFile/ExcelFile/Excel/reducer.d.ts +0 -27
  72. package/lib/components/ExcelFile/ExcelFile/Excel/selection.d.ts +0 -95
  73. package/lib/components/ExcelFile/ExcelFile/Excel/types.d.ts +0 -178
  74. package/lib/components/ExcelFile/ExcelFile/Excel/use-dispatch.d.ts +0 -3
  75. package/lib/components/ExcelFile/ExcelFile/Excel/use-selector.d.ts +0 -3
  76. package/lib/components/ExcelFile/ExcelFile/Excel/util.d.ts +0 -44
  77. package/lib/components/ExcelFile/ExcelFile/ExcelFile.d.ts +0 -19
  78. package/lib/components/ExcelFile/ExcelFile.stories.d.ts +0 -6
  79. package/lib/components/ExcelFile/ExcelSheetBar/ExcelSheetBar.d.ts +0 -12
  80. package/lib/components/ExcelFile/ExcelToolBar/ExcelToolBar.d.ts +0 -15
  81. package/lib/components/ExcelFile/Types.d.ts +0 -129
  82. package/lib/components/ExcelFile/index.d.ts +0 -1
  83. package/lib/components/ExpandableMenu/ExpandableMenu.stories.d.ts +0 -7
  84. package/lib/components/FF_Captcha/captcha.stories.d.ts +0 -8
  85. package/lib/components/FileDropzone/FileDropzone.stories.d.ts +0 -8
  86. package/lib/components/Form/Form.stories.d.ts +0 -7
  87. package/lib/components/GridLayout/GridLayout.stories.d.ts +0 -8
  88. package/lib/components/HighlightText/HighlightText.stories.d.ts +0 -6
  89. package/lib/components/Icon/Icon.stories.d.ts +0 -8
  90. package/lib/components/IconButton/IconButton.stories.d.ts +0 -7
  91. package/lib/components/IconRadioGroup/IconRadioGroup.stories.d.ts +0 -7
  92. package/lib/components/Input/Input.stories.d.ts +0 -9
  93. package/lib/components/InputWithDropdown/InputWithDropdown.stories.d.ts +0 -9
  94. package/lib/components/LabelEditTextField/LabelEditTextField.stories.d.ts +0 -11
  95. package/lib/components/LazyLoad/LazyLoad.stories.d.ts +0 -6
  96. package/lib/components/MachineInputField/MachineInputField.stories.d.ts +0 -6
  97. package/lib/components/MenuOption/MenuOption.stories.d.ts +0 -16
  98. package/lib/components/MiniModal/MiniModal.stories.d.ts +0 -10
  99. package/lib/components/Modal/Modal.stories.d.ts +0 -7
  100. package/lib/components/ModulesChip/ModuleChip.stories.d.ts +0 -6
  101. package/lib/components/MultiSelect/MultiSelect.stories.d.ts +0 -10
  102. package/lib/components/NLPInput/NlpInput.stories.d.ts +0 -7
  103. package/lib/components/NLPInput/type.d.ts +0 -70
  104. package/lib/components/Paper/Paper.stories.d.ts +0 -11
  105. package/lib/components/RadioButton/RadioButton.stories.d.ts +0 -10
  106. package/lib/components/RadioGroup/RadioGroup.stories.d.ts +0 -9
  107. package/lib/components/Search/Search.stories.d.ts +0 -6
  108. package/lib/components/Select/Select.stories.d.ts +0 -13
  109. package/lib/components/Select/components/Dropdown/Dropdown.d.ts +0 -4
  110. package/lib/components/Select/components/Dropdown/dropdownTypes.d.ts +0 -17
  111. package/lib/components/SequentialConnectingBranch/SequentialConnectingBranch.stories.d.ts +0 -6
  112. package/lib/components/SequentialConnectingBranch/components/AddBrowserModal/AddBrowserModal.d.ts +0 -4
  113. package/lib/components/SequentialConnectingBranch/components/AddBrowserModal/types.d.ts +0 -3
  114. package/lib/components/SequentialConnectingBranch/components/DatasetListModal/DatasetListModal.d.ts +0 -4
  115. package/lib/components/SequentialConnectingBranch/components/DatasetListModal/types.d.ts +0 -3
  116. package/lib/components/StateDropdown/StateDropdown.stories.d.ts +0 -10
  117. package/lib/components/StatusButton/StatusButton.stories.d.ts +0 -14
  118. package/lib/components/Table/Table.stories.d.ts +0 -13
  119. package/lib/components/TableTree/TableTree.stories.d.ts +0 -7
  120. package/lib/components/Tabs/Tabs.stories.d.ts +0 -9
  121. package/lib/components/TextArea/Textarea.stories.d.ts +0 -9
  122. package/lib/components/Toast/Toast.stories.d.ts +0 -6
  123. package/lib/components/Toastify/Toastify.stories.d.ts +0 -6
  124. package/lib/components/Toggle/Toggle.stories.d.ts +0 -12
  125. package/lib/components/Tooltip/Tooltip.stories.d.ts +0 -15
  126. package/lib/components/Typography/Typography.stories.d.ts +0 -10
  127. package/lib/components/VariableInput/VariableInput.stories.d.ts +0 -6
  128. package/lib/utils/checkEmpty/checkEmpty.stories.d.ts +0 -6
  129. package/lib/utils/compareArrays/compareArrays.stories.d.ts +0 -6
  130. package/lib/utils/compareObjects/compareObjects.stories.d.ts +0 -6
  131. package/lib/utils/debounce/debounce.stories.d.ts +0 -6
  132. package/lib/utils/ffID/ffID.stories.d.ts +0 -6
  133. package/lib/utils/find/findAndInsert.d.ts +0 -7
  134. package/lib/utils/find/findAndInsert.stories.d.ts +0 -7
  135. package/lib/utils/findAndInsert/findAndInsert.stories.d.ts +0 -7
  136. package/lib/utils/getEncryptedData/getEncryptedData.stories.d.ts +0 -6
  137. package/lib/utils/getExtension/getExtension.stories.d.ts +0 -6
  138. package/lib/utils/throttle/throttle.stories.d.ts +0 -6
  139. package/lib/utils/truncateText/truncateText.stories.d.ts +0 -6
package/lib/index.js CHANGED
@@ -1019,7 +1019,6 @@ const Typography = ({
1019
1019
  });
1020
1020
  };
1021
1021
 
1022
- const areEqual$2 = (prevProps, nextProps) => prevProps.selectedFile?.name === nextProps.selectedFile?.name;
1023
1022
  const Button$1 = /*#__PURE__*/React.forwardRef(({
1024
1023
  variant = 'primary',
1025
1024
  backgroundColor,
@@ -1079,7 +1078,6 @@ const Button$1 = /*#__PURE__*/React.forwardRef(({
1079
1078
  }), iconPosition === 'right' && renderIcon()]
1080
1079
  });
1081
1080
  });
1082
- var Button$2 = /*#__PURE__*/React.memo(Button$1, areEqual$2);
1083
1081
 
1084
1082
  var css_248z$1f = ".fontXs {\n font-family: \"Poppins\";\n font-size: 10px;\n}\n\n.fontSm, .ff-drawer-container .ff-drawer .ff-drawer-header .ff-drawer-title {\n font-family: \"Poppins\";\n font-size: 12px;\n}\n\n.fontMd {\n font-family: \"Poppins\";\n font-size: 14px;\n}\n\n.fontLg {\n font-family: \"Poppins\";\n font-size: 16px;\n}\n\n.fontXL {\n font-family: \"Poppins\";\n font-size: 18px;\n}\n\n.font2Xl {\n font-family: \"Poppins\";\n font-size: 24px;\n}\n\n.font-size-8 {\n font-family: \"Poppins\";\n font-size: 8px;\n}\n\n.font-size-20 {\n font-family: \"Poppins\";\n font-size: 20px;\n}\n\n.font-size-32 {\n font-family: \"Poppins\";\n font-size: 32px;\n}\n\n.font-size-80 {\n font-family: \"Poppins\";\n font-size: 80px;\n}\n\n.ff-drawer-container .ff-overlay {\n position: fixed;\n inset: 0;\n background-color: var(--drawer-title-color);\n opacity: 0.5;\n z-index: 999;\n}\n.ff-drawer-container .child-drawer-overlay {\n z-index: 999;\n}\n.ff-drawer-container .ff-drawer {\n margin-bottom: 4px;\n position: fixed;\n right: 0;\n bottom: 0;\n top: 87px;\n background-color: var(--primary-button-text-color);\n z-index: 999;\n transform: translateX(100%);\n opacity: 0;\n}\n.ff-drawer-container .ff-drawer--open {\n transform: translateX(0);\n opacity: 1;\n}\n.ff-drawer-container .ff-drawer--small {\n width: 444px;\n}\n.ff-drawer-container .ff-drawer--medium {\n width: 666px;\n}\n.ff-drawer-container .ff-drawer--large {\n width: 888px;\n}\n.ff-drawer-container .ff-drawer--x-large {\n width: calc(100vw - 10px);\n}\n.ff-drawer-container .ff-drawer--open, .ff-drawer-container .ff-drawer--medium, .ff-drawer-container .ff-drawer--large, .ff-drawer-container .ff-drawer--x-large {\n transition: all 0.4s ease-in-out;\n border-radius: 5px;\n border: 1px solid var(--border-color);\n}\n.ff-drawer-container .ff-drawer .ff-drawer-header {\n padding: 4px 8px 4px 8px;\n display: flex;\n gap: 10px;\n border-bottom: 1px solid var(--border-color);\n}\n.ff-drawer-container .ff-drawer .ff-drawer-header .ff-drawer-title {\n font-weight: 600;\n color: var(--drawer-title-color);\n display: flex;\n align-items: center;\n gap: 12px;\n}\n.ff-drawer-container .ff-drawer .ff-drawer-header .ff-close-icon {\n height: 16px;\n width: 16px;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.ff-drawer-container .ff-drawer .ff-drawer-header .ff-drawer-action-section {\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n height: 24px;\n}\n.ff-drawer-container .ff-drawer .ff-drawer-header .ff-drawer-action-section .ff-action-button {\n display: flex;\n align-items: center;\n gap: 5px;\n}\n.ff-drawer-container .ff-drawer .ff-drawer-header .ff-drawer-action-section .ff-action-button .ff-expand-collapse-button {\n cursor: pointer;\n background-color: var(--button-bg-color);\n outline: none;\n border: none;\n margin: 0;\n border: 1px solid transparent;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 8px;\n}\n.ff-drawer-container .ff-drawer .ff-drawer-header .ff-drawer-action-section .ff-action-button .ff-custom-header {\n background-color: var(--drawer-footer-bg);\n width: 100%;\n}\n.ff-drawer-container .ff-drawer .ff-drawer-body {\n background-color: var(--drawer-footer-bg);\n overflow-y: auto;\n}\n.ff-drawer-container .ff-drawer .ff-drawer-footer {\n position: fixed;\n bottom: 0;\n left: 0;\n right: 0;\n padding: 4px 8px 4px 8px;\n display: flex;\n justify-content: space-between;\n border-top: 1px solid var(--drawer-footer-border);\n z-index: 1000;\n background-color: var(--base-bg-color);\n transform: translateY(3px);\n border-radius: 0 0 4px 4px;\n}\n.ff-drawer-container .ff-drawer .ff-drawer-footer .button-container {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n}\n.ff-drawer-container .ff-drawer .ff-drawer-footer .ff-custom-footer {\n background-color: var(--drawer-footer-bg);\n width: 100%;\n border-radius: 0 0 8px 8px;\n}";
1085
1083
  styleInject(css_248z$1f);
@@ -1266,17 +1264,17 @@ const Drawer = ({
1266
1264
  children: customFooter || footerContent || jsxRuntime.jsxs(jsxRuntime.Fragment, {
1267
1265
  children: [jsxRuntime.jsxs("div", {
1268
1266
  className: "button-container",
1269
- children: [leftSecondaryButtonProps.label && jsxRuntime.jsx(Button$2, {
1267
+ children: [leftSecondaryButtonProps.label && jsxRuntime.jsx(Button$1, {
1270
1268
  ...leftSecondaryButtonProps,
1271
1269
  onClick: leftPrimaryButtonProps.onClick,
1272
1270
  variant: "secondary",
1273
1271
  transparentBackground: true
1274
- }), leftPrimaryButtonProps.label && jsxRuntime.jsx(Button$2, {
1272
+ }), leftPrimaryButtonProps.label && jsxRuntime.jsx(Button$1, {
1275
1273
  ...leftPrimaryButtonProps,
1276
1274
  onClick: leftPrimaryButtonProps.onClick,
1277
1275
  variant: "primary",
1278
1276
  transparentBackground: true
1279
- }), leftTertiaryButtonProps?.label && jsxRuntime.jsx(Button$2, {
1277
+ }), leftTertiaryButtonProps?.label && jsxRuntime.jsx(Button$1, {
1280
1278
  ...leftTertiaryButtonProps,
1281
1279
  onClick: leftTertiaryButtonProps.onClick,
1282
1280
  variant: "tertiary",
@@ -1284,17 +1282,17 @@ const Drawer = ({
1284
1282
  })]
1285
1283
  }), jsxRuntime.jsxs("div", {
1286
1284
  className: "button-container",
1287
- children: [rightTertiaryButtonProps?.label && jsxRuntime.jsx(Button$2, {
1285
+ children: [rightTertiaryButtonProps?.label && jsxRuntime.jsx(Button$1, {
1288
1286
  ...rightTertiaryButtonProps,
1289
1287
  onClick: rightTertiaryButtonProps.onClick,
1290
1288
  variant: "tertiary",
1291
1289
  transparentBackground: true
1292
- }), secondaryButtonProps.label && jsxRuntime.jsx(Button$2, {
1290
+ }), secondaryButtonProps.label && jsxRuntime.jsx(Button$1, {
1293
1291
  ...secondaryButtonProps,
1294
1292
  onClick: onCancel,
1295
1293
  variant: "secondary",
1296
1294
  transparentBackground: true
1297
- }), primaryButtonProps.label && jsxRuntime.jsx(Button$2, {
1295
+ }), primaryButtonProps.label && jsxRuntime.jsx(Button$1, {
1298
1296
  ...primaryButtonProps,
1299
1297
  onClick: primaryButtonProps.onClick,
1300
1298
  variant: "primary",
@@ -1758,7 +1756,7 @@ const Dropdown$2 = /*#__PURE__*/React.forwardRef(({
1758
1756
  })
1759
1757
  }), withSelectButton && filteredOptions.length > 0 && jsxRuntime.jsx("div", {
1760
1758
  className: "select-button-container",
1761
- children: jsxRuntime.jsx(Button$2, {
1759
+ children: jsxRuntime.jsx(Button$1, {
1762
1760
  label: "Select",
1763
1761
  variant: "tertiary",
1764
1762
  onClick: onSelectClick
@@ -2220,11 +2218,11 @@ const Toaster = ({
2220
2218
  children: toastMessage
2221
2219
  }), variant === 'confirm' && jsxRuntime.jsxs("div", {
2222
2220
  className: "ff-toaster-content__prompt",
2223
- children: [jsxRuntime.jsx(Button$2, {
2221
+ children: [jsxRuntime.jsx(Button$1, {
2224
2222
  onClick: handleClose,
2225
2223
  variant: "secondary",
2226
2224
  children: "Cancel"
2227
- }), jsxRuntime.jsx(Button$2, {
2225
+ }), jsxRuntime.jsx(Button$1, {
2228
2226
  onClick: onConfirmation,
2229
2227
  variant: "delete",
2230
2228
  children: confirmationText
@@ -4343,7 +4341,7 @@ const Dropzone = ({
4343
4341
  selectedValue: selectedRadioOption?.value,
4344
4342
  onChange: handleOptionChange
4345
4343
  })]
4346
- }) : jsxRuntime.jsx(Button$2, {
4344
+ }) : jsxRuntime.jsx(Button$1, {
4347
4345
  variant: "primary",
4348
4346
  label: buttonLabel,
4349
4347
  className: 'choose-file-btn',
@@ -6425,7 +6423,7 @@ var _excluded$1 = ["style"],
6425
6423
  // It knows to compare individual style props and ignore the wrapper object.
6426
6424
  // See https://reactjs.org/docs/react-api.html#reactmemo
6427
6425
 
6428
- function areEqual$1(prevProps, nextProps) {
6426
+ function areEqual(prevProps, nextProps) {
6429
6427
  var prevStyle = prevProps.style,
6430
6428
  prevRest = _objectWithoutPropertiesLoose$3(prevProps, _excluded$1);
6431
6429
  var nextStyle = nextProps.style,
@@ -6437,7 +6435,7 @@ function areEqual$1(prevProps, nextProps) {
6437
6435
  // See https://reactjs.org/docs/react-component.html#shouldcomponentupdate
6438
6436
 
6439
6437
  function shouldComponentUpdate(nextProps, nextState) {
6440
- return !areEqual$1(this.props, nextProps) || shallowDiffers(this.state, nextState);
6438
+ return !areEqual(this.props, nextProps) || shallowDiffers(this.state, nextState);
6441
6439
  }
6442
6440
 
6443
6441
  var LazyLoad = /*#__PURE__*/Object.freeze({
@@ -6446,7 +6444,7 @@ var LazyLoad = /*#__PURE__*/Object.freeze({
6446
6444
  FixedSizeList: FixedSizeList,
6447
6445
  VariableSizeGrid: VariableSizeGrid,
6448
6446
  VariableSizeList: VariableSizeList,
6449
- areEqual: areEqual$1,
6447
+ areEqual: areEqual,
6450
6448
  shouldComponentUpdate: shouldComponentUpdate
6451
6449
  });
6452
6450
 
@@ -6492,13 +6490,14 @@ var isWeb = typeof window !== 'undefined' &&
6492
6490
  function cloneObject(data) {
6493
6491
  let copy;
6494
6492
  const isArray = Array.isArray(data);
6493
+ const isFileListInstance = typeof FileList !== 'undefined' ? data instanceof FileList : false;
6495
6494
  if (data instanceof Date) {
6496
6495
  copy = new Date(data);
6497
6496
  }
6498
6497
  else if (data instanceof Set) {
6499
6498
  copy = new Set(data);
6500
6499
  }
6501
- else if (!(isWeb && (data instanceof Blob || data instanceof FileList)) &&
6500
+ else if (!(isWeb && (data instanceof Blob || isFileListInstance)) &&
6502
6501
  (isArray || isObject$2(data))) {
6503
6502
  copy = isArray ? [] : {};
6504
6503
  if (!isArray && !isPlainObject(data)) {
@@ -6557,7 +6556,7 @@ var set$1 = (object, path, value) => {
6557
6556
  ? []
6558
6557
  : {};
6559
6558
  }
6560
- if (key === '__proto__') {
6559
+ if (key === '__proto__' || key === 'constructor' || key === 'prototype') {
6561
6560
  return;
6562
6561
  }
6563
6562
  object[key] = newValue;
@@ -6776,7 +6775,7 @@ function useFormState(props) {
6776
6775
  _mounted.current = false;
6777
6776
  };
6778
6777
  }, [control]);
6779
- return getProxyFormState(formState, control, _localProxyFormState.current, false);
6778
+ return React.useMemo(() => getProxyFormState(formState, control, _localProxyFormState.current, false), [formState, control]);
6780
6779
  }
6781
6780
 
6782
6781
  var isString = (value) => typeof value === 'string';
@@ -6872,6 +6871,67 @@ function useController(props) {
6872
6871
  value,
6873
6872
  ...(isBoolean(props.disabled) ? { disabled: props.disabled } : {}),
6874
6873
  }));
6874
+ const fieldState = React.useMemo(() => Object.defineProperties({}, {
6875
+ invalid: {
6876
+ enumerable: true,
6877
+ get: () => !!get$1(formState.errors, name),
6878
+ },
6879
+ isDirty: {
6880
+ enumerable: true,
6881
+ get: () => !!get$1(formState.dirtyFields, name),
6882
+ },
6883
+ isTouched: {
6884
+ enumerable: true,
6885
+ get: () => !!get$1(formState.touchedFields, name),
6886
+ },
6887
+ isValidating: {
6888
+ enumerable: true,
6889
+ get: () => !!get$1(formState.validatingFields, name),
6890
+ },
6891
+ error: {
6892
+ enumerable: true,
6893
+ get: () => get$1(formState.errors, name),
6894
+ },
6895
+ }), [formState, name]);
6896
+ const field = React.useMemo(() => ({
6897
+ name,
6898
+ value,
6899
+ ...(isBoolean(disabled) || formState.disabled
6900
+ ? { disabled: formState.disabled || disabled }
6901
+ : {}),
6902
+ onChange: (event) => _registerProps.current.onChange({
6903
+ target: {
6904
+ value: getEventValue(event),
6905
+ name: name,
6906
+ },
6907
+ type: EVENTS.CHANGE,
6908
+ }),
6909
+ onBlur: () => _registerProps.current.onBlur({
6910
+ target: {
6911
+ value: get$1(control._formValues, name),
6912
+ name: name,
6913
+ },
6914
+ type: EVENTS.BLUR,
6915
+ }),
6916
+ ref: (elm) => {
6917
+ const field = get$1(control._fields, name);
6918
+ if (field && elm) {
6919
+ field._f.ref = {
6920
+ focus: () => elm.focus(),
6921
+ select: () => elm.select(),
6922
+ setCustomValidity: (message) => elm.setCustomValidity(message),
6923
+ reportValidity: () => elm.reportValidity(),
6924
+ };
6925
+ }
6926
+ },
6927
+ }), [
6928
+ name,
6929
+ control._formValues,
6930
+ disabled,
6931
+ formState.disabled,
6932
+ value,
6933
+ control._fields,
6934
+ ]);
6875
6935
  React.useEffect(() => {
6876
6936
  const _shouldUnregisterField = control._options.shouldUnregister || shouldUnregister;
6877
6937
  const updateMounted = (name, value) => {
@@ -6897,7 +6957,7 @@ function useController(props) {
6897
6957
  };
6898
6958
  }, [name, control, isArrayField, shouldUnregister]);
6899
6959
  React.useEffect(() => {
6900
- if (get$1(control._fields, name)) {
6960
+ if (isBoolean(disabled) && get$1(control._fields, name)) {
6901
6961
  control._updateDisabledField({
6902
6962
  disabled,
6903
6963
  fields: control._fields,
@@ -6906,63 +6966,11 @@ function useController(props) {
6906
6966
  });
6907
6967
  }
6908
6968
  }, [disabled, name, control]);
6909
- return {
6910
- field: {
6911
- name,
6912
- value,
6913
- ...(isBoolean(disabled) || formState.disabled
6914
- ? { disabled: formState.disabled || disabled }
6915
- : {}),
6916
- onChange: React.useCallback((event) => _registerProps.current.onChange({
6917
- target: {
6918
- value: getEventValue(event),
6919
- name: name,
6920
- },
6921
- type: EVENTS.CHANGE,
6922
- }), [name]),
6923
- onBlur: React.useCallback(() => _registerProps.current.onBlur({
6924
- target: {
6925
- value: get$1(control._formValues, name),
6926
- name: name,
6927
- },
6928
- type: EVENTS.BLUR,
6929
- }), [name, control]),
6930
- ref: React.useCallback((elm) => {
6931
- const field = get$1(control._fields, name);
6932
- if (field && elm) {
6933
- field._f.ref = {
6934
- focus: () => elm.focus(),
6935
- select: () => elm.select(),
6936
- setCustomValidity: (message) => elm.setCustomValidity(message),
6937
- reportValidity: () => elm.reportValidity(),
6938
- };
6939
- }
6940
- }, [control._fields, name]),
6941
- },
6969
+ return React.useMemo(() => ({
6970
+ field,
6942
6971
  formState,
6943
- fieldState: Object.defineProperties({}, {
6944
- invalid: {
6945
- enumerable: true,
6946
- get: () => !!get$1(formState.errors, name),
6947
- },
6948
- isDirty: {
6949
- enumerable: true,
6950
- get: () => !!get$1(formState.dirtyFields, name),
6951
- },
6952
- isTouched: {
6953
- enumerable: true,
6954
- get: () => !!get$1(formState.touchedFields, name),
6955
- },
6956
- isValidating: {
6957
- enumerable: true,
6958
- get: () => !!get$1(formState.validatingFields, name),
6959
- },
6960
- error: {
6961
- enumerable: true,
6962
- get: () => get$1(formState.errors, name),
6963
- },
6964
- }),
6965
- };
6972
+ fieldState,
6973
+ }), [field, formState, fieldState]);
6966
6974
  }
6967
6975
 
6968
6976
  /**
@@ -7012,7 +7020,7 @@ const Controller = (props) => props.render(useController(props));
7012
7020
  const flatten = (obj) => {
7013
7021
  const output = {};
7014
7022
  for (const key of Object.keys(obj)) {
7015
- if (isObjectType(obj[key])) {
7023
+ if (isObjectType(obj[key]) && obj[key] !== null) {
7016
7024
  const nested = flatten(obj[key]);
7017
7025
  for (const nestedKey of Object.keys(nested)) {
7018
7026
  output[`${key}.${nestedKey}`] = nested[nestedKey];
@@ -7081,7 +7089,7 @@ function Form(props) {
7081
7089
  headers && headers['Content-Type'],
7082
7090
  encType,
7083
7091
  ].some((value) => value && value.includes('json'));
7084
- const response = await fetch(action, {
7092
+ const response = await fetch(String(action), {
7085
7093
  method,
7086
7094
  headers: {
7087
7095
  ...headers,
@@ -7579,7 +7587,7 @@ var updateAt = (fieldValues, index, value) => {
7579
7587
  */
7580
7588
  function useFieldArray(props) {
7581
7589
  const methods = useFormContext();
7582
- const { control = methods.control, name, keyName = 'id', shouldUnregister, } = props;
7590
+ const { control = methods.control, name, keyName = 'id', shouldUnregister, rules, } = props;
7583
7591
  const [fields, setFields] = React.useState(control._getFieldArray(name));
7584
7592
  const ids = React.useRef(control._getFieldArray(name).map(generateId));
7585
7593
  const _fieldIds = React.useRef(fields);
@@ -7588,8 +7596,8 @@ function useFieldArray(props) {
7588
7596
  _name.current = name;
7589
7597
  _fieldIds.current = fields;
7590
7598
  control._names.array.add(name);
7591
- props.rules &&
7592
- control.register(name, props.rules);
7599
+ rules &&
7600
+ control.register(name, rules);
7593
7601
  useSubscribe({
7594
7602
  next: ({ values, name: fieldArrayName, }) => {
7595
7603
  if (fieldArrayName === _name.current || !fieldArrayName) {
@@ -7633,6 +7641,8 @@ function useFieldArray(props) {
7633
7641
  ids.current = removeArrayAt(ids.current, index);
7634
7642
  updateValues(updatedFieldArrayValues);
7635
7643
  setFields(updatedFieldArrayValues);
7644
+ !Array.isArray(get$1(control._fields, name)) &&
7645
+ set$1(control._fields, name, undefined);
7636
7646
  control._updateFieldArray(name, updatedFieldArrayValues, removeArrayAt, {
7637
7647
  argA: index,
7638
7648
  });
@@ -7947,7 +7957,8 @@ var getRuleValue = (rule) => isUndefined(rule)
7947
7957
  : rule;
7948
7958
 
7949
7959
  const ASYNC_FUNCTION = 'AsyncFunction';
7950
- var hasPromiseValidation = (fieldReference) => (!fieldReference || !fieldReference.validate) &&
7960
+ var hasPromiseValidation = (fieldReference) => !!fieldReference &&
7961
+ !!fieldReference.validate &&
7951
7962
  !!((isFunction$1(fieldReference.validate) &&
7952
7963
  fieldReference.validate.constructor.name === ASYNC_FUNCTION) ||
7953
7964
  (isObject$2(fieldReference.validate) &&
@@ -8209,9 +8220,9 @@ function createFormControl(props = {}) {
8209
8220
  const shouldUpdateValid = _proxyFormState.isValid &&
8210
8221
  isBoolean(isValid) &&
8211
8222
  _formState.isValid !== isValid;
8212
- if (props.delayError && error) {
8223
+ if (_options.delayError && error) {
8213
8224
  delayErrorCallback = debounce(() => updateErrors(name, error));
8214
- delayErrorCallback(props.delayError);
8225
+ delayErrorCallback(_options.delayError);
8215
8226
  }
8216
8227
  else {
8217
8228
  clearTimeout(timer);
@@ -8316,7 +8327,7 @@ function createFormControl(props = {}) {
8316
8327
  ? { [names]: defaultValue }
8317
8328
  : defaultValue),
8318
8329
  }, isGlobal, defaultValue);
8319
- const _getFieldArray = (name) => compact(get$1(_state.mount ? _formValues : _defaultValues, name, props.shouldUnregister ? get$1(_defaultValues, name, []) : []));
8330
+ const _getFieldArray = (name) => compact(get$1(_state.mount ? _formValues : _defaultValues, name, _options.shouldUnregister ? get$1(_defaultValues, name, []) : []));
8320
8331
  const setFieldValue = (name, value, options = {}) => {
8321
8332
  const field = get$1(_fields, name);
8322
8333
  let fieldValue = value;
@@ -8449,7 +8460,7 @@ function createFormControl(props = {}) {
8449
8460
  });
8450
8461
  if (shouldSkipValidation) {
8451
8462
  if (_proxyFormState.isValid) {
8452
- if (props.mode === 'onBlur') {
8463
+ if (_options.mode === 'onBlur') {
8453
8464
  if (isBlurEvent) {
8454
8465
  _updateValid();
8455
8466
  }
@@ -8614,7 +8625,9 @@ function createFormControl(props = {}) {
8614
8625
  : isUndefined(value)
8615
8626
  ? getFieldValue(field ? field._f : get$1(fields, name)._f)
8616
8627
  : value;
8617
- set$1(_formValues, name, inputValue);
8628
+ if (disabled || (!disabled && !isUndefined(inputValue))) {
8629
+ set$1(_formValues, name, inputValue);
8630
+ }
8618
8631
  updateTouchAndDirty(name, inputValue, false, false, true);
8619
8632
  }
8620
8633
  };
@@ -8843,7 +8856,7 @@ function createFormControl(props = {}) {
8843
8856
  }
8844
8857
  _fields = {};
8845
8858
  }
8846
- _formValues = props.shouldUnregister
8859
+ _formValues = _options.shouldUnregister
8847
8860
  ? keepStateOptions.keepDefaultValues
8848
8861
  ? cloneObject(_defaultValues)
8849
8862
  : {}
@@ -8867,7 +8880,7 @@ function createFormControl(props = {}) {
8867
8880
  !_proxyFormState.isValid ||
8868
8881
  !!keepStateOptions.keepIsValid ||
8869
8882
  !!keepStateOptions.keepDirtyValues;
8870
- _state.watch = !!props.shouldUnregister;
8883
+ _state.watch = !!_options.shouldUnregister;
8871
8884
  _subjects.state.next({
8872
8885
  submitCount: keepStateOptions.keepSubmitCount
8873
8886
  ? _formState.submitCount
@@ -9038,8 +9051,8 @@ function createFormControl(props = {}) {
9038
9051
  * ```
9039
9052
  */
9040
9053
  function useForm(props = {}) {
9041
- const _formControl = React.useRef();
9042
- const _values = React.useRef();
9054
+ const _formControl = React.useRef(undefined);
9055
+ const _values = React.useRef(undefined);
9043
9056
  const [formState, updateFormState] = React.useState({
9044
9057
  isDirty: false,
9045
9058
  isValidating: false,
@@ -9531,12 +9544,12 @@ const MiniModal = /*#__PURE__*/React.forwardRef(({
9531
9544
  children: footerContent
9532
9545
  }) : isIconModel ? jsxRuntime.jsx(jsxRuntime.Fragment, {}) : jsxRuntime.jsxs("footer", {
9533
9546
  className: "modal-footer",
9534
- children: [jsxRuntime.jsx(Button$2, {
9547
+ children: [jsxRuntime.jsx(Button$1, {
9535
9548
  variant: "primary",
9536
9549
  className: "btn-cancel",
9537
9550
  onClick: cancelButtonProps?.onClick,
9538
9551
  label: cancelButtonProps?.text
9539
- }), jsxRuntime.jsx(Button$2, {
9552
+ }), jsxRuntime.jsx(Button$1, {
9540
9553
  variant: "secondary",
9541
9554
  className: "btn-proceed",
9542
9555
  label: proceedButtonProps?.text,
@@ -12681,21 +12694,21 @@ const longFormatters$1 = {
12681
12694
  P: dateTimeLongFormatter$1
12682
12695
  };
12683
12696
 
12684
- const dayOfYearTokenRE = /^D+$/;
12685
- const weekYearTokenRE = /^Y+$/;
12686
- const throwTokens = ["D", "DD", "YY", "YYYY"];
12697
+ const dayOfYearTokenRE$1 = /^D+$/;
12698
+ const weekYearTokenRE$1 = /^Y+$/;
12699
+ const throwTokens$1 = ["D", "DD", "YY", "YYYY"];
12687
12700
  function isProtectedDayOfYearToken$1(token) {
12688
- return dayOfYearTokenRE.test(token);
12701
+ return dayOfYearTokenRE$1.test(token);
12689
12702
  }
12690
12703
  function isProtectedWeekYearToken$1(token) {
12691
- return weekYearTokenRE.test(token);
12704
+ return weekYearTokenRE$1.test(token);
12692
12705
  }
12693
- function warnOrThrowProtectedError(token, format, input) {
12694
- const _message = message(token, format, input);
12706
+ function warnOrThrowProtectedError$1(token, format, input) {
12707
+ const _message = message$1(token, format, input);
12695
12708
  console.warn(_message);
12696
- if (throwTokens.includes(token)) throw new RangeError(_message);
12709
+ if (throwTokens$1.includes(token)) throw new RangeError(_message);
12697
12710
  }
12698
- function message(token, format, input) {
12711
+ function message$1(token, format, input) {
12699
12712
  const subject = token[0] === "Y" ? "years" : "days of the month";
12700
12713
  return `Use \`${token.toLowerCase()}\` instead of \`${token}\` (in \`${format}\`) for formatting ${subject} to the input \`${input}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`;
12701
12714
  }
@@ -13067,7 +13080,7 @@ function format$2(date, formatStr, options) {
13067
13080
  if (!part.isToken) return part.value;
13068
13081
  const token = part.value;
13069
13082
  if (!options?.useAdditionalWeekYearTokens && isProtectedWeekYearToken$1(token) || !options?.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken$1(token)) {
13070
- warnOrThrowProtectedError(token, formatStr, String(date));
13083
+ warnOrThrowProtectedError$1(token, formatStr, String(date));
13071
13084
  }
13072
13085
  const formatter = formatters$2[token[0]];
13073
13086
  return formatter(originalDate, token, locale.localize, formatterOptions);
@@ -13293,6 +13306,53 @@ function setYear(date, year, options) {
13293
13306
  return date_;
13294
13307
  }
13295
13308
 
13309
+ const FIVE_WEEKS = 5;
13310
+ const FOUR_WEEKS = 4;
13311
+ /**
13312
+ * Return the number of weeks to display in the broadcast calendar.
13313
+ *
13314
+ * @since 9.4.0
13315
+ */
13316
+ function getBroadcastWeeksInMonth(month, dateLib) {
13317
+ // Get the first day of the month
13318
+ const firstDayOfMonth = dateLib.startOfMonth(month);
13319
+ // Get the day of the week for the first day of the month (1-7, where 1 is Monday)
13320
+ const firstDayOfWeek = firstDayOfMonth.getDay() > 0 ? firstDayOfMonth.getDay() : 7;
13321
+ const broadcastStartDate = dateLib.addDays(month, -firstDayOfWeek + 1);
13322
+ const lastDateOfLastWeek = dateLib.addDays(broadcastStartDate, FIVE_WEEKS * 7 - 1);
13323
+ const numberOfWeeks = month.getMonth() === lastDateOfLastWeek.getMonth() ? FIVE_WEEKS : FOUR_WEEKS;
13324
+ return numberOfWeeks;
13325
+ }
13326
+
13327
+ /**
13328
+ * Return the start date of the week in the broadcast calendar.
13329
+ *
13330
+ * @since 9.4.0
13331
+ */
13332
+ function startOfBroadcastWeek(date, dateLib) {
13333
+ const firstOfMonth = dateLib.startOfMonth(date);
13334
+ const dayOfWeek = firstOfMonth.getDay();
13335
+ if (dayOfWeek === 1) {
13336
+ return firstOfMonth;
13337
+ } else if (dayOfWeek === 0) {
13338
+ return dateLib.addDays(firstOfMonth, -1 * 6);
13339
+ } else {
13340
+ return dateLib.addDays(firstOfMonth, -1 * (dayOfWeek - 1));
13341
+ }
13342
+ }
13343
+
13344
+ /**
13345
+ * Return the end date of the week in the broadcast calendar.
13346
+ *
13347
+ * @since 9.4.0
13348
+ */
13349
+ function endOfBroadcastWeek(date, dateLib) {
13350
+ const startDate = startOfBroadcastWeek(date, dateLib);
13351
+ const numberOfWeeks = getBroadcastWeeksInMonth(date, dateLib);
13352
+ const endDate = dateLib.addDays(startDate, numberOfWeeks * 7 - 1);
13353
+ return endDate;
13354
+ }
13355
+
13296
13356
  /**
13297
13357
  * A wrapper class around [date-fns](http://date-fns.org) sharing the same
13298
13358
  * options. Methods of this class can be overridden using the
@@ -13373,6 +13433,15 @@ class DateLib {
13373
13433
  this.differenceInCalendarMonths = (dateLeft, dateRight) => {
13374
13434
  return this.overrides?.differenceInCalendarMonths ? this.overrides.differenceInCalendarMonths(dateLeft, dateRight) : differenceInCalendarMonths(dateLeft, dateRight);
13375
13435
  };
13436
+ /**
13437
+ * Returns the end of the broadcast week for the given date.
13438
+ *
13439
+ * @param date The original date.
13440
+ * @returns The end of the broadcast week.
13441
+ */
13442
+ this.endOfBroadcastWeek = date => {
13443
+ return this.overrides?.endOfBroadcastWeek ? this.overrides.endOfBroadcastWeek(date, this) : endOfBroadcastWeek(date, this);
13444
+ };
13376
13445
  /**
13377
13446
  * Returns the end of the ISO week for the given date.
13378
13447
  *
@@ -13534,6 +13603,15 @@ class DateLib {
13534
13603
  this.setYear = (date, year) => {
13535
13604
  return this.overrides?.setYear ? this.overrides.setYear(date, year) : setYear(date, year);
13536
13605
  };
13606
+ /**
13607
+ * Returns the start of the broadcast week for the given date.
13608
+ *
13609
+ * @param date The original date.
13610
+ * @returns The start of the broadcast week.
13611
+ */
13612
+ this.startOfBroadcastWeek = date => {
13613
+ return this.overrides?.startOfBroadcastWeek ? this.overrides.startOfBroadcastWeek(date, this) : startOfBroadcastWeek(date, this);
13614
+ };
13537
13615
  /**
13538
13616
  * Returns the start of the day for the given date.
13539
13617
  *
@@ -14016,7 +14094,9 @@ function Weekday(props) {
14016
14094
  * @see https://daypicker.dev/guides/custom-components
14017
14095
  */
14018
14096
  function Weekdays(props) {
14019
- return /*#__PURE__*/React.createElement("thead", null, /*#__PURE__*/React.createElement("tr", {
14097
+ return /*#__PURE__*/React.createElement("thead", {
14098
+ "aria-hidden": true
14099
+ }, /*#__PURE__*/React.createElement("tr", {
14020
14100
  ...props
14021
14101
  }));
14022
14102
  }
@@ -14119,7 +14199,8 @@ function getDataAttributes(props) {
14119
14199
  "data-mode": props.mode ?? undefined,
14120
14200
  "data-required": "required" in props ? props.required : undefined,
14121
14201
  "data-multiple-months": props.numberOfMonths && props.numberOfMonths > 1 || undefined,
14122
- "data-week-numbers": props.showWeekNumber || undefined
14202
+ "data-week-numbers": props.showWeekNumber || undefined,
14203
+ "data-broadcast-calendar": props.broadcastCalendar || undefined
14123
14204
  };
14124
14205
  Object.entries(props).forEach(([key, val]) => {
14125
14206
  if (key.startsWith("data-")) {
@@ -14185,7 +14266,7 @@ function formatDay(date, options, dateLib) {
14185
14266
  */
14186
14267
  function formatMonthDropdown(/** The month number to format. */
14187
14268
  monthNumber, /** The locale to use for formatting. */
14188
- locale = enUS$1) {
14269
+ locale) {
14189
14270
  return locale.localize?.month(monthNumber);
14190
14271
  }
14191
14272
 
@@ -14275,13 +14356,12 @@ function getMonthOptions(displayMonth, navStart, navEnd, formatters, dateLib) {
14275
14356
  if (!navEnd) return undefined;
14276
14357
  const {
14277
14358
  addMonths,
14278
- startOfMonth,
14279
- isBefore
14359
+ startOfMonth
14280
14360
  } = dateLib;
14281
14361
  const year = displayMonth.getFullYear();
14282
14362
  const months = [];
14283
14363
  let month = navStart;
14284
- while (months.length < 12 && isBefore(month, addMonths(navEnd, 1))) {
14364
+ while (months.length < 12) {
14285
14365
  months.push(month.getMonth());
14286
14366
  month = addMonths(month, 1);
14287
14367
  }
@@ -14289,7 +14369,7 @@ function getMonthOptions(displayMonth, navStart, navEnd, formatters, dateLib) {
14289
14369
  return a - b;
14290
14370
  });
14291
14371
  const options = sortedMonths.map(value => {
14292
- const label = formatters.formatMonthDropdown(value, dateLib.options.locale);
14372
+ const label = formatters.formatMonthDropdown(value, dateLib.options.locale ?? enUS$1);
14293
14373
  const month = dateLib.Date ? new dateLib.Date(year, value) : new Date(year, value);
14294
14374
  const disabled = navStart && month < startOfMonth(navStart) || navEnd && month > startOfMonth(navEnd) || false;
14295
14375
  return {
@@ -14664,7 +14744,8 @@ function tzName(tz, date) {
14664
14744
  */
14665
14745
  function getWeekdays(/** The date library. */
14666
14746
  dateLib, /** Use ISOWeek instead of locale/ */
14667
- ISOWeek, timeZone) {
14747
+ ISOWeek, timeZone, /** @since 9.4.0 */
14748
+ broadcastCalendar) {
14668
14749
  const date = timeZone ? TZDate.tz(timeZone) : dateLib.Date ? new dateLib.Date() : new Date();
14669
14750
  const start = ISOWeek ? dateLib.startOfISOWeek(date) : dateLib.startOfWeek(date);
14670
14751
  const days = [];
@@ -14676,20 +14757,18 @@ ISOWeek, timeZone) {
14676
14757
  }
14677
14758
 
14678
14759
  /** Return the years to show in the dropdown. */
14679
- function getYearOptions(displayMonth, calendarStart, calendarEnd, formatters, dateLib) {
14680
- if (!calendarStart) return undefined;
14681
- if (!calendarEnd) return undefined;
14760
+ function getYearOptions(navStart, navEnd, formatters, dateLib) {
14761
+ if (!navStart) return undefined;
14762
+ if (!navEnd) return undefined;
14682
14763
  const {
14683
- startOfMonth,
14684
14764
  startOfYear,
14685
14765
  endOfYear,
14686
14766
  addYears,
14687
14767
  isBefore,
14688
14768
  isSameYear
14689
14769
  } = dateLib;
14690
- const month = displayMonth.getMonth();
14691
- const firstNavYear = startOfYear(calendarStart);
14692
- const lastNavYear = endOfYear(calendarEnd);
14770
+ const firstNavYear = startOfYear(navStart);
14771
+ const lastNavYear = endOfYear(navEnd);
14693
14772
  const years = [];
14694
14773
  let year = firstNavYear;
14695
14774
  while (isBefore(year, lastNavYear) || isSameYear(year, lastNavYear)) {
@@ -14697,13 +14776,11 @@ function getYearOptions(displayMonth, calendarStart, calendarEnd, formatters, da
14697
14776
  year = addYears(year, 1);
14698
14777
  }
14699
14778
  return years.map(value => {
14700
- const year = dateLib.Date ? new dateLib.Date(value, month) : new Date(value, month);
14701
- const disabled = calendarStart && year < startOfMonth(calendarStart) || month && calendarEnd && year > startOfMonth(calendarEnd) || false;
14702
14779
  const label = formatters.formatYearDropdown(value);
14703
14780
  return {
14704
14781
  value,
14705
14782
  label,
14706
- disabled
14783
+ disabled: false
14707
14784
  };
14708
14785
  });
14709
14786
  }
@@ -14867,29 +14944,30 @@ var defaultLabels = /*#__PURE__*/Object.freeze({
14867
14944
  labelYearDropdown: labelYearDropdown
14868
14945
  });
14869
14946
 
14870
- /** The number of days in a month when having 6 weeks. */
14871
- const NrOfDaysWithFixedWeeks = 42;
14872
14947
  /** Return all the dates to display in the calendar. */
14873
14948
  function getDates(displayMonths, maxDate, props, dateLib) {
14874
14949
  const firstMonth = displayMonths[0];
14875
14950
  const lastMonth = displayMonths[displayMonths.length - 1];
14876
14951
  const {
14877
14952
  ISOWeek,
14878
- fixedWeeks
14953
+ fixedWeeks,
14954
+ broadcastCalendar
14879
14955
  } = props ?? {};
14880
14956
  const {
14881
- startOfWeek,
14882
- endOfWeek,
14883
- startOfISOWeek,
14884
- endOfISOWeek,
14885
14957
  addDays,
14886
14958
  differenceInCalendarDays,
14887
14959
  differenceInCalendarMonths,
14960
+ endOfBroadcastWeek,
14961
+ endOfISOWeek,
14962
+ endOfMonth,
14963
+ endOfWeek,
14888
14964
  isAfter,
14889
- endOfMonth
14965
+ startOfBroadcastWeek,
14966
+ startOfISOWeek,
14967
+ startOfWeek
14890
14968
  } = dateLib;
14891
- const startWeekFirstDate = ISOWeek ? startOfISOWeek(firstMonth) : startOfWeek(firstMonth);
14892
- const endWeekLastDate = ISOWeek ? endOfISOWeek(endOfMonth(lastMonth)) : endOfWeek(endOfMonth(lastMonth));
14969
+ const startWeekFirstDate = broadcastCalendar ? startOfBroadcastWeek(firstMonth, dateLib) : ISOWeek ? startOfISOWeek(firstMonth) : startOfWeek(firstMonth);
14970
+ const endWeekLastDate = broadcastCalendar ? endOfBroadcastWeek(lastMonth, dateLib) : ISOWeek ? endOfISOWeek(endOfMonth(lastMonth)) : endOfWeek(endOfMonth(lastMonth));
14893
14971
  const nOfDays = differenceInCalendarDays(endWeekLastDate, startWeekFirstDate);
14894
14972
  const nOfMonths = differenceInCalendarMonths(lastMonth, firstMonth) + 1;
14895
14973
  const dates = [];
@@ -14901,9 +14979,11 @@ function getDates(displayMonths, maxDate, props, dateLib) {
14901
14979
  dates.push(date);
14902
14980
  }
14903
14981
  // If fixed weeks is enabled, add the extra dates to the array
14904
- const extraDates = NrOfDaysWithFixedWeeks * nOfMonths;
14982
+ const nrOfDaysWithFixedWeeks = broadcastCalendar ? 35 : 42;
14983
+ const extraDates = nrOfDaysWithFixedWeeks * nOfMonths;
14905
14984
  if (fixedWeeks && dates.length < extraDates) {
14906
- for (let i = 0; i < 7; i++) {
14985
+ const daysToAdd = extraDates - dates.length;
14986
+ for (let i = 0; i < daysToAdd; i++) {
14907
14987
  const date = addDays(dates[dates.length - 1], 1);
14908
14988
  dates.push(date);
14909
14989
  }
@@ -15014,25 +15094,29 @@ displayMonths, /** The dates to display in the calendar. */
15014
15094
  dates, /** Options from the props context. */
15015
15095
  props, dateLib) {
15016
15096
  const {
15017
- startOfWeek,
15018
- endOfWeek,
15019
- startOfISOWeek,
15097
+ addDays,
15098
+ endOfBroadcastWeek,
15020
15099
  endOfISOWeek,
15021
15100
  endOfMonth,
15022
- addDays,
15101
+ endOfWeek,
15102
+ getISOWeek,
15023
15103
  getWeek,
15024
- getISOWeek
15104
+ startOfBroadcastWeek,
15105
+ startOfISOWeek,
15106
+ startOfWeek
15025
15107
  } = dateLib;
15026
15108
  const dayPickerMonths = displayMonths.reduce((months, month) => {
15027
- const firstDateOfFirstWeek = props.ISOWeek ? startOfISOWeek(month) : startOfWeek(month);
15028
- const lastDateOfLastWeek = props.ISOWeek ? endOfISOWeek(endOfMonth(month)) : endOfWeek(endOfMonth(month));
15109
+ const firstDateOfFirstWeek = props.broadcastCalendar ? startOfBroadcastWeek(month, dateLib) : props.ISOWeek ? startOfISOWeek(month) : startOfWeek(month);
15110
+ const lastDateOfLastWeek = props.broadcastCalendar ? endOfBroadcastWeek(month, dateLib) : props.ISOWeek ? endOfISOWeek(endOfMonth(month)) : endOfWeek(endOfMonth(month));
15029
15111
  /** The dates to display in the month. */
15030
15112
  const monthDates = dates.filter(date => {
15031
15113
  return date >= firstDateOfFirstWeek && date <= lastDateOfLastWeek;
15032
15114
  });
15033
- if (props.fixedWeeks && monthDates.length < 42) {
15115
+ const nrOfDaysWithFixedWeeks = props.broadcastCalendar ? 35 : 42;
15116
+ if (props.fixedWeeks && monthDates.length < nrOfDaysWithFixedWeeks) {
15034
15117
  const extraDates = dates.filter(date => {
15035
- return date > lastDateOfLastWeek && date <= addDays(lastDateOfLastWeek, 7);
15118
+ const daysToAdd = nrOfDaysWithFixedWeeks - monthDates.length;
15119
+ return date > lastDateOfLastWeek && date <= addDays(lastDateOfLastWeek, daysToAdd);
15036
15120
  });
15037
15121
  monthDates.push(...extraDates);
15038
15122
  }
@@ -15470,27 +15554,30 @@ function dateMatchModifiers(date, matchers, dateLib = defaultDateLib) {
15470
15554
  /** Return the next date that should be focused. */
15471
15555
  function getFocusableDate(moveBy, moveDir, refDate, navStart, navEnd, props, dateLib) {
15472
15556
  const {
15473
- ISOWeek
15557
+ ISOWeek,
15558
+ broadcastCalendar
15474
15559
  } = props;
15475
15560
  const {
15476
15561
  addDays,
15477
15562
  addMonths,
15478
- addYears,
15479
15563
  addWeeks,
15480
- startOfISOWeek,
15564
+ addYears,
15565
+ endOfBroadcastWeek,
15481
15566
  endOfISOWeek,
15482
- startOfWeek,
15483
15567
  endOfWeek,
15484
15568
  max,
15485
- min
15569
+ min,
15570
+ startOfBroadcastWeek,
15571
+ startOfISOWeek,
15572
+ startOfWeek
15486
15573
  } = dateLib;
15487
15574
  const moveFns = {
15488
15575
  day: addDays,
15489
15576
  week: addWeeks,
15490
15577
  month: addMonths,
15491
15578
  year: addYears,
15492
- startOfWeek: date => ISOWeek ? startOfISOWeek(date) : startOfWeek(date),
15493
- endOfWeek: date => ISOWeek ? endOfISOWeek(date) : endOfWeek(date)
15579
+ startOfWeek: date => broadcastCalendar ? startOfBroadcastWeek(date, dateLib) : ISOWeek ? startOfISOWeek(date) : startOfWeek(date),
15580
+ endOfWeek: date => broadcastCalendar ? endOfBroadcastWeek(date, dateLib) : ISOWeek ? endOfISOWeek(date) : endOfWeek(date)
15494
15581
  };
15495
15582
  let focusableDate = moveFns[moveBy](refDate, moveDir === "after" ? 1 : -1);
15496
15583
  if (moveDir === "before" && navStart) {
@@ -15556,6 +15643,8 @@ function useFocus(props, calendar, getModifiers, isSelected, dateLib) {
15556
15643
  /**
15557
15644
  * Return a function to get the modifiers for a given day.
15558
15645
  *
15646
+ * NOTE: this is not an hook, but a factory for `getModifiers`.
15647
+ *
15559
15648
  * @private
15560
15649
  */
15561
15650
  function useGetModifiers(days, props, dateLib) {
@@ -15564,12 +15653,19 @@ function useGetModifiers(days, props, dateLib) {
15564
15653
  hidden,
15565
15654
  modifiers,
15566
15655
  showOutsideDays,
15656
+ broadcastCalendar,
15567
15657
  today
15568
15658
  } = props;
15569
15659
  const {
15570
15660
  isSameDay,
15571
- isSameMonth
15661
+ isSameMonth,
15662
+ startOfMonth,
15663
+ isBefore,
15664
+ endOfMonth,
15665
+ isAfter
15572
15666
  } = dateLib;
15667
+ const startMonth = props.startMonth && startOfMonth(props.startMonth);
15668
+ const endMonth = props.endMonth && endOfMonth(props.endMonth);
15573
15669
  const internalModifiersMap = {
15574
15670
  [DayFlag.focused]: [],
15575
15671
  [DayFlag.outside]: [],
@@ -15578,20 +15674,18 @@ function useGetModifiers(days, props, dateLib) {
15578
15674
  [DayFlag.today]: []
15579
15675
  };
15580
15676
  const customModifiersMap = {};
15581
- const selectionModifiersMap = {
15582
- [SelectionState.range_end]: [],
15583
- [SelectionState.range_middle]: [],
15584
- [SelectionState.range_start]: [],
15585
- [SelectionState.selected]: []
15586
- };
15587
15677
  for (const day of days) {
15588
15678
  const {
15589
15679
  date,
15590
15680
  displayMonth
15591
15681
  } = day;
15592
15682
  const isOutside = Boolean(displayMonth && !isSameMonth(date, displayMonth));
15683
+ const isBeforeStartMonth = Boolean(startMonth && isBefore(date, startMonth));
15684
+ const isAfterEndMonth = Boolean(endMonth && isAfter(date, endMonth));
15593
15685
  const isDisabled = Boolean(disabled && dateMatchModifiers(date, disabled, dateLib));
15594
- const isHidden = Boolean(hidden && dateMatchModifiers(date, hidden, dateLib)) || !showOutsideDays && isOutside;
15686
+ const isHidden = Boolean(hidden && dateMatchModifiers(date, hidden, dateLib)) || isBeforeStartMonth || isAfterEndMonth ||
15687
+ // Broadcast calendar will show outside days as default
15688
+ !broadcastCalendar && !showOutsideDays && isOutside || broadcastCalendar && showOutsideDays === false && isOutside;
15595
15689
  const isToday = isSameDay(date, today ?? (props.timeZone ? TZDate.tz(props.timeZone) : dateLib.Date ? new dateLib.Date() : new Date()));
15596
15690
  if (isOutside) internalModifiersMap.outside.push(day);
15597
15691
  if (isDisabled) internalModifiersMap.disabled.push(day);
@@ -15620,27 +15714,16 @@ function useGetModifiers(days, props, dateLib) {
15620
15714
  [DayFlag.outside]: false,
15621
15715
  [DayFlag.today]: false
15622
15716
  };
15623
- const selectionStates = {
15624
- [SelectionState.range_end]: false,
15625
- [SelectionState.range_middle]: false,
15626
- [SelectionState.range_start]: false,
15627
- [SelectionState.selected]: false
15628
- };
15629
15717
  const customModifiers = {};
15630
15718
  // Find the modifiers for the given day
15631
15719
  for (const name in internalModifiersMap) {
15632
15720
  const days = internalModifiersMap[name];
15633
15721
  dayFlags[name] = days.some(d => d === day);
15634
15722
  }
15635
- for (const name in selectionModifiersMap) {
15636
- const days = selectionModifiersMap[name];
15637
- selectionStates[name] = days.some(d => d === day);
15638
- }
15639
15723
  for (const name in customModifiersMap) {
15640
15724
  customModifiers[name] = customModifiersMap[name].some(d => d === day);
15641
15725
  }
15642
15726
  return {
15643
- ...selectionStates,
15644
15727
  ...dayFlags,
15645
15728
  // custom modifiers should override all the previous ones
15646
15729
  ...customModifiers
@@ -16045,7 +16128,7 @@ function DayPicker(props) {
16045
16128
  };
16046
16129
  const dateLib = new DateLib({
16047
16130
  locale,
16048
- weekStartsOn: props.weekStartsOn,
16131
+ weekStartsOn: props.broadcastCalendar ? 1 : props.weekStartsOn,
16049
16132
  firstWeekContainsDate: props.firstWeekContainsDate,
16050
16133
  useAdditionalWeekYearTokens: props.useAdditionalWeekYearTokens,
16051
16134
  useAdditionalDayOfYearTokens: props.useAdditionalDayOfYearTokens
@@ -16064,7 +16147,7 @@ function DayPicker(props) {
16064
16147
  ...props.classNames
16065
16148
  }
16066
16149
  };
16067
- }, [props.classNames, props.components, props.dateLib, props.firstWeekContainsDate, props.formatters, props.labels, props.locale, props.useAdditionalDayOfYearTokens, props.useAdditionalWeekYearTokens, props.weekStartsOn]);
16150
+ }, [props.classNames, props.components, props.dateLib, props.firstWeekContainsDate, props.formatters, props.labels, props.locale, props.useAdditionalDayOfYearTokens, props.useAdditionalWeekYearTokens, props.weekStartsOn, props.broadcastCalendar]);
16068
16151
  const {
16069
16152
  captionLayout,
16070
16153
  mode,
@@ -16174,6 +16257,16 @@ function DayPicker(props) {
16174
16257
  const handleDayMouseLeave = React.useCallback((day, modifiers) => e => {
16175
16258
  onDayMouseLeave?.(day.date, modifiers, e);
16176
16259
  }, [onDayMouseLeave]);
16260
+ const handleMonthChange = React.useCallback(date => e => {
16261
+ const selectedMonth = Number(e.target.value);
16262
+ const month = dateLib.setMonth(dateLib.startOfMonth(date), selectedMonth);
16263
+ goToMonth(month);
16264
+ }, [dateLib, goToMonth]);
16265
+ const handleYearChange = React.useCallback(date => e => {
16266
+ const selectedYear = Number(e.target.value);
16267
+ const month = dateLib.setYear(dateLib.startOfMonth(date), selectedYear);
16268
+ goToMonth(month);
16269
+ }, [dateLib, goToMonth]);
16177
16270
  const {
16178
16271
  className,
16179
16272
  style
@@ -16211,6 +16304,8 @@ function DayPicker(props) {
16211
16304
  lang: props.lang,
16212
16305
  nonce: props.nonce,
16213
16306
  title: props.title,
16307
+ role: props.role,
16308
+ "aria-label": props["aria-label"],
16214
16309
  ...dataAttributes
16215
16310
  }, /*#__PURE__*/React.createElement(components.Months, {
16216
16311
  className: classNames[UI.Months],
@@ -16224,17 +16319,8 @@ function DayPicker(props) {
16224
16319
  previousMonth: previousMonth,
16225
16320
  nextMonth: nextMonth
16226
16321
  })), months.map((calendarMonth, displayIndex) => {
16227
- const handleMonthChange = e => {
16228
- const selectedMonth = Number(e.target.value);
16229
- const month = dateLib.setMonth(dateLib.startOfMonth(calendarMonth.date), selectedMonth);
16230
- goToMonth(month);
16231
- };
16232
- const handleYearChange = e => {
16233
- const month = dateLib.setYear(dateLib.startOfMonth(calendarMonth.date), Number(e.target.value));
16234
- goToMonth(month);
16235
- };
16236
16322
  const dropdownMonths = getMonthOptions(calendarMonth.date, navStart, navEnd, formatters, dateLib);
16237
- const dropdownYears = getYearOptions(months[0].date, navStart, navEnd, formatters, dateLib);
16323
+ const dropdownYears = getYearOptions(navStart, navEnd, formatters, dateLib);
16238
16324
  return /*#__PURE__*/React.createElement(components.Month, {
16239
16325
  className: classNames[UI.Month],
16240
16326
  style: styles?.[UI.Month],
@@ -16255,7 +16341,7 @@ function DayPicker(props) {
16255
16341
  classNames: classNames,
16256
16342
  components: components,
16257
16343
  disabled: Boolean(props.disableNavigation),
16258
- onChange: handleMonthChange,
16344
+ onChange: handleMonthChange(calendarMonth.date),
16259
16345
  options: dropdownMonths,
16260
16346
  style: styles?.[UI.Dropdown],
16261
16347
  value: calendarMonth.date.getMonth()
@@ -16268,7 +16354,7 @@ function DayPicker(props) {
16268
16354
  classNames: classNames,
16269
16355
  components: components,
16270
16356
  disabled: Boolean(props.disableNavigation),
16271
- onChange: handleYearChange,
16357
+ onChange: handleYearChange(calendarMonth.date),
16272
16358
  options: dropdownYears,
16273
16359
  style: styles?.[UI.Dropdown],
16274
16360
  value: calendarMonth.date.getFullYear()
@@ -16315,7 +16401,8 @@ function DayPicker(props) {
16315
16401
  locale
16316
16402
  }),
16317
16403
  className: classNames[UI.WeekNumber],
16318
- scope: "row"
16404
+ scope: "row",
16405
+ role: "rowheader"
16319
16406
  }, formatWeekNumber(week.weekNumber))), week.days.map(day => {
16320
16407
  const {
16321
16408
  date
@@ -16335,14 +16422,14 @@ function DayPicker(props) {
16335
16422
  }
16336
16423
  const style = getStyleForModifiers(modifiers, styles, props.modifiersStyles);
16337
16424
  const className = getClassNamesForModifiers(modifiers, classNames, props.modifiersClassNames);
16338
- const ariaLabel = !isInteractive ? labelGridcell(date, modifiers, dateLib.options, dateLib) : undefined;
16425
+ const ariaLabel = !isInteractive && !modifiers.hidden ? labelGridcell(date, modifiers, dateLib.options, dateLib) : undefined;
16339
16426
  return /*#__PURE__*/React.createElement(components.Day, {
16340
16427
  key: `${dateLib.format(date, "yyyy-MM-dd")}_${dateLib.format(day.displayMonth, "yyyy-MM")}`,
16341
16428
  day: day,
16342
16429
  modifiers: modifiers,
16343
16430
  className: className.join(" "),
16344
16431
  style: style,
16345
- "aria-hidden": modifiers.hidden || undefined,
16432
+ role: "gridcell",
16346
16433
  "aria-selected": modifiers.selected || undefined,
16347
16434
  "aria-label": ariaLabel,
16348
16435
  "data-day": dateLib.format(date, "yyyy-MM-dd"),
@@ -16353,7 +16440,7 @@ function DayPicker(props) {
16353
16440
  "data-outside": day.outside || undefined,
16354
16441
  "data-focused": modifiers.focused || undefined,
16355
16442
  "data-today": modifiers.today || undefined
16356
- }, isInteractive ? (/*#__PURE__*/React.createElement(components.DayButton, {
16443
+ }, !modifiers.hidden && isInteractive ? (/*#__PURE__*/React.createElement(components.DayButton, {
16357
16444
  className: classNames[UI.DayButton],
16358
16445
  style: styles?.[UI.DayButton],
16359
16446
  type: "button",
@@ -16368,7 +16455,7 @@ function DayPicker(props) {
16368
16455
  onKeyDown: handleDayKeyDown(day, modifiers),
16369
16456
  onMouseEnter: handleDayMouseEnter(day, modifiers),
16370
16457
  onMouseLeave: handleDayMouseLeave(day, modifiers)
16371
- }, formatDay(date, dateLib.options, dateLib))) : formatDay(day.date, dateLib.options, dateLib));
16458
+ }, formatDay(date, dateLib.options, dateLib))) : !modifiers.hidden && formatDay(day.date, dateLib.options, dateLib));
16372
16459
  }));
16373
16460
  }))));
16374
16461
  })), props.footer && (/*#__PURE__*/React.createElement(components.Footer, {
@@ -16379,143 +16466,6 @@ function DayPicker(props) {
16379
16466
  }, props.footer))));
16380
16467
  }
16381
16468
 
16382
- /**
16383
- * @name isDate
16384
- * @category Common Helpers
16385
- * @summary Is the given value a date?
16386
- *
16387
- * @description
16388
- * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.
16389
- *
16390
- * @param value - The value to check
16391
- *
16392
- * @returns True if the given value is a date
16393
- *
16394
- * @example
16395
- * // For a valid date:
16396
- * const result = isDate(new Date())
16397
- * //=> true
16398
- *
16399
- * @example
16400
- * // For an invalid date:
16401
- * const result = isDate(new Date(NaN))
16402
- * //=> true
16403
- *
16404
- * @example
16405
- * // For some value:
16406
- * const result = isDate('2014-02-31')
16407
- * //=> false
16408
- *
16409
- * @example
16410
- * // For an object:
16411
- * const result = isDate({})
16412
- * //=> false
16413
- */
16414
- function isDate(value) {
16415
- return (
16416
- value instanceof Date ||
16417
- (typeof value === "object" &&
16418
- Object.prototype.toString.call(value) === "[object Date]")
16419
- );
16420
- }
16421
-
16422
- /**
16423
- * @name toDate
16424
- * @category Common Helpers
16425
- * @summary Convert the given argument to an instance of Date.
16426
- *
16427
- * @description
16428
- * Convert the given argument to an instance of Date.
16429
- *
16430
- * If the argument is an instance of Date, the function returns its clone.
16431
- *
16432
- * If the argument is a number, it is treated as a timestamp.
16433
- *
16434
- * If the argument is none of the above, the function returns Invalid Date.
16435
- *
16436
- * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.
16437
- *
16438
- * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
16439
- *
16440
- * @param argument - The value to convert
16441
- *
16442
- * @returns The parsed date in the local time zone
16443
- *
16444
- * @example
16445
- * // Clone the date:
16446
- * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))
16447
- * //=> Tue Feb 11 2014 11:30:30
16448
- *
16449
- * @example
16450
- * // Convert the timestamp to date:
16451
- * const result = toDate(1392098430000)
16452
- * //=> Tue Feb 11 2014 11:30:30
16453
- */
16454
- function toDate$1(argument) {
16455
- const argStr = Object.prototype.toString.call(argument);
16456
-
16457
- // Clone the date
16458
- if (
16459
- argument instanceof Date ||
16460
- (typeof argument === "object" && argStr === "[object Date]")
16461
- ) {
16462
- // Prevent the date to lose the milliseconds when passed to new Date() in IE10
16463
- return new argument.constructor(+argument);
16464
- } else if (
16465
- typeof argument === "number" ||
16466
- argStr === "[object Number]" ||
16467
- typeof argStr === "string" ||
16468
- argStr === "[object String]"
16469
- ) {
16470
- // TODO: Can we get rid of as?
16471
- return new Date(argument);
16472
- } else {
16473
- // TODO: Can we get rid of as?
16474
- return new Date(NaN);
16475
- }
16476
- }
16477
-
16478
- /**
16479
- * @name isValid
16480
- * @category Common Helpers
16481
- * @summary Is the given date valid?
16482
- *
16483
- * @description
16484
- * Returns false if argument is Invalid Date and true otherwise.
16485
- * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate)
16486
- * Invalid Date is a Date, whose time value is NaN.
16487
- *
16488
- * Time value of Date: http://es5.github.io/#x15.9.1.1
16489
- *
16490
- * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
16491
- *
16492
- * @param date - The date to check
16493
- *
16494
- * @returns The date is valid
16495
- *
16496
- * @example
16497
- * // For the valid date:
16498
- * const result = isValid(new Date(2014, 1, 31))
16499
- * //=> true
16500
- *
16501
- * @example
16502
- * // For the value, convertable into a date:
16503
- * const result = isValid(1393804800000)
16504
- * //=> true
16505
- *
16506
- * @example
16507
- * // For the invalid date:
16508
- * const result = isValid(new Date(''))
16509
- * //=> false
16510
- */
16511
- function isValid(date) {
16512
- if (!isDate(date) && typeof date !== "number") {
16513
- return false;
16514
- }
16515
- const _date = toDate$1(date);
16516
- return !isNaN(Number(_date));
16517
- }
16518
-
16519
16469
  const formatDistanceLocale = {
16520
16470
  lessThanXSeconds: {
16521
16471
  one: "less than a second",
@@ -17196,6 +17146,62 @@ const millisecondsInWeek = 604800000;
17196
17146
  */
17197
17147
  const millisecondsInDay = 86400000;
17198
17148
 
17149
+ /**
17150
+ * @name toDate
17151
+ * @category Common Helpers
17152
+ * @summary Convert the given argument to an instance of Date.
17153
+ *
17154
+ * @description
17155
+ * Convert the given argument to an instance of Date.
17156
+ *
17157
+ * If the argument is an instance of Date, the function returns its clone.
17158
+ *
17159
+ * If the argument is a number, it is treated as a timestamp.
17160
+ *
17161
+ * If the argument is none of the above, the function returns Invalid Date.
17162
+ *
17163
+ * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.
17164
+ *
17165
+ * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
17166
+ *
17167
+ * @param argument - The value to convert
17168
+ *
17169
+ * @returns The parsed date in the local time zone
17170
+ *
17171
+ * @example
17172
+ * // Clone the date:
17173
+ * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))
17174
+ * //=> Tue Feb 11 2014 11:30:30
17175
+ *
17176
+ * @example
17177
+ * // Convert the timestamp to date:
17178
+ * const result = toDate(1392098430000)
17179
+ * //=> Tue Feb 11 2014 11:30:30
17180
+ */
17181
+ function toDate$1(argument) {
17182
+ const argStr = Object.prototype.toString.call(argument);
17183
+
17184
+ // Clone the date
17185
+ if (
17186
+ argument instanceof Date ||
17187
+ (typeof argument === "object" && argStr === "[object Date]")
17188
+ ) {
17189
+ // Prevent the date to lose the milliseconds when passed to new Date() in IE10
17190
+ return new argument.constructor(+argument);
17191
+ } else if (
17192
+ typeof argument === "number" ||
17193
+ argStr === "[object Number]" ||
17194
+ typeof argument === "string" ||
17195
+ argStr === "[object String]"
17196
+ ) {
17197
+ // TODO: Can we get rid of as?
17198
+ return new Date(argument);
17199
+ } else {
17200
+ // TODO: Can we get rid of as?
17201
+ return new Date(NaN);
17202
+ }
17203
+ }
17204
+
17199
17205
  /**
17200
17206
  * @name startOfDay
17201
17207
  * @category Day Helpers
@@ -17234,19 +17240,20 @@ function startOfDay(date) {
17234
17240
  * This function returns the timezone offset in milliseconds that takes seconds in account.
17235
17241
  */
17236
17242
  function getTimezoneOffsetInMilliseconds$1(date) {
17243
+ const _date = toDate$1(date);
17237
17244
  const utcDate = new Date(
17238
17245
  Date.UTC(
17239
- date.getFullYear(),
17240
- date.getMonth(),
17241
- date.getDate(),
17242
- date.getHours(),
17243
- date.getMinutes(),
17244
- date.getSeconds(),
17245
- date.getMilliseconds(),
17246
+ _date.getFullYear(),
17247
+ _date.getMonth(),
17248
+ _date.getDate(),
17249
+ _date.getHours(),
17250
+ _date.getMinutes(),
17251
+ _date.getSeconds(),
17252
+ _date.getMilliseconds(),
17246
17253
  ),
17247
17254
  );
17248
- utcDate.setUTCFullYear(date.getFullYear());
17249
- return date.getTime() - utcDate.getTime();
17255
+ utcDate.setUTCFullYear(_date.getFullYear());
17256
+ return +date - +utcDate;
17250
17257
  }
17251
17258
 
17252
17259
  /**
@@ -17286,14 +17293,13 @@ function differenceInCalendarDays(dateLeft, dateRight) {
17286
17293
  const startOfDayRight = startOfDay(dateRight);
17287
17294
 
17288
17295
  const timestampLeft =
17289
- startOfDayLeft.getTime() - getTimezoneOffsetInMilliseconds$1(startOfDayLeft);
17296
+ +startOfDayLeft - getTimezoneOffsetInMilliseconds$1(startOfDayLeft);
17290
17297
  const timestampRight =
17291
- startOfDayRight.getTime() -
17292
- getTimezoneOffsetInMilliseconds$1(startOfDayRight);
17298
+ +startOfDayRight - getTimezoneOffsetInMilliseconds$1(startOfDayRight);
17293
17299
 
17294
- // Round the number of days to the nearest integer
17295
- // because the number of milliseconds in a day is not constant
17296
- // (e.g. it's different in the day of the daylight saving time clock shift)
17300
+ // Round the number of days to the nearest integer because the number of
17301
+ // milliseconds in a day is not constant (e.g. it's different in the week of
17302
+ // the daylight saving time clock shift).
17297
17303
  return Math.round((timestampLeft - timestampRight) / millisecondsInDay);
17298
17304
  }
17299
17305
 
@@ -17307,6 +17313,8 @@ function differenceInCalendarDays(dateLeft, dateRight) {
17307
17313
  * date and the given value. It helps to build generic functions that accept
17308
17314
  * date extensions.
17309
17315
  *
17316
+ * It defaults to `Date` if the passed reference date is a number or a string.
17317
+ *
17310
17318
  * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
17311
17319
  *
17312
17320
  * @param date - The reference date to take constructor from
@@ -17560,12 +17568,11 @@ function startOfISOWeekYear(date) {
17560
17568
  */
17561
17569
  function getISOWeek(date) {
17562
17570
  const _date = toDate$1(date);
17563
- const diff =
17564
- startOfISOWeek(_date).getTime() - startOfISOWeekYear(_date).getTime();
17571
+ const diff = +startOfISOWeek(_date) - +startOfISOWeekYear(_date);
17565
17572
 
17566
- // Round the number of days to the nearest integer
17567
- // because the number of milliseconds in a week is not constant
17568
- // (e.g. it's different in the week of the daylight saving time clock shift)
17573
+ // Round the number of weeks to the nearest integer because the number of
17574
+ // milliseconds in a week is not constant (e.g. it's different in the week of
17575
+ // the daylight saving time clock shift).
17569
17576
  return Math.round(diff / millisecondsInWeek) + 1;
17570
17577
  }
17571
17578
 
@@ -17585,7 +17592,7 @@ function getISOWeek(date) {
17585
17592
  * and `options.firstWeekContainsDate` (which is the day of January, which is always in
17586
17593
  * the first week of the week-numbering year)
17587
17594
  *
17588
- * Week numbering: https://en.wikipedia.org/wiki/Week#Week_numbering
17595
+ * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system
17589
17596
  *
17590
17597
  * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
17591
17598
  *
@@ -17656,7 +17663,7 @@ function getWeekYear(date, options) {
17656
17663
  * and `options.firstWeekContainsDate` (which is the day of January, which is always in
17657
17664
  * the first week of the week-numbering year)
17658
17665
  *
17659
- * Week numbering: https://en.wikipedia.org/wiki/Week#Week_numbering
17666
+ * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system
17660
17667
  *
17661
17668
  * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
17662
17669
  *
@@ -17713,7 +17720,7 @@ function startOfWeekYear(date, options) {
17713
17720
  * and `options.firstWeekContainsDate` (which is the day of January, which is always in
17714
17721
  * the first week of the week-numbering year)
17715
17722
  *
17716
- * Week numbering: https://en.wikipedia.org/wiki/Week#Week_numbering
17723
+ * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system
17717
17724
  *
17718
17725
  * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
17719
17726
  *
@@ -17740,13 +17747,11 @@ function startOfWeekYear(date, options) {
17740
17747
 
17741
17748
  function getWeek(date, options) {
17742
17749
  const _date = toDate$1(date);
17743
- const diff =
17744
- startOfWeek(_date, options).getTime() -
17745
- startOfWeekYear(_date, options).getTime();
17750
+ const diff = +startOfWeek(_date, options) - +startOfWeekYear(_date, options);
17746
17751
 
17747
- // Round the number of days to the nearest integer
17748
- // because the number of milliseconds in a week is not constant
17749
- // (e.g. it's different in the week of the daylight saving time clock shift)
17752
+ // Round the number of weeks to the nearest integer because the number of
17753
+ // milliseconds in a week is not constant (e.g. it's different in the week of
17754
+ // the daylight saving time clock shift).
17750
17755
  return Math.round(diff / millisecondsInWeek) + 1;
17751
17756
  }
17752
17757
 
@@ -17840,7 +17845,7 @@ const lightFormatters = {
17840
17845
  S(date, token) {
17841
17846
  const numberOfDigits = token.length;
17842
17847
  const milliseconds = date.getMilliseconds();
17843
- const fractionalSeconds = Math.floor(
17848
+ const fractionalSeconds = Math.trunc(
17844
17849
  milliseconds * Math.pow(10, numberOfDigits - 3),
17845
17850
  );
17846
17851
  return addLeadingZeros$1(fractionalSeconds, token.length);
@@ -18487,9 +18492,8 @@ const formatters$1 = {
18487
18492
  },
18488
18493
 
18489
18494
  // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)
18490
- X: function (date, token, _localize, options) {
18491
- const originalDate = options._originalDate || date;
18492
- const timezoneOffset = originalDate.getTimezoneOffset();
18495
+ X: function (date, token, _localize) {
18496
+ const timezoneOffset = date.getTimezoneOffset();
18493
18497
 
18494
18498
  if (timezoneOffset === 0) {
18495
18499
  return "Z";
@@ -18518,9 +18522,8 @@ const formatters$1 = {
18518
18522
  },
18519
18523
 
18520
18524
  // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)
18521
- x: function (date, token, _localize, options) {
18522
- const originalDate = options._originalDate || date;
18523
- const timezoneOffset = originalDate.getTimezoneOffset();
18525
+ x: function (date, token, _localize) {
18526
+ const timezoneOffset = date.getTimezoneOffset();
18524
18527
 
18525
18528
  switch (token) {
18526
18529
  // Hours and optional minutes
@@ -18545,9 +18548,8 @@ const formatters$1 = {
18545
18548
  },
18546
18549
 
18547
18550
  // Timezone (GMT)
18548
- O: function (date, token, _localize, options) {
18549
- const originalDate = options._originalDate || date;
18550
- const timezoneOffset = originalDate.getTimezoneOffset();
18551
+ O: function (date, token, _localize) {
18552
+ const timezoneOffset = date.getTimezoneOffset();
18551
18553
 
18552
18554
  switch (token) {
18553
18555
  // Short
@@ -18563,9 +18565,8 @@ const formatters$1 = {
18563
18565
  },
18564
18566
 
18565
18567
  // Timezone (specific non-location)
18566
- z: function (date, token, _localize, options) {
18567
- const originalDate = options._originalDate || date;
18568
- const timezoneOffset = originalDate.getTimezoneOffset();
18568
+ z: function (date, token, _localize) {
18569
+ const timezoneOffset = date.getTimezoneOffset();
18569
18570
 
18570
18571
  switch (token) {
18571
18572
  // Short
@@ -18581,16 +18582,14 @@ const formatters$1 = {
18581
18582
  },
18582
18583
 
18583
18584
  // Seconds timestamp
18584
- t: function (date, token, _localize, options) {
18585
- const originalDate = options._originalDate || date;
18586
- const timestamp = Math.floor(originalDate.getTime() / 1000);
18585
+ t: function (date, token, _localize) {
18586
+ const timestamp = Math.trunc(date.getTime() / 1000);
18587
18587
  return addLeadingZeros$1(timestamp, token.length);
18588
18588
  },
18589
18589
 
18590
18590
  // Milliseconds timestamp
18591
- T: function (date, token, _localize, options) {
18592
- const originalDate = options._originalDate || date;
18593
- const timestamp = originalDate.getTime();
18591
+ T: function (date, token, _localize) {
18592
+ const timestamp = date.getTime();
18594
18593
  return addLeadingZeros$1(timestamp, token.length);
18595
18594
  },
18596
18595
  };
@@ -18598,7 +18597,7 @@ const formatters$1 = {
18598
18597
  function formatTimezoneShort$1(offset, delimiter = "") {
18599
18598
  const sign = offset > 0 ? "-" : "+";
18600
18599
  const absOffset = Math.abs(offset);
18601
- const hours = Math.floor(absOffset / 60);
18600
+ const hours = Math.trunc(absOffset / 60);
18602
18601
  const minutes = absOffset % 60;
18603
18602
  if (minutes === 0) {
18604
18603
  return sign + String(hours);
@@ -18617,7 +18616,7 @@ function formatTimezoneWithOptionalMinutes$1(offset, delimiter) {
18617
18616
  function formatTimezone$1(offset, delimiter = "") {
18618
18617
  const sign = offset > 0 ? "-" : "+";
18619
18618
  const absOffset = Math.abs(offset);
18620
- const hours = addLeadingZeros$1(Math.floor(absOffset / 60), 2);
18619
+ const hours = addLeadingZeros$1(Math.trunc(absOffset / 60), 2);
18621
18620
  const minutes = addLeadingZeros$1(absOffset % 60, 2);
18622
18621
  return sign + hours + delimiter + minutes;
18623
18622
  }
@@ -18687,35 +18686,109 @@ const longFormatters = {
18687
18686
  P: dateTimeLongFormatter,
18688
18687
  };
18689
18688
 
18690
- const protectedDayOfYearTokens = ["D", "DD"];
18691
- const protectedWeekYearTokens = ["YY", "YYYY"];
18689
+ const dayOfYearTokenRE = /^D+$/;
18690
+ const weekYearTokenRE = /^Y+$/;
18691
+
18692
+ const throwTokens = ["D", "DD", "YY", "YYYY"];
18692
18693
 
18693
18694
  function isProtectedDayOfYearToken(token) {
18694
- return protectedDayOfYearTokens.indexOf(token) !== -1;
18695
+ return dayOfYearTokenRE.test(token);
18695
18696
  }
18696
18697
 
18697
18698
  function isProtectedWeekYearToken(token) {
18698
- return protectedWeekYearTokens.indexOf(token) !== -1;
18699
+ return weekYearTokenRE.test(token);
18699
18700
  }
18700
18701
 
18701
- function throwProtectedError(token, format, input) {
18702
- if (token === "YYYY") {
18703
- throw new RangeError(
18704
- `Use \`yyyy\` instead of \`YYYY\` (in \`${format}\`) for formatting years to the input \`${input}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`,
18705
- );
18706
- } else if (token === "YY") {
18707
- throw new RangeError(
18708
- `Use \`yy\` instead of \`YY\` (in \`${format}\`) for formatting years to the input \`${input}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`,
18709
- );
18710
- } else if (token === "D") {
18711
- throw new RangeError(
18712
- `Use \`d\` instead of \`D\` (in \`${format}\`) for formatting days of the month to the input \`${input}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`,
18713
- );
18714
- } else if (token === "DD") {
18715
- throw new RangeError(
18716
- `Use \`dd\` instead of \`DD\` (in \`${format}\`) for formatting days of the month to the input \`${input}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`,
18717
- );
18702
+ function warnOrThrowProtectedError(token, format, input) {
18703
+ const _message = message(token, format, input);
18704
+ console.warn(_message);
18705
+ if (throwTokens.includes(token)) throw new RangeError(_message);
18706
+ }
18707
+
18708
+ function message(token, format, input) {
18709
+ const subject = token[0] === "Y" ? "years" : "days of the month";
18710
+ return `Use \`${token.toLowerCase()}\` instead of \`${token}\` (in \`${format}\`) for formatting ${subject} to the input \`${input}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`;
18711
+ }
18712
+
18713
+ /**
18714
+ * @name isDate
18715
+ * @category Common Helpers
18716
+ * @summary Is the given value a date?
18717
+ *
18718
+ * @description
18719
+ * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.
18720
+ *
18721
+ * @param value - The value to check
18722
+ *
18723
+ * @returns True if the given value is a date
18724
+ *
18725
+ * @example
18726
+ * // For a valid date:
18727
+ * const result = isDate(new Date())
18728
+ * //=> true
18729
+ *
18730
+ * @example
18731
+ * // For an invalid date:
18732
+ * const result = isDate(new Date(NaN))
18733
+ * //=> true
18734
+ *
18735
+ * @example
18736
+ * // For some value:
18737
+ * const result = isDate('2014-02-31')
18738
+ * //=> false
18739
+ *
18740
+ * @example
18741
+ * // For an object:
18742
+ * const result = isDate({})
18743
+ * //=> false
18744
+ */
18745
+ function isDate(value) {
18746
+ return (
18747
+ value instanceof Date ||
18748
+ (typeof value === "object" &&
18749
+ Object.prototype.toString.call(value) === "[object Date]")
18750
+ );
18751
+ }
18752
+
18753
+ /**
18754
+ * @name isValid
18755
+ * @category Common Helpers
18756
+ * @summary Is the given date valid?
18757
+ *
18758
+ * @description
18759
+ * Returns false if argument is Invalid Date and true otherwise.
18760
+ * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate)
18761
+ * Invalid Date is a Date, whose time value is NaN.
18762
+ *
18763
+ * Time value of Date: http://es5.github.io/#x15.9.1.1
18764
+ *
18765
+ * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
18766
+ *
18767
+ * @param date - The date to check
18768
+ *
18769
+ * @returns The date is valid
18770
+ *
18771
+ * @example
18772
+ * // For the valid date:
18773
+ * const result = isValid(new Date(2014, 1, 31))
18774
+ * //=> true
18775
+ *
18776
+ * @example
18777
+ * // For the value, convertable into a date:
18778
+ * const result = isValid(1393804800000)
18779
+ * //=> true
18780
+ *
18781
+ * @example
18782
+ * // For the invalid date:
18783
+ * const result = isValid(new Date(''))
18784
+ * //=> false
18785
+ */
18786
+ function isValid(date) {
18787
+ if (!isDate(date) && typeof date !== "number") {
18788
+ return false;
18718
18789
  }
18790
+ const _date = toDate$1(date);
18791
+ return !isNaN(Number(_date));
18719
18792
  }
18720
18793
 
18721
18794
  // This RegExp consists of three parts separated by `|`:
@@ -18746,6 +18819,7 @@ const unescapedLatinCharacterRegExp = /[a-zA-Z]/;
18746
18819
 
18747
18820
  /**
18748
18821
  * @name format
18822
+ * @alias formatDate
18749
18823
  * @category Common Helpers
18750
18824
  * @summary Format the date.
18751
18825
  *
@@ -19053,16 +19127,9 @@ function format$1(date, formatStr, options) {
19053
19127
  throw new RangeError("Invalid time value");
19054
19128
  }
19055
19129
 
19056
- const formatterOptions = {
19057
- firstWeekContainsDate: firstWeekContainsDate,
19058
- weekStartsOn: weekStartsOn,
19059
- locale: locale,
19060
- _originalDate: originalDate,
19061
- };
19062
-
19063
- const result = formatStr
19130
+ let parts = formatStr
19064
19131
  .match(longFormattingTokensRegExp)
19065
- .map(function (substring) {
19132
+ .map((substring) => {
19066
19133
  const firstCharacter = substring[0];
19067
19134
  if (firstCharacter === "p" || firstCharacter === "P") {
19068
19135
  const longFormatter = longFormatters[firstCharacter];
@@ -19072,37 +19139,19 @@ function format$1(date, formatStr, options) {
19072
19139
  })
19073
19140
  .join("")
19074
19141
  .match(formattingTokensRegExp)
19075
- .map(function (substring) {
19142
+ .map((substring) => {
19076
19143
  // Replace two single quote characters with one single quote character
19077
19144
  if (substring === "''") {
19078
- return "'";
19145
+ return { isToken: false, value: "'" };
19079
19146
  }
19080
19147
 
19081
19148
  const firstCharacter = substring[0];
19082
19149
  if (firstCharacter === "'") {
19083
- return cleanEscapedString(substring);
19150
+ return { isToken: false, value: cleanEscapedString(substring) };
19084
19151
  }
19085
19152
 
19086
- const formatter = formatters$1[firstCharacter];
19087
- if (formatter) {
19088
- if (
19089
- !options?.useAdditionalWeekYearTokens &&
19090
- isProtectedWeekYearToken(substring)
19091
- ) {
19092
- throwProtectedError(substring, formatStr, String(date));
19093
- }
19094
- if (
19095
- !options?.useAdditionalDayOfYearTokens &&
19096
- isProtectedDayOfYearToken(substring)
19097
- ) {
19098
- throwProtectedError(substring, formatStr, String(date));
19099
- }
19100
- return formatter(
19101
- originalDate,
19102
- substring,
19103
- locale.localize,
19104
- formatterOptions,
19105
- );
19153
+ if (formatters$1[firstCharacter]) {
19154
+ return { isToken: true, value: substring };
19106
19155
  }
19107
19156
 
19108
19157
  if (firstCharacter.match(unescapedLatinCharacterRegExp)) {
@@ -19113,11 +19162,39 @@ function format$1(date, formatStr, options) {
19113
19162
  );
19114
19163
  }
19115
19164
 
19116
- return substring;
19165
+ return { isToken: false, value: substring };
19166
+ });
19167
+
19168
+ // invoke localize preprocessor (only for french locales at the moment)
19169
+ if (locale.localize.preprocessor) {
19170
+ parts = locale.localize.preprocessor(originalDate, parts);
19171
+ }
19172
+
19173
+ const formatterOptions = {
19174
+ firstWeekContainsDate,
19175
+ weekStartsOn,
19176
+ locale,
19177
+ };
19178
+
19179
+ return parts
19180
+ .map((part) => {
19181
+ if (!part.isToken) return part.value;
19182
+
19183
+ const token = part.value;
19184
+
19185
+ if (
19186
+ (!options?.useAdditionalWeekYearTokens &&
19187
+ isProtectedWeekYearToken(token)) ||
19188
+ (!options?.useAdditionalDayOfYearTokens &&
19189
+ isProtectedDayOfYearToken(token))
19190
+ ) {
19191
+ warnOrThrowProtectedError(token, formatStr, String(date));
19192
+ }
19193
+
19194
+ const formatter = formatters$1[token[0]];
19195
+ return formatter(originalDate, token, locale.localize, formatterOptions);
19117
19196
  })
19118
19197
  .join("");
19119
-
19120
- return result;
19121
19198
  }
19122
19199
 
19123
19200
  function cleanEscapedString(input) {
@@ -20596,7 +20673,7 @@ const TimePicker = ({
20596
20673
  });
20597
20674
  };
20598
20675
 
20599
- var css_248z$K = "@import 'react-day-picker/style.css';\n.fontXs, .ff-date-picker .ff-datepicker-input-container .ff-input-with-icon .ff-date-input,\n.ff-date-picker .ff-datepicker-input-container .ff-input-with-icon .ff-time-input {\n font-family: \"Poppins\";\n font-size: 10px;\n}\n\n.fontSm, .ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container .ff-time-input {\n font-family: \"Poppins\";\n font-size: 12px;\n}\n\n.fontMd {\n font-family: \"Poppins\";\n font-size: 14px;\n}\n\n.fontLg {\n font-family: \"Poppins\";\n font-size: 16px;\n}\n\n.fontXL {\n font-family: \"Poppins\";\n font-size: 18px;\n}\n\n.font2Xl {\n font-family: \"Poppins\";\n font-size: 24px;\n}\n\n.font-size-8, .ff-date-picker .ff-datepicker-input-container .ff-date-input-field .ff-date-input-message {\n font-family: \"Poppins\";\n font-size: 8px;\n}\n\n.font-size-20 {\n font-family: \"Poppins\";\n font-size: 20px;\n}\n\n.font-size-32 {\n font-family: \"Poppins\";\n font-size: 32px;\n}\n\n.font-size-80 {\n font-family: \"Poppins\";\n font-size: 80px;\n}\n\n/* Custom date picker styling */\n.ff-date-picker {\n position: relative;\n}\n.ff-date-picker .rdp-root {\n --rdp-accent-color: var(--brand-color);\n --rdp-day-height: 24px;\n --rdp-day-width: 36px;\n --rdp-day_button-height: 24px;\n --rdp-day_button-width: 36px;\n font-family: \"Poppins\";\n font-size: 12px;\n --rdp-font-family: \"Poppins\", sans-serif;\n}\n.ff-date-picker .ff-cursor-pointer {\n cursor: pointer;\n}\n.ff-date-picker .ff-datepicker-input-container {\n display: flex;\n gap: 10px;\n}\n.ff-date-picker .ff-datepicker-input-container .ff-input-with-icon {\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n}\n.ff-date-picker .ff-datepicker-input-container .ff-input-with-icon .ff-date-input,\n.ff-date-picker .ff-datepicker-input-container .ff-input-with-icon .ff-time-input {\n padding: 4px 8px;\n padding-left: 2rem;\n height: 32px;\n border-radius: 5px;\n border: 1px solid var(--border-color);\n color: var(--status-skipped-text-color);\n line-height: 15px;\n box-sizing: border-box;\n}\n.ff-date-picker .ff-datepicker-input-container .ff-input-with-icon .ff-date-input:focus,\n.ff-date-picker .ff-datepicker-input-container .ff-input-with-icon .ff-time-input:focus {\n outline: none;\n}\n.ff-date-picker .ff-datepicker-input-container .ff-input-with-icon .ff-calendar-icon,\n.ff-date-picker .ff-datepicker-input-container .ff-input-with-icon .ff-clock-icon {\n position: absolute;\n top: 50%;\n transform: translate(25%, -50%);\n display: flex;\n align-items: center;\n pointer-events: none;\n}\n.ff-date-picker .ff-datepicker-input-container .ff-date-input-field {\n flex: 1;\n}\n.ff-date-picker .ff-datepicker-input-container .ff-date-input-field .ff-date-input {\n width: 100%;\n}\n.ff-date-picker .ff-datepicker-input-container .ff-date-input-field .ff-date-input-message {\n padding: 0px 4px;\n margin-left: 8px;\n line-height: 12px;\n}\n.ff-date-picker .ff-datepicker-input-container .ff-date-input-field .ff-date-input-message--danger {\n color: var(--input-error-text-color);\n}\n.ff-date-picker .ff-datepicker-input-container .ff-time-input-field {\n flex: 0 0 120px;\n}\n.ff-date-picker .ff-datepicker-input-container .ff-time-input-field .ff-time-input {\n width: 100%;\n}\n.ff-date-picker .ff-date-picker-container {\n display: flex;\n flex-direction: column;\n position: absolute;\n border-radius: 8px;\n padding: 4px;\n box-sizing: border-box;\n background-color: var(--tab-bg-color);\n box-shadow: 0 0 12px 0 rgba(0, 0, 0, 0.2);\n gap: 8px;\n z-index: 10;\n}\n.ff-date-picker .ff-date-picker-container .ff-calendar-container {\n display: flex;\n align-items: flex-start;\n gap: 4px;\n height: 240px;\n}\n.ff-date-picker .ff-date-picker-container .ff-date-picker-controls {\n padding: 4px;\n display: flex;\n justify-content: end;\n gap: 8px;\n border-top: 1px solid var(--border-color);\n}\n.ff-date-picker .ff-date-picker-container .ff-date-picker-controls .ff-date-picker-button {\n font-weight: 600;\n line-height: 15px;\n}\n.ff-date-picker .ff-calendar .ff-calendar-nav-button {\n margin: 0 5px;\n border: 1px solid var(--border-color);\n background-color: var(--toggle-button-bg-color);\n box-shadow: 0 -1px 2px 0 var(--ff-mini-modal-box-shadow);\n padding: 0px;\n border-radius: 30%;\n cursor: pointer;\n}\n.ff-date-picker .ff-calendar .ff-calendar-nav-button:disabled {\n cursor: auto;\n opacity: 0.5;\n}\n.ff-date-picker .ff-calendar .ff-calendar-haeder {\n display: flex;\n align-items: center;\n gap: 5px;\n color: var(--text-color);\n}\n.ff-date-picker .ff-calendar .ff-custom-year_grid,\n.ff-date-picker .ff-calendar .ff-custom-month_grid {\n width: calc((var(--rdp-day-width) + 4px) * 7);\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 10px;\n padding: 5px;\n max-width: 100%;\n}\n.ff-date-picker .ff-calendar .ff-custom-year_grid .ff-custom-year,\n.ff-date-picker .ff-calendar .ff-custom-year_grid .ff-custom-month,\n.ff-date-picker .ff-calendar .ff-custom-month_grid .ff-custom-year,\n.ff-date-picker .ff-calendar .ff-custom-month_grid .ff-custom-month {\n padding: 10px 0;\n text-align: center;\n cursor: pointer;\n border-radius: 8px;\n background-color: #f9f9f9;\n}\n.ff-date-picker .ff-calendar .ff-custom-year_grid .ff-custom-year--selected,\n.ff-date-picker .ff-calendar .ff-custom-year_grid .ff-custom-month--selected,\n.ff-date-picker .ff-calendar .ff-custom-month_grid .ff-custom-year--selected,\n.ff-date-picker .ff-calendar .ff-custom-month_grid .ff-custom-month--selected {\n background-color: var(--brand-color);\n color: var(--primary-button-text-color);\n}\n.ff-date-picker .ff-calendar .ff-custom-year_grid .ff-custom-year--disabled,\n.ff-date-picker .ff-calendar .ff-custom-year_grid .ff-custom-month--disabled,\n.ff-date-picker .ff-calendar .ff-custom-month_grid .ff-custom-year--disabled,\n.ff-date-picker .ff-calendar .ff-custom-month_grid .ff-custom-month--disabled {\n color: var(--text-color-light);\n cursor: default;\n}\n.ff-date-picker .ff-calendar .ff-custom-year_grid .ff-custom-year--disabled.ff-custom-month--selected, .ff-date-picker .ff-calendar .ff-custom-year_grid .ff-custom-year--disabled.ff-custom-year--selected,\n.ff-date-picker .ff-calendar .ff-custom-year_grid .ff-custom-month--disabled.ff-custom-month--selected,\n.ff-date-picker .ff-calendar .ff-custom-year_grid .ff-custom-month--disabled.ff-custom-year--selected,\n.ff-date-picker .ff-calendar .ff-custom-month_grid .ff-custom-year--disabled.ff-custom-month--selected,\n.ff-date-picker .ff-calendar .ff-custom-month_grid .ff-custom-year--disabled.ff-custom-year--selected,\n.ff-date-picker .ff-calendar .ff-custom-month_grid .ff-custom-month--disabled.ff-custom-month--selected,\n.ff-date-picker .ff-calendar .ff-custom-month_grid .ff-custom-month--disabled.ff-custom-year--selected {\n background-color: var(--disable-color);\n}\n.ff-date-picker .ff-calendar .rdp-weekdays th {\n color: #6f7c8e;\n font-weight: 400;\n}\n.ff-date-picker .ff-calendar .rdp-day {\n padding: 2px;\n font-weight: 500;\n}\n.ff-date-picker .ff-calendar .rdp-day_button {\n border-radius: 4px;\n padding: 3px 9px;\n}\n.ff-date-picker .ff-calendar .rdp-day_button:hover {\n background-color: var(--hover-color);\n}\n.ff-date-picker .ff-calendar .rdp-selected {\n font: inherit;\n}\n.ff-date-picker .ff-calendar .rdp-selected .rdp-day_button {\n background: var(--rdp-accent-color);\n color: var(--drawer-footer-bg);\n border: none;\n}\n.ff-date-picker .ff-calendar .rdp-today:not(.rdp-outside) .rdp-day_button {\n border: 2px solid var(--rdp-accent-color);\n}\n.ff-date-picker .ff-time-picker-container {\n position: relative;\n width: 150px;\n height: 100%;\n overflow-y: hidden;\n border-left: 1px solid #ccc;\n padding: 10px 5px;\n box-sizing: border-box;\n}\n.ff-date-picker .ff-time-picker-container::-webkit-scrollbar {\n display: none;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields {\n display: flex;\n height: 14%;\n width: 100%;\n margin-bottom: 5px;\n box-sizing: border-box;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container {\n display: flex;\n border: 1px solid var(--border-color);\n border-right: 0;\n border-radius: 4px 0 0 4px;\n width: 55%;\n position: relative;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container .ff-time-input {\n border: none;\n padding: 5px;\n width: 100%;\n text-align: center;\n border-radius: 4px 0 0 4px;\n font-weight: 400;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container .ff-time-input::placeholder {\n opacity: 0;\n line-height: 18px;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container .ff-time-input-label {\n position: absolute;\n left: 10px;\n top: 50%;\n transform: translateY(-50%);\n transition: 0.2s ease all;\n color: var(--input-default-label-color);\n pointer-events: none;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container--float .ff-time-input-label {\n top: 0;\n left: 5px;\n color: var(--brand-color);\n background-color: var(--input-label-bg-color);\n line-height: 12px;\n padding: 0 2px;\n font-size: 8px !important;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container--float .ff-time-input-label--danger {\n color: var(--input-error-text-color);\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container:hover {\n border-color: var(--input-hover-border-color);\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container:focus-within {\n border-color: var(--brand-color);\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container:focus-within .ff-time-input-label {\n top: 0;\n left: 5px;\n color: var(--brand-color);\n background-color: var(--input-label-bg-color);\n line-height: 12px;\n padding: 0 2px;\n font-size: 8px !important;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container:focus-within .ff-time-input-label--danger {\n color: var(--input-error-text-color);\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container:focus-within .ff-time-input::placeholder {\n opacity: 1;\n margin-bottom: 1px;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container--danger {\n border-color: var(--input-error-text-color) !important;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container .ff-time-input:focus {\n outline: none;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-period-container {\n position: relative;\n width: 45%;\n display: flex;\n border: 1px solid var(--border-color);\n border-radius: 0 4px 4px 0;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-period-container .ff-time-period-select {\n display: flex;\n align-items: center;\n padding: 0 5px;\n width: 100%;\n border-radius: 4px;\n background-color: white;\n cursor: pointer;\n border: none;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-period-container--active {\n border-color: var(--brand-color) !important;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-period-container:hover {\n border-color: var(--input-hover-border-color);\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-period-container .ff-time-period-icon {\n margin-left: auto;\n pointer-events: none;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-period-container .ff-time-period-icon svg path {\n fill: var(--default-icon-color);\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-period-container:hover svg path {\n fill: var(--brand-color);\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-period-container .ff-time-period-options {\n position: fixed;\n z-index: 100;\n min-width: 60px;\n margin: 4px 0 0;\n padding: 0;\n list-style: none;\n border: 1px solid var(--ff-select-background-color);\n border-radius: 4px;\n background-color: var(--primary-button-text-color);\n box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1);\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-period-container .ff-option-item {\n padding: 8px;\n color: var(--text-color);\n border-radius: 4px;\n cursor: pointer;\n transition: background-color 0.2s ease;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-period-container .ff-option-item:hover {\n background-color: var(--ff-select-option-hover-color);\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-options {\n height: 86%;\n overflow-y: auto;\n padding-right: 5px;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-options::-webkit-scrollbar {\n width: 4px;\n height: 12px;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-options::-webkit-scrollbar-thumb {\n background-color: var(--ff-select-scroll-thumb-color);\n border-radius: 4px;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-options::-webkit-scrollbar-track {\n background-color: var(--hover-color);\n border-radius: 4px;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-options .ff-time-option {\n padding: 10px 12px;\n cursor: pointer;\n text-align: center;\n border-radius: 8px;\n background-color: rgb(249, 249, 249);\n margin: 10px 0;\n}\n\n/* Variables declaration */\n/* prettier-ignore */\n.rdp-root {\n --rdp-accent-color: blue; /* The accent color used for selected days and UI elements. */\n --rdp-accent-background-color: #f0f0ff; /* The accent background color used for selected days and UI elements. */\n --rdp-font-family: system-ui; /* The font family used by the calendar. Note that `inherit`does not work here. */\n --rdp-day-font: inherit; /* The font used for the day cells. */\n --rdp-day-height: 2.75rem; /* The height of the day cells. */\n --rdp-day-width: 2.75rem; /* The width of the day cells. */\n --rdp-day_button-border-radius: 100%; /* The border radius of the day cells. */\n --rdp-day_button-border: 2px solid transparent; /* The border of the day cells. */\n --rdp-day_button-height: var(--rdp-day-height); /* The height of the day cells. */\n --rdp-day_button-width: var(--rdp-day-width); /* The width of the day cells. */\n --rdp-selected-border: 2px solid var(--rdp-accent-color); /* The border of the selected days. */\n --rdp-selected-font: bold large var(--rdp-font-family); /* The font of the selected days. */\n --rdp-disabled-opacity: 0.5; /* The opacity of the disabled days. */\n --rdp-outside-opacity: 0.75; /* The opacity of the days outside the current month. */\n --rdp-today-color: var(--rdp-accent-color); /* The color of the today's date. */\n --rdp-dropdown-gap: 0.5rem; /* The gap between the dropdowns used in the month captons. */\n --rdp-month_caption-font: bold larger var(--rdp-font-family); /* The font of the month caption. */\n --rdp-months-gap: 2rem; /* The gap between the months in the multi-month view. */\n --rdp-nav_button-disabled-opacity: 0.5; /* The opacity of the disabled navigation buttons. */\n --rdp-nav_button-height: 2.25rem; /* The height of the navigation buttons. */\n --rdp-nav_button-width: 2.25rem; /* The width of the navigation buttons. */\n --rdp-nav-height: 2.75rem; /* The height of the navigation bar. */\n --rdp-range_middle-background-color: var(--rdp-accent-background-color); /* The color of the background for days in the middle of a range. */\n --rdp-range_middle-font: normal medium var(--rdp-font-family); /* The font for days in the middle of a range. */\n --rdp-range_middle-foreground-color: white; /* The font for days in the middle of a range. */\n --rdp-range_middle-color: inherit; /* The color of the range text. */\n --rdp-range_start-color: white; /* The color of the range text. */\n --rdp-range_start-background: linear-gradient(var(--rdp-gradient-direction), transparent 50%, var(--rdp-range_middle-background-color) 50%); /* Used for the background of the start of the selected range. */\n --rdp-range_start-date-background-color: var(--rdp-accent-color); /* The background color of the date when at the start of the selected range. */\n --rdp-range_end-background: linear-gradient(var(--rdp-gradient-direction), var(--rdp-range_middle-background-color) 50%, transparent 50%); /* Used for the background of the end of the selected range. */\n --rdp-range_end-color: white; /* The color of the range text. */\n --rdp-range_end-date-background-color: var(--rdp-accent-color); /* The background color of the date when at the end of the selected range. */\n --rdp-week_number-border-radius: 100%; /* The border radius of the week number. */\n --rdp-week_number-border: 2px solid transparent; /* The border of the week number. */\n --rdp-week_number-font: 400 small var(--rdp-font-family); /* The font of the week number cells. */\n --rdp-week_number-height: var(--rdp-day-height); /* The height of the week number cells. */\n --rdp-week_number-opacity: 0.75; /* The opacity of the week number. */\n --rdp-week_number-width: var(--rdp-day-width); /* The width of the week number cells. */\n --rdp-weeknumber-text-align: center; /* The text alignment of the weekday cells. */\n --rdp-weekday-font: 500 smaller var(--rdp-font-family); /* The font of the weekday. */\n --rdp-weekday-opacity: 0.75; /* The opacity of the weekday. */\n --rdp-weekday-padding: 0.5rem 0rem; /* The padding of the weekday. */\n --rdp-weekday-text-align: center; /* The text alignment of the weekday cells. */\n --rdp-gradient-direction: 90deg;\n}\n\n.rdp-root[dir=rtl] {\n --rdp-gradient-direction: -90deg;\n}\n\n/* Root of the component. */\n.rdp-root {\n position: relative; /* Required to position the navigation toolbar. */\n box-sizing: border-box;\n}\n\n.rdp-root * {\n box-sizing: border-box;\n}\n\n.rdp-day {\n width: var(--rdp-day-width);\n height: var(--rdp-day-height);\n font: var(--rdp-day-font);\n text-align: center;\n}\n\n.rdp-day_button {\n background: none;\n padding: 0;\n margin: 0;\n cursor: pointer;\n font: inherit;\n color: inherit;\n justify-content: center;\n align-items: center;\n display: flex;\n width: var(--rdp-day_button-width);\n height: var(--rdp-day_button-height);\n border: var(--rdp-day_button-border);\n border-radius: var(--rdp-day_button-border-radius);\n}\n\n.rdp-day_button:disabled {\n cursor: revert;\n}\n\n.rdp-caption_label {\n z-index: 1;\n position: relative;\n display: inline-flex;\n align-items: center;\n white-space: nowrap;\n border: 0;\n}\n\n.rdp-button_next,\n.rdp-button_previous {\n border: none;\n background: none;\n padding: 0;\n margin: 0;\n cursor: pointer;\n font: inherit;\n color: inherit;\n -moz-appearance: none;\n -webkit-appearance: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n position: relative;\n appearance: none;\n width: var(--rdp-nav_button-width);\n height: var(--rdp-nav_button-height);\n}\n\n.rdp-button_next:disabled,\n.rdp-button_previous:disabled {\n cursor: revert;\n opacity: var(--rdp-nav_button-disabled-opacity);\n}\n\n.rdp-chevron {\n display: inline-block;\n fill: var(--rdp-accent-color);\n}\n\n.rdp-root[dir=rtl] .rdp-nav .rdp-chevron {\n transform: rotate(180deg);\n}\n\n.rdp-root[dir=rtl] .rdp-nav .rdp-chevron {\n transform: rotate(180deg);\n transform-origin: 50%;\n}\n\n.rdp-dropdowns {\n position: relative;\n display: inline-flex;\n align-items: center;\n gap: var(--rdp-dropdown-gap);\n}\n\n.rdp-dropdown {\n z-index: 2;\n /* Reset */\n opacity: 0;\n appearance: none;\n position: absolute;\n inset-block-start: 0;\n inset-block-end: 0;\n inset-inline-start: 0;\n width: 100%;\n margin: 0;\n padding: 0;\n cursor: inherit;\n border: none;\n line-height: inherit;\n}\n\n.rdp-dropdown_root {\n position: relative;\n display: inline-flex;\n align-items: center;\n}\n\n.rdp-dropdown_root[data-disabled=true] .rdp-chevron {\n opacity: var(--rdp-disabled-opacity);\n}\n\n.rdp-month_caption {\n display: flex;\n align-content: center;\n height: var(--rdp-nav-height);\n font: var(--rdp-month_caption-font);\n}\n\n.rdp-months {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n gap: var(--rdp-months-gap);\n max-width: fit-content;\n}\n\n.rdp-month_grid {\n border-collapse: collapse;\n}\n\n.rdp-nav {\n position: absolute;\n inset-block-start: 0;\n inset-inline-end: 0;\n display: flex;\n align-items: center;\n height: var(--rdp-nav-height);\n}\n\n.rdp-weekday {\n opacity: var(--rdp-weekday-opacity);\n padding: var(--rdp-weekday-padding);\n font: var(--rdp-weekday-font);\n text-align: var(--rdp-weekday-text-align);\n text-transform: var(--rdp-weekday-text-transform);\n}\n\n.rdp-week_number {\n opacity: var(--rdp-week_number-opacity);\n font: var(--rdp-week_number-font);\n height: var(--rdp-week_number-height);\n width: var(--rdp-week_number-width);\n border: var(--rdp-week_number-border);\n border-radius: var(--rdp-week_number-border-radius);\n text-align: var(--rdp-weeknumber-text-align);\n}\n\n/* DAY MODIFIERS */\n.rdp-today:not(.rdp-outside) {\n color: var(--rdp-today-color);\n}\n\n.rdp-selected {\n font: var(--rdp-selected-font);\n}\n\n.rdp-selected .rdp-day_button {\n border: var(--rdp-selected-border);\n}\n\n.rdp-outside {\n opacity: var(--rdp-outside-opacity);\n}\n\n.rdp-disabled {\n opacity: var(--rdp-disabled-opacity);\n}\n\n.rdp-hidden {\n visibility: hidden;\n color: var(--rdp-range_start-color);\n}\n\n.rdp-range_start {\n background: var(--rdp-range_start-background);\n}\n\n.rdp-range_start .rdp-day_button {\n background-color: var(--rdp-range_start-date-background-color);\n color: var(--rdp-range_start-color);\n}\n\n.rdp-range_middle {\n background-color: var(--rdp-range_middle-background-color);\n font: var(--rdp-range_middle-font);\n}\n\n.rdp-range_middle .rdp-day_button {\n border-color: transparent;\n border: unset;\n border-radius: unset;\n color: var(--rdp-range_middle-color);\n}\n\n.rdp-range_end {\n background: var(--rdp-range_end-background);\n color: var(--rdp-range_end-color);\n}\n\n.rdp-range_end .rdp-day_button {\n color: var(--rdp-range_start-color);\n background-color: var(--rdp-range_end-date-background-color);\n}\n\n.rdp-range_start.rdp-range_end {\n background: revert;\n}\n\n.rdp-focusable {\n cursor: pointer;\n}";
20676
+ var css_248z$K = "@import 'react-day-picker/style.css';\n.fontXs, .ff-date-picker .ff-datepicker-input-container .ff-input-with-icon .ff-date-input,\n.ff-date-picker .ff-datepicker-input-container .ff-input-with-icon .ff-time-input {\n font-family: \"Poppins\";\n font-size: 10px;\n}\n\n.fontSm, .ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container .ff-time-input {\n font-family: \"Poppins\";\n font-size: 12px;\n}\n\n.fontMd {\n font-family: \"Poppins\";\n font-size: 14px;\n}\n\n.fontLg {\n font-family: \"Poppins\";\n font-size: 16px;\n}\n\n.fontXL {\n font-family: \"Poppins\";\n font-size: 18px;\n}\n\n.font2Xl {\n font-family: \"Poppins\";\n font-size: 24px;\n}\n\n.font-size-8, .ff-date-picker .ff-datepicker-input-container .ff-date-input-field .ff-date-input-message {\n font-family: \"Poppins\";\n font-size: 8px;\n}\n\n.font-size-20 {\n font-family: \"Poppins\";\n font-size: 20px;\n}\n\n.font-size-32 {\n font-family: \"Poppins\";\n font-size: 32px;\n}\n\n.font-size-80 {\n font-family: \"Poppins\";\n font-size: 80px;\n}\n\n/* Custom date picker styling */\n.ff-date-picker {\n position: relative;\n}\n.ff-date-picker .rdp-root {\n --rdp-accent-color: var(--brand-color);\n --rdp-day-height: 24px;\n --rdp-day-width: 36px;\n --rdp-day_button-height: 24px;\n --rdp-day_button-width: 36px;\n font-family: \"Poppins\";\n font-size: 12px;\n --rdp-font-family: \"Poppins\", sans-serif;\n}\n.ff-date-picker .ff-cursor-pointer {\n cursor: pointer;\n}\n.ff-date-picker .ff-datepicker-input-container {\n display: flex;\n gap: 10px;\n}\n.ff-date-picker .ff-datepicker-input-container .ff-input-with-icon {\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n}\n.ff-date-picker .ff-datepicker-input-container .ff-input-with-icon .ff-date-input,\n.ff-date-picker .ff-datepicker-input-container .ff-input-with-icon .ff-time-input {\n padding: 4px 8px;\n padding-left: 2rem;\n height: 32px;\n border-radius: 5px;\n border: 1px solid var(--border-color);\n color: var(--status-skipped-text-color);\n line-height: 15px;\n box-sizing: border-box;\n}\n.ff-date-picker .ff-datepicker-input-container .ff-input-with-icon .ff-date-input:focus,\n.ff-date-picker .ff-datepicker-input-container .ff-input-with-icon .ff-time-input:focus {\n outline: none;\n}\n.ff-date-picker .ff-datepicker-input-container .ff-input-with-icon .ff-calendar-icon,\n.ff-date-picker .ff-datepicker-input-container .ff-input-with-icon .ff-clock-icon {\n position: absolute;\n top: 50%;\n transform: translate(25%, -50%);\n display: flex;\n align-items: center;\n pointer-events: none;\n}\n.ff-date-picker .ff-datepicker-input-container .ff-date-input-field {\n flex: 1;\n}\n.ff-date-picker .ff-datepicker-input-container .ff-date-input-field .ff-date-input {\n width: 100%;\n}\n.ff-date-picker .ff-datepicker-input-container .ff-date-input-field .ff-date-input-message {\n padding: 0px 4px;\n margin-left: 8px;\n line-height: 12px;\n}\n.ff-date-picker .ff-datepicker-input-container .ff-date-input-field .ff-date-input-message--danger {\n color: var(--input-error-text-color);\n}\n.ff-date-picker .ff-datepicker-input-container .ff-time-input-field {\n flex: 0 0 120px;\n}\n.ff-date-picker .ff-datepicker-input-container .ff-time-input-field .ff-time-input {\n width: 100%;\n}\n.ff-date-picker .ff-date-picker-container {\n display: flex;\n flex-direction: column;\n position: fixed;\n border-radius: 8px;\n padding: 4px;\n box-sizing: border-box;\n background-color: var(--tab-bg-color);\n box-shadow: 0 0 12px 0 rgba(0, 0, 0, 0.2);\n gap: 8px;\n}\n.ff-date-picker .ff-date-picker-container .ff-calendar-container {\n display: flex;\n align-items: flex-start;\n gap: 4px;\n height: 240px;\n}\n.ff-date-picker .ff-date-picker-container .ff-date-picker-controls {\n padding: 4px;\n display: flex;\n justify-content: end;\n gap: 8px;\n border-top: 1px solid var(--border-color);\n}\n.ff-date-picker .ff-date-picker-container .ff-date-picker-controls .ff-date-picker-button {\n font-weight: 600;\n line-height: 15px;\n}\n.ff-date-picker .ff-calendar .ff-calendar-nav-button {\n margin: 0 5px;\n border: 1px solid var(--border-color);\n background-color: var(--toggle-button-bg-color);\n box-shadow: 0 -1px 2px 0 var(--ff-mini-modal-box-shadow);\n padding: 0px;\n border-radius: 30%;\n cursor: pointer;\n}\n.ff-date-picker .ff-calendar .ff-calendar-nav-button:disabled {\n cursor: auto;\n opacity: 0.5;\n}\n.ff-date-picker .ff-calendar .ff-calendar-haeder {\n display: flex;\n align-items: center;\n gap: 5px;\n color: var(--text-color);\n}\n.ff-date-picker .ff-calendar .ff-custom-year_grid,\n.ff-date-picker .ff-calendar .ff-custom-month_grid {\n width: calc((var(--rdp-day-width) + 4px) * 7);\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 10px;\n padding: 5px;\n max-width: 100%;\n}\n.ff-date-picker .ff-calendar .ff-custom-year_grid .ff-custom-year,\n.ff-date-picker .ff-calendar .ff-custom-year_grid .ff-custom-month,\n.ff-date-picker .ff-calendar .ff-custom-month_grid .ff-custom-year,\n.ff-date-picker .ff-calendar .ff-custom-month_grid .ff-custom-month {\n padding: 10px 0;\n text-align: center;\n cursor: pointer;\n border-radius: 8px;\n background-color: #f9f9f9;\n}\n.ff-date-picker .ff-calendar .ff-custom-year_grid .ff-custom-year--selected,\n.ff-date-picker .ff-calendar .ff-custom-year_grid .ff-custom-month--selected,\n.ff-date-picker .ff-calendar .ff-custom-month_grid .ff-custom-year--selected,\n.ff-date-picker .ff-calendar .ff-custom-month_grid .ff-custom-month--selected {\n background-color: var(--brand-color);\n color: var(--primary-button-text-color);\n}\n.ff-date-picker .ff-calendar .ff-custom-year_grid .ff-custom-year--disabled,\n.ff-date-picker .ff-calendar .ff-custom-year_grid .ff-custom-month--disabled,\n.ff-date-picker .ff-calendar .ff-custom-month_grid .ff-custom-year--disabled,\n.ff-date-picker .ff-calendar .ff-custom-month_grid .ff-custom-month--disabled {\n color: var(--text-color-light);\n cursor: default;\n}\n.ff-date-picker .ff-calendar .ff-custom-year_grid .ff-custom-year--disabled.ff-custom-month--selected, .ff-date-picker .ff-calendar .ff-custom-year_grid .ff-custom-year--disabled.ff-custom-year--selected,\n.ff-date-picker .ff-calendar .ff-custom-year_grid .ff-custom-month--disabled.ff-custom-month--selected,\n.ff-date-picker .ff-calendar .ff-custom-year_grid .ff-custom-month--disabled.ff-custom-year--selected,\n.ff-date-picker .ff-calendar .ff-custom-month_grid .ff-custom-year--disabled.ff-custom-month--selected,\n.ff-date-picker .ff-calendar .ff-custom-month_grid .ff-custom-year--disabled.ff-custom-year--selected,\n.ff-date-picker .ff-calendar .ff-custom-month_grid .ff-custom-month--disabled.ff-custom-month--selected,\n.ff-date-picker .ff-calendar .ff-custom-month_grid .ff-custom-month--disabled.ff-custom-year--selected {\n background-color: var(--disable-color);\n}\n.ff-date-picker .ff-calendar .rdp-weekdays th {\n color: #6f7c8e;\n font-weight: 400;\n}\n.ff-date-picker .ff-calendar .rdp-day {\n padding: 2px;\n font-weight: 500;\n}\n.ff-date-picker .ff-calendar .rdp-day_button {\n border-radius: 4px;\n padding: 3px 9px;\n}\n.ff-date-picker .ff-calendar .rdp-day_button:hover {\n background-color: var(--hover-color);\n}\n.ff-date-picker .ff-calendar .rdp-selected {\n font: inherit;\n}\n.ff-date-picker .ff-calendar .rdp-selected .rdp-day_button {\n background: var(--rdp-accent-color);\n color: var(--drawer-footer-bg);\n border: none;\n}\n.ff-date-picker .ff-calendar .rdp-today:not(.rdp-outside) .rdp-day_button {\n border: 2px solid var(--rdp-accent-color);\n}\n.ff-date-picker .ff-time-picker-container {\n position: relative;\n width: 150px;\n height: 100%;\n overflow-y: hidden;\n border-left: 1px solid #ccc;\n padding: 10px 5px;\n box-sizing: border-box;\n}\n.ff-date-picker .ff-time-picker-container::-webkit-scrollbar {\n display: none;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields {\n display: flex;\n height: 14%;\n width: 100%;\n margin-bottom: 5px;\n box-sizing: border-box;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container {\n display: flex;\n border: 1px solid var(--border-color);\n border-right: 0;\n border-radius: 4px 0 0 4px;\n width: 55%;\n position: relative;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container .ff-time-input {\n border: none;\n padding: 5px;\n width: 100%;\n text-align: center;\n border-radius: 4px 0 0 4px;\n font-weight: 400;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container .ff-time-input::placeholder {\n opacity: 0;\n line-height: 18px;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container .ff-time-input-label {\n position: absolute;\n left: 10px;\n top: 50%;\n transform: translateY(-50%);\n transition: 0.2s ease all;\n color: var(--input-default-label-color);\n pointer-events: none;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container--float .ff-time-input-label {\n top: 0;\n left: 5px;\n color: var(--brand-color);\n background-color: var(--input-label-bg-color);\n line-height: 12px;\n padding: 0 2px;\n font-size: 8px !important;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container--float .ff-time-input-label--danger {\n color: var(--input-error-text-color);\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container:hover {\n border-color: var(--input-hover-border-color);\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container:focus-within {\n border-color: var(--brand-color);\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container:focus-within .ff-time-input-label {\n top: 0;\n left: 5px;\n color: var(--brand-color);\n background-color: var(--input-label-bg-color);\n line-height: 12px;\n padding: 0 2px;\n font-size: 8px !important;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container:focus-within .ff-time-input-label--danger {\n color: var(--input-error-text-color);\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container:focus-within .ff-time-input::placeholder {\n opacity: 1;\n margin-bottom: 1px;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container--danger {\n border-color: var(--input-error-text-color) !important;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container .ff-time-input:focus {\n outline: none;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-period-container {\n position: relative;\n width: 45%;\n display: flex;\n border: 1px solid var(--border-color);\n border-radius: 0 4px 4px 0;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-period-container .ff-time-period-select {\n display: flex;\n align-items: center;\n padding: 0 5px;\n width: 100%;\n border-radius: 4px;\n background-color: white;\n cursor: pointer;\n border: none;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-period-container--active {\n border-color: var(--brand-color) !important;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-period-container:hover {\n border-color: var(--input-hover-border-color);\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-period-container .ff-time-period-icon {\n margin-left: auto;\n pointer-events: none;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-period-container .ff-time-period-icon svg path {\n fill: var(--default-icon-color);\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-period-container:hover svg path {\n fill: var(--brand-color);\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-period-container .ff-time-period-options {\n position: fixed;\n z-index: 100;\n min-width: 60px;\n margin: 4px 0 0;\n padding: 0;\n list-style: none;\n border: 1px solid var(--ff-select-background-color);\n border-radius: 4px;\n background-color: var(--primary-button-text-color);\n box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1);\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-period-container .ff-option-item {\n padding: 8px;\n color: var(--text-color);\n border-radius: 4px;\n cursor: pointer;\n transition: background-color 0.2s ease;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-period-container .ff-option-item:hover {\n background-color: var(--ff-select-option-hover-color);\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-options {\n height: 86%;\n overflow-y: auto;\n padding-right: 5px;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-options::-webkit-scrollbar {\n width: 4px;\n height: 12px;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-options::-webkit-scrollbar-thumb {\n background-color: var(--ff-select-scroll-thumb-color);\n border-radius: 4px;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-options::-webkit-scrollbar-track {\n background-color: var(--hover-color);\n border-radius: 4px;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-options .ff-time-option {\n padding: 10px 12px;\n cursor: pointer;\n text-align: center;\n border-radius: 8px;\n background-color: rgb(249, 249, 249);\n margin: 10px 0;\n}\n\n/* Variables declaration */\n/* prettier-ignore */\n.rdp-root {\n --rdp-accent-color: blue; /* The accent color used for selected days and UI elements. */\n --rdp-accent-background-color: #f0f0ff; /* The accent background color used for selected days and UI elements. */\n --rdp-font-family: system-ui; /* The font family used by the calendar. Note that `inherit`does not work here. */\n --rdp-day-font: inherit; /* The font used for the day cells. */\n --rdp-day-height: 2.75rem; /* The height of the day cells. */\n --rdp-day-width: 2.75rem; /* The width of the day cells. */\n --rdp-day_button-border-radius: 100%; /* The border radius of the day cells. */\n --rdp-day_button-border: 2px solid transparent; /* The border of the day cells. */\n --rdp-day_button-height: var(--rdp-day-height); /* The height of the day cells. */\n --rdp-day_button-width: var(--rdp-day-width); /* The width of the day cells. */\n --rdp-selected-border: 2px solid var(--rdp-accent-color); /* The border of the selected days. */\n --rdp-selected-font: bold large var(--rdp-font-family); /* The font of the selected days. */\n --rdp-disabled-opacity: 0.5; /* The opacity of the disabled days. */\n --rdp-outside-opacity: 0.75; /* The opacity of the days outside the current month. */\n --rdp-today-color: var(--rdp-accent-color); /* The color of the today's date. */\n --rdp-dropdown-gap: 0.5rem; /* The gap between the dropdowns used in the month captons. */\n --rdp-month_caption-font: bold larger var(--rdp-font-family); /* The font of the month caption. */\n --rdp-months-gap: 2rem; /* The gap between the months in the multi-month view. */\n --rdp-nav_button-disabled-opacity: 0.5; /* The opacity of the disabled navigation buttons. */\n --rdp-nav_button-height: 2.25rem; /* The height of the navigation buttons. */\n --rdp-nav_button-width: 2.25rem; /* The width of the navigation buttons. */\n --rdp-nav-height: 2.75rem; /* The height of the navigation bar. */\n --rdp-range_middle-background-color: var(--rdp-accent-background-color); /* The color of the background for days in the middle of a range. */\n --rdp-range_middle-font: normal medium var(--rdp-font-family); /* The font for days in the middle of a range. */\n --rdp-range_middle-foreground-color: white; /* The font for days in the middle of a range. */\n --rdp-range_middle-color: inherit; /* The color of the range text. */\n --rdp-range_start-color: white; /* The color of the range text. */\n --rdp-range_start-background: linear-gradient(var(--rdp-gradient-direction), transparent 50%, var(--rdp-range_middle-background-color) 50%); /* Used for the background of the start of the selected range. */\n --rdp-range_start-date-background-color: var(--rdp-accent-color); /* The background color of the date when at the start of the selected range. */\n --rdp-range_end-background: linear-gradient(var(--rdp-gradient-direction), var(--rdp-range_middle-background-color) 50%, transparent 50%); /* Used for the background of the end of the selected range. */\n --rdp-range_end-color: white; /* The color of the range text. */\n --rdp-range_end-date-background-color: var(--rdp-accent-color); /* The background color of the date when at the end of the selected range. */\n --rdp-week_number-border-radius: 100%; /* The border radius of the week number. */\n --rdp-week_number-border: 2px solid transparent; /* The border of the week number. */\n --rdp-week_number-font: 400 small var(--rdp-font-family); /* The font of the week number cells. */\n --rdp-week_number-height: var(--rdp-day-height); /* The height of the week number cells. */\n --rdp-week_number-opacity: 0.75; /* The opacity of the week number. */\n --rdp-week_number-width: var(--rdp-day-width); /* The width of the week number cells. */\n --rdp-weeknumber-text-align: center; /* The text alignment of the weekday cells. */\n --rdp-weekday-font: 500 smaller var(--rdp-font-family); /* The font of the weekday. */\n --rdp-weekday-opacity: 0.75; /* The opacity of the weekday. */\n --rdp-weekday-padding: 0.5rem 0rem; /* The padding of the weekday. */\n --rdp-weekday-text-align: center; /* The text alignment of the weekday cells. */\n --rdp-gradient-direction: 90deg;\n}\n\n.rdp-root[dir=rtl] {\n --rdp-gradient-direction: -90deg;\n}\n\n/* Root of the component. */\n.rdp-root {\n position: relative; /* Required to position the navigation toolbar. */\n box-sizing: border-box;\n}\n\n.rdp-root * {\n box-sizing: border-box;\n}\n\n.rdp-day {\n width: var(--rdp-day-width);\n height: var(--rdp-day-height);\n font: var(--rdp-day-font);\n text-align: center;\n}\n\n.rdp-day_button {\n background: none;\n padding: 0;\n margin: 0;\n cursor: pointer;\n font: inherit;\n color: inherit;\n justify-content: center;\n align-items: center;\n display: flex;\n width: var(--rdp-day_button-width);\n height: var(--rdp-day_button-height);\n border: var(--rdp-day_button-border);\n border-radius: var(--rdp-day_button-border-radius);\n}\n\n.rdp-day_button:disabled {\n cursor: revert;\n}\n\n.rdp-caption_label {\n z-index: 1;\n position: relative;\n display: inline-flex;\n align-items: center;\n white-space: nowrap;\n border: 0;\n}\n\n.rdp-button_next,\n.rdp-button_previous {\n border: none;\n background: none;\n padding: 0;\n margin: 0;\n cursor: pointer;\n font: inherit;\n color: inherit;\n -moz-appearance: none;\n -webkit-appearance: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n position: relative;\n appearance: none;\n width: var(--rdp-nav_button-width);\n height: var(--rdp-nav_button-height);\n}\n\n.rdp-button_next:disabled,\n.rdp-button_previous:disabled {\n cursor: revert;\n opacity: var(--rdp-nav_button-disabled-opacity);\n}\n\n.rdp-chevron {\n display: inline-block;\n fill: var(--rdp-accent-color);\n}\n\n.rdp-root[dir=rtl] .rdp-nav .rdp-chevron {\n transform: rotate(180deg);\n}\n\n.rdp-root[dir=rtl] .rdp-nav .rdp-chevron {\n transform: rotate(180deg);\n transform-origin: 50%;\n}\n\n.rdp-dropdowns {\n position: relative;\n display: inline-flex;\n align-items: center;\n gap: var(--rdp-dropdown-gap);\n}\n\n.rdp-dropdown {\n z-index: 2;\n /* Reset */\n opacity: 0;\n appearance: none;\n position: absolute;\n inset-block-start: 0;\n inset-block-end: 0;\n inset-inline-start: 0;\n width: 100%;\n margin: 0;\n padding: 0;\n cursor: inherit;\n border: none;\n line-height: inherit;\n}\n\n.rdp-dropdown_root {\n position: relative;\n display: inline-flex;\n align-items: center;\n}\n\n.rdp-dropdown_root[data-disabled=true] .rdp-chevron {\n opacity: var(--rdp-disabled-opacity);\n}\n\n.rdp-month_caption {\n display: flex;\n align-content: center;\n height: var(--rdp-nav-height);\n font: var(--rdp-month_caption-font);\n}\n\n.rdp-months {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n gap: var(--rdp-months-gap);\n max-width: fit-content;\n}\n\n.rdp-month_grid {\n border-collapse: collapse;\n}\n\n.rdp-nav {\n position: absolute;\n inset-block-start: 0;\n inset-inline-end: 0;\n display: flex;\n align-items: center;\n height: var(--rdp-nav-height);\n}\n\n.rdp-weekday {\n opacity: var(--rdp-weekday-opacity);\n padding: var(--rdp-weekday-padding);\n font: var(--rdp-weekday-font);\n text-align: var(--rdp-weekday-text-align);\n text-transform: var(--rdp-weekday-text-transform);\n}\n\n.rdp-week_number {\n opacity: var(--rdp-week_number-opacity);\n font: var(--rdp-week_number-font);\n height: var(--rdp-week_number-height);\n width: var(--rdp-week_number-width);\n border: var(--rdp-week_number-border);\n border-radius: var(--rdp-week_number-border-radius);\n text-align: var(--rdp-weeknumber-text-align);\n}\n\n/* DAY MODIFIERS */\n.rdp-today:not(.rdp-outside) {\n color: var(--rdp-today-color);\n}\n\n.rdp-selected {\n font: var(--rdp-selected-font);\n}\n\n.rdp-selected .rdp-day_button {\n border: var(--rdp-selected-border);\n}\n\n.rdp-outside {\n opacity: var(--rdp-outside-opacity);\n}\n\n.rdp-disabled {\n opacity: var(--rdp-disabled-opacity);\n}\n\n.rdp-hidden {\n visibility: hidden;\n color: var(--rdp-range_start-color);\n}\n\n.rdp-range_start {\n background: var(--rdp-range_start-background);\n}\n\n.rdp-range_start .rdp-day_button {\n background-color: var(--rdp-range_start-date-background-color);\n color: var(--rdp-range_start-color);\n}\n\n.rdp-range_middle {\n background-color: var(--rdp-range_middle-background-color);\n font: var(--rdp-range_middle-font);\n}\n\n.rdp-range_middle .rdp-day_button {\n border-color: transparent;\n border: unset;\n border-radius: unset;\n color: var(--rdp-range_middle-color);\n}\n\n.rdp-range_end {\n background: var(--rdp-range_end-background);\n color: var(--rdp-range_end-color);\n}\n\n.rdp-range_end .rdp-day_button {\n color: var(--rdp-range_start-color);\n background-color: var(--rdp-range_end-date-background-color);\n}\n\n.rdp-range_start.rdp-range_end {\n background: revert;\n}\n\n.rdp-focusable {\n cursor: pointer;\n}\n\n/* Variables declaration */\n/* prettier-ignore */\n.rdp-root {\n --rdp-accent-color: blue; /* The accent color used for selected days and UI elements. */\n --rdp-accent-background-color: #f0f0ff; /* The accent background color used for selected days and UI elements. */\n --rdp-font-family: system-ui; /* The font family used by the calendar. Note that `inherit`does not work here. */\n --rdp-day-font: inherit; /* The font used for the day cells. */\n --rdp-day-height: 2.75rem; /* The height of the day cells. */\n --rdp-day-width: 2.75rem; /* The width of the day cells. */\n --rdp-day_button-border-radius: 100%; /* The border radius of the day cells. */\n --rdp-day_button-border: 2px solid transparent; /* The border of the day cells. */\n --rdp-day_button-height: var(--rdp-day-height); /* The height of the day cells. */\n --rdp-day_button-width: var(--rdp-day-width); /* The width of the day cells. */\n --rdp-selected-border: 2px solid var(--rdp-accent-color); /* The border of the selected days. */\n --rdp-selected-font: bold large var(--rdp-font-family); /* The font of the selected days. */\n --rdp-disabled-opacity: 0.5; /* The opacity of the disabled days. */\n --rdp-outside-opacity: 0.75; /* The opacity of the days outside the current month. */\n --rdp-today-color: var(--rdp-accent-color); /* The color of the today's date. */\n --rdp-dropdown-gap: 0.5rem; /* The gap between the dropdowns used in the month captons. */\n --rdp-month_caption-font: bold larger var(--rdp-font-family); /* The font of the month caption. */\n --rdp-months-gap: 2rem; /* The gap between the months in the multi-month view. */\n --rdp-nav_button-disabled-opacity: 0.5; /* The opacity of the disabled navigation buttons. */\n --rdp-nav_button-height: 2.25rem; /* The height of the navigation buttons. */\n --rdp-nav_button-width: 2.25rem; /* The width of the navigation buttons. */\n --rdp-nav-height: 2.75rem; /* The height of the navigation bar. */\n --rdp-range_middle-background-color: var(--rdp-accent-background-color); /* The color of the background for days in the middle of a range. */\n --rdp-range_middle-font: normal medium var(--rdp-font-family); /* The font for days in the middle of a range. */\n --rdp-range_middle-foreground-color: white; /* The font for days in the middle of a range. */\n --rdp-range_middle-color: inherit; /* The color of the range text. */\n --rdp-range_start-color: white; /* The color of the range text. */\n --rdp-range_start-background: linear-gradient(var(--rdp-gradient-direction), transparent 50%, var(--rdp-range_middle-background-color) 50%); /* Used for the background of the start of the selected range. */\n --rdp-range_start-date-background-color: var(--rdp-accent-color); /* The background color of the date when at the start of the selected range. */\n --rdp-range_end-background: linear-gradient(var(--rdp-gradient-direction), var(--rdp-range_middle-background-color) 50%, transparent 50%); /* Used for the background of the end of the selected range. */\n --rdp-range_end-color: white; /* The color of the range text. */\n --rdp-range_end-date-background-color: var(--rdp-accent-color); /* The background color of the date when at the end of the selected range. */\n --rdp-week_number-border-radius: 100%; /* The border radius of the week number. */\n --rdp-week_number-border: 2px solid transparent; /* The border of the week number. */\n --rdp-week_number-font: 400 small var(--rdp-font-family); /* The font of the week number cells. */\n --rdp-week_number-height: var(--rdp-day-height); /* The height of the week number cells. */\n --rdp-week_number-opacity: 0.75; /* The opacity of the week number. */\n --rdp-week_number-width: var(--rdp-day-width); /* The width of the week number cells. */\n --rdp-weeknumber-text-align: center; /* The text alignment of the weekday cells. */\n --rdp-weekday-font: 500 smaller var(--rdp-font-family); /* The font of the weekday. */\n --rdp-weekday-opacity: 0.75; /* The opacity of the weekday. */\n --rdp-weekday-padding: 0.5rem 0rem; /* The padding of the weekday. */\n --rdp-weekday-text-align: center; /* The text alignment of the weekday cells. */\n --rdp-gradient-direction: 90deg;\n}\n\n.rdp-root[dir=rtl] {\n --rdp-gradient-direction: -90deg;\n}\n\n/* Root of the component. */\n.rdp-root {\n position: relative; /* Required to position the navigation toolbar. */\n box-sizing: border-box;\n}\n\n.rdp-root * {\n box-sizing: border-box;\n}\n\n.rdp-day {\n width: var(--rdp-day-width);\n height: var(--rdp-day-height);\n font: var(--rdp-day-font);\n text-align: center;\n}\n\n.rdp-day_button {\n background: none;\n padding: 0;\n margin: 0;\n cursor: pointer;\n font: inherit;\n color: inherit;\n justify-content: center;\n align-items: center;\n display: flex;\n width: var(--rdp-day_button-width);\n height: var(--rdp-day_button-height);\n border: var(--rdp-day_button-border);\n border-radius: var(--rdp-day_button-border-radius);\n}\n\n.rdp-day_button:disabled {\n cursor: revert;\n}\n\n.rdp-caption_label {\n z-index: 1;\n position: relative;\n display: inline-flex;\n align-items: center;\n white-space: nowrap;\n border: 0;\n}\n\n.rdp-button_next,\n.rdp-button_previous {\n border: none;\n background: none;\n padding: 0;\n margin: 0;\n cursor: pointer;\n font: inherit;\n color: inherit;\n -moz-appearance: none;\n -webkit-appearance: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n position: relative;\n appearance: none;\n width: var(--rdp-nav_button-width);\n height: var(--rdp-nav_button-height);\n}\n\n.rdp-button_next:disabled,\n.rdp-button_previous:disabled {\n cursor: revert;\n opacity: var(--rdp-nav_button-disabled-opacity);\n}\n\n.rdp-chevron {\n display: inline-block;\n fill: var(--rdp-accent-color);\n}\n\n.rdp-root[dir=rtl] .rdp-nav .rdp-chevron {\n transform: rotate(180deg);\n}\n\n.rdp-root[dir=rtl] .rdp-nav .rdp-chevron {\n transform: rotate(180deg);\n transform-origin: 50%;\n}\n\n.rdp-dropdowns {\n position: relative;\n display: inline-flex;\n align-items: center;\n gap: var(--rdp-dropdown-gap);\n}\n\n.rdp-dropdown {\n z-index: 2;\n /* Reset */\n opacity: 0;\n appearance: none;\n position: absolute;\n inset-block-start: 0;\n inset-block-end: 0;\n inset-inline-start: 0;\n width: 100%;\n margin: 0;\n padding: 0;\n cursor: inherit;\n border: none;\n line-height: inherit;\n}\n\n.rdp-dropdown_root {\n position: relative;\n display: inline-flex;\n align-items: center;\n}\n\n.rdp-dropdown_root[data-disabled=true] .rdp-chevron {\n opacity: var(--rdp-disabled-opacity);\n}\n\n.rdp-month_caption {\n display: flex;\n align-content: center;\n height: var(--rdp-nav-height);\n font: var(--rdp-month_caption-font);\n}\n\n.rdp-months {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n gap: var(--rdp-months-gap);\n max-width: fit-content;\n}\n\n.rdp-month_grid {\n border-collapse: collapse;\n}\n\n.rdp-nav {\n position: absolute;\n inset-block-start: 0;\n inset-inline-end: 0;\n display: flex;\n align-items: center;\n height: var(--rdp-nav-height);\n}\n\n.rdp-weekday {\n opacity: var(--rdp-weekday-opacity);\n padding: var(--rdp-weekday-padding);\n font: var(--rdp-weekday-font);\n text-align: var(--rdp-weekday-text-align);\n text-transform: var(--rdp-weekday-text-transform);\n}\n\n.rdp-week_number {\n opacity: var(--rdp-week_number-opacity);\n font: var(--rdp-week_number-font);\n height: var(--rdp-week_number-height);\n width: var(--rdp-week_number-width);\n border: var(--rdp-week_number-border);\n border-radius: var(--rdp-week_number-border-radius);\n text-align: var(--rdp-weeknumber-text-align);\n}\n\n/* DAY MODIFIERS */\n.rdp-today:not(.rdp-outside) {\n color: var(--rdp-today-color);\n}\n\n.rdp-selected {\n font: var(--rdp-selected-font);\n}\n\n.rdp-selected .rdp-day_button {\n border: var(--rdp-selected-border);\n}\n\n.rdp-outside {\n opacity: var(--rdp-outside-opacity);\n}\n\n.rdp-disabled {\n opacity: var(--rdp-disabled-opacity);\n}\n\n.rdp-hidden {\n visibility: hidden;\n color: var(--rdp-range_start-color);\n}\n\n.rdp-range_start {\n background: var(--rdp-range_start-background);\n}\n\n.rdp-range_start .rdp-day_button {\n background-color: var(--rdp-range_start-date-background-color);\n color: var(--rdp-range_start-color);\n}\n\n.rdp-range_middle {\n background-color: var(--rdp-range_middle-background-color);\n font: var(--rdp-range_middle-font);\n}\n\n.rdp-range_middle .rdp-day_button {\n border-color: transparent;\n border: unset;\n border-radius: unset;\n color: var(--rdp-range_middle-color);\n}\n\n.rdp-range_end {\n background: var(--rdp-range_end-background);\n color: var(--rdp-range_end-color);\n}\n\n.rdp-range_end .rdp-day_button {\n color: var(--rdp-range_start-color);\n background-color: var(--rdp-range_end-date-background-color);\n}\n\n.rdp-range_start.rdp-range_end {\n background: revert;\n}\n\n.rdp-focusable {\n cursor: pointer;\n}";
20600
20677
  styleInject(css_248z$K);
20601
20678
 
20602
20679
  const CustomDatePicker = ({
@@ -20612,7 +20689,9 @@ const CustomDatePicker = ({
20612
20689
  timeFormat = 'hh:mm a',
20613
20690
  error,
20614
20691
  helperText = '',
20615
- dateOnly = false
20692
+ dateOnly = false,
20693
+ className,
20694
+ zIndex = 10
20616
20695
  }) => {
20617
20696
  const [timeValue, setTimeValue] = React.useState('');
20618
20697
  const [selectedDate, setSelectedDate] = React.useState();
@@ -20620,13 +20699,16 @@ const CustomDatePicker = ({
20620
20699
  const [timeError, setTimeError] = React.useState(false);
20621
20700
  const [selectedMonth, setSelectedMonth] = React.useState(new Date());
20622
20701
  const [view, setView] = React.useState('days');
20702
+ const selectedDateRef = React.useRef(undefined);
20623
20703
  const [startYear, setStartYear] = React.useState(() => {
20624
20704
  const currentYear = selectedMonth?.getFullYear() ?? new Date().getFullYear();
20625
20705
  return currentYear - currentYear % 12; // Set to the first year in the 12-year range
20626
20706
  });
20627
- const [datePickerPosition, setDatePickerPosition] = React.useState('bottom');
20628
20707
  const pickerRef = React.useRef(null); // Ref to track the picker
20629
20708
  const containerRef = React.useRef(null);
20709
+ React.useEffect(() => {
20710
+ selectedDateRef.current = selectedDate;
20711
+ }, [selectedDate]);
20630
20712
  React.useEffect(() => {
20631
20713
  if (value) {
20632
20714
  setTimeValue(formatTimeStr(value));
@@ -20645,23 +20727,26 @@ const CustomDatePicker = ({
20645
20727
  const adjustPosition = () => {
20646
20728
  if (containerRef.current && pickerRef.current) {
20647
20729
  const relativeRect = containerRef.current.getBoundingClientRect();
20648
- const absoluteRect = pickerRef.current.getBoundingClientRect();
20730
+ const pickerHeight = pickerRef.current.offsetHeight;
20731
+ const spacing = 5; // spacing in pixels
20649
20732
  const spaceBelow = window.innerHeight - relativeRect.bottom;
20650
20733
  const spaceAbove = relativeRect.top;
20651
- // Check if there is more space above than below
20652
- if (spaceBelow < absoluteRect.height && spaceAbove >= absoluteRect.height) {
20653
- setDatePickerPosition('top');
20654
- } else {
20655
- setDatePickerPosition('bottom');
20734
+ let top = relativeRect.bottom + window.scrollY + spacing; // Default position to below
20735
+ if (spaceBelow < pickerHeight && spaceAbove >= pickerHeight) {
20736
+ top = relativeRect.top + window.scrollY - pickerHeight - spacing; // Place above
20656
20737
  }
20738
+ // Horizontal position: align to container with optional adjustments
20739
+ const left = relativeRect.left + window.scrollX;
20740
+ pickerRef.current.style.top = `${top}px`;
20741
+ pickerRef.current.style.left = `${left}px`;
20657
20742
  }
20658
20743
  };
20659
- // Initial check
20744
+ // Initial adjustment
20660
20745
  adjustPosition();
20661
- // Adjust position on window resize
20746
+ // Recalculate on resize
20662
20747
  window.addEventListener('resize', adjustPosition);
20663
20748
  return () => window.removeEventListener('resize', adjustPosition);
20664
- }, []);
20749
+ }, [isPickerOpen]);
20665
20750
  const calendarStyle = {
20666
20751
  '--rdp-day-width': calendarWidth ? `${calendarWidth / 7 - 4}px` : undefined
20667
20752
  };
@@ -20695,7 +20780,8 @@ const CustomDatePicker = ({
20695
20780
  }
20696
20781
  };
20697
20782
  const handleSave = () => {
20698
- onChange(selectedDate);
20783
+ console.log('selectedDate1', selectedDateRef.current);
20784
+ onChange(selectedDateRef.current);
20699
20785
  resetAndCloseDatePicker();
20700
20786
  };
20701
20787
  const handleDateInputClick = () => {
@@ -20873,7 +20959,7 @@ const CustomDatePicker = ({
20873
20959
  });
20874
20960
  };
20875
20961
  return jsxRuntime.jsxs("div", {
20876
- className: "ff-date-picker",
20962
+ className: `ff-date-picker ${className}`,
20877
20963
  ref: containerRef,
20878
20964
  children: [jsxRuntime.jsxs("div", {
20879
20965
  className: "ff-datepicker-input-container",
@@ -20917,8 +21003,7 @@ const CustomDatePicker = ({
20917
21003
  className: "ff-date-picker-container",
20918
21004
  ref: pickerRef,
20919
21005
  style: {
20920
- top: datePickerPosition === 'top' ? 'auto' : '110%',
20921
- bottom: datePickerPosition === 'top' ? '110%' : 'auto'
21006
+ zIndex
20922
21007
  },
20923
21008
  children: [jsxRuntime.jsxs("div", {
20924
21009
  className: "ff-calendar-container",
@@ -20968,12 +21053,12 @@ const CustomDatePicker = ({
20968
21053
  })]
20969
21054
  }), !dateOnly && jsxRuntime.jsxs("div", {
20970
21055
  className: "ff-date-picker-controls",
20971
- children: [jsxRuntime.jsx(Button$2, {
21056
+ children: [jsxRuntime.jsx(Button$1, {
20972
21057
  className: "ff-date-picker-button",
20973
21058
  variant: "secondary",
20974
21059
  onClick: handleCancel,
20975
21060
  label: "Cancel"
20976
- }), jsxRuntime.jsx(Button$2, {
21061
+ }), jsxRuntime.jsx(Button$1, {
20977
21062
  className: "ff-date-picker-button",
20978
21063
  variant: "primary",
20979
21064
  onClick: handleSave,
@@ -21629,6 +21714,8 @@ function LiveRegion(_ref) {
21629
21714
  // Hide element visually but keep it readable by screen readers
21630
21715
  const visuallyHidden = {
21631
21716
  position: 'fixed',
21717
+ top: 0,
21718
+ left: 0,
21632
21719
  width: 1,
21633
21720
  height: 1,
21634
21721
  margin: -1,
@@ -22618,11 +22705,12 @@ var KeyboardCode;
22618
22705
  KeyboardCode["Up"] = "ArrowUp";
22619
22706
  KeyboardCode["Esc"] = "Escape";
22620
22707
  KeyboardCode["Enter"] = "Enter";
22708
+ KeyboardCode["Tab"] = "Tab";
22621
22709
  })(KeyboardCode || (KeyboardCode = {}));
22622
22710
  const defaultKeyboardCodes = {
22623
22711
  start: [KeyboardCode.Space, KeyboardCode.Enter],
22624
22712
  cancel: [KeyboardCode.Esc],
22625
- end: [KeyboardCode.Space, KeyboardCode.Enter]
22713
+ end: [KeyboardCode.Space, KeyboardCode.Enter, KeyboardCode.Tab]
22626
22714
  };
22627
22715
  const defaultKeyboardCoordinateGetter = (event, _ref) => {
22628
22716
  let {
@@ -22921,6 +23009,9 @@ class AbstractPointerSensor {
22921
23009
  passive: false
22922
23010
  });
22923
23011
  this.listeners.add(events.end.name, this.handleEnd);
23012
+ if (events.cancel) {
23013
+ this.listeners.add(events.cancel.name, this.handleCancel);
23014
+ }
22924
23015
  this.windowListeners.add(EventName.Resize, this.handleCancel);
22925
23016
  this.windowListeners.add(EventName.DragStart, preventDefault);
22926
23017
  this.windowListeners.add(EventName.VisibilityChange, this.handleCancel);
@@ -22936,9 +23027,11 @@ class AbstractPointerSensor {
22936
23027
  }
22937
23028
  if (isDelayConstraint(activationConstraint)) {
22938
23029
  this.timeoutId = setTimeout(this.handleStart, activationConstraint.delay);
23030
+ this.handlePending(activationConstraint);
22939
23031
  return;
22940
23032
  }
22941
23033
  if (isDistanceConstraint(activationConstraint)) {
23034
+ this.handlePending(activationConstraint);
22942
23035
  return;
22943
23036
  }
22944
23037
  }
@@ -22955,6 +23048,13 @@ class AbstractPointerSensor {
22955
23048
  this.timeoutId = null;
22956
23049
  }
22957
23050
  }
23051
+ handlePending(constraint, offset) {
23052
+ const {
23053
+ active,
23054
+ onPending
23055
+ } = this.props;
23056
+ onPending(active, constraint, this.initialCoordinates, offset);
23057
+ }
22958
23058
  handleStart() {
22959
23059
  const {
22960
23060
  initialCoordinates
@@ -23008,6 +23108,7 @@ class AbstractPointerSensor {
23008
23108
  return this.handleCancel();
23009
23109
  }
23010
23110
  }
23111
+ this.handlePending(activationConstraint, delta);
23011
23112
  return;
23012
23113
  }
23013
23114
  if (event.cancelable) {
@@ -23017,16 +23118,24 @@ class AbstractPointerSensor {
23017
23118
  }
23018
23119
  handleEnd() {
23019
23120
  const {
23121
+ onAbort,
23020
23122
  onEnd
23021
23123
  } = this.props;
23022
23124
  this.detach();
23125
+ if (!this.activated) {
23126
+ onAbort(this.props.active);
23127
+ }
23023
23128
  onEnd();
23024
23129
  }
23025
23130
  handleCancel() {
23026
23131
  const {
23132
+ onAbort,
23027
23133
  onCancel
23028
23134
  } = this.props;
23029
23135
  this.detach();
23136
+ if (!this.activated) {
23137
+ onAbort(this.props.active);
23138
+ }
23030
23139
  onCancel();
23031
23140
  }
23032
23141
  handleKeydown(event) {
@@ -23040,6 +23149,9 @@ class AbstractPointerSensor {
23040
23149
  }
23041
23150
  }
23042
23151
  const events = {
23152
+ cancel: {
23153
+ name: 'pointercancel'
23154
+ },
23043
23155
  move: {
23044
23156
  name: 'pointermove'
23045
23157
  },
@@ -23112,6 +23224,9 @@ MouseSensor.activators = [{
23112
23224
  }
23113
23225
  }];
23114
23226
  const events$2 = {
23227
+ cancel: {
23228
+ name: 'touchcancel'
23229
+ },
23115
23230
  move: {
23116
23231
  name: 'touchmove'
23117
23232
  },
@@ -23313,11 +23428,11 @@ function useScrollIntent(_ref2) {
23313
23428
  }, [disabled, delta, previousDelta]);
23314
23429
  }
23315
23430
  function useCachedNode(draggableNodes, id) {
23316
- const draggableNode = id !== null ? draggableNodes.get(id) : undefined;
23431
+ const draggableNode = id != null ? draggableNodes.get(id) : undefined;
23317
23432
  const node = draggableNode ? draggableNode.node.current : null;
23318
23433
  return useLazyMemo(cachedNode => {
23319
23434
  var _ref;
23320
- if (id === null) {
23435
+ if (id == null) {
23321
23436
  return null;
23322
23437
  } // In some cases, the draggable node can unmount while dragging
23323
23438
  // This is the case for virtualized lists. In those situations,
@@ -23525,7 +23640,26 @@ function useRect(element, measure, fallbackRect) {
23525
23640
  if (measure === void 0) {
23526
23641
  measure = defaultMeasure;
23527
23642
  }
23528
- const [rect, measureRect] = React.useReducer(reducer, null);
23643
+ const [rect, setRect] = React.useState(null);
23644
+ function measureRect() {
23645
+ setRect(currentRect => {
23646
+ if (!element) {
23647
+ return null;
23648
+ }
23649
+ if (element.isConnected === false) {
23650
+ var _ref;
23651
+
23652
+ // Fall back to last rect we measured if the element is
23653
+ // no longer connected to the DOM.
23654
+ return (_ref = currentRect != null ? currentRect : fallbackRect) != null ? _ref : null;
23655
+ }
23656
+ const newRect = measure(element);
23657
+ if (JSON.stringify(currentRect) === JSON.stringify(newRect)) {
23658
+ return currentRect;
23659
+ }
23660
+ return newRect;
23661
+ });
23662
+ }
23529
23663
  const mutationObserver = useMutationObserver({
23530
23664
  callback(records) {
23531
23665
  if (!element) {
@@ -23560,23 +23694,6 @@ function useRect(element, measure, fallbackRect) {
23560
23694
  }
23561
23695
  }, [element]);
23562
23696
  return rect;
23563
- function reducer(currentRect) {
23564
- if (!element) {
23565
- return null;
23566
- }
23567
- if (element.isConnected === false) {
23568
- var _ref;
23569
-
23570
- // Fall back to last rect we measured if the element is
23571
- // no longer connected to the DOM.
23572
- return (_ref = currentRect != null ? currentRect : fallbackRect) != null ? _ref : null;
23573
- }
23574
- const newRect = measure(element);
23575
- if (JSON.stringify(currentRect) === JSON.stringify(newRect)) {
23576
- return currentRect;
23577
- }
23578
- return newRect;
23579
- }
23580
23697
  }
23581
23698
  function useRectDelta(rect) {
23582
23699
  const initialRect = useInitialValue(rect);
@@ -23722,28 +23839,24 @@ function useRects(elements, measure) {
23722
23839
  }
23723
23840
  const [firstElement] = elements;
23724
23841
  const windowRect = useWindowRect(firstElement ? getWindow(firstElement) : null);
23725
- const [rects, measureRects] = React.useReducer(reducer, defaultValue$2);
23842
+ const [rects, setRects] = React.useState(defaultValue$2);
23843
+ function measureRects() {
23844
+ setRects(() => {
23845
+ if (!elements.length) {
23846
+ return defaultValue$2;
23847
+ }
23848
+ return elements.map(element => isDocumentScrollingElement(element) ? windowRect : new Rect(measure(element), element));
23849
+ });
23850
+ }
23726
23851
  const resizeObserver = useResizeObserver({
23727
23852
  callback: measureRects
23728
23853
  });
23729
- if (elements.length > 0 && rects === defaultValue$2) {
23730
- measureRects();
23731
- }
23732
23854
  useIsomorphicLayoutEffect$1(() => {
23733
- if (elements.length) {
23734
- elements.forEach(element => resizeObserver == null ? void 0 : resizeObserver.observe(element));
23735
- } else {
23736
- resizeObserver == null ? void 0 : resizeObserver.disconnect();
23737
- measureRects();
23738
- }
23855
+ resizeObserver == null ? void 0 : resizeObserver.disconnect();
23856
+ measureRects();
23857
+ elements.forEach(element => resizeObserver == null ? void 0 : resizeObserver.observe(element));
23739
23858
  }, [elements]);
23740
23859
  return rects;
23741
- function reducer() {
23742
- if (!elements.length) {
23743
- return defaultValue$2;
23744
- }
23745
- return elements.map(element => isDocumentScrollingElement(element) ? windowRect : new Rect(measure(element), element));
23746
- }
23747
23860
  }
23748
23861
  function getMeasurableNode(node) {
23749
23862
  if (!node) {
@@ -23910,7 +24023,7 @@ function reducer$1(state, action) {
23910
24023
  }
23911
24024
  };
23912
24025
  case Action.DragMove:
23913
- if (!state.draggable.active) {
24026
+ if (state.draggable.active == null) {
23914
24027
  return state;
23915
24028
  }
23916
24029
  return {
@@ -24182,7 +24295,7 @@ const DndContext = /*#__PURE__*/React.memo(function DndContext(_ref) {
24182
24295
  containers: droppableContainers
24183
24296
  }
24184
24297
  } = state;
24185
- const node = activeId ? draggableNodes.get(activeId) : null;
24298
+ const node = activeId != null ? draggableNodes.get(activeId) : null;
24186
24299
  const activeRects = React.useRef({
24187
24300
  initial: null,
24188
24301
  translated: null
@@ -24217,7 +24330,7 @@ const DndContext = /*#__PURE__*/React.memo(function DndContext(_ref) {
24217
24330
  const autoScrollOptions = getAutoScrollerOptions();
24218
24331
  const initialActiveNodeRect = useInitialRect(activeNode, measuringConfiguration.draggable.measure);
24219
24332
  useLayoutShiftScrollCompensation({
24220
- activeNode: activeId ? draggableNodes.get(activeId) : null,
24333
+ activeNode: activeId != null ? draggableNodes.get(activeId) : null,
24221
24334
  config: autoScrollOptions.layoutShiftCompensation,
24222
24335
  initialRect: initialActiveNodeRect,
24223
24336
  measure: measuringConfiguration.draggable.measure
@@ -24295,6 +24408,7 @@ const DndContext = /*#__PURE__*/React.memo(function DndContext(_ref) {
24295
24408
 
24296
24409
  const appliedTranslate = usesDragOverlay ? modifiedTranslate : add(modifiedTranslate, activeNodeScrollDelta);
24297
24410
  const transform = adjustScale(appliedTranslate, (_over$rect = over == null ? void 0 : over.rect) != null ? _over$rect : null, activeNodeRect);
24411
+ const activeSensorRef = React.useRef(null);
24298
24412
  const instantiateSensor = React.useCallback((event, _ref2) => {
24299
24413
  let {
24300
24414
  sensor: Sensor,
@@ -24316,6 +24430,43 @@ const DndContext = /*#__PURE__*/React.memo(function DndContext(_ref) {
24316
24430
  // Sensors need to be instantiated with refs for arguments that change over time
24317
24431
  // otherwise they are frozen in time with the stale arguments
24318
24432
  context: sensorContext,
24433
+ onAbort(id) {
24434
+ const draggableNode = draggableNodes.get(id);
24435
+ if (!draggableNode) {
24436
+ return;
24437
+ }
24438
+ const {
24439
+ onDragAbort
24440
+ } = latestProps.current;
24441
+ const event = {
24442
+ id
24443
+ };
24444
+ onDragAbort == null ? void 0 : onDragAbort(event);
24445
+ dispatchMonitorEvent({
24446
+ type: 'onDragAbort',
24447
+ event
24448
+ });
24449
+ },
24450
+ onPending(id, constraint, initialCoordinates, offset) {
24451
+ const draggableNode = draggableNodes.get(id);
24452
+ if (!draggableNode) {
24453
+ return;
24454
+ }
24455
+ const {
24456
+ onDragPending
24457
+ } = latestProps.current;
24458
+ const event = {
24459
+ id,
24460
+ constraint,
24461
+ initialCoordinates,
24462
+ offset
24463
+ };
24464
+ onDragPending == null ? void 0 : onDragPending(event);
24465
+ dispatchMonitorEvent({
24466
+ type: 'onDragPending',
24467
+ event
24468
+ });
24469
+ },
24319
24470
  onStart(initialCoordinates) {
24320
24471
  const id = activeRef.current;
24321
24472
  if (id == null) {
@@ -24329,6 +24480,7 @@ const DndContext = /*#__PURE__*/React.memo(function DndContext(_ref) {
24329
24480
  onDragStart
24330
24481
  } = latestProps.current;
24331
24482
  const event = {
24483
+ activatorEvent,
24332
24484
  active: {
24333
24485
  id,
24334
24486
  data: draggableNode.data,
@@ -24347,6 +24499,8 @@ const DndContext = /*#__PURE__*/React.memo(function DndContext(_ref) {
24347
24499
  type: 'onDragStart',
24348
24500
  event
24349
24501
  });
24502
+ setActiveSensor(activeSensorRef.current);
24503
+ setActivatorEvent(activatorEvent);
24350
24504
  });
24351
24505
  },
24352
24506
  onMove(coordinates) {
@@ -24358,10 +24512,7 @@ const DndContext = /*#__PURE__*/React.memo(function DndContext(_ref) {
24358
24512
  onEnd: createHandler(Action.DragEnd),
24359
24513
  onCancel: createHandler(Action.DragCancel)
24360
24514
  });
24361
- reactDom.unstable_batchedUpdates(() => {
24362
- setActiveSensor(sensorInstance);
24363
- setActivatorEvent(event.nativeEvent);
24364
- });
24515
+ activeSensorRef.current = sensorInstance;
24365
24516
  function createHandler(type) {
24366
24517
  return async function handler() {
24367
24518
  const {
@@ -24398,6 +24549,7 @@ const DndContext = /*#__PURE__*/React.memo(function DndContext(_ref) {
24398
24549
  setOver(null);
24399
24550
  setActiveSensor(null);
24400
24551
  setActivatorEvent(null);
24552
+ activeSensorRef.current = null;
24401
24553
  const eventName = type === Action.DragEnd ? 'onDragEnd' : 'onDragCancel';
24402
24554
  if (event) {
24403
24555
  const handler = latestProps.current[eventName];
@@ -24619,7 +24771,7 @@ const DndContext = /*#__PURE__*/React.memo(function DndContext(_ref) {
24619
24771
  });
24620
24772
  const NullContext = /*#__PURE__*/React.createContext(null);
24621
24773
  const defaultRole = 'button';
24622
- const ID_PREFIX$1 = 'Droppable';
24774
+ const ID_PREFIX$1 = 'Draggable';
24623
24775
  function useDraggable(_ref) {
24624
24776
  let {
24625
24777
  id,
@@ -24766,7 +24918,7 @@ function useDroppable(_ref) {
24766
24918
  resizeObserverConnected.current = false;
24767
24919
  resizeObserver.observe(nodeRef.current);
24768
24920
  }, [nodeRef, resizeObserver]);
24769
- useIsomorphicLayoutEffect$1(() => {
24921
+ React.useEffect(() => {
24770
24922
  dispatch({
24771
24923
  type: Action.RegisterDroppable,
24772
24924
  element: {
@@ -25181,6 +25333,7 @@ var DNDCore = /*#__PURE__*/Object.freeze({
25181
25333
  defaultCoordinates: defaultCoordinates,
25182
25334
  defaultDropAnimation: defaultDropAnimationConfiguration,
25183
25335
  defaultDropAnimationSideEffects: defaultDropAnimationSideEffects,
25336
+ defaultKeyboardCoordinateGetter: defaultKeyboardCoordinateGetter,
25184
25337
  defaultScreenReaderInstructions: defaultScreenReaderInstructions,
25185
25338
  getClientRect: getClientRect,
25186
25339
  getFirstCollision: getFirstCollision,
@@ -27054,6 +27207,316 @@ const DashboardDonutChart = ({
27054
27207
 
27055
27208
  var propTypes = {exports: {}};
27056
27209
 
27210
+ var reactIs = {exports: {}};
27211
+
27212
+ var reactIs_production_min = {};
27213
+
27214
+ /** @license React v16.13.1
27215
+ * react-is.production.min.js
27216
+ *
27217
+ * Copyright (c) Facebook, Inc. and its affiliates.
27218
+ *
27219
+ * This source code is licensed under the MIT license found in the
27220
+ * LICENSE file in the root directory of this source tree.
27221
+ */
27222
+ var hasRequiredReactIs_production_min;
27223
+ function requireReactIs_production_min() {
27224
+ if (hasRequiredReactIs_production_min) return reactIs_production_min;
27225
+ hasRequiredReactIs_production_min = 1;
27226
+ var b = "function" === typeof Symbol && Symbol.for,
27227
+ c = b ? Symbol.for("react.element") : 60103,
27228
+ d = b ? Symbol.for("react.portal") : 60106,
27229
+ e = b ? Symbol.for("react.fragment") : 60107,
27230
+ f = b ? Symbol.for("react.strict_mode") : 60108,
27231
+ g = b ? Symbol.for("react.profiler") : 60114,
27232
+ h = b ? Symbol.for("react.provider") : 60109,
27233
+ k = b ? Symbol.for("react.context") : 60110,
27234
+ l = b ? Symbol.for("react.async_mode") : 60111,
27235
+ m = b ? Symbol.for("react.concurrent_mode") : 60111,
27236
+ n = b ? Symbol.for("react.forward_ref") : 60112,
27237
+ p = b ? Symbol.for("react.suspense") : 60113,
27238
+ q = b ? Symbol.for("react.suspense_list") : 60120,
27239
+ r = b ? Symbol.for("react.memo") : 60115,
27240
+ t = b ? Symbol.for("react.lazy") : 60116,
27241
+ v = b ? Symbol.for("react.block") : 60121,
27242
+ w = b ? Symbol.for("react.fundamental") : 60117,
27243
+ x = b ? Symbol.for("react.responder") : 60118,
27244
+ y = b ? Symbol.for("react.scope") : 60119;
27245
+ function z(a) {
27246
+ if ("object" === typeof a && null !== a) {
27247
+ var u = a.$$typeof;
27248
+ switch (u) {
27249
+ case c:
27250
+ switch (a = a.type, a) {
27251
+ case l:
27252
+ case m:
27253
+ case e:
27254
+ case g:
27255
+ case f:
27256
+ case p:
27257
+ return a;
27258
+ default:
27259
+ switch (a = a && a.$$typeof, a) {
27260
+ case k:
27261
+ case n:
27262
+ case t:
27263
+ case r:
27264
+ case h:
27265
+ return a;
27266
+ default:
27267
+ return u;
27268
+ }
27269
+ }
27270
+ case d:
27271
+ return u;
27272
+ }
27273
+ }
27274
+ }
27275
+ function A(a) {
27276
+ return z(a) === m;
27277
+ }
27278
+ reactIs_production_min.AsyncMode = l;
27279
+ reactIs_production_min.ConcurrentMode = m;
27280
+ reactIs_production_min.ContextConsumer = k;
27281
+ reactIs_production_min.ContextProvider = h;
27282
+ reactIs_production_min.Element = c;
27283
+ reactIs_production_min.ForwardRef = n;
27284
+ reactIs_production_min.Fragment = e;
27285
+ reactIs_production_min.Lazy = t;
27286
+ reactIs_production_min.Memo = r;
27287
+ reactIs_production_min.Portal = d;
27288
+ reactIs_production_min.Profiler = g;
27289
+ reactIs_production_min.StrictMode = f;
27290
+ reactIs_production_min.Suspense = p;
27291
+ reactIs_production_min.isAsyncMode = function (a) {
27292
+ return A(a) || z(a) === l;
27293
+ };
27294
+ reactIs_production_min.isConcurrentMode = A;
27295
+ reactIs_production_min.isContextConsumer = function (a) {
27296
+ return z(a) === k;
27297
+ };
27298
+ reactIs_production_min.isContextProvider = function (a) {
27299
+ return z(a) === h;
27300
+ };
27301
+ reactIs_production_min.isElement = function (a) {
27302
+ return "object" === typeof a && null !== a && a.$$typeof === c;
27303
+ };
27304
+ reactIs_production_min.isForwardRef = function (a) {
27305
+ return z(a) === n;
27306
+ };
27307
+ reactIs_production_min.isFragment = function (a) {
27308
+ return z(a) === e;
27309
+ };
27310
+ reactIs_production_min.isLazy = function (a) {
27311
+ return z(a) === t;
27312
+ };
27313
+ reactIs_production_min.isMemo = function (a) {
27314
+ return z(a) === r;
27315
+ };
27316
+ reactIs_production_min.isPortal = function (a) {
27317
+ return z(a) === d;
27318
+ };
27319
+ reactIs_production_min.isProfiler = function (a) {
27320
+ return z(a) === g;
27321
+ };
27322
+ reactIs_production_min.isStrictMode = function (a) {
27323
+ return z(a) === f;
27324
+ };
27325
+ reactIs_production_min.isSuspense = function (a) {
27326
+ return z(a) === p;
27327
+ };
27328
+ reactIs_production_min.isValidElementType = function (a) {
27329
+ return "string" === typeof a || "function" === typeof a || a === e || a === m || a === g || a === f || a === p || a === q || "object" === typeof a && null !== a && (a.$$typeof === t || a.$$typeof === r || a.$$typeof === h || a.$$typeof === k || a.$$typeof === n || a.$$typeof === w || a.$$typeof === x || a.$$typeof === y || a.$$typeof === v);
27330
+ };
27331
+ reactIs_production_min.typeOf = z;
27332
+ return reactIs_production_min;
27333
+ }
27334
+
27335
+ var reactIs_development = {};
27336
+
27337
+ /** @license React v16.13.1
27338
+ * react-is.development.js
27339
+ *
27340
+ * Copyright (c) Facebook, Inc. and its affiliates.
27341
+ *
27342
+ * This source code is licensed under the MIT license found in the
27343
+ * LICENSE file in the root directory of this source tree.
27344
+ */
27345
+ var hasRequiredReactIs_development;
27346
+ function requireReactIs_development() {
27347
+ if (hasRequiredReactIs_development) return reactIs_development;
27348
+ hasRequiredReactIs_development = 1;
27349
+ if (process.env.NODE_ENV !== "production") {
27350
+ (function () {
27351
+
27352
+ // The Symbol used to tag the ReactElement-like types. If there is no native Symbol
27353
+ // nor polyfill, then a plain number is used for performance.
27354
+ var hasSymbol = typeof Symbol === 'function' && Symbol.for;
27355
+ var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
27356
+ var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
27357
+ var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
27358
+ var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
27359
+ var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
27360
+ var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
27361
+ var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary
27362
+ // (unstable) APIs that have been removed. Can we remove the symbols?
27363
+
27364
+ var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;
27365
+ var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
27366
+ var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
27367
+ var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
27368
+ var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;
27369
+ var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
27370
+ var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;
27371
+ var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;
27372
+ var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;
27373
+ var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;
27374
+ var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;
27375
+ function isValidElementType(type) {
27376
+ return typeof type === 'string' || typeof type === 'function' ||
27377
+ // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
27378
+ type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);
27379
+ }
27380
+ function typeOf(object) {
27381
+ if (typeof object === 'object' && object !== null) {
27382
+ var $$typeof = object.$$typeof;
27383
+ switch ($$typeof) {
27384
+ case REACT_ELEMENT_TYPE:
27385
+ var type = object.type;
27386
+ switch (type) {
27387
+ case REACT_ASYNC_MODE_TYPE:
27388
+ case REACT_CONCURRENT_MODE_TYPE:
27389
+ case REACT_FRAGMENT_TYPE:
27390
+ case REACT_PROFILER_TYPE:
27391
+ case REACT_STRICT_MODE_TYPE:
27392
+ case REACT_SUSPENSE_TYPE:
27393
+ return type;
27394
+ default:
27395
+ var $$typeofType = type && type.$$typeof;
27396
+ switch ($$typeofType) {
27397
+ case REACT_CONTEXT_TYPE:
27398
+ case REACT_FORWARD_REF_TYPE:
27399
+ case REACT_LAZY_TYPE:
27400
+ case REACT_MEMO_TYPE:
27401
+ case REACT_PROVIDER_TYPE:
27402
+ return $$typeofType;
27403
+ default:
27404
+ return $$typeof;
27405
+ }
27406
+ }
27407
+ case REACT_PORTAL_TYPE:
27408
+ return $$typeof;
27409
+ }
27410
+ }
27411
+ return undefined;
27412
+ } // AsyncMode is deprecated along with isAsyncMode
27413
+
27414
+ var AsyncMode = REACT_ASYNC_MODE_TYPE;
27415
+ var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
27416
+ var ContextConsumer = REACT_CONTEXT_TYPE;
27417
+ var ContextProvider = REACT_PROVIDER_TYPE;
27418
+ var Element = REACT_ELEMENT_TYPE;
27419
+ var ForwardRef = REACT_FORWARD_REF_TYPE;
27420
+ var Fragment = REACT_FRAGMENT_TYPE;
27421
+ var Lazy = REACT_LAZY_TYPE;
27422
+ var Memo = REACT_MEMO_TYPE;
27423
+ var Portal = REACT_PORTAL_TYPE;
27424
+ var Profiler = REACT_PROFILER_TYPE;
27425
+ var StrictMode = REACT_STRICT_MODE_TYPE;
27426
+ var Suspense = REACT_SUSPENSE_TYPE;
27427
+ var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated
27428
+
27429
+ function isAsyncMode(object) {
27430
+ {
27431
+ if (!hasWarnedAboutDeprecatedIsAsyncMode) {
27432
+ hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint
27433
+
27434
+ console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');
27435
+ }
27436
+ }
27437
+ return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
27438
+ }
27439
+ function isConcurrentMode(object) {
27440
+ return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
27441
+ }
27442
+ function isContextConsumer(object) {
27443
+ return typeOf(object) === REACT_CONTEXT_TYPE;
27444
+ }
27445
+ function isContextProvider(object) {
27446
+ return typeOf(object) === REACT_PROVIDER_TYPE;
27447
+ }
27448
+ function isElement(object) {
27449
+ return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
27450
+ }
27451
+ function isForwardRef(object) {
27452
+ return typeOf(object) === REACT_FORWARD_REF_TYPE;
27453
+ }
27454
+ function isFragment(object) {
27455
+ return typeOf(object) === REACT_FRAGMENT_TYPE;
27456
+ }
27457
+ function isLazy(object) {
27458
+ return typeOf(object) === REACT_LAZY_TYPE;
27459
+ }
27460
+ function isMemo(object) {
27461
+ return typeOf(object) === REACT_MEMO_TYPE;
27462
+ }
27463
+ function isPortal(object) {
27464
+ return typeOf(object) === REACT_PORTAL_TYPE;
27465
+ }
27466
+ function isProfiler(object) {
27467
+ return typeOf(object) === REACT_PROFILER_TYPE;
27468
+ }
27469
+ function isStrictMode(object) {
27470
+ return typeOf(object) === REACT_STRICT_MODE_TYPE;
27471
+ }
27472
+ function isSuspense(object) {
27473
+ return typeOf(object) === REACT_SUSPENSE_TYPE;
27474
+ }
27475
+ reactIs_development.AsyncMode = AsyncMode;
27476
+ reactIs_development.ConcurrentMode = ConcurrentMode;
27477
+ reactIs_development.ContextConsumer = ContextConsumer;
27478
+ reactIs_development.ContextProvider = ContextProvider;
27479
+ reactIs_development.Element = Element;
27480
+ reactIs_development.ForwardRef = ForwardRef;
27481
+ reactIs_development.Fragment = Fragment;
27482
+ reactIs_development.Lazy = Lazy;
27483
+ reactIs_development.Memo = Memo;
27484
+ reactIs_development.Portal = Portal;
27485
+ reactIs_development.Profiler = Profiler;
27486
+ reactIs_development.StrictMode = StrictMode;
27487
+ reactIs_development.Suspense = Suspense;
27488
+ reactIs_development.isAsyncMode = isAsyncMode;
27489
+ reactIs_development.isConcurrentMode = isConcurrentMode;
27490
+ reactIs_development.isContextConsumer = isContextConsumer;
27491
+ reactIs_development.isContextProvider = isContextProvider;
27492
+ reactIs_development.isElement = isElement;
27493
+ reactIs_development.isForwardRef = isForwardRef;
27494
+ reactIs_development.isFragment = isFragment;
27495
+ reactIs_development.isLazy = isLazy;
27496
+ reactIs_development.isMemo = isMemo;
27497
+ reactIs_development.isPortal = isPortal;
27498
+ reactIs_development.isProfiler = isProfiler;
27499
+ reactIs_development.isStrictMode = isStrictMode;
27500
+ reactIs_development.isSuspense = isSuspense;
27501
+ reactIs_development.isValidElementType = isValidElementType;
27502
+ reactIs_development.typeOf = typeOf;
27503
+ })();
27504
+ }
27505
+ return reactIs_development;
27506
+ }
27507
+
27508
+ var hasRequiredReactIs;
27509
+ function requireReactIs() {
27510
+ if (hasRequiredReactIs) return reactIs.exports;
27511
+ hasRequiredReactIs = 1;
27512
+ if (process.env.NODE_ENV === 'production') {
27513
+ reactIs.exports = requireReactIs_production_min();
27514
+ } else {
27515
+ reactIs.exports = requireReactIs_development();
27516
+ }
27517
+ return reactIs.exports;
27518
+ }
27519
+
27057
27520
  /*
27058
27521
  object-assign
27059
27522
  (c) Sindre Sorhus
@@ -27156,6 +27619,15 @@ function requireReactPropTypesSecret() {
27156
27619
  return ReactPropTypesSecret_1;
27157
27620
  }
27158
27621
 
27622
+ var has$1;
27623
+ var hasRequiredHas;
27624
+ function requireHas() {
27625
+ if (hasRequiredHas) return has$1;
27626
+ hasRequiredHas = 1;
27627
+ has$1 = Function.call.bind(Object.prototype.hasOwnProperty);
27628
+ return has$1;
27629
+ }
27630
+
27159
27631
  /**
27160
27632
  * Copyright (c) 2013-present, Facebook, Inc.
27161
27633
  *
@@ -27169,8 +27641,9 @@ function requireCheckPropTypes() {
27169
27641
  hasRequiredCheckPropTypes = 1;
27170
27642
  var printWarning = function () {};
27171
27643
  if (process.env.NODE_ENV !== 'production') {
27172
- var ReactPropTypesSecret = requireReactPropTypesSecret();
27644
+ var ReactPropTypesSecret = /*@__PURE__*/requireReactPropTypesSecret();
27173
27645
  var loggedTypeFailures = {};
27646
+ var has = /*@__PURE__*/requireHas();
27174
27647
  printWarning = function (text) {
27175
27648
  var message = 'Warning: ' + text;
27176
27649
  if (typeof console !== 'undefined') {
@@ -27181,7 +27654,7 @@ function requireCheckPropTypes() {
27181
27654
  // This error was thrown as a convenience so that you can use this stack
27182
27655
  // to find the callsite that caused this warning to fire.
27183
27656
  throw new Error(message);
27184
- } catch (x) {}
27657
+ } catch (x) {/**/}
27185
27658
  };
27186
27659
  }
27187
27660
 
@@ -27199,7 +27672,7 @@ function requireCheckPropTypes() {
27199
27672
  function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
27200
27673
  if (process.env.NODE_ENV !== 'production') {
27201
27674
  for (var typeSpecName in typeSpecs) {
27202
- if (typeSpecs.hasOwnProperty(typeSpecName)) {
27675
+ if (has(typeSpecs, typeSpecName)) {
27203
27676
  var error;
27204
27677
  // Prop type validation may throw. In case they do, we don't want to
27205
27678
  // fail the render phase where it didn't fail before. So we log it.
@@ -27208,7 +27681,7 @@ function requireCheckPropTypes() {
27208
27681
  // This is intentionally an invariant that gets caught. It's the same
27209
27682
  // behavior as without this statement except with a better message.
27210
27683
  if (typeof typeSpecs[typeSpecName] !== 'function') {
27211
- var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.');
27684
+ var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');
27212
27685
  err.name = 'Invariant Violation';
27213
27686
  throw err;
27214
27687
  }
@@ -27230,6 +27703,17 @@ function requireCheckPropTypes() {
27230
27703
  }
27231
27704
  }
27232
27705
  }
27706
+
27707
+ /**
27708
+ * Resets warning cache when testing.
27709
+ *
27710
+ * @private
27711
+ */
27712
+ checkPropTypes.resetWarningCache = function () {
27713
+ if (process.env.NODE_ENV !== 'production') {
27714
+ loggedTypeFailures = {};
27715
+ }
27716
+ };
27233
27717
  checkPropTypes_1 = checkPropTypes;
27234
27718
  return checkPropTypes_1;
27235
27719
  }
@@ -27245,9 +27729,11 @@ var hasRequiredFactoryWithTypeCheckers;
27245
27729
  function requireFactoryWithTypeCheckers() {
27246
27730
  if (hasRequiredFactoryWithTypeCheckers) return factoryWithTypeCheckers;
27247
27731
  hasRequiredFactoryWithTypeCheckers = 1;
27732
+ var ReactIs = requireReactIs();
27248
27733
  var assign = requireObjectAssign();
27249
- var ReactPropTypesSecret = requireReactPropTypesSecret();
27250
- var checkPropTypes = requireCheckPropTypes();
27734
+ var ReactPropTypesSecret = /*@__PURE__*/requireReactPropTypesSecret();
27735
+ var has = /*@__PURE__*/requireHas();
27736
+ var checkPropTypes = /*@__PURE__*/requireCheckPropTypes();
27251
27737
  var printWarning = function () {};
27252
27738
  if (process.env.NODE_ENV !== 'production') {
27253
27739
  printWarning = function (text) {
@@ -27345,6 +27831,7 @@ function requireFactoryWithTypeCheckers() {
27345
27831
  // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.
27346
27832
  var ReactPropTypes = {
27347
27833
  array: createPrimitiveTypeChecker('array'),
27834
+ bigint: createPrimitiveTypeChecker('bigint'),
27348
27835
  bool: createPrimitiveTypeChecker('boolean'),
27349
27836
  func: createPrimitiveTypeChecker('function'),
27350
27837
  number: createPrimitiveTypeChecker('number'),
@@ -27354,6 +27841,7 @@ function requireFactoryWithTypeCheckers() {
27354
27841
  any: createAnyTypeChecker(),
27355
27842
  arrayOf: createArrayOfTypeChecker,
27356
27843
  element: createElementTypeChecker(),
27844
+ elementType: createElementTypeTypeChecker(),
27357
27845
  instanceOf: createInstanceTypeChecker,
27358
27846
  node: createNodeChecker(),
27359
27847
  objectOf: createObjectOfTypeChecker,
@@ -27388,8 +27876,9 @@ function requireFactoryWithTypeCheckers() {
27388
27876
  * is prohibitively expensive if they are created too often, such as what
27389
27877
  * happens in oneOfType() for any type before the one that matched.
27390
27878
  */
27391
- function PropTypeError(message) {
27879
+ function PropTypeError(message, data) {
27392
27880
  this.message = message;
27881
+ this.data = data && typeof data === 'object' ? data : {};
27393
27882
  this.stack = '';
27394
27883
  }
27395
27884
  // Make `instanceof Error` still work for returned errors.
@@ -27445,7 +27934,9 @@ function requireFactoryWithTypeCheckers() {
27445
27934
  // check, but we can offer a more precise error message here rather than
27446
27935
  // 'of type `object`'.
27447
27936
  var preciseType = getPreciseType(propValue);
27448
- return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));
27937
+ return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'), {
27938
+ expectedType: expectedType
27939
+ });
27449
27940
  }
27450
27941
  return null;
27451
27942
  }
@@ -27485,6 +27976,17 @@ function requireFactoryWithTypeCheckers() {
27485
27976
  }
27486
27977
  return createChainableTypeChecker(validate);
27487
27978
  }
27979
+ function createElementTypeTypeChecker() {
27980
+ function validate(props, propName, componentName, location, propFullName) {
27981
+ var propValue = props[propName];
27982
+ if (!ReactIs.isValidElementType(propValue)) {
27983
+ var propType = getPropType(propValue);
27984
+ return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));
27985
+ }
27986
+ return null;
27987
+ }
27988
+ return createChainableTypeChecker(validate);
27989
+ }
27488
27990
  function createInstanceTypeChecker(expectedClass) {
27489
27991
  function validate(props, propName, componentName, location, propFullName) {
27490
27992
  if (!(props[propName] instanceof expectedClass)) {
@@ -27498,7 +28000,13 @@ function requireFactoryWithTypeCheckers() {
27498
28000
  }
27499
28001
  function createEnumTypeChecker(expectedValues) {
27500
28002
  if (!Array.isArray(expectedValues)) {
27501
- process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOf, expected an instance of array.') : void 0;
28003
+ if (process.env.NODE_ENV !== 'production') {
28004
+ if (arguments.length > 1) {
28005
+ printWarning('Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' + 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).');
28006
+ } else {
28007
+ printWarning('Invalid argument supplied to oneOf, expected an array.');
28008
+ }
28009
+ }
27502
28010
  return emptyFunctionThatReturnsNull;
27503
28011
  }
27504
28012
  function validate(props, propName, componentName, location, propFullName) {
@@ -27508,8 +28016,14 @@ function requireFactoryWithTypeCheckers() {
27508
28016
  return null;
27509
28017
  }
27510
28018
  }
27511
- var valuesString = JSON.stringify(expectedValues);
27512
- return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
28019
+ var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {
28020
+ var type = getPreciseType(value);
28021
+ if (type === 'symbol') {
28022
+ return String(value);
28023
+ }
28024
+ return value;
28025
+ });
28026
+ return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
27513
28027
  }
27514
28028
  return createChainableTypeChecker(validate);
27515
28029
  }
@@ -27524,7 +28038,7 @@ function requireFactoryWithTypeCheckers() {
27524
28038
  return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));
27525
28039
  }
27526
28040
  for (var key in propValue) {
27527
- if (propValue.hasOwnProperty(key)) {
28041
+ if (has(propValue, key)) {
27528
28042
  var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
27529
28043
  if (error instanceof Error) {
27530
28044
  return error;
@@ -27548,13 +28062,19 @@ function requireFactoryWithTypeCheckers() {
27548
28062
  }
27549
28063
  }
27550
28064
  function validate(props, propName, componentName, location, propFullName) {
28065
+ var expectedTypes = [];
27551
28066
  for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
27552
28067
  var checker = arrayOfTypeCheckers[i];
27553
- if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {
28068
+ var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);
28069
+ if (checkerResult == null) {
27554
28070
  return null;
27555
28071
  }
28072
+ if (checkerResult.data && has(checkerResult.data, 'expectedType')) {
28073
+ expectedTypes.push(checkerResult.data.expectedType);
28074
+ }
27556
28075
  }
27557
- return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));
28076
+ var expectedTypesMessage = expectedTypes.length > 0 ? ', expected one of type [' + expectedTypes.join(', ') + ']' : '';
28077
+ return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));
27558
28078
  }
27559
28079
  return createChainableTypeChecker(validate);
27560
28080
  }
@@ -27567,6 +28087,9 @@ function requireFactoryWithTypeCheckers() {
27567
28087
  }
27568
28088
  return createChainableTypeChecker(validate);
27569
28089
  }
28090
+ function invalidValidatorError(componentName, location, propFullName, key, type) {
28091
+ return new PropTypeError((componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.');
28092
+ }
27570
28093
  function createShapeTypeChecker(shapeTypes) {
27571
28094
  function validate(props, propName, componentName, location, propFullName) {
27572
28095
  var propValue = props[propName];
@@ -27576,8 +28099,8 @@ function requireFactoryWithTypeCheckers() {
27576
28099
  }
27577
28100
  for (var key in shapeTypes) {
27578
28101
  var checker = shapeTypes[key];
27579
- if (!checker) {
27580
- continue;
28102
+ if (typeof checker !== 'function') {
28103
+ return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
27581
28104
  }
27582
28105
  var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
27583
28106
  if (error) {
@@ -27595,11 +28118,13 @@ function requireFactoryWithTypeCheckers() {
27595
28118
  if (propType !== 'object') {
27596
28119
  return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
27597
28120
  }
27598
- // We need to check all keys in case some are required but missing from
27599
- // props.
28121
+ // We need to check all keys in case some are required but missing from props.
27600
28122
  var allKeys = assign({}, props[propName], shapeTypes);
27601
28123
  for (var key in allKeys) {
27602
28124
  var checker = shapeTypes[key];
28125
+ if (has(shapeTypes, key) && typeof checker !== 'function') {
28126
+ return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
28127
+ }
27603
28128
  if (!checker) {
27604
28129
  return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' + '\nBad object: ' + JSON.stringify(props[propName], null, ' ') + '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' '));
27605
28130
  }
@@ -27662,6 +28187,11 @@ function requireFactoryWithTypeCheckers() {
27662
28187
  return true;
27663
28188
  }
27664
28189
 
28190
+ // falsy value can't be a Symbol
28191
+ if (!propValue) {
28192
+ return false;
28193
+ }
28194
+
27665
28195
  // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'
27666
28196
  if (propValue['@@toStringTag'] === 'Symbol') {
27667
28197
  return true;
@@ -27734,6 +28264,7 @@ function requireFactoryWithTypeCheckers() {
27734
28264
  return propValue.constructor.name;
27735
28265
  }
27736
28266
  ReactPropTypes.checkPropTypes = checkPropTypes;
28267
+ ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;
27737
28268
  ReactPropTypes.PropTypes = ReactPropTypes;
27738
28269
  return ReactPropTypes;
27739
28270
  };
@@ -27751,8 +28282,10 @@ var hasRequiredFactoryWithThrowingShims;
27751
28282
  function requireFactoryWithThrowingShims() {
27752
28283
  if (hasRequiredFactoryWithThrowingShims) return factoryWithThrowingShims;
27753
28284
  hasRequiredFactoryWithThrowingShims = 1;
27754
- var ReactPropTypesSecret = requireReactPropTypesSecret();
28285
+ var ReactPropTypesSecret = /*@__PURE__*/requireReactPropTypesSecret();
27755
28286
  function emptyFunction() {}
28287
+ function emptyFunctionWithReset() {}
28288
+ emptyFunctionWithReset.resetWarningCache = emptyFunction;
27756
28289
  factoryWithThrowingShims = function () {
27757
28290
  function shim(props, propName, componentName, location, propFullName, secret) {
27758
28291
  if (secret === ReactPropTypesSecret) {
@@ -27771,6 +28304,7 @@ function requireFactoryWithThrowingShims() {
27771
28304
  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.
27772
28305
  var ReactPropTypes = {
27773
28306
  array: shim,
28307
+ bigint: shim,
27774
28308
  bool: shim,
27775
28309
  func: shim,
27776
28310
  number: shim,
@@ -27780,15 +28314,17 @@ function requireFactoryWithThrowingShims() {
27780
28314
  any: shim,
27781
28315
  arrayOf: getShim,
27782
28316
  element: shim,
28317
+ elementType: shim,
27783
28318
  instanceOf: getShim,
27784
28319
  node: shim,
27785
28320
  objectOf: getShim,
27786
28321
  oneOf: getShim,
27787
28322
  oneOfType: getShim,
27788
28323
  shape: getShim,
27789
- exact: getShim
28324
+ exact: getShim,
28325
+ checkPropTypes: emptyFunctionWithReset,
28326
+ resetWarningCache: emptyFunction
27790
28327
  };
27791
- ReactPropTypes.checkPropTypes = emptyFunction;
27792
28328
  ReactPropTypes.PropTypes = ReactPropTypes;
27793
28329
  return ReactPropTypes;
27794
28330
  };
@@ -27806,24 +28342,21 @@ function requirePropTypes() {
27806
28342
  if (hasRequiredPropTypes) return propTypes.exports;
27807
28343
  hasRequiredPropTypes = 1;
27808
28344
  if (process.env.NODE_ENV !== 'production') {
27809
- var REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol.for && Symbol.for('react.element') || 0xeac7;
27810
- var isValidElement = function (object) {
27811
- return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
27812
- };
28345
+ var ReactIs = requireReactIs();
27813
28346
 
27814
28347
  // By explicitly using `prop-types` you are opting into new development behavior.
27815
28348
  // http://fb.me/prop-types-in-prod
27816
28349
  var throwOnDirectAccess = true;
27817
- propTypes.exports = requireFactoryWithTypeCheckers()(isValidElement, throwOnDirectAccess);
28350
+ propTypes.exports = /*@__PURE__*/requireFactoryWithTypeCheckers()(ReactIs.isElement, throwOnDirectAccess);
27818
28351
  } else {
27819
28352
  // By explicitly using `prop-types` you are opting into new production behavior.
27820
28353
  // http://fb.me/prop-types-in-prod
27821
- propTypes.exports = requireFactoryWithThrowingShims()();
28354
+ propTypes.exports = /*@__PURE__*/requireFactoryWithThrowingShims()();
27822
28355
  }
27823
28356
  return propTypes.exports;
27824
28357
  }
27825
28358
 
27826
- var propTypesExports = requirePropTypes();
28359
+ var propTypesExports = /*@__PURE__*/ requirePropTypes();
27827
28360
  var PropTypes = /*@__PURE__*/getDefaultExportFromCjs(propTypesExports);
27828
28361
 
27829
28362
  var _excluded = ["sitekey", "onChange", "theme", "type", "tabindex", "onExpired", "onErrored", "size", "stoken", "grecaptcha", "badge", "hl", "isolated"];
@@ -28044,316 +28577,6 @@ ReCAPTCHA.defaultProps = {
28044
28577
  badge: "bottomright"
28045
28578
  };
28046
28579
 
28047
- var reactIs = {exports: {}};
28048
-
28049
- var reactIs_production_min = {};
28050
-
28051
- /** @license React v16.13.1
28052
- * react-is.production.min.js
28053
- *
28054
- * Copyright (c) Facebook, Inc. and its affiliates.
28055
- *
28056
- * This source code is licensed under the MIT license found in the
28057
- * LICENSE file in the root directory of this source tree.
28058
- */
28059
- var hasRequiredReactIs_production_min;
28060
- function requireReactIs_production_min() {
28061
- if (hasRequiredReactIs_production_min) return reactIs_production_min;
28062
- hasRequiredReactIs_production_min = 1;
28063
- var b = "function" === typeof Symbol && Symbol.for,
28064
- c = b ? Symbol.for("react.element") : 60103,
28065
- d = b ? Symbol.for("react.portal") : 60106,
28066
- e = b ? Symbol.for("react.fragment") : 60107,
28067
- f = b ? Symbol.for("react.strict_mode") : 60108,
28068
- g = b ? Symbol.for("react.profiler") : 60114,
28069
- h = b ? Symbol.for("react.provider") : 60109,
28070
- k = b ? Symbol.for("react.context") : 60110,
28071
- l = b ? Symbol.for("react.async_mode") : 60111,
28072
- m = b ? Symbol.for("react.concurrent_mode") : 60111,
28073
- n = b ? Symbol.for("react.forward_ref") : 60112,
28074
- p = b ? Symbol.for("react.suspense") : 60113,
28075
- q = b ? Symbol.for("react.suspense_list") : 60120,
28076
- r = b ? Symbol.for("react.memo") : 60115,
28077
- t = b ? Symbol.for("react.lazy") : 60116,
28078
- v = b ? Symbol.for("react.block") : 60121,
28079
- w = b ? Symbol.for("react.fundamental") : 60117,
28080
- x = b ? Symbol.for("react.responder") : 60118,
28081
- y = b ? Symbol.for("react.scope") : 60119;
28082
- function z(a) {
28083
- if ("object" === typeof a && null !== a) {
28084
- var u = a.$$typeof;
28085
- switch (u) {
28086
- case c:
28087
- switch (a = a.type, a) {
28088
- case l:
28089
- case m:
28090
- case e:
28091
- case g:
28092
- case f:
28093
- case p:
28094
- return a;
28095
- default:
28096
- switch (a = a && a.$$typeof, a) {
28097
- case k:
28098
- case n:
28099
- case t:
28100
- case r:
28101
- case h:
28102
- return a;
28103
- default:
28104
- return u;
28105
- }
28106
- }
28107
- case d:
28108
- return u;
28109
- }
28110
- }
28111
- }
28112
- function A(a) {
28113
- return z(a) === m;
28114
- }
28115
- reactIs_production_min.AsyncMode = l;
28116
- reactIs_production_min.ConcurrentMode = m;
28117
- reactIs_production_min.ContextConsumer = k;
28118
- reactIs_production_min.ContextProvider = h;
28119
- reactIs_production_min.Element = c;
28120
- reactIs_production_min.ForwardRef = n;
28121
- reactIs_production_min.Fragment = e;
28122
- reactIs_production_min.Lazy = t;
28123
- reactIs_production_min.Memo = r;
28124
- reactIs_production_min.Portal = d;
28125
- reactIs_production_min.Profiler = g;
28126
- reactIs_production_min.StrictMode = f;
28127
- reactIs_production_min.Suspense = p;
28128
- reactIs_production_min.isAsyncMode = function (a) {
28129
- return A(a) || z(a) === l;
28130
- };
28131
- reactIs_production_min.isConcurrentMode = A;
28132
- reactIs_production_min.isContextConsumer = function (a) {
28133
- return z(a) === k;
28134
- };
28135
- reactIs_production_min.isContextProvider = function (a) {
28136
- return z(a) === h;
28137
- };
28138
- reactIs_production_min.isElement = function (a) {
28139
- return "object" === typeof a && null !== a && a.$$typeof === c;
28140
- };
28141
- reactIs_production_min.isForwardRef = function (a) {
28142
- return z(a) === n;
28143
- };
28144
- reactIs_production_min.isFragment = function (a) {
28145
- return z(a) === e;
28146
- };
28147
- reactIs_production_min.isLazy = function (a) {
28148
- return z(a) === t;
28149
- };
28150
- reactIs_production_min.isMemo = function (a) {
28151
- return z(a) === r;
28152
- };
28153
- reactIs_production_min.isPortal = function (a) {
28154
- return z(a) === d;
28155
- };
28156
- reactIs_production_min.isProfiler = function (a) {
28157
- return z(a) === g;
28158
- };
28159
- reactIs_production_min.isStrictMode = function (a) {
28160
- return z(a) === f;
28161
- };
28162
- reactIs_production_min.isSuspense = function (a) {
28163
- return z(a) === p;
28164
- };
28165
- reactIs_production_min.isValidElementType = function (a) {
28166
- return "string" === typeof a || "function" === typeof a || a === e || a === m || a === g || a === f || a === p || a === q || "object" === typeof a && null !== a && (a.$$typeof === t || a.$$typeof === r || a.$$typeof === h || a.$$typeof === k || a.$$typeof === n || a.$$typeof === w || a.$$typeof === x || a.$$typeof === y || a.$$typeof === v);
28167
- };
28168
- reactIs_production_min.typeOf = z;
28169
- return reactIs_production_min;
28170
- }
28171
-
28172
- var reactIs_development = {};
28173
-
28174
- /** @license React v16.13.1
28175
- * react-is.development.js
28176
- *
28177
- * Copyright (c) Facebook, Inc. and its affiliates.
28178
- *
28179
- * This source code is licensed under the MIT license found in the
28180
- * LICENSE file in the root directory of this source tree.
28181
- */
28182
- var hasRequiredReactIs_development;
28183
- function requireReactIs_development() {
28184
- if (hasRequiredReactIs_development) return reactIs_development;
28185
- hasRequiredReactIs_development = 1;
28186
- if (process.env.NODE_ENV !== "production") {
28187
- (function () {
28188
-
28189
- // The Symbol used to tag the ReactElement-like types. If there is no native Symbol
28190
- // nor polyfill, then a plain number is used for performance.
28191
- var hasSymbol = typeof Symbol === 'function' && Symbol.for;
28192
- var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
28193
- var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
28194
- var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
28195
- var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
28196
- var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
28197
- var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
28198
- var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary
28199
- // (unstable) APIs that have been removed. Can we remove the symbols?
28200
-
28201
- var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;
28202
- var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
28203
- var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
28204
- var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
28205
- var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;
28206
- var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
28207
- var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;
28208
- var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;
28209
- var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;
28210
- var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;
28211
- var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;
28212
- function isValidElementType(type) {
28213
- return typeof type === 'string' || typeof type === 'function' ||
28214
- // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
28215
- type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);
28216
- }
28217
- function typeOf(object) {
28218
- if (typeof object === 'object' && object !== null) {
28219
- var $$typeof = object.$$typeof;
28220
- switch ($$typeof) {
28221
- case REACT_ELEMENT_TYPE:
28222
- var type = object.type;
28223
- switch (type) {
28224
- case REACT_ASYNC_MODE_TYPE:
28225
- case REACT_CONCURRENT_MODE_TYPE:
28226
- case REACT_FRAGMENT_TYPE:
28227
- case REACT_PROFILER_TYPE:
28228
- case REACT_STRICT_MODE_TYPE:
28229
- case REACT_SUSPENSE_TYPE:
28230
- return type;
28231
- default:
28232
- var $$typeofType = type && type.$$typeof;
28233
- switch ($$typeofType) {
28234
- case REACT_CONTEXT_TYPE:
28235
- case REACT_FORWARD_REF_TYPE:
28236
- case REACT_LAZY_TYPE:
28237
- case REACT_MEMO_TYPE:
28238
- case REACT_PROVIDER_TYPE:
28239
- return $$typeofType;
28240
- default:
28241
- return $$typeof;
28242
- }
28243
- }
28244
- case REACT_PORTAL_TYPE:
28245
- return $$typeof;
28246
- }
28247
- }
28248
- return undefined;
28249
- } // AsyncMode is deprecated along with isAsyncMode
28250
-
28251
- var AsyncMode = REACT_ASYNC_MODE_TYPE;
28252
- var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
28253
- var ContextConsumer = REACT_CONTEXT_TYPE;
28254
- var ContextProvider = REACT_PROVIDER_TYPE;
28255
- var Element = REACT_ELEMENT_TYPE;
28256
- var ForwardRef = REACT_FORWARD_REF_TYPE;
28257
- var Fragment = REACT_FRAGMENT_TYPE;
28258
- var Lazy = REACT_LAZY_TYPE;
28259
- var Memo = REACT_MEMO_TYPE;
28260
- var Portal = REACT_PORTAL_TYPE;
28261
- var Profiler = REACT_PROFILER_TYPE;
28262
- var StrictMode = REACT_STRICT_MODE_TYPE;
28263
- var Suspense = REACT_SUSPENSE_TYPE;
28264
- var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated
28265
-
28266
- function isAsyncMode(object) {
28267
- {
28268
- if (!hasWarnedAboutDeprecatedIsAsyncMode) {
28269
- hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint
28270
-
28271
- console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');
28272
- }
28273
- }
28274
- return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
28275
- }
28276
- function isConcurrentMode(object) {
28277
- return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
28278
- }
28279
- function isContextConsumer(object) {
28280
- return typeOf(object) === REACT_CONTEXT_TYPE;
28281
- }
28282
- function isContextProvider(object) {
28283
- return typeOf(object) === REACT_PROVIDER_TYPE;
28284
- }
28285
- function isElement(object) {
28286
- return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
28287
- }
28288
- function isForwardRef(object) {
28289
- return typeOf(object) === REACT_FORWARD_REF_TYPE;
28290
- }
28291
- function isFragment(object) {
28292
- return typeOf(object) === REACT_FRAGMENT_TYPE;
28293
- }
28294
- function isLazy(object) {
28295
- return typeOf(object) === REACT_LAZY_TYPE;
28296
- }
28297
- function isMemo(object) {
28298
- return typeOf(object) === REACT_MEMO_TYPE;
28299
- }
28300
- function isPortal(object) {
28301
- return typeOf(object) === REACT_PORTAL_TYPE;
28302
- }
28303
- function isProfiler(object) {
28304
- return typeOf(object) === REACT_PROFILER_TYPE;
28305
- }
28306
- function isStrictMode(object) {
28307
- return typeOf(object) === REACT_STRICT_MODE_TYPE;
28308
- }
28309
- function isSuspense(object) {
28310
- return typeOf(object) === REACT_SUSPENSE_TYPE;
28311
- }
28312
- reactIs_development.AsyncMode = AsyncMode;
28313
- reactIs_development.ConcurrentMode = ConcurrentMode;
28314
- reactIs_development.ContextConsumer = ContextConsumer;
28315
- reactIs_development.ContextProvider = ContextProvider;
28316
- reactIs_development.Element = Element;
28317
- reactIs_development.ForwardRef = ForwardRef;
28318
- reactIs_development.Fragment = Fragment;
28319
- reactIs_development.Lazy = Lazy;
28320
- reactIs_development.Memo = Memo;
28321
- reactIs_development.Portal = Portal;
28322
- reactIs_development.Profiler = Profiler;
28323
- reactIs_development.StrictMode = StrictMode;
28324
- reactIs_development.Suspense = Suspense;
28325
- reactIs_development.isAsyncMode = isAsyncMode;
28326
- reactIs_development.isConcurrentMode = isConcurrentMode;
28327
- reactIs_development.isContextConsumer = isContextConsumer;
28328
- reactIs_development.isContextProvider = isContextProvider;
28329
- reactIs_development.isElement = isElement;
28330
- reactIs_development.isForwardRef = isForwardRef;
28331
- reactIs_development.isFragment = isFragment;
28332
- reactIs_development.isLazy = isLazy;
28333
- reactIs_development.isMemo = isMemo;
28334
- reactIs_development.isPortal = isPortal;
28335
- reactIs_development.isProfiler = isProfiler;
28336
- reactIs_development.isStrictMode = isStrictMode;
28337
- reactIs_development.isSuspense = isSuspense;
28338
- reactIs_development.isValidElementType = isValidElementType;
28339
- reactIs_development.typeOf = typeOf;
28340
- })();
28341
- }
28342
- return reactIs_development;
28343
- }
28344
-
28345
- var hasRequiredReactIs;
28346
- function requireReactIs() {
28347
- if (hasRequiredReactIs) return reactIs.exports;
28348
- hasRequiredReactIs = 1;
28349
- if (process.env.NODE_ENV === 'production') {
28350
- reactIs.exports = requireReactIs_production_min();
28351
- } else {
28352
- reactIs.exports = requireReactIs_development();
28353
- }
28354
- return reactIs.exports;
28355
- }
28356
-
28357
28580
  var hoistNonReactStatics_cjs;
28358
28581
  var hasRequiredHoistNonReactStatics_cjs;
28359
28582
  function requireHoistNonReactStatics_cjs() {
@@ -28702,6 +28925,8 @@ var RecaptchaWrapper = makeAsyncScript(getURL, {
28702
28925
  var css_248z$B = ".ff-recaptcha-wrapper {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n.ff-recaptcha-wrapper .ff-recaptcha-error {\n color: var(--input-error-text-color);\n font-size: 12px;\n margin-top: 4px;\n}";
28703
28926
  styleInject(css_248z$B);
28704
28927
 
28928
+ // Extend the props to include React.RefAttributes
28929
+ const FixedReCAPTCHA = RecaptchaWrapper;
28705
28930
  const Recaptcha = /*#__PURE__*/React.forwardRef(({
28706
28931
  onVerify,
28707
28932
  className = '',
@@ -28721,7 +28946,7 @@ const Recaptcha = /*#__PURE__*/React.forwardRef(({
28721
28946
  const error = externalError || internalError;
28722
28947
  return jsxRuntime.jsxs("div", {
28723
28948
  className: classNames('ff-recaptcha-wrapper', className),
28724
- children: [jsxRuntime.jsx(RecaptchaWrapper, {
28949
+ children: [jsxRuntime.jsx(FixedReCAPTCHA, {
28725
28950
  ref: ref,
28726
28951
  sitekey: sitekey,
28727
28952
  onChange: handleChange,
@@ -29641,7 +29866,7 @@ const Branches = ({
29641
29866
  })]
29642
29867
  }) : jsxRuntime.jsx("div", {
29643
29868
  className: "ff-connecting-branch-browser-button",
29644
- children: jsxRuntime.jsx(Button$2, {
29869
+ children: jsxRuntime.jsx(Button$1, {
29645
29870
  id: `ff-sequential-branch-add-${machineInstanceId}`,
29646
29871
  variant: "tertiary",
29647
29872
  label: addInstanceLabel,
@@ -29805,7 +30030,7 @@ const SequentialConnectingBranch = ({
29805
30030
  className: "ff-branch-arrow"
29806
30031
  })
29807
30032
  }), isMachineInstances && jsxRuntime.jsx(jsxRuntime.Fragment, {
29808
- children: jsxRuntime.jsx(Button$2, {
30033
+ children: jsxRuntime.jsx(Button$1, {
29809
30034
  variant: "tertiary",
29810
30035
  label: "Add Environment",
29811
30036
  size: "small",
@@ -29931,7 +30156,7 @@ const AttachmentButton = ({
29931
30156
  fontWeight: "semi-bold",
29932
30157
  lineHeight: '18px',
29933
30158
  children: label
29934
- }), (!showSelectedFiles || selectedFiles.length === 0) && jsxRuntime.jsx(Button$2, {
30159
+ }), (!showSelectedFiles || selectedFiles.length === 0) && jsxRuntime.jsx(Button$1, {
29935
30160
  variant: buttonVariant,
29936
30161
  label: buttonLabel,
29937
30162
  size: "medium",
@@ -33218,7 +33443,7 @@ var scheduler = {exports: {}};
33218
33443
 
33219
33444
  var scheduler_production_min = {};
33220
33445
 
33221
- /** @license React v0.19.0
33446
+ /** @license React v0.19.1
33222
33447
  * scheduler.production.min.js
33223
33448
  *
33224
33449
  * Copyright (c) Facebook, Inc. and its affiliates.
@@ -33520,7 +33745,7 @@ function requireScheduler_production_min() {
33520
33745
 
33521
33746
  var scheduler_development = {};
33522
33747
 
33523
- /** @license React v0.19.0
33748
+ /** @license React v0.19.1
33524
33749
  * scheduler.development.js
33525
33750
  *
33526
33751
  * Copyright (c) Facebook, Inc. and its affiliates.
@@ -37311,11 +37536,11 @@ const CreateVariableSlider = ({
37311
37536
  const FooterContent = () => {
37312
37537
  return jsxRuntime.jsxs("div", {
37313
37538
  className: "ff-create-slider-footer",
37314
- children: [jsxRuntime.jsx(Button$2, {
37539
+ children: [jsxRuntime.jsx(Button$1, {
37315
37540
  onClick: onClose,
37316
37541
  label: "Cancel",
37317
37542
  variant: "tertiary"
37318
- }), jsxRuntime.jsx(Button$2, {
37543
+ }), jsxRuntime.jsx(Button$1, {
37319
37544
  variant: "primary",
37320
37545
  label: "create",
37321
37546
  type: "submit",
@@ -37574,7 +37799,6 @@ const ProgressBar = ({
37574
37799
  });
37575
37800
  };
37576
37801
 
37577
- const areEqual = (prevProps, nextProps) => prevProps.selectedFile?.name === nextProps.selectedFile?.name;
37578
37802
  const ChooseFile = ({
37579
37803
  variant = 'primary',
37580
37804
  size = 'small',
@@ -37591,7 +37815,7 @@ const ChooseFile = ({
37591
37815
  handleCloseIcon
37592
37816
  }) => {
37593
37817
  return jsxRuntime.jsx("div", {
37594
- children: jsxRuntime.jsx(Button$2, {
37818
+ children: jsxRuntime.jsx(Button$1, {
37595
37819
  variant: variant,
37596
37820
  label: label,
37597
37821
  type: type,
@@ -37609,7 +37833,6 @@ const ChooseFile = ({
37609
37833
  })
37610
37834
  });
37611
37835
  };
37612
- var ChooseFile$1 = /*#__PURE__*/React.memo(ChooseFile, areEqual);
37613
37836
 
37614
37837
  var css_248z$8 = "/* Container Styling */\n.ff-script-switch-container {\n display: flex;\n background-color: var(--base-bg-color);\n height: 24px;\n width: 48px;\n border-radius: 6px;\n border: 1px solid var(--border-color);\n align-items: center;\n justify-content: center;\n /* Button Styling */\n /* Active Button */\n}\n.ff-script-switch-container .ff-script-switch-button {\n padding: 0.1px;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n outline: none;\n transition: all 0.3s ease;\n /* Button Hover Effect */\n}\n.ff-script-switch-container .ff-script-switch-button:hover {\n background-color: var(--hover-color);\n color: var(--brand-color);\n}\n.ff-script-switch-container .ff-script-switch-button.active {\n background-color: var(--ff-line-number-bg);\n color: var(--base-bg-color);\n}";
37615
37838
  styleInject(css_248z$8);
@@ -51004,11 +51227,11 @@ const PopUpModal = ({
51004
51227
  })]
51005
51228
  }), jsxRuntime.jsxs("div", {
51006
51229
  className: 'warning_modal_footer_button',
51007
- children: [jsxRuntime.jsx(Button$2, {
51230
+ children: [jsxRuntime.jsx(Button$1, {
51008
51231
  variant: "secondary",
51009
51232
  label: firstButtonLabel,
51010
51233
  onClick: onClose
51011
- }), jsxRuntime.jsx(Button$2, {
51234
+ }), jsxRuntime.jsx(Button$1, {
51012
51235
  variant: buttonVariant || 'warning',
51013
51236
  label: secondButtonLabel,
51014
51237
  onClick: onContinue
@@ -53169,12 +53392,12 @@ exports.Avatar = Avatar;
53169
53392
  exports.BASE64_REGEX = BASE64_REGEX;
53170
53393
  exports.BINARY_NUMBER_REGEX = BINARY_NUMBER_REGEX;
53171
53394
  exports.BarChart = BarChart;
53172
- exports.Button = Button$2;
53395
+ exports.Button = Button$1;
53173
53396
  exports.CREDIT_CARD_REGEX = CREDIT_CARD_REGEX;
53174
53397
  exports.CURRENCY_GENERIC_REGEX = CURRENCY_GENERIC_REGEX;
53175
53398
  exports.Checkbox = Checkbox;
53176
53399
  exports.Chip = Chip;
53177
- exports.ChooseFile = ChooseFile$1;
53400
+ exports.ChooseFile = ChooseFile;
53178
53401
  exports.Col = Col;
53179
53402
  exports.Comments = Comments;
53180
53403
  exports.ConditionalDropdown = ConditionalDropdown;