pixel-react 1.10.10-1 → 1.10.10-3

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 (178) hide show
  1. package/lib/1fb4472b34e4fe07.css +1 -0
  2. package/lib/StyleGuide/ColorPalette/ColorPalette.stories.d.ts +6 -0
  3. package/lib/StyleGuide/Typography/Typography.stories.d.ts +6 -0
  4. package/lib/assets/fonts/Poppins-Bold.ttf +0 -0
  5. package/lib/assets/fonts/Poppins-Medium.ttf +0 -0
  6. package/lib/assets/fonts/Poppins-Regular.ttf +0 -0
  7. package/lib/assets/fonts/Poppins-SemiBold.ttf +0 -0
  8. package/lib/components/Accordion/Accordion.stories.d.ts +6 -0
  9. package/lib/components/AddButton/AddButton.d.ts +5 -0
  10. package/lib/components/AddButton/AddButton.stories.d.ts +6 -0
  11. package/lib/components/AddButton/index.d.ts +1 -0
  12. package/lib/components/AddButton/types.d.ts +4 -0
  13. package/lib/components/AddResourceButton/AddButton.stories.d.ts +8 -0
  14. package/lib/components/AddVariables/AddVariables.d.ts +5 -0
  15. package/lib/components/AddVariables/index.d.ts +1 -0
  16. package/lib/components/AddVariables/types.d.ts +35 -0
  17. package/lib/components/AllProjectsDropdown/AllProjectsDropdown.stories.d.ts +7 -0
  18. package/lib/components/AppHeader/AppHeader.stories.d.ts +7 -0
  19. package/lib/components/AppHeader/types.d.ts +1 -0
  20. package/lib/components/AttachImage/AttachImage.stories.d.ts +7 -0
  21. package/lib/components/AttachmentButton/AttachmentButton.stories.d.ts +9 -0
  22. package/lib/components/Avatar/Avatar.stories.d.ts +10 -0
  23. package/lib/components/Button/Button.stories.d.ts +13 -0
  24. package/lib/components/Charts/BarChart/BarChart.stories.d.ts +6 -0
  25. package/lib/components/Charts/DashboardDonutChart/DashboardDonutChart.stories.d.ts +7 -0
  26. package/lib/components/Charts/DonutChart/DonutChart.stories.d.ts +6 -0
  27. package/lib/components/Charts/IconRadialChart/IconRadialChart.stories.d.ts +8 -0
  28. package/lib/components/Charts/LineChart/LineChart.stories.d.ts +7 -0
  29. package/lib/components/Charts/MultiRadialChart/MultiRadialChart.stories.d.ts +8 -0
  30. package/lib/components/Charts/PieChart/PieChart.stories.d.ts +7 -0
  31. package/lib/components/Charts/RadialChart/RadialChart.stories.d.ts +6 -0
  32. package/lib/components/Checkbox/Checkbox.stories.d.ts +8 -0
  33. package/lib/components/Chip/Chip.stories.d.ts +14 -0
  34. package/lib/components/ConnectingBranch/ConnectingBranch.stories.d.ts +6 -0
  35. package/lib/components/ConnectingBranch/types.d.ts +2 -0
  36. package/lib/components/DatePicker/DatePicker.stories.d.ts +9 -0
  37. package/lib/components/DragAndDrop/DragAndDrop.stories.d.ts +6 -0
  38. package/lib/components/Drawer/Drawer.stories.d.ts +12 -0
  39. package/lib/components/EditTextField/EditTextField.stories.d.ts +10 -0
  40. package/lib/components/Editor/Editor.stories.d.ts +6 -0
  41. package/lib/components/Excel/ContextMenu/ContextMenu.d.ts +4 -0
  42. package/lib/components/Excel/ExcelFile.stories.d.ts +6 -0
  43. package/lib/components/ExcelFile/ChangeExcelStyles.d.ts +14 -0
  44. package/lib/components/ExcelFile/ColorBarSelector/ColorBarSelector.d.ts +8 -0
  45. package/lib/components/ExcelFile/ContextMenu/ContextMenu.d.ts +4 -0
  46. package/lib/components/ExcelFile/ExcelFile/Excel/ActiveCell.d.ts +7 -0
  47. package/lib/components/ExcelFile/ExcelFile/Excel/Cell.d.ts +4 -0
  48. package/lib/components/ExcelFile/ExcelFile/Excel/ColumnIndicator.d.ts +5 -0
  49. package/lib/components/ExcelFile/ExcelFile/Excel/Copied.d.ts +3 -0
  50. package/lib/components/ExcelFile/ExcelFile/Excel/CornerIndicator.d.ts +5 -0
  51. package/lib/components/ExcelFile/ExcelFile/Excel/DataEditor.d.ts +5 -0
  52. package/lib/components/ExcelFile/ExcelFile/Excel/DataViewer.d.ts +8 -0
  53. package/lib/components/ExcelFile/ExcelFile/Excel/FloatingRect.d.ts +10 -0
  54. package/lib/components/ExcelFile/ExcelFile/Excel/HeaderRow.d.ts +3 -0
  55. package/lib/components/ExcelFile/ExcelFile/Excel/Row.d.ts +3 -0
  56. package/lib/components/ExcelFile/ExcelFile/Excel/RowIndicator.d.ts +5 -0
  57. package/lib/components/ExcelFile/ExcelFile/Excel/Selected.d.ts +3 -0
  58. package/lib/components/ExcelFile/ExcelFile/Excel/Spreadsheet.d.ts +80 -0
  59. package/lib/components/ExcelFile/ExcelFile/Excel/Table.d.ts +3 -0
  60. package/lib/components/ExcelFile/ExcelFile/Excel/actions.d.ts +174 -0
  61. package/lib/components/ExcelFile/ExcelFile/Excel/areModelsEqual.d.ts +1 -0
  62. package/lib/components/ExcelFile/ExcelFile/Excel/context.d.ts +8 -0
  63. package/lib/components/ExcelFile/ExcelFile/Excel/engine/engine.d.ts +22 -0
  64. package/lib/components/ExcelFile/ExcelFile/Excel/engine/formula.d.ts +17 -0
  65. package/lib/components/ExcelFile/ExcelFile/Excel/engine/index.d.ts +2 -0
  66. package/lib/components/ExcelFile/ExcelFile/Excel/engine/point-graph.d.ts +21 -0
  67. package/lib/components/ExcelFile/ExcelFile/Excel/engine/point-hash.d.ts +3 -0
  68. package/lib/components/ExcelFile/ExcelFile/Excel/engine/point-set.d.ts +24 -0
  69. package/lib/components/ExcelFile/ExcelFile/Excel/index.d.ts +13 -0
  70. package/lib/components/ExcelFile/ExcelFile/Excel/matrix.d.ts +67 -0
  71. package/lib/components/ExcelFile/ExcelFile/Excel/point-range.d.ts +22 -0
  72. package/lib/components/ExcelFile/ExcelFile/Excel/point.d.ts +11 -0
  73. package/lib/components/ExcelFile/ExcelFile/Excel/reducer.d.ts +27 -0
  74. package/lib/components/ExcelFile/ExcelFile/Excel/selection.d.ts +95 -0
  75. package/lib/components/ExcelFile/ExcelFile/Excel/types.d.ts +178 -0
  76. package/lib/components/ExcelFile/ExcelFile/Excel/use-dispatch.d.ts +3 -0
  77. package/lib/components/ExcelFile/ExcelFile/Excel/use-selector.d.ts +3 -0
  78. package/lib/components/ExcelFile/ExcelFile/Excel/util.d.ts +44 -0
  79. package/lib/components/ExcelFile/ExcelFile/ExcelFile.d.ts +19 -0
  80. package/lib/components/ExcelFile/ExcelFile.stories.d.ts +6 -0
  81. package/lib/components/ExcelFile/ExcelSheetBar/ExcelSheetBar.d.ts +12 -0
  82. package/lib/components/ExcelFile/ExcelToolBar/ExcelToolBar.d.ts +15 -0
  83. package/lib/components/ExcelFile/ImportExcelStyles.d.ts +24 -0
  84. package/lib/components/ExcelFile/Types.d.ts +129 -0
  85. package/lib/components/ExcelFile/index.d.ts +1 -0
  86. package/lib/components/ExpandableMenu/ExpandableMenu.stories.d.ts +7 -0
  87. package/lib/components/FF_Captcha/captcha.stories.d.ts +8 -0
  88. package/lib/components/FileDropzone/FileDropzone.stories.d.ts +8 -0
  89. package/lib/components/Form/Form.stories.d.ts +7 -0
  90. package/lib/components/GridLayout/GridLayout.stories.d.ts +8 -0
  91. package/lib/components/HighlightText/HighlightText.stories.d.ts +6 -0
  92. package/lib/components/Icon/Icon.stories.d.ts +8 -0
  93. package/lib/components/IconButton/IconButton.stories.d.ts +7 -0
  94. package/lib/components/IconRadioGroup/IconRadioGroup.stories.d.ts +7 -0
  95. package/lib/components/Input/Input.stories.d.ts +9 -0
  96. package/lib/components/InputWithDropdown/InputWithDropdown.stories.d.ts +9 -0
  97. package/lib/components/LabelEditTextField/LabelEditTextField.stories.d.ts +13 -0
  98. package/lib/components/LazyLoad/LazyLoad.stories.d.ts +6 -0
  99. package/lib/components/MachineInputField/MachineInputField.stories.d.ts +6 -0
  100. package/lib/components/MenuOption/MenuOption.stories.d.ts +16 -0
  101. package/lib/components/MiniModal/MiniModal.stories.d.ts +10 -0
  102. package/lib/components/Modal/Modal.stories.d.ts +7 -0
  103. package/lib/components/ModulesChip/ModuleChip.stories.d.ts +6 -0
  104. package/lib/components/MultiSelect/MultiSelect.stories.d.ts +11 -0
  105. package/lib/components/NLPInput/NlpInput.stories.d.ts +7 -0
  106. package/lib/components/NLPInput/type.d.ts +70 -0
  107. package/lib/components/Paper/Paper.stories.d.ts +11 -0
  108. package/lib/components/RadioButton/RadioButton.stories.d.ts +10 -0
  109. package/lib/components/RadioGroup/RadioGroup.stories.d.ts +9 -0
  110. package/lib/components/Search/Search.stories.d.ts +6 -0
  111. package/lib/components/Select/Select.stories.d.ts +14 -0
  112. package/lib/components/Select/components/Dropdown/Dropdown.d.ts +4 -0
  113. package/lib/components/Select/components/Dropdown/dropdownTypes.d.ts +17 -0
  114. package/lib/components/SequentialConnectingBranch/SequentialConnectingBranch.stories.d.ts +6 -0
  115. package/lib/components/SequentialConnectingBranch/components/AddBrowserModal/AddBrowserModal.d.ts +4 -0
  116. package/lib/components/SequentialConnectingBranch/components/AddBrowserModal/types.d.ts +3 -0
  117. package/lib/components/SequentialConnectingBranch/components/DatasetListModal/DatasetListModal.d.ts +4 -0
  118. package/lib/components/SequentialConnectingBranch/components/DatasetListModal/types.d.ts +3 -0
  119. package/lib/components/StateDropdown/StateDropdown.stories.d.ts +10 -0
  120. package/lib/components/StatusButton/StatusButton.stories.d.ts +14 -0
  121. package/lib/components/StatusCard/StatusCard.stories.d.ts +11 -0
  122. package/lib/components/Table/Table.stories.d.ts +13 -0
  123. package/lib/components/TableTree/TableTree.stories.d.ts +7 -0
  124. package/lib/components/Tabs/Tabs.stories.d.ts +9 -0
  125. package/lib/components/TextArea/Textarea.stories.d.ts +9 -0
  126. package/lib/components/Toast/Toast.stories.d.ts +6 -0
  127. package/lib/components/Toastify/Toastify.stories.d.ts +6 -0
  128. package/lib/components/Toggle/Toggle.stories.d.ts +12 -0
  129. package/lib/components/Tooltip/Tooltip.stories.d.ts +15 -0
  130. package/lib/components/Typography/Typography.stories.d.ts +10 -0
  131. package/lib/components/VariableInput/VariableInput.stories.d.ts +6 -0
  132. package/lib/index.d.ts +2 -0
  133. package/lib/index.esm.js +799 -575
  134. package/lib/index.esm.js.map +1 -1
  135. package/lib/index.js +799 -575
  136. package/lib/index.js.map +1 -1
  137. package/lib/tsconfig.tsbuildinfo +1 -1
  138. package/lib/utils/checkEmpty/checkEmpty.stories.d.ts +6 -0
  139. package/lib/utils/compareArrays/compareArrays.stories.d.ts +6 -0
  140. package/lib/utils/compareObjects/compareObjects.stories.d.ts +6 -0
  141. package/lib/utils/debounce/debounce.stories.d.ts +6 -0
  142. package/lib/utils/ffID/ffID.stories.d.ts +6 -0
  143. package/lib/utils/find/findAndInsert.d.ts +7 -0
  144. package/lib/utils/find/findAndInsert.stories.d.ts +7 -0
  145. package/lib/utils/findAndInsert/findAndInsert.stories.d.ts +7 -0
  146. package/lib/utils/getEncryptedData/getEncryptedData.stories.d.ts +6 -0
  147. package/lib/utils/getExtension/getExtension.stories.d.ts +6 -0
  148. package/lib/utils/getSequentialPayload/getSequentialPayload.stories.d.ts +10 -0
  149. package/lib/utils/throttle/throttle.stories.d.ts +6 -0
  150. package/lib/utils/truncateText/truncateText.stories.d.ts +6 -0
  151. package/package.json +1 -1
  152. package/src/assets/icons/approval_pending.svg +8 -8
  153. package/src/assets/icons/configuration.svg +3 -3
  154. package/src/assets/icons/defects.svg +8 -8
  155. package/src/assets/icons/element.svg +4 -4
  156. package/src/assets/icons/project_element.svg +4 -4
  157. package/src/assets/icons/step_group.svg +10 -10
  158. package/src/assets/icons/variable.svg +3 -3
  159. package/src/assets/icons/web_service_icon.svg +3 -3
  160. package/src/components/AppHeader/AppHeader.scss +7 -1
  161. package/src/components/AppHeader/AppHeader.stories.tsx +1 -0
  162. package/src/components/AppHeader/AppHeader.tsx +8 -1
  163. package/src/components/AppHeader/types.ts +1 -0
  164. package/src/components/Comment/Comments.stories.tsx +77 -3
  165. package/src/components/ConnectingBranch/BranchComponents/MachineInstances.tsx +36 -27
  166. package/src/components/ConnectingBranch/ConnectingBranch.stories.tsx +10 -0
  167. package/src/components/ConnectingBranch/ConnectingBranch.tsx +36 -23
  168. package/src/components/ConnectingBranch/types.ts +2 -0
  169. package/src/components/Select/Select.stories.tsx +34 -10
  170. package/src/components/Select/Select.tsx +1 -0
  171. package/src/components/Select/components/Dropdown.tsx +24 -21
  172. package/src/components/SequentialConnectingBranch/components/Branches/Branches.tsx +19 -14
  173. package/src/components/TableTree/Components/AddModule/AddModule.scss +73 -1
  174. package/src/components/TableTree/Components/AddModule/AddModule.tsx +26 -2
  175. package/src/components/TableTree/Components/TableCell.tsx +122 -74
  176. package/src/components/TableTree/TableTree.scss +13 -2
  177. package/src/components/TableTree/TableTree.stories.tsx +5 -5
  178. package/src/components/TableTree/TableTree.tsx +2 -2
package/lib/index.esm.js CHANGED
@@ -2937,7 +2937,7 @@ const Dropdown$1 = ({
2937
2937
  }),
2938
2938
  children: !checkEmpty(options) ? options.map(option => jsx("div", {
2939
2939
  className: classNames('ff-select-dropdown-option', {
2940
- 'ff-select-dropdown-option__selected': getLabel(option, valueAccessor) === selectedOption
2940
+ 'ff-select-dropdown-option__selected': getValue$1(option, valueAccessor) === selectedOption
2941
2941
  }, currentTheme),
2942
2942
  onClick: () => {
2943
2943
  if ('disable' in option && option['disable']) return;
@@ -3265,7 +3265,8 @@ const Select$1 = ({
3265
3265
  onSaveModal: onSaveModal,
3266
3266
  onCancelModal: onCancelModal,
3267
3267
  modalJSXProps: modalJSXProps,
3268
- recurrence: recurrence
3268
+ recurrence: recurrence,
3269
+ valueAccessor: valueAccessor
3269
3270
  }), document.body)
3270
3271
  })]
3271
3272
  });
@@ -4028,8 +4029,6 @@ function LiveRegion(_ref) {
4028
4029
  // Hide element visually but keep it readable by screen readers
4029
4030
  const visuallyHidden = {
4030
4031
  position: 'fixed',
4031
- top: 0,
4032
- left: 0,
4033
4032
  width: 1,
4034
4033
  height: 1,
4035
4034
  margin: -1,
@@ -5019,12 +5018,11 @@ var KeyboardCode;
5019
5018
  KeyboardCode["Up"] = "ArrowUp";
5020
5019
  KeyboardCode["Esc"] = "Escape";
5021
5020
  KeyboardCode["Enter"] = "Enter";
5022
- KeyboardCode["Tab"] = "Tab";
5023
5021
  })(KeyboardCode || (KeyboardCode = {}));
5024
5022
  const defaultKeyboardCodes = {
5025
5023
  start: [KeyboardCode.Space, KeyboardCode.Enter],
5026
5024
  cancel: [KeyboardCode.Esc],
5027
- end: [KeyboardCode.Space, KeyboardCode.Enter, KeyboardCode.Tab]
5025
+ end: [KeyboardCode.Space, KeyboardCode.Enter]
5028
5026
  };
5029
5027
  const defaultKeyboardCoordinateGetter = (event, _ref) => {
5030
5028
  let {
@@ -5323,9 +5321,6 @@ class AbstractPointerSensor {
5323
5321
  passive: false
5324
5322
  });
5325
5323
  this.listeners.add(events.end.name, this.handleEnd);
5326
- if (events.cancel) {
5327
- this.listeners.add(events.cancel.name, this.handleCancel);
5328
- }
5329
5324
  this.windowListeners.add(EventName.Resize, this.handleCancel);
5330
5325
  this.windowListeners.add(EventName.DragStart, preventDefault);
5331
5326
  this.windowListeners.add(EventName.VisibilityChange, this.handleCancel);
@@ -5341,11 +5336,9 @@ class AbstractPointerSensor {
5341
5336
  }
5342
5337
  if (isDelayConstraint(activationConstraint)) {
5343
5338
  this.timeoutId = setTimeout(this.handleStart, activationConstraint.delay);
5344
- this.handlePending(activationConstraint);
5345
5339
  return;
5346
5340
  }
5347
5341
  if (isDistanceConstraint(activationConstraint)) {
5348
- this.handlePending(activationConstraint);
5349
5342
  return;
5350
5343
  }
5351
5344
  }
@@ -5362,13 +5355,6 @@ class AbstractPointerSensor {
5362
5355
  this.timeoutId = null;
5363
5356
  }
5364
5357
  }
5365
- handlePending(constraint, offset) {
5366
- const {
5367
- active,
5368
- onPending
5369
- } = this.props;
5370
- onPending(active, constraint, this.initialCoordinates, offset);
5371
- }
5372
5358
  handleStart() {
5373
5359
  const {
5374
5360
  initialCoordinates
@@ -5422,7 +5408,6 @@ class AbstractPointerSensor {
5422
5408
  return this.handleCancel();
5423
5409
  }
5424
5410
  }
5425
- this.handlePending(activationConstraint, delta);
5426
5411
  return;
5427
5412
  }
5428
5413
  if (event.cancelable) {
@@ -5432,24 +5417,16 @@ class AbstractPointerSensor {
5432
5417
  }
5433
5418
  handleEnd() {
5434
5419
  const {
5435
- onAbort,
5436
5420
  onEnd
5437
5421
  } = this.props;
5438
5422
  this.detach();
5439
- if (!this.activated) {
5440
- onAbort(this.props.active);
5441
- }
5442
5423
  onEnd();
5443
5424
  }
5444
5425
  handleCancel() {
5445
5426
  const {
5446
- onAbort,
5447
5427
  onCancel
5448
5428
  } = this.props;
5449
5429
  this.detach();
5450
- if (!this.activated) {
5451
- onAbort(this.props.active);
5452
- }
5453
5430
  onCancel();
5454
5431
  }
5455
5432
  handleKeydown(event) {
@@ -5463,9 +5440,6 @@ class AbstractPointerSensor {
5463
5440
  }
5464
5441
  }
5465
5442
  const events = {
5466
- cancel: {
5467
- name: 'pointercancel'
5468
- },
5469
5443
  move: {
5470
5444
  name: 'pointermove'
5471
5445
  },
@@ -5538,9 +5512,6 @@ MouseSensor.activators = [{
5538
5512
  }
5539
5513
  }];
5540
5514
  const events$2 = {
5541
- cancel: {
5542
- name: 'touchcancel'
5543
- },
5544
5515
  move: {
5545
5516
  name: 'touchmove'
5546
5517
  },
@@ -5742,11 +5713,11 @@ function useScrollIntent(_ref2) {
5742
5713
  }, [disabled, delta, previousDelta]);
5743
5714
  }
5744
5715
  function useCachedNode(draggableNodes, id) {
5745
- const draggableNode = id != null ? draggableNodes.get(id) : undefined;
5716
+ const draggableNode = id !== null ? draggableNodes.get(id) : undefined;
5746
5717
  const node = draggableNode ? draggableNode.node.current : null;
5747
5718
  return useLazyMemo(cachedNode => {
5748
5719
  var _ref;
5749
- if (id == null) {
5720
+ if (id === null) {
5750
5721
  return null;
5751
5722
  } // In some cases, the draggable node can unmount while dragging
5752
5723
  // This is the case for virtualized lists. In those situations,
@@ -5954,26 +5925,7 @@ function useRect(element, measure, fallbackRect) {
5954
5925
  if (measure === void 0) {
5955
5926
  measure = defaultMeasure;
5956
5927
  }
5957
- const [rect, setRect] = useState(null);
5958
- function measureRect() {
5959
- setRect(currentRect => {
5960
- if (!element) {
5961
- return null;
5962
- }
5963
- if (element.isConnected === false) {
5964
- var _ref;
5965
-
5966
- // Fall back to last rect we measured if the element is
5967
- // no longer connected to the DOM.
5968
- return (_ref = currentRect != null ? currentRect : fallbackRect) != null ? _ref : null;
5969
- }
5970
- const newRect = measure(element);
5971
- if (JSON.stringify(currentRect) === JSON.stringify(newRect)) {
5972
- return currentRect;
5973
- }
5974
- return newRect;
5975
- });
5976
- }
5928
+ const [rect, measureRect] = useReducer(reducer, null);
5977
5929
  const mutationObserver = useMutationObserver({
5978
5930
  callback(records) {
5979
5931
  if (!element) {
@@ -6008,6 +5960,23 @@ function useRect(element, measure, fallbackRect) {
6008
5960
  }
6009
5961
  }, [element]);
6010
5962
  return rect;
5963
+ function reducer(currentRect) {
5964
+ if (!element) {
5965
+ return null;
5966
+ }
5967
+ if (element.isConnected === false) {
5968
+ var _ref;
5969
+
5970
+ // Fall back to last rect we measured if the element is
5971
+ // no longer connected to the DOM.
5972
+ return (_ref = currentRect != null ? currentRect : fallbackRect) != null ? _ref : null;
5973
+ }
5974
+ const newRect = measure(element);
5975
+ if (JSON.stringify(currentRect) === JSON.stringify(newRect)) {
5976
+ return currentRect;
5977
+ }
5978
+ return newRect;
5979
+ }
6011
5980
  }
6012
5981
  function useRectDelta(rect) {
6013
5982
  const initialRect = useInitialValue(rect);
@@ -6153,24 +6122,28 @@ function useRects(elements, measure) {
6153
6122
  }
6154
6123
  const [firstElement] = elements;
6155
6124
  const windowRect = useWindowRect(firstElement ? getWindow(firstElement) : null);
6156
- const [rects, setRects] = useState(defaultValue$2);
6157
- function measureRects() {
6158
- setRects(() => {
6159
- if (!elements.length) {
6160
- return defaultValue$2;
6161
- }
6162
- return elements.map(element => isDocumentScrollingElement(element) ? windowRect : new Rect(measure(element), element));
6163
- });
6164
- }
6125
+ const [rects, measureRects] = useReducer(reducer, defaultValue$2);
6165
6126
  const resizeObserver = useResizeObserver({
6166
6127
  callback: measureRects
6167
6128
  });
6168
- useIsomorphicLayoutEffect$1(() => {
6169
- resizeObserver == null ? void 0 : resizeObserver.disconnect();
6129
+ if (elements.length > 0 && rects === defaultValue$2) {
6170
6130
  measureRects();
6171
- elements.forEach(element => resizeObserver == null ? void 0 : resizeObserver.observe(element));
6131
+ }
6132
+ useIsomorphicLayoutEffect$1(() => {
6133
+ if (elements.length) {
6134
+ elements.forEach(element => resizeObserver == null ? void 0 : resizeObserver.observe(element));
6135
+ } else {
6136
+ resizeObserver == null ? void 0 : resizeObserver.disconnect();
6137
+ measureRects();
6138
+ }
6172
6139
  }, [elements]);
6173
6140
  return rects;
6141
+ function reducer() {
6142
+ if (!elements.length) {
6143
+ return defaultValue$2;
6144
+ }
6145
+ return elements.map(element => isDocumentScrollingElement(element) ? windowRect : new Rect(measure(element), element));
6146
+ }
6174
6147
  }
6175
6148
  function getMeasurableNode(node) {
6176
6149
  if (!node) {
@@ -6337,7 +6310,7 @@ function reducer$1(state, action) {
6337
6310
  }
6338
6311
  };
6339
6312
  case Action.DragMove:
6340
- if (state.draggable.active == null) {
6313
+ if (!state.draggable.active) {
6341
6314
  return state;
6342
6315
  }
6343
6316
  return {
@@ -6609,7 +6582,7 @@ const DndContext = /*#__PURE__*/memo(function DndContext(_ref) {
6609
6582
  containers: droppableContainers
6610
6583
  }
6611
6584
  } = state;
6612
- const node = activeId != null ? draggableNodes.get(activeId) : null;
6585
+ const node = activeId ? draggableNodes.get(activeId) : null;
6613
6586
  const activeRects = useRef({
6614
6587
  initial: null,
6615
6588
  translated: null
@@ -6644,7 +6617,7 @@ const DndContext = /*#__PURE__*/memo(function DndContext(_ref) {
6644
6617
  const autoScrollOptions = getAutoScrollerOptions();
6645
6618
  const initialActiveNodeRect = useInitialRect(activeNode, measuringConfiguration.draggable.measure);
6646
6619
  useLayoutShiftScrollCompensation({
6647
- activeNode: activeId != null ? draggableNodes.get(activeId) : null,
6620
+ activeNode: activeId ? draggableNodes.get(activeId) : null,
6648
6621
  config: autoScrollOptions.layoutShiftCompensation,
6649
6622
  initialRect: initialActiveNodeRect,
6650
6623
  measure: measuringConfiguration.draggable.measure
@@ -6722,7 +6695,6 @@ const DndContext = /*#__PURE__*/memo(function DndContext(_ref) {
6722
6695
 
6723
6696
  const appliedTranslate = usesDragOverlay ? modifiedTranslate : add(modifiedTranslate, activeNodeScrollDelta);
6724
6697
  const transform = adjustScale(appliedTranslate, (_over$rect = over == null ? void 0 : over.rect) != null ? _over$rect : null, activeNodeRect);
6725
- const activeSensorRef = useRef(null);
6726
6698
  const instantiateSensor = useCallback((event, _ref2) => {
6727
6699
  let {
6728
6700
  sensor: Sensor,
@@ -6744,43 +6716,6 @@ const DndContext = /*#__PURE__*/memo(function DndContext(_ref) {
6744
6716
  // Sensors need to be instantiated with refs for arguments that change over time
6745
6717
  // otherwise they are frozen in time with the stale arguments
6746
6718
  context: sensorContext,
6747
- onAbort(id) {
6748
- const draggableNode = draggableNodes.get(id);
6749
- if (!draggableNode) {
6750
- return;
6751
- }
6752
- const {
6753
- onDragAbort
6754
- } = latestProps.current;
6755
- const event = {
6756
- id
6757
- };
6758
- onDragAbort == null ? void 0 : onDragAbort(event);
6759
- dispatchMonitorEvent({
6760
- type: 'onDragAbort',
6761
- event
6762
- });
6763
- },
6764
- onPending(id, constraint, initialCoordinates, offset) {
6765
- const draggableNode = draggableNodes.get(id);
6766
- if (!draggableNode) {
6767
- return;
6768
- }
6769
- const {
6770
- onDragPending
6771
- } = latestProps.current;
6772
- const event = {
6773
- id,
6774
- constraint,
6775
- initialCoordinates,
6776
- offset
6777
- };
6778
- onDragPending == null ? void 0 : onDragPending(event);
6779
- dispatchMonitorEvent({
6780
- type: 'onDragPending',
6781
- event
6782
- });
6783
- },
6784
6719
  onStart(initialCoordinates) {
6785
6720
  const id = activeRef.current;
6786
6721
  if (id == null) {
@@ -6794,7 +6729,6 @@ const DndContext = /*#__PURE__*/memo(function DndContext(_ref) {
6794
6729
  onDragStart
6795
6730
  } = latestProps.current;
6796
6731
  const event = {
6797
- activatorEvent,
6798
6732
  active: {
6799
6733
  id,
6800
6734
  data: draggableNode.data,
@@ -6813,8 +6747,6 @@ const DndContext = /*#__PURE__*/memo(function DndContext(_ref) {
6813
6747
  type: 'onDragStart',
6814
6748
  event
6815
6749
  });
6816
- setActiveSensor(activeSensorRef.current);
6817
- setActivatorEvent(activatorEvent);
6818
6750
  });
6819
6751
  },
6820
6752
  onMove(coordinates) {
@@ -6826,7 +6758,10 @@ const DndContext = /*#__PURE__*/memo(function DndContext(_ref) {
6826
6758
  onEnd: createHandler(Action.DragEnd),
6827
6759
  onCancel: createHandler(Action.DragCancel)
6828
6760
  });
6829
- activeSensorRef.current = sensorInstance;
6761
+ unstable_batchedUpdates(() => {
6762
+ setActiveSensor(sensorInstance);
6763
+ setActivatorEvent(event.nativeEvent);
6764
+ });
6830
6765
  function createHandler(type) {
6831
6766
  return async function handler() {
6832
6767
  const {
@@ -6863,7 +6798,6 @@ const DndContext = /*#__PURE__*/memo(function DndContext(_ref) {
6863
6798
  setOver(null);
6864
6799
  setActiveSensor(null);
6865
6800
  setActivatorEvent(null);
6866
- activeSensorRef.current = null;
6867
6801
  const eventName = type === Action.DragEnd ? 'onDragEnd' : 'onDragCancel';
6868
6802
  if (event) {
6869
6803
  const handler = latestProps.current[eventName];
@@ -7085,7 +7019,7 @@ const DndContext = /*#__PURE__*/memo(function DndContext(_ref) {
7085
7019
  });
7086
7020
  const NullContext = /*#__PURE__*/createContext$1(null);
7087
7021
  const defaultRole = 'button';
7088
- const ID_PREFIX$1 = 'Draggable';
7022
+ const ID_PREFIX$1 = 'Droppable';
7089
7023
  function useDraggable(_ref) {
7090
7024
  let {
7091
7025
  id,
@@ -7232,7 +7166,7 @@ function useDroppable(_ref) {
7232
7166
  resizeObserverConnected.current = false;
7233
7167
  resizeObserver.observe(nodeRef.current);
7234
7168
  }, [nodeRef, resizeObserver]);
7235
- useEffect(() => {
7169
+ useIsomorphicLayoutEffect$1(() => {
7236
7170
  dispatch({
7237
7171
  type: Action.RegisterDroppable,
7238
7172
  element: {
@@ -7647,7 +7581,6 @@ var DNDCore = /*#__PURE__*/Object.freeze({
7647
7581
  defaultCoordinates: defaultCoordinates,
7648
7582
  defaultDropAnimation: defaultDropAnimationConfiguration,
7649
7583
  defaultDropAnimationSideEffects: defaultDropAnimationSideEffects,
7650
- defaultKeyboardCoordinateGetter: defaultKeyboardCoordinateGetter,
7651
7584
  defaultScreenReaderInstructions: defaultScreenReaderInstructions,
7652
7585
  getClientRect: getClientRect,
7653
7586
  getFirstCollision: getFirstCollision,
@@ -11485,14 +11418,13 @@ var isWeb = typeof window !== 'undefined' &&
11485
11418
  function cloneObject(data) {
11486
11419
  let copy;
11487
11420
  const isArray = Array.isArray(data);
11488
- const isFileListInstance = typeof FileList !== 'undefined' ? data instanceof FileList : false;
11489
11421
  if (data instanceof Date) {
11490
11422
  copy = new Date(data);
11491
11423
  }
11492
11424
  else if (data instanceof Set) {
11493
11425
  copy = new Set(data);
11494
11426
  }
11495
- else if (!(isWeb && (data instanceof Blob || isFileListInstance)) &&
11427
+ else if (!(isWeb && (data instanceof Blob || data instanceof FileList)) &&
11496
11428
  (isArray || isObject$2(data))) {
11497
11429
  copy = isArray ? [] : {};
11498
11430
  if (!isArray && !isPlainObject(data)) {
@@ -11551,7 +11483,7 @@ var set$1 = (object, path, value) => {
11551
11483
  ? []
11552
11484
  : {};
11553
11485
  }
11554
- if (key === '__proto__' || key === 'constructor' || key === 'prototype') {
11486
+ if (key === '__proto__') {
11555
11487
  return;
11556
11488
  }
11557
11489
  object[key] = newValue;
@@ -11770,7 +11702,7 @@ function useFormState(props) {
11770
11702
  _mounted.current = false;
11771
11703
  };
11772
11704
  }, [control]);
11773
- return React__default.useMemo(() => getProxyFormState(formState, control, _localProxyFormState.current, false), [formState, control]);
11705
+ return getProxyFormState(formState, control, _localProxyFormState.current, false);
11774
11706
  }
11775
11707
 
11776
11708
  var isString = (value) => typeof value === 'string';
@@ -11866,67 +11798,6 @@ function useController(props) {
11866
11798
  value,
11867
11799
  ...(isBoolean(props.disabled) ? { disabled: props.disabled } : {}),
11868
11800
  }));
11869
- const fieldState = React__default.useMemo(() => Object.defineProperties({}, {
11870
- invalid: {
11871
- enumerable: true,
11872
- get: () => !!get$1(formState.errors, name),
11873
- },
11874
- isDirty: {
11875
- enumerable: true,
11876
- get: () => !!get$1(formState.dirtyFields, name),
11877
- },
11878
- isTouched: {
11879
- enumerable: true,
11880
- get: () => !!get$1(formState.touchedFields, name),
11881
- },
11882
- isValidating: {
11883
- enumerable: true,
11884
- get: () => !!get$1(formState.validatingFields, name),
11885
- },
11886
- error: {
11887
- enumerable: true,
11888
- get: () => get$1(formState.errors, name),
11889
- },
11890
- }), [formState, name]);
11891
- const field = React__default.useMemo(() => ({
11892
- name,
11893
- value,
11894
- ...(isBoolean(disabled) || formState.disabled
11895
- ? { disabled: formState.disabled || disabled }
11896
- : {}),
11897
- onChange: (event) => _registerProps.current.onChange({
11898
- target: {
11899
- value: getEventValue(event),
11900
- name: name,
11901
- },
11902
- type: EVENTS.CHANGE,
11903
- }),
11904
- onBlur: () => _registerProps.current.onBlur({
11905
- target: {
11906
- value: get$1(control._formValues, name),
11907
- name: name,
11908
- },
11909
- type: EVENTS.BLUR,
11910
- }),
11911
- ref: (elm) => {
11912
- const field = get$1(control._fields, name);
11913
- if (field && elm) {
11914
- field._f.ref = {
11915
- focus: () => elm.focus(),
11916
- select: () => elm.select(),
11917
- setCustomValidity: (message) => elm.setCustomValidity(message),
11918
- reportValidity: () => elm.reportValidity(),
11919
- };
11920
- }
11921
- },
11922
- }), [
11923
- name,
11924
- control._formValues,
11925
- disabled,
11926
- formState.disabled,
11927
- value,
11928
- control._fields,
11929
- ]);
11930
11801
  React__default.useEffect(() => {
11931
11802
  const _shouldUnregisterField = control._options.shouldUnregister || shouldUnregister;
11932
11803
  const updateMounted = (name, value) => {
@@ -11952,7 +11823,7 @@ function useController(props) {
11952
11823
  };
11953
11824
  }, [name, control, isArrayField, shouldUnregister]);
11954
11825
  React__default.useEffect(() => {
11955
- if (isBoolean(disabled) && get$1(control._fields, name)) {
11826
+ if (get$1(control._fields, name)) {
11956
11827
  control._updateDisabledField({
11957
11828
  disabled,
11958
11829
  fields: control._fields,
@@ -11961,11 +11832,63 @@ function useController(props) {
11961
11832
  });
11962
11833
  }
11963
11834
  }, [disabled, name, control]);
11964
- return React__default.useMemo(() => ({
11965
- field,
11835
+ return {
11836
+ field: {
11837
+ name,
11838
+ value,
11839
+ ...(isBoolean(disabled) || formState.disabled
11840
+ ? { disabled: formState.disabled || disabled }
11841
+ : {}),
11842
+ onChange: React__default.useCallback((event) => _registerProps.current.onChange({
11843
+ target: {
11844
+ value: getEventValue(event),
11845
+ name: name,
11846
+ },
11847
+ type: EVENTS.CHANGE,
11848
+ }), [name]),
11849
+ onBlur: React__default.useCallback(() => _registerProps.current.onBlur({
11850
+ target: {
11851
+ value: get$1(control._formValues, name),
11852
+ name: name,
11853
+ },
11854
+ type: EVENTS.BLUR,
11855
+ }), [name, control]),
11856
+ ref: React__default.useCallback((elm) => {
11857
+ const field = get$1(control._fields, name);
11858
+ if (field && elm) {
11859
+ field._f.ref = {
11860
+ focus: () => elm.focus(),
11861
+ select: () => elm.select(),
11862
+ setCustomValidity: (message) => elm.setCustomValidity(message),
11863
+ reportValidity: () => elm.reportValidity(),
11864
+ };
11865
+ }
11866
+ }, [control._fields, name]),
11867
+ },
11966
11868
  formState,
11967
- fieldState,
11968
- }), [field, formState, fieldState]);
11869
+ fieldState: Object.defineProperties({}, {
11870
+ invalid: {
11871
+ enumerable: true,
11872
+ get: () => !!get$1(formState.errors, name),
11873
+ },
11874
+ isDirty: {
11875
+ enumerable: true,
11876
+ get: () => !!get$1(formState.dirtyFields, name),
11877
+ },
11878
+ isTouched: {
11879
+ enumerable: true,
11880
+ get: () => !!get$1(formState.touchedFields, name),
11881
+ },
11882
+ isValidating: {
11883
+ enumerable: true,
11884
+ get: () => !!get$1(formState.validatingFields, name),
11885
+ },
11886
+ error: {
11887
+ enumerable: true,
11888
+ get: () => get$1(formState.errors, name),
11889
+ },
11890
+ }),
11891
+ };
11969
11892
  }
11970
11893
 
11971
11894
  /**
@@ -12015,7 +11938,7 @@ const Controller = (props) => props.render(useController(props));
12015
11938
  const flatten = (obj) => {
12016
11939
  const output = {};
12017
11940
  for (const key of Object.keys(obj)) {
12018
- if (isObjectType(obj[key]) && obj[key] !== null) {
11941
+ if (isObjectType(obj[key])) {
12019
11942
  const nested = flatten(obj[key]);
12020
11943
  for (const nestedKey of Object.keys(nested)) {
12021
11944
  output[`${key}.${nestedKey}`] = nested[nestedKey];
@@ -12084,7 +12007,7 @@ function Form(props) {
12084
12007
  headers && headers['Content-Type'],
12085
12008
  encType,
12086
12009
  ].some((value) => value && value.includes('json'));
12087
- const response = await fetch(String(action), {
12010
+ const response = await fetch(action, {
12088
12011
  method,
12089
12012
  headers: {
12090
12013
  ...headers,
@@ -12582,7 +12505,7 @@ var updateAt = (fieldValues, index, value) => {
12582
12505
  */
12583
12506
  function useFieldArray(props) {
12584
12507
  const methods = useFormContext();
12585
- const { control = methods.control, name, keyName = 'id', shouldUnregister, rules, } = props;
12508
+ const { control = methods.control, name, keyName = 'id', shouldUnregister, } = props;
12586
12509
  const [fields, setFields] = React__default.useState(control._getFieldArray(name));
12587
12510
  const ids = React__default.useRef(control._getFieldArray(name).map(generateId));
12588
12511
  const _fieldIds = React__default.useRef(fields);
@@ -12591,8 +12514,8 @@ function useFieldArray(props) {
12591
12514
  _name.current = name;
12592
12515
  _fieldIds.current = fields;
12593
12516
  control._names.array.add(name);
12594
- rules &&
12595
- control.register(name, rules);
12517
+ props.rules &&
12518
+ control.register(name, props.rules);
12596
12519
  useSubscribe({
12597
12520
  next: ({ values, name: fieldArrayName, }) => {
12598
12521
  if (fieldArrayName === _name.current || !fieldArrayName) {
@@ -12636,8 +12559,6 @@ function useFieldArray(props) {
12636
12559
  ids.current = removeArrayAt(ids.current, index);
12637
12560
  updateValues(updatedFieldArrayValues);
12638
12561
  setFields(updatedFieldArrayValues);
12639
- !Array.isArray(get$1(control._fields, name)) &&
12640
- set$1(control._fields, name, undefined);
12641
12562
  control._updateFieldArray(name, updatedFieldArrayValues, removeArrayAt, {
12642
12563
  argA: index,
12643
12564
  });
@@ -12952,8 +12873,7 @@ var getRuleValue = (rule) => isUndefined(rule)
12952
12873
  : rule;
12953
12874
 
12954
12875
  const ASYNC_FUNCTION = 'AsyncFunction';
12955
- var hasPromiseValidation = (fieldReference) => !!fieldReference &&
12956
- !!fieldReference.validate &&
12876
+ var hasPromiseValidation = (fieldReference) => (!fieldReference || !fieldReference.validate) &&
12957
12877
  !!((isFunction$1(fieldReference.validate) &&
12958
12878
  fieldReference.validate.constructor.name === ASYNC_FUNCTION) ||
12959
12879
  (isObject$2(fieldReference.validate) &&
@@ -13082,7 +13002,7 @@ function createFormControl(props = {}) {
13082
13002
  timer = setTimeout(callback, wait);
13083
13003
  };
13084
13004
  const _updateValid = async (shouldUpdateValid) => {
13085
- if (!_options.disabled && (_proxyFormState.isValid || shouldUpdateValid)) {
13005
+ if (!props.disabled && (_proxyFormState.isValid || shouldUpdateValid)) {
13086
13006
  const isValid = _options.resolver
13087
13007
  ? isEmptyObject((await _executeSchema()).errors)
13088
13008
  : await executeBuiltInValidation(_fields, true);
@@ -13094,7 +13014,7 @@ function createFormControl(props = {}) {
13094
13014
  }
13095
13015
  };
13096
13016
  const _updateIsValidating = (names, isValidating) => {
13097
- if (!_options.disabled &&
13017
+ if (!props.disabled &&
13098
13018
  (_proxyFormState.isValidating || _proxyFormState.validatingFields)) {
13099
13019
  (names || Array.from(_names.mount)).forEach((name) => {
13100
13020
  if (name) {
@@ -13110,7 +13030,7 @@ function createFormControl(props = {}) {
13110
13030
  }
13111
13031
  };
13112
13032
  const _updateFieldArray = (name, values = [], method, args, shouldSetValues = true, shouldUpdateFieldsAndState = true) => {
13113
- if (args && method && !_options.disabled) {
13033
+ if (args && method && !props.disabled) {
13114
13034
  _state.action = true;
13115
13035
  if (shouldUpdateFieldsAndState && Array.isArray(get$1(_fields, name))) {
13116
13036
  const fieldValues = method(get$1(_fields, name), args.argA, args.argB);
@@ -13174,7 +13094,7 @@ function createFormControl(props = {}) {
13174
13094
  const output = {
13175
13095
  name,
13176
13096
  };
13177
- if (!_options.disabled) {
13097
+ if (!props.disabled) {
13178
13098
  const disabledField = !!(get$1(_fields, name) &&
13179
13099
  get$1(_fields, name)._f &&
13180
13100
  get$1(_fields, name)._f.disabled);
@@ -13215,9 +13135,9 @@ function createFormControl(props = {}) {
13215
13135
  const shouldUpdateValid = _proxyFormState.isValid &&
13216
13136
  isBoolean(isValid) &&
13217
13137
  _formState.isValid !== isValid;
13218
- if (_options.delayError && error) {
13138
+ if (props.delayError && error) {
13219
13139
  delayErrorCallback = debounce(() => updateErrors(name, error));
13220
- delayErrorCallback(_options.delayError);
13140
+ delayErrorCallback(props.delayError);
13221
13141
  }
13222
13142
  else {
13223
13143
  clearTimeout(timer);
@@ -13310,7 +13230,7 @@ function createFormControl(props = {}) {
13310
13230
  }
13311
13231
  _names.unMount = new Set();
13312
13232
  };
13313
- const _getDirty = (name, data) => !_options.disabled &&
13233
+ const _getDirty = (name, data) => !props.disabled &&
13314
13234
  (name && data && set$1(_formValues, name, data),
13315
13235
  !deepEqual(getValues(), _defaultValues));
13316
13236
  const _getWatch = (names, defaultValue, isGlobal) => generateWatchOutput(names, _names, {
@@ -13322,7 +13242,7 @@ function createFormControl(props = {}) {
13322
13242
  ? { [names]: defaultValue }
13323
13243
  : defaultValue),
13324
13244
  }, isGlobal, defaultValue);
13325
- const _getFieldArray = (name) => compact(get$1(_state.mount ? _formValues : _defaultValues, name, _options.shouldUnregister ? get$1(_defaultValues, name, []) : []));
13245
+ const _getFieldArray = (name) => compact(get$1(_state.mount ? _formValues : _defaultValues, name, props.shouldUnregister ? get$1(_defaultValues, name, []) : []));
13326
13246
  const setFieldValue = (name, value, options = {}) => {
13327
13247
  const field = get$1(_fields, name);
13328
13248
  let fieldValue = value;
@@ -13455,7 +13375,7 @@ function createFormControl(props = {}) {
13455
13375
  });
13456
13376
  if (shouldSkipValidation) {
13457
13377
  if (_proxyFormState.isValid) {
13458
- if (_options.mode === 'onBlur') {
13378
+ if (props.mode === 'onBlur') {
13459
13379
  if (isBlurEvent) {
13460
13380
  _updateValid();
13461
13381
  }
@@ -13620,15 +13540,13 @@ function createFormControl(props = {}) {
13620
13540
  : isUndefined(value)
13621
13541
  ? getFieldValue(field ? field._f : get$1(fields, name)._f)
13622
13542
  : value;
13623
- if (disabled || (!disabled && !isUndefined(inputValue))) {
13624
- set$1(_formValues, name, inputValue);
13625
- }
13543
+ set$1(_formValues, name, inputValue);
13626
13544
  updateTouchAndDirty(name, inputValue, false, false, true);
13627
13545
  }
13628
13546
  };
13629
13547
  const register = (name, options = {}) => {
13630
13548
  let field = get$1(_fields, name);
13631
- const disabledIsDefined = isBoolean(options.disabled) || isBoolean(_options.disabled);
13549
+ const disabledIsDefined = isBoolean(options.disabled) || isBoolean(props.disabled);
13632
13550
  set$1(_fields, name, {
13633
13551
  ...(field || {}),
13634
13552
  _f: {
@@ -13644,7 +13562,7 @@ function createFormControl(props = {}) {
13644
13562
  field,
13645
13563
  disabled: isBoolean(options.disabled)
13646
13564
  ? options.disabled
13647
- : _options.disabled,
13565
+ : props.disabled,
13648
13566
  name,
13649
13567
  value: options.value,
13650
13568
  });
@@ -13654,7 +13572,7 @@ function createFormControl(props = {}) {
13654
13572
  }
13655
13573
  return {
13656
13574
  ...(disabledIsDefined
13657
- ? { disabled: options.disabled || _options.disabled }
13575
+ ? { disabled: options.disabled || props.disabled }
13658
13576
  : {}),
13659
13577
  ...(_options.progressive
13660
13578
  ? {
@@ -13738,12 +13656,6 @@ function createFormControl(props = {}) {
13738
13656
  e.preventDefault && e.preventDefault();
13739
13657
  e.persist && e.persist();
13740
13658
  }
13741
- if (_options.disabled) {
13742
- if (onInvalid) {
13743
- await onInvalid({ ..._formState.errors }, e);
13744
- }
13745
- return;
13746
- }
13747
13659
  let fieldValues = cloneObject(_formValues);
13748
13660
  _subjects.state.next({
13749
13661
  isSubmitting: true,
@@ -13851,7 +13763,7 @@ function createFormControl(props = {}) {
13851
13763
  }
13852
13764
  _fields = {};
13853
13765
  }
13854
- _formValues = _options.shouldUnregister
13766
+ _formValues = props.shouldUnregister
13855
13767
  ? keepStateOptions.keepDefaultValues
13856
13768
  ? cloneObject(_defaultValues)
13857
13769
  : {}
@@ -13875,7 +13787,7 @@ function createFormControl(props = {}) {
13875
13787
  !_proxyFormState.isValid ||
13876
13788
  !!keepStateOptions.keepIsValid ||
13877
13789
  !!keepStateOptions.keepDirtyValues;
13878
- _state.watch = !!_options.shouldUnregister;
13790
+ _state.watch = !!props.shouldUnregister;
13879
13791
  _subjects.state.next({
13880
13792
  submitCount: keepStateOptions.keepSubmitCount
13881
13793
  ? _formState.submitCount
@@ -13922,9 +13834,7 @@ function createFormControl(props = {}) {
13922
13834
  : fieldReference.ref;
13923
13835
  if (fieldRef.focus) {
13924
13836
  fieldRef.focus();
13925
- options.shouldSelect &&
13926
- isFunction$1(fieldRef.select) &&
13927
- fieldRef.select();
13837
+ options.shouldSelect && fieldRef.select();
13928
13838
  }
13929
13839
  }
13930
13840
  };
@@ -14046,8 +13956,8 @@ function createFormControl(props = {}) {
14046
13956
  * ```
14047
13957
  */
14048
13958
  function useForm(props = {}) {
14049
- const _formControl = React__default.useRef(undefined);
14050
- const _values = React__default.useRef(undefined);
13959
+ const _formControl = React__default.useRef();
13960
+ const _values = React__default.useRef();
14051
13961
  const [formState, updateFormState] = React__default.useState({
14052
13962
  isDirty: false,
14053
13963
  isValidating: false,
@@ -14125,6 +14035,11 @@ function useForm(props = {}) {
14125
14035
  values: control._getWatch(),
14126
14036
  });
14127
14037
  }, [props.shouldUnregister, control]);
14038
+ React__default.useEffect(() => {
14039
+ if (_formControl.current) {
14040
+ _formControl.current.watch = _formControl.current.watch.bind({});
14041
+ }
14042
+ }, [formState]);
14128
14043
  _formControl.current.formState = getProxyFormState(formState, control);
14129
14044
  return _formControl.current;
14130
14045
  }
@@ -14566,7 +14481,7 @@ const MiniModal = /*#__PURE__*/forwardRef(({
14566
14481
  }), document.body);
14567
14482
  });
14568
14483
 
14569
- var css_248z$R = ":root {\n --table-height: auto;\n}\n\n.tree-table-space-block {\n display: inline-block;\n width: 20px;\n height: 16px;\n text-align: center;\n line-height: 16px;\n vertical-align: top;\n font-size: 19px;\n position: relative;\n box-sizing: border-box;\n border-radius: 50%;\n}\n.tree-table-space-block.btn-toggle {\n position: relative;\n cursor: pointer;\n width: 22px;\n height: 18px;\n z-index: 12;\n}\n.tree-table-space-block.btn-toggle::before {\n display: none;\n}\n.tree-table-space-block.last-block::after, .tree-table-space-block.no-folder::after {\n position: absolute;\n content: \"\";\n height: 1px;\n background: var(--tree-connecting-lines-color);\n top: 50%;\n margin-top: -1px;\n}\n.tree-table-space-block.last-block::after {\n width: 12px;\n left: -10px;\n}\n.tree-table-space-block.no-folder {\n width: 8px;\n}\n.tree-table-space-block.no-folder::after {\n width: 22px;\n left: -10px;\n}\n.tree-table-space-block:not(.last-block, .no-lines, .last-node)::before {\n position: absolute;\n content: \"\";\n width: 1px;\n height: 40px;\n background: var(--tree-connecting-lines-color);\n left: 50%;\n top: -4px;\n z-index: 99;\n}\n.tree-table-space-block.last-node::before {\n position: absolute;\n content: \"\";\n width: 1px;\n height: 12px;\n background: var(--tree-connecting-lines-color);\n left: 50%;\n top: -4px;\n z-index: -1;\n}\n.tree-table-space-block.folder.last-node::before {\n height: 13px;\n}\n\n.tree-title-container .tree-table-space-block {\n width: 16px;\n}\n\n.hidden {\n display: none;\n}\n\n.show {\n display: table-row;\n visibility: visible;\n}\n\n.btn-toggle {\n cursor: pointer;\n}\n.btn-toggle.is-close {\n background: #f1f1f1;\n border: 1px solid transparent;\n box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);\n}\n.btn-toggle::before, .btn-toggle::after {\n display: none;\n}\n\n.tree-table-wrap {\n width: 100%;\n padding-left: 4px;\n overflow: hidden;\n overflow-x: auto;\n}\n\n.table-scrollable {\n height: var(--table-height);\n /* Adjust height as needed */\n overflow-y: auto;\n position: relative;\n}\n\n.ff-table-tree-body {\n overflow: scroll;\n}\n\n.tree-table {\n table-layout: fixed;\n width: 100%;\n border-collapse: collapse;\n overflow: scroll;\n}\n.tree-table .ff-table-tree-head {\n position: sticky;\n top: 0;\n z-index: 2;\n}\n.tree-table .ff-table-tree-row:hover,\n.tree-table .ff-table-tree-row.hover {\n background-color: var(--hover-color);\n}\n.tree-table .ff-table-tree-row:hover .ff-table-tree-td:first-child,\n.tree-table .ff-table-tree-row.hover .ff-table-tree-td:first-child {\n background-color: var(--hover-color);\n}\n.tree-table .ff-table-tree-row:hover .table-tree-row-action,\n.tree-table .ff-table-tree-row.hover .table-tree-row-action {\n display: inline-flex;\n align-items: center;\n}\n.tree-table .ff-table-tree-row {\n background-color: var(--base-bg-color);\n}\n.tree-table .ff-table-tree-row .table-tree-row-action {\n display: none;\n}\n.tree-table .ff-table-tree-row .table-row-add-button {\n display: inline-flex;\n z-index: 9999;\n align-items: center;\n}\n.tree-table .ff-table-tree-row::after {\n content: \"\";\n display: block;\n visibility: hidden;\n clear: both;\n}\n.tree-table .ff-table-tree-th,\n.tree-table .ff-table-tree-td {\n text-align: left;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n.tree-table .ff-table-tree-th {\n color: var(--table-header-text-color);\n background: var(--border-color);\n font-size: 12px;\n font-weight: 600;\n width: 400px;\n height: 32px;\n box-sizing: border-box;\n}\n.tree-table .ff-table-tree-th:first-child {\n width: 400px !important;\n position: sticky;\n left: 0;\n padding-left: 8px;\n}\n.tree-table .ff-table-tree-td {\n font-size: 12px;\n color: var(--nlp-color);\n height: 18px;\n}\n.tree-table .ff-table-tree-td:first-child {\n overflow: initial;\n position: sticky;\n left: 0;\n background-color: white;\n}\n.tree-table .ff-table-tree-td:first-child .tree-table-default-content {\n margin-left: 8px;\n}\n.tree-table .ff-table-tree-td:first-child .tree-table-td-content {\n padding-left: 4px;\n}\n.tree-table .ff-table-tree-td:first-child .tree-table-td-content .tree-table-td-content-text {\n margin-left: 4px;\n}\n.tree-table .ff-table-tree-td:first-child .tree-table-default-content {\n font-weight: 700;\n}\n.tree-table .ff-table-tree-td.folder {\n height: 28px;\n}\n\n.tree-table-td-content {\n display: inline-flex;\n align-items: center;\n font-size: 12px;\n font-family: \"Poppins\", sans-serif;\n}\n.tree-table-td-content.folder {\n font-weight: 600;\n}\n\n.tree-row-expanded span svg,\n.tree-row-collapsed span svg {\n height: 12px;\n width: 12px;\n}\n.tree-row-expanded span svg path,\n.tree-row-collapsed span svg path {\n fill: var(--brand-color);\n}\n\n.tree-row-collapsed svg {\n transform: rotate(-90deg);\n transition: transform 0.3s ease;\n}\n\n.tree-table-space-container {\n display: inline-flex;\n}\n\n.tree-title-container {\n display: inline-flex;\n align-items: center;\n}";
14484
+ var css_248z$R = ":root {\n --table-height: auto;\n}\n\n.tree-table-space-block {\n display: inline-block;\n width: 20px;\n height: 16px;\n text-align: center;\n line-height: 16px;\n vertical-align: top;\n font-size: 19px;\n position: relative;\n box-sizing: border-box;\n border-radius: 50%;\n /* Hover background for all elements of the same level */\n}\n.tree-table-space-block.btn-toggle {\n position: relative;\n cursor: pointer;\n width: 22px;\n height: 18px;\n z-index: 12;\n}\n.tree-table-space-block.btn-toggle::before {\n display: none;\n}\n.tree-table-space-block.last-block::after, .tree-table-space-block.no-folder::after {\n position: absolute;\n content: \"\";\n height: 1px;\n background: var(--tree-connecting-lines-color);\n top: 50%;\n margin-top: -1px;\n}\n.tree-table-space-block.last-block::after {\n width: 12px;\n left: -10px;\n}\n.tree-table-space-block.no-folder {\n width: 8px;\n}\n.tree-table-space-block.no-folder::after {\n width: 22px;\n left: -10px;\n}\n.tree-table-space-block:not(.last-block, .no-lines, .last-node)::before {\n position: absolute;\n content: \"\";\n width: 1px;\n height: 40px;\n background: var(--tree-connecting-lines-color);\n left: 50%;\n top: -4px;\n z-index: 99;\n}\n.tree-table-space-block.last-node::before {\n position: absolute;\n content: \"\";\n width: 1px;\n height: 12px;\n background: var(--tree-connecting-lines-color);\n left: 50%;\n top: -4px;\n z-index: -1;\n}\n.tree-table-space-block.folder.last-node::before {\n height: 13px;\n}\n.tree-table-space-block.tree-table-hovered::before, .tree-table-space-block.tree-table-hovered::after {\n background-color: var(--brand-color);\n}\n\n.tree-title-container .tree-table-space-block {\n width: 16px;\n}\n\n.hidden {\n display: none;\n}\n\n.show {\n display: table-row;\n visibility: visible;\n}\n\n.btn-toggle {\n cursor: pointer;\n}\n.btn-toggle.is-close {\n background: #f1f1f1;\n border: 1px solid transparent;\n box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);\n}\n.btn-toggle::before, .btn-toggle::after {\n display: none;\n}\n\n.tree-table-wrap {\n width: 100%;\n padding-left: 4px;\n overflow: hidden;\n overflow-x: auto;\n}\n\n.table-scrollable {\n height: var(--table-height);\n /* Adjust height as needed */\n overflow-y: auto;\n position: relative;\n}\n\n.ff-table-tree-body {\n overflow: scroll;\n}\n\n.tree-table {\n table-layout: fixed;\n width: 100%;\n border-collapse: collapse;\n overflow: scroll;\n}\n.tree-table .ff-table-tree-head {\n position: sticky;\n top: 0;\n z-index: 2;\n}\n.tree-table .ff-table-tree-row:hover,\n.tree-table .ff-table-tree-row.hover {\n background-color: var(--hover-color);\n}\n.tree-table .ff-table-tree-row:hover .ff-table-tree-td:first-child,\n.tree-table .ff-table-tree-row.hover .ff-table-tree-td:first-child {\n background-color: var(--hover-color);\n}\n.tree-table .ff-table-tree-row:hover .table-tree-row-action,\n.tree-table .ff-table-tree-row.hover .table-tree-row-action {\n display: inline-flex;\n align-items: center;\n}\n.tree-table .ff-table-tree-row:hover .table-tree-row-action svg,\n.tree-table .ff-table-tree-row.hover .table-tree-row-action svg {\n height: 14px;\n width: 14px;\n}\n.tree-table .ff-table-tree-row {\n background-color: var(--base-bg-color);\n}\n.tree-table .ff-table-tree-row .table-tree-row-action {\n display: none;\n}\n.tree-table .ff-table-tree-row .table-row-add-button {\n display: inline-flex;\n z-index: 9999;\n align-items: center;\n}\n.tree-table .ff-table-tree-row::after {\n content: \"\";\n display: block;\n visibility: hidden;\n clear: both;\n}\n.tree-table .ff-table-tree-th,\n.tree-table .ff-table-tree-td {\n text-align: left;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n.tree-table .ff-table-tree-th {\n color: var(--table-header-text-color);\n background: var(--border-color);\n font-size: 12px;\n font-weight: 600;\n width: 400px;\n height: 32px;\n box-sizing: border-box;\n}\n.tree-table .ff-table-tree-th:first-child {\n width: 600px !important;\n position: sticky;\n left: 0;\n padding-left: 8px;\n}\n.tree-table .ff-table-tree-td {\n font-size: 12px;\n color: var(--nlp-color);\n height: 18px;\n}\n.tree-table .ff-table-tree-td:first-child {\n overflow: initial;\n position: sticky;\n left: 0;\n background-color: white;\n}\n.tree-table .ff-table-tree-td:first-child .tree-table-default-content {\n margin-left: 8px;\n}\n.tree-table .ff-table-tree-td:first-child .tree-table-td-content {\n padding-left: 4px;\n}\n.tree-table .ff-table-tree-td:first-child .tree-table-td-content .tree-table-td-content-text {\n margin-left: 4px;\n}\n.tree-table .ff-table-tree-td:first-child .tree-table-default-content {\n font-weight: 700;\n}\n.tree-table .ff-table-tree-td.folder {\n height: 28px;\n}\n\n.tree-table-td-content {\n display: inline-flex;\n align-items: center;\n font-size: 12px;\n font-family: \"Poppins\", sans-serif;\n}\n.tree-table-td-content.folder {\n font-weight: 600;\n}\n\n.tree-row-expanded span svg,\n.tree-row-collapsed span svg {\n height: 12px;\n width: 12px;\n}\n.tree-row-expanded span svg path,\n.tree-row-collapsed span svg path {\n fill: var(--brand-color);\n}\n\n.tree-row-collapsed svg {\n transform: rotate(-90deg);\n transition: transform 0.3s ease;\n}\n\n.tree-table-space-container {\n display: inline-flex;\n}\n\n.tree-title-container {\n display: inline-flex;\n align-items: center;\n}";
14570
14485
  styleInject(css_248z$R);
14571
14486
 
14572
14487
  const TableHead = /*#__PURE__*/React__default.memo(({
@@ -14608,7 +14523,7 @@ const TableHead = /*#__PURE__*/React__default.memo(({
14608
14523
  });
14609
14524
  });
14610
14525
 
14611
- var css_248z$Q = ".add-module-container {\n display: flex;\n}\n.add-module-container .icons {\n cursor: pointer;\n}";
14526
+ var css_248z$Q = ".fontXs, .add-module-container .ff-add-module-input-container:focus-within .ff-add-module-label-container, .add-module-container .ff-add-module-input-container--float .ff-add-module-label-container {\n font-family: \"Poppins\";\n font-size: 10px;\n}\n\n.fontSm {\n font-family: \"Poppins\";\n font-size: 12px;\n}\n\n.fontMd {\n font-family: \"Poppins\";\n font-size: 14px;\n}\n\n.fontLg {\n font-family: \"Poppins\";\n font-size: 16px;\n}\n\n.fontXL {\n font-family: \"Poppins\";\n font-size: 18px;\n}\n\n.font2Xl {\n font-family: \"Poppins\";\n font-size: 24px;\n}\n\n.font-size-8 {\n font-family: \"Poppins\";\n font-size: 8px;\n}\n\n.font-size-20 {\n font-family: \"Poppins\";\n font-size: 20px;\n}\n\n.font-size-32 {\n font-family: \"Poppins\";\n font-size: 32px;\n}\n\n.font-size-80 {\n font-family: \"Poppins\";\n font-size: 80px;\n}\n\n.add-module-container {\n display: flex;\n}\n.add-module-container .icons {\n cursor: pointer;\n}\n.add-module-container .ff-add-module-input-container {\n display: flex;\n flex-direction: column;\n position: relative;\n}\n.add-module-container .ff-add-module-input-container .ff-add-module-label-container {\n display: flex;\n gap: 2px;\n position: absolute;\n border: none;\n outline: none;\n line-height: 18px;\n margin-top: 1px;\n padding: 4px 6px;\n transition: all 0.3s ease-in-out;\n}\n.add-module-container .ff-add-module-input-container .ff-add-module-label-container .ff-add-module-label {\n color: var(--input-default-label-color);\n}\n.add-module-container .ff-add-module-input-container .add-module-input {\n height: 24px;\n padding: 0px 6px;\n width: 330px;\n border: 0.5px solid var(--nlp-color);\n border-radius: 4px;\n outline: none;\n line-height: 18px;\n color: var(--nlp-color);\n}\n.add-module-container .ff-add-module-input-container:focus-within .ff-add-module-label-container {\n top: -9px;\n background-color: var(--input-label-bg-color);\n line-height: 15px;\n padding: 0px 2px;\n margin-left: 10px;\n}\n.add-module-container .ff-add-module-input-container:focus-within .ff-add-module-label-container .ff-add-module-label {\n color: var(--nlp-color);\n}\n.add-module-container .ff-add-module-input-container--float .ff-add-module-label-container {\n top: -9px;\n background-color: var(--input-label-bg-color);\n line-height: 15px;\n padding: 0px 2px;\n margin-left: 10px;\n}\n.add-module-container .ff-add-module-input-container--float .ff-add-module-label-container .ff-add-module-label {\n color: var(--nlp-color);\n}\n.add-module-container .ff-module-icon-container {\n display: flex;\n gap: 8px;\n align-items: center;\n}";
14612
14527
  styleInject(css_248z$Q);
14613
14528
 
14614
14529
  const AddModule = ({
@@ -14619,22 +14534,47 @@ const AddModule = ({
14619
14534
  }) => {
14620
14535
  console.log('🚀 ~ value:', value);
14621
14536
  const [text, setText] = useState(value);
14537
+ const isValueFilled = !checkEmpty(text);
14622
14538
  return jsxs(Fragment, {
14623
14539
  children: [jsxs("div", {
14624
- className: "add-module-container",
14625
- children: [jsx("input", {
14626
- type: "text",
14627
- className: "add-module-input",
14628
- onChange: e => setText(e.target.value),
14629
- value: text
14630
- }), jsx(Icon, {
14631
- className: "icons",
14632
- name: "update_icon",
14633
- onClick: () => onConfirm && onConfirm(text)
14634
- }), jsx(Icon, {
14635
- className: "icons",
14636
- name: "close",
14637
- onClick: onCancel
14540
+ className: classNames("add-module-container"),
14541
+ children: [jsxs("div", {
14542
+ className: classNames("ff-add-module-input-container", {
14543
+ 'ff-add-module-input-container--float': isValueFilled
14544
+ }),
14545
+ children: [jsx("label", {
14546
+ className: 'ff-add-module-label-container',
14547
+ htmlFor: 'add-module-input',
14548
+ children: jsx("span", {
14549
+ className: classNames('ff-add-module-label', {
14550
+ 'ff-input-label--no-hover': !!text
14551
+ }),
14552
+ children: "Edit Script"
14553
+ })
14554
+ }), jsx("input", {
14555
+ name: 'add-module-input',
14556
+ type: "text",
14557
+ className: "add-module-input",
14558
+ onChange: e => setText(e.target.value),
14559
+ value: text
14560
+ })]
14561
+ }), jsxs("div", {
14562
+ className: "ff-module-icon-container",
14563
+ children: [jsx(Icon, {
14564
+ className: "icons",
14565
+ name: "update_icon",
14566
+ onClick: () => onConfirm && onConfirm(text),
14567
+ color: 'var(--label-edit-confirm-icon)',
14568
+ height: 18,
14569
+ width: 18
14570
+ }), jsx(Icon, {
14571
+ className: "icons",
14572
+ name: "close",
14573
+ onClick: onCancel,
14574
+ color: 'var(--label-edit-cancel-icon)',
14575
+ height: 14,
14576
+ width: 14
14577
+ })]
14638
14578
  })]
14639
14579
  }), jsx("small", {
14640
14580
  children: error
@@ -14648,7 +14588,7 @@ const renderSpaces = (level, parentSiblings = [], isLast, isContainer) => {
14648
14588
  if (checkEmpty(parentSiblings)) {
14649
14589
  isLastNode = false;
14650
14590
  if (!isNaN(level)) {
14651
- siblingsArray = Array(level).fill(true);
14591
+ siblingsArray = Array(level - 1).fill(true);
14652
14592
  }
14653
14593
  }
14654
14594
  return jsx("div", {
@@ -14668,47 +14608,79 @@ const TableCell = /*#__PURE__*/React__default.memo(({
14668
14608
  onToggleExpand,
14669
14609
  onAddConfirm,
14670
14610
  onAddCancel
14671
- }) => jsxs("td", {
14672
- className: `ff-table-tree-td ${col.isTree && node.container ? 'folder' : ''}`,
14673
- children: [col.isTree && renderSpaces(node.hierarchy + 1, node.parentSiblings, node.lastResource, node.container), jsxs("div", {
14674
- className: "tree-title-container",
14675
- children: [col.isTree && jsx("span", {
14676
- className: `tree-table-space-block last-block ${node.expand ? 'tree-row-expanded' : 'tree-row-collapsed'} ${node.container ? '' : 'no-folder'}`,
14677
- onClick: () => onToggleExpand(node),
14678
- children: node.container && node?.resourceCount + node?.subContainerCount > 0 && jsxs("span", {
14679
- onClick: () => onToggleExpand(node),
14680
- children: [' ', jsx(SvgArrowsDownIcon, {})]
14681
- })
14682
- }), jsxs("span", {
14683
- className: `tree-table-td-content ${col.isTree && node.container ? 'folder' : ''}`,
14684
- children: [!node?.isNewNode && jsxs(Fragment, {
14685
- children: [col.isTree && select === 'checkbox' && jsx(Checkbox, {
14686
- checked: node?.checked || false,
14687
- partial: node?.checked === 'partial',
14688
- onChange: e => onCheckBoxChange(e, node)
14689
- }), col.isTree && select === 'radio' && jsx(RadioButton, {
14690
- name: node.title,
14691
- checked: selected.includes(node.id),
14692
- value: node.id,
14693
- onChange: e => onCheckBoxChange(e, node)
14611
+ }) => {
14612
+ useEffect(() => {
14613
+ const handleHover = (event, isHovering) => {
14614
+ const target = event.target;
14615
+ const levelClass = Array.from(target.classList).find(cls => cls.startsWith('tree-table-space-block-'));
14616
+ if (levelClass) {
14617
+ const level = levelClass.split('-').pop();
14618
+ // Check if level is valid before selecting elements
14619
+ if (level) {
14620
+ const sameLevelBlocks = document.querySelectorAll(`.tree-table-space-block-${level}`);
14621
+ sameLevelBlocks.forEach(block => {
14622
+ if (isHovering) {
14623
+ block.classList.add('tree-table-hovered');
14624
+ } else {
14625
+ block.classList.remove('tree-table-hovered');
14626
+ }
14627
+ });
14628
+ }
14629
+ }
14630
+ };
14631
+ const spaceBlocks = document.querySelectorAll('.tree-table-space-block');
14632
+ spaceBlocks.forEach(block => {
14633
+ block.addEventListener('mouseenter', e => handleHover(e, true));
14634
+ block.addEventListener('mouseleave', e => handleHover(e, false));
14635
+ });
14636
+ return () => {
14637
+ spaceBlocks.forEach(block => {
14638
+ block.removeEventListener('mouseenter', e => handleHover(e, true));
14639
+ block.removeEventListener('mouseleave', e => handleHover(e, false));
14640
+ });
14641
+ };
14642
+ }, []);
14643
+ return jsxs("td", {
14644
+ className: `ff-table-tree-td ${col.isTree && node.container ? 'folder' : ''}`,
14645
+ children: [col.isTree && renderSpaces(node.hierarchy + 1, node.parentSiblings, node.lastResource, node.container), jsxs("div", {
14646
+ className: "tree-title-container",
14647
+ children: [col.isTree && jsx("span", {
14648
+ className: `tree-table-space-block tree-table-space-block-${node.hierarchy} last-block ${node.expand ? 'tree-row-expanded' : 'tree-row-collapsed'} ${node.container ? '' : 'no-folder'}`,
14649
+ children: node.container && (node?.resourceCount + node?.subContainerCount > 0 || node.expandable) && jsxs("span", {
14650
+ onClick: () => onToggleExpand(node),
14651
+ children: [' ', jsx(SvgArrowsDownIcon, {})]
14652
+ })
14653
+ }), jsxs("span", {
14654
+ className: `tree-table-td-content ${col.isTree && node.container ? 'folder' : ''}`,
14655
+ children: [!node?.isNewNode && jsxs(Fragment, {
14656
+ children: [col.isTree && select === 'checkbox' && jsx(Checkbox, {
14657
+ checked: node?.checked || false,
14658
+ partial: node?.checked === 'partial',
14659
+ onChange: e => onCheckBoxChange(e, node)
14660
+ }), col.isTree && select === 'radio' && jsx(RadioButton, {
14661
+ name: node.key,
14662
+ checked: selected.includes(node.key),
14663
+ value: node.key,
14664
+ onChange: e => onCheckBoxChange(e, node)
14665
+ })]
14666
+ }), node.isNewNode && col.isTree ? jsx(AddModule, {
14667
+ onCancel: onAddCancel,
14668
+ onConfirm: onAddConfirm,
14669
+ error: node?.error || '',
14670
+ value: node.value
14671
+ }) : jsx("span", {
14672
+ className: "tree-table-td-content-text",
14673
+ children: prepareData(node, col)
14694
14674
  })]
14695
- }), node.isNewNode && col.isTree ? jsx(AddModule, {
14696
- onCancel: onAddCancel,
14697
- onConfirm: onAddConfirm,
14698
- error: node?.error || '',
14699
- value: node.value
14700
- }) : jsx("span", {
14701
- className: "tree-table-td-content-text",
14702
- children: prepareData(node, col)
14703
14675
  })]
14676
+ }), col.actions && jsx("div", {
14677
+ className: `table-tree-row-action`,
14678
+ children: (() => {
14679
+ return col.actions(node, treeRowRef);
14680
+ })()
14704
14681
  })]
14705
- }), col.actions && jsx("div", {
14706
- className: `table-tree-row-action`,
14707
- children: (() => {
14708
- return col.actions(node, treeRowRef);
14709
- })()
14710
- })]
14711
- }));
14682
+ });
14683
+ });
14712
14684
 
14713
14685
  const TableRow = /*#__PURE__*/React__default.memo(({
14714
14686
  node,
@@ -14872,8 +14844,8 @@ const TreeTable = ({
14872
14844
  const lastNode = document.getElementById('ff-table-tree-last-node');
14873
14845
  // Exit early if essential elements or data are missing
14874
14846
  if (!scrollContainer || !firstNode || !lastNode || !treeData?.length) return;
14875
- const isLastResourceAbove = treeData[0]?.lastResource;
14876
- const isLastResourceBelow = treeData[treeData.length - 1]?.lastResource;
14847
+ const isLastResourceAbove = !!treeData[0]?.lastResource;
14848
+ const isLastResourceBelow = !!treeData[treeData.length - 1]?.lastResource;
14877
14849
  // Skip pagination if both last resources are present
14878
14850
  if (isLastResourceAbove && isLastResourceBelow) return;
14879
14851
  const observerCallback = entries => {
@@ -18633,53 +18605,6 @@ function setYear(date, year, options) {
18633
18605
  return date_;
18634
18606
  }
18635
18607
 
18636
- const FIVE_WEEKS = 5;
18637
- const FOUR_WEEKS = 4;
18638
- /**
18639
- * Return the number of weeks to display in the broadcast calendar.
18640
- *
18641
- * @since 9.4.0
18642
- */
18643
- function getBroadcastWeeksInMonth(month, dateLib) {
18644
- // Get the first day of the month
18645
- const firstDayOfMonth = dateLib.startOfMonth(month);
18646
- // Get the day of the week for the first day of the month (1-7, where 1 is Monday)
18647
- const firstDayOfWeek = firstDayOfMonth.getDay() > 0 ? firstDayOfMonth.getDay() : 7;
18648
- const broadcastStartDate = dateLib.addDays(month, -firstDayOfWeek + 1);
18649
- const lastDateOfLastWeek = dateLib.addDays(broadcastStartDate, FIVE_WEEKS * 7 - 1);
18650
- const numberOfWeeks = month.getMonth() === lastDateOfLastWeek.getMonth() ? FIVE_WEEKS : FOUR_WEEKS;
18651
- return numberOfWeeks;
18652
- }
18653
-
18654
- /**
18655
- * Return the start date of the week in the broadcast calendar.
18656
- *
18657
- * @since 9.4.0
18658
- */
18659
- function startOfBroadcastWeek(date, dateLib) {
18660
- const firstOfMonth = dateLib.startOfMonth(date);
18661
- const dayOfWeek = firstOfMonth.getDay();
18662
- if (dayOfWeek === 1) {
18663
- return firstOfMonth;
18664
- } else if (dayOfWeek === 0) {
18665
- return dateLib.addDays(firstOfMonth, -1 * 6);
18666
- } else {
18667
- return dateLib.addDays(firstOfMonth, -1 * (dayOfWeek - 1));
18668
- }
18669
- }
18670
-
18671
- /**
18672
- * Return the end date of the week in the broadcast calendar.
18673
- *
18674
- * @since 9.4.0
18675
- */
18676
- function endOfBroadcastWeek(date, dateLib) {
18677
- const startDate = startOfBroadcastWeek(date, dateLib);
18678
- const numberOfWeeks = getBroadcastWeeksInMonth(date, dateLib);
18679
- const endDate = dateLib.addDays(startDate, numberOfWeeks * 7 - 1);
18680
- return endDate;
18681
- }
18682
-
18683
18608
  /**
18684
18609
  * A wrapper class around [date-fns](http://date-fns.org) sharing the same
18685
18610
  * options. Methods of this class can be overridden using the
@@ -18760,15 +18685,6 @@ class DateLib {
18760
18685
  this.differenceInCalendarMonths = (dateLeft, dateRight) => {
18761
18686
  return this.overrides?.differenceInCalendarMonths ? this.overrides.differenceInCalendarMonths(dateLeft, dateRight) : differenceInCalendarMonths(dateLeft, dateRight);
18762
18687
  };
18763
- /**
18764
- * Returns the end of the broadcast week for the given date.
18765
- *
18766
- * @param date The original date.
18767
- * @returns The end of the broadcast week.
18768
- */
18769
- this.endOfBroadcastWeek = date => {
18770
- return this.overrides?.endOfBroadcastWeek ? this.overrides.endOfBroadcastWeek(date, this) : endOfBroadcastWeek(date, this);
18771
- };
18772
18688
  /**
18773
18689
  * Returns the end of the ISO week for the given date.
18774
18690
  *
@@ -18930,15 +18846,6 @@ class DateLib {
18930
18846
  this.setYear = (date, year) => {
18931
18847
  return this.overrides?.setYear ? this.overrides.setYear(date, year) : setYear(date, year);
18932
18848
  };
18933
- /**
18934
- * Returns the start of the broadcast week for the given date.
18935
- *
18936
- * @param date The original date.
18937
- * @returns The start of the broadcast week.
18938
- */
18939
- this.startOfBroadcastWeek = date => {
18940
- return this.overrides?.startOfBroadcastWeek ? this.overrides.startOfBroadcastWeek(date, this) : startOfBroadcastWeek(date, this);
18941
- };
18942
18849
  /**
18943
18850
  * Returns the start of the day for the given date.
18944
18851
  *
@@ -19421,9 +19328,7 @@ function Weekday(props) {
19421
19328
  * @see https://daypicker.dev/guides/custom-components
19422
19329
  */
19423
19330
  function Weekdays(props) {
19424
- return /*#__PURE__*/React__default.createElement("thead", {
19425
- "aria-hidden": true
19426
- }, /*#__PURE__*/React__default.createElement("tr", {
19331
+ return /*#__PURE__*/React__default.createElement("thead", null, /*#__PURE__*/React__default.createElement("tr", {
19427
19332
  ...props
19428
19333
  }));
19429
19334
  }
@@ -19526,8 +19431,7 @@ function getDataAttributes(props) {
19526
19431
  "data-mode": props.mode ?? undefined,
19527
19432
  "data-required": "required" in props ? props.required : undefined,
19528
19433
  "data-multiple-months": props.numberOfMonths && props.numberOfMonths > 1 || undefined,
19529
- "data-week-numbers": props.showWeekNumber || undefined,
19530
- "data-broadcast-calendar": props.broadcastCalendar || undefined
19434
+ "data-week-numbers": props.showWeekNumber || undefined
19531
19435
  };
19532
19436
  Object.entries(props).forEach(([key, val]) => {
19533
19437
  if (key.startsWith("data-")) {
@@ -19593,7 +19497,7 @@ function formatDay(date, options, dateLib) {
19593
19497
  */
19594
19498
  function formatMonthDropdown(/** The month number to format. */
19595
19499
  monthNumber, /** The locale to use for formatting. */
19596
- locale) {
19500
+ locale = enUS$1) {
19597
19501
  return locale.localize?.month(monthNumber);
19598
19502
  }
19599
19503
 
@@ -19683,12 +19587,13 @@ function getMonthOptions(displayMonth, navStart, navEnd, formatters, dateLib) {
19683
19587
  if (!navEnd) return undefined;
19684
19588
  const {
19685
19589
  addMonths,
19686
- startOfMonth
19590
+ startOfMonth,
19591
+ isBefore
19687
19592
  } = dateLib;
19688
19593
  const year = displayMonth.getFullYear();
19689
19594
  const months = [];
19690
19595
  let month = navStart;
19691
- while (months.length < 12) {
19596
+ while (months.length < 12 && isBefore(month, addMonths(navEnd, 1))) {
19692
19597
  months.push(month.getMonth());
19693
19598
  month = addMonths(month, 1);
19694
19599
  }
@@ -19696,7 +19601,7 @@ function getMonthOptions(displayMonth, navStart, navEnd, formatters, dateLib) {
19696
19601
  return a - b;
19697
19602
  });
19698
19603
  const options = sortedMonths.map(value => {
19699
- const label = formatters.formatMonthDropdown(value, dateLib.options.locale ?? enUS$1);
19604
+ const label = formatters.formatMonthDropdown(value, dateLib.options.locale);
19700
19605
  const month = dateLib.Date ? new dateLib.Date(year, value) : new Date(year, value);
19701
19606
  const disabled = navStart && month < startOfMonth(navStart) || navEnd && month > startOfMonth(navEnd) || false;
19702
19607
  return {
@@ -20071,8 +19976,7 @@ function tzName(tz, date) {
20071
19976
  */
20072
19977
  function getWeekdays(/** The date library. */
20073
19978
  dateLib, /** Use ISOWeek instead of locale/ */
20074
- ISOWeek, timeZone, /** @since 9.4.0 */
20075
- broadcastCalendar) {
19979
+ ISOWeek, timeZone) {
20076
19980
  const date = timeZone ? TZDate.tz(timeZone) : dateLib.Date ? new dateLib.Date() : new Date();
20077
19981
  const start = ISOWeek ? dateLib.startOfISOWeek(date) : dateLib.startOfWeek(date);
20078
19982
  const days = [];
@@ -20084,18 +19988,20 @@ broadcastCalendar) {
20084
19988
  }
20085
19989
 
20086
19990
  /** Return the years to show in the dropdown. */
20087
- function getYearOptions(navStart, navEnd, formatters, dateLib) {
20088
- if (!navStart) return undefined;
20089
- if (!navEnd) return undefined;
19991
+ function getYearOptions(displayMonth, calendarStart, calendarEnd, formatters, dateLib) {
19992
+ if (!calendarStart) return undefined;
19993
+ if (!calendarEnd) return undefined;
20090
19994
  const {
19995
+ startOfMonth,
20091
19996
  startOfYear,
20092
19997
  endOfYear,
20093
19998
  addYears,
20094
19999
  isBefore,
20095
20000
  isSameYear
20096
20001
  } = dateLib;
20097
- const firstNavYear = startOfYear(navStart);
20098
- const lastNavYear = endOfYear(navEnd);
20002
+ const month = displayMonth.getMonth();
20003
+ const firstNavYear = startOfYear(calendarStart);
20004
+ const lastNavYear = endOfYear(calendarEnd);
20099
20005
  const years = [];
20100
20006
  let year = firstNavYear;
20101
20007
  while (isBefore(year, lastNavYear) || isSameYear(year, lastNavYear)) {
@@ -20103,11 +20009,13 @@ function getYearOptions(navStart, navEnd, formatters, dateLib) {
20103
20009
  year = addYears(year, 1);
20104
20010
  }
20105
20011
  return years.map(value => {
20012
+ const year = dateLib.Date ? new dateLib.Date(value, month) : new Date(value, month);
20013
+ const disabled = calendarStart && year < startOfMonth(calendarStart) || month && calendarEnd && year > startOfMonth(calendarEnd) || false;
20106
20014
  const label = formatters.formatYearDropdown(value);
20107
20015
  return {
20108
20016
  value,
20109
20017
  label,
20110
- disabled: false
20018
+ disabled
20111
20019
  };
20112
20020
  });
20113
20021
  }
@@ -20271,30 +20179,29 @@ var defaultLabels = /*#__PURE__*/Object.freeze({
20271
20179
  labelYearDropdown: labelYearDropdown
20272
20180
  });
20273
20181
 
20182
+ /** The number of days in a month when having 6 weeks. */
20183
+ const NrOfDaysWithFixedWeeks = 42;
20274
20184
  /** Return all the dates to display in the calendar. */
20275
20185
  function getDates(displayMonths, maxDate, props, dateLib) {
20276
20186
  const firstMonth = displayMonths[0];
20277
20187
  const lastMonth = displayMonths[displayMonths.length - 1];
20278
20188
  const {
20279
20189
  ISOWeek,
20280
- fixedWeeks,
20281
- broadcastCalendar
20190
+ fixedWeeks
20282
20191
  } = props ?? {};
20283
20192
  const {
20193
+ startOfWeek,
20194
+ endOfWeek,
20195
+ startOfISOWeek,
20196
+ endOfISOWeek,
20284
20197
  addDays,
20285
20198
  differenceInCalendarDays,
20286
20199
  differenceInCalendarMonths,
20287
- endOfBroadcastWeek,
20288
- endOfISOWeek,
20289
- endOfMonth,
20290
- endOfWeek,
20291
20200
  isAfter,
20292
- startOfBroadcastWeek,
20293
- startOfISOWeek,
20294
- startOfWeek
20201
+ endOfMonth
20295
20202
  } = dateLib;
20296
- const startWeekFirstDate = broadcastCalendar ? startOfBroadcastWeek(firstMonth, dateLib) : ISOWeek ? startOfISOWeek(firstMonth) : startOfWeek(firstMonth);
20297
- const endWeekLastDate = broadcastCalendar ? endOfBroadcastWeek(lastMonth, dateLib) : ISOWeek ? endOfISOWeek(endOfMonth(lastMonth)) : endOfWeek(endOfMonth(lastMonth));
20203
+ const startWeekFirstDate = ISOWeek ? startOfISOWeek(firstMonth) : startOfWeek(firstMonth);
20204
+ const endWeekLastDate = ISOWeek ? endOfISOWeek(endOfMonth(lastMonth)) : endOfWeek(endOfMonth(lastMonth));
20298
20205
  const nOfDays = differenceInCalendarDays(endWeekLastDate, startWeekFirstDate);
20299
20206
  const nOfMonths = differenceInCalendarMonths(lastMonth, firstMonth) + 1;
20300
20207
  const dates = [];
@@ -20306,11 +20213,9 @@ function getDates(displayMonths, maxDate, props, dateLib) {
20306
20213
  dates.push(date);
20307
20214
  }
20308
20215
  // If fixed weeks is enabled, add the extra dates to the array
20309
- const nrOfDaysWithFixedWeeks = broadcastCalendar ? 35 : 42;
20310
- const extraDates = nrOfDaysWithFixedWeeks * nOfMonths;
20216
+ const extraDates = NrOfDaysWithFixedWeeks * nOfMonths;
20311
20217
  if (fixedWeeks && dates.length < extraDates) {
20312
- const daysToAdd = extraDates - dates.length;
20313
- for (let i = 0; i < daysToAdd; i++) {
20218
+ for (let i = 0; i < 7; i++) {
20314
20219
  const date = addDays(dates[dates.length - 1], 1);
20315
20220
  dates.push(date);
20316
20221
  }
@@ -20421,29 +20326,25 @@ displayMonths, /** The dates to display in the calendar. */
20421
20326
  dates, /** Options from the props context. */
20422
20327
  props, dateLib) {
20423
20328
  const {
20424
- addDays,
20425
- endOfBroadcastWeek,
20329
+ startOfWeek,
20330
+ endOfWeek,
20331
+ startOfISOWeek,
20426
20332
  endOfISOWeek,
20427
20333
  endOfMonth,
20428
- endOfWeek,
20429
- getISOWeek,
20334
+ addDays,
20430
20335
  getWeek,
20431
- startOfBroadcastWeek,
20432
- startOfISOWeek,
20433
- startOfWeek
20336
+ getISOWeek
20434
20337
  } = dateLib;
20435
20338
  const dayPickerMonths = displayMonths.reduce((months, month) => {
20436
- const firstDateOfFirstWeek = props.broadcastCalendar ? startOfBroadcastWeek(month, dateLib) : props.ISOWeek ? startOfISOWeek(month) : startOfWeek(month);
20437
- const lastDateOfLastWeek = props.broadcastCalendar ? endOfBroadcastWeek(month, dateLib) : props.ISOWeek ? endOfISOWeek(endOfMonth(month)) : endOfWeek(endOfMonth(month));
20339
+ const firstDateOfFirstWeek = props.ISOWeek ? startOfISOWeek(month) : startOfWeek(month);
20340
+ const lastDateOfLastWeek = props.ISOWeek ? endOfISOWeek(endOfMonth(month)) : endOfWeek(endOfMonth(month));
20438
20341
  /** The dates to display in the month. */
20439
20342
  const monthDates = dates.filter(date => {
20440
20343
  return date >= firstDateOfFirstWeek && date <= lastDateOfLastWeek;
20441
20344
  });
20442
- const nrOfDaysWithFixedWeeks = props.broadcastCalendar ? 35 : 42;
20443
- if (props.fixedWeeks && monthDates.length < nrOfDaysWithFixedWeeks) {
20345
+ if (props.fixedWeeks && monthDates.length < 42) {
20444
20346
  const extraDates = dates.filter(date => {
20445
- const daysToAdd = nrOfDaysWithFixedWeeks - monthDates.length;
20446
- return date > lastDateOfLastWeek && date <= addDays(lastDateOfLastWeek, daysToAdd);
20347
+ return date > lastDateOfLastWeek && date <= addDays(lastDateOfLastWeek, 7);
20447
20348
  });
20448
20349
  monthDates.push(...extraDates);
20449
20350
  }
@@ -20881,30 +20782,27 @@ function dateMatchModifiers(date, matchers, dateLib = defaultDateLib) {
20881
20782
  /** Return the next date that should be focused. */
20882
20783
  function getFocusableDate(moveBy, moveDir, refDate, navStart, navEnd, props, dateLib) {
20883
20784
  const {
20884
- ISOWeek,
20885
- broadcastCalendar
20785
+ ISOWeek
20886
20786
  } = props;
20887
20787
  const {
20888
20788
  addDays,
20889
20789
  addMonths,
20890
- addWeeks,
20891
20790
  addYears,
20892
- endOfBroadcastWeek,
20791
+ addWeeks,
20792
+ startOfISOWeek,
20893
20793
  endOfISOWeek,
20794
+ startOfWeek,
20894
20795
  endOfWeek,
20895
20796
  max,
20896
- min,
20897
- startOfBroadcastWeek,
20898
- startOfISOWeek,
20899
- startOfWeek
20797
+ min
20900
20798
  } = dateLib;
20901
20799
  const moveFns = {
20902
20800
  day: addDays,
20903
20801
  week: addWeeks,
20904
20802
  month: addMonths,
20905
20803
  year: addYears,
20906
- startOfWeek: date => broadcastCalendar ? startOfBroadcastWeek(date, dateLib) : ISOWeek ? startOfISOWeek(date) : startOfWeek(date),
20907
- endOfWeek: date => broadcastCalendar ? endOfBroadcastWeek(date, dateLib) : ISOWeek ? endOfISOWeek(date) : endOfWeek(date)
20804
+ startOfWeek: date => ISOWeek ? startOfISOWeek(date) : startOfWeek(date),
20805
+ endOfWeek: date => ISOWeek ? endOfISOWeek(date) : endOfWeek(date)
20908
20806
  };
20909
20807
  let focusableDate = moveFns[moveBy](refDate, moveDir === "after" ? 1 : -1);
20910
20808
  if (moveDir === "before" && navStart) {
@@ -20970,8 +20868,6 @@ function useFocus(props, calendar, getModifiers, isSelected, dateLib) {
20970
20868
  /**
20971
20869
  * Return a function to get the modifiers for a given day.
20972
20870
  *
20973
- * NOTE: this is not an hook, but a factory for `getModifiers`.
20974
- *
20975
20871
  * @private
20976
20872
  */
20977
20873
  function useGetModifiers(days, props, dateLib) {
@@ -20980,19 +20876,12 @@ function useGetModifiers(days, props, dateLib) {
20980
20876
  hidden,
20981
20877
  modifiers,
20982
20878
  showOutsideDays,
20983
- broadcastCalendar,
20984
20879
  today
20985
20880
  } = props;
20986
20881
  const {
20987
20882
  isSameDay,
20988
- isSameMonth,
20989
- startOfMonth,
20990
- isBefore,
20991
- endOfMonth,
20992
- isAfter
20883
+ isSameMonth
20993
20884
  } = dateLib;
20994
- const startMonth = props.startMonth && startOfMonth(props.startMonth);
20995
- const endMonth = props.endMonth && endOfMonth(props.endMonth);
20996
20885
  const internalModifiersMap = {
20997
20886
  [DayFlag.focused]: [],
20998
20887
  [DayFlag.outside]: [],
@@ -21001,18 +20890,20 @@ function useGetModifiers(days, props, dateLib) {
21001
20890
  [DayFlag.today]: []
21002
20891
  };
21003
20892
  const customModifiersMap = {};
20893
+ const selectionModifiersMap = {
20894
+ [SelectionState.range_end]: [],
20895
+ [SelectionState.range_middle]: [],
20896
+ [SelectionState.range_start]: [],
20897
+ [SelectionState.selected]: []
20898
+ };
21004
20899
  for (const day of days) {
21005
20900
  const {
21006
20901
  date,
21007
20902
  displayMonth
21008
20903
  } = day;
21009
20904
  const isOutside = Boolean(displayMonth && !isSameMonth(date, displayMonth));
21010
- const isBeforeStartMonth = Boolean(startMonth && isBefore(date, startMonth));
21011
- const isAfterEndMonth = Boolean(endMonth && isAfter(date, endMonth));
21012
20905
  const isDisabled = Boolean(disabled && dateMatchModifiers(date, disabled, dateLib));
21013
- const isHidden = Boolean(hidden && dateMatchModifiers(date, hidden, dateLib)) || isBeforeStartMonth || isAfterEndMonth ||
21014
- // Broadcast calendar will show outside days as default
21015
- !broadcastCalendar && !showOutsideDays && isOutside || broadcastCalendar && showOutsideDays === false && isOutside;
20906
+ const isHidden = Boolean(hidden && dateMatchModifiers(date, hidden, dateLib)) || !showOutsideDays && isOutside;
21016
20907
  const isToday = isSameDay(date, today ?? (props.timeZone ? TZDate.tz(props.timeZone) : dateLib.Date ? new dateLib.Date() : new Date()));
21017
20908
  if (isOutside) internalModifiersMap.outside.push(day);
21018
20909
  if (isDisabled) internalModifiersMap.disabled.push(day);
@@ -21041,16 +20932,27 @@ function useGetModifiers(days, props, dateLib) {
21041
20932
  [DayFlag.outside]: false,
21042
20933
  [DayFlag.today]: false
21043
20934
  };
20935
+ const selectionStates = {
20936
+ [SelectionState.range_end]: false,
20937
+ [SelectionState.range_middle]: false,
20938
+ [SelectionState.range_start]: false,
20939
+ [SelectionState.selected]: false
20940
+ };
21044
20941
  const customModifiers = {};
21045
20942
  // Find the modifiers for the given day
21046
20943
  for (const name in internalModifiersMap) {
21047
20944
  const days = internalModifiersMap[name];
21048
20945
  dayFlags[name] = days.some(d => d === day);
21049
20946
  }
20947
+ for (const name in selectionModifiersMap) {
20948
+ const days = selectionModifiersMap[name];
20949
+ selectionStates[name] = days.some(d => d === day);
20950
+ }
21050
20951
  for (const name in customModifiersMap) {
21051
20952
  customModifiers[name] = customModifiersMap[name].some(d => d === day);
21052
20953
  }
21053
20954
  return {
20955
+ ...selectionStates,
21054
20956
  ...dayFlags,
21055
20957
  // custom modifiers should override all the previous ones
21056
20958
  ...customModifiers
@@ -21455,7 +21357,7 @@ function DayPicker(props) {
21455
21357
  };
21456
21358
  const dateLib = new DateLib({
21457
21359
  locale,
21458
- weekStartsOn: props.broadcastCalendar ? 1 : props.weekStartsOn,
21360
+ weekStartsOn: props.weekStartsOn,
21459
21361
  firstWeekContainsDate: props.firstWeekContainsDate,
21460
21362
  useAdditionalWeekYearTokens: props.useAdditionalWeekYearTokens,
21461
21363
  useAdditionalDayOfYearTokens: props.useAdditionalDayOfYearTokens
@@ -21474,7 +21376,7 @@ function DayPicker(props) {
21474
21376
  ...props.classNames
21475
21377
  }
21476
21378
  };
21477
- }, [props.classNames, props.components, props.dateLib, props.firstWeekContainsDate, props.formatters, props.labels, props.locale, props.useAdditionalDayOfYearTokens, props.useAdditionalWeekYearTokens, props.weekStartsOn, props.broadcastCalendar]);
21379
+ }, [props.classNames, props.components, props.dateLib, props.firstWeekContainsDate, props.formatters, props.labels, props.locale, props.useAdditionalDayOfYearTokens, props.useAdditionalWeekYearTokens, props.weekStartsOn]);
21478
21380
  const {
21479
21381
  captionLayout,
21480
21382
  mode,
@@ -21584,16 +21486,6 @@ function DayPicker(props) {
21584
21486
  const handleDayMouseLeave = useCallback((day, modifiers) => e => {
21585
21487
  onDayMouseLeave?.(day.date, modifiers, e);
21586
21488
  }, [onDayMouseLeave]);
21587
- const handleMonthChange = useCallback(date => e => {
21588
- const selectedMonth = Number(e.target.value);
21589
- const month = dateLib.setMonth(dateLib.startOfMonth(date), selectedMonth);
21590
- goToMonth(month);
21591
- }, [dateLib, goToMonth]);
21592
- const handleYearChange = useCallback(date => e => {
21593
- const selectedYear = Number(e.target.value);
21594
- const month = dateLib.setYear(dateLib.startOfMonth(date), selectedYear);
21595
- goToMonth(month);
21596
- }, [dateLib, goToMonth]);
21597
21489
  const {
21598
21490
  className,
21599
21491
  style
@@ -21631,8 +21523,6 @@ function DayPicker(props) {
21631
21523
  lang: props.lang,
21632
21524
  nonce: props.nonce,
21633
21525
  title: props.title,
21634
- role: props.role,
21635
- "aria-label": props["aria-label"],
21636
21526
  ...dataAttributes
21637
21527
  }, /*#__PURE__*/React__default.createElement(components.Months, {
21638
21528
  className: classNames[UI.Months],
@@ -21646,8 +21536,17 @@ function DayPicker(props) {
21646
21536
  previousMonth: previousMonth,
21647
21537
  nextMonth: nextMonth
21648
21538
  })), months.map((calendarMonth, displayIndex) => {
21539
+ const handleMonthChange = e => {
21540
+ const selectedMonth = Number(e.target.value);
21541
+ const month = dateLib.setMonth(dateLib.startOfMonth(calendarMonth.date), selectedMonth);
21542
+ goToMonth(month);
21543
+ };
21544
+ const handleYearChange = e => {
21545
+ const month = dateLib.setYear(dateLib.startOfMonth(calendarMonth.date), Number(e.target.value));
21546
+ goToMonth(month);
21547
+ };
21649
21548
  const dropdownMonths = getMonthOptions(calendarMonth.date, navStart, navEnd, formatters, dateLib);
21650
- const dropdownYears = getYearOptions(navStart, navEnd, formatters, dateLib);
21549
+ const dropdownYears = getYearOptions(months[0].date, navStart, navEnd, formatters, dateLib);
21651
21550
  return /*#__PURE__*/React__default.createElement(components.Month, {
21652
21551
  className: classNames[UI.Month],
21653
21552
  style: styles?.[UI.Month],
@@ -21668,7 +21567,7 @@ function DayPicker(props) {
21668
21567
  classNames: classNames,
21669
21568
  components: components,
21670
21569
  disabled: Boolean(props.disableNavigation),
21671
- onChange: handleMonthChange(calendarMonth.date),
21570
+ onChange: handleMonthChange,
21672
21571
  options: dropdownMonths,
21673
21572
  style: styles?.[UI.Dropdown],
21674
21573
  value: calendarMonth.date.getMonth()
@@ -21681,7 +21580,7 @@ function DayPicker(props) {
21681
21580
  classNames: classNames,
21682
21581
  components: components,
21683
21582
  disabled: Boolean(props.disableNavigation),
21684
- onChange: handleYearChange(calendarMonth.date),
21583
+ onChange: handleYearChange,
21685
21584
  options: dropdownYears,
21686
21585
  style: styles?.[UI.Dropdown],
21687
21586
  value: calendarMonth.date.getFullYear()
@@ -21728,8 +21627,7 @@ function DayPicker(props) {
21728
21627
  locale
21729
21628
  }),
21730
21629
  className: classNames[UI.WeekNumber],
21731
- scope: "row",
21732
- role: "rowheader"
21630
+ scope: "row"
21733
21631
  }, formatWeekNumber(week.weekNumber))), week.days.map(day => {
21734
21632
  const {
21735
21633
  date
@@ -21749,14 +21647,14 @@ function DayPicker(props) {
21749
21647
  }
21750
21648
  const style = getStyleForModifiers(modifiers, styles, props.modifiersStyles);
21751
21649
  const className = getClassNamesForModifiers(modifiers, classNames, props.modifiersClassNames);
21752
- const ariaLabel = !isInteractive && !modifiers.hidden ? labelGridcell(date, modifiers, dateLib.options, dateLib) : undefined;
21650
+ const ariaLabel = !isInteractive ? labelGridcell(date, modifiers, dateLib.options, dateLib) : undefined;
21753
21651
  return /*#__PURE__*/React__default.createElement(components.Day, {
21754
21652
  key: `${dateLib.format(date, "yyyy-MM-dd")}_${dateLib.format(day.displayMonth, "yyyy-MM")}`,
21755
21653
  day: day,
21756
21654
  modifiers: modifiers,
21757
21655
  className: className.join(" "),
21758
21656
  style: style,
21759
- role: "gridcell",
21657
+ "aria-hidden": modifiers.hidden || undefined,
21760
21658
  "aria-selected": modifiers.selected || undefined,
21761
21659
  "aria-label": ariaLabel,
21762
21660
  "data-day": dateLib.format(date, "yyyy-MM-dd"),
@@ -21767,7 +21665,7 @@ function DayPicker(props) {
21767
21665
  "data-outside": day.outside || undefined,
21768
21666
  "data-focused": modifiers.focused || undefined,
21769
21667
  "data-today": modifiers.today || undefined
21770
- }, !modifiers.hidden && isInteractive ? (/*#__PURE__*/React__default.createElement(components.DayButton, {
21668
+ }, isInteractive ? (/*#__PURE__*/React__default.createElement(components.DayButton, {
21771
21669
  className: classNames[UI.DayButton],
21772
21670
  style: styles?.[UI.DayButton],
21773
21671
  type: "button",
@@ -21782,7 +21680,7 @@ function DayPicker(props) {
21782
21680
  onKeyDown: handleDayKeyDown(day, modifiers),
21783
21681
  onMouseEnter: handleDayMouseEnter(day, modifiers),
21784
21682
  onMouseLeave: handleDayMouseLeave(day, modifiers)
21785
- }, formatDay(date, dateLib.options, dateLib))) : !modifiers.hidden && formatDay(day.date, dateLib.options, dateLib));
21683
+ }, formatDay(date, dateLib.options, dateLib))) : formatDay(day.date, dateLib.options, dateLib));
21786
21684
  }));
21787
21685
  }))));
21788
21686
  })), props.footer && (/*#__PURE__*/React__default.createElement(components.Footer, {
@@ -27281,12 +27179,13 @@ const PieChart = ({
27281
27179
  });
27282
27180
  };
27283
27181
 
27284
- var css_248z$F = ".ff-app-header-main {\n display: flex;\n}\n.ff-app-header-main .ff-app-header {\n display: flex;\n z-index: 1000;\n flex-basis: 100%;\n justify-content: space-between;\n background-color: var(--brand-color);\n padding-left: 8px;\n height: 40px;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-left-container {\n display: flex;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-left-container .ff-app-header-logo-icon {\n padding: 4px;\n height: 24px;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar {\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: var(--brand-color);\n transform: translateY(12px);\n border-radius: 20px;\n padding: 4px;\n padding-bottom: 16px;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items {\n display: flex;\n align-items: center;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item {\n margin-left: 8px;\n padding: 7px;\n color: var(--ff-header-text-color);\n cursor: pointer;\n display: flex;\n position: relative;\n flex: 1 1 auto;\n overflow: hidden;\n transition: flex-grow 1s ease, opacity 1s ease, max-width 1s ease;\n max-width: 150px; /* Initial max-width */\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item:not(.ff-app-header-nav-bar-item--selected):hover::after {\n animation: oscillate-border-width 0.5s ease-in-out forwards;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item::after {\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 25%;\n width: 0%;\n height: 2px;\n background: var(--ff-app-header-menu-border-bottom-color);\n border-radius: 4px;\n transition: width 0.15s ease-in-out;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-nav-bar-item-label {\n white-space: nowrap;\n align-content: center;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item--selected {\n padding: 3px;\n background-color: var(--primary-icon-color);\n border-radius: 20px;\n flex-grow: 12; /* Increase size on hover */\n max-width: 700px;\n opacity: 1;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item--selected .ff-app-header-nav-bar-item-label {\n box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.2509803922) inset;\n background: linear-gradient(90deg, var(--brand-color) 0%, var(--button-background-gradient-color) 100%);\n border-radius: 20px;\n padding: 4px 8px;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item--selected :last-child {\n margin-right: 3px;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item--selected :first-child {\n margin: 0;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container {\n display: flex;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-nav-bar-submenu-item {\n color: var(--ff-header-submenu-text-color);\n align-content: center;\n position: relative;\n white-space: nowrap;\n padding-left: 8px;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-nav-bar-submenu-item:not(.ff-app-header-nav-bar-submenu-item--selected):hover::after {\n animation: oscillate-border-width 0.5s ease-in-out forwards;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-nav-bar-submenu-item::after {\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 25%;\n width: 0%;\n height: 2px;\n border-radius: 4px;\n transition: width 0.15s ease-in-out;\n background: var(--ff-app-header-submenu-border-bottom-color);\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-nav-bar-submenu-item--selected {\n color: var(--ff-header-submenu-highlight-text-color);\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-nav-bar-submenu-item--selected::after {\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 20%;\n width: 70%;\n height: 2px;\n border-radius: 4px;\n box-shadow: 0px 1px 0.2px 0px rgba(0, 0, 0, 0.1607843137);\n background: var(--ff-app-header-submenu-border-bottom-color);\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-quickmenu-container {\n display: flex;\n align-items: center;\n overflow: hidden;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-quickmenu-container .ff-app-header-nav-bar-quickmenu-item {\n margin-right: 8px;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-quickmenu-container .ff-app-header-nav-bar-quickmenu-item:last-child {\n margin: 0px;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-quickmenu-container .ff-app-header-nav-bar-quickmenu-item .ff-tooltip-container {\n display: inline;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-quickmenu-container .ff-app-header-nav-bar-quickmenu-item .ff-tooltip-container .ff-icon-container {\n padding: 2px;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-quickmenu-container .ff-app-header-nav-bar-quickmenu-item--selected {\n background: var(--brand-color);\n border-radius: 5px;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-quickmenu-container .ff-app-header-nav-bar-quickmenu-item--selected :hover {\n background: transparent;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-quickmenu-container .ff-app-header-nav-bar-quickmenu-item--selected svg path {\n fill: var(--primary-button-text-color);\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item--selected .ff-app-header-quickmenu-container {\n animation: quickmenu-expand 1s ease forwards;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item:not(.ff-app-header-nav-bar-item--selected) .ff-app-header-quickmenu-container {\n animation: quickmenu-collapse 1s ease forwards;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .more-menu {\n width: 40px;\n display: flex;\n justify-content: center;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .more-menu .ff-app-header-more-icon svg {\n cursor: pointer;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .more-menu .ff-app-header-more-icon svg path {\n fill: var(--primary-icon-color);\n}\n.ff-app-header-main .ff-app-header .ff-app-header-left-content,\n.ff-app-header-main .ff-app-header .ff-app-header-right-content {\n height: 24px;\n padding: 8px;\n align-content: center;\n}\n\n@keyframes oscillate-border-width {\n 0% {\n width: 50%;\n left: 25%;\n }\n 50% {\n width: 70%;\n left: 15%;\n }\n 100% {\n width: 50%;\n left: 25%;\n }\n}\n@keyframes quickmenu-expand {\n from {\n max-height: 0;\n opacity: 0;\n }\n to {\n max-height: 500px; /* Ensure this value covers the full height of your quick menu */\n opacity: 1;\n }\n}\n@keyframes quickmenu-collapse {\n from {\n max-height: 500px;\n opacity: 1;\n }\n to {\n max-height: 0;\n opacity: 0;\n }\n}";
27182
+ var css_248z$F = ".ff-app-header-main {\n display: flex;\n}\n.ff-app-header-main .ff-app-header {\n display: flex;\n z-index: 1000;\n flex-basis: 100%;\n justify-content: space-between;\n background-color: var(--brand-color);\n padding-left: 8px;\n height: 40px;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-left-container {\n display: flex;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-left-container .ff-app-header-logo-icon {\n padding: 4px;\n height: 24px;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar {\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: var(--brand-color);\n transform: translateY(12px);\n border-radius: 20px;\n padding: 4px;\n padding-bottom: 16px;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items {\n display: flex;\n align-items: center;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item {\n margin-left: 8px;\n padding: 7px;\n color: var(--ff-header-text-color);\n cursor: pointer;\n display: flex;\n position: relative;\n flex: 1 1 auto;\n overflow: hidden;\n transition: flex-grow 1s ease, opacity 1s ease, max-width 1s ease;\n max-width: 150px; /* Initial max-width */\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item:not(.ff-app-header-nav-bar-item--selected):hover::after {\n animation: oscillate-border-width 0.5s ease-in-out forwards;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item::after {\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 25%;\n width: 0%;\n height: 2px;\n background: var(--ff-app-header-menu-border-bottom-color);\n border-radius: 4px;\n transition: width 0.15s ease-in-out;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-nav-bar-item-label {\n white-space: nowrap;\n align-content: center;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item--selected {\n padding: 3px;\n background-color: var(--primary-icon-color);\n border-radius: 20px;\n flex-grow: 12; /* Increase size on hover */\n max-width: 700px;\n opacity: 1;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item--selected .ff-app-header-nav-bar-item-label {\n box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.2509803922) inset;\n background: linear-gradient(90deg, var(--brand-color) 0%, var(--button-background-gradient-color) 100%);\n border-radius: 20px;\n padding: 4px 8px;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item--selected :last-child {\n margin-right: 3px;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item--selected :first-child {\n margin: 0;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container {\n display: flex;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-nav-bar-submenu-item {\n color: var(--ff-header-submenu-text-color);\n align-content: center;\n position: relative;\n white-space: nowrap;\n padding-left: 8px;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-nav-bar-submenu-item:not(.ff-app-header-nav-bar-submenu-item--selected):hover::after {\n animation: oscillate-border-width 0.5s ease-in-out forwards;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-nav-bar-submenu-item::after {\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 25%;\n width: 0%;\n height: 2px;\n border-radius: 4px;\n transition: width 0.15s ease-in-out;\n background: var(--ff-app-header-submenu-border-bottom-color);\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-nav-bar-submenu-item--selected {\n color: var(--ff-header-submenu-highlight-text-color);\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-nav-bar-submenu-item--selected::after {\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 20%;\n width: 70%;\n height: 2px;\n border-radius: 4px;\n box-shadow: 0px 1px 0.2px 0px rgba(0, 0, 0, 0.1607843137);\n background: var(--ff-app-header-submenu-border-bottom-color);\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-quickmenu-container {\n display: flex;\n align-items: center;\n overflow: hidden;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-quickmenu-container .ff-app-header-nav-bar-quickmenu-item {\n margin-right: 8px;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-quickmenu-container .ff-app-header-nav-bar-quickmenu-item:last-child {\n margin: 0px;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-quickmenu-container .ff-app-header-nav-bar-quickmenu-item .ff-tooltip-container {\n display: inline;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-quickmenu-container .ff-app-header-nav-bar-quickmenu-item .ff-tooltip-container .ff-icon-container {\n padding: 2px;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-quickmenu-container .ff-app-header-nav-bar-quickmenu-item--selected {\n background: var(--brand-color);\n border-radius: 5px;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-quickmenu-container .ff-app-header-nav-bar-quickmenu-item--selected :hover {\n background: transparent;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-quickmenu-container .ff-app-header-nav-bar-quickmenu-item--selected svg path {\n fill: var(--primary-button-text-color);\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item--selected .ff-app-header-quickmenu-container {\n animation: quickmenu-expand 1s ease forwards;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item:not(.ff-app-header-nav-bar-item--selected) .ff-app-header-quickmenu-container {\n animation: quickmenu-collapse 1s ease forwards;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .more-menu {\n width: 40px;\n margin-left: 8px;\n display: flex;\n justify-content: center;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .more-menu .ff-app-header-more-icon svg {\n cursor: pointer;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .more-menu .ff-app-header-more-icon svg path {\n fill: var(--primary-icon-color);\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .more-menu .ff-menuicon-container {\n width: 40px !important;\n height: 32px !important;\n border-radius: 16px !important;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-left-content,\n.ff-app-header-main .ff-app-header .ff-app-header-right-content {\n height: 24px;\n padding: 8px;\n align-content: center;\n}\n\n@keyframes oscillate-border-width {\n 0% {\n width: 50%;\n left: 25%;\n }\n 50% {\n width: 70%;\n left: 15%;\n }\n 100% {\n width: 50%;\n left: 25%;\n }\n}\n@keyframes quickmenu-expand {\n from {\n max-height: 0;\n opacity: 0;\n }\n to {\n max-height: 500px; /* Ensure this value covers the full height of your quick menu */\n opacity: 1;\n }\n}\n@keyframes quickmenu-collapse {\n from {\n max-height: 500px;\n opacity: 1;\n }\n to {\n max-height: 0;\n opacity: 0;\n }\n}";
27285
27183
  styleInject(css_248z$F);
27286
27184
 
27287
27185
  const AppHeader = ({
27288
27186
  logoIconName = 'fireflink_icon',
27289
27187
  width,
27188
+ borderRadius,
27290
27189
  leftContent,
27291
27190
  rightContent,
27292
27191
  projectsList,
@@ -27312,6 +27211,10 @@ const AppHeader = ({
27312
27211
  className: "ff-app-header-main",
27313
27212
  children: jsxs("div", {
27314
27213
  className: "ff-app-header",
27214
+ style: {
27215
+ borderStartStartRadius: borderRadius,
27216
+ borderStartEndRadius: borderRadius
27217
+ },
27315
27218
  children: [jsxs("div", {
27316
27219
  className: "ff-app-header-left-container",
27317
27220
  children: [jsx("div", {
@@ -27858,9 +27761,9 @@ const DashboardDonutChart = ({
27858
27761
 
27859
27762
  var propTypes = {exports: {}};
27860
27763
 
27861
- var reactIs = {exports: {}};
27764
+ var reactIs$1 = {exports: {}};
27862
27765
 
27863
- var reactIs_production_min = {};
27766
+ var reactIs_production_min$1 = {};
27864
27767
 
27865
27768
  /** @license React v16.13.1
27866
27769
  * react-is.production.min.js
@@ -27870,10 +27773,10 @@ var reactIs_production_min = {};
27870
27773
  * This source code is licensed under the MIT license found in the
27871
27774
  * LICENSE file in the root directory of this source tree.
27872
27775
  */
27873
- var hasRequiredReactIs_production_min;
27874
- function requireReactIs_production_min() {
27875
- if (hasRequiredReactIs_production_min) return reactIs_production_min;
27876
- hasRequiredReactIs_production_min = 1;
27776
+ var hasRequiredReactIs_production_min$1;
27777
+ function requireReactIs_production_min$1() {
27778
+ if (hasRequiredReactIs_production_min$1) return reactIs_production_min$1;
27779
+ hasRequiredReactIs_production_min$1 = 1;
27877
27780
  var b = "function" === typeof Symbol && Symbol.for,
27878
27781
  c = b ? Symbol.for("react.element") : 60103,
27879
27782
  d = b ? Symbol.for("react.portal") : 60106,
@@ -27926,64 +27829,64 @@ function requireReactIs_production_min() {
27926
27829
  function A(a) {
27927
27830
  return z(a) === m;
27928
27831
  }
27929
- reactIs_production_min.AsyncMode = l;
27930
- reactIs_production_min.ConcurrentMode = m;
27931
- reactIs_production_min.ContextConsumer = k;
27932
- reactIs_production_min.ContextProvider = h;
27933
- reactIs_production_min.Element = c;
27934
- reactIs_production_min.ForwardRef = n;
27935
- reactIs_production_min.Fragment = e;
27936
- reactIs_production_min.Lazy = t;
27937
- reactIs_production_min.Memo = r;
27938
- reactIs_production_min.Portal = d;
27939
- reactIs_production_min.Profiler = g;
27940
- reactIs_production_min.StrictMode = f;
27941
- reactIs_production_min.Suspense = p;
27942
- reactIs_production_min.isAsyncMode = function (a) {
27832
+ reactIs_production_min$1.AsyncMode = l;
27833
+ reactIs_production_min$1.ConcurrentMode = m;
27834
+ reactIs_production_min$1.ContextConsumer = k;
27835
+ reactIs_production_min$1.ContextProvider = h;
27836
+ reactIs_production_min$1.Element = c;
27837
+ reactIs_production_min$1.ForwardRef = n;
27838
+ reactIs_production_min$1.Fragment = e;
27839
+ reactIs_production_min$1.Lazy = t;
27840
+ reactIs_production_min$1.Memo = r;
27841
+ reactIs_production_min$1.Portal = d;
27842
+ reactIs_production_min$1.Profiler = g;
27843
+ reactIs_production_min$1.StrictMode = f;
27844
+ reactIs_production_min$1.Suspense = p;
27845
+ reactIs_production_min$1.isAsyncMode = function (a) {
27943
27846
  return A(a) || z(a) === l;
27944
27847
  };
27945
- reactIs_production_min.isConcurrentMode = A;
27946
- reactIs_production_min.isContextConsumer = function (a) {
27848
+ reactIs_production_min$1.isConcurrentMode = A;
27849
+ reactIs_production_min$1.isContextConsumer = function (a) {
27947
27850
  return z(a) === k;
27948
27851
  };
27949
- reactIs_production_min.isContextProvider = function (a) {
27852
+ reactIs_production_min$1.isContextProvider = function (a) {
27950
27853
  return z(a) === h;
27951
27854
  };
27952
- reactIs_production_min.isElement = function (a) {
27855
+ reactIs_production_min$1.isElement = function (a) {
27953
27856
  return "object" === typeof a && null !== a && a.$$typeof === c;
27954
27857
  };
27955
- reactIs_production_min.isForwardRef = function (a) {
27858
+ reactIs_production_min$1.isForwardRef = function (a) {
27956
27859
  return z(a) === n;
27957
27860
  };
27958
- reactIs_production_min.isFragment = function (a) {
27861
+ reactIs_production_min$1.isFragment = function (a) {
27959
27862
  return z(a) === e;
27960
27863
  };
27961
- reactIs_production_min.isLazy = function (a) {
27864
+ reactIs_production_min$1.isLazy = function (a) {
27962
27865
  return z(a) === t;
27963
27866
  };
27964
- reactIs_production_min.isMemo = function (a) {
27867
+ reactIs_production_min$1.isMemo = function (a) {
27965
27868
  return z(a) === r;
27966
27869
  };
27967
- reactIs_production_min.isPortal = function (a) {
27870
+ reactIs_production_min$1.isPortal = function (a) {
27968
27871
  return z(a) === d;
27969
27872
  };
27970
- reactIs_production_min.isProfiler = function (a) {
27873
+ reactIs_production_min$1.isProfiler = function (a) {
27971
27874
  return z(a) === g;
27972
27875
  };
27973
- reactIs_production_min.isStrictMode = function (a) {
27876
+ reactIs_production_min$1.isStrictMode = function (a) {
27974
27877
  return z(a) === f;
27975
27878
  };
27976
- reactIs_production_min.isSuspense = function (a) {
27879
+ reactIs_production_min$1.isSuspense = function (a) {
27977
27880
  return z(a) === p;
27978
27881
  };
27979
- reactIs_production_min.isValidElementType = function (a) {
27882
+ reactIs_production_min$1.isValidElementType = function (a) {
27980
27883
  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);
27981
27884
  };
27982
- reactIs_production_min.typeOf = z;
27983
- return reactIs_production_min;
27885
+ reactIs_production_min$1.typeOf = z;
27886
+ return reactIs_production_min$1;
27984
27887
  }
27985
27888
 
27986
- var reactIs_development = {};
27889
+ var reactIs_development$1 = {};
27987
27890
 
27988
27891
  /** @license React v16.13.1
27989
27892
  * react-is.development.js
@@ -27993,10 +27896,10 @@ var reactIs_development = {};
27993
27896
  * This source code is licensed under the MIT license found in the
27994
27897
  * LICENSE file in the root directory of this source tree.
27995
27898
  */
27996
- var hasRequiredReactIs_development;
27997
- function requireReactIs_development() {
27998
- if (hasRequiredReactIs_development) return reactIs_development;
27999
- hasRequiredReactIs_development = 1;
27899
+ var hasRequiredReactIs_development$1;
27900
+ function requireReactIs_development$1() {
27901
+ if (hasRequiredReactIs_development$1) return reactIs_development$1;
27902
+ hasRequiredReactIs_development$1 = 1;
28000
27903
  if (process.env.NODE_ENV !== "production") {
28001
27904
  (function () {
28002
27905
 
@@ -28123,49 +28026,49 @@ function requireReactIs_development() {
28123
28026
  function isSuspense(object) {
28124
28027
  return typeOf(object) === REACT_SUSPENSE_TYPE;
28125
28028
  }
28126
- reactIs_development.AsyncMode = AsyncMode;
28127
- reactIs_development.ConcurrentMode = ConcurrentMode;
28128
- reactIs_development.ContextConsumer = ContextConsumer;
28129
- reactIs_development.ContextProvider = ContextProvider;
28130
- reactIs_development.Element = Element;
28131
- reactIs_development.ForwardRef = ForwardRef;
28132
- reactIs_development.Fragment = Fragment;
28133
- reactIs_development.Lazy = Lazy;
28134
- reactIs_development.Memo = Memo;
28135
- reactIs_development.Portal = Portal;
28136
- reactIs_development.Profiler = Profiler;
28137
- reactIs_development.StrictMode = StrictMode;
28138
- reactIs_development.Suspense = Suspense;
28139
- reactIs_development.isAsyncMode = isAsyncMode;
28140
- reactIs_development.isConcurrentMode = isConcurrentMode;
28141
- reactIs_development.isContextConsumer = isContextConsumer;
28142
- reactIs_development.isContextProvider = isContextProvider;
28143
- reactIs_development.isElement = isElement;
28144
- reactIs_development.isForwardRef = isForwardRef;
28145
- reactIs_development.isFragment = isFragment;
28146
- reactIs_development.isLazy = isLazy;
28147
- reactIs_development.isMemo = isMemo;
28148
- reactIs_development.isPortal = isPortal;
28149
- reactIs_development.isProfiler = isProfiler;
28150
- reactIs_development.isStrictMode = isStrictMode;
28151
- reactIs_development.isSuspense = isSuspense;
28152
- reactIs_development.isValidElementType = isValidElementType;
28153
- reactIs_development.typeOf = typeOf;
28029
+ reactIs_development$1.AsyncMode = AsyncMode;
28030
+ reactIs_development$1.ConcurrentMode = ConcurrentMode;
28031
+ reactIs_development$1.ContextConsumer = ContextConsumer;
28032
+ reactIs_development$1.ContextProvider = ContextProvider;
28033
+ reactIs_development$1.Element = Element;
28034
+ reactIs_development$1.ForwardRef = ForwardRef;
28035
+ reactIs_development$1.Fragment = Fragment;
28036
+ reactIs_development$1.Lazy = Lazy;
28037
+ reactIs_development$1.Memo = Memo;
28038
+ reactIs_development$1.Portal = Portal;
28039
+ reactIs_development$1.Profiler = Profiler;
28040
+ reactIs_development$1.StrictMode = StrictMode;
28041
+ reactIs_development$1.Suspense = Suspense;
28042
+ reactIs_development$1.isAsyncMode = isAsyncMode;
28043
+ reactIs_development$1.isConcurrentMode = isConcurrentMode;
28044
+ reactIs_development$1.isContextConsumer = isContextConsumer;
28045
+ reactIs_development$1.isContextProvider = isContextProvider;
28046
+ reactIs_development$1.isElement = isElement;
28047
+ reactIs_development$1.isForwardRef = isForwardRef;
28048
+ reactIs_development$1.isFragment = isFragment;
28049
+ reactIs_development$1.isLazy = isLazy;
28050
+ reactIs_development$1.isMemo = isMemo;
28051
+ reactIs_development$1.isPortal = isPortal;
28052
+ reactIs_development$1.isProfiler = isProfiler;
28053
+ reactIs_development$1.isStrictMode = isStrictMode;
28054
+ reactIs_development$1.isSuspense = isSuspense;
28055
+ reactIs_development$1.isValidElementType = isValidElementType;
28056
+ reactIs_development$1.typeOf = typeOf;
28154
28057
  })();
28155
28058
  }
28156
- return reactIs_development;
28059
+ return reactIs_development$1;
28157
28060
  }
28158
28061
 
28159
- var hasRequiredReactIs;
28160
- function requireReactIs() {
28161
- if (hasRequiredReactIs) return reactIs.exports;
28162
- hasRequiredReactIs = 1;
28062
+ var hasRequiredReactIs$1;
28063
+ function requireReactIs$1() {
28064
+ if (hasRequiredReactIs$1) return reactIs$1.exports;
28065
+ hasRequiredReactIs$1 = 1;
28163
28066
  if (process.env.NODE_ENV === 'production') {
28164
- reactIs.exports = requireReactIs_production_min();
28067
+ reactIs$1.exports = requireReactIs_production_min$1();
28165
28068
  } else {
28166
- reactIs.exports = requireReactIs_development();
28069
+ reactIs$1.exports = requireReactIs_development$1();
28167
28070
  }
28168
- return reactIs.exports;
28071
+ return reactIs$1.exports;
28169
28072
  }
28170
28073
 
28171
28074
  /*
@@ -28380,7 +28283,7 @@ var hasRequiredFactoryWithTypeCheckers;
28380
28283
  function requireFactoryWithTypeCheckers() {
28381
28284
  if (hasRequiredFactoryWithTypeCheckers) return factoryWithTypeCheckers;
28382
28285
  hasRequiredFactoryWithTypeCheckers = 1;
28383
- var ReactIs = requireReactIs();
28286
+ var ReactIs = requireReactIs$1();
28384
28287
  var assign = requireObjectAssign();
28385
28288
  var ReactPropTypesSecret = /*@__PURE__*/requireReactPropTypesSecret();
28386
28289
  var has = /*@__PURE__*/requireHas();
@@ -28993,7 +28896,7 @@ function requirePropTypes() {
28993
28896
  if (hasRequiredPropTypes) return propTypes.exports;
28994
28897
  hasRequiredPropTypes = 1;
28995
28898
  if (process.env.NODE_ENV !== 'production') {
28996
- var ReactIs = requireReactIs();
28899
+ var ReactIs = requireReactIs$1();
28997
28900
 
28998
28901
  // By explicitly using `prop-types` you are opting into new development behavior.
28999
28902
  // http://fb.me/prop-types-in-prod
@@ -29228,6 +29131,316 @@ ReCAPTCHA.defaultProps = {
29228
29131
  badge: "bottomright"
29229
29132
  };
29230
29133
 
29134
+ var reactIs = {exports: {}};
29135
+
29136
+ var reactIs_production_min = {};
29137
+
29138
+ /** @license React v16.13.1
29139
+ * react-is.production.min.js
29140
+ *
29141
+ * Copyright (c) Facebook, Inc. and its affiliates.
29142
+ *
29143
+ * This source code is licensed under the MIT license found in the
29144
+ * LICENSE file in the root directory of this source tree.
29145
+ */
29146
+ var hasRequiredReactIs_production_min;
29147
+ function requireReactIs_production_min() {
29148
+ if (hasRequiredReactIs_production_min) return reactIs_production_min;
29149
+ hasRequiredReactIs_production_min = 1;
29150
+ var b = "function" === typeof Symbol && Symbol.for,
29151
+ c = b ? Symbol.for("react.element") : 60103,
29152
+ d = b ? Symbol.for("react.portal") : 60106,
29153
+ e = b ? Symbol.for("react.fragment") : 60107,
29154
+ f = b ? Symbol.for("react.strict_mode") : 60108,
29155
+ g = b ? Symbol.for("react.profiler") : 60114,
29156
+ h = b ? Symbol.for("react.provider") : 60109,
29157
+ k = b ? Symbol.for("react.context") : 60110,
29158
+ l = b ? Symbol.for("react.async_mode") : 60111,
29159
+ m = b ? Symbol.for("react.concurrent_mode") : 60111,
29160
+ n = b ? Symbol.for("react.forward_ref") : 60112,
29161
+ p = b ? Symbol.for("react.suspense") : 60113,
29162
+ q = b ? Symbol.for("react.suspense_list") : 60120,
29163
+ r = b ? Symbol.for("react.memo") : 60115,
29164
+ t = b ? Symbol.for("react.lazy") : 60116,
29165
+ v = b ? Symbol.for("react.block") : 60121,
29166
+ w = b ? Symbol.for("react.fundamental") : 60117,
29167
+ x = b ? Symbol.for("react.responder") : 60118,
29168
+ y = b ? Symbol.for("react.scope") : 60119;
29169
+ function z(a) {
29170
+ if ("object" === typeof a && null !== a) {
29171
+ var u = a.$$typeof;
29172
+ switch (u) {
29173
+ case c:
29174
+ switch (a = a.type, a) {
29175
+ case l:
29176
+ case m:
29177
+ case e:
29178
+ case g:
29179
+ case f:
29180
+ case p:
29181
+ return a;
29182
+ default:
29183
+ switch (a = a && a.$$typeof, a) {
29184
+ case k:
29185
+ case n:
29186
+ case t:
29187
+ case r:
29188
+ case h:
29189
+ return a;
29190
+ default:
29191
+ return u;
29192
+ }
29193
+ }
29194
+ case d:
29195
+ return u;
29196
+ }
29197
+ }
29198
+ }
29199
+ function A(a) {
29200
+ return z(a) === m;
29201
+ }
29202
+ reactIs_production_min.AsyncMode = l;
29203
+ reactIs_production_min.ConcurrentMode = m;
29204
+ reactIs_production_min.ContextConsumer = k;
29205
+ reactIs_production_min.ContextProvider = h;
29206
+ reactIs_production_min.Element = c;
29207
+ reactIs_production_min.ForwardRef = n;
29208
+ reactIs_production_min.Fragment = e;
29209
+ reactIs_production_min.Lazy = t;
29210
+ reactIs_production_min.Memo = r;
29211
+ reactIs_production_min.Portal = d;
29212
+ reactIs_production_min.Profiler = g;
29213
+ reactIs_production_min.StrictMode = f;
29214
+ reactIs_production_min.Suspense = p;
29215
+ reactIs_production_min.isAsyncMode = function (a) {
29216
+ return A(a) || z(a) === l;
29217
+ };
29218
+ reactIs_production_min.isConcurrentMode = A;
29219
+ reactIs_production_min.isContextConsumer = function (a) {
29220
+ return z(a) === k;
29221
+ };
29222
+ reactIs_production_min.isContextProvider = function (a) {
29223
+ return z(a) === h;
29224
+ };
29225
+ reactIs_production_min.isElement = function (a) {
29226
+ return "object" === typeof a && null !== a && a.$$typeof === c;
29227
+ };
29228
+ reactIs_production_min.isForwardRef = function (a) {
29229
+ return z(a) === n;
29230
+ };
29231
+ reactIs_production_min.isFragment = function (a) {
29232
+ return z(a) === e;
29233
+ };
29234
+ reactIs_production_min.isLazy = function (a) {
29235
+ return z(a) === t;
29236
+ };
29237
+ reactIs_production_min.isMemo = function (a) {
29238
+ return z(a) === r;
29239
+ };
29240
+ reactIs_production_min.isPortal = function (a) {
29241
+ return z(a) === d;
29242
+ };
29243
+ reactIs_production_min.isProfiler = function (a) {
29244
+ return z(a) === g;
29245
+ };
29246
+ reactIs_production_min.isStrictMode = function (a) {
29247
+ return z(a) === f;
29248
+ };
29249
+ reactIs_production_min.isSuspense = function (a) {
29250
+ return z(a) === p;
29251
+ };
29252
+ reactIs_production_min.isValidElementType = function (a) {
29253
+ 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);
29254
+ };
29255
+ reactIs_production_min.typeOf = z;
29256
+ return reactIs_production_min;
29257
+ }
29258
+
29259
+ var reactIs_development = {};
29260
+
29261
+ /** @license React v16.13.1
29262
+ * react-is.development.js
29263
+ *
29264
+ * Copyright (c) Facebook, Inc. and its affiliates.
29265
+ *
29266
+ * This source code is licensed under the MIT license found in the
29267
+ * LICENSE file in the root directory of this source tree.
29268
+ */
29269
+ var hasRequiredReactIs_development;
29270
+ function requireReactIs_development() {
29271
+ if (hasRequiredReactIs_development) return reactIs_development;
29272
+ hasRequiredReactIs_development = 1;
29273
+ if (process.env.NODE_ENV !== "production") {
29274
+ (function () {
29275
+
29276
+ // The Symbol used to tag the ReactElement-like types. If there is no native Symbol
29277
+ // nor polyfill, then a plain number is used for performance.
29278
+ var hasSymbol = typeof Symbol === 'function' && Symbol.for;
29279
+ var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
29280
+ var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
29281
+ var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
29282
+ var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
29283
+ var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
29284
+ var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
29285
+ var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary
29286
+ // (unstable) APIs that have been removed. Can we remove the symbols?
29287
+
29288
+ var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;
29289
+ var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
29290
+ var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
29291
+ var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
29292
+ var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;
29293
+ var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
29294
+ var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;
29295
+ var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;
29296
+ var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;
29297
+ var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;
29298
+ var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;
29299
+ function isValidElementType(type) {
29300
+ return typeof type === 'string' || typeof type === 'function' ||
29301
+ // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
29302
+ 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);
29303
+ }
29304
+ function typeOf(object) {
29305
+ if (typeof object === 'object' && object !== null) {
29306
+ var $$typeof = object.$$typeof;
29307
+ switch ($$typeof) {
29308
+ case REACT_ELEMENT_TYPE:
29309
+ var type = object.type;
29310
+ switch (type) {
29311
+ case REACT_ASYNC_MODE_TYPE:
29312
+ case REACT_CONCURRENT_MODE_TYPE:
29313
+ case REACT_FRAGMENT_TYPE:
29314
+ case REACT_PROFILER_TYPE:
29315
+ case REACT_STRICT_MODE_TYPE:
29316
+ case REACT_SUSPENSE_TYPE:
29317
+ return type;
29318
+ default:
29319
+ var $$typeofType = type && type.$$typeof;
29320
+ switch ($$typeofType) {
29321
+ case REACT_CONTEXT_TYPE:
29322
+ case REACT_FORWARD_REF_TYPE:
29323
+ case REACT_LAZY_TYPE:
29324
+ case REACT_MEMO_TYPE:
29325
+ case REACT_PROVIDER_TYPE:
29326
+ return $$typeofType;
29327
+ default:
29328
+ return $$typeof;
29329
+ }
29330
+ }
29331
+ case REACT_PORTAL_TYPE:
29332
+ return $$typeof;
29333
+ }
29334
+ }
29335
+ return undefined;
29336
+ } // AsyncMode is deprecated along with isAsyncMode
29337
+
29338
+ var AsyncMode = REACT_ASYNC_MODE_TYPE;
29339
+ var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
29340
+ var ContextConsumer = REACT_CONTEXT_TYPE;
29341
+ var ContextProvider = REACT_PROVIDER_TYPE;
29342
+ var Element = REACT_ELEMENT_TYPE;
29343
+ var ForwardRef = REACT_FORWARD_REF_TYPE;
29344
+ var Fragment = REACT_FRAGMENT_TYPE;
29345
+ var Lazy = REACT_LAZY_TYPE;
29346
+ var Memo = REACT_MEMO_TYPE;
29347
+ var Portal = REACT_PORTAL_TYPE;
29348
+ var Profiler = REACT_PROFILER_TYPE;
29349
+ var StrictMode = REACT_STRICT_MODE_TYPE;
29350
+ var Suspense = REACT_SUSPENSE_TYPE;
29351
+ var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated
29352
+
29353
+ function isAsyncMode(object) {
29354
+ {
29355
+ if (!hasWarnedAboutDeprecatedIsAsyncMode) {
29356
+ hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint
29357
+
29358
+ 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.');
29359
+ }
29360
+ }
29361
+ return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
29362
+ }
29363
+ function isConcurrentMode(object) {
29364
+ return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
29365
+ }
29366
+ function isContextConsumer(object) {
29367
+ return typeOf(object) === REACT_CONTEXT_TYPE;
29368
+ }
29369
+ function isContextProvider(object) {
29370
+ return typeOf(object) === REACT_PROVIDER_TYPE;
29371
+ }
29372
+ function isElement(object) {
29373
+ return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
29374
+ }
29375
+ function isForwardRef(object) {
29376
+ return typeOf(object) === REACT_FORWARD_REF_TYPE;
29377
+ }
29378
+ function isFragment(object) {
29379
+ return typeOf(object) === REACT_FRAGMENT_TYPE;
29380
+ }
29381
+ function isLazy(object) {
29382
+ return typeOf(object) === REACT_LAZY_TYPE;
29383
+ }
29384
+ function isMemo(object) {
29385
+ return typeOf(object) === REACT_MEMO_TYPE;
29386
+ }
29387
+ function isPortal(object) {
29388
+ return typeOf(object) === REACT_PORTAL_TYPE;
29389
+ }
29390
+ function isProfiler(object) {
29391
+ return typeOf(object) === REACT_PROFILER_TYPE;
29392
+ }
29393
+ function isStrictMode(object) {
29394
+ return typeOf(object) === REACT_STRICT_MODE_TYPE;
29395
+ }
29396
+ function isSuspense(object) {
29397
+ return typeOf(object) === REACT_SUSPENSE_TYPE;
29398
+ }
29399
+ reactIs_development.AsyncMode = AsyncMode;
29400
+ reactIs_development.ConcurrentMode = ConcurrentMode;
29401
+ reactIs_development.ContextConsumer = ContextConsumer;
29402
+ reactIs_development.ContextProvider = ContextProvider;
29403
+ reactIs_development.Element = Element;
29404
+ reactIs_development.ForwardRef = ForwardRef;
29405
+ reactIs_development.Fragment = Fragment;
29406
+ reactIs_development.Lazy = Lazy;
29407
+ reactIs_development.Memo = Memo;
29408
+ reactIs_development.Portal = Portal;
29409
+ reactIs_development.Profiler = Profiler;
29410
+ reactIs_development.StrictMode = StrictMode;
29411
+ reactIs_development.Suspense = Suspense;
29412
+ reactIs_development.isAsyncMode = isAsyncMode;
29413
+ reactIs_development.isConcurrentMode = isConcurrentMode;
29414
+ reactIs_development.isContextConsumer = isContextConsumer;
29415
+ reactIs_development.isContextProvider = isContextProvider;
29416
+ reactIs_development.isElement = isElement;
29417
+ reactIs_development.isForwardRef = isForwardRef;
29418
+ reactIs_development.isFragment = isFragment;
29419
+ reactIs_development.isLazy = isLazy;
29420
+ reactIs_development.isMemo = isMemo;
29421
+ reactIs_development.isPortal = isPortal;
29422
+ reactIs_development.isProfiler = isProfiler;
29423
+ reactIs_development.isStrictMode = isStrictMode;
29424
+ reactIs_development.isSuspense = isSuspense;
29425
+ reactIs_development.isValidElementType = isValidElementType;
29426
+ reactIs_development.typeOf = typeOf;
29427
+ })();
29428
+ }
29429
+ return reactIs_development;
29430
+ }
29431
+
29432
+ var hasRequiredReactIs;
29433
+ function requireReactIs() {
29434
+ if (hasRequiredReactIs) return reactIs.exports;
29435
+ hasRequiredReactIs = 1;
29436
+ if (process.env.NODE_ENV === 'production') {
29437
+ reactIs.exports = requireReactIs_production_min();
29438
+ } else {
29439
+ reactIs.exports = requireReactIs_development();
29440
+ }
29441
+ return reactIs.exports;
29442
+ }
29443
+
29231
29444
  var hoistNonReactStatics_cjs;
29232
29445
  var hasRequiredHoistNonReactStatics_cjs;
29233
29446
  function requireHoistNonReactStatics_cjs() {
@@ -30391,7 +30604,8 @@ const Branches = ({
30391
30604
  readOnly
30392
30605
  }) => {
30393
30606
  const evenRow = rowIndex % 2 === 0;
30394
- const lastMachineInstance = checkEmpty(machineInstances[machineColumnCount - 1]);
30607
+ const getLastIndex = readOnly ? 0 : 1;
30608
+ const lastMachineInstance = checkEmpty(machineInstances[machineColumnCount - getLastIndex]);
30395
30609
  const getBorderStyle = (currentBranch, nextBranch) => {
30396
30610
  if (currentBranch && nextBranch && 'machineInstanceId' in currentBranch && 'machineInstanceId' in nextBranch) {
30397
30611
  return currentBranch.machineInstanceId === nextBranch.machineInstanceId ? 'dashed' : 'solid';
@@ -30548,16 +30762,18 @@ const Branches = ({
30548
30762
  color: "var(--ff-connecting-branch-color)",
30549
30763
  children: "Dataset List"
30550
30764
  })]
30551
- }), jsx(Icon, {
30552
- name: "plus_icon",
30553
- className: "ff-connecting-icon",
30554
- onClick: () => onAddRunBrowser(machineInstanceId),
30555
- color: "var(--ff-connecting-branch-color)",
30556
- hoverEffect: true
30557
- }), jsx(Typography, {
30558
- className: "ff-connecting-text",
30559
- color: "var(--ff-connecting-branch-color)",
30560
- children: "Run"
30765
+ }), !readOnly && jsxs(Fragment, {
30766
+ children: [jsx(Icon, {
30767
+ name: "plus_icon",
30768
+ className: "ff-connecting-icon",
30769
+ onClick: () => onAddRunBrowser(machineInstanceId),
30770
+ color: "var(--ff-connecting-branch-color)",
30771
+ hoverEffect: true
30772
+ }), jsx(Typography, {
30773
+ className: "ff-connecting-text",
30774
+ color: "var(--ff-connecting-branch-color)",
30775
+ children: "Run"
30776
+ })]
30561
30777
  })]
30562
30778
  }), !readOnly && jsx(Icon, {
30563
30779
  name: "delete",
@@ -51599,28 +51815,31 @@ const MachineInstances = ({
51599
51815
  datasetHeight,
51600
51816
  curveHeights,
51601
51817
  itemRefs,
51602
- datasetRef
51818
+ datasetRef,
51819
+ isReadOnlyMode
51603
51820
  }) => {
51604
51821
  return jsx(Fragment, {
51605
- children: parentNodeData?.machineInstances?.length === 0 ? jsxs(Fragment, {
51606
- children: [jsx("div", {
51607
- className: "ff-selectedMachines-connecting-line",
51608
- children: jsxs("div", {
51609
- className: "ff-line",
51610
- children: [jsx("div", {
51611
- className: "ff-left-icon"
51612
- }), jsx("div", {
51613
- className: "ff-right-icon"
51614
- })]
51615
- })
51616
- }), jsx("div", {
51617
- className: "ff-machine-instance ff-machine-env-button",
51618
- children: getChildNodeComponent({
51619
- isButton: true,
51620
- parentNodeData,
51621
- parentNodeIndex
51622
- })
51623
- })]
51822
+ children: parentNodeData?.machineInstances?.length === 0 ? jsx(Fragment, {
51823
+ children: !isReadOnlyMode && jsxs(Fragment, {
51824
+ children: [jsx("div", {
51825
+ className: "ff-selectedMachines-connecting-line",
51826
+ children: jsxs("div", {
51827
+ className: "ff-line",
51828
+ children: [jsx("div", {
51829
+ className: "ff-left-icon"
51830
+ }), jsx("div", {
51831
+ className: "ff-right-icon"
51832
+ })]
51833
+ })
51834
+ }), jsx("div", {
51835
+ className: "ff-machine-instance ff-machine-env-button",
51836
+ children: getChildNodeComponent({
51837
+ isButton: true,
51838
+ parentNodeData,
51839
+ parentNodeIndex
51840
+ })
51841
+ })]
51842
+ })
51624
51843
  }) : parentNodeData?.machineInstances?.map((childNodeData, childNodeIndex) => {
51625
51844
  const isFirstLine = childNodeIndex === 0;
51626
51845
  return jsxs("div", {
@@ -51683,26 +51902,28 @@ const MachineInstances = ({
51683
51902
  })]
51684
51903
  }, ffid())
51685
51904
  }, runLevelExecutionDataSet?.runLevelExecutionDataSetId + ffid()))
51686
- }), childNodeIndex === parentNodeData.machineInstances.length - 1 && jsxs(Fragment, {
51687
- children: [jsx("div", {
51688
- className: "ff-selectedMachines-connecting-line ff-second-line",
51689
- children: jsxs("div", {
51690
- className: "ff-line",
51691
- children: [jsx("div", {
51692
- className: "ff-left-icon"
51693
- }), jsx("div", {
51694
- className: "ff-right-icon"
51695
- })]
51696
- })
51697
- }), jsx("div", {
51698
- className: "ff-machine-instance ff-machine-env-button",
51699
- children: getChildNodeComponent({
51700
- isButton: true,
51701
- parentNodeData,
51702
- parentNodeIndex,
51703
- childNodeIndex: childNodeIndex + 1
51704
- })
51705
- })]
51905
+ }), childNodeIndex === parentNodeData.machineInstances.length - 1 && jsx(Fragment, {
51906
+ children: !isReadOnlyMode && jsxs(Fragment, {
51907
+ children: [jsx("div", {
51908
+ className: "ff-selectedMachines-connecting-line ff-second-line",
51909
+ children: jsxs("div", {
51910
+ className: "ff-line",
51911
+ children: [jsx("div", {
51912
+ className: "ff-left-icon"
51913
+ }), jsx("div", {
51914
+ className: "ff-right-icon"
51915
+ })]
51916
+ })
51917
+ }), jsx("div", {
51918
+ className: "ff-machine-instance ff-machine-env-button",
51919
+ children: getChildNodeComponent({
51920
+ isButton: true,
51921
+ parentNodeData,
51922
+ parentNodeIndex,
51923
+ childNodeIndex: childNodeIndex + 1
51924
+ })
51925
+ })]
51926
+ })
51706
51927
  })]
51707
51928
  }, ffid());
51708
51929
  })
@@ -51714,17 +51935,19 @@ const ConnectingBranch = ({
51714
51935
  getChildNodeComponent,
51715
51936
  getParentNodeComponent,
51716
51937
  getParentNodeComponentActionItems,
51717
- childNodeCurveHeight = 1.28
51938
+ childNodeCurveHeight = 1.28,
51939
+ isReadOnlyMode = false
51718
51940
  }) => {
51719
51941
  const datasetRef = useRef(null);
51720
51942
  const [datasetHeight, setDatasetHeight] = useState(0);
51721
51943
  const [curveHeights, setCurveHeights] = useState([]);
51722
51944
  const itemRefs = useRef([]);
51723
51945
  const calculateVerticalLineHeight = (machineInstances, datasetHeight, gap) => {
51724
- const totalDataSets = machineInstances.reduce((acc, instance) => {
51725
- return acc + (instance.runLevelExecutionDataSets?.length || 0);
51726
- }, 0);
51727
- return totalDataSets * datasetHeight + totalDataSets * gap;
51946
+ if (machineInstances.length === 1 && isReadOnlyMode) {
51947
+ return 0;
51948
+ }
51949
+ const totalDataSets = machineInstances.reduce((acc, instance, index) => acc + (index !== machineInstances.length - 1 || !isReadOnlyMode ? instance.runLevelExecutionDataSets?.length || 0 : 0), 0);
51950
+ return totalDataSets * (datasetHeight + gap);
51728
51951
  };
51729
51952
  useEffect(() => {
51730
51953
  if (datasetRef.current) {
@@ -51828,11 +52051,12 @@ const ConnectingBranch = ({
51828
52051
  curveHeights: curveHeights,
51829
52052
  itemRefs: itemRefs,
51830
52053
  datasetRef: datasetRef,
51831
- getChildNodeComponent: getChildNodeComponent
52054
+ getChildNodeComponent: getChildNodeComponent,
52055
+ isReadOnlyMode: isReadOnlyMode
51832
52056
  })]
51833
52057
  })]
51834
52058
  }, ffid());
51835
- }), jsx("div", {
52059
+ }), !isReadOnlyMode && jsx("div", {
51836
52060
  className: "ff-select-machine-input",
51837
52061
  style: {
51838
52062
  gridRow: `${currentRow}`