pixel-react 1.8.5 → 1.8.6

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 (135) hide show
  1. package/.yarn/install-state.gz +0 -0
  2. package/lib/components/DatePicker/types.d.ts +2 -0
  3. package/lib/components/FF_Captcha/Recaptcha.d.ts +2 -1
  4. package/lib/components/FF_Captcha/types.d.ts +11 -2
  5. package/lib/index.d.ts +13 -2
  6. package/lib/index.esm.js +1239 -1012
  7. package/lib/index.esm.js.map +1 -1
  8. package/lib/index.js +1239 -1012
  9. package/lib/index.js.map +1 -1
  10. package/lib/tsconfig.tsbuildinfo +1 -1
  11. package/package.json +3 -3
  12. package/src/components/DatePicker/DatePicker.scss +307 -2
  13. package/src/components/DatePicker/DatePicker.tsx +27 -19
  14. package/src/components/DatePicker/types.ts +4 -0
  15. package/src/components/FF_Captcha/Recaptcha.tsx +19 -9
  16. package/src/components/FF_Captcha/types.ts +12 -4
  17. package/src/components/LazyLoad/LazyLoad.stories.tsx +1 -0
  18. package/src/components/LazyLoad/LazyLoading.tsx +10 -1
  19. package/lib/1fb4472b34e4fe07.css +0 -1
  20. package/lib/StyleGuide/ColorPalette/ColorPalette.stories.d.ts +0 -6
  21. package/lib/StyleGuide/Typography/Typography.stories.d.ts +0 -6
  22. package/lib/components/Accordion/Accordion.stories.d.ts +0 -6
  23. package/lib/components/AddResourceButton/AddButton.stories.d.ts +0 -8
  24. package/lib/components/AllProjectsDropdown/AllProjectsDropdown.stories.d.ts +0 -7
  25. package/lib/components/AppHeader/AppHeader.stories.d.ts +0 -7
  26. package/lib/components/AttachmentButton/AttachmentButton.stories.d.ts +0 -9
  27. package/lib/components/Avatar/Avatar.stories.d.ts +0 -10
  28. package/lib/components/Button/Button.stories.d.ts +0 -13
  29. package/lib/components/Charts/DashboardDonutChart/DashboardDonutChart.stories.d.ts +0 -7
  30. package/lib/components/Charts/DonutChart/DonutChart.stories.d.ts +0 -6
  31. package/lib/components/Charts/PieChart/PieChart.stories.d.ts +0 -7
  32. package/lib/components/Charts/RadialChart/RadialChart.stories.d.ts +0 -6
  33. package/lib/components/Checkbox/Checkbox.stories.d.ts +0 -8
  34. package/lib/components/Chip/Chip.stories.d.ts +0 -14
  35. package/lib/components/DatePicker/DatePicker.stories.d.ts +0 -9
  36. package/lib/components/DragAndDrop/DragAndDrop.stories.d.ts +0 -6
  37. package/lib/components/Drawer/Drawer.stories.d.ts +0 -12
  38. package/lib/components/ExcelFile/ColorBarselector/ColorBarSelector.d.ts +0 -8
  39. package/lib/components/ExcelFile/ContextMenu/ContextMenu.d.ts +0 -4
  40. package/lib/components/ExcelFile/ExcelFile/Excel/ActiveCell.d.ts +0 -7
  41. package/lib/components/ExcelFile/ExcelFile/Excel/Cell.d.ts +0 -4
  42. package/lib/components/ExcelFile/ExcelFile/Excel/ColumnIndicator.d.ts +0 -5
  43. package/lib/components/ExcelFile/ExcelFile/Excel/Copied.d.ts +0 -3
  44. package/lib/components/ExcelFile/ExcelFile/Excel/CornerIndicator.d.ts +0 -5
  45. package/lib/components/ExcelFile/ExcelFile/Excel/DataEditor.d.ts +0 -5
  46. package/lib/components/ExcelFile/ExcelFile/Excel/DataViewer.d.ts +0 -8
  47. package/lib/components/ExcelFile/ExcelFile/Excel/FloatingRect.d.ts +0 -10
  48. package/lib/components/ExcelFile/ExcelFile/Excel/HeaderRow.d.ts +0 -3
  49. package/lib/components/ExcelFile/ExcelFile/Excel/Row.d.ts +0 -3
  50. package/lib/components/ExcelFile/ExcelFile/Excel/RowIndicator.d.ts +0 -5
  51. package/lib/components/ExcelFile/ExcelFile/Excel/Selected.d.ts +0 -3
  52. package/lib/components/ExcelFile/ExcelFile/Excel/Spreadsheet.d.ts +0 -80
  53. package/lib/components/ExcelFile/ExcelFile/Excel/Table.d.ts +0 -3
  54. package/lib/components/ExcelFile/ExcelFile/Excel/actions.d.ts +0 -174
  55. package/lib/components/ExcelFile/ExcelFile/Excel/areModelsEqual.d.ts +0 -1
  56. package/lib/components/ExcelFile/ExcelFile/Excel/context.d.ts +0 -8
  57. package/lib/components/ExcelFile/ExcelFile/Excel/engine/engine.d.ts +0 -22
  58. package/lib/components/ExcelFile/ExcelFile/Excel/engine/formula.d.ts +0 -17
  59. package/lib/components/ExcelFile/ExcelFile/Excel/engine/index.d.ts +0 -2
  60. package/lib/components/ExcelFile/ExcelFile/Excel/engine/point-graph.d.ts +0 -21
  61. package/lib/components/ExcelFile/ExcelFile/Excel/engine/point-hash.d.ts +0 -3
  62. package/lib/components/ExcelFile/ExcelFile/Excel/engine/point-set.d.ts +0 -24
  63. package/lib/components/ExcelFile/ExcelFile/Excel/index.d.ts +0 -13
  64. package/lib/components/ExcelFile/ExcelFile/Excel/matrix.d.ts +0 -67
  65. package/lib/components/ExcelFile/ExcelFile/Excel/point-range.d.ts +0 -22
  66. package/lib/components/ExcelFile/ExcelFile/Excel/point.d.ts +0 -11
  67. package/lib/components/ExcelFile/ExcelFile/Excel/reducer.d.ts +0 -27
  68. package/lib/components/ExcelFile/ExcelFile/Excel/selection.d.ts +0 -95
  69. package/lib/components/ExcelFile/ExcelFile/Excel/types.d.ts +0 -178
  70. package/lib/components/ExcelFile/ExcelFile/Excel/use-dispatch.d.ts +0 -3
  71. package/lib/components/ExcelFile/ExcelFile/Excel/use-selector.d.ts +0 -3
  72. package/lib/components/ExcelFile/ExcelFile/Excel/util.d.ts +0 -44
  73. package/lib/components/ExcelFile/ExcelFile/ExcelFile.d.ts +0 -19
  74. package/lib/components/ExcelFile/ExcelFile.stories.d.ts +0 -6
  75. package/lib/components/ExcelFile/ExcelSheetBar/ExcelSheetBar.d.ts +0 -12
  76. package/lib/components/ExcelFile/ExcelToolBar/ExcelToolBar.d.ts +0 -15
  77. package/lib/components/ExcelFile/Types.d.ts +0 -129
  78. package/lib/components/ExcelFile/index.d.ts +0 -1
  79. package/lib/components/ExpandableMenu/ExpandableMenu.stories.d.ts +0 -7
  80. package/lib/components/FF_Captcha/captcha.stories.d.ts +0 -8
  81. package/lib/components/FileDropzone/FileDropzone.stories.d.ts +0 -8
  82. package/lib/components/Form/Form.stories.d.ts +0 -7
  83. package/lib/components/GridLayout/GridLayout.stories.d.ts +0 -8
  84. package/lib/components/HighlightText/HighlightText.stories.d.ts +0 -6
  85. package/lib/components/Icon/Icon.stories.d.ts +0 -8
  86. package/lib/components/IconButton/IconButton.stories.d.ts +0 -7
  87. package/lib/components/IconRadioGroup/IconRadioGroup.stories.d.ts +0 -7
  88. package/lib/components/Input/Input.stories.d.ts +0 -9
  89. package/lib/components/InputWithDropdown/InputWithDropdown.stories.d.ts +0 -9
  90. package/lib/components/LabelEditTextField/LabelEditTextField.stories.d.ts +0 -11
  91. package/lib/components/LazyLoad/LazyLoad.stories.d.ts +0 -6
  92. package/lib/components/MachineInputField/MachineInputField.stories.d.ts +0 -6
  93. package/lib/components/MenuOption/MenuOption.stories.d.ts +0 -16
  94. package/lib/components/MiniModal/MiniModal.stories.d.ts +0 -10
  95. package/lib/components/Modal/Modal.stories.d.ts +0 -7
  96. package/lib/components/ModulesChip/ModuleChip.stories.d.ts +0 -6
  97. package/lib/components/MultiSelect/MultiSelect.stories.d.ts +0 -10
  98. package/lib/components/NLPInput/NlpInput.stories.d.ts +0 -7
  99. package/lib/components/NLPInput/type.d.ts +0 -70
  100. package/lib/components/Paper/Paper.stories.d.ts +0 -11
  101. package/lib/components/RadioButton/RadioButton.stories.d.ts +0 -10
  102. package/lib/components/RadioGroup/RadioGroup.stories.d.ts +0 -9
  103. package/lib/components/Search/Search.stories.d.ts +0 -6
  104. package/lib/components/Select/Select.stories.d.ts +0 -13
  105. package/lib/components/Select/components/Dropdown/Dropdown.d.ts +0 -4
  106. package/lib/components/Select/components/Dropdown/dropdownTypes.d.ts +0 -17
  107. package/lib/components/SequentialConnectingBranch/SequentialConnectingBranch.stories.d.ts +0 -6
  108. package/lib/components/SequentialConnectingBranch/components/AddBrowserModal/AddBrowserModal.d.ts +0 -4
  109. package/lib/components/SequentialConnectingBranch/components/AddBrowserModal/types.d.ts +0 -3
  110. package/lib/components/SequentialConnectingBranch/components/DatasetListModal/DatasetListModal.d.ts +0 -4
  111. package/lib/components/SequentialConnectingBranch/components/DatasetListModal/types.d.ts +0 -3
  112. package/lib/components/StateDropdown/StateDropdown.stories.d.ts +0 -10
  113. package/lib/components/StatusButton/StatusButton.stories.d.ts +0 -14
  114. package/lib/components/Table/Table.stories.d.ts +0 -13
  115. package/lib/components/TableTree/TableTree.stories.d.ts +0 -7
  116. package/lib/components/Tabs/Tabs.stories.d.ts +0 -9
  117. package/lib/components/TextArea/Textarea.stories.d.ts +0 -9
  118. package/lib/components/Toast/Toast.stories.d.ts +0 -6
  119. package/lib/components/Toastify/Toastify.stories.d.ts +0 -6
  120. package/lib/components/Toggle/Toggle.stories.d.ts +0 -12
  121. package/lib/components/Tooltip/Tooltip.stories.d.ts +0 -15
  122. package/lib/components/Typography/Typography.stories.d.ts +0 -10
  123. package/lib/components/VariableInput/VariableInput.stories.d.ts +0 -6
  124. package/lib/utils/checkEmpty/checkEmpty.stories.d.ts +0 -6
  125. package/lib/utils/compareArrays/compareArrays.stories.d.ts +0 -6
  126. package/lib/utils/compareObjects/compareObjects.stories.d.ts +0 -6
  127. package/lib/utils/debounce/debounce.stories.d.ts +0 -6
  128. package/lib/utils/ffID/ffID.stories.d.ts +0 -6
  129. package/lib/utils/find/findAndInsert.d.ts +0 -7
  130. package/lib/utils/find/findAndInsert.stories.d.ts +0 -7
  131. package/lib/utils/findAndInsert/findAndInsert.stories.d.ts +0 -7
  132. package/lib/utils/getEncryptedData/getEncryptedData.stories.d.ts +0 -6
  133. package/lib/utils/getExtension/getExtension.stories.d.ts +0 -6
  134. package/lib/utils/throttle/throttle.stories.d.ts +0 -6
  135. package/lib/utils/truncateText/truncateText.stories.d.ts +0 -6
package/lib/index.esm.js CHANGED
@@ -6472,13 +6472,14 @@ var isWeb = typeof window !== 'undefined' &&
6472
6472
  function cloneObject(data) {
6473
6473
  let copy;
6474
6474
  const isArray = Array.isArray(data);
6475
+ const isFileListInstance = typeof FileList !== 'undefined' ? data instanceof FileList : false;
6475
6476
  if (data instanceof Date) {
6476
6477
  copy = new Date(data);
6477
6478
  }
6478
6479
  else if (data instanceof Set) {
6479
6480
  copy = new Set(data);
6480
6481
  }
6481
- else if (!(isWeb && (data instanceof Blob || data instanceof FileList)) &&
6482
+ else if (!(isWeb && (data instanceof Blob || isFileListInstance)) &&
6482
6483
  (isArray || isObject$2(data))) {
6483
6484
  copy = isArray ? [] : {};
6484
6485
  if (!isArray && !isPlainObject(data)) {
@@ -6537,7 +6538,7 @@ var set$1 = (object, path, value) => {
6537
6538
  ? []
6538
6539
  : {};
6539
6540
  }
6540
- if (key === '__proto__') {
6541
+ if (key === '__proto__' || key === 'constructor' || key === 'prototype') {
6541
6542
  return;
6542
6543
  }
6543
6544
  object[key] = newValue;
@@ -6756,7 +6757,7 @@ function useFormState(props) {
6756
6757
  _mounted.current = false;
6757
6758
  };
6758
6759
  }, [control]);
6759
- return getProxyFormState(formState, control, _localProxyFormState.current, false);
6760
+ return React__default.useMemo(() => getProxyFormState(formState, control, _localProxyFormState.current, false), [formState, control]);
6760
6761
  }
6761
6762
 
6762
6763
  var isString = (value) => typeof value === 'string';
@@ -6852,6 +6853,67 @@ function useController(props) {
6852
6853
  value,
6853
6854
  ...(isBoolean(props.disabled) ? { disabled: props.disabled } : {}),
6854
6855
  }));
6856
+ const fieldState = React__default.useMemo(() => Object.defineProperties({}, {
6857
+ invalid: {
6858
+ enumerable: true,
6859
+ get: () => !!get$1(formState.errors, name),
6860
+ },
6861
+ isDirty: {
6862
+ enumerable: true,
6863
+ get: () => !!get$1(formState.dirtyFields, name),
6864
+ },
6865
+ isTouched: {
6866
+ enumerable: true,
6867
+ get: () => !!get$1(formState.touchedFields, name),
6868
+ },
6869
+ isValidating: {
6870
+ enumerable: true,
6871
+ get: () => !!get$1(formState.validatingFields, name),
6872
+ },
6873
+ error: {
6874
+ enumerable: true,
6875
+ get: () => get$1(formState.errors, name),
6876
+ },
6877
+ }), [formState, name]);
6878
+ const field = React__default.useMemo(() => ({
6879
+ name,
6880
+ value,
6881
+ ...(isBoolean(disabled) || formState.disabled
6882
+ ? { disabled: formState.disabled || disabled }
6883
+ : {}),
6884
+ onChange: (event) => _registerProps.current.onChange({
6885
+ target: {
6886
+ value: getEventValue(event),
6887
+ name: name,
6888
+ },
6889
+ type: EVENTS.CHANGE,
6890
+ }),
6891
+ onBlur: () => _registerProps.current.onBlur({
6892
+ target: {
6893
+ value: get$1(control._formValues, name),
6894
+ name: name,
6895
+ },
6896
+ type: EVENTS.BLUR,
6897
+ }),
6898
+ ref: (elm) => {
6899
+ const field = get$1(control._fields, name);
6900
+ if (field && elm) {
6901
+ field._f.ref = {
6902
+ focus: () => elm.focus(),
6903
+ select: () => elm.select(),
6904
+ setCustomValidity: (message) => elm.setCustomValidity(message),
6905
+ reportValidity: () => elm.reportValidity(),
6906
+ };
6907
+ }
6908
+ },
6909
+ }), [
6910
+ name,
6911
+ control._formValues,
6912
+ disabled,
6913
+ formState.disabled,
6914
+ value,
6915
+ control._fields,
6916
+ ]);
6855
6917
  React__default.useEffect(() => {
6856
6918
  const _shouldUnregisterField = control._options.shouldUnregister || shouldUnregister;
6857
6919
  const updateMounted = (name, value) => {
@@ -6877,7 +6939,7 @@ function useController(props) {
6877
6939
  };
6878
6940
  }, [name, control, isArrayField, shouldUnregister]);
6879
6941
  React__default.useEffect(() => {
6880
- if (get$1(control._fields, name)) {
6942
+ if (isBoolean(disabled) && get$1(control._fields, name)) {
6881
6943
  control._updateDisabledField({
6882
6944
  disabled,
6883
6945
  fields: control._fields,
@@ -6886,63 +6948,11 @@ function useController(props) {
6886
6948
  });
6887
6949
  }
6888
6950
  }, [disabled, name, control]);
6889
- return {
6890
- field: {
6891
- name,
6892
- value,
6893
- ...(isBoolean(disabled) || formState.disabled
6894
- ? { disabled: formState.disabled || disabled }
6895
- : {}),
6896
- onChange: React__default.useCallback((event) => _registerProps.current.onChange({
6897
- target: {
6898
- value: getEventValue(event),
6899
- name: name,
6900
- },
6901
- type: EVENTS.CHANGE,
6902
- }), [name]),
6903
- onBlur: React__default.useCallback(() => _registerProps.current.onBlur({
6904
- target: {
6905
- value: get$1(control._formValues, name),
6906
- name: name,
6907
- },
6908
- type: EVENTS.BLUR,
6909
- }), [name, control]),
6910
- ref: React__default.useCallback((elm) => {
6911
- const field = get$1(control._fields, name);
6912
- if (field && elm) {
6913
- field._f.ref = {
6914
- focus: () => elm.focus(),
6915
- select: () => elm.select(),
6916
- setCustomValidity: (message) => elm.setCustomValidity(message),
6917
- reportValidity: () => elm.reportValidity(),
6918
- };
6919
- }
6920
- }, [control._fields, name]),
6921
- },
6951
+ return React__default.useMemo(() => ({
6952
+ field,
6922
6953
  formState,
6923
- fieldState: Object.defineProperties({}, {
6924
- invalid: {
6925
- enumerable: true,
6926
- get: () => !!get$1(formState.errors, name),
6927
- },
6928
- isDirty: {
6929
- enumerable: true,
6930
- get: () => !!get$1(formState.dirtyFields, name),
6931
- },
6932
- isTouched: {
6933
- enumerable: true,
6934
- get: () => !!get$1(formState.touchedFields, name),
6935
- },
6936
- isValidating: {
6937
- enumerable: true,
6938
- get: () => !!get$1(formState.validatingFields, name),
6939
- },
6940
- error: {
6941
- enumerable: true,
6942
- get: () => get$1(formState.errors, name),
6943
- },
6944
- }),
6945
- };
6954
+ fieldState,
6955
+ }), [field, formState, fieldState]);
6946
6956
  }
6947
6957
 
6948
6958
  /**
@@ -6992,7 +7002,7 @@ const Controller = (props) => props.render(useController(props));
6992
7002
  const flatten = (obj) => {
6993
7003
  const output = {};
6994
7004
  for (const key of Object.keys(obj)) {
6995
- if (isObjectType(obj[key])) {
7005
+ if (isObjectType(obj[key]) && obj[key] !== null) {
6996
7006
  const nested = flatten(obj[key]);
6997
7007
  for (const nestedKey of Object.keys(nested)) {
6998
7008
  output[`${key}.${nestedKey}`] = nested[nestedKey];
@@ -7061,7 +7071,7 @@ function Form(props) {
7061
7071
  headers && headers['Content-Type'],
7062
7072
  encType,
7063
7073
  ].some((value) => value && value.includes('json'));
7064
- const response = await fetch(action, {
7074
+ const response = await fetch(String(action), {
7065
7075
  method,
7066
7076
  headers: {
7067
7077
  ...headers,
@@ -7559,7 +7569,7 @@ var updateAt = (fieldValues, index, value) => {
7559
7569
  */
7560
7570
  function useFieldArray(props) {
7561
7571
  const methods = useFormContext();
7562
- const { control = methods.control, name, keyName = 'id', shouldUnregister, } = props;
7572
+ const { control = methods.control, name, keyName = 'id', shouldUnregister, rules, } = props;
7563
7573
  const [fields, setFields] = React__default.useState(control._getFieldArray(name));
7564
7574
  const ids = React__default.useRef(control._getFieldArray(name).map(generateId));
7565
7575
  const _fieldIds = React__default.useRef(fields);
@@ -7568,8 +7578,8 @@ function useFieldArray(props) {
7568
7578
  _name.current = name;
7569
7579
  _fieldIds.current = fields;
7570
7580
  control._names.array.add(name);
7571
- props.rules &&
7572
- control.register(name, props.rules);
7581
+ rules &&
7582
+ control.register(name, rules);
7573
7583
  useSubscribe({
7574
7584
  next: ({ values, name: fieldArrayName, }) => {
7575
7585
  if (fieldArrayName === _name.current || !fieldArrayName) {
@@ -7613,6 +7623,8 @@ function useFieldArray(props) {
7613
7623
  ids.current = removeArrayAt(ids.current, index);
7614
7624
  updateValues(updatedFieldArrayValues);
7615
7625
  setFields(updatedFieldArrayValues);
7626
+ !Array.isArray(get$1(control._fields, name)) &&
7627
+ set$1(control._fields, name, undefined);
7616
7628
  control._updateFieldArray(name, updatedFieldArrayValues, removeArrayAt, {
7617
7629
  argA: index,
7618
7630
  });
@@ -7927,7 +7939,8 @@ var getRuleValue = (rule) => isUndefined(rule)
7927
7939
  : rule;
7928
7940
 
7929
7941
  const ASYNC_FUNCTION = 'AsyncFunction';
7930
- var hasPromiseValidation = (fieldReference) => (!fieldReference || !fieldReference.validate) &&
7942
+ var hasPromiseValidation = (fieldReference) => !!fieldReference &&
7943
+ !!fieldReference.validate &&
7931
7944
  !!((isFunction$1(fieldReference.validate) &&
7932
7945
  fieldReference.validate.constructor.name === ASYNC_FUNCTION) ||
7933
7946
  (isObject$2(fieldReference.validate) &&
@@ -8189,9 +8202,9 @@ function createFormControl(props = {}) {
8189
8202
  const shouldUpdateValid = _proxyFormState.isValid &&
8190
8203
  isBoolean(isValid) &&
8191
8204
  _formState.isValid !== isValid;
8192
- if (props.delayError && error) {
8205
+ if (_options.delayError && error) {
8193
8206
  delayErrorCallback = debounce(() => updateErrors(name, error));
8194
- delayErrorCallback(props.delayError);
8207
+ delayErrorCallback(_options.delayError);
8195
8208
  }
8196
8209
  else {
8197
8210
  clearTimeout(timer);
@@ -8296,7 +8309,7 @@ function createFormControl(props = {}) {
8296
8309
  ? { [names]: defaultValue }
8297
8310
  : defaultValue),
8298
8311
  }, isGlobal, defaultValue);
8299
- const _getFieldArray = (name) => compact(get$1(_state.mount ? _formValues : _defaultValues, name, props.shouldUnregister ? get$1(_defaultValues, name, []) : []));
8312
+ const _getFieldArray = (name) => compact(get$1(_state.mount ? _formValues : _defaultValues, name, _options.shouldUnregister ? get$1(_defaultValues, name, []) : []));
8300
8313
  const setFieldValue = (name, value, options = {}) => {
8301
8314
  const field = get$1(_fields, name);
8302
8315
  let fieldValue = value;
@@ -8429,7 +8442,7 @@ function createFormControl(props = {}) {
8429
8442
  });
8430
8443
  if (shouldSkipValidation) {
8431
8444
  if (_proxyFormState.isValid) {
8432
- if (props.mode === 'onBlur') {
8445
+ if (_options.mode === 'onBlur') {
8433
8446
  if (isBlurEvent) {
8434
8447
  _updateValid();
8435
8448
  }
@@ -8594,7 +8607,9 @@ function createFormControl(props = {}) {
8594
8607
  : isUndefined(value)
8595
8608
  ? getFieldValue(field ? field._f : get$1(fields, name)._f)
8596
8609
  : value;
8597
- set$1(_formValues, name, inputValue);
8610
+ if (disabled || (!disabled && !isUndefined(inputValue))) {
8611
+ set$1(_formValues, name, inputValue);
8612
+ }
8598
8613
  updateTouchAndDirty(name, inputValue, false, false, true);
8599
8614
  }
8600
8615
  };
@@ -8823,7 +8838,7 @@ function createFormControl(props = {}) {
8823
8838
  }
8824
8839
  _fields = {};
8825
8840
  }
8826
- _formValues = props.shouldUnregister
8841
+ _formValues = _options.shouldUnregister
8827
8842
  ? keepStateOptions.keepDefaultValues
8828
8843
  ? cloneObject(_defaultValues)
8829
8844
  : {}
@@ -8847,7 +8862,7 @@ function createFormControl(props = {}) {
8847
8862
  !_proxyFormState.isValid ||
8848
8863
  !!keepStateOptions.keepIsValid ||
8849
8864
  !!keepStateOptions.keepDirtyValues;
8850
- _state.watch = !!props.shouldUnregister;
8865
+ _state.watch = !!_options.shouldUnregister;
8851
8866
  _subjects.state.next({
8852
8867
  submitCount: keepStateOptions.keepSubmitCount
8853
8868
  ? _formState.submitCount
@@ -9018,8 +9033,8 @@ function createFormControl(props = {}) {
9018
9033
  * ```
9019
9034
  */
9020
9035
  function useForm(props = {}) {
9021
- const _formControl = React__default.useRef();
9022
- const _values = React__default.useRef();
9036
+ const _formControl = React__default.useRef(undefined);
9037
+ const _values = React__default.useRef(undefined);
9023
9038
  const [formState, updateFormState] = React__default.useState({
9024
9039
  isDirty: false,
9025
9040
  isValidating: false,
@@ -12661,21 +12676,21 @@ const longFormatters$1 = {
12661
12676
  P: dateTimeLongFormatter$1
12662
12677
  };
12663
12678
 
12664
- const dayOfYearTokenRE = /^D+$/;
12665
- const weekYearTokenRE = /^Y+$/;
12666
- const throwTokens = ["D", "DD", "YY", "YYYY"];
12679
+ const dayOfYearTokenRE$1 = /^D+$/;
12680
+ const weekYearTokenRE$1 = /^Y+$/;
12681
+ const throwTokens$1 = ["D", "DD", "YY", "YYYY"];
12667
12682
  function isProtectedDayOfYearToken$1(token) {
12668
- return dayOfYearTokenRE.test(token);
12683
+ return dayOfYearTokenRE$1.test(token);
12669
12684
  }
12670
12685
  function isProtectedWeekYearToken$1(token) {
12671
- return weekYearTokenRE.test(token);
12686
+ return weekYearTokenRE$1.test(token);
12672
12687
  }
12673
- function warnOrThrowProtectedError(token, format, input) {
12674
- const _message = message(token, format, input);
12688
+ function warnOrThrowProtectedError$1(token, format, input) {
12689
+ const _message = message$1(token, format, input);
12675
12690
  console.warn(_message);
12676
- if (throwTokens.includes(token)) throw new RangeError(_message);
12691
+ if (throwTokens$1.includes(token)) throw new RangeError(_message);
12677
12692
  }
12678
- function message(token, format, input) {
12693
+ function message$1(token, format, input) {
12679
12694
  const subject = token[0] === "Y" ? "years" : "days of the month";
12680
12695
  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`;
12681
12696
  }
@@ -13047,7 +13062,7 @@ function format$2(date, formatStr, options) {
13047
13062
  if (!part.isToken) return part.value;
13048
13063
  const token = part.value;
13049
13064
  if (!options?.useAdditionalWeekYearTokens && isProtectedWeekYearToken$1(token) || !options?.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken$1(token)) {
13050
- warnOrThrowProtectedError(token, formatStr, String(date));
13065
+ warnOrThrowProtectedError$1(token, formatStr, String(date));
13051
13066
  }
13052
13067
  const formatter = formatters$2[token[0]];
13053
13068
  return formatter(originalDate, token, locale.localize, formatterOptions);
@@ -13273,6 +13288,53 @@ function setYear(date, year, options) {
13273
13288
  return date_;
13274
13289
  }
13275
13290
 
13291
+ const FIVE_WEEKS = 5;
13292
+ const FOUR_WEEKS = 4;
13293
+ /**
13294
+ * Return the number of weeks to display in the broadcast calendar.
13295
+ *
13296
+ * @since 9.4.0
13297
+ */
13298
+ function getBroadcastWeeksInMonth(month, dateLib) {
13299
+ // Get the first day of the month
13300
+ const firstDayOfMonth = dateLib.startOfMonth(month);
13301
+ // Get the day of the week for the first day of the month (1-7, where 1 is Monday)
13302
+ const firstDayOfWeek = firstDayOfMonth.getDay() > 0 ? firstDayOfMonth.getDay() : 7;
13303
+ const broadcastStartDate = dateLib.addDays(month, -firstDayOfWeek + 1);
13304
+ const lastDateOfLastWeek = dateLib.addDays(broadcastStartDate, FIVE_WEEKS * 7 - 1);
13305
+ const numberOfWeeks = month.getMonth() === lastDateOfLastWeek.getMonth() ? FIVE_WEEKS : FOUR_WEEKS;
13306
+ return numberOfWeeks;
13307
+ }
13308
+
13309
+ /**
13310
+ * Return the start date of the week in the broadcast calendar.
13311
+ *
13312
+ * @since 9.4.0
13313
+ */
13314
+ function startOfBroadcastWeek(date, dateLib) {
13315
+ const firstOfMonth = dateLib.startOfMonth(date);
13316
+ const dayOfWeek = firstOfMonth.getDay();
13317
+ if (dayOfWeek === 1) {
13318
+ return firstOfMonth;
13319
+ } else if (dayOfWeek === 0) {
13320
+ return dateLib.addDays(firstOfMonth, -1 * 6);
13321
+ } else {
13322
+ return dateLib.addDays(firstOfMonth, -1 * (dayOfWeek - 1));
13323
+ }
13324
+ }
13325
+
13326
+ /**
13327
+ * Return the end date of the week in the broadcast calendar.
13328
+ *
13329
+ * @since 9.4.0
13330
+ */
13331
+ function endOfBroadcastWeek(date, dateLib) {
13332
+ const startDate = startOfBroadcastWeek(date, dateLib);
13333
+ const numberOfWeeks = getBroadcastWeeksInMonth(date, dateLib);
13334
+ const endDate = dateLib.addDays(startDate, numberOfWeeks * 7 - 1);
13335
+ return endDate;
13336
+ }
13337
+
13276
13338
  /**
13277
13339
  * A wrapper class around [date-fns](http://date-fns.org) sharing the same
13278
13340
  * options. Methods of this class can be overridden using the
@@ -13353,6 +13415,15 @@ class DateLib {
13353
13415
  this.differenceInCalendarMonths = (dateLeft, dateRight) => {
13354
13416
  return this.overrides?.differenceInCalendarMonths ? this.overrides.differenceInCalendarMonths(dateLeft, dateRight) : differenceInCalendarMonths(dateLeft, dateRight);
13355
13417
  };
13418
+ /**
13419
+ * Returns the end of the broadcast week for the given date.
13420
+ *
13421
+ * @param date The original date.
13422
+ * @returns The end of the broadcast week.
13423
+ */
13424
+ this.endOfBroadcastWeek = date => {
13425
+ return this.overrides?.endOfBroadcastWeek ? this.overrides.endOfBroadcastWeek(date, this) : endOfBroadcastWeek(date, this);
13426
+ };
13356
13427
  /**
13357
13428
  * Returns the end of the ISO week for the given date.
13358
13429
  *
@@ -13514,6 +13585,15 @@ class DateLib {
13514
13585
  this.setYear = (date, year) => {
13515
13586
  return this.overrides?.setYear ? this.overrides.setYear(date, year) : setYear(date, year);
13516
13587
  };
13588
+ /**
13589
+ * Returns the start of the broadcast week for the given date.
13590
+ *
13591
+ * @param date The original date.
13592
+ * @returns The start of the broadcast week.
13593
+ */
13594
+ this.startOfBroadcastWeek = date => {
13595
+ return this.overrides?.startOfBroadcastWeek ? this.overrides.startOfBroadcastWeek(date, this) : startOfBroadcastWeek(date, this);
13596
+ };
13517
13597
  /**
13518
13598
  * Returns the start of the day for the given date.
13519
13599
  *
@@ -13996,7 +14076,9 @@ function Weekday(props) {
13996
14076
  * @see https://daypicker.dev/guides/custom-components
13997
14077
  */
13998
14078
  function Weekdays(props) {
13999
- return /*#__PURE__*/React__default.createElement("thead", null, /*#__PURE__*/React__default.createElement("tr", {
14079
+ return /*#__PURE__*/React__default.createElement("thead", {
14080
+ "aria-hidden": true
14081
+ }, /*#__PURE__*/React__default.createElement("tr", {
14000
14082
  ...props
14001
14083
  }));
14002
14084
  }
@@ -14099,7 +14181,8 @@ function getDataAttributes(props) {
14099
14181
  "data-mode": props.mode ?? undefined,
14100
14182
  "data-required": "required" in props ? props.required : undefined,
14101
14183
  "data-multiple-months": props.numberOfMonths && props.numberOfMonths > 1 || undefined,
14102
- "data-week-numbers": props.showWeekNumber || undefined
14184
+ "data-week-numbers": props.showWeekNumber || undefined,
14185
+ "data-broadcast-calendar": props.broadcastCalendar || undefined
14103
14186
  };
14104
14187
  Object.entries(props).forEach(([key, val]) => {
14105
14188
  if (key.startsWith("data-")) {
@@ -14165,7 +14248,7 @@ function formatDay(date, options, dateLib) {
14165
14248
  */
14166
14249
  function formatMonthDropdown(/** The month number to format. */
14167
14250
  monthNumber, /** The locale to use for formatting. */
14168
- locale = enUS$1) {
14251
+ locale) {
14169
14252
  return locale.localize?.month(monthNumber);
14170
14253
  }
14171
14254
 
@@ -14255,13 +14338,12 @@ function getMonthOptions(displayMonth, navStart, navEnd, formatters, dateLib) {
14255
14338
  if (!navEnd) return undefined;
14256
14339
  const {
14257
14340
  addMonths,
14258
- startOfMonth,
14259
- isBefore
14341
+ startOfMonth
14260
14342
  } = dateLib;
14261
14343
  const year = displayMonth.getFullYear();
14262
14344
  const months = [];
14263
14345
  let month = navStart;
14264
- while (months.length < 12 && isBefore(month, addMonths(navEnd, 1))) {
14346
+ while (months.length < 12) {
14265
14347
  months.push(month.getMonth());
14266
14348
  month = addMonths(month, 1);
14267
14349
  }
@@ -14269,7 +14351,7 @@ function getMonthOptions(displayMonth, navStart, navEnd, formatters, dateLib) {
14269
14351
  return a - b;
14270
14352
  });
14271
14353
  const options = sortedMonths.map(value => {
14272
- const label = formatters.formatMonthDropdown(value, dateLib.options.locale);
14354
+ const label = formatters.formatMonthDropdown(value, dateLib.options.locale ?? enUS$1);
14273
14355
  const month = dateLib.Date ? new dateLib.Date(year, value) : new Date(year, value);
14274
14356
  const disabled = navStart && month < startOfMonth(navStart) || navEnd && month > startOfMonth(navEnd) || false;
14275
14357
  return {
@@ -14644,7 +14726,8 @@ function tzName(tz, date) {
14644
14726
  */
14645
14727
  function getWeekdays(/** The date library. */
14646
14728
  dateLib, /** Use ISOWeek instead of locale/ */
14647
- ISOWeek, timeZone) {
14729
+ ISOWeek, timeZone, /** @since 9.4.0 */
14730
+ broadcastCalendar) {
14648
14731
  const date = timeZone ? TZDate.tz(timeZone) : dateLib.Date ? new dateLib.Date() : new Date();
14649
14732
  const start = ISOWeek ? dateLib.startOfISOWeek(date) : dateLib.startOfWeek(date);
14650
14733
  const days = [];
@@ -14656,20 +14739,18 @@ ISOWeek, timeZone) {
14656
14739
  }
14657
14740
 
14658
14741
  /** Return the years to show in the dropdown. */
14659
- function getYearOptions(displayMonth, calendarStart, calendarEnd, formatters, dateLib) {
14660
- if (!calendarStart) return undefined;
14661
- if (!calendarEnd) return undefined;
14742
+ function getYearOptions(navStart, navEnd, formatters, dateLib) {
14743
+ if (!navStart) return undefined;
14744
+ if (!navEnd) return undefined;
14662
14745
  const {
14663
- startOfMonth,
14664
14746
  startOfYear,
14665
14747
  endOfYear,
14666
14748
  addYears,
14667
14749
  isBefore,
14668
14750
  isSameYear
14669
14751
  } = dateLib;
14670
- const month = displayMonth.getMonth();
14671
- const firstNavYear = startOfYear(calendarStart);
14672
- const lastNavYear = endOfYear(calendarEnd);
14752
+ const firstNavYear = startOfYear(navStart);
14753
+ const lastNavYear = endOfYear(navEnd);
14673
14754
  const years = [];
14674
14755
  let year = firstNavYear;
14675
14756
  while (isBefore(year, lastNavYear) || isSameYear(year, lastNavYear)) {
@@ -14677,13 +14758,11 @@ function getYearOptions(displayMonth, calendarStart, calendarEnd, formatters, da
14677
14758
  year = addYears(year, 1);
14678
14759
  }
14679
14760
  return years.map(value => {
14680
- const year = dateLib.Date ? new dateLib.Date(value, month) : new Date(value, month);
14681
- const disabled = calendarStart && year < startOfMonth(calendarStart) || month && calendarEnd && year > startOfMonth(calendarEnd) || false;
14682
14761
  const label = formatters.formatYearDropdown(value);
14683
14762
  return {
14684
14763
  value,
14685
14764
  label,
14686
- disabled
14765
+ disabled: false
14687
14766
  };
14688
14767
  });
14689
14768
  }
@@ -14847,29 +14926,30 @@ var defaultLabels = /*#__PURE__*/Object.freeze({
14847
14926
  labelYearDropdown: labelYearDropdown
14848
14927
  });
14849
14928
 
14850
- /** The number of days in a month when having 6 weeks. */
14851
- const NrOfDaysWithFixedWeeks = 42;
14852
14929
  /** Return all the dates to display in the calendar. */
14853
14930
  function getDates(displayMonths, maxDate, props, dateLib) {
14854
14931
  const firstMonth = displayMonths[0];
14855
14932
  const lastMonth = displayMonths[displayMonths.length - 1];
14856
14933
  const {
14857
14934
  ISOWeek,
14858
- fixedWeeks
14935
+ fixedWeeks,
14936
+ broadcastCalendar
14859
14937
  } = props ?? {};
14860
14938
  const {
14861
- startOfWeek,
14862
- endOfWeek,
14863
- startOfISOWeek,
14864
- endOfISOWeek,
14865
14939
  addDays,
14866
14940
  differenceInCalendarDays,
14867
14941
  differenceInCalendarMonths,
14942
+ endOfBroadcastWeek,
14943
+ endOfISOWeek,
14944
+ endOfMonth,
14945
+ endOfWeek,
14868
14946
  isAfter,
14869
- endOfMonth
14947
+ startOfBroadcastWeek,
14948
+ startOfISOWeek,
14949
+ startOfWeek
14870
14950
  } = dateLib;
14871
- const startWeekFirstDate = ISOWeek ? startOfISOWeek(firstMonth) : startOfWeek(firstMonth);
14872
- const endWeekLastDate = ISOWeek ? endOfISOWeek(endOfMonth(lastMonth)) : endOfWeek(endOfMonth(lastMonth));
14951
+ const startWeekFirstDate = broadcastCalendar ? startOfBroadcastWeek(firstMonth, dateLib) : ISOWeek ? startOfISOWeek(firstMonth) : startOfWeek(firstMonth);
14952
+ const endWeekLastDate = broadcastCalendar ? endOfBroadcastWeek(lastMonth, dateLib) : ISOWeek ? endOfISOWeek(endOfMonth(lastMonth)) : endOfWeek(endOfMonth(lastMonth));
14873
14953
  const nOfDays = differenceInCalendarDays(endWeekLastDate, startWeekFirstDate);
14874
14954
  const nOfMonths = differenceInCalendarMonths(lastMonth, firstMonth) + 1;
14875
14955
  const dates = [];
@@ -14881,9 +14961,11 @@ function getDates(displayMonths, maxDate, props, dateLib) {
14881
14961
  dates.push(date);
14882
14962
  }
14883
14963
  // If fixed weeks is enabled, add the extra dates to the array
14884
- const extraDates = NrOfDaysWithFixedWeeks * nOfMonths;
14964
+ const nrOfDaysWithFixedWeeks = broadcastCalendar ? 35 : 42;
14965
+ const extraDates = nrOfDaysWithFixedWeeks * nOfMonths;
14885
14966
  if (fixedWeeks && dates.length < extraDates) {
14886
- for (let i = 0; i < 7; i++) {
14967
+ const daysToAdd = extraDates - dates.length;
14968
+ for (let i = 0; i < daysToAdd; i++) {
14887
14969
  const date = addDays(dates[dates.length - 1], 1);
14888
14970
  dates.push(date);
14889
14971
  }
@@ -14994,25 +15076,29 @@ displayMonths, /** The dates to display in the calendar. */
14994
15076
  dates, /** Options from the props context. */
14995
15077
  props, dateLib) {
14996
15078
  const {
14997
- startOfWeek,
14998
- endOfWeek,
14999
- startOfISOWeek,
15079
+ addDays,
15080
+ endOfBroadcastWeek,
15000
15081
  endOfISOWeek,
15001
15082
  endOfMonth,
15002
- addDays,
15083
+ endOfWeek,
15084
+ getISOWeek,
15003
15085
  getWeek,
15004
- getISOWeek
15086
+ startOfBroadcastWeek,
15087
+ startOfISOWeek,
15088
+ startOfWeek
15005
15089
  } = dateLib;
15006
15090
  const dayPickerMonths = displayMonths.reduce((months, month) => {
15007
- const firstDateOfFirstWeek = props.ISOWeek ? startOfISOWeek(month) : startOfWeek(month);
15008
- const lastDateOfLastWeek = props.ISOWeek ? endOfISOWeek(endOfMonth(month)) : endOfWeek(endOfMonth(month));
15091
+ const firstDateOfFirstWeek = props.broadcastCalendar ? startOfBroadcastWeek(month, dateLib) : props.ISOWeek ? startOfISOWeek(month) : startOfWeek(month);
15092
+ const lastDateOfLastWeek = props.broadcastCalendar ? endOfBroadcastWeek(month, dateLib) : props.ISOWeek ? endOfISOWeek(endOfMonth(month)) : endOfWeek(endOfMonth(month));
15009
15093
  /** The dates to display in the month. */
15010
15094
  const monthDates = dates.filter(date => {
15011
15095
  return date >= firstDateOfFirstWeek && date <= lastDateOfLastWeek;
15012
15096
  });
15013
- if (props.fixedWeeks && monthDates.length < 42) {
15097
+ const nrOfDaysWithFixedWeeks = props.broadcastCalendar ? 35 : 42;
15098
+ if (props.fixedWeeks && monthDates.length < nrOfDaysWithFixedWeeks) {
15014
15099
  const extraDates = dates.filter(date => {
15015
- return date > lastDateOfLastWeek && date <= addDays(lastDateOfLastWeek, 7);
15100
+ const daysToAdd = nrOfDaysWithFixedWeeks - monthDates.length;
15101
+ return date > lastDateOfLastWeek && date <= addDays(lastDateOfLastWeek, daysToAdd);
15016
15102
  });
15017
15103
  monthDates.push(...extraDates);
15018
15104
  }
@@ -15450,27 +15536,30 @@ function dateMatchModifiers(date, matchers, dateLib = defaultDateLib) {
15450
15536
  /** Return the next date that should be focused. */
15451
15537
  function getFocusableDate(moveBy, moveDir, refDate, navStart, navEnd, props, dateLib) {
15452
15538
  const {
15453
- ISOWeek
15539
+ ISOWeek,
15540
+ broadcastCalendar
15454
15541
  } = props;
15455
15542
  const {
15456
15543
  addDays,
15457
15544
  addMonths,
15458
- addYears,
15459
15545
  addWeeks,
15460
- startOfISOWeek,
15546
+ addYears,
15547
+ endOfBroadcastWeek,
15461
15548
  endOfISOWeek,
15462
- startOfWeek,
15463
15549
  endOfWeek,
15464
15550
  max,
15465
- min
15551
+ min,
15552
+ startOfBroadcastWeek,
15553
+ startOfISOWeek,
15554
+ startOfWeek
15466
15555
  } = dateLib;
15467
15556
  const moveFns = {
15468
15557
  day: addDays,
15469
15558
  week: addWeeks,
15470
15559
  month: addMonths,
15471
15560
  year: addYears,
15472
- startOfWeek: date => ISOWeek ? startOfISOWeek(date) : startOfWeek(date),
15473
- endOfWeek: date => ISOWeek ? endOfISOWeek(date) : endOfWeek(date)
15561
+ startOfWeek: date => broadcastCalendar ? startOfBroadcastWeek(date, dateLib) : ISOWeek ? startOfISOWeek(date) : startOfWeek(date),
15562
+ endOfWeek: date => broadcastCalendar ? endOfBroadcastWeek(date, dateLib) : ISOWeek ? endOfISOWeek(date) : endOfWeek(date)
15474
15563
  };
15475
15564
  let focusableDate = moveFns[moveBy](refDate, moveDir === "after" ? 1 : -1);
15476
15565
  if (moveDir === "before" && navStart) {
@@ -15536,6 +15625,8 @@ function useFocus(props, calendar, getModifiers, isSelected, dateLib) {
15536
15625
  /**
15537
15626
  * Return a function to get the modifiers for a given day.
15538
15627
  *
15628
+ * NOTE: this is not an hook, but a factory for `getModifiers`.
15629
+ *
15539
15630
  * @private
15540
15631
  */
15541
15632
  function useGetModifiers(days, props, dateLib) {
@@ -15544,12 +15635,19 @@ function useGetModifiers(days, props, dateLib) {
15544
15635
  hidden,
15545
15636
  modifiers,
15546
15637
  showOutsideDays,
15638
+ broadcastCalendar,
15547
15639
  today
15548
15640
  } = props;
15549
15641
  const {
15550
15642
  isSameDay,
15551
- isSameMonth
15643
+ isSameMonth,
15644
+ startOfMonth,
15645
+ isBefore,
15646
+ endOfMonth,
15647
+ isAfter
15552
15648
  } = dateLib;
15649
+ const startMonth = props.startMonth && startOfMonth(props.startMonth);
15650
+ const endMonth = props.endMonth && endOfMonth(props.endMonth);
15553
15651
  const internalModifiersMap = {
15554
15652
  [DayFlag.focused]: [],
15555
15653
  [DayFlag.outside]: [],
@@ -15558,20 +15656,18 @@ function useGetModifiers(days, props, dateLib) {
15558
15656
  [DayFlag.today]: []
15559
15657
  };
15560
15658
  const customModifiersMap = {};
15561
- const selectionModifiersMap = {
15562
- [SelectionState.range_end]: [],
15563
- [SelectionState.range_middle]: [],
15564
- [SelectionState.range_start]: [],
15565
- [SelectionState.selected]: []
15566
- };
15567
15659
  for (const day of days) {
15568
15660
  const {
15569
15661
  date,
15570
15662
  displayMonth
15571
15663
  } = day;
15572
15664
  const isOutside = Boolean(displayMonth && !isSameMonth(date, displayMonth));
15665
+ const isBeforeStartMonth = Boolean(startMonth && isBefore(date, startMonth));
15666
+ const isAfterEndMonth = Boolean(endMonth && isAfter(date, endMonth));
15573
15667
  const isDisabled = Boolean(disabled && dateMatchModifiers(date, disabled, dateLib));
15574
- const isHidden = Boolean(hidden && dateMatchModifiers(date, hidden, dateLib)) || !showOutsideDays && isOutside;
15668
+ const isHidden = Boolean(hidden && dateMatchModifiers(date, hidden, dateLib)) || isBeforeStartMonth || isAfterEndMonth ||
15669
+ // Broadcast calendar will show outside days as default
15670
+ !broadcastCalendar && !showOutsideDays && isOutside || broadcastCalendar && showOutsideDays === false && isOutside;
15575
15671
  const isToday = isSameDay(date, today ?? (props.timeZone ? TZDate.tz(props.timeZone) : dateLib.Date ? new dateLib.Date() : new Date()));
15576
15672
  if (isOutside) internalModifiersMap.outside.push(day);
15577
15673
  if (isDisabled) internalModifiersMap.disabled.push(day);
@@ -15600,27 +15696,16 @@ function useGetModifiers(days, props, dateLib) {
15600
15696
  [DayFlag.outside]: false,
15601
15697
  [DayFlag.today]: false
15602
15698
  };
15603
- const selectionStates = {
15604
- [SelectionState.range_end]: false,
15605
- [SelectionState.range_middle]: false,
15606
- [SelectionState.range_start]: false,
15607
- [SelectionState.selected]: false
15608
- };
15609
15699
  const customModifiers = {};
15610
15700
  // Find the modifiers for the given day
15611
15701
  for (const name in internalModifiersMap) {
15612
15702
  const days = internalModifiersMap[name];
15613
15703
  dayFlags[name] = days.some(d => d === day);
15614
15704
  }
15615
- for (const name in selectionModifiersMap) {
15616
- const days = selectionModifiersMap[name];
15617
- selectionStates[name] = days.some(d => d === day);
15618
- }
15619
15705
  for (const name in customModifiersMap) {
15620
15706
  customModifiers[name] = customModifiersMap[name].some(d => d === day);
15621
15707
  }
15622
15708
  return {
15623
- ...selectionStates,
15624
15709
  ...dayFlags,
15625
15710
  // custom modifiers should override all the previous ones
15626
15711
  ...customModifiers
@@ -16025,7 +16110,7 @@ function DayPicker(props) {
16025
16110
  };
16026
16111
  const dateLib = new DateLib({
16027
16112
  locale,
16028
- weekStartsOn: props.weekStartsOn,
16113
+ weekStartsOn: props.broadcastCalendar ? 1 : props.weekStartsOn,
16029
16114
  firstWeekContainsDate: props.firstWeekContainsDate,
16030
16115
  useAdditionalWeekYearTokens: props.useAdditionalWeekYearTokens,
16031
16116
  useAdditionalDayOfYearTokens: props.useAdditionalDayOfYearTokens
@@ -16044,7 +16129,7 @@ function DayPicker(props) {
16044
16129
  ...props.classNames
16045
16130
  }
16046
16131
  };
16047
- }, [props.classNames, props.components, props.dateLib, props.firstWeekContainsDate, props.formatters, props.labels, props.locale, props.useAdditionalDayOfYearTokens, props.useAdditionalWeekYearTokens, props.weekStartsOn]);
16132
+ }, [props.classNames, props.components, props.dateLib, props.firstWeekContainsDate, props.formatters, props.labels, props.locale, props.useAdditionalDayOfYearTokens, props.useAdditionalWeekYearTokens, props.weekStartsOn, props.broadcastCalendar]);
16048
16133
  const {
16049
16134
  captionLayout,
16050
16135
  mode,
@@ -16154,6 +16239,16 @@ function DayPicker(props) {
16154
16239
  const handleDayMouseLeave = useCallback((day, modifiers) => e => {
16155
16240
  onDayMouseLeave?.(day.date, modifiers, e);
16156
16241
  }, [onDayMouseLeave]);
16242
+ const handleMonthChange = useCallback(date => e => {
16243
+ const selectedMonth = Number(e.target.value);
16244
+ const month = dateLib.setMonth(dateLib.startOfMonth(date), selectedMonth);
16245
+ goToMonth(month);
16246
+ }, [dateLib, goToMonth]);
16247
+ const handleYearChange = useCallback(date => e => {
16248
+ const selectedYear = Number(e.target.value);
16249
+ const month = dateLib.setYear(dateLib.startOfMonth(date), selectedYear);
16250
+ goToMonth(month);
16251
+ }, [dateLib, goToMonth]);
16157
16252
  const {
16158
16253
  className,
16159
16254
  style
@@ -16191,6 +16286,8 @@ function DayPicker(props) {
16191
16286
  lang: props.lang,
16192
16287
  nonce: props.nonce,
16193
16288
  title: props.title,
16289
+ role: props.role,
16290
+ "aria-label": props["aria-label"],
16194
16291
  ...dataAttributes
16195
16292
  }, /*#__PURE__*/React__default.createElement(components.Months, {
16196
16293
  className: classNames[UI.Months],
@@ -16204,17 +16301,8 @@ function DayPicker(props) {
16204
16301
  previousMonth: previousMonth,
16205
16302
  nextMonth: nextMonth
16206
16303
  })), months.map((calendarMonth, displayIndex) => {
16207
- const handleMonthChange = e => {
16208
- const selectedMonth = Number(e.target.value);
16209
- const month = dateLib.setMonth(dateLib.startOfMonth(calendarMonth.date), selectedMonth);
16210
- goToMonth(month);
16211
- };
16212
- const handleYearChange = e => {
16213
- const month = dateLib.setYear(dateLib.startOfMonth(calendarMonth.date), Number(e.target.value));
16214
- goToMonth(month);
16215
- };
16216
16304
  const dropdownMonths = getMonthOptions(calendarMonth.date, navStart, navEnd, formatters, dateLib);
16217
- const dropdownYears = getYearOptions(months[0].date, navStart, navEnd, formatters, dateLib);
16305
+ const dropdownYears = getYearOptions(navStart, navEnd, formatters, dateLib);
16218
16306
  return /*#__PURE__*/React__default.createElement(components.Month, {
16219
16307
  className: classNames[UI.Month],
16220
16308
  style: styles?.[UI.Month],
@@ -16235,7 +16323,7 @@ function DayPicker(props) {
16235
16323
  classNames: classNames,
16236
16324
  components: components,
16237
16325
  disabled: Boolean(props.disableNavigation),
16238
- onChange: handleMonthChange,
16326
+ onChange: handleMonthChange(calendarMonth.date),
16239
16327
  options: dropdownMonths,
16240
16328
  style: styles?.[UI.Dropdown],
16241
16329
  value: calendarMonth.date.getMonth()
@@ -16248,7 +16336,7 @@ function DayPicker(props) {
16248
16336
  classNames: classNames,
16249
16337
  components: components,
16250
16338
  disabled: Boolean(props.disableNavigation),
16251
- onChange: handleYearChange,
16339
+ onChange: handleYearChange(calendarMonth.date),
16252
16340
  options: dropdownYears,
16253
16341
  style: styles?.[UI.Dropdown],
16254
16342
  value: calendarMonth.date.getFullYear()
@@ -16295,7 +16383,8 @@ function DayPicker(props) {
16295
16383
  locale
16296
16384
  }),
16297
16385
  className: classNames[UI.WeekNumber],
16298
- scope: "row"
16386
+ scope: "row",
16387
+ role: "rowheader"
16299
16388
  }, formatWeekNumber(week.weekNumber))), week.days.map(day => {
16300
16389
  const {
16301
16390
  date
@@ -16315,14 +16404,14 @@ function DayPicker(props) {
16315
16404
  }
16316
16405
  const style = getStyleForModifiers(modifiers, styles, props.modifiersStyles);
16317
16406
  const className = getClassNamesForModifiers(modifiers, classNames, props.modifiersClassNames);
16318
- const ariaLabel = !isInteractive ? labelGridcell(date, modifiers, dateLib.options, dateLib) : undefined;
16407
+ const ariaLabel = !isInteractive && !modifiers.hidden ? labelGridcell(date, modifiers, dateLib.options, dateLib) : undefined;
16319
16408
  return /*#__PURE__*/React__default.createElement(components.Day, {
16320
16409
  key: `${dateLib.format(date, "yyyy-MM-dd")}_${dateLib.format(day.displayMonth, "yyyy-MM")}`,
16321
16410
  day: day,
16322
16411
  modifiers: modifiers,
16323
16412
  className: className.join(" "),
16324
16413
  style: style,
16325
- "aria-hidden": modifiers.hidden || undefined,
16414
+ role: "gridcell",
16326
16415
  "aria-selected": modifiers.selected || undefined,
16327
16416
  "aria-label": ariaLabel,
16328
16417
  "data-day": dateLib.format(date, "yyyy-MM-dd"),
@@ -16333,7 +16422,7 @@ function DayPicker(props) {
16333
16422
  "data-outside": day.outside || undefined,
16334
16423
  "data-focused": modifiers.focused || undefined,
16335
16424
  "data-today": modifiers.today || undefined
16336
- }, isInteractive ? (/*#__PURE__*/React__default.createElement(components.DayButton, {
16425
+ }, !modifiers.hidden && isInteractive ? (/*#__PURE__*/React__default.createElement(components.DayButton, {
16337
16426
  className: classNames[UI.DayButton],
16338
16427
  style: styles?.[UI.DayButton],
16339
16428
  type: "button",
@@ -16348,7 +16437,7 @@ function DayPicker(props) {
16348
16437
  onKeyDown: handleDayKeyDown(day, modifiers),
16349
16438
  onMouseEnter: handleDayMouseEnter(day, modifiers),
16350
16439
  onMouseLeave: handleDayMouseLeave(day, modifiers)
16351
- }, formatDay(date, dateLib.options, dateLib))) : formatDay(day.date, dateLib.options, dateLib));
16440
+ }, formatDay(date, dateLib.options, dateLib))) : !modifiers.hidden && formatDay(day.date, dateLib.options, dateLib));
16352
16441
  }));
16353
16442
  }))));
16354
16443
  })), props.footer && (/*#__PURE__*/React__default.createElement(components.Footer, {
@@ -16359,143 +16448,6 @@ function DayPicker(props) {
16359
16448
  }, props.footer))));
16360
16449
  }
16361
16450
 
16362
- /**
16363
- * @name isDate
16364
- * @category Common Helpers
16365
- * @summary Is the given value a date?
16366
- *
16367
- * @description
16368
- * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.
16369
- *
16370
- * @param value - The value to check
16371
- *
16372
- * @returns True if the given value is a date
16373
- *
16374
- * @example
16375
- * // For a valid date:
16376
- * const result = isDate(new Date())
16377
- * //=> true
16378
- *
16379
- * @example
16380
- * // For an invalid date:
16381
- * const result = isDate(new Date(NaN))
16382
- * //=> true
16383
- *
16384
- * @example
16385
- * // For some value:
16386
- * const result = isDate('2014-02-31')
16387
- * //=> false
16388
- *
16389
- * @example
16390
- * // For an object:
16391
- * const result = isDate({})
16392
- * //=> false
16393
- */
16394
- function isDate(value) {
16395
- return (
16396
- value instanceof Date ||
16397
- (typeof value === "object" &&
16398
- Object.prototype.toString.call(value) === "[object Date]")
16399
- );
16400
- }
16401
-
16402
- /**
16403
- * @name toDate
16404
- * @category Common Helpers
16405
- * @summary Convert the given argument to an instance of Date.
16406
- *
16407
- * @description
16408
- * Convert the given argument to an instance of Date.
16409
- *
16410
- * If the argument is an instance of Date, the function returns its clone.
16411
- *
16412
- * If the argument is a number, it is treated as a timestamp.
16413
- *
16414
- * If the argument is none of the above, the function returns Invalid Date.
16415
- *
16416
- * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.
16417
- *
16418
- * @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).
16419
- *
16420
- * @param argument - The value to convert
16421
- *
16422
- * @returns The parsed date in the local time zone
16423
- *
16424
- * @example
16425
- * // Clone the date:
16426
- * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))
16427
- * //=> Tue Feb 11 2014 11:30:30
16428
- *
16429
- * @example
16430
- * // Convert the timestamp to date:
16431
- * const result = toDate(1392098430000)
16432
- * //=> Tue Feb 11 2014 11:30:30
16433
- */
16434
- function toDate$1(argument) {
16435
- const argStr = Object.prototype.toString.call(argument);
16436
-
16437
- // Clone the date
16438
- if (
16439
- argument instanceof Date ||
16440
- (typeof argument === "object" && argStr === "[object Date]")
16441
- ) {
16442
- // Prevent the date to lose the milliseconds when passed to new Date() in IE10
16443
- return new argument.constructor(+argument);
16444
- } else if (
16445
- typeof argument === "number" ||
16446
- argStr === "[object Number]" ||
16447
- typeof argStr === "string" ||
16448
- argStr === "[object String]"
16449
- ) {
16450
- // TODO: Can we get rid of as?
16451
- return new Date(argument);
16452
- } else {
16453
- // TODO: Can we get rid of as?
16454
- return new Date(NaN);
16455
- }
16456
- }
16457
-
16458
- /**
16459
- * @name isValid
16460
- * @category Common Helpers
16461
- * @summary Is the given date valid?
16462
- *
16463
- * @description
16464
- * Returns false if argument is Invalid Date and true otherwise.
16465
- * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate)
16466
- * Invalid Date is a Date, whose time value is NaN.
16467
- *
16468
- * Time value of Date: http://es5.github.io/#x15.9.1.1
16469
- *
16470
- * @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).
16471
- *
16472
- * @param date - The date to check
16473
- *
16474
- * @returns The date is valid
16475
- *
16476
- * @example
16477
- * // For the valid date:
16478
- * const result = isValid(new Date(2014, 1, 31))
16479
- * //=> true
16480
- *
16481
- * @example
16482
- * // For the value, convertable into a date:
16483
- * const result = isValid(1393804800000)
16484
- * //=> true
16485
- *
16486
- * @example
16487
- * // For the invalid date:
16488
- * const result = isValid(new Date(''))
16489
- * //=> false
16490
- */
16491
- function isValid(date) {
16492
- if (!isDate(date) && typeof date !== "number") {
16493
- return false;
16494
- }
16495
- const _date = toDate$1(date);
16496
- return !isNaN(Number(_date));
16497
- }
16498
-
16499
16451
  const formatDistanceLocale = {
16500
16452
  lessThanXSeconds: {
16501
16453
  one: "less than a second",
@@ -17177,15 +17129,71 @@ const millisecondsInWeek = 604800000;
17177
17129
  const millisecondsInDay = 86400000;
17178
17130
 
17179
17131
  /**
17180
- * @name startOfDay
17181
- * @category Day Helpers
17182
- * @summary Return the start of a day for the given date.
17132
+ * @name toDate
17133
+ * @category Common Helpers
17134
+ * @summary Convert the given argument to an instance of Date.
17183
17135
  *
17184
17136
  * @description
17185
- * Return the start of a day for the given date.
17186
- * The result will be in the local timezone.
17137
+ * Convert the given argument to an instance of Date.
17187
17138
  *
17188
- * @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).
17139
+ * If the argument is an instance of Date, the function returns its clone.
17140
+ *
17141
+ * If the argument is a number, it is treated as a timestamp.
17142
+ *
17143
+ * If the argument is none of the above, the function returns Invalid Date.
17144
+ *
17145
+ * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.
17146
+ *
17147
+ * @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).
17148
+ *
17149
+ * @param argument - The value to convert
17150
+ *
17151
+ * @returns The parsed date in the local time zone
17152
+ *
17153
+ * @example
17154
+ * // Clone the date:
17155
+ * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))
17156
+ * //=> Tue Feb 11 2014 11:30:30
17157
+ *
17158
+ * @example
17159
+ * // Convert the timestamp to date:
17160
+ * const result = toDate(1392098430000)
17161
+ * //=> Tue Feb 11 2014 11:30:30
17162
+ */
17163
+ function toDate$1(argument) {
17164
+ const argStr = Object.prototype.toString.call(argument);
17165
+
17166
+ // Clone the date
17167
+ if (
17168
+ argument instanceof Date ||
17169
+ (typeof argument === "object" && argStr === "[object Date]")
17170
+ ) {
17171
+ // Prevent the date to lose the milliseconds when passed to new Date() in IE10
17172
+ return new argument.constructor(+argument);
17173
+ } else if (
17174
+ typeof argument === "number" ||
17175
+ argStr === "[object Number]" ||
17176
+ typeof argument === "string" ||
17177
+ argStr === "[object String]"
17178
+ ) {
17179
+ // TODO: Can we get rid of as?
17180
+ return new Date(argument);
17181
+ } else {
17182
+ // TODO: Can we get rid of as?
17183
+ return new Date(NaN);
17184
+ }
17185
+ }
17186
+
17187
+ /**
17188
+ * @name startOfDay
17189
+ * @category Day Helpers
17190
+ * @summary Return the start of a day for the given date.
17191
+ *
17192
+ * @description
17193
+ * Return the start of a day for the given date.
17194
+ * The result will be in the local timezone.
17195
+ *
17196
+ * @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).
17189
17197
  *
17190
17198
  * @param date - The original date
17191
17199
  *
@@ -17214,19 +17222,20 @@ function startOfDay(date) {
17214
17222
  * This function returns the timezone offset in milliseconds that takes seconds in account.
17215
17223
  */
17216
17224
  function getTimezoneOffsetInMilliseconds$1(date) {
17225
+ const _date = toDate$1(date);
17217
17226
  const utcDate = new Date(
17218
17227
  Date.UTC(
17219
- date.getFullYear(),
17220
- date.getMonth(),
17221
- date.getDate(),
17222
- date.getHours(),
17223
- date.getMinutes(),
17224
- date.getSeconds(),
17225
- date.getMilliseconds(),
17228
+ _date.getFullYear(),
17229
+ _date.getMonth(),
17230
+ _date.getDate(),
17231
+ _date.getHours(),
17232
+ _date.getMinutes(),
17233
+ _date.getSeconds(),
17234
+ _date.getMilliseconds(),
17226
17235
  ),
17227
17236
  );
17228
- utcDate.setUTCFullYear(date.getFullYear());
17229
- return date.getTime() - utcDate.getTime();
17237
+ utcDate.setUTCFullYear(_date.getFullYear());
17238
+ return +date - +utcDate;
17230
17239
  }
17231
17240
 
17232
17241
  /**
@@ -17266,14 +17275,13 @@ function differenceInCalendarDays(dateLeft, dateRight) {
17266
17275
  const startOfDayRight = startOfDay(dateRight);
17267
17276
 
17268
17277
  const timestampLeft =
17269
- startOfDayLeft.getTime() - getTimezoneOffsetInMilliseconds$1(startOfDayLeft);
17278
+ +startOfDayLeft - getTimezoneOffsetInMilliseconds$1(startOfDayLeft);
17270
17279
  const timestampRight =
17271
- startOfDayRight.getTime() -
17272
- getTimezoneOffsetInMilliseconds$1(startOfDayRight);
17280
+ +startOfDayRight - getTimezoneOffsetInMilliseconds$1(startOfDayRight);
17273
17281
 
17274
- // Round the number of days to the nearest integer
17275
- // because the number of milliseconds in a day is not constant
17276
- // (e.g. it's different in the day of the daylight saving time clock shift)
17282
+ // Round the number of days to the nearest integer because the number of
17283
+ // milliseconds in a day is not constant (e.g. it's different in the week of
17284
+ // the daylight saving time clock shift).
17277
17285
  return Math.round((timestampLeft - timestampRight) / millisecondsInDay);
17278
17286
  }
17279
17287
 
@@ -17287,6 +17295,8 @@ function differenceInCalendarDays(dateLeft, dateRight) {
17287
17295
  * date and the given value. It helps to build generic functions that accept
17288
17296
  * date extensions.
17289
17297
  *
17298
+ * It defaults to `Date` if the passed reference date is a number or a string.
17299
+ *
17290
17300
  * @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).
17291
17301
  *
17292
17302
  * @param date - The reference date to take constructor from
@@ -17540,12 +17550,11 @@ function startOfISOWeekYear(date) {
17540
17550
  */
17541
17551
  function getISOWeek(date) {
17542
17552
  const _date = toDate$1(date);
17543
- const diff =
17544
- startOfISOWeek(_date).getTime() - startOfISOWeekYear(_date).getTime();
17553
+ const diff = +startOfISOWeek(_date) - +startOfISOWeekYear(_date);
17545
17554
 
17546
- // Round the number of days to the nearest integer
17547
- // because the number of milliseconds in a week is not constant
17548
- // (e.g. it's different in the week of the daylight saving time clock shift)
17555
+ // Round the number of weeks to the nearest integer because the number of
17556
+ // milliseconds in a week is not constant (e.g. it's different in the week of
17557
+ // the daylight saving time clock shift).
17549
17558
  return Math.round(diff / millisecondsInWeek) + 1;
17550
17559
  }
17551
17560
 
@@ -17565,7 +17574,7 @@ function getISOWeek(date) {
17565
17574
  * and `options.firstWeekContainsDate` (which is the day of January, which is always in
17566
17575
  * the first week of the week-numbering year)
17567
17576
  *
17568
- * Week numbering: https://en.wikipedia.org/wiki/Week#Week_numbering
17577
+ * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system
17569
17578
  *
17570
17579
  * @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).
17571
17580
  *
@@ -17636,7 +17645,7 @@ function getWeekYear(date, options) {
17636
17645
  * and `options.firstWeekContainsDate` (which is the day of January, which is always in
17637
17646
  * the first week of the week-numbering year)
17638
17647
  *
17639
- * Week numbering: https://en.wikipedia.org/wiki/Week#Week_numbering
17648
+ * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system
17640
17649
  *
17641
17650
  * @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).
17642
17651
  *
@@ -17693,7 +17702,7 @@ function startOfWeekYear(date, options) {
17693
17702
  * and `options.firstWeekContainsDate` (which is the day of January, which is always in
17694
17703
  * the first week of the week-numbering year)
17695
17704
  *
17696
- * Week numbering: https://en.wikipedia.org/wiki/Week#Week_numbering
17705
+ * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system
17697
17706
  *
17698
17707
  * @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).
17699
17708
  *
@@ -17720,13 +17729,11 @@ function startOfWeekYear(date, options) {
17720
17729
 
17721
17730
  function getWeek(date, options) {
17722
17731
  const _date = toDate$1(date);
17723
- const diff =
17724
- startOfWeek(_date, options).getTime() -
17725
- startOfWeekYear(_date, options).getTime();
17732
+ const diff = +startOfWeek(_date, options) - +startOfWeekYear(_date, options);
17726
17733
 
17727
- // Round the number of days to the nearest integer
17728
- // because the number of milliseconds in a week is not constant
17729
- // (e.g. it's different in the week of the daylight saving time clock shift)
17734
+ // Round the number of weeks to the nearest integer because the number of
17735
+ // milliseconds in a week is not constant (e.g. it's different in the week of
17736
+ // the daylight saving time clock shift).
17730
17737
  return Math.round(diff / millisecondsInWeek) + 1;
17731
17738
  }
17732
17739
 
@@ -17820,7 +17827,7 @@ const lightFormatters = {
17820
17827
  S(date, token) {
17821
17828
  const numberOfDigits = token.length;
17822
17829
  const milliseconds = date.getMilliseconds();
17823
- const fractionalSeconds = Math.floor(
17830
+ const fractionalSeconds = Math.trunc(
17824
17831
  milliseconds * Math.pow(10, numberOfDigits - 3),
17825
17832
  );
17826
17833
  return addLeadingZeros$1(fractionalSeconds, token.length);
@@ -18467,9 +18474,8 @@ const formatters$1 = {
18467
18474
  },
18468
18475
 
18469
18476
  // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)
18470
- X: function (date, token, _localize, options) {
18471
- const originalDate = options._originalDate || date;
18472
- const timezoneOffset = originalDate.getTimezoneOffset();
18477
+ X: function (date, token, _localize) {
18478
+ const timezoneOffset = date.getTimezoneOffset();
18473
18479
 
18474
18480
  if (timezoneOffset === 0) {
18475
18481
  return "Z";
@@ -18498,9 +18504,8 @@ const formatters$1 = {
18498
18504
  },
18499
18505
 
18500
18506
  // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)
18501
- x: function (date, token, _localize, options) {
18502
- const originalDate = options._originalDate || date;
18503
- const timezoneOffset = originalDate.getTimezoneOffset();
18507
+ x: function (date, token, _localize) {
18508
+ const timezoneOffset = date.getTimezoneOffset();
18504
18509
 
18505
18510
  switch (token) {
18506
18511
  // Hours and optional minutes
@@ -18525,9 +18530,8 @@ const formatters$1 = {
18525
18530
  },
18526
18531
 
18527
18532
  // Timezone (GMT)
18528
- O: function (date, token, _localize, options) {
18529
- const originalDate = options._originalDate || date;
18530
- const timezoneOffset = originalDate.getTimezoneOffset();
18533
+ O: function (date, token, _localize) {
18534
+ const timezoneOffset = date.getTimezoneOffset();
18531
18535
 
18532
18536
  switch (token) {
18533
18537
  // Short
@@ -18543,9 +18547,8 @@ const formatters$1 = {
18543
18547
  },
18544
18548
 
18545
18549
  // Timezone (specific non-location)
18546
- z: function (date, token, _localize, options) {
18547
- const originalDate = options._originalDate || date;
18548
- const timezoneOffset = originalDate.getTimezoneOffset();
18550
+ z: function (date, token, _localize) {
18551
+ const timezoneOffset = date.getTimezoneOffset();
18549
18552
 
18550
18553
  switch (token) {
18551
18554
  // Short
@@ -18561,16 +18564,14 @@ const formatters$1 = {
18561
18564
  },
18562
18565
 
18563
18566
  // Seconds timestamp
18564
- t: function (date, token, _localize, options) {
18565
- const originalDate = options._originalDate || date;
18566
- const timestamp = Math.floor(originalDate.getTime() / 1000);
18567
+ t: function (date, token, _localize) {
18568
+ const timestamp = Math.trunc(date.getTime() / 1000);
18567
18569
  return addLeadingZeros$1(timestamp, token.length);
18568
18570
  },
18569
18571
 
18570
18572
  // Milliseconds timestamp
18571
- T: function (date, token, _localize, options) {
18572
- const originalDate = options._originalDate || date;
18573
- const timestamp = originalDate.getTime();
18573
+ T: function (date, token, _localize) {
18574
+ const timestamp = date.getTime();
18574
18575
  return addLeadingZeros$1(timestamp, token.length);
18575
18576
  },
18576
18577
  };
@@ -18578,7 +18579,7 @@ const formatters$1 = {
18578
18579
  function formatTimezoneShort$1(offset, delimiter = "") {
18579
18580
  const sign = offset > 0 ? "-" : "+";
18580
18581
  const absOffset = Math.abs(offset);
18581
- const hours = Math.floor(absOffset / 60);
18582
+ const hours = Math.trunc(absOffset / 60);
18582
18583
  const minutes = absOffset % 60;
18583
18584
  if (minutes === 0) {
18584
18585
  return sign + String(hours);
@@ -18597,7 +18598,7 @@ function formatTimezoneWithOptionalMinutes$1(offset, delimiter) {
18597
18598
  function formatTimezone$1(offset, delimiter = "") {
18598
18599
  const sign = offset > 0 ? "-" : "+";
18599
18600
  const absOffset = Math.abs(offset);
18600
- const hours = addLeadingZeros$1(Math.floor(absOffset / 60), 2);
18601
+ const hours = addLeadingZeros$1(Math.trunc(absOffset / 60), 2);
18601
18602
  const minutes = addLeadingZeros$1(absOffset % 60, 2);
18602
18603
  return sign + hours + delimiter + minutes;
18603
18604
  }
@@ -18667,35 +18668,109 @@ const longFormatters = {
18667
18668
  P: dateTimeLongFormatter,
18668
18669
  };
18669
18670
 
18670
- const protectedDayOfYearTokens = ["D", "DD"];
18671
- const protectedWeekYearTokens = ["YY", "YYYY"];
18671
+ const dayOfYearTokenRE = /^D+$/;
18672
+ const weekYearTokenRE = /^Y+$/;
18673
+
18674
+ const throwTokens = ["D", "DD", "YY", "YYYY"];
18672
18675
 
18673
18676
  function isProtectedDayOfYearToken(token) {
18674
- return protectedDayOfYearTokens.indexOf(token) !== -1;
18677
+ return dayOfYearTokenRE.test(token);
18675
18678
  }
18676
18679
 
18677
18680
  function isProtectedWeekYearToken(token) {
18678
- return protectedWeekYearTokens.indexOf(token) !== -1;
18681
+ return weekYearTokenRE.test(token);
18679
18682
  }
18680
18683
 
18681
- function throwProtectedError(token, format, input) {
18682
- if (token === "YYYY") {
18683
- throw new RangeError(
18684
- `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`,
18685
- );
18686
- } else if (token === "YY") {
18687
- throw new RangeError(
18688
- `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`,
18689
- );
18690
- } else if (token === "D") {
18691
- throw new RangeError(
18692
- `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`,
18693
- );
18694
- } else if (token === "DD") {
18695
- throw new RangeError(
18696
- `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`,
18697
- );
18684
+ function warnOrThrowProtectedError(token, format, input) {
18685
+ const _message = message(token, format, input);
18686
+ console.warn(_message);
18687
+ if (throwTokens.includes(token)) throw new RangeError(_message);
18688
+ }
18689
+
18690
+ function message(token, format, input) {
18691
+ const subject = token[0] === "Y" ? "years" : "days of the month";
18692
+ 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`;
18693
+ }
18694
+
18695
+ /**
18696
+ * @name isDate
18697
+ * @category Common Helpers
18698
+ * @summary Is the given value a date?
18699
+ *
18700
+ * @description
18701
+ * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.
18702
+ *
18703
+ * @param value - The value to check
18704
+ *
18705
+ * @returns True if the given value is a date
18706
+ *
18707
+ * @example
18708
+ * // For a valid date:
18709
+ * const result = isDate(new Date())
18710
+ * //=> true
18711
+ *
18712
+ * @example
18713
+ * // For an invalid date:
18714
+ * const result = isDate(new Date(NaN))
18715
+ * //=> true
18716
+ *
18717
+ * @example
18718
+ * // For some value:
18719
+ * const result = isDate('2014-02-31')
18720
+ * //=> false
18721
+ *
18722
+ * @example
18723
+ * // For an object:
18724
+ * const result = isDate({})
18725
+ * //=> false
18726
+ */
18727
+ function isDate(value) {
18728
+ return (
18729
+ value instanceof Date ||
18730
+ (typeof value === "object" &&
18731
+ Object.prototype.toString.call(value) === "[object Date]")
18732
+ );
18733
+ }
18734
+
18735
+ /**
18736
+ * @name isValid
18737
+ * @category Common Helpers
18738
+ * @summary Is the given date valid?
18739
+ *
18740
+ * @description
18741
+ * Returns false if argument is Invalid Date and true otherwise.
18742
+ * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate)
18743
+ * Invalid Date is a Date, whose time value is NaN.
18744
+ *
18745
+ * Time value of Date: http://es5.github.io/#x15.9.1.1
18746
+ *
18747
+ * @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).
18748
+ *
18749
+ * @param date - The date to check
18750
+ *
18751
+ * @returns The date is valid
18752
+ *
18753
+ * @example
18754
+ * // For the valid date:
18755
+ * const result = isValid(new Date(2014, 1, 31))
18756
+ * //=> true
18757
+ *
18758
+ * @example
18759
+ * // For the value, convertable into a date:
18760
+ * const result = isValid(1393804800000)
18761
+ * //=> true
18762
+ *
18763
+ * @example
18764
+ * // For the invalid date:
18765
+ * const result = isValid(new Date(''))
18766
+ * //=> false
18767
+ */
18768
+ function isValid(date) {
18769
+ if (!isDate(date) && typeof date !== "number") {
18770
+ return false;
18698
18771
  }
18772
+ const _date = toDate$1(date);
18773
+ return !isNaN(Number(_date));
18699
18774
  }
18700
18775
 
18701
18776
  // This RegExp consists of three parts separated by `|`:
@@ -18726,6 +18801,7 @@ const unescapedLatinCharacterRegExp = /[a-zA-Z]/;
18726
18801
 
18727
18802
  /**
18728
18803
  * @name format
18804
+ * @alias formatDate
18729
18805
  * @category Common Helpers
18730
18806
  * @summary Format the date.
18731
18807
  *
@@ -19033,16 +19109,9 @@ function format$1(date, formatStr, options) {
19033
19109
  throw new RangeError("Invalid time value");
19034
19110
  }
19035
19111
 
19036
- const formatterOptions = {
19037
- firstWeekContainsDate: firstWeekContainsDate,
19038
- weekStartsOn: weekStartsOn,
19039
- locale: locale,
19040
- _originalDate: originalDate,
19041
- };
19042
-
19043
- const result = formatStr
19112
+ let parts = formatStr
19044
19113
  .match(longFormattingTokensRegExp)
19045
- .map(function (substring) {
19114
+ .map((substring) => {
19046
19115
  const firstCharacter = substring[0];
19047
19116
  if (firstCharacter === "p" || firstCharacter === "P") {
19048
19117
  const longFormatter = longFormatters[firstCharacter];
@@ -19052,37 +19121,19 @@ function format$1(date, formatStr, options) {
19052
19121
  })
19053
19122
  .join("")
19054
19123
  .match(formattingTokensRegExp)
19055
- .map(function (substring) {
19124
+ .map((substring) => {
19056
19125
  // Replace two single quote characters with one single quote character
19057
19126
  if (substring === "''") {
19058
- return "'";
19127
+ return { isToken: false, value: "'" };
19059
19128
  }
19060
19129
 
19061
19130
  const firstCharacter = substring[0];
19062
19131
  if (firstCharacter === "'") {
19063
- return cleanEscapedString(substring);
19132
+ return { isToken: false, value: cleanEscapedString(substring) };
19064
19133
  }
19065
19134
 
19066
- const formatter = formatters$1[firstCharacter];
19067
- if (formatter) {
19068
- if (
19069
- !options?.useAdditionalWeekYearTokens &&
19070
- isProtectedWeekYearToken(substring)
19071
- ) {
19072
- throwProtectedError(substring, formatStr, String(date));
19073
- }
19074
- if (
19075
- !options?.useAdditionalDayOfYearTokens &&
19076
- isProtectedDayOfYearToken(substring)
19077
- ) {
19078
- throwProtectedError(substring, formatStr, String(date));
19079
- }
19080
- return formatter(
19081
- originalDate,
19082
- substring,
19083
- locale.localize,
19084
- formatterOptions,
19085
- );
19135
+ if (formatters$1[firstCharacter]) {
19136
+ return { isToken: true, value: substring };
19086
19137
  }
19087
19138
 
19088
19139
  if (firstCharacter.match(unescapedLatinCharacterRegExp)) {
@@ -19093,11 +19144,39 @@ function format$1(date, formatStr, options) {
19093
19144
  );
19094
19145
  }
19095
19146
 
19096
- return substring;
19147
+ return { isToken: false, value: substring };
19148
+ });
19149
+
19150
+ // invoke localize preprocessor (only for french locales at the moment)
19151
+ if (locale.localize.preprocessor) {
19152
+ parts = locale.localize.preprocessor(originalDate, parts);
19153
+ }
19154
+
19155
+ const formatterOptions = {
19156
+ firstWeekContainsDate,
19157
+ weekStartsOn,
19158
+ locale,
19159
+ };
19160
+
19161
+ return parts
19162
+ .map((part) => {
19163
+ if (!part.isToken) return part.value;
19164
+
19165
+ const token = part.value;
19166
+
19167
+ if (
19168
+ (!options?.useAdditionalWeekYearTokens &&
19169
+ isProtectedWeekYearToken(token)) ||
19170
+ (!options?.useAdditionalDayOfYearTokens &&
19171
+ isProtectedDayOfYearToken(token))
19172
+ ) {
19173
+ warnOrThrowProtectedError(token, formatStr, String(date));
19174
+ }
19175
+
19176
+ const formatter = formatters$1[token[0]];
19177
+ return formatter(originalDate, token, locale.localize, formatterOptions);
19097
19178
  })
19098
19179
  .join("");
19099
-
19100
- return result;
19101
19180
  }
19102
19181
 
19103
19182
  function cleanEscapedString(input) {
@@ -20576,7 +20655,7 @@ const TimePicker = ({
20576
20655
  });
20577
20656
  };
20578
20657
 
20579
- 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}";
20658
+ 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}";
20580
20659
  styleInject(css_248z$K);
20581
20660
 
20582
20661
  const CustomDatePicker = ({
@@ -20592,7 +20671,9 @@ const CustomDatePicker = ({
20592
20671
  timeFormat = 'hh:mm a',
20593
20672
  error,
20594
20673
  helperText = '',
20595
- dateOnly = false
20674
+ dateOnly = false,
20675
+ className,
20676
+ zIndex = 10
20596
20677
  }) => {
20597
20678
  const [timeValue, setTimeValue] = useState('');
20598
20679
  const [selectedDate, setSelectedDate] = useState();
@@ -20600,13 +20681,16 @@ const CustomDatePicker = ({
20600
20681
  const [timeError, setTimeError] = useState(false);
20601
20682
  const [selectedMonth, setSelectedMonth] = useState(new Date());
20602
20683
  const [view, setView] = useState('days');
20684
+ const selectedDateRef = useRef(undefined);
20603
20685
  const [startYear, setStartYear] = useState(() => {
20604
20686
  const currentYear = selectedMonth?.getFullYear() ?? new Date().getFullYear();
20605
20687
  return currentYear - currentYear % 12; // Set to the first year in the 12-year range
20606
20688
  });
20607
- const [datePickerPosition, setDatePickerPosition] = useState('bottom');
20608
20689
  const pickerRef = useRef(null); // Ref to track the picker
20609
20690
  const containerRef = useRef(null);
20691
+ useEffect(() => {
20692
+ selectedDateRef.current = selectedDate;
20693
+ }, [selectedDate]);
20610
20694
  useEffect(() => {
20611
20695
  if (value) {
20612
20696
  setTimeValue(formatTimeStr(value));
@@ -20625,23 +20709,26 @@ const CustomDatePicker = ({
20625
20709
  const adjustPosition = () => {
20626
20710
  if (containerRef.current && pickerRef.current) {
20627
20711
  const relativeRect = containerRef.current.getBoundingClientRect();
20628
- const absoluteRect = pickerRef.current.getBoundingClientRect();
20712
+ const pickerHeight = pickerRef.current.offsetHeight;
20713
+ const spacing = 5; // spacing in pixels
20629
20714
  const spaceBelow = window.innerHeight - relativeRect.bottom;
20630
20715
  const spaceAbove = relativeRect.top;
20631
- // Check if there is more space above than below
20632
- if (spaceBelow < absoluteRect.height && spaceAbove >= absoluteRect.height) {
20633
- setDatePickerPosition('top');
20634
- } else {
20635
- setDatePickerPosition('bottom');
20716
+ let top = relativeRect.bottom + window.scrollY + spacing; // Default position to below
20717
+ if (spaceBelow < pickerHeight && spaceAbove >= pickerHeight) {
20718
+ top = relativeRect.top + window.scrollY - pickerHeight - spacing; // Place above
20636
20719
  }
20720
+ // Horizontal position: align to container with optional adjustments
20721
+ const left = relativeRect.left + window.scrollX;
20722
+ pickerRef.current.style.top = `${top}px`;
20723
+ pickerRef.current.style.left = `${left}px`;
20637
20724
  }
20638
20725
  };
20639
- // Initial check
20726
+ // Initial adjustment
20640
20727
  adjustPosition();
20641
- // Adjust position on window resize
20728
+ // Recalculate on resize
20642
20729
  window.addEventListener('resize', adjustPosition);
20643
20730
  return () => window.removeEventListener('resize', adjustPosition);
20644
- }, []);
20731
+ }, [isPickerOpen]);
20645
20732
  const calendarStyle = {
20646
20733
  '--rdp-day-width': calendarWidth ? `${calendarWidth / 7 - 4}px` : undefined
20647
20734
  };
@@ -20675,7 +20762,8 @@ const CustomDatePicker = ({
20675
20762
  }
20676
20763
  };
20677
20764
  const handleSave = () => {
20678
- onChange(selectedDate);
20765
+ console.log('selectedDate1', selectedDateRef.current);
20766
+ onChange(selectedDateRef.current);
20679
20767
  resetAndCloseDatePicker();
20680
20768
  };
20681
20769
  const handleDateInputClick = () => {
@@ -20853,7 +20941,7 @@ const CustomDatePicker = ({
20853
20941
  });
20854
20942
  };
20855
20943
  return jsxs("div", {
20856
- className: "ff-date-picker",
20944
+ className: `ff-date-picker ${className}`,
20857
20945
  ref: containerRef,
20858
20946
  children: [jsxs("div", {
20859
20947
  className: "ff-datepicker-input-container",
@@ -20897,8 +20985,7 @@ const CustomDatePicker = ({
20897
20985
  className: "ff-date-picker-container",
20898
20986
  ref: pickerRef,
20899
20987
  style: {
20900
- top: datePickerPosition === 'top' ? 'auto' : '110%',
20901
- bottom: datePickerPosition === 'top' ? '110%' : 'auto'
20988
+ zIndex
20902
20989
  },
20903
20990
  children: [jsxs("div", {
20904
20991
  className: "ff-calendar-container",
@@ -21609,6 +21696,8 @@ function LiveRegion(_ref) {
21609
21696
  // Hide element visually but keep it readable by screen readers
21610
21697
  const visuallyHidden = {
21611
21698
  position: 'fixed',
21699
+ top: 0,
21700
+ left: 0,
21612
21701
  width: 1,
21613
21702
  height: 1,
21614
21703
  margin: -1,
@@ -22598,11 +22687,12 @@ var KeyboardCode;
22598
22687
  KeyboardCode["Up"] = "ArrowUp";
22599
22688
  KeyboardCode["Esc"] = "Escape";
22600
22689
  KeyboardCode["Enter"] = "Enter";
22690
+ KeyboardCode["Tab"] = "Tab";
22601
22691
  })(KeyboardCode || (KeyboardCode = {}));
22602
22692
  const defaultKeyboardCodes = {
22603
22693
  start: [KeyboardCode.Space, KeyboardCode.Enter],
22604
22694
  cancel: [KeyboardCode.Esc],
22605
- end: [KeyboardCode.Space, KeyboardCode.Enter]
22695
+ end: [KeyboardCode.Space, KeyboardCode.Enter, KeyboardCode.Tab]
22606
22696
  };
22607
22697
  const defaultKeyboardCoordinateGetter = (event, _ref) => {
22608
22698
  let {
@@ -22901,6 +22991,9 @@ class AbstractPointerSensor {
22901
22991
  passive: false
22902
22992
  });
22903
22993
  this.listeners.add(events.end.name, this.handleEnd);
22994
+ if (events.cancel) {
22995
+ this.listeners.add(events.cancel.name, this.handleCancel);
22996
+ }
22904
22997
  this.windowListeners.add(EventName.Resize, this.handleCancel);
22905
22998
  this.windowListeners.add(EventName.DragStart, preventDefault);
22906
22999
  this.windowListeners.add(EventName.VisibilityChange, this.handleCancel);
@@ -22916,9 +23009,11 @@ class AbstractPointerSensor {
22916
23009
  }
22917
23010
  if (isDelayConstraint(activationConstraint)) {
22918
23011
  this.timeoutId = setTimeout(this.handleStart, activationConstraint.delay);
23012
+ this.handlePending(activationConstraint);
22919
23013
  return;
22920
23014
  }
22921
23015
  if (isDistanceConstraint(activationConstraint)) {
23016
+ this.handlePending(activationConstraint);
22922
23017
  return;
22923
23018
  }
22924
23019
  }
@@ -22935,6 +23030,13 @@ class AbstractPointerSensor {
22935
23030
  this.timeoutId = null;
22936
23031
  }
22937
23032
  }
23033
+ handlePending(constraint, offset) {
23034
+ const {
23035
+ active,
23036
+ onPending
23037
+ } = this.props;
23038
+ onPending(active, constraint, this.initialCoordinates, offset);
23039
+ }
22938
23040
  handleStart() {
22939
23041
  const {
22940
23042
  initialCoordinates
@@ -22988,6 +23090,7 @@ class AbstractPointerSensor {
22988
23090
  return this.handleCancel();
22989
23091
  }
22990
23092
  }
23093
+ this.handlePending(activationConstraint, delta);
22991
23094
  return;
22992
23095
  }
22993
23096
  if (event.cancelable) {
@@ -22997,16 +23100,24 @@ class AbstractPointerSensor {
22997
23100
  }
22998
23101
  handleEnd() {
22999
23102
  const {
23103
+ onAbort,
23000
23104
  onEnd
23001
23105
  } = this.props;
23002
23106
  this.detach();
23107
+ if (!this.activated) {
23108
+ onAbort(this.props.active);
23109
+ }
23003
23110
  onEnd();
23004
23111
  }
23005
23112
  handleCancel() {
23006
23113
  const {
23114
+ onAbort,
23007
23115
  onCancel
23008
23116
  } = this.props;
23009
23117
  this.detach();
23118
+ if (!this.activated) {
23119
+ onAbort(this.props.active);
23120
+ }
23010
23121
  onCancel();
23011
23122
  }
23012
23123
  handleKeydown(event) {
@@ -23020,6 +23131,9 @@ class AbstractPointerSensor {
23020
23131
  }
23021
23132
  }
23022
23133
  const events = {
23134
+ cancel: {
23135
+ name: 'pointercancel'
23136
+ },
23023
23137
  move: {
23024
23138
  name: 'pointermove'
23025
23139
  },
@@ -23092,6 +23206,9 @@ MouseSensor.activators = [{
23092
23206
  }
23093
23207
  }];
23094
23208
  const events$2 = {
23209
+ cancel: {
23210
+ name: 'touchcancel'
23211
+ },
23095
23212
  move: {
23096
23213
  name: 'touchmove'
23097
23214
  },
@@ -23293,11 +23410,11 @@ function useScrollIntent(_ref2) {
23293
23410
  }, [disabled, delta, previousDelta]);
23294
23411
  }
23295
23412
  function useCachedNode(draggableNodes, id) {
23296
- const draggableNode = id !== null ? draggableNodes.get(id) : undefined;
23413
+ const draggableNode = id != null ? draggableNodes.get(id) : undefined;
23297
23414
  const node = draggableNode ? draggableNode.node.current : null;
23298
23415
  return useLazyMemo(cachedNode => {
23299
23416
  var _ref;
23300
- if (id === null) {
23417
+ if (id == null) {
23301
23418
  return null;
23302
23419
  } // In some cases, the draggable node can unmount while dragging
23303
23420
  // This is the case for virtualized lists. In those situations,
@@ -23505,7 +23622,26 @@ function useRect(element, measure, fallbackRect) {
23505
23622
  if (measure === void 0) {
23506
23623
  measure = defaultMeasure;
23507
23624
  }
23508
- const [rect, measureRect] = useReducer(reducer, null);
23625
+ const [rect, setRect] = useState(null);
23626
+ function measureRect() {
23627
+ setRect(currentRect => {
23628
+ if (!element) {
23629
+ return null;
23630
+ }
23631
+ if (element.isConnected === false) {
23632
+ var _ref;
23633
+
23634
+ // Fall back to last rect we measured if the element is
23635
+ // no longer connected to the DOM.
23636
+ return (_ref = currentRect != null ? currentRect : fallbackRect) != null ? _ref : null;
23637
+ }
23638
+ const newRect = measure(element);
23639
+ if (JSON.stringify(currentRect) === JSON.stringify(newRect)) {
23640
+ return currentRect;
23641
+ }
23642
+ return newRect;
23643
+ });
23644
+ }
23509
23645
  const mutationObserver = useMutationObserver({
23510
23646
  callback(records) {
23511
23647
  if (!element) {
@@ -23540,23 +23676,6 @@ function useRect(element, measure, fallbackRect) {
23540
23676
  }
23541
23677
  }, [element]);
23542
23678
  return rect;
23543
- function reducer(currentRect) {
23544
- if (!element) {
23545
- return null;
23546
- }
23547
- if (element.isConnected === false) {
23548
- var _ref;
23549
-
23550
- // Fall back to last rect we measured if the element is
23551
- // no longer connected to the DOM.
23552
- return (_ref = currentRect != null ? currentRect : fallbackRect) != null ? _ref : null;
23553
- }
23554
- const newRect = measure(element);
23555
- if (JSON.stringify(currentRect) === JSON.stringify(newRect)) {
23556
- return currentRect;
23557
- }
23558
- return newRect;
23559
- }
23560
23679
  }
23561
23680
  function useRectDelta(rect) {
23562
23681
  const initialRect = useInitialValue(rect);
@@ -23702,28 +23821,24 @@ function useRects(elements, measure) {
23702
23821
  }
23703
23822
  const [firstElement] = elements;
23704
23823
  const windowRect = useWindowRect(firstElement ? getWindow(firstElement) : null);
23705
- const [rects, measureRects] = useReducer(reducer, defaultValue$2);
23824
+ const [rects, setRects] = useState(defaultValue$2);
23825
+ function measureRects() {
23826
+ setRects(() => {
23827
+ if (!elements.length) {
23828
+ return defaultValue$2;
23829
+ }
23830
+ return elements.map(element => isDocumentScrollingElement(element) ? windowRect : new Rect(measure(element), element));
23831
+ });
23832
+ }
23706
23833
  const resizeObserver = useResizeObserver({
23707
23834
  callback: measureRects
23708
23835
  });
23709
- if (elements.length > 0 && rects === defaultValue$2) {
23710
- measureRects();
23711
- }
23712
23836
  useIsomorphicLayoutEffect$1(() => {
23713
- if (elements.length) {
23714
- elements.forEach(element => resizeObserver == null ? void 0 : resizeObserver.observe(element));
23715
- } else {
23716
- resizeObserver == null ? void 0 : resizeObserver.disconnect();
23717
- measureRects();
23718
- }
23837
+ resizeObserver == null ? void 0 : resizeObserver.disconnect();
23838
+ measureRects();
23839
+ elements.forEach(element => resizeObserver == null ? void 0 : resizeObserver.observe(element));
23719
23840
  }, [elements]);
23720
23841
  return rects;
23721
- function reducer() {
23722
- if (!elements.length) {
23723
- return defaultValue$2;
23724
- }
23725
- return elements.map(element => isDocumentScrollingElement(element) ? windowRect : new Rect(measure(element), element));
23726
- }
23727
23842
  }
23728
23843
  function getMeasurableNode(node) {
23729
23844
  if (!node) {
@@ -23890,7 +24005,7 @@ function reducer$1(state, action) {
23890
24005
  }
23891
24006
  };
23892
24007
  case Action.DragMove:
23893
- if (!state.draggable.active) {
24008
+ if (state.draggable.active == null) {
23894
24009
  return state;
23895
24010
  }
23896
24011
  return {
@@ -24162,7 +24277,7 @@ const DndContext = /*#__PURE__*/memo(function DndContext(_ref) {
24162
24277
  containers: droppableContainers
24163
24278
  }
24164
24279
  } = state;
24165
- const node = activeId ? draggableNodes.get(activeId) : null;
24280
+ const node = activeId != null ? draggableNodes.get(activeId) : null;
24166
24281
  const activeRects = useRef({
24167
24282
  initial: null,
24168
24283
  translated: null
@@ -24197,7 +24312,7 @@ const DndContext = /*#__PURE__*/memo(function DndContext(_ref) {
24197
24312
  const autoScrollOptions = getAutoScrollerOptions();
24198
24313
  const initialActiveNodeRect = useInitialRect(activeNode, measuringConfiguration.draggable.measure);
24199
24314
  useLayoutShiftScrollCompensation({
24200
- activeNode: activeId ? draggableNodes.get(activeId) : null,
24315
+ activeNode: activeId != null ? draggableNodes.get(activeId) : null,
24201
24316
  config: autoScrollOptions.layoutShiftCompensation,
24202
24317
  initialRect: initialActiveNodeRect,
24203
24318
  measure: measuringConfiguration.draggable.measure
@@ -24275,6 +24390,7 @@ const DndContext = /*#__PURE__*/memo(function DndContext(_ref) {
24275
24390
 
24276
24391
  const appliedTranslate = usesDragOverlay ? modifiedTranslate : add(modifiedTranslate, activeNodeScrollDelta);
24277
24392
  const transform = adjustScale(appliedTranslate, (_over$rect = over == null ? void 0 : over.rect) != null ? _over$rect : null, activeNodeRect);
24393
+ const activeSensorRef = useRef(null);
24278
24394
  const instantiateSensor = useCallback((event, _ref2) => {
24279
24395
  let {
24280
24396
  sensor: Sensor,
@@ -24296,6 +24412,43 @@ const DndContext = /*#__PURE__*/memo(function DndContext(_ref) {
24296
24412
  // Sensors need to be instantiated with refs for arguments that change over time
24297
24413
  // otherwise they are frozen in time with the stale arguments
24298
24414
  context: sensorContext,
24415
+ onAbort(id) {
24416
+ const draggableNode = draggableNodes.get(id);
24417
+ if (!draggableNode) {
24418
+ return;
24419
+ }
24420
+ const {
24421
+ onDragAbort
24422
+ } = latestProps.current;
24423
+ const event = {
24424
+ id
24425
+ };
24426
+ onDragAbort == null ? void 0 : onDragAbort(event);
24427
+ dispatchMonitorEvent({
24428
+ type: 'onDragAbort',
24429
+ event
24430
+ });
24431
+ },
24432
+ onPending(id, constraint, initialCoordinates, offset) {
24433
+ const draggableNode = draggableNodes.get(id);
24434
+ if (!draggableNode) {
24435
+ return;
24436
+ }
24437
+ const {
24438
+ onDragPending
24439
+ } = latestProps.current;
24440
+ const event = {
24441
+ id,
24442
+ constraint,
24443
+ initialCoordinates,
24444
+ offset
24445
+ };
24446
+ onDragPending == null ? void 0 : onDragPending(event);
24447
+ dispatchMonitorEvent({
24448
+ type: 'onDragPending',
24449
+ event
24450
+ });
24451
+ },
24299
24452
  onStart(initialCoordinates) {
24300
24453
  const id = activeRef.current;
24301
24454
  if (id == null) {
@@ -24309,6 +24462,7 @@ const DndContext = /*#__PURE__*/memo(function DndContext(_ref) {
24309
24462
  onDragStart
24310
24463
  } = latestProps.current;
24311
24464
  const event = {
24465
+ activatorEvent,
24312
24466
  active: {
24313
24467
  id,
24314
24468
  data: draggableNode.data,
@@ -24327,6 +24481,8 @@ const DndContext = /*#__PURE__*/memo(function DndContext(_ref) {
24327
24481
  type: 'onDragStart',
24328
24482
  event
24329
24483
  });
24484
+ setActiveSensor(activeSensorRef.current);
24485
+ setActivatorEvent(activatorEvent);
24330
24486
  });
24331
24487
  },
24332
24488
  onMove(coordinates) {
@@ -24338,10 +24494,7 @@ const DndContext = /*#__PURE__*/memo(function DndContext(_ref) {
24338
24494
  onEnd: createHandler(Action.DragEnd),
24339
24495
  onCancel: createHandler(Action.DragCancel)
24340
24496
  });
24341
- unstable_batchedUpdates(() => {
24342
- setActiveSensor(sensorInstance);
24343
- setActivatorEvent(event.nativeEvent);
24344
- });
24497
+ activeSensorRef.current = sensorInstance;
24345
24498
  function createHandler(type) {
24346
24499
  return async function handler() {
24347
24500
  const {
@@ -24378,6 +24531,7 @@ const DndContext = /*#__PURE__*/memo(function DndContext(_ref) {
24378
24531
  setOver(null);
24379
24532
  setActiveSensor(null);
24380
24533
  setActivatorEvent(null);
24534
+ activeSensorRef.current = null;
24381
24535
  const eventName = type === Action.DragEnd ? 'onDragEnd' : 'onDragCancel';
24382
24536
  if (event) {
24383
24537
  const handler = latestProps.current[eventName];
@@ -24599,7 +24753,7 @@ const DndContext = /*#__PURE__*/memo(function DndContext(_ref) {
24599
24753
  });
24600
24754
  const NullContext = /*#__PURE__*/createContext$1(null);
24601
24755
  const defaultRole = 'button';
24602
- const ID_PREFIX$1 = 'Droppable';
24756
+ const ID_PREFIX$1 = 'Draggable';
24603
24757
  function useDraggable(_ref) {
24604
24758
  let {
24605
24759
  id,
@@ -24746,7 +24900,7 @@ function useDroppable(_ref) {
24746
24900
  resizeObserverConnected.current = false;
24747
24901
  resizeObserver.observe(nodeRef.current);
24748
24902
  }, [nodeRef, resizeObserver]);
24749
- useIsomorphicLayoutEffect$1(() => {
24903
+ useEffect(() => {
24750
24904
  dispatch({
24751
24905
  type: Action.RegisterDroppable,
24752
24906
  element: {
@@ -25161,6 +25315,7 @@ var DNDCore = /*#__PURE__*/Object.freeze({
25161
25315
  defaultCoordinates: defaultCoordinates,
25162
25316
  defaultDropAnimation: defaultDropAnimationConfiguration,
25163
25317
  defaultDropAnimationSideEffects: defaultDropAnimationSideEffects,
25318
+ defaultKeyboardCoordinateGetter: defaultKeyboardCoordinateGetter,
25164
25319
  defaultScreenReaderInstructions: defaultScreenReaderInstructions,
25165
25320
  getClientRect: getClientRect,
25166
25321
  getFirstCollision: getFirstCollision,
@@ -27034,226 +27189,559 @@ const DashboardDonutChart = ({
27034
27189
 
27035
27190
  var propTypes = {exports: {}};
27036
27191
 
27037
- /*
27038
- object-assign
27039
- (c) Sindre Sorhus
27040
- @license MIT
27041
- */
27042
- var objectAssign;
27043
- var hasRequiredObjectAssign;
27044
- function requireObjectAssign() {
27045
- if (hasRequiredObjectAssign) return objectAssign;
27046
- hasRequiredObjectAssign = 1;
27047
- /* eslint-disable no-unused-vars */
27048
- var getOwnPropertySymbols = Object.getOwnPropertySymbols;
27049
- var hasOwnProperty = Object.prototype.hasOwnProperty;
27050
- var propIsEnumerable = Object.prototype.propertyIsEnumerable;
27051
- function toObject(val) {
27052
- if (val === null || val === undefined) {
27053
- throw new TypeError('Object.assign cannot be called with null or undefined');
27054
- }
27055
- return Object(val);
27056
- }
27057
- function shouldUseNative() {
27058
- try {
27059
- if (!Object.assign) {
27060
- return false;
27061
- }
27062
-
27063
- // Detect buggy property enumeration order in older V8 versions.
27064
-
27065
- // https://bugs.chromium.org/p/v8/issues/detail?id=4118
27066
- var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
27067
- test1[5] = 'de';
27068
- if (Object.getOwnPropertyNames(test1)[0] === '5') {
27069
- return false;
27070
- }
27192
+ var reactIs = {exports: {}};
27071
27193
 
27072
- // https://bugs.chromium.org/p/v8/issues/detail?id=3056
27073
- var test2 = {};
27074
- for (var i = 0; i < 10; i++) {
27075
- test2['_' + String.fromCharCode(i)] = i;
27076
- }
27077
- var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
27078
- return test2[n];
27079
- });
27080
- if (order2.join('') !== '0123456789') {
27081
- return false;
27082
- }
27194
+ var reactIs_production_min = {};
27083
27195
 
27084
- // https://bugs.chromium.org/p/v8/issues/detail?id=3056
27085
- var test3 = {};
27086
- 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
27087
- test3[letter] = letter;
27088
- });
27089
- if (Object.keys(Object.assign({}, test3)).join('') !== 'abcdefghijklmnopqrst') {
27090
- return false;
27091
- }
27092
- return true;
27093
- } catch (err) {
27094
- // We don't expect any of the above to throw, but better to be safe.
27095
- return false;
27096
- }
27097
- }
27098
- objectAssign = shouldUseNative() ? Object.assign : function (target, source) {
27099
- var from;
27100
- var to = toObject(target);
27101
- var symbols;
27102
- for (var s = 1; s < arguments.length; s++) {
27103
- from = Object(arguments[s]);
27104
- for (var key in from) {
27105
- if (hasOwnProperty.call(from, key)) {
27106
- to[key] = from[key];
27107
- }
27108
- }
27109
- if (getOwnPropertySymbols) {
27110
- symbols = getOwnPropertySymbols(from);
27111
- for (var i = 0; i < symbols.length; i++) {
27112
- if (propIsEnumerable.call(from, symbols[i])) {
27113
- to[symbols[i]] = from[symbols[i]];
27196
+ /** @license React v16.13.1
27197
+ * react-is.production.min.js
27198
+ *
27199
+ * Copyright (c) Facebook, Inc. and its affiliates.
27200
+ *
27201
+ * This source code is licensed under the MIT license found in the
27202
+ * LICENSE file in the root directory of this source tree.
27203
+ */
27204
+ var hasRequiredReactIs_production_min;
27205
+ function requireReactIs_production_min() {
27206
+ if (hasRequiredReactIs_production_min) return reactIs_production_min;
27207
+ hasRequiredReactIs_production_min = 1;
27208
+ var b = "function" === typeof Symbol && Symbol.for,
27209
+ c = b ? Symbol.for("react.element") : 60103,
27210
+ d = b ? Symbol.for("react.portal") : 60106,
27211
+ e = b ? Symbol.for("react.fragment") : 60107,
27212
+ f = b ? Symbol.for("react.strict_mode") : 60108,
27213
+ g = b ? Symbol.for("react.profiler") : 60114,
27214
+ h = b ? Symbol.for("react.provider") : 60109,
27215
+ k = b ? Symbol.for("react.context") : 60110,
27216
+ l = b ? Symbol.for("react.async_mode") : 60111,
27217
+ m = b ? Symbol.for("react.concurrent_mode") : 60111,
27218
+ n = b ? Symbol.for("react.forward_ref") : 60112,
27219
+ p = b ? Symbol.for("react.suspense") : 60113,
27220
+ q = b ? Symbol.for("react.suspense_list") : 60120,
27221
+ r = b ? Symbol.for("react.memo") : 60115,
27222
+ t = b ? Symbol.for("react.lazy") : 60116,
27223
+ v = b ? Symbol.for("react.block") : 60121,
27224
+ w = b ? Symbol.for("react.fundamental") : 60117,
27225
+ x = b ? Symbol.for("react.responder") : 60118,
27226
+ y = b ? Symbol.for("react.scope") : 60119;
27227
+ function z(a) {
27228
+ if ("object" === typeof a && null !== a) {
27229
+ var u = a.$$typeof;
27230
+ switch (u) {
27231
+ case c:
27232
+ switch (a = a.type, a) {
27233
+ case l:
27234
+ case m:
27235
+ case e:
27236
+ case g:
27237
+ case f:
27238
+ case p:
27239
+ return a;
27240
+ default:
27241
+ switch (a = a && a.$$typeof, a) {
27242
+ case k:
27243
+ case n:
27244
+ case t:
27245
+ case r:
27246
+ case h:
27247
+ return a;
27248
+ default:
27249
+ return u;
27250
+ }
27114
27251
  }
27115
- }
27252
+ case d:
27253
+ return u;
27116
27254
  }
27117
27255
  }
27118
- return to;
27256
+ }
27257
+ function A(a) {
27258
+ return z(a) === m;
27259
+ }
27260
+ reactIs_production_min.AsyncMode = l;
27261
+ reactIs_production_min.ConcurrentMode = m;
27262
+ reactIs_production_min.ContextConsumer = k;
27263
+ reactIs_production_min.ContextProvider = h;
27264
+ reactIs_production_min.Element = c;
27265
+ reactIs_production_min.ForwardRef = n;
27266
+ reactIs_production_min.Fragment = e;
27267
+ reactIs_production_min.Lazy = t;
27268
+ reactIs_production_min.Memo = r;
27269
+ reactIs_production_min.Portal = d;
27270
+ reactIs_production_min.Profiler = g;
27271
+ reactIs_production_min.StrictMode = f;
27272
+ reactIs_production_min.Suspense = p;
27273
+ reactIs_production_min.isAsyncMode = function (a) {
27274
+ return A(a) || z(a) === l;
27119
27275
  };
27120
- return objectAssign;
27276
+ reactIs_production_min.isConcurrentMode = A;
27277
+ reactIs_production_min.isContextConsumer = function (a) {
27278
+ return z(a) === k;
27279
+ };
27280
+ reactIs_production_min.isContextProvider = function (a) {
27281
+ return z(a) === h;
27282
+ };
27283
+ reactIs_production_min.isElement = function (a) {
27284
+ return "object" === typeof a && null !== a && a.$$typeof === c;
27285
+ };
27286
+ reactIs_production_min.isForwardRef = function (a) {
27287
+ return z(a) === n;
27288
+ };
27289
+ reactIs_production_min.isFragment = function (a) {
27290
+ return z(a) === e;
27291
+ };
27292
+ reactIs_production_min.isLazy = function (a) {
27293
+ return z(a) === t;
27294
+ };
27295
+ reactIs_production_min.isMemo = function (a) {
27296
+ return z(a) === r;
27297
+ };
27298
+ reactIs_production_min.isPortal = function (a) {
27299
+ return z(a) === d;
27300
+ };
27301
+ reactIs_production_min.isProfiler = function (a) {
27302
+ return z(a) === g;
27303
+ };
27304
+ reactIs_production_min.isStrictMode = function (a) {
27305
+ return z(a) === f;
27306
+ };
27307
+ reactIs_production_min.isSuspense = function (a) {
27308
+ return z(a) === p;
27309
+ };
27310
+ reactIs_production_min.isValidElementType = function (a) {
27311
+ 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);
27312
+ };
27313
+ reactIs_production_min.typeOf = z;
27314
+ return reactIs_production_min;
27121
27315
  }
27122
27316
 
27123
- /**
27124
- * Copyright (c) 2013-present, Facebook, Inc.
27125
- *
27126
- * This source code is licensed under the MIT license found in the
27127
- * LICENSE file in the root directory of this source tree.
27128
- */
27129
- var ReactPropTypesSecret_1;
27130
- var hasRequiredReactPropTypesSecret;
27131
- function requireReactPropTypesSecret() {
27132
- if (hasRequiredReactPropTypesSecret) return ReactPropTypesSecret_1;
27133
- hasRequiredReactPropTypesSecret = 1;
27134
- var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
27135
- ReactPropTypesSecret_1 = ReactPropTypesSecret;
27136
- return ReactPropTypesSecret_1;
27137
- }
27317
+ var reactIs_development = {};
27138
27318
 
27139
- /**
27140
- * Copyright (c) 2013-present, Facebook, Inc.
27319
+ /** @license React v16.13.1
27320
+ * react-is.development.js
27321
+ *
27322
+ * Copyright (c) Facebook, Inc. and its affiliates.
27141
27323
  *
27142
27324
  * This source code is licensed under the MIT license found in the
27143
27325
  * LICENSE file in the root directory of this source tree.
27144
27326
  */
27145
- var checkPropTypes_1;
27146
- var hasRequiredCheckPropTypes;
27147
- function requireCheckPropTypes() {
27148
- if (hasRequiredCheckPropTypes) return checkPropTypes_1;
27149
- hasRequiredCheckPropTypes = 1;
27150
- var printWarning = function () {};
27151
- if (process.env.NODE_ENV !== 'production') {
27152
- var ReactPropTypesSecret = requireReactPropTypesSecret();
27153
- var loggedTypeFailures = {};
27154
- printWarning = function (text) {
27155
- var message = 'Warning: ' + text;
27156
- if (typeof console !== 'undefined') {
27157
- console.error(message);
27158
- }
27159
- try {
27160
- // --- Welcome to debugging React ---
27161
- // This error was thrown as a convenience so that you can use this stack
27162
- // to find the callsite that caused this warning to fire.
27163
- throw new Error(message);
27164
- } catch (x) {}
27165
- };
27166
- }
27327
+ var hasRequiredReactIs_development;
27328
+ function requireReactIs_development() {
27329
+ if (hasRequiredReactIs_development) return reactIs_development;
27330
+ hasRequiredReactIs_development = 1;
27331
+ if (process.env.NODE_ENV !== "production") {
27332
+ (function () {
27167
27333
 
27168
- /**
27169
- * Assert that the values match with the type specs.
27170
- * Error messages are memorized and will only be shown once.
27171
- *
27172
- * @param {object} typeSpecs Map of name to a ReactPropType
27173
- * @param {object} values Runtime values that need to be type-checked
27174
- * @param {string} location e.g. "prop", "context", "child context"
27175
- * @param {string} componentName Name of the component for error messages.
27176
- * @param {?Function} getStack Returns the component stack.
27177
- * @private
27178
- */
27179
- function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
27180
- if (process.env.NODE_ENV !== 'production') {
27181
- for (var typeSpecName in typeSpecs) {
27182
- if (typeSpecs.hasOwnProperty(typeSpecName)) {
27183
- var error;
27184
- // Prop type validation may throw. In case they do, we don't want to
27185
- // fail the render phase where it didn't fail before. So we log it.
27186
- // After these have been cleaned up, we'll let them throw.
27187
- try {
27188
- // This is intentionally an invariant that gets caught. It's the same
27189
- // behavior as without this statement except with a better message.
27190
- if (typeof typeSpecs[typeSpecName] !== 'function') {
27191
- 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] + '`.');
27192
- err.name = 'Invariant Violation';
27193
- throw err;
27194
- }
27195
- error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
27196
- } catch (ex) {
27197
- error = ex;
27198
- }
27199
- if (error && !(error instanceof Error)) {
27200
- printWarning((componentName || 'React class') + ': type specification of ' + location + ' `' + typeSpecName + '` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).');
27334
+ // The Symbol used to tag the ReactElement-like types. If there is no native Symbol
27335
+ // nor polyfill, then a plain number is used for performance.
27336
+ var hasSymbol = typeof Symbol === 'function' && Symbol.for;
27337
+ var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
27338
+ var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
27339
+ var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
27340
+ var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
27341
+ var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
27342
+ var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
27343
+ var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary
27344
+ // (unstable) APIs that have been removed. Can we remove the symbols?
27345
+
27346
+ var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;
27347
+ var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
27348
+ var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
27349
+ var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
27350
+ var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;
27351
+ var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
27352
+ var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;
27353
+ var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;
27354
+ var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;
27355
+ var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;
27356
+ var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;
27357
+ function isValidElementType(type) {
27358
+ return typeof type === 'string' || typeof type === 'function' ||
27359
+ // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
27360
+ 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);
27361
+ }
27362
+ function typeOf(object) {
27363
+ if (typeof object === 'object' && object !== null) {
27364
+ var $$typeof = object.$$typeof;
27365
+ switch ($$typeof) {
27366
+ case REACT_ELEMENT_TYPE:
27367
+ var type = object.type;
27368
+ switch (type) {
27369
+ case REACT_ASYNC_MODE_TYPE:
27370
+ case REACT_CONCURRENT_MODE_TYPE:
27371
+ case REACT_FRAGMENT_TYPE:
27372
+ case REACT_PROFILER_TYPE:
27373
+ case REACT_STRICT_MODE_TYPE:
27374
+ case REACT_SUSPENSE_TYPE:
27375
+ return type;
27376
+ default:
27377
+ var $$typeofType = type && type.$$typeof;
27378
+ switch ($$typeofType) {
27379
+ case REACT_CONTEXT_TYPE:
27380
+ case REACT_FORWARD_REF_TYPE:
27381
+ case REACT_LAZY_TYPE:
27382
+ case REACT_MEMO_TYPE:
27383
+ case REACT_PROVIDER_TYPE:
27384
+ return $$typeofType;
27385
+ default:
27386
+ return $$typeof;
27387
+ }
27388
+ }
27389
+ case REACT_PORTAL_TYPE:
27390
+ return $$typeof;
27201
27391
  }
27202
- if (error instanceof Error && !(error.message in loggedTypeFailures)) {
27203
- // Only monitor this failure once because there tends to be a lot of the
27204
- // same error.
27205
- loggedTypeFailures[error.message] = true;
27206
- var stack = getStack ? getStack() : '';
27207
- printWarning('Failed ' + location + ' type: ' + error.message + (stack != null ? stack : ''));
27392
+ }
27393
+ return undefined;
27394
+ } // AsyncMode is deprecated along with isAsyncMode
27395
+
27396
+ var AsyncMode = REACT_ASYNC_MODE_TYPE;
27397
+ var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
27398
+ var ContextConsumer = REACT_CONTEXT_TYPE;
27399
+ var ContextProvider = REACT_PROVIDER_TYPE;
27400
+ var Element = REACT_ELEMENT_TYPE;
27401
+ var ForwardRef = REACT_FORWARD_REF_TYPE;
27402
+ var Fragment = REACT_FRAGMENT_TYPE;
27403
+ var Lazy = REACT_LAZY_TYPE;
27404
+ var Memo = REACT_MEMO_TYPE;
27405
+ var Portal = REACT_PORTAL_TYPE;
27406
+ var Profiler = REACT_PROFILER_TYPE;
27407
+ var StrictMode = REACT_STRICT_MODE_TYPE;
27408
+ var Suspense = REACT_SUSPENSE_TYPE;
27409
+ var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated
27410
+
27411
+ function isAsyncMode(object) {
27412
+ {
27413
+ if (!hasWarnedAboutDeprecatedIsAsyncMode) {
27414
+ hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint
27415
+
27416
+ 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.');
27208
27417
  }
27209
27418
  }
27419
+ return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
27210
27420
  }
27211
- }
27421
+ function isConcurrentMode(object) {
27422
+ return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
27423
+ }
27424
+ function isContextConsumer(object) {
27425
+ return typeOf(object) === REACT_CONTEXT_TYPE;
27426
+ }
27427
+ function isContextProvider(object) {
27428
+ return typeOf(object) === REACT_PROVIDER_TYPE;
27429
+ }
27430
+ function isElement(object) {
27431
+ return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
27432
+ }
27433
+ function isForwardRef(object) {
27434
+ return typeOf(object) === REACT_FORWARD_REF_TYPE;
27435
+ }
27436
+ function isFragment(object) {
27437
+ return typeOf(object) === REACT_FRAGMENT_TYPE;
27438
+ }
27439
+ function isLazy(object) {
27440
+ return typeOf(object) === REACT_LAZY_TYPE;
27441
+ }
27442
+ function isMemo(object) {
27443
+ return typeOf(object) === REACT_MEMO_TYPE;
27444
+ }
27445
+ function isPortal(object) {
27446
+ return typeOf(object) === REACT_PORTAL_TYPE;
27447
+ }
27448
+ function isProfiler(object) {
27449
+ return typeOf(object) === REACT_PROFILER_TYPE;
27450
+ }
27451
+ function isStrictMode(object) {
27452
+ return typeOf(object) === REACT_STRICT_MODE_TYPE;
27453
+ }
27454
+ function isSuspense(object) {
27455
+ return typeOf(object) === REACT_SUSPENSE_TYPE;
27456
+ }
27457
+ reactIs_development.AsyncMode = AsyncMode;
27458
+ reactIs_development.ConcurrentMode = ConcurrentMode;
27459
+ reactIs_development.ContextConsumer = ContextConsumer;
27460
+ reactIs_development.ContextProvider = ContextProvider;
27461
+ reactIs_development.Element = Element;
27462
+ reactIs_development.ForwardRef = ForwardRef;
27463
+ reactIs_development.Fragment = Fragment;
27464
+ reactIs_development.Lazy = Lazy;
27465
+ reactIs_development.Memo = Memo;
27466
+ reactIs_development.Portal = Portal;
27467
+ reactIs_development.Profiler = Profiler;
27468
+ reactIs_development.StrictMode = StrictMode;
27469
+ reactIs_development.Suspense = Suspense;
27470
+ reactIs_development.isAsyncMode = isAsyncMode;
27471
+ reactIs_development.isConcurrentMode = isConcurrentMode;
27472
+ reactIs_development.isContextConsumer = isContextConsumer;
27473
+ reactIs_development.isContextProvider = isContextProvider;
27474
+ reactIs_development.isElement = isElement;
27475
+ reactIs_development.isForwardRef = isForwardRef;
27476
+ reactIs_development.isFragment = isFragment;
27477
+ reactIs_development.isLazy = isLazy;
27478
+ reactIs_development.isMemo = isMemo;
27479
+ reactIs_development.isPortal = isPortal;
27480
+ reactIs_development.isProfiler = isProfiler;
27481
+ reactIs_development.isStrictMode = isStrictMode;
27482
+ reactIs_development.isSuspense = isSuspense;
27483
+ reactIs_development.isValidElementType = isValidElementType;
27484
+ reactIs_development.typeOf = typeOf;
27485
+ })();
27212
27486
  }
27213
- checkPropTypes_1 = checkPropTypes;
27214
- return checkPropTypes_1;
27487
+ return reactIs_development;
27215
27488
  }
27216
27489
 
27217
- /**
27218
- * Copyright (c) 2013-present, Facebook, Inc.
27219
- *
27220
- * This source code is licensed under the MIT license found in the
27221
- * LICENSE file in the root directory of this source tree.
27222
- */
27223
- var factoryWithTypeCheckers;
27224
- var hasRequiredFactoryWithTypeCheckers;
27225
- function requireFactoryWithTypeCheckers() {
27226
- if (hasRequiredFactoryWithTypeCheckers) return factoryWithTypeCheckers;
27227
- hasRequiredFactoryWithTypeCheckers = 1;
27228
- var assign = requireObjectAssign();
27229
- var ReactPropTypesSecret = requireReactPropTypesSecret();
27230
- var checkPropTypes = requireCheckPropTypes();
27231
- var printWarning = function () {};
27232
- if (process.env.NODE_ENV !== 'production') {
27233
- printWarning = function (text) {
27234
- var message = 'Warning: ' + text;
27235
- if (typeof console !== 'undefined') {
27236
- console.error(message);
27237
- }
27238
- try {
27239
- // --- Welcome to debugging React ---
27240
- // This error was thrown as a convenience so that you can use this stack
27241
- // to find the callsite that caused this warning to fire.
27242
- throw new Error(message);
27243
- } catch (x) {}
27244
- };
27245
- }
27246
- function emptyFunctionThatReturnsNull() {
27247
- return null;
27490
+ var hasRequiredReactIs;
27491
+ function requireReactIs() {
27492
+ if (hasRequiredReactIs) return reactIs.exports;
27493
+ hasRequiredReactIs = 1;
27494
+ if (process.env.NODE_ENV === 'production') {
27495
+ reactIs.exports = requireReactIs_production_min();
27496
+ } else {
27497
+ reactIs.exports = requireReactIs_development();
27248
27498
  }
27249
- factoryWithTypeCheckers = function (isValidElement, throwOnDirectAccess) {
27250
- /* global Symbol */
27251
- var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
27252
- var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.
27499
+ return reactIs.exports;
27500
+ }
27253
27501
 
27254
- /**
27255
- * Returns the iterator method function contained on the iterable object.
27256
- *
27502
+ /*
27503
+ object-assign
27504
+ (c) Sindre Sorhus
27505
+ @license MIT
27506
+ */
27507
+ var objectAssign;
27508
+ var hasRequiredObjectAssign;
27509
+ function requireObjectAssign() {
27510
+ if (hasRequiredObjectAssign) return objectAssign;
27511
+ hasRequiredObjectAssign = 1;
27512
+ /* eslint-disable no-unused-vars */
27513
+ var getOwnPropertySymbols = Object.getOwnPropertySymbols;
27514
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
27515
+ var propIsEnumerable = Object.prototype.propertyIsEnumerable;
27516
+ function toObject(val) {
27517
+ if (val === null || val === undefined) {
27518
+ throw new TypeError('Object.assign cannot be called with null or undefined');
27519
+ }
27520
+ return Object(val);
27521
+ }
27522
+ function shouldUseNative() {
27523
+ try {
27524
+ if (!Object.assign) {
27525
+ return false;
27526
+ }
27527
+
27528
+ // Detect buggy property enumeration order in older V8 versions.
27529
+
27530
+ // https://bugs.chromium.org/p/v8/issues/detail?id=4118
27531
+ var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
27532
+ test1[5] = 'de';
27533
+ if (Object.getOwnPropertyNames(test1)[0] === '5') {
27534
+ return false;
27535
+ }
27536
+
27537
+ // https://bugs.chromium.org/p/v8/issues/detail?id=3056
27538
+ var test2 = {};
27539
+ for (var i = 0; i < 10; i++) {
27540
+ test2['_' + String.fromCharCode(i)] = i;
27541
+ }
27542
+ var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
27543
+ return test2[n];
27544
+ });
27545
+ if (order2.join('') !== '0123456789') {
27546
+ return false;
27547
+ }
27548
+
27549
+ // https://bugs.chromium.org/p/v8/issues/detail?id=3056
27550
+ var test3 = {};
27551
+ 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
27552
+ test3[letter] = letter;
27553
+ });
27554
+ if (Object.keys(Object.assign({}, test3)).join('') !== 'abcdefghijklmnopqrst') {
27555
+ return false;
27556
+ }
27557
+ return true;
27558
+ } catch (err) {
27559
+ // We don't expect any of the above to throw, but better to be safe.
27560
+ return false;
27561
+ }
27562
+ }
27563
+ objectAssign = shouldUseNative() ? Object.assign : function (target, source) {
27564
+ var from;
27565
+ var to = toObject(target);
27566
+ var symbols;
27567
+ for (var s = 1; s < arguments.length; s++) {
27568
+ from = Object(arguments[s]);
27569
+ for (var key in from) {
27570
+ if (hasOwnProperty.call(from, key)) {
27571
+ to[key] = from[key];
27572
+ }
27573
+ }
27574
+ if (getOwnPropertySymbols) {
27575
+ symbols = getOwnPropertySymbols(from);
27576
+ for (var i = 0; i < symbols.length; i++) {
27577
+ if (propIsEnumerable.call(from, symbols[i])) {
27578
+ to[symbols[i]] = from[symbols[i]];
27579
+ }
27580
+ }
27581
+ }
27582
+ }
27583
+ return to;
27584
+ };
27585
+ return objectAssign;
27586
+ }
27587
+
27588
+ /**
27589
+ * Copyright (c) 2013-present, Facebook, Inc.
27590
+ *
27591
+ * This source code is licensed under the MIT license found in the
27592
+ * LICENSE file in the root directory of this source tree.
27593
+ */
27594
+ var ReactPropTypesSecret_1;
27595
+ var hasRequiredReactPropTypesSecret;
27596
+ function requireReactPropTypesSecret() {
27597
+ if (hasRequiredReactPropTypesSecret) return ReactPropTypesSecret_1;
27598
+ hasRequiredReactPropTypesSecret = 1;
27599
+ var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
27600
+ ReactPropTypesSecret_1 = ReactPropTypesSecret;
27601
+ return ReactPropTypesSecret_1;
27602
+ }
27603
+
27604
+ var has$1;
27605
+ var hasRequiredHas;
27606
+ function requireHas() {
27607
+ if (hasRequiredHas) return has$1;
27608
+ hasRequiredHas = 1;
27609
+ has$1 = Function.call.bind(Object.prototype.hasOwnProperty);
27610
+ return has$1;
27611
+ }
27612
+
27613
+ /**
27614
+ * Copyright (c) 2013-present, Facebook, Inc.
27615
+ *
27616
+ * This source code is licensed under the MIT license found in the
27617
+ * LICENSE file in the root directory of this source tree.
27618
+ */
27619
+ var checkPropTypes_1;
27620
+ var hasRequiredCheckPropTypes;
27621
+ function requireCheckPropTypes() {
27622
+ if (hasRequiredCheckPropTypes) return checkPropTypes_1;
27623
+ hasRequiredCheckPropTypes = 1;
27624
+ var printWarning = function () {};
27625
+ if (process.env.NODE_ENV !== 'production') {
27626
+ var ReactPropTypesSecret = /*@__PURE__*/requireReactPropTypesSecret();
27627
+ var loggedTypeFailures = {};
27628
+ var has = /*@__PURE__*/requireHas();
27629
+ printWarning = function (text) {
27630
+ var message = 'Warning: ' + text;
27631
+ if (typeof console !== 'undefined') {
27632
+ console.error(message);
27633
+ }
27634
+ try {
27635
+ // --- Welcome to debugging React ---
27636
+ // This error was thrown as a convenience so that you can use this stack
27637
+ // to find the callsite that caused this warning to fire.
27638
+ throw new Error(message);
27639
+ } catch (x) {/**/}
27640
+ };
27641
+ }
27642
+
27643
+ /**
27644
+ * Assert that the values match with the type specs.
27645
+ * Error messages are memorized and will only be shown once.
27646
+ *
27647
+ * @param {object} typeSpecs Map of name to a ReactPropType
27648
+ * @param {object} values Runtime values that need to be type-checked
27649
+ * @param {string} location e.g. "prop", "context", "child context"
27650
+ * @param {string} componentName Name of the component for error messages.
27651
+ * @param {?Function} getStack Returns the component stack.
27652
+ * @private
27653
+ */
27654
+ function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
27655
+ if (process.env.NODE_ENV !== 'production') {
27656
+ for (var typeSpecName in typeSpecs) {
27657
+ if (has(typeSpecs, typeSpecName)) {
27658
+ var error;
27659
+ // Prop type validation may throw. In case they do, we don't want to
27660
+ // fail the render phase where it didn't fail before. So we log it.
27661
+ // After these have been cleaned up, we'll let them throw.
27662
+ try {
27663
+ // This is intentionally an invariant that gets caught. It's the same
27664
+ // behavior as without this statement except with a better message.
27665
+ if (typeof typeSpecs[typeSpecName] !== 'function') {
27666
+ 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`.');
27667
+ err.name = 'Invariant Violation';
27668
+ throw err;
27669
+ }
27670
+ error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
27671
+ } catch (ex) {
27672
+ error = ex;
27673
+ }
27674
+ if (error && !(error instanceof Error)) {
27675
+ printWarning((componentName || 'React class') + ': type specification of ' + location + ' `' + typeSpecName + '` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).');
27676
+ }
27677
+ if (error instanceof Error && !(error.message in loggedTypeFailures)) {
27678
+ // Only monitor this failure once because there tends to be a lot of the
27679
+ // same error.
27680
+ loggedTypeFailures[error.message] = true;
27681
+ var stack = getStack ? getStack() : '';
27682
+ printWarning('Failed ' + location + ' type: ' + error.message + (stack != null ? stack : ''));
27683
+ }
27684
+ }
27685
+ }
27686
+ }
27687
+ }
27688
+
27689
+ /**
27690
+ * Resets warning cache when testing.
27691
+ *
27692
+ * @private
27693
+ */
27694
+ checkPropTypes.resetWarningCache = function () {
27695
+ if (process.env.NODE_ENV !== 'production') {
27696
+ loggedTypeFailures = {};
27697
+ }
27698
+ };
27699
+ checkPropTypes_1 = checkPropTypes;
27700
+ return checkPropTypes_1;
27701
+ }
27702
+
27703
+ /**
27704
+ * Copyright (c) 2013-present, Facebook, Inc.
27705
+ *
27706
+ * This source code is licensed under the MIT license found in the
27707
+ * LICENSE file in the root directory of this source tree.
27708
+ */
27709
+ var factoryWithTypeCheckers;
27710
+ var hasRequiredFactoryWithTypeCheckers;
27711
+ function requireFactoryWithTypeCheckers() {
27712
+ if (hasRequiredFactoryWithTypeCheckers) return factoryWithTypeCheckers;
27713
+ hasRequiredFactoryWithTypeCheckers = 1;
27714
+ var ReactIs = requireReactIs();
27715
+ var assign = requireObjectAssign();
27716
+ var ReactPropTypesSecret = /*@__PURE__*/requireReactPropTypesSecret();
27717
+ var has = /*@__PURE__*/requireHas();
27718
+ var checkPropTypes = /*@__PURE__*/requireCheckPropTypes();
27719
+ var printWarning = function () {};
27720
+ if (process.env.NODE_ENV !== 'production') {
27721
+ printWarning = function (text) {
27722
+ var message = 'Warning: ' + text;
27723
+ if (typeof console !== 'undefined') {
27724
+ console.error(message);
27725
+ }
27726
+ try {
27727
+ // --- Welcome to debugging React ---
27728
+ // This error was thrown as a convenience so that you can use this stack
27729
+ // to find the callsite that caused this warning to fire.
27730
+ throw new Error(message);
27731
+ } catch (x) {}
27732
+ };
27733
+ }
27734
+ function emptyFunctionThatReturnsNull() {
27735
+ return null;
27736
+ }
27737
+ factoryWithTypeCheckers = function (isValidElement, throwOnDirectAccess) {
27738
+ /* global Symbol */
27739
+ var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
27740
+ var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.
27741
+
27742
+ /**
27743
+ * Returns the iterator method function contained on the iterable object.
27744
+ *
27257
27745
  * Be sure to invoke the function with the iterable as context:
27258
27746
  *
27259
27747
  * var iteratorFn = getIteratorFn(myIterable);
@@ -27325,6 +27813,7 @@ function requireFactoryWithTypeCheckers() {
27325
27813
  // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.
27326
27814
  var ReactPropTypes = {
27327
27815
  array: createPrimitiveTypeChecker('array'),
27816
+ bigint: createPrimitiveTypeChecker('bigint'),
27328
27817
  bool: createPrimitiveTypeChecker('boolean'),
27329
27818
  func: createPrimitiveTypeChecker('function'),
27330
27819
  number: createPrimitiveTypeChecker('number'),
@@ -27334,6 +27823,7 @@ function requireFactoryWithTypeCheckers() {
27334
27823
  any: createAnyTypeChecker(),
27335
27824
  arrayOf: createArrayOfTypeChecker,
27336
27825
  element: createElementTypeChecker(),
27826
+ elementType: createElementTypeTypeChecker(),
27337
27827
  instanceOf: createInstanceTypeChecker,
27338
27828
  node: createNodeChecker(),
27339
27829
  objectOf: createObjectOfTypeChecker,
@@ -27368,8 +27858,9 @@ function requireFactoryWithTypeCheckers() {
27368
27858
  * is prohibitively expensive if they are created too often, such as what
27369
27859
  * happens in oneOfType() for any type before the one that matched.
27370
27860
  */
27371
- function PropTypeError(message) {
27861
+ function PropTypeError(message, data) {
27372
27862
  this.message = message;
27863
+ this.data = data && typeof data === 'object' ? data : {};
27373
27864
  this.stack = '';
27374
27865
  }
27375
27866
  // Make `instanceof Error` still work for returned errors.
@@ -27425,7 +27916,9 @@ function requireFactoryWithTypeCheckers() {
27425
27916
  // check, but we can offer a more precise error message here rather than
27426
27917
  // 'of type `object`'.
27427
27918
  var preciseType = getPreciseType(propValue);
27428
- return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));
27919
+ return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'), {
27920
+ expectedType: expectedType
27921
+ });
27429
27922
  }
27430
27923
  return null;
27431
27924
  }
@@ -27465,6 +27958,17 @@ function requireFactoryWithTypeCheckers() {
27465
27958
  }
27466
27959
  return createChainableTypeChecker(validate);
27467
27960
  }
27961
+ function createElementTypeTypeChecker() {
27962
+ function validate(props, propName, componentName, location, propFullName) {
27963
+ var propValue = props[propName];
27964
+ if (!ReactIs.isValidElementType(propValue)) {
27965
+ var propType = getPropType(propValue);
27966
+ return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));
27967
+ }
27968
+ return null;
27969
+ }
27970
+ return createChainableTypeChecker(validate);
27971
+ }
27468
27972
  function createInstanceTypeChecker(expectedClass) {
27469
27973
  function validate(props, propName, componentName, location, propFullName) {
27470
27974
  if (!(props[propName] instanceof expectedClass)) {
@@ -27478,7 +27982,13 @@ function requireFactoryWithTypeCheckers() {
27478
27982
  }
27479
27983
  function createEnumTypeChecker(expectedValues) {
27480
27984
  if (!Array.isArray(expectedValues)) {
27481
- process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOf, expected an instance of array.') : void 0;
27985
+ if (process.env.NODE_ENV !== 'production') {
27986
+ if (arguments.length > 1) {
27987
+ 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]).');
27988
+ } else {
27989
+ printWarning('Invalid argument supplied to oneOf, expected an array.');
27990
+ }
27991
+ }
27482
27992
  return emptyFunctionThatReturnsNull;
27483
27993
  }
27484
27994
  function validate(props, propName, componentName, location, propFullName) {
@@ -27488,8 +27998,14 @@ function requireFactoryWithTypeCheckers() {
27488
27998
  return null;
27489
27999
  }
27490
28000
  }
27491
- var valuesString = JSON.stringify(expectedValues);
27492
- return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
28001
+ var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {
28002
+ var type = getPreciseType(value);
28003
+ if (type === 'symbol') {
28004
+ return String(value);
28005
+ }
28006
+ return value;
28007
+ });
28008
+ return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
27493
28009
  }
27494
28010
  return createChainableTypeChecker(validate);
27495
28011
  }
@@ -27504,7 +28020,7 @@ function requireFactoryWithTypeCheckers() {
27504
28020
  return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));
27505
28021
  }
27506
28022
  for (var key in propValue) {
27507
- if (propValue.hasOwnProperty(key)) {
28023
+ if (has(propValue, key)) {
27508
28024
  var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
27509
28025
  if (error instanceof Error) {
27510
28026
  return error;
@@ -27528,13 +28044,19 @@ function requireFactoryWithTypeCheckers() {
27528
28044
  }
27529
28045
  }
27530
28046
  function validate(props, propName, componentName, location, propFullName) {
28047
+ var expectedTypes = [];
27531
28048
  for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
27532
28049
  var checker = arrayOfTypeCheckers[i];
27533
- if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {
28050
+ var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);
28051
+ if (checkerResult == null) {
27534
28052
  return null;
27535
28053
  }
28054
+ if (checkerResult.data && has(checkerResult.data, 'expectedType')) {
28055
+ expectedTypes.push(checkerResult.data.expectedType);
28056
+ }
27536
28057
  }
27537
- return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));
28058
+ var expectedTypesMessage = expectedTypes.length > 0 ? ', expected one of type [' + expectedTypes.join(', ') + ']' : '';
28059
+ return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));
27538
28060
  }
27539
28061
  return createChainableTypeChecker(validate);
27540
28062
  }
@@ -27547,6 +28069,9 @@ function requireFactoryWithTypeCheckers() {
27547
28069
  }
27548
28070
  return createChainableTypeChecker(validate);
27549
28071
  }
28072
+ function invalidValidatorError(componentName, location, propFullName, key, type) {
28073
+ 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 + '`.');
28074
+ }
27550
28075
  function createShapeTypeChecker(shapeTypes) {
27551
28076
  function validate(props, propName, componentName, location, propFullName) {
27552
28077
  var propValue = props[propName];
@@ -27556,8 +28081,8 @@ function requireFactoryWithTypeCheckers() {
27556
28081
  }
27557
28082
  for (var key in shapeTypes) {
27558
28083
  var checker = shapeTypes[key];
27559
- if (!checker) {
27560
- continue;
28084
+ if (typeof checker !== 'function') {
28085
+ return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
27561
28086
  }
27562
28087
  var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
27563
28088
  if (error) {
@@ -27575,11 +28100,13 @@ function requireFactoryWithTypeCheckers() {
27575
28100
  if (propType !== 'object') {
27576
28101
  return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
27577
28102
  }
27578
- // We need to check all keys in case some are required but missing from
27579
- // props.
28103
+ // We need to check all keys in case some are required but missing from props.
27580
28104
  var allKeys = assign({}, props[propName], shapeTypes);
27581
28105
  for (var key in allKeys) {
27582
28106
  var checker = shapeTypes[key];
28107
+ if (has(shapeTypes, key) && typeof checker !== 'function') {
28108
+ return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
28109
+ }
27583
28110
  if (!checker) {
27584
28111
  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, ' '));
27585
28112
  }
@@ -27642,6 +28169,11 @@ function requireFactoryWithTypeCheckers() {
27642
28169
  return true;
27643
28170
  }
27644
28171
 
28172
+ // falsy value can't be a Symbol
28173
+ if (!propValue) {
28174
+ return false;
28175
+ }
28176
+
27645
28177
  // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'
27646
28178
  if (propValue['@@toStringTag'] === 'Symbol') {
27647
28179
  return true;
@@ -27714,6 +28246,7 @@ function requireFactoryWithTypeCheckers() {
27714
28246
  return propValue.constructor.name;
27715
28247
  }
27716
28248
  ReactPropTypes.checkPropTypes = checkPropTypes;
28249
+ ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;
27717
28250
  ReactPropTypes.PropTypes = ReactPropTypes;
27718
28251
  return ReactPropTypes;
27719
28252
  };
@@ -27731,8 +28264,10 @@ var hasRequiredFactoryWithThrowingShims;
27731
28264
  function requireFactoryWithThrowingShims() {
27732
28265
  if (hasRequiredFactoryWithThrowingShims) return factoryWithThrowingShims;
27733
28266
  hasRequiredFactoryWithThrowingShims = 1;
27734
- var ReactPropTypesSecret = requireReactPropTypesSecret();
28267
+ var ReactPropTypesSecret = /*@__PURE__*/requireReactPropTypesSecret();
27735
28268
  function emptyFunction() {}
28269
+ function emptyFunctionWithReset() {}
28270
+ emptyFunctionWithReset.resetWarningCache = emptyFunction;
27736
28271
  factoryWithThrowingShims = function () {
27737
28272
  function shim(props, propName, componentName, location, propFullName, secret) {
27738
28273
  if (secret === ReactPropTypesSecret) {
@@ -27751,6 +28286,7 @@ function requireFactoryWithThrowingShims() {
27751
28286
  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.
27752
28287
  var ReactPropTypes = {
27753
28288
  array: shim,
28289
+ bigint: shim,
27754
28290
  bool: shim,
27755
28291
  func: shim,
27756
28292
  number: shim,
@@ -27760,15 +28296,17 @@ function requireFactoryWithThrowingShims() {
27760
28296
  any: shim,
27761
28297
  arrayOf: getShim,
27762
28298
  element: shim,
28299
+ elementType: shim,
27763
28300
  instanceOf: getShim,
27764
28301
  node: shim,
27765
28302
  objectOf: getShim,
27766
28303
  oneOf: getShim,
27767
28304
  oneOfType: getShim,
27768
28305
  shape: getShim,
27769
- exact: getShim
28306
+ exact: getShim,
28307
+ checkPropTypes: emptyFunctionWithReset,
28308
+ resetWarningCache: emptyFunction
27770
28309
  };
27771
- ReactPropTypes.checkPropTypes = emptyFunction;
27772
28310
  ReactPropTypes.PropTypes = ReactPropTypes;
27773
28311
  return ReactPropTypes;
27774
28312
  };
@@ -27786,24 +28324,21 @@ function requirePropTypes() {
27786
28324
  if (hasRequiredPropTypes) return propTypes.exports;
27787
28325
  hasRequiredPropTypes = 1;
27788
28326
  if (process.env.NODE_ENV !== 'production') {
27789
- var REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol.for && Symbol.for('react.element') || 0xeac7;
27790
- var isValidElement = function (object) {
27791
- return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
27792
- };
28327
+ var ReactIs = requireReactIs();
27793
28328
 
27794
28329
  // By explicitly using `prop-types` you are opting into new development behavior.
27795
28330
  // http://fb.me/prop-types-in-prod
27796
28331
  var throwOnDirectAccess = true;
27797
- propTypes.exports = requireFactoryWithTypeCheckers()(isValidElement, throwOnDirectAccess);
28332
+ propTypes.exports = /*@__PURE__*/requireFactoryWithTypeCheckers()(ReactIs.isElement, throwOnDirectAccess);
27798
28333
  } else {
27799
28334
  // By explicitly using `prop-types` you are opting into new production behavior.
27800
28335
  // http://fb.me/prop-types-in-prod
27801
- propTypes.exports = requireFactoryWithThrowingShims()();
28336
+ propTypes.exports = /*@__PURE__*/requireFactoryWithThrowingShims()();
27802
28337
  }
27803
28338
  return propTypes.exports;
27804
28339
  }
27805
28340
 
27806
- var propTypesExports = requirePropTypes();
28341
+ var propTypesExports = /*@__PURE__*/ requirePropTypes();
27807
28342
  var PropTypes = /*@__PURE__*/getDefaultExportFromCjs(propTypesExports);
27808
28343
 
27809
28344
  var _excluded = ["sitekey", "onChange", "theme", "type", "tabindex", "onExpired", "onErrored", "size", "stoken", "grecaptcha", "badge", "hl", "isolated"];
@@ -28024,316 +28559,6 @@ ReCAPTCHA.defaultProps = {
28024
28559
  badge: "bottomright"
28025
28560
  };
28026
28561
 
28027
- var reactIs = {exports: {}};
28028
-
28029
- var reactIs_production_min = {};
28030
-
28031
- /** @license React v16.13.1
28032
- * react-is.production.min.js
28033
- *
28034
- * Copyright (c) Facebook, Inc. and its affiliates.
28035
- *
28036
- * This source code is licensed under the MIT license found in the
28037
- * LICENSE file in the root directory of this source tree.
28038
- */
28039
- var hasRequiredReactIs_production_min;
28040
- function requireReactIs_production_min() {
28041
- if (hasRequiredReactIs_production_min) return reactIs_production_min;
28042
- hasRequiredReactIs_production_min = 1;
28043
- var b = "function" === typeof Symbol && Symbol.for,
28044
- c = b ? Symbol.for("react.element") : 60103,
28045
- d = b ? Symbol.for("react.portal") : 60106,
28046
- e = b ? Symbol.for("react.fragment") : 60107,
28047
- f = b ? Symbol.for("react.strict_mode") : 60108,
28048
- g = b ? Symbol.for("react.profiler") : 60114,
28049
- h = b ? Symbol.for("react.provider") : 60109,
28050
- k = b ? Symbol.for("react.context") : 60110,
28051
- l = b ? Symbol.for("react.async_mode") : 60111,
28052
- m = b ? Symbol.for("react.concurrent_mode") : 60111,
28053
- n = b ? Symbol.for("react.forward_ref") : 60112,
28054
- p = b ? Symbol.for("react.suspense") : 60113,
28055
- q = b ? Symbol.for("react.suspense_list") : 60120,
28056
- r = b ? Symbol.for("react.memo") : 60115,
28057
- t = b ? Symbol.for("react.lazy") : 60116,
28058
- v = b ? Symbol.for("react.block") : 60121,
28059
- w = b ? Symbol.for("react.fundamental") : 60117,
28060
- x = b ? Symbol.for("react.responder") : 60118,
28061
- y = b ? Symbol.for("react.scope") : 60119;
28062
- function z(a) {
28063
- if ("object" === typeof a && null !== a) {
28064
- var u = a.$$typeof;
28065
- switch (u) {
28066
- case c:
28067
- switch (a = a.type, a) {
28068
- case l:
28069
- case m:
28070
- case e:
28071
- case g:
28072
- case f:
28073
- case p:
28074
- return a;
28075
- default:
28076
- switch (a = a && a.$$typeof, a) {
28077
- case k:
28078
- case n:
28079
- case t:
28080
- case r:
28081
- case h:
28082
- return a;
28083
- default:
28084
- return u;
28085
- }
28086
- }
28087
- case d:
28088
- return u;
28089
- }
28090
- }
28091
- }
28092
- function A(a) {
28093
- return z(a) === m;
28094
- }
28095
- reactIs_production_min.AsyncMode = l;
28096
- reactIs_production_min.ConcurrentMode = m;
28097
- reactIs_production_min.ContextConsumer = k;
28098
- reactIs_production_min.ContextProvider = h;
28099
- reactIs_production_min.Element = c;
28100
- reactIs_production_min.ForwardRef = n;
28101
- reactIs_production_min.Fragment = e;
28102
- reactIs_production_min.Lazy = t;
28103
- reactIs_production_min.Memo = r;
28104
- reactIs_production_min.Portal = d;
28105
- reactIs_production_min.Profiler = g;
28106
- reactIs_production_min.StrictMode = f;
28107
- reactIs_production_min.Suspense = p;
28108
- reactIs_production_min.isAsyncMode = function (a) {
28109
- return A(a) || z(a) === l;
28110
- };
28111
- reactIs_production_min.isConcurrentMode = A;
28112
- reactIs_production_min.isContextConsumer = function (a) {
28113
- return z(a) === k;
28114
- };
28115
- reactIs_production_min.isContextProvider = function (a) {
28116
- return z(a) === h;
28117
- };
28118
- reactIs_production_min.isElement = function (a) {
28119
- return "object" === typeof a && null !== a && a.$$typeof === c;
28120
- };
28121
- reactIs_production_min.isForwardRef = function (a) {
28122
- return z(a) === n;
28123
- };
28124
- reactIs_production_min.isFragment = function (a) {
28125
- return z(a) === e;
28126
- };
28127
- reactIs_production_min.isLazy = function (a) {
28128
- return z(a) === t;
28129
- };
28130
- reactIs_production_min.isMemo = function (a) {
28131
- return z(a) === r;
28132
- };
28133
- reactIs_production_min.isPortal = function (a) {
28134
- return z(a) === d;
28135
- };
28136
- reactIs_production_min.isProfiler = function (a) {
28137
- return z(a) === g;
28138
- };
28139
- reactIs_production_min.isStrictMode = function (a) {
28140
- return z(a) === f;
28141
- };
28142
- reactIs_production_min.isSuspense = function (a) {
28143
- return z(a) === p;
28144
- };
28145
- reactIs_production_min.isValidElementType = function (a) {
28146
- 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);
28147
- };
28148
- reactIs_production_min.typeOf = z;
28149
- return reactIs_production_min;
28150
- }
28151
-
28152
- var reactIs_development = {};
28153
-
28154
- /** @license React v16.13.1
28155
- * react-is.development.js
28156
- *
28157
- * Copyright (c) Facebook, Inc. and its affiliates.
28158
- *
28159
- * This source code is licensed under the MIT license found in the
28160
- * LICENSE file in the root directory of this source tree.
28161
- */
28162
- var hasRequiredReactIs_development;
28163
- function requireReactIs_development() {
28164
- if (hasRequiredReactIs_development) return reactIs_development;
28165
- hasRequiredReactIs_development = 1;
28166
- if (process.env.NODE_ENV !== "production") {
28167
- (function () {
28168
-
28169
- // The Symbol used to tag the ReactElement-like types. If there is no native Symbol
28170
- // nor polyfill, then a plain number is used for performance.
28171
- var hasSymbol = typeof Symbol === 'function' && Symbol.for;
28172
- var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
28173
- var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
28174
- var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
28175
- var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
28176
- var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
28177
- var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
28178
- var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary
28179
- // (unstable) APIs that have been removed. Can we remove the symbols?
28180
-
28181
- var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;
28182
- var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
28183
- var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
28184
- var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
28185
- var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;
28186
- var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
28187
- var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;
28188
- var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;
28189
- var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;
28190
- var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;
28191
- var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;
28192
- function isValidElementType(type) {
28193
- return typeof type === 'string' || typeof type === 'function' ||
28194
- // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
28195
- 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);
28196
- }
28197
- function typeOf(object) {
28198
- if (typeof object === 'object' && object !== null) {
28199
- var $$typeof = object.$$typeof;
28200
- switch ($$typeof) {
28201
- case REACT_ELEMENT_TYPE:
28202
- var type = object.type;
28203
- switch (type) {
28204
- case REACT_ASYNC_MODE_TYPE:
28205
- case REACT_CONCURRENT_MODE_TYPE:
28206
- case REACT_FRAGMENT_TYPE:
28207
- case REACT_PROFILER_TYPE:
28208
- case REACT_STRICT_MODE_TYPE:
28209
- case REACT_SUSPENSE_TYPE:
28210
- return type;
28211
- default:
28212
- var $$typeofType = type && type.$$typeof;
28213
- switch ($$typeofType) {
28214
- case REACT_CONTEXT_TYPE:
28215
- case REACT_FORWARD_REF_TYPE:
28216
- case REACT_LAZY_TYPE:
28217
- case REACT_MEMO_TYPE:
28218
- case REACT_PROVIDER_TYPE:
28219
- return $$typeofType;
28220
- default:
28221
- return $$typeof;
28222
- }
28223
- }
28224
- case REACT_PORTAL_TYPE:
28225
- return $$typeof;
28226
- }
28227
- }
28228
- return undefined;
28229
- } // AsyncMode is deprecated along with isAsyncMode
28230
-
28231
- var AsyncMode = REACT_ASYNC_MODE_TYPE;
28232
- var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
28233
- var ContextConsumer = REACT_CONTEXT_TYPE;
28234
- var ContextProvider = REACT_PROVIDER_TYPE;
28235
- var Element = REACT_ELEMENT_TYPE;
28236
- var ForwardRef = REACT_FORWARD_REF_TYPE;
28237
- var Fragment = REACT_FRAGMENT_TYPE;
28238
- var Lazy = REACT_LAZY_TYPE;
28239
- var Memo = REACT_MEMO_TYPE;
28240
- var Portal = REACT_PORTAL_TYPE;
28241
- var Profiler = REACT_PROFILER_TYPE;
28242
- var StrictMode = REACT_STRICT_MODE_TYPE;
28243
- var Suspense = REACT_SUSPENSE_TYPE;
28244
- var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated
28245
-
28246
- function isAsyncMode(object) {
28247
- {
28248
- if (!hasWarnedAboutDeprecatedIsAsyncMode) {
28249
- hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint
28250
-
28251
- 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.');
28252
- }
28253
- }
28254
- return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
28255
- }
28256
- function isConcurrentMode(object) {
28257
- return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
28258
- }
28259
- function isContextConsumer(object) {
28260
- return typeOf(object) === REACT_CONTEXT_TYPE;
28261
- }
28262
- function isContextProvider(object) {
28263
- return typeOf(object) === REACT_PROVIDER_TYPE;
28264
- }
28265
- function isElement(object) {
28266
- return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
28267
- }
28268
- function isForwardRef(object) {
28269
- return typeOf(object) === REACT_FORWARD_REF_TYPE;
28270
- }
28271
- function isFragment(object) {
28272
- return typeOf(object) === REACT_FRAGMENT_TYPE;
28273
- }
28274
- function isLazy(object) {
28275
- return typeOf(object) === REACT_LAZY_TYPE;
28276
- }
28277
- function isMemo(object) {
28278
- return typeOf(object) === REACT_MEMO_TYPE;
28279
- }
28280
- function isPortal(object) {
28281
- return typeOf(object) === REACT_PORTAL_TYPE;
28282
- }
28283
- function isProfiler(object) {
28284
- return typeOf(object) === REACT_PROFILER_TYPE;
28285
- }
28286
- function isStrictMode(object) {
28287
- return typeOf(object) === REACT_STRICT_MODE_TYPE;
28288
- }
28289
- function isSuspense(object) {
28290
- return typeOf(object) === REACT_SUSPENSE_TYPE;
28291
- }
28292
- reactIs_development.AsyncMode = AsyncMode;
28293
- reactIs_development.ConcurrentMode = ConcurrentMode;
28294
- reactIs_development.ContextConsumer = ContextConsumer;
28295
- reactIs_development.ContextProvider = ContextProvider;
28296
- reactIs_development.Element = Element;
28297
- reactIs_development.ForwardRef = ForwardRef;
28298
- reactIs_development.Fragment = Fragment;
28299
- reactIs_development.Lazy = Lazy;
28300
- reactIs_development.Memo = Memo;
28301
- reactIs_development.Portal = Portal;
28302
- reactIs_development.Profiler = Profiler;
28303
- reactIs_development.StrictMode = StrictMode;
28304
- reactIs_development.Suspense = Suspense;
28305
- reactIs_development.isAsyncMode = isAsyncMode;
28306
- reactIs_development.isConcurrentMode = isConcurrentMode;
28307
- reactIs_development.isContextConsumer = isContextConsumer;
28308
- reactIs_development.isContextProvider = isContextProvider;
28309
- reactIs_development.isElement = isElement;
28310
- reactIs_development.isForwardRef = isForwardRef;
28311
- reactIs_development.isFragment = isFragment;
28312
- reactIs_development.isLazy = isLazy;
28313
- reactIs_development.isMemo = isMemo;
28314
- reactIs_development.isPortal = isPortal;
28315
- reactIs_development.isProfiler = isProfiler;
28316
- reactIs_development.isStrictMode = isStrictMode;
28317
- reactIs_development.isSuspense = isSuspense;
28318
- reactIs_development.isValidElementType = isValidElementType;
28319
- reactIs_development.typeOf = typeOf;
28320
- })();
28321
- }
28322
- return reactIs_development;
28323
- }
28324
-
28325
- var hasRequiredReactIs;
28326
- function requireReactIs() {
28327
- if (hasRequiredReactIs) return reactIs.exports;
28328
- hasRequiredReactIs = 1;
28329
- if (process.env.NODE_ENV === 'production') {
28330
- reactIs.exports = requireReactIs_production_min();
28331
- } else {
28332
- reactIs.exports = requireReactIs_development();
28333
- }
28334
- return reactIs.exports;
28335
- }
28336
-
28337
28562
  var hoistNonReactStatics_cjs;
28338
28563
  var hasRequiredHoistNonReactStatics_cjs;
28339
28564
  function requireHoistNonReactStatics_cjs() {
@@ -28682,6 +28907,8 @@ var RecaptchaWrapper = makeAsyncScript(getURL, {
28682
28907
  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}";
28683
28908
  styleInject(css_248z$B);
28684
28909
 
28910
+ // Extend the props to include React.RefAttributes
28911
+ const FixedReCAPTCHA = RecaptchaWrapper;
28685
28912
  const Recaptcha = /*#__PURE__*/forwardRef(({
28686
28913
  onVerify,
28687
28914
  className = '',
@@ -28701,7 +28928,7 @@ const Recaptcha = /*#__PURE__*/forwardRef(({
28701
28928
  const error = externalError || internalError;
28702
28929
  return jsxs("div", {
28703
28930
  className: classNames('ff-recaptcha-wrapper', className),
28704
- children: [jsx(RecaptchaWrapper, {
28931
+ children: [jsx(FixedReCAPTCHA, {
28705
28932
  ref: ref,
28706
28933
  sitekey: sitekey,
28707
28934
  onChange: handleChange,
@@ -33198,7 +33425,7 @@ var scheduler = {exports: {}};
33198
33425
 
33199
33426
  var scheduler_production_min = {};
33200
33427
 
33201
- /** @license React v0.19.0
33428
+ /** @license React v0.19.1
33202
33429
  * scheduler.production.min.js
33203
33430
  *
33204
33431
  * Copyright (c) Facebook, Inc. and its affiliates.
@@ -33500,7 +33727,7 @@ function requireScheduler_production_min() {
33500
33727
 
33501
33728
  var scheduler_development = {};
33502
33729
 
33503
- /** @license React v0.19.0
33730
+ /** @license React v0.19.1
33504
33731
  * scheduler.development.js
33505
33732
  *
33506
33733
  * Copyright (c) Facebook, Inc. and its affiliates.