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.js CHANGED
@@ -6492,13 +6492,14 @@ var isWeb = typeof window !== 'undefined' &&
6492
6492
  function cloneObject(data) {
6493
6493
  let copy;
6494
6494
  const isArray = Array.isArray(data);
6495
+ const isFileListInstance = typeof FileList !== 'undefined' ? data instanceof FileList : false;
6495
6496
  if (data instanceof Date) {
6496
6497
  copy = new Date(data);
6497
6498
  }
6498
6499
  else if (data instanceof Set) {
6499
6500
  copy = new Set(data);
6500
6501
  }
6501
- else if (!(isWeb && (data instanceof Blob || data instanceof FileList)) &&
6502
+ else if (!(isWeb && (data instanceof Blob || isFileListInstance)) &&
6502
6503
  (isArray || isObject$2(data))) {
6503
6504
  copy = isArray ? [] : {};
6504
6505
  if (!isArray && !isPlainObject(data)) {
@@ -6557,7 +6558,7 @@ var set$1 = (object, path, value) => {
6557
6558
  ? []
6558
6559
  : {};
6559
6560
  }
6560
- if (key === '__proto__') {
6561
+ if (key === '__proto__' || key === 'constructor' || key === 'prototype') {
6561
6562
  return;
6562
6563
  }
6563
6564
  object[key] = newValue;
@@ -6776,7 +6777,7 @@ function useFormState(props) {
6776
6777
  _mounted.current = false;
6777
6778
  };
6778
6779
  }, [control]);
6779
- return getProxyFormState(formState, control, _localProxyFormState.current, false);
6780
+ return React.useMemo(() => getProxyFormState(formState, control, _localProxyFormState.current, false), [formState, control]);
6780
6781
  }
6781
6782
 
6782
6783
  var isString = (value) => typeof value === 'string';
@@ -6872,6 +6873,67 @@ function useController(props) {
6872
6873
  value,
6873
6874
  ...(isBoolean(props.disabled) ? { disabled: props.disabled } : {}),
6874
6875
  }));
6876
+ const fieldState = React.useMemo(() => Object.defineProperties({}, {
6877
+ invalid: {
6878
+ enumerable: true,
6879
+ get: () => !!get$1(formState.errors, name),
6880
+ },
6881
+ isDirty: {
6882
+ enumerable: true,
6883
+ get: () => !!get$1(formState.dirtyFields, name),
6884
+ },
6885
+ isTouched: {
6886
+ enumerable: true,
6887
+ get: () => !!get$1(formState.touchedFields, name),
6888
+ },
6889
+ isValidating: {
6890
+ enumerable: true,
6891
+ get: () => !!get$1(formState.validatingFields, name),
6892
+ },
6893
+ error: {
6894
+ enumerable: true,
6895
+ get: () => get$1(formState.errors, name),
6896
+ },
6897
+ }), [formState, name]);
6898
+ const field = React.useMemo(() => ({
6899
+ name,
6900
+ value,
6901
+ ...(isBoolean(disabled) || formState.disabled
6902
+ ? { disabled: formState.disabled || disabled }
6903
+ : {}),
6904
+ onChange: (event) => _registerProps.current.onChange({
6905
+ target: {
6906
+ value: getEventValue(event),
6907
+ name: name,
6908
+ },
6909
+ type: EVENTS.CHANGE,
6910
+ }),
6911
+ onBlur: () => _registerProps.current.onBlur({
6912
+ target: {
6913
+ value: get$1(control._formValues, name),
6914
+ name: name,
6915
+ },
6916
+ type: EVENTS.BLUR,
6917
+ }),
6918
+ ref: (elm) => {
6919
+ const field = get$1(control._fields, name);
6920
+ if (field && elm) {
6921
+ field._f.ref = {
6922
+ focus: () => elm.focus(),
6923
+ select: () => elm.select(),
6924
+ setCustomValidity: (message) => elm.setCustomValidity(message),
6925
+ reportValidity: () => elm.reportValidity(),
6926
+ };
6927
+ }
6928
+ },
6929
+ }), [
6930
+ name,
6931
+ control._formValues,
6932
+ disabled,
6933
+ formState.disabled,
6934
+ value,
6935
+ control._fields,
6936
+ ]);
6875
6937
  React.useEffect(() => {
6876
6938
  const _shouldUnregisterField = control._options.shouldUnregister || shouldUnregister;
6877
6939
  const updateMounted = (name, value) => {
@@ -6897,7 +6959,7 @@ function useController(props) {
6897
6959
  };
6898
6960
  }, [name, control, isArrayField, shouldUnregister]);
6899
6961
  React.useEffect(() => {
6900
- if (get$1(control._fields, name)) {
6962
+ if (isBoolean(disabled) && get$1(control._fields, name)) {
6901
6963
  control._updateDisabledField({
6902
6964
  disabled,
6903
6965
  fields: control._fields,
@@ -6906,63 +6968,11 @@ function useController(props) {
6906
6968
  });
6907
6969
  }
6908
6970
  }, [disabled, name, control]);
6909
- return {
6910
- field: {
6911
- name,
6912
- value,
6913
- ...(isBoolean(disabled) || formState.disabled
6914
- ? { disabled: formState.disabled || disabled }
6915
- : {}),
6916
- onChange: React.useCallback((event) => _registerProps.current.onChange({
6917
- target: {
6918
- value: getEventValue(event),
6919
- name: name,
6920
- },
6921
- type: EVENTS.CHANGE,
6922
- }), [name]),
6923
- onBlur: React.useCallback(() => _registerProps.current.onBlur({
6924
- target: {
6925
- value: get$1(control._formValues, name),
6926
- name: name,
6927
- },
6928
- type: EVENTS.BLUR,
6929
- }), [name, control]),
6930
- ref: React.useCallback((elm) => {
6931
- const field = get$1(control._fields, name);
6932
- if (field && elm) {
6933
- field._f.ref = {
6934
- focus: () => elm.focus(),
6935
- select: () => elm.select(),
6936
- setCustomValidity: (message) => elm.setCustomValidity(message),
6937
- reportValidity: () => elm.reportValidity(),
6938
- };
6939
- }
6940
- }, [control._fields, name]),
6941
- },
6971
+ return React.useMemo(() => ({
6972
+ field,
6942
6973
  formState,
6943
- fieldState: Object.defineProperties({}, {
6944
- invalid: {
6945
- enumerable: true,
6946
- get: () => !!get$1(formState.errors, name),
6947
- },
6948
- isDirty: {
6949
- enumerable: true,
6950
- get: () => !!get$1(formState.dirtyFields, name),
6951
- },
6952
- isTouched: {
6953
- enumerable: true,
6954
- get: () => !!get$1(formState.touchedFields, name),
6955
- },
6956
- isValidating: {
6957
- enumerable: true,
6958
- get: () => !!get$1(formState.validatingFields, name),
6959
- },
6960
- error: {
6961
- enumerable: true,
6962
- get: () => get$1(formState.errors, name),
6963
- },
6964
- }),
6965
- };
6974
+ fieldState,
6975
+ }), [field, formState, fieldState]);
6966
6976
  }
6967
6977
 
6968
6978
  /**
@@ -7012,7 +7022,7 @@ const Controller = (props) => props.render(useController(props));
7012
7022
  const flatten = (obj) => {
7013
7023
  const output = {};
7014
7024
  for (const key of Object.keys(obj)) {
7015
- if (isObjectType(obj[key])) {
7025
+ if (isObjectType(obj[key]) && obj[key] !== null) {
7016
7026
  const nested = flatten(obj[key]);
7017
7027
  for (const nestedKey of Object.keys(nested)) {
7018
7028
  output[`${key}.${nestedKey}`] = nested[nestedKey];
@@ -7081,7 +7091,7 @@ function Form(props) {
7081
7091
  headers && headers['Content-Type'],
7082
7092
  encType,
7083
7093
  ].some((value) => value && value.includes('json'));
7084
- const response = await fetch(action, {
7094
+ const response = await fetch(String(action), {
7085
7095
  method,
7086
7096
  headers: {
7087
7097
  ...headers,
@@ -7579,7 +7589,7 @@ var updateAt = (fieldValues, index, value) => {
7579
7589
  */
7580
7590
  function useFieldArray(props) {
7581
7591
  const methods = useFormContext();
7582
- const { control = methods.control, name, keyName = 'id', shouldUnregister, } = props;
7592
+ const { control = methods.control, name, keyName = 'id', shouldUnregister, rules, } = props;
7583
7593
  const [fields, setFields] = React.useState(control._getFieldArray(name));
7584
7594
  const ids = React.useRef(control._getFieldArray(name).map(generateId));
7585
7595
  const _fieldIds = React.useRef(fields);
@@ -7588,8 +7598,8 @@ function useFieldArray(props) {
7588
7598
  _name.current = name;
7589
7599
  _fieldIds.current = fields;
7590
7600
  control._names.array.add(name);
7591
- props.rules &&
7592
- control.register(name, props.rules);
7601
+ rules &&
7602
+ control.register(name, rules);
7593
7603
  useSubscribe({
7594
7604
  next: ({ values, name: fieldArrayName, }) => {
7595
7605
  if (fieldArrayName === _name.current || !fieldArrayName) {
@@ -7633,6 +7643,8 @@ function useFieldArray(props) {
7633
7643
  ids.current = removeArrayAt(ids.current, index);
7634
7644
  updateValues(updatedFieldArrayValues);
7635
7645
  setFields(updatedFieldArrayValues);
7646
+ !Array.isArray(get$1(control._fields, name)) &&
7647
+ set$1(control._fields, name, undefined);
7636
7648
  control._updateFieldArray(name, updatedFieldArrayValues, removeArrayAt, {
7637
7649
  argA: index,
7638
7650
  });
@@ -7947,7 +7959,8 @@ var getRuleValue = (rule) => isUndefined(rule)
7947
7959
  : rule;
7948
7960
 
7949
7961
  const ASYNC_FUNCTION = 'AsyncFunction';
7950
- var hasPromiseValidation = (fieldReference) => (!fieldReference || !fieldReference.validate) &&
7962
+ var hasPromiseValidation = (fieldReference) => !!fieldReference &&
7963
+ !!fieldReference.validate &&
7951
7964
  !!((isFunction$1(fieldReference.validate) &&
7952
7965
  fieldReference.validate.constructor.name === ASYNC_FUNCTION) ||
7953
7966
  (isObject$2(fieldReference.validate) &&
@@ -8209,9 +8222,9 @@ function createFormControl(props = {}) {
8209
8222
  const shouldUpdateValid = _proxyFormState.isValid &&
8210
8223
  isBoolean(isValid) &&
8211
8224
  _formState.isValid !== isValid;
8212
- if (props.delayError && error) {
8225
+ if (_options.delayError && error) {
8213
8226
  delayErrorCallback = debounce(() => updateErrors(name, error));
8214
- delayErrorCallback(props.delayError);
8227
+ delayErrorCallback(_options.delayError);
8215
8228
  }
8216
8229
  else {
8217
8230
  clearTimeout(timer);
@@ -8316,7 +8329,7 @@ function createFormControl(props = {}) {
8316
8329
  ? { [names]: defaultValue }
8317
8330
  : defaultValue),
8318
8331
  }, isGlobal, defaultValue);
8319
- const _getFieldArray = (name) => compact(get$1(_state.mount ? _formValues : _defaultValues, name, props.shouldUnregister ? get$1(_defaultValues, name, []) : []));
8332
+ const _getFieldArray = (name) => compact(get$1(_state.mount ? _formValues : _defaultValues, name, _options.shouldUnregister ? get$1(_defaultValues, name, []) : []));
8320
8333
  const setFieldValue = (name, value, options = {}) => {
8321
8334
  const field = get$1(_fields, name);
8322
8335
  let fieldValue = value;
@@ -8449,7 +8462,7 @@ function createFormControl(props = {}) {
8449
8462
  });
8450
8463
  if (shouldSkipValidation) {
8451
8464
  if (_proxyFormState.isValid) {
8452
- if (props.mode === 'onBlur') {
8465
+ if (_options.mode === 'onBlur') {
8453
8466
  if (isBlurEvent) {
8454
8467
  _updateValid();
8455
8468
  }
@@ -8614,7 +8627,9 @@ function createFormControl(props = {}) {
8614
8627
  : isUndefined(value)
8615
8628
  ? getFieldValue(field ? field._f : get$1(fields, name)._f)
8616
8629
  : value;
8617
- set$1(_formValues, name, inputValue);
8630
+ if (disabled || (!disabled && !isUndefined(inputValue))) {
8631
+ set$1(_formValues, name, inputValue);
8632
+ }
8618
8633
  updateTouchAndDirty(name, inputValue, false, false, true);
8619
8634
  }
8620
8635
  };
@@ -8843,7 +8858,7 @@ function createFormControl(props = {}) {
8843
8858
  }
8844
8859
  _fields = {};
8845
8860
  }
8846
- _formValues = props.shouldUnregister
8861
+ _formValues = _options.shouldUnregister
8847
8862
  ? keepStateOptions.keepDefaultValues
8848
8863
  ? cloneObject(_defaultValues)
8849
8864
  : {}
@@ -8867,7 +8882,7 @@ function createFormControl(props = {}) {
8867
8882
  !_proxyFormState.isValid ||
8868
8883
  !!keepStateOptions.keepIsValid ||
8869
8884
  !!keepStateOptions.keepDirtyValues;
8870
- _state.watch = !!props.shouldUnregister;
8885
+ _state.watch = !!_options.shouldUnregister;
8871
8886
  _subjects.state.next({
8872
8887
  submitCount: keepStateOptions.keepSubmitCount
8873
8888
  ? _formState.submitCount
@@ -9038,8 +9053,8 @@ function createFormControl(props = {}) {
9038
9053
  * ```
9039
9054
  */
9040
9055
  function useForm(props = {}) {
9041
- const _formControl = React.useRef();
9042
- const _values = React.useRef();
9056
+ const _formControl = React.useRef(undefined);
9057
+ const _values = React.useRef(undefined);
9043
9058
  const [formState, updateFormState] = React.useState({
9044
9059
  isDirty: false,
9045
9060
  isValidating: false,
@@ -12681,21 +12696,21 @@ const longFormatters$1 = {
12681
12696
  P: dateTimeLongFormatter$1
12682
12697
  };
12683
12698
 
12684
- const dayOfYearTokenRE = /^D+$/;
12685
- const weekYearTokenRE = /^Y+$/;
12686
- const throwTokens = ["D", "DD", "YY", "YYYY"];
12699
+ const dayOfYearTokenRE$1 = /^D+$/;
12700
+ const weekYearTokenRE$1 = /^Y+$/;
12701
+ const throwTokens$1 = ["D", "DD", "YY", "YYYY"];
12687
12702
  function isProtectedDayOfYearToken$1(token) {
12688
- return dayOfYearTokenRE.test(token);
12703
+ return dayOfYearTokenRE$1.test(token);
12689
12704
  }
12690
12705
  function isProtectedWeekYearToken$1(token) {
12691
- return weekYearTokenRE.test(token);
12706
+ return weekYearTokenRE$1.test(token);
12692
12707
  }
12693
- function warnOrThrowProtectedError(token, format, input) {
12694
- const _message = message(token, format, input);
12708
+ function warnOrThrowProtectedError$1(token, format, input) {
12709
+ const _message = message$1(token, format, input);
12695
12710
  console.warn(_message);
12696
- if (throwTokens.includes(token)) throw new RangeError(_message);
12711
+ if (throwTokens$1.includes(token)) throw new RangeError(_message);
12697
12712
  }
12698
- function message(token, format, input) {
12713
+ function message$1(token, format, input) {
12699
12714
  const subject = token[0] === "Y" ? "years" : "days of the month";
12700
12715
  return `Use \`${token.toLowerCase()}\` instead of \`${token}\` (in \`${format}\`) for formatting ${subject} to the input \`${input}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`;
12701
12716
  }
@@ -13067,7 +13082,7 @@ function format$2(date, formatStr, options) {
13067
13082
  if (!part.isToken) return part.value;
13068
13083
  const token = part.value;
13069
13084
  if (!options?.useAdditionalWeekYearTokens && isProtectedWeekYearToken$1(token) || !options?.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken$1(token)) {
13070
- warnOrThrowProtectedError(token, formatStr, String(date));
13085
+ warnOrThrowProtectedError$1(token, formatStr, String(date));
13071
13086
  }
13072
13087
  const formatter = formatters$2[token[0]];
13073
13088
  return formatter(originalDate, token, locale.localize, formatterOptions);
@@ -13293,6 +13308,53 @@ function setYear(date, year, options) {
13293
13308
  return date_;
13294
13309
  }
13295
13310
 
13311
+ const FIVE_WEEKS = 5;
13312
+ const FOUR_WEEKS = 4;
13313
+ /**
13314
+ * Return the number of weeks to display in the broadcast calendar.
13315
+ *
13316
+ * @since 9.4.0
13317
+ */
13318
+ function getBroadcastWeeksInMonth(month, dateLib) {
13319
+ // Get the first day of the month
13320
+ const firstDayOfMonth = dateLib.startOfMonth(month);
13321
+ // Get the day of the week for the first day of the month (1-7, where 1 is Monday)
13322
+ const firstDayOfWeek = firstDayOfMonth.getDay() > 0 ? firstDayOfMonth.getDay() : 7;
13323
+ const broadcastStartDate = dateLib.addDays(month, -firstDayOfWeek + 1);
13324
+ const lastDateOfLastWeek = dateLib.addDays(broadcastStartDate, FIVE_WEEKS * 7 - 1);
13325
+ const numberOfWeeks = month.getMonth() === lastDateOfLastWeek.getMonth() ? FIVE_WEEKS : FOUR_WEEKS;
13326
+ return numberOfWeeks;
13327
+ }
13328
+
13329
+ /**
13330
+ * Return the start date of the week in the broadcast calendar.
13331
+ *
13332
+ * @since 9.4.0
13333
+ */
13334
+ function startOfBroadcastWeek(date, dateLib) {
13335
+ const firstOfMonth = dateLib.startOfMonth(date);
13336
+ const dayOfWeek = firstOfMonth.getDay();
13337
+ if (dayOfWeek === 1) {
13338
+ return firstOfMonth;
13339
+ } else if (dayOfWeek === 0) {
13340
+ return dateLib.addDays(firstOfMonth, -1 * 6);
13341
+ } else {
13342
+ return dateLib.addDays(firstOfMonth, -1 * (dayOfWeek - 1));
13343
+ }
13344
+ }
13345
+
13346
+ /**
13347
+ * Return the end date of the week in the broadcast calendar.
13348
+ *
13349
+ * @since 9.4.0
13350
+ */
13351
+ function endOfBroadcastWeek(date, dateLib) {
13352
+ const startDate = startOfBroadcastWeek(date, dateLib);
13353
+ const numberOfWeeks = getBroadcastWeeksInMonth(date, dateLib);
13354
+ const endDate = dateLib.addDays(startDate, numberOfWeeks * 7 - 1);
13355
+ return endDate;
13356
+ }
13357
+
13296
13358
  /**
13297
13359
  * A wrapper class around [date-fns](http://date-fns.org) sharing the same
13298
13360
  * options. Methods of this class can be overridden using the
@@ -13373,6 +13435,15 @@ class DateLib {
13373
13435
  this.differenceInCalendarMonths = (dateLeft, dateRight) => {
13374
13436
  return this.overrides?.differenceInCalendarMonths ? this.overrides.differenceInCalendarMonths(dateLeft, dateRight) : differenceInCalendarMonths(dateLeft, dateRight);
13375
13437
  };
13438
+ /**
13439
+ * Returns the end of the broadcast week for the given date.
13440
+ *
13441
+ * @param date The original date.
13442
+ * @returns The end of the broadcast week.
13443
+ */
13444
+ this.endOfBroadcastWeek = date => {
13445
+ return this.overrides?.endOfBroadcastWeek ? this.overrides.endOfBroadcastWeek(date, this) : endOfBroadcastWeek(date, this);
13446
+ };
13376
13447
  /**
13377
13448
  * Returns the end of the ISO week for the given date.
13378
13449
  *
@@ -13534,6 +13605,15 @@ class DateLib {
13534
13605
  this.setYear = (date, year) => {
13535
13606
  return this.overrides?.setYear ? this.overrides.setYear(date, year) : setYear(date, year);
13536
13607
  };
13608
+ /**
13609
+ * Returns the start of the broadcast week for the given date.
13610
+ *
13611
+ * @param date The original date.
13612
+ * @returns The start of the broadcast week.
13613
+ */
13614
+ this.startOfBroadcastWeek = date => {
13615
+ return this.overrides?.startOfBroadcastWeek ? this.overrides.startOfBroadcastWeek(date, this) : startOfBroadcastWeek(date, this);
13616
+ };
13537
13617
  /**
13538
13618
  * Returns the start of the day for the given date.
13539
13619
  *
@@ -14016,7 +14096,9 @@ function Weekday(props) {
14016
14096
  * @see https://daypicker.dev/guides/custom-components
14017
14097
  */
14018
14098
  function Weekdays(props) {
14019
- return /*#__PURE__*/React.createElement("thead", null, /*#__PURE__*/React.createElement("tr", {
14099
+ return /*#__PURE__*/React.createElement("thead", {
14100
+ "aria-hidden": true
14101
+ }, /*#__PURE__*/React.createElement("tr", {
14020
14102
  ...props
14021
14103
  }));
14022
14104
  }
@@ -14119,7 +14201,8 @@ function getDataAttributes(props) {
14119
14201
  "data-mode": props.mode ?? undefined,
14120
14202
  "data-required": "required" in props ? props.required : undefined,
14121
14203
  "data-multiple-months": props.numberOfMonths && props.numberOfMonths > 1 || undefined,
14122
- "data-week-numbers": props.showWeekNumber || undefined
14204
+ "data-week-numbers": props.showWeekNumber || undefined,
14205
+ "data-broadcast-calendar": props.broadcastCalendar || undefined
14123
14206
  };
14124
14207
  Object.entries(props).forEach(([key, val]) => {
14125
14208
  if (key.startsWith("data-")) {
@@ -14185,7 +14268,7 @@ function formatDay(date, options, dateLib) {
14185
14268
  */
14186
14269
  function formatMonthDropdown(/** The month number to format. */
14187
14270
  monthNumber, /** The locale to use for formatting. */
14188
- locale = enUS$1) {
14271
+ locale) {
14189
14272
  return locale.localize?.month(monthNumber);
14190
14273
  }
14191
14274
 
@@ -14275,13 +14358,12 @@ function getMonthOptions(displayMonth, navStart, navEnd, formatters, dateLib) {
14275
14358
  if (!navEnd) return undefined;
14276
14359
  const {
14277
14360
  addMonths,
14278
- startOfMonth,
14279
- isBefore
14361
+ startOfMonth
14280
14362
  } = dateLib;
14281
14363
  const year = displayMonth.getFullYear();
14282
14364
  const months = [];
14283
14365
  let month = navStart;
14284
- while (months.length < 12 && isBefore(month, addMonths(navEnd, 1))) {
14366
+ while (months.length < 12) {
14285
14367
  months.push(month.getMonth());
14286
14368
  month = addMonths(month, 1);
14287
14369
  }
@@ -14289,7 +14371,7 @@ function getMonthOptions(displayMonth, navStart, navEnd, formatters, dateLib) {
14289
14371
  return a - b;
14290
14372
  });
14291
14373
  const options = sortedMonths.map(value => {
14292
- const label = formatters.formatMonthDropdown(value, dateLib.options.locale);
14374
+ const label = formatters.formatMonthDropdown(value, dateLib.options.locale ?? enUS$1);
14293
14375
  const month = dateLib.Date ? new dateLib.Date(year, value) : new Date(year, value);
14294
14376
  const disabled = navStart && month < startOfMonth(navStart) || navEnd && month > startOfMonth(navEnd) || false;
14295
14377
  return {
@@ -14664,7 +14746,8 @@ function tzName(tz, date) {
14664
14746
  */
14665
14747
  function getWeekdays(/** The date library. */
14666
14748
  dateLib, /** Use ISOWeek instead of locale/ */
14667
- ISOWeek, timeZone) {
14749
+ ISOWeek, timeZone, /** @since 9.4.0 */
14750
+ broadcastCalendar) {
14668
14751
  const date = timeZone ? TZDate.tz(timeZone) : dateLib.Date ? new dateLib.Date() : new Date();
14669
14752
  const start = ISOWeek ? dateLib.startOfISOWeek(date) : dateLib.startOfWeek(date);
14670
14753
  const days = [];
@@ -14676,20 +14759,18 @@ ISOWeek, timeZone) {
14676
14759
  }
14677
14760
 
14678
14761
  /** Return the years to show in the dropdown. */
14679
- function getYearOptions(displayMonth, calendarStart, calendarEnd, formatters, dateLib) {
14680
- if (!calendarStart) return undefined;
14681
- if (!calendarEnd) return undefined;
14762
+ function getYearOptions(navStart, navEnd, formatters, dateLib) {
14763
+ if (!navStart) return undefined;
14764
+ if (!navEnd) return undefined;
14682
14765
  const {
14683
- startOfMonth,
14684
14766
  startOfYear,
14685
14767
  endOfYear,
14686
14768
  addYears,
14687
14769
  isBefore,
14688
14770
  isSameYear
14689
14771
  } = dateLib;
14690
- const month = displayMonth.getMonth();
14691
- const firstNavYear = startOfYear(calendarStart);
14692
- const lastNavYear = endOfYear(calendarEnd);
14772
+ const firstNavYear = startOfYear(navStart);
14773
+ const lastNavYear = endOfYear(navEnd);
14693
14774
  const years = [];
14694
14775
  let year = firstNavYear;
14695
14776
  while (isBefore(year, lastNavYear) || isSameYear(year, lastNavYear)) {
@@ -14697,13 +14778,11 @@ function getYearOptions(displayMonth, calendarStart, calendarEnd, formatters, da
14697
14778
  year = addYears(year, 1);
14698
14779
  }
14699
14780
  return years.map(value => {
14700
- const year = dateLib.Date ? new dateLib.Date(value, month) : new Date(value, month);
14701
- const disabled = calendarStart && year < startOfMonth(calendarStart) || month && calendarEnd && year > startOfMonth(calendarEnd) || false;
14702
14781
  const label = formatters.formatYearDropdown(value);
14703
14782
  return {
14704
14783
  value,
14705
14784
  label,
14706
- disabled
14785
+ disabled: false
14707
14786
  };
14708
14787
  });
14709
14788
  }
@@ -14867,29 +14946,30 @@ var defaultLabels = /*#__PURE__*/Object.freeze({
14867
14946
  labelYearDropdown: labelYearDropdown
14868
14947
  });
14869
14948
 
14870
- /** The number of days in a month when having 6 weeks. */
14871
- const NrOfDaysWithFixedWeeks = 42;
14872
14949
  /** Return all the dates to display in the calendar. */
14873
14950
  function getDates(displayMonths, maxDate, props, dateLib) {
14874
14951
  const firstMonth = displayMonths[0];
14875
14952
  const lastMonth = displayMonths[displayMonths.length - 1];
14876
14953
  const {
14877
14954
  ISOWeek,
14878
- fixedWeeks
14955
+ fixedWeeks,
14956
+ broadcastCalendar
14879
14957
  } = props ?? {};
14880
14958
  const {
14881
- startOfWeek,
14882
- endOfWeek,
14883
- startOfISOWeek,
14884
- endOfISOWeek,
14885
14959
  addDays,
14886
14960
  differenceInCalendarDays,
14887
14961
  differenceInCalendarMonths,
14962
+ endOfBroadcastWeek,
14963
+ endOfISOWeek,
14964
+ endOfMonth,
14965
+ endOfWeek,
14888
14966
  isAfter,
14889
- endOfMonth
14967
+ startOfBroadcastWeek,
14968
+ startOfISOWeek,
14969
+ startOfWeek
14890
14970
  } = dateLib;
14891
- const startWeekFirstDate = ISOWeek ? startOfISOWeek(firstMonth) : startOfWeek(firstMonth);
14892
- const endWeekLastDate = ISOWeek ? endOfISOWeek(endOfMonth(lastMonth)) : endOfWeek(endOfMonth(lastMonth));
14971
+ const startWeekFirstDate = broadcastCalendar ? startOfBroadcastWeek(firstMonth, dateLib) : ISOWeek ? startOfISOWeek(firstMonth) : startOfWeek(firstMonth);
14972
+ const endWeekLastDate = broadcastCalendar ? endOfBroadcastWeek(lastMonth, dateLib) : ISOWeek ? endOfISOWeek(endOfMonth(lastMonth)) : endOfWeek(endOfMonth(lastMonth));
14893
14973
  const nOfDays = differenceInCalendarDays(endWeekLastDate, startWeekFirstDate);
14894
14974
  const nOfMonths = differenceInCalendarMonths(lastMonth, firstMonth) + 1;
14895
14975
  const dates = [];
@@ -14901,9 +14981,11 @@ function getDates(displayMonths, maxDate, props, dateLib) {
14901
14981
  dates.push(date);
14902
14982
  }
14903
14983
  // If fixed weeks is enabled, add the extra dates to the array
14904
- const extraDates = NrOfDaysWithFixedWeeks * nOfMonths;
14984
+ const nrOfDaysWithFixedWeeks = broadcastCalendar ? 35 : 42;
14985
+ const extraDates = nrOfDaysWithFixedWeeks * nOfMonths;
14905
14986
  if (fixedWeeks && dates.length < extraDates) {
14906
- for (let i = 0; i < 7; i++) {
14987
+ const daysToAdd = extraDates - dates.length;
14988
+ for (let i = 0; i < daysToAdd; i++) {
14907
14989
  const date = addDays(dates[dates.length - 1], 1);
14908
14990
  dates.push(date);
14909
14991
  }
@@ -15014,25 +15096,29 @@ displayMonths, /** The dates to display in the calendar. */
15014
15096
  dates, /** Options from the props context. */
15015
15097
  props, dateLib) {
15016
15098
  const {
15017
- startOfWeek,
15018
- endOfWeek,
15019
- startOfISOWeek,
15099
+ addDays,
15100
+ endOfBroadcastWeek,
15020
15101
  endOfISOWeek,
15021
15102
  endOfMonth,
15022
- addDays,
15103
+ endOfWeek,
15104
+ getISOWeek,
15023
15105
  getWeek,
15024
- getISOWeek
15106
+ startOfBroadcastWeek,
15107
+ startOfISOWeek,
15108
+ startOfWeek
15025
15109
  } = dateLib;
15026
15110
  const dayPickerMonths = displayMonths.reduce((months, month) => {
15027
- const firstDateOfFirstWeek = props.ISOWeek ? startOfISOWeek(month) : startOfWeek(month);
15028
- const lastDateOfLastWeek = props.ISOWeek ? endOfISOWeek(endOfMonth(month)) : endOfWeek(endOfMonth(month));
15111
+ const firstDateOfFirstWeek = props.broadcastCalendar ? startOfBroadcastWeek(month, dateLib) : props.ISOWeek ? startOfISOWeek(month) : startOfWeek(month);
15112
+ const lastDateOfLastWeek = props.broadcastCalendar ? endOfBroadcastWeek(month, dateLib) : props.ISOWeek ? endOfISOWeek(endOfMonth(month)) : endOfWeek(endOfMonth(month));
15029
15113
  /** The dates to display in the month. */
15030
15114
  const monthDates = dates.filter(date => {
15031
15115
  return date >= firstDateOfFirstWeek && date <= lastDateOfLastWeek;
15032
15116
  });
15033
- if (props.fixedWeeks && monthDates.length < 42) {
15117
+ const nrOfDaysWithFixedWeeks = props.broadcastCalendar ? 35 : 42;
15118
+ if (props.fixedWeeks && monthDates.length < nrOfDaysWithFixedWeeks) {
15034
15119
  const extraDates = dates.filter(date => {
15035
- return date > lastDateOfLastWeek && date <= addDays(lastDateOfLastWeek, 7);
15120
+ const daysToAdd = nrOfDaysWithFixedWeeks - monthDates.length;
15121
+ return date > lastDateOfLastWeek && date <= addDays(lastDateOfLastWeek, daysToAdd);
15036
15122
  });
15037
15123
  monthDates.push(...extraDates);
15038
15124
  }
@@ -15470,27 +15556,30 @@ function dateMatchModifiers(date, matchers, dateLib = defaultDateLib) {
15470
15556
  /** Return the next date that should be focused. */
15471
15557
  function getFocusableDate(moveBy, moveDir, refDate, navStart, navEnd, props, dateLib) {
15472
15558
  const {
15473
- ISOWeek
15559
+ ISOWeek,
15560
+ broadcastCalendar
15474
15561
  } = props;
15475
15562
  const {
15476
15563
  addDays,
15477
15564
  addMonths,
15478
- addYears,
15479
15565
  addWeeks,
15480
- startOfISOWeek,
15566
+ addYears,
15567
+ endOfBroadcastWeek,
15481
15568
  endOfISOWeek,
15482
- startOfWeek,
15483
15569
  endOfWeek,
15484
15570
  max,
15485
- min
15571
+ min,
15572
+ startOfBroadcastWeek,
15573
+ startOfISOWeek,
15574
+ startOfWeek
15486
15575
  } = dateLib;
15487
15576
  const moveFns = {
15488
15577
  day: addDays,
15489
15578
  week: addWeeks,
15490
15579
  month: addMonths,
15491
15580
  year: addYears,
15492
- startOfWeek: date => ISOWeek ? startOfISOWeek(date) : startOfWeek(date),
15493
- endOfWeek: date => ISOWeek ? endOfISOWeek(date) : endOfWeek(date)
15581
+ startOfWeek: date => broadcastCalendar ? startOfBroadcastWeek(date, dateLib) : ISOWeek ? startOfISOWeek(date) : startOfWeek(date),
15582
+ endOfWeek: date => broadcastCalendar ? endOfBroadcastWeek(date, dateLib) : ISOWeek ? endOfISOWeek(date) : endOfWeek(date)
15494
15583
  };
15495
15584
  let focusableDate = moveFns[moveBy](refDate, moveDir === "after" ? 1 : -1);
15496
15585
  if (moveDir === "before" && navStart) {
@@ -15556,6 +15645,8 @@ function useFocus(props, calendar, getModifiers, isSelected, dateLib) {
15556
15645
  /**
15557
15646
  * Return a function to get the modifiers for a given day.
15558
15647
  *
15648
+ * NOTE: this is not an hook, but a factory for `getModifiers`.
15649
+ *
15559
15650
  * @private
15560
15651
  */
15561
15652
  function useGetModifiers(days, props, dateLib) {
@@ -15564,12 +15655,19 @@ function useGetModifiers(days, props, dateLib) {
15564
15655
  hidden,
15565
15656
  modifiers,
15566
15657
  showOutsideDays,
15658
+ broadcastCalendar,
15567
15659
  today
15568
15660
  } = props;
15569
15661
  const {
15570
15662
  isSameDay,
15571
- isSameMonth
15663
+ isSameMonth,
15664
+ startOfMonth,
15665
+ isBefore,
15666
+ endOfMonth,
15667
+ isAfter
15572
15668
  } = dateLib;
15669
+ const startMonth = props.startMonth && startOfMonth(props.startMonth);
15670
+ const endMonth = props.endMonth && endOfMonth(props.endMonth);
15573
15671
  const internalModifiersMap = {
15574
15672
  [DayFlag.focused]: [],
15575
15673
  [DayFlag.outside]: [],
@@ -15578,20 +15676,18 @@ function useGetModifiers(days, props, dateLib) {
15578
15676
  [DayFlag.today]: []
15579
15677
  };
15580
15678
  const customModifiersMap = {};
15581
- const selectionModifiersMap = {
15582
- [SelectionState.range_end]: [],
15583
- [SelectionState.range_middle]: [],
15584
- [SelectionState.range_start]: [],
15585
- [SelectionState.selected]: []
15586
- };
15587
15679
  for (const day of days) {
15588
15680
  const {
15589
15681
  date,
15590
15682
  displayMonth
15591
15683
  } = day;
15592
15684
  const isOutside = Boolean(displayMonth && !isSameMonth(date, displayMonth));
15685
+ const isBeforeStartMonth = Boolean(startMonth && isBefore(date, startMonth));
15686
+ const isAfterEndMonth = Boolean(endMonth && isAfter(date, endMonth));
15593
15687
  const isDisabled = Boolean(disabled && dateMatchModifiers(date, disabled, dateLib));
15594
- const isHidden = Boolean(hidden && dateMatchModifiers(date, hidden, dateLib)) || !showOutsideDays && isOutside;
15688
+ const isHidden = Boolean(hidden && dateMatchModifiers(date, hidden, dateLib)) || isBeforeStartMonth || isAfterEndMonth ||
15689
+ // Broadcast calendar will show outside days as default
15690
+ !broadcastCalendar && !showOutsideDays && isOutside || broadcastCalendar && showOutsideDays === false && isOutside;
15595
15691
  const isToday = isSameDay(date, today ?? (props.timeZone ? TZDate.tz(props.timeZone) : dateLib.Date ? new dateLib.Date() : new Date()));
15596
15692
  if (isOutside) internalModifiersMap.outside.push(day);
15597
15693
  if (isDisabled) internalModifiersMap.disabled.push(day);
@@ -15620,27 +15716,16 @@ function useGetModifiers(days, props, dateLib) {
15620
15716
  [DayFlag.outside]: false,
15621
15717
  [DayFlag.today]: false
15622
15718
  };
15623
- const selectionStates = {
15624
- [SelectionState.range_end]: false,
15625
- [SelectionState.range_middle]: false,
15626
- [SelectionState.range_start]: false,
15627
- [SelectionState.selected]: false
15628
- };
15629
15719
  const customModifiers = {};
15630
15720
  // Find the modifiers for the given day
15631
15721
  for (const name in internalModifiersMap) {
15632
15722
  const days = internalModifiersMap[name];
15633
15723
  dayFlags[name] = days.some(d => d === day);
15634
15724
  }
15635
- for (const name in selectionModifiersMap) {
15636
- const days = selectionModifiersMap[name];
15637
- selectionStates[name] = days.some(d => d === day);
15638
- }
15639
15725
  for (const name in customModifiersMap) {
15640
15726
  customModifiers[name] = customModifiersMap[name].some(d => d === day);
15641
15727
  }
15642
15728
  return {
15643
- ...selectionStates,
15644
15729
  ...dayFlags,
15645
15730
  // custom modifiers should override all the previous ones
15646
15731
  ...customModifiers
@@ -16045,7 +16130,7 @@ function DayPicker(props) {
16045
16130
  };
16046
16131
  const dateLib = new DateLib({
16047
16132
  locale,
16048
- weekStartsOn: props.weekStartsOn,
16133
+ weekStartsOn: props.broadcastCalendar ? 1 : props.weekStartsOn,
16049
16134
  firstWeekContainsDate: props.firstWeekContainsDate,
16050
16135
  useAdditionalWeekYearTokens: props.useAdditionalWeekYearTokens,
16051
16136
  useAdditionalDayOfYearTokens: props.useAdditionalDayOfYearTokens
@@ -16064,7 +16149,7 @@ function DayPicker(props) {
16064
16149
  ...props.classNames
16065
16150
  }
16066
16151
  };
16067
- }, [props.classNames, props.components, props.dateLib, props.firstWeekContainsDate, props.formatters, props.labels, props.locale, props.useAdditionalDayOfYearTokens, props.useAdditionalWeekYearTokens, props.weekStartsOn]);
16152
+ }, [props.classNames, props.components, props.dateLib, props.firstWeekContainsDate, props.formatters, props.labels, props.locale, props.useAdditionalDayOfYearTokens, props.useAdditionalWeekYearTokens, props.weekStartsOn, props.broadcastCalendar]);
16068
16153
  const {
16069
16154
  captionLayout,
16070
16155
  mode,
@@ -16174,6 +16259,16 @@ function DayPicker(props) {
16174
16259
  const handleDayMouseLeave = React.useCallback((day, modifiers) => e => {
16175
16260
  onDayMouseLeave?.(day.date, modifiers, e);
16176
16261
  }, [onDayMouseLeave]);
16262
+ const handleMonthChange = React.useCallback(date => e => {
16263
+ const selectedMonth = Number(e.target.value);
16264
+ const month = dateLib.setMonth(dateLib.startOfMonth(date), selectedMonth);
16265
+ goToMonth(month);
16266
+ }, [dateLib, goToMonth]);
16267
+ const handleYearChange = React.useCallback(date => e => {
16268
+ const selectedYear = Number(e.target.value);
16269
+ const month = dateLib.setYear(dateLib.startOfMonth(date), selectedYear);
16270
+ goToMonth(month);
16271
+ }, [dateLib, goToMonth]);
16177
16272
  const {
16178
16273
  className,
16179
16274
  style
@@ -16211,6 +16306,8 @@ function DayPicker(props) {
16211
16306
  lang: props.lang,
16212
16307
  nonce: props.nonce,
16213
16308
  title: props.title,
16309
+ role: props.role,
16310
+ "aria-label": props["aria-label"],
16214
16311
  ...dataAttributes
16215
16312
  }, /*#__PURE__*/React.createElement(components.Months, {
16216
16313
  className: classNames[UI.Months],
@@ -16224,17 +16321,8 @@ function DayPicker(props) {
16224
16321
  previousMonth: previousMonth,
16225
16322
  nextMonth: nextMonth
16226
16323
  })), months.map((calendarMonth, displayIndex) => {
16227
- const handleMonthChange = e => {
16228
- const selectedMonth = Number(e.target.value);
16229
- const month = dateLib.setMonth(dateLib.startOfMonth(calendarMonth.date), selectedMonth);
16230
- goToMonth(month);
16231
- };
16232
- const handleYearChange = e => {
16233
- const month = dateLib.setYear(dateLib.startOfMonth(calendarMonth.date), Number(e.target.value));
16234
- goToMonth(month);
16235
- };
16236
16324
  const dropdownMonths = getMonthOptions(calendarMonth.date, navStart, navEnd, formatters, dateLib);
16237
- const dropdownYears = getYearOptions(months[0].date, navStart, navEnd, formatters, dateLib);
16325
+ const dropdownYears = getYearOptions(navStart, navEnd, formatters, dateLib);
16238
16326
  return /*#__PURE__*/React.createElement(components.Month, {
16239
16327
  className: classNames[UI.Month],
16240
16328
  style: styles?.[UI.Month],
@@ -16255,7 +16343,7 @@ function DayPicker(props) {
16255
16343
  classNames: classNames,
16256
16344
  components: components,
16257
16345
  disabled: Boolean(props.disableNavigation),
16258
- onChange: handleMonthChange,
16346
+ onChange: handleMonthChange(calendarMonth.date),
16259
16347
  options: dropdownMonths,
16260
16348
  style: styles?.[UI.Dropdown],
16261
16349
  value: calendarMonth.date.getMonth()
@@ -16268,7 +16356,7 @@ function DayPicker(props) {
16268
16356
  classNames: classNames,
16269
16357
  components: components,
16270
16358
  disabled: Boolean(props.disableNavigation),
16271
- onChange: handleYearChange,
16359
+ onChange: handleYearChange(calendarMonth.date),
16272
16360
  options: dropdownYears,
16273
16361
  style: styles?.[UI.Dropdown],
16274
16362
  value: calendarMonth.date.getFullYear()
@@ -16315,7 +16403,8 @@ function DayPicker(props) {
16315
16403
  locale
16316
16404
  }),
16317
16405
  className: classNames[UI.WeekNumber],
16318
- scope: "row"
16406
+ scope: "row",
16407
+ role: "rowheader"
16319
16408
  }, formatWeekNumber(week.weekNumber))), week.days.map(day => {
16320
16409
  const {
16321
16410
  date
@@ -16335,14 +16424,14 @@ function DayPicker(props) {
16335
16424
  }
16336
16425
  const style = getStyleForModifiers(modifiers, styles, props.modifiersStyles);
16337
16426
  const className = getClassNamesForModifiers(modifiers, classNames, props.modifiersClassNames);
16338
- const ariaLabel = !isInteractive ? labelGridcell(date, modifiers, dateLib.options, dateLib) : undefined;
16427
+ const ariaLabel = !isInteractive && !modifiers.hidden ? labelGridcell(date, modifiers, dateLib.options, dateLib) : undefined;
16339
16428
  return /*#__PURE__*/React.createElement(components.Day, {
16340
16429
  key: `${dateLib.format(date, "yyyy-MM-dd")}_${dateLib.format(day.displayMonth, "yyyy-MM")}`,
16341
16430
  day: day,
16342
16431
  modifiers: modifiers,
16343
16432
  className: className.join(" "),
16344
16433
  style: style,
16345
- "aria-hidden": modifiers.hidden || undefined,
16434
+ role: "gridcell",
16346
16435
  "aria-selected": modifiers.selected || undefined,
16347
16436
  "aria-label": ariaLabel,
16348
16437
  "data-day": dateLib.format(date, "yyyy-MM-dd"),
@@ -16353,7 +16442,7 @@ function DayPicker(props) {
16353
16442
  "data-outside": day.outside || undefined,
16354
16443
  "data-focused": modifiers.focused || undefined,
16355
16444
  "data-today": modifiers.today || undefined
16356
- }, isInteractive ? (/*#__PURE__*/React.createElement(components.DayButton, {
16445
+ }, !modifiers.hidden && isInteractive ? (/*#__PURE__*/React.createElement(components.DayButton, {
16357
16446
  className: classNames[UI.DayButton],
16358
16447
  style: styles?.[UI.DayButton],
16359
16448
  type: "button",
@@ -16368,7 +16457,7 @@ function DayPicker(props) {
16368
16457
  onKeyDown: handleDayKeyDown(day, modifiers),
16369
16458
  onMouseEnter: handleDayMouseEnter(day, modifiers),
16370
16459
  onMouseLeave: handleDayMouseLeave(day, modifiers)
16371
- }, formatDay(date, dateLib.options, dateLib))) : formatDay(day.date, dateLib.options, dateLib));
16460
+ }, formatDay(date, dateLib.options, dateLib))) : !modifiers.hidden && formatDay(day.date, dateLib.options, dateLib));
16372
16461
  }));
16373
16462
  }))));
16374
16463
  })), props.footer && (/*#__PURE__*/React.createElement(components.Footer, {
@@ -16379,143 +16468,6 @@ function DayPicker(props) {
16379
16468
  }, props.footer))));
16380
16469
  }
16381
16470
 
16382
- /**
16383
- * @name isDate
16384
- * @category Common Helpers
16385
- * @summary Is the given value a date?
16386
- *
16387
- * @description
16388
- * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.
16389
- *
16390
- * @param value - The value to check
16391
- *
16392
- * @returns True if the given value is a date
16393
- *
16394
- * @example
16395
- * // For a valid date:
16396
- * const result = isDate(new Date())
16397
- * //=> true
16398
- *
16399
- * @example
16400
- * // For an invalid date:
16401
- * const result = isDate(new Date(NaN))
16402
- * //=> true
16403
- *
16404
- * @example
16405
- * // For some value:
16406
- * const result = isDate('2014-02-31')
16407
- * //=> false
16408
- *
16409
- * @example
16410
- * // For an object:
16411
- * const result = isDate({})
16412
- * //=> false
16413
- */
16414
- function isDate(value) {
16415
- return (
16416
- value instanceof Date ||
16417
- (typeof value === "object" &&
16418
- Object.prototype.toString.call(value) === "[object Date]")
16419
- );
16420
- }
16421
-
16422
- /**
16423
- * @name toDate
16424
- * @category Common Helpers
16425
- * @summary Convert the given argument to an instance of Date.
16426
- *
16427
- * @description
16428
- * Convert the given argument to an instance of Date.
16429
- *
16430
- * If the argument is an instance of Date, the function returns its clone.
16431
- *
16432
- * If the argument is a number, it is treated as a timestamp.
16433
- *
16434
- * If the argument is none of the above, the function returns Invalid Date.
16435
- *
16436
- * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.
16437
- *
16438
- * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
16439
- *
16440
- * @param argument - The value to convert
16441
- *
16442
- * @returns The parsed date in the local time zone
16443
- *
16444
- * @example
16445
- * // Clone the date:
16446
- * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))
16447
- * //=> Tue Feb 11 2014 11:30:30
16448
- *
16449
- * @example
16450
- * // Convert the timestamp to date:
16451
- * const result = toDate(1392098430000)
16452
- * //=> Tue Feb 11 2014 11:30:30
16453
- */
16454
- function toDate$1(argument) {
16455
- const argStr = Object.prototype.toString.call(argument);
16456
-
16457
- // Clone the date
16458
- if (
16459
- argument instanceof Date ||
16460
- (typeof argument === "object" && argStr === "[object Date]")
16461
- ) {
16462
- // Prevent the date to lose the milliseconds when passed to new Date() in IE10
16463
- return new argument.constructor(+argument);
16464
- } else if (
16465
- typeof argument === "number" ||
16466
- argStr === "[object Number]" ||
16467
- typeof argStr === "string" ||
16468
- argStr === "[object String]"
16469
- ) {
16470
- // TODO: Can we get rid of as?
16471
- return new Date(argument);
16472
- } else {
16473
- // TODO: Can we get rid of as?
16474
- return new Date(NaN);
16475
- }
16476
- }
16477
-
16478
- /**
16479
- * @name isValid
16480
- * @category Common Helpers
16481
- * @summary Is the given date valid?
16482
- *
16483
- * @description
16484
- * Returns false if argument is Invalid Date and true otherwise.
16485
- * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate)
16486
- * Invalid Date is a Date, whose time value is NaN.
16487
- *
16488
- * Time value of Date: http://es5.github.io/#x15.9.1.1
16489
- *
16490
- * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
16491
- *
16492
- * @param date - The date to check
16493
- *
16494
- * @returns The date is valid
16495
- *
16496
- * @example
16497
- * // For the valid date:
16498
- * const result = isValid(new Date(2014, 1, 31))
16499
- * //=> true
16500
- *
16501
- * @example
16502
- * // For the value, convertable into a date:
16503
- * const result = isValid(1393804800000)
16504
- * //=> true
16505
- *
16506
- * @example
16507
- * // For the invalid date:
16508
- * const result = isValid(new Date(''))
16509
- * //=> false
16510
- */
16511
- function isValid(date) {
16512
- if (!isDate(date) && typeof date !== "number") {
16513
- return false;
16514
- }
16515
- const _date = toDate$1(date);
16516
- return !isNaN(Number(_date));
16517
- }
16518
-
16519
16471
  const formatDistanceLocale = {
16520
16472
  lessThanXSeconds: {
16521
16473
  one: "less than a second",
@@ -17197,15 +17149,71 @@ const millisecondsInWeek = 604800000;
17197
17149
  const millisecondsInDay = 86400000;
17198
17150
 
17199
17151
  /**
17200
- * @name startOfDay
17201
- * @category Day Helpers
17202
- * @summary Return the start of a day for the given date.
17152
+ * @name toDate
17153
+ * @category Common Helpers
17154
+ * @summary Convert the given argument to an instance of Date.
17203
17155
  *
17204
17156
  * @description
17205
- * Return the start of a day for the given date.
17206
- * The result will be in the local timezone.
17157
+ * Convert the given argument to an instance of Date.
17207
17158
  *
17208
- * @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).
17159
+ * If the argument is an instance of Date, the function returns its clone.
17160
+ *
17161
+ * If the argument is a number, it is treated as a timestamp.
17162
+ *
17163
+ * If the argument is none of the above, the function returns Invalid Date.
17164
+ *
17165
+ * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.
17166
+ *
17167
+ * @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).
17168
+ *
17169
+ * @param argument - The value to convert
17170
+ *
17171
+ * @returns The parsed date in the local time zone
17172
+ *
17173
+ * @example
17174
+ * // Clone the date:
17175
+ * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))
17176
+ * //=> Tue Feb 11 2014 11:30:30
17177
+ *
17178
+ * @example
17179
+ * // Convert the timestamp to date:
17180
+ * const result = toDate(1392098430000)
17181
+ * //=> Tue Feb 11 2014 11:30:30
17182
+ */
17183
+ function toDate$1(argument) {
17184
+ const argStr = Object.prototype.toString.call(argument);
17185
+
17186
+ // Clone the date
17187
+ if (
17188
+ argument instanceof Date ||
17189
+ (typeof argument === "object" && argStr === "[object Date]")
17190
+ ) {
17191
+ // Prevent the date to lose the milliseconds when passed to new Date() in IE10
17192
+ return new argument.constructor(+argument);
17193
+ } else if (
17194
+ typeof argument === "number" ||
17195
+ argStr === "[object Number]" ||
17196
+ typeof argument === "string" ||
17197
+ argStr === "[object String]"
17198
+ ) {
17199
+ // TODO: Can we get rid of as?
17200
+ return new Date(argument);
17201
+ } else {
17202
+ // TODO: Can we get rid of as?
17203
+ return new Date(NaN);
17204
+ }
17205
+ }
17206
+
17207
+ /**
17208
+ * @name startOfDay
17209
+ * @category Day Helpers
17210
+ * @summary Return the start of a day for the given date.
17211
+ *
17212
+ * @description
17213
+ * Return the start of a day for the given date.
17214
+ * The result will be in the local timezone.
17215
+ *
17216
+ * @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).
17209
17217
  *
17210
17218
  * @param date - The original date
17211
17219
  *
@@ -17234,19 +17242,20 @@ function startOfDay(date) {
17234
17242
  * This function returns the timezone offset in milliseconds that takes seconds in account.
17235
17243
  */
17236
17244
  function getTimezoneOffsetInMilliseconds$1(date) {
17245
+ const _date = toDate$1(date);
17237
17246
  const utcDate = new Date(
17238
17247
  Date.UTC(
17239
- date.getFullYear(),
17240
- date.getMonth(),
17241
- date.getDate(),
17242
- date.getHours(),
17243
- date.getMinutes(),
17244
- date.getSeconds(),
17245
- date.getMilliseconds(),
17248
+ _date.getFullYear(),
17249
+ _date.getMonth(),
17250
+ _date.getDate(),
17251
+ _date.getHours(),
17252
+ _date.getMinutes(),
17253
+ _date.getSeconds(),
17254
+ _date.getMilliseconds(),
17246
17255
  ),
17247
17256
  );
17248
- utcDate.setUTCFullYear(date.getFullYear());
17249
- return date.getTime() - utcDate.getTime();
17257
+ utcDate.setUTCFullYear(_date.getFullYear());
17258
+ return +date - +utcDate;
17250
17259
  }
17251
17260
 
17252
17261
  /**
@@ -17286,14 +17295,13 @@ function differenceInCalendarDays(dateLeft, dateRight) {
17286
17295
  const startOfDayRight = startOfDay(dateRight);
17287
17296
 
17288
17297
  const timestampLeft =
17289
- startOfDayLeft.getTime() - getTimezoneOffsetInMilliseconds$1(startOfDayLeft);
17298
+ +startOfDayLeft - getTimezoneOffsetInMilliseconds$1(startOfDayLeft);
17290
17299
  const timestampRight =
17291
- startOfDayRight.getTime() -
17292
- getTimezoneOffsetInMilliseconds$1(startOfDayRight);
17300
+ +startOfDayRight - getTimezoneOffsetInMilliseconds$1(startOfDayRight);
17293
17301
 
17294
- // Round the number of days to the nearest integer
17295
- // because the number of milliseconds in a day is not constant
17296
- // (e.g. it's different in the day of the daylight saving time clock shift)
17302
+ // Round the number of days to the nearest integer because the number of
17303
+ // milliseconds in a day is not constant (e.g. it's different in the week of
17304
+ // the daylight saving time clock shift).
17297
17305
  return Math.round((timestampLeft - timestampRight) / millisecondsInDay);
17298
17306
  }
17299
17307
 
@@ -17307,6 +17315,8 @@ function differenceInCalendarDays(dateLeft, dateRight) {
17307
17315
  * date and the given value. It helps to build generic functions that accept
17308
17316
  * date extensions.
17309
17317
  *
17318
+ * It defaults to `Date` if the passed reference date is a number or a string.
17319
+ *
17310
17320
  * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
17311
17321
  *
17312
17322
  * @param date - The reference date to take constructor from
@@ -17560,12 +17570,11 @@ function startOfISOWeekYear(date) {
17560
17570
  */
17561
17571
  function getISOWeek(date) {
17562
17572
  const _date = toDate$1(date);
17563
- const diff =
17564
- startOfISOWeek(_date).getTime() - startOfISOWeekYear(_date).getTime();
17573
+ const diff = +startOfISOWeek(_date) - +startOfISOWeekYear(_date);
17565
17574
 
17566
- // Round the number of days to the nearest integer
17567
- // because the number of milliseconds in a week is not constant
17568
- // (e.g. it's different in the week of the daylight saving time clock shift)
17575
+ // Round the number of weeks to the nearest integer because the number of
17576
+ // milliseconds in a week is not constant (e.g. it's different in the week of
17577
+ // the daylight saving time clock shift).
17569
17578
  return Math.round(diff / millisecondsInWeek) + 1;
17570
17579
  }
17571
17580
 
@@ -17585,7 +17594,7 @@ function getISOWeek(date) {
17585
17594
  * and `options.firstWeekContainsDate` (which is the day of January, which is always in
17586
17595
  * the first week of the week-numbering year)
17587
17596
  *
17588
- * Week numbering: https://en.wikipedia.org/wiki/Week#Week_numbering
17597
+ * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system
17589
17598
  *
17590
17599
  * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
17591
17600
  *
@@ -17656,7 +17665,7 @@ function getWeekYear(date, options) {
17656
17665
  * and `options.firstWeekContainsDate` (which is the day of January, which is always in
17657
17666
  * the first week of the week-numbering year)
17658
17667
  *
17659
- * Week numbering: https://en.wikipedia.org/wiki/Week#Week_numbering
17668
+ * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system
17660
17669
  *
17661
17670
  * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
17662
17671
  *
@@ -17713,7 +17722,7 @@ function startOfWeekYear(date, options) {
17713
17722
  * and `options.firstWeekContainsDate` (which is the day of January, which is always in
17714
17723
  * the first week of the week-numbering year)
17715
17724
  *
17716
- * Week numbering: https://en.wikipedia.org/wiki/Week#Week_numbering
17725
+ * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system
17717
17726
  *
17718
17727
  * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
17719
17728
  *
@@ -17740,13 +17749,11 @@ function startOfWeekYear(date, options) {
17740
17749
 
17741
17750
  function getWeek(date, options) {
17742
17751
  const _date = toDate$1(date);
17743
- const diff =
17744
- startOfWeek(_date, options).getTime() -
17745
- startOfWeekYear(_date, options).getTime();
17752
+ const diff = +startOfWeek(_date, options) - +startOfWeekYear(_date, options);
17746
17753
 
17747
- // Round the number of days to the nearest integer
17748
- // because the number of milliseconds in a week is not constant
17749
- // (e.g. it's different in the week of the daylight saving time clock shift)
17754
+ // Round the number of weeks to the nearest integer because the number of
17755
+ // milliseconds in a week is not constant (e.g. it's different in the week of
17756
+ // the daylight saving time clock shift).
17750
17757
  return Math.round(diff / millisecondsInWeek) + 1;
17751
17758
  }
17752
17759
 
@@ -17840,7 +17847,7 @@ const lightFormatters = {
17840
17847
  S(date, token) {
17841
17848
  const numberOfDigits = token.length;
17842
17849
  const milliseconds = date.getMilliseconds();
17843
- const fractionalSeconds = Math.floor(
17850
+ const fractionalSeconds = Math.trunc(
17844
17851
  milliseconds * Math.pow(10, numberOfDigits - 3),
17845
17852
  );
17846
17853
  return addLeadingZeros$1(fractionalSeconds, token.length);
@@ -18487,9 +18494,8 @@ const formatters$1 = {
18487
18494
  },
18488
18495
 
18489
18496
  // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)
18490
- X: function (date, token, _localize, options) {
18491
- const originalDate = options._originalDate || date;
18492
- const timezoneOffset = originalDate.getTimezoneOffset();
18497
+ X: function (date, token, _localize) {
18498
+ const timezoneOffset = date.getTimezoneOffset();
18493
18499
 
18494
18500
  if (timezoneOffset === 0) {
18495
18501
  return "Z";
@@ -18518,9 +18524,8 @@ const formatters$1 = {
18518
18524
  },
18519
18525
 
18520
18526
  // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)
18521
- x: function (date, token, _localize, options) {
18522
- const originalDate = options._originalDate || date;
18523
- const timezoneOffset = originalDate.getTimezoneOffset();
18527
+ x: function (date, token, _localize) {
18528
+ const timezoneOffset = date.getTimezoneOffset();
18524
18529
 
18525
18530
  switch (token) {
18526
18531
  // Hours and optional minutes
@@ -18545,9 +18550,8 @@ const formatters$1 = {
18545
18550
  },
18546
18551
 
18547
18552
  // Timezone (GMT)
18548
- O: function (date, token, _localize, options) {
18549
- const originalDate = options._originalDate || date;
18550
- const timezoneOffset = originalDate.getTimezoneOffset();
18553
+ O: function (date, token, _localize) {
18554
+ const timezoneOffset = date.getTimezoneOffset();
18551
18555
 
18552
18556
  switch (token) {
18553
18557
  // Short
@@ -18563,9 +18567,8 @@ const formatters$1 = {
18563
18567
  },
18564
18568
 
18565
18569
  // Timezone (specific non-location)
18566
- z: function (date, token, _localize, options) {
18567
- const originalDate = options._originalDate || date;
18568
- const timezoneOffset = originalDate.getTimezoneOffset();
18570
+ z: function (date, token, _localize) {
18571
+ const timezoneOffset = date.getTimezoneOffset();
18569
18572
 
18570
18573
  switch (token) {
18571
18574
  // Short
@@ -18581,16 +18584,14 @@ const formatters$1 = {
18581
18584
  },
18582
18585
 
18583
18586
  // Seconds timestamp
18584
- t: function (date, token, _localize, options) {
18585
- const originalDate = options._originalDate || date;
18586
- const timestamp = Math.floor(originalDate.getTime() / 1000);
18587
+ t: function (date, token, _localize) {
18588
+ const timestamp = Math.trunc(date.getTime() / 1000);
18587
18589
  return addLeadingZeros$1(timestamp, token.length);
18588
18590
  },
18589
18591
 
18590
18592
  // Milliseconds timestamp
18591
- T: function (date, token, _localize, options) {
18592
- const originalDate = options._originalDate || date;
18593
- const timestamp = originalDate.getTime();
18593
+ T: function (date, token, _localize) {
18594
+ const timestamp = date.getTime();
18594
18595
  return addLeadingZeros$1(timestamp, token.length);
18595
18596
  },
18596
18597
  };
@@ -18598,7 +18599,7 @@ const formatters$1 = {
18598
18599
  function formatTimezoneShort$1(offset, delimiter = "") {
18599
18600
  const sign = offset > 0 ? "-" : "+";
18600
18601
  const absOffset = Math.abs(offset);
18601
- const hours = Math.floor(absOffset / 60);
18602
+ const hours = Math.trunc(absOffset / 60);
18602
18603
  const minutes = absOffset % 60;
18603
18604
  if (minutes === 0) {
18604
18605
  return sign + String(hours);
@@ -18617,7 +18618,7 @@ function formatTimezoneWithOptionalMinutes$1(offset, delimiter) {
18617
18618
  function formatTimezone$1(offset, delimiter = "") {
18618
18619
  const sign = offset > 0 ? "-" : "+";
18619
18620
  const absOffset = Math.abs(offset);
18620
- const hours = addLeadingZeros$1(Math.floor(absOffset / 60), 2);
18621
+ const hours = addLeadingZeros$1(Math.trunc(absOffset / 60), 2);
18621
18622
  const minutes = addLeadingZeros$1(absOffset % 60, 2);
18622
18623
  return sign + hours + delimiter + minutes;
18623
18624
  }
@@ -18687,35 +18688,109 @@ const longFormatters = {
18687
18688
  P: dateTimeLongFormatter,
18688
18689
  };
18689
18690
 
18690
- const protectedDayOfYearTokens = ["D", "DD"];
18691
- const protectedWeekYearTokens = ["YY", "YYYY"];
18691
+ const dayOfYearTokenRE = /^D+$/;
18692
+ const weekYearTokenRE = /^Y+$/;
18693
+
18694
+ const throwTokens = ["D", "DD", "YY", "YYYY"];
18692
18695
 
18693
18696
  function isProtectedDayOfYearToken(token) {
18694
- return protectedDayOfYearTokens.indexOf(token) !== -1;
18697
+ return dayOfYearTokenRE.test(token);
18695
18698
  }
18696
18699
 
18697
18700
  function isProtectedWeekYearToken(token) {
18698
- return protectedWeekYearTokens.indexOf(token) !== -1;
18701
+ return weekYearTokenRE.test(token);
18699
18702
  }
18700
18703
 
18701
- function throwProtectedError(token, format, input) {
18702
- if (token === "YYYY") {
18703
- throw new RangeError(
18704
- `Use \`yyyy\` instead of \`YYYY\` (in \`${format}\`) for formatting years to the input \`${input}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`,
18705
- );
18706
- } else if (token === "YY") {
18707
- throw new RangeError(
18708
- `Use \`yy\` instead of \`YY\` (in \`${format}\`) for formatting years to the input \`${input}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`,
18709
- );
18710
- } else if (token === "D") {
18711
- throw new RangeError(
18712
- `Use \`d\` instead of \`D\` (in \`${format}\`) for formatting days of the month to the input \`${input}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`,
18713
- );
18714
- } else if (token === "DD") {
18715
- throw new RangeError(
18716
- `Use \`dd\` instead of \`DD\` (in \`${format}\`) for formatting days of the month to the input \`${input}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`,
18717
- );
18704
+ function warnOrThrowProtectedError(token, format, input) {
18705
+ const _message = message(token, format, input);
18706
+ console.warn(_message);
18707
+ if (throwTokens.includes(token)) throw new RangeError(_message);
18708
+ }
18709
+
18710
+ function message(token, format, input) {
18711
+ const subject = token[0] === "Y" ? "years" : "days of the month";
18712
+ 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`;
18713
+ }
18714
+
18715
+ /**
18716
+ * @name isDate
18717
+ * @category Common Helpers
18718
+ * @summary Is the given value a date?
18719
+ *
18720
+ * @description
18721
+ * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.
18722
+ *
18723
+ * @param value - The value to check
18724
+ *
18725
+ * @returns True if the given value is a date
18726
+ *
18727
+ * @example
18728
+ * // For a valid date:
18729
+ * const result = isDate(new Date())
18730
+ * //=> true
18731
+ *
18732
+ * @example
18733
+ * // For an invalid date:
18734
+ * const result = isDate(new Date(NaN))
18735
+ * //=> true
18736
+ *
18737
+ * @example
18738
+ * // For some value:
18739
+ * const result = isDate('2014-02-31')
18740
+ * //=> false
18741
+ *
18742
+ * @example
18743
+ * // For an object:
18744
+ * const result = isDate({})
18745
+ * //=> false
18746
+ */
18747
+ function isDate(value) {
18748
+ return (
18749
+ value instanceof Date ||
18750
+ (typeof value === "object" &&
18751
+ Object.prototype.toString.call(value) === "[object Date]")
18752
+ );
18753
+ }
18754
+
18755
+ /**
18756
+ * @name isValid
18757
+ * @category Common Helpers
18758
+ * @summary Is the given date valid?
18759
+ *
18760
+ * @description
18761
+ * Returns false if argument is Invalid Date and true otherwise.
18762
+ * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate)
18763
+ * Invalid Date is a Date, whose time value is NaN.
18764
+ *
18765
+ * Time value of Date: http://es5.github.io/#x15.9.1.1
18766
+ *
18767
+ * @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).
18768
+ *
18769
+ * @param date - The date to check
18770
+ *
18771
+ * @returns The date is valid
18772
+ *
18773
+ * @example
18774
+ * // For the valid date:
18775
+ * const result = isValid(new Date(2014, 1, 31))
18776
+ * //=> true
18777
+ *
18778
+ * @example
18779
+ * // For the value, convertable into a date:
18780
+ * const result = isValid(1393804800000)
18781
+ * //=> true
18782
+ *
18783
+ * @example
18784
+ * // For the invalid date:
18785
+ * const result = isValid(new Date(''))
18786
+ * //=> false
18787
+ */
18788
+ function isValid(date) {
18789
+ if (!isDate(date) && typeof date !== "number") {
18790
+ return false;
18718
18791
  }
18792
+ const _date = toDate$1(date);
18793
+ return !isNaN(Number(_date));
18719
18794
  }
18720
18795
 
18721
18796
  // This RegExp consists of three parts separated by `|`:
@@ -18746,6 +18821,7 @@ const unescapedLatinCharacterRegExp = /[a-zA-Z]/;
18746
18821
 
18747
18822
  /**
18748
18823
  * @name format
18824
+ * @alias formatDate
18749
18825
  * @category Common Helpers
18750
18826
  * @summary Format the date.
18751
18827
  *
@@ -19053,16 +19129,9 @@ function format$1(date, formatStr, options) {
19053
19129
  throw new RangeError("Invalid time value");
19054
19130
  }
19055
19131
 
19056
- const formatterOptions = {
19057
- firstWeekContainsDate: firstWeekContainsDate,
19058
- weekStartsOn: weekStartsOn,
19059
- locale: locale,
19060
- _originalDate: originalDate,
19061
- };
19062
-
19063
- const result = formatStr
19132
+ let parts = formatStr
19064
19133
  .match(longFormattingTokensRegExp)
19065
- .map(function (substring) {
19134
+ .map((substring) => {
19066
19135
  const firstCharacter = substring[0];
19067
19136
  if (firstCharacter === "p" || firstCharacter === "P") {
19068
19137
  const longFormatter = longFormatters[firstCharacter];
@@ -19072,37 +19141,19 @@ function format$1(date, formatStr, options) {
19072
19141
  })
19073
19142
  .join("")
19074
19143
  .match(formattingTokensRegExp)
19075
- .map(function (substring) {
19144
+ .map((substring) => {
19076
19145
  // Replace two single quote characters with one single quote character
19077
19146
  if (substring === "''") {
19078
- return "'";
19147
+ return { isToken: false, value: "'" };
19079
19148
  }
19080
19149
 
19081
19150
  const firstCharacter = substring[0];
19082
19151
  if (firstCharacter === "'") {
19083
- return cleanEscapedString(substring);
19152
+ return { isToken: false, value: cleanEscapedString(substring) };
19084
19153
  }
19085
19154
 
19086
- const formatter = formatters$1[firstCharacter];
19087
- if (formatter) {
19088
- if (
19089
- !options?.useAdditionalWeekYearTokens &&
19090
- isProtectedWeekYearToken(substring)
19091
- ) {
19092
- throwProtectedError(substring, formatStr, String(date));
19093
- }
19094
- if (
19095
- !options?.useAdditionalDayOfYearTokens &&
19096
- isProtectedDayOfYearToken(substring)
19097
- ) {
19098
- throwProtectedError(substring, formatStr, String(date));
19099
- }
19100
- return formatter(
19101
- originalDate,
19102
- substring,
19103
- locale.localize,
19104
- formatterOptions,
19105
- );
19155
+ if (formatters$1[firstCharacter]) {
19156
+ return { isToken: true, value: substring };
19106
19157
  }
19107
19158
 
19108
19159
  if (firstCharacter.match(unescapedLatinCharacterRegExp)) {
@@ -19113,11 +19164,39 @@ function format$1(date, formatStr, options) {
19113
19164
  );
19114
19165
  }
19115
19166
 
19116
- return substring;
19167
+ return { isToken: false, value: substring };
19168
+ });
19169
+
19170
+ // invoke localize preprocessor (only for french locales at the moment)
19171
+ if (locale.localize.preprocessor) {
19172
+ parts = locale.localize.preprocessor(originalDate, parts);
19173
+ }
19174
+
19175
+ const formatterOptions = {
19176
+ firstWeekContainsDate,
19177
+ weekStartsOn,
19178
+ locale,
19179
+ };
19180
+
19181
+ return parts
19182
+ .map((part) => {
19183
+ if (!part.isToken) return part.value;
19184
+
19185
+ const token = part.value;
19186
+
19187
+ if (
19188
+ (!options?.useAdditionalWeekYearTokens &&
19189
+ isProtectedWeekYearToken(token)) ||
19190
+ (!options?.useAdditionalDayOfYearTokens &&
19191
+ isProtectedDayOfYearToken(token))
19192
+ ) {
19193
+ warnOrThrowProtectedError(token, formatStr, String(date));
19194
+ }
19195
+
19196
+ const formatter = formatters$1[token[0]];
19197
+ return formatter(originalDate, token, locale.localize, formatterOptions);
19117
19198
  })
19118
19199
  .join("");
19119
-
19120
- return result;
19121
19200
  }
19122
19201
 
19123
19202
  function cleanEscapedString(input) {
@@ -20596,7 +20675,7 @@ const TimePicker = ({
20596
20675
  });
20597
20676
  };
20598
20677
 
20599
- var css_248z$K = "@import 'react-day-picker/style.css';\n.fontXs, .ff-date-picker .ff-datepicker-input-container .ff-input-with-icon .ff-date-input,\n.ff-date-picker .ff-datepicker-input-container .ff-input-with-icon .ff-time-input {\n font-family: \"Poppins\";\n font-size: 10px;\n}\n\n.fontSm, .ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container .ff-time-input {\n font-family: \"Poppins\";\n font-size: 12px;\n}\n\n.fontMd {\n font-family: \"Poppins\";\n font-size: 14px;\n}\n\n.fontLg {\n font-family: \"Poppins\";\n font-size: 16px;\n}\n\n.fontXL {\n font-family: \"Poppins\";\n font-size: 18px;\n}\n\n.font2Xl {\n font-family: \"Poppins\";\n font-size: 24px;\n}\n\n.font-size-8, .ff-date-picker .ff-datepicker-input-container .ff-date-input-field .ff-date-input-message {\n font-family: \"Poppins\";\n font-size: 8px;\n}\n\n.font-size-20 {\n font-family: \"Poppins\";\n font-size: 20px;\n}\n\n.font-size-32 {\n font-family: \"Poppins\";\n font-size: 32px;\n}\n\n.font-size-80 {\n font-family: \"Poppins\";\n font-size: 80px;\n}\n\n/* Custom date picker styling */\n.ff-date-picker {\n position: relative;\n}\n.ff-date-picker .rdp-root {\n --rdp-accent-color: var(--brand-color);\n --rdp-day-height: 24px;\n --rdp-day-width: 36px;\n --rdp-day_button-height: 24px;\n --rdp-day_button-width: 36px;\n font-family: \"Poppins\";\n font-size: 12px;\n --rdp-font-family: \"Poppins\", sans-serif;\n}\n.ff-date-picker .ff-cursor-pointer {\n cursor: pointer;\n}\n.ff-date-picker .ff-datepicker-input-container {\n display: flex;\n gap: 10px;\n}\n.ff-date-picker .ff-datepicker-input-container .ff-input-with-icon {\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n}\n.ff-date-picker .ff-datepicker-input-container .ff-input-with-icon .ff-date-input,\n.ff-date-picker .ff-datepicker-input-container .ff-input-with-icon .ff-time-input {\n padding: 4px 8px;\n padding-left: 2rem;\n height: 32px;\n border-radius: 5px;\n border: 1px solid var(--border-color);\n color: var(--status-skipped-text-color);\n line-height: 15px;\n box-sizing: border-box;\n}\n.ff-date-picker .ff-datepicker-input-container .ff-input-with-icon .ff-date-input:focus,\n.ff-date-picker .ff-datepicker-input-container .ff-input-with-icon .ff-time-input:focus {\n outline: none;\n}\n.ff-date-picker .ff-datepicker-input-container .ff-input-with-icon .ff-calendar-icon,\n.ff-date-picker .ff-datepicker-input-container .ff-input-with-icon .ff-clock-icon {\n position: absolute;\n top: 50%;\n transform: translate(25%, -50%);\n display: flex;\n align-items: center;\n pointer-events: none;\n}\n.ff-date-picker .ff-datepicker-input-container .ff-date-input-field {\n flex: 1;\n}\n.ff-date-picker .ff-datepicker-input-container .ff-date-input-field .ff-date-input {\n width: 100%;\n}\n.ff-date-picker .ff-datepicker-input-container .ff-date-input-field .ff-date-input-message {\n padding: 0px 4px;\n margin-left: 8px;\n line-height: 12px;\n}\n.ff-date-picker .ff-datepicker-input-container .ff-date-input-field .ff-date-input-message--danger {\n color: var(--input-error-text-color);\n}\n.ff-date-picker .ff-datepicker-input-container .ff-time-input-field {\n flex: 0 0 120px;\n}\n.ff-date-picker .ff-datepicker-input-container .ff-time-input-field .ff-time-input {\n width: 100%;\n}\n.ff-date-picker .ff-date-picker-container {\n display: flex;\n flex-direction: column;\n position: absolute;\n border-radius: 8px;\n padding: 4px;\n box-sizing: border-box;\n background-color: var(--tab-bg-color);\n box-shadow: 0 0 12px 0 rgba(0, 0, 0, 0.2);\n gap: 8px;\n z-index: 10;\n}\n.ff-date-picker .ff-date-picker-container .ff-calendar-container {\n display: flex;\n align-items: flex-start;\n gap: 4px;\n height: 240px;\n}\n.ff-date-picker .ff-date-picker-container .ff-date-picker-controls {\n padding: 4px;\n display: flex;\n justify-content: end;\n gap: 8px;\n border-top: 1px solid var(--border-color);\n}\n.ff-date-picker .ff-date-picker-container .ff-date-picker-controls .ff-date-picker-button {\n font-weight: 600;\n line-height: 15px;\n}\n.ff-date-picker .ff-calendar .ff-calendar-nav-button {\n margin: 0 5px;\n border: 1px solid var(--border-color);\n background-color: var(--toggle-button-bg-color);\n box-shadow: 0 -1px 2px 0 var(--ff-mini-modal-box-shadow);\n padding: 0px;\n border-radius: 30%;\n cursor: pointer;\n}\n.ff-date-picker .ff-calendar .ff-calendar-nav-button:disabled {\n cursor: auto;\n opacity: 0.5;\n}\n.ff-date-picker .ff-calendar .ff-calendar-haeder {\n display: flex;\n align-items: center;\n gap: 5px;\n color: var(--text-color);\n}\n.ff-date-picker .ff-calendar .ff-custom-year_grid,\n.ff-date-picker .ff-calendar .ff-custom-month_grid {\n width: calc((var(--rdp-day-width) + 4px) * 7);\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 10px;\n padding: 5px;\n max-width: 100%;\n}\n.ff-date-picker .ff-calendar .ff-custom-year_grid .ff-custom-year,\n.ff-date-picker .ff-calendar .ff-custom-year_grid .ff-custom-month,\n.ff-date-picker .ff-calendar .ff-custom-month_grid .ff-custom-year,\n.ff-date-picker .ff-calendar .ff-custom-month_grid .ff-custom-month {\n padding: 10px 0;\n text-align: center;\n cursor: pointer;\n border-radius: 8px;\n background-color: #f9f9f9;\n}\n.ff-date-picker .ff-calendar .ff-custom-year_grid .ff-custom-year--selected,\n.ff-date-picker .ff-calendar .ff-custom-year_grid .ff-custom-month--selected,\n.ff-date-picker .ff-calendar .ff-custom-month_grid .ff-custom-year--selected,\n.ff-date-picker .ff-calendar .ff-custom-month_grid .ff-custom-month--selected {\n background-color: var(--brand-color);\n color: var(--primary-button-text-color);\n}\n.ff-date-picker .ff-calendar .ff-custom-year_grid .ff-custom-year--disabled,\n.ff-date-picker .ff-calendar .ff-custom-year_grid .ff-custom-month--disabled,\n.ff-date-picker .ff-calendar .ff-custom-month_grid .ff-custom-year--disabled,\n.ff-date-picker .ff-calendar .ff-custom-month_grid .ff-custom-month--disabled {\n color: var(--text-color-light);\n cursor: default;\n}\n.ff-date-picker .ff-calendar .ff-custom-year_grid .ff-custom-year--disabled.ff-custom-month--selected, .ff-date-picker .ff-calendar .ff-custom-year_grid .ff-custom-year--disabled.ff-custom-year--selected,\n.ff-date-picker .ff-calendar .ff-custom-year_grid .ff-custom-month--disabled.ff-custom-month--selected,\n.ff-date-picker .ff-calendar .ff-custom-year_grid .ff-custom-month--disabled.ff-custom-year--selected,\n.ff-date-picker .ff-calendar .ff-custom-month_grid .ff-custom-year--disabled.ff-custom-month--selected,\n.ff-date-picker .ff-calendar .ff-custom-month_grid .ff-custom-year--disabled.ff-custom-year--selected,\n.ff-date-picker .ff-calendar .ff-custom-month_grid .ff-custom-month--disabled.ff-custom-month--selected,\n.ff-date-picker .ff-calendar .ff-custom-month_grid .ff-custom-month--disabled.ff-custom-year--selected {\n background-color: var(--disable-color);\n}\n.ff-date-picker .ff-calendar .rdp-weekdays th {\n color: #6f7c8e;\n font-weight: 400;\n}\n.ff-date-picker .ff-calendar .rdp-day {\n padding: 2px;\n font-weight: 500;\n}\n.ff-date-picker .ff-calendar .rdp-day_button {\n border-radius: 4px;\n padding: 3px 9px;\n}\n.ff-date-picker .ff-calendar .rdp-day_button:hover {\n background-color: var(--hover-color);\n}\n.ff-date-picker .ff-calendar .rdp-selected {\n font: inherit;\n}\n.ff-date-picker .ff-calendar .rdp-selected .rdp-day_button {\n background: var(--rdp-accent-color);\n color: var(--drawer-footer-bg);\n border: none;\n}\n.ff-date-picker .ff-calendar .rdp-today:not(.rdp-outside) .rdp-day_button {\n border: 2px solid var(--rdp-accent-color);\n}\n.ff-date-picker .ff-time-picker-container {\n position: relative;\n width: 150px;\n height: 100%;\n overflow-y: hidden;\n border-left: 1px solid #ccc;\n padding: 10px 5px;\n box-sizing: border-box;\n}\n.ff-date-picker .ff-time-picker-container::-webkit-scrollbar {\n display: none;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields {\n display: flex;\n height: 14%;\n width: 100%;\n margin-bottom: 5px;\n box-sizing: border-box;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container {\n display: flex;\n border: 1px solid var(--border-color);\n border-right: 0;\n border-radius: 4px 0 0 4px;\n width: 55%;\n position: relative;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container .ff-time-input {\n border: none;\n padding: 5px;\n width: 100%;\n text-align: center;\n border-radius: 4px 0 0 4px;\n font-weight: 400;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container .ff-time-input::placeholder {\n opacity: 0;\n line-height: 18px;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container .ff-time-input-label {\n position: absolute;\n left: 10px;\n top: 50%;\n transform: translateY(-50%);\n transition: 0.2s ease all;\n color: var(--input-default-label-color);\n pointer-events: none;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container--float .ff-time-input-label {\n top: 0;\n left: 5px;\n color: var(--brand-color);\n background-color: var(--input-label-bg-color);\n line-height: 12px;\n padding: 0 2px;\n font-size: 8px !important;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container--float .ff-time-input-label--danger {\n color: var(--input-error-text-color);\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container:hover {\n border-color: var(--input-hover-border-color);\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container:focus-within {\n border-color: var(--brand-color);\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container:focus-within .ff-time-input-label {\n top: 0;\n left: 5px;\n color: var(--brand-color);\n background-color: var(--input-label-bg-color);\n line-height: 12px;\n padding: 0 2px;\n font-size: 8px !important;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container:focus-within .ff-time-input-label--danger {\n color: var(--input-error-text-color);\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container:focus-within .ff-time-input::placeholder {\n opacity: 1;\n margin-bottom: 1px;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container--danger {\n border-color: var(--input-error-text-color) !important;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container .ff-time-input:focus {\n outline: none;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-period-container {\n position: relative;\n width: 45%;\n display: flex;\n border: 1px solid var(--border-color);\n border-radius: 0 4px 4px 0;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-period-container .ff-time-period-select {\n display: flex;\n align-items: center;\n padding: 0 5px;\n width: 100%;\n border-radius: 4px;\n background-color: white;\n cursor: pointer;\n border: none;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-period-container--active {\n border-color: var(--brand-color) !important;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-period-container:hover {\n border-color: var(--input-hover-border-color);\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-period-container .ff-time-period-icon {\n margin-left: auto;\n pointer-events: none;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-period-container .ff-time-period-icon svg path {\n fill: var(--default-icon-color);\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-period-container:hover svg path {\n fill: var(--brand-color);\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-period-container .ff-time-period-options {\n position: fixed;\n z-index: 100;\n min-width: 60px;\n margin: 4px 0 0;\n padding: 0;\n list-style: none;\n border: 1px solid var(--ff-select-background-color);\n border-radius: 4px;\n background-color: var(--primary-button-text-color);\n box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1);\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-period-container .ff-option-item {\n padding: 8px;\n color: var(--text-color);\n border-radius: 4px;\n cursor: pointer;\n transition: background-color 0.2s ease;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-period-container .ff-option-item:hover {\n background-color: var(--ff-select-option-hover-color);\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-options {\n height: 86%;\n overflow-y: auto;\n padding-right: 5px;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-options::-webkit-scrollbar {\n width: 4px;\n height: 12px;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-options::-webkit-scrollbar-thumb {\n background-color: var(--ff-select-scroll-thumb-color);\n border-radius: 4px;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-options::-webkit-scrollbar-track {\n background-color: var(--hover-color);\n border-radius: 4px;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-options .ff-time-option {\n padding: 10px 12px;\n cursor: pointer;\n text-align: center;\n border-radius: 8px;\n background-color: rgb(249, 249, 249);\n margin: 10px 0;\n}\n\n/* Variables declaration */\n/* prettier-ignore */\n.rdp-root {\n --rdp-accent-color: blue; /* The accent color used for selected days and UI elements. */\n --rdp-accent-background-color: #f0f0ff; /* The accent background color used for selected days and UI elements. */\n --rdp-font-family: system-ui; /* The font family used by the calendar. Note that `inherit`does not work here. */\n --rdp-day-font: inherit; /* The font used for the day cells. */\n --rdp-day-height: 2.75rem; /* The height of the day cells. */\n --rdp-day-width: 2.75rem; /* The width of the day cells. */\n --rdp-day_button-border-radius: 100%; /* The border radius of the day cells. */\n --rdp-day_button-border: 2px solid transparent; /* The border of the day cells. */\n --rdp-day_button-height: var(--rdp-day-height); /* The height of the day cells. */\n --rdp-day_button-width: var(--rdp-day-width); /* The width of the day cells. */\n --rdp-selected-border: 2px solid var(--rdp-accent-color); /* The border of the selected days. */\n --rdp-selected-font: bold large var(--rdp-font-family); /* The font of the selected days. */\n --rdp-disabled-opacity: 0.5; /* The opacity of the disabled days. */\n --rdp-outside-opacity: 0.75; /* The opacity of the days outside the current month. */\n --rdp-today-color: var(--rdp-accent-color); /* The color of the today's date. */\n --rdp-dropdown-gap: 0.5rem; /* The gap between the dropdowns used in the month captons. */\n --rdp-month_caption-font: bold larger var(--rdp-font-family); /* The font of the month caption. */\n --rdp-months-gap: 2rem; /* The gap between the months in the multi-month view. */\n --rdp-nav_button-disabled-opacity: 0.5; /* The opacity of the disabled navigation buttons. */\n --rdp-nav_button-height: 2.25rem; /* The height of the navigation buttons. */\n --rdp-nav_button-width: 2.25rem; /* The width of the navigation buttons. */\n --rdp-nav-height: 2.75rem; /* The height of the navigation bar. */\n --rdp-range_middle-background-color: var(--rdp-accent-background-color); /* The color of the background for days in the middle of a range. */\n --rdp-range_middle-font: normal medium var(--rdp-font-family); /* The font for days in the middle of a range. */\n --rdp-range_middle-foreground-color: white; /* The font for days in the middle of a range. */\n --rdp-range_middle-color: inherit; /* The color of the range text. */\n --rdp-range_start-color: white; /* The color of the range text. */\n --rdp-range_start-background: linear-gradient(var(--rdp-gradient-direction), transparent 50%, var(--rdp-range_middle-background-color) 50%); /* Used for the background of the start of the selected range. */\n --rdp-range_start-date-background-color: var(--rdp-accent-color); /* The background color of the date when at the start of the selected range. */\n --rdp-range_end-background: linear-gradient(var(--rdp-gradient-direction), var(--rdp-range_middle-background-color) 50%, transparent 50%); /* Used for the background of the end of the selected range. */\n --rdp-range_end-color: white; /* The color of the range text. */\n --rdp-range_end-date-background-color: var(--rdp-accent-color); /* The background color of the date when at the end of the selected range. */\n --rdp-week_number-border-radius: 100%; /* The border radius of the week number. */\n --rdp-week_number-border: 2px solid transparent; /* The border of the week number. */\n --rdp-week_number-font: 400 small var(--rdp-font-family); /* The font of the week number cells. */\n --rdp-week_number-height: var(--rdp-day-height); /* The height of the week number cells. */\n --rdp-week_number-opacity: 0.75; /* The opacity of the week number. */\n --rdp-week_number-width: var(--rdp-day-width); /* The width of the week number cells. */\n --rdp-weeknumber-text-align: center; /* The text alignment of the weekday cells. */\n --rdp-weekday-font: 500 smaller var(--rdp-font-family); /* The font of the weekday. */\n --rdp-weekday-opacity: 0.75; /* The opacity of the weekday. */\n --rdp-weekday-padding: 0.5rem 0rem; /* The padding of the weekday. */\n --rdp-weekday-text-align: center; /* The text alignment of the weekday cells. */\n --rdp-gradient-direction: 90deg;\n}\n\n.rdp-root[dir=rtl] {\n --rdp-gradient-direction: -90deg;\n}\n\n/* Root of the component. */\n.rdp-root {\n position: relative; /* Required to position the navigation toolbar. */\n box-sizing: border-box;\n}\n\n.rdp-root * {\n box-sizing: border-box;\n}\n\n.rdp-day {\n width: var(--rdp-day-width);\n height: var(--rdp-day-height);\n font: var(--rdp-day-font);\n text-align: center;\n}\n\n.rdp-day_button {\n background: none;\n padding: 0;\n margin: 0;\n cursor: pointer;\n font: inherit;\n color: inherit;\n justify-content: center;\n align-items: center;\n display: flex;\n width: var(--rdp-day_button-width);\n height: var(--rdp-day_button-height);\n border: var(--rdp-day_button-border);\n border-radius: var(--rdp-day_button-border-radius);\n}\n\n.rdp-day_button:disabled {\n cursor: revert;\n}\n\n.rdp-caption_label {\n z-index: 1;\n position: relative;\n display: inline-flex;\n align-items: center;\n white-space: nowrap;\n border: 0;\n}\n\n.rdp-button_next,\n.rdp-button_previous {\n border: none;\n background: none;\n padding: 0;\n margin: 0;\n cursor: pointer;\n font: inherit;\n color: inherit;\n -moz-appearance: none;\n -webkit-appearance: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n position: relative;\n appearance: none;\n width: var(--rdp-nav_button-width);\n height: var(--rdp-nav_button-height);\n}\n\n.rdp-button_next:disabled,\n.rdp-button_previous:disabled {\n cursor: revert;\n opacity: var(--rdp-nav_button-disabled-opacity);\n}\n\n.rdp-chevron {\n display: inline-block;\n fill: var(--rdp-accent-color);\n}\n\n.rdp-root[dir=rtl] .rdp-nav .rdp-chevron {\n transform: rotate(180deg);\n}\n\n.rdp-root[dir=rtl] .rdp-nav .rdp-chevron {\n transform: rotate(180deg);\n transform-origin: 50%;\n}\n\n.rdp-dropdowns {\n position: relative;\n display: inline-flex;\n align-items: center;\n gap: var(--rdp-dropdown-gap);\n}\n\n.rdp-dropdown {\n z-index: 2;\n /* Reset */\n opacity: 0;\n appearance: none;\n position: absolute;\n inset-block-start: 0;\n inset-block-end: 0;\n inset-inline-start: 0;\n width: 100%;\n margin: 0;\n padding: 0;\n cursor: inherit;\n border: none;\n line-height: inherit;\n}\n\n.rdp-dropdown_root {\n position: relative;\n display: inline-flex;\n align-items: center;\n}\n\n.rdp-dropdown_root[data-disabled=true] .rdp-chevron {\n opacity: var(--rdp-disabled-opacity);\n}\n\n.rdp-month_caption {\n display: flex;\n align-content: center;\n height: var(--rdp-nav-height);\n font: var(--rdp-month_caption-font);\n}\n\n.rdp-months {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n gap: var(--rdp-months-gap);\n max-width: fit-content;\n}\n\n.rdp-month_grid {\n border-collapse: collapse;\n}\n\n.rdp-nav {\n position: absolute;\n inset-block-start: 0;\n inset-inline-end: 0;\n display: flex;\n align-items: center;\n height: var(--rdp-nav-height);\n}\n\n.rdp-weekday {\n opacity: var(--rdp-weekday-opacity);\n padding: var(--rdp-weekday-padding);\n font: var(--rdp-weekday-font);\n text-align: var(--rdp-weekday-text-align);\n text-transform: var(--rdp-weekday-text-transform);\n}\n\n.rdp-week_number {\n opacity: var(--rdp-week_number-opacity);\n font: var(--rdp-week_number-font);\n height: var(--rdp-week_number-height);\n width: var(--rdp-week_number-width);\n border: var(--rdp-week_number-border);\n border-radius: var(--rdp-week_number-border-radius);\n text-align: var(--rdp-weeknumber-text-align);\n}\n\n/* DAY MODIFIERS */\n.rdp-today:not(.rdp-outside) {\n color: var(--rdp-today-color);\n}\n\n.rdp-selected {\n font: var(--rdp-selected-font);\n}\n\n.rdp-selected .rdp-day_button {\n border: var(--rdp-selected-border);\n}\n\n.rdp-outside {\n opacity: var(--rdp-outside-opacity);\n}\n\n.rdp-disabled {\n opacity: var(--rdp-disabled-opacity);\n}\n\n.rdp-hidden {\n visibility: hidden;\n color: var(--rdp-range_start-color);\n}\n\n.rdp-range_start {\n background: var(--rdp-range_start-background);\n}\n\n.rdp-range_start .rdp-day_button {\n background-color: var(--rdp-range_start-date-background-color);\n color: var(--rdp-range_start-color);\n}\n\n.rdp-range_middle {\n background-color: var(--rdp-range_middle-background-color);\n font: var(--rdp-range_middle-font);\n}\n\n.rdp-range_middle .rdp-day_button {\n border-color: transparent;\n border: unset;\n border-radius: unset;\n color: var(--rdp-range_middle-color);\n}\n\n.rdp-range_end {\n background: var(--rdp-range_end-background);\n color: var(--rdp-range_end-color);\n}\n\n.rdp-range_end .rdp-day_button {\n color: var(--rdp-range_start-color);\n background-color: var(--rdp-range_end-date-background-color);\n}\n\n.rdp-range_start.rdp-range_end {\n background: revert;\n}\n\n.rdp-focusable {\n cursor: pointer;\n}";
20678
+ var css_248z$K = "@import 'react-day-picker/style.css';\n.fontXs, .ff-date-picker .ff-datepicker-input-container .ff-input-with-icon .ff-date-input,\n.ff-date-picker .ff-datepicker-input-container .ff-input-with-icon .ff-time-input {\n font-family: \"Poppins\";\n font-size: 10px;\n}\n\n.fontSm, .ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container .ff-time-input {\n font-family: \"Poppins\";\n font-size: 12px;\n}\n\n.fontMd {\n font-family: \"Poppins\";\n font-size: 14px;\n}\n\n.fontLg {\n font-family: \"Poppins\";\n font-size: 16px;\n}\n\n.fontXL {\n font-family: \"Poppins\";\n font-size: 18px;\n}\n\n.font2Xl {\n font-family: \"Poppins\";\n font-size: 24px;\n}\n\n.font-size-8, .ff-date-picker .ff-datepicker-input-container .ff-date-input-field .ff-date-input-message {\n font-family: \"Poppins\";\n font-size: 8px;\n}\n\n.font-size-20 {\n font-family: \"Poppins\";\n font-size: 20px;\n}\n\n.font-size-32 {\n font-family: \"Poppins\";\n font-size: 32px;\n}\n\n.font-size-80 {\n font-family: \"Poppins\";\n font-size: 80px;\n}\n\n/* Custom date picker styling */\n.ff-date-picker {\n position: relative;\n}\n.ff-date-picker .rdp-root {\n --rdp-accent-color: var(--brand-color);\n --rdp-day-height: 24px;\n --rdp-day-width: 36px;\n --rdp-day_button-height: 24px;\n --rdp-day_button-width: 36px;\n font-family: \"Poppins\";\n font-size: 12px;\n --rdp-font-family: \"Poppins\", sans-serif;\n}\n.ff-date-picker .ff-cursor-pointer {\n cursor: pointer;\n}\n.ff-date-picker .ff-datepicker-input-container {\n display: flex;\n gap: 10px;\n}\n.ff-date-picker .ff-datepicker-input-container .ff-input-with-icon {\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n}\n.ff-date-picker .ff-datepicker-input-container .ff-input-with-icon .ff-date-input,\n.ff-date-picker .ff-datepicker-input-container .ff-input-with-icon .ff-time-input {\n padding: 4px 8px;\n padding-left: 2rem;\n height: 32px;\n border-radius: 5px;\n border: 1px solid var(--border-color);\n color: var(--status-skipped-text-color);\n line-height: 15px;\n box-sizing: border-box;\n}\n.ff-date-picker .ff-datepicker-input-container .ff-input-with-icon .ff-date-input:focus,\n.ff-date-picker .ff-datepicker-input-container .ff-input-with-icon .ff-time-input:focus {\n outline: none;\n}\n.ff-date-picker .ff-datepicker-input-container .ff-input-with-icon .ff-calendar-icon,\n.ff-date-picker .ff-datepicker-input-container .ff-input-with-icon .ff-clock-icon {\n position: absolute;\n top: 50%;\n transform: translate(25%, -50%);\n display: flex;\n align-items: center;\n pointer-events: none;\n}\n.ff-date-picker .ff-datepicker-input-container .ff-date-input-field {\n flex: 1;\n}\n.ff-date-picker .ff-datepicker-input-container .ff-date-input-field .ff-date-input {\n width: 100%;\n}\n.ff-date-picker .ff-datepicker-input-container .ff-date-input-field .ff-date-input-message {\n padding: 0px 4px;\n margin-left: 8px;\n line-height: 12px;\n}\n.ff-date-picker .ff-datepicker-input-container .ff-date-input-field .ff-date-input-message--danger {\n color: var(--input-error-text-color);\n}\n.ff-date-picker .ff-datepicker-input-container .ff-time-input-field {\n flex: 0 0 120px;\n}\n.ff-date-picker .ff-datepicker-input-container .ff-time-input-field .ff-time-input {\n width: 100%;\n}\n.ff-date-picker .ff-date-picker-container {\n display: flex;\n flex-direction: column;\n position: fixed;\n border-radius: 8px;\n padding: 4px;\n box-sizing: border-box;\n background-color: var(--tab-bg-color);\n box-shadow: 0 0 12px 0 rgba(0, 0, 0, 0.2);\n gap: 8px;\n}\n.ff-date-picker .ff-date-picker-container .ff-calendar-container {\n display: flex;\n align-items: flex-start;\n gap: 4px;\n height: 240px;\n}\n.ff-date-picker .ff-date-picker-container .ff-date-picker-controls {\n padding: 4px;\n display: flex;\n justify-content: end;\n gap: 8px;\n border-top: 1px solid var(--border-color);\n}\n.ff-date-picker .ff-date-picker-container .ff-date-picker-controls .ff-date-picker-button {\n font-weight: 600;\n line-height: 15px;\n}\n.ff-date-picker .ff-calendar .ff-calendar-nav-button {\n margin: 0 5px;\n border: 1px solid var(--border-color);\n background-color: var(--toggle-button-bg-color);\n box-shadow: 0 -1px 2px 0 var(--ff-mini-modal-box-shadow);\n padding: 0px;\n border-radius: 30%;\n cursor: pointer;\n}\n.ff-date-picker .ff-calendar .ff-calendar-nav-button:disabled {\n cursor: auto;\n opacity: 0.5;\n}\n.ff-date-picker .ff-calendar .ff-calendar-haeder {\n display: flex;\n align-items: center;\n gap: 5px;\n color: var(--text-color);\n}\n.ff-date-picker .ff-calendar .ff-custom-year_grid,\n.ff-date-picker .ff-calendar .ff-custom-month_grid {\n width: calc((var(--rdp-day-width) + 4px) * 7);\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 10px;\n padding: 5px;\n max-width: 100%;\n}\n.ff-date-picker .ff-calendar .ff-custom-year_grid .ff-custom-year,\n.ff-date-picker .ff-calendar .ff-custom-year_grid .ff-custom-month,\n.ff-date-picker .ff-calendar .ff-custom-month_grid .ff-custom-year,\n.ff-date-picker .ff-calendar .ff-custom-month_grid .ff-custom-month {\n padding: 10px 0;\n text-align: center;\n cursor: pointer;\n border-radius: 8px;\n background-color: #f9f9f9;\n}\n.ff-date-picker .ff-calendar .ff-custom-year_grid .ff-custom-year--selected,\n.ff-date-picker .ff-calendar .ff-custom-year_grid .ff-custom-month--selected,\n.ff-date-picker .ff-calendar .ff-custom-month_grid .ff-custom-year--selected,\n.ff-date-picker .ff-calendar .ff-custom-month_grid .ff-custom-month--selected {\n background-color: var(--brand-color);\n color: var(--primary-button-text-color);\n}\n.ff-date-picker .ff-calendar .ff-custom-year_grid .ff-custom-year--disabled,\n.ff-date-picker .ff-calendar .ff-custom-year_grid .ff-custom-month--disabled,\n.ff-date-picker .ff-calendar .ff-custom-month_grid .ff-custom-year--disabled,\n.ff-date-picker .ff-calendar .ff-custom-month_grid .ff-custom-month--disabled {\n color: var(--text-color-light);\n cursor: default;\n}\n.ff-date-picker .ff-calendar .ff-custom-year_grid .ff-custom-year--disabled.ff-custom-month--selected, .ff-date-picker .ff-calendar .ff-custom-year_grid .ff-custom-year--disabled.ff-custom-year--selected,\n.ff-date-picker .ff-calendar .ff-custom-year_grid .ff-custom-month--disabled.ff-custom-month--selected,\n.ff-date-picker .ff-calendar .ff-custom-year_grid .ff-custom-month--disabled.ff-custom-year--selected,\n.ff-date-picker .ff-calendar .ff-custom-month_grid .ff-custom-year--disabled.ff-custom-month--selected,\n.ff-date-picker .ff-calendar .ff-custom-month_grid .ff-custom-year--disabled.ff-custom-year--selected,\n.ff-date-picker .ff-calendar .ff-custom-month_grid .ff-custom-month--disabled.ff-custom-month--selected,\n.ff-date-picker .ff-calendar .ff-custom-month_grid .ff-custom-month--disabled.ff-custom-year--selected {\n background-color: var(--disable-color);\n}\n.ff-date-picker .ff-calendar .rdp-weekdays th {\n color: #6f7c8e;\n font-weight: 400;\n}\n.ff-date-picker .ff-calendar .rdp-day {\n padding: 2px;\n font-weight: 500;\n}\n.ff-date-picker .ff-calendar .rdp-day_button {\n border-radius: 4px;\n padding: 3px 9px;\n}\n.ff-date-picker .ff-calendar .rdp-day_button:hover {\n background-color: var(--hover-color);\n}\n.ff-date-picker .ff-calendar .rdp-selected {\n font: inherit;\n}\n.ff-date-picker .ff-calendar .rdp-selected .rdp-day_button {\n background: var(--rdp-accent-color);\n color: var(--drawer-footer-bg);\n border: none;\n}\n.ff-date-picker .ff-calendar .rdp-today:not(.rdp-outside) .rdp-day_button {\n border: 2px solid var(--rdp-accent-color);\n}\n.ff-date-picker .ff-time-picker-container {\n position: relative;\n width: 150px;\n height: 100%;\n overflow-y: hidden;\n border-left: 1px solid #ccc;\n padding: 10px 5px;\n box-sizing: border-box;\n}\n.ff-date-picker .ff-time-picker-container::-webkit-scrollbar {\n display: none;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields {\n display: flex;\n height: 14%;\n width: 100%;\n margin-bottom: 5px;\n box-sizing: border-box;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container {\n display: flex;\n border: 1px solid var(--border-color);\n border-right: 0;\n border-radius: 4px 0 0 4px;\n width: 55%;\n position: relative;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container .ff-time-input {\n border: none;\n padding: 5px;\n width: 100%;\n text-align: center;\n border-radius: 4px 0 0 4px;\n font-weight: 400;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container .ff-time-input::placeholder {\n opacity: 0;\n line-height: 18px;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container .ff-time-input-label {\n position: absolute;\n left: 10px;\n top: 50%;\n transform: translateY(-50%);\n transition: 0.2s ease all;\n color: var(--input-default-label-color);\n pointer-events: none;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container--float .ff-time-input-label {\n top: 0;\n left: 5px;\n color: var(--brand-color);\n background-color: var(--input-label-bg-color);\n line-height: 12px;\n padding: 0 2px;\n font-size: 8px !important;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container--float .ff-time-input-label--danger {\n color: var(--input-error-text-color);\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container:hover {\n border-color: var(--input-hover-border-color);\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container:focus-within {\n border-color: var(--brand-color);\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container:focus-within .ff-time-input-label {\n top: 0;\n left: 5px;\n color: var(--brand-color);\n background-color: var(--input-label-bg-color);\n line-height: 12px;\n padding: 0 2px;\n font-size: 8px !important;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container:focus-within .ff-time-input-label--danger {\n color: var(--input-error-text-color);\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container:focus-within .ff-time-input::placeholder {\n opacity: 1;\n margin-bottom: 1px;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container--danger {\n border-color: var(--input-error-text-color) !important;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-input-container .ff-time-input:focus {\n outline: none;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-period-container {\n position: relative;\n width: 45%;\n display: flex;\n border: 1px solid var(--border-color);\n border-radius: 0 4px 4px 0;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-period-container .ff-time-period-select {\n display: flex;\n align-items: center;\n padding: 0 5px;\n width: 100%;\n border-radius: 4px;\n background-color: white;\n cursor: pointer;\n border: none;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-period-container--active {\n border-color: var(--brand-color) !important;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-period-container:hover {\n border-color: var(--input-hover-border-color);\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-period-container .ff-time-period-icon {\n margin-left: auto;\n pointer-events: none;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-period-container .ff-time-period-icon svg path {\n fill: var(--default-icon-color);\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-period-container:hover svg path {\n fill: var(--brand-color);\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-period-container .ff-time-period-options {\n position: fixed;\n z-index: 100;\n min-width: 60px;\n margin: 4px 0 0;\n padding: 0;\n list-style: none;\n border: 1px solid var(--ff-select-background-color);\n border-radius: 4px;\n background-color: var(--primary-button-text-color);\n box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1);\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-period-container .ff-option-item {\n padding: 8px;\n color: var(--text-color);\n border-radius: 4px;\n cursor: pointer;\n transition: background-color 0.2s ease;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-fields .ff-time-period-container .ff-option-item:hover {\n background-color: var(--ff-select-option-hover-color);\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-options {\n height: 86%;\n overflow-y: auto;\n padding-right: 5px;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-options::-webkit-scrollbar {\n width: 4px;\n height: 12px;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-options::-webkit-scrollbar-thumb {\n background-color: var(--ff-select-scroll-thumb-color);\n border-radius: 4px;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-options::-webkit-scrollbar-track {\n background-color: var(--hover-color);\n border-radius: 4px;\n}\n.ff-date-picker .ff-time-picker-container .ff-time-picker-options .ff-time-option {\n padding: 10px 12px;\n cursor: pointer;\n text-align: center;\n border-radius: 8px;\n background-color: rgb(249, 249, 249);\n margin: 10px 0;\n}\n\n/* Variables declaration */\n/* prettier-ignore */\n.rdp-root {\n --rdp-accent-color: blue; /* The accent color used for selected days and UI elements. */\n --rdp-accent-background-color: #f0f0ff; /* The accent background color used for selected days and UI elements. */\n --rdp-font-family: system-ui; /* The font family used by the calendar. Note that `inherit`does not work here. */\n --rdp-day-font: inherit; /* The font used for the day cells. */\n --rdp-day-height: 2.75rem; /* The height of the day cells. */\n --rdp-day-width: 2.75rem; /* The width of the day cells. */\n --rdp-day_button-border-radius: 100%; /* The border radius of the day cells. */\n --rdp-day_button-border: 2px solid transparent; /* The border of the day cells. */\n --rdp-day_button-height: var(--rdp-day-height); /* The height of the day cells. */\n --rdp-day_button-width: var(--rdp-day-width); /* The width of the day cells. */\n --rdp-selected-border: 2px solid var(--rdp-accent-color); /* The border of the selected days. */\n --rdp-selected-font: bold large var(--rdp-font-family); /* The font of the selected days. */\n --rdp-disabled-opacity: 0.5; /* The opacity of the disabled days. */\n --rdp-outside-opacity: 0.75; /* The opacity of the days outside the current month. */\n --rdp-today-color: var(--rdp-accent-color); /* The color of the today's date. */\n --rdp-dropdown-gap: 0.5rem; /* The gap between the dropdowns used in the month captons. */\n --rdp-month_caption-font: bold larger var(--rdp-font-family); /* The font of the month caption. */\n --rdp-months-gap: 2rem; /* The gap between the months in the multi-month view. */\n --rdp-nav_button-disabled-opacity: 0.5; /* The opacity of the disabled navigation buttons. */\n --rdp-nav_button-height: 2.25rem; /* The height of the navigation buttons. */\n --rdp-nav_button-width: 2.25rem; /* The width of the navigation buttons. */\n --rdp-nav-height: 2.75rem; /* The height of the navigation bar. */\n --rdp-range_middle-background-color: var(--rdp-accent-background-color); /* The color of the background for days in the middle of a range. */\n --rdp-range_middle-font: normal medium var(--rdp-font-family); /* The font for days in the middle of a range. */\n --rdp-range_middle-foreground-color: white; /* The font for days in the middle of a range. */\n --rdp-range_middle-color: inherit; /* The color of the range text. */\n --rdp-range_start-color: white; /* The color of the range text. */\n --rdp-range_start-background: linear-gradient(var(--rdp-gradient-direction), transparent 50%, var(--rdp-range_middle-background-color) 50%); /* Used for the background of the start of the selected range. */\n --rdp-range_start-date-background-color: var(--rdp-accent-color); /* The background color of the date when at the start of the selected range. */\n --rdp-range_end-background: linear-gradient(var(--rdp-gradient-direction), var(--rdp-range_middle-background-color) 50%, transparent 50%); /* Used for the background of the end of the selected range. */\n --rdp-range_end-color: white; /* The color of the range text. */\n --rdp-range_end-date-background-color: var(--rdp-accent-color); /* The background color of the date when at the end of the selected range. */\n --rdp-week_number-border-radius: 100%; /* The border radius of the week number. */\n --rdp-week_number-border: 2px solid transparent; /* The border of the week number. */\n --rdp-week_number-font: 400 small var(--rdp-font-family); /* The font of the week number cells. */\n --rdp-week_number-height: var(--rdp-day-height); /* The height of the week number cells. */\n --rdp-week_number-opacity: 0.75; /* The opacity of the week number. */\n --rdp-week_number-width: var(--rdp-day-width); /* The width of the week number cells. */\n --rdp-weeknumber-text-align: center; /* The text alignment of the weekday cells. */\n --rdp-weekday-font: 500 smaller var(--rdp-font-family); /* The font of the weekday. */\n --rdp-weekday-opacity: 0.75; /* The opacity of the weekday. */\n --rdp-weekday-padding: 0.5rem 0rem; /* The padding of the weekday. */\n --rdp-weekday-text-align: center; /* The text alignment of the weekday cells. */\n --rdp-gradient-direction: 90deg;\n}\n\n.rdp-root[dir=rtl] {\n --rdp-gradient-direction: -90deg;\n}\n\n/* Root of the component. */\n.rdp-root {\n position: relative; /* Required to position the navigation toolbar. */\n box-sizing: border-box;\n}\n\n.rdp-root * {\n box-sizing: border-box;\n}\n\n.rdp-day {\n width: var(--rdp-day-width);\n height: var(--rdp-day-height);\n font: var(--rdp-day-font);\n text-align: center;\n}\n\n.rdp-day_button {\n background: none;\n padding: 0;\n margin: 0;\n cursor: pointer;\n font: inherit;\n color: inherit;\n justify-content: center;\n align-items: center;\n display: flex;\n width: var(--rdp-day_button-width);\n height: var(--rdp-day_button-height);\n border: var(--rdp-day_button-border);\n border-radius: var(--rdp-day_button-border-radius);\n}\n\n.rdp-day_button:disabled {\n cursor: revert;\n}\n\n.rdp-caption_label {\n z-index: 1;\n position: relative;\n display: inline-flex;\n align-items: center;\n white-space: nowrap;\n border: 0;\n}\n\n.rdp-button_next,\n.rdp-button_previous {\n border: none;\n background: none;\n padding: 0;\n margin: 0;\n cursor: pointer;\n font: inherit;\n color: inherit;\n -moz-appearance: none;\n -webkit-appearance: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n position: relative;\n appearance: none;\n width: var(--rdp-nav_button-width);\n height: var(--rdp-nav_button-height);\n}\n\n.rdp-button_next:disabled,\n.rdp-button_previous:disabled {\n cursor: revert;\n opacity: var(--rdp-nav_button-disabled-opacity);\n}\n\n.rdp-chevron {\n display: inline-block;\n fill: var(--rdp-accent-color);\n}\n\n.rdp-root[dir=rtl] .rdp-nav .rdp-chevron {\n transform: rotate(180deg);\n}\n\n.rdp-root[dir=rtl] .rdp-nav .rdp-chevron {\n transform: rotate(180deg);\n transform-origin: 50%;\n}\n\n.rdp-dropdowns {\n position: relative;\n display: inline-flex;\n align-items: center;\n gap: var(--rdp-dropdown-gap);\n}\n\n.rdp-dropdown {\n z-index: 2;\n /* Reset */\n opacity: 0;\n appearance: none;\n position: absolute;\n inset-block-start: 0;\n inset-block-end: 0;\n inset-inline-start: 0;\n width: 100%;\n margin: 0;\n padding: 0;\n cursor: inherit;\n border: none;\n line-height: inherit;\n}\n\n.rdp-dropdown_root {\n position: relative;\n display: inline-flex;\n align-items: center;\n}\n\n.rdp-dropdown_root[data-disabled=true] .rdp-chevron {\n opacity: var(--rdp-disabled-opacity);\n}\n\n.rdp-month_caption {\n display: flex;\n align-content: center;\n height: var(--rdp-nav-height);\n font: var(--rdp-month_caption-font);\n}\n\n.rdp-months {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n gap: var(--rdp-months-gap);\n max-width: fit-content;\n}\n\n.rdp-month_grid {\n border-collapse: collapse;\n}\n\n.rdp-nav {\n position: absolute;\n inset-block-start: 0;\n inset-inline-end: 0;\n display: flex;\n align-items: center;\n height: var(--rdp-nav-height);\n}\n\n.rdp-weekday {\n opacity: var(--rdp-weekday-opacity);\n padding: var(--rdp-weekday-padding);\n font: var(--rdp-weekday-font);\n text-align: var(--rdp-weekday-text-align);\n text-transform: var(--rdp-weekday-text-transform);\n}\n\n.rdp-week_number {\n opacity: var(--rdp-week_number-opacity);\n font: var(--rdp-week_number-font);\n height: var(--rdp-week_number-height);\n width: var(--rdp-week_number-width);\n border: var(--rdp-week_number-border);\n border-radius: var(--rdp-week_number-border-radius);\n text-align: var(--rdp-weeknumber-text-align);\n}\n\n/* DAY MODIFIERS */\n.rdp-today:not(.rdp-outside) {\n color: var(--rdp-today-color);\n}\n\n.rdp-selected {\n font: var(--rdp-selected-font);\n}\n\n.rdp-selected .rdp-day_button {\n border: var(--rdp-selected-border);\n}\n\n.rdp-outside {\n opacity: var(--rdp-outside-opacity);\n}\n\n.rdp-disabled {\n opacity: var(--rdp-disabled-opacity);\n}\n\n.rdp-hidden {\n visibility: hidden;\n color: var(--rdp-range_start-color);\n}\n\n.rdp-range_start {\n background: var(--rdp-range_start-background);\n}\n\n.rdp-range_start .rdp-day_button {\n background-color: var(--rdp-range_start-date-background-color);\n color: var(--rdp-range_start-color);\n}\n\n.rdp-range_middle {\n background-color: var(--rdp-range_middle-background-color);\n font: var(--rdp-range_middle-font);\n}\n\n.rdp-range_middle .rdp-day_button {\n border-color: transparent;\n border: unset;\n border-radius: unset;\n color: var(--rdp-range_middle-color);\n}\n\n.rdp-range_end {\n background: var(--rdp-range_end-background);\n color: var(--rdp-range_end-color);\n}\n\n.rdp-range_end .rdp-day_button {\n color: var(--rdp-range_start-color);\n background-color: var(--rdp-range_end-date-background-color);\n}\n\n.rdp-range_start.rdp-range_end {\n background: revert;\n}\n\n.rdp-focusable {\n cursor: pointer;\n}\n\n/* Variables declaration */\n/* prettier-ignore */\n.rdp-root {\n --rdp-accent-color: blue; /* The accent color used for selected days and UI elements. */\n --rdp-accent-background-color: #f0f0ff; /* The accent background color used for selected days and UI elements. */\n --rdp-font-family: system-ui; /* The font family used by the calendar. Note that `inherit`does not work here. */\n --rdp-day-font: inherit; /* The font used for the day cells. */\n --rdp-day-height: 2.75rem; /* The height of the day cells. */\n --rdp-day-width: 2.75rem; /* The width of the day cells. */\n --rdp-day_button-border-radius: 100%; /* The border radius of the day cells. */\n --rdp-day_button-border: 2px solid transparent; /* The border of the day cells. */\n --rdp-day_button-height: var(--rdp-day-height); /* The height of the day cells. */\n --rdp-day_button-width: var(--rdp-day-width); /* The width of the day cells. */\n --rdp-selected-border: 2px solid var(--rdp-accent-color); /* The border of the selected days. */\n --rdp-selected-font: bold large var(--rdp-font-family); /* The font of the selected days. */\n --rdp-disabled-opacity: 0.5; /* The opacity of the disabled days. */\n --rdp-outside-opacity: 0.75; /* The opacity of the days outside the current month. */\n --rdp-today-color: var(--rdp-accent-color); /* The color of the today's date. */\n --rdp-dropdown-gap: 0.5rem; /* The gap between the dropdowns used in the month captons. */\n --rdp-month_caption-font: bold larger var(--rdp-font-family); /* The font of the month caption. */\n --rdp-months-gap: 2rem; /* The gap between the months in the multi-month view. */\n --rdp-nav_button-disabled-opacity: 0.5; /* The opacity of the disabled navigation buttons. */\n --rdp-nav_button-height: 2.25rem; /* The height of the navigation buttons. */\n --rdp-nav_button-width: 2.25rem; /* The width of the navigation buttons. */\n --rdp-nav-height: 2.75rem; /* The height of the navigation bar. */\n --rdp-range_middle-background-color: var(--rdp-accent-background-color); /* The color of the background for days in the middle of a range. */\n --rdp-range_middle-font: normal medium var(--rdp-font-family); /* The font for days in the middle of a range. */\n --rdp-range_middle-foreground-color: white; /* The font for days in the middle of a range. */\n --rdp-range_middle-color: inherit; /* The color of the range text. */\n --rdp-range_start-color: white; /* The color of the range text. */\n --rdp-range_start-background: linear-gradient(var(--rdp-gradient-direction), transparent 50%, var(--rdp-range_middle-background-color) 50%); /* Used for the background of the start of the selected range. */\n --rdp-range_start-date-background-color: var(--rdp-accent-color); /* The background color of the date when at the start of the selected range. */\n --rdp-range_end-background: linear-gradient(var(--rdp-gradient-direction), var(--rdp-range_middle-background-color) 50%, transparent 50%); /* Used for the background of the end of the selected range. */\n --rdp-range_end-color: white; /* The color of the range text. */\n --rdp-range_end-date-background-color: var(--rdp-accent-color); /* The background color of the date when at the end of the selected range. */\n --rdp-week_number-border-radius: 100%; /* The border radius of the week number. */\n --rdp-week_number-border: 2px solid transparent; /* The border of the week number. */\n --rdp-week_number-font: 400 small var(--rdp-font-family); /* The font of the week number cells. */\n --rdp-week_number-height: var(--rdp-day-height); /* The height of the week number cells. */\n --rdp-week_number-opacity: 0.75; /* The opacity of the week number. */\n --rdp-week_number-width: var(--rdp-day-width); /* The width of the week number cells. */\n --rdp-weeknumber-text-align: center; /* The text alignment of the weekday cells. */\n --rdp-weekday-font: 500 smaller var(--rdp-font-family); /* The font of the weekday. */\n --rdp-weekday-opacity: 0.75; /* The opacity of the weekday. */\n --rdp-weekday-padding: 0.5rem 0rem; /* The padding of the weekday. */\n --rdp-weekday-text-align: center; /* The text alignment of the weekday cells. */\n --rdp-gradient-direction: 90deg;\n}\n\n.rdp-root[dir=rtl] {\n --rdp-gradient-direction: -90deg;\n}\n\n/* Root of the component. */\n.rdp-root {\n position: relative; /* Required to position the navigation toolbar. */\n box-sizing: border-box;\n}\n\n.rdp-root * {\n box-sizing: border-box;\n}\n\n.rdp-day {\n width: var(--rdp-day-width);\n height: var(--rdp-day-height);\n font: var(--rdp-day-font);\n text-align: center;\n}\n\n.rdp-day_button {\n background: none;\n padding: 0;\n margin: 0;\n cursor: pointer;\n font: inherit;\n color: inherit;\n justify-content: center;\n align-items: center;\n display: flex;\n width: var(--rdp-day_button-width);\n height: var(--rdp-day_button-height);\n border: var(--rdp-day_button-border);\n border-radius: var(--rdp-day_button-border-radius);\n}\n\n.rdp-day_button:disabled {\n cursor: revert;\n}\n\n.rdp-caption_label {\n z-index: 1;\n position: relative;\n display: inline-flex;\n align-items: center;\n white-space: nowrap;\n border: 0;\n}\n\n.rdp-button_next,\n.rdp-button_previous {\n border: none;\n background: none;\n padding: 0;\n margin: 0;\n cursor: pointer;\n font: inherit;\n color: inherit;\n -moz-appearance: none;\n -webkit-appearance: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n position: relative;\n appearance: none;\n width: var(--rdp-nav_button-width);\n height: var(--rdp-nav_button-height);\n}\n\n.rdp-button_next:disabled,\n.rdp-button_previous:disabled {\n cursor: revert;\n opacity: var(--rdp-nav_button-disabled-opacity);\n}\n\n.rdp-chevron {\n display: inline-block;\n fill: var(--rdp-accent-color);\n}\n\n.rdp-root[dir=rtl] .rdp-nav .rdp-chevron {\n transform: rotate(180deg);\n}\n\n.rdp-root[dir=rtl] .rdp-nav .rdp-chevron {\n transform: rotate(180deg);\n transform-origin: 50%;\n}\n\n.rdp-dropdowns {\n position: relative;\n display: inline-flex;\n align-items: center;\n gap: var(--rdp-dropdown-gap);\n}\n\n.rdp-dropdown {\n z-index: 2;\n /* Reset */\n opacity: 0;\n appearance: none;\n position: absolute;\n inset-block-start: 0;\n inset-block-end: 0;\n inset-inline-start: 0;\n width: 100%;\n margin: 0;\n padding: 0;\n cursor: inherit;\n border: none;\n line-height: inherit;\n}\n\n.rdp-dropdown_root {\n position: relative;\n display: inline-flex;\n align-items: center;\n}\n\n.rdp-dropdown_root[data-disabled=true] .rdp-chevron {\n opacity: var(--rdp-disabled-opacity);\n}\n\n.rdp-month_caption {\n display: flex;\n align-content: center;\n height: var(--rdp-nav-height);\n font: var(--rdp-month_caption-font);\n}\n\n.rdp-months {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n gap: var(--rdp-months-gap);\n max-width: fit-content;\n}\n\n.rdp-month_grid {\n border-collapse: collapse;\n}\n\n.rdp-nav {\n position: absolute;\n inset-block-start: 0;\n inset-inline-end: 0;\n display: flex;\n align-items: center;\n height: var(--rdp-nav-height);\n}\n\n.rdp-weekday {\n opacity: var(--rdp-weekday-opacity);\n padding: var(--rdp-weekday-padding);\n font: var(--rdp-weekday-font);\n text-align: var(--rdp-weekday-text-align);\n text-transform: var(--rdp-weekday-text-transform);\n}\n\n.rdp-week_number {\n opacity: var(--rdp-week_number-opacity);\n font: var(--rdp-week_number-font);\n height: var(--rdp-week_number-height);\n width: var(--rdp-week_number-width);\n border: var(--rdp-week_number-border);\n border-radius: var(--rdp-week_number-border-radius);\n text-align: var(--rdp-weeknumber-text-align);\n}\n\n/* DAY MODIFIERS */\n.rdp-today:not(.rdp-outside) {\n color: var(--rdp-today-color);\n}\n\n.rdp-selected {\n font: var(--rdp-selected-font);\n}\n\n.rdp-selected .rdp-day_button {\n border: var(--rdp-selected-border);\n}\n\n.rdp-outside {\n opacity: var(--rdp-outside-opacity);\n}\n\n.rdp-disabled {\n opacity: var(--rdp-disabled-opacity);\n}\n\n.rdp-hidden {\n visibility: hidden;\n color: var(--rdp-range_start-color);\n}\n\n.rdp-range_start {\n background: var(--rdp-range_start-background);\n}\n\n.rdp-range_start .rdp-day_button {\n background-color: var(--rdp-range_start-date-background-color);\n color: var(--rdp-range_start-color);\n}\n\n.rdp-range_middle {\n background-color: var(--rdp-range_middle-background-color);\n font: var(--rdp-range_middle-font);\n}\n\n.rdp-range_middle .rdp-day_button {\n border-color: transparent;\n border: unset;\n border-radius: unset;\n color: var(--rdp-range_middle-color);\n}\n\n.rdp-range_end {\n background: var(--rdp-range_end-background);\n color: var(--rdp-range_end-color);\n}\n\n.rdp-range_end .rdp-day_button {\n color: var(--rdp-range_start-color);\n background-color: var(--rdp-range_end-date-background-color);\n}\n\n.rdp-range_start.rdp-range_end {\n background: revert;\n}\n\n.rdp-focusable {\n cursor: pointer;\n}";
20600
20679
  styleInject(css_248z$K);
20601
20680
 
20602
20681
  const CustomDatePicker = ({
@@ -20612,7 +20691,9 @@ const CustomDatePicker = ({
20612
20691
  timeFormat = 'hh:mm a',
20613
20692
  error,
20614
20693
  helperText = '',
20615
- dateOnly = false
20694
+ dateOnly = false,
20695
+ className,
20696
+ zIndex = 10
20616
20697
  }) => {
20617
20698
  const [timeValue, setTimeValue] = React.useState('');
20618
20699
  const [selectedDate, setSelectedDate] = React.useState();
@@ -20620,13 +20701,16 @@ const CustomDatePicker = ({
20620
20701
  const [timeError, setTimeError] = React.useState(false);
20621
20702
  const [selectedMonth, setSelectedMonth] = React.useState(new Date());
20622
20703
  const [view, setView] = React.useState('days');
20704
+ const selectedDateRef = React.useRef(undefined);
20623
20705
  const [startYear, setStartYear] = React.useState(() => {
20624
20706
  const currentYear = selectedMonth?.getFullYear() ?? new Date().getFullYear();
20625
20707
  return currentYear - currentYear % 12; // Set to the first year in the 12-year range
20626
20708
  });
20627
- const [datePickerPosition, setDatePickerPosition] = React.useState('bottom');
20628
20709
  const pickerRef = React.useRef(null); // Ref to track the picker
20629
20710
  const containerRef = React.useRef(null);
20711
+ React.useEffect(() => {
20712
+ selectedDateRef.current = selectedDate;
20713
+ }, [selectedDate]);
20630
20714
  React.useEffect(() => {
20631
20715
  if (value) {
20632
20716
  setTimeValue(formatTimeStr(value));
@@ -20645,23 +20729,26 @@ const CustomDatePicker = ({
20645
20729
  const adjustPosition = () => {
20646
20730
  if (containerRef.current && pickerRef.current) {
20647
20731
  const relativeRect = containerRef.current.getBoundingClientRect();
20648
- const absoluteRect = pickerRef.current.getBoundingClientRect();
20732
+ const pickerHeight = pickerRef.current.offsetHeight;
20733
+ const spacing = 5; // spacing in pixels
20649
20734
  const spaceBelow = window.innerHeight - relativeRect.bottom;
20650
20735
  const spaceAbove = relativeRect.top;
20651
- // Check if there is more space above than below
20652
- if (spaceBelow < absoluteRect.height && spaceAbove >= absoluteRect.height) {
20653
- setDatePickerPosition('top');
20654
- } else {
20655
- setDatePickerPosition('bottom');
20736
+ let top = relativeRect.bottom + window.scrollY + spacing; // Default position to below
20737
+ if (spaceBelow < pickerHeight && spaceAbove >= pickerHeight) {
20738
+ top = relativeRect.top + window.scrollY - pickerHeight - spacing; // Place above
20656
20739
  }
20740
+ // Horizontal position: align to container with optional adjustments
20741
+ const left = relativeRect.left + window.scrollX;
20742
+ pickerRef.current.style.top = `${top}px`;
20743
+ pickerRef.current.style.left = `${left}px`;
20657
20744
  }
20658
20745
  };
20659
- // Initial check
20746
+ // Initial adjustment
20660
20747
  adjustPosition();
20661
- // Adjust position on window resize
20748
+ // Recalculate on resize
20662
20749
  window.addEventListener('resize', adjustPosition);
20663
20750
  return () => window.removeEventListener('resize', adjustPosition);
20664
- }, []);
20751
+ }, [isPickerOpen]);
20665
20752
  const calendarStyle = {
20666
20753
  '--rdp-day-width': calendarWidth ? `${calendarWidth / 7 - 4}px` : undefined
20667
20754
  };
@@ -20695,7 +20782,8 @@ const CustomDatePicker = ({
20695
20782
  }
20696
20783
  };
20697
20784
  const handleSave = () => {
20698
- onChange(selectedDate);
20785
+ console.log('selectedDate1', selectedDateRef.current);
20786
+ onChange(selectedDateRef.current);
20699
20787
  resetAndCloseDatePicker();
20700
20788
  };
20701
20789
  const handleDateInputClick = () => {
@@ -20873,7 +20961,7 @@ const CustomDatePicker = ({
20873
20961
  });
20874
20962
  };
20875
20963
  return jsxRuntime.jsxs("div", {
20876
- className: "ff-date-picker",
20964
+ className: `ff-date-picker ${className}`,
20877
20965
  ref: containerRef,
20878
20966
  children: [jsxRuntime.jsxs("div", {
20879
20967
  className: "ff-datepicker-input-container",
@@ -20917,8 +21005,7 @@ const CustomDatePicker = ({
20917
21005
  className: "ff-date-picker-container",
20918
21006
  ref: pickerRef,
20919
21007
  style: {
20920
- top: datePickerPosition === 'top' ? 'auto' : '110%',
20921
- bottom: datePickerPosition === 'top' ? '110%' : 'auto'
21008
+ zIndex
20922
21009
  },
20923
21010
  children: [jsxRuntime.jsxs("div", {
20924
21011
  className: "ff-calendar-container",
@@ -21629,6 +21716,8 @@ function LiveRegion(_ref) {
21629
21716
  // Hide element visually but keep it readable by screen readers
21630
21717
  const visuallyHidden = {
21631
21718
  position: 'fixed',
21719
+ top: 0,
21720
+ left: 0,
21632
21721
  width: 1,
21633
21722
  height: 1,
21634
21723
  margin: -1,
@@ -22618,11 +22707,12 @@ var KeyboardCode;
22618
22707
  KeyboardCode["Up"] = "ArrowUp";
22619
22708
  KeyboardCode["Esc"] = "Escape";
22620
22709
  KeyboardCode["Enter"] = "Enter";
22710
+ KeyboardCode["Tab"] = "Tab";
22621
22711
  })(KeyboardCode || (KeyboardCode = {}));
22622
22712
  const defaultKeyboardCodes = {
22623
22713
  start: [KeyboardCode.Space, KeyboardCode.Enter],
22624
22714
  cancel: [KeyboardCode.Esc],
22625
- end: [KeyboardCode.Space, KeyboardCode.Enter]
22715
+ end: [KeyboardCode.Space, KeyboardCode.Enter, KeyboardCode.Tab]
22626
22716
  };
22627
22717
  const defaultKeyboardCoordinateGetter = (event, _ref) => {
22628
22718
  let {
@@ -22921,6 +23011,9 @@ class AbstractPointerSensor {
22921
23011
  passive: false
22922
23012
  });
22923
23013
  this.listeners.add(events.end.name, this.handleEnd);
23014
+ if (events.cancel) {
23015
+ this.listeners.add(events.cancel.name, this.handleCancel);
23016
+ }
22924
23017
  this.windowListeners.add(EventName.Resize, this.handleCancel);
22925
23018
  this.windowListeners.add(EventName.DragStart, preventDefault);
22926
23019
  this.windowListeners.add(EventName.VisibilityChange, this.handleCancel);
@@ -22936,9 +23029,11 @@ class AbstractPointerSensor {
22936
23029
  }
22937
23030
  if (isDelayConstraint(activationConstraint)) {
22938
23031
  this.timeoutId = setTimeout(this.handleStart, activationConstraint.delay);
23032
+ this.handlePending(activationConstraint);
22939
23033
  return;
22940
23034
  }
22941
23035
  if (isDistanceConstraint(activationConstraint)) {
23036
+ this.handlePending(activationConstraint);
22942
23037
  return;
22943
23038
  }
22944
23039
  }
@@ -22955,6 +23050,13 @@ class AbstractPointerSensor {
22955
23050
  this.timeoutId = null;
22956
23051
  }
22957
23052
  }
23053
+ handlePending(constraint, offset) {
23054
+ const {
23055
+ active,
23056
+ onPending
23057
+ } = this.props;
23058
+ onPending(active, constraint, this.initialCoordinates, offset);
23059
+ }
22958
23060
  handleStart() {
22959
23061
  const {
22960
23062
  initialCoordinates
@@ -23008,6 +23110,7 @@ class AbstractPointerSensor {
23008
23110
  return this.handleCancel();
23009
23111
  }
23010
23112
  }
23113
+ this.handlePending(activationConstraint, delta);
23011
23114
  return;
23012
23115
  }
23013
23116
  if (event.cancelable) {
@@ -23017,16 +23120,24 @@ class AbstractPointerSensor {
23017
23120
  }
23018
23121
  handleEnd() {
23019
23122
  const {
23123
+ onAbort,
23020
23124
  onEnd
23021
23125
  } = this.props;
23022
23126
  this.detach();
23127
+ if (!this.activated) {
23128
+ onAbort(this.props.active);
23129
+ }
23023
23130
  onEnd();
23024
23131
  }
23025
23132
  handleCancel() {
23026
23133
  const {
23134
+ onAbort,
23027
23135
  onCancel
23028
23136
  } = this.props;
23029
23137
  this.detach();
23138
+ if (!this.activated) {
23139
+ onAbort(this.props.active);
23140
+ }
23030
23141
  onCancel();
23031
23142
  }
23032
23143
  handleKeydown(event) {
@@ -23040,6 +23151,9 @@ class AbstractPointerSensor {
23040
23151
  }
23041
23152
  }
23042
23153
  const events = {
23154
+ cancel: {
23155
+ name: 'pointercancel'
23156
+ },
23043
23157
  move: {
23044
23158
  name: 'pointermove'
23045
23159
  },
@@ -23112,6 +23226,9 @@ MouseSensor.activators = [{
23112
23226
  }
23113
23227
  }];
23114
23228
  const events$2 = {
23229
+ cancel: {
23230
+ name: 'touchcancel'
23231
+ },
23115
23232
  move: {
23116
23233
  name: 'touchmove'
23117
23234
  },
@@ -23313,11 +23430,11 @@ function useScrollIntent(_ref2) {
23313
23430
  }, [disabled, delta, previousDelta]);
23314
23431
  }
23315
23432
  function useCachedNode(draggableNodes, id) {
23316
- const draggableNode = id !== null ? draggableNodes.get(id) : undefined;
23433
+ const draggableNode = id != null ? draggableNodes.get(id) : undefined;
23317
23434
  const node = draggableNode ? draggableNode.node.current : null;
23318
23435
  return useLazyMemo(cachedNode => {
23319
23436
  var _ref;
23320
- if (id === null) {
23437
+ if (id == null) {
23321
23438
  return null;
23322
23439
  } // In some cases, the draggable node can unmount while dragging
23323
23440
  // This is the case for virtualized lists. In those situations,
@@ -23525,7 +23642,26 @@ function useRect(element, measure, fallbackRect) {
23525
23642
  if (measure === void 0) {
23526
23643
  measure = defaultMeasure;
23527
23644
  }
23528
- const [rect, measureRect] = React.useReducer(reducer, null);
23645
+ const [rect, setRect] = React.useState(null);
23646
+ function measureRect() {
23647
+ setRect(currentRect => {
23648
+ if (!element) {
23649
+ return null;
23650
+ }
23651
+ if (element.isConnected === false) {
23652
+ var _ref;
23653
+
23654
+ // Fall back to last rect we measured if the element is
23655
+ // no longer connected to the DOM.
23656
+ return (_ref = currentRect != null ? currentRect : fallbackRect) != null ? _ref : null;
23657
+ }
23658
+ const newRect = measure(element);
23659
+ if (JSON.stringify(currentRect) === JSON.stringify(newRect)) {
23660
+ return currentRect;
23661
+ }
23662
+ return newRect;
23663
+ });
23664
+ }
23529
23665
  const mutationObserver = useMutationObserver({
23530
23666
  callback(records) {
23531
23667
  if (!element) {
@@ -23560,23 +23696,6 @@ function useRect(element, measure, fallbackRect) {
23560
23696
  }
23561
23697
  }, [element]);
23562
23698
  return rect;
23563
- function reducer(currentRect) {
23564
- if (!element) {
23565
- return null;
23566
- }
23567
- if (element.isConnected === false) {
23568
- var _ref;
23569
-
23570
- // Fall back to last rect we measured if the element is
23571
- // no longer connected to the DOM.
23572
- return (_ref = currentRect != null ? currentRect : fallbackRect) != null ? _ref : null;
23573
- }
23574
- const newRect = measure(element);
23575
- if (JSON.stringify(currentRect) === JSON.stringify(newRect)) {
23576
- return currentRect;
23577
- }
23578
- return newRect;
23579
- }
23580
23699
  }
23581
23700
  function useRectDelta(rect) {
23582
23701
  const initialRect = useInitialValue(rect);
@@ -23722,28 +23841,24 @@ function useRects(elements, measure) {
23722
23841
  }
23723
23842
  const [firstElement] = elements;
23724
23843
  const windowRect = useWindowRect(firstElement ? getWindow(firstElement) : null);
23725
- const [rects, measureRects] = React.useReducer(reducer, defaultValue$2);
23844
+ const [rects, setRects] = React.useState(defaultValue$2);
23845
+ function measureRects() {
23846
+ setRects(() => {
23847
+ if (!elements.length) {
23848
+ return defaultValue$2;
23849
+ }
23850
+ return elements.map(element => isDocumentScrollingElement(element) ? windowRect : new Rect(measure(element), element));
23851
+ });
23852
+ }
23726
23853
  const resizeObserver = useResizeObserver({
23727
23854
  callback: measureRects
23728
23855
  });
23729
- if (elements.length > 0 && rects === defaultValue$2) {
23730
- measureRects();
23731
- }
23732
23856
  useIsomorphicLayoutEffect$1(() => {
23733
- if (elements.length) {
23734
- elements.forEach(element => resizeObserver == null ? void 0 : resizeObserver.observe(element));
23735
- } else {
23736
- resizeObserver == null ? void 0 : resizeObserver.disconnect();
23737
- measureRects();
23738
- }
23857
+ resizeObserver == null ? void 0 : resizeObserver.disconnect();
23858
+ measureRects();
23859
+ elements.forEach(element => resizeObserver == null ? void 0 : resizeObserver.observe(element));
23739
23860
  }, [elements]);
23740
23861
  return rects;
23741
- function reducer() {
23742
- if (!elements.length) {
23743
- return defaultValue$2;
23744
- }
23745
- return elements.map(element => isDocumentScrollingElement(element) ? windowRect : new Rect(measure(element), element));
23746
- }
23747
23862
  }
23748
23863
  function getMeasurableNode(node) {
23749
23864
  if (!node) {
@@ -23910,7 +24025,7 @@ function reducer$1(state, action) {
23910
24025
  }
23911
24026
  };
23912
24027
  case Action.DragMove:
23913
- if (!state.draggable.active) {
24028
+ if (state.draggable.active == null) {
23914
24029
  return state;
23915
24030
  }
23916
24031
  return {
@@ -24182,7 +24297,7 @@ const DndContext = /*#__PURE__*/React.memo(function DndContext(_ref) {
24182
24297
  containers: droppableContainers
24183
24298
  }
24184
24299
  } = state;
24185
- const node = activeId ? draggableNodes.get(activeId) : null;
24300
+ const node = activeId != null ? draggableNodes.get(activeId) : null;
24186
24301
  const activeRects = React.useRef({
24187
24302
  initial: null,
24188
24303
  translated: null
@@ -24217,7 +24332,7 @@ const DndContext = /*#__PURE__*/React.memo(function DndContext(_ref) {
24217
24332
  const autoScrollOptions = getAutoScrollerOptions();
24218
24333
  const initialActiveNodeRect = useInitialRect(activeNode, measuringConfiguration.draggable.measure);
24219
24334
  useLayoutShiftScrollCompensation({
24220
- activeNode: activeId ? draggableNodes.get(activeId) : null,
24335
+ activeNode: activeId != null ? draggableNodes.get(activeId) : null,
24221
24336
  config: autoScrollOptions.layoutShiftCompensation,
24222
24337
  initialRect: initialActiveNodeRect,
24223
24338
  measure: measuringConfiguration.draggable.measure
@@ -24295,6 +24410,7 @@ const DndContext = /*#__PURE__*/React.memo(function DndContext(_ref) {
24295
24410
 
24296
24411
  const appliedTranslate = usesDragOverlay ? modifiedTranslate : add(modifiedTranslate, activeNodeScrollDelta);
24297
24412
  const transform = adjustScale(appliedTranslate, (_over$rect = over == null ? void 0 : over.rect) != null ? _over$rect : null, activeNodeRect);
24413
+ const activeSensorRef = React.useRef(null);
24298
24414
  const instantiateSensor = React.useCallback((event, _ref2) => {
24299
24415
  let {
24300
24416
  sensor: Sensor,
@@ -24316,6 +24432,43 @@ const DndContext = /*#__PURE__*/React.memo(function DndContext(_ref) {
24316
24432
  // Sensors need to be instantiated with refs for arguments that change over time
24317
24433
  // otherwise they are frozen in time with the stale arguments
24318
24434
  context: sensorContext,
24435
+ onAbort(id) {
24436
+ const draggableNode = draggableNodes.get(id);
24437
+ if (!draggableNode) {
24438
+ return;
24439
+ }
24440
+ const {
24441
+ onDragAbort
24442
+ } = latestProps.current;
24443
+ const event = {
24444
+ id
24445
+ };
24446
+ onDragAbort == null ? void 0 : onDragAbort(event);
24447
+ dispatchMonitorEvent({
24448
+ type: 'onDragAbort',
24449
+ event
24450
+ });
24451
+ },
24452
+ onPending(id, constraint, initialCoordinates, offset) {
24453
+ const draggableNode = draggableNodes.get(id);
24454
+ if (!draggableNode) {
24455
+ return;
24456
+ }
24457
+ const {
24458
+ onDragPending
24459
+ } = latestProps.current;
24460
+ const event = {
24461
+ id,
24462
+ constraint,
24463
+ initialCoordinates,
24464
+ offset
24465
+ };
24466
+ onDragPending == null ? void 0 : onDragPending(event);
24467
+ dispatchMonitorEvent({
24468
+ type: 'onDragPending',
24469
+ event
24470
+ });
24471
+ },
24319
24472
  onStart(initialCoordinates) {
24320
24473
  const id = activeRef.current;
24321
24474
  if (id == null) {
@@ -24329,6 +24482,7 @@ const DndContext = /*#__PURE__*/React.memo(function DndContext(_ref) {
24329
24482
  onDragStart
24330
24483
  } = latestProps.current;
24331
24484
  const event = {
24485
+ activatorEvent,
24332
24486
  active: {
24333
24487
  id,
24334
24488
  data: draggableNode.data,
@@ -24347,6 +24501,8 @@ const DndContext = /*#__PURE__*/React.memo(function DndContext(_ref) {
24347
24501
  type: 'onDragStart',
24348
24502
  event
24349
24503
  });
24504
+ setActiveSensor(activeSensorRef.current);
24505
+ setActivatorEvent(activatorEvent);
24350
24506
  });
24351
24507
  },
24352
24508
  onMove(coordinates) {
@@ -24358,10 +24514,7 @@ const DndContext = /*#__PURE__*/React.memo(function DndContext(_ref) {
24358
24514
  onEnd: createHandler(Action.DragEnd),
24359
24515
  onCancel: createHandler(Action.DragCancel)
24360
24516
  });
24361
- reactDom.unstable_batchedUpdates(() => {
24362
- setActiveSensor(sensorInstance);
24363
- setActivatorEvent(event.nativeEvent);
24364
- });
24517
+ activeSensorRef.current = sensorInstance;
24365
24518
  function createHandler(type) {
24366
24519
  return async function handler() {
24367
24520
  const {
@@ -24398,6 +24551,7 @@ const DndContext = /*#__PURE__*/React.memo(function DndContext(_ref) {
24398
24551
  setOver(null);
24399
24552
  setActiveSensor(null);
24400
24553
  setActivatorEvent(null);
24554
+ activeSensorRef.current = null;
24401
24555
  const eventName = type === Action.DragEnd ? 'onDragEnd' : 'onDragCancel';
24402
24556
  if (event) {
24403
24557
  const handler = latestProps.current[eventName];
@@ -24619,7 +24773,7 @@ const DndContext = /*#__PURE__*/React.memo(function DndContext(_ref) {
24619
24773
  });
24620
24774
  const NullContext = /*#__PURE__*/React.createContext(null);
24621
24775
  const defaultRole = 'button';
24622
- const ID_PREFIX$1 = 'Droppable';
24776
+ const ID_PREFIX$1 = 'Draggable';
24623
24777
  function useDraggable(_ref) {
24624
24778
  let {
24625
24779
  id,
@@ -24766,7 +24920,7 @@ function useDroppable(_ref) {
24766
24920
  resizeObserverConnected.current = false;
24767
24921
  resizeObserver.observe(nodeRef.current);
24768
24922
  }, [nodeRef, resizeObserver]);
24769
- useIsomorphicLayoutEffect$1(() => {
24923
+ React.useEffect(() => {
24770
24924
  dispatch({
24771
24925
  type: Action.RegisterDroppable,
24772
24926
  element: {
@@ -25181,6 +25335,7 @@ var DNDCore = /*#__PURE__*/Object.freeze({
25181
25335
  defaultCoordinates: defaultCoordinates,
25182
25336
  defaultDropAnimation: defaultDropAnimationConfiguration,
25183
25337
  defaultDropAnimationSideEffects: defaultDropAnimationSideEffects,
25338
+ defaultKeyboardCoordinateGetter: defaultKeyboardCoordinateGetter,
25184
25339
  defaultScreenReaderInstructions: defaultScreenReaderInstructions,
25185
25340
  getClientRect: getClientRect,
25186
25341
  getFirstCollision: getFirstCollision,
@@ -27054,226 +27209,559 @@ const DashboardDonutChart = ({
27054
27209
 
27055
27210
  var propTypes = {exports: {}};
27056
27211
 
27057
- /*
27058
- object-assign
27059
- (c) Sindre Sorhus
27060
- @license MIT
27061
- */
27062
- var objectAssign;
27063
- var hasRequiredObjectAssign;
27064
- function requireObjectAssign() {
27065
- if (hasRequiredObjectAssign) return objectAssign;
27066
- hasRequiredObjectAssign = 1;
27067
- /* eslint-disable no-unused-vars */
27068
- var getOwnPropertySymbols = Object.getOwnPropertySymbols;
27069
- var hasOwnProperty = Object.prototype.hasOwnProperty;
27070
- var propIsEnumerable = Object.prototype.propertyIsEnumerable;
27071
- function toObject(val) {
27072
- if (val === null || val === undefined) {
27073
- throw new TypeError('Object.assign cannot be called with null or undefined');
27074
- }
27075
- return Object(val);
27076
- }
27077
- function shouldUseNative() {
27078
- try {
27079
- if (!Object.assign) {
27080
- return false;
27081
- }
27082
-
27083
- // Detect buggy property enumeration order in older V8 versions.
27084
-
27085
- // https://bugs.chromium.org/p/v8/issues/detail?id=4118
27086
- var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
27087
- test1[5] = 'de';
27088
- if (Object.getOwnPropertyNames(test1)[0] === '5') {
27089
- return false;
27090
- }
27212
+ var reactIs = {exports: {}};
27091
27213
 
27092
- // https://bugs.chromium.org/p/v8/issues/detail?id=3056
27093
- var test2 = {};
27094
- for (var i = 0; i < 10; i++) {
27095
- test2['_' + String.fromCharCode(i)] = i;
27096
- }
27097
- var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
27098
- return test2[n];
27099
- });
27100
- if (order2.join('') !== '0123456789') {
27101
- return false;
27102
- }
27214
+ var reactIs_production_min = {};
27103
27215
 
27104
- // https://bugs.chromium.org/p/v8/issues/detail?id=3056
27105
- var test3 = {};
27106
- 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
27107
- test3[letter] = letter;
27108
- });
27109
- if (Object.keys(Object.assign({}, test3)).join('') !== 'abcdefghijklmnopqrst') {
27110
- return false;
27111
- }
27112
- return true;
27113
- } catch (err) {
27114
- // We don't expect any of the above to throw, but better to be safe.
27115
- return false;
27116
- }
27117
- }
27118
- objectAssign = shouldUseNative() ? Object.assign : function (target, source) {
27119
- var from;
27120
- var to = toObject(target);
27121
- var symbols;
27122
- for (var s = 1; s < arguments.length; s++) {
27123
- from = Object(arguments[s]);
27124
- for (var key in from) {
27125
- if (hasOwnProperty.call(from, key)) {
27126
- to[key] = from[key];
27127
- }
27128
- }
27129
- if (getOwnPropertySymbols) {
27130
- symbols = getOwnPropertySymbols(from);
27131
- for (var i = 0; i < symbols.length; i++) {
27132
- if (propIsEnumerable.call(from, symbols[i])) {
27133
- to[symbols[i]] = from[symbols[i]];
27216
+ /** @license React v16.13.1
27217
+ * react-is.production.min.js
27218
+ *
27219
+ * Copyright (c) Facebook, Inc. and its affiliates.
27220
+ *
27221
+ * This source code is licensed under the MIT license found in the
27222
+ * LICENSE file in the root directory of this source tree.
27223
+ */
27224
+ var hasRequiredReactIs_production_min;
27225
+ function requireReactIs_production_min() {
27226
+ if (hasRequiredReactIs_production_min) return reactIs_production_min;
27227
+ hasRequiredReactIs_production_min = 1;
27228
+ var b = "function" === typeof Symbol && Symbol.for,
27229
+ c = b ? Symbol.for("react.element") : 60103,
27230
+ d = b ? Symbol.for("react.portal") : 60106,
27231
+ e = b ? Symbol.for("react.fragment") : 60107,
27232
+ f = b ? Symbol.for("react.strict_mode") : 60108,
27233
+ g = b ? Symbol.for("react.profiler") : 60114,
27234
+ h = b ? Symbol.for("react.provider") : 60109,
27235
+ k = b ? Symbol.for("react.context") : 60110,
27236
+ l = b ? Symbol.for("react.async_mode") : 60111,
27237
+ m = b ? Symbol.for("react.concurrent_mode") : 60111,
27238
+ n = b ? Symbol.for("react.forward_ref") : 60112,
27239
+ p = b ? Symbol.for("react.suspense") : 60113,
27240
+ q = b ? Symbol.for("react.suspense_list") : 60120,
27241
+ r = b ? Symbol.for("react.memo") : 60115,
27242
+ t = b ? Symbol.for("react.lazy") : 60116,
27243
+ v = b ? Symbol.for("react.block") : 60121,
27244
+ w = b ? Symbol.for("react.fundamental") : 60117,
27245
+ x = b ? Symbol.for("react.responder") : 60118,
27246
+ y = b ? Symbol.for("react.scope") : 60119;
27247
+ function z(a) {
27248
+ if ("object" === typeof a && null !== a) {
27249
+ var u = a.$$typeof;
27250
+ switch (u) {
27251
+ case c:
27252
+ switch (a = a.type, a) {
27253
+ case l:
27254
+ case m:
27255
+ case e:
27256
+ case g:
27257
+ case f:
27258
+ case p:
27259
+ return a;
27260
+ default:
27261
+ switch (a = a && a.$$typeof, a) {
27262
+ case k:
27263
+ case n:
27264
+ case t:
27265
+ case r:
27266
+ case h:
27267
+ return a;
27268
+ default:
27269
+ return u;
27270
+ }
27134
27271
  }
27135
- }
27272
+ case d:
27273
+ return u;
27136
27274
  }
27137
27275
  }
27138
- return to;
27276
+ }
27277
+ function A(a) {
27278
+ return z(a) === m;
27279
+ }
27280
+ reactIs_production_min.AsyncMode = l;
27281
+ reactIs_production_min.ConcurrentMode = m;
27282
+ reactIs_production_min.ContextConsumer = k;
27283
+ reactIs_production_min.ContextProvider = h;
27284
+ reactIs_production_min.Element = c;
27285
+ reactIs_production_min.ForwardRef = n;
27286
+ reactIs_production_min.Fragment = e;
27287
+ reactIs_production_min.Lazy = t;
27288
+ reactIs_production_min.Memo = r;
27289
+ reactIs_production_min.Portal = d;
27290
+ reactIs_production_min.Profiler = g;
27291
+ reactIs_production_min.StrictMode = f;
27292
+ reactIs_production_min.Suspense = p;
27293
+ reactIs_production_min.isAsyncMode = function (a) {
27294
+ return A(a) || z(a) === l;
27139
27295
  };
27140
- return objectAssign;
27296
+ reactIs_production_min.isConcurrentMode = A;
27297
+ reactIs_production_min.isContextConsumer = function (a) {
27298
+ return z(a) === k;
27299
+ };
27300
+ reactIs_production_min.isContextProvider = function (a) {
27301
+ return z(a) === h;
27302
+ };
27303
+ reactIs_production_min.isElement = function (a) {
27304
+ return "object" === typeof a && null !== a && a.$$typeof === c;
27305
+ };
27306
+ reactIs_production_min.isForwardRef = function (a) {
27307
+ return z(a) === n;
27308
+ };
27309
+ reactIs_production_min.isFragment = function (a) {
27310
+ return z(a) === e;
27311
+ };
27312
+ reactIs_production_min.isLazy = function (a) {
27313
+ return z(a) === t;
27314
+ };
27315
+ reactIs_production_min.isMemo = function (a) {
27316
+ return z(a) === r;
27317
+ };
27318
+ reactIs_production_min.isPortal = function (a) {
27319
+ return z(a) === d;
27320
+ };
27321
+ reactIs_production_min.isProfiler = function (a) {
27322
+ return z(a) === g;
27323
+ };
27324
+ reactIs_production_min.isStrictMode = function (a) {
27325
+ return z(a) === f;
27326
+ };
27327
+ reactIs_production_min.isSuspense = function (a) {
27328
+ return z(a) === p;
27329
+ };
27330
+ reactIs_production_min.isValidElementType = function (a) {
27331
+ 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);
27332
+ };
27333
+ reactIs_production_min.typeOf = z;
27334
+ return reactIs_production_min;
27141
27335
  }
27142
27336
 
27143
- /**
27144
- * Copyright (c) 2013-present, Facebook, Inc.
27145
- *
27146
- * This source code is licensed under the MIT license found in the
27147
- * LICENSE file in the root directory of this source tree.
27148
- */
27149
- var ReactPropTypesSecret_1;
27150
- var hasRequiredReactPropTypesSecret;
27151
- function requireReactPropTypesSecret() {
27152
- if (hasRequiredReactPropTypesSecret) return ReactPropTypesSecret_1;
27153
- hasRequiredReactPropTypesSecret = 1;
27154
- var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
27155
- ReactPropTypesSecret_1 = ReactPropTypesSecret;
27156
- return ReactPropTypesSecret_1;
27157
- }
27337
+ var reactIs_development = {};
27158
27338
 
27159
- /**
27160
- * Copyright (c) 2013-present, Facebook, Inc.
27339
+ /** @license React v16.13.1
27340
+ * react-is.development.js
27341
+ *
27342
+ * Copyright (c) Facebook, Inc. and its affiliates.
27161
27343
  *
27162
27344
  * This source code is licensed under the MIT license found in the
27163
27345
  * LICENSE file in the root directory of this source tree.
27164
27346
  */
27165
- var checkPropTypes_1;
27166
- var hasRequiredCheckPropTypes;
27167
- function requireCheckPropTypes() {
27168
- if (hasRequiredCheckPropTypes) return checkPropTypes_1;
27169
- hasRequiredCheckPropTypes = 1;
27170
- var printWarning = function () {};
27171
- if (process.env.NODE_ENV !== 'production') {
27172
- var ReactPropTypesSecret = requireReactPropTypesSecret();
27173
- var loggedTypeFailures = {};
27174
- printWarning = function (text) {
27175
- var message = 'Warning: ' + text;
27176
- if (typeof console !== 'undefined') {
27177
- console.error(message);
27178
- }
27179
- try {
27180
- // --- Welcome to debugging React ---
27181
- // This error was thrown as a convenience so that you can use this stack
27182
- // to find the callsite that caused this warning to fire.
27183
- throw new Error(message);
27184
- } catch (x) {}
27185
- };
27186
- }
27347
+ var hasRequiredReactIs_development;
27348
+ function requireReactIs_development() {
27349
+ if (hasRequiredReactIs_development) return reactIs_development;
27350
+ hasRequiredReactIs_development = 1;
27351
+ if (process.env.NODE_ENV !== "production") {
27352
+ (function () {
27187
27353
 
27188
- /**
27189
- * Assert that the values match with the type specs.
27190
- * Error messages are memorized and will only be shown once.
27191
- *
27192
- * @param {object} typeSpecs Map of name to a ReactPropType
27193
- * @param {object} values Runtime values that need to be type-checked
27194
- * @param {string} location e.g. "prop", "context", "child context"
27195
- * @param {string} componentName Name of the component for error messages.
27196
- * @param {?Function} getStack Returns the component stack.
27197
- * @private
27198
- */
27199
- function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
27200
- if (process.env.NODE_ENV !== 'production') {
27201
- for (var typeSpecName in typeSpecs) {
27202
- if (typeSpecs.hasOwnProperty(typeSpecName)) {
27203
- var error;
27204
- // Prop type validation may throw. In case they do, we don't want to
27205
- // fail the render phase where it didn't fail before. So we log it.
27206
- // After these have been cleaned up, we'll let them throw.
27207
- try {
27208
- // This is intentionally an invariant that gets caught. It's the same
27209
- // behavior as without this statement except with a better message.
27210
- if (typeof typeSpecs[typeSpecName] !== 'function') {
27211
- var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.');
27212
- err.name = 'Invariant Violation';
27213
- throw err;
27214
- }
27215
- error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
27216
- } catch (ex) {
27217
- error = ex;
27218
- }
27219
- if (error && !(error instanceof Error)) {
27220
- 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).');
27354
+ // The Symbol used to tag the ReactElement-like types. If there is no native Symbol
27355
+ // nor polyfill, then a plain number is used for performance.
27356
+ var hasSymbol = typeof Symbol === 'function' && Symbol.for;
27357
+ var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
27358
+ var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
27359
+ var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
27360
+ var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
27361
+ var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
27362
+ var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
27363
+ var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary
27364
+ // (unstable) APIs that have been removed. Can we remove the symbols?
27365
+
27366
+ var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;
27367
+ var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
27368
+ var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
27369
+ var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
27370
+ var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;
27371
+ var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
27372
+ var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;
27373
+ var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;
27374
+ var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;
27375
+ var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;
27376
+ var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;
27377
+ function isValidElementType(type) {
27378
+ return typeof type === 'string' || typeof type === 'function' ||
27379
+ // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
27380
+ 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);
27381
+ }
27382
+ function typeOf(object) {
27383
+ if (typeof object === 'object' && object !== null) {
27384
+ var $$typeof = object.$$typeof;
27385
+ switch ($$typeof) {
27386
+ case REACT_ELEMENT_TYPE:
27387
+ var type = object.type;
27388
+ switch (type) {
27389
+ case REACT_ASYNC_MODE_TYPE:
27390
+ case REACT_CONCURRENT_MODE_TYPE:
27391
+ case REACT_FRAGMENT_TYPE:
27392
+ case REACT_PROFILER_TYPE:
27393
+ case REACT_STRICT_MODE_TYPE:
27394
+ case REACT_SUSPENSE_TYPE:
27395
+ return type;
27396
+ default:
27397
+ var $$typeofType = type && type.$$typeof;
27398
+ switch ($$typeofType) {
27399
+ case REACT_CONTEXT_TYPE:
27400
+ case REACT_FORWARD_REF_TYPE:
27401
+ case REACT_LAZY_TYPE:
27402
+ case REACT_MEMO_TYPE:
27403
+ case REACT_PROVIDER_TYPE:
27404
+ return $$typeofType;
27405
+ default:
27406
+ return $$typeof;
27407
+ }
27408
+ }
27409
+ case REACT_PORTAL_TYPE:
27410
+ return $$typeof;
27221
27411
  }
27222
- if (error instanceof Error && !(error.message in loggedTypeFailures)) {
27223
- // Only monitor this failure once because there tends to be a lot of the
27224
- // same error.
27225
- loggedTypeFailures[error.message] = true;
27226
- var stack = getStack ? getStack() : '';
27227
- printWarning('Failed ' + location + ' type: ' + error.message + (stack != null ? stack : ''));
27412
+ }
27413
+ return undefined;
27414
+ } // AsyncMode is deprecated along with isAsyncMode
27415
+
27416
+ var AsyncMode = REACT_ASYNC_MODE_TYPE;
27417
+ var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
27418
+ var ContextConsumer = REACT_CONTEXT_TYPE;
27419
+ var ContextProvider = REACT_PROVIDER_TYPE;
27420
+ var Element = REACT_ELEMENT_TYPE;
27421
+ var ForwardRef = REACT_FORWARD_REF_TYPE;
27422
+ var Fragment = REACT_FRAGMENT_TYPE;
27423
+ var Lazy = REACT_LAZY_TYPE;
27424
+ var Memo = REACT_MEMO_TYPE;
27425
+ var Portal = REACT_PORTAL_TYPE;
27426
+ var Profiler = REACT_PROFILER_TYPE;
27427
+ var StrictMode = REACT_STRICT_MODE_TYPE;
27428
+ var Suspense = REACT_SUSPENSE_TYPE;
27429
+ var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated
27430
+
27431
+ function isAsyncMode(object) {
27432
+ {
27433
+ if (!hasWarnedAboutDeprecatedIsAsyncMode) {
27434
+ hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint
27435
+
27436
+ 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.');
27228
27437
  }
27229
27438
  }
27439
+ return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
27230
27440
  }
27231
- }
27441
+ function isConcurrentMode(object) {
27442
+ return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
27443
+ }
27444
+ function isContextConsumer(object) {
27445
+ return typeOf(object) === REACT_CONTEXT_TYPE;
27446
+ }
27447
+ function isContextProvider(object) {
27448
+ return typeOf(object) === REACT_PROVIDER_TYPE;
27449
+ }
27450
+ function isElement(object) {
27451
+ return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
27452
+ }
27453
+ function isForwardRef(object) {
27454
+ return typeOf(object) === REACT_FORWARD_REF_TYPE;
27455
+ }
27456
+ function isFragment(object) {
27457
+ return typeOf(object) === REACT_FRAGMENT_TYPE;
27458
+ }
27459
+ function isLazy(object) {
27460
+ return typeOf(object) === REACT_LAZY_TYPE;
27461
+ }
27462
+ function isMemo(object) {
27463
+ return typeOf(object) === REACT_MEMO_TYPE;
27464
+ }
27465
+ function isPortal(object) {
27466
+ return typeOf(object) === REACT_PORTAL_TYPE;
27467
+ }
27468
+ function isProfiler(object) {
27469
+ return typeOf(object) === REACT_PROFILER_TYPE;
27470
+ }
27471
+ function isStrictMode(object) {
27472
+ return typeOf(object) === REACT_STRICT_MODE_TYPE;
27473
+ }
27474
+ function isSuspense(object) {
27475
+ return typeOf(object) === REACT_SUSPENSE_TYPE;
27476
+ }
27477
+ reactIs_development.AsyncMode = AsyncMode;
27478
+ reactIs_development.ConcurrentMode = ConcurrentMode;
27479
+ reactIs_development.ContextConsumer = ContextConsumer;
27480
+ reactIs_development.ContextProvider = ContextProvider;
27481
+ reactIs_development.Element = Element;
27482
+ reactIs_development.ForwardRef = ForwardRef;
27483
+ reactIs_development.Fragment = Fragment;
27484
+ reactIs_development.Lazy = Lazy;
27485
+ reactIs_development.Memo = Memo;
27486
+ reactIs_development.Portal = Portal;
27487
+ reactIs_development.Profiler = Profiler;
27488
+ reactIs_development.StrictMode = StrictMode;
27489
+ reactIs_development.Suspense = Suspense;
27490
+ reactIs_development.isAsyncMode = isAsyncMode;
27491
+ reactIs_development.isConcurrentMode = isConcurrentMode;
27492
+ reactIs_development.isContextConsumer = isContextConsumer;
27493
+ reactIs_development.isContextProvider = isContextProvider;
27494
+ reactIs_development.isElement = isElement;
27495
+ reactIs_development.isForwardRef = isForwardRef;
27496
+ reactIs_development.isFragment = isFragment;
27497
+ reactIs_development.isLazy = isLazy;
27498
+ reactIs_development.isMemo = isMemo;
27499
+ reactIs_development.isPortal = isPortal;
27500
+ reactIs_development.isProfiler = isProfiler;
27501
+ reactIs_development.isStrictMode = isStrictMode;
27502
+ reactIs_development.isSuspense = isSuspense;
27503
+ reactIs_development.isValidElementType = isValidElementType;
27504
+ reactIs_development.typeOf = typeOf;
27505
+ })();
27232
27506
  }
27233
- checkPropTypes_1 = checkPropTypes;
27234
- return checkPropTypes_1;
27507
+ return reactIs_development;
27235
27508
  }
27236
27509
 
27237
- /**
27238
- * Copyright (c) 2013-present, Facebook, Inc.
27239
- *
27240
- * This source code is licensed under the MIT license found in the
27241
- * LICENSE file in the root directory of this source tree.
27242
- */
27243
- var factoryWithTypeCheckers;
27244
- var hasRequiredFactoryWithTypeCheckers;
27245
- function requireFactoryWithTypeCheckers() {
27246
- if (hasRequiredFactoryWithTypeCheckers) return factoryWithTypeCheckers;
27247
- hasRequiredFactoryWithTypeCheckers = 1;
27248
- var assign = requireObjectAssign();
27249
- var ReactPropTypesSecret = requireReactPropTypesSecret();
27250
- var checkPropTypes = requireCheckPropTypes();
27251
- var printWarning = function () {};
27252
- if (process.env.NODE_ENV !== 'production') {
27253
- printWarning = function (text) {
27254
- var message = 'Warning: ' + text;
27255
- if (typeof console !== 'undefined') {
27256
- console.error(message);
27257
- }
27258
- try {
27259
- // --- Welcome to debugging React ---
27260
- // This error was thrown as a convenience so that you can use this stack
27261
- // to find the callsite that caused this warning to fire.
27262
- throw new Error(message);
27263
- } catch (x) {}
27264
- };
27265
- }
27266
- function emptyFunctionThatReturnsNull() {
27267
- return null;
27510
+ var hasRequiredReactIs;
27511
+ function requireReactIs() {
27512
+ if (hasRequiredReactIs) return reactIs.exports;
27513
+ hasRequiredReactIs = 1;
27514
+ if (process.env.NODE_ENV === 'production') {
27515
+ reactIs.exports = requireReactIs_production_min();
27516
+ } else {
27517
+ reactIs.exports = requireReactIs_development();
27268
27518
  }
27269
- factoryWithTypeCheckers = function (isValidElement, throwOnDirectAccess) {
27270
- /* global Symbol */
27271
- var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
27272
- var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.
27519
+ return reactIs.exports;
27520
+ }
27273
27521
 
27274
- /**
27275
- * Returns the iterator method function contained on the iterable object.
27276
- *
27522
+ /*
27523
+ object-assign
27524
+ (c) Sindre Sorhus
27525
+ @license MIT
27526
+ */
27527
+ var objectAssign;
27528
+ var hasRequiredObjectAssign;
27529
+ function requireObjectAssign() {
27530
+ if (hasRequiredObjectAssign) return objectAssign;
27531
+ hasRequiredObjectAssign = 1;
27532
+ /* eslint-disable no-unused-vars */
27533
+ var getOwnPropertySymbols = Object.getOwnPropertySymbols;
27534
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
27535
+ var propIsEnumerable = Object.prototype.propertyIsEnumerable;
27536
+ function toObject(val) {
27537
+ if (val === null || val === undefined) {
27538
+ throw new TypeError('Object.assign cannot be called with null or undefined');
27539
+ }
27540
+ return Object(val);
27541
+ }
27542
+ function shouldUseNative() {
27543
+ try {
27544
+ if (!Object.assign) {
27545
+ return false;
27546
+ }
27547
+
27548
+ // Detect buggy property enumeration order in older V8 versions.
27549
+
27550
+ // https://bugs.chromium.org/p/v8/issues/detail?id=4118
27551
+ var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
27552
+ test1[5] = 'de';
27553
+ if (Object.getOwnPropertyNames(test1)[0] === '5') {
27554
+ return false;
27555
+ }
27556
+
27557
+ // https://bugs.chromium.org/p/v8/issues/detail?id=3056
27558
+ var test2 = {};
27559
+ for (var i = 0; i < 10; i++) {
27560
+ test2['_' + String.fromCharCode(i)] = i;
27561
+ }
27562
+ var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
27563
+ return test2[n];
27564
+ });
27565
+ if (order2.join('') !== '0123456789') {
27566
+ return false;
27567
+ }
27568
+
27569
+ // https://bugs.chromium.org/p/v8/issues/detail?id=3056
27570
+ var test3 = {};
27571
+ 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
27572
+ test3[letter] = letter;
27573
+ });
27574
+ if (Object.keys(Object.assign({}, test3)).join('') !== 'abcdefghijklmnopqrst') {
27575
+ return false;
27576
+ }
27577
+ return true;
27578
+ } catch (err) {
27579
+ // We don't expect any of the above to throw, but better to be safe.
27580
+ return false;
27581
+ }
27582
+ }
27583
+ objectAssign = shouldUseNative() ? Object.assign : function (target, source) {
27584
+ var from;
27585
+ var to = toObject(target);
27586
+ var symbols;
27587
+ for (var s = 1; s < arguments.length; s++) {
27588
+ from = Object(arguments[s]);
27589
+ for (var key in from) {
27590
+ if (hasOwnProperty.call(from, key)) {
27591
+ to[key] = from[key];
27592
+ }
27593
+ }
27594
+ if (getOwnPropertySymbols) {
27595
+ symbols = getOwnPropertySymbols(from);
27596
+ for (var i = 0; i < symbols.length; i++) {
27597
+ if (propIsEnumerable.call(from, symbols[i])) {
27598
+ to[symbols[i]] = from[symbols[i]];
27599
+ }
27600
+ }
27601
+ }
27602
+ }
27603
+ return to;
27604
+ };
27605
+ return objectAssign;
27606
+ }
27607
+
27608
+ /**
27609
+ * Copyright (c) 2013-present, Facebook, Inc.
27610
+ *
27611
+ * This source code is licensed under the MIT license found in the
27612
+ * LICENSE file in the root directory of this source tree.
27613
+ */
27614
+ var ReactPropTypesSecret_1;
27615
+ var hasRequiredReactPropTypesSecret;
27616
+ function requireReactPropTypesSecret() {
27617
+ if (hasRequiredReactPropTypesSecret) return ReactPropTypesSecret_1;
27618
+ hasRequiredReactPropTypesSecret = 1;
27619
+ var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
27620
+ ReactPropTypesSecret_1 = ReactPropTypesSecret;
27621
+ return ReactPropTypesSecret_1;
27622
+ }
27623
+
27624
+ var has$1;
27625
+ var hasRequiredHas;
27626
+ function requireHas() {
27627
+ if (hasRequiredHas) return has$1;
27628
+ hasRequiredHas = 1;
27629
+ has$1 = Function.call.bind(Object.prototype.hasOwnProperty);
27630
+ return has$1;
27631
+ }
27632
+
27633
+ /**
27634
+ * Copyright (c) 2013-present, Facebook, Inc.
27635
+ *
27636
+ * This source code is licensed under the MIT license found in the
27637
+ * LICENSE file in the root directory of this source tree.
27638
+ */
27639
+ var checkPropTypes_1;
27640
+ var hasRequiredCheckPropTypes;
27641
+ function requireCheckPropTypes() {
27642
+ if (hasRequiredCheckPropTypes) return checkPropTypes_1;
27643
+ hasRequiredCheckPropTypes = 1;
27644
+ var printWarning = function () {};
27645
+ if (process.env.NODE_ENV !== 'production') {
27646
+ var ReactPropTypesSecret = /*@__PURE__*/requireReactPropTypesSecret();
27647
+ var loggedTypeFailures = {};
27648
+ var has = /*@__PURE__*/requireHas();
27649
+ printWarning = function (text) {
27650
+ var message = 'Warning: ' + text;
27651
+ if (typeof console !== 'undefined') {
27652
+ console.error(message);
27653
+ }
27654
+ try {
27655
+ // --- Welcome to debugging React ---
27656
+ // This error was thrown as a convenience so that you can use this stack
27657
+ // to find the callsite that caused this warning to fire.
27658
+ throw new Error(message);
27659
+ } catch (x) {/**/}
27660
+ };
27661
+ }
27662
+
27663
+ /**
27664
+ * Assert that the values match with the type specs.
27665
+ * Error messages are memorized and will only be shown once.
27666
+ *
27667
+ * @param {object} typeSpecs Map of name to a ReactPropType
27668
+ * @param {object} values Runtime values that need to be type-checked
27669
+ * @param {string} location e.g. "prop", "context", "child context"
27670
+ * @param {string} componentName Name of the component for error messages.
27671
+ * @param {?Function} getStack Returns the component stack.
27672
+ * @private
27673
+ */
27674
+ function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
27675
+ if (process.env.NODE_ENV !== 'production') {
27676
+ for (var typeSpecName in typeSpecs) {
27677
+ if (has(typeSpecs, typeSpecName)) {
27678
+ var error;
27679
+ // Prop type validation may throw. In case they do, we don't want to
27680
+ // fail the render phase where it didn't fail before. So we log it.
27681
+ // After these have been cleaned up, we'll let them throw.
27682
+ try {
27683
+ // This is intentionally an invariant that gets caught. It's the same
27684
+ // behavior as without this statement except with a better message.
27685
+ if (typeof typeSpecs[typeSpecName] !== 'function') {
27686
+ 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`.');
27687
+ err.name = 'Invariant Violation';
27688
+ throw err;
27689
+ }
27690
+ error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
27691
+ } catch (ex) {
27692
+ error = ex;
27693
+ }
27694
+ if (error && !(error instanceof Error)) {
27695
+ 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).');
27696
+ }
27697
+ if (error instanceof Error && !(error.message in loggedTypeFailures)) {
27698
+ // Only monitor this failure once because there tends to be a lot of the
27699
+ // same error.
27700
+ loggedTypeFailures[error.message] = true;
27701
+ var stack = getStack ? getStack() : '';
27702
+ printWarning('Failed ' + location + ' type: ' + error.message + (stack != null ? stack : ''));
27703
+ }
27704
+ }
27705
+ }
27706
+ }
27707
+ }
27708
+
27709
+ /**
27710
+ * Resets warning cache when testing.
27711
+ *
27712
+ * @private
27713
+ */
27714
+ checkPropTypes.resetWarningCache = function () {
27715
+ if (process.env.NODE_ENV !== 'production') {
27716
+ loggedTypeFailures = {};
27717
+ }
27718
+ };
27719
+ checkPropTypes_1 = checkPropTypes;
27720
+ return checkPropTypes_1;
27721
+ }
27722
+
27723
+ /**
27724
+ * Copyright (c) 2013-present, Facebook, Inc.
27725
+ *
27726
+ * This source code is licensed under the MIT license found in the
27727
+ * LICENSE file in the root directory of this source tree.
27728
+ */
27729
+ var factoryWithTypeCheckers;
27730
+ var hasRequiredFactoryWithTypeCheckers;
27731
+ function requireFactoryWithTypeCheckers() {
27732
+ if (hasRequiredFactoryWithTypeCheckers) return factoryWithTypeCheckers;
27733
+ hasRequiredFactoryWithTypeCheckers = 1;
27734
+ var ReactIs = requireReactIs();
27735
+ var assign = requireObjectAssign();
27736
+ var ReactPropTypesSecret = /*@__PURE__*/requireReactPropTypesSecret();
27737
+ var has = /*@__PURE__*/requireHas();
27738
+ var checkPropTypes = /*@__PURE__*/requireCheckPropTypes();
27739
+ var printWarning = function () {};
27740
+ if (process.env.NODE_ENV !== 'production') {
27741
+ printWarning = function (text) {
27742
+ var message = 'Warning: ' + text;
27743
+ if (typeof console !== 'undefined') {
27744
+ console.error(message);
27745
+ }
27746
+ try {
27747
+ // --- Welcome to debugging React ---
27748
+ // This error was thrown as a convenience so that you can use this stack
27749
+ // to find the callsite that caused this warning to fire.
27750
+ throw new Error(message);
27751
+ } catch (x) {}
27752
+ };
27753
+ }
27754
+ function emptyFunctionThatReturnsNull() {
27755
+ return null;
27756
+ }
27757
+ factoryWithTypeCheckers = function (isValidElement, throwOnDirectAccess) {
27758
+ /* global Symbol */
27759
+ var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
27760
+ var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.
27761
+
27762
+ /**
27763
+ * Returns the iterator method function contained on the iterable object.
27764
+ *
27277
27765
  * Be sure to invoke the function with the iterable as context:
27278
27766
  *
27279
27767
  * var iteratorFn = getIteratorFn(myIterable);
@@ -27345,6 +27833,7 @@ function requireFactoryWithTypeCheckers() {
27345
27833
  // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.
27346
27834
  var ReactPropTypes = {
27347
27835
  array: createPrimitiveTypeChecker('array'),
27836
+ bigint: createPrimitiveTypeChecker('bigint'),
27348
27837
  bool: createPrimitiveTypeChecker('boolean'),
27349
27838
  func: createPrimitiveTypeChecker('function'),
27350
27839
  number: createPrimitiveTypeChecker('number'),
@@ -27354,6 +27843,7 @@ function requireFactoryWithTypeCheckers() {
27354
27843
  any: createAnyTypeChecker(),
27355
27844
  arrayOf: createArrayOfTypeChecker,
27356
27845
  element: createElementTypeChecker(),
27846
+ elementType: createElementTypeTypeChecker(),
27357
27847
  instanceOf: createInstanceTypeChecker,
27358
27848
  node: createNodeChecker(),
27359
27849
  objectOf: createObjectOfTypeChecker,
@@ -27388,8 +27878,9 @@ function requireFactoryWithTypeCheckers() {
27388
27878
  * is prohibitively expensive if they are created too often, such as what
27389
27879
  * happens in oneOfType() for any type before the one that matched.
27390
27880
  */
27391
- function PropTypeError(message) {
27881
+ function PropTypeError(message, data) {
27392
27882
  this.message = message;
27883
+ this.data = data && typeof data === 'object' ? data : {};
27393
27884
  this.stack = '';
27394
27885
  }
27395
27886
  // Make `instanceof Error` still work for returned errors.
@@ -27445,7 +27936,9 @@ function requireFactoryWithTypeCheckers() {
27445
27936
  // check, but we can offer a more precise error message here rather than
27446
27937
  // 'of type `object`'.
27447
27938
  var preciseType = getPreciseType(propValue);
27448
- return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));
27939
+ return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'), {
27940
+ expectedType: expectedType
27941
+ });
27449
27942
  }
27450
27943
  return null;
27451
27944
  }
@@ -27485,6 +27978,17 @@ function requireFactoryWithTypeCheckers() {
27485
27978
  }
27486
27979
  return createChainableTypeChecker(validate);
27487
27980
  }
27981
+ function createElementTypeTypeChecker() {
27982
+ function validate(props, propName, componentName, location, propFullName) {
27983
+ var propValue = props[propName];
27984
+ if (!ReactIs.isValidElementType(propValue)) {
27985
+ var propType = getPropType(propValue);
27986
+ return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));
27987
+ }
27988
+ return null;
27989
+ }
27990
+ return createChainableTypeChecker(validate);
27991
+ }
27488
27992
  function createInstanceTypeChecker(expectedClass) {
27489
27993
  function validate(props, propName, componentName, location, propFullName) {
27490
27994
  if (!(props[propName] instanceof expectedClass)) {
@@ -27498,7 +28002,13 @@ function requireFactoryWithTypeCheckers() {
27498
28002
  }
27499
28003
  function createEnumTypeChecker(expectedValues) {
27500
28004
  if (!Array.isArray(expectedValues)) {
27501
- process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOf, expected an instance of array.') : void 0;
28005
+ if (process.env.NODE_ENV !== 'production') {
28006
+ if (arguments.length > 1) {
28007
+ 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]).');
28008
+ } else {
28009
+ printWarning('Invalid argument supplied to oneOf, expected an array.');
28010
+ }
28011
+ }
27502
28012
  return emptyFunctionThatReturnsNull;
27503
28013
  }
27504
28014
  function validate(props, propName, componentName, location, propFullName) {
@@ -27508,8 +28018,14 @@ function requireFactoryWithTypeCheckers() {
27508
28018
  return null;
27509
28019
  }
27510
28020
  }
27511
- var valuesString = JSON.stringify(expectedValues);
27512
- return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
28021
+ var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {
28022
+ var type = getPreciseType(value);
28023
+ if (type === 'symbol') {
28024
+ return String(value);
28025
+ }
28026
+ return value;
28027
+ });
28028
+ return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
27513
28029
  }
27514
28030
  return createChainableTypeChecker(validate);
27515
28031
  }
@@ -27524,7 +28040,7 @@ function requireFactoryWithTypeCheckers() {
27524
28040
  return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));
27525
28041
  }
27526
28042
  for (var key in propValue) {
27527
- if (propValue.hasOwnProperty(key)) {
28043
+ if (has(propValue, key)) {
27528
28044
  var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
27529
28045
  if (error instanceof Error) {
27530
28046
  return error;
@@ -27548,13 +28064,19 @@ function requireFactoryWithTypeCheckers() {
27548
28064
  }
27549
28065
  }
27550
28066
  function validate(props, propName, componentName, location, propFullName) {
28067
+ var expectedTypes = [];
27551
28068
  for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
27552
28069
  var checker = arrayOfTypeCheckers[i];
27553
- if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {
28070
+ var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);
28071
+ if (checkerResult == null) {
27554
28072
  return null;
27555
28073
  }
28074
+ if (checkerResult.data && has(checkerResult.data, 'expectedType')) {
28075
+ expectedTypes.push(checkerResult.data.expectedType);
28076
+ }
27556
28077
  }
27557
- return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));
28078
+ var expectedTypesMessage = expectedTypes.length > 0 ? ', expected one of type [' + expectedTypes.join(', ') + ']' : '';
28079
+ return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));
27558
28080
  }
27559
28081
  return createChainableTypeChecker(validate);
27560
28082
  }
@@ -27567,6 +28089,9 @@ function requireFactoryWithTypeCheckers() {
27567
28089
  }
27568
28090
  return createChainableTypeChecker(validate);
27569
28091
  }
28092
+ function invalidValidatorError(componentName, location, propFullName, key, type) {
28093
+ 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 + '`.');
28094
+ }
27570
28095
  function createShapeTypeChecker(shapeTypes) {
27571
28096
  function validate(props, propName, componentName, location, propFullName) {
27572
28097
  var propValue = props[propName];
@@ -27576,8 +28101,8 @@ function requireFactoryWithTypeCheckers() {
27576
28101
  }
27577
28102
  for (var key in shapeTypes) {
27578
28103
  var checker = shapeTypes[key];
27579
- if (!checker) {
27580
- continue;
28104
+ if (typeof checker !== 'function') {
28105
+ return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
27581
28106
  }
27582
28107
  var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
27583
28108
  if (error) {
@@ -27595,11 +28120,13 @@ function requireFactoryWithTypeCheckers() {
27595
28120
  if (propType !== 'object') {
27596
28121
  return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
27597
28122
  }
27598
- // We need to check all keys in case some are required but missing from
27599
- // props.
28123
+ // We need to check all keys in case some are required but missing from props.
27600
28124
  var allKeys = assign({}, props[propName], shapeTypes);
27601
28125
  for (var key in allKeys) {
27602
28126
  var checker = shapeTypes[key];
28127
+ if (has(shapeTypes, key) && typeof checker !== 'function') {
28128
+ return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
28129
+ }
27603
28130
  if (!checker) {
27604
28131
  return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' + '\nBad object: ' + JSON.stringify(props[propName], null, ' ') + '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' '));
27605
28132
  }
@@ -27662,6 +28189,11 @@ function requireFactoryWithTypeCheckers() {
27662
28189
  return true;
27663
28190
  }
27664
28191
 
28192
+ // falsy value can't be a Symbol
28193
+ if (!propValue) {
28194
+ return false;
28195
+ }
28196
+
27665
28197
  // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'
27666
28198
  if (propValue['@@toStringTag'] === 'Symbol') {
27667
28199
  return true;
@@ -27734,6 +28266,7 @@ function requireFactoryWithTypeCheckers() {
27734
28266
  return propValue.constructor.name;
27735
28267
  }
27736
28268
  ReactPropTypes.checkPropTypes = checkPropTypes;
28269
+ ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;
27737
28270
  ReactPropTypes.PropTypes = ReactPropTypes;
27738
28271
  return ReactPropTypes;
27739
28272
  };
@@ -27751,8 +28284,10 @@ var hasRequiredFactoryWithThrowingShims;
27751
28284
  function requireFactoryWithThrowingShims() {
27752
28285
  if (hasRequiredFactoryWithThrowingShims) return factoryWithThrowingShims;
27753
28286
  hasRequiredFactoryWithThrowingShims = 1;
27754
- var ReactPropTypesSecret = requireReactPropTypesSecret();
28287
+ var ReactPropTypesSecret = /*@__PURE__*/requireReactPropTypesSecret();
27755
28288
  function emptyFunction() {}
28289
+ function emptyFunctionWithReset() {}
28290
+ emptyFunctionWithReset.resetWarningCache = emptyFunction;
27756
28291
  factoryWithThrowingShims = function () {
27757
28292
  function shim(props, propName, componentName, location, propFullName, secret) {
27758
28293
  if (secret === ReactPropTypesSecret) {
@@ -27771,6 +28306,7 @@ function requireFactoryWithThrowingShims() {
27771
28306
  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.
27772
28307
  var ReactPropTypes = {
27773
28308
  array: shim,
28309
+ bigint: shim,
27774
28310
  bool: shim,
27775
28311
  func: shim,
27776
28312
  number: shim,
@@ -27780,15 +28316,17 @@ function requireFactoryWithThrowingShims() {
27780
28316
  any: shim,
27781
28317
  arrayOf: getShim,
27782
28318
  element: shim,
28319
+ elementType: shim,
27783
28320
  instanceOf: getShim,
27784
28321
  node: shim,
27785
28322
  objectOf: getShim,
27786
28323
  oneOf: getShim,
27787
28324
  oneOfType: getShim,
27788
28325
  shape: getShim,
27789
- exact: getShim
28326
+ exact: getShim,
28327
+ checkPropTypes: emptyFunctionWithReset,
28328
+ resetWarningCache: emptyFunction
27790
28329
  };
27791
- ReactPropTypes.checkPropTypes = emptyFunction;
27792
28330
  ReactPropTypes.PropTypes = ReactPropTypes;
27793
28331
  return ReactPropTypes;
27794
28332
  };
@@ -27806,24 +28344,21 @@ function requirePropTypes() {
27806
28344
  if (hasRequiredPropTypes) return propTypes.exports;
27807
28345
  hasRequiredPropTypes = 1;
27808
28346
  if (process.env.NODE_ENV !== 'production') {
27809
- var REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol.for && Symbol.for('react.element') || 0xeac7;
27810
- var isValidElement = function (object) {
27811
- return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
27812
- };
28347
+ var ReactIs = requireReactIs();
27813
28348
 
27814
28349
  // By explicitly using `prop-types` you are opting into new development behavior.
27815
28350
  // http://fb.me/prop-types-in-prod
27816
28351
  var throwOnDirectAccess = true;
27817
- propTypes.exports = requireFactoryWithTypeCheckers()(isValidElement, throwOnDirectAccess);
28352
+ propTypes.exports = /*@__PURE__*/requireFactoryWithTypeCheckers()(ReactIs.isElement, throwOnDirectAccess);
27818
28353
  } else {
27819
28354
  // By explicitly using `prop-types` you are opting into new production behavior.
27820
28355
  // http://fb.me/prop-types-in-prod
27821
- propTypes.exports = requireFactoryWithThrowingShims()();
28356
+ propTypes.exports = /*@__PURE__*/requireFactoryWithThrowingShims()();
27822
28357
  }
27823
28358
  return propTypes.exports;
27824
28359
  }
27825
28360
 
27826
- var propTypesExports = requirePropTypes();
28361
+ var propTypesExports = /*@__PURE__*/ requirePropTypes();
27827
28362
  var PropTypes = /*@__PURE__*/getDefaultExportFromCjs(propTypesExports);
27828
28363
 
27829
28364
  var _excluded = ["sitekey", "onChange", "theme", "type", "tabindex", "onExpired", "onErrored", "size", "stoken", "grecaptcha", "badge", "hl", "isolated"];
@@ -28044,316 +28579,6 @@ ReCAPTCHA.defaultProps = {
28044
28579
  badge: "bottomright"
28045
28580
  };
28046
28581
 
28047
- var reactIs = {exports: {}};
28048
-
28049
- var reactIs_production_min = {};
28050
-
28051
- /** @license React v16.13.1
28052
- * react-is.production.min.js
28053
- *
28054
- * Copyright (c) Facebook, Inc. and its affiliates.
28055
- *
28056
- * This source code is licensed under the MIT license found in the
28057
- * LICENSE file in the root directory of this source tree.
28058
- */
28059
- var hasRequiredReactIs_production_min;
28060
- function requireReactIs_production_min() {
28061
- if (hasRequiredReactIs_production_min) return reactIs_production_min;
28062
- hasRequiredReactIs_production_min = 1;
28063
- var b = "function" === typeof Symbol && Symbol.for,
28064
- c = b ? Symbol.for("react.element") : 60103,
28065
- d = b ? Symbol.for("react.portal") : 60106,
28066
- e = b ? Symbol.for("react.fragment") : 60107,
28067
- f = b ? Symbol.for("react.strict_mode") : 60108,
28068
- g = b ? Symbol.for("react.profiler") : 60114,
28069
- h = b ? Symbol.for("react.provider") : 60109,
28070
- k = b ? Symbol.for("react.context") : 60110,
28071
- l = b ? Symbol.for("react.async_mode") : 60111,
28072
- m = b ? Symbol.for("react.concurrent_mode") : 60111,
28073
- n = b ? Symbol.for("react.forward_ref") : 60112,
28074
- p = b ? Symbol.for("react.suspense") : 60113,
28075
- q = b ? Symbol.for("react.suspense_list") : 60120,
28076
- r = b ? Symbol.for("react.memo") : 60115,
28077
- t = b ? Symbol.for("react.lazy") : 60116,
28078
- v = b ? Symbol.for("react.block") : 60121,
28079
- w = b ? Symbol.for("react.fundamental") : 60117,
28080
- x = b ? Symbol.for("react.responder") : 60118,
28081
- y = b ? Symbol.for("react.scope") : 60119;
28082
- function z(a) {
28083
- if ("object" === typeof a && null !== a) {
28084
- var u = a.$$typeof;
28085
- switch (u) {
28086
- case c:
28087
- switch (a = a.type, a) {
28088
- case l:
28089
- case m:
28090
- case e:
28091
- case g:
28092
- case f:
28093
- case p:
28094
- return a;
28095
- default:
28096
- switch (a = a && a.$$typeof, a) {
28097
- case k:
28098
- case n:
28099
- case t:
28100
- case r:
28101
- case h:
28102
- return a;
28103
- default:
28104
- return u;
28105
- }
28106
- }
28107
- case d:
28108
- return u;
28109
- }
28110
- }
28111
- }
28112
- function A(a) {
28113
- return z(a) === m;
28114
- }
28115
- reactIs_production_min.AsyncMode = l;
28116
- reactIs_production_min.ConcurrentMode = m;
28117
- reactIs_production_min.ContextConsumer = k;
28118
- reactIs_production_min.ContextProvider = h;
28119
- reactIs_production_min.Element = c;
28120
- reactIs_production_min.ForwardRef = n;
28121
- reactIs_production_min.Fragment = e;
28122
- reactIs_production_min.Lazy = t;
28123
- reactIs_production_min.Memo = r;
28124
- reactIs_production_min.Portal = d;
28125
- reactIs_production_min.Profiler = g;
28126
- reactIs_production_min.StrictMode = f;
28127
- reactIs_production_min.Suspense = p;
28128
- reactIs_production_min.isAsyncMode = function (a) {
28129
- return A(a) || z(a) === l;
28130
- };
28131
- reactIs_production_min.isConcurrentMode = A;
28132
- reactIs_production_min.isContextConsumer = function (a) {
28133
- return z(a) === k;
28134
- };
28135
- reactIs_production_min.isContextProvider = function (a) {
28136
- return z(a) === h;
28137
- };
28138
- reactIs_production_min.isElement = function (a) {
28139
- return "object" === typeof a && null !== a && a.$$typeof === c;
28140
- };
28141
- reactIs_production_min.isForwardRef = function (a) {
28142
- return z(a) === n;
28143
- };
28144
- reactIs_production_min.isFragment = function (a) {
28145
- return z(a) === e;
28146
- };
28147
- reactIs_production_min.isLazy = function (a) {
28148
- return z(a) === t;
28149
- };
28150
- reactIs_production_min.isMemo = function (a) {
28151
- return z(a) === r;
28152
- };
28153
- reactIs_production_min.isPortal = function (a) {
28154
- return z(a) === d;
28155
- };
28156
- reactIs_production_min.isProfiler = function (a) {
28157
- return z(a) === g;
28158
- };
28159
- reactIs_production_min.isStrictMode = function (a) {
28160
- return z(a) === f;
28161
- };
28162
- reactIs_production_min.isSuspense = function (a) {
28163
- return z(a) === p;
28164
- };
28165
- reactIs_production_min.isValidElementType = function (a) {
28166
- return "string" === typeof a || "function" === typeof a || a === e || a === m || a === g || a === f || a === p || a === q || "object" === typeof a && null !== a && (a.$$typeof === t || a.$$typeof === r || a.$$typeof === h || a.$$typeof === k || a.$$typeof === n || a.$$typeof === w || a.$$typeof === x || a.$$typeof === y || a.$$typeof === v);
28167
- };
28168
- reactIs_production_min.typeOf = z;
28169
- return reactIs_production_min;
28170
- }
28171
-
28172
- var reactIs_development = {};
28173
-
28174
- /** @license React v16.13.1
28175
- * react-is.development.js
28176
- *
28177
- * Copyright (c) Facebook, Inc. and its affiliates.
28178
- *
28179
- * This source code is licensed under the MIT license found in the
28180
- * LICENSE file in the root directory of this source tree.
28181
- */
28182
- var hasRequiredReactIs_development;
28183
- function requireReactIs_development() {
28184
- if (hasRequiredReactIs_development) return reactIs_development;
28185
- hasRequiredReactIs_development = 1;
28186
- if (process.env.NODE_ENV !== "production") {
28187
- (function () {
28188
-
28189
- // The Symbol used to tag the ReactElement-like types. If there is no native Symbol
28190
- // nor polyfill, then a plain number is used for performance.
28191
- var hasSymbol = typeof Symbol === 'function' && Symbol.for;
28192
- var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
28193
- var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
28194
- var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
28195
- var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
28196
- var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
28197
- var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
28198
- var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary
28199
- // (unstable) APIs that have been removed. Can we remove the symbols?
28200
-
28201
- var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;
28202
- var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
28203
- var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
28204
- var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
28205
- var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;
28206
- var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
28207
- var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;
28208
- var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;
28209
- var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;
28210
- var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;
28211
- var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;
28212
- function isValidElementType(type) {
28213
- return typeof type === 'string' || typeof type === 'function' ||
28214
- // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
28215
- type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);
28216
- }
28217
- function typeOf(object) {
28218
- if (typeof object === 'object' && object !== null) {
28219
- var $$typeof = object.$$typeof;
28220
- switch ($$typeof) {
28221
- case REACT_ELEMENT_TYPE:
28222
- var type = object.type;
28223
- switch (type) {
28224
- case REACT_ASYNC_MODE_TYPE:
28225
- case REACT_CONCURRENT_MODE_TYPE:
28226
- case REACT_FRAGMENT_TYPE:
28227
- case REACT_PROFILER_TYPE:
28228
- case REACT_STRICT_MODE_TYPE:
28229
- case REACT_SUSPENSE_TYPE:
28230
- return type;
28231
- default:
28232
- var $$typeofType = type && type.$$typeof;
28233
- switch ($$typeofType) {
28234
- case REACT_CONTEXT_TYPE:
28235
- case REACT_FORWARD_REF_TYPE:
28236
- case REACT_LAZY_TYPE:
28237
- case REACT_MEMO_TYPE:
28238
- case REACT_PROVIDER_TYPE:
28239
- return $$typeofType;
28240
- default:
28241
- return $$typeof;
28242
- }
28243
- }
28244
- case REACT_PORTAL_TYPE:
28245
- return $$typeof;
28246
- }
28247
- }
28248
- return undefined;
28249
- } // AsyncMode is deprecated along with isAsyncMode
28250
-
28251
- var AsyncMode = REACT_ASYNC_MODE_TYPE;
28252
- var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
28253
- var ContextConsumer = REACT_CONTEXT_TYPE;
28254
- var ContextProvider = REACT_PROVIDER_TYPE;
28255
- var Element = REACT_ELEMENT_TYPE;
28256
- var ForwardRef = REACT_FORWARD_REF_TYPE;
28257
- var Fragment = REACT_FRAGMENT_TYPE;
28258
- var Lazy = REACT_LAZY_TYPE;
28259
- var Memo = REACT_MEMO_TYPE;
28260
- var Portal = REACT_PORTAL_TYPE;
28261
- var Profiler = REACT_PROFILER_TYPE;
28262
- var StrictMode = REACT_STRICT_MODE_TYPE;
28263
- var Suspense = REACT_SUSPENSE_TYPE;
28264
- var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated
28265
-
28266
- function isAsyncMode(object) {
28267
- {
28268
- if (!hasWarnedAboutDeprecatedIsAsyncMode) {
28269
- hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint
28270
-
28271
- console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');
28272
- }
28273
- }
28274
- return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
28275
- }
28276
- function isConcurrentMode(object) {
28277
- return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
28278
- }
28279
- function isContextConsumer(object) {
28280
- return typeOf(object) === REACT_CONTEXT_TYPE;
28281
- }
28282
- function isContextProvider(object) {
28283
- return typeOf(object) === REACT_PROVIDER_TYPE;
28284
- }
28285
- function isElement(object) {
28286
- return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
28287
- }
28288
- function isForwardRef(object) {
28289
- return typeOf(object) === REACT_FORWARD_REF_TYPE;
28290
- }
28291
- function isFragment(object) {
28292
- return typeOf(object) === REACT_FRAGMENT_TYPE;
28293
- }
28294
- function isLazy(object) {
28295
- return typeOf(object) === REACT_LAZY_TYPE;
28296
- }
28297
- function isMemo(object) {
28298
- return typeOf(object) === REACT_MEMO_TYPE;
28299
- }
28300
- function isPortal(object) {
28301
- return typeOf(object) === REACT_PORTAL_TYPE;
28302
- }
28303
- function isProfiler(object) {
28304
- return typeOf(object) === REACT_PROFILER_TYPE;
28305
- }
28306
- function isStrictMode(object) {
28307
- return typeOf(object) === REACT_STRICT_MODE_TYPE;
28308
- }
28309
- function isSuspense(object) {
28310
- return typeOf(object) === REACT_SUSPENSE_TYPE;
28311
- }
28312
- reactIs_development.AsyncMode = AsyncMode;
28313
- reactIs_development.ConcurrentMode = ConcurrentMode;
28314
- reactIs_development.ContextConsumer = ContextConsumer;
28315
- reactIs_development.ContextProvider = ContextProvider;
28316
- reactIs_development.Element = Element;
28317
- reactIs_development.ForwardRef = ForwardRef;
28318
- reactIs_development.Fragment = Fragment;
28319
- reactIs_development.Lazy = Lazy;
28320
- reactIs_development.Memo = Memo;
28321
- reactIs_development.Portal = Portal;
28322
- reactIs_development.Profiler = Profiler;
28323
- reactIs_development.StrictMode = StrictMode;
28324
- reactIs_development.Suspense = Suspense;
28325
- reactIs_development.isAsyncMode = isAsyncMode;
28326
- reactIs_development.isConcurrentMode = isConcurrentMode;
28327
- reactIs_development.isContextConsumer = isContextConsumer;
28328
- reactIs_development.isContextProvider = isContextProvider;
28329
- reactIs_development.isElement = isElement;
28330
- reactIs_development.isForwardRef = isForwardRef;
28331
- reactIs_development.isFragment = isFragment;
28332
- reactIs_development.isLazy = isLazy;
28333
- reactIs_development.isMemo = isMemo;
28334
- reactIs_development.isPortal = isPortal;
28335
- reactIs_development.isProfiler = isProfiler;
28336
- reactIs_development.isStrictMode = isStrictMode;
28337
- reactIs_development.isSuspense = isSuspense;
28338
- reactIs_development.isValidElementType = isValidElementType;
28339
- reactIs_development.typeOf = typeOf;
28340
- })();
28341
- }
28342
- return reactIs_development;
28343
- }
28344
-
28345
- var hasRequiredReactIs;
28346
- function requireReactIs() {
28347
- if (hasRequiredReactIs) return reactIs.exports;
28348
- hasRequiredReactIs = 1;
28349
- if (process.env.NODE_ENV === 'production') {
28350
- reactIs.exports = requireReactIs_production_min();
28351
- } else {
28352
- reactIs.exports = requireReactIs_development();
28353
- }
28354
- return reactIs.exports;
28355
- }
28356
-
28357
28582
  var hoistNonReactStatics_cjs;
28358
28583
  var hasRequiredHoistNonReactStatics_cjs;
28359
28584
  function requireHoistNonReactStatics_cjs() {
@@ -28702,6 +28927,8 @@ var RecaptchaWrapper = makeAsyncScript(getURL, {
28702
28927
  var css_248z$B = ".ff-recaptcha-wrapper {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n.ff-recaptcha-wrapper .ff-recaptcha-error {\n color: var(--input-error-text-color);\n font-size: 12px;\n margin-top: 4px;\n}";
28703
28928
  styleInject(css_248z$B);
28704
28929
 
28930
+ // Extend the props to include React.RefAttributes
28931
+ const FixedReCAPTCHA = RecaptchaWrapper;
28705
28932
  const Recaptcha = /*#__PURE__*/React.forwardRef(({
28706
28933
  onVerify,
28707
28934
  className = '',
@@ -28721,7 +28948,7 @@ const Recaptcha = /*#__PURE__*/React.forwardRef(({
28721
28948
  const error = externalError || internalError;
28722
28949
  return jsxRuntime.jsxs("div", {
28723
28950
  className: classNames('ff-recaptcha-wrapper', className),
28724
- children: [jsxRuntime.jsx(RecaptchaWrapper, {
28951
+ children: [jsxRuntime.jsx(FixedReCAPTCHA, {
28725
28952
  ref: ref,
28726
28953
  sitekey: sitekey,
28727
28954
  onChange: handleChange,
@@ -33218,7 +33445,7 @@ var scheduler = {exports: {}};
33218
33445
 
33219
33446
  var scheduler_production_min = {};
33220
33447
 
33221
- /** @license React v0.19.0
33448
+ /** @license React v0.19.1
33222
33449
  * scheduler.production.min.js
33223
33450
  *
33224
33451
  * Copyright (c) Facebook, Inc. and its affiliates.
@@ -33520,7 +33747,7 @@ function requireScheduler_production_min() {
33520
33747
 
33521
33748
  var scheduler_development = {};
33522
33749
 
33523
- /** @license React v0.19.0
33750
+ /** @license React v0.19.1
33524
33751
  * scheduler.development.js
33525
33752
  *
33526
33753
  * Copyright (c) Facebook, Inc. and its affiliates.