nntc-ui 0.2.6 → 0.2.8

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 (684) hide show
  1. package/components/data-display/Chip/Chip.d.ts +18 -0
  2. package/components/data-display/Chip/Chip.d.ts.map +1 -0
  3. package/{src/components/view/Chip/index.ts → components/data-display/Chip/index.d.ts} +1 -0
  4. package/components/data-display/Chip/index.d.ts.map +1 -0
  5. package/components/data-display/Pairs/Pairs.d.ts +14 -0
  6. package/components/data-display/Pairs/Pairs.d.ts.map +1 -0
  7. package/{src/components/view/Pairs/index.ts → components/data-display/Pairs/index.d.ts} +1 -0
  8. package/components/data-display/Pairs/index.d.ts.map +1 -0
  9. package/components/data-display/Pairs/models/Pair.d.ts +5 -0
  10. package/components/data-display/Pairs/models/Pair.d.ts.map +1 -0
  11. package/components/data-display/Pairs/ui/TypographyWithTooltip.d.ts +6 -0
  12. package/components/data-display/Pairs/ui/TypographyWithTooltip.d.ts.map +1 -0
  13. package/components/data-display/Tooltip/Tooltip.d.ts +16 -0
  14. package/components/data-display/Tooltip/Tooltip.d.ts.map +1 -0
  15. package/{src/components/view/Tooltip/index.ts → components/data-display/Tooltip/index.d.ts} +1 -0
  16. package/components/data-display/Tooltip/index.d.ts.map +1 -0
  17. package/components/data-display/Tooltip/ui/TooltipContent/TooltipContent.d.ts +9 -0
  18. package/components/data-display/Tooltip/ui/TooltipContent/TooltipContent.d.ts.map +1 -0
  19. package/{src/components/view/Tooltip/ui/TooltipContent/index.ts → components/data-display/Tooltip/ui/TooltipContent/index.d.ts} +1 -0
  20. package/components/data-display/Tooltip/ui/TooltipContent/index.d.ts.map +1 -0
  21. package/components/data-display/Tooltip/ui/TooltipProvider/TooltipProvider.d.ts +4 -0
  22. package/components/data-display/Tooltip/ui/TooltipProvider/TooltipProvider.d.ts.map +1 -0
  23. package/components/data-display/Tooltip/ui/TooltipProvider/constants/TooltipContext.d.ts +3 -0
  24. package/components/data-display/Tooltip/ui/TooltipProvider/constants/TooltipContext.d.ts.map +1 -0
  25. package/components/data-display/Tooltip/ui/TooltipProvider/hooks/useTooltip.d.ts +51 -0
  26. package/components/data-display/Tooltip/ui/TooltipProvider/hooks/useTooltip.d.ts.map +1 -0
  27. package/{src/components/view/Tooltip/ui/TooltipProvider/index.ts → components/data-display/Tooltip/ui/TooltipProvider/index.d.ts} +1 -0
  28. package/components/data-display/Tooltip/ui/TooltipProvider/index.d.ts.map +1 -0
  29. package/components/data-display/Tooltip/ui/TooltipProvider/models/TooltipOptions.d.ts +12 -0
  30. package/components/data-display/Tooltip/ui/TooltipProvider/models/TooltipOptions.d.ts.map +1 -0
  31. package/{src/components/view/Tooltip/ui/TooltipProvider/models/TooltipState.ts → components/data-display/Tooltip/ui/TooltipProvider/models/TooltipState.d.ts} +1 -1
  32. package/components/data-display/Tooltip/ui/TooltipProvider/models/TooltipState.d.ts.map +1 -0
  33. package/components/data-display/Tooltip/ui/TooltipTrigger/TooltipTrigger.d.ts +5 -0
  34. package/components/data-display/Tooltip/ui/TooltipTrigger/TooltipTrigger.d.ts.map +1 -0
  35. package/{src/components/view/Tooltip/ui/TooltipTrigger/index.ts → components/data-display/Tooltip/ui/TooltipTrigger/index.d.ts} +1 -0
  36. package/components/data-display/Tooltip/ui/TooltipTrigger/index.d.ts.map +1 -0
  37. package/components/data-display/TreeView/TreeView.d.ts +12 -0
  38. package/components/data-display/TreeView/TreeView.d.ts.map +1 -0
  39. package/{src/components/view/TreeView/index.ts → components/data-display/TreeView/index.d.ts} +1 -0
  40. package/components/data-display/TreeView/index.d.ts.map +1 -0
  41. package/components/data-display/TreeView/models/Item.d.ts +8 -0
  42. package/components/data-display/TreeView/models/Item.d.ts.map +1 -0
  43. package/components/data-display/TreeView/ui/TreeViewItem/TreeViewItem.d.ts +16 -0
  44. package/components/data-display/TreeView/ui/TreeViewItem/TreeViewItem.d.ts.map +1 -0
  45. package/{src/components/view/TreeView/ui/TreeViewItem/index.ts → components/data-display/TreeView/ui/TreeViewItem/index.d.ts} +1 -0
  46. package/components/data-display/TreeView/ui/TreeViewItem/index.d.ts.map +1 -0
  47. package/components/data-display/TreeView/utils/getFilteredTree.d.ts +3 -0
  48. package/components/data-display/TreeView/utils/getFilteredTree.d.ts.map +1 -0
  49. package/components/data-display/Typography/Typography.d.ts +9 -0
  50. package/components/data-display/Typography/Typography.d.ts.map +1 -0
  51. package/{src/components/view/Typography/index.ts → components/data-display/Typography/index.d.ts} +1 -0
  52. package/components/data-display/Typography/index.d.ts.map +1 -0
  53. package/components/data-display/VirtualTable/VirtualTable.d.ts +78 -0
  54. package/components/data-display/VirtualTable/VirtualTable.d.ts.map +1 -0
  55. package/components/data-display/VirtualTable/constants/defaultRowHeight.d.ts +2 -0
  56. package/components/data-display/VirtualTable/constants/defaultRowHeight.d.ts.map +1 -0
  57. package/{src/components/view/VirtualTable/index.ts → components/data-display/VirtualTable/index.d.ts} +1 -2
  58. package/components/data-display/VirtualTable/index.d.ts.map +1 -0
  59. package/components/data-display/VirtualTable/models/AdditionalButton.d.ts +9 -0
  60. package/components/data-display/VirtualTable/models/AdditionalButton.d.ts.map +1 -0
  61. package/{src/components/view/VirtualTable/models/ColumnAlign.ts → components/data-display/VirtualTable/models/ColumnAlign.d.ts} +1 -0
  62. package/components/data-display/VirtualTable/models/ColumnAlign.d.ts.map +1 -0
  63. package/components/data-display/VirtualTable/models/FilterBy.d.ts +12 -0
  64. package/components/data-display/VirtualTable/models/FilterBy.d.ts.map +1 -0
  65. package/components/data-display/VirtualTable/models/SortBy.d.ts +11 -0
  66. package/components/data-display/VirtualTable/models/SortBy.d.ts.map +1 -0
  67. package/{src/components/view/VirtualTable/models/SortType.ts → components/data-display/VirtualTable/models/SortType.d.ts} +1 -0
  68. package/components/data-display/VirtualTable/models/SortType.d.ts.map +1 -0
  69. package/components/data-display/VirtualTable/models/TableCell.d.ts +15 -0
  70. package/components/data-display/VirtualTable/models/TableCell.d.ts.map +1 -0
  71. package/components/data-display/VirtualTable/models/TableColumn.d.ts +52 -0
  72. package/components/data-display/VirtualTable/models/TableColumn.d.ts.map +1 -0
  73. package/components/data-display/VirtualTable/models/TableRow.d.ts +6 -0
  74. package/components/data-display/VirtualTable/models/TableRow.d.ts.map +1 -0
  75. package/{src/components/view/VirtualTable/models/VerticalAlign.ts → components/data-display/VirtualTable/models/VerticalAlign.d.ts} +1 -0
  76. package/components/data-display/VirtualTable/models/VerticalAlign.d.ts.map +1 -0
  77. package/{src/components/view/VirtualTable/models/VirtualTableBorders.ts → components/data-display/VirtualTable/models/VirtualTableBorders.d.ts} +1 -0
  78. package/components/data-display/VirtualTable/models/VirtualTableBorders.d.ts.map +1 -0
  79. package/components/data-display/VirtualTable/models/VirtualTableRef.d.ts +8 -0
  80. package/components/data-display/VirtualTable/models/VirtualTableRef.d.ts.map +1 -0
  81. package/components/data-display/VirtualTable/ui/DateFiltration/DateFiltration.d.ts +7 -0
  82. package/components/data-display/VirtualTable/ui/DateFiltration/DateFiltration.d.ts.map +1 -0
  83. package/{src/components/view/VirtualTable/ui/DateFiltration/index.ts → components/data-display/VirtualTable/ui/DateFiltration/index.d.ts} +1 -0
  84. package/components/data-display/VirtualTable/ui/DateFiltration/index.d.ts.map +1 -0
  85. package/components/data-display/VirtualTable/ui/DefaultColumn/DefaultColumn.d.ts +4 -0
  86. package/components/data-display/VirtualTable/ui/DefaultColumn/DefaultColumn.d.ts.map +1 -0
  87. package/{src/components/view/VirtualTable/ui/DefaultColumn/index.ts → components/data-display/VirtualTable/ui/DefaultColumn/index.d.ts} +1 -0
  88. package/components/data-display/VirtualTable/ui/DefaultColumn/index.d.ts.map +1 -0
  89. package/components/data-display/VirtualTable/ui/HeaderDropdown/HeaderDropdown.d.ts +23 -0
  90. package/components/data-display/VirtualTable/ui/HeaderDropdown/HeaderDropdown.d.ts.map +1 -0
  91. package/{src/components/view/VirtualTable/ui/HeaderDropdown/index.ts → components/data-display/VirtualTable/ui/HeaderDropdown/index.d.ts} +1 -0
  92. package/components/data-display/VirtualTable/ui/HeaderDropdown/index.d.ts.map +1 -0
  93. package/components/data-display/VirtualTable/ui/NumberFiltration/NumberFiltration.d.ts +7 -0
  94. package/components/data-display/VirtualTable/ui/NumberFiltration/NumberFiltration.d.ts.map +1 -0
  95. package/{src/components/view/VirtualTable/ui/NumberFiltration/index.ts → components/data-display/VirtualTable/ui/NumberFiltration/index.d.ts} +1 -0
  96. package/components/data-display/VirtualTable/ui/NumberFiltration/index.d.ts.map +1 -0
  97. package/components/data-display/VirtualTable/utils/alphanumericCompare.d.ts +2 -0
  98. package/components/data-display/VirtualTable/utils/alphanumericCompare.d.ts.map +1 -0
  99. package/components/data-display/VirtualTable/utils/dedupeFirstByColumnValue.d.ts +3 -0
  100. package/components/data-display/VirtualTable/utils/dedupeFirstByColumnValue.d.ts.map +1 -0
  101. package/components/data-display/VirtualTable/utils/getColumns.d.ts +5 -0
  102. package/components/data-display/VirtualTable/utils/getColumns.d.ts.map +1 -0
  103. package/components/data-display/VirtualTable/utils/getNextHorizontalHeaders.d.ts +4 -0
  104. package/components/data-display/VirtualTable/utils/getNextHorizontalHeaders.d.ts.map +1 -0
  105. package/components/data-display/VirtualTable/utils/getNextVerticalHeaders.d.ts +4 -0
  106. package/components/data-display/VirtualTable/utils/getNextVerticalHeaders.d.ts.map +1 -0
  107. package/components/data-display/VirtualTable/utils/getPrevHorizontalHeaders.d.ts +4 -0
  108. package/components/data-display/VirtualTable/utils/getPrevHorizontalHeaders.d.ts.map +1 -0
  109. package/components/data-display/VirtualTable/utils/getPrevVerticalHeaders.d.ts +4 -0
  110. package/components/data-display/VirtualTable/utils/getPrevVerticalHeaders.d.ts.map +1 -0
  111. package/components/data-display/VirtualTable/utils/recursiveFilter.d.ts +4 -0
  112. package/components/data-display/VirtualTable/utils/recursiveFilter.d.ts.map +1 -0
  113. package/components/data-display/VirtualTable/utils/recursiveSort.d.ts +4 -0
  114. package/components/data-display/VirtualTable/utils/recursiveSort.d.ts.map +1 -0
  115. package/components/data-display/VirtualTable/utils/rowMatchesFilter.d.ts +4 -0
  116. package/components/data-display/VirtualTable/utils/rowMatchesFilter.d.ts.map +1 -0
  117. package/components/data-display/VirtualTable/utils/rowSelection.d.ts +24 -0
  118. package/components/data-display/VirtualTable/utils/rowSelection.d.ts.map +1 -0
  119. package/components/feedback/Alert/Alert.d.ts +15 -0
  120. package/components/feedback/Alert/Alert.d.ts.map +1 -0
  121. package/components/feedback/Alert/index.d.ts +2 -0
  122. package/components/feedback/Alert/index.d.ts.map +1 -0
  123. package/components/feedback/Loader/Loader.d.ts +9 -0
  124. package/components/feedback/Loader/Loader.d.ts.map +1 -0
  125. package/{src/components/view/Loader/index.ts → components/feedback/Loader/index.d.ts} +1 -0
  126. package/components/feedback/Loader/index.d.ts.map +1 -0
  127. package/components/feedback/Modal/Modal.d.ts +11 -0
  128. package/components/feedback/Modal/Modal.d.ts.map +1 -0
  129. package/components/feedback/Modal/index.d.ts +2 -0
  130. package/components/feedback/Modal/index.d.ts.map +1 -0
  131. package/components/inputs/Button/Button.d.ts +15 -0
  132. package/components/inputs/Button/Button.d.ts.map +1 -0
  133. package/components/inputs/Button/index.d.ts +2 -0
  134. package/components/inputs/Button/index.d.ts.map +1 -0
  135. package/components/inputs/ButtonsGroup/ButtonsGroup.d.ts +11 -0
  136. package/components/inputs/ButtonsGroup/ButtonsGroup.d.ts.map +1 -0
  137. package/{src/components/common/ButtonsGroup/index.ts → components/inputs/ButtonsGroup/index.d.ts} +1 -0
  138. package/components/inputs/ButtonsGroup/index.d.ts.map +1 -0
  139. package/components/inputs/Checkbox/Checkbox.d.ts +12 -0
  140. package/components/inputs/Checkbox/Checkbox.d.ts.map +1 -0
  141. package/{src/components/common/Checkbox/index.ts → components/inputs/Checkbox/index.d.ts} +1 -0
  142. package/components/inputs/Checkbox/index.d.ts.map +1 -0
  143. package/components/inputs/Checklist/Checklist.d.ts +17 -0
  144. package/components/inputs/Checklist/Checklist.d.ts.map +1 -0
  145. package/{src/components/common/Checklist/index.ts → components/inputs/Checklist/index.d.ts} +1 -1
  146. package/components/inputs/Checklist/index.d.ts.map +1 -0
  147. package/components/inputs/Checklist/models/Item.d.ts +5 -0
  148. package/components/inputs/Checklist/models/Item.d.ts.map +1 -0
  149. package/components/inputs/Checklist/models/SelectedItems.d.ts +4 -0
  150. package/components/inputs/Checklist/models/SelectedItems.d.ts.map +1 -0
  151. package/components/inputs/Checklist/utils/filterItems.d.ts +4 -0
  152. package/components/inputs/Checklist/utils/filterItems.d.ts.map +1 -0
  153. package/components/inputs/ColorPicker/ColorPicker.d.ts +18 -0
  154. package/components/inputs/ColorPicker/ColorPicker.d.ts.map +1 -0
  155. package/{src/components/common/ColorPicker/index.ts → components/inputs/ColorPicker/index.d.ts} +1 -0
  156. package/components/inputs/ColorPicker/index.d.ts.map +1 -0
  157. package/components/inputs/DateTime/DateTime.d.ts +29 -0
  158. package/components/inputs/DateTime/DateTime.d.ts.map +1 -0
  159. package/{src/components/common/DateTime/index.ts → components/inputs/DateTime/index.d.ts} +1 -0
  160. package/components/inputs/DateTime/index.d.ts.map +1 -0
  161. package/components/inputs/DateTime/models/dayjs.d.ts +25 -0
  162. package/components/inputs/DateTime/models/dayjs.d.ts.map +1 -0
  163. package/components/inputs/DateTime/ui/CalendarPopover/CalendarPopover.d.ts +18 -0
  164. package/components/inputs/DateTime/ui/CalendarPopover/CalendarPopover.d.ts.map +1 -0
  165. package/{src/components/common/DateTime/ui/CalendarPopover/index.ts → components/inputs/DateTime/ui/CalendarPopover/index.d.ts} +1 -0
  166. package/components/inputs/DateTime/ui/CalendarPopover/index.d.ts.map +1 -0
  167. package/components/inputs/DateTime/ui/TimeWheelColumn/TimeWheelColumn.d.ts +8 -0
  168. package/components/inputs/DateTime/ui/TimeWheelColumn/TimeWheelColumn.d.ts.map +1 -0
  169. package/{src/components/common/DateTime/ui/TimeWheelColumn/index.ts → components/inputs/DateTime/ui/TimeWheelColumn/index.d.ts} +1 -0
  170. package/components/inputs/DateTime/ui/TimeWheelColumn/index.d.ts.map +1 -0
  171. package/components/inputs/DateTime/utils/createCalendarDate.d.ts +3 -0
  172. package/components/inputs/DateTime/utils/createCalendarDate.d.ts.map +1 -0
  173. package/components/inputs/FieldShell/FieldErrorIcon.d.ts +11 -0
  174. package/components/inputs/FieldShell/FieldErrorIcon.d.ts.map +1 -0
  175. package/components/inputs/FieldShell/FieldShell.d.ts +32 -0
  176. package/components/inputs/FieldShell/FieldShell.d.ts.map +1 -0
  177. package/components/inputs/FieldShell/index.d.ts +6 -0
  178. package/components/inputs/FieldShell/index.d.ts.map +1 -0
  179. package/components/inputs/Input/Input.d.ts +16 -0
  180. package/components/inputs/Input/Input.d.ts.map +1 -0
  181. package/components/inputs/Input/index.d.ts +2 -0
  182. package/components/inputs/Input/index.d.ts.map +1 -0
  183. package/components/inputs/InputChip/InputChip.d.ts +17 -0
  184. package/components/inputs/InputChip/InputChip.d.ts.map +1 -0
  185. package/{src/components/view/InputChip/index.ts → components/inputs/InputChip/index.d.ts} +1 -0
  186. package/components/inputs/InputChip/index.d.ts.map +1 -0
  187. package/components/inputs/MultiSelect/MultiSelect.d.ts +26 -0
  188. package/components/inputs/MultiSelect/MultiSelect.d.ts.map +1 -0
  189. package/{src/components/common/MultiSelect/index.ts → components/inputs/MultiSelect/index.d.ts} +1 -1
  190. package/components/inputs/MultiSelect/index.d.ts.map +1 -0
  191. package/components/inputs/MultiSelect/models/Item.d.ts +8 -0
  192. package/components/inputs/MultiSelect/models/Item.d.ts.map +1 -0
  193. package/{src/components/common/MultiSelect/models/TitleVariant.ts → components/inputs/MultiSelect/models/TitleVariant.d.ts} +1 -0
  194. package/components/inputs/MultiSelect/models/TitleVariant.d.ts.map +1 -0
  195. package/components/inputs/MultiSelect/ui/SelectPopover/SelectPopover.d.ts +14 -0
  196. package/components/inputs/MultiSelect/ui/SelectPopover/SelectPopover.d.ts.map +1 -0
  197. package/{src/components/common/MultiSelect/ui/SelectPopover/index.ts → components/inputs/MultiSelect/ui/SelectPopover/index.d.ts} +1 -0
  198. package/components/inputs/MultiSelect/ui/SelectPopover/index.d.ts.map +1 -0
  199. package/components/inputs/MultiSelect/utils/getTitle.d.ts +4 -0
  200. package/components/inputs/MultiSelect/utils/getTitle.d.ts.map +1 -0
  201. package/components/inputs/RadioButton/RadioButton.d.ts +13 -0
  202. package/components/inputs/RadioButton/RadioButton.d.ts.map +1 -0
  203. package/{src/components/common/RadioButton/index.ts → components/inputs/RadioButton/index.d.ts} +1 -0
  204. package/components/inputs/RadioButton/index.d.ts.map +1 -0
  205. package/components/inputs/Select/Select.d.ts +23 -0
  206. package/components/inputs/Select/Select.d.ts.map +1 -0
  207. package/{src/components/common/Select/index.ts → components/inputs/Select/index.d.ts} +1 -1
  208. package/components/inputs/Select/index.d.ts.map +1 -0
  209. package/components/inputs/Select/models/Divider.d.ts +5 -0
  210. package/components/inputs/Select/models/Divider.d.ts.map +1 -0
  211. package/components/inputs/Select/models/Item.d.ts +13 -0
  212. package/components/inputs/Select/models/Item.d.ts.map +1 -0
  213. package/components/inputs/Select/ui/SelectPopover/SelectPopover.d.ts +13 -0
  214. package/components/inputs/Select/ui/SelectPopover/SelectPopover.d.ts.map +1 -0
  215. package/{src/components/common/Select/ui/SelectPopover/index.ts → components/inputs/Select/ui/SelectPopover/index.d.ts} +1 -0
  216. package/components/inputs/Select/ui/SelectPopover/index.d.ts.map +1 -0
  217. package/components/inputs/WrapForLabel/WrapForLabel.d.ts +12 -0
  218. package/components/inputs/WrapForLabel/WrapForLabel.d.ts.map +1 -0
  219. package/{src/components/common/WrapForLabel/index.ts → components/inputs/WrapForLabel/index.d.ts} +1 -0
  220. package/components/inputs/WrapForLabel/index.d.ts.map +1 -0
  221. package/components/layout/Layout/Layout.d.ts +11 -0
  222. package/components/layout/Layout/Layout.d.ts.map +1 -0
  223. package/{src/components/layout/Layout/index.ts → components/layout/Layout/index.d.ts} +1 -0
  224. package/components/layout/Layout/index.d.ts.map +1 -0
  225. package/components/navigation/Menu/Menu.d.ts +15 -0
  226. package/components/navigation/Menu/Menu.d.ts.map +1 -0
  227. package/{src/components/navigation/Menu/index.ts → components/navigation/Menu/index.d.ts} +1 -1
  228. package/components/navigation/Menu/index.d.ts.map +1 -0
  229. package/components/navigation/Menu/models/Divider.d.ts +5 -0
  230. package/components/navigation/Menu/models/Divider.d.ts.map +1 -0
  231. package/components/navigation/Menu/models/Item.d.ts +19 -0
  232. package/components/navigation/Menu/models/Item.d.ts.map +1 -0
  233. package/components/navigation/Tabs/Tabs.d.ts +27 -0
  234. package/components/navigation/Tabs/Tabs.d.ts.map +1 -0
  235. package/{src/components/navigation/Tabs/index.ts → components/navigation/Tabs/index.d.ts} +1 -1
  236. package/components/navigation/Tabs/index.d.ts.map +1 -0
  237. package/components/navigation/Tabs/models/Item.d.ts +9 -0
  238. package/components/navigation/Tabs/models/Item.d.ts.map +1 -0
  239. package/components/surfaces/Card/Card.d.ts +18 -0
  240. package/components/surfaces/Card/Card.d.ts.map +1 -0
  241. package/components/surfaces/Card/index.d.ts +2 -0
  242. package/components/surfaces/Card/index.d.ts.map +1 -0
  243. package/components/surfaces/Surface/Surface.d.ts +14 -0
  244. package/components/surfaces/Surface/Surface.d.ts.map +1 -0
  245. package/{src/components/layout/Surface/index.ts → components/surfaces/Surface/index.d.ts} +1 -0
  246. package/components/surfaces/Surface/index.d.ts.map +1 -0
  247. package/components/utils/Popover/Popover.d.ts +19 -0
  248. package/components/utils/Popover/Popover.d.ts.map +1 -0
  249. package/{src/components/view/Popover/index.ts → components/utils/Popover/index.d.ts} +1 -0
  250. package/components/utils/Popover/index.d.ts.map +1 -0
  251. package/components/utils/Popover/ui/Arrow/Arrow.d.ts +2 -0
  252. package/components/utils/Popover/ui/Arrow/Arrow.d.ts.map +1 -0
  253. package/components/utils/Popover/ui/Arrow/index.d.ts +2 -0
  254. package/components/utils/Popover/ui/Arrow/index.d.ts.map +1 -0
  255. package/components/utils/Popover/ui/PopoverContent/PopoverContent.d.ts +3 -0
  256. package/components/utils/Popover/ui/PopoverContent/PopoverContent.d.ts.map +1 -0
  257. package/{src/components/view/Popover/ui/PopoverContent/index.ts → components/utils/Popover/ui/PopoverContent/index.d.ts} +1 -0
  258. package/components/utils/Popover/ui/PopoverContent/index.d.ts.map +1 -0
  259. package/components/utils/Popover/ui/PopoverProvider/PopoverProvider.d.ts +4 -0
  260. package/components/utils/Popover/ui/PopoverProvider/PopoverProvider.d.ts.map +1 -0
  261. package/components/utils/Popover/ui/PopoverProvider/constants/PopoverContext.d.ts +3 -0
  262. package/components/utils/Popover/ui/PopoverProvider/constants/PopoverContext.d.ts.map +1 -0
  263. package/components/utils/Popover/ui/PopoverProvider/hooks/usePopover.d.ts +52 -0
  264. package/components/utils/Popover/ui/PopoverProvider/hooks/usePopover.d.ts.map +1 -0
  265. package/{src/components/view/Popover/ui/PopoverProvider/index.ts → components/utils/Popover/ui/PopoverProvider/index.d.ts} +1 -0
  266. package/components/utils/Popover/ui/PopoverProvider/index.d.ts.map +1 -0
  267. package/components/utils/Popover/ui/PopoverProvider/models/PopoverOptions.d.ts +13 -0
  268. package/components/utils/Popover/ui/PopoverProvider/models/PopoverOptions.d.ts.map +1 -0
  269. package/components/utils/Popover/ui/PopoverProvider/models/PopoverState.d.ts +5 -0
  270. package/components/utils/Popover/ui/PopoverProvider/models/PopoverState.d.ts.map +1 -0
  271. package/components/utils/Popover/ui/PopoverTrigger/PopoverTrigger.d.ts +5 -0
  272. package/components/utils/Popover/ui/PopoverTrigger/PopoverTrigger.d.ts.map +1 -0
  273. package/{src/components/view/Popover/ui/PopoverTrigger/index.ts → components/utils/Popover/ui/PopoverTrigger/index.d.ts} +1 -0
  274. package/components/utils/Popover/ui/PopoverTrigger/index.d.ts.map +1 -0
  275. package/hooks/useCompatId.d.ts +2 -0
  276. package/hooks/useCompatId.d.ts.map +1 -0
  277. package/hooks/useTranslation.d.ts +6 -0
  278. package/hooks/useTranslation.d.ts.map +1 -0
  279. package/icons/AddIcon.d.ts +4 -0
  280. package/icons/AddIcon.d.ts.map +1 -0
  281. package/icons/AlertIcon.d.ts +4 -0
  282. package/icons/AlertIcon.d.ts.map +1 -0
  283. package/icons/ArrowDropDownIcon.d.ts +4 -0
  284. package/icons/ArrowDropDownIcon.d.ts.map +1 -0
  285. package/icons/ArrowDropUpIcon.d.ts +4 -0
  286. package/icons/ArrowDropUpIcon.d.ts.map +1 -0
  287. package/icons/AttachIcon.d.ts +4 -0
  288. package/icons/AttachIcon.d.ts.map +1 -0
  289. package/icons/BarChartIcon.d.ts +4 -0
  290. package/icons/BarChartIcon.d.ts.map +1 -0
  291. package/icons/BookmarkAddIcon.d.ts +4 -0
  292. package/icons/BookmarkAddIcon.d.ts.map +1 -0
  293. package/icons/BookmarkIcon.d.ts +4 -0
  294. package/icons/BookmarkIcon.d.ts.map +1 -0
  295. package/icons/CheckboxDeselectedIcon.d.ts +4 -0
  296. package/icons/CheckboxDeselectedIcon.d.ts.map +1 -0
  297. package/icons/CheckboxIcon.d.ts +4 -0
  298. package/icons/CheckboxIcon.d.ts.map +1 -0
  299. package/icons/CheckboxSeveralIcon.d.ts +4 -0
  300. package/icons/CheckboxSeveralIcon.d.ts.map +1 -0
  301. package/icons/ChevronDownIcon.d.ts +4 -0
  302. package/icons/ChevronDownIcon.d.ts.map +1 -0
  303. package/icons/ChevronLeftIcon.d.ts +4 -0
  304. package/icons/ChevronLeftIcon.d.ts.map +1 -0
  305. package/icons/ChevronRightIcon.d.ts +4 -0
  306. package/icons/ChevronRightIcon.d.ts.map +1 -0
  307. package/icons/ChevronUpIcon.d.ts +4 -0
  308. package/icons/ChevronUpIcon.d.ts.map +1 -0
  309. package/icons/CircleFilledIcon.d.ts +4 -0
  310. package/icons/CircleFilledIcon.d.ts.map +1 -0
  311. package/icons/CloseIcon.d.ts +4 -0
  312. package/icons/CloseIcon.d.ts.map +1 -0
  313. package/icons/DateRangeIcon.d.ts +4 -0
  314. package/icons/DateRangeIcon.d.ts.map +1 -0
  315. package/icons/DeleteIcon.d.ts +4 -0
  316. package/icons/DeleteIcon.d.ts.map +1 -0
  317. package/icons/DoneIcon.d.ts +4 -0
  318. package/icons/DoneIcon.d.ts.map +1 -0
  319. package/icons/DonutIcon.d.ts +4 -0
  320. package/icons/DonutIcon.d.ts.map +1 -0
  321. package/icons/DownloadIcon.d.ts +4 -0
  322. package/icons/DownloadIcon.d.ts.map +1 -0
  323. package/icons/DragIcon.d.ts +4 -0
  324. package/icons/DragIcon.d.ts.map +1 -0
  325. package/icons/EditIcon.d.ts +4 -0
  326. package/icons/EditIcon.d.ts.map +1 -0
  327. package/icons/ErrorOutlineIcon.d.ts +4 -0
  328. package/icons/ErrorOutlineIcon.d.ts.map +1 -0
  329. package/icons/ExportTableIcon.d.ts +4 -0
  330. package/icons/ExportTableIcon.d.ts.map +1 -0
  331. package/icons/FileUploadIcon.d.ts +4 -0
  332. package/icons/FileUploadIcon.d.ts.map +1 -0
  333. package/icons/FilterClearIcon.d.ts +4 -0
  334. package/icons/FilterClearIcon.d.ts.map +1 -0
  335. package/icons/FilterIcon.d.ts +4 -0
  336. package/icons/FilterIcon.d.ts.map +1 -0
  337. package/icons/FullScreenOffIcon.d.ts +4 -0
  338. package/icons/FullScreenOffIcon.d.ts.map +1 -0
  339. package/icons/FullScreenOnIcon.d.ts +4 -0
  340. package/icons/FullScreenOnIcon.d.ts.map +1 -0
  341. package/icons/Icon.d.ts +8 -0
  342. package/icons/Icon.d.ts.map +1 -0
  343. package/icons/InfoIcon.d.ts +4 -0
  344. package/icons/InfoIcon.d.ts.map +1 -0
  345. package/icons/ListIcon.d.ts +4 -0
  346. package/icons/ListIcon.d.ts.map +1 -0
  347. package/icons/LooksOneIcon.d.ts +4 -0
  348. package/icons/LooksOneIcon.d.ts.map +1 -0
  349. package/icons/MapIcon.d.ts +4 -0
  350. package/icons/MapIcon.d.ts.map +1 -0
  351. package/icons/MoreVerticalIcon.d.ts +4 -0
  352. package/icons/MoreVerticalIcon.d.ts.map +1 -0
  353. package/icons/PointIcon.d.ts +4 -0
  354. package/icons/PointIcon.d.ts.map +1 -0
  355. package/icons/RadioDeselectedIcon.d.ts +4 -0
  356. package/icons/RadioDeselectedIcon.d.ts.map +1 -0
  357. package/icons/RadioSelectedIcon.d.ts +4 -0
  358. package/icons/RadioSelectedIcon.d.ts.map +1 -0
  359. package/icons/SaveIcon.d.ts +4 -0
  360. package/icons/SaveIcon.d.ts.map +1 -0
  361. package/icons/ScatterPlotIcon.d.ts +4 -0
  362. package/icons/ScatterPlotIcon.d.ts.map +1 -0
  363. package/icons/SearchIcon.d.ts +4 -0
  364. package/icons/SearchIcon.d.ts.map +1 -0
  365. package/icons/SelectUniqueIcon.d.ts +4 -0
  366. package/icons/SelectUniqueIcon.d.ts.map +1 -0
  367. package/icons/SettingsIcon.d.ts +4 -0
  368. package/icons/SettingsIcon.d.ts.map +1 -0
  369. package/icons/SortDownIcon.d.ts +4 -0
  370. package/icons/SortDownIcon.d.ts.map +1 -0
  371. package/icons/SortUpIcon.d.ts +4 -0
  372. package/icons/SortUpIcon.d.ts.map +1 -0
  373. package/icons/TableChartIcon.d.ts +4 -0
  374. package/icons/TableChartIcon.d.ts.map +1 -0
  375. package/icons/UploadIcon.d.ts +4 -0
  376. package/icons/UploadIcon.d.ts.map +1 -0
  377. package/icons/VisibilityIcon.d.ts +4 -0
  378. package/icons/VisibilityIcon.d.ts.map +1 -0
  379. package/icons/WellIcon.d.ts +4 -0
  380. package/icons/WellIcon.d.ts.map +1 -0
  381. package/{src/icons/index.ts → icons/index.d.ts} +5 -0
  382. package/icons/index.d.ts.map +1 -0
  383. package/index.css +3513 -0
  384. package/index.css.map +1 -0
  385. package/index.d.ts +52 -0
  386. package/index.d.ts.map +1 -0
  387. package/index.js +3 -0
  388. package/index.js.LICENSE.txt +31 -0
  389. package/index.js.map +1 -0
  390. package/index.mjs +3 -0
  391. package/index.mjs.LICENSE.txt +31 -0
  392. package/index.mjs.map +1 -0
  393. package/models/AlertSize.d.ts +2 -0
  394. package/models/AlertSize.d.ts.map +1 -0
  395. package/models/AlertType.d.ts +2 -0
  396. package/models/AlertType.d.ts.map +1 -0
  397. package/{src/models/ButtonVariant.ts → models/ButtonVariant.d.ts} +1 -0
  398. package/models/ButtonVariant.d.ts.map +1 -0
  399. package/{src/models/CheckboxSize.ts → models/CheckboxSize.d.ts} +1 -0
  400. package/models/CheckboxSize.d.ts.map +1 -0
  401. package/{src/models/ChipSize.ts → models/ChipSize.d.ts} +1 -0
  402. package/models/ChipSize.d.ts.map +1 -0
  403. package/{src/models/ChipVariant.ts → models/ChipVariant.d.ts} +1 -0
  404. package/models/ChipVariant.d.ts.map +1 -0
  405. package/models/FieldError.d.ts +5 -0
  406. package/models/FieldError.d.ts.map +1 -0
  407. package/{src/models/FieldSize.ts → models/FieldSize.d.ts} +1 -0
  408. package/models/FieldSize.d.ts.map +1 -0
  409. package/{src/models/FieldVariant.ts → models/FieldVariant.d.ts} +1 -0
  410. package/models/FieldVariant.d.ts.map +1 -0
  411. package/{src/models/Maybe.ts → models/Maybe.d.ts} +1 -0
  412. package/models/Maybe.d.ts.map +1 -0
  413. package/{src/models/SurfaceSize.ts → models/SurfaceSize.d.ts} +1 -0
  414. package/models/SurfaceSize.d.ts.map +1 -0
  415. package/{src/models/SurfaceType.ts → models/SurfaceType.d.ts} +1 -0
  416. package/models/SurfaceType.d.ts.map +1 -0
  417. package/models/TypographyVariant.d.ts +2 -0
  418. package/models/TypographyVariant.d.ts.map +1 -0
  419. package/models/UiProps.d.ts +7 -0
  420. package/models/UiProps.d.ts.map +1 -0
  421. package/package.json +19 -100
  422. package/theme/ThemeProvider.d.ts +23 -0
  423. package/theme/ThemeProvider.d.ts.map +1 -0
  424. package/{src/utils/index.ts → utils/index.d.ts} +1 -0
  425. package/utils/index.d.ts.map +1 -0
  426. package/utils/toFirstLetterLowerCase.d.ts +2 -0
  427. package/utils/toFirstLetterLowerCase.d.ts.map +1 -0
  428. package/utils/toFirstLetterUpperCase.d.ts +2 -0
  429. package/utils/toFirstLetterUpperCase.d.ts.map +1 -0
  430. package/.editorconfig +0 -25
  431. package/.gitattributes +0 -64
  432. package/.gitlab-ci.yml +0 -40
  433. package/.helm/Chart.yaml +0 -5
  434. package/.helm/values.yaml +0 -12
  435. package/.prettierignore +0 -12
  436. package/.prettierrc.json +0 -19
  437. package/.storybook/global.d.ts +0 -4
  438. package/.storybook/main.ts +0 -12
  439. package/.storybook/preview.tsx +0 -59
  440. package/.stylelintignore +0 -3
  441. package/.stylelintrc.json +0 -5
  442. package/.vscode/settings.json +0 -10
  443. package/Dockerfile +0 -14
  444. package/babel.config.json +0 -23
  445. package/cssModulesPluginTemplate.cjs +0 -5
  446. package/eslint.config.mjs +0 -160
  447. package/nginx.conf +0 -14
  448. package/package.dist.json +0 -20
  449. package/postcss.config.cjs +0 -12
  450. package/src/components/common/Button/Button.stories.tsx +0 -93
  451. package/src/components/common/Button/Button.tsx +0 -59
  452. package/src/components/common/Button/button.module.css +0 -337
  453. package/src/components/common/Button/index.ts +0 -1
  454. package/src/components/common/ButtonsGroup/ButtonsGroup.stories.tsx +0 -52
  455. package/src/components/common/ButtonsGroup/ButtonsGroup.tsx +0 -25
  456. package/src/components/common/ButtonsGroup/buttonsGroup.module.css +0 -24
  457. package/src/components/common/Checkbox/Checkbox.stories.tsx +0 -48
  458. package/src/components/common/Checkbox/Checkbox.tsx +0 -82
  459. package/src/components/common/Checkbox/checkbox.module.css +0 -112
  460. package/src/components/common/Checklist/Checklist.stories.tsx +0 -138
  461. package/src/components/common/Checklist/Checklist.tsx +0 -159
  462. package/src/components/common/Checklist/checklist.module.css +0 -23
  463. package/src/components/common/Checklist/models/Item.ts +0 -4
  464. package/src/components/common/Checklist/models/SelectedItems.ts +0 -3
  465. package/src/components/common/Checklist/utils/filterItems.ts +0 -18
  466. package/src/components/common/ColorPicker/ColorPicker.stories.tsx +0 -198
  467. package/src/components/common/ColorPicker/ColorPicker.tsx +0 -157
  468. package/src/components/common/ColorPicker/colorPicker.module.css +0 -145
  469. package/src/components/common/DateTime/DateTime.stories.tsx +0 -249
  470. package/src/components/common/DateTime/DateTime.tsx +0 -236
  471. package/src/components/common/DateTime/dateTime.module.css +0 -21
  472. package/src/components/common/DateTime/models/dayjs.ts +0 -26
  473. package/src/components/common/DateTime/ui/CalendarPopover/CalendarPopover.tsx +0 -585
  474. package/src/components/common/DateTime/ui/CalendarPopover/calendarPopover.module.css +0 -226
  475. package/src/components/common/DateTime/ui/TimeWheelColumn/TimeWheelColumn.tsx +0 -106
  476. package/src/components/common/DateTime/ui/TimeWheelColumn/timeWheelColumn.module.css +0 -35
  477. package/src/components/common/DateTime/utils/createCalendarDate.ts +0 -15
  478. package/src/components/common/FieldShell/FieldErrorIcon.tsx +0 -39
  479. package/src/components/common/FieldShell/FieldShell.tsx +0 -104
  480. package/src/components/common/FieldShell/fieldShell.module.css +0 -456
  481. package/src/components/common/FieldShell/index.ts +0 -5
  482. package/src/components/common/Input/Input.stories.tsx +0 -232
  483. package/src/components/common/Input/Input.tsx +0 -140
  484. package/src/components/common/Input/index.ts +0 -1
  485. package/src/components/common/Input/input.module.css +0 -49
  486. package/src/components/common/MultiSelect/MultiSelect.stories.tsx +0 -344
  487. package/src/components/common/MultiSelect/MultiSelect.tsx +0 -260
  488. package/src/components/common/MultiSelect/models/Item.ts +0 -7
  489. package/src/components/common/MultiSelect/multiSelect.module.css +0 -198
  490. package/src/components/common/MultiSelect/multiSelect.stories.module.css +0 -4
  491. package/src/components/common/MultiSelect/ui/SelectPopover/SelectPopover.tsx +0 -69
  492. package/src/components/common/MultiSelect/utils/getTitle.ts +0 -19
  493. package/src/components/common/RadioButton/RadioButton.stories.tsx +0 -134
  494. package/src/components/common/RadioButton/RadioButton.tsx +0 -90
  495. package/src/components/common/RadioButton/radioButton.module.css +0 -108
  496. package/src/components/common/Select/Select.stories.tsx +0 -294
  497. package/src/components/common/Select/Select.tsx +0 -181
  498. package/src/components/common/Select/models/Divider.ts +0 -4
  499. package/src/components/common/Select/models/Item.ts +0 -15
  500. package/src/components/common/Select/select.module.css +0 -87
  501. package/src/components/common/Select/ui/SelectPopover/SelectPopover.tsx +0 -49
  502. package/src/components/common/WrapForLabel/WrapForLabel.stories.tsx +0 -36
  503. package/src/components/common/WrapForLabel/WrapForLabel.tsx +0 -28
  504. package/src/components/common/WrapForLabel/wrapForLabel.module.css +0 -14
  505. package/src/components/layout/Layout/Layout.stories.tsx +0 -44
  506. package/src/components/layout/Layout/Layout.tsx +0 -24
  507. package/src/components/layout/Layout/layout.module.css +0 -16
  508. package/src/components/layout/Surface/Surface.stories.tsx +0 -56
  509. package/src/components/layout/Surface/Surface.tsx +0 -33
  510. package/src/components/layout/Surface/surface.module.css +0 -47
  511. package/src/components/navigation/Menu/Menu.stories.tsx +0 -324
  512. package/src/components/navigation/Menu/Menu.tsx +0 -157
  513. package/src/components/navigation/Menu/menu.module.css +0 -153
  514. package/src/components/navigation/Menu/models/Divider.ts +0 -4
  515. package/src/components/navigation/Menu/models/Item.ts +0 -20
  516. package/src/components/navigation/Tabs/Tabs.stories.tsx +0 -959
  517. package/src/components/navigation/Tabs/Tabs.tsx +0 -174
  518. package/src/components/navigation/Tabs/models/Item.ts +0 -9
  519. package/src/components/navigation/Tabs/tabs.module.css +0 -179
  520. package/src/components/navigation/Tabs/tabs.stories.module.css +0 -3
  521. package/src/components/view/Card/Card.stories.tsx +0 -99
  522. package/src/components/view/Card/Card.tsx +0 -66
  523. package/src/components/view/Card/card.module.css +0 -50
  524. package/src/components/view/Card/index.ts +0 -1
  525. package/src/components/view/Chip/Chip.stories.tsx +0 -219
  526. package/src/components/view/Chip/Chip.tsx +0 -89
  527. package/src/components/view/Chip/chip.module.css +0 -157
  528. package/src/components/view/InputChip/InputChip.stories.tsx +0 -117
  529. package/src/components/view/InputChip/InputChip.tsx +0 -77
  530. package/src/components/view/InputChip/inputChip.module.css +0 -188
  531. package/src/components/view/Loader/Loader.stories.tsx +0 -54
  532. package/src/components/view/Loader/Loader.tsx +0 -29
  533. package/src/components/view/Loader/loader.gif +0 -0
  534. package/src/components/view/Loader/loader.module.css +0 -8
  535. package/src/components/view/Modal/Modal.stories.tsx +0 -63
  536. package/src/components/view/Modal/Modal.tsx +0 -58
  537. package/src/components/view/Modal/index.ts +0 -1
  538. package/src/components/view/Modal/modal.module.css +0 -18
  539. package/src/components/view/Modal/modal.stories.module.css +0 -18
  540. package/src/components/view/Pairs/Pairs.stories.tsx +0 -101
  541. package/src/components/view/Pairs/Pairs.tsx +0 -63
  542. package/src/components/view/Pairs/models/Pair.ts +0 -4
  543. package/src/components/view/Pairs/pairs.module.css +0 -35
  544. package/src/components/view/Pairs/ui/TypographyWithTooltip.tsx +0 -31
  545. package/src/components/view/Popover/Popover.stories.tsx +0 -105
  546. package/src/components/view/Popover/Popover.tsx +0 -75
  547. package/src/components/view/Popover/popover.module.css +0 -23
  548. package/src/components/view/Popover/ui/Arrow/Arrow.tsx +0 -11
  549. package/src/components/view/Popover/ui/Arrow/index.ts +0 -1
  550. package/src/components/view/Popover/ui/PopoverContent/PopoverContent.tsx +0 -44
  551. package/src/components/view/Popover/ui/PopoverProvider/PopoverProvider.tsx +0 -13
  552. package/src/components/view/Popover/ui/PopoverProvider/constants/PopoverContext.ts +0 -5
  553. package/src/components/view/Popover/ui/PopoverProvider/hooks/usePopover.ts +0 -79
  554. package/src/components/view/Popover/ui/PopoverProvider/models/PopoverOptions.ts +0 -13
  555. package/src/components/view/Popover/ui/PopoverProvider/models/PopoverState.ts +0 -7
  556. package/src/components/view/Popover/ui/PopoverTrigger/PopoverTrigger.tsx +0 -36
  557. package/src/components/view/Tooltip/Tooltip.stories.tsx +0 -141
  558. package/src/components/view/Tooltip/Tooltip.tsx +0 -74
  559. package/src/components/view/Tooltip/tooltip.module.css +0 -93
  560. package/src/components/view/Tooltip/ui/TooltipContent/TooltipContent.tsx +0 -88
  561. package/src/components/view/Tooltip/ui/TooltipProvider/TooltipProvider.tsx +0 -13
  562. package/src/components/view/Tooltip/ui/TooltipProvider/constants/TooltipContext.ts +0 -5
  563. package/src/components/view/Tooltip/ui/TooltipProvider/hooks/useTooltip.ts +0 -76
  564. package/src/components/view/Tooltip/ui/TooltipProvider/models/TooltipOptions.ts +0 -12
  565. package/src/components/view/Tooltip/ui/TooltipTrigger/TooltipTrigger.tsx +0 -36
  566. package/src/components/view/TreeView/TreeView.stories.tsx +0 -174
  567. package/src/components/view/TreeView/TreeView.tsx +0 -76
  568. package/src/components/view/TreeView/models/Item.ts +0 -7
  569. package/src/components/view/TreeView/treeView.module.css +0 -3
  570. package/src/components/view/TreeView/ui/TreeViewItem/TreeViewItem.tsx +0 -84
  571. package/src/components/view/TreeView/ui/TreeViewItem/treeViewItem.module.css +0 -30
  572. package/src/components/view/TreeView/utils/getFilteredTree.ts +0 -23
  573. package/src/components/view/Typography/Typography.stories.tsx +0 -120
  574. package/src/components/view/Typography/Typography.tsx +0 -28
  575. package/src/components/view/Typography/typography.module.css +0 -132
  576. package/src/components/view/VirtualTable/VirtualTable.stories.tsx +0 -285
  577. package/src/components/view/VirtualTable/VirtualTable.tsx +0 -1159
  578. package/src/components/view/VirtualTable/constants/baseColumns.ts +0 -39
  579. package/src/components/view/VirtualTable/constants/bigBaseColumns.ts +0 -35
  580. package/src/components/view/VirtualTable/constants/bigSampleData.ts +0 -92
  581. package/src/components/view/VirtualTable/constants/defaultRowHeight.ts +0 -1
  582. package/src/components/view/VirtualTable/constants/sampleData.ts +0 -213
  583. package/src/components/view/VirtualTable/models/AdditionalButton.ts +0 -10
  584. package/src/components/view/VirtualTable/models/FilterBy.ts +0 -11
  585. package/src/components/view/VirtualTable/models/SortBy.ts +0 -11
  586. package/src/components/view/VirtualTable/models/TableCell.ts +0 -12
  587. package/src/components/view/VirtualTable/models/TableColumn.ts +0 -52
  588. package/src/components/view/VirtualTable/models/TableRow.ts +0 -6
  589. package/src/components/view/VirtualTable/models/VirtualTableRef.ts +0 -7
  590. package/src/components/view/VirtualTable/ui/DateFiltration/DateFiltration.tsx +0 -56
  591. package/src/components/view/VirtualTable/ui/DateFiltration/dateFiltration.module.css +0 -10
  592. package/src/components/view/VirtualTable/ui/DefaultColumn/DefaultColumn.tsx +0 -144
  593. package/src/components/view/VirtualTable/ui/HeaderDropdown/HeaderDropdown.tsx +0 -359
  594. package/src/components/view/VirtualTable/ui/HeaderDropdown/headerDropdown.module.css +0 -20
  595. package/src/components/view/VirtualTable/ui/NumberFiltration/NumberFiltration.tsx +0 -168
  596. package/src/components/view/VirtualTable/ui/NumberFiltration/numberFiltration.module.css +0 -27
  597. package/src/components/view/VirtualTable/utils/alphanumericCompare.ts +0 -29
  598. package/src/components/view/VirtualTable/utils/dedupeFirstByColumnValue.ts +0 -17
  599. package/src/components/view/VirtualTable/utils/getColumns.ts +0 -40
  600. package/src/components/view/VirtualTable/utils/getNextHorizontalHeaders.ts +0 -21
  601. package/src/components/view/VirtualTable/utils/getNextVerticalHeaders.ts +0 -18
  602. package/src/components/view/VirtualTable/utils/getPrevHorizontalHeaders.ts +0 -19
  603. package/src/components/view/VirtualTable/utils/getPrevVerticalHeaders.ts +0 -22
  604. package/src/components/view/VirtualTable/utils/recursiveFilter.ts +0 -15
  605. package/src/components/view/VirtualTable/utils/recursiveSort.ts +0 -24
  606. package/src/components/view/VirtualTable/utils/rowMatchesFilter.ts +0 -43
  607. package/src/components/view/VirtualTable/utils/rowSelection.ts +0 -125
  608. package/src/components/view/VirtualTable/virtualTable.module.css +0 -346
  609. package/src/hooks/useCompatId.ts +0 -12
  610. package/src/hooks/useTranslation.ts +0 -15
  611. package/src/hooks/window/hooks/useWindowSize.ts +0 -14
  612. package/src/hooks/window/index.ts +0 -1
  613. package/src/i18n/config.ts +0 -23
  614. package/src/i18n/locales/en.json +0 -23
  615. package/src/i18n/locales/ru.json +0 -23
  616. package/src/icons/AddIcon.tsx +0 -9
  617. package/src/icons/AlertIcon.tsx +0 -14
  618. package/src/icons/ArrowDropDownIcon.tsx +0 -9
  619. package/src/icons/ArrowDropUpIcon.tsx +0 -9
  620. package/src/icons/AttachIcon.tsx +0 -10
  621. package/src/icons/BarChartIcon.tsx +0 -9
  622. package/src/icons/BookmarkAddIcon.tsx +0 -12
  623. package/src/icons/BookmarkIcon.tsx +0 -9
  624. package/src/icons/CheckboxDeselectedIcon.tsx +0 -9
  625. package/src/icons/CheckboxIcon.tsx +0 -10
  626. package/src/icons/CheckboxSeveralIcon.tsx +0 -10
  627. package/src/icons/ChevronDownIcon.tsx +0 -9
  628. package/src/icons/ChevronLeftIcon.tsx +0 -9
  629. package/src/icons/ChevronRightIcon.tsx +0 -9
  630. package/src/icons/ChevronUpIcon.tsx +0 -9
  631. package/src/icons/CircleFilledIcon.tsx +0 -9
  632. package/src/icons/CloseIcon.tsx +0 -9
  633. package/src/icons/DateRangeIcon.tsx +0 -10
  634. package/src/icons/DeleteIcon.tsx +0 -16
  635. package/src/icons/DoneIcon.tsx +0 -9
  636. package/src/icons/DownloadIcon.tsx +0 -9
  637. package/src/icons/DragIcon.tsx +0 -21
  638. package/src/icons/EditIcon.tsx +0 -10
  639. package/src/icons/ErrorOutlineIcon.tsx +0 -14
  640. package/src/icons/ExportTableIcon.tsx +0 -19
  641. package/src/icons/FileUploadIcon.tsx +0 -9
  642. package/src/icons/FilterClearIcon.tsx +0 -24
  643. package/src/icons/FilterIcon.tsx +0 -13
  644. package/src/icons/FullScreenOffIcon.tsx +0 -9
  645. package/src/icons/FullScreenOnIcon.tsx +0 -12
  646. package/src/icons/Icon.tsx +0 -27
  647. package/src/icons/InfoIcon.tsx +0 -12
  648. package/src/icons/ListIcon.tsx +0 -9
  649. package/src/icons/MoreVerticalIcon.tsx +0 -10
  650. package/src/icons/PointIcon.tsx +0 -14
  651. package/src/icons/RadioDeselectedIcon.tsx +0 -10
  652. package/src/icons/RadioSelectedIcon.tsx +0 -10
  653. package/src/icons/SaveIcon.tsx +0 -17
  654. package/src/icons/SearchIcon.tsx +0 -10
  655. package/src/icons/SelectUniqueIcon.tsx +0 -9
  656. package/src/icons/SettingsIcon.tsx +0 -10
  657. package/src/icons/SortDownIcon.tsx +0 -9
  658. package/src/icons/SortUpIcon.tsx +0 -9
  659. package/src/icons/TableChartIcon.tsx +0 -9
  660. package/src/icons/UploadIcon.tsx +0 -9
  661. package/src/icons/VisibilityIcon.tsx +0 -18
  662. package/src/icons/WellIcon.tsx +0 -10
  663. package/src/index.ts +0 -86
  664. package/src/models/FieldError.ts +0 -4
  665. package/src/models/TypographyVariant.ts +0 -20
  666. package/src/models/UiProps.ts +0 -3
  667. package/src/stories/icons/Icons.stories.tsx +0 -124
  668. package/src/styles/global.css +0 -142
  669. package/src/styles/localGlobal.css +0 -20
  670. package/src/styles/themes/dark.css +0 -132
  671. package/src/styles/themes/darkBlue.css +0 -132
  672. package/src/styles/themes/light.css +0 -132
  673. package/src/theme/ThemeProvider.tsx +0 -164
  674. package/src/types/global.d.ts +0 -13
  675. package/src/types/tanstack.d.ts +0 -40
  676. package/src/utils/toFirstLetterLowerCase.ts +0 -3
  677. package/src/utils/toFirstLetterUpperCase.ts +0 -3
  678. package/tsconfig.dist.json +0 -17
  679. package/tsconfig.json +0 -48
  680. package/vite.config.ts +0 -13
  681. package/webpack.dist.config.cjs +0 -105
  682. package/werf-giterminism.yaml +0 -19
  683. package/werf.yaml +0 -8
  684. package/wiki/VirtualTable.md +0 -660
package/index.mjs.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","mappings":"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","sources":["webpack://nntc-ui/./node_modules/dayjs/dayjs.min.js","webpack://nntc-ui/./node_modules/classnames/index.js","webpack://nntc-ui/webpack/bootstrap","webpack://nntc-ui/webpack/runtime/compat get default export","webpack://nntc-ui/webpack/runtime/concatenation wrap","webpack://nntc-ui/webpack/runtime/define property getters","webpack://nntc-ui/webpack/runtime/hasOwnProperty shorthand","webpack://nntc-ui/webpack/runtime/make namespace object","webpack://nntc-ui/webpack/runtime/nonce","webpack://nntc-ui/./node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js","webpack://nntc-ui/./node_modules/use-sync-external-store/shim/index.js","webpack://nntc-ui/external module \"react\"","webpack://nntc-ui/./src/components/inputs/Button/button.module.css?a636","webpack://nntc-ui/./src/components/inputs/Button/Button.tsx","webpack://nntc-ui/./node_modules/react-merge-refs/dist/index.js","webpack://nntc-ui/./src/components/data-display/Typography/typography.module.css?9a66","webpack://nntc-ui/./src/components/data-display/Typography/Typography.tsx","webpack://nntc-ui/./src/hooks/useCompatId.ts","webpack://nntc-ui/./src/icons/Icon.tsx","webpack://nntc-ui/./src/icons/CheckboxDeselectedIcon.tsx","webpack://nntc-ui/./src/icons/CheckboxIcon.tsx","webpack://nntc-ui/./src/icons/CheckboxSeveralIcon.tsx","webpack://nntc-ui/./src/components/inputs/Checkbox/checkbox.module.css?9ec3","webpack://nntc-ui/./src/components/inputs/Checkbox/Checkbox.tsx","webpack://nntc-ui/./node_modules/uuid/dist/rng.js","webpack://nntc-ui/./node_modules/uuid/dist/stringify.js","webpack://nntc-ui/./node_modules/uuid/dist/v4.js","webpack://nntc-ui/./src/components/data-display/Tooltip/tooltip.module.css?c228","webpack://nntc-ui/./node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","webpack://nntc-ui/./node_modules/tabbable/dist/index.esm.js","webpack://nntc-ui/./node_modules/@floating-ui/react/dist/floating-ui.react.utils.mjs","webpack://nntc-ui/./node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","webpack://nntc-ui/./node_modules/@floating-ui/core/dist/floating-ui.core.mjs","webpack://nntc-ui/./node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","webpack://nntc-ui/./node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs","webpack://nntc-ui/./node_modules/@floating-ui/react/dist/floating-ui.react.mjs","webpack://nntc-ui/./src/components/data-display/Tooltip/ui/TooltipProvider/constants/TooltipContext.ts","webpack://nntc-ui/./src/components/data-display/Tooltip/ui/TooltipContent/TooltipContent.tsx","webpack://nntc-ui/./src/components/data-display/Tooltip/ui/TooltipProvider/TooltipProvider.tsx","webpack://nntc-ui/./src/components/data-display/Tooltip/ui/TooltipProvider/hooks/useTooltip.ts","webpack://nntc-ui/./src/components/data-display/Tooltip/ui/TooltipTrigger/TooltipTrigger.tsx","webpack://nntc-ui/./src/components/data-display/Tooltip/Tooltip.tsx","webpack://nntc-ui/./src/components/inputs/FieldShell/fieldShell.module.css?091b","webpack://nntc-ui/./src/components/inputs/FieldShell/FieldShell.tsx","webpack://nntc-ui/./src/icons/ErrorOutlineIcon.tsx","webpack://nntc-ui/./src/components/inputs/FieldShell/FieldErrorIcon.tsx","webpack://nntc-ui/./src/icons/CloseIcon.tsx","webpack://nntc-ui/./src/components/inputs/InputChip/inputChip.module.css?b88b","webpack://nntc-ui/./src/components/inputs/InputChip/InputChip.tsx","webpack://nntc-ui/./src/components/utils/Popover/ui/PopoverProvider/constants/PopoverContext.ts","webpack://nntc-ui/./src/components/utils/Popover/ui/PopoverContent/PopoverContent.tsx","webpack://nntc-ui/./src/components/utils/Popover/ui/PopoverProvider/PopoverProvider.tsx","webpack://nntc-ui/./src/components/utils/Popover/ui/PopoverProvider/hooks/usePopover.ts","webpack://nntc-ui/./src/components/utils/Popover/ui/PopoverTrigger/PopoverTrigger.tsx","webpack://nntc-ui/./src/components/utils/Popover/Popover.tsx","webpack://nntc-ui/./src/components/utils/Popover/popover.module.css?7125","webpack://nntc-ui/./src/icons/AddIcon.tsx","webpack://nntc-ui/./src/icons/ArrowDropDownIcon.tsx","webpack://nntc-ui/./src/icons/ArrowDropUpIcon.tsx","webpack://nntc-ui/./src/icons/AttachIcon.tsx","webpack://nntc-ui/./src/icons/BarChartIcon.tsx","webpack://nntc-ui/./src/icons/DonutIcon.tsx","webpack://nntc-ui/./src/icons/LooksOneIcon.tsx","webpack://nntc-ui/./src/icons/MapIcon.tsx","webpack://nntc-ui/./src/icons/ScatterPlotIcon.tsx","webpack://nntc-ui/./src/icons/RadioDeselectedIcon.tsx","webpack://nntc-ui/./src/icons/RadioSelectedIcon.tsx","webpack://nntc-ui/./src/icons/ChevronLeftIcon.tsx","webpack://nntc-ui/./src/icons/ChevronRightIcon.tsx","webpack://nntc-ui/./src/icons/CircleFilledIcon.tsx","webpack://nntc-ui/./src/icons/DateRangeIcon.tsx","webpack://nntc-ui/./src/icons/DeleteIcon.tsx","webpack://nntc-ui/./src/icons/DoneIcon.tsx","webpack://nntc-ui/./src/icons/DragIcon.tsx","webpack://nntc-ui/./src/icons/FileUploadIcon.tsx","webpack://nntc-ui/./src/icons/FilterIcon.tsx","webpack://nntc-ui/./src/icons/FilterClearIcon.tsx","webpack://nntc-ui/./src/icons/InfoIcon.tsx","webpack://nntc-ui/./src/icons/AlertIcon.tsx","webpack://nntc-ui/./src/icons/ChevronUpIcon.tsx","webpack://nntc-ui/./src/icons/ChevronDownIcon.tsx","webpack://nntc-ui/./src/icons/ListIcon.tsx","webpack://nntc-ui/./src/icons/MoreVerticalIcon.tsx","webpack://nntc-ui/./src/icons/SearchIcon.tsx","webpack://nntc-ui/./src/icons/SelectUniqueIcon.tsx","webpack://nntc-ui/./src/icons/SettingsIcon.tsx","webpack://nntc-ui/./src/icons/SortDownIcon.tsx","webpack://nntc-ui/./src/icons/SortUpIcon.tsx","webpack://nntc-ui/./src/icons/TableChartIcon.tsx","webpack://nntc-ui/./src/icons/UploadIcon.tsx","webpack://nntc-ui/./src/icons/WellIcon.tsx","webpack://nntc-ui/./src/icons/EditIcon.tsx","webpack://nntc-ui/./src/icons/FullScreenOnIcon.tsx","webpack://nntc-ui/./src/icons/FullScreenOffIcon.tsx","webpack://nntc-ui/./src/icons/BookmarkIcon.tsx","webpack://nntc-ui/./src/icons/BookmarkAddIcon.tsx","webpack://nntc-ui/./src/icons/ExportTableIcon.tsx","webpack://nntc-ui/./src/icons/DownloadIcon.tsx","webpack://nntc-ui/./src/icons/VisibilityIcon.tsx","webpack://nntc-ui/./src/icons/PointIcon.tsx","webpack://nntc-ui/./src/icons/SaveIcon.tsx","webpack://nntc-ui/./src/components/utils/Popover/ui/Arrow/Arrow.tsx","webpack://nntc-ui/./src/components/inputs/ButtonsGroup/ButtonsGroup.tsx","webpack://nntc-ui/./src/components/inputs/ButtonsGroup/buttonsGroup.module.css?8192","webpack://nntc-ui/./src/components/navigation/Menu/menu.module.css?a1d2","webpack://nntc-ui/./src/components/navigation/Menu/Menu.tsx","webpack://nntc-ui/./src/components/inputs/Select/ui/SelectPopover/SelectPopover.tsx","webpack://nntc-ui/./src/components/inputs/Select/Select.tsx","webpack://nntc-ui/./src/components/inputs/Select/select.module.css?5dc4","webpack://nntc-ui/./src/components/inputs/DateTime/ui/CalendarPopover/calendarPopover.module.css?bda0","webpack://nntc-ui/./src/components/inputs/DateTime/utils/createCalendarDate.ts","webpack://nntc-ui/./src/components/inputs/DateTime/ui/TimeWheelColumn/TimeWheelColumn.tsx","webpack://nntc-ui/./src/components/inputs/DateTime/ui/TimeWheelColumn/timeWheelColumn.module.css?a8e6","webpack://nntc-ui/./src/components/inputs/DateTime/ui/CalendarPopover/CalendarPopover.tsx","webpack://nntc-ui/./src/components/inputs/DateTime/DateTime.tsx","webpack://nntc-ui/./src/components/inputs/DateTime/dateTime.module.css?5ac0","webpack://nntc-ui/./node_modules/react-colorful/dist/index.mjs","webpack://nntc-ui/./src/components/inputs/ColorPicker/ColorPicker.tsx","webpack://nntc-ui/./src/components/inputs/ColorPicker/colorPicker.module.css?ed83","webpack://nntc-ui/./src/components/inputs/Input/input.module.css?5d2f","webpack://nntc-ui/./src/components/inputs/Input/Input.tsx","webpack://nntc-ui/./src/components/inputs/WrapForLabel/wrapForLabel.module.css?935d","webpack://nntc-ui/./src/components/inputs/WrapForLabel/WrapForLabel.tsx","webpack://nntc-ui/./node_modules/react-i18next/dist/es/context.js","webpack://nntc-ui/./node_modules/react-i18next/dist/es/i18nInstance.js","webpack://nntc-ui/./node_modules/react-i18next/dist/es/unescape.js","webpack://nntc-ui/./node_modules/react-i18next/dist/es/defaults.js","webpack://nntc-ui/./node_modules/react-i18next/dist/es/utils.js","webpack://nntc-ui/./node_modules/react-i18next/dist/es/useTranslation.js","webpack://nntc-ui/./src/hooks/useTranslation.ts","webpack://nntc-ui/./src/components/inputs/Checklist/utils/filterItems.ts","webpack://nntc-ui/./src/components/inputs/Checklist/Checklist.tsx","webpack://nntc-ui/./src/components/inputs/Checklist/checklist.module.css?728f","webpack://nntc-ui/./src/components/inputs/MultiSelect/ui/SelectPopover/SelectPopover.tsx","webpack://nntc-ui/./src/components/inputs/MultiSelect/utils/getTitle.ts","webpack://nntc-ui/./src/components/inputs/MultiSelect/MultiSelect.tsx","webpack://nntc-ui/./src/components/inputs/MultiSelect/multiSelect.module.css?adb4","webpack://nntc-ui/./src/components/inputs/RadioButton/radioButton.module.css?75aa","webpack://nntc-ui/./src/components/inputs/RadioButton/RadioButton.tsx","webpack://nntc-ui/./node_modules/@tanstack/table-core/build/lib/index.mjs","webpack://nntc-ui/./node_modules/@tanstack/react-table/build/lib/index.mjs","webpack://nntc-ui/./node_modules/@tanstack/virtual-core/dist/esm/utils.js","webpack://nntc-ui/./node_modules/@tanstack/virtual-core/dist/esm/index.js","webpack://nntc-ui/./node_modules/@tanstack/virtual-core/dist/esm/lazy-measurements.js","webpack://nntc-ui/./node_modules/@tanstack/react-virtual/dist/esm/index.js","webpack://nntc-ui/./src/components/feedback/Modal/Modal.tsx","webpack://nntc-ui/./src/components/feedback/Modal/modal.module.css?dbfe","webpack://nntc-ui/./src/components/surfaces/Surface/surface.module.css?68f8","webpack://nntc-ui/./src/components/surfaces/Surface/Surface.tsx","webpack://nntc-ui/./src/components/data-display/VirtualTable/virtualTable.module.css?a323","webpack://nntc-ui/./src/components/data-display/VirtualTable/ui/DefaultColumn/DefaultColumn.tsx","webpack://nntc-ui/./src/components/data-display/VirtualTable/utils/alphanumericCompare.ts","webpack://nntc-ui/./src/components/data-display/VirtualTable/ui/DateFiltration/DateFiltration.tsx","webpack://nntc-ui/./src/components/data-display/VirtualTable/ui/DateFiltration/dateFiltration.module.css?9698","webpack://nntc-ui/./src/components/data-display/VirtualTable/ui/NumberFiltration/numberFiltration.module.css?267a","webpack://nntc-ui/./src/components/data-display/VirtualTable/ui/NumberFiltration/NumberFiltration.tsx","webpack://nntc-ui/./src/components/data-display/VirtualTable/ui/HeaderDropdown/HeaderDropdown.tsx","webpack://nntc-ui/./src/components/data-display/VirtualTable/ui/HeaderDropdown/headerDropdown.module.css?b943","webpack://nntc-ui/./src/components/data-display/VirtualTable/utils/dedupeFirstByColumnValue.ts","webpack://nntc-ui/./src/components/data-display/VirtualTable/utils/getColumns.ts","webpack://nntc-ui/./src/components/data-display/VirtualTable/utils/getNextHorizontalHeaders.ts","webpack://nntc-ui/./src/components/data-display/VirtualTable/utils/getPrevVerticalHeaders.ts","webpack://nntc-ui/./src/components/data-display/VirtualTable/utils/getNextVerticalHeaders.ts","webpack://nntc-ui/./src/components/data-display/VirtualTable/utils/getPrevHorizontalHeaders.ts","webpack://nntc-ui/./src/components/data-display/VirtualTable/utils/rowMatchesFilter.ts","webpack://nntc-ui/./src/components/data-display/VirtualTable/utils/recursiveFilter.ts","webpack://nntc-ui/./src/components/data-display/VirtualTable/utils/recursiveSort.ts","webpack://nntc-ui/./src/components/data-display/VirtualTable/utils/rowSelection.ts","webpack://nntc-ui/./src/components/data-display/VirtualTable/VirtualTable.tsx","webpack://nntc-ui/./src/utils/toFirstLetterUpperCase.ts","webpack://nntc-ui/./src/components/data-display/TreeView/treeView.module.css?7f23","webpack://nntc-ui/./src/components/data-display/TreeView/ui/TreeViewItem/treeViewItem.module.css?2053","webpack://nntc-ui/./src/components/data-display/TreeView/ui/TreeViewItem/TreeViewItem.tsx","webpack://nntc-ui/./src/components/data-display/TreeView/utils/getFilteredTree.ts","webpack://nntc-ui/./src/components/data-display/TreeView/TreeView.tsx","webpack://nntc-ui/./src/components/data-display/Pairs/pairs.module.css?9a1c","webpack://nntc-ui/./src/components/data-display/Pairs/ui/TypographyWithTooltip.tsx","webpack://nntc-ui/./src/components/data-display/Pairs/Pairs.tsx","webpack://nntc-ui/./src/components/data-display/Chip/chip.module.css?a60f","webpack://nntc-ui/./src/components/data-display/Chip/Chip.tsx","webpack://nntc-ui/./src/components/feedback/Loader/Loader.tsx","webpack://nntc-ui/./src/components/feedback/Loader/loader.module.css?51e8","webpack://nntc-ui/./src/components/feedback/Alert/alert.module.css?ee08","webpack://nntc-ui/./src/components/feedback/Alert/Alert.tsx","webpack://nntc-ui/./src/components/surfaces/Card/card.module.css?1872","webpack://nntc-ui/./src/components/surfaces/Card/Card.tsx","webpack://nntc-ui/./src/components/navigation/Tabs/tabs.module.css?6039","webpack://nntc-ui/./src/components/navigation/Tabs/Tabs.tsx","webpack://nntc-ui/./src/components/layout/Layout/Layout.tsx","webpack://nntc-ui/./src/components/layout/Layout/layout.module.css?46de","webpack://nntc-ui/./src/theme/ThemeProvider.tsx"],"sourcesContent":["!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|YYYY|YY|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),Y=_.prototype;return O.prototype=Y,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){Y[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// The module cache\nconst __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tconst cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tconst module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tconst getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// wrap a concatenated module body as a lazy, memoized accessor; mod is\n// set before the body runs so re-entrant calls (require cycles) observe\n// the partial exports like Node.js\n__webpack_require__.cw = (body) => {\n\tvar mod;\n\treturn () => {\n\t\tif (body) {\n\t\t\tvar fn = body;\n\t\t\tbody = 0;\n\t\t\tmod = { exports: {} };\n\t\t\tfn.call(mod.exports, mod, mod.exports);\n\t\t}\n\t\treturn mod.exports;\n\t};\n};","// define getter/value functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop));","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nc = undefined;","/**\n * @license React\n * use-sync-external-store-shim.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\");\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n useState = React.useState,\n useEffect = React.useEffect,\n useLayoutEffect = React.useLayoutEffect,\n useDebugValue = React.useDebugValue;\nfunction useSyncExternalStore$2(subscribe, getSnapshot) {\n var value = getSnapshot(),\n _useState = useState({ inst: { value: value, getSnapshot: getSnapshot } }),\n inst = _useState[0].inst,\n forceUpdate = _useState[1];\n useLayoutEffect(\n function () {\n inst.value = value;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n },\n [subscribe, value, getSnapshot]\n );\n useEffect(\n function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n });\n },\n [subscribe]\n );\n useDebugValue(value);\n return value;\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction useSyncExternalStore$1(subscribe, getSnapshot) {\n return getSnapshot();\n}\nvar shim =\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ? useSyncExternalStore$1\n : useSyncExternalStore$2;\nexports.useSyncExternalStore =\n void 0 !== React.useSyncExternalStore ? React.useSyncExternalStore : shim;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = __WEBPACK_EXTERNAL_MODULE_react__;","// extracted by mini-css-extract-plugin\nvar _1 = \"button-module__active__J1ZMQ\";\nvar _2 = \"button-module__compact___dXxT\";\nvar _3 = \"button-module__elevated__DfXlq\";\nvar _4 = \"button-module__extraLarge__G1XhO\";\nvar _5 = \"button-module__filled__tpB2J\";\nvar _6 = \"button-module__large__QVzg5\";\nvar _7 = \"button-module__medium__NzTCo\";\nvar _8 = \"button-module__only-icon__MYlMe\";\nvar _9 = \"button-module__outlined__U7Ix5\";\nvar _a = \"button-module__root__d8Qm7\";\nvar _b = \"button-module__small__yTLSt\";\nvar _c = \"button-module__state-layer__ZxKUR\";\nvar _d = \"button-module__text__ThaTQ\";\nvar _e = \"button-module__text-secondary__UtgHY\";\nvar _f = \"button-module__tonal__LGQFG\";\nvar _10 = \"button-module__with-icon__JrK73\";\nvar _11 = \"button-module__without-icon__xZxlu\";\nexport { _1 as \"active\", _2 as \"compact\", _3 as \"elevated\", _4 as \"extraLarge\", _5 as \"filled\", _6 as \"large\", _7 as \"medium\", _8 as \"onlyIcon\", _9 as \"outlined\", _a as \"root\", _b as \"small\", _c as \"stateLayer\", _d as \"text\", _e as \"textSecondary\", _f as \"tonal\", _10 as \"withIcon\", _11 as \"withoutIcon\" }\n","import classnames from 'classnames';\nimport { ButtonHTMLAttributes, DetailedHTMLProps, ReactNode, forwardRef } from 'react';\n\nimport { ButtonVariant } from '@models/ButtonVariant';\nimport { FieldSize } from '@models/FieldSize';\nimport { UiProps } from '@models/UiProps';\n\nimport * as styles from './button.module.css';\n\nexport interface Props {\n variant?: ButtonVariant;\n componentSize?: FieldSize;\n icon?: ReactNode;\n textSecondary?: boolean;\n isActive?: boolean;\n compact?: boolean;\n}\n\nexport const Button = forwardRef<\n HTMLButtonElement,\n DetailedHTMLProps<ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement> & UiProps<Props>\n>(function Button(\n {\n variant = 'filled',\n componentSize = 'medium',\n icon,\n textSecondary,\n isActive,\n compact,\n className,\n children,\n classes,\n ...buttonProps\n },\n propRef,\n) {\n return (\n <button\n className={classnames(\n styles.root,\n styles[variant as keyof typeof styles],\n styles[componentSize as keyof typeof styles],\n !icon ? styles.withoutIcon : !children ? styles.onlyIcon : styles.withIcon,\n isActive ? styles.active : undefined,\n textSecondary ? styles.textSecondary : undefined,\n compact ? styles.compact : undefined,\n className,\n classes?.root,\n )}\n {...buttonProps}\n ref={propRef}\n >\n <span className={classnames(styles.stateLayer, classes?.stateLayer)}>\n {icon}\n {children}\n </span>\n </button>\n );\n});\n","// src/index.ts\nimport { useMemo, version } from \"react\";\n\n// src/mergeRefsReact16.ts\nfunction mergeRefsReact16(refs) {\n return (value) => {\n for (const ref of refs) assignRef(ref, value);\n };\n}\n\n// src/mergeRefsReact19.ts\nfunction mergeRefsReact19(refs) {\n return (value) => {\n const cleanups = [];\n for (const ref of refs) {\n const cleanup = assignRef(ref, value);\n const isCleanup = typeof cleanup === \"function\";\n cleanups.push(isCleanup ? cleanup : () => assignRef(ref, null));\n }\n return () => {\n for (const cleanup of cleanups) cleanup();\n };\n };\n}\n\n// src/index.ts\nfunction assignRef(ref, value) {\n if (typeof ref === \"function\") {\n return ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}\nvar mergeRefs = parseInt(version.split(\".\")[0], 10) >= 19 ? mergeRefsReact19 : mergeRefsReact16;\nfunction useMergeRefs(refs) {\n return useMemo(() => mergeRefs(refs), refs);\n}\nexport {\n assignRef,\n mergeRefs,\n useMergeRefs\n};\n","// extracted by mini-css-extract-plugin\nvar _1 = \"typography-module__body1__aH5C7\";\nvar _2 = \"typography-module__body2__tLnbZ\";\nvar _3 = \"typography-module__body3__ArlMM\";\nvar _4 = \"typography-module__button__QH0WB\";\nvar _5 = \"typography-module__caption__Um0hc\";\nvar _6 = \"typography-module__caption2__ftlcn\";\nvar _7 = \"typography-module__doubleCaption__DKOZy\";\nvar _8 = \"typography-module__h1__WhV07\";\nvar _9 = \"typography-module__h2__wu3B3\";\nvar _a = \"typography-module__h3__g4nW1\";\nvar _b = \"typography-module__h4__bevKW\";\nvar _c = \"typography-module__h5__zljak\";\nvar _d = \"typography-module__h6__mAHOd\";\nvar _e = \"typography-module__h7__k_Iry\";\nvar _f = \"typography-module__label__jNXgm\";\nvar _10 = \"typography-module__overline__LOINe\";\nvar _11 = \"typography-module__subtitle1__D0BxG\";\nvar _12 = \"typography-module__subtitle2__DLkzN\";\nvar _13 = \"typography-module__subtitle3__Yqzol\";\nexport { _1 as \"body1\", _2 as \"body2\", _3 as \"body3\", _4 as \"button\", _5 as \"caption\", _6 as \"caption2\", _7 as \"doubleCaption\", _8 as \"h1\", _9 as \"h2\", _a as \"h3\", _b as \"h4\", _c as \"h5\", _d as \"h6\", _e as \"h7\", _f as \"label\", _10 as \"overline\", _11 as \"subtitle1\", _12 as \"subtitle2\", _13 as \"subtitle3\" }\n","import classnames from 'classnames';\nimport { ElementType, HTMLProps, forwardRef } from 'react';\n\nimport { TypographyVariant } from '@models/TypographyVariant';\n\nimport * as styles from './typography.module.css';\n\ninterface Props {\n variant?: TypographyVariant;\n component?: ElementType;\n}\n\nexport const Typography = forwardRef<HTMLParagraphElement, HTMLProps<HTMLParagraphElement> & Props>(function Typography(\n { variant = 'body2', component, children, className, ...typographyProps },\n propRef,\n) {\n const Component = component || 'span';\n\n return (\n <Component\n className={classnames(styles[variant as keyof typeof styles], className)}\n {...typographyProps}\n ref={propRef}\n >\n {children}\n </Component>\n );\n});\n","import * as React from 'react';\nimport { useMemo } from 'react';\n\ntype ReactWithOptionalUseId = typeof React & { useId?: () => string };\n\nexport function useCompatId(): string {\n const react = React as ReactWithOptionalUseId;\n if (typeof react.useId === 'function') {\n return react.useId();\n }\n return useMemo(() => `nntc-ui-${Math.random().toString(36).slice(2, 11)}`, []);\n}\n","import React, { PropsWithChildren } from 'react';\n\nexport interface IconProps {\n size?: number;\n color?: string;\n className?: string;\n}\n\nexport const Icon: React.FC<PropsWithChildren<IconProps>> = ({\n size = 24,\n color = 'currentColor',\n className,\n children,\n}) => {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill={color}\n className={className}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n {children}\n </svg>\n );\n};\n","import React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const CheckboxDeselectedIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\" />\n </Icon>\n);\n","/* eslint-disable max-len */\nimport React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const CheckboxIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\" />\n </Icon>\n);\n","/* eslint-disable max-len */\nimport React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const CheckboxSeveralIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2zm0-4H7V7h10v2z\" />\n </Icon>\n);\n","// extracted by mini-css-extract-plugin\nvar _1 = \"checkbox-module__checkbox__yO066\";\nvar _2 = \"checkbox-module__deselected__xrQoR\";\nvar _3 = \"checkbox-module__input__qmuqO\";\nvar _4 = \"checkbox-module__label__wmkmp\";\nvar _5 = \"checkbox-module__label-text__uUcXJ\";\nvar _6 = \"checkbox-module__pressed__lPIee\";\nvar _7 = \"checkbox-module__root__AzwHw\";\nvar _8 = \"checkbox-module__selected__MsgZN\";\nvar _9 = \"checkbox-module__several__MIC_C\";\nexport { _1 as \"checkbox\", _2 as \"deselected\", _3 as \"input\", _4 as \"label\", _5 as \"labelText\", _6 as \"pressed\", _7 as \"root\", _8 as \"selected\", _9 as \"several\" }\n","import classnames from 'classnames';\nimport { DetailedHTMLProps, InputHTMLAttributes, forwardRef, useEffect, useRef } from 'react';\nimport { mergeRefs } from 'react-merge-refs';\n\nimport { Typography } from '@components/data-display/Typography';\nimport { useCompatId } from '@hooks/useCompatId';\nimport { CheckboxDeselectedIcon } from '@icons/CheckboxDeselectedIcon';\nimport { CheckboxIcon } from '@icons/CheckboxIcon';\nimport { CheckboxSeveralIcon } from '@icons/CheckboxSeveralIcon';\nimport { CheckboxSize } from '@models/CheckboxSize';\nimport { UiProps } from '@models/UiProps';\n\nimport * as styles from './checkbox.module.css';\n\ninterface Props {\n label?: string;\n componentSize?: CheckboxSize;\n several?: boolean;\n}\n\nexport const Checkbox = forwardRef<\n HTMLInputElement,\n UiProps<Props> & DetailedHTMLProps<InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>\n>(function Checkbox(props, ref) {\n const { label, several, componentSize = 'medium', classes, id, ...inputProps } = props;\n\n const inputRef = useRef<HTMLInputElement>(null);\n const generatedId = useCompatId();\n const inputId = id ?? generatedId;\n\n useEffect(() => {\n const el = inputRef.current;\n if (!el) return;\n\n const mouseupListener = () => el.classList.remove(styles.pressed);\n const mousedownListener = () => el.classList.add(styles.pressed);\n\n el.addEventListener('mousedown', mousedownListener);\n el.addEventListener('mouseup', mouseupListener);\n\n return () => {\n el.removeEventListener('mousedown', mousedownListener);\n el.removeEventListener('mouseup', mouseupListener);\n };\n }, []);\n\n const typographyVariant = componentSize === 'large' ? 'subtitle1' : 'subtitle2';\n\n return (\n <div className={classnames(styles.root, classes?.root)}>\n <input\n ref={mergeRefs([inputRef, ref])}\n type=\"checkbox\"\n className={classnames(styles.input, classes?.input)}\n id={inputId}\n title={label}\n {...inputProps}\n />\n <label htmlFor={inputId} className={classnames(styles.label, classes?.label)} title={label}>\n {several ? (\n <span className={classnames(styles.checkbox, styles.several, classes?.checkbox)}>\n <CheckboxSeveralIcon />\n </span>\n ) : (\n <>\n <span className={classnames(styles.checkbox, styles.deselected, classes?.checkbox)}>\n <CheckboxDeselectedIcon />\n </span>\n <span className={classnames(styles.checkbox, styles.selected, classes?.checkbox)}>\n <CheckboxIcon />\n </span>\n </>\n )}\n {!!label && (\n <Typography variant={typographyVariant} className={classnames(styles.labelText, classes?.labelText)}>\n {label}\n </Typography>\n )}\n </label>\n </div>\n );\n});\n","const rnds8 = new Uint8Array(16);\nexport default function rng() {\n return crypto.getRandomValues(rnds8);\n}\n","import validate from './validate.js';\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nexport function unsafeStringify(arr, offset = 0) {\n return (byteToHex[arr[offset + 0]] +\n byteToHex[arr[offset + 1]] +\n byteToHex[arr[offset + 2]] +\n byteToHex[arr[offset + 3]] +\n '-' +\n byteToHex[arr[offset + 4]] +\n byteToHex[arr[offset + 5]] +\n '-' +\n byteToHex[arr[offset + 6]] +\n byteToHex[arr[offset + 7]] +\n '-' +\n byteToHex[arr[offset + 8]] +\n byteToHex[arr[offset + 9]] +\n '-' +\n byteToHex[arr[offset + 10]] +\n byteToHex[arr[offset + 11]] +\n byteToHex[arr[offset + 12]] +\n byteToHex[arr[offset + 13]] +\n byteToHex[arr[offset + 14]] +\n byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset);\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\nexport default stringify;\n","import rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nfunction v4(options, buf, offset) {\n if (!buf && !options && crypto.randomUUID) {\n return crypto.randomUUID();\n }\n return _v4(options, buf, offset);\n}\nfunction _v4(options, buf, offset) {\n options = options || {};\n const rnds = options.random ?? options.rng?.() ?? rng();\n if (rnds.length < 16) {\n throw new Error('Random bytes length must be >= 16');\n }\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n if (buf) {\n offset = offset || 0;\n if (offset < 0 || offset + 16 > buf.length) {\n throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);\n }\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return unsafeStringify(rnds);\n}\nexport default v4;\n","// extracted by mini-css-extract-plugin\nvar _1 = \"tooltip-module__arrow__t3qHm\";\nvar _2 = \"tooltip-module__bottom-arrow__BY759\";\nvar _3 = \"tooltip-module__content__GmJjH\";\nvar _4 = \"tooltip-module__error__asP80\";\nvar _5 = \"tooltip-module__info__SGNDR\";\nvar _6 = \"tooltip-module__left-arrow__Wpg7W\";\nvar _7 = \"tooltip-module__right-arrow__qwOJk\";\nvar _8 = \"tooltip-module__success__f_f_u\";\nvar _9 = \"tooltip-module__top-arrow__k7G3S\";\nvar _a = \"tooltip-module__trigger__fBwzk\";\nvar _b = \"tooltip-module__warning__aZtHW\";\nexport { _1 as \"arrow\", _2 as \"bottomArrow\", _3 as \"content\", _4 as \"error\", _5 as \"info\", _6 as \"leftArrow\", _7 as \"rightArrow\", _8 as \"success\", _9 as \"topArrow\", _a as \"trigger\", _b as \"warning\" }\n","function hasWindow() {\n return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && display !== 'inline' && display !== 'contents';\n}\nfunction isTableElement(element) {\n return /^(table|td|th)$/.test(getNodeName(element));\n}\nfunction isTopLayer(element) {\n try {\n if (element.matches(':popover-open')) {\n return true;\n }\n } catch (_e) {\n // no-op\n }\n try {\n return element.matches(':modal');\n } catch (_e) {\n return false;\n }\n}\nconst willChangeRe = /transform|translate|scale|rotate|perspective|filter/;\nconst containRe = /paint|layout|strict|content/;\nconst isNotNone = value => !!value && value !== 'none';\nlet isWebKitValue;\nfunction isContainingBlock(elementOrCss) {\n const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n // https://drafts.csswg.org/css-transforms-2/#individual-transforms\n return isNotNone(css.transform) || isNotNone(css.translate) || isNotNone(css.scale) || isNotNone(css.rotate) || isNotNone(css.perspective) || !isWebKit() && (isNotNone(css.backdropFilter) || isNotNone(css.filter)) || willChangeRe.test(css.willChange || '') || containRe.test(css.contain || '');\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else if (isTopLayer(currentNode)) {\n return null;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (isWebKitValue == null) {\n isWebKitValue = typeof CSS !== 'undefined' && CSS.supports && CSS.supports('-webkit-backdrop-filter', 'none');\n }\n return isWebKitValue;\n}\nfunction isLastTraversableNode(node) {\n return /^(html|body|#document)$/.test(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.scrollX,\n scrollTop: element.scrollY\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return (node.ownerDocument || node).body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n const frameElement = getFrameElement(win);\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n } else {\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n }\n}\nfunction getFrameElement(win) {\n return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n","/*!\n* tabbable 6.5.0\n* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE\n*/\n// NOTE: separate `:not()` selectors has broader browser support than the newer\n// `:not([inert], [inert] *)` (Feb 2023)\nvar candidateSelectors = ['input:not([inert]):not([inert] *)', 'select:not([inert]):not([inert] *)', 'textarea:not([inert]):not([inert] *)', 'a[href]:not([inert]):not([inert] *)', 'area[href]:not([inert]):not([inert] *)', 'button:not([inert]):not([inert] *)', '[tabindex]:not(slot):not([inert]):not([inert] *)', 'audio[controls]:not([inert]):not([inert] *)', 'video[controls]:not([inert]):not([inert] *)', '[contenteditable]:not([contenteditable=\"false\"]):not([inert]):not([inert] *)', 'details>summary:first-of-type:not([inert]):not([inert] *)', 'details:not([inert]):not([inert] *)'];\nvar candidateSelector = /* #__PURE__ */candidateSelectors.join(',');\nvar NoElement = typeof Element === 'undefined';\nvar matches = NoElement ? function () {} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\nvar getRootNode = !NoElement && Element.prototype.getRootNode ? function (element) {\n var _element$getRootNode;\n return element === null || element === void 0 ? void 0 : (_element$getRootNode = element.getRootNode) === null || _element$getRootNode === void 0 ? void 0 : _element$getRootNode.call(element);\n} : function (element) {\n return element === null || element === void 0 ? void 0 : element.ownerDocument;\n};\n\n/**\n * Determines if a node is inert or in an inert ancestor.\n * @param {Node} [node]\n * @param {boolean} [lookUp] If true and `node` is not inert, looks up at ancestors to\n * see if any of them are inert. If false, only `node` itself is considered.\n * @returns {boolean} True if inert itself or by way of being in an inert ancestor.\n * False if `node` is falsy.\n */\nvar _isInert = function isInert(node, lookUp) {\n var _node$getAttribute;\n if (lookUp === void 0) {\n lookUp = true;\n }\n // CAREFUL: JSDom does not support inert at all, so we can't use the `HTMLElement.inert`\n // JS API property; we have to check the attribute, which can either be empty or 'true';\n // if it's `null` (not specified) or 'false', it's an active element\n var inertAtt = node === null || node === void 0 ? void 0 : (_node$getAttribute = node.getAttribute) === null || _node$getAttribute === void 0 ? void 0 : _node$getAttribute.call(node, 'inert');\n var inert = inertAtt === '' || inertAtt === 'true';\n\n // NOTE: this could also be handled with `node.matches('[inert], :is([inert] *)')`\n // if it weren't for `matches()` not being a function on shadow roots; the following\n // code works for any kind of node\n var result = inert || lookUp && node && (\n // closest does not exist on shadow roots, so we fall back to a manual\n // lookup upward, in case it is not defined.\n typeof node.closest === 'function' ? node.closest('[inert]') : _isInert(node.parentNode));\n return result;\n};\n\n/**\n * Determines if a node's content is editable.\n * @param {Element} [node]\n * @returns True if it's content-editable; false if it's not or `node` is falsy.\n */\nvar isContentEditable = function isContentEditable(node) {\n var _node$getAttribute2;\n // CAREFUL: JSDom does not support the `HTMLElement.isContentEditable` API so we have\n // to use the attribute directly to check for this, which can either be empty or 'true';\n // if it's `null` (not specified) or 'false', it's a non-editable element\n var attValue = node === null || node === void 0 ? void 0 : (_node$getAttribute2 = node.getAttribute) === null || _node$getAttribute2 === void 0 ? void 0 : _node$getAttribute2.call(node, 'contenteditable');\n return attValue === '' || attValue === 'true';\n};\n\n/**\n * @param {Element} el container to check in\n * @param {boolean} includeContainer add container to check\n * @param {(node: Element) => boolean} filter filter candidates\n * @returns {Element[]}\n */\nvar getCandidates = function getCandidates(el, includeContainer, filter) {\n // even if `includeContainer=false`, we still have to check it for inertness because\n // if it's inert (either by itself or via its parent), then all its children are inert\n if (_isInert(el)) {\n return [];\n }\n var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));\n if (includeContainer && matches.call(el, candidateSelector)) {\n candidates.unshift(el);\n }\n candidates = candidates.filter(filter);\n return candidates;\n};\n\n/**\n * @callback GetShadowRoot\n * @param {Element} element to check for shadow root\n * @returns {ShadowRoot|boolean} ShadowRoot if available or boolean indicating if a shadowRoot is attached but not available.\n */\n\n/**\n * @callback ShadowRootFilter\n * @param {Element} shadowHostNode the element which contains shadow content\n * @returns {boolean} true if a shadow root could potentially contain valid candidates.\n */\n\n/**\n * @typedef {Object} CandidateScope\n * @property {Element} scopeParent contains inner candidates\n * @property {Element[]} candidates list of candidates found in the scope parent\n */\n\n/**\n * @typedef {Object} IterativeOptions\n * @property {GetShadowRoot|boolean} getShadowRoot true if shadow support is enabled; falsy if not;\n * if a function, implies shadow support is enabled and either returns the shadow root of an element\n * or a boolean stating if it has an undisclosed shadow root\n * @property {(node: Element) => boolean} filter filter candidates\n * @property {boolean} flatten if true then result will flatten any CandidateScope into the returned list\n * @property {ShadowRootFilter} shadowRootFilter filter shadow roots;\n */\n\n/**\n * @param {Element[]} elements list of element containers to match candidates from\n * @param {boolean} includeContainer add container list to check\n * @param {IterativeOptions} options\n * @returns {Array.<Element|CandidateScope>}\n */\nvar _getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) {\n var candidates = [];\n var elementsToCheck = Array.from(elements);\n while (elementsToCheck.length) {\n var element = elementsToCheck.shift();\n if (_isInert(element, false)) {\n // no need to look up since we're drilling down\n // anything inside this container will also be inert\n continue;\n }\n if (element.tagName === 'SLOT') {\n // add shadow dom slot scope (slot itself cannot be focusable)\n var assigned = element.assignedElements();\n var content = assigned.length ? assigned : element.children;\n var nestedCandidates = _getCandidatesIteratively(content, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: nestedCandidates\n });\n }\n } else {\n // check candidate element\n var validCandidate = matches.call(element, candidateSelector);\n if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) {\n candidates.push(element);\n }\n\n // iterate over shadow content if possible\n var shadowRoot = element.shadowRoot ||\n // check for an undisclosed shadow\n typeof options.getShadowRoot === 'function' && options.getShadowRoot(element);\n\n // no inert look up because we're already drilling down and checking for inertness\n // on the way down, so all containers to this root node should have already been\n // vetted as non-inert\n var validShadowRoot = !_isInert(shadowRoot, false) && (!options.shadowRootFilter || options.shadowRootFilter(element));\n if (shadowRoot && validShadowRoot) {\n // add shadow dom scope IIF a shadow root node was given; otherwise, an undisclosed\n // shadow exists, so look at light dom children as fallback BUT create a scope for any\n // child candidates found because they're likely slotted elements (elements that are\n // children of the web component element (which has the shadow), in the light dom, but\n // slotted somewhere _inside_ the undisclosed shadow) -- the scope is created below,\n // _after_ we return from this recursive call\n var _nestedCandidates = _getCandidatesIteratively(shadowRoot === true ? element.children : shadowRoot.children, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, _nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: _nestedCandidates\n });\n }\n } else {\n // there's not shadow so just dig into the element's (light dom) children\n // __without__ giving the element special scope treatment\n elementsToCheck.unshift.apply(elementsToCheck, element.children);\n }\n }\n }\n return candidates;\n};\n\n/**\n * @private\n * Determines if the node has an explicitly specified `tabindex` attribute.\n * @param {HTMLElement} node\n * @returns {boolean} True if so; false if not.\n */\nvar hasTabIndex = function hasTabIndex(node) {\n return !isNaN(parseInt(node.getAttribute('tabindex'), 10));\n};\n\n/**\n * Determine the tab index of a given node.\n * @param {HTMLElement} node\n * @returns {number} Tab order (negative, 0, or positive number).\n * @throws {Error} If `node` is falsy.\n */\nvar getTabIndex = function getTabIndex(node) {\n if (!node) {\n throw new Error('No node provided');\n }\n if (node.tabIndex < 0) {\n // in Chrome, <details/>, <audio controls/> and <video controls/> elements get a default\n // `tabIndex` of -1 when the 'tabindex' attribute isn't specified in the DOM,\n // yet they are still part of the regular tab order; in FF, they get a default\n // `tabIndex` of 0; since Chrome still puts those elements in the regular tab\n // order, consider their tab index to be 0.\n // Also browsers do not return `tabIndex` correctly for contentEditable nodes;\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n if ((/^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || isContentEditable(node)) && !hasTabIndex(node)) {\n return 0;\n }\n }\n return node.tabIndex;\n};\n\n/**\n * Determine the tab index of a given node __for sort order purposes__.\n * @param {HTMLElement} node\n * @param {boolean} [isScope] True for a custom element with shadow root or slot that, by default,\n * has tabIndex -1, but needs to be sorted by document order in order for its content to be\n * inserted into the correct sort position.\n * @returns {number} Tab order (negative, 0, or positive number).\n */\nvar getSortOrderTabIndex = function getSortOrderTabIndex(node, isScope) {\n var tabIndex = getTabIndex(node);\n if (tabIndex < 0 && isScope && !hasTabIndex(node)) {\n return 0;\n }\n return tabIndex;\n};\nvar sortOrderedTabbables = function sortOrderedTabbables(a, b) {\n return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;\n};\nvar isInput = function isInput(node) {\n return node.tagName === 'INPUT';\n};\nvar isHiddenInput = function isHiddenInput(node) {\n return isInput(node) && node.type === 'hidden';\n};\nvar isDetailsWithSummary = function isDetailsWithSummary(node) {\n var r = node.tagName === 'DETAILS' && Array.prototype.slice.apply(node.children).some(function (child) {\n return child.tagName === 'SUMMARY';\n });\n return r;\n};\nvar getCheckedRadio = function getCheckedRadio(nodes, form) {\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].checked && nodes[i].form === form) {\n return nodes[i];\n }\n }\n};\nvar isTabbableRadio = function isTabbableRadio(node) {\n if (!node.name) {\n return true;\n }\n var radioScope = node.form || getRootNode(node);\n var queryRadios = function queryRadios(name) {\n return radioScope.querySelectorAll('input[type=\"radio\"][name=\"' + name + '\"]');\n };\n var radioSet;\n if (typeof window !== 'undefined' && typeof window.CSS !== 'undefined' && typeof window.CSS.escape === 'function') {\n radioSet = queryRadios(window.CSS.escape(node.name));\n } else {\n try {\n radioSet = queryRadios(node.name);\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s', err.message);\n return false;\n }\n }\n var checked = getCheckedRadio(radioSet, node.form);\n return !checked || checked === node;\n};\nvar isRadio = function isRadio(node) {\n return isInput(node) && node.type === 'radio';\n};\nvar isNonTabbableRadio = function isNonTabbableRadio(node) {\n return isRadio(node) && !isTabbableRadio(node);\n};\n\n// determines if a node is ultimately attached to the window's document\nvar isNodeAttached = function isNodeAttached(node) {\n var _nodeRoot;\n // The root node is the shadow root if the node is in a shadow DOM; some document otherwise\n // (but NOT _the_ document; see second 'If' comment below for more).\n // If rootNode is shadow root, it'll have a host, which is the element to which the shadow\n // is attached, and the one we need to check if it's in the document or not (because the\n // shadow, and all nodes it contains, is never considered in the document since shadows\n // behave like self-contained DOMs; but if the shadow's HOST, which is part of the document,\n // is hidden, or is not in the document itself but is detached, it will affect the shadow's\n // visibility, including all the nodes it contains). The host could be any normal node,\n // or a custom element (i.e. web component). Either way, that's the one that is considered\n // part of the document, not the shadow root, nor any of its children (i.e. the node being\n // tested).\n // To further complicate things, we have to look all the way up until we find a shadow HOST\n // that is attached (or find none) because the node might be in nested shadows...\n // If rootNode is not a shadow root, it won't have a host, and so rootNode should be the\n // document (per the docs) and while it's a Document-type object, that document does not\n // appear to be the same as the node's `ownerDocument` for some reason, so it's safer\n // to ignore the rootNode at this point, and use `node.ownerDocument`. Otherwise,\n // using `rootNode.contains(node)` will _always_ be true we'll get false-positives when\n // node is actually detached.\n // NOTE: If `nodeRootHost` or `node` happens to be the `document` itself (which is possible\n // if a tabbable/focusable node was quickly added to the DOM, focused, and then removed\n // from the DOM as in https://github.com/focus-trap/focus-trap-react/issues/905), then\n // `ownerDocument` will be `null`, hence the optional chaining on it.\n var nodeRoot = node && getRootNode(node);\n var nodeRootHost = (_nodeRoot = nodeRoot) === null || _nodeRoot === void 0 ? void 0 : _nodeRoot.host;\n\n // in some cases, a detached node will return itself as the root instead of a document or\n // shadow root object, in which case, we shouldn't try to look further up the host chain\n var attached = false;\n if (nodeRoot && nodeRoot !== node) {\n var _nodeRootHost, _nodeRootHost$ownerDo, _node$ownerDocument;\n attached = !!((_nodeRootHost = nodeRootHost) !== null && _nodeRootHost !== void 0 && (_nodeRootHost$ownerDo = _nodeRootHost.ownerDocument) !== null && _nodeRootHost$ownerDo !== void 0 && _nodeRootHost$ownerDo.contains(nodeRootHost) || node !== null && node !== void 0 && (_node$ownerDocument = node.ownerDocument) !== null && _node$ownerDocument !== void 0 && _node$ownerDocument.contains(node));\n while (!attached && nodeRootHost) {\n var _nodeRoot2, _nodeRootHost2, _nodeRootHost2$ownerD;\n // since it's not attached and we have a root host, the node MUST be in a nested shadow DOM,\n // which means we need to get the host's host and check if that parent host is contained\n // in (i.e. attached to) the document\n nodeRoot = getRootNode(nodeRootHost);\n nodeRootHost = (_nodeRoot2 = nodeRoot) === null || _nodeRoot2 === void 0 ? void 0 : _nodeRoot2.host;\n attached = !!((_nodeRootHost2 = nodeRootHost) !== null && _nodeRootHost2 !== void 0 && (_nodeRootHost2$ownerD = _nodeRootHost2.ownerDocument) !== null && _nodeRootHost2$ownerD !== void 0 && _nodeRootHost2$ownerD.contains(nodeRootHost));\n }\n }\n return attached;\n};\nvar isZeroArea = function isZeroArea(node) {\n var _node$getBoundingClie = node.getBoundingClientRect(),\n width = _node$getBoundingClie.width,\n height = _node$getBoundingClie.height;\n return width === 0 && height === 0;\n};\nvar isHidden = function isHidden(node, _ref) {\n var displayCheck = _ref.displayCheck,\n getShadowRoot = _ref.getShadowRoot;\n if (displayCheck === 'full-native') {\n if ('checkVisibility' in node) {\n // Chrome >= 105, Edge >= 105, Firefox >= 106, Safari >= 17.4\n // @see https://developer.mozilla.org/en-US/docs/Web/API/Element/checkVisibility#browser_compatibility\n var visible = node.checkVisibility({\n // Checking opacity might be desirable for some use cases, but natively,\n // opacity zero elements _are_ focusable and tabbable.\n checkOpacity: false,\n opacityProperty: false,\n contentVisibilityAuto: true,\n visibilityProperty: true,\n // This is an alias for `visibilityProperty`. Contemporary browsers\n // support both. However, this alias has wider browser support (Chrome\n // >= 105 and Firefox >= 106, vs. Chrome >= 121 and Firefox >= 122), so\n // we include it anyway.\n checkVisibilityCSS: true\n });\n return !visible;\n }\n // Fall through to manual visibility checks\n }\n\n // NOTE: visibility will be `undefined` if node is detached from the document\n // (see notes about this further down), which means we will consider it visible\n // (this is legacy behavior from a very long way back)\n // NOTE: we check this regardless of `displayCheck=\"none\"` because this is a\n // _visibility_ check, not a _display_ check\n var _getComputedStyle = getComputedStyle(node),\n visibility = _getComputedStyle.visibility;\n if (visibility === 'hidden' || visibility === 'collapse') {\n return true;\n }\n var isDirectSummary = matches.call(node, 'details>summary:first-of-type');\n var nodeUnderDetails = isDirectSummary ? node.parentElement : node;\n if (matches.call(nodeUnderDetails, 'details:not([open]) *')) {\n return true;\n }\n if (!displayCheck || displayCheck === 'full' ||\n // full-native can run this branch when it falls through in case\n // Element#checkVisibility is unsupported\n displayCheck === 'full-native' || displayCheck === 'legacy-full') {\n if (typeof getShadowRoot === 'function') {\n // figure out if we should consider the node to be in an undisclosed shadow and use the\n // 'non-zero-area' fallback\n var originalNode = node;\n while (node) {\n var parentElement = node.parentElement;\n var rootNode = getRootNode(node);\n if (parentElement && !parentElement.shadowRoot && getShadowRoot(parentElement) === true // check if there's an undisclosed shadow\n ) {\n // node has an undisclosed shadow which means we can only treat it as a black box, so we\n // fall back to a non-zero-area test\n return isZeroArea(node);\n } else if (node.assignedSlot) {\n // iterate up slot\n node = node.assignedSlot;\n } else if (!parentElement && rootNode !== node.ownerDocument) {\n // cross shadow boundary\n node = rootNode.host;\n } else {\n // iterate up normal dom\n node = parentElement;\n }\n }\n node = originalNode;\n }\n // else, `getShadowRoot` might be true, but all that does is enable shadow DOM support\n // (i.e. it does not also presume that all nodes might have undisclosed shadows); or\n // it might be a falsy value, which means shadow DOM support is disabled\n\n // Since we didn't find it sitting in an undisclosed shadow (or shadows are disabled)\n // now we can just test to see if it would normally be visible or not, provided it's\n // attached to the main document.\n // NOTE: We must consider case where node is inside a shadow DOM and given directly to\n // `isTabbable()` or `isFocusable()` -- regardless of `getShadowRoot` option setting.\n\n if (isNodeAttached(node)) {\n // this works wherever the node is: if there's at least one client rect, it's\n // somehow displayed; it also covers the CSS 'display: contents' case where the\n // node itself is hidden in place of its contents; and there's no need to search\n // up the hierarchy either\n return !node.getClientRects().length;\n }\n\n // Else, the node isn't attached to the document, which means the `getClientRects()`\n // API will __always__ return zero rects (this can happen, for example, if React\n // is used to render nodes onto a detached tree, as confirmed in this thread:\n // https://github.com/facebook/react/issues/9117#issuecomment-284228870)\n //\n // It also means that even window.getComputedStyle(node).display will return `undefined`\n // because styles are only computed for nodes that are in the document.\n //\n // NOTE: THIS HAS BEEN THE CASE FOR YEARS. It is not new, nor is it caused by tabbable\n // somehow. Though it was never stated officially, anyone who has ever used tabbable\n // APIs on nodes in detached containers has actually implicitly used tabbable in what\n // was later (as of v5.2.0 on Apr 9, 2021) called `displayCheck=\"none\"` mode -- essentially\n // considering __everything__ to be visible because of the innability to determine styles.\n //\n // v6.0.0: As of this major release, the default 'full' option __no longer treats detached\n // nodes as visible with the 'none' fallback.__\n if (displayCheck !== 'legacy-full') {\n return true; // hidden\n }\n // else, fallback to 'none' mode and consider the node visible\n } else if (displayCheck === 'non-zero-area') {\n // NOTE: Even though this tests that the node's client rect is non-zero to determine\n // whether it's displayed, and that a detached node will __always__ have a zero-area\n // client rect, we don't special-case for whether the node is attached or not. In\n // this mode, we do want to consider nodes that have a zero area to be hidden at all\n // times, and that includes attached or not.\n return isZeroArea(node);\n }\n\n // visible, as far as we can tell, or per current `displayCheck=none` mode, we assume\n // it's visible\n return false;\n};\n\n// form fields (nested) inside a disabled fieldset are not focusable/tabbable\n// unless they are in the _first_ <legend> element of the top-most disabled\n// fieldset\nvar isDisabledFromFieldset = function isDisabledFromFieldset(node) {\n if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) {\n var parentNode = node.parentElement;\n // check if `node` is contained in a disabled <fieldset>\n while (parentNode) {\n if (parentNode.tagName === 'FIELDSET' && parentNode.disabled) {\n // look for the first <legend> among the children of the disabled <fieldset>\n for (var i = 0; i < parentNode.children.length; i++) {\n var child = parentNode.children.item(i);\n // when the first <legend> (in document order) is found\n if (child.tagName === 'LEGEND') {\n // if its parent <fieldset> is not nested in another disabled <fieldset>,\n // return whether `node` is a descendant of its first <legend>\n return matches.call(parentNode, 'fieldset[disabled] *') ? true : !child.contains(node);\n }\n }\n // the disabled <fieldset> containing `node` has no <legend>\n return true;\n }\n parentNode = parentNode.parentElement;\n }\n }\n\n // else, node's tabbable/focusable state should not be affected by a fieldset's\n // enabled/disabled state\n return false;\n};\nvar isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable(options, node) {\n if (node.disabled || isHiddenInput(node) || isHidden(node, options) ||\n // For a details element with a summary, the summary element gets the focus\n isDetailsWithSummary(node) || isDisabledFromFieldset(node)) {\n return false;\n }\n return true;\n};\nvar isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable(options, node) {\n if (isNonTabbableRadio(node) || getTabIndex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) {\n return false;\n }\n return true;\n};\nvar isShadowRootTabbable = function isShadowRootTabbable(shadowHostNode) {\n var tabIndex = parseInt(shadowHostNode.getAttribute('tabindex'), 10);\n if (isNaN(tabIndex) || tabIndex >= 0) {\n return true;\n }\n // If a custom element has an explicit negative tabindex,\n // browsers will not allow tab targeting said element's children.\n return false;\n};\n\n/**\n * @param {Array.<Element|CandidateScope>} candidates\n * @returns Element[]\n */\nvar _sortByOrder = function sortByOrder(candidates) {\n var regularTabbables = [];\n var orderedTabbables = [];\n candidates.forEach(function (item, i) {\n var isScope = !!item.scopeParent;\n var element = isScope ? item.scopeParent : item;\n var candidateTabindex = getSortOrderTabIndex(element, isScope);\n var elements = isScope ? _sortByOrder(item.candidates) : element;\n if (candidateTabindex === 0) {\n isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element);\n } else {\n orderedTabbables.push({\n documentOrder: i,\n tabIndex: candidateTabindex,\n item: item,\n isScope: isScope,\n content: elements\n });\n }\n });\n return orderedTabbables.sort(sortOrderedTabbables).reduce(function (acc, sortable) {\n sortable.isScope ? acc.push.apply(acc, sortable.content) : acc.push(sortable.content);\n return acc;\n }, []).concat(regularTabbables);\n};\nvar tabbable = function tabbable(container, options) {\n options = options || {};\n var candidates;\n if (options.getShadowRoot) {\n candidates = _getCandidatesIteratively([container], options.includeContainer, {\n filter: isNodeMatchingSelectorTabbable.bind(null, options),\n flatten: false,\n getShadowRoot: options.getShadowRoot,\n shadowRootFilter: isShadowRootTabbable\n });\n } else {\n candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));\n }\n return _sortByOrder(candidates);\n};\nvar focusable = function focusable(container, options) {\n options = options || {};\n var candidates;\n if (options.getShadowRoot) {\n candidates = _getCandidatesIteratively([container], options.includeContainer, {\n filter: isNodeMatchingSelectorFocusable.bind(null, options),\n flatten: true,\n getShadowRoot: options.getShadowRoot\n });\n } else {\n candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options));\n }\n return candidates;\n};\nvar isTabbable = function isTabbable(node, options) {\n options = options || {};\n if (!node) {\n throw new Error('No node provided');\n }\n if (matches.call(node, candidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorTabbable(options, node);\n};\nvar focusableCandidateSelector = /* #__PURE__ */candidateSelectors.concat('iframe:not([inert]):not([inert] *)').join(',');\nvar isFocusable = function isFocusable(node, options) {\n options = options || {};\n if (!node) {\n throw new Error('No node provided');\n }\n if (matches.call(node, focusableCandidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorFocusable(options, node);\n};\n\nexport { focusable, getTabIndex, isFocusable, isTabbable, tabbable };\n//# sourceMappingURL=index.esm.js.map\n","import { isShadowRoot, isHTMLElement } from '@floating-ui/utils/dom';\nimport * as React from 'react';\nimport { useLayoutEffect } from 'react';\nimport { floor } from '@floating-ui/utils';\nimport { tabbable } from 'tabbable';\n\n// Avoid Chrome DevTools blue warning.\nfunction getPlatform() {\n const uaData = navigator.userAgentData;\n if (uaData != null && uaData.platform) {\n return uaData.platform;\n }\n return navigator.platform;\n}\nfunction getUserAgent() {\n const uaData = navigator.userAgentData;\n if (uaData && Array.isArray(uaData.brands)) {\n return uaData.brands.map(_ref => {\n let {\n brand,\n version\n } = _ref;\n return brand + \"/\" + version;\n }).join(' ');\n }\n return navigator.userAgent;\n}\nfunction isSafari() {\n // Chrome DevTools does not complain about navigator.vendor\n return /apple/i.test(navigator.vendor);\n}\nfunction isAndroid() {\n const re = /android/i;\n return re.test(getPlatform()) || re.test(getUserAgent());\n}\nfunction isMac() {\n return getPlatform().toLowerCase().startsWith('mac') && !navigator.maxTouchPoints;\n}\nfunction isJSDOM() {\n return getUserAgent().includes('jsdom/');\n}\n\nconst FOCUSABLE_ATTRIBUTE = 'data-floating-ui-focusable';\nconst TYPEABLE_SELECTOR = \"input:not([type='hidden']):not([disabled]),\" + \"[contenteditable]:not([contenteditable='false']),textarea:not([disabled])\";\nconst ARROW_LEFT = 'ArrowLeft';\nconst ARROW_RIGHT = 'ArrowRight';\nconst ARROW_UP = 'ArrowUp';\nconst ARROW_DOWN = 'ArrowDown';\n\nfunction activeElement(doc) {\n let activeElement = doc.activeElement;\n while (((_activeElement = activeElement) == null || (_activeElement = _activeElement.shadowRoot) == null ? void 0 : _activeElement.activeElement) != null) {\n var _activeElement;\n activeElement = activeElement.shadowRoot.activeElement;\n }\n return activeElement;\n}\nfunction contains(parent, child) {\n if (!parent || !child) {\n return false;\n }\n const rootNode = child.getRootNode == null ? void 0 : child.getRootNode();\n\n // First, attempt with faster native method\n if (parent.contains(child)) {\n return true;\n }\n\n // then fallback to custom implementation with Shadow DOM support\n if (rootNode && isShadowRoot(rootNode)) {\n let next = child;\n while (next) {\n if (parent === next) {\n return true;\n }\n // @ts-ignore\n next = next.parentNode || next.host;\n }\n }\n\n // Give up, the result is false\n return false;\n}\nfunction getTarget(event) {\n if ('composedPath' in event) {\n return event.composedPath()[0];\n }\n\n // TS thinks `event` is of type never as it assumes all browsers support\n // `composedPath()`, but browsers without shadow DOM don't.\n return event.target;\n}\nfunction isEventTargetWithin(event, node) {\n if (node == null) {\n return false;\n }\n if ('composedPath' in event) {\n return event.composedPath().includes(node);\n }\n\n // TS thinks `event` is of type never as it assumes all browsers support composedPath, but browsers without shadow dom don't\n const e = event;\n return e.target != null && node.contains(e.target);\n}\nfunction isRootElement(element) {\n return element.matches('html,body');\n}\nfunction getDocument(node) {\n return (node == null ? void 0 : node.ownerDocument) || document;\n}\nfunction isTypeableElement(element) {\n return isHTMLElement(element) && element.matches(TYPEABLE_SELECTOR);\n}\nfunction isTypeableCombobox(element) {\n if (!element) return false;\n return element.getAttribute('role') === 'combobox' && isTypeableElement(element);\n}\nfunction matchesFocusVisible(element) {\n // We don't want to block focus from working with `visibleOnly`\n // (JSDOM doesn't match `:focus-visible` when the element has `:focus`)\n if (!element || isJSDOM()) return true;\n try {\n return element.matches(':focus-visible');\n } catch (_e) {\n return true;\n }\n}\nfunction getFloatingFocusElement(floatingElement) {\n if (!floatingElement) {\n return null;\n }\n // Try to find the element that has `{...getFloatingProps()}` spread on it.\n // This indicates the floating element is acting as a positioning wrapper, and\n // so focus should be managed on the child element with the event handlers and\n // aria props.\n return floatingElement.hasAttribute(FOCUSABLE_ATTRIBUTE) ? floatingElement : floatingElement.querySelector(\"[\" + FOCUSABLE_ATTRIBUTE + \"]\") || floatingElement;\n}\n\nfunction getNodeChildren(nodes, id, onlyOpenChildren) {\n if (onlyOpenChildren === void 0) {\n onlyOpenChildren = true;\n }\n const directChildren = nodes.filter(node => {\n var _node$context;\n return node.parentId === id && (!onlyOpenChildren || ((_node$context = node.context) == null ? void 0 : _node$context.open));\n });\n return directChildren.flatMap(child => [child, ...getNodeChildren(nodes, child.id, onlyOpenChildren)]);\n}\nfunction getDeepestNode(nodes, id) {\n let deepestNodeId;\n let maxDepth = -1;\n function findDeepest(nodeId, depth) {\n if (depth > maxDepth) {\n deepestNodeId = nodeId;\n maxDepth = depth;\n }\n const children = getNodeChildren(nodes, nodeId);\n children.forEach(child => {\n findDeepest(child.id, depth + 1);\n });\n }\n findDeepest(id, 0);\n return nodes.find(node => node.id === deepestNodeId);\n}\nfunction getNodeAncestors(nodes, id) {\n var _nodes$find;\n let allAncestors = [];\n let currentParentId = (_nodes$find = nodes.find(node => node.id === id)) == null ? void 0 : _nodes$find.parentId;\n while (currentParentId) {\n const currentNode = nodes.find(node => node.id === currentParentId);\n currentParentId = currentNode == null ? void 0 : currentNode.parentId;\n if (currentNode) {\n allAncestors = allAncestors.concat(currentNode);\n }\n }\n return allAncestors;\n}\n\nfunction stopEvent(event) {\n event.preventDefault();\n event.stopPropagation();\n}\nfunction isReactEvent(event) {\n return 'nativeEvent' in event;\n}\n\n// License: https://github.com/adobe/react-spectrum/blob/b35d5c02fe900badccd0cf1a8f23bb593419f238/packages/@react-aria/utils/src/isVirtualEvent.ts\nfunction isVirtualClick(event) {\n // FIXME: Firefox is now emitting a deprecation warning for `mozInputSource`.\n // Try to find a workaround for this. `react-aria` source still has the check.\n if (event.mozInputSource === 0 && event.isTrusted) {\n return true;\n }\n if (isAndroid() && event.pointerType) {\n return event.type === 'click' && event.buttons === 1;\n }\n return event.detail === 0 && !event.pointerType;\n}\nfunction isVirtualPointerEvent(event) {\n if (isJSDOM()) return false;\n return !isAndroid() && event.width === 0 && event.height === 0 || isAndroid() && event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === 'mouse' ||\n // iOS VoiceOver returns 0.333• for width/height.\n event.width < 1 && event.height < 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === 'touch';\n}\nfunction isMouseLikePointerType(pointerType, strict) {\n // On some Linux machines with Chromium, mouse inputs return a `pointerType`\n // of \"pen\": https://github.com/floating-ui/floating-ui/issues/2015\n const values = ['mouse', 'pen'];\n if (!strict) {\n values.push('', undefined);\n }\n return values.includes(pointerType);\n}\n\nvar isClient = typeof document !== 'undefined';\n\nvar noop = function noop() {};\nvar index = isClient ? useLayoutEffect : noop;\n\n// https://github.com/mui/material-ui/issues/41190#issuecomment-2040873379\nconst SafeReact = {\n ...React\n};\n\nfunction useLatestRef(value) {\n const ref = React.useRef(value);\n index(() => {\n ref.current = value;\n });\n return ref;\n}\nconst useInsertionEffect = SafeReact.useInsertionEffect;\nconst useSafeInsertionEffect = useInsertionEffect || (fn => fn());\nfunction useEffectEvent(callback) {\n const ref = React.useRef(() => {\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error('Cannot call an event handler while rendering.');\n }\n });\n useSafeInsertionEffect(() => {\n ref.current = callback;\n });\n return React.useCallback(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return ref.current == null ? void 0 : ref.current(...args);\n }, []);\n}\n\nfunction isDifferentGridRow(index, cols, prevRow) {\n return Math.floor(index / cols) !== prevRow;\n}\nfunction isIndexOutOfListBounds(listRef, index) {\n return index < 0 || index >= listRef.current.length;\n}\nfunction getMinListIndex(listRef, disabledIndices) {\n return findNonDisabledListIndex(listRef, {\n disabledIndices\n });\n}\nfunction getMaxListIndex(listRef, disabledIndices) {\n return findNonDisabledListIndex(listRef, {\n decrement: true,\n startingIndex: listRef.current.length,\n disabledIndices\n });\n}\nfunction findNonDisabledListIndex(listRef, _temp) {\n let {\n startingIndex = -1,\n decrement = false,\n disabledIndices,\n amount = 1\n } = _temp === void 0 ? {} : _temp;\n let index = startingIndex;\n do {\n index += decrement ? -amount : amount;\n } while (index >= 0 && index <= listRef.current.length - 1 && isListIndexDisabled(listRef, index, disabledIndices));\n return index;\n}\nfunction getGridNavigatedIndex(listRef, _ref) {\n let {\n event,\n orientation,\n loop,\n rtl,\n cols,\n disabledIndices,\n minIndex,\n maxIndex,\n prevIndex,\n stopEvent: stop = false\n } = _ref;\n let nextIndex = prevIndex;\n if (event.key === ARROW_UP) {\n stop && stopEvent(event);\n if (prevIndex === -1) {\n nextIndex = maxIndex;\n } else {\n nextIndex = findNonDisabledListIndex(listRef, {\n startingIndex: nextIndex,\n amount: cols,\n decrement: true,\n disabledIndices\n });\n if (loop && (prevIndex - cols < minIndex || nextIndex < 0)) {\n const col = prevIndex % cols;\n const maxCol = maxIndex % cols;\n const offset = maxIndex - (maxCol - col);\n if (maxCol === col) {\n nextIndex = maxIndex;\n } else {\n nextIndex = maxCol > col ? offset : offset - cols;\n }\n }\n }\n if (isIndexOutOfListBounds(listRef, nextIndex)) {\n nextIndex = prevIndex;\n }\n }\n if (event.key === ARROW_DOWN) {\n stop && stopEvent(event);\n if (prevIndex === -1) {\n nextIndex = minIndex;\n } else {\n nextIndex = findNonDisabledListIndex(listRef, {\n startingIndex: prevIndex,\n amount: cols,\n disabledIndices\n });\n if (loop && prevIndex + cols > maxIndex) {\n nextIndex = findNonDisabledListIndex(listRef, {\n startingIndex: prevIndex % cols - cols,\n amount: cols,\n disabledIndices\n });\n }\n }\n if (isIndexOutOfListBounds(listRef, nextIndex)) {\n nextIndex = prevIndex;\n }\n }\n\n // Remains on the same row/column.\n if (orientation === 'both') {\n const prevRow = floor(prevIndex / cols);\n if (event.key === (rtl ? ARROW_LEFT : ARROW_RIGHT)) {\n stop && stopEvent(event);\n if (prevIndex % cols !== cols - 1) {\n nextIndex = findNonDisabledListIndex(listRef, {\n startingIndex: prevIndex,\n disabledIndices\n });\n if (loop && isDifferentGridRow(nextIndex, cols, prevRow)) {\n nextIndex = findNonDisabledListIndex(listRef, {\n startingIndex: prevIndex - prevIndex % cols - 1,\n disabledIndices\n });\n }\n } else if (loop) {\n nextIndex = findNonDisabledListIndex(listRef, {\n startingIndex: prevIndex - prevIndex % cols - 1,\n disabledIndices\n });\n }\n if (isDifferentGridRow(nextIndex, cols, prevRow)) {\n nextIndex = prevIndex;\n }\n }\n if (event.key === (rtl ? ARROW_RIGHT : ARROW_LEFT)) {\n stop && stopEvent(event);\n if (prevIndex % cols !== 0) {\n nextIndex = findNonDisabledListIndex(listRef, {\n startingIndex: prevIndex,\n decrement: true,\n disabledIndices\n });\n if (loop && isDifferentGridRow(nextIndex, cols, prevRow)) {\n nextIndex = findNonDisabledListIndex(listRef, {\n startingIndex: prevIndex + (cols - prevIndex % cols),\n decrement: true,\n disabledIndices\n });\n }\n } else if (loop) {\n nextIndex = findNonDisabledListIndex(listRef, {\n startingIndex: prevIndex + (cols - prevIndex % cols),\n decrement: true,\n disabledIndices\n });\n }\n if (isDifferentGridRow(nextIndex, cols, prevRow)) {\n nextIndex = prevIndex;\n }\n }\n const lastRow = floor(maxIndex / cols) === prevRow;\n if (isIndexOutOfListBounds(listRef, nextIndex)) {\n if (loop && lastRow) {\n nextIndex = event.key === (rtl ? ARROW_RIGHT : ARROW_LEFT) ? maxIndex : findNonDisabledListIndex(listRef, {\n startingIndex: prevIndex - prevIndex % cols - 1,\n disabledIndices\n });\n } else {\n nextIndex = prevIndex;\n }\n }\n }\n return nextIndex;\n}\n\n/** For each cell index, gets the item index that occupies that cell */\nfunction createGridCellMap(sizes, cols, dense) {\n const cellMap = [];\n let startIndex = 0;\n sizes.forEach((_ref2, index) => {\n let {\n width,\n height\n } = _ref2;\n if (width > cols) {\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error(\"[Floating UI]: Invalid grid - item width at index \" + index + \" is greater than grid columns\");\n }\n }\n let itemPlaced = false;\n if (dense) {\n startIndex = 0;\n }\n while (!itemPlaced) {\n const targetCells = [];\n for (let i = 0; i < width; i++) {\n for (let j = 0; j < height; j++) {\n targetCells.push(startIndex + i + j * cols);\n }\n }\n if (startIndex % cols + width <= cols && targetCells.every(cell => cellMap[cell] == null)) {\n targetCells.forEach(cell => {\n cellMap[cell] = index;\n });\n itemPlaced = true;\n } else {\n startIndex++;\n }\n }\n });\n\n // convert into a non-sparse array\n return [...cellMap];\n}\n\n/** Gets cell index of an item's corner or -1 when index is -1. */\nfunction getGridCellIndexOfCorner(index, sizes, cellMap, cols, corner) {\n if (index === -1) return -1;\n const firstCellIndex = cellMap.indexOf(index);\n const sizeItem = sizes[index];\n switch (corner) {\n case 'tl':\n return firstCellIndex;\n case 'tr':\n if (!sizeItem) {\n return firstCellIndex;\n }\n return firstCellIndex + sizeItem.width - 1;\n case 'bl':\n if (!sizeItem) {\n return firstCellIndex;\n }\n return firstCellIndex + (sizeItem.height - 1) * cols;\n case 'br':\n return cellMap.lastIndexOf(index);\n }\n}\n\n/** Gets all cell indices that correspond to the specified indices */\nfunction getGridCellIndices(indices, cellMap) {\n return cellMap.flatMap((index, cellIndex) => indices.includes(index) ? [cellIndex] : []);\n}\nfunction isListIndexDisabled(listRef, index, disabledIndices) {\n if (typeof disabledIndices === 'function') {\n return disabledIndices(index);\n } else if (disabledIndices) {\n return disabledIndices.includes(index);\n }\n const element = listRef.current[index];\n return element == null || element.hasAttribute('disabled') || element.getAttribute('aria-disabled') === 'true';\n}\n\nconst getTabbableOptions = () => ({\n getShadowRoot: true,\n displayCheck:\n // JSDOM does not support the `tabbable` library. To solve this we can\n // check if `ResizeObserver` is a real function (not polyfilled), which\n // determines if the current environment is JSDOM-like.\n typeof ResizeObserver === 'function' && ResizeObserver.toString().includes('[native code]') ? 'full' : 'none'\n});\nfunction getTabbableIn(container, dir) {\n const list = tabbable(container, getTabbableOptions());\n const len = list.length;\n if (len === 0) return;\n const active = activeElement(getDocument(container));\n const index = list.indexOf(active);\n const nextIndex = index === -1 ? dir === 1 ? 0 : len - 1 : index + dir;\n return list[nextIndex];\n}\nfunction getNextTabbable(referenceElement) {\n return getTabbableIn(getDocument(referenceElement).body, 1) || referenceElement;\n}\nfunction getPreviousTabbable(referenceElement) {\n return getTabbableIn(getDocument(referenceElement).body, -1) || referenceElement;\n}\nfunction isOutsideEvent(event, container) {\n const containerElement = container || event.currentTarget;\n const relatedTarget = event.relatedTarget;\n return !relatedTarget || !contains(containerElement, relatedTarget);\n}\nfunction disableFocusInside(container) {\n const tabbableElements = tabbable(container, getTabbableOptions());\n tabbableElements.forEach(element => {\n element.dataset.tabindex = element.getAttribute('tabindex') || '';\n element.setAttribute('tabindex', '-1');\n });\n}\nfunction enableFocusInside(container) {\n const elements = container.querySelectorAll('[data-tabindex]');\n elements.forEach(element => {\n const tabindex = element.dataset.tabindex;\n delete element.dataset.tabindex;\n if (tabindex) {\n element.setAttribute('tabindex', tabindex);\n } else {\n element.removeAttribute('tabindex');\n }\n });\n}\n\nexport { activeElement, contains, createGridCellMap, disableFocusInside, enableFocusInside, findNonDisabledListIndex, getDeepestNode, getDocument, getFloatingFocusElement, getGridCellIndexOfCorner, getGridCellIndices, getGridNavigatedIndex, getMaxListIndex, getMinListIndex, getNextTabbable, getNodeAncestors, getNodeChildren, getPlatform, getPreviousTabbable, getTabbableOptions, getTarget, getUserAgent, isAndroid, isDifferentGridRow, isEventTargetWithin, isIndexOutOfListBounds, isJSDOM, isListIndexDisabled, isMac, isMouseLikePointerType, isOutsideEvent, isReactEvent, isRootElement, isSafari, isTypeableCombobox, isTypeableElement, isVirtualClick, isVirtualPointerEvent, matchesFocusVisible, stopEvent, useEffectEvent, useLatestRef, index as useModernLayoutEffect };\n","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n const firstChar = placement[0];\n return firstChar === 't' || firstChar === 'b' ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.includes('start') ? placement.replace('start', 'end') : placement.replace('end', 'start');\n}\nconst lrPlacement = ['left', 'right'];\nconst rlPlacement = ['right', 'left'];\nconst tbPlacement = ['top', 'bottom'];\nconst btPlacement = ['bottom', 'top'];\nfunction getSideList(side, isStart, rtl) {\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rlPlacement : lrPlacement;\n return isStart ? lrPlacement : rlPlacement;\n case 'left':\n case 'right':\n return isStart ? tbPlacement : btPlacement;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n const side = getSide(placement);\n return oppositeSideMap[side] + placement.slice(side.length);\n}\nfunction expandPaddingObject(padding) {\n var _padding$top, _padding$right, _padding$bottom, _padding$left;\n return {\n top: (_padding$top = padding.top) != null ? _padding$top : 0,\n right: (_padding$right = padding.right) != null ? _padding$right : 0,\n bottom: (_padding$bottom = padding.bottom) != null ? _padding$bottom : 0,\n left: (_padding$left = padding.left) != null ? _padding$left : 0\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n const alignment = getAlignment(placement);\n if (alignment) {\n coords[alignmentAxis] += commonAlign * (alignment === 'end' ? 1 : -1) * (rtl && isVertical ? -1 : 1);\n }\n return coords;\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) && (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n// Maximum number of resets that can occur before bailing to avoid infinite reset loops.\nconst MAX_RESET_COUNT = 50;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const platformWithDetectOverflow = platform.detectOverflow ? platform : {\n ...platform,\n detectOverflow\n };\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let resetCount = 0;\n const middlewareData = {};\n for (let i = 0; i < middleware.length; i++) {\n const currentMiddleware = middleware[i];\n if (!currentMiddleware) {\n continue;\n }\n const {\n name,\n fn\n } = currentMiddleware;\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform: platformWithDetectOverflow,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData[name] = {\n ...middlewareData[name],\n ...data\n };\n if (reset && resetCount < MAX_RESET_COUNT) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(minPadding, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < minPadding ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < minPadding ? center - minPadding : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const initialSideAxis = getSideAxis(initialPlacement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;\n if (!ignoreCrossAxisOverflow ||\n // We leave the current main axis only if every placement on that axis\n // overflows the main axis.\n overflowsData.every(d => getSideAxis(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = getSideAxis(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects,\n platform\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await platform.detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await platform.detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n\n // No rects (e.g. a hidden or detached reference, or a collapsed range) —\n // keep the existing reference rect rather than resetting to an invalid\n // one with non-finite values.\n if (!nativeClientRects.length) {\n return {};\n }\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && (clientRects[0].left > clientRects[1].right || clientRects[1].left > clientRects[0].right) && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n return rectToClientRect({\n x: left,\n y: top,\n width: right - left,\n height: bottom - top\n });\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n return rectToClientRect({\n x: minLeft,\n y: top,\n width: maxRight - minLeft,\n height: bottom - top\n });\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\nconst originSides = /*#__PURE__*/new Set(['left', 'top']);\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = originSides.has(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: rawValue.mainAxis || 0,\n crossAxis: rawValue.crossAxis || 0,\n alignmentAxis: rawValue.alignmentAxis\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n platform\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const clampCoord = (axis, coord) => clamp(coord + overflow[axis === 'y' ? 'top' : 'left'], coord, coord - overflow[axis === 'y' ? 'bottom' : 'right']);\n if (checkMainAxis) {\n mainAxisCoord = clampCoord(mainAxis, mainAxisCoord);\n }\n if (checkCrossAxis) {\n crossAxisCoord = clampCoord(crossAxis, crossAxisCoord);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y,\n enabled: {\n [mainAxis]: checkMainAxis,\n [crossAxis]: checkCrossAxis\n }\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n var _rawOffset$mainAxis, _rawOffset$crossAxis;\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: (_rawOffset$mainAxis = rawOffset.mainAxis) != null ? _rawOffset$mainAxis : 0,\n crossAxis: (_rawOffset$crossAxis = rawOffset.crossAxis) != null ? _rawOffset$crossAxis : 0\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = originSides.has(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n// Method syntax keeps callback parameters bivariant, but expressing the\n// explicit `| undefined` required by `exactOptionalPropertyTypes` needs\n// property syntax, which is contravariant under `strictFunctionTypes`.\n// Extracting the function from a method position restores that bivariance so\n// consumers can still assign callbacks with narrower parameter types.\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n const shiftData = state.middlewareData.shift;\n const noShift = !shiftData;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if (shiftData != null && shiftData.enabled.x) {\n availableWidth = maximumClippingWidth;\n }\n if (shiftData != null && shiftData.enabled.y) {\n availableHeight = maximumClippingHeight;\n }\n if (noShift && !alignment) {\n if (isYAxis) {\n availableWidth = width - 2 * max(overflow.left, overflow.right);\n } else {\n availableHeight = height - 2 * max(overflow.top, overflow.bottom);\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","import { rectToClientRect, arrow as arrow$1, autoPlacement as autoPlacement$1, detectOverflow as detectOverflow$1, flip as flip$1, hide as hide$1, inline as inline$1, limitShift as limitShift$1, offset as offset$1, shift as shift$1, size as size$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle as getComputedStyle$1, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getNodeScroll, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle$1(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n return !!floatingOffsetParent && isFixed && floatingOffsetParent === getWindow(element);\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement && offsetParent) {\n const win = getWindow(domElement);\n const offsetWin = isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = getFrameElement(currentWin);\n while (currentIFrame && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle$1(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = getFrameElement(currentWin);\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\n// If <html> has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n const leftScroll = getNodeScroll(element).scrollLeft;\n if (!rect) {\n return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n }\n return rect.left + leftScroll;\n}\n\nfunction getHTMLOffset(documentElement, scroll) {\n const htmlRect = documentElement.getBoundingClientRect();\n const x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect);\n const y = htmlRect.top + scroll.scrollTop;\n return {\n x,\n y\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n };\n}\n\nfunction getClientRects(element) {\n return element.getClientRects ? Array.from(element.getClientRects()) : [];\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(html) {\n const scroll = getNodeScroll(html);\n const body = html.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(html);\n const y = -scroll.scrollTop;\n if (getComputedStyle$1(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Safety check: ensure the scrollbar space is reasonable in case this\n// calculation is affected by unusual styles.\n// Most scrollbars leave 15-18px of space.\nconst SCROLLBAR_MAX = 25;\nfunction getViewportRect(element, strategy, rootBoundary) {\n if (rootBoundary === void 0) {\n rootBoundary = 'viewport';\n }\n const isLayoutViewport = rootBoundary === 'layoutViewport';\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n // Client coordinates are relative to the layout viewport, except in\n // WebKit with an `absolute` strategy, where they are relative to the\n // visual viewport.\n const layoutRelativeClientCoords = !isWebKit() || strategy === 'fixed';\n if (isLayoutViewport) {\n if (!layoutRelativeClientCoords) {\n x = -visualViewport.offsetLeft;\n y = -visualViewport.offsetTop;\n }\n } else {\n width = visualViewport.width;\n height = visualViewport.height;\n if (layoutRelativeClientCoords) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n }\n const windowScrollbarX = getWindowScrollBarX(html);\n // `scrollbar-gutter: stable` on the <html> reserves gutter space that shrinks\n // the visual width but isn't reflected in `html.clientWidth`, so subtract it.\n // Only the inline-end (right) gutter can hold the scrollbar; `both-edges` also\n // reserves an empty inline-start gutter that clips nothing, so exclude just\n // the one scrollbar-side gutter — halve the measured (two-gutter) total. A\n // left-side scrollbar (`windowScrollbarX > 0`) is already handled by\n // `getHTMLOffset`/`visualViewport.width`; skip it here.\n if (windowScrollbarX <= 0) {\n const doc = html.ownerDocument;\n const body = doc.body;\n const bodyStyles = getComputedStyle(body);\n const bodyMarginInline = doc.compatMode === 'CSS1Compat' ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;\n const reservedWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);\n const gutter = getComputedStyle(html).scrollbarGutter === 'stable both-edges' ? reservedWidth / 2 : reservedWidth;\n if (gutter <= SCROLLBAR_MAX) {\n width -= gutter;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = getScale(element);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport' || clippingAncestor === 'layoutViewport') {\n rect = getViewportRect(element, strategy, clippingAncestor);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y,\n width: clippingAncestor.width,\n height: clippingAncestor.height\n };\n }\n return rectToClientRect(rect);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let lastKeptComputedStyle = null;\n const elementIsFixed = getComputedStyle$1(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle$1(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n // Position of the containing block chain below the current node. A fixed\n // element whose containing block hasn't been found yet is a fixed chain.\n const lastPosition = lastKeptComputedStyle ? lastKeptComputedStyle.position : elementIsFixed ? 'fixed' : '';\n\n // A non-containing ancestor does not clip the element when the chain\n // below it escapes it: a fixed chain escapes all ancestors up to the\n // next containing block, an absolute chain escapes static ancestors.\n const shouldDropCurrentNode = !currentNodeIsContaining && (lastPosition === 'fixed' || lastPosition === 'absolute' && computedStyle.position === 'static');\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // The kept node carries the chain position for the next iteration.\n lastKeptComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstRect = getClientRectFromClippingAncestor(element, clippingAncestors[0], strategy);\n let top = firstRect.top;\n let right = firstRect.right;\n let bottom = firstRect.bottom;\n let left = firstRect.left;\n for (let i = 1; i < clippingAncestors.length; i++) {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestors[i], strategy);\n top = max(rect.top, top);\n right = min(rect.right, right);\n bottom = min(rect.bottom, bottom);\n left = max(rect.left, left);\n }\n return {\n width: right - left,\n height: bottom - top,\n x: left,\n y: top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n\n // If the <body> scrollbar appears on the left (e.g. RTL systems). Use\n // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n if (!isOffsetParentAnElement && documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction isStaticPositioned(element) {\n return getComputedStyle$1(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle$1(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n let rawOffsetParent = element.offsetParent;\n\n // Firefox returns the <html> element as the offsetParent if it's non-static,\n // while Chrome and Safari return the <body> element. The <body> element must\n // be used to perform the correct calculations even if the <html> element is\n // non-static.\n if (getDocumentElement(element) === rawOffsetParent) {\n rawOffsetParent = rawOffsetParent.ownerDocument.body;\n }\n return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const win = getWindow(element);\n if (isTopLayer(element)) {\n return win;\n }\n if (!isHTMLElement(element)) {\n let svgOffsetParent = getParentNode(element);\n while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = getParentNode(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n return win;\n }\n return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle$1(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\nfunction rectsAreEqual(a, b) {\n return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove, ancestorResize) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const elementRectForRootMargin = element.getBoundingClientRect();\n const {\n left,\n top,\n width,\n height\n } = elementRectForRootMargin;\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n\n // The entry is a snapshot, so the reference may have moved since the\n // intersection was computed (under performance constraints, or between\n // consecutive frames of a multi-frame layout shift). The reported ratio\n // and the observed area are stale in that case and cannot be trusted to\n // detect subsequent movement, so refresh regardless of the ratio.\n if (!rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n return refresh();\n }\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped in place, the ratio is 0. Throttle\n // the refresh to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (_e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n const win = getWindow(element);\n // The window is a resize ancestor, so when `ancestorResize` is enabled its\n // listener already runs the update on resize. Here we only need to rebuild\n // the `IntersectionObserver` for the new root size, skipping a redundant\n // update. When `ancestorResize` is disabled, this becomes the sole update.\n const handleResize = () => refresh(ancestorResize);\n win.addEventListener('resize', handleResize);\n refresh(true);\n return () => {\n win.removeEventListener('resize', handleResize);\n cleanup();\n };\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...(floating ? getOverflowAncestors(floating) : [])] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update);\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update, ancestorResize) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver && floating) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n var _resizeObserver;\n (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n if (floating) {\n resizeObserver.observe(floating);\n }\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n var _resizeObserver2;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo == null || cleanupIo();\n (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nconst detectOverflow = detectOverflow$1;\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = offset$1;\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = autoPlacement$1;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = shift$1;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = flip$1;\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = size$1;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = hide$1;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = arrow$1;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = options != null ? options : {};\n const platformWithCache = {\n ...platform,\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, platform, shift, size };\n","import { computePosition, arrow as arrow$2, autoPlacement as autoPlacement$1, flip as flip$1, hide as hide$1, inline as inline$1, limitShift as limitShift$1, offset as offset$1, shift as shift$1, size as size$1 } from '@floating-ui/dom';\nexport { autoUpdate, computePosition, detectOverflow, getOverflowAncestors, platform } from '@floating-ui/dom';\nimport * as React from 'react';\nimport { useLayoutEffect } from 'react';\nimport * as ReactDOM from 'react-dom';\n\nvar isClient = typeof document !== 'undefined';\n\nvar noop = function noop() {};\nvar index = isClient ? useLayoutEffect : noop;\n\n// Fork of `fast-deep-equal` that only does the comparisons we need and compares\n// functions\nfunction deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (typeof a === 'function' && a.toString() === b.toString()) {\n return true;\n }\n let length;\n let i;\n let keys;\n if (a && b && typeof a === 'object') {\n if (Array.isArray(a)) {\n length = a.length;\n if (length !== b.length) return false;\n for (i = length; i-- !== 0;) {\n if (!deepEqual(a[i], b[i])) {\n return false;\n }\n }\n return true;\n }\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) {\n return false;\n }\n for (i = length; i-- !== 0;) {\n if (!{}.hasOwnProperty.call(b, keys[i])) {\n return false;\n }\n }\n for (i = length; i-- !== 0;) {\n const key = keys[i];\n if (key === '_owner' && a.$$typeof) {\n continue;\n }\n if (!deepEqual(a[key], b[key])) {\n return false;\n }\n }\n return true;\n }\n return a !== a && b !== b;\n}\n\nfunction getDPR(element) {\n if (typeof window === 'undefined') {\n return 1;\n }\n const win = element.ownerDocument.defaultView || window;\n return win.devicePixelRatio || 1;\n}\n\nfunction roundByDPR(element, value) {\n const dpr = getDPR(element);\n return Math.round(value * dpr) / dpr;\n}\n\nfunction useLatestRef(value) {\n const ref = React.useRef(value);\n index(() => {\n ref.current = value;\n });\n return ref;\n}\n\n/**\n * Provides data to position a floating element.\n * @see https://floating-ui.com/docs/useFloating\n */\nfunction useFloating(options) {\n if (options === void 0) {\n options = {};\n }\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform,\n elements: {\n reference: externalReference,\n floating: externalFloating\n } = {},\n transform = true,\n whileElementsMounted,\n open\n } = options;\n const [data, setData] = React.useState({\n x: 0,\n y: 0,\n strategy,\n placement,\n middlewareData: {},\n isPositioned: false\n });\n const [latestMiddleware, setLatestMiddleware] = React.useState(middleware);\n if (!deepEqual(latestMiddleware, middleware)) {\n setLatestMiddleware(middleware);\n }\n const [_reference, _setReference] = React.useState(null);\n const [_floating, _setFloating] = React.useState(null);\n const setReference = React.useCallback(node => {\n if (node !== referenceRef.current) {\n referenceRef.current = node;\n _setReference(node);\n }\n }, []);\n const setFloating = React.useCallback(node => {\n if (node !== floatingRef.current) {\n floatingRef.current = node;\n _setFloating(node);\n }\n }, []);\n const referenceEl = externalReference || _reference;\n const floatingEl = externalFloating || _floating;\n const referenceRef = React.useRef(null);\n const floatingRef = React.useRef(null);\n const dataRef = React.useRef(data);\n const hasWhileElementsMounted = whileElementsMounted != null;\n const whileElementsMountedRef = useLatestRef(whileElementsMounted);\n const platformRef = useLatestRef(platform);\n const openRef = useLatestRef(open);\n const update = React.useCallback(() => {\n if (!referenceRef.current || !floatingRef.current) {\n return;\n }\n const config = {\n placement,\n strategy,\n middleware: latestMiddleware\n };\n if (platformRef.current) {\n config.platform = platformRef.current;\n }\n computePosition(referenceRef.current, floatingRef.current, config).then(data => {\n const fullData = {\n ...data,\n // The floating element's position may be recomputed while it's closed\n // but still mounted (such as when transitioning out). To ensure\n // `isPositioned` will be `false` initially on the next open, avoid\n // setting it to `true` when `open === false` (must be specified).\n isPositioned: openRef.current !== false\n };\n if (isMountedRef.current && !deepEqual(dataRef.current, fullData)) {\n dataRef.current = fullData;\n ReactDOM.flushSync(() => {\n setData(fullData);\n });\n }\n });\n }, [latestMiddleware, placement, strategy, platformRef, openRef]);\n index(() => {\n if (open === false && dataRef.current.isPositioned) {\n dataRef.current.isPositioned = false;\n setData(data => ({\n ...data,\n isPositioned: false\n }));\n }\n }, [open]);\n const isMountedRef = React.useRef(false);\n index(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n index(() => {\n if (referenceEl) referenceRef.current = referenceEl;\n if (floatingEl) floatingRef.current = floatingEl;\n if (referenceEl && floatingEl) {\n if (whileElementsMountedRef.current) {\n return whileElementsMountedRef.current(referenceEl, floatingEl, update);\n }\n update();\n }\n }, [referenceEl, floatingEl, update, whileElementsMountedRef, hasWhileElementsMounted]);\n const refs = React.useMemo(() => ({\n reference: referenceRef,\n floating: floatingRef,\n setReference,\n setFloating\n }), [setReference, setFloating]);\n const elements = React.useMemo(() => ({\n reference: referenceEl,\n floating: floatingEl\n }), [referenceEl, floatingEl]);\n const floatingStyles = React.useMemo(() => {\n const initialStyles = {\n position: strategy,\n left: 0,\n top: 0\n };\n if (!elements.floating) {\n return initialStyles;\n }\n const x = roundByDPR(elements.floating, data.x);\n const y = roundByDPR(elements.floating, data.y);\n if (transform) {\n return {\n ...initialStyles,\n transform: \"translate(\" + x + \"px, \" + y + \"px)\",\n ...(getDPR(elements.floating) >= 1.5 && {\n willChange: 'transform'\n })\n };\n }\n return {\n position: strategy,\n left: x,\n top: y\n };\n }, [strategy, transform, elements.floating, data.x, data.y]);\n return React.useMemo(() => ({\n ...data,\n update,\n refs,\n elements,\n floatingStyles\n }), [data, update, refs, elements, floatingStyles]);\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow$1 = options => {\n function isRef(value) {\n return {}.hasOwnProperty.call(value, 'current');\n }\n return {\n name: 'arrow',\n options,\n fn(state) {\n const {\n element,\n padding\n } = typeof options === 'function' ? options(state) : options;\n if (element && isRef(element)) {\n if (element.current != null) {\n return arrow$2({\n element: element.current,\n padding\n }).fn(state);\n }\n return {};\n }\n if (element) {\n return arrow$2({\n element,\n padding\n }).fn(state);\n }\n return {};\n }\n };\n};\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = (options, deps) => {\n const result = offset$1(options);\n return {\n name: result.name,\n fn: result.fn,\n options: [options, deps]\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = (options, deps) => {\n const result = shift$1(options);\n return {\n name: result.name,\n fn: result.fn,\n options: [options, deps]\n };\n};\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = (options, deps) => {\n const result = limitShift$1(options);\n return {\n fn: result.fn,\n options: [options, deps]\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = (options, deps) => {\n const result = flip$1(options);\n return {\n name: result.name,\n fn: result.fn,\n options: [options, deps]\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = (options, deps) => {\n const result = size$1(options);\n return {\n name: result.name,\n fn: result.fn,\n options: [options, deps]\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = (options, deps) => {\n const result = autoPlacement$1(options);\n return {\n name: result.name,\n fn: result.fn,\n options: [options, deps]\n };\n};\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = (options, deps) => {\n const result = hide$1(options);\n return {\n name: result.name,\n fn: result.fn,\n options: [options, deps]\n };\n};\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = (options, deps) => {\n const result = inline$1(options);\n return {\n name: result.name,\n fn: result.fn,\n options: [options, deps]\n };\n};\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = (options, deps) => {\n const result = arrow$1(options);\n return {\n name: result.name,\n fn: result.fn,\n options: [options, deps]\n };\n};\n\nexport { arrow, autoPlacement, flip, hide, inline, limitShift, offset, shift, size, useFloating };\n","import * as React from 'react';\nimport { useModernLayoutEffect, useEffectEvent, getMinListIndex, getMaxListIndex, createGridCellMap, isListIndexDisabled, getGridNavigatedIndex, getGridCellIndexOfCorner, getGridCellIndices, findNonDisabledListIndex, isIndexOutOfListBounds, useLatestRef, getDocument as getDocument$1, isMouseLikePointerType, contains as contains$1, isSafari, enableFocusInside, isOutsideEvent, getPreviousTabbable, getNextTabbable, disableFocusInside, isTypeableCombobox, getFloatingFocusElement, getTabbableOptions, getNodeAncestors, activeElement, getNodeChildren as getNodeChildren$1, stopEvent, getTarget as getTarget$1, isVirtualClick, isVirtualPointerEvent, getPlatform, isTypeableElement, isReactEvent, isRootElement, isEventTargetWithin, matchesFocusVisible, isMac, getDeepestNode, getUserAgent } from '@floating-ui/react/utils';\nimport { jsx, jsxs, Fragment } from 'react/jsx-runtime';\nimport { getComputedStyle, isElement, isShadowRoot, getNodeName, isNode, isHTMLElement, getWindow, isLastTraversableNode, getParentNode, isWebKit } from '@floating-ui/utils/dom';\nimport { tabbable, isTabbable, focusable } from 'tabbable';\nimport * as ReactDOM from 'react-dom';\nimport { getOverflowAncestors, useFloating as useFloating$1, offset } from '@floating-ui/react-dom';\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, getOverflowAncestors, hide, inline, limitShift, offset, platform, shift, size } from '@floating-ui/react-dom';\nimport { evaluate, max, min, round } from '@floating-ui/utils';\n\n/**\n * Merges an array of refs into a single memoized callback ref or `null`.\n * @see https://floating-ui.com/docs/react-utils#usemergerefs\n */\nfunction useMergeRefs(refs) {\n const cleanupRef = React.useRef(undefined);\n const refEffect = React.useCallback(instance => {\n const cleanups = refs.map(ref => {\n if (ref == null) {\n return;\n }\n if (typeof ref === 'function') {\n const refCallback = ref;\n const refCleanup = refCallback(instance);\n return typeof refCleanup === 'function' ? refCleanup : () => {\n refCallback(null);\n };\n }\n ref.current = instance;\n return () => {\n ref.current = null;\n };\n });\n return () => {\n cleanups.forEach(refCleanup => refCleanup == null ? void 0 : refCleanup());\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, refs);\n return React.useMemo(() => {\n if (refs.every(ref => ref == null)) {\n return null;\n }\n return value => {\n if (cleanupRef.current) {\n cleanupRef.current();\n cleanupRef.current = undefined;\n }\n if (value != null) {\n cleanupRef.current = refEffect(value);\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, refs);\n}\n\nfunction sortByDocumentPosition(a, b) {\n const position = a.compareDocumentPosition(b);\n if (position & Node.DOCUMENT_POSITION_FOLLOWING || position & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return -1;\n }\n if (position & Node.DOCUMENT_POSITION_PRECEDING || position & Node.DOCUMENT_POSITION_CONTAINS) {\n return 1;\n }\n return 0;\n}\nconst FloatingListContext = /*#__PURE__*/React.createContext({\n register: () => {},\n unregister: () => {},\n map: /*#__PURE__*/new Map(),\n elementsRef: {\n current: []\n }\n});\n/**\n * Provides context for a list of items within the floating element.\n * @see https://floating-ui.com/docs/FloatingList\n */\nfunction FloatingList(props) {\n const {\n children,\n elementsRef,\n labelsRef\n } = props;\n const [nodes, setNodes] = React.useState(() => new Set());\n const register = React.useCallback(node => {\n setNodes(prevSet => new Set(prevSet).add(node));\n }, []);\n const unregister = React.useCallback(node => {\n setNodes(prevSet => {\n const set = new Set(prevSet);\n set.delete(node);\n return set;\n });\n }, []);\n const map = React.useMemo(() => {\n const newMap = new Map();\n const sortedNodes = Array.from(nodes.keys()).sort(sortByDocumentPosition);\n sortedNodes.forEach((node, index) => {\n newMap.set(node, index);\n });\n return newMap;\n }, [nodes]);\n return /*#__PURE__*/jsx(FloatingListContext.Provider, {\n value: React.useMemo(() => ({\n register,\n unregister,\n map,\n elementsRef,\n labelsRef\n }), [register, unregister, map, elementsRef, labelsRef]),\n children: children\n });\n}\n/**\n * Used to register a list item and its index (DOM position) in the\n * `FloatingList`.\n * @see https://floating-ui.com/docs/FloatingList#uselistitem\n */\nfunction useListItem(props) {\n if (props === void 0) {\n props = {};\n }\n const {\n label\n } = props;\n const {\n register,\n unregister,\n map,\n elementsRef,\n labelsRef\n } = React.useContext(FloatingListContext);\n const [index, setIndex] = React.useState(null);\n const componentRef = React.useRef(null);\n const ref = React.useCallback(node => {\n componentRef.current = node;\n if (index !== null) {\n elementsRef.current[index] = node;\n if (labelsRef) {\n var _node$textContent;\n const isLabelDefined = label !== undefined;\n labelsRef.current[index] = isLabelDefined ? label : (_node$textContent = node == null ? void 0 : node.textContent) != null ? _node$textContent : null;\n }\n }\n }, [index, elementsRef, labelsRef, label]);\n useModernLayoutEffect(() => {\n const node = componentRef.current;\n if (node) {\n register(node);\n return () => {\n unregister(node);\n };\n }\n }, [register, unregister]);\n useModernLayoutEffect(() => {\n const index = componentRef.current ? map.get(componentRef.current) : null;\n if (index != null) {\n setIndex(index);\n }\n }, [map]);\n return React.useMemo(() => ({\n ref,\n index: index == null ? -1 : index\n }), [index, ref]);\n}\n\nconst FOCUSABLE_ATTRIBUTE = 'data-floating-ui-focusable';\nconst ACTIVE_KEY = 'active';\nconst SELECTED_KEY = 'selected';\nconst ARROW_LEFT = 'ArrowLeft';\nconst ARROW_RIGHT = 'ArrowRight';\nconst ARROW_UP = 'ArrowUp';\nconst ARROW_DOWN = 'ArrowDown';\n\nfunction renderJsx(render, computedProps) {\n if (typeof render === 'function') {\n return render(computedProps);\n }\n if (render) {\n return /*#__PURE__*/React.cloneElement(render, computedProps);\n }\n return /*#__PURE__*/jsx(\"div\", {\n ...computedProps\n });\n}\nconst CompositeContext = /*#__PURE__*/React.createContext({\n activeIndex: 0,\n onNavigate: () => {}\n});\nconst horizontalKeys = [ARROW_LEFT, ARROW_RIGHT];\nconst verticalKeys = [ARROW_UP, ARROW_DOWN];\nconst allKeys = [...horizontalKeys, ...verticalKeys];\n\n/**\n * Creates a single tab stop whose items are navigated by arrow keys, which\n * provides list navigation outside of floating element contexts.\n *\n * This is useful to enable navigation of a list of items that aren’t part of a\n * floating element. A menubar is an example of a composite, with each reference\n * element being an item.\n * @see https://floating-ui.com/docs/Composite\n */\nconst Composite = /*#__PURE__*/React.forwardRef(function Composite(props, forwardedRef) {\n const {\n render,\n orientation = 'both',\n loop = true,\n rtl = false,\n cols = 1,\n disabledIndices,\n activeIndex: externalActiveIndex,\n onNavigate: externalSetActiveIndex,\n itemSizes,\n dense = false,\n ...domProps\n } = props;\n const [internalActiveIndex, internalSetActiveIndex] = React.useState(0);\n const activeIndex = externalActiveIndex != null ? externalActiveIndex : internalActiveIndex;\n const onNavigate = useEffectEvent(externalSetActiveIndex != null ? externalSetActiveIndex : internalSetActiveIndex);\n const elementsRef = React.useRef([]);\n const renderElementProps = render && typeof render !== 'function' ? render.props : {};\n const contextValue = React.useMemo(() => ({\n activeIndex,\n onNavigate\n }), [activeIndex, onNavigate]);\n const isGrid = cols > 1;\n function handleKeyDown(event) {\n if (!allKeys.includes(event.key)) return;\n let nextIndex = activeIndex;\n const minIndex = getMinListIndex(elementsRef, disabledIndices);\n const maxIndex = getMaxListIndex(elementsRef, disabledIndices);\n const horizontalEndKey = rtl ? ARROW_LEFT : ARROW_RIGHT;\n const horizontalStartKey = rtl ? ARROW_RIGHT : ARROW_LEFT;\n if (isGrid) {\n const sizes = itemSizes || Array.from({\n length: elementsRef.current.length\n }, () => ({\n width: 1,\n height: 1\n }));\n // To calculate movements on the grid, we use hypothetical cell indices\n // as if every item was 1x1, then convert back to real indices.\n const cellMap = createGridCellMap(sizes, cols, dense);\n const minGridIndex = cellMap.findIndex(index => index != null && !isListIndexDisabled(elementsRef, index, disabledIndices));\n // last enabled index\n const maxGridIndex = cellMap.reduce((foundIndex, index, cellIndex) => index != null && !isListIndexDisabled(elementsRef, index, disabledIndices) ? cellIndex : foundIndex, -1);\n const maybeNextIndex = cellMap[getGridNavigatedIndex({\n current: cellMap.map(itemIndex => itemIndex ? elementsRef.current[itemIndex] : null)\n }, {\n event,\n orientation,\n loop,\n rtl,\n cols,\n // treat undefined (empty grid spaces) as disabled indices so we\n // don't end up in them\n disabledIndices: getGridCellIndices([...((typeof disabledIndices !== 'function' ? disabledIndices : null) || elementsRef.current.map((_, index) => isListIndexDisabled(elementsRef, index, disabledIndices) ? index : undefined)), undefined], cellMap),\n minIndex: minGridIndex,\n maxIndex: maxGridIndex,\n prevIndex: getGridCellIndexOfCorner(activeIndex > maxIndex ? minIndex : activeIndex, sizes, cellMap, cols,\n // use a corner matching the edge closest to the direction we're\n // moving in so we don't end up in the same item. Prefer\n // top/left over bottom/right.\n event.key === ARROW_DOWN ? 'bl' : event.key === horizontalEndKey ? 'tr' : 'tl')\n })];\n if (maybeNextIndex != null) {\n nextIndex = maybeNextIndex;\n }\n }\n const toEndKeys = {\n horizontal: [horizontalEndKey],\n vertical: [ARROW_DOWN],\n both: [horizontalEndKey, ARROW_DOWN]\n }[orientation];\n const toStartKeys = {\n horizontal: [horizontalStartKey],\n vertical: [ARROW_UP],\n both: [horizontalStartKey, ARROW_UP]\n }[orientation];\n const preventedKeys = isGrid ? allKeys : {\n horizontal: horizontalKeys,\n vertical: verticalKeys,\n both: allKeys\n }[orientation];\n if (nextIndex === activeIndex && [...toEndKeys, ...toStartKeys].includes(event.key)) {\n if (loop && nextIndex === maxIndex && toEndKeys.includes(event.key)) {\n nextIndex = minIndex;\n } else if (loop && nextIndex === minIndex && toStartKeys.includes(event.key)) {\n nextIndex = maxIndex;\n } else {\n nextIndex = findNonDisabledListIndex(elementsRef, {\n startingIndex: nextIndex,\n decrement: toStartKeys.includes(event.key),\n disabledIndices\n });\n }\n }\n if (nextIndex !== activeIndex && !isIndexOutOfListBounds(elementsRef, nextIndex)) {\n var _elementsRef$current$;\n event.stopPropagation();\n if (preventedKeys.includes(event.key)) {\n event.preventDefault();\n }\n onNavigate(nextIndex);\n (_elementsRef$current$ = elementsRef.current[nextIndex]) == null || _elementsRef$current$.focus();\n }\n }\n const computedProps = {\n ...domProps,\n ...renderElementProps,\n ref: forwardedRef,\n 'aria-orientation': orientation === 'both' ? undefined : orientation,\n onKeyDown(e) {\n domProps.onKeyDown == null || domProps.onKeyDown(e);\n renderElementProps.onKeyDown == null || renderElementProps.onKeyDown(e);\n handleKeyDown(e);\n }\n };\n return /*#__PURE__*/jsx(CompositeContext.Provider, {\n value: contextValue,\n children: /*#__PURE__*/jsx(FloatingList, {\n elementsRef: elementsRef,\n children: renderJsx(render, computedProps)\n })\n });\n});\n/**\n * @see https://floating-ui.com/docs/Composite\n */\nconst CompositeItem = /*#__PURE__*/React.forwardRef(function CompositeItem(props, forwardedRef) {\n const {\n render,\n ...domProps\n } = props;\n const renderElementProps = render && typeof render !== 'function' ? render.props : {};\n const {\n activeIndex,\n onNavigate\n } = React.useContext(CompositeContext);\n const {\n ref,\n index\n } = useListItem();\n const mergedRef = useMergeRefs([ref, forwardedRef, renderElementProps.ref]);\n const isActive = activeIndex === index;\n const computedProps = {\n ...domProps,\n ...renderElementProps,\n ref: mergedRef,\n tabIndex: isActive ? 0 : -1,\n 'data-active': isActive ? '' : undefined,\n onFocus(e) {\n domProps.onFocus == null || domProps.onFocus(e);\n renderElementProps.onFocus == null || renderElementProps.onFocus(e);\n onNavigate(index);\n }\n };\n return renderJsx(render, computedProps);\n});\n\n// https://github.com/mui/material-ui/issues/41190#issuecomment-2040873379\nconst SafeReact = {\n ...React\n};\n\nlet serverHandoffComplete = false;\nlet count = 0;\nconst genId = () => // Ensure the id is unique with multiple independent versions of Floating UI\n// on <React 18\n\"floating-ui-\" + Math.random().toString(36).slice(2, 6) + count++;\nfunction useFloatingId() {\n const [id, setId] = React.useState(() => serverHandoffComplete ? genId() : undefined);\n useModernLayoutEffect(() => {\n if (id == null) {\n setId(genId());\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n React.useEffect(() => {\n serverHandoffComplete = true;\n }, []);\n return id;\n}\nconst useReactId = SafeReact.useId;\n\n/**\n * Uses React 18's built-in `useId()` when available, or falls back to a\n * slightly less performant (requiring a double render) implementation for\n * earlier React versions.\n * @see https://floating-ui.com/docs/react-utils#useid\n */\nconst useId = useReactId || useFloatingId;\n\nlet devMessageSet;\nif (process.env.NODE_ENV !== \"production\") {\n devMessageSet = /*#__PURE__*/new Set();\n}\nfunction warn() {\n var _devMessageSet;\n for (var _len = arguments.length, messages = new Array(_len), _key = 0; _key < _len; _key++) {\n messages[_key] = arguments[_key];\n }\n const message = \"Floating UI: \" + messages.join(' ');\n if (!((_devMessageSet = devMessageSet) != null && _devMessageSet.has(message))) {\n var _devMessageSet2;\n (_devMessageSet2 = devMessageSet) == null || _devMessageSet2.add(message);\n console.warn(message);\n }\n}\nfunction error() {\n var _devMessageSet3;\n for (var _len2 = arguments.length, messages = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n messages[_key2] = arguments[_key2];\n }\n const message = \"Floating UI: \" + messages.join(' ');\n if (!((_devMessageSet3 = devMessageSet) != null && _devMessageSet3.has(message))) {\n var _devMessageSet4;\n (_devMessageSet4 = devMessageSet) == null || _devMessageSet4.add(message);\n console.error(message);\n }\n}\n\n/**\n * Renders a pointing arrow triangle.\n * @see https://floating-ui.com/docs/FloatingArrow\n */\nconst FloatingArrow = /*#__PURE__*/React.forwardRef(function FloatingArrow(props, ref) {\n const {\n context: {\n placement,\n elements: {\n floating\n },\n middlewareData: {\n arrow,\n shift\n }\n },\n width = 14,\n height = 7,\n tipRadius = 0,\n strokeWidth = 0,\n staticOffset,\n stroke,\n d,\n style: {\n transform,\n ...restStyle\n } = {},\n ...rest\n } = props;\n if (process.env.NODE_ENV !== \"production\") {\n if (!ref) {\n warn('The `ref` prop is required for `FloatingArrow`.');\n }\n }\n const clipPathId = useId();\n const [isRTL, setIsRTL] = React.useState(false);\n\n // https://github.com/floating-ui/floating-ui/issues/2932\n useModernLayoutEffect(() => {\n if (!floating) return;\n const isRTL = getComputedStyle(floating).direction === 'rtl';\n if (isRTL) {\n setIsRTL(true);\n }\n }, [floating]);\n if (!floating) {\n return null;\n }\n const [side, alignment] = placement.split('-');\n const isVerticalSide = side === 'top' || side === 'bottom';\n let computedStaticOffset = staticOffset;\n if (isVerticalSide && shift != null && shift.x || !isVerticalSide && shift != null && shift.y) {\n computedStaticOffset = null;\n }\n\n // Strokes must be double the border width, this ensures the stroke's width\n // works as you'd expect.\n const computedStrokeWidth = strokeWidth * 2;\n const halfStrokeWidth = computedStrokeWidth / 2;\n const svgX = width / 2 * (tipRadius / -8 + 1);\n const svgY = height / 2 * tipRadius / 4;\n const isCustomShape = !!d;\n const yOffsetProp = computedStaticOffset && alignment === 'end' ? 'bottom' : 'top';\n let xOffsetProp = computedStaticOffset && alignment === 'end' ? 'right' : 'left';\n if (computedStaticOffset && isRTL) {\n xOffsetProp = alignment === 'end' ? 'left' : 'right';\n }\n const arrowX = (arrow == null ? void 0 : arrow.x) != null ? computedStaticOffset || arrow.x : '';\n const arrowY = (arrow == null ? void 0 : arrow.y) != null ? computedStaticOffset || arrow.y : '';\n const dValue = d || 'M0,0' + (\" H\" + width) + (\" L\" + (width - svgX) + \",\" + (height - svgY)) + (\" Q\" + width / 2 + \",\" + height + \" \" + svgX + \",\" + (height - svgY)) + ' Z';\n const rotation = {\n top: isCustomShape ? 'rotate(180deg)' : '',\n left: isCustomShape ? 'rotate(90deg)' : 'rotate(-90deg)',\n bottom: isCustomShape ? '' : 'rotate(180deg)',\n right: isCustomShape ? 'rotate(-90deg)' : 'rotate(90deg)'\n }[side];\n return /*#__PURE__*/jsxs(\"svg\", {\n ...rest,\n \"aria-hidden\": true,\n ref: ref,\n width: isCustomShape ? width : width + computedStrokeWidth,\n height: width,\n viewBox: \"0 0 \" + width + \" \" + (height > width ? height : width),\n style: {\n position: 'absolute',\n pointerEvents: 'none',\n [xOffsetProp]: arrowX,\n [yOffsetProp]: arrowY,\n [side]: isVerticalSide || isCustomShape ? '100%' : \"calc(100% - \" + computedStrokeWidth / 2 + \"px)\",\n transform: [rotation, transform].filter(t => !!t).join(' '),\n ...restStyle\n },\n children: [computedStrokeWidth > 0 && /*#__PURE__*/jsx(\"path\", {\n clipPath: \"url(#\" + clipPathId + \")\",\n fill: \"none\",\n stroke: stroke\n // Account for the stroke on the fill path rendered below.\n ,\n strokeWidth: computedStrokeWidth + (d ? 0 : 1),\n d: dValue\n }), /*#__PURE__*/jsx(\"path\", {\n stroke: computedStrokeWidth && !d ? rest.fill : 'none',\n d: dValue\n }), /*#__PURE__*/jsx(\"clipPath\", {\n id: clipPathId,\n children: /*#__PURE__*/jsx(\"rect\", {\n x: -halfStrokeWidth,\n y: halfStrokeWidth * (isCustomShape ? -1 : 1),\n width: width + computedStrokeWidth,\n height: width\n })\n })]\n });\n});\n\nfunction createEventEmitter() {\n const map = new Map();\n return {\n emit(event, data) {\n var _map$get;\n (_map$get = map.get(event)) == null || _map$get.forEach(listener => listener(data));\n },\n on(event, listener) {\n if (!map.has(event)) {\n map.set(event, new Set());\n }\n map.get(event).add(listener);\n },\n off(event, listener) {\n var _map$get2;\n (_map$get2 = map.get(event)) == null || _map$get2.delete(listener);\n }\n };\n}\n\nconst FloatingNodeContext = /*#__PURE__*/React.createContext(null);\nconst FloatingTreeContext = /*#__PURE__*/React.createContext(null);\n\n/**\n * Returns the parent node id for nested floating elements, if available.\n * Returns `null` for top-level floating elements.\n */\nconst useFloatingParentNodeId = () => {\n var _React$useContext;\n return ((_React$useContext = React.useContext(FloatingNodeContext)) == null ? void 0 : _React$useContext.id) || null;\n};\n\n/**\n * Returns the nearest floating tree context, if available.\n */\nconst useFloatingTree = () => React.useContext(FloatingTreeContext);\n\n/**\n * Registers a node into the `FloatingTree`, returning its id.\n * @see https://floating-ui.com/docs/FloatingTree\n */\nfunction useFloatingNodeId(customParentId) {\n const id = useId();\n const tree = useFloatingTree();\n const reactParentId = useFloatingParentNodeId();\n const parentId = customParentId || reactParentId;\n useModernLayoutEffect(() => {\n if (!id) return;\n const node = {\n id,\n parentId\n };\n tree == null || tree.addNode(node);\n return () => {\n tree == null || tree.removeNode(node);\n };\n }, [tree, id, parentId]);\n return id;\n}\n/**\n * Provides parent node context for nested floating elements.\n * @see https://floating-ui.com/docs/FloatingTree\n */\nfunction FloatingNode(props) {\n const {\n children,\n id\n } = props;\n const parentId = useFloatingParentNodeId();\n return /*#__PURE__*/jsx(FloatingNodeContext.Provider, {\n value: React.useMemo(() => ({\n id,\n parentId\n }), [id, parentId]),\n children: children\n });\n}\n/**\n * Provides context for nested floating elements when they are not children of\n * each other on the DOM.\n * This is not necessary in all cases, except when there must be explicit communication between parent and child floating elements. It is necessary for:\n * - The `bubbles` option in the `useDismiss()` Hook\n * - Nested virtual list navigation\n * - Nested floating elements that each open on hover\n * - Custom communication between parent and child floating elements\n * @see https://floating-ui.com/docs/FloatingTree\n */\nfunction FloatingTree(props) {\n const {\n children\n } = props;\n const nodesRef = React.useRef([]);\n const addNode = React.useCallback(node => {\n nodesRef.current = [...nodesRef.current, node];\n }, []);\n const removeNode = React.useCallback(node => {\n nodesRef.current = nodesRef.current.filter(n => n !== node);\n }, []);\n const [events] = React.useState(() => createEventEmitter());\n return /*#__PURE__*/jsx(FloatingTreeContext.Provider, {\n value: React.useMemo(() => ({\n nodesRef,\n addNode,\n removeNode,\n events\n }), [addNode, removeNode, events]),\n children: children\n });\n}\n\nfunction createAttribute(name) {\n return \"data-floating-ui-\" + name;\n}\n\nfunction clearTimeoutIfSet(timeoutRef) {\n if (timeoutRef.current !== -1) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = -1;\n }\n}\n\nconst safePolygonIdentifier = /*#__PURE__*/createAttribute('safe-polygon');\nfunction getDelay(value, prop, pointerType) {\n if (pointerType && !isMouseLikePointerType(pointerType)) {\n return 0;\n }\n if (typeof value === 'number') {\n return value;\n }\n if (typeof value === 'function') {\n const result = value();\n if (typeof result === 'number') {\n return result;\n }\n return result == null ? void 0 : result[prop];\n }\n return value == null ? void 0 : value[prop];\n}\nfunction getRestMs(value) {\n if (typeof value === 'function') {\n return value();\n }\n return value;\n}\n/**\n * Opens the floating element while hovering over the reference element, like\n * CSS `:hover`.\n * @see https://floating-ui.com/docs/useHover\n */\nfunction useHover(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n onOpenChange,\n dataRef,\n events,\n elements\n } = context;\n const {\n enabled = true,\n delay = 0,\n handleClose = null,\n mouseOnly = false,\n restMs = 0,\n move = true\n } = props;\n const tree = useFloatingTree();\n const parentId = useFloatingParentNodeId();\n const handleCloseRef = useLatestRef(handleClose);\n const delayRef = useLatestRef(delay);\n const openRef = useLatestRef(open);\n const restMsRef = useLatestRef(restMs);\n const pointerTypeRef = React.useRef();\n const timeoutRef = React.useRef(-1);\n const handlerRef = React.useRef();\n const restTimeoutRef = React.useRef(-1);\n const blockMouseMoveRef = React.useRef(true);\n const performedPointerEventsMutationRef = React.useRef(false);\n const unbindMouseMoveRef = React.useRef(() => {});\n const restTimeoutPendingRef = React.useRef(false);\n const isHoverOpen = useEffectEvent(() => {\n var _dataRef$current$open;\n const type = (_dataRef$current$open = dataRef.current.openEvent) == null ? void 0 : _dataRef$current$open.type;\n return (type == null ? void 0 : type.includes('mouse')) && type !== 'mousedown';\n });\n\n // When closing before opening, clear the delay timeouts to cancel it\n // from showing.\n React.useEffect(() => {\n if (!enabled) return;\n function onOpenChange(_ref) {\n let {\n open\n } = _ref;\n if (!open) {\n clearTimeoutIfSet(timeoutRef);\n clearTimeoutIfSet(restTimeoutRef);\n blockMouseMoveRef.current = true;\n restTimeoutPendingRef.current = false;\n }\n }\n events.on('openchange', onOpenChange);\n return () => {\n events.off('openchange', onOpenChange);\n };\n }, [enabled, events]);\n React.useEffect(() => {\n if (!enabled) return;\n if (!handleCloseRef.current) return;\n if (!open) return;\n function onLeave(event) {\n if (isHoverOpen()) {\n onOpenChange(false, event, 'hover');\n }\n }\n const html = getDocument$1(elements.floating).documentElement;\n html.addEventListener('mouseleave', onLeave);\n return () => {\n html.removeEventListener('mouseleave', onLeave);\n };\n }, [elements.floating, open, onOpenChange, enabled, handleCloseRef, isHoverOpen]);\n const closeWithDelay = React.useCallback(function (event, runElseBranch, reason) {\n if (runElseBranch === void 0) {\n runElseBranch = true;\n }\n if (reason === void 0) {\n reason = 'hover';\n }\n const closeDelay = getDelay(delayRef.current, 'close', pointerTypeRef.current);\n if (closeDelay && !handlerRef.current) {\n clearTimeoutIfSet(timeoutRef);\n timeoutRef.current = window.setTimeout(() => onOpenChange(false, event, reason), closeDelay);\n } else if (runElseBranch) {\n clearTimeoutIfSet(timeoutRef);\n onOpenChange(false, event, reason);\n }\n }, [delayRef, onOpenChange]);\n const cleanupMouseMoveHandler = useEffectEvent(() => {\n unbindMouseMoveRef.current();\n handlerRef.current = undefined;\n });\n const clearPointerEvents = useEffectEvent(() => {\n if (performedPointerEventsMutationRef.current) {\n const body = getDocument$1(elements.floating).body;\n body.style.pointerEvents = '';\n body.removeAttribute(safePolygonIdentifier);\n performedPointerEventsMutationRef.current = false;\n }\n });\n const isClickLikeOpenEvent = useEffectEvent(() => {\n return dataRef.current.openEvent ? ['click', 'mousedown'].includes(dataRef.current.openEvent.type) : false;\n });\n\n // Registering the mouse events on the reference directly to bypass React's\n // delegation system. If the cursor was on a disabled element and then entered\n // the reference (no gap), `mouseenter` doesn't fire in the delegation system.\n React.useEffect(() => {\n if (!enabled) return;\n function onReferenceMouseEnter(event) {\n clearTimeoutIfSet(timeoutRef);\n blockMouseMoveRef.current = false;\n if (mouseOnly && !isMouseLikePointerType(pointerTypeRef.current) || getRestMs(restMsRef.current) > 0 && !getDelay(delayRef.current, 'open')) {\n return;\n }\n const openDelay = getDelay(delayRef.current, 'open', pointerTypeRef.current);\n if (openDelay) {\n timeoutRef.current = window.setTimeout(() => {\n if (!openRef.current) {\n onOpenChange(true, event, 'hover');\n }\n }, openDelay);\n } else if (!open) {\n onOpenChange(true, event, 'hover');\n }\n }\n function onReferenceMouseLeave(event) {\n if (isClickLikeOpenEvent()) {\n clearPointerEvents();\n return;\n }\n unbindMouseMoveRef.current();\n const doc = getDocument$1(elements.floating);\n clearTimeoutIfSet(restTimeoutRef);\n restTimeoutPendingRef.current = false;\n if (handleCloseRef.current && dataRef.current.floatingContext) {\n // Prevent clearing `onScrollMouseLeave` timeout.\n if (!open) {\n clearTimeoutIfSet(timeoutRef);\n }\n handlerRef.current = handleCloseRef.current({\n ...dataRef.current.floatingContext,\n tree,\n x: event.clientX,\n y: event.clientY,\n onClose() {\n clearPointerEvents();\n cleanupMouseMoveHandler();\n if (!isClickLikeOpenEvent()) {\n closeWithDelay(event, true, 'safe-polygon');\n }\n }\n });\n const handler = handlerRef.current;\n doc.addEventListener('mousemove', handler);\n unbindMouseMoveRef.current = () => {\n doc.removeEventListener('mousemove', handler);\n };\n return;\n }\n\n // Allow interactivity without `safePolygon` on touch devices. With a\n // pointer, a short close delay is an alternative, so it should work\n // consistently.\n const shouldClose = pointerTypeRef.current === 'touch' ? !contains$1(elements.floating, event.relatedTarget) : true;\n if (shouldClose) {\n closeWithDelay(event);\n }\n }\n\n // Ensure the floating element closes after scrolling even if the pointer\n // did not move.\n // https://github.com/floating-ui/floating-ui/discussions/1692\n function onScrollMouseLeave(event) {\n if (isClickLikeOpenEvent()) return;\n if (!dataRef.current.floatingContext) return;\n handleCloseRef.current == null || handleCloseRef.current({\n ...dataRef.current.floatingContext,\n tree,\n x: event.clientX,\n y: event.clientY,\n onClose() {\n clearPointerEvents();\n cleanupMouseMoveHandler();\n if (!isClickLikeOpenEvent()) {\n closeWithDelay(event);\n }\n }\n })(event);\n }\n function onFloatingMouseEnter() {\n clearTimeoutIfSet(timeoutRef);\n }\n function onFloatingMouseLeave(event) {\n if (!isClickLikeOpenEvent()) {\n closeWithDelay(event, false);\n }\n }\n if (isElement(elements.domReference)) {\n const reference = elements.domReference;\n const floating = elements.floating;\n if (open) {\n reference.addEventListener('mouseleave', onScrollMouseLeave);\n }\n if (move) {\n reference.addEventListener('mousemove', onReferenceMouseEnter, {\n once: true\n });\n }\n reference.addEventListener('mouseenter', onReferenceMouseEnter);\n reference.addEventListener('mouseleave', onReferenceMouseLeave);\n if (floating) {\n floating.addEventListener('mouseleave', onScrollMouseLeave);\n floating.addEventListener('mouseenter', onFloatingMouseEnter);\n floating.addEventListener('mouseleave', onFloatingMouseLeave);\n }\n return () => {\n if (open) {\n reference.removeEventListener('mouseleave', onScrollMouseLeave);\n }\n if (move) {\n reference.removeEventListener('mousemove', onReferenceMouseEnter);\n }\n reference.removeEventListener('mouseenter', onReferenceMouseEnter);\n reference.removeEventListener('mouseleave', onReferenceMouseLeave);\n if (floating) {\n floating.removeEventListener('mouseleave', onScrollMouseLeave);\n floating.removeEventListener('mouseenter', onFloatingMouseEnter);\n floating.removeEventListener('mouseleave', onFloatingMouseLeave);\n }\n };\n }\n }, [elements, enabled, context, mouseOnly, move, closeWithDelay, cleanupMouseMoveHandler, clearPointerEvents, onOpenChange, open, openRef, tree, delayRef, handleCloseRef, dataRef, isClickLikeOpenEvent, restMsRef]);\n\n // Block pointer-events of every element other than the reference and floating\n // while the floating element is open and has a `handleClose` handler. Also\n // handles nested floating elements.\n // https://github.com/floating-ui/floating-ui/issues/1722\n useModernLayoutEffect(() => {\n var _handleCloseRef$curre;\n if (!enabled) return;\n if (open && (_handleCloseRef$curre = handleCloseRef.current) != null && (_handleCloseRef$curre = _handleCloseRef$curre.__options) != null && _handleCloseRef$curre.blockPointerEvents && isHoverOpen()) {\n performedPointerEventsMutationRef.current = true;\n const floatingEl = elements.floating;\n if (isElement(elements.domReference) && floatingEl) {\n var _tree$nodesRef$curren;\n const body = getDocument$1(elements.floating).body;\n body.setAttribute(safePolygonIdentifier, '');\n const ref = elements.domReference;\n const parentFloating = tree == null || (_tree$nodesRef$curren = tree.nodesRef.current.find(node => node.id === parentId)) == null || (_tree$nodesRef$curren = _tree$nodesRef$curren.context) == null ? void 0 : _tree$nodesRef$curren.elements.floating;\n if (parentFloating) {\n parentFloating.style.pointerEvents = '';\n }\n body.style.pointerEvents = 'none';\n ref.style.pointerEvents = 'auto';\n floatingEl.style.pointerEvents = 'auto';\n return () => {\n body.style.pointerEvents = '';\n ref.style.pointerEvents = '';\n floatingEl.style.pointerEvents = '';\n };\n }\n }\n }, [enabled, open, parentId, elements, tree, handleCloseRef, isHoverOpen]);\n useModernLayoutEffect(() => {\n if (!open) {\n pointerTypeRef.current = undefined;\n restTimeoutPendingRef.current = false;\n cleanupMouseMoveHandler();\n clearPointerEvents();\n }\n }, [open, cleanupMouseMoveHandler, clearPointerEvents]);\n React.useEffect(() => {\n return () => {\n cleanupMouseMoveHandler();\n clearTimeoutIfSet(timeoutRef);\n clearTimeoutIfSet(restTimeoutRef);\n clearPointerEvents();\n };\n }, [enabled, elements.domReference, cleanupMouseMoveHandler, clearPointerEvents]);\n const reference = React.useMemo(() => {\n function setPointerRef(event) {\n pointerTypeRef.current = event.pointerType;\n }\n return {\n onPointerDown: setPointerRef,\n onPointerEnter: setPointerRef,\n onMouseMove(event) {\n const {\n nativeEvent\n } = event;\n function handleMouseMove() {\n if (!blockMouseMoveRef.current && !openRef.current) {\n onOpenChange(true, nativeEvent, 'hover');\n }\n }\n if (mouseOnly && !isMouseLikePointerType(pointerTypeRef.current)) {\n return;\n }\n if (open || getRestMs(restMsRef.current) === 0) {\n return;\n }\n\n // Ignore insignificant movements to account for tremors.\n if (restTimeoutPendingRef.current && event.movementX ** 2 + event.movementY ** 2 < 2) {\n return;\n }\n clearTimeoutIfSet(restTimeoutRef);\n if (pointerTypeRef.current === 'touch') {\n handleMouseMove();\n } else {\n restTimeoutPendingRef.current = true;\n restTimeoutRef.current = window.setTimeout(handleMouseMove, getRestMs(restMsRef.current));\n }\n }\n };\n }, [mouseOnly, onOpenChange, open, openRef, restMsRef]);\n return React.useMemo(() => enabled ? {\n reference\n } : {}, [enabled, reference]);\n}\n\nconst NOOP = () => {};\nconst FloatingDelayGroupContext = /*#__PURE__*/React.createContext({\n delay: 0,\n initialDelay: 0,\n timeoutMs: 0,\n currentId: null,\n setCurrentId: NOOP,\n setState: NOOP,\n isInstantPhase: false\n});\n\n/**\n * @deprecated\n * Use the return value of `useDelayGroup()` instead.\n */\nconst useDelayGroupContext = () => React.useContext(FloatingDelayGroupContext);\n/**\n * Provides context for a group of floating elements that should share a\n * `delay`.\n * @see https://floating-ui.com/docs/FloatingDelayGroup\n */\nfunction FloatingDelayGroup(props) {\n const {\n children,\n delay,\n timeoutMs = 0\n } = props;\n const [state, setState] = React.useReducer((prev, next) => ({\n ...prev,\n ...next\n }), {\n delay,\n timeoutMs,\n initialDelay: delay,\n currentId: null,\n isInstantPhase: false\n });\n const initialCurrentIdRef = React.useRef(null);\n const setCurrentId = React.useCallback(currentId => {\n setState({\n currentId\n });\n }, []);\n useModernLayoutEffect(() => {\n if (state.currentId) {\n if (initialCurrentIdRef.current === null) {\n initialCurrentIdRef.current = state.currentId;\n } else if (!state.isInstantPhase) {\n setState({\n isInstantPhase: true\n });\n }\n } else {\n if (state.isInstantPhase) {\n setState({\n isInstantPhase: false\n });\n }\n initialCurrentIdRef.current = null;\n }\n }, [state.currentId, state.isInstantPhase]);\n return /*#__PURE__*/jsx(FloatingDelayGroupContext.Provider, {\n value: React.useMemo(() => ({\n ...state,\n setState,\n setCurrentId\n }), [state, setCurrentId]),\n children: children\n });\n}\n/**\n * Enables grouping when called inside a component that's a child of a\n * `FloatingDelayGroup`.\n * @see https://floating-ui.com/docs/FloatingDelayGroup\n */\nfunction useDelayGroup(context, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n open,\n onOpenChange,\n floatingId\n } = context;\n const {\n id: optionId,\n enabled = true\n } = options;\n const id = optionId != null ? optionId : floatingId;\n const groupContext = useDelayGroupContext();\n const {\n currentId,\n setCurrentId,\n initialDelay,\n setState,\n timeoutMs\n } = groupContext;\n useModernLayoutEffect(() => {\n if (!enabled) return;\n if (!currentId) return;\n setState({\n delay: {\n open: 1,\n close: getDelay(initialDelay, 'close')\n }\n });\n if (currentId !== id) {\n onOpenChange(false);\n }\n }, [enabled, id, onOpenChange, setState, currentId, initialDelay]);\n useModernLayoutEffect(() => {\n function unset() {\n onOpenChange(false);\n setState({\n delay: initialDelay,\n currentId: null\n });\n }\n if (!enabled) return;\n if (!currentId) return;\n if (!open && currentId === id) {\n if (timeoutMs) {\n const timeout = window.setTimeout(unset, timeoutMs);\n return () => {\n clearTimeout(timeout);\n };\n }\n unset();\n }\n }, [enabled, open, setState, currentId, id, onOpenChange, initialDelay, timeoutMs]);\n useModernLayoutEffect(() => {\n if (!enabled) return;\n if (setCurrentId === NOOP || !open) return;\n setCurrentId(id);\n }, [enabled, open, setCurrentId, id]);\n return groupContext;\n}\n\nconst NextFloatingDelayGroupContext = /*#__PURE__*/React.createContext({\n hasProvider: false,\n timeoutMs: 0,\n delayRef: {\n current: 0\n },\n initialDelayRef: {\n current: 0\n },\n timeoutIdRef: {\n current: -1\n },\n currentIdRef: {\n current: null\n },\n currentContextRef: {\n current: null\n }\n});\n/**\n * Experimental next version of `FloatingDelayGroup` to become the default\n * in the future. This component is not yet stable.\n * Provides context for a group of floating elements that should share a\n * `delay`. Unlike `FloatingDelayGroup`, `useNextDelayGroup` with this\n * component does not cause a re-render of unrelated consumers of the\n * context when the delay changes.\n * @see https://floating-ui.com/docs/FloatingDelayGroup\n */\nfunction NextFloatingDelayGroup(props) {\n const {\n children,\n delay,\n timeoutMs = 0\n } = props;\n const delayRef = React.useRef(delay);\n const initialDelayRef = React.useRef(delay);\n const currentIdRef = React.useRef(null);\n const currentContextRef = React.useRef(null);\n const timeoutIdRef = React.useRef(-1);\n return /*#__PURE__*/jsx(NextFloatingDelayGroupContext.Provider, {\n value: React.useMemo(() => ({\n hasProvider: true,\n delayRef,\n initialDelayRef,\n currentIdRef,\n timeoutMs,\n currentContextRef,\n timeoutIdRef\n }), [timeoutMs]),\n children: children\n });\n}\n/**\n * Enables grouping when called inside a component that's a child of a\n * `NextFloatingDelayGroup`.\n * @see https://floating-ui.com/docs/FloatingDelayGroup\n */\nfunction useNextDelayGroup(context, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n open,\n onOpenChange,\n floatingId\n } = context;\n const {\n enabled = true\n } = options;\n const groupContext = React.useContext(NextFloatingDelayGroupContext);\n const {\n currentIdRef,\n delayRef,\n timeoutMs,\n initialDelayRef,\n currentContextRef,\n hasProvider,\n timeoutIdRef\n } = groupContext;\n const [isInstantPhase, setIsInstantPhase] = React.useState(false);\n useModernLayoutEffect(() => {\n function unset() {\n var _currentContextRef$cu;\n setIsInstantPhase(false);\n (_currentContextRef$cu = currentContextRef.current) == null || _currentContextRef$cu.setIsInstantPhase(false);\n currentIdRef.current = null;\n currentContextRef.current = null;\n delayRef.current = initialDelayRef.current;\n }\n if (!enabled) return;\n if (!currentIdRef.current) return;\n if (!open && currentIdRef.current === floatingId) {\n setIsInstantPhase(false);\n if (timeoutMs) {\n timeoutIdRef.current = window.setTimeout(unset, timeoutMs);\n return () => {\n clearTimeout(timeoutIdRef.current);\n };\n }\n unset();\n }\n }, [enabled, open, floatingId, currentIdRef, delayRef, timeoutMs, initialDelayRef, currentContextRef, timeoutIdRef]);\n useModernLayoutEffect(() => {\n if (!enabled) return;\n if (!open) return;\n const prevContext = currentContextRef.current;\n const prevId = currentIdRef.current;\n currentContextRef.current = {\n onOpenChange,\n setIsInstantPhase\n };\n currentIdRef.current = floatingId;\n delayRef.current = {\n open: 0,\n close: getDelay(initialDelayRef.current, 'close')\n };\n if (prevId !== null && prevId !== floatingId) {\n clearTimeoutIfSet(timeoutIdRef);\n setIsInstantPhase(true);\n prevContext == null || prevContext.setIsInstantPhase(true);\n prevContext == null || prevContext.onOpenChange(false);\n } else {\n setIsInstantPhase(false);\n prevContext == null || prevContext.setIsInstantPhase(false);\n }\n }, [enabled, open, floatingId, onOpenChange, currentIdRef, delayRef, timeoutMs, initialDelayRef, currentContextRef, timeoutIdRef]);\n useModernLayoutEffect(() => {\n return () => {\n currentContextRef.current = null;\n };\n }, [currentContextRef]);\n return React.useMemo(() => ({\n hasProvider,\n delayRef,\n isInstantPhase\n }), [hasProvider, delayRef, isInstantPhase]);\n}\n\nlet rafId = 0;\nfunction enqueueFocus(el, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n preventScroll = false,\n cancelPrevious = true,\n sync = false\n } = options;\n cancelPrevious && cancelAnimationFrame(rafId);\n const exec = () => el == null ? void 0 : el.focus({\n preventScroll\n });\n if (sync) {\n exec();\n } else {\n rafId = requestAnimationFrame(exec);\n }\n}\n\nfunction contains(parent, child) {\n if (!parent || !child) {\n return false;\n }\n const rootNode = child.getRootNode == null ? void 0 : child.getRootNode();\n\n // First, attempt with faster native method\n if (parent.contains(child)) {\n return true;\n }\n\n // then fallback to custom implementation with Shadow DOM support\n if (rootNode && isShadowRoot(rootNode)) {\n let next = child;\n while (next) {\n if (parent === next) {\n return true;\n }\n // @ts-ignore\n next = next.parentNode || next.host;\n }\n }\n\n // Give up, the result is false\n return false;\n}\nfunction getTarget(event) {\n if ('composedPath' in event) {\n return event.composedPath()[0];\n }\n\n // TS thinks `event` is of type never as it assumes all browsers support\n // `composedPath()`, but browsers without shadow DOM don't.\n return event.target;\n}\nfunction getDocument(node) {\n return (node == null ? void 0 : node.ownerDocument) || document;\n}\n\n// Modified to add conditional `aria-hidden` support:\n// https://github.com/theKashey/aria-hidden/blob/9220c8f4a4fd35f63bee5510a9f41a37264382d4/src/index.ts\nconst counters = {\n inert: /*#__PURE__*/new WeakMap(),\n 'aria-hidden': /*#__PURE__*/new WeakMap(),\n none: /*#__PURE__*/new WeakMap()\n};\nfunction getCounterMap(control) {\n if (control === 'inert') return counters.inert;\n if (control === 'aria-hidden') return counters['aria-hidden'];\n return counters.none;\n}\nlet uncontrolledElementsSet = /*#__PURE__*/new WeakSet();\nlet markerMap = {};\nlet lockCount$1 = 0;\nconst supportsInert = () => typeof HTMLElement !== 'undefined' && 'inert' in HTMLElement.prototype;\nfunction unwrapHost(node) {\n if (!node) {\n return null;\n }\n return isShadowRoot(node) ? node.host : unwrapHost(node.parentNode);\n}\nconst correctElements = (parent, targets) => targets.map(target => {\n if (parent.contains(target)) {\n return target;\n }\n const correctedTarget = unwrapHost(target);\n if (parent.contains(correctedTarget)) {\n return correctedTarget;\n }\n return null;\n}).filter(x => x != null);\nfunction applyAttributeToOthers(uncorrectedAvoidElements, body, ariaHidden, inert) {\n const markerName = 'data-floating-ui-inert';\n const controlAttribute = inert ? 'inert' : ariaHidden ? 'aria-hidden' : null;\n const avoidElements = correctElements(body, uncorrectedAvoidElements);\n const elementsToKeep = new Set();\n const elementsToStop = new Set(avoidElements);\n const hiddenElements = [];\n if (!markerMap[markerName]) {\n markerMap[markerName] = new WeakMap();\n }\n const markerCounter = markerMap[markerName];\n avoidElements.forEach(keep);\n deep(body);\n elementsToKeep.clear();\n function keep(el) {\n if (!el || elementsToKeep.has(el)) {\n return;\n }\n elementsToKeep.add(el);\n el.parentNode && keep(el.parentNode);\n }\n function deep(parent) {\n if (!parent || elementsToStop.has(parent)) {\n return;\n }\n [].forEach.call(parent.children, node => {\n if (getNodeName(node) === 'script') return;\n if (elementsToKeep.has(node)) {\n deep(node);\n } else {\n const attr = controlAttribute ? node.getAttribute(controlAttribute) : null;\n const alreadyHidden = attr !== null && attr !== 'false';\n const counterMap = getCounterMap(controlAttribute);\n const counterValue = (counterMap.get(node) || 0) + 1;\n const markerValue = (markerCounter.get(node) || 0) + 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n hiddenElements.push(node);\n if (counterValue === 1 && alreadyHidden) {\n uncontrolledElementsSet.add(node);\n }\n if (markerValue === 1) {\n node.setAttribute(markerName, '');\n }\n if (!alreadyHidden && controlAttribute) {\n node.setAttribute(controlAttribute, controlAttribute === 'inert' ? '' : 'true');\n }\n }\n });\n }\n lockCount$1++;\n return () => {\n hiddenElements.forEach(element => {\n const counterMap = getCounterMap(controlAttribute);\n const currentCounterValue = counterMap.get(element) || 0;\n const counterValue = currentCounterValue - 1;\n const markerValue = (markerCounter.get(element) || 0) - 1;\n counterMap.set(element, counterValue);\n markerCounter.set(element, markerValue);\n if (!counterValue) {\n if (!uncontrolledElementsSet.has(element) && controlAttribute) {\n element.removeAttribute(controlAttribute);\n }\n uncontrolledElementsSet.delete(element);\n }\n if (!markerValue) {\n element.removeAttribute(markerName);\n }\n });\n lockCount$1--;\n if (!lockCount$1) {\n counters.inert = new WeakMap();\n counters['aria-hidden'] = new WeakMap();\n counters.none = new WeakMap();\n uncontrolledElementsSet = new WeakSet();\n markerMap = {};\n }\n };\n}\nfunction markOthers(avoidElements, ariaHidden, inert) {\n if (ariaHidden === void 0) {\n ariaHidden = false;\n }\n if (inert === void 0) {\n inert = false;\n }\n const body = getDocument(avoidElements[0]).body;\n return applyAttributeToOthers(avoidElements.concat(Array.from(body.querySelectorAll('[aria-live],[role=\"status\"],output'))), body, ariaHidden, inert);\n}\n\nconst HIDDEN_STYLES = {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: 0,\n position: 'fixed',\n whiteSpace: 'nowrap',\n width: '1px',\n top: 0,\n left: 0\n};\nconst FocusGuard = /*#__PURE__*/React.forwardRef(function FocusGuard(props, ref) {\n const [role, setRole] = React.useState();\n useModernLayoutEffect(() => {\n if (isSafari()) {\n // Unlike other screen readers such as NVDA and JAWS, the virtual cursor\n // on VoiceOver does trigger the onFocus event, so we can use the focus\n // trap element. On Safari, only buttons trigger the onFocus event.\n // NB: \"group\" role in the Sandbox no longer appears to work, must be a\n // button role.\n setRole('button');\n }\n }, []);\n const restProps = {\n ref,\n tabIndex: 0,\n // Role is only for VoiceOver\n role,\n 'aria-hidden': role ? undefined : true,\n [createAttribute('focus-guard')]: '',\n style: HIDDEN_STYLES\n };\n return /*#__PURE__*/jsx(\"span\", {\n ...props,\n ...restProps\n });\n});\n\nconst HIDDEN_OWNER_STYLES = {\n clipPath: 'inset(50%)',\n position: 'fixed',\n top: 0,\n left: 0\n};\nconst PortalContext = /*#__PURE__*/React.createContext(null);\nconst attr = /*#__PURE__*/createAttribute('portal');\n/**\n * @see https://floating-ui.com/docs/FloatingPortal#usefloatingportalnode\n */\nfunction useFloatingPortalNode(props) {\n if (props === void 0) {\n props = {};\n }\n const {\n id,\n root\n } = props;\n const uniqueId = useId();\n const portalContext = usePortalContext();\n const [portalNode, setPortalNode] = React.useState(null);\n const portalNodeRef = React.useRef(null);\n useModernLayoutEffect(() => {\n return () => {\n portalNode == null || portalNode.remove();\n // Allow the subsequent layout effects to create a new node on updates.\n // The portal node will still be cleaned up on unmount.\n // https://github.com/floating-ui/floating-ui/issues/2454\n queueMicrotask(() => {\n portalNodeRef.current = null;\n });\n };\n }, [portalNode]);\n useModernLayoutEffect(() => {\n // Wait for the uniqueId to be generated before creating the portal node in\n // React <18 (using `useFloatingId` instead of the native `useId`).\n // https://github.com/floating-ui/floating-ui/issues/2778\n if (!uniqueId) return;\n if (portalNodeRef.current) return;\n const existingIdRoot = id ? document.getElementById(id) : null;\n if (!existingIdRoot) return;\n const subRoot = document.createElement('div');\n subRoot.id = uniqueId;\n subRoot.setAttribute(attr, '');\n existingIdRoot.appendChild(subRoot);\n portalNodeRef.current = subRoot;\n setPortalNode(subRoot);\n }, [id, uniqueId]);\n useModernLayoutEffect(() => {\n // Wait for the root to exist before creating the portal node. The root must\n // be stored in state, not a ref, for this to work reactively.\n if (root === null) return;\n if (!uniqueId) return;\n if (portalNodeRef.current) return;\n let container = root || (portalContext == null ? void 0 : portalContext.portalNode);\n if (container && !isNode(container)) container = container.current;\n container = container || document.body;\n let idWrapper = null;\n if (id) {\n idWrapper = document.createElement('div');\n idWrapper.id = id;\n container.appendChild(idWrapper);\n }\n const subRoot = document.createElement('div');\n subRoot.id = uniqueId;\n subRoot.setAttribute(attr, '');\n container = idWrapper || container;\n container.appendChild(subRoot);\n portalNodeRef.current = subRoot;\n setPortalNode(subRoot);\n }, [id, root, uniqueId, portalContext]);\n return portalNode;\n}\n/**\n * Portals the floating element into a given container element — by default,\n * outside of the app root and into the body.\n * This is necessary to ensure the floating element can appear outside any\n * potential parent containers that cause clipping (such as `overflow: hidden`),\n * while retaining its location in the React tree.\n * @see https://floating-ui.com/docs/FloatingPortal\n */\nfunction FloatingPortal(props) {\n const {\n children,\n id,\n root,\n preserveTabOrder = true\n } = props;\n const portalNode = useFloatingPortalNode({\n id,\n root\n });\n const [focusManagerState, setFocusManagerState] = React.useState(null);\n const beforeOutsideRef = React.useRef(null);\n const afterOutsideRef = React.useRef(null);\n const beforeInsideRef = React.useRef(null);\n const afterInsideRef = React.useRef(null);\n const modal = focusManagerState == null ? void 0 : focusManagerState.modal;\n const open = focusManagerState == null ? void 0 : focusManagerState.open;\n const shouldRenderGuards =\n // The FocusManager and therefore floating element are currently open/\n // rendered.\n !!focusManagerState &&\n // Guards are only for non-modal focus management.\n !focusManagerState.modal &&\n // Don't render if unmount is transitioning.\n focusManagerState.open && preserveTabOrder && !!(root || portalNode);\n\n // https://codesandbox.io/s/tabbable-portal-f4tng?file=/src/TabbablePortal.tsx\n React.useEffect(() => {\n if (!portalNode || !preserveTabOrder || modal) {\n return;\n }\n\n // Make sure elements inside the portal element are tabbable only when the\n // portal has already been focused, either by tabbing into a focus trap\n // element outside or using the mouse.\n function onFocus(event) {\n if (portalNode && isOutsideEvent(event)) {\n const focusing = event.type === 'focusin';\n const manageFocus = focusing ? enableFocusInside : disableFocusInside;\n manageFocus(portalNode);\n }\n }\n // Listen to the event on the capture phase so they run before the focus\n // trap elements onFocus prop is called.\n portalNode.addEventListener('focusin', onFocus, true);\n portalNode.addEventListener('focusout', onFocus, true);\n return () => {\n portalNode.removeEventListener('focusin', onFocus, true);\n portalNode.removeEventListener('focusout', onFocus, true);\n };\n }, [portalNode, preserveTabOrder, modal]);\n React.useEffect(() => {\n if (!portalNode) return;\n if (open) return;\n enableFocusInside(portalNode);\n }, [open, portalNode]);\n return /*#__PURE__*/jsxs(PortalContext.Provider, {\n value: React.useMemo(() => ({\n preserveTabOrder,\n beforeOutsideRef,\n afterOutsideRef,\n beforeInsideRef,\n afterInsideRef,\n portalNode,\n setFocusManagerState\n }), [preserveTabOrder, portalNode]),\n children: [shouldRenderGuards && portalNode && /*#__PURE__*/jsx(FocusGuard, {\n \"data-type\": \"outside\",\n ref: beforeOutsideRef,\n onFocus: event => {\n if (isOutsideEvent(event, portalNode)) {\n var _beforeInsideRef$curr;\n (_beforeInsideRef$curr = beforeInsideRef.current) == null || _beforeInsideRef$curr.focus();\n } else {\n const domReference = focusManagerState ? focusManagerState.domReference : null;\n const prevTabbable = getPreviousTabbable(domReference);\n prevTabbable == null || prevTabbable.focus();\n }\n }\n }), shouldRenderGuards && portalNode && /*#__PURE__*/jsx(\"span\", {\n \"aria-owns\": portalNode.id,\n style: HIDDEN_OWNER_STYLES\n }), portalNode && /*#__PURE__*/ReactDOM.createPortal(children, portalNode), shouldRenderGuards && portalNode && /*#__PURE__*/jsx(FocusGuard, {\n \"data-type\": \"outside\",\n ref: afterOutsideRef,\n onFocus: event => {\n if (isOutsideEvent(event, portalNode)) {\n var _afterInsideRef$curre;\n (_afterInsideRef$curre = afterInsideRef.current) == null || _afterInsideRef$curre.focus();\n } else {\n const domReference = focusManagerState ? focusManagerState.domReference : null;\n const nextTabbable = getNextTabbable(domReference);\n nextTabbable == null || nextTabbable.focus();\n (focusManagerState == null ? void 0 : focusManagerState.closeOnFocusOut) && (focusManagerState == null ? void 0 : focusManagerState.onOpenChange(false, event.nativeEvent, 'focus-out'));\n }\n }\n })]\n });\n}\nconst usePortalContext = () => React.useContext(PortalContext);\n\nfunction useLiteMergeRefs(refs) {\n return React.useMemo(() => {\n return value => {\n refs.forEach(ref => {\n if (ref) {\n ref.current = value;\n }\n });\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, refs);\n}\n\nconst LIST_LIMIT = 20;\nlet previouslyFocusedElements = [];\nfunction clearDisconnectedPreviouslyFocusedElements() {\n previouslyFocusedElements = previouslyFocusedElements.filter(elementRef => {\n var _elementRef$deref;\n return (_elementRef$deref = elementRef.deref()) == null ? void 0 : _elementRef$deref.isConnected;\n });\n}\nfunction addPreviouslyFocusedElement(element) {\n clearDisconnectedPreviouslyFocusedElements();\n if (element && getNodeName(element) !== 'body') {\n previouslyFocusedElements.push(new WeakRef(element));\n if (previouslyFocusedElements.length > LIST_LIMIT) {\n previouslyFocusedElements = previouslyFocusedElements.slice(-LIST_LIMIT);\n }\n }\n}\nfunction getPreviouslyFocusedElement() {\n clearDisconnectedPreviouslyFocusedElements();\n const elementRef = previouslyFocusedElements[previouslyFocusedElements.length - 1];\n return elementRef == null ? void 0 : elementRef.deref();\n}\nfunction getFirstTabbableElement(container) {\n const tabbableOptions = getTabbableOptions();\n if (isTabbable(container, tabbableOptions)) {\n return container;\n }\n return tabbable(container, tabbableOptions)[0] || container;\n}\nfunction handleTabIndex(floatingFocusElement, orderRef) {\n var _floatingFocusElement;\n if (!orderRef.current.includes('floating') && !((_floatingFocusElement = floatingFocusElement.getAttribute('role')) != null && _floatingFocusElement.includes('dialog'))) {\n return;\n }\n const options = getTabbableOptions();\n const focusableElements = focusable(floatingFocusElement, options);\n const tabbableContent = focusableElements.filter(element => {\n const dataTabIndex = element.getAttribute('data-tabindex') || '';\n return isTabbable(element, options) || element.hasAttribute('data-tabindex') && !dataTabIndex.startsWith('-');\n });\n const tabIndex = floatingFocusElement.getAttribute('tabindex');\n if (orderRef.current.includes('floating') || tabbableContent.length === 0) {\n if (tabIndex !== '0') {\n floatingFocusElement.setAttribute('tabindex', '0');\n }\n } else if (tabIndex !== '-1' || floatingFocusElement.hasAttribute('data-tabindex') && floatingFocusElement.getAttribute('data-tabindex') !== '-1') {\n floatingFocusElement.setAttribute('tabindex', '-1');\n floatingFocusElement.setAttribute('data-tabindex', '-1');\n }\n}\nconst VisuallyHiddenDismiss = /*#__PURE__*/React.forwardRef(function VisuallyHiddenDismiss(props, ref) {\n return /*#__PURE__*/jsx(\"button\", {\n ...props,\n type: \"button\",\n ref: ref,\n tabIndex: -1,\n style: HIDDEN_STYLES\n });\n});\n/**\n * Provides focus management for the floating element.\n * @see https://floating-ui.com/docs/FloatingFocusManager\n */\nfunction FloatingFocusManager(props) {\n const {\n context,\n children,\n disabled = false,\n order = ['content'],\n guards: _guards = true,\n initialFocus = 0,\n returnFocus = true,\n restoreFocus = false,\n modal = true,\n visuallyHiddenDismiss = false,\n closeOnFocusOut = true,\n outsideElementsInert = false,\n getInsideElements: _getInsideElements = () => []\n } = props;\n const {\n open,\n onOpenChange,\n events,\n dataRef,\n elements: {\n domReference,\n floating\n }\n } = context;\n const getNodeId = useEffectEvent(() => {\n var _dataRef$current$floa;\n return (_dataRef$current$floa = dataRef.current.floatingContext) == null ? void 0 : _dataRef$current$floa.nodeId;\n });\n const getInsideElements = useEffectEvent(_getInsideElements);\n const ignoreInitialFocus = typeof initialFocus === 'number' && initialFocus < 0;\n // If the reference is a combobox and is typeable (e.g. input/textarea),\n // there are different focus semantics. The guards should not be rendered, but\n // aria-hidden should be applied to all nodes still. Further, the visually\n // hidden dismiss button should only appear at the end of the list, not the\n // start.\n const isUntrappedTypeableCombobox = isTypeableCombobox(domReference) && ignoreInitialFocus;\n\n // Force the guards to be rendered if the `inert` attribute is not supported.\n const inertSupported = supportsInert();\n const guards = inertSupported ? _guards : true;\n const useInert = !guards || inertSupported && outsideElementsInert;\n const orderRef = useLatestRef(order);\n const initialFocusRef = useLatestRef(initialFocus);\n const returnFocusRef = useLatestRef(returnFocus);\n const tree = useFloatingTree();\n const portalContext = usePortalContext();\n const startDismissButtonRef = React.useRef(null);\n const endDismissButtonRef = React.useRef(null);\n const preventReturnFocusRef = React.useRef(false);\n const isPointerDownRef = React.useRef(false);\n const tabbableIndexRef = React.useRef(-1);\n const blurTimeoutRef = React.useRef(-1);\n const isInsidePortal = portalContext != null;\n const floatingFocusElement = getFloatingFocusElement(floating);\n const getTabbableContent = useEffectEvent(function (container) {\n if (container === void 0) {\n container = floatingFocusElement;\n }\n return container ? tabbable(container, getTabbableOptions()) : [];\n });\n const getTabbableElements = useEffectEvent(container => {\n const content = getTabbableContent(container);\n return orderRef.current.map(type => {\n if (domReference && type === 'reference') {\n return domReference;\n }\n if (floatingFocusElement && type === 'floating') {\n return floatingFocusElement;\n }\n return content;\n }).filter(Boolean).flat();\n });\n React.useEffect(() => {\n if (disabled) return;\n if (!modal) return;\n function onKeyDown(event) {\n if (event.key === 'Tab') {\n // The focus guards have nothing to focus, so we need to stop the event.\n if (contains$1(floatingFocusElement, activeElement(getDocument$1(floatingFocusElement))) && getTabbableContent().length === 0 && !isUntrappedTypeableCombobox) {\n stopEvent(event);\n }\n const els = getTabbableElements();\n const target = getTarget$1(event);\n if (orderRef.current[0] === 'reference' && target === domReference) {\n stopEvent(event);\n if (event.shiftKey) {\n enqueueFocus(els[els.length - 1]);\n } else {\n enqueueFocus(els[1]);\n }\n }\n if (orderRef.current[1] === 'floating' && target === floatingFocusElement && event.shiftKey) {\n stopEvent(event);\n enqueueFocus(els[0]);\n }\n }\n }\n const doc = getDocument$1(floatingFocusElement);\n doc.addEventListener('keydown', onKeyDown);\n return () => {\n doc.removeEventListener('keydown', onKeyDown);\n };\n }, [disabled, domReference, floatingFocusElement, modal, orderRef, isUntrappedTypeableCombobox, getTabbableContent, getTabbableElements]);\n React.useEffect(() => {\n if (disabled) return;\n if (!floating) return;\n function handleFocusIn(event) {\n const target = getTarget$1(event);\n const tabbableContent = getTabbableContent();\n const tabbableIndex = tabbableContent.indexOf(target);\n if (tabbableIndex !== -1) {\n tabbableIndexRef.current = tabbableIndex;\n }\n }\n floating.addEventListener('focusin', handleFocusIn);\n return () => {\n floating.removeEventListener('focusin', handleFocusIn);\n };\n }, [disabled, floating, getTabbableContent]);\n React.useEffect(() => {\n if (disabled) return;\n if (!closeOnFocusOut) return;\n\n // In Safari, buttons lose focus when pressing them.\n function handlePointerDown() {\n isPointerDownRef.current = true;\n setTimeout(() => {\n isPointerDownRef.current = false;\n });\n }\n function handleFocusOutside(event) {\n const relatedTarget = event.relatedTarget;\n const currentTarget = event.currentTarget;\n const target = getTarget$1(event);\n queueMicrotask(() => {\n const nodeId = getNodeId();\n const movedToUnrelatedNode = !(contains$1(domReference, relatedTarget) || contains$1(floating, relatedTarget) || contains$1(relatedTarget, floating) || contains$1(portalContext == null ? void 0 : portalContext.portalNode, relatedTarget) || relatedTarget != null && relatedTarget.hasAttribute(createAttribute('focus-guard')) || tree && (getNodeChildren$1(tree.nodesRef.current, nodeId).find(node => {\n var _node$context, _node$context2;\n return contains$1((_node$context = node.context) == null ? void 0 : _node$context.elements.floating, relatedTarget) || contains$1((_node$context2 = node.context) == null ? void 0 : _node$context2.elements.domReference, relatedTarget);\n }) || getNodeAncestors(tree.nodesRef.current, nodeId).find(node => {\n var _node$context3, _node$context4, _node$context5;\n return [(_node$context3 = node.context) == null ? void 0 : _node$context3.elements.floating, getFloatingFocusElement((_node$context4 = node.context) == null ? void 0 : _node$context4.elements.floating)].includes(relatedTarget) || ((_node$context5 = node.context) == null ? void 0 : _node$context5.elements.domReference) === relatedTarget;\n })));\n if (currentTarget === domReference && floatingFocusElement) {\n handleTabIndex(floatingFocusElement, orderRef);\n }\n\n // Restore focus to the previous tabbable element index to prevent\n // focus from being lost outside the floating tree.\n if (restoreFocus && currentTarget !== domReference && !(target != null && target.isConnected) && activeElement(getDocument$1(floatingFocusElement)) === getDocument$1(floatingFocusElement).body) {\n // Let `FloatingPortal` effect knows that focus is still inside the\n // floating tree.\n if (isHTMLElement(floatingFocusElement)) {\n floatingFocusElement.focus();\n }\n const prevTabbableIndex = tabbableIndexRef.current;\n const tabbableContent = getTabbableContent();\n const nodeToFocus = tabbableContent[prevTabbableIndex] || tabbableContent[tabbableContent.length - 1] || floatingFocusElement;\n if (isHTMLElement(nodeToFocus)) {\n nodeToFocus.focus();\n }\n }\n\n // https://github.com/floating-ui/floating-ui/issues/3060\n if (dataRef.current.insideReactTree) {\n dataRef.current.insideReactTree = false;\n return;\n }\n\n // Focus did not move inside the floating tree, and there are no tabbable\n // portal guards to handle closing.\n if ((isUntrappedTypeableCombobox ? true : !modal) && relatedTarget && movedToUnrelatedNode && !isPointerDownRef.current &&\n // Fix React 18 Strict Mode returnFocus due to double rendering.\n relatedTarget !== getPreviouslyFocusedElement()) {\n preventReturnFocusRef.current = true;\n onOpenChange(false, event, 'focus-out');\n }\n });\n }\n const shouldHandleBlurCapture = Boolean(!tree && portalContext);\n function markInsideReactTree() {\n clearTimeoutIfSet(blurTimeoutRef);\n dataRef.current.insideReactTree = true;\n blurTimeoutRef.current = window.setTimeout(() => {\n dataRef.current.insideReactTree = false;\n });\n }\n if (floating && isHTMLElement(domReference)) {\n domReference.addEventListener('focusout', handleFocusOutside);\n domReference.addEventListener('pointerdown', handlePointerDown);\n floating.addEventListener('focusout', handleFocusOutside);\n if (shouldHandleBlurCapture) {\n floating.addEventListener('focusout', markInsideReactTree, true);\n }\n return () => {\n domReference.removeEventListener('focusout', handleFocusOutside);\n domReference.removeEventListener('pointerdown', handlePointerDown);\n floating.removeEventListener('focusout', handleFocusOutside);\n if (shouldHandleBlurCapture) {\n floating.removeEventListener('focusout', markInsideReactTree, true);\n }\n };\n }\n }, [disabled, domReference, floating, floatingFocusElement, modal, tree, portalContext, onOpenChange, closeOnFocusOut, restoreFocus, getTabbableContent, isUntrappedTypeableCombobox, getNodeId, orderRef, dataRef]);\n const beforeGuardRef = React.useRef(null);\n const afterGuardRef = React.useRef(null);\n const mergedBeforeGuardRef = useLiteMergeRefs([beforeGuardRef, portalContext == null ? void 0 : portalContext.beforeInsideRef]);\n const mergedAfterGuardRef = useLiteMergeRefs([afterGuardRef, portalContext == null ? void 0 : portalContext.afterInsideRef]);\n React.useEffect(() => {\n var _portalContext$portal, _ancestors$find;\n if (disabled) return;\n if (!floating) return;\n\n // Don't hide portals nested within the parent portal.\n const portalNodes = Array.from((portalContext == null || (_portalContext$portal = portalContext.portalNode) == null ? void 0 : _portalContext$portal.querySelectorAll(\"[\" + createAttribute('portal') + \"]\")) || []);\n const ancestors = tree ? getNodeAncestors(tree.nodesRef.current, getNodeId()) : [];\n const rootAncestorComboboxDomReference = (_ancestors$find = ancestors.find(node => {\n var _node$context6;\n return isTypeableCombobox(((_node$context6 = node.context) == null ? void 0 : _node$context6.elements.domReference) || null);\n })) == null || (_ancestors$find = _ancestors$find.context) == null ? void 0 : _ancestors$find.elements.domReference;\n const insideElements = [floating, rootAncestorComboboxDomReference, ...portalNodes, ...getInsideElements(), startDismissButtonRef.current, endDismissButtonRef.current, beforeGuardRef.current, afterGuardRef.current, portalContext == null ? void 0 : portalContext.beforeOutsideRef.current, portalContext == null ? void 0 : portalContext.afterOutsideRef.current, orderRef.current.includes('reference') || isUntrappedTypeableCombobox ? domReference : null].filter(x => x != null);\n const cleanup = modal || isUntrappedTypeableCombobox ? markOthers(insideElements, !useInert, useInert) : markOthers(insideElements);\n return () => {\n cleanup();\n };\n }, [disabled, domReference, floating, modal, orderRef, portalContext, isUntrappedTypeableCombobox, guards, useInert, tree, getNodeId, getInsideElements]);\n useModernLayoutEffect(() => {\n if (disabled || !isHTMLElement(floatingFocusElement)) return;\n const doc = getDocument$1(floatingFocusElement);\n const previouslyFocusedElement = activeElement(doc);\n\n // Wait for any layout effect state setters to execute to set `tabIndex`.\n queueMicrotask(() => {\n const focusableElements = getTabbableElements(floatingFocusElement);\n const initialFocusValue = initialFocusRef.current;\n const elToFocus = (typeof initialFocusValue === 'number' ? focusableElements[initialFocusValue] : initialFocusValue.current) || floatingFocusElement;\n const focusAlreadyInsideFloatingEl = contains$1(floatingFocusElement, previouslyFocusedElement);\n if (!ignoreInitialFocus && !focusAlreadyInsideFloatingEl && open) {\n enqueueFocus(elToFocus, {\n preventScroll: elToFocus === floatingFocusElement\n });\n }\n });\n }, [disabled, open, floatingFocusElement, ignoreInitialFocus, getTabbableElements, initialFocusRef]);\n useModernLayoutEffect(() => {\n if (disabled || !floatingFocusElement) return;\n const doc = getDocument$1(floatingFocusElement);\n const previouslyFocusedElement = activeElement(doc);\n addPreviouslyFocusedElement(previouslyFocusedElement);\n\n // Dismissing via outside press should always ignore `returnFocus` to\n // prevent unwanted scrolling.\n function onOpenChange(_ref) {\n let {\n reason,\n event,\n nested\n } = _ref;\n if (['hover', 'safe-polygon'].includes(reason) && event.type === 'mouseleave') {\n preventReturnFocusRef.current = true;\n }\n if (reason !== 'outside-press') return;\n if (nested) {\n preventReturnFocusRef.current = false;\n } else if (isVirtualClick(event) || isVirtualPointerEvent(event)) {\n preventReturnFocusRef.current = false;\n } else {\n let isPreventScrollSupported = false;\n document.createElement('div').focus({\n get preventScroll() {\n isPreventScrollSupported = true;\n return false;\n }\n });\n if (isPreventScrollSupported) {\n preventReturnFocusRef.current = false;\n } else {\n preventReturnFocusRef.current = true;\n }\n }\n }\n events.on('openchange', onOpenChange);\n const fallbackEl = doc.createElement('span');\n fallbackEl.setAttribute('tabindex', '-1');\n fallbackEl.setAttribute('aria-hidden', 'true');\n Object.assign(fallbackEl.style, HIDDEN_STYLES);\n if (isInsidePortal && domReference) {\n domReference.insertAdjacentElement('afterend', fallbackEl);\n }\n function getReturnElement() {\n if (typeof returnFocusRef.current === 'boolean') {\n const el = domReference || getPreviouslyFocusedElement();\n return el && el.isConnected ? el : fallbackEl;\n }\n return returnFocusRef.current.current || fallbackEl;\n }\n return () => {\n events.off('openchange', onOpenChange);\n const activeEl = activeElement(doc);\n const isFocusInsideFloatingTree = contains$1(floating, activeEl) || tree && getNodeChildren$1(tree.nodesRef.current, getNodeId(), false).some(node => {\n var _node$context7;\n return contains$1((_node$context7 = node.context) == null ? void 0 : _node$context7.elements.floating, activeEl);\n });\n const returnElement = getReturnElement();\n queueMicrotask(() => {\n // This is `returnElement`, if it's tabbable, or its first tabbable child.\n const tabbableReturnElement = getFirstTabbableElement(returnElement);\n if (\n // eslint-disable-next-line react-hooks/exhaustive-deps\n returnFocusRef.current && !preventReturnFocusRef.current && isHTMLElement(tabbableReturnElement) && (\n // If the focus moved somewhere else after mount, avoid returning focus\n // since it likely entered a different element which should be\n // respected: https://github.com/floating-ui/floating-ui/issues/2607\n tabbableReturnElement !== activeEl && activeEl !== doc.body ? isFocusInsideFloatingTree : true)) {\n tabbableReturnElement.focus({\n preventScroll: true\n });\n }\n fallbackEl.remove();\n });\n };\n }, [disabled, floating, floatingFocusElement, returnFocusRef, dataRef, events, tree, isInsidePortal, domReference, getNodeId]);\n React.useEffect(() => {\n // The `returnFocus` cleanup behavior is inside a microtask; ensure we\n // wait for it to complete before resetting the flag.\n queueMicrotask(() => {\n preventReturnFocusRef.current = false;\n });\n return () => {\n queueMicrotask(clearDisconnectedPreviouslyFocusedElements);\n };\n }, [disabled]);\n\n // Synchronize the `context` & `modal` value to the FloatingPortal context.\n // It will decide whether or not it needs to render its own guards.\n useModernLayoutEffect(() => {\n if (disabled) return;\n if (!portalContext) return;\n portalContext.setFocusManagerState({\n modal,\n closeOnFocusOut,\n open,\n onOpenChange,\n domReference\n });\n return () => {\n portalContext.setFocusManagerState(null);\n };\n }, [disabled, portalContext, modal, open, onOpenChange, closeOnFocusOut, domReference]);\n useModernLayoutEffect(() => {\n if (disabled) return;\n if (!floatingFocusElement) return;\n handleTabIndex(floatingFocusElement, orderRef);\n }, [disabled, floatingFocusElement, orderRef]);\n function renderDismissButton(location) {\n if (disabled || !visuallyHiddenDismiss || !modal) {\n return null;\n }\n return /*#__PURE__*/jsx(VisuallyHiddenDismiss, {\n ref: location === 'start' ? startDismissButtonRef : endDismissButtonRef,\n onClick: event => onOpenChange(false, event.nativeEvent),\n children: typeof visuallyHiddenDismiss === 'string' ? visuallyHiddenDismiss : 'Dismiss'\n });\n }\n const shouldRenderGuards = !disabled && guards && (modal ? !isUntrappedTypeableCombobox : true) && (isInsidePortal || modal);\n return /*#__PURE__*/jsxs(Fragment, {\n children: [shouldRenderGuards && /*#__PURE__*/jsx(FocusGuard, {\n \"data-type\": \"inside\",\n ref: mergedBeforeGuardRef,\n onFocus: event => {\n if (modal) {\n const els = getTabbableElements();\n enqueueFocus(order[0] === 'reference' ? els[0] : els[els.length - 1]);\n } else if (portalContext != null && portalContext.preserveTabOrder && portalContext.portalNode) {\n preventReturnFocusRef.current = false;\n if (isOutsideEvent(event, portalContext.portalNode)) {\n const nextTabbable = getNextTabbable(domReference);\n nextTabbable == null || nextTabbable.focus();\n } else {\n var _portalContext$before;\n (_portalContext$before = portalContext.beforeOutsideRef.current) == null || _portalContext$before.focus();\n }\n }\n }\n }), !isUntrappedTypeableCombobox && renderDismissButton('start'), children, renderDismissButton('end'), shouldRenderGuards && /*#__PURE__*/jsx(FocusGuard, {\n \"data-type\": \"inside\",\n ref: mergedAfterGuardRef,\n onFocus: event => {\n if (modal) {\n enqueueFocus(getTabbableElements()[0]);\n } else if (portalContext != null && portalContext.preserveTabOrder && portalContext.portalNode) {\n if (closeOnFocusOut) {\n preventReturnFocusRef.current = true;\n }\n if (isOutsideEvent(event, portalContext.portalNode)) {\n const prevTabbable = getPreviousTabbable(domReference);\n prevTabbable == null || prevTabbable.focus();\n } else {\n var _portalContext$afterO;\n (_portalContext$afterO = portalContext.afterOutsideRef.current) == null || _portalContext$afterO.focus();\n }\n }\n }\n })]\n });\n}\n\nlet lockCount = 0;\nconst scrollbarProperty = '--floating-ui-scrollbar-width';\nfunction enableScrollLock() {\n const platform = getPlatform();\n const isIOS = /iP(hone|ad|od)|iOS/.test(platform) ||\n // iPads can claim to be MacIntel\n platform === 'MacIntel' && navigator.maxTouchPoints > 1;\n const bodyStyle = document.body.style;\n // RTL <body> scrollbar\n const scrollbarX = Math.round(document.documentElement.getBoundingClientRect().left) + document.documentElement.scrollLeft;\n const paddingProp = scrollbarX ? 'paddingLeft' : 'paddingRight';\n const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\n const scrollX = bodyStyle.left ? parseFloat(bodyStyle.left) : window.scrollX;\n const scrollY = bodyStyle.top ? parseFloat(bodyStyle.top) : window.scrollY;\n bodyStyle.overflow = 'hidden';\n bodyStyle.setProperty(scrollbarProperty, scrollbarWidth + \"px\");\n if (scrollbarWidth) {\n bodyStyle[paddingProp] = scrollbarWidth + \"px\";\n }\n\n // Only iOS doesn't respect `overflow: hidden` on document.body, and this\n // technique has fewer side effects.\n if (isIOS) {\n var _window$visualViewpor, _window$visualViewpor2;\n // iOS 12 does not support `visualViewport`.\n const offsetLeft = ((_window$visualViewpor = window.visualViewport) == null ? void 0 : _window$visualViewpor.offsetLeft) || 0;\n const offsetTop = ((_window$visualViewpor2 = window.visualViewport) == null ? void 0 : _window$visualViewpor2.offsetTop) || 0;\n Object.assign(bodyStyle, {\n position: 'fixed',\n top: -(scrollY - Math.floor(offsetTop)) + \"px\",\n left: -(scrollX - Math.floor(offsetLeft)) + \"px\",\n right: '0'\n });\n }\n return () => {\n Object.assign(bodyStyle, {\n overflow: '',\n [paddingProp]: ''\n });\n bodyStyle.removeProperty(scrollbarProperty);\n if (isIOS) {\n Object.assign(bodyStyle, {\n position: '',\n top: '',\n left: '',\n right: ''\n });\n window.scrollTo(scrollX, scrollY);\n }\n };\n}\nlet cleanup = () => {};\n\n/**\n * Provides base styling for a fixed overlay element to dim content or block\n * pointer events behind a floating element.\n * It's a regular `<div>`, so it can be styled via any CSS solution you prefer.\n * @see https://floating-ui.com/docs/FloatingOverlay\n */\nconst FloatingOverlay = /*#__PURE__*/React.forwardRef(function FloatingOverlay(props, ref) {\n const {\n lockScroll = false,\n ...rest\n } = props;\n useModernLayoutEffect(() => {\n if (!lockScroll) return;\n lockCount++;\n if (lockCount === 1) {\n cleanup = enableScrollLock();\n }\n return () => {\n lockCount--;\n if (lockCount === 0) {\n cleanup();\n }\n };\n }, [lockScroll]);\n return /*#__PURE__*/jsx(\"div\", {\n ref: ref,\n ...rest,\n style: {\n position: 'fixed',\n overflow: 'auto',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...rest.style\n }\n });\n});\n\nfunction isButtonTarget(event) {\n return isHTMLElement(event.target) && event.target.tagName === 'BUTTON';\n}\nfunction isAnchorTarget(event) {\n return isHTMLElement(event.target) && event.target.tagName === 'A';\n}\nfunction isSpaceIgnored(element) {\n return isTypeableElement(element);\n}\n/**\n * Opens or closes the floating element when clicking the reference element.\n * @see https://floating-ui.com/docs/useClick\n */\nfunction useClick(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n onOpenChange,\n dataRef,\n elements: {\n domReference\n }\n } = context;\n const {\n enabled = true,\n event: eventOption = 'click',\n toggle = true,\n ignoreMouse = false,\n keyboardHandlers = true,\n stickIfOpen = true\n } = props;\n const pointerTypeRef = React.useRef();\n const didKeyDownRef = React.useRef(false);\n const reference = React.useMemo(() => ({\n onPointerDown(event) {\n pointerTypeRef.current = event.pointerType;\n },\n onMouseDown(event) {\n const pointerType = pointerTypeRef.current;\n\n // Ignore all buttons except for the \"main\" button.\n // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button\n if (event.button !== 0) return;\n if (eventOption === 'click') return;\n if (isMouseLikePointerType(pointerType, true) && ignoreMouse) return;\n if (open && toggle && (dataRef.current.openEvent && stickIfOpen ? dataRef.current.openEvent.type === 'mousedown' : true)) {\n onOpenChange(false, event.nativeEvent, 'click');\n } else {\n // Prevent stealing focus from the floating element\n event.preventDefault();\n onOpenChange(true, event.nativeEvent, 'click');\n }\n },\n onClick(event) {\n const pointerType = pointerTypeRef.current;\n if (eventOption === 'mousedown' && pointerTypeRef.current) {\n pointerTypeRef.current = undefined;\n return;\n }\n if (isMouseLikePointerType(pointerType, true) && ignoreMouse) return;\n if (open && toggle && (dataRef.current.openEvent && stickIfOpen ? dataRef.current.openEvent.type === 'click' : true)) {\n onOpenChange(false, event.nativeEvent, 'click');\n } else {\n onOpenChange(true, event.nativeEvent, 'click');\n }\n },\n onKeyDown(event) {\n pointerTypeRef.current = undefined;\n if (event.defaultPrevented || !keyboardHandlers || isButtonTarget(event)) {\n return;\n }\n if (event.key === ' ' && !isSpaceIgnored(domReference)) {\n // Prevent scrolling\n event.preventDefault();\n didKeyDownRef.current = true;\n }\n if (isAnchorTarget(event)) {\n return;\n }\n if (event.key === 'Enter') {\n if (open && toggle) {\n onOpenChange(false, event.nativeEvent, 'click');\n } else {\n onOpenChange(true, event.nativeEvent, 'click');\n }\n }\n },\n onKeyUp(event) {\n if (event.defaultPrevented || !keyboardHandlers || isButtonTarget(event) || isSpaceIgnored(domReference)) {\n return;\n }\n if (event.key === ' ' && didKeyDownRef.current) {\n didKeyDownRef.current = false;\n if (open && toggle) {\n onOpenChange(false, event.nativeEvent, 'click');\n } else {\n onOpenChange(true, event.nativeEvent, 'click');\n }\n }\n }\n }), [dataRef, domReference, eventOption, ignoreMouse, keyboardHandlers, onOpenChange, open, stickIfOpen, toggle]);\n return React.useMemo(() => enabled ? {\n reference\n } : {}, [enabled, reference]);\n}\n\nfunction createVirtualElement(domElement, data) {\n let offsetX = null;\n let offsetY = null;\n let isAutoUpdateEvent = false;\n return {\n contextElement: domElement || undefined,\n getBoundingClientRect() {\n var _data$dataRef$current;\n const domRect = (domElement == null ? void 0 : domElement.getBoundingClientRect()) || {\n width: 0,\n height: 0,\n x: 0,\n y: 0\n };\n const isXAxis = data.axis === 'x' || data.axis === 'both';\n const isYAxis = data.axis === 'y' || data.axis === 'both';\n const canTrackCursorOnAutoUpdate = ['mouseenter', 'mousemove'].includes(((_data$dataRef$current = data.dataRef.current.openEvent) == null ? void 0 : _data$dataRef$current.type) || '') && data.pointerType !== 'touch';\n let width = domRect.width;\n let height = domRect.height;\n let x = domRect.x;\n let y = domRect.y;\n if (offsetX == null && data.x && isXAxis) {\n offsetX = domRect.x - data.x;\n }\n if (offsetY == null && data.y && isYAxis) {\n offsetY = domRect.y - data.y;\n }\n x -= offsetX || 0;\n y -= offsetY || 0;\n width = 0;\n height = 0;\n if (!isAutoUpdateEvent || canTrackCursorOnAutoUpdate) {\n width = data.axis === 'y' ? domRect.width : 0;\n height = data.axis === 'x' ? domRect.height : 0;\n x = isXAxis && data.x != null ? data.x : x;\n y = isYAxis && data.y != null ? data.y : y;\n } else if (isAutoUpdateEvent && !canTrackCursorOnAutoUpdate) {\n height = data.axis === 'x' ? domRect.height : height;\n width = data.axis === 'y' ? domRect.width : width;\n }\n isAutoUpdateEvent = true;\n return {\n width,\n height,\n x,\n y,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x\n };\n }\n };\n}\nfunction isMouseBasedEvent(event) {\n return event != null && event.clientX != null;\n}\n/**\n * Positions the floating element relative to a client point (in the viewport),\n * such as the mouse position. By default, it follows the mouse cursor.\n * @see https://floating-ui.com/docs/useClientPoint\n */\nfunction useClientPoint(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n dataRef,\n elements: {\n floating,\n domReference\n },\n refs\n } = context;\n const {\n enabled = true,\n axis = 'both',\n x = null,\n y = null\n } = props;\n const initialRef = React.useRef(false);\n const cleanupListenerRef = React.useRef(null);\n const [pointerType, setPointerType] = React.useState();\n const [reactive, setReactive] = React.useState([]);\n const setReference = useEffectEvent((x, y) => {\n if (initialRef.current) return;\n\n // Prevent setting if the open event was not a mouse-like one\n // (e.g. focus to open, then hover over the reference element).\n // Only apply if the event exists.\n if (dataRef.current.openEvent && !isMouseBasedEvent(dataRef.current.openEvent)) {\n return;\n }\n refs.setPositionReference(createVirtualElement(domReference, {\n x,\n y,\n axis,\n dataRef,\n pointerType\n }));\n });\n const handleReferenceEnterOrMove = useEffectEvent(event => {\n if (x != null || y != null) return;\n if (!open) {\n setReference(event.clientX, event.clientY);\n } else if (!cleanupListenerRef.current) {\n // If there's no cleanup, there's no listener, but we want to ensure\n // we add the listener if the cursor landed on the floating element and\n // then back on the reference (i.e. it's interactive).\n setReactive([]);\n }\n });\n\n // If the pointer is a mouse-like pointer, we want to continue following the\n // mouse even if the floating element is transitioning out. On touch\n // devices, this is undesirable because the floating element will move to\n // the dismissal touch point.\n const openCheck = isMouseLikePointerType(pointerType) ? floating : open;\n const addListener = React.useCallback(() => {\n // Explicitly specified `x`/`y` coordinates shouldn't add a listener.\n if (!openCheck || !enabled || x != null || y != null) return;\n const win = getWindow(floating);\n function handleMouseMove(event) {\n const target = getTarget$1(event);\n if (!contains$1(floating, target)) {\n setReference(event.clientX, event.clientY);\n } else {\n win.removeEventListener('mousemove', handleMouseMove);\n cleanupListenerRef.current = null;\n }\n }\n if (!dataRef.current.openEvent || isMouseBasedEvent(dataRef.current.openEvent)) {\n win.addEventListener('mousemove', handleMouseMove);\n const cleanup = () => {\n win.removeEventListener('mousemove', handleMouseMove);\n cleanupListenerRef.current = null;\n };\n cleanupListenerRef.current = cleanup;\n return cleanup;\n }\n refs.setPositionReference(domReference);\n }, [openCheck, enabled, x, y, floating, dataRef, refs, domReference, setReference]);\n React.useEffect(() => {\n return addListener();\n }, [addListener, reactive]);\n React.useEffect(() => {\n if (enabled && !floating) {\n initialRef.current = false;\n }\n }, [enabled, floating]);\n React.useEffect(() => {\n if (!enabled && open) {\n initialRef.current = true;\n }\n }, [enabled, open]);\n useModernLayoutEffect(() => {\n if (enabled && (x != null || y != null)) {\n initialRef.current = false;\n setReference(x, y);\n }\n }, [enabled, x, y, setReference]);\n const reference = React.useMemo(() => {\n function setPointerTypeRef(_ref) {\n let {\n pointerType\n } = _ref;\n setPointerType(pointerType);\n }\n return {\n onPointerDown: setPointerTypeRef,\n onPointerEnter: setPointerTypeRef,\n onMouseMove: handleReferenceEnterOrMove,\n onMouseEnter: handleReferenceEnterOrMove\n };\n }, [handleReferenceEnterOrMove]);\n return React.useMemo(() => enabled ? {\n reference\n } : {}, [enabled, reference]);\n}\n\nconst bubbleHandlerKeys = {\n pointerdown: 'onPointerDown',\n mousedown: 'onMouseDown',\n click: 'onClick'\n};\nconst captureHandlerKeys = {\n pointerdown: 'onPointerDownCapture',\n mousedown: 'onMouseDownCapture',\n click: 'onClickCapture'\n};\nconst normalizeProp = normalizable => {\n var _normalizable$escapeK, _normalizable$outside;\n return {\n escapeKey: typeof normalizable === 'boolean' ? normalizable : (_normalizable$escapeK = normalizable == null ? void 0 : normalizable.escapeKey) != null ? _normalizable$escapeK : false,\n outsidePress: typeof normalizable === 'boolean' ? normalizable : (_normalizable$outside = normalizable == null ? void 0 : normalizable.outsidePress) != null ? _normalizable$outside : true\n };\n};\n/**\n * Closes the floating element when a dismissal is requested — by default, when\n * the user presses the `escape` key or outside of the floating element.\n * @see https://floating-ui.com/docs/useDismiss\n */\nfunction useDismiss(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n onOpenChange,\n elements,\n dataRef\n } = context;\n const {\n enabled = true,\n escapeKey = true,\n outsidePress: unstable_outsidePress = true,\n outsidePressEvent = 'pointerdown',\n referencePress = false,\n referencePressEvent = 'pointerdown',\n ancestorScroll = false,\n bubbles,\n capture\n } = props;\n const tree = useFloatingTree();\n const outsidePressFn = useEffectEvent(typeof unstable_outsidePress === 'function' ? unstable_outsidePress : () => false);\n const outsidePress = typeof unstable_outsidePress === 'function' ? outsidePressFn : unstable_outsidePress;\n const endedOrStartedInsideRef = React.useRef(false);\n const {\n escapeKey: escapeKeyBubbles,\n outsidePress: outsidePressBubbles\n } = normalizeProp(bubbles);\n const {\n escapeKey: escapeKeyCapture,\n outsidePress: outsidePressCapture\n } = normalizeProp(capture);\n const isComposingRef = React.useRef(false);\n const closeOnEscapeKeyDown = useEffectEvent(event => {\n var _dataRef$current$floa;\n if (!open || !enabled || !escapeKey || event.key !== 'Escape') {\n return;\n }\n\n // Wait until IME is settled. Pressing `Escape` while composing should\n // close the compose menu, but not the floating element.\n if (isComposingRef.current) {\n return;\n }\n const nodeId = (_dataRef$current$floa = dataRef.current.floatingContext) == null ? void 0 : _dataRef$current$floa.nodeId;\n const children = tree ? getNodeChildren$1(tree.nodesRef.current, nodeId) : [];\n if (!escapeKeyBubbles) {\n event.stopPropagation();\n if (children.length > 0) {\n let shouldDismiss = true;\n children.forEach(child => {\n var _child$context;\n if ((_child$context = child.context) != null && _child$context.open && !child.context.dataRef.current.__escapeKeyBubbles) {\n shouldDismiss = false;\n return;\n }\n });\n if (!shouldDismiss) {\n return;\n }\n }\n }\n onOpenChange(false, isReactEvent(event) ? event.nativeEvent : event, 'escape-key');\n });\n const closeOnEscapeKeyDownCapture = useEffectEvent(event => {\n var _getTarget2;\n const callback = () => {\n var _getTarget;\n closeOnEscapeKeyDown(event);\n (_getTarget = getTarget$1(event)) == null || _getTarget.removeEventListener('keydown', callback);\n };\n (_getTarget2 = getTarget$1(event)) == null || _getTarget2.addEventListener('keydown', callback);\n });\n const closeOnPressOutside = useEffectEvent(event => {\n var _dataRef$current$floa2;\n // Given developers can stop the propagation of the synthetic event,\n // we can only be confident with a positive value.\n const insideReactTree = dataRef.current.insideReactTree;\n dataRef.current.insideReactTree = false;\n\n // When click outside is lazy (`click` event), handle dragging.\n // Don't close if:\n // - The click started inside the floating element.\n // - The click ended inside the floating element.\n const endedOrStartedInside = endedOrStartedInsideRef.current;\n endedOrStartedInsideRef.current = false;\n if (outsidePressEvent === 'click' && endedOrStartedInside) {\n return;\n }\n if (insideReactTree) {\n return;\n }\n if (typeof outsidePress === 'function' && !outsidePress(event)) {\n return;\n }\n const target = getTarget$1(event);\n const inertSelector = \"[\" + createAttribute('inert') + \"]\";\n const markers = getDocument$1(elements.floating).querySelectorAll(inertSelector);\n let targetRootAncestor = isElement(target) ? target : null;\n while (targetRootAncestor && !isLastTraversableNode(targetRootAncestor)) {\n const nextParent = getParentNode(targetRootAncestor);\n if (isLastTraversableNode(nextParent) || !isElement(nextParent)) {\n break;\n }\n targetRootAncestor = nextParent;\n }\n\n // Check if the click occurred on a third-party element injected after the\n // floating element rendered.\n if (markers.length && isElement(target) && !isRootElement(target) &&\n // Clicked on a direct ancestor (e.g. FloatingOverlay).\n !contains$1(target, elements.floating) &&\n // If the target root element contains none of the markers, then the\n // element was injected after the floating element rendered.\n Array.from(markers).every(marker => !contains$1(targetRootAncestor, marker))) {\n return;\n }\n\n // Check if the click occurred on the scrollbar\n if (isHTMLElement(target) && floating) {\n const lastTraversableNode = isLastTraversableNode(target);\n const style = getComputedStyle(target);\n const scrollRe = /auto|scroll/;\n const isScrollableX = lastTraversableNode || scrollRe.test(style.overflowX);\n const isScrollableY = lastTraversableNode || scrollRe.test(style.overflowY);\n const canScrollX = isScrollableX && target.clientWidth > 0 && target.scrollWidth > target.clientWidth;\n const canScrollY = isScrollableY && target.clientHeight > 0 && target.scrollHeight > target.clientHeight;\n const isRTL = style.direction === 'rtl';\n\n // Check click position relative to scrollbar.\n // In some browsers it is possible to change the <body> (or window)\n // scrollbar to the left side, but is very rare and is difficult to\n // check for. Plus, for modal dialogs with backdrops, it is more\n // important that the backdrop is checked but not so much the window.\n const pressedVerticalScrollbar = canScrollY && (isRTL ? event.offsetX <= target.offsetWidth - target.clientWidth : event.offsetX > target.clientWidth);\n const pressedHorizontalScrollbar = canScrollX && event.offsetY > target.clientHeight;\n if (pressedVerticalScrollbar || pressedHorizontalScrollbar) {\n return;\n }\n }\n const nodeId = (_dataRef$current$floa2 = dataRef.current.floatingContext) == null ? void 0 : _dataRef$current$floa2.nodeId;\n const targetIsInsideChildren = tree && getNodeChildren$1(tree.nodesRef.current, nodeId).some(node => {\n var _node$context;\n return isEventTargetWithin(event, (_node$context = node.context) == null ? void 0 : _node$context.elements.floating);\n });\n if (isEventTargetWithin(event, elements.floating) || isEventTargetWithin(event, elements.domReference) || targetIsInsideChildren) {\n return;\n }\n const children = tree ? getNodeChildren$1(tree.nodesRef.current, nodeId) : [];\n if (children.length > 0) {\n let shouldDismiss = true;\n children.forEach(child => {\n var _child$context2;\n if ((_child$context2 = child.context) != null && _child$context2.open && !child.context.dataRef.current.__outsidePressBubbles) {\n shouldDismiss = false;\n return;\n }\n });\n if (!shouldDismiss) {\n return;\n }\n }\n onOpenChange(false, event, 'outside-press');\n });\n const closeOnPressOutsideCapture = useEffectEvent(event => {\n var _getTarget4;\n const callback = () => {\n var _getTarget3;\n closeOnPressOutside(event);\n (_getTarget3 = getTarget$1(event)) == null || _getTarget3.removeEventListener(outsidePressEvent, callback);\n };\n (_getTarget4 = getTarget$1(event)) == null || _getTarget4.addEventListener(outsidePressEvent, callback);\n });\n React.useEffect(() => {\n if (!open || !enabled) {\n return;\n }\n dataRef.current.__escapeKeyBubbles = escapeKeyBubbles;\n dataRef.current.__outsidePressBubbles = outsidePressBubbles;\n let compositionTimeout = -1;\n function onScroll(event) {\n onOpenChange(false, event, 'ancestor-scroll');\n }\n function handleCompositionStart() {\n window.clearTimeout(compositionTimeout);\n isComposingRef.current = true;\n }\n function handleCompositionEnd() {\n // Safari fires `compositionend` before `keydown`, so we need to wait\n // until the next tick to set `isComposing` to `false`.\n // https://bugs.webkit.org/show_bug.cgi?id=165004\n compositionTimeout = window.setTimeout(() => {\n isComposingRef.current = false;\n },\n // 0ms or 1ms don't work in Safari. 5ms appears to consistently work.\n // Only apply to WebKit for the test to remain 0ms.\n isWebKit() ? 5 : 0);\n }\n const doc = getDocument$1(elements.floating);\n if (escapeKey) {\n doc.addEventListener('keydown', escapeKeyCapture ? closeOnEscapeKeyDownCapture : closeOnEscapeKeyDown, escapeKeyCapture);\n doc.addEventListener('compositionstart', handleCompositionStart);\n doc.addEventListener('compositionend', handleCompositionEnd);\n }\n outsidePress && doc.addEventListener(outsidePressEvent, outsidePressCapture ? closeOnPressOutsideCapture : closeOnPressOutside, outsidePressCapture);\n let ancestors = [];\n if (ancestorScroll) {\n if (isElement(elements.domReference)) {\n ancestors = getOverflowAncestors(elements.domReference);\n }\n if (isElement(elements.floating)) {\n ancestors = ancestors.concat(getOverflowAncestors(elements.floating));\n }\n if (!isElement(elements.reference) && elements.reference && elements.reference.contextElement) {\n ancestors = ancestors.concat(getOverflowAncestors(elements.reference.contextElement));\n }\n }\n\n // Ignore the visual viewport for scrolling dismissal (allow pinch-zoom)\n ancestors = ancestors.filter(ancestor => {\n var _doc$defaultView;\n return ancestor !== ((_doc$defaultView = doc.defaultView) == null ? void 0 : _doc$defaultView.visualViewport);\n });\n ancestors.forEach(ancestor => {\n ancestor.addEventListener('scroll', onScroll);\n });\n return () => {\n if (escapeKey) {\n doc.removeEventListener('keydown', escapeKeyCapture ? closeOnEscapeKeyDownCapture : closeOnEscapeKeyDown, escapeKeyCapture);\n doc.removeEventListener('compositionstart', handleCompositionStart);\n doc.removeEventListener('compositionend', handleCompositionEnd);\n }\n outsidePress && doc.removeEventListener(outsidePressEvent, outsidePressCapture ? closeOnPressOutsideCapture : closeOnPressOutside, outsidePressCapture);\n ancestors.forEach(ancestor => {\n ancestor.removeEventListener('scroll', onScroll);\n });\n window.clearTimeout(compositionTimeout);\n };\n }, [dataRef, elements, escapeKey, outsidePress, outsidePressEvent, open, onOpenChange, ancestorScroll, enabled, escapeKeyBubbles, outsidePressBubbles, closeOnEscapeKeyDown, escapeKeyCapture, closeOnEscapeKeyDownCapture, closeOnPressOutside, outsidePressCapture, closeOnPressOutsideCapture]);\n React.useEffect(() => {\n dataRef.current.insideReactTree = false;\n }, [dataRef, outsidePress, outsidePressEvent]);\n const reference = React.useMemo(() => ({\n onKeyDown: closeOnEscapeKeyDown,\n ...(referencePress && {\n [bubbleHandlerKeys[referencePressEvent]]: event => {\n onOpenChange(false, event.nativeEvent, 'reference-press');\n },\n ...(referencePressEvent !== 'click' && {\n onClick(event) {\n onOpenChange(false, event.nativeEvent, 'reference-press');\n }\n })\n })\n }), [closeOnEscapeKeyDown, onOpenChange, referencePress, referencePressEvent]);\n const floating = React.useMemo(() => {\n function setMouseDownOrUpInside(event) {\n if (event.button !== 0) {\n return;\n }\n endedOrStartedInsideRef.current = true;\n }\n return {\n onKeyDown: closeOnEscapeKeyDown,\n onMouseDown: setMouseDownOrUpInside,\n onMouseUp: setMouseDownOrUpInside,\n [captureHandlerKeys[outsidePressEvent]]: () => {\n dataRef.current.insideReactTree = true;\n }\n };\n }, [closeOnEscapeKeyDown, outsidePressEvent, dataRef]);\n return React.useMemo(() => enabled ? {\n reference,\n floating\n } : {}, [enabled, reference, floating]);\n}\n\nfunction useFloatingRootContext(options) {\n const {\n open = false,\n onOpenChange: onOpenChangeProp,\n elements: elementsProp\n } = options;\n const floatingId = useId();\n const dataRef = React.useRef({});\n const [events] = React.useState(() => createEventEmitter());\n const nested = useFloatingParentNodeId() != null;\n if (process.env.NODE_ENV !== \"production\") {\n const optionDomReference = elementsProp.reference;\n if (optionDomReference && !isElement(optionDomReference)) {\n error('Cannot pass a virtual element to the `elements.reference` option,', 'as it must be a real DOM element. Use `refs.setPositionReference()`', 'instead.');\n }\n }\n const [positionReference, setPositionReference] = React.useState(elementsProp.reference);\n const onOpenChange = useEffectEvent((open, event, reason) => {\n dataRef.current.openEvent = open ? event : undefined;\n events.emit('openchange', {\n open,\n event,\n reason,\n nested\n });\n onOpenChangeProp == null || onOpenChangeProp(open, event, reason);\n });\n const refs = React.useMemo(() => ({\n setPositionReference\n }), []);\n const elements = React.useMemo(() => ({\n reference: positionReference || elementsProp.reference || null,\n floating: elementsProp.floating || null,\n domReference: elementsProp.reference\n }), [positionReference, elementsProp.reference, elementsProp.floating]);\n return React.useMemo(() => ({\n dataRef,\n open,\n onOpenChange,\n elements,\n events,\n floatingId,\n refs\n }), [open, onOpenChange, elements, events, floatingId, refs]);\n}\n\n/**\n * Provides data to position a floating element and context to add interactions.\n * @see https://floating-ui.com/docs/useFloating\n */\nfunction useFloating(_temp) {\n var _elementsOption$refer, _elementsOption$float;\n let {\n elements: elementsOption,\n ...options\n } = _temp === void 0 ? {} : _temp;\n const {\n nodeId\n } = options;\n const internalRootContext = useFloatingRootContext({\n ...options,\n elements: {\n reference: (_elementsOption$refer = elementsOption == null ? void 0 : elementsOption.reference) != null ? _elementsOption$refer : null,\n floating: (_elementsOption$float = elementsOption == null ? void 0 : elementsOption.floating) != null ? _elementsOption$float : null\n }\n });\n const rootContext = options.rootContext || internalRootContext;\n const computedElements = rootContext.elements;\n const [_domReference, setDomReference] = React.useState(null);\n const [positionReference, _setPositionReference] = React.useState(null);\n const optionDomReference = computedElements == null ? void 0 : computedElements.domReference;\n const domReference = optionDomReference || _domReference;\n const domReferenceRef = React.useRef(null);\n const tree = useFloatingTree();\n useModernLayoutEffect(() => {\n if (domReference) {\n domReferenceRef.current = domReference;\n }\n }, [domReference]);\n const position = useFloating$1({\n ...options,\n elements: {\n ...computedElements,\n ...(positionReference && {\n reference: positionReference\n })\n }\n });\n const setPositionReference = React.useCallback(node => {\n const computedPositionReference = isElement(node) ? {\n getBoundingClientRect: () => node.getBoundingClientRect(),\n getClientRects: () => node.getClientRects(),\n contextElement: node\n } : node;\n // Store the positionReference in state if the DOM reference is specified externally via the\n // `elements.reference` option. This ensures that it won't be overridden on future renders.\n _setPositionReference(computedPositionReference);\n position.refs.setReference(computedPositionReference);\n }, [position.refs]);\n const setReference = React.useCallback(node => {\n if (isElement(node) || node === null) {\n domReferenceRef.current = node;\n setDomReference(node);\n }\n\n // Backwards-compatibility for passing a virtual element to `reference`\n // after it has set the DOM reference.\n if (isElement(position.refs.reference.current) || position.refs.reference.current === null ||\n // Don't allow setting virtual elements using the old technique back to\n // `null` to support `positionReference` + an unstable `reference`\n // callback ref.\n node !== null && !isElement(node)) {\n position.refs.setReference(node);\n }\n }, [position.refs]);\n const refs = React.useMemo(() => ({\n ...position.refs,\n setReference,\n setPositionReference,\n domReference: domReferenceRef\n }), [position.refs, setReference, setPositionReference]);\n const elements = React.useMemo(() => ({\n ...position.elements,\n domReference: domReference\n }), [position.elements, domReference]);\n const context = React.useMemo(() => ({\n ...position,\n ...rootContext,\n refs,\n elements,\n nodeId\n }), [position, refs, elements, nodeId, rootContext]);\n useModernLayoutEffect(() => {\n rootContext.dataRef.current.floatingContext = context;\n const node = tree == null ? void 0 : tree.nodesRef.current.find(node => node.id === nodeId);\n if (node) {\n node.context = context;\n }\n });\n return React.useMemo(() => ({\n ...position,\n context,\n refs,\n elements\n }), [position, refs, elements, context]);\n}\n\nfunction isMacSafari() {\n return isMac() && isSafari();\n}\n/**\n * Opens the floating element while the reference element has focus, like CSS\n * `:focus`.\n * @see https://floating-ui.com/docs/useFocus\n */\nfunction useFocus(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n onOpenChange,\n events,\n dataRef,\n elements\n } = context;\n const {\n enabled = true,\n visibleOnly = true\n } = props;\n const blockFocusRef = React.useRef(false);\n const timeoutRef = React.useRef(-1);\n const keyboardModalityRef = React.useRef(true);\n React.useEffect(() => {\n if (!enabled) return;\n const win = getWindow(elements.domReference);\n\n // If the reference was focused and the user left the tab/window, and the\n // floating element was not open, the focus should be blocked when they\n // return to the tab/window.\n function onBlur() {\n if (!open && isHTMLElement(elements.domReference) && elements.domReference === activeElement(getDocument$1(elements.domReference))) {\n blockFocusRef.current = true;\n }\n }\n function onKeyDown() {\n keyboardModalityRef.current = true;\n }\n function onPointerDown() {\n keyboardModalityRef.current = false;\n }\n win.addEventListener('blur', onBlur);\n if (isMacSafari()) {\n win.addEventListener('keydown', onKeyDown, true);\n win.addEventListener('pointerdown', onPointerDown, true);\n }\n return () => {\n win.removeEventListener('blur', onBlur);\n if (isMacSafari()) {\n win.removeEventListener('keydown', onKeyDown, true);\n win.removeEventListener('pointerdown', onPointerDown, true);\n }\n };\n }, [elements.domReference, open, enabled]);\n React.useEffect(() => {\n if (!enabled) return;\n function onOpenChange(_ref) {\n let {\n reason\n } = _ref;\n if (reason === 'reference-press' || reason === 'escape-key') {\n blockFocusRef.current = true;\n }\n }\n events.on('openchange', onOpenChange);\n return () => {\n events.off('openchange', onOpenChange);\n };\n }, [events, enabled]);\n React.useEffect(() => {\n return () => {\n clearTimeoutIfSet(timeoutRef);\n };\n }, []);\n const reference = React.useMemo(() => ({\n onMouseLeave() {\n blockFocusRef.current = false;\n },\n onFocus(event) {\n if (blockFocusRef.current) return;\n const target = getTarget$1(event.nativeEvent);\n if (visibleOnly && isElement(target)) {\n // Safari fails to match `:focus-visible` if focus was initially\n // outside the document.\n if (isMacSafari() && !event.relatedTarget) {\n if (!keyboardModalityRef.current && !isTypeableElement(target)) {\n return;\n }\n } else if (!matchesFocusVisible(target)) {\n return;\n }\n }\n onOpenChange(true, event.nativeEvent, 'focus');\n },\n onBlur(event) {\n blockFocusRef.current = false;\n const relatedTarget = event.relatedTarget;\n const nativeEvent = event.nativeEvent;\n\n // Hit the non-modal focus management portal guard. Focus will be\n // moved into the floating element immediately after.\n const movedToFocusGuard = isElement(relatedTarget) && relatedTarget.hasAttribute(createAttribute('focus-guard')) && relatedTarget.getAttribute('data-type') === 'outside';\n\n // Wait for the window blur listener to fire.\n timeoutRef.current = window.setTimeout(() => {\n var _dataRef$current$floa;\n const activeEl = activeElement(elements.domReference ? elements.domReference.ownerDocument : document);\n\n // Focus left the page, keep it open.\n if (!relatedTarget && activeEl === elements.domReference) return;\n\n // When focusing the reference element (e.g. regular click), then\n // clicking into the floating element, prevent it from hiding.\n // Note: it must be focusable, e.g. `tabindex=\"-1\"`.\n // We can not rely on relatedTarget to point to the correct element\n // as it will only point to the shadow host of the newly focused element\n // and not the element that actually has received focus if it is located\n // inside a shadow root.\n if (contains$1((_dataRef$current$floa = dataRef.current.floatingContext) == null ? void 0 : _dataRef$current$floa.refs.floating.current, activeEl) || contains$1(elements.domReference, activeEl) || movedToFocusGuard) {\n return;\n }\n onOpenChange(false, nativeEvent, 'focus');\n });\n }\n }), [dataRef, elements.domReference, onOpenChange, visibleOnly]);\n return React.useMemo(() => enabled ? {\n reference\n } : {}, [enabled, reference]);\n}\n\nfunction mergeProps(userProps, propsList, elementKey) {\n const map = new Map();\n const isItem = elementKey === 'item';\n let domUserProps = userProps;\n if (isItem && userProps) {\n const {\n [ACTIVE_KEY]: _,\n [SELECTED_KEY]: __,\n ...validProps\n } = userProps;\n domUserProps = validProps;\n }\n return {\n ...(elementKey === 'floating' && {\n tabIndex: -1,\n [FOCUSABLE_ATTRIBUTE]: ''\n }),\n ...domUserProps,\n ...propsList.map(value => {\n const propsOrGetProps = value ? value[elementKey] : null;\n if (typeof propsOrGetProps === 'function') {\n return userProps ? propsOrGetProps(userProps) : null;\n }\n return propsOrGetProps;\n }).concat(userProps).reduce((acc, props) => {\n if (!props) {\n return acc;\n }\n Object.entries(props).forEach(_ref => {\n let [key, value] = _ref;\n if (isItem && [ACTIVE_KEY, SELECTED_KEY].includes(key)) {\n return;\n }\n if (key.indexOf('on') === 0) {\n if (!map.has(key)) {\n map.set(key, []);\n }\n if (typeof value === 'function') {\n var _map$get;\n (_map$get = map.get(key)) == null || _map$get.push(value);\n acc[key] = function () {\n var _map$get2;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return (_map$get2 = map.get(key)) == null ? void 0 : _map$get2.map(fn => fn(...args)).find(val => val !== undefined);\n };\n }\n } else {\n acc[key] = value;\n }\n });\n return acc;\n }, {})\n };\n}\n/**\n * Merges an array of interaction hooks' props into prop getters, allowing\n * event handler functions to be composed together without overwriting one\n * another.\n * @see https://floating-ui.com/docs/useInteractions\n */\nfunction useInteractions(propsList) {\n if (propsList === void 0) {\n propsList = [];\n }\n const referenceDeps = propsList.map(key => key == null ? void 0 : key.reference);\n const floatingDeps = propsList.map(key => key == null ? void 0 : key.floating);\n const itemDeps = propsList.map(key => key == null ? void 0 : key.item);\n const getReferenceProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'reference'),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n referenceDeps);\n const getFloatingProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'floating'),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n floatingDeps);\n const getItemProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'item'),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n itemDeps);\n return React.useMemo(() => ({\n getReferenceProps,\n getFloatingProps,\n getItemProps\n }), [getReferenceProps, getFloatingProps, getItemProps]);\n}\n\nconst ESCAPE = 'Escape';\nfunction doSwitch(orientation, vertical, horizontal) {\n switch (orientation) {\n case 'vertical':\n return vertical;\n case 'horizontal':\n return horizontal;\n default:\n return vertical || horizontal;\n }\n}\nfunction isMainOrientationKey(key, orientation) {\n const vertical = key === ARROW_UP || key === ARROW_DOWN;\n const horizontal = key === ARROW_LEFT || key === ARROW_RIGHT;\n return doSwitch(orientation, vertical, horizontal);\n}\nfunction isMainOrientationToEndKey(key, orientation, rtl) {\n const vertical = key === ARROW_DOWN;\n const horizontal = rtl ? key === ARROW_LEFT : key === ARROW_RIGHT;\n return doSwitch(orientation, vertical, horizontal) || key === 'Enter' || key === ' ' || key === '';\n}\nfunction isCrossOrientationOpenKey(key, orientation, rtl) {\n const vertical = rtl ? key === ARROW_LEFT : key === ARROW_RIGHT;\n const horizontal = key === ARROW_DOWN;\n return doSwitch(orientation, vertical, horizontal);\n}\nfunction isCrossOrientationCloseKey(key, orientation, rtl, cols) {\n const vertical = rtl ? key === ARROW_RIGHT : key === ARROW_LEFT;\n const horizontal = key === ARROW_UP;\n if (orientation === 'both' || orientation === 'horizontal' && cols && cols > 1) {\n return key === ESCAPE;\n }\n return doSwitch(orientation, vertical, horizontal);\n}\n/**\n * Adds arrow key-based navigation of a list of items, either using real DOM\n * focus or virtual focus.\n * @see https://floating-ui.com/docs/useListNavigation\n */\nfunction useListNavigation(context, props) {\n const {\n open,\n onOpenChange,\n elements,\n floatingId\n } = context;\n const {\n listRef,\n activeIndex,\n onNavigate: unstable_onNavigate = () => {},\n enabled = true,\n selectedIndex = null,\n allowEscape = false,\n loop = false,\n nested = false,\n rtl = false,\n virtual = false,\n focusItemOnOpen = 'auto',\n focusItemOnHover = true,\n openOnArrowKeyDown = true,\n disabledIndices = undefined,\n orientation = 'vertical',\n parentOrientation,\n cols = 1,\n scrollItemIntoView = true,\n virtualItemRef,\n itemSizes,\n dense = false\n } = props;\n if (process.env.NODE_ENV !== \"production\") {\n if (allowEscape) {\n if (!loop) {\n warn('`useListNavigation` looping must be enabled to allow escaping.');\n }\n if (!virtual) {\n warn('`useListNavigation` must be virtual to allow escaping.');\n }\n }\n if (orientation === 'vertical' && cols > 1) {\n warn('In grid list navigation mode (`cols` > 1), the `orientation` should', 'be either \"horizontal\" or \"both\".');\n }\n }\n const floatingFocusElement = getFloatingFocusElement(elements.floating);\n const floatingFocusElementRef = useLatestRef(floatingFocusElement);\n const parentId = useFloatingParentNodeId();\n const tree = useFloatingTree();\n useModernLayoutEffect(() => {\n context.dataRef.current.orientation = orientation;\n }, [context, orientation]);\n const onNavigate = useEffectEvent(() => {\n unstable_onNavigate(indexRef.current === -1 ? null : indexRef.current);\n });\n const typeableComboboxReference = isTypeableCombobox(elements.domReference);\n const focusItemOnOpenRef = React.useRef(focusItemOnOpen);\n const indexRef = React.useRef(selectedIndex != null ? selectedIndex : -1);\n const keyRef = React.useRef(null);\n const isPointerModalityRef = React.useRef(true);\n const previousOnNavigateRef = React.useRef(onNavigate);\n const previousMountedRef = React.useRef(!!elements.floating);\n const previousOpenRef = React.useRef(open);\n const forceSyncFocusRef = React.useRef(false);\n const forceScrollIntoViewRef = React.useRef(false);\n const disabledIndicesRef = useLatestRef(disabledIndices);\n const latestOpenRef = useLatestRef(open);\n const scrollItemIntoViewRef = useLatestRef(scrollItemIntoView);\n const selectedIndexRef = useLatestRef(selectedIndex);\n const [activeId, setActiveId] = React.useState();\n const [virtualId, setVirtualId] = React.useState();\n const focusItem = useEffectEvent(() => {\n function runFocus(item) {\n if (virtual) {\n var _item$id;\n if ((_item$id = item.id) != null && _item$id.endsWith('-fui-option')) {\n item.id = floatingId + \"-\" + Math.random().toString(16).slice(2, 10);\n }\n setActiveId(item.id);\n tree == null || tree.events.emit('virtualfocus', item);\n if (virtualItemRef) {\n virtualItemRef.current = item;\n }\n } else {\n enqueueFocus(item, {\n sync: forceSyncFocusRef.current,\n preventScroll: true\n });\n }\n }\n const initialItem = listRef.current[indexRef.current];\n const forceScrollIntoView = forceScrollIntoViewRef.current;\n if (initialItem) {\n runFocus(initialItem);\n }\n const scheduler = forceSyncFocusRef.current ? v => v() : requestAnimationFrame;\n scheduler(() => {\n const waitedItem = listRef.current[indexRef.current] || initialItem;\n if (!waitedItem) return;\n if (!initialItem) {\n runFocus(waitedItem);\n }\n const scrollIntoViewOptions = scrollItemIntoViewRef.current;\n const shouldScrollIntoView = scrollIntoViewOptions && item && (forceScrollIntoView || !isPointerModalityRef.current);\n if (shouldScrollIntoView) {\n // JSDOM doesn't support `.scrollIntoView()` but it's widely supported\n // by all browsers.\n waitedItem.scrollIntoView == null || waitedItem.scrollIntoView(typeof scrollIntoViewOptions === 'boolean' ? {\n block: 'nearest',\n inline: 'nearest'\n } : scrollIntoViewOptions);\n }\n });\n });\n\n // Sync `selectedIndex` to be the `activeIndex` upon opening the floating\n // element. Also, reset `activeIndex` upon closing the floating element.\n useModernLayoutEffect(() => {\n if (!enabled) return;\n if (open && elements.floating) {\n if (focusItemOnOpenRef.current && selectedIndex != null) {\n // Regardless of the pointer modality, we want to ensure the selected\n // item comes into view when the floating element is opened.\n forceScrollIntoViewRef.current = true;\n indexRef.current = selectedIndex;\n onNavigate();\n }\n } else if (previousMountedRef.current) {\n // Since the user can specify `onNavigate` conditionally\n // (onNavigate: open ? setActiveIndex : setSelectedIndex),\n // we store and call the previous function.\n indexRef.current = -1;\n previousOnNavigateRef.current();\n }\n }, [enabled, open, elements.floating, selectedIndex, onNavigate]);\n\n // Sync `activeIndex` to be the focused item while the floating element is\n // open.\n useModernLayoutEffect(() => {\n if (!enabled) return;\n if (!open) return;\n if (!elements.floating) return;\n if (activeIndex == null) {\n forceSyncFocusRef.current = false;\n if (selectedIndexRef.current != null) {\n return;\n }\n\n // Reset while the floating element was open (e.g. the list changed).\n if (previousMountedRef.current) {\n indexRef.current = -1;\n focusItem();\n }\n\n // Initial sync.\n if ((!previousOpenRef.current || !previousMountedRef.current) && focusItemOnOpenRef.current && (keyRef.current != null || focusItemOnOpenRef.current === true && keyRef.current == null)) {\n let runs = 0;\n const waitForListPopulated = () => {\n if (listRef.current[0] == null) {\n // Avoid letting the browser paint if possible on the first try,\n // otherwise use rAF. Don't try more than twice, since something\n // is wrong otherwise.\n if (runs < 2) {\n const scheduler = runs ? requestAnimationFrame : queueMicrotask;\n scheduler(waitForListPopulated);\n }\n runs++;\n } else {\n indexRef.current = keyRef.current == null || isMainOrientationToEndKey(keyRef.current, orientation, rtl) || nested ? getMinListIndex(listRef, disabledIndicesRef.current) : getMaxListIndex(listRef, disabledIndicesRef.current);\n keyRef.current = null;\n onNavigate();\n }\n };\n waitForListPopulated();\n }\n } else if (!isIndexOutOfListBounds(listRef, activeIndex)) {\n indexRef.current = activeIndex;\n focusItem();\n forceScrollIntoViewRef.current = false;\n }\n }, [enabled, open, elements.floating, activeIndex, selectedIndexRef, nested, listRef, orientation, rtl, onNavigate, focusItem, disabledIndicesRef]);\n\n // Ensure the parent floating element has focus when a nested child closes\n // to allow arrow key navigation to work after the pointer leaves the child.\n useModernLayoutEffect(() => {\n var _nodes$find;\n if (!enabled || elements.floating || !tree || virtual || !previousMountedRef.current) {\n return;\n }\n const nodes = tree.nodesRef.current;\n const parent = (_nodes$find = nodes.find(node => node.id === parentId)) == null || (_nodes$find = _nodes$find.context) == null ? void 0 : _nodes$find.elements.floating;\n const activeEl = activeElement(getDocument$1(elements.floating));\n const treeContainsActiveEl = nodes.some(node => node.context && contains$1(node.context.elements.floating, activeEl));\n if (parent && !treeContainsActiveEl && isPointerModalityRef.current) {\n parent.focus({\n preventScroll: true\n });\n }\n }, [enabled, elements.floating, tree, parentId, virtual]);\n useModernLayoutEffect(() => {\n if (!enabled) return;\n if (!tree) return;\n if (!virtual) return;\n if (parentId) return;\n function handleVirtualFocus(item) {\n setVirtualId(item.id);\n if (virtualItemRef) {\n virtualItemRef.current = item;\n }\n }\n tree.events.on('virtualfocus', handleVirtualFocus);\n return () => {\n tree.events.off('virtualfocus', handleVirtualFocus);\n };\n }, [enabled, tree, virtual, parentId, virtualItemRef]);\n useModernLayoutEffect(() => {\n previousOnNavigateRef.current = onNavigate;\n previousOpenRef.current = open;\n previousMountedRef.current = !!elements.floating;\n });\n useModernLayoutEffect(() => {\n if (!open) {\n keyRef.current = null;\n focusItemOnOpenRef.current = focusItemOnOpen;\n }\n }, [open, focusItemOnOpen]);\n const hasActiveIndex = activeIndex != null;\n const item = React.useMemo(() => {\n function syncCurrentTarget(currentTarget) {\n if (!latestOpenRef.current) return;\n const index = listRef.current.indexOf(currentTarget);\n if (index !== -1 && indexRef.current !== index) {\n indexRef.current = index;\n onNavigate();\n }\n }\n const props = {\n onFocus(_ref) {\n let {\n currentTarget\n } = _ref;\n forceSyncFocusRef.current = true;\n syncCurrentTarget(currentTarget);\n },\n onClick: _ref2 => {\n let {\n currentTarget\n } = _ref2;\n return currentTarget.focus({\n preventScroll: true\n });\n },\n // Safari\n onMouseMove(_ref3) {\n let {\n currentTarget\n } = _ref3;\n forceSyncFocusRef.current = true;\n forceScrollIntoViewRef.current = false;\n if (focusItemOnHover) {\n syncCurrentTarget(currentTarget);\n }\n },\n onPointerLeave(_ref4) {\n let {\n pointerType\n } = _ref4;\n if (!isPointerModalityRef.current || pointerType === 'touch') {\n return;\n }\n forceSyncFocusRef.current = true;\n if (!focusItemOnHover) {\n return;\n }\n indexRef.current = -1;\n onNavigate();\n if (!virtual) {\n var _floatingFocusElement;\n (_floatingFocusElement = floatingFocusElementRef.current) == null || _floatingFocusElement.focus({\n preventScroll: true\n });\n }\n }\n };\n return props;\n }, [latestOpenRef, floatingFocusElementRef, focusItemOnHover, listRef, onNavigate, virtual]);\n const getParentOrientation = React.useCallback(() => {\n var _tree$nodesRef$curren;\n return parentOrientation != null ? parentOrientation : tree == null || (_tree$nodesRef$curren = tree.nodesRef.current.find(node => node.id === parentId)) == null || (_tree$nodesRef$curren = _tree$nodesRef$curren.context) == null || (_tree$nodesRef$curren = _tree$nodesRef$curren.dataRef) == null ? void 0 : _tree$nodesRef$curren.current.orientation;\n }, [parentId, tree, parentOrientation]);\n const commonOnKeyDown = useEffectEvent(event => {\n isPointerModalityRef.current = false;\n forceSyncFocusRef.current = true;\n\n // When composing a character, Chrome fires ArrowDown twice. Firefox/Safari\n // don't appear to suffer from this. `event.isComposing` is avoided due to\n // Safari not supporting it properly (although it's not needed in the first\n // place for Safari, just avoiding any possible issues).\n if (event.which === 229) {\n return;\n }\n\n // If the floating element is animating out, ignore navigation. Otherwise,\n // the `activeIndex` gets set to 0 despite not being open so the next time\n // the user ArrowDowns, the first item won't be focused.\n if (!latestOpenRef.current && event.currentTarget === floatingFocusElementRef.current) {\n return;\n }\n if (nested && isCrossOrientationCloseKey(event.key, orientation, rtl, cols)) {\n // If the nested list's close key is also the parent navigation key,\n // let the parent navigate. Otherwise, stop propagating the event.\n if (!isMainOrientationKey(event.key, getParentOrientation())) {\n stopEvent(event);\n }\n onOpenChange(false, event.nativeEvent, 'list-navigation');\n if (isHTMLElement(elements.domReference)) {\n if (virtual) {\n tree == null || tree.events.emit('virtualfocus', elements.domReference);\n } else {\n elements.domReference.focus();\n }\n }\n return;\n }\n const currentIndex = indexRef.current;\n const minIndex = getMinListIndex(listRef, disabledIndices);\n const maxIndex = getMaxListIndex(listRef, disabledIndices);\n if (!typeableComboboxReference) {\n if (event.key === 'Home') {\n stopEvent(event);\n indexRef.current = minIndex;\n onNavigate();\n }\n if (event.key === 'End') {\n stopEvent(event);\n indexRef.current = maxIndex;\n onNavigate();\n }\n }\n\n // Grid navigation.\n if (cols > 1) {\n const sizes = itemSizes || Array.from({\n length: listRef.current.length\n }, () => ({\n width: 1,\n height: 1\n }));\n // To calculate movements on the grid, we use hypothetical cell indices\n // as if every item was 1x1, then convert back to real indices.\n const cellMap = createGridCellMap(sizes, cols, dense);\n const minGridIndex = cellMap.findIndex(index => index != null && !isListIndexDisabled(listRef, index, disabledIndices));\n // last enabled index\n const maxGridIndex = cellMap.reduce((foundIndex, index, cellIndex) => index != null && !isListIndexDisabled(listRef, index, disabledIndices) ? cellIndex : foundIndex, -1);\n const index = cellMap[getGridNavigatedIndex({\n current: cellMap.map(itemIndex => itemIndex != null ? listRef.current[itemIndex] : null)\n }, {\n event,\n orientation,\n loop,\n rtl,\n cols,\n // treat undefined (empty grid spaces) as disabled indices so we\n // don't end up in them\n disabledIndices: getGridCellIndices([...((typeof disabledIndices !== 'function' ? disabledIndices : null) || listRef.current.map((_, index) => isListIndexDisabled(listRef, index, disabledIndices) ? index : undefined)), undefined], cellMap),\n minIndex: minGridIndex,\n maxIndex: maxGridIndex,\n prevIndex: getGridCellIndexOfCorner(indexRef.current > maxIndex ? minIndex : indexRef.current, sizes, cellMap, cols,\n // use a corner matching the edge closest to the direction\n // we're moving in so we don't end up in the same item. Prefer\n // top/left over bottom/right.\n event.key === ARROW_DOWN ? 'bl' : event.key === (rtl ? ARROW_LEFT : ARROW_RIGHT) ? 'tr' : 'tl'),\n stopEvent: true\n })];\n if (index != null) {\n indexRef.current = index;\n onNavigate();\n }\n if (orientation === 'both') {\n return;\n }\n }\n if (isMainOrientationKey(event.key, orientation)) {\n stopEvent(event);\n\n // Reset the index if no item is focused.\n if (open && !virtual && activeElement(event.currentTarget.ownerDocument) === event.currentTarget) {\n indexRef.current = isMainOrientationToEndKey(event.key, orientation, rtl) ? minIndex : maxIndex;\n onNavigate();\n return;\n }\n if (isMainOrientationToEndKey(event.key, orientation, rtl)) {\n if (loop) {\n indexRef.current = currentIndex >= maxIndex ? allowEscape && currentIndex !== listRef.current.length ? -1 : minIndex : findNonDisabledListIndex(listRef, {\n startingIndex: currentIndex,\n disabledIndices\n });\n } else {\n indexRef.current = Math.min(maxIndex, findNonDisabledListIndex(listRef, {\n startingIndex: currentIndex,\n disabledIndices\n }));\n }\n } else {\n if (loop) {\n indexRef.current = currentIndex <= minIndex ? allowEscape && currentIndex !== -1 ? listRef.current.length : maxIndex : findNonDisabledListIndex(listRef, {\n startingIndex: currentIndex,\n decrement: true,\n disabledIndices\n });\n } else {\n indexRef.current = Math.max(minIndex, findNonDisabledListIndex(listRef, {\n startingIndex: currentIndex,\n decrement: true,\n disabledIndices\n }));\n }\n }\n if (isIndexOutOfListBounds(listRef, indexRef.current)) {\n indexRef.current = -1;\n }\n onNavigate();\n }\n });\n const ariaActiveDescendantProp = React.useMemo(() => {\n return virtual && open && hasActiveIndex && {\n 'aria-activedescendant': virtualId || activeId\n };\n }, [virtual, open, hasActiveIndex, virtualId, activeId]);\n const floating = React.useMemo(() => {\n return {\n 'aria-orientation': orientation === 'both' ? undefined : orientation,\n ...(!typeableComboboxReference ? ariaActiveDescendantProp : {}),\n onKeyDown: commonOnKeyDown,\n onPointerMove() {\n isPointerModalityRef.current = true;\n }\n };\n }, [ariaActiveDescendantProp, commonOnKeyDown, orientation, typeableComboboxReference]);\n const reference = React.useMemo(() => {\n function checkVirtualMouse(event) {\n if (focusItemOnOpen === 'auto' && isVirtualClick(event.nativeEvent)) {\n focusItemOnOpenRef.current = true;\n }\n }\n function checkVirtualPointer(event) {\n // `pointerdown` fires first, reset the state then perform the checks.\n focusItemOnOpenRef.current = focusItemOnOpen;\n if (focusItemOnOpen === 'auto' && isVirtualPointerEvent(event.nativeEvent)) {\n focusItemOnOpenRef.current = true;\n }\n }\n return {\n ...ariaActiveDescendantProp,\n onKeyDown(event) {\n isPointerModalityRef.current = false;\n const isArrowKey = event.key.startsWith('Arrow');\n const isHomeOrEndKey = ['Home', 'End'].includes(event.key);\n const isMoveKey = isArrowKey || isHomeOrEndKey;\n const isCrossOpenKey = isCrossOrientationOpenKey(event.key, orientation, rtl);\n const isCrossCloseKey = isCrossOrientationCloseKey(event.key, orientation, rtl, cols);\n const isParentCrossOpenKey = isCrossOrientationOpenKey(event.key, getParentOrientation(), rtl);\n const isMainKey = isMainOrientationKey(event.key, orientation);\n const isNavigationKey = (nested ? isParentCrossOpenKey : isMainKey) || event.key === 'Enter' || event.key.trim() === '';\n if (virtual && open) {\n const rootNode = tree == null ? void 0 : tree.nodesRef.current.find(node => node.parentId == null);\n const deepestNode = tree && rootNode ? getDeepestNode(tree.nodesRef.current, rootNode.id) : null;\n if (isMoveKey && deepestNode && virtualItemRef) {\n const eventObject = new KeyboardEvent('keydown', {\n key: event.key,\n bubbles: true\n });\n if (isCrossOpenKey || isCrossCloseKey) {\n var _deepestNode$context, _deepestNode$context2;\n const isCurrentTarget = ((_deepestNode$context = deepestNode.context) == null ? void 0 : _deepestNode$context.elements.domReference) === event.currentTarget;\n const dispatchItem = isCrossCloseKey && !isCurrentTarget ? (_deepestNode$context2 = deepestNode.context) == null ? void 0 : _deepestNode$context2.elements.domReference : isCrossOpenKey ? listRef.current.find(item => (item == null ? void 0 : item.id) === activeId) : null;\n if (dispatchItem) {\n stopEvent(event);\n dispatchItem.dispatchEvent(eventObject);\n setVirtualId(undefined);\n }\n }\n if ((isMainKey || isHomeOrEndKey) && deepestNode.context) {\n if (deepestNode.context.open && deepestNode.parentId && event.currentTarget !== deepestNode.context.elements.domReference) {\n var _deepestNode$context$;\n stopEvent(event);\n (_deepestNode$context$ = deepestNode.context.elements.domReference) == null || _deepestNode$context$.dispatchEvent(eventObject);\n return;\n }\n }\n }\n return commonOnKeyDown(event);\n }\n // If a floating element should not open on arrow key down, avoid\n // setting `activeIndex` while it's closed.\n if (!open && !openOnArrowKeyDown && isArrowKey) {\n return;\n }\n if (isNavigationKey) {\n const isParentMainKey = isMainOrientationKey(event.key, getParentOrientation());\n keyRef.current = nested && isParentMainKey ? null : event.key;\n }\n if (nested) {\n if (isParentCrossOpenKey) {\n stopEvent(event);\n if (open) {\n indexRef.current = getMinListIndex(listRef, disabledIndicesRef.current);\n onNavigate();\n } else {\n onOpenChange(true, event.nativeEvent, 'list-navigation');\n }\n }\n return;\n }\n if (isMainKey) {\n if (selectedIndex != null) {\n indexRef.current = selectedIndex;\n }\n stopEvent(event);\n if (!open && openOnArrowKeyDown) {\n onOpenChange(true, event.nativeEvent, 'list-navigation');\n } else {\n commonOnKeyDown(event);\n }\n if (open) {\n onNavigate();\n }\n }\n },\n onFocus() {\n if (open && !virtual) {\n indexRef.current = -1;\n onNavigate();\n }\n },\n onPointerDown: checkVirtualPointer,\n onPointerEnter: checkVirtualPointer,\n onMouseDown: checkVirtualMouse,\n onClick: checkVirtualMouse\n };\n }, [activeId, ariaActiveDescendantProp, cols, commonOnKeyDown, disabledIndicesRef, focusItemOnOpen, listRef, nested, onNavigate, onOpenChange, open, openOnArrowKeyDown, orientation, getParentOrientation, rtl, selectedIndex, tree, virtual, virtualItemRef]);\n return React.useMemo(() => enabled ? {\n reference,\n floating,\n item\n } : {}, [enabled, reference, floating, item]);\n}\n\nconst componentRoleToAriaRoleMap = /*#__PURE__*/new Map([['select', 'listbox'], ['combobox', 'listbox'], ['label', false]]);\n\n/**\n * Adds base screen reader props to the reference and floating elements for a\n * given floating element `role`.\n * @see https://floating-ui.com/docs/useRole\n */\nfunction useRole(context, props) {\n var _elements$domReferenc, _componentRoleToAriaR;\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n elements,\n floatingId: defaultFloatingId\n } = context;\n const {\n enabled = true,\n role = 'dialog'\n } = props;\n const defaultReferenceId = useId();\n const referenceId = ((_elements$domReferenc = elements.domReference) == null ? void 0 : _elements$domReferenc.id) || defaultReferenceId;\n const floatingId = React.useMemo(() => {\n var _getFloatingFocusElem;\n return ((_getFloatingFocusElem = getFloatingFocusElement(elements.floating)) == null ? void 0 : _getFloatingFocusElem.id) || defaultFloatingId;\n }, [elements.floating, defaultFloatingId]);\n const ariaRole = (_componentRoleToAriaR = componentRoleToAriaRoleMap.get(role)) != null ? _componentRoleToAriaR : role;\n const parentId = useFloatingParentNodeId();\n const isNested = parentId != null;\n const reference = React.useMemo(() => {\n if (ariaRole === 'tooltip' || role === 'label') {\n return {\n [\"aria-\" + (role === 'label' ? 'labelledby' : 'describedby')]: open ? floatingId : undefined\n };\n }\n return {\n 'aria-expanded': open ? 'true' : 'false',\n 'aria-haspopup': ariaRole === 'alertdialog' ? 'dialog' : ariaRole,\n 'aria-controls': open ? floatingId : undefined,\n ...(ariaRole === 'listbox' && {\n role: 'combobox'\n }),\n ...(ariaRole === 'menu' && {\n id: referenceId\n }),\n ...(ariaRole === 'menu' && isNested && {\n role: 'menuitem'\n }),\n ...(role === 'select' && {\n 'aria-autocomplete': 'none'\n }),\n ...(role === 'combobox' && {\n 'aria-autocomplete': 'list'\n })\n };\n }, [ariaRole, floatingId, isNested, open, referenceId, role]);\n const floating = React.useMemo(() => {\n const floatingProps = {\n id: floatingId,\n ...(ariaRole && {\n role: ariaRole\n })\n };\n if (ariaRole === 'tooltip' || role === 'label') {\n return floatingProps;\n }\n return {\n ...floatingProps,\n ...(ariaRole === 'menu' && {\n 'aria-labelledby': referenceId\n })\n };\n }, [ariaRole, floatingId, referenceId, role]);\n const item = React.useCallback(_ref => {\n let {\n active,\n selected\n } = _ref;\n const commonProps = {\n role: 'option',\n ...(active && {\n id: floatingId + \"-fui-option\"\n })\n };\n\n // For `menu`, we are unable to tell if the item is a `menuitemradio`\n // or `menuitemcheckbox`. For backwards-compatibility reasons, also\n // avoid defaulting to `menuitem` as it may overwrite custom role props.\n switch (role) {\n case 'select':\n case 'combobox':\n return {\n ...commonProps,\n 'aria-selected': selected\n };\n }\n return {};\n }, [floatingId, role]);\n return React.useMemo(() => enabled ? {\n reference,\n floating,\n item\n } : {}, [enabled, reference, floating, item]);\n}\n\n// Converts a JS style key like `backgroundColor` to a CSS transition-property\n// like `background-color`.\nconst camelCaseToKebabCase = str => str.replace(/[A-Z]+(?![a-z])|[A-Z]/g, ($, ofs) => (ofs ? '-' : '') + $.toLowerCase());\nfunction execWithArgsOrReturn(valueOrFn, args) {\n return typeof valueOrFn === 'function' ? valueOrFn(args) : valueOrFn;\n}\nfunction useDelayUnmount(open, durationMs) {\n const [isMounted, setIsMounted] = React.useState(open);\n if (open && !isMounted) {\n setIsMounted(true);\n }\n React.useEffect(() => {\n if (!open && isMounted) {\n const timeout = setTimeout(() => setIsMounted(false), durationMs);\n return () => clearTimeout(timeout);\n }\n }, [open, isMounted, durationMs]);\n return isMounted;\n}\n/**\n * Provides a status string to apply CSS transitions to a floating element,\n * correctly handling placement-aware transitions.\n * @see https://floating-ui.com/docs/useTransition#usetransitionstatus\n */\nfunction useTransitionStatus(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n elements: {\n floating\n }\n } = context;\n const {\n duration = 250\n } = props;\n const isNumberDuration = typeof duration === 'number';\n const closeDuration = (isNumberDuration ? duration : duration.close) || 0;\n const [status, setStatus] = React.useState('unmounted');\n const isMounted = useDelayUnmount(open, closeDuration);\n if (!isMounted && status === 'close') {\n setStatus('unmounted');\n }\n useModernLayoutEffect(() => {\n if (!floating) return;\n if (open) {\n setStatus('initial');\n const frame = requestAnimationFrame(() => {\n // Ensure it opens before paint. With `FloatingDelayGroup`,\n // this avoids a flicker when moving between floating elements\n // to ensure one is always open with no missing frames.\n ReactDOM.flushSync(() => {\n setStatus('open');\n });\n });\n return () => {\n cancelAnimationFrame(frame);\n };\n }\n setStatus('close');\n }, [open, floating]);\n return {\n isMounted,\n status\n };\n}\n/**\n * Provides styles to apply CSS transitions to a floating element, correctly\n * handling placement-aware transitions. Wrapper around `useTransitionStatus`.\n * @see https://floating-ui.com/docs/useTransition#usetransitionstyles\n */\nfunction useTransitionStyles(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n initial: unstable_initial = {\n opacity: 0\n },\n open: unstable_open,\n close: unstable_close,\n common: unstable_common,\n duration = 250\n } = props;\n const placement = context.placement;\n const side = placement.split('-')[0];\n const fnArgs = React.useMemo(() => ({\n side,\n placement\n }), [side, placement]);\n const isNumberDuration = typeof duration === 'number';\n const openDuration = (isNumberDuration ? duration : duration.open) || 0;\n const closeDuration = (isNumberDuration ? duration : duration.close) || 0;\n const [styles, setStyles] = React.useState(() => ({\n ...execWithArgsOrReturn(unstable_common, fnArgs),\n ...execWithArgsOrReturn(unstable_initial, fnArgs)\n }));\n const {\n isMounted,\n status\n } = useTransitionStatus(context, {\n duration\n });\n const initialRef = useLatestRef(unstable_initial);\n const openRef = useLatestRef(unstable_open);\n const closeRef = useLatestRef(unstable_close);\n const commonRef = useLatestRef(unstable_common);\n useModernLayoutEffect(() => {\n const initialStyles = execWithArgsOrReturn(initialRef.current, fnArgs);\n const closeStyles = execWithArgsOrReturn(closeRef.current, fnArgs);\n const commonStyles = execWithArgsOrReturn(commonRef.current, fnArgs);\n const openStyles = execWithArgsOrReturn(openRef.current, fnArgs) || Object.keys(initialStyles).reduce((acc, key) => {\n acc[key] = '';\n return acc;\n }, {});\n if (status === 'initial') {\n setStyles(styles => ({\n transitionProperty: styles.transitionProperty,\n ...commonStyles,\n ...initialStyles\n }));\n }\n if (status === 'open') {\n setStyles({\n transitionProperty: Object.keys(openStyles).map(camelCaseToKebabCase).join(','),\n transitionDuration: openDuration + \"ms\",\n ...commonStyles,\n ...openStyles\n });\n }\n if (status === 'close') {\n const styles = closeStyles || initialStyles;\n setStyles({\n transitionProperty: Object.keys(styles).map(camelCaseToKebabCase).join(','),\n transitionDuration: closeDuration + \"ms\",\n ...commonStyles,\n ...styles\n });\n }\n }, [closeDuration, closeRef, initialRef, openRef, commonRef, openDuration, status, fnArgs]);\n return {\n isMounted,\n styles\n };\n}\n\n/**\n * Provides a matching callback that can be used to focus an item as the user\n * types, often used in tandem with `useListNavigation()`.\n * @see https://floating-ui.com/docs/useTypeahead\n */\nfunction useTypeahead(context, props) {\n var _ref;\n const {\n open,\n dataRef\n } = context;\n const {\n listRef,\n activeIndex,\n onMatch: unstable_onMatch,\n onTypingChange: unstable_onTypingChange,\n enabled = true,\n findMatch = null,\n resetMs = 750,\n ignoreKeys = [],\n selectedIndex = null\n } = props;\n const timeoutIdRef = React.useRef(-1);\n const stringRef = React.useRef('');\n const prevIndexRef = React.useRef((_ref = selectedIndex != null ? selectedIndex : activeIndex) != null ? _ref : -1);\n const matchIndexRef = React.useRef(null);\n const onMatch = useEffectEvent(unstable_onMatch);\n const onTypingChange = useEffectEvent(unstable_onTypingChange);\n const findMatchRef = useLatestRef(findMatch);\n const ignoreKeysRef = useLatestRef(ignoreKeys);\n useModernLayoutEffect(() => {\n if (open) {\n clearTimeoutIfSet(timeoutIdRef);\n matchIndexRef.current = null;\n stringRef.current = '';\n }\n }, [open]);\n useModernLayoutEffect(() => {\n // Sync arrow key navigation but not typeahead navigation.\n if (open && stringRef.current === '') {\n var _ref2;\n prevIndexRef.current = (_ref2 = selectedIndex != null ? selectedIndex : activeIndex) != null ? _ref2 : -1;\n }\n }, [open, selectedIndex, activeIndex]);\n const setTypingChange = useEffectEvent(value => {\n if (value) {\n if (!dataRef.current.typing) {\n dataRef.current.typing = value;\n onTypingChange(value);\n }\n } else {\n if (dataRef.current.typing) {\n dataRef.current.typing = value;\n onTypingChange(value);\n }\n }\n });\n const onKeyDown = useEffectEvent(event => {\n function getMatchingIndex(list, orderedList, string) {\n const str = findMatchRef.current ? findMatchRef.current(orderedList, string) : orderedList.find(text => (text == null ? void 0 : text.toLocaleLowerCase().indexOf(string.toLocaleLowerCase())) === 0);\n return str ? list.indexOf(str) : -1;\n }\n const listContent = listRef.current;\n if (stringRef.current.length > 0 && stringRef.current[0] !== ' ') {\n if (getMatchingIndex(listContent, listContent, stringRef.current) === -1) {\n setTypingChange(false);\n } else if (event.key === ' ') {\n stopEvent(event);\n }\n }\n if (listContent == null || ignoreKeysRef.current.includes(event.key) ||\n // Character key.\n event.key.length !== 1 ||\n // Modifier key.\n event.ctrlKey || event.metaKey || event.altKey) {\n return;\n }\n if (open && event.key !== ' ') {\n stopEvent(event);\n setTypingChange(true);\n }\n\n // Bail out if the list contains a word like \"llama\" or \"aaron\". TODO:\n // allow it in this case, too.\n const allowRapidSuccessionOfFirstLetter = listContent.every(text => {\n var _text$, _text$2;\n return text ? ((_text$ = text[0]) == null ? void 0 : _text$.toLocaleLowerCase()) !== ((_text$2 = text[1]) == null ? void 0 : _text$2.toLocaleLowerCase()) : true;\n });\n\n // Allows the user to cycle through items that start with the same letter\n // in rapid succession.\n if (allowRapidSuccessionOfFirstLetter && stringRef.current === event.key) {\n stringRef.current = '';\n prevIndexRef.current = matchIndexRef.current;\n }\n stringRef.current += event.key;\n clearTimeoutIfSet(timeoutIdRef);\n timeoutIdRef.current = window.setTimeout(() => {\n stringRef.current = '';\n prevIndexRef.current = matchIndexRef.current;\n setTypingChange(false);\n }, resetMs);\n const prevIndex = prevIndexRef.current;\n const index = getMatchingIndex(listContent, [...listContent.slice((prevIndex || 0) + 1), ...listContent.slice(0, (prevIndex || 0) + 1)], stringRef.current);\n if (index !== -1) {\n onMatch(index);\n matchIndexRef.current = index;\n } else if (event.key !== ' ') {\n stringRef.current = '';\n setTypingChange(false);\n }\n });\n const reference = React.useMemo(() => ({\n onKeyDown\n }), [onKeyDown]);\n const floating = React.useMemo(() => {\n return {\n onKeyDown,\n onKeyUp(event) {\n if (event.key === ' ') {\n setTypingChange(false);\n }\n }\n };\n }, [onKeyDown, setTypingChange]);\n return React.useMemo(() => enabled ? {\n reference,\n floating\n } : {}, [enabled, reference, floating]);\n}\n\nfunction getArgsWithCustomFloatingHeight(state, height) {\n return {\n ...state,\n rects: {\n ...state.rects,\n floating: {\n ...state.rects.floating,\n height\n }\n }\n };\n}\n/**\n * Positions the floating element such that an inner element inside of it is\n * anchored to the reference element.\n * @see https://floating-ui.com/docs/inner\n * @deprecated\n */\nconst inner = props => ({\n name: 'inner',\n options: props,\n async fn(state) {\n const {\n listRef,\n overflowRef,\n onFallbackChange,\n offset: innerOffset = 0,\n index = 0,\n minItemsVisible = 4,\n referenceOverflowThreshold = 0,\n scrollRef,\n ...detectOverflowOptions\n } = evaluate(props, state);\n const {\n rects,\n platform,\n elements: {\n floating\n }\n } = state;\n const item = listRef.current[index];\n const scrollEl = (scrollRef == null ? void 0 : scrollRef.current) || floating;\n\n // Valid combinations:\n // 1. Floating element is the scrollRef and has a border (default)\n // 2. Floating element is not the scrollRef, floating element has a border\n // 3. Floating element is not the scrollRef, scrollRef has a border\n // Floating > {...getFloatingProps()} wrapper > scrollRef > items is not\n // allowed as VoiceOver doesn't work.\n const clientTop = floating.clientTop || scrollEl.clientTop;\n const floatingIsBordered = floating.clientTop !== 0;\n const scrollElIsBordered = scrollEl.clientTop !== 0;\n const floatingIsScrollEl = floating === scrollEl;\n if (process.env.NODE_ENV !== \"production\") {\n if (!state.placement.startsWith('bottom')) {\n warn('`placement` side must be \"bottom\" when using the `inner`', 'middleware.');\n }\n }\n if (!item) {\n return {};\n }\n const nextArgs = {\n ...state,\n ...(await offset(-item.offsetTop - floating.clientTop - rects.reference.height / 2 - item.offsetHeight / 2 - innerOffset).fn(state))\n };\n const overflow = await platform.detectOverflow(getArgsWithCustomFloatingHeight(nextArgs, scrollEl.scrollHeight + clientTop + floating.clientTop), detectOverflowOptions);\n const refOverflow = await platform.detectOverflow(nextArgs, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const diffY = max(0, overflow.top);\n const nextY = nextArgs.y + diffY;\n const isScrollable = scrollEl.scrollHeight > scrollEl.clientHeight;\n const rounder = isScrollable ? v => v : round;\n const maxHeight = rounder(max(0, scrollEl.scrollHeight + (floatingIsBordered && floatingIsScrollEl || scrollElIsBordered ? clientTop * 2 : 0) - diffY - max(0, overflow.bottom)));\n scrollEl.style.maxHeight = maxHeight + \"px\";\n scrollEl.scrollTop = diffY;\n\n // There is not enough space, fallback to standard anchored positioning\n if (onFallbackChange) {\n const shouldFallback = scrollEl.offsetHeight < item.offsetHeight * min(minItemsVisible, listRef.current.length) - 1 || refOverflow.top >= -referenceOverflowThreshold || refOverflow.bottom >= -referenceOverflowThreshold;\n ReactDOM.flushSync(() => onFallbackChange(shouldFallback));\n }\n if (overflowRef) {\n overflowRef.current = await platform.detectOverflow(getArgsWithCustomFloatingHeight({\n ...nextArgs,\n y: nextY\n }, scrollEl.offsetHeight + clientTop + floating.clientTop), detectOverflowOptions);\n }\n return {\n y: nextY\n };\n }\n});\n/**\n * Changes the `inner` middleware's `offset` upon a `wheel` event to\n * expand the floating element's height, revealing more list items.\n * @see https://floating-ui.com/docs/inner\n * @deprecated\n */\nfunction useInnerOffset(context, props) {\n const {\n open,\n elements\n } = context;\n const {\n enabled = true,\n overflowRef,\n scrollRef,\n onChange: unstable_onChange\n } = props;\n const onChange = useEffectEvent(unstable_onChange);\n const controlledScrollingRef = React.useRef(false);\n const prevScrollTopRef = React.useRef(null);\n const initialOverflowRef = React.useRef(null);\n React.useEffect(() => {\n if (!enabled) return;\n function onWheel(e) {\n if (e.ctrlKey || !el || overflowRef.current == null) {\n return;\n }\n const dY = e.deltaY;\n const isAtTop = overflowRef.current.top >= -0.5;\n const isAtBottom = overflowRef.current.bottom >= -0.5;\n const remainingScroll = el.scrollHeight - el.clientHeight;\n const sign = dY < 0 ? -1 : 1;\n const method = dY < 0 ? 'max' : 'min';\n if (el.scrollHeight <= el.clientHeight) {\n return;\n }\n if (!isAtTop && dY > 0 || !isAtBottom && dY < 0) {\n e.preventDefault();\n ReactDOM.flushSync(() => {\n onChange(d => d + Math[method](dY, remainingScroll * sign));\n });\n } else if (/firefox/i.test(getUserAgent())) {\n // Needed to propagate scrolling during momentum scrolling phase once\n // it gets limited by the boundary. UX improvement, not critical.\n el.scrollTop += dY;\n }\n }\n const el = (scrollRef == null ? void 0 : scrollRef.current) || elements.floating;\n if (open && el) {\n el.addEventListener('wheel', onWheel);\n\n // Wait for the position to be ready.\n requestAnimationFrame(() => {\n prevScrollTopRef.current = el.scrollTop;\n if (overflowRef.current != null) {\n initialOverflowRef.current = {\n ...overflowRef.current\n };\n }\n });\n return () => {\n prevScrollTopRef.current = null;\n initialOverflowRef.current = null;\n el.removeEventListener('wheel', onWheel);\n };\n }\n }, [enabled, open, elements.floating, overflowRef, scrollRef, onChange]);\n const floating = React.useMemo(() => ({\n onKeyDown() {\n controlledScrollingRef.current = true;\n },\n onWheel() {\n controlledScrollingRef.current = false;\n },\n onPointerMove() {\n controlledScrollingRef.current = false;\n },\n onScroll() {\n const el = (scrollRef == null ? void 0 : scrollRef.current) || elements.floating;\n if (!overflowRef.current || !el || !controlledScrollingRef.current) {\n return;\n }\n if (prevScrollTopRef.current !== null) {\n const scrollDiff = el.scrollTop - prevScrollTopRef.current;\n if (overflowRef.current.bottom < -0.5 && scrollDiff < -1 || overflowRef.current.top < -0.5 && scrollDiff > 1) {\n ReactDOM.flushSync(() => onChange(d => d + scrollDiff));\n }\n }\n\n // [Firefox] Wait for the height change to have been applied.\n requestAnimationFrame(() => {\n prevScrollTopRef.current = el.scrollTop;\n });\n }\n }), [elements.floating, onChange, overflowRef, scrollRef]);\n return React.useMemo(() => enabled ? {\n floating\n } : {}, [enabled, floating]);\n}\n\nfunction getNodeChildren(nodes, id, onlyOpenChildren) {\n if (onlyOpenChildren === void 0) {\n onlyOpenChildren = true;\n }\n const directChildren = nodes.filter(node => {\n var _node$context;\n return node.parentId === id && (!onlyOpenChildren || ((_node$context = node.context) == null ? void 0 : _node$context.open));\n });\n return directChildren.flatMap(child => [child, ...getNodeChildren(nodes, child.id, onlyOpenChildren)]);\n}\n\nfunction isPointInPolygon(point, polygon) {\n const [x, y] = point;\n let isInside = false;\n const length = polygon.length;\n for (let i = 0, j = length - 1; i < length; j = i++) {\n const [xi, yi] = polygon[i] || [0, 0];\n const [xj, yj] = polygon[j] || [0, 0];\n const intersect = yi >= y !== yj >= y && x <= (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) {\n isInside = !isInside;\n }\n }\n return isInside;\n}\nfunction isInside(point, rect) {\n return point[0] >= rect.x && point[0] <= rect.x + rect.width && point[1] >= rect.y && point[1] <= rect.y + rect.height;\n}\n/**\n * Generates a safe polygon area that the user can traverse without closing the\n * floating element once leaving the reference element.\n * @see https://floating-ui.com/docs/useHover#safepolygon\n */\nfunction safePolygon(options) {\n if (options === void 0) {\n options = {};\n }\n const {\n buffer = 0.5,\n blockPointerEvents = false,\n requireIntent = true\n } = options;\n const timeoutRef = {\n current: -1\n };\n let hasLanded = false;\n let lastX = null;\n let lastY = null;\n let lastCursorTime = typeof performance !== 'undefined' ? performance.now() : 0;\n function getCursorSpeed(x, y) {\n const currentTime = performance.now();\n const elapsedTime = currentTime - lastCursorTime;\n if (lastX === null || lastY === null || elapsedTime === 0) {\n lastX = x;\n lastY = y;\n lastCursorTime = currentTime;\n return null;\n }\n const deltaX = x - lastX;\n const deltaY = y - lastY;\n const distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n const speed = distance / elapsedTime; // px / ms\n\n lastX = x;\n lastY = y;\n lastCursorTime = currentTime;\n return speed;\n }\n const fn = _ref => {\n let {\n x,\n y,\n placement,\n elements,\n onClose,\n nodeId,\n tree\n } = _ref;\n return function onMouseMove(event) {\n function close() {\n clearTimeoutIfSet(timeoutRef);\n onClose();\n }\n clearTimeoutIfSet(timeoutRef);\n if (!elements.domReference || !elements.floating || placement == null || x == null || y == null) {\n return;\n }\n const {\n clientX,\n clientY\n } = event;\n const clientPoint = [clientX, clientY];\n const target = getTarget(event);\n const isLeave = event.type === 'mouseleave';\n const isOverFloatingEl = contains(elements.floating, target);\n const isOverReferenceEl = contains(elements.domReference, target);\n const refRect = elements.domReference.getBoundingClientRect();\n const rect = elements.floating.getBoundingClientRect();\n const side = placement.split('-')[0];\n const cursorLeaveFromRight = x > rect.right - rect.width / 2;\n const cursorLeaveFromBottom = y > rect.bottom - rect.height / 2;\n const isOverReferenceRect = isInside(clientPoint, refRect);\n const isFloatingWider = rect.width > refRect.width;\n const isFloatingTaller = rect.height > refRect.height;\n const left = (isFloatingWider ? refRect : rect).left;\n const right = (isFloatingWider ? refRect : rect).right;\n const top = (isFloatingTaller ? refRect : rect).top;\n const bottom = (isFloatingTaller ? refRect : rect).bottom;\n if (isOverFloatingEl) {\n hasLanded = true;\n if (!isLeave) {\n return;\n }\n }\n if (isOverReferenceEl) {\n hasLanded = false;\n }\n if (isOverReferenceEl && !isLeave) {\n hasLanded = true;\n return;\n }\n\n // Prevent overlapping floating element from being stuck in an open-close\n // loop: https://github.com/floating-ui/floating-ui/issues/1910\n if (isLeave && isElement(event.relatedTarget) && contains(elements.floating, event.relatedTarget)) {\n return;\n }\n\n // If any nested child is open, abort.\n if (tree && getNodeChildren(tree.nodesRef.current, nodeId).length) {\n return;\n }\n\n // If the pointer is leaving from the opposite side, the \"buffer\" logic\n // creates a point where the floating element remains open, but should be\n // ignored.\n // A constant of 1 handles floating point rounding errors.\n if (side === 'top' && y >= refRect.bottom - 1 || side === 'bottom' && y <= refRect.top + 1 || side === 'left' && x >= refRect.right - 1 || side === 'right' && x <= refRect.left + 1) {\n return close();\n }\n\n // Ignore when the cursor is within the rectangular trough between the\n // two elements. Since the triangle is created from the cursor point,\n // which can start beyond the ref element's edge, traversing back and\n // forth from the ref to the floating element can cause it to close. This\n // ensures it always remains open in that case.\n let rectPoly = [];\n switch (side) {\n case 'top':\n rectPoly = [[left, refRect.top + 1], [left, rect.bottom - 1], [right, rect.bottom - 1], [right, refRect.top + 1]];\n break;\n case 'bottom':\n rectPoly = [[left, rect.top + 1], [left, refRect.bottom - 1], [right, refRect.bottom - 1], [right, rect.top + 1]];\n break;\n case 'left':\n rectPoly = [[rect.right - 1, bottom], [rect.right - 1, top], [refRect.left + 1, top], [refRect.left + 1, bottom]];\n break;\n case 'right':\n rectPoly = [[refRect.right - 1, bottom], [refRect.right - 1, top], [rect.left + 1, top], [rect.left + 1, bottom]];\n break;\n }\n function getPolygon(_ref2) {\n let [x, y] = _ref2;\n switch (side) {\n case 'top':\n {\n const cursorPointOne = [isFloatingWider ? x + buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y + buffer + 1];\n const cursorPointTwo = [isFloatingWider ? x - buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y + buffer + 1];\n const commonPoints = [[rect.left, cursorLeaveFromRight ? rect.bottom - buffer : isFloatingWider ? rect.bottom - buffer : rect.top], [rect.right, cursorLeaveFromRight ? isFloatingWider ? rect.bottom - buffer : rect.top : rect.bottom - buffer]];\n return [cursorPointOne, cursorPointTwo, ...commonPoints];\n }\n case 'bottom':\n {\n const cursorPointOne = [isFloatingWider ? x + buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y - buffer];\n const cursorPointTwo = [isFloatingWider ? x - buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y - buffer];\n const commonPoints = [[rect.left, cursorLeaveFromRight ? rect.top + buffer : isFloatingWider ? rect.top + buffer : rect.bottom], [rect.right, cursorLeaveFromRight ? isFloatingWider ? rect.top + buffer : rect.bottom : rect.top + buffer]];\n return [cursorPointOne, cursorPointTwo, ...commonPoints];\n }\n case 'left':\n {\n const cursorPointOne = [x + buffer + 1, isFloatingTaller ? y + buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const cursorPointTwo = [x + buffer + 1, isFloatingTaller ? y - buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const commonPoints = [[cursorLeaveFromBottom ? rect.right - buffer : isFloatingTaller ? rect.right - buffer : rect.left, rect.top], [cursorLeaveFromBottom ? isFloatingTaller ? rect.right - buffer : rect.left : rect.right - buffer, rect.bottom]];\n return [...commonPoints, cursorPointOne, cursorPointTwo];\n }\n case 'right':\n {\n const cursorPointOne = [x - buffer, isFloatingTaller ? y + buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const cursorPointTwo = [x - buffer, isFloatingTaller ? y - buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const commonPoints = [[cursorLeaveFromBottom ? rect.left + buffer : isFloatingTaller ? rect.left + buffer : rect.right, rect.top], [cursorLeaveFromBottom ? isFloatingTaller ? rect.left + buffer : rect.right : rect.left + buffer, rect.bottom]];\n return [cursorPointOne, cursorPointTwo, ...commonPoints];\n }\n }\n }\n if (isPointInPolygon([clientX, clientY], rectPoly)) {\n return;\n }\n if (hasLanded && !isOverReferenceRect) {\n return close();\n }\n if (!isLeave && requireIntent) {\n const cursorSpeed = getCursorSpeed(event.clientX, event.clientY);\n const cursorSpeedThreshold = 0.1;\n if (cursorSpeed !== null && cursorSpeed < cursorSpeedThreshold) {\n return close();\n }\n }\n if (!isPointInPolygon([clientX, clientY], getPolygon([x, y]))) {\n close();\n } else if (!hasLanded && requireIntent) {\n timeoutRef.current = window.setTimeout(close, 40);\n }\n };\n };\n fn.__options = {\n blockPointerEvents\n };\n return fn;\n}\n\nexport { Composite, CompositeItem, FloatingArrow, FloatingDelayGroup, FloatingFocusManager, FloatingList, FloatingNode, FloatingOverlay, FloatingPortal, FloatingTree, NextFloatingDelayGroup, inner, safePolygon, useClick, useClientPoint, useDelayGroup, useDelayGroupContext, useDismiss, useFloating, useFloatingNodeId, useFloatingParentNodeId, useFloatingPortalNode, useFloatingRootContext, useFloatingTree, useFocus, useHover, useId, useInnerOffset, useInteractions, useListItem, useListNavigation, useMergeRefs, useNextDelayGroup, useRole, useTransitionStatus, useTransitionStyles, useTypeahead };\n","import { createContext } from 'react';\n\nimport { TooltipState } from '../models/TooltipState';\n\nexport const TooltipContext = createContext<TooltipState>(null);\n","import { FloatingPortal, useMergeRefs } from '@floating-ui/react';\nimport classnames from 'classnames';\nimport { HTMLProps, forwardRef, useContext } from 'react';\n\nimport { TooltipContext } from '../TooltipProvider/constants/TooltipContext';\n\ninterface Props {\n styles?: {\n [key: string]: string;\n };\n}\n\nexport const TooltipContent = forwardRef<HTMLDivElement, HTMLProps<HTMLDivElement> & Props>(function TooltipContent(\n { styles, style, children, ...props },\n propRef,\n) {\n const context = useContext(TooltipContext);\n if (!context) {\n return null;\n }\n\n const { context: floatingContext, ...otherContext } = context;\n\n const ref = useMergeRefs([otherContext.refs.setFloating, propRef]);\n\n if (!floatingContext.open) return null;\n\n let arrowClassName = '';\n let invertX: boolean | null = null;\n let invertY: boolean | null = null;\n switch (otherContext.placement) {\n case 'top':\n case 'top-end':\n case 'top-start':\n arrowClassName = 'topArrow';\n invertY = false;\n break;\n case 'bottom':\n case 'bottom-end':\n case 'bottom-start':\n arrowClassName = 'bottomArrow';\n invertY = true;\n break;\n case 'left':\n case 'left-end':\n case 'left-start':\n arrowClassName = 'leftArrow';\n invertX = true;\n break;\n case 'right':\n case 'right-end':\n case 'right-start':\n arrowClassName = 'rightArrow';\n invertX = false;\n break;\n\n default:\n break;\n }\n\n return (\n <FloatingPortal root={otherContext.root}>\n <div\n ref={ref}\n style={{\n ...otherContext.floatingStyles,\n ...style,\n }}\n {...otherContext.getFloatingProps(props)}\n >\n {children}\n {!otherContext.withoutArrow && (\n <div\n className={styles && classnames(styles.arrow, styles[arrowClassName as keyof typeof styles])}\n ref={otherContext.arrowRef}\n style={{\n position: 'absolute',\n left: invertY === null && invertX === false ? 0 : otherContext.middlewareData.arrow?.x,\n right: invertY === null && invertX === true ? 0 : otherContext.middlewareData.arrow?.x,\n top: invertX === null && invertY === true ? 0 : otherContext.middlewareData.arrow?.y,\n bottom: invertX === null && invertY === false ? 0 : otherContext.middlewareData.arrow?.y,\n }}\n />\n )}\n </div>\n </FloatingPortal>\n );\n});\n","import { PropsWithChildren } from 'react';\n\nimport { TooltipContext } from './constants/TooltipContext';\nimport { useTooltip } from './hooks/useTooltip';\nimport { TooltipOptions } from './models/TooltipOptions';\n\nexport const TooltipProvider = (props: PropsWithChildren<TooltipOptions>) => {\n const { children, ...options } = props;\n\n const tooltip = useTooltip(options);\n\n return <TooltipContext.Provider value={tooltip}>{children}</TooltipContext.Provider>;\n};\n","import {\n arrow,\n autoUpdate,\n flip,\n offset,\n shift,\n useDismiss,\n useFloating,\n useFocus,\n useHover,\n useInteractions,\n useRole,\n} from '@floating-ui/react';\nimport { useMemo, useState } from 'react';\n\nimport { TooltipOptions } from '../models/TooltipOptions';\n\nexport function useTooltip(props: TooltipOptions = {}) {\n const {\n initialOpen = false,\n placement = 'top',\n open: controlledOpen,\n onOpenChange: setControlledOpen,\n withoutArrow,\n arrowRef,\n root,\n } = props;\n const [uncontrolledOpen, setUncontrolledOpen] = useState(initialOpen);\n\n const open = controlledOpen ?? uncontrolledOpen;\n const setOpen = setControlledOpen ?? setUncontrolledOpen;\n\n const data = useFloating({\n placement,\n open,\n onOpenChange: setOpen,\n whileElementsMounted: autoUpdate,\n middleware: [\n offset(12),\n flip({\n crossAxis: placement.includes('-'),\n fallbackAxisSideDirection: 'start',\n padding: 5,\n }),\n shift({ padding: 5 }),\n ...(!withoutArrow && arrowRef?.current ? [arrow({ element: arrowRef })] : []),\n ],\n });\n\n const { context } = data;\n\n const hover = useHover(context, {\n move: false,\n enabled: controlledOpen == null,\n });\n const focus = useFocus(context, {\n enabled: controlledOpen == null,\n });\n const dismiss = useDismiss(context);\n const role = useRole(context, { role: 'tooltip' });\n\n const interactions = useInteractions([hover, focus, dismiss, role]);\n\n return useMemo(\n () => ({\n open,\n setOpen,\n withoutArrow,\n arrowRef,\n root,\n ...interactions,\n ...data,\n }),\n [open, setOpen, interactions, data, root],\n );\n}\n","import { useMergeRefs } from '@floating-ui/react';\nimport { HTMLProps, cloneElement, forwardRef, isValidElement, useContext } from 'react';\n\nimport { TooltipContext } from '../TooltipProvider/constants/TooltipContext';\n\nexport const TooltipTrigger = forwardRef<HTMLElement, HTMLProps<HTMLElement> & { wrapTrigger?: boolean }>(\n function TooltipTrigger({ children, wrapTrigger = false, ...props }, propRef) {\n const context = useContext(TooltipContext);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const childrenRef = (children as any).ref;\n const ref = useMergeRefs([context?.refs.setReference, propRef, childrenRef]);\n\n if (!context) {\n return null;\n }\n\n if (!wrapTrigger && isValidElement(children)) {\n return cloneElement(\n children,\n context.getReferenceProps({\n ref,\n ...props,\n ...(children.props as object),\n 'data-state': context.open ? 'open' : 'closed',\n } as object),\n );\n }\n\n return (\n <div ref={ref} data-state={context.open ? 'open' : 'closed'} {...context.getReferenceProps(props)}>\n {children}\n </div>\n );\n },\n);\n","import { Placement } from '@floating-ui/react';\nimport classnames from 'classnames';\nimport { MutableRefObject, PropsWithChildren, ReactElement, ReactNode, useRef, useState } from 'react';\n\nimport { UiProps } from '@models/UiProps';\n\nimport * as styles from './tooltip.module.css';\nimport { TooltipContent } from './ui/TooltipContent';\nimport { TooltipProvider } from './ui/TooltipProvider';\nimport { TooltipTrigger } from './ui/TooltipTrigger';\n\ninterface Props {\n label?: ReactNode | string;\n clickable?: boolean;\n initialOpen?: boolean;\n placement?: Placement;\n withoutArrow?: boolean;\n wrapTrigger?: boolean;\n alertType?: 'success' | 'warning' | 'error' | 'info' | 'default';\n root?: HTMLElement | MutableRefObject<HTMLElement | null> | null;\n}\n\nexport function Tooltip(props: PropsWithChildren<UiProps<Props>>): ReactElement | null {\n const {\n label,\n clickable,\n initialOpen,\n placement,\n withoutArrow,\n wrapTrigger,\n alertType = 'default',\n root,\n children,\n classes,\n } = props;\n\n const [showTooltip, setShowTooltip] = useState(false);\n\n const arrowRef = useRef(null);\n\n if (!label) {\n return children ? <>{children}</> : null;\n }\n\n if (!children) {\n return null;\n }\n\n return (\n <TooltipProvider\n placement={placement}\n initialOpen={initialOpen}\n open={clickable ? showTooltip : undefined}\n onOpenChange={clickable ? setShowTooltip : undefined}\n withoutArrow={withoutArrow}\n arrowRef={arrowRef}\n root={root}\n >\n <TooltipTrigger\n wrapTrigger={wrapTrigger}\n onClick={clickable ? () => setShowTooltip((prev) => !prev) : undefined}\n className={wrapTrigger ? classnames(styles.trigger, classes?.trigger) : undefined}\n >\n {children}\n </TooltipTrigger>\n <TooltipContent\n className={classnames(styles.content, styles[alertType as keyof typeof styles], classes?.content)}\n styles={styles}\n >\n {label}\n </TooltipContent>\n </TooltipProvider>\n );\n}\n","// extracted by mini-css-extract-plugin\nvar _1 = \"fieldShell-module__arrow__aEobm\";\nvar _2 = \"fieldShell-module__chips__sRJzx\";\nvar _3 = \"fieldShell-module__end-icon__b8buW\";\nvar _4 = \"fieldShell-module__error-icon__aHf1B\";\nvar _5 = \"fieldShell-module__error-name__WExJs\";\nvar _6 = \"fieldShell-module__full-width__TtRHo\";\nvar _7 = \"fieldShell-module__input__uhnF8\";\nvar _8 = \"fieldShell-module__label__MW9yk\";\nvar _9 = \"fieldShell-module__label-row__UkRCm\";\nvar _a = \"fieldShell-module__root__A1OLC\";\nvar _b = \"fieldShell-module__start-icon__fIKEA\";\nvar _c = \"fieldShell-module__wrapper__OvvEL\";\nexport { _1 as \"arrow\", _2 as \"chips\", _3 as \"endIcon\", _4 as \"errorIcon\", _5 as \"errorName\", _6 as \"fullWidth\", _7 as \"input\", _8 as \"label\", _9 as \"labelRow\", _a as \"root\", _b as \"startIcon\", _c as \"wrapper\" }\n","import classnames from 'classnames';\nimport { HTMLAttributes, MouseEventHandler, ReactNode, forwardRef } from 'react';\n\nimport { Tooltip } from '@components/data-display/Tooltip';\nimport { Typography } from '@components/data-display/Typography';\nimport { FieldError } from '@models/FieldError';\nimport { FieldSize } from '@models/FieldSize';\nimport { FieldVariant } from '@models/FieldVariant';\nimport { UiProps } from '@models/UiProps';\n\nimport * as styles from './fieldShell.module.css';\n\nexport type { FieldVariant, FieldSize, FieldError };\n\ninterface Props {\n variant?: FieldVariant;\n componentSize?: FieldSize;\n fullWidth?: boolean;\n label?: string;\n error?: FieldError;\n labelExtra?: ReactNode;\n inputId?: string;\n onLabelClick?: MouseEventHandler;\n hasStartIcon?: boolean;\n hasEndIcon?: boolean;\n hasDualEndIcon?: boolean;\n hasErrorIcon?: boolean;\n hasClearButton?: boolean;\n hasArrow?: boolean;\n chipsMode?: boolean;\n children: ReactNode;\n}\n\n/**\n * Внутренняя обёртка поля ввода: лейбл + контейнер с фоном/рамкой.\n * Общая геометрия и состояния задаются через data-атрибуты,\n * чтобы CSS-модули компонентов могли на них ссылаться.\n */\nexport const FieldShell = forwardRef<HTMLDivElement, UiProps<Props> & HTMLAttributes<HTMLDivElement>>(\n function FieldShell(\n {\n variant = 'outlined',\n componentSize = 'medium',\n fullWidth,\n label,\n error,\n labelExtra,\n inputId,\n onLabelClick,\n hasStartIcon,\n hasEndIcon,\n hasDualEndIcon,\n hasErrorIcon,\n hasClearButton,\n hasArrow,\n chipsMode,\n children,\n classes,\n className,\n ...rest\n },\n ref,\n ) {\n return (\n <div data-size={componentSize} className={classnames(styles.root, fullWidth && styles.fullWidth, classes?.root)}>\n {!!label && (\n <div className={classnames(styles.labelRow, classes?.labelRow)}>\n <Typography\n className={classnames(styles.label, classes?.label)}\n component={'label'}\n variant=\"caption\"\n htmlFor={inputId}\n onClick={onLabelClick}\n >\n {label}\n {labelExtra}\n </Typography>\n {!!error && (\n <Tooltip label={error.description} alertType=\"error\">\n <span className={classnames(styles.errorName, classes?.errorName)}>{error.name}</span>\n </Tooltip>\n )}\n </div>\n )}\n <div\n ref={ref}\n data-variant={variant}\n data-error={error ? '' : undefined}\n data-start-icon={hasStartIcon ? '' : undefined}\n data-end-icon={hasEndIcon ? '' : undefined}\n data-dual-end-icon={hasDualEndIcon ? '' : undefined}\n data-error-icon={hasErrorIcon ? '' : undefined}\n data-clear={hasClearButton ? '' : undefined}\n data-arrow={hasArrow ? '' : undefined}\n data-chips={chipsMode ? '' : undefined}\n className={classnames(styles.wrapper, className, classes?.wrapper)}\n {...rest}\n >\n {children}\n </div>\n </div>\n );\n },\n);\n","import React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const ErrorOutlineIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path\n d={\n 'M11 15h2v2h-2v-2zm0-8h2v6h-2V7zm1-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48' +\n ' 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z'\n }\n />\n </Icon>\n);\n","import classnames from 'classnames';\n\nimport { Tooltip } from '@components/data-display/Tooltip';\nimport { ErrorOutlineIcon } from '@icons/ErrorOutlineIcon';\nimport { FieldError } from '@models/FieldError';\nimport { FieldSize } from '@models/FieldSize';\nimport { PropsObject } from '@models/UiProps';\n\nimport * as styles from './fieldShell.module.css';\n\nfunction errorIconTooltipLabel(error: FieldError) {\n return (\n <>\n {error.name}\n <br />\n {error.description}\n </>\n );\n}\n\ninterface Props {\n error: FieldError;\n componentSize?: FieldSize;\n className?: string | PropsObject;\n}\n\nexport function FieldErrorIcon(props: Props) {\n const { error, componentSize = 'medium', className } = props;\n\n const iconSize = componentSize === 'large' || componentSize === 'extraLarge' ? 24 : 20;\n\n return (\n <Tooltip label={errorIconTooltipLabel(error)} alertType=\"error\">\n <span className={classnames(styles.endIcon, styles.errorIcon, className)}>\n <ErrorOutlineIcon size={iconSize} />\n </span>\n </Tooltip>\n );\n}\n","import React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const CloseIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\" />\n </Icon>\n);\n","// extracted by mini-css-extract-plugin\nvar _1 = \"inputChip-module__clickable__djl7f\";\nvar _2 = \"inputChip-module__disabled__YGtsQ\";\nvar _3 = \"inputChip-module__extraLarge__y0_Wa\";\nvar _4 = \"inputChip-module__filled__pktYJ\";\nvar _5 = \"inputChip-module__icon__o6UjH\";\nvar _6 = \"inputChip-module__large__zecCF\";\nvar _7 = \"inputChip-module__medium__T_uhi\";\nvar _8 = \"inputChip-module__outlined__L0tPF\";\nvar _9 = \"inputChip-module__remove__k2uuh\";\nvar _a = \"inputChip-module__root__PCWqv\";\nvar _b = \"inputChip-module__small__XM6yG\";\nvar _c = \"inputChip-module__text__LQYEa\";\nvar _d = \"inputChip-module__with-icon__J7ekZ\";\nexport { _1 as \"clickable\", _2 as \"disabled\", _3 as \"extraLarge\", _4 as \"filled\", _5 as \"icon\", _6 as \"large\", _7 as \"medium\", _8 as \"outlined\", _9 as \"remove\", _a as \"root\", _b as \"small\", _c as \"text\", _d as \"withIcon\" }\n","import classnames from 'classnames';\nimport { HTMLAttributes, MouseEvent, PropsWithChildren, ReactNode, forwardRef } from 'react';\n\nimport { CloseIcon } from '@icons/CloseIcon';\nimport { ChipVariant } from '@models/ChipVariant';\nimport { FieldSize } from '@models/FieldSize';\nimport { UiProps } from '@models/UiProps';\n\nimport * as styles from './inputChip.module.css';\n\ntype Style = keyof typeof styles;\n\nexport interface Props {\n variant?: ChipVariant;\n componentSize?: FieldSize;\n icon?: ReactNode;\n disabled?: boolean;\n onClick?: () => void;\n onRemove?: () => void;\n}\n\nexport const InputChip = forwardRef<\n HTMLDivElement,\n PropsWithChildren<UiProps<Props>> & Omit<HTMLAttributes<HTMLDivElement>, 'onClick'>\n>(function InputChip(\n {\n variant = 'filled',\n componentSize = 'medium',\n icon,\n disabled,\n onClick,\n onRemove,\n children,\n classes,\n className,\n ...rest\n },\n ref,\n) {\n const handleRemove = (e: MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n if (!disabled) onRemove?.();\n };\n\n return (\n <div\n ref={ref}\n className={classnames(\n styles.root,\n styles[variant as Style],\n styles[componentSize as Style],\n !!icon && styles.withIcon,\n disabled && styles.disabled,\n onClick && !disabled && styles.clickable,\n className,\n classes?.root,\n )}\n tabIndex={onClick && !disabled ? 0 : undefined}\n {...rest}\n onClick={disabled ? undefined : onClick}\n >\n {!!icon && <span className={classnames(styles.icon, classes?.icon)}>{icon}</span>}\n <span className={classnames(styles.text, classes?.text)}>{children}</span>\n {!!onRemove && (\n <button\n type=\"button\"\n className={classnames(styles.remove, classes?.remove)}\n onClick={handleRemove}\n disabled={disabled}\n aria-label=\"Удалить\"\n >\n <CloseIcon />\n </button>\n )}\n </div>\n );\n});\n","import { createContext } from 'react';\n\nimport { PopoverState } from '../models/PopoverState';\n\nexport const PopoverContext = createContext<PopoverState>(null);\n","import { FloatingFocusManager, FloatingPortal, useMergeRefs } from '@floating-ui/react';\nimport { HTMLProps, forwardRef, useContext, useLayoutEffect } from 'react';\n\nimport { useCompatId } from '@hooks/useCompatId';\n\nimport { PopoverContext } from '../PopoverProvider/constants/PopoverContext';\n\nexport const PopoverContent = forwardRef<HTMLDivElement, HTMLProps<HTMLDivElement>>(function PopoverContent(\n { style, children, ...props },\n propRef,\n) {\n const context = useContext(PopoverContext);\n if (!context) {\n return null;\n }\n const { context: floatingContext, ...otherContext } = context;\n\n const ref = useMergeRefs([otherContext.refs.setFloating, propRef]);\n\n const id = useCompatId();\n\n useLayoutEffect(() => {\n context.setDescriptionId(id);\n return () => context.setDescriptionId(undefined);\n }, [id, context.setDescriptionId]);\n\n if (!floatingContext.open) return null;\n\n return (\n <FloatingPortal root={otherContext.root}>\n <FloatingFocusManager context={floatingContext} modal={otherContext.modal}>\n <div\n id={id}\n ref={ref}\n style={{ ...otherContext.floatingStyles, ...style }}\n aria-describedby={otherContext.descriptionId}\n {...otherContext.getFloatingProps(props)}\n >\n {children}\n </div>\n </FloatingFocusManager>\n </FloatingPortal>\n );\n});\n","import { PropsWithChildren } from 'react';\n\nimport { PopoverContext } from './constants/PopoverContext';\nimport { usePopover } from './hooks/usePopover';\nimport { PopoverOptions } from './models/PopoverOptions';\n\nexport const PopoverProvider = (props: PropsWithChildren<PopoverOptions>) => {\n const { children, modal = false, ...options } = props;\n\n const popover = usePopover({ modal, ...options });\n\n return <PopoverContext.Provider value={popover}>{children}</PopoverContext.Provider>;\n};\n","import {\n autoUpdate,\n flip,\n offset,\n shift,\n useClick,\n useDismiss,\n useFloating,\n useInteractions,\n useRole,\n} from '@floating-ui/react';\nimport { useLayoutEffect, useMemo, useState } from 'react';\n\nimport { PopoverOptions } from '../models/PopoverOptions';\n\nexport function usePopover(props: PopoverOptions = {}) {\n const {\n initialOpen = false,\n placement = 'bottom',\n modal,\n root,\n open: controlledOpen,\n onOpenChange: setControlledOpen,\n containerOffset = 12,\n layoutVersion,\n } = props;\n const [uncontrolledOpen, setUncontrolledOpen] = useState(initialOpen);\n const [descriptionId, setDescriptionId] = useState<string | undefined>();\n\n const open = controlledOpen ?? uncontrolledOpen;\n const setOpen = setControlledOpen ?? setUncontrolledOpen;\n\n const { update, ...data } = useFloating({\n placement,\n open,\n onOpenChange: setOpen,\n whileElementsMounted: autoUpdate,\n middleware: [\n offset(containerOffset),\n flip({\n crossAxis: placement.includes('-'),\n fallbackAxisSideDirection: 'end',\n padding: 5,\n }),\n shift({ padding: 5 }),\n ],\n });\n\n const { context } = data;\n\n useLayoutEffect(() => {\n if (open) {\n update();\n }\n }, [open, layoutVersion, update]);\n\n const click = useClick(context, {\n enabled: controlledOpen == undefined,\n });\n const dismiss = useDismiss(context);\n const role = useRole(context);\n\n const interactions = useInteractions([click, dismiss, role]);\n\n return useMemo(\n () => ({\n open,\n setOpen,\n ...interactions,\n ...data,\n update,\n modal,\n root,\n descriptionId,\n setDescriptionId,\n }),\n [open, setOpen, interactions, data, update, modal, root, descriptionId],\n );\n}\n","import { useMergeRefs } from '@floating-ui/react';\nimport { HTMLProps, cloneElement, forwardRef, isValidElement, useContext } from 'react';\n\nimport { PopoverContext } from '../PopoverProvider/constants/PopoverContext';\n\nexport const PopoverTrigger = forwardRef<HTMLElement, HTMLProps<HTMLElement> & { wrapTrigger?: boolean }>(\n function PopoverTrigger({ children, wrapTrigger = false, ...props }, propRef) {\n const context = useContext(PopoverContext);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const childrenRef = (children as any).ref;\n const ref = useMergeRefs([context?.refs.setReference, propRef, childrenRef]);\n\n if (!context) {\n return null;\n }\n\n if (!wrapTrigger && isValidElement(children)) {\n return cloneElement(\n children,\n context.getReferenceProps({\n ref,\n ...props,\n ...(children.props as object),\n 'data-state': context.open ? 'open' : 'closed',\n } as object),\n );\n }\n\n return (\n <div ref={ref} data-state={context.open ? 'open' : 'closed'} {...context.getReferenceProps(props)}>\n {children}\n </div>\n );\n },\n);\n","import { Placement } from '@floating-ui/react';\nimport classnames from 'classnames';\nimport { CSSProperties, MutableRefObject, PropsWithChildren, ReactNode, useState } from 'react';\n\nimport { UiProps } from '@models/UiProps';\n\nimport * as styles from './popover.module.css';\nimport { PopoverContent } from './ui/PopoverContent';\nimport { PopoverProvider } from './ui/PopoverProvider';\nimport { PopoverTrigger } from './ui/PopoverTrigger';\n\ninterface Props {\n description?: ReactNode | string;\n clickable?: boolean;\n initialOpen?: boolean;\n placement?: Placement;\n wrapTrigger?: boolean;\n containerOffset?: number;\n root?: HTMLElement | MutableRefObject<HTMLElement | null> | null;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n contentStyle?: CSSProperties;\n layoutVersion?: number;\n}\n\nexport function Popover(props: PropsWithChildren<UiProps<Props>>) {\n const {\n description,\n clickable,\n initialOpen,\n placement,\n wrapTrigger,\n containerOffset,\n root,\n open,\n onOpenChange,\n children,\n classes,\n contentStyle,\n layoutVersion,\n } = props;\n\n const [showTooltip, setShowTooltip] = useState(false);\n\n if (!children) {\n return null;\n }\n\n if (!description) {\n return children;\n }\n\n return (\n <PopoverProvider\n placement={placement}\n initialOpen={initialOpen}\n open={open !== undefined ? open : clickable ? showTooltip : undefined}\n onOpenChange={onOpenChange !== undefined ? onOpenChange : clickable ? setShowTooltip : undefined}\n containerOffset={containerOffset}\n root={root}\n layoutVersion={layoutVersion}\n >\n <PopoverTrigger\n wrapTrigger={wrapTrigger}\n onClick={clickable ? () => setShowTooltip((prev) => !prev) : undefined}\n className={classnames(wrapTrigger ? styles.trigger : undefined, classes?.trigger)}\n >\n {children}\n </PopoverTrigger>\n <PopoverContent className={classnames(styles.content, classes?.content)} style={contentStyle}>\n {description}\n </PopoverContent>\n </PopoverProvider>\n );\n}\n","// extracted by mini-css-extract-plugin\nvar _1 = \"popover-module__content__mHuYG\";\nvar _2 = \"popover-module__trigger__nPqWJ\";\nexport { _1 as \"content\", _2 as \"trigger\" }\n","import React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const AddIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\" />\n </Icon>\n);\n","import React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const ArrowDropDownIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path d=\"M7 10l5 5 5-5z\" />\n </Icon>\n);\n","import React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const ArrowDropUpIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path d=\"M7 14l5-5 5 5z\" />\n </Icon>\n);\n","/* eslint-disable max-len */\nimport React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const AttachIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path d=\"M16.5 6v11.5c0 2.21-1.79 4-4 4s-4-1.79-4-4V5c0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5v10.5c0 .55-.45 1-1 1s-1-.45-1-1V6H10v9.5c0 1.38 1.12 2.5 2.5 2.5s2.5-1.12 2.5-2.5V5c0-2.21-1.79-4-4-4S7 2.79 7 5v12.5c0 3.04 2.46 5.5 5.5 5.5s5.5-2.46 5.5-5.5V6h-1.5z\" />\n </Icon>\n);\n","import React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const BarChartIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path d=\"M4 9h4v11H4zm12 4h4v7h-4zm-6-9h4v16h-4z\" />\n </Icon>\n);\n","import React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const DonutIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path\n d={`M11 5.08V2c-5 .5-9 4.81-9 10s4 9.5 9 10v-3.08c-3-.48-6-3.4-6-6.92s3-6.44\n 6-6.92zM18.97 11H22c-.47-5-4-8.53-9-9v3.08C16 5.51 18.54 8 18.97 11zM13\n 18.92V22c5-.47 8.53-4 9-9h-3.03c-.43 3-2.97 5.49-5.97 5.92z`}\n />\n </Icon>\n);\n","import React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const LooksOneIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path\n d={`M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0\n 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zm-7-2h2V7h-4v2h2z`}\n />\n </Icon>\n);\n","import React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const MapIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path\n d={`m20.5 3-.16.03L15 5.1 9 3 3.36 4.9c-.21.07-.36.25-.36.48V20.5c0\n .28.22.5.5.5l.16-.03L9 18.9l6 2.1 5.64-1.9c.21-.07.36-.25.36-.48V3.5c0-\n .28-.22-.5-.5-.5zM10 5.47l4 1.4v11.66l-4-1.4V5.47zm-5 .99 3-1.01v11.7l-3\n 1.16V6.46zm14 11.08-3 1.01V6.86l3-1.16v11.84z`}\n />\n </Icon>\n);\n","import React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const ScatterPlotIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <circle cx=\"7\" cy=\"14\" r=\"3\" />\n <circle cx=\"11\" cy=\"6\" r=\"3\" />\n <circle cx=\"16.6\" cy=\"17.6\" r=\"3\" />\n </Icon>\n);\n","/* eslint-disable max-len */\nimport React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const RadioDeselectedIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\" />\n </Icon>\n);\n","/* eslint-disable max-len */\nimport React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const RadioSelectedIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path d=\"M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm0-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\" />\n </Icon>\n);\n","import React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const ChevronLeftIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path d=\"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z\" />\n </Icon>\n);\n","import React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const ChevronRightIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\" />\n </Icon>\n);\n","import React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const CircleFilledIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path d=\"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2z\" />\n </Icon>\n);\n","/* eslint-disable max-len */\nimport React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const DateRangeIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path d=\"M19 4h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20a2 2 0 002 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V10h14v10zM9 14H7v-2h2v2zm4 0h-2v-2h2v2zm4 0h-2v-2h2v2zm-8 4H7v-2h2v2zm4 0h-2v-2h2v2zm4 0h-2v-2h2v2z\" />\n </Icon>\n);\n","import React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const DeleteIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d={\n 'M14.5 3H9.5L8.5 4H5V6H19V4H15.5L14.5 3ZM16 9V19H8V9H16ZM6' +\n ' 7H18V19C18 20.1 17.1 21 16 21H8C6.9 21 6 20.1 6 19V7Z'\n }\n />\n </Icon>\n);\n","import React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const DoneIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\" />\n </Icon>\n);\n","import React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const DragIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d={\n 'M9 4C7.9 4 7 4.9 7 6C7 7.1 7.9 8 9 8C10.1 8 11 7.1 11 6C11 4.9 10.1 4 9' +\n ' 4ZM7 12C7 10.9 7.9 10 9 10C10.1 10 11 10.9 11 12C11 13.1 10.1 14 9 14C7.9' +\n ' 14 7 13.1 7 12ZM9 20C10.1 20 11 19.1 11 18C11 16.9 10.1 16 9 16C7.9 16 7' +\n ' 16.9 7 18C7 19.1 7.9 20 9 20ZM17 6C17 7.1 16.1 8 15 8C13.9 8 13 7.1 13 6C13' +\n ' 4.9 13.9 4 15 4C16.1 4 17 4.9 17 6ZM15 10C13.9 10 13 10.9 13 12C13 13.1 13.9' +\n ' 14 15 14C16.1 14 17 13.1 17 12C17 10.9 16.1 10 15 10ZM13 18C13 16.9 13.9 16' +\n ' 15 16C16.1 16 17 16.9 17 18C17 19.1 16.1 20 15 20C13.9 20 13 19.1 13 18Z'\n }\n />\n </Icon>\n);\n","import React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const FileUploadIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path d=\"M9 16h6v-6h4l-7-7-7 7h4zm-4 2h14v2H5z\" />\n </Icon>\n);\n","import React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const FilterIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path\n d={`M4.24993 5.61C6.26993 8.2 9.99993 13 9.99993 13V19C9.99993 19.55 10.4499\n 20 10.9999 20H12.9999C13.5499 20 13.9999 19.55 13.9999 19V13C13.9999 13 17.7199 8.2\n 19.7399 5.61C20.2499 4.95 19.7799 4 18.9499 4H5.03993C4.20993 4 3.73993 4.95 4.24993 5.61Z`}\n />\n </Icon>\n);\n","import React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const FilterClearIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <g clip-path=\"url(#clip0_851_25267)\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d={`M7.00015 4L3.46792 0.467773L2.05371 1.88199L4.4002 4.22847C4.01467 4.55071 3.89485 5.1506 4.24984\n 5.61C6.26984 8.2 9.99984 13 9.99984 13V19C9.99984 19.55 10.4498 20 10.9998 20H12.9998C13.5498 20\n 13.9998 19.55 13.9998 19V13.8281L18.9708 18.7991L20.385 17.3849L20.3849 17.3847L14.8734 11.8733L7.00015\n 4ZM16.1091 10.2805C17.2922 8.75591 18.7289 6.90619 19.7398 5.61C20.2498 4.95 19.7798 4 18.9498\n 4H9.82861L16.1091 10.2805Z`}\n />\n </g>\n <defs>\n <clipPath id=\"clip0_851_25267\">\n <rect width=\"24\" height=\"24\" fill=\"white\" />\n </clipPath>\n </defs>\n </Icon>\n);\n","import React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const InfoIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path\n d={`M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10\n 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z`}\n ></path>\n </Icon>\n);\n","import React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const AlertIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path\n d={\n 'M23 21.5H1L12 2.5L23 21.5ZM4.47005 19.5H19.53L12 6.48959L4.47005 19.5Z' +\n 'M13 18.5H11V16.5H13V18.5ZM13 10.5V14.5H11V10.5H13Z'\n }\n />\n </Icon>\n);\n","import React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const ChevronUpIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path d=\"M12 8.29498L6 14.295L7.41 15.705L12 11.125L16.59 15.705L18 14.295L12 8.29498Z\" />\n </Icon>\n);\n","import React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const ChevronDownIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path d=\"M16.59 8.29498L12 12.875L7.41 8.29498L6 9.70498L12 15.705L18 9.70498L16.59 8.29498Z\" />\n </Icon>\n);\n","import React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const ListIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path d=\"M3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7z\" />\n </Icon>\n);\n","/* eslint-disable max-len */\nimport React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const MoreVerticalIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path d=\"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\" />\n </Icon>\n);\n","/* eslint-disable max-len */\nimport React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const SearchIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path d=\"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\" />\n </Icon>\n);\n","import React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const SelectUniqueIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path d=\"M3 5h18v2H3V5zm0 6h18v2H3v-2zm0 6h10v2H3v-2z\" />\n </Icon>\n);\n","/* eslint-disable max-len */\nimport React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const SettingsIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path d=\"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.07.62-.07.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z\" />\n </Icon>\n);\n","import React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const SortDownIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3 18V16H21V18H3ZM3 6H9V8H3V6ZM15 11H3V13H15V11Z\" />\n </Icon>\n);\n","import React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const SortUpIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3 6V8H21V6H3ZM3 18H9V16H3V18ZM15 13H3V11H15V13Z\" />\n </Icon>\n);\n","import React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const TableChartIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path\n d={`M20 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h15c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0\n 2v3H5V5h15zm-5 14h-5v-9h5v9zM5 10h3v9H5v-9zm12 9v-9h3v9h-3z`}\n />\n </Icon>\n);\n","import React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const UploadIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path d=\"M9 16h6v-6h4l-7-7-7 7h4zm-4 2h14v2H5z\" />\n </Icon>\n);\n","/* eslint-disable max-len */\nimport React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const WellIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm-1-13h2v6h-2zm0 8h2v2h-2z\" />\n </Icon>\n);\n","/* eslint-disable max-len */\nimport React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const EditIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path d=\"M18.3688 3.29L20.7088 5.63C21.0988 6.02 21.0988 6.65 20.7088 7.04L18.8788 8.87L15.1288 5.12L16.9588 3.29C17.1488 3.1 17.3988 3 17.6588 3C17.9188 3 18.1688 3.09 18.3688 3.29ZM2.99878 17.25V21H6.74878L17.8088 9.94L14.0588 6.19L2.99878 17.25ZM5.91878 19H4.99878V18.08L14.0588 9.02L14.9788 9.94L5.91878 19Z\" />\n </Icon>\n);\n","import React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const FullScreenOnIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path\n d={`M3 5v4h2V5h4V3H5c-1.1 0-2 .9-2 2zm2 10H3v4c0 1.1.9 2 2\n 2h4v-2H5v-4zm14 4h-4v2h4c1.1 0 2-.9 2-2v-4h-2v4zm0-16h-4v2h4v4h2V5c0-1.1-.9-2-2-2z`}\n ></path>\n </Icon>\n);\n","import React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const FullScreenOffIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path d=\"M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z\"></path>\n </Icon>\n);\n","import React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const BookmarkIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path d=\"M17 3H7c-1.1 0-2 .9-2 2v16l7-3 7 3V5c0-1.1-.9-2-2-2zm0 15-5-2.18L7 18V5h10v13z\"></path>\n </Icon>\n);\n","import React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const BookmarkAddIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path\n d={`M17 11v6.97l-5-2.14-5 2.14V5h6V3H7c-1.1 0-2\n .9-2 2v16l7-3 7 3V11h-2zm4-4h-2v2h-2V7h-2V5h2V3h2v2h2v2z`}\n ></path>\n </Icon>\n);\n","import React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const ExportTableIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path\n fill=\"currentColor\"\n d={`m16.2 20.5 2.8-2.8V20h1v-4h-4v1h2.3l-2.8 2.8zM5 21q-.824\n 0-1.412-.587A1.93 1.93 0 0 1 3 19V5Q3 4.176 3.588 3.588A1.93\n 1.93 0 0 1 5 3h14q.824 0 1.413.588Q21 4.175 21 5v6.7a8 8 0\n 0 0-.975-.387A6 6 0 0 0 19 11.075V5H5v14h6.05q.076.55.237\n 1.05.163.5.388.95zm0-3v1V5v8.075V11zm2-1h4.075q.076-.525.238-1.025T11.675\n 15H7zm0-4h6.1q.8-.75 1.787-1.25A7 7 0 0 1 17 11.075V11H7zm0-4h10V7H7zm15\n 14q-2.075 0-3.537-1.462Q13 20.074 13 18q0-2.075 1.463-3.537Q15.926 13\n 18 13q2.075 0 3.538 1.463T23 18t-1.462 3.538Q20.074 23 18 23`}\n ></path>\n </Icon>\n);\n","import React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const DownloadIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path d=\"M19 9h-4V3H9v6H5l7 7 7-7zm-8 2V5h2v6h1.17L12 13.17 9.83 11H11zm-6 7h14v2H5z\"></path>\n </Icon>\n);\n","import React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const VisibilityIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path\n d={`M12 6.375C15.75 6.375 18.9525 8.7075 20.25 12C18.9525 15.2925 15.75 17.625 12 17.625C8.25\n 17.625 5.0475 15.2925 3.75 12C5.0475 8.7075 8.25 6.375 12 6.375ZM12 7.875C9.15755 7.87505\n 6.62225 9.47254 5.38477 12C6.62225 14.52746 9.15755 16.12495 12 16.125C14.8425\n 16.125 17.3777 14.5275 18.6152 12C17.3777 9.4725 14.8425 7.875 12 7.875ZM12\n 8.625C13.86 8.625 15.375 10.14 15.375 12C15.375 13.86 13.86 15.375 12 15.375C10.14 15.375\n 8.625 13.86 8.625 12C8.625 10.14 10.14 8.625 12 8.625ZM12 10.125C10.965 10.125 10.125 10.965\n 10.125 12C10.125 13.035 10.965 13.875 12 13.875C13.035 13.875 13.875 13.035\n 13.875 12C13.875 10.965 13.035 10.125 12 10.125Z`}\n />\n </Icon>\n);\n","import React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const PointIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path\n d={\n 'M12 8C9.79086 8 8 9.79086 8 12C8 14.2091 9.79086 16 12 ' +\n '16C14.2091 16 16 14.2091 16 12C16 9.79086 14.2091 8 12 8V8Z'\n }\n />\n </Icon>\n);\n","import React from 'react';\n\nimport { Icon, IconProps } from './Icon';\n\nexport const SaveIcon: React.FC<IconProps> = (props) => (\n <Icon {...props}>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d={\n 'M5 3H17L21 7V19C21 20.1 20.1 21 19 21H5C3.89 21 3 20.1 3 19V5C3 3.9 3.89 3 5 3ZM19' +\n ' 19V7.83L16.17 5H5V19H19ZM12 12C10.34 12 9 13.34 9 15C9 16.66 10.34 18 12 18C13.66' +\n ' 18 15 16.66 15 15C15 13.34 13.66 12 12 12ZM15 6H6V10H15V6Z'\n }\n />\n </Icon>\n);\n","import { useContext } from 'react';\n\nimport { ArrowDropDownIcon, ArrowDropUpIcon } from '@icons/index';\n\nimport { PopoverContext } from '../PopoverProvider/constants/PopoverContext';\n\nexport function Arrow() {\n const popoverContext = useContext(PopoverContext);\n\n return popoverContext?.open ? <ArrowDropUpIcon /> : <ArrowDropDownIcon />;\n}\n","import classNames from 'classnames';\nimport { HTMLAttributes, PropsWithChildren, forwardRef } from 'react';\n\nimport { UiProps } from '@models/UiProps';\n\nimport * as styles from './buttonsGroup.module.css';\n\ninterface Props {\n fillEvenly?: boolean;\n}\n\nexport const ButtonsGroup = forwardRef<\n HTMLDivElement,\n PropsWithChildren<UiProps<Props>> & HTMLAttributes<HTMLDivElement>\n>(function ButtonsGroup({ children, fillEvenly, classes, className, ...rest }, ref) {\n return (\n <div\n ref={ref}\n className={classNames(styles.root, fillEvenly && styles.fillEvenly, className, classes?.root)}\n {...rest}\n >\n {children}\n </div>\n );\n});\n","// extracted by mini-css-extract-plugin\nvar _1 = \"buttonsGroup-module__fill-evenly__nNjz0\";\nvar _2 = \"buttonsGroup-module__root__ajMji\";\nexport { _1 as \"fillEvenly\", _2 as \"root\" }\n","// extracted by mini-css-extract-plugin\nvar _1 = \"menu-module__divider__kik9c\";\nvar _2 = \"menu-module__extraLarge__RIQUR\";\nvar _3 = \"menu-module__item__DO2AJ\";\nvar _4 = \"menu-module__item-actions__ecU8y\";\nvar _5 = \"menu-module__item-description__BxxnF\";\nvar _6 = \"menu-module__item-disabled__E7Z4s\";\nvar _7 = \"menu-module__item-icon___HDe4\";\nvar _8 = \"menu-module__item-selected__m9VFe\";\nvar _9 = \"menu-module__item-text-block__zgpGT\";\nvar _a = \"menu-module__item-title__gcK7P\";\nvar _b = \"menu-module__item-title-top__PSYWj\";\nvar _c = \"menu-module__large__jYm_Q\";\nvar _d = \"menu-module__medium__Jev6c\";\nvar _e = \"menu-module__root__pR_5h\";\nvar _f = \"menu-module__small__uGqFV\";\nvar _10 = \"menu-module__state-layer__m8uMf\";\nexport { _1 as \"divider\", _2 as \"extraLarge\", _3 as \"item\", _4 as \"itemActions\", _5 as \"itemDescription\", _6 as \"itemDisabled\", _7 as \"itemIcon\", _8 as \"itemSelected\", _9 as \"itemTextBlock\", _a as \"itemTitle\", _b as \"itemTitleTop\", _c as \"large\", _d as \"medium\", _e as \"root\", _f as \"small\", _10 as \"stateLayer\" }\n","import classnames from 'classnames';\nimport { HTMLAttributes, MouseEvent, forwardRef, useCallback } from 'react';\n\nimport { Button } from '@components/inputs/Button';\nimport { ButtonsGroup } from '@components/inputs/ButtonsGroup';\nimport { FieldSize } from '@models/FieldSize';\nimport { UiProps } from '@models/UiProps';\n\nimport * as styles from './menu.module.css';\nimport { Divider } from './models/Divider';\nimport { Item } from './models/Item';\n\ntype DescriptionPosition = 'right' | 'bottom';\n\ninterface Props {\n items: (Item | Divider)[];\n componentSize?: FieldSize;\n descriptionPosition?: DescriptionPosition;\n}\n\nexport const Menu = forwardRef<HTMLDivElement, UiProps<Props> & HTMLAttributes<HTMLDivElement>>(function Menu(\n { items, componentSize = 'medium', descriptionPosition = 'right', classes, className, ...rest },\n ref,\n) {\n const handleClick = useCallback(\n (item: Item) => (e: MouseEvent<HTMLButtonElement | HTMLDivElement>) => {\n item?.onClick?.();\n e.currentTarget.blur();\n },\n [],\n );\n\n return (\n <div\n ref={ref}\n className={classnames(styles.root, styles[componentSize as keyof typeof styles], className, classes?.root)}\n {...rest}\n >\n {' '}\n {items.map((item, index) => {\n const Component = item.type === 'item' && item.subButtons?.length ? 'div' : 'button';\n return item.type === 'item' ? (\n <Component\n tabIndex={-10}\n key={`menu-item-${item.name}-${index}`}\n className={classnames(\n styles.item,\n item.selected ? styles.itemSelected : undefined,\n item.disabled ? styles.itemDisabled : undefined,\n classes?.item,\n item.selected ? classes?.itemSelected : undefined,\n item.disabled ? classes?.itemDisabled : undefined,\n )}\n onClick={!item.disabled ? handleClick(item) : undefined}\n title={item.name}\n >\n <span className={classnames(styles.stateLayer)}>\n {!!item.icon && (\n <span\n className={classnames(\n styles.itemIcon,\n classes?.itemIcon,\n item.selected ? classes?.itemSelectedIcon : undefined,\n item.disabled ? classes?.itemDisabledIcon : undefined,\n )}\n >\n {item.icon}\n </span>\n )}\n {descriptionPosition === 'bottom' && !!item.description ? (\n <span className={classnames(styles.itemTextBlock)}>\n <span\n className={classnames(\n styles.itemTitleTop,\n styles.itemTitle,\n classes?.itemTitle,\n item.selected ? classes?.itemSelectedTitle : undefined,\n item.disabled ? classes?.itemDisabledTitle : undefined,\n )}\n >\n {item.name}\n </span>\n <span\n className={classnames(\n styles.itemDescription,\n classes?.itemDescription,\n item.selected ? classes?.itemSelectedDescription : undefined,\n item.disabled ? classes?.itemDisabledDescription : undefined,\n )}\n >\n {item.description}\n </span>\n </span>\n ) : (\n <>\n <span\n className={classnames(\n styles.itemTitle,\n classes?.itemTitle,\n item.selected ? classes?.itemSelectedTitle : undefined,\n item.disabled ? classes?.itemDisabledTitle : undefined,\n )}\n >\n {item.name}\n </span>\n {!!item.description && (\n <span\n className={classnames(\n styles.itemDescription,\n classes?.itemDescription,\n item.selected ? classes?.itemSelectedDescription : undefined,\n item.disabled ? classes?.itemDisabledDescription : undefined,\n )}\n >\n {item.description}\n </span>\n )}\n </>\n )}\n {!!item.subButtons?.length && (\n <div\n className={classnames(\n styles.itemActions,\n classes?.itemActions,\n item.selected ? classes?.itemSelectedActions : undefined,\n item.disabled ? classes?.itemDisabledActions : undefined,\n )}\n >\n <ButtonsGroup>\n {item.subButtons.map((sb, sbIndex) => (\n <Button\n key={`subButton-${sbIndex}`}\n variant={sb.variant}\n componentSize={componentSize}\n textSecondary={sb.textSecondary}\n isActive={sb.isActive}\n icon={sb.icon}\n onClick={(e) => {\n e.stopPropagation();\n sb.onClick?.();\n }}\n />\n ))}\n </ButtonsGroup>\n </div>\n )}\n </span>\n </Component>\n ) : (\n <div key={`menu-divider-${item.name}-${index}`} className={classnames(styles.divider, classes?.divider)}>\n {item.name}\n </div>\n );\n })}\n </div>\n );\n});\n","import { useContext } from 'react';\n\nimport { FieldSize } from '@components/inputs/FieldShell';\nimport { Menu } from '@components/navigation/Menu';\nimport { Divider as MenuDivider } from '@components/navigation/Menu/models/Divider';\nimport { Item as MenuItem } from '@components/navigation/Menu/models/Item';\nimport { PopoverContext } from '@components/utils/Popover/ui/PopoverProvider/constants/PopoverContext';\nimport { PropsObject, UiProps } from '@models/UiProps';\n\nimport { Divider } from '../../models/Divider';\nimport { Item, MaybeItem } from '../../models/Item';\n\ninterface Props {\n items: (Item | Divider)[];\n componentSize?: FieldSize;\n selectedValue?: string;\n changeSelectedItem: (item: MaybeItem) => void;\n}\n\nexport function SelectPopover(props: UiProps<Props>) {\n const { items, componentSize, selectedValue, changeSelectedItem, classes } = props;\n\n const popoverContext = useContext(PopoverContext);\n\n return (\n <Menu\n componentSize={componentSize}\n classes={classes?.menu as PropsObject | undefined}\n items={items.map((i) =>\n i.type === 'divider'\n ? ({ type: 'divider', name: i.name } as MenuDivider)\n : ({\n type: 'item',\n name: i.name,\n icon: i.icon,\n description: i.description,\n disabled: i.disabled,\n selected: i.value === selectedValue,\n onClick: () => {\n changeSelectedItem(i);\n if (popoverContext) {\n popoverContext.setOpen(false);\n }\n },\n } as MenuItem),\n )}\n />\n );\n}\n","import classnames from 'classnames';\nimport {\n DetailedHTMLProps,\n InputHTMLAttributes,\n MouseEvent,\n ReactNode,\n forwardRef,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport { mergeRefs } from 'react-merge-refs';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { FieldError, FieldErrorIcon, FieldShell, FieldSize, FieldVariant } from '@components/inputs/FieldShell';\nimport * as fieldStyles from '@components/inputs/FieldShell/fieldShell.module.css';\nimport { InputChip } from '@components/inputs/InputChip';\nimport { Popover } from '@components/utils/Popover';\nimport { Arrow } from '@components/utils/Popover/ui/Arrow';\nimport { PropsObject, UiProps } from '@models/UiProps';\n\nimport { Divider } from './models/Divider';\nimport { Item, MaybeItem } from './models/Item';\nimport * as styles from './select.module.css';\nimport { SelectPopover } from './ui/SelectPopover';\n\ninterface Props {\n variant?: FieldVariant;\n componentSize?: FieldSize;\n icon?: ReactNode;\n fullWidth?: boolean;\n label?: string;\n error?: FieldError;\n placeholder?: string;\n items: (Item | Divider)[];\n onValueChange?: (newItem: MaybeItem) => void;\n selected?: MaybeItem;\n chips?: boolean;\n}\n\nexport const Select = forwardRef<\n HTMLInputElement,\n UiProps<Props> & DetailedHTMLProps<InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>\n>(function Select(props, ref) {\n const {\n variant = 'filled',\n componentSize = 'medium',\n icon,\n fullWidth,\n label,\n error,\n placeholder,\n items,\n defaultValue,\n onValueChange,\n selected,\n chips,\n classes,\n disabled,\n id,\n ...inputProps\n } = props;\n\n const isLocalState = defaultValue && !selected;\n\n const [localSelectedItem, setlocalSelectedItem] = useState<MaybeItem>(\n isLocalState ? (items.find((i) => i.type === 'item' && i.value === defaultValue) as MaybeItem) : undefined,\n );\n\n const selectedItem = isLocalState ? localSelectedItem : selected;\n\n const inputRef = useRef<HTMLInputElement>(null);\n const popoverTargetRef = useRef<HTMLDivElement>(null);\n\n const inputClickHandler = useCallback(\n (e: MouseEvent) => {\n e.preventDefault();\n if (!disabled) popoverTargetRef?.current?.click();\n },\n [popoverTargetRef],\n );\n\n const changeSelectedItem = (item: MaybeItem) => {\n if (isLocalState) setlocalSelectedItem(item);\n onValueChange?.(item);\n };\n\n useEffect(() => {\n if (selectedItem) {\n const current = items.find((i) => i.type === 'item' && i.value === selectedItem?.value) as MaybeItem;\n if (!current) changeSelectedItem(current);\n }\n }, [items, selectedItem]);\n\n const inputId = id ?? uuidv4();\n const showErrorIcon = !!error && !label;\n\n return (\n <FieldShell\n variant={variant}\n componentSize={componentSize}\n fullWidth={fullWidth}\n label={label}\n error={error}\n inputId={inputId}\n onLabelClick={inputClickHandler}\n hasStartIcon={!!icon || !!selectedItem?.icon}\n hasArrow\n hasErrorIcon={showErrorIcon}\n chipsMode={chips && !!selectedItem}\n classes={{\n ...(classes as PropsObject | undefined),\n wrapper: classnames(\n icon ? styles.withIcon : undefined,\n selectedItem?.icon ? styles.withItemIcon : undefined,\n classes?.wrapper,\n ),\n }}\n >\n <input\n ref={mergeRefs([inputRef, ref])}\n id={inputId}\n className={classnames(fieldStyles.input, styles.input, classes?.input)}\n placeholder={chips && selectedItem ? undefined : placeholder}\n {...inputProps}\n value={chips ? '' : (selectedItem?.name ?? '')}\n onChange={() => {}}\n onClick={inputClickHandler}\n disabled={disabled}\n />\n {chips && !!selectedItem && (\n <span className={classnames(fieldStyles.chips, classes?.chips)}>\n <InputChip\n componentSize={componentSize}\n disabled={disabled}\n onClick={() => popoverTargetRef?.current?.click()}\n onRemove={() => changeSelectedItem(undefined)}\n >\n {selectedItem.name}\n </InputChip>\n </span>\n )}\n {!!icon && (\n <span onClick={inputClickHandler} className={classnames(styles.icon, classes?.icon)}>\n {icon}\n </span>\n )}\n {!!selectedItem?.icon && (\n <span onClick={inputClickHandler} className={classnames(styles.itemIcon, classes?.itemIcon)}>\n {selectedItem?.icon}\n </span>\n )}\n <span onClick={inputClickHandler} className={classnames(fieldStyles.arrow, classes?.arrow)}>\n <Arrow />\n </span>\n {showErrorIcon && error && (\n <FieldErrorIcon error={error} componentSize={componentSize} className={classes?.errorIcon} />\n )}\n <Popover\n placement=\"bottom-start\"\n classes={{\n content: classnames(styles.popoverContent, 'styledScroll', classes?.popoverContent),\n ...(classes?.popover as PropsObject | undefined),\n }}\n containerOffset={4}\n description={\n <SelectPopover\n items={items}\n classes={classes}\n componentSize={componentSize}\n selectedValue={selectedItem?.value}\n changeSelectedItem={changeSelectedItem}\n />\n }\n >\n <div ref={popoverTargetRef} className={classnames(styles.popoverTarget)} />\n </Popover>\n </FieldShell>\n );\n});\n","// extracted by mini-css-extract-plugin\nvar _1 = \"select-module__icon___B0Xg\";\nvar _2 = \"select-module__input__wOpYo\";\nvar _3 = \"select-module__item-icon__yL747\";\nvar _4 = \"select-module__popover-content__mnDVQ\";\nvar _5 = \"select-module__popover-target__sZm8R\";\nvar _6 = \"select-module__with-icon__fSXNX\";\nvar _7 = \"select-module__with-item-icon__DQCJ6\";\nexport { _1 as \"icon\", _2 as \"input\", _3 as \"itemIcon\", _4 as \"popoverContent\", _5 as \"popoverTarget\", _6 as \"withIcon\", _7 as \"withItemIcon\" }\n","// extracted by mini-css-extract-plugin\nvar _1 = \"calendarPopover-module__button__OeuOB\";\nvar _2 = \"calendarPopover-module__buttons-container__AfhIW\";\nvar _3 = \"calendarPopover-module__calendar-container__oaYLG\";\nvar _4 = \"calendarPopover-module__cell__SRzca\";\nvar _5 = \"calendarPopover-module__cell-circle__g39W8\";\nvar _6 = \"calendarPopover-module__cell-data__JaucX\";\nvar _7 = \"calendarPopover-module__cell-selection__HAjxx\";\nvar _8 = \"calendarPopover-module__cell-selection-first__HX9vJ\";\nvar _9 = \"calendarPopover-module__cell-selection-last__fKUk_\";\nvar _a = \"calendarPopover-module__cells-container__FRgCG\";\nvar _b = \"calendarPopover-module__date-time-mode__VMAyh\";\nvar _c = \"calendarPopover-module__medium__z28wH\";\nvar _d = \"calendarPopover-module__month__PliR3\";\nvar _e = \"calendarPopover-module__month-cell-selection__qFg7g\";\nvar _f = \"calendarPopover-module__month-cell-selection-first__sP5vu\";\nvar _10 = \"calendarPopover-module__month-cell-selection-last__qmLPc\";\nvar _11 = \"calendarPopover-module__month-view__Lhg3K\";\nvar _12 = \"calendarPopover-module__navigation-arrow__Iq9ex\";\nvar _13 = \"calendarPopover-module__navigation-container__MnZVh\";\nvar _14 = \"calendarPopover-module__navigation-title__U0go2\";\nvar _15 = \"calendarPopover-module__navigation-value__abf_Q\";\nvar _16 = \"calendarPopover-module__root__WSPPf\";\nvar _17 = \"calendarPopover-module__small__vty_X\";\nvar _18 = \"calendarPopover-module__time-container___TvPa\";\nvar _19 = \"calendarPopover-module__time-divider__xebBR\";\nvar _1a = \"calendarPopover-module__time-selection-marker__WznxQ\";\nvar _1b = \"calendarPopover-module__year__DgFQi\";\nexport { _1 as \"button\", _2 as \"buttonsContainer\", _3 as \"calendarContainer\", _4 as \"cell\", _5 as \"cellCircle\", _6 as \"cellData\", _7 as \"cellSelection\", _8 as \"cellSelectionFirst\", _9 as \"cellSelectionLast\", _a as \"cellsContainer\", _b as \"dateTimeMode\", _c as \"medium\", _d as \"month\", _e as \"monthCellSelection\", _f as \"monthCellSelectionFirst\", _10 as \"monthCellSelectionLast\", _11 as \"monthView\", _12 as \"navigationArrow\", _13 as \"navigationContainer\", _14 as \"navigationTitle\", _15 as \"navigationValue\", _16 as \"root\", _17 as \"small\", _18 as \"timeContainer\", _19 as \"timeDivider\", _1a as \"timeSelectionMarker\", _1b as \"year\" }\n","import { DayjsFactory, DayjsInstance } from '../models/dayjs';\n\nexport const createCalendarDate = (\n dayjs: DayjsFactory,\n year: number,\n month: number,\n day = 1,\n useUtc = false,\n): DayjsInstance => {\n if (useUtc) {\n return dayjs(Date.UTC(year, month, day));\n }\n\n return dayjs(new Date(year, month, day));\n};\n","import classNames from 'classnames';\nimport { useCallback, useEffect, useMemo, useRef } from 'react';\n\nimport { Typography } from '@components/data-display/Typography';\n\nimport * as styles from './timeWheelColumn.module.css';\n\nconst TIME_ITEM_HEIGHT = 36;\nconst TIME_CYCLE_REPEAT = 3;\n\ninterface Props {\n values: number[];\n selectedValue: number;\n onSelect: (value: number) => void;\n}\n\nexport function TimeWheelColumn(props: Props) {\n const { values, selectedValue, onSelect } = props;\n const valuesLength = values.length;\n const centerPosition = (valuesLength + selectedValue) * TIME_ITEM_HEIGHT;\n\n const containerRef = useRef<HTMLDivElement>(null);\n\n const cycledValues = useMemo(() => {\n const repeatedValues: number[] = [];\n for (let i = 0; i < TIME_CYCLE_REPEAT; i += 1) {\n repeatedValues.push(...values);\n }\n return repeatedValues;\n }, [values]);\n\n useEffect(() => {\n const container = containerRef.current;\n if (!container) {\n return;\n }\n\n if (Math.abs(container.scrollTop - centerPosition) <= 1) {\n return;\n }\n\n container.scrollTop = centerPosition;\n }, [centerPosition]);\n\n const normalizeValue = useCallback(\n (index: number) => {\n const normalizedIndex = ((index % valuesLength) + valuesLength) % valuesLength;\n return values[normalizedIndex];\n },\n [values, valuesLength],\n );\n\n const handleScroll = useCallback(() => {\n const container = containerRef.current;\n if (!container) {\n return;\n }\n\n const nearestIndex = Math.round(container.scrollTop / TIME_ITEM_HEIGHT);\n const nextValue = normalizeValue(nearestIndex);\n\n if (nextValue !== selectedValue) {\n onSelect(nextValue);\n }\n\n if (nearestIndex < valuesLength || nearestIndex >= valuesLength * 2) {\n container.scrollTop = (valuesLength + nextValue) * TIME_ITEM_HEIGHT;\n }\n }, [normalizeValue, onSelect, selectedValue, valuesLength]);\n\n const scrollToValue = useCallback(\n (value: number) => () => {\n const container = containerRef.current;\n if (!container) {\n onSelect(value);\n return;\n }\n\n container.scrollTo({\n top: (valuesLength + value) * TIME_ITEM_HEIGHT,\n behavior: 'smooth',\n });\n onSelect(value);\n },\n [onSelect, valuesLength],\n );\n\n return (\n <div ref={containerRef} className={classNames(styles.timeWheel)} onScroll={handleScroll} tabIndex={-1}>\n {cycledValues.map((value, index) => (\n <button\n key={`time-item-${value}-${index}`}\n type=\"button\"\n className={classNames(\n styles.timeWheelButton,\n styles.timeWheelItem,\n value === selectedValue && styles.timeWheelItemActive,\n )}\n onClick={scrollToValue(value)}\n >\n <Typography variant=\"subtitle1\">{`${value}`.padStart(2, '0')}</Typography>\n </button>\n ))}\n </div>\n );\n}\n","// extracted by mini-css-extract-plugin\nvar _1 = \"timeWheelColumn-module__time-wheel__fZDBM\";\nvar _2 = \"timeWheelColumn-module__time-wheel-button__XHOTH\";\nvar _3 = \"timeWheelColumn-module__time-wheel-item__YAUHz\";\nvar _4 = \"timeWheelColumn-module__time-wheel-item-active__fHOGJ\";\nexport { _1 as \"timeWheel\", _2 as \"timeWheelButton\", _3 as \"timeWheelItem\", _4 as \"timeWheelItemActive\" }\n","import classNames from 'classnames';\nimport defaultDayjs from 'dayjs';\nimport { MouseEvent, useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { Typography } from '@components/data-display/Typography';\nimport { Button } from '@components/inputs/Button';\nimport { ButtonsGroup } from '@components/inputs/ButtonsGroup';\nimport { ChevronLeftIcon } from '@icons/ChevronLeftIcon';\nimport { ChevronRightIcon } from '@icons/ChevronRightIcon';\nimport { ChipSize } from '@models/ChipSize';\nimport { UiProps } from '@models/UiProps';\n\nimport * as styles from './calendarPopover.module.css';\nimport type { DayjsFactory, DayjsInstance } from '../../models/dayjs';\nimport { createCalendarDate } from '../../utils/createCalendarDate';\nimport { TimeWheelColumn } from '../TimeWheelColumn';\n\ntype ViewType = 'month' | 'year' | 'yearsRange';\ntype ValueType = 'date' | 'year' | 'dateTime';\n\ninterface Props {\n dayjs?: DayjsFactory;\n componentSize: ChipSize;\n isPeriod?: boolean;\n valueType?: ValueType;\n initStartDate?: string;\n initEndDate?: string;\n changeDates: (newStartDate?: string, newEndDate?: string) => void;\n onClear?: () => void;\n useUtc?: boolean;\n}\n\nexport function CalendarPopover(props: UiProps<Props>) {\n const {\n dayjs: dayjsFromProps,\n componentSize,\n isPeriod = true,\n valueType = 'date',\n initStartDate,\n initEndDate,\n changeDates,\n onClear,\n useUtc = false,\n classes,\n } = props;\n\n const dayjs: DayjsFactory = dayjsFromProps ?? (defaultDayjs as DayjsFactory);\n const isDateTimeSingle = valueType === 'dateTime' && !isPeriod;\n\n const [viewType, setViewType] = useState<ViewType>(valueType === 'year' ? 'yearsRange' : 'month');\n const [currentItem, setCurrentItem] = useState<{ year: number; month: number }>(() => {\n if (initStartDate) {\n const initial = dayjs(initStartDate);\n\n return { year: initial.year(), month: initial.month() };\n }\n\n const now = dayjs();\n\n return { year: now.year(), month: now.month() };\n });\n const [startDate, setStartDate] = useState(\n initStartDate\n ? isDateTimeSingle\n ? dayjs(initStartDate).second(0).millisecond(0).valueOf()\n : dayjs(initStartDate).startOf('D').valueOf()\n : undefined,\n );\n const [endDate, setEndDate] = useState(initEndDate ? dayjs(initEndDate).startOf('D').valueOf() : undefined);\n const [selectedHour, setSelectedHour] = useState(isDateTimeSingle && initStartDate ? dayjs(initStartDate).hour() : 0);\n const [selectedMinute, setSelectedMinute] = useState(\n isDateTimeSingle && initStartDate ? dayjs(initStartDate).minute() : 0,\n );\n\n const hours = useMemo(() => [...Array(24)].map((__, index) => index), []);\n const minutes = useMemo(() => [...Array(60)].map((__, index) => index), []);\n\n const startDateDay = useMemo(\n () => (startDate ? dayjs(startDate).startOf('D').valueOf() : undefined),\n [startDate, dayjs],\n );\n const endDateDay = useMemo(() => (endDate ? dayjs(endDate).startOf('D').valueOf() : undefined), [endDate, dayjs]);\n\n const startDateMonth = useMemo(\n () => (startDateDay ? dayjs(startDateDay).startOf('M').valueOf() : undefined),\n [startDateDay, dayjs],\n );\n const endDateMonth = useMemo(\n () => (endDateDay ? dayjs(endDateDay).startOf('M').valueOf() : undefined),\n [endDateDay, dayjs],\n );\n const startYear = useMemo(() => (startDateDay ? dayjs(startDateDay).year() : undefined), [startDateDay, dayjs]);\n const endYear = useMemo(() => (endDateDay ? dayjs(endDateDay).year() : undefined), [endDateDay, dayjs]);\n\n const currentDate = useMemo(\n () =>\n createCalendarDate(dayjs, currentItem.year, currentItem.month, 1, useUtc).startOf(\n viewType === 'month' ? 'M' : 'y',\n ),\n [currentItem, viewType, dayjs, useUtc],\n );\n\n const daysInMonth = currentDate.daysInMonth();\n const firstDayOfWeek = currentDate.startOf('M').day();\n\n let emptyCellsCount = firstDayOfWeek - 1;\n if (emptyCellsCount < 0) {\n emptyCellsCount = 6;\n }\n\n useEffect(() => {\n if (!startDate && !endDate) {\n onClear?.();\n changeDates();\n return;\n }\n\n if (valueType === 'year') {\n if (!isPeriod && startDate) {\n changeDates(dayjs(startDate).format('YYYY'));\n return;\n }\n\n if (isPeriod && startDate && endDate) {\n changeDates(dayjs(startDate).format('YYYY'), dayjs(endDate).format('YYYY'));\n return;\n }\n\n return;\n }\n\n if (isDateTimeSingle && startDate) {\n changeDates(dayjs(startDate).second(0).millisecond(0).format());\n return;\n }\n\n if (!isPeriod && startDate) {\n changeDates(dayjs(startDate).format());\n return;\n }\n\n if (isPeriod && startDate && endDate) {\n changeDates(dayjs(startDate).format(), dayjs(endDate).format());\n }\n }, [startDate, endDate, isPeriod, valueType, isDateTimeSingle, dayjs, changeDates, onClear]);\n\n const applyTimeToDate = useCallback(\n (dateValue: number, hour: number, minute: number) =>\n dayjs(dateValue).startOf('D').hour(hour).minute(minute).second(0).millisecond(0).valueOf(),\n [dayjs],\n );\n\n useEffect(() => {\n if (!isDateTimeSingle || !startDate) {\n return;\n }\n\n const nextDate = applyTimeToDate(startDate, selectedHour, selectedMinute);\n if (nextDate !== startDate) {\n setStartDate(nextDate);\n }\n }, [isDateTimeSingle, startDate, selectedHour, selectedMinute, applyTimeToDate]);\n\n const changeCurrentItem = useCallback(\n (count: number) => () => {\n const baseDate = createCalendarDate(dayjs, currentItem.year, currentItem.month, 1, useUtc);\n const step = viewType === 'yearsRange' ? count * 20 : count;\n const unit = viewType === 'month' ? 'month' : 'year';\n const tempDate = baseDate.add(step, unit);\n\n setCurrentItem({\n month: tempDate.month(),\n year: tempDate.year(),\n });\n },\n [viewType, currentItem, dayjs, useUtc],\n );\n\n const changeViewType = useCallback(() => {\n if (valueType === 'year') {\n return;\n }\n\n if (viewType === 'month') {\n setViewType('year');\n } else if (viewType === 'year') {\n setViewType('yearsRange');\n } else {\n setViewType('month');\n }\n }, [viewType, valueType]);\n\n const openMonthView = useCallback(\n (date: DayjsInstance) => () => {\n setCurrentItem({ month: date.month(), year: date.year() });\n setViewType('month');\n },\n [],\n );\n\n const setYear = useCallback(\n (cellYear: number) => () => {\n const cellDate = createCalendarDate(dayjs, cellYear, 0, 1, useUtc).startOf('y').valueOf();\n\n if (!isPeriod) {\n if (isDateTimeSingle && startDateDay === cellDate) {\n setStartDate(undefined);\n } else if (!isDateTimeSingle && startDate === cellDate) {\n setStartDate(undefined);\n } else {\n setStartDate(isDateTimeSingle ? applyTimeToDate(cellDate, selectedHour, selectedMinute) : cellDate);\n }\n setEndDate(undefined);\n return;\n }\n\n if (startDate && endDate) {\n if (cellDate === startDate) {\n setStartDate(undefined);\n } else if (cellDate === endDate) {\n setEndDate(undefined);\n } else {\n setStartDate(cellDate);\n setEndDate(undefined);\n }\n } else if (startDate) {\n if (cellDate === startDate) {\n setStartDate(undefined);\n } else if (cellDate < startDate) {\n setEndDate(startDate);\n setStartDate(cellDate);\n } else {\n setEndDate(cellDate);\n }\n } else if (endDate) {\n if (cellDate === endDate) {\n setEndDate(undefined);\n } else if (cellDate < endDate) {\n setStartDate(cellDate);\n } else {\n setStartDate(endDate);\n setEndDate(cellDate);\n }\n } else {\n setStartDate(cellDate);\n }\n },\n [\n applyTimeToDate,\n endDate,\n isDateTimeSingle,\n isPeriod,\n selectedHour,\n selectedMinute,\n startDate,\n startDateDay,\n dayjs,\n useUtc,\n ],\n );\n\n const yearsRangeStart = useMemo(() => {\n const year = currentDate.year();\n return Math.floor(year / 20) * 20;\n }, [currentDate]);\n\n const setDate = useCallback(\n (cellDate: number) => () => {\n if (!isPeriod) {\n if (startDate === cellDate) {\n setStartDate(undefined);\n } else {\n setStartDate(cellDate);\n }\n setEndDate(undefined);\n return;\n }\n\n if (startDate && endDate) {\n if (cellDate === startDate) {\n setStartDate(undefined);\n } else if (cellDate === endDate) {\n setEndDate(undefined);\n } else {\n setStartDate(cellDate);\n setEndDate(undefined);\n }\n } else if (startDate) {\n if (cellDate === startDate) {\n setStartDate(undefined);\n } else if (cellDate < startDate) {\n setEndDate(startDate);\n setStartDate(cellDate);\n } else {\n setEndDate(cellDate);\n }\n } else if (endDate) {\n if (cellDate === endDate) {\n setEndDate(undefined);\n } else if (cellDate < endDate) {\n setStartDate(cellDate);\n } else {\n setStartDate(endDate);\n setEndDate(cellDate);\n }\n } else {\n setStartDate(cellDate);\n }\n },\n [startDate, endDate, isPeriod],\n );\n\n const reset = useCallback(\n (e: MouseEvent<HTMLButtonElement>) => {\n setStartDate(undefined);\n setEndDate(undefined);\n if (isDateTimeSingle) {\n setSelectedHour(0);\n setSelectedMinute(0);\n }\n e.currentTarget.blur();\n },\n [isDateTimeSingle],\n );\n\n const today = useCallback(\n (e: MouseEvent<HTMLButtonElement>) => {\n const now = dayjs();\n\n setCurrentItem({\n year: now.year(),\n month: now.month(),\n });\n e.currentTarget.blur();\n },\n [dayjs],\n );\n\n return (\n <div\n className={classNames(\n styles.root,\n styles[componentSize as keyof typeof styles],\n isDateTimeSingle && styles.dateTimeMode,\n classes?.root,\n )}\n >\n <div className={classNames(styles.calendarContainer, viewType === 'month' && styles.monthView)}>\n <div className={classNames(styles.buttonsContainer, classes?.buttonsContainer)}>\n <ButtonsGroup fillEvenly>\n <Button componentSize=\"small\" variant=\"text\" textSecondary tabIndex={-1} onClick={reset}>\n Сбросить\n </Button>\n {valueType !== 'year' && (\n <Button componentSize=\"small\" variant=\"text\" textSecondary tabIndex={-1} onClick={today}>\n Сегодня\n </Button>\n )}\n </ButtonsGroup>\n </div>\n <div className={classNames(styles.navigationContainer, classes?.navigationContainer)}>\n <button\n type=\"button\"\n className={classNames(styles.button, styles.navigationArrow, classes?.navigationArrow)}\n onClick={changeCurrentItem(-1)}\n aria-label=\"Предыдущий период\"\n >\n <ChevronLeftIcon />\n </button>\n <button\n type=\"button\"\n className={classNames(styles.button, styles.navigationValue, classes?.navigationValue)}\n onClick={changeViewType}\n >\n <Typography variant=\"subtitle1\" className={classNames(styles.navigationTitle, classes?.navigationTitle)}>\n {viewType === 'month' && currentDate.format('MMMM YYYY')}\n {viewType === 'year' && currentDate.format('YYYY')}\n {viewType === 'yearsRange' && `${yearsRangeStart} - ${yearsRangeStart + 19}`}\n </Typography>\n </button>\n <button\n type=\"button\"\n className={classNames(styles.button, styles.navigationArrow, classes?.navigationArrow)}\n onClick={changeCurrentItem(1)}\n aria-label=\"Следующий период\"\n >\n <ChevronRightIcon />\n </button>\n </div>\n <div className={classNames(styles.cellsContainer, classes?.cellsContainer)}>\n {viewType === 'yearsRange' && (\n <>\n {[...Array(20)].map((__, index) => {\n const cellYear = yearsRangeStart + index;\n\n const handleClick =\n valueType === 'year'\n ? setYear(cellYear)\n : () => {\n setCurrentItem({ month: 0, year: cellYear });\n setViewType('year');\n };\n\n const showCircle = valueType === 'year';\n const isCircleActive =\n showCircle && startYear !== undefined && (cellYear === startYear || cellYear === endYear);\n\n let isYearInRange = false;\n let isFirstInRange = false;\n let isLastInRange = false;\n\n if (startYear !== undefined) {\n if (!isPeriod) {\n if (valueType !== 'year' && cellYear === startYear) {\n isYearInRange = true;\n }\n } else if (endYear !== undefined) {\n if (startYear === endYear) {\n if (cellYear === startYear) {\n isYearInRange = true;\n }\n } else if (cellYear >= startYear && cellYear <= endYear) {\n isYearInRange = true;\n if (cellYear === startYear) {\n isFirstInRange = true;\n } else if (cellYear === endYear) {\n isLastInRange = true;\n }\n }\n }\n }\n\n return (\n <button\n type=\"button\"\n key={`cell-year-${cellYear}`}\n className={classNames(styles.button, styles.cell, styles.year, classes?.cell, classes?.year)}\n onClick={handleClick}\n >\n {isCircleActive && <span className={classNames(styles.cellCircle, classes?.cellCircle)} />}\n {isYearInRange && (\n <span\n className={classNames(\n styles.cellSelection,\n classes?.cellSelection,\n isFirstInRange && styles.cellSelectionFirst,\n isFirstInRange && classes?.cellSelectionFirst,\n isLastInRange && styles.cellSelectionLast,\n isLastInRange && classes?.cellSelectionLast,\n )}\n />\n )}\n <Typography variant=\"subtitle1\" className={classNames(styles.cellData, classes?.cellData)}>\n {cellYear}\n </Typography>\n </button>\n );\n })}\n </>\n )}\n\n {viewType === 'year' && (\n <>\n {[...Array(12)].map((__, index) => {\n const cellDate = currentDate.add(index, 'M');\n const cellDateValue = cellDate.valueOf();\n\n const isMonthSelected = isPeriod\n ? startDateMonth !== undefined &&\n endDateMonth !== undefined &&\n cellDateValue >= startDateMonth &&\n cellDateValue <= endDateMonth\n : startDateMonth !== undefined && cellDateValue === startDateMonth;\n\n let isMonthInRange = false;\n let isFirstMonthInRange = false;\n let isLastMonthInRange = false;\n\n if (isPeriod && valueType !== 'year' && startDateMonth !== undefined && endDateMonth !== undefined) {\n if (startDateMonth === endDateMonth) {\n if (cellDateValue === startDateMonth) {\n isMonthInRange = true;\n }\n } else if (cellDateValue >= startDateMonth && cellDateValue <= endDateMonth) {\n isMonthInRange = true;\n if (cellDateValue === startDateMonth) {\n isFirstMonthInRange = true;\n } else if (cellDateValue === endDateMonth) {\n isLastMonthInRange = true;\n }\n }\n } else if (!isPeriod && valueType !== 'year' && startDateMonth !== undefined) {\n if (cellDateValue === startDateMonth) {\n isMonthInRange = true;\n }\n } else {\n isMonthInRange = isMonthSelected;\n }\n\n return (\n <button\n type=\"button\"\n key={`cell-month-${index}`}\n className={classNames(styles.button, styles.cell, styles.month, classes?.cell, classes?.month)}\n onClick={openMonthView(cellDate)}\n >\n {isMonthInRange && (\n <span\n className={classNames(\n styles.monthCellSelection,\n classes?.monthCellSelection,\n isFirstMonthInRange && styles.monthCellSelectionFirst,\n isFirstMonthInRange && classes?.monthCellSelectionFirst,\n isLastMonthInRange && styles.monthCellSelectionLast,\n isLastMonthInRange && classes?.monthCellSelectionLast,\n )}\n />\n )}\n <Typography variant=\"subtitle1\" className={classNames(styles.cellData, classes?.cellData)}>\n {cellDate.format('MMMM')}\n </Typography>\n </button>\n );\n })}\n </>\n )}\n\n {viewType === 'month' && (\n <>\n {[...Array(emptyCellsCount)].map((__, index) => (\n <div key={`empty-cell-${index}`} className={classNames(styles.cell, classes?.cell)}></div>\n ))}\n {[...Array(daysInMonth)].map((__, index) => {\n const cellDate = currentDate.add(index, 'd').valueOf();\n\n return (\n <button\n type=\"button\"\n key={`cell-${index}`}\n className={classNames(styles.button, styles.cell, classes?.cell)}\n onClick={setDate(cellDate)}\n >\n {(cellDate === startDateDay || cellDate === endDateDay) && (\n <span className={classNames(styles.cellCircle, classes?.cellCircle)} />\n )}\n {startDateDay !== undefined &&\n endDateDay !== undefined &&\n cellDate >= startDateDay &&\n cellDate <= endDateDay && (\n <span\n className={classNames(\n styles.cellSelection,\n classes?.cellSelection,\n cellDate === startDateDay && styles.cellSelectionFirst,\n cellDate === startDateDay && classes?.cellSelectionFirst,\n cellDate === endDateDay && styles.cellSelectionLast,\n cellDate === endDateDay && classes?.cellSelectionLast,\n )}\n />\n )}\n <Typography\n variant=\"subtitle1\"\n className={classNames(styles.cellData, classes?.cellData)}\n >{`${index + 1}`}</Typography>\n </button>\n );\n })}\n </>\n )}\n </div>\n </div>\n\n {isDateTimeSingle && (\n <div className={classNames(styles.timeContainer)}>\n <div className={classNames(styles.timeSelectionMarker)} />\n <TimeWheelColumn values={hours} selectedValue={selectedHour} onSelect={setSelectedHour} />\n <Typography variant=\"subtitle1\" className={classNames(styles.timeDivider)}>\n :\n </Typography>\n <TimeWheelColumn values={minutes} selectedValue={selectedMinute} onSelect={setSelectedMinute} />\n </div>\n )}\n </div>\n );\n}\n","import classnames from 'classnames';\nimport defaultDayjs from 'dayjs';\nimport { FocusEvent, InputHTMLAttributes, forwardRef, useCallback, useEffect, useRef, useState } from 'react';\nimport { mergeRefs } from 'react-merge-refs';\n\nimport { FieldError, FieldErrorIcon, FieldShell, FieldSize, FieldVariant } from '@components/inputs/FieldShell';\nimport * as fieldStyles from '@components/inputs/FieldShell/fieldShell.module.css';\nimport { Popover } from '@components/utils/Popover';\nimport { useCompatId } from '@hooks/useCompatId';\nimport { DateRangeIcon } from '@icons/DateRangeIcon';\nimport { PropsObject, UiProps } from '@models/UiProps';\n\nimport * as styles from './dateTime.module.css';\nimport type { DayjsFactory } from './models/dayjs';\nimport { CalendarPopover } from './ui/CalendarPopover';\n\ntype Variant = FieldVariant;\ntype Size = FieldSize;\ntype ValueType = 'date' | 'year' | 'dateTime';\n\ninterface Props {\n variant?: Variant;\n isPeriod?: boolean;\n valueType?: ValueType;\n defaultOpen?: boolean;\n componentSize?: Size;\n fullWidth?: boolean;\n label?: string;\n error?: FieldError;\n placeholder?: string;\n values?: (string | undefined)[];\n defaultValues?: (string | undefined)[];\n onClear?: () => void;\n onValueChange?: (values: (string | undefined)[]) => void;\n dayjs?: DayjsFactory;\n useUtc?: boolean;\n}\n\nexport const DateTime = forwardRef<HTMLInputElement, UiProps<Props> & InputHTMLAttributes<HTMLInputElement>>(\n (\n {\n variant = 'filled',\n isPeriod = false,\n valueType = 'date',\n defaultOpen = false,\n componentSize = 'medium',\n fullWidth,\n label,\n error,\n placeholder,\n defaultValues,\n values,\n onClear,\n onValueChange,\n dayjs: dayjsFromProps,\n useUtc = false,\n classes,\n id,\n onFocus,\n onBlur,\n ...inputProps\n },\n ref,\n ) => {\n const dayjs: DayjsFactory = dayjsFromProps ?? (defaultDayjs as DayjsFactory);\n\n const [stateValues, setStateValues] = useState<(string | undefined)[] | undefined>(\n values !== undefined ? values : defaultValues,\n );\n const [isPopoverOpen, setIsPopoverOpen] = useState(defaultOpen);\n\n const stateValuesRef = useRef<(string | undefined)[] | undefined>(stateValues);\n\n useEffect(() => {\n if (values !== undefined) {\n setStateValues(values);\n }\n }, [values]);\n\n useEffect(() => {\n if (values === undefined && defaultValues !== undefined) {\n setStateValues(defaultValues);\n }\n }, [defaultValues, values]);\n\n useEffect(() => {\n stateValuesRef.current = stateValues;\n }, [stateValues]);\n\n const effectiveValueType: ValueType = isPeriod && valueType === 'dateTime' ? 'date' : valueType;\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n const reactId = useCompatId();\n const inputId = id ?? reactId;\n\n const inputFocusHandler = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n setIsPopoverOpen(true);\n onFocus?.(event);\n },\n [onFocus],\n );\n\n const inputBlurHandler = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n if (isPopoverOpen) {\n return;\n }\n\n onBlur?.(event);\n },\n [isPopoverOpen, onBlur],\n );\n\n const popoverOpenChangeHandler = useCallback(\n (open: boolean) => {\n setIsPopoverOpen(open);\n\n if (!open) {\n const currentValues = stateValuesRef.current;\n if (currentValues !== undefined) {\n onValueChange?.(currentValues);\n }\n\n const inputElement = inputRef.current;\n\n if (!inputElement) {\n return;\n }\n\n if (document.activeElement === inputElement) {\n inputElement.blur();\n return;\n }\n\n onBlur?.({ target: inputElement, currentTarget: inputElement } as FocusEvent<HTMLInputElement>);\n }\n },\n [onBlur, onValueChange],\n );\n\n const iconClickHandler = useCallback(() => {\n inputRef.current?.focus();\n }, []);\n\n const showErrorIcon = !!error && !label;\n\n const changeDates = useCallback(\n (newStartDate?: string, newEndDate?: string) => {\n const newValues = isPeriod ? [newStartDate, newEndDate] : [newStartDate];\n const prevValues = stateValuesRef.current;\n const prevLength = prevValues?.length ?? 0;\n const isSameValues =\n prevLength === newValues.length && prevValues?.every((value, index) => value === newValues[index]);\n\n if (isSameValues) {\n return;\n }\n\n stateValuesRef.current = newValues;\n setStateValues(newValues);\n },\n [isPeriod],\n );\n\n return (\n <FieldShell\n variant={variant}\n componentSize={componentSize}\n fullWidth={fullWidth}\n label={label}\n error={error}\n inputId={inputId}\n hasArrow\n hasErrorIcon={showErrorIcon}\n classes={classes}\n >\n <input\n ref={mergeRefs([inputRef, ref])}\n id={inputId}\n className={classnames(fieldStyles.input, styles.input, classes?.input)}\n placeholder={placeholder}\n {...inputProps}\n value={\n stateValues?.[0]\n ? isPeriod && stateValues[1]\n ? `${dayjs(stateValues[0]).format(effectiveValueType === 'year' ? 'YYYY' : 'DD.MM.YYYY')} - ${dayjs(\n stateValues[1],\n ).format(effectiveValueType === 'year' ? 'YYYY' : 'DD.MM.YYYY')}`\n : `${dayjs(stateValues[0]).format(\n effectiveValueType === 'year'\n ? 'YYYY'\n : effectiveValueType === 'dateTime'\n ? 'DD.MM.YYYY HH:mm'\n : 'DD.MM.YYYY',\n )}`\n : ''\n }\n onChange={() => {}}\n onFocus={inputFocusHandler}\n onBlur={inputBlurHandler}\n />\n <span onClick={iconClickHandler} className={classnames(fieldStyles.arrow, classes?.icon)}>\n <DateRangeIcon />\n </span>\n {showErrorIcon && error && (\n <FieldErrorIcon error={error} componentSize={componentSize} className={classes?.errorIcon} />\n )}\n <Popover\n placement=\"bottom-start\"\n open={isPopoverOpen}\n onOpenChange={popoverOpenChangeHandler}\n classes={{ ...(classes?.popover as PropsObject | undefined), content: styles.popoverContent }}\n containerOffset={4}\n description={\n <CalendarPopover\n dayjs={dayjs}\n useUtc={useUtc}\n classes={classes}\n componentSize={componentSize === 'small' || componentSize === 'medium' ? componentSize : 'medium'}\n isPeriod={isPeriod}\n valueType={effectiveValueType}\n initStartDate={stateValues?.[0]}\n initEndDate={stateValues?.[1]}\n changeDates={changeDates}\n onClear={onClear}\n />\n }\n >\n <div className={classnames(styles.popoverTarget)} />\n </Popover>\n </FieldShell>\n );\n },\n);\n","// extracted by mini-css-extract-plugin\nvar _1 = \"dateTime-module__input__kmAiU\";\nvar _2 = \"dateTime-module__popover-content__oLd5U\";\nvar _3 = \"dateTime-module__popover-target__KDRaS\";\nexport { _1 as \"input\", _2 as \"popoverContent\", _3 as \"popoverTarget\" }\n","import e,{useRef as r,useMemo as n,useEffect as t,useState as o,useCallback as a,useLayoutEffect as u}from\"react\";function l(){return(l=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var n=arguments[r];for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&(e[t]=n[t])}return e}).apply(this,arguments)}function c(e,r){if(null==e)return{};var n,t,o={},a=Object.keys(e);for(t=0;t<a.length;t++)r.indexOf(n=a[t])>=0||(o[n]=e[n]);return o}function i(e){var n=r(e),t=r(function(e){n.current&&n.current(e)});return n.current=e,t.current}var s=function(e,r,n){return void 0===r&&(r=0),void 0===n&&(n=1),e>n?n:e<r?r:e},f=function(e){return\"touches\"in e},d=function(e){return e&&e.ownerDocument.defaultView||self},v=function(e,r,n){var t=e.getBoundingClientRect(),o=f(r)?function(e,r){for(var n=0;n<e.length;n++)if(e[n].identifier===r)return e[n];return e[0]}(r.touches,n):r;return{left:s((o.pageX-(t.left+d(e).pageXOffset))/t.width),top:s((o.pageY-(t.top+d(e).pageYOffset))/t.height)}},h=function(e){!f(e)&&e.preventDefault()},g=e.memo(function(o){var a=o.onMove,u=o.onKey,s=o.onEnd,g=c(o,[\"onMove\",\"onKey\",\"onEnd\"]),m=r(null),p=i(a),b=i(u),_=i(s),E=r(null),C=r(!1),x=n(function(){var e=function(e){h(e),(f(e)?e.touches.length>0:e.buttons>0)&&m.current?p(v(m.current,e,E.current)):(n(!1),_())},r=function(){n(!1),_()};function n(n){var t=C.current,o=d(m.current),a=n?o.addEventListener:o.removeEventListener;a(t?\"touchmove\":\"mousemove\",e),a(t?\"touchend\":\"mouseup\",r)}return[function(e){var r=e.nativeEvent,t=m.current;if(t&&(h(r),!function(e,r){return r&&!f(e)}(r,C.current)&&t)){if(f(r)){C.current=!0;var o=r.changedTouches||[];o.length&&(E.current=o[0].identifier)}t.focus(),p(v(t,r,E.current)),n(!0)}},function(e){var r=e.which||e.keyCode;r<37||r>40||(e.preventDefault(),b({left:39===r?.05:37===r?-.05:0,top:40===r?.05:38===r?-.05:0}))},function(e){var r=e.which||e.keyCode;r>=37&&r<=40&&_()},n]},[b,p,_]),H=x[0],M=x[1],N=x[2],w=x[3];return t(function(){return w},[w]),e.createElement(\"div\",l({},g,{onTouchStart:H,onMouseDown:H,className:\"react-colorful__interactive\",ref:m,onKeyDown:M,onKeyUp:N,tabIndex:0,role:\"slider\"}))}),m=function(e){return e.filter(Boolean).join(\" \")},p=function(r){var n=r.color,t=r.left,o=r.top,a=void 0===o?.5:o,u=m([\"react-colorful__pointer\",r.className]);return e.createElement(\"div\",{className:u,style:{top:100*a+\"%\",left:100*t+\"%\"}},e.createElement(\"div\",{className:\"react-colorful__pointer-fill\",style:{backgroundColor:n}}))},b=function(e,r,n){return void 0===r&&(r=0),void 0===n&&(n=Math.pow(10,r)),Math.round(n*e)/n},_={grad:.9,turn:360,rad:360/(2*Math.PI)},E=function(e){return L(C(e))},C=function(e){return\"#\"===e[0]&&(e=e.substring(1)),e.length<6?{r:parseInt(e[0]+e[0],16),g:parseInt(e[1]+e[1],16),b:parseInt(e[2]+e[2],16),a:4===e.length?b(parseInt(e[3]+e[3],16)/255,2):1}:{r:parseInt(e.substring(0,2),16),g:parseInt(e.substring(2,4),16),b:parseInt(e.substring(4,6),16),a:8===e.length?b(parseInt(e.substring(6,8),16)/255,2):1}},x=function(e,r){return void 0===r&&(r=\"deg\"),Number(e)*(_[r]||1)},H=function(e){var r=/hsla?\\(?\\s*(-?\\d*\\.?\\d+)(deg|rad|grad|turn)?[,\\s]+(-?\\d*\\.?\\d+)%?[,\\s]+(-?\\d*\\.?\\d+)%?,?\\s*[/\\s]*(-?\\d*\\.?\\d+)?(%)?\\s*\\)?/i.exec(e);return r?N({h:x(r[1],r[2]),s:Number(r[3]),l:Number(r[4]),a:void 0===r[5]?1:Number(r[5])/(r[6]?100:1)}):{h:0,s:0,v:0,a:1}},M=H,N=function(e){var r=e.s,n=e.l;return{h:e.h,s:(r*=(n<50?n:100-n)/100)>0?2*r/(n+r)*100:0,v:n+r,a:e.a}},w=function(e){return B(I(e))},y=function(e){var r=e.s,n=e.v,t=e.a,o=(200-r)*n/100;return{h:b(e.h),s:b(o>0&&o<200?r*n/100/(o<=100?o:200-o)*100:0),l:b(o/2),a:b(t,2)}},k=function(e){var r=y(e);return\"hsl(\"+r.h+\", \"+r.s+\"%, \"+r.l+\"%)\"},q=function(e){var r=y(e);return\"hsla(\"+r.h+\", \"+r.s+\"%, \"+r.l+\"%, \"+r.a+\")\"},I=function(e){var r=e.h,n=e.s,t=e.v,o=e.a;r=r/360*6,n/=100,t/=100;var a=Math.floor(r),u=t*(1-n),l=t*(1-(r-a)*n),c=t*(1-(1-r+a)*n),i=a%6;return{r:b(255*[t,l,u,u,c,t][i]),g:b(255*[c,t,t,l,u,u][i]),b:b(255*[u,u,c,t,t,l][i]),a:b(o,2)}},O=function(e){var r=/hsva?\\(?\\s*(-?\\d*\\.?\\d+)(deg|rad|grad|turn)?[,\\s]+(-?\\d*\\.?\\d+)%?[,\\s]+(-?\\d*\\.?\\d+)%?,?\\s*[/\\s]*(-?\\d*\\.?\\d+)?(%)?\\s*\\)?/i.exec(e);return r?A({h:x(r[1],r[2]),s:Number(r[3]),v:Number(r[4]),a:void 0===r[5]?1:Number(r[5])/(r[6]?100:1)}):{h:0,s:0,v:0,a:1}},D=O,j=function(e){var r=/rgba?\\(?\\s*(-?\\d*\\.?\\d+)(%)?[,\\s]+(-?\\d*\\.?\\d+)(%)?[,\\s]+(-?\\d*\\.?\\d+)(%)?,?\\s*[/\\s]*(-?\\d*\\.?\\d+)?(%)?\\s*\\)?/i.exec(e);return r?L({r:Number(r[1])/(r[2]?100/255:1),g:Number(r[3])/(r[4]?100/255:1),b:Number(r[5])/(r[6]?100/255:1),a:void 0===r[7]?1:Number(r[7])/(r[8]?100:1)}):{h:0,s:0,v:0,a:1}},z=j,K=function(e){var r=e.toString(16);return r.length<2?\"0\"+r:r},B=function(e){var r=e.r,n=e.g,t=e.b,o=e.a,a=o<1?K(b(255*o)):\"\";return\"#\"+K(r)+K(n)+K(t)+a},L=function(e){var r=e.r,n=e.g,t=e.b,o=e.a,a=Math.max(r,n,t),u=a-Math.min(r,n,t),l=u?a===r?(n-t)/u:a===n?2+(t-r)/u:4+(r-n)/u:0;return{h:60*(l<0?l+6:l),s:a?u/a*100:0,v:a/255*100,a:o}},A=function(e){return{h:b(e.h),s:b(e.s),v:b(e.v),a:b(e.a,2)}},R=e.memo(function(r){var n=r.hue,t=r.onChange,o=r.onChangeEnd,a=m([\"react-colorful__hue\",r.className]);return e.createElement(\"div\",{className:a},e.createElement(g,{onMove:function(e){t({h:360*e.left})},onKey:function(e){t({h:s(n+360*e.left,0,360)})},onEnd:o,\"aria-label\":\"Hue\",\"aria-valuenow\":b(n),\"aria-valuemax\":\"360\",\"aria-valuemin\":\"0\"},e.createElement(p,{className:\"react-colorful__hue-pointer\",left:n/360,color:k({h:n,s:100,v:100,a:1})})))}),S=e.memo(function(r){var n=r.hsva,t=r.onChange,o=r.onChangeEnd,a={backgroundColor:k({h:n.h,s:100,v:100,a:1})};return e.createElement(\"div\",{className:\"react-colorful__saturation\",style:a},e.createElement(g,{onMove:function(e){t({s:100*e.left,v:100-100*e.top})},onKey:function(e){t({s:s(n.s+100*e.left,0,100),v:s(n.v-100*e.top,0,100)})},onEnd:o,\"aria-label\":\"Color\",\"aria-valuetext\":\"Saturation \"+b(n.s)+\"%, Brightness \"+b(n.v)+\"%\"},e.createElement(p,{className:\"react-colorful__saturation-pointer\",top:1-n.v/100,left:n.s/100,color:k(n)})))}),T=function(e,r){if(e===r)return!0;for(var n in e)if(e[n]!==r[n])return!1;return!0},F=function(e,r){return e.replace(/\\s/g,\"\")===r.replace(/\\s/g,\"\")},P=function(e,r){return e.toLowerCase()===r.toLowerCase()||T(C(e),C(r))};function X(e,n,u,l){var c=i(u),s=i(l),f=o(function(){return e.toHsva(n)}),d=f[0],v=f[1],h=r({color:n,hsva:d}),g=r(!1);t(function(){if(!e.equal(n,h.current.color)){var r=e.toHsva(n);h.current={hsva:r,color:n},v(r),g.current=!1}},[n,e]),t(function(){var r;T(d,h.current.hsva)||e.equal(r=e.fromHsva(d),h.current.color)||(h.current={hsva:d,color:r},c(r),g.current=!0)},[d,e,c]);var m=a(function(e){v(function(r){return Object.assign({},r,e)})},[]),p=a(function(){g.current&&(g.current=!1,s(h.current.color))},[s]);return[d,m,p]}var Y,U=\"undefined\"!=typeof window?u:t,V=function(){return Y||(\"undefined\"!=typeof __webpack_nonce__?__webpack_nonce__:void 0)},W=function(e){Y=e},$=new WeakMap,G=function(e){U(function(){var r=e.current;if(\"undefined\"!=typeof document&&r){var n=r.getRootNode?r.getRootNode():r.ownerDocument,t=n&&(\"head\"in n||\"host\"in n)?n:r.ownerDocument;if(!$.has(t)){var o=\"head\"in t?t.head:t,a=(o.ownerDocument||document).createElement(\"style\");a.innerHTML='.react-colorful{position:relative;display:flex;flex-direction:column;width:200px;height:200px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.react-colorful__saturation{position:relative;flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.react-colorful__alpha-gradient,.react-colorful__pointer-fill{content:\"\";position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none;border-radius:inherit}.react-colorful__alpha-gradient,.react-colorful__saturation{box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}.react-colorful__alpha,.react-colorful__hue{position:relative;height:24px}.react-colorful__hue{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.react-colorful__last-control{border-radius:0 0 8px 8px}.react-colorful__interactive{position:absolute;left:0;top:0;right:0;bottom:0;border-radius:inherit;outline:none;touch-action:none}.react-colorful__pointer{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}.react-colorful__interactive:focus .react-colorful__pointer{transform:translate(-50%,-50%) scale(1.1)}.react-colorful__alpha,.react-colorful__alpha-pointer{background-color:#fff;background-image:url(\\'data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill-opacity=\".05\"><path d=\"M8 0h8v8H8zM0 8h8v8H0z\"/></svg>\\')}.react-colorful__saturation-pointer{z-index:3}.react-colorful__hue-pointer{z-index:2}';var u=V();u&&a.setAttribute(\"nonce\",u),$.set(t,a),o.appendChild(a)}}},[])},J=function(n){var t=n.className,o=n.colorModel,a=n.color,u=void 0===a?o.defaultColor:a,i=n.onChange,s=n.onChangeEnd,f=c(n,[\"className\",\"colorModel\",\"color\",\"onChange\",\"onChangeEnd\"]),d=r(null);G(d);var v=X(o,u,i,s),h=v[0],g=v[1],p=v[2],b=m([\"react-colorful\",t]);return e.createElement(\"div\",l({},f,{ref:d,className:b}),e.createElement(S,{hsva:h,onChange:g,onChangeEnd:p}),e.createElement(R,{hue:h.h,onChange:g,onChangeEnd:p,className:\"react-colorful__last-control\"}))},Q={defaultColor:\"000\",toHsva:E,fromHsva:function(e){return w({h:e.h,s:e.s,v:e.v,a:1})},equal:P},Z=function(r){return e.createElement(J,l({},r,{colorModel:Q}))},ee=function(r){var n=r.className,t=r.hsva,o=r.onChange,a=r.onChangeEnd,u={backgroundImage:\"linear-gradient(90deg, \"+q(Object.assign({},t,{a:0}))+\", \"+q(Object.assign({},t,{a:1}))+\")\"},l=m([\"react-colorful__alpha\",n]),c=b(100*t.a);return e.createElement(\"div\",{className:l},e.createElement(\"div\",{className:\"react-colorful__alpha-gradient\",style:u}),e.createElement(g,{onMove:function(e){o({a:e.left})},onKey:function(e){o({a:s(t.a+e.left)})},onEnd:a,\"aria-label\":\"Alpha\",\"aria-valuetext\":c+\"%\",\"aria-valuenow\":c,\"aria-valuemin\":\"0\",\"aria-valuemax\":\"100\"},e.createElement(p,{className:\"react-colorful__alpha-pointer\",left:t.a,color:q(t)})))},re=function(n){var t=n.className,o=n.colorModel,a=n.color,u=void 0===a?o.defaultColor:a,i=n.onChange,s=n.onChangeEnd,f=c(n,[\"className\",\"colorModel\",\"color\",\"onChange\",\"onChangeEnd\"]),d=r(null);G(d);var v=X(o,u,i,s),h=v[0],g=v[1],p=v[2],b=m([\"react-colorful\",t]);return e.createElement(\"div\",l({},f,{ref:d,className:b}),e.createElement(S,{hsva:h,onChange:g,onChangeEnd:p}),e.createElement(R,{hue:h.h,onChange:g,onChangeEnd:p}),e.createElement(ee,{hsva:h,onChange:g,onChangeEnd:p,className:\"react-colorful__last-control\"}))},ne={defaultColor:\"0001\",toHsva:E,fromHsva:w,equal:P},te=function(r){return e.createElement(re,l({},r,{colorModel:ne}))},oe={defaultColor:{h:0,s:0,l:0,a:1},toHsva:N,fromHsva:y,equal:T},ae=function(r){return e.createElement(re,l({},r,{colorModel:oe}))},ue={defaultColor:\"hsla(0, 0%, 0%, 1)\",toHsva:H,fromHsva:q,equal:F},le=function(r){return e.createElement(re,l({},r,{colorModel:ue}))},ce={defaultColor:{h:0,s:0,l:0},toHsva:function(e){return N({h:e.h,s:e.s,l:e.l,a:1})},fromHsva:function(e){return{h:(r=y(e)).h,s:r.s,l:r.l};var r},equal:T},ie=function(r){return e.createElement(J,l({},r,{colorModel:ce}))},se={defaultColor:\"hsl(0, 0%, 0%)\",toHsva:M,fromHsva:k,equal:F},fe=function(r){return e.createElement(J,l({},r,{colorModel:se}))},de={defaultColor:{h:0,s:0,v:0,a:1},toHsva:function(e){return e},fromHsva:A,equal:T},ve=function(r){return e.createElement(re,l({},r,{colorModel:de}))},he={defaultColor:\"hsva(0, 0%, 0%, 1)\",toHsva:O,fromHsva:function(e){var r=A(e);return\"hsva(\"+r.h+\", \"+r.s+\"%, \"+r.v+\"%, \"+r.a+\")\"},equal:F},ge=function(r){return e.createElement(re,l({},r,{colorModel:he}))},me={defaultColor:{h:0,s:0,v:0},toHsva:function(e){return{h:e.h,s:e.s,v:e.v,a:1}},fromHsva:function(e){var r=A(e);return{h:r.h,s:r.s,v:r.v}},equal:T},pe=function(r){return e.createElement(J,l({},r,{colorModel:me}))},be={defaultColor:\"hsv(0, 0%, 0%)\",toHsva:D,fromHsva:function(e){var r=A(e);return\"hsv(\"+r.h+\", \"+r.s+\"%, \"+r.v+\"%)\"},equal:F},_e=function(r){return e.createElement(J,l({},r,{colorModel:be}))},Ee={defaultColor:{r:0,g:0,b:0,a:1},toHsva:L,fromHsva:I,equal:T},Ce=function(r){return e.createElement(re,l({},r,{colorModel:Ee}))},xe={defaultColor:\"rgba(0, 0, 0, 1)\",toHsva:j,fromHsva:function(e){var r=I(e);return\"rgba(\"+r.r+\", \"+r.g+\", \"+r.b+\", \"+r.a+\")\"},equal:F},He=function(r){return e.createElement(re,l({},r,{colorModel:xe}))},Me={defaultColor:{r:0,g:0,b:0},toHsva:function(e){return L({r:e.r,g:e.g,b:e.b,a:1})},fromHsva:function(e){return{r:(r=I(e)).r,g:r.g,b:r.b};var r},equal:T},Ne=function(r){return e.createElement(J,l({},r,{colorModel:Me}))},we={defaultColor:\"rgb(0, 0, 0)\",toHsva:z,fromHsva:function(e){var r=I(e);return\"rgb(\"+r.r+\", \"+r.g+\", \"+r.b+\")\"},equal:F},ye=function(r){return e.createElement(J,l({},r,{colorModel:we}))},ke=/^#?([0-9A-F]{3,8})$/i,qe=function(r){var n=r.color,u=void 0===n?\"\":n,s=r.onChange,f=r.onBlur,d=r.escape,v=r.validate,h=r.format,g=r.process,m=c(r,[\"color\",\"onChange\",\"onBlur\",\"escape\",\"validate\",\"format\",\"process\"]),p=o(function(){return d(u)}),b=p[0],_=p[1],E=i(s),C=i(f),x=a(function(e){var r=d(e.target.value);_(r),v(r)&&E(g?g(r):r)},[d,g,v,E]),H=a(function(e){v(e.target.value)||_(d(u)),C(e)},[u,d,v,C]);return t(function(){_(d(u))},[u,d]),e.createElement(\"input\",l({},m,{value:h?h(b):b,spellCheck:\"false\",onChange:x,onBlur:H}))},Ie=function(e){return\"#\"+e},Oe=function(r){var n=r.prefixed,t=r.alpha,o=c(r,[\"prefixed\",\"alpha\"]),u=a(function(e){return e.replace(/([^0-9A-F]+)/gi,\"\").substring(0,t?8:6)},[t]),i=a(function(e){return function(e,r){var n=ke.exec(e),t=n?n[1].length:0;return 3===t||6===t||!!r&&4===t||!!r&&8===t}(e,t)},[t]);return e.createElement(qe,l({},o,{escape:u,format:n?Ie:void 0,process:Ie,validate:i}))};export{te as HexAlphaColorPicker,Oe as HexColorInput,Z as HexColorPicker,ie as HslColorPicker,fe as HslStringColorPicker,ae as HslaColorPicker,le as HslaStringColorPicker,pe as HsvColorPicker,_e as HsvStringColorPicker,ve as HsvaColorPicker,ge as HsvaStringColorPicker,Ne as RgbColorPicker,ye as RgbStringColorPicker,Ce as RgbaColorPicker,He as RgbaStringColorPicker,W as setNonce};\n//# sourceMappingURL=index.module.js.map\n","import classNames from 'classnames';\nimport { DetailedHTMLProps, InputHTMLAttributes, MouseEvent, forwardRef, useCallback, useRef, useState } from 'react';\nimport { HexAlphaColorPicker, HexColorPicker } from 'react-colorful';\nimport { mergeRefs } from 'react-merge-refs';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { FieldError, FieldErrorIcon, FieldShell, FieldSize, FieldVariant } from '@components/inputs/FieldShell';\nimport * as fieldStyles from '@components/inputs/FieldShell/fieldShell.module.css';\nimport { Popover } from '@components/utils/Popover';\nimport { Arrow } from '@components/utils/Popover/ui/Arrow';\nimport { PropsObject, UiProps } from '@models/UiProps';\n\nimport * as styles from './colorPicker.module.css';\n\ninterface Props {\n variant?: FieldVariant;\n componentSize?: FieldSize;\n fullWidth?: boolean;\n label?: string;\n error?: FieldError;\n enableAlpha?: boolean;\n disableLabel?: boolean;\n onValueChange?: (newValue: string) => void;\n}\n\nexport const ColorPicker = forwardRef<\n HTMLInputElement,\n UiProps<Props> & DetailedHTMLProps<InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>\n>(function ColorPicker(props, ref) {\n const {\n variant = 'outlined',\n componentSize = 'medium',\n fullWidth,\n label,\n error,\n classes,\n placeholder,\n disabled,\n defaultValue,\n id,\n enableAlpha = false,\n disableLabel = false,\n onValueChange,\n ...inputProps\n } = props;\n\n const [color, setColor] = useState(defaultValue?.toString() ?? '#AABBCC');\n\n const inputRef = useRef<HTMLInputElement>(null);\n const popoverTargetRef = useRef<HTMLDivElement>(null);\n\n const changeColorHandler = useCallback((newColor: string) => {\n setColor(newColor.toUpperCase());\n onValueChange?.(newColor.toUpperCase());\n }, []);\n\n const inputClickHandler = useCallback(\n (e: MouseEvent) => {\n e.preventDefault();\n if (!disabled) popoverTargetRef?.current?.click();\n },\n [popoverTargetRef, disabled],\n );\n\n const inputId = id ?? uuidv4();\n const showErrorIcon = !!error && !label && !disableLabel;\n\n const colorPicker = (\n <Popover\n placement=\"bottom-start\"\n classes={{\n content: classNames(styles.popoverContent, enableAlpha && styles.popoverContentAlpha, classes?.popoverContent),\n ...(classes?.popover as PropsObject | undefined),\n }}\n containerOffset={4}\n description={\n enableAlpha ? (\n <HexAlphaColorPicker color={color} onChange={changeColorHandler} />\n ) : (\n <HexColorPicker color={color} onChange={changeColorHandler} />\n )\n }\n >\n <div ref={popoverTargetRef} className={classNames(styles.popoverTarget)} />\n </Popover>\n );\n\n const swatch = (\n <span\n onClick={inputClickHandler}\n className={classNames(\n styles.swatch,\n enableAlpha && styles.swatchAlpha,\n disableLabel && styles.swatchOnly,\n disabled && styles.swatchDisabled,\n classes?.icon,\n )}\n style={{ ['--swatch-color' as string]: color }}\n />\n );\n\n if (disableLabel) {\n return (\n <div data-size={componentSize} className={classNames(styles.rootOnly, classes?.root)}>\n <input\n ref={mergeRefs([inputRef, ref])}\n id={inputId}\n className={styles.hiddenInput}\n {...inputProps}\n value={color}\n onChange={() => {}}\n disabled={disabled}\n tabIndex={-1}\n aria-hidden\n />\n {swatch}\n {colorPicker}\n </div>\n );\n }\n\n return (\n <FieldShell\n variant={variant}\n componentSize={componentSize}\n fullWidth={fullWidth}\n label={label}\n error={error}\n inputId={inputId}\n onLabelClick={inputClickHandler}\n hasStartIcon\n hasArrow\n hasErrorIcon={showErrorIcon}\n classes={{ ...(classes as PropsObject | undefined), root: classNames(styles.root, classes?.root) }}\n >\n <input\n ref={mergeRefs([inputRef, ref])}\n id={inputId}\n className={classNames(fieldStyles.input, styles.input, classes?.input)}\n placeholder={placeholder}\n {...inputProps}\n value={color}\n onChange={() => {}}\n onClick={inputClickHandler}\n disabled={disabled}\n />\n {swatch}\n <span onClick={inputClickHandler} className={classNames(fieldStyles.arrow, classes?.arrow)}>\n <Arrow />\n </span>\n {showErrorIcon && error && (\n <FieldErrorIcon error={error} componentSize={componentSize} className={classes?.errorIcon} />\n )}\n {colorPicker}\n </FieldShell>\n );\n});\n","// extracted by mini-css-extract-plugin\nvar _1 = \"colorPicker-module__hidden-input__iEwws\";\nvar _2 = \"colorPicker-module__input__rwgTH\";\nvar _3 = \"colorPicker-module__popover-content___l9Cj\";\nvar _4 = \"colorPicker-module__popover-content-alpha__qL4F7\";\nvar _5 = \"colorPicker-module__popover-target__EZe64\";\nvar _6 = \"colorPicker-module__root__Ni1Qk\";\nvar _7 = \"colorPicker-module__root-only__Bqjfa\";\nvar _8 = \"colorPicker-module__swatch__CJpfS\";\nvar _9 = \"colorPicker-module__swatch-alpha__fR5dI\";\nvar _a = \"colorPicker-module__swatch-disabled__v7mTm\";\nvar _b = \"colorPicker-module__swatch-only__Ssxwd\";\nexport { _1 as \"hiddenInput\", _2 as \"input\", _3 as \"popoverContent\", _4 as \"popoverContentAlpha\", _5 as \"popoverTarget\", _6 as \"root\", _7 as \"rootOnly\", _8 as \"swatch\", _9 as \"swatchAlpha\", _a as \"swatchDisabled\", _b as \"swatchOnly\" }\n","// extracted by mini-css-extract-plugin\nvar _1 = \"input-module__attach-icon__l8K5u\";\nvar _2 = \"input-module__field-icon__t2MCN\";\nvar _3 = \"input-module__file-display__nDbsE\";\nvar _4 = \"input-module__file-input__q2Nqj\";\nvar _5 = \"input-module__file-name__X3xkl\";\nvar _6 = \"input-module__input__kODuu\";\nvar _7 = \"input-module__placeholder__NSfNL\";\nexport { _1 as \"attachIcon\", _2 as \"fieldIcon\", _3 as \"fileDisplay\", _4 as \"fileInput\", _5 as \"fileName\", _6 as \"input\", _7 as \"placeholder\" }\n","import classnames from 'classnames';\nimport { ChangeEvent, InputHTMLAttributes, KeyboardEvent, ReactNode, forwardRef, useRef, useState } from 'react';\nimport { mergeRefs } from 'react-merge-refs';\n\nimport { FieldError, FieldErrorIcon, FieldShell, FieldSize, FieldVariant } from '@components/inputs/FieldShell';\nimport * as fieldStyles from '@components/inputs/FieldShell/fieldShell.module.css';\nimport { useCompatId } from '@hooks/useCompatId';\nimport { AttachIcon } from '@icons/AttachIcon';\nimport { UiProps } from '@models/UiProps';\n\nimport * as styles from './input.module.css';\n\nexport type { FieldError };\n\ninterface Props {\n variant?: FieldVariant;\n componentSize?: FieldSize;\n fullWidth?: boolean;\n label?: string;\n error?: FieldError;\n startIcon?: ReactNode;\n endIcon?: ReactNode;\n}\n\nexport const Input = forwardRef<HTMLInputElement, UiProps<Props> & InputHTMLAttributes<HTMLInputElement>>(\n (\n {\n variant = 'outlined',\n componentSize = 'medium',\n fullWidth,\n label,\n error,\n startIcon,\n endIcon,\n classes,\n placeholder,\n id,\n type,\n onChange,\n ...inputProps\n },\n ref,\n ) => {\n const inputRef = useRef<HTMLInputElement>(null);\n const [fileName, setFileName] = useState('');\n\n const reactId = useCompatId();\n const inputId = id ?? reactId;\n const isFile = type === 'file';\n const showErrorIcon = !!error && !isFile && !label;\n const showEndIcon = !isFile && !!endIcon;\n\n const handleFileChange = (e: ChangeEvent<HTMLInputElement>) => {\n const file = e.target.files?.[0];\n setFileName(file?.name ?? '');\n onChange?.(e);\n };\n\n const handleFileKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n inputRef.current?.click();\n }\n };\n\n const iconClickHandler = () => {\n inputRef.current?.focus();\n };\n\n return (\n <FieldShell\n variant={variant}\n componentSize={componentSize}\n fullWidth={fullWidth}\n label={label}\n error={error}\n inputId={inputId}\n hasStartIcon={!isFile && !!startIcon}\n hasEndIcon={showEndIcon || showErrorIcon}\n hasDualEndIcon={showEndIcon && showErrorIcon}\n classes={classes}\n >\n {isFile ? (\n <>\n <input\n ref={mergeRefs([inputRef, ref])}\n id={inputId}\n className={classnames(styles.fileInput, classes?.fileInput)}\n type=\"file\"\n onChange={handleFileChange}\n {...inputProps}\n />\n <div\n role=\"button\"\n tabIndex={0}\n className={classnames(fieldStyles.input, styles.fileDisplay, classes?.input)}\n onClick={() => inputRef.current?.click()}\n onKeyDown={handleFileKeyDown}\n >\n <span className={classnames(styles.fileName, !fileName && styles.placeholder)}>\n {fileName || placeholder}\n </span>\n <AttachIcon size={20} className={styles.attachIcon} />\n </div>\n </>\n ) : (\n <input\n ref={mergeRefs([inputRef, ref])}\n id={inputId}\n className={classnames(fieldStyles.input, styles.input, classes?.input)}\n placeholder={placeholder}\n type={type}\n autoComplete=\"off\"\n onChange={onChange}\n {...inputProps}\n />\n )}\n {!!startIcon && !isFile && (\n <span\n onClick={iconClickHandler}\n className={classnames(fieldStyles.startIcon, styles.fieldIcon, classes?.startIcon)}\n >\n {startIcon}\n </span>\n )}\n {showEndIcon && (\n <span\n onClick={iconClickHandler}\n className={classnames(fieldStyles.endIcon, styles.fieldIcon, classes?.endIcon)}\n >\n {endIcon}\n </span>\n )}\n {showErrorIcon && error && (\n <FieldErrorIcon error={error} componentSize={componentSize} className={classes?.errorIcon} />\n )}\n </FieldShell>\n );\n },\n);\n","// extracted by mini-css-extract-plugin\nvar _1 = \"wrapForLabel-module__medium__TMPJd\";\nvar _2 = \"wrapForLabel-module__root__n2E0p\";\nvar _3 = \"wrapForLabel-module__small__BWNtg\";\nexport { _1 as \"medium\", _2 as \"root\", _3 as \"small\" }\n","import classnames from 'classnames';\nimport { HTMLAttributes, PropsWithChildren, forwardRef } from 'react';\n\nimport { ChipSize } from '@models/ChipSize';\nimport { UiProps } from '@models/UiProps';\n\nimport * as styles from './wrapForLabel.module.css';\n\ntype Style = keyof typeof styles;\n\ninterface Props {\n componentSize?: ChipSize;\n}\n\nexport const WrapForLabel = forwardRef<\n HTMLDivElement,\n PropsWithChildren<UiProps<Props>> & HTMLAttributes<HTMLDivElement>\n>(function WrapForLabel({ componentSize = 'medium', children, classes, className, ...rest }, ref) {\n return (\n <div\n ref={ref}\n className={classnames(styles.root, styles[componentSize as Style], className, classes?.root)}\n {...rest}\n >\n {children}\n </div>\n );\n});\n","import { createContext } from 'react';\nimport { getDefaults, setDefaults } from './defaults.js';\nimport { getI18n, setI18n } from './i18nInstance.js';\nimport { initReactI18next } from './initReactI18next.js';\nexport { getDefaults, setDefaults, getI18n, setI18n, initReactI18next };\nexport const I18nContext = createContext();\nexport class ReportNamespaces {\n constructor() {\n this.usedNamespaces = {};\n }\n addUsedNamespaces(namespaces) {\n namespaces.forEach(ns => {\n if (!this.usedNamespaces[ns]) this.usedNamespaces[ns] = true;\n });\n }\n getUsedNamespaces() {\n return Object.keys(this.usedNamespaces);\n }\n}\nexport const composeInitialProps = ForComponent => async ctx => {\n const componentsInitialProps = (await ForComponent.getInitialProps?.(ctx)) ?? {};\n const i18nInitialProps = getInitialProps();\n return {\n ...componentsInitialProps,\n ...i18nInitialProps\n };\n};\nexport const getInitialProps = () => {\n const i18n = getI18n();\n if (!i18n) {\n console.warn('react-i18next:: getInitialProps: You will need to pass in an i18next instance by using initReactI18next');\n return {};\n }\n const namespaces = i18n.reportNamespaces?.getUsedNamespaces() ?? [];\n const ret = {};\n const initialI18nStore = {};\n i18n.languages.forEach(l => {\n initialI18nStore[l] = {};\n namespaces.forEach(ns => {\n initialI18nStore[l][ns] = i18n.getResourceBundle(l, ns) || {};\n });\n });\n ret.initialI18nStore = initialI18nStore;\n ret.initialLanguage = i18n.language;\n return ret;\n};","let i18nInstance;\nexport const setI18n = instance => {\n i18nInstance = instance;\n};\nexport const getI18n = () => i18nInstance;","const matchHtmlEntity = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g;\nconst htmlEntities = {\n '&amp;': '&',\n '&#38;': '&',\n '&lt;': '<',\n '&#60;': '<',\n '&gt;': '>',\n '&#62;': '>',\n '&apos;': \"'\",\n '&#39;': \"'\",\n '&quot;': '\"',\n '&#34;': '\"',\n '&nbsp;': ' ',\n '&#160;': ' ',\n '&copy;': '©',\n '&#169;': '©',\n '&reg;': '®',\n '&#174;': '®',\n '&hellip;': '…',\n '&#8230;': '…',\n '&#x2F;': '/',\n '&#47;': '/'\n};\nconst unescapeHtmlEntity = m => htmlEntities[m];\nexport const unescape = text => text.replace(matchHtmlEntity, unescapeHtmlEntity);","import { unescape } from './unescape.js';\nlet defaultOptions = {\n bindI18n: 'languageChanged',\n bindI18nStore: '',\n transEmptyNodeValue: '',\n transSupportBasicHtmlNodes: true,\n transWrapTextNodes: '',\n transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'],\n useSuspense: true,\n unescape,\n transDefaultProps: undefined\n};\nexport const setDefaults = (options = {}) => {\n defaultOptions = {\n ...defaultOptions,\n ...options\n };\n};\nexport const getDefaults = () => defaultOptions;","export const warn = (i18n, code, msg, rest) => {\n const args = [msg, {\n code,\n ...(rest || {})\n }];\n if (i18n?.services?.logger?.forward) {\n return i18n.services.logger.forward(args, 'warn', 'react-i18next::', true);\n }\n if (isString(args[0])) args[0] = `react-i18next:: ${args[0]}`;\n if (i18n?.services?.logger?.warn) {\n i18n.services.logger.warn(...args);\n } else if (console?.warn) {\n console.warn(...args);\n }\n};\nconst alreadyWarned = {};\nexport const warnOnce = (i18n, code, msg, rest) => {\n if (isString(msg) && alreadyWarned[msg]) return;\n if (isString(msg)) alreadyWarned[msg] = new Date();\n warn(i18n, code, msg, rest);\n};\nconst loadedClb = (i18n, cb) => () => {\n if (i18n.isInitialized) {\n cb();\n } else {\n const initialized = () => {\n setTimeout(() => {\n i18n.off('initialized', initialized);\n }, 0);\n cb();\n };\n i18n.on('initialized', initialized);\n }\n};\nexport const loadNamespaces = (i18n, ns, cb) => {\n i18n.loadNamespaces(ns, loadedClb(i18n, cb));\n};\nexport const loadLanguages = (i18n, lng, ns, cb) => {\n if (isString(ns)) ns = [ns];\n if (i18n.options.preload && i18n.options.preload.indexOf(lng) > -1) return loadNamespaces(i18n, ns, cb);\n ns.forEach(n => {\n if (i18n.options.ns.indexOf(n) < 0) i18n.options.ns.push(n);\n });\n i18n.loadLanguages(lng, loadedClb(i18n, cb));\n};\nexport const hasLoadedNamespace = (ns, i18n, options = {}) => {\n if (!i18n.languages || !i18n.languages.length) {\n warnOnce(i18n, 'NO_LANGUAGES', 'i18n.languages were undefined or empty', {\n languages: i18n.languages\n });\n return true;\n }\n return i18n.hasLoadedNamespace(ns, {\n lng: options.lng,\n precheck: (i18nInstance, loadNotPending) => {\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18nInstance.services.backendConnector.backend && i18nInstance.isLanguageChangingTo && !loadNotPending(i18nInstance.isLanguageChangingTo, ns)) return false;\n }\n });\n};\nexport const getDisplayName = Component => Component.displayName || Component.name || (isString(Component) && Component.length > 0 ? Component : 'Unknown');\nexport const isString = obj => typeof obj === 'string';\nexport const isObject = obj => typeof obj === 'object' && obj !== null;","import { useContext, useCallback, useMemo, useEffect, useRef, useState } from 'react';\nimport { useSyncExternalStore } from 'use-sync-external-store/shim';\nimport { getI18n, getDefaults, ReportNamespaces, I18nContext } from './context.js';\nimport { warnOnce, loadNamespaces, loadLanguages, hasLoadedNamespace, isString, isObject } from './utils.js';\nconst notReadyT = (k, optsOrDefaultValue) => {\n if (isString(optsOrDefaultValue)) return optsOrDefaultValue;\n if (isObject(optsOrDefaultValue) && isString(optsOrDefaultValue.defaultValue)) return optsOrDefaultValue.defaultValue;\n if (typeof k === 'function') return '';\n if (Array.isArray(k)) {\n const last = k[k.length - 1];\n return typeof last === 'function' ? '' : last;\n }\n return k;\n};\nconst notReadySnapshot = {\n t: notReadyT,\n ready: false\n};\nconst dummySubscribe = () => () => {};\nexport const useTranslation = (ns, props = {}) => {\n const {\n i18n: i18nFromProps\n } = props;\n const {\n i18n: i18nFromContext,\n defaultNS: defaultNSFromContext\n } = useContext(I18nContext) || {};\n const i18n = i18nFromProps || i18nFromContext || getI18n();\n if (i18n && !i18n.reportNamespaces) i18n.reportNamespaces = new ReportNamespaces();\n if (!i18n) {\n warnOnce(i18n, 'NO_I18NEXT_INSTANCE', 'useTranslation: You will need to pass in an i18next instance by using initReactI18next or by passing it via props or context. In monorepo setups, make sure there is only one instance of react-i18next.');\n }\n const i18nOptions = useMemo(() => ({\n ...getDefaults(),\n ...i18n?.options?.react,\n ...props\n }), [i18n, props]);\n const {\n useSuspense,\n keyPrefix\n } = i18nOptions;\n const nsOrContext = ns || defaultNSFromContext || i18n?.options?.defaultNS;\n const unstableNamespaces = isString(nsOrContext) ? [nsOrContext] : nsOrContext || ['translation'];\n const namespaces = useMemo(() => unstableNamespaces, unstableNamespaces);\n i18n?.reportNamespaces?.addUsedNamespaces?.(namespaces);\n const revisionRef = useRef(0);\n const subscribe = useCallback(callback => {\n if (!i18n) return dummySubscribe;\n const {\n bindI18n,\n bindI18nStore\n } = i18nOptions;\n const wrappedCallback = () => {\n revisionRef.current += 1;\n callback();\n };\n if (bindI18n) i18n.on(bindI18n, wrappedCallback);\n if (bindI18nStore) i18n.store.on(bindI18nStore, wrappedCallback);\n return () => {\n if (bindI18n) bindI18n.split(' ').forEach(e => i18n.off(e, wrappedCallback));\n if (bindI18nStore) bindI18nStore.split(' ').forEach(e => i18n.store.off(e, wrappedCallback));\n };\n }, [i18n, i18nOptions]);\n const snapshotRef = useRef();\n const getSnapshot = useCallback(() => {\n if (!i18n) {\n return notReadySnapshot;\n }\n const calculatedReady = !!(i18n.isInitialized || i18n.initializedStoreOnce) && namespaces.every(n => hasLoadedNamespace(n, i18n, i18nOptions));\n const currentLng = props.lng || i18n.language;\n const currentRevision = revisionRef.current;\n const lastSnapshot = snapshotRef.current;\n if (lastSnapshot && lastSnapshot.ready === calculatedReady && lastSnapshot.lng === currentLng && lastSnapshot.keyPrefix === keyPrefix && lastSnapshot.revision === currentRevision) {\n return lastSnapshot;\n }\n const calculatedT = i18n.getFixedT(currentLng, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix, {\n scopeNs: namespaces\n });\n const newSnapshot = {\n t: calculatedT,\n ready: calculatedReady,\n lng: currentLng,\n keyPrefix,\n revision: currentRevision\n };\n snapshotRef.current = newSnapshot;\n return newSnapshot;\n }, [i18n, namespaces, keyPrefix, i18nOptions, props.lng]);\n const [loadCount, setLoadCount] = useState(0);\n const {\n t,\n ready\n } = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);\n useEffect(() => {\n if (i18n && !ready && !useSuspense) {\n const onLoaded = () => setLoadCount(c => c + 1);\n if (props.lng) {\n loadLanguages(i18n, props.lng, namespaces, onLoaded);\n } else {\n loadNamespaces(i18n, namespaces, onLoaded);\n }\n }\n }, [i18n, props.lng, namespaces, ready, useSuspense, loadCount]);\n const finalI18n = i18n || {};\n const wrapperRef = useRef(null);\n const wrapperLangRef = useRef();\n const languageKey = inst => `${inst.language}|${inst.resolvedLanguage}|${inst.languages?.join(',')}`;\n const createI18nWrapper = original => {\n const descriptors = Object.getOwnPropertyDescriptors(original);\n if (descriptors.__original) delete descriptors.__original;\n const wrapper = Object.create(Object.getPrototypeOf(original), descriptors);\n if (!Object.prototype.hasOwnProperty.call(wrapper, '__original')) {\n try {\n Object.defineProperty(wrapper, '__original', {\n value: original,\n writable: false,\n enumerable: false,\n configurable: false\n });\n } catch (_) {}\n }\n return wrapper;\n };\n const ret = useMemo(() => {\n const original = finalI18n;\n const lang = original && languageKey(original);\n let i18nWrapper = original;\n if (original) {\n if (wrapperRef.current && wrapperRef.current.__original === original) {\n if (wrapperLangRef.current !== lang) {\n i18nWrapper = createI18nWrapper(original);\n wrapperRef.current = i18nWrapper;\n wrapperLangRef.current = lang;\n } else {\n i18nWrapper = wrapperRef.current;\n }\n } else {\n i18nWrapper = createI18nWrapper(original);\n wrapperRef.current = i18nWrapper;\n wrapperLangRef.current = lang;\n }\n }\n const effectiveT = !ready && !useSuspense ? (...args) => {\n warnOnce(i18n, 'USE_T_BEFORE_READY', 'useTranslation: t was called before ready. When using useSuspense: false, make sure to check the ready flag before using t.');\n return t(...args);\n } : t;\n const arr = [effectiveT, i18nWrapper, ready];\n arr.t = effectiveT;\n arr.i18n = i18nWrapper;\n arr.ready = ready;\n return arr;\n }, [t, finalI18n, ready, finalI18n.resolvedLanguage, finalI18n.language, finalI18n.languages]);\n if (i18n && useSuspense && !ready) {\n let inDevelopment = false;\n try {\n inDevelopment = process.env.NODE_ENV !== 'production';\n } catch (e) {}\n if (inDevelopment) {\n warnOnce(i18n, 'SUSPENDED_WHILE_LOADING', 'useTranslation: suspended while translations are loading (useSuspense is true by default). Add a <Suspense> boundary above this component, or set react.useSuspense: false in the i18next init options. https://react.i18next.com/latest/usetranslation-hook');\n }\n throw new Promise(resolve => {\n const onLoaded = () => resolve();\n if (props.lng) {\n loadLanguages(i18n, props.lng, namespaces, onLoaded);\n } else {\n loadNamespaces(i18n, namespaces, onLoaded);\n }\n });\n }\n return ret;\n};","import { useTranslation as useTranslationOriginal } from 'react-i18next';\n\nexport const useTranslation = () => {\n const { t, i18n } = useTranslationOriginal();\n\n const changeLanguage = (language: 'ru' | 'en') => {\n i18n.changeLanguage(language);\n };\n\n return {\n t,\n currentLanguage: i18n.language as 'ru' | 'en',\n changeLanguage,\n };\n};\n","import { Item } from '../models/Item';\nimport { SelectedItems } from '../models/SelectedItems';\n\nexport const filterItems = (items: Item[], filterText: string, selectedItems: SelectedItems) => {\n if (!filterText) {\n return items.filter((item) => !selectedItems[item.value]);\n }\n\n const reduceCallback = (filteredItems: Item[], item: Item) => {\n if (item.name.toUpperCase().includes(filterText.toUpperCase()) && !selectedItems[item.value]) {\n filteredItems.push({ ...item });\n }\n\n return filteredItems;\n };\n\n return items.reduce(reduceCallback, []);\n};\n","import classnames from 'classnames';\nimport { ChangeEvent, HTMLAttributes, forwardRef, useCallback, useMemo, useState } from 'react';\n\nimport { Typography } from '@components/data-display/Typography';\nimport { useTranslation } from '@hooks/useTranslation';\nimport { SearchIcon } from '@icons/SearchIcon';\nimport { PropsObject, UiProps } from '@models/UiProps';\n\nimport * as styles from './checklist.module.css';\nimport { Button } from '../Button';\nimport { Checkbox } from '../Checkbox';\nimport { Input } from '../Input';\nimport { Item } from './models/Item';\nimport { SelectedItems } from './models/SelectedItems';\nimport { filterItems } from './utils/filterItems';\n\ninterface Props {\n items: Item[];\n selected: SelectedItems;\n disableSearch?: boolean;\n isDisabled?: boolean;\n actionWithSelected: (value: SelectedItems) => void;\n onChangeItem?: (item: Item) => void;\n}\n\nexport const Checklist = forwardRef<HTMLDivElement, UiProps<Props> & HTMLAttributes<HTMLDivElement>>(function Checklist(\n { items, selected, disableSearch, isDisabled, actionWithSelected, onChangeItem, classes, className, ...rest },\n ref,\n) {\n const { t } = useTranslation();\n\n const [filterSubstring, setFilterSubstring] = useState('');\n\n // Мемоизация отфильтрованных элементов\n const filteredItems = useMemo(() => {\n return filterItems(items, filterSubstring, selected);\n }, [items, filterSubstring, selected]);\n\n // Мемоизация списка выбранных элементов\n const selectedItemsList = useMemo(() => {\n return items.filter((item) => !!selected[item.value]);\n }, [items, selected]);\n\n const handleClick = useCallback(\n (item: Item) => {\n const value = !selected[item.value];\n\n if (onChangeItem) {\n onChangeItem(item);\n }\n\n const newSelected = { ...selected, [item.value]: value };\n actionWithSelected(newSelected);\n },\n [selected, onChangeItem, actionWithSelected],\n );\n\n const onSelectAll = useCallback(() => {\n const newSelected = { ...selected };\n filteredItems.forEach((item) => {\n newSelected[item.value] = true;\n });\n actionWithSelected(newSelected);\n }, [selected, filteredItems, actionWithSelected]);\n\n const onUnSelectAll = useCallback(() => {\n // Очищаем только те элементы, которые были выбраны\n const newSelected = { ...selected };\n selectedItemsList.forEach((item) => {\n delete newSelected[item.value];\n });\n actionWithSelected(newSelected);\n }, [selected, selectedItemsList, actionWithSelected]);\n\n const handleFilterChange = useCallback((e: ChangeEvent<HTMLInputElement>) => {\n setFilterSubstring(e.target.value);\n }, []);\n\n const handleCheckboxChange = useCallback(\n (item: Item) => (e: ChangeEvent<HTMLInputElement>) => {\n e.stopPropagation();\n handleClick(item);\n },\n [handleClick],\n );\n\n return (\n <div ref={ref} className={classnames(styles.root, className, classes?.root)} {...rest}>\n {' '}\n {!disableSearch && (\n <Input\n variant=\"outlined\"\n startIcon={<SearchIcon />}\n placeholder={t('Поиск...')}\n disabled={isDisabled}\n value={filterSubstring}\n fullWidth\n classes={classes?.searchInput as PropsObject | undefined}\n onChange={handleFilterChange}\n />\n )}\n <div className={classnames(styles.scrolled, 'styledScroll', classes?.scrolled)}>\n {selectedItemsList.length > 0 && (\n <>\n <div className={classnames(styles.actionWrap, classes?.actionWrap)}>\n <Typography className={classnames(classes?.typography)}>{t('Выбранное')}</Typography>\n <Button\n variant=\"text\"\n componentSize=\"small\"\n compact\n disabled={isDisabled}\n onClick={onUnSelectAll}\n className={classnames(classes?.button)}\n >\n {t('Отменить')}\n </Button>\n </div>\n <div>\n {selectedItemsList.map((item) => (\n <Checkbox\n key={`selected-${item.value}`}\n label={item.name}\n checked={!!selected[item.value]}\n onChange={handleCheckboxChange(item)}\n disabled={isDisabled}\n classes={classes?.checkbox as PropsObject | undefined}\n />\n ))}\n </div>\n </>\n )}\n {!isDisabled && !!filteredItems.length && (\n <Button\n variant=\"text\"\n componentSize=\"small\"\n compact\n disabled={isDisabled}\n onClick={onSelectAll}\n className={classnames(classes?.button)}\n >\n {t('Выбрать все')}\n </Button>\n )}\n <div>\n {filteredItems.map((item) => (\n <Checkbox\n key={`filtered-${item.value}`}\n label={item.name}\n checked={!!selected[item.value]}\n onChange={handleCheckboxChange(item)}\n disabled={isDisabled}\n classes={classes?.checkbox as PropsObject | undefined}\n />\n ))}\n </div>\n </div>\n </div>\n );\n});\n","// extracted by mini-css-extract-plugin\nvar _1 = \"checklist-module__action-wrap___WNPp\";\nvar _2 = \"checklist-module__root__rtLgn\";\nvar _3 = \"checklist-module__scrolled__t7xdx\";\nexport { _1 as \"actionWrap\", _2 as \"root\", _3 as \"scrolled\" }\n","import classNames from 'classnames';\nimport { useCallback, useMemo } from 'react';\n\nimport { Checklist, Item as ChecklistItem, SelectedItems } from '@components/inputs/Checklist';\nimport { FieldSize } from '@components/inputs/FieldShell';\nimport { PropsObject, UiProps } from '@models/UiProps';\n\nimport { Item } from '../../models/Item';\n\ninterface Props {\n items: Item[];\n componentSize?: FieldSize;\n selected: string[] | null;\n onSelectedChange: (items: Item[]) => void;\n enableSearch?: boolean;\n disabled?: boolean;\n}\n\nexport function SelectPopover(props: UiProps<Props>) {\n const { items, selected, onSelectedChange, classes, enableSearch = false, disabled } = props;\n\n const checklistItems = useMemo<ChecklistItem[]>(\n () =>\n items.map((item) => ({\n name: item.name,\n value: item.value,\n })),\n [items],\n );\n\n const selectedItems = useMemo<SelectedItems>(() => {\n const result: SelectedItems = {};\n selected?.forEach((value) => {\n result[value] = true;\n });\n return result;\n }, [selected]);\n\n const handleActionWithSelected = useCallback(\n (newSelected: SelectedItems) => {\n const values = Object.entries(newSelected).reduce<Item[]>((acc, [value, isSelected]) => {\n if (isSelected) {\n const item = items.find((i) => i.value === value);\n if (item) {\n acc.push(item);\n }\n }\n return acc;\n }, []);\n onSelectedChange(values);\n },\n [onSelectedChange, items],\n );\n\n const { checklistWrapper, ...checklistClasses } = (classes as PropsObject | undefined) ?? {};\n\n return (\n <div className={classNames(checklistWrapper)}>\n <Checklist\n disableSearch={!enableSearch}\n isDisabled={disabled}\n items={checklistItems}\n selected={selectedItems}\n actionWithSelected={handleActionWithSelected}\n classes={checklistClasses as PropsObject | undefined}\n />\n </div>\n );\n}\n","import { Item } from '../models/Item';\nimport { TitleVariant } from '../models/TitleVariant';\n\nexport const getTitle = (titleType: TitleVariant, activeItems: Item[], t: (v: string) => string) => {\n switch (titleType) {\n case 'allValue': {\n return activeItems.map((i) => i.name).join(', ');\n }\n case 'numberValue': {\n return `${t('Выбрано элементов')}: ` + activeItems.length;\n }\n case 'firstValue': {\n return `${activeItems[0]?.name} ${activeItems.length > 1 ? ' +' + (activeItems.length - 1) : ''}`;\n }\n case 'chips': {\n return '';\n }\n }\n};\n","import classnames from 'classnames';\nimport {\n DetailedHTMLProps,\n InputHTMLAttributes,\n MouseEvent,\n ReactNode,\n forwardRef,\n useCallback,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { mergeRefs } from 'react-merge-refs';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { FieldError, FieldErrorIcon, FieldShell, FieldSize, FieldVariant } from '@components/inputs/FieldShell';\nimport * as fieldStyles from '@components/inputs/FieldShell/fieldShell.module.css';\nimport { InputChip } from '@components/inputs/InputChip';\nimport { Popover } from '@components/utils/Popover';\nimport { Arrow } from '@components/utils/Popover/ui/Arrow';\nimport { CloseIcon } from '@icons/CloseIcon';\nimport { PropsObject, UiProps } from '@models/UiProps';\n\nimport { Item } from './models/Item';\nimport { TitleVariant } from './models/TitleVariant';\nimport * as styles from './multiSelect.module.css';\nimport { SelectPopover } from './ui/SelectPopover';\nimport { getTitle } from './utils/getTitle';\n\ninterface Props {\n variant?: FieldVariant;\n componentSize?: FieldSize;\n icon?: ReactNode;\n fullWidth?: boolean;\n label?: string;\n error?: FieldError;\n placeholder?: string;\n items: Item[];\n onValueChange?: (newItem: Item[] | null) => void;\n selected: string[] | null;\n titleType?: TitleVariant;\n showSelectedCount?: boolean;\n enableSearch?: boolean;\n popoverInComponent?: boolean;\n}\n\nexport const MultiSelect = forwardRef<\n HTMLInputElement,\n UiProps<Props> & DetailedHTMLProps<InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>\n>(function MultiSelect(props, ref) {\n const {\n variant = 'filled',\n componentSize = 'medium',\n icon,\n fullWidth,\n label,\n error,\n placeholder,\n items,\n onValueChange,\n selected,\n classes,\n disabled,\n id,\n titleType = 'allValue',\n showSelectedCount = false,\n enableSearch = false,\n popoverInComponent = false,\n ...inputProps\n } = props;\n\n const chips = titleType === 'chips';\n\n const { t } = useTranslation();\n\n const wrapperRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n const popoverTargetRef = useRef<HTMLDivElement>(null);\n\n const [isPopoverOpen, setIsPopoverOpen] = useState(false);\n const [popoverWidth, setPopoverWidth] = useState<number>();\n const [popoverLayoutVersion, setPopoverLayoutVersion] = useState(0);\n\n const activeItems = useMemo(() => items.filter((i) => selected?.includes(i.value)), [selected, items]);\n\n useLayoutEffect(() => {\n const element = wrapperRef.current;\n if (!element) {\n return;\n }\n\n const updateLayout = () => {\n const { width } = element.getBoundingClientRect();\n setPopoverWidth(width);\n setPopoverLayoutVersion((prev) => prev + 1);\n };\n\n updateLayout();\n\n if (typeof ResizeObserver === 'undefined') {\n return;\n }\n\n const resizeObserver = new ResizeObserver(updateLayout);\n resizeObserver.observe(element);\n\n return () => {\n resizeObserver.disconnect();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (chips) {\n setPopoverLayoutVersion((prev) => prev + 1);\n }\n }, [chips, activeItems.length]);\n\n const inputClickHandler = useCallback(\n (e: MouseEvent) => {\n e.preventDefault();\n if (!disabled) {\n setIsPopoverOpen((prev) => !prev);\n }\n },\n [disabled],\n );\n\n const handleSelectedChange = useCallback(\n (newItems: Item[]) => {\n onValueChange?.(newItems);\n },\n [onValueChange],\n );\n\n const title = useMemo(() => {\n if (!activeItems.length) return '';\n return getTitle(titleType, activeItems, t);\n }, [titleType, activeItems, t]);\n\n const clearHandler = () => {\n onValueChange?.(null);\n };\n const inputId = id ?? uuidv4();\n const showErrorIcon = !!error && !label;\n\n return (\n <FieldShell\n variant={variant}\n componentSize={componentSize}\n fullWidth={fullWidth}\n label={label}\n error={error}\n labelExtra={\n showSelectedCount && activeItems.length > 0 ? (\n <span\n className={classnames(styles.labelSelectedCount, classes?.labelSelectedCount)}\n >{` (${activeItems.length})`}</span>\n ) : undefined\n }\n inputId={inputId}\n onLabelClick={inputClickHandler}\n ref={wrapperRef}\n hasStartIcon={!!icon}\n hasArrow\n hasErrorIcon={showErrorIcon}\n hasClearButton={!!activeItems.length}\n chipsMode={chips}\n classes={classes}\n >\n <input\n ref={mergeRefs([inputRef, ref])}\n id={inputId}\n className={classnames(fieldStyles.input, styles.input, classes?.input)}\n placeholder={chips && activeItems.length ? undefined : placeholder}\n {...inputProps}\n value={chips ? '' : title}\n onClick={inputClickHandler}\n disabled={disabled}\n readOnly\n title={chips ? undefined : activeItems.map((i) => i.name).join(', ')}\n autoComplete={'off'}\n />\n {chips && !!activeItems.length && (\n <span className={classnames(fieldStyles.chips, styles.chips, classes?.chips)}>\n {activeItems.map((item) => (\n <InputChip\n key={item.value}\n componentSize={componentSize}\n disabled={disabled}\n onClick={() => {\n if (!disabled) setIsPopoverOpen((prev) => !prev);\n }}\n onRemove={() => {\n const rest = activeItems.filter((i) => i.value !== item.value);\n onValueChange?.(rest.length ? rest : null);\n }}\n >\n {item.name}\n </InputChip>\n ))}\n </span>\n )}\n {!!icon && (\n <span onClick={inputClickHandler} className={classnames(styles.icon, classes?.icon)}>\n {icon}\n </span>\n )}\n {!!activeItems.length && (\n <span onClick={clearHandler} className={classnames(styles.clear, classes?.clear)}>\n <CloseIcon />\n </span>\n )}\n <span onClick={inputClickHandler} className={classnames(fieldStyles.arrow, classes?.arrow)}>\n <Arrow />\n </span>\n {showErrorIcon && error && (\n <FieldErrorIcon error={error} componentSize={componentSize} className={classes?.errorIcon} />\n )}\n <Popover\n placement=\"bottom-start\"\n open={isPopoverOpen}\n onOpenChange={setIsPopoverOpen}\n contentStyle={\n popoverWidth ? { width: popoverWidth, minWidth: popoverWidth, maxWidth: popoverWidth } : undefined\n }\n classes={{\n content: classnames(styles.popoverContent, classes?.popoverContent),\n ...(classes?.popover as PropsObject | undefined),\n }}\n containerOffset={4}\n layoutVersion={popoverLayoutVersion}\n root={popoverInComponent ? wrapperRef.current : undefined}\n description={\n <SelectPopover\n items={items}\n classes={{\n searchInput: {\n root: styles.searchInputRoot,\n ...((classes?.selectPopover as PropsObject | undefined)?.searchInput as PropsObject | undefined),\n },\n root: styles.checklistRoot,\n checklistWrapper: classnames(styles.checklistWrapper),\n scrolled: styles.checklistScrolled,\n ...(classes?.selectPopover as PropsObject | undefined),\n }}\n componentSize={componentSize}\n selected={selected}\n onSelectedChange={handleSelectedChange}\n enableSearch={enableSearch}\n disabled={disabled}\n />\n }\n >\n <div ref={popoverTargetRef} className={classnames(styles.popoverTarget)} />\n </Popover>\n </FieldShell>\n );\n});\n","// extracted by mini-css-extract-plugin\nvar _1 = \"multiSelect-module__checklist-root__SqDIN\";\nvar _2 = \"multiSelect-module__checklist-scrolled__XQQba\";\nvar _3 = \"multiSelect-module__checklist-wrapper__Fw8O9\";\nvar _4 = \"multiSelect-module__chips__jJlqe\";\nvar _5 = \"multiSelect-module__clear__s8X8D\";\nvar _6 = \"multiSelect-module__icon__f8pIe\";\nvar _7 = \"multiSelect-module__input__vG33L\";\nvar _8 = \"multiSelect-module__label-selected-count__vykag\";\nvar _9 = \"multiSelect-module__popover-content__OYXE6\";\nvar _a = \"multiSelect-module__popover-target__CM0gG\";\nvar _b = \"multiSelect-module__search-input-root__S2Us8\";\nexport { _1 as \"checklistRoot\", _2 as \"checklistScrolled\", _3 as \"checklistWrapper\", _4 as \"chips\", _5 as \"clear\", _6 as \"icon\", _7 as \"input\", _8 as \"labelSelectedCount\", _9 as \"popoverContent\", _a as \"popoverTarget\", _b as \"searchInputRoot\" }\n","// extracted by mini-css-extract-plugin\nvar _1 = \"radioButton-module__deselected__phKEf\";\nvar _2 = \"radioButton-module__input__EBKKq\";\nvar _3 = \"radioButton-module__label__E8YrK\";\nvar _4 = \"radioButton-module__label-text__JHs3s\";\nvar _5 = \"radioButton-module__pressed__zYl50\";\nvar _6 = \"radioButton-module__radio__HJxXO\";\nvar _7 = \"radioButton-module__root__stJhI\";\nvar _8 = \"radioButton-module__selected__KErVW\";\nexport { _1 as \"deselected\", _2 as \"input\", _3 as \"label\", _4 as \"labelText\", _5 as \"pressed\", _6 as \"radio\", _7 as \"root\", _8 as \"selected\" }\n","import classnames from 'classnames';\nimport { DetailedHTMLProps, InputHTMLAttributes, MouseEvent, forwardRef, useCallback, useEffect, useRef } from 'react';\nimport { mergeRefs } from 'react-merge-refs';\n\nimport { Typography } from '@components/data-display/Typography';\nimport { useCompatId } from '@hooks/useCompatId';\nimport { RadioDeselectedIcon } from '@icons/RadioDeselectedIcon';\nimport { RadioSelectedIcon } from '@icons/RadioSelectedIcon';\nimport { CheckboxSize } from '@models/CheckboxSize';\nimport { UiProps } from '@models/UiProps';\n\nimport * as styles from './radioButton.module.css';\n\ninterface Props {\n label?: string;\n componentSize?: CheckboxSize;\n canUncheck?: boolean;\n onUncheck?: () => void;\n}\n\nexport const RadioButton = forwardRef<\n HTMLInputElement,\n UiProps<Props> & DetailedHTMLProps<InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>\n>(function RadioButton(props, ref) {\n const { label, componentSize = 'medium', canUncheck, onUncheck, classes, id, onClick, ...inputProps } = props;\n\n const inputRef = useRef<HTMLInputElement>(null);\n const wasCheckedRef = useRef(false);\n const generatedId = useCompatId();\n const inputId = id ?? generatedId;\n\n useEffect(() => {\n const el = inputRef.current;\n if (!el) return;\n\n const mouseupListener = () => el.classList.remove(styles.pressed);\n const mousedownListener = () => {\n el.classList.add(styles.pressed);\n wasCheckedRef.current = el.checked;\n };\n\n el.addEventListener('mousedown', mousedownListener);\n el.addEventListener('mouseup', mouseupListener);\n\n return () => {\n el.removeEventListener('mousedown', mousedownListener);\n el.removeEventListener('mouseup', mouseupListener);\n };\n }, []);\n\n const handleClick = useCallback(\n (e: MouseEvent<HTMLInputElement>) => {\n if (canUncheck && wasCheckedRef.current) {\n inputRef.current!.checked = false;\n onUncheck?.();\n }\n onClick?.(e);\n },\n [canUncheck, onUncheck, onClick],\n );\n\n const typographyVariant = componentSize === 'large' ? 'subtitle1' : 'subtitle2';\n\n return (\n <div className={classnames(styles.root, classes?.root)}>\n <input\n ref={mergeRefs([inputRef, ref])}\n type=\"radio\"\n className={classnames(styles.input, classes?.input)}\n id={inputId}\n title={label}\n onClick={handleClick}\n {...inputProps}\n />\n <label htmlFor={inputId} className={classnames(styles.label, classes?.label)} title={label}>\n <span className={classnames(styles.radio, styles.deselected, classes?.radio)}>\n <RadioDeselectedIcon />\n </span>\n <span className={classnames(styles.radio, styles.selected, classes?.radio)}>\n <RadioSelectedIcon />\n </span>\n {!!label && (\n <Typography variant={typographyVariant} className={classnames(styles.labelText, classes?.labelText)}>\n {label}\n </Typography>\n )}\n </label>\n </div>\n );\n});\n","/**\n * table-core\n *\n * Copyright (c) TanStack\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n// type Person = {\n// firstName: string\n// lastName: string\n// age: number\n// visits: number\n// status: string\n// progress: number\n// createdAt: Date\n// nested: {\n// foo: [\n// {\n// bar: 'bar'\n// }\n// ]\n// bar: { subBar: boolean }[]\n// baz: {\n// foo: 'foo'\n// bar: {\n// baz: 'baz'\n// }\n// }\n// }\n// }\n\n// const test: DeepKeys<Person> = 'nested.foo.0.bar'\n// const test2: DeepKeys<Person> = 'nested.bar'\n\n// const helper = createColumnHelper<Person>()\n\n// helper.accessor('nested.foo', {\n// cell: info => info.getValue(),\n// })\n\n// helper.accessor('nested.foo.0.bar', {\n// cell: info => info.getValue(),\n// })\n\n// helper.accessor('nested.bar', {\n// cell: info => info.getValue(),\n// })\n\nfunction createColumnHelper() {\n return {\n accessor: (accessor, column) => {\n return typeof accessor === 'function' ? {\n ...column,\n accessorFn: accessor\n } : {\n ...column,\n accessorKey: accessor\n };\n },\n display: column => column,\n group: column => column\n };\n}\n\n// Is this type a tuple?\n\n// If this type is a tuple, what indices are allowed?\n\n///\n\nfunction functionalUpdate(updater, input) {\n return typeof updater === 'function' ? updater(input) : updater;\n}\nfunction noop() {\n //\n}\nfunction makeStateUpdater(key, instance) {\n return updater => {\n instance.setState(old => {\n return {\n ...old,\n [key]: functionalUpdate(updater, old[key])\n };\n });\n };\n}\nfunction isFunction(d) {\n return d instanceof Function;\n}\nfunction isNumberArray(d) {\n return Array.isArray(d) && d.every(val => typeof val === 'number');\n}\nfunction flattenBy(arr, getChildren) {\n const flat = [];\n const recurse = subArr => {\n subArr.forEach(item => {\n flat.push(item);\n const children = getChildren(item);\n if (children != null && children.length) {\n recurse(children);\n }\n });\n };\n recurse(arr);\n return flat;\n}\nfunction memo(getDeps, fn, opts) {\n let deps = [];\n let result;\n return depArgs => {\n let depTime;\n if (opts.key && opts.debug) depTime = Date.now();\n const newDeps = getDeps(depArgs);\n const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep);\n if (!depsChanged) {\n return result;\n }\n deps = newDeps;\n let resultTime;\n if (opts.key && opts.debug) resultTime = Date.now();\n result = fn(...newDeps);\n opts == null || opts.onChange == null || opts.onChange(result);\n if (opts.key && opts.debug) {\n if (opts != null && opts.debug()) {\n const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;\n const resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;\n const resultFpsPercentage = resultEndTime / 16;\n const pad = (str, num) => {\n str = String(str);\n while (str.length < num) {\n str = ' ' + str;\n }\n return str;\n };\n console.info(`%c⏱ ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`, `\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(0, Math.min(120 - 120 * resultFpsPercentage, 120))}deg 100% 31%);`, opts == null ? void 0 : opts.key);\n }\n }\n return result;\n };\n}\nfunction getMemoOptions(tableOptions, debugLevel, key, onChange) {\n return {\n debug: () => {\n var _tableOptions$debugAl;\n return (_tableOptions$debugAl = tableOptions == null ? void 0 : tableOptions.debugAll) != null ? _tableOptions$debugAl : tableOptions[debugLevel];\n },\n key: process.env.NODE_ENV === 'development' && key,\n onChange\n };\n}\n\nfunction createCell(table, row, column, columnId) {\n const getRenderValue = () => {\n var _cell$getValue;\n return (_cell$getValue = cell.getValue()) != null ? _cell$getValue : table.options.renderFallbackValue;\n };\n const cell = {\n id: `${row.id}_${column.id}`,\n row,\n column,\n getValue: () => row.getValue(columnId),\n renderValue: getRenderValue,\n getContext: memo(() => [table, column, row, cell], (table, column, row, cell) => ({\n table,\n column,\n row,\n cell: cell,\n getValue: cell.getValue,\n renderValue: cell.renderValue\n }), getMemoOptions(table.options, 'debugCells', 'cell.getContext'))\n };\n table._features.forEach(feature => {\n feature.createCell == null || feature.createCell(cell, column, row, table);\n }, {});\n return cell;\n}\n\nfunction createColumn(table, columnDef, depth, parent) {\n var _ref, _resolvedColumnDef$id;\n const defaultColumn = table._getDefaultColumnDef();\n const resolvedColumnDef = {\n ...defaultColumn,\n ...columnDef\n };\n const accessorKey = resolvedColumnDef.accessorKey;\n let id = (_ref = (_resolvedColumnDef$id = resolvedColumnDef.id) != null ? _resolvedColumnDef$id : accessorKey ? typeof String.prototype.replaceAll === 'function' ? accessorKey.replaceAll('.', '_') : accessorKey.replace(/\\./g, '_') : undefined) != null ? _ref : typeof resolvedColumnDef.header === 'string' ? resolvedColumnDef.header : undefined;\n let accessorFn;\n if (resolvedColumnDef.accessorFn) {\n accessorFn = resolvedColumnDef.accessorFn;\n } else if (accessorKey) {\n // Support deep accessor keys\n if (accessorKey.includes('.')) {\n accessorFn = originalRow => {\n let result = originalRow;\n for (const key of accessorKey.split('.')) {\n var _result;\n result = (_result = result) == null ? void 0 : _result[key];\n if (process.env.NODE_ENV !== 'production' && result === undefined) {\n console.warn(`\"${key}\" in deeply nested key \"${accessorKey}\" returned undefined.`);\n }\n }\n return result;\n };\n } else {\n accessorFn = originalRow => originalRow[resolvedColumnDef.accessorKey];\n }\n }\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(resolvedColumnDef.accessorFn ? `Columns require an id when using an accessorFn` : `Columns require an id when using a non-string header`);\n }\n throw new Error();\n }\n let column = {\n id: `${String(id)}`,\n accessorFn,\n parent: parent,\n depth,\n columnDef: resolvedColumnDef,\n columns: [],\n getFlatColumns: memo(() => [true], () => {\n var _column$columns;\n return [column, ...((_column$columns = column.columns) == null ? void 0 : _column$columns.flatMap(d => d.getFlatColumns()))];\n }, getMemoOptions(table.options, 'debugColumns', 'column.getFlatColumns')),\n getLeafColumns: memo(() => [table._getOrderColumnsFn()], orderColumns => {\n var _column$columns2;\n if ((_column$columns2 = column.columns) != null && _column$columns2.length) {\n let leafColumns = column.columns.flatMap(column => column.getLeafColumns());\n return orderColumns(leafColumns);\n }\n return [column];\n }, getMemoOptions(table.options, 'debugColumns', 'column.getLeafColumns'))\n };\n for (const feature of table._features) {\n feature.createColumn == null || feature.createColumn(column, table);\n }\n\n // Yes, we have to convert table to unknown, because we know more than the compiler here.\n return column;\n}\n\nconst debug = 'debugHeaders';\n//\n\nfunction createHeader(table, column, options) {\n var _options$id;\n const id = (_options$id = options.id) != null ? _options$id : column.id;\n let header = {\n id,\n column,\n index: options.index,\n isPlaceholder: !!options.isPlaceholder,\n placeholderId: options.placeholderId,\n depth: options.depth,\n subHeaders: [],\n colSpan: 0,\n rowSpan: 0,\n headerGroup: null,\n getLeafHeaders: () => {\n const leafHeaders = [];\n const recurseHeader = h => {\n if (h.subHeaders && h.subHeaders.length) {\n h.subHeaders.map(recurseHeader);\n }\n leafHeaders.push(h);\n };\n recurseHeader(header);\n return leafHeaders;\n },\n getContext: () => ({\n table,\n header: header,\n column\n })\n };\n table._features.forEach(feature => {\n feature.createHeader == null || feature.createHeader(header, table);\n });\n return header;\n}\nconst Headers = {\n createTable: table => {\n // Header Groups\n\n table.getHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, leafColumns, left, right) => {\n var _left$map$filter, _right$map$filter;\n const leftColumns = (_left$map$filter = left == null ? void 0 : left.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _left$map$filter : [];\n const rightColumns = (_right$map$filter = right == null ? void 0 : right.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _right$map$filter : [];\n const centerColumns = leafColumns.filter(column => !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id)));\n const headerGroups = buildHeaderGroups(allColumns, [...leftColumns, ...centerColumns, ...rightColumns], table);\n return headerGroups;\n }, getMemoOptions(table.options, debug, 'getHeaderGroups'));\n table.getCenterHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, leafColumns, left, right) => {\n leafColumns = leafColumns.filter(column => !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id)));\n return buildHeaderGroups(allColumns, leafColumns, table, 'center');\n }, getMemoOptions(table.options, debug, 'getCenterHeaderGroups'));\n table.getLeftHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left], (allColumns, leafColumns, left) => {\n var _left$map$filter2;\n const orderedLeafColumns = (_left$map$filter2 = left == null ? void 0 : left.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _left$map$filter2 : [];\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'left');\n }, getMemoOptions(table.options, debug, 'getLeftHeaderGroups'));\n table.getRightHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.right], (allColumns, leafColumns, right) => {\n var _right$map$filter2;\n const orderedLeafColumns = (_right$map$filter2 = right == null ? void 0 : right.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _right$map$filter2 : [];\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'right');\n }, getMemoOptions(table.options, debug, 'getRightHeaderGroups'));\n\n // Footer Groups\n\n table.getFooterGroups = memo(() => [table.getHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getFooterGroups'));\n table.getLeftFooterGroups = memo(() => [table.getLeftHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getLeftFooterGroups'));\n table.getCenterFooterGroups = memo(() => [table.getCenterHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getCenterFooterGroups'));\n table.getRightFooterGroups = memo(() => [table.getRightHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getRightFooterGroups'));\n\n // Flat Headers\n\n table.getFlatHeaders = memo(() => [table.getHeaderGroups()], headerGroups => {\n return headerGroups.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getFlatHeaders'));\n table.getLeftFlatHeaders = memo(() => [table.getLeftHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getLeftFlatHeaders'));\n table.getCenterFlatHeaders = memo(() => [table.getCenterHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getCenterFlatHeaders'));\n table.getRightFlatHeaders = memo(() => [table.getRightHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getRightFlatHeaders'));\n\n // Leaf Headers\n\n table.getCenterLeafHeaders = memo(() => [table.getCenterFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders;\n return !((_header$subHeaders = header.subHeaders) != null && _header$subHeaders.length);\n });\n }, getMemoOptions(table.options, debug, 'getCenterLeafHeaders'));\n table.getLeftLeafHeaders = memo(() => [table.getLeftFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders2;\n return !((_header$subHeaders2 = header.subHeaders) != null && _header$subHeaders2.length);\n });\n }, getMemoOptions(table.options, debug, 'getLeftLeafHeaders'));\n table.getRightLeafHeaders = memo(() => [table.getRightFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders3;\n return !((_header$subHeaders3 = header.subHeaders) != null && _header$subHeaders3.length);\n });\n }, getMemoOptions(table.options, debug, 'getRightLeafHeaders'));\n table.getLeafHeaders = memo(() => [table.getLeftHeaderGroups(), table.getCenterHeaderGroups(), table.getRightHeaderGroups()], (left, center, right) => {\n var _left$0$headers, _left$, _center$0$headers, _center$, _right$0$headers, _right$;\n return [...((_left$0$headers = (_left$ = left[0]) == null ? void 0 : _left$.headers) != null ? _left$0$headers : []), ...((_center$0$headers = (_center$ = center[0]) == null ? void 0 : _center$.headers) != null ? _center$0$headers : []), ...((_right$0$headers = (_right$ = right[0]) == null ? void 0 : _right$.headers) != null ? _right$0$headers : [])].map(header => {\n return header.getLeafHeaders();\n }).flat();\n }, getMemoOptions(table.options, debug, 'getLeafHeaders'));\n }\n};\nfunction buildHeaderGroups(allColumns, columnsToGroup, table, headerFamily) {\n var _headerGroups$0$heade, _headerGroups$;\n // Find the max depth of the columns:\n // build the leaf column row\n // build each buffer row going up\n // placeholder for non-existent level\n // real column for existing level\n\n let maxDepth = 0;\n const findMaxDepth = function (columns, depth) {\n if (depth === void 0) {\n depth = 1;\n }\n maxDepth = Math.max(maxDepth, depth);\n columns.filter(column => column.getIsVisible()).forEach(column => {\n var _column$columns;\n if ((_column$columns = column.columns) != null && _column$columns.length) {\n findMaxDepth(column.columns, depth + 1);\n }\n }, 0);\n };\n findMaxDepth(allColumns);\n let headerGroups = [];\n const createHeaderGroup = (headersToGroup, depth) => {\n // The header group we are creating\n const headerGroup = {\n depth,\n id: [headerFamily, `${depth}`].filter(Boolean).join('_'),\n headers: []\n };\n\n // The parent columns we're going to scan next\n const pendingParentHeaders = [];\n\n // Scan each column for parents\n headersToGroup.forEach(headerToGroup => {\n // What is the latest (last) parent column?\n\n const latestPendingParentHeader = [...pendingParentHeaders].reverse()[0];\n const isLeafHeader = headerToGroup.column.depth === headerGroup.depth;\n let column;\n let isPlaceholder = false;\n if (isLeafHeader && headerToGroup.column.parent) {\n // The parent header is new\n column = headerToGroup.column.parent;\n } else {\n // The parent header is repeated\n column = headerToGroup.column;\n isPlaceholder = true;\n }\n if (latestPendingParentHeader && (latestPendingParentHeader == null ? void 0 : latestPendingParentHeader.column) === column) {\n // This column is repeated. Add it as a sub header to the next batch\n latestPendingParentHeader.subHeaders.push(headerToGroup);\n } else {\n // This is a new header. Let's create it\n const header = createHeader(table, column, {\n id: [headerFamily, depth, column.id, headerToGroup == null ? void 0 : headerToGroup.id].filter(Boolean).join('_'),\n isPlaceholder,\n placeholderId: isPlaceholder ? `${pendingParentHeaders.filter(d => d.column === column).length}` : undefined,\n depth,\n index: pendingParentHeaders.length\n });\n\n // Add the headerToGroup as a subHeader of the new header\n header.subHeaders.push(headerToGroup);\n // Add the new header to the pendingParentHeaders to get grouped\n // in the next batch\n pendingParentHeaders.push(header);\n }\n headerGroup.headers.push(headerToGroup);\n headerToGroup.headerGroup = headerGroup;\n });\n headerGroups.push(headerGroup);\n if (depth > 0) {\n createHeaderGroup(pendingParentHeaders, depth - 1);\n }\n };\n const bottomHeaders = columnsToGroup.map((column, index) => createHeader(table, column, {\n depth: maxDepth,\n index\n }));\n createHeaderGroup(bottomHeaders, maxDepth - 1);\n headerGroups.reverse();\n\n // headerGroups = headerGroups.filter(headerGroup => {\n // return !headerGroup.headers.every(header => header.isPlaceholder)\n // })\n\n const recurseHeadersForSpans = headers => {\n const filteredHeaders = headers.filter(header => header.column.getIsVisible());\n return filteredHeaders.map(header => {\n let colSpan = 0;\n let rowSpan = 0;\n let childRowSpans = [0];\n if (header.subHeaders && header.subHeaders.length) {\n childRowSpans = [];\n recurseHeadersForSpans(header.subHeaders).forEach(_ref => {\n let {\n colSpan: childColSpan,\n rowSpan: childRowSpan\n } = _ref;\n colSpan += childColSpan;\n childRowSpans.push(childRowSpan);\n });\n } else {\n colSpan = 1;\n }\n const minChildRowSpan = Math.min(...childRowSpans);\n rowSpan = rowSpan + minChildRowSpan;\n header.colSpan = colSpan;\n header.rowSpan = rowSpan;\n return {\n colSpan,\n rowSpan\n };\n });\n };\n recurseHeadersForSpans((_headerGroups$0$heade = (_headerGroups$ = headerGroups[0]) == null ? void 0 : _headerGroups$.headers) != null ? _headerGroups$0$heade : []);\n return headerGroups;\n}\n\nconst createRow = (table, id, original, rowIndex, depth, subRows, parentId) => {\n let row = {\n id,\n index: rowIndex,\n original,\n depth,\n parentId,\n _valuesCache: {},\n _uniqueValuesCache: {},\n getValue: columnId => {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId];\n }\n const column = table.getColumn(columnId);\n if (!(column != null && column.accessorFn)) {\n return undefined;\n }\n row._valuesCache[columnId] = column.accessorFn(row.original, rowIndex);\n return row._valuesCache[columnId];\n },\n getUniqueValues: columnId => {\n if (row._uniqueValuesCache.hasOwnProperty(columnId)) {\n return row._uniqueValuesCache[columnId];\n }\n const column = table.getColumn(columnId);\n if (!(column != null && column.accessorFn)) {\n return undefined;\n }\n if (!column.columnDef.getUniqueValues) {\n row._uniqueValuesCache[columnId] = [row.getValue(columnId)];\n return row._uniqueValuesCache[columnId];\n }\n row._uniqueValuesCache[columnId] = column.columnDef.getUniqueValues(row.original, rowIndex);\n return row._uniqueValuesCache[columnId];\n },\n renderValue: columnId => {\n var _row$getValue;\n return (_row$getValue = row.getValue(columnId)) != null ? _row$getValue : table.options.renderFallbackValue;\n },\n subRows: subRows != null ? subRows : [],\n getLeafRows: () => flattenBy(row.subRows, d => d.subRows),\n getParentRow: () => row.parentId ? table.getRow(row.parentId, true) : undefined,\n getParentRows: () => {\n let parentRows = [];\n let currentRow = row;\n while (true) {\n const parentRow = currentRow.getParentRow();\n if (!parentRow) break;\n parentRows.push(parentRow);\n currentRow = parentRow;\n }\n return parentRows.reverse();\n },\n getAllCells: memo(() => [table.getAllLeafColumns()], leafColumns => {\n return leafColumns.map(column => {\n return createCell(table, row, column, column.id);\n });\n }, getMemoOptions(table.options, 'debugRows', 'getAllCells')),\n _getAllCellsByColumnId: memo(() => [row.getAllCells()], allCells => {\n return allCells.reduce((acc, cell) => {\n acc[cell.column.id] = cell;\n return acc;\n }, {});\n }, getMemoOptions(table.options, 'debugRows', 'getAllCellsByColumnId'))\n };\n for (let i = 0; i < table._features.length; i++) {\n const feature = table._features[i];\n feature == null || feature.createRow == null || feature.createRow(row, table);\n }\n return row;\n};\n\n//\n\nconst ColumnFaceting = {\n createColumn: (column, table) => {\n column._getFacetedRowModel = table.options.getFacetedRowModel && table.options.getFacetedRowModel(table, column.id);\n column.getFacetedRowModel = () => {\n if (!column._getFacetedRowModel) {\n return table.getPreFilteredRowModel();\n }\n return column._getFacetedRowModel();\n };\n column._getFacetedUniqueValues = table.options.getFacetedUniqueValues && table.options.getFacetedUniqueValues(table, column.id);\n column.getFacetedUniqueValues = () => {\n if (!column._getFacetedUniqueValues) {\n return new Map();\n }\n return column._getFacetedUniqueValues();\n };\n column._getFacetedMinMaxValues = table.options.getFacetedMinMaxValues && table.options.getFacetedMinMaxValues(table, column.id);\n column.getFacetedMinMaxValues = () => {\n if (!column._getFacetedMinMaxValues) {\n return undefined;\n }\n return column._getFacetedMinMaxValues();\n };\n }\n};\n\nconst includesString = (row, columnId, filterValue) => {\n var _filterValue$toString, _row$getValue;\n const search = filterValue == null || (_filterValue$toString = filterValue.toString()) == null ? void 0 : _filterValue$toString.toLowerCase();\n return Boolean((_row$getValue = row.getValue(columnId)) == null || (_row$getValue = _row$getValue.toString()) == null || (_row$getValue = _row$getValue.toLowerCase()) == null ? void 0 : _row$getValue.includes(search));\n};\nincludesString.autoRemove = val => testFalsey(val);\nconst includesStringSensitive = (row, columnId, filterValue) => {\n var _row$getValue2;\n return Boolean((_row$getValue2 = row.getValue(columnId)) == null || (_row$getValue2 = _row$getValue2.toString()) == null ? void 0 : _row$getValue2.includes(filterValue));\n};\nincludesStringSensitive.autoRemove = val => testFalsey(val);\nconst equalsString = (row, columnId, filterValue) => {\n var _row$getValue3;\n return ((_row$getValue3 = row.getValue(columnId)) == null || (_row$getValue3 = _row$getValue3.toString()) == null ? void 0 : _row$getValue3.toLowerCase()) === (filterValue == null ? void 0 : filterValue.toLowerCase());\n};\nequalsString.autoRemove = val => testFalsey(val);\nconst arrIncludes = (row, columnId, filterValue) => {\n var _row$getValue4;\n return (_row$getValue4 = row.getValue(columnId)) == null ? void 0 : _row$getValue4.includes(filterValue);\n};\narrIncludes.autoRemove = val => testFalsey(val);\nconst arrIncludesAll = (row, columnId, filterValue) => {\n return !filterValue.some(val => {\n var _row$getValue5;\n return !((_row$getValue5 = row.getValue(columnId)) != null && _row$getValue5.includes(val));\n });\n};\narrIncludesAll.autoRemove = val => testFalsey(val) || !(val != null && val.length);\nconst arrIncludesSome = (row, columnId, filterValue) => {\n return filterValue.some(val => {\n var _row$getValue6;\n return (_row$getValue6 = row.getValue(columnId)) == null ? void 0 : _row$getValue6.includes(val);\n });\n};\narrIncludesSome.autoRemove = val => testFalsey(val) || !(val != null && val.length);\nconst equals = (row, columnId, filterValue) => {\n return row.getValue(columnId) === filterValue;\n};\nequals.autoRemove = val => testFalsey(val);\nconst weakEquals = (row, columnId, filterValue) => {\n return row.getValue(columnId) == filterValue;\n};\nweakEquals.autoRemove = val => testFalsey(val);\nconst inNumberRange = (row, columnId, filterValue) => {\n let [min, max] = filterValue;\n const rowValue = row.getValue(columnId);\n return rowValue >= min && rowValue <= max;\n};\ninNumberRange.resolveFilterValue = val => {\n let [unsafeMin, unsafeMax] = val;\n let parsedMin = typeof unsafeMin !== 'number' ? parseFloat(unsafeMin) : unsafeMin;\n let parsedMax = typeof unsafeMax !== 'number' ? parseFloat(unsafeMax) : unsafeMax;\n let min = unsafeMin === null || Number.isNaN(parsedMin) ? -Infinity : parsedMin;\n let max = unsafeMax === null || Number.isNaN(parsedMax) ? Infinity : parsedMax;\n if (min > max) {\n const temp = min;\n min = max;\n max = temp;\n }\n return [min, max];\n};\ninNumberRange.autoRemove = val => testFalsey(val) || testFalsey(val[0]) && testFalsey(val[1]);\n\n// Export\n\nconst filterFns = {\n includesString,\n includesStringSensitive,\n equalsString,\n arrIncludes,\n arrIncludesAll,\n arrIncludesSome,\n equals,\n weakEquals,\n inNumberRange\n};\n// Utils\n\nfunction testFalsey(val) {\n return val === undefined || val === null || val === '';\n}\n\n//\n\nconst ColumnFiltering = {\n getDefaultColumnDef: () => {\n return {\n filterFn: 'auto'\n };\n },\n getInitialState: state => {\n return {\n columnFilters: [],\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnFiltersChange: makeStateUpdater('columnFilters', table),\n filterFromLeafRows: false,\n maxLeafRowFilterDepth: 100\n };\n },\n createColumn: (column, table) => {\n column.getAutoFilterFn = () => {\n const firstRow = table.getCoreRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n if (typeof value === 'string') {\n return filterFns.includesString;\n }\n if (typeof value === 'number') {\n return filterFns.inNumberRange;\n }\n if (typeof value === 'boolean') {\n return filterFns.equals;\n }\n if (value !== null && typeof value === 'object') {\n return filterFns.equals;\n }\n if (Array.isArray(value)) {\n return filterFns.arrIncludes;\n }\n return filterFns.weakEquals;\n };\n column.getFilterFn = () => {\n var _table$options$filter, _table$options$filter2;\n return isFunction(column.columnDef.filterFn) ? column.columnDef.filterFn : column.columnDef.filterFn === 'auto' ? column.getAutoFilterFn() : // @ts-ignore\n (_table$options$filter = (_table$options$filter2 = table.options.filterFns) == null ? void 0 : _table$options$filter2[column.columnDef.filterFn]) != null ? _table$options$filter : filterFns[column.columnDef.filterFn];\n };\n column.getCanFilter = () => {\n var _column$columnDef$ena, _table$options$enable, _table$options$enable2;\n return ((_column$columnDef$ena = column.columnDef.enableColumnFilter) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableColumnFilters) != null ? _table$options$enable : true) && ((_table$options$enable2 = table.options.enableFilters) != null ? _table$options$enable2 : true) && !!column.accessorFn;\n };\n column.getIsFiltered = () => column.getFilterIndex() > -1;\n column.getFilterValue = () => {\n var _table$getState$colum;\n return (_table$getState$colum = table.getState().columnFilters) == null || (_table$getState$colum = _table$getState$colum.find(d => d.id === column.id)) == null ? void 0 : _table$getState$colum.value;\n };\n column.getFilterIndex = () => {\n var _table$getState$colum2, _table$getState$colum3;\n return (_table$getState$colum2 = (_table$getState$colum3 = table.getState().columnFilters) == null ? void 0 : _table$getState$colum3.findIndex(d => d.id === column.id)) != null ? _table$getState$colum2 : -1;\n };\n column.setFilterValue = value => {\n table.setColumnFilters(old => {\n const filterFn = column.getFilterFn();\n const previousFilter = old == null ? void 0 : old.find(d => d.id === column.id);\n const newFilter = functionalUpdate(value, previousFilter ? previousFilter.value : undefined);\n\n //\n if (shouldAutoRemoveFilter(filterFn, newFilter, column)) {\n var _old$filter;\n return (_old$filter = old == null ? void 0 : old.filter(d => d.id !== column.id)) != null ? _old$filter : [];\n }\n const newFilterObj = {\n id: column.id,\n value: newFilter\n };\n if (previousFilter) {\n var _old$map;\n return (_old$map = old == null ? void 0 : old.map(d => {\n if (d.id === column.id) {\n return newFilterObj;\n }\n return d;\n })) != null ? _old$map : [];\n }\n if (old != null && old.length) {\n return [...old, newFilterObj];\n }\n return [newFilterObj];\n });\n };\n },\n createRow: (row, _table) => {\n row.columnFilters = {};\n row.columnFiltersMeta = {};\n },\n createTable: table => {\n table.setColumnFilters = updater => {\n const leafColumns = table.getAllLeafColumns();\n const updateFn = old => {\n var _functionalUpdate;\n return (_functionalUpdate = functionalUpdate(updater, old)) == null ? void 0 : _functionalUpdate.filter(filter => {\n const column = leafColumns.find(d => d.id === filter.id);\n if (column) {\n const filterFn = column.getFilterFn();\n if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {\n return false;\n }\n }\n return true;\n });\n };\n table.options.onColumnFiltersChange == null || table.options.onColumnFiltersChange(updateFn);\n };\n table.resetColumnFilters = defaultState => {\n var _table$initialState$c, _table$initialState;\n table.setColumnFilters(defaultState ? [] : (_table$initialState$c = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnFilters) != null ? _table$initialState$c : []);\n };\n table.getPreFilteredRowModel = () => table.getCoreRowModel();\n table.getFilteredRowModel = () => {\n if (!table._getFilteredRowModel && table.options.getFilteredRowModel) {\n table._getFilteredRowModel = table.options.getFilteredRowModel(table);\n }\n if (table.options.manualFiltering || !table._getFilteredRowModel) {\n return table.getPreFilteredRowModel();\n }\n return table._getFilteredRowModel();\n };\n }\n};\nfunction shouldAutoRemoveFilter(filterFn, value, column) {\n return (filterFn && filterFn.autoRemove ? filterFn.autoRemove(value, column) : false) || typeof value === 'undefined' || typeof value === 'string' && !value;\n}\n\nconst sum = (columnId, _leafRows, childRows) => {\n // It's faster to just add the aggregations together instead of\n // process leaf nodes individually\n return childRows.reduce((sum, next) => {\n const nextValue = next.getValue(columnId);\n return sum + (typeof nextValue === 'number' ? nextValue : 0);\n }, 0);\n};\nconst min = (columnId, _leafRows, childRows) => {\n let min;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n if (value != null && (min > value || min === undefined && value >= value)) {\n min = value;\n }\n });\n return min;\n};\nconst max = (columnId, _leafRows, childRows) => {\n let max;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n if (value != null && (max < value || max === undefined && value >= value)) {\n max = value;\n }\n });\n return max;\n};\nconst extent = (columnId, _leafRows, childRows) => {\n let min;\n let max;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n if (value != null) {\n if (min === undefined) {\n if (value >= value) min = max = value;\n } else {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n });\n return [min, max];\n};\nconst mean = (columnId, leafRows) => {\n let count = 0;\n let sum = 0;\n leafRows.forEach(row => {\n let value = row.getValue(columnId);\n if (value != null && (value = +value) >= value) {\n ++count, sum += value;\n }\n });\n if (count) return sum / count;\n return;\n};\nconst median = (columnId, leafRows) => {\n if (!leafRows.length) {\n return;\n }\n const values = leafRows.map(row => row.getValue(columnId));\n if (!isNumberArray(values)) {\n return;\n }\n if (values.length === 1) {\n return values[0];\n }\n const mid = Math.floor(values.length / 2);\n const nums = values.sort((a, b) => a - b);\n return values.length % 2 !== 0 ? nums[mid] : (nums[mid - 1] + nums[mid]) / 2;\n};\nconst unique = (columnId, leafRows) => {\n return Array.from(new Set(leafRows.map(d => d.getValue(columnId))).values());\n};\nconst uniqueCount = (columnId, leafRows) => {\n return new Set(leafRows.map(d => d.getValue(columnId))).size;\n};\nconst count = (_columnId, leafRows) => {\n return leafRows.length;\n};\nconst aggregationFns = {\n sum,\n min,\n max,\n extent,\n mean,\n median,\n unique,\n uniqueCount,\n count\n};\n\n//\n\nconst ColumnGrouping = {\n getDefaultColumnDef: () => {\n return {\n aggregatedCell: props => {\n var _toString, _props$getValue;\n return (_toString = (_props$getValue = props.getValue()) == null || _props$getValue.toString == null ? void 0 : _props$getValue.toString()) != null ? _toString : null;\n },\n aggregationFn: 'auto'\n };\n },\n getInitialState: state => {\n return {\n grouping: [],\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onGroupingChange: makeStateUpdater('grouping', table),\n groupedColumnMode: 'reorder'\n };\n },\n createColumn: (column, table) => {\n column.toggleGrouping = () => {\n table.setGrouping(old => {\n // Find any existing grouping for this column\n if (old != null && old.includes(column.id)) {\n return old.filter(d => d !== column.id);\n }\n return [...(old != null ? old : []), column.id];\n });\n };\n column.getCanGroup = () => {\n var _column$columnDef$ena, _table$options$enable;\n return ((_column$columnDef$ena = column.columnDef.enableGrouping) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableGrouping) != null ? _table$options$enable : true) && (!!column.accessorFn || !!column.columnDef.getGroupingValue);\n };\n column.getIsGrouped = () => {\n var _table$getState$group;\n return (_table$getState$group = table.getState().grouping) == null ? void 0 : _table$getState$group.includes(column.id);\n };\n column.getGroupedIndex = () => {\n var _table$getState$group2;\n return (_table$getState$group2 = table.getState().grouping) == null ? void 0 : _table$getState$group2.indexOf(column.id);\n };\n column.getToggleGroupingHandler = () => {\n const canGroup = column.getCanGroup();\n return () => {\n if (!canGroup) return;\n column.toggleGrouping();\n };\n };\n column.getAutoAggregationFn = () => {\n const firstRow = table.getCoreRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n if (typeof value === 'number') {\n return aggregationFns.sum;\n }\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return aggregationFns.extent;\n }\n };\n column.getAggregationFn = () => {\n var _table$options$aggreg, _table$options$aggreg2;\n if (!column) {\n throw new Error();\n }\n return isFunction(column.columnDef.aggregationFn) ? column.columnDef.aggregationFn : column.columnDef.aggregationFn === 'auto' ? column.getAutoAggregationFn() : (_table$options$aggreg = (_table$options$aggreg2 = table.options.aggregationFns) == null ? void 0 : _table$options$aggreg2[column.columnDef.aggregationFn]) != null ? _table$options$aggreg : aggregationFns[column.columnDef.aggregationFn];\n };\n },\n createTable: table => {\n table.setGrouping = updater => table.options.onGroupingChange == null ? void 0 : table.options.onGroupingChange(updater);\n table.resetGrouping = defaultState => {\n var _table$initialState$g, _table$initialState;\n table.setGrouping(defaultState ? [] : (_table$initialState$g = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.grouping) != null ? _table$initialState$g : []);\n };\n table.getPreGroupedRowModel = () => table.getFilteredRowModel();\n table.getGroupedRowModel = () => {\n if (!table._getGroupedRowModel && table.options.getGroupedRowModel) {\n table._getGroupedRowModel = table.options.getGroupedRowModel(table);\n }\n if (table.options.manualGrouping || !table._getGroupedRowModel) {\n return table.getPreGroupedRowModel();\n }\n return table._getGroupedRowModel();\n };\n },\n createRow: (row, table) => {\n row.getIsGrouped = () => !!row.groupingColumnId;\n row.getGroupingValue = columnId => {\n if (row._groupingValuesCache.hasOwnProperty(columnId)) {\n return row._groupingValuesCache[columnId];\n }\n const column = table.getColumn(columnId);\n if (!(column != null && column.columnDef.getGroupingValue)) {\n return row.getValue(columnId);\n }\n row._groupingValuesCache[columnId] = column.columnDef.getGroupingValue(row.original);\n return row._groupingValuesCache[columnId];\n };\n row._groupingValuesCache = {};\n },\n createCell: (cell, column, row, table) => {\n cell.getIsGrouped = () => column.getIsGrouped() && column.id === row.groupingColumnId;\n cell.getIsPlaceholder = () => !cell.getIsGrouped() && column.getIsGrouped();\n cell.getIsAggregated = () => {\n var _row$subRows;\n return !cell.getIsGrouped() && !cell.getIsPlaceholder() && !!((_row$subRows = row.subRows) != null && _row$subRows.length);\n };\n }\n};\nfunction orderColumns(leafColumns, grouping, groupedColumnMode) {\n if (!(grouping != null && grouping.length) || !groupedColumnMode) {\n return leafColumns;\n }\n const nonGroupingColumns = leafColumns.filter(col => !grouping.includes(col.id));\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns;\n }\n const groupingColumns = grouping.map(g => leafColumns.find(col => col.id === g)).filter(Boolean);\n return [...groupingColumns, ...nonGroupingColumns];\n}\n\n//\n\nconst ColumnOrdering = {\n getInitialState: state => {\n return {\n columnOrder: [],\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnOrderChange: makeStateUpdater('columnOrder', table)\n };\n },\n createColumn: (column, table) => {\n column.getIndex = memo(position => [_getVisibleLeafColumns(table, position)], columns => columns.findIndex(d => d.id === column.id), getMemoOptions(table.options, 'debugColumns', 'getIndex'));\n column.getIsFirstColumn = position => {\n var _columns$;\n const columns = _getVisibleLeafColumns(table, position);\n return ((_columns$ = columns[0]) == null ? void 0 : _columns$.id) === column.id;\n };\n column.getIsLastColumn = position => {\n var _columns;\n const columns = _getVisibleLeafColumns(table, position);\n return ((_columns = columns[columns.length - 1]) == null ? void 0 : _columns.id) === column.id;\n };\n },\n createTable: table => {\n table.setColumnOrder = updater => table.options.onColumnOrderChange == null ? void 0 : table.options.onColumnOrderChange(updater);\n table.resetColumnOrder = defaultState => {\n var _table$initialState$c;\n table.setColumnOrder(defaultState ? [] : (_table$initialState$c = table.initialState.columnOrder) != null ? _table$initialState$c : []);\n };\n table._getOrderColumnsFn = memo(() => [table.getState().columnOrder, table.getState().grouping, table.options.groupedColumnMode], (columnOrder, grouping, groupedColumnMode) => columns => {\n // Sort grouped columns to the start of the column list\n // before the headers are built\n let orderedColumns = [];\n\n // If there is no order, return the normal columns\n if (!(columnOrder != null && columnOrder.length)) {\n orderedColumns = columns;\n } else {\n const columnOrderCopy = [...columnOrder];\n\n // If there is an order, make a copy of the columns\n const columnsCopy = [...columns];\n\n // And make a new ordered array of the columns\n\n // Loop over the columns and place them in order into the new array\n while (columnsCopy.length && columnOrderCopy.length) {\n const targetColumnId = columnOrderCopy.shift();\n const foundIndex = columnsCopy.findIndex(d => d.id === targetColumnId);\n if (foundIndex > -1) {\n orderedColumns.push(columnsCopy.splice(foundIndex, 1)[0]);\n }\n }\n\n // If there are any columns left, add them to the end\n orderedColumns = [...orderedColumns, ...columnsCopy];\n }\n return orderColumns(orderedColumns, grouping, groupedColumnMode);\n }, getMemoOptions(table.options, 'debugTable', '_getOrderColumnsFn'));\n }\n};\n\n//\n\nconst getDefaultColumnPinningState = () => ({\n left: [],\n right: []\n});\nconst ColumnPinning = {\n getInitialState: state => {\n return {\n columnPinning: getDefaultColumnPinningState(),\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', table)\n };\n },\n createColumn: (column, table) => {\n column.pin = position => {\n const columnIds = column.getLeafColumns().map(d => d.id).filter(Boolean);\n table.setColumnPinning(old => {\n var _old$left3, _old$right3;\n if (position === 'right') {\n var _old$left, _old$right;\n return {\n left: ((_old$left = old == null ? void 0 : old.left) != null ? _old$left : []).filter(d => !(columnIds != null && columnIds.includes(d))),\n right: [...((_old$right = old == null ? void 0 : old.right) != null ? _old$right : []).filter(d => !(columnIds != null && columnIds.includes(d))), ...columnIds]\n };\n }\n if (position === 'left') {\n var _old$left2, _old$right2;\n return {\n left: [...((_old$left2 = old == null ? void 0 : old.left) != null ? _old$left2 : []).filter(d => !(columnIds != null && columnIds.includes(d))), ...columnIds],\n right: ((_old$right2 = old == null ? void 0 : old.right) != null ? _old$right2 : []).filter(d => !(columnIds != null && columnIds.includes(d)))\n };\n }\n return {\n left: ((_old$left3 = old == null ? void 0 : old.left) != null ? _old$left3 : []).filter(d => !(columnIds != null && columnIds.includes(d))),\n right: ((_old$right3 = old == null ? void 0 : old.right) != null ? _old$right3 : []).filter(d => !(columnIds != null && columnIds.includes(d)))\n };\n });\n };\n column.getCanPin = () => {\n const leafColumns = column.getLeafColumns();\n return leafColumns.some(d => {\n var _d$columnDef$enablePi, _ref, _table$options$enable;\n return ((_d$columnDef$enablePi = d.columnDef.enablePinning) != null ? _d$columnDef$enablePi : true) && ((_ref = (_table$options$enable = table.options.enableColumnPinning) != null ? _table$options$enable : table.options.enablePinning) != null ? _ref : true);\n });\n };\n column.getIsPinned = () => {\n const leafColumnIds = column.getLeafColumns().map(d => d.id);\n const {\n left,\n right\n } = table.getState().columnPinning;\n const isLeft = leafColumnIds.some(d => left == null ? void 0 : left.includes(d));\n const isRight = leafColumnIds.some(d => right == null ? void 0 : right.includes(d));\n return isLeft ? 'left' : isRight ? 'right' : false;\n };\n column.getPinnedIndex = () => {\n var _table$getState$colum, _table$getState$colum2;\n const position = column.getIsPinned();\n return position ? (_table$getState$colum = (_table$getState$colum2 = table.getState().columnPinning) == null || (_table$getState$colum2 = _table$getState$colum2[position]) == null ? void 0 : _table$getState$colum2.indexOf(column.id)) != null ? _table$getState$colum : -1 : 0;\n };\n },\n createRow: (row, table) => {\n row.getCenterVisibleCells = memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allCells, left, right) => {\n const leftAndRight = [...(left != null ? left : []), ...(right != null ? right : [])];\n return allCells.filter(d => !leftAndRight.includes(d.column.id));\n }, getMemoOptions(table.options, 'debugRows', 'getCenterVisibleCells'));\n row.getLeftVisibleCells = memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.left], (allCells, left) => {\n const cells = (left != null ? left : []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({\n ...d,\n position: 'left'\n }));\n return cells;\n }, getMemoOptions(table.options, 'debugRows', 'getLeftVisibleCells'));\n row.getRightVisibleCells = memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.right], (allCells, right) => {\n const cells = (right != null ? right : []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({\n ...d,\n position: 'right'\n }));\n return cells;\n }, getMemoOptions(table.options, 'debugRows', 'getRightVisibleCells'));\n },\n createTable: table => {\n table.setColumnPinning = updater => table.options.onColumnPinningChange == null ? void 0 : table.options.onColumnPinningChange(updater);\n table.resetColumnPinning = defaultState => {\n var _table$initialState$c, _table$initialState;\n return table.setColumnPinning(defaultState ? getDefaultColumnPinningState() : (_table$initialState$c = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnPinning) != null ? _table$initialState$c : getDefaultColumnPinningState());\n };\n table.getIsSomeColumnsPinned = position => {\n var _pinningState$positio;\n const pinningState = table.getState().columnPinning;\n if (!position) {\n var _pinningState$left, _pinningState$right;\n return Boolean(((_pinningState$left = pinningState.left) == null ? void 0 : _pinningState$left.length) || ((_pinningState$right = pinningState.right) == null ? void 0 : _pinningState$right.length));\n }\n return Boolean((_pinningState$positio = pinningState[position]) == null ? void 0 : _pinningState$positio.length);\n };\n table.getLeftLeafColumns = memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.left], (allColumns, left) => {\n return (left != null ? left : []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);\n }, getMemoOptions(table.options, 'debugColumns', 'getLeftLeafColumns'));\n table.getRightLeafColumns = memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.right], (allColumns, right) => {\n return (right != null ? right : []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);\n }, getMemoOptions(table.options, 'debugColumns', 'getRightLeafColumns'));\n table.getCenterLeafColumns = memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, left, right) => {\n const leftAndRight = [...(left != null ? left : []), ...(right != null ? right : [])];\n return allColumns.filter(d => !leftAndRight.includes(d.id));\n }, getMemoOptions(table.options, 'debugColumns', 'getCenterLeafColumns'));\n }\n};\n\nfunction safelyAccessDocument(_document) {\n return _document || (typeof document !== 'undefined' ? document : null);\n}\n\n//\n\n//\n\nconst defaultColumnSizing = {\n size: 150,\n minSize: 20,\n maxSize: Number.MAX_SAFE_INTEGER\n};\nconst getDefaultColumnSizingInfoState = () => ({\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: []\n});\nconst ColumnSizing = {\n getDefaultColumnDef: () => {\n return defaultColumnSizing;\n },\n getInitialState: state => {\n return {\n columnSizing: {},\n columnSizingInfo: getDefaultColumnSizingInfoState(),\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n columnResizeMode: 'onEnd',\n columnResizeDirection: 'ltr',\n onColumnSizingChange: makeStateUpdater('columnSizing', table),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', table)\n };\n },\n createColumn: (column, table) => {\n column.getSize = () => {\n var _column$columnDef$min, _ref, _column$columnDef$max;\n const columnSize = table.getState().columnSizing[column.id];\n return Math.min(Math.max((_column$columnDef$min = column.columnDef.minSize) != null ? _column$columnDef$min : defaultColumnSizing.minSize, (_ref = columnSize != null ? columnSize : column.columnDef.size) != null ? _ref : defaultColumnSizing.size), (_column$columnDef$max = column.columnDef.maxSize) != null ? _column$columnDef$max : defaultColumnSizing.maxSize);\n };\n column.getStart = memo(position => [position, _getVisibleLeafColumns(table, position), table.getState().columnSizing], (position, columns) => columns.slice(0, column.getIndex(position)).reduce((sum, column) => sum + column.getSize(), 0), getMemoOptions(table.options, 'debugColumns', 'getStart'));\n column.getAfter = memo(position => [position, _getVisibleLeafColumns(table, position), table.getState().columnSizing], (position, columns) => columns.slice(column.getIndex(position) + 1).reduce((sum, column) => sum + column.getSize(), 0), getMemoOptions(table.options, 'debugColumns', 'getAfter'));\n column.resetSize = () => {\n table.setColumnSizing(_ref2 => {\n let {\n [column.id]: _,\n ...rest\n } = _ref2;\n return rest;\n });\n };\n column.getCanResize = () => {\n var _column$columnDef$ena, _table$options$enable;\n return ((_column$columnDef$ena = column.columnDef.enableResizing) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableColumnResizing) != null ? _table$options$enable : true);\n };\n column.getIsResizing = () => {\n return table.getState().columnSizingInfo.isResizingColumn === column.id;\n };\n },\n createHeader: (header, table) => {\n header.getSize = () => {\n let sum = 0;\n const recurse = header => {\n if (header.subHeaders.length) {\n header.subHeaders.forEach(recurse);\n } else {\n var _header$column$getSiz;\n sum += (_header$column$getSiz = header.column.getSize()) != null ? _header$column$getSiz : 0;\n }\n };\n recurse(header);\n return sum;\n };\n header.getStart = () => {\n if (header.index > 0) {\n const prevSiblingHeader = header.headerGroup.headers[header.index - 1];\n return prevSiblingHeader.getStart() + prevSiblingHeader.getSize();\n }\n return 0;\n };\n header.getResizeHandler = _contextDocument => {\n const column = table.getColumn(header.column.id);\n const canResize = column == null ? void 0 : column.getCanResize();\n return e => {\n if (!column || !canResize) {\n return;\n }\n e.persist == null || e.persist();\n if (isTouchStartEvent(e)) {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (e.touches && e.touches.length > 1) {\n return;\n }\n }\n const startSize = header.getSize();\n const columnSizingStart = header ? header.getLeafHeaders().map(d => [d.column.id, d.column.getSize()]) : [[column.id, column.getSize()]];\n const clientX = isTouchStartEvent(e) ? Math.round(e.touches[0].clientX) : e.clientX;\n const newColumnSizing = {};\n const updateOffset = (eventType, clientXPos) => {\n if (typeof clientXPos !== 'number') {\n return;\n }\n table.setColumnSizingInfo(old => {\n var _old$startOffset, _old$startSize;\n const deltaDirection = table.options.columnResizeDirection === 'rtl' ? -1 : 1;\n const deltaOffset = (clientXPos - ((_old$startOffset = old == null ? void 0 : old.startOffset) != null ? _old$startOffset : 0)) * deltaDirection;\n const deltaPercentage = Math.max(deltaOffset / ((_old$startSize = old == null ? void 0 : old.startSize) != null ? _old$startSize : 0), -0.999999);\n old.columnSizingStart.forEach(_ref3 => {\n let [columnId, headerSize] = _ref3;\n newColumnSizing[columnId] = Math.round(Math.max(headerSize + headerSize * deltaPercentage, 0) * 100) / 100;\n });\n return {\n ...old,\n deltaOffset,\n deltaPercentage\n };\n });\n if (table.options.columnResizeMode === 'onChange' || eventType === 'end') {\n table.setColumnSizing(old => ({\n ...old,\n ...newColumnSizing\n }));\n }\n };\n const onMove = clientXPos => updateOffset('move', clientXPos);\n const onEnd = clientXPos => {\n updateOffset('end', clientXPos);\n table.setColumnSizingInfo(old => ({\n ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: []\n }));\n };\n const contextDocument = safelyAccessDocument(_contextDocument);\n const mouseEvents = {\n moveHandler: e => onMove(e.clientX),\n upHandler: e => {\n contextDocument == null || contextDocument.removeEventListener('mousemove', mouseEvents.moveHandler);\n contextDocument == null || contextDocument.removeEventListener('mouseup', mouseEvents.upHandler);\n onEnd(e.clientX);\n }\n };\n const touchEvents = {\n moveHandler: e => {\n if (e.cancelable) {\n e.preventDefault();\n e.stopPropagation();\n }\n onMove(e.touches[0].clientX);\n return false;\n },\n upHandler: e => {\n var _e$touches$;\n contextDocument == null || contextDocument.removeEventListener('touchmove', touchEvents.moveHandler);\n contextDocument == null || contextDocument.removeEventListener('touchend', touchEvents.upHandler);\n if (e.cancelable) {\n e.preventDefault();\n e.stopPropagation();\n }\n onEnd((_e$touches$ = e.touches[0]) == null ? void 0 : _e$touches$.clientX);\n }\n };\n const passiveIfSupported = passiveEventSupported() ? {\n passive: false\n } : false;\n if (isTouchStartEvent(e)) {\n contextDocument == null || contextDocument.addEventListener('touchmove', touchEvents.moveHandler, passiveIfSupported);\n contextDocument == null || contextDocument.addEventListener('touchend', touchEvents.upHandler, passiveIfSupported);\n } else {\n contextDocument == null || contextDocument.addEventListener('mousemove', mouseEvents.moveHandler, passiveIfSupported);\n contextDocument == null || contextDocument.addEventListener('mouseup', mouseEvents.upHandler, passiveIfSupported);\n }\n table.setColumnSizingInfo(old => ({\n ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id\n }));\n };\n };\n },\n createTable: table => {\n table.setColumnSizing = updater => table.options.onColumnSizingChange == null ? void 0 : table.options.onColumnSizingChange(updater);\n table.setColumnSizingInfo = updater => table.options.onColumnSizingInfoChange == null ? void 0 : table.options.onColumnSizingInfoChange(updater);\n table.resetColumnSizing = defaultState => {\n var _table$initialState$c;\n table.setColumnSizing(defaultState ? {} : (_table$initialState$c = table.initialState.columnSizing) != null ? _table$initialState$c : {});\n };\n table.resetHeaderSizeInfo = defaultState => {\n var _table$initialState$c2;\n table.setColumnSizingInfo(defaultState ? getDefaultColumnSizingInfoState() : (_table$initialState$c2 = table.initialState.columnSizingInfo) != null ? _table$initialState$c2 : getDefaultColumnSizingInfoState());\n };\n table.getTotalSize = () => {\n var _table$getHeaderGroup, _table$getHeaderGroup2;\n return (_table$getHeaderGroup = (_table$getHeaderGroup2 = table.getHeaderGroups()[0]) == null ? void 0 : _table$getHeaderGroup2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getHeaderGroup : 0;\n };\n table.getLeftTotalSize = () => {\n var _table$getLeftHeaderG, _table$getLeftHeaderG2;\n return (_table$getLeftHeaderG = (_table$getLeftHeaderG2 = table.getLeftHeaderGroups()[0]) == null ? void 0 : _table$getLeftHeaderG2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getLeftHeaderG : 0;\n };\n table.getCenterTotalSize = () => {\n var _table$getCenterHeade, _table$getCenterHeade2;\n return (_table$getCenterHeade = (_table$getCenterHeade2 = table.getCenterHeaderGroups()[0]) == null ? void 0 : _table$getCenterHeade2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getCenterHeade : 0;\n };\n table.getRightTotalSize = () => {\n var _table$getRightHeader, _table$getRightHeader2;\n return (_table$getRightHeader = (_table$getRightHeader2 = table.getRightHeaderGroups()[0]) == null ? void 0 : _table$getRightHeader2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getRightHeader : 0;\n };\n }\n};\nlet passiveSupported = null;\nfunction passiveEventSupported() {\n if (typeof passiveSupported === 'boolean') return passiveSupported;\n let supported = false;\n try {\n const options = {\n get passive() {\n supported = true;\n return false;\n }\n };\n const noop = () => {};\n window.addEventListener('test', noop, options);\n window.removeEventListener('test', noop);\n } catch (err) {\n supported = false;\n }\n passiveSupported = supported;\n return passiveSupported;\n}\nfunction isTouchStartEvent(e) {\n return e.type === 'touchstart';\n}\n\n//\n\nconst ColumnVisibility = {\n getInitialState: state => {\n return {\n columnVisibility: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnVisibilityChange: makeStateUpdater('columnVisibility', table)\n };\n },\n createColumn: (column, table) => {\n column.toggleVisibility = value => {\n if (column.getCanHide()) {\n table.setColumnVisibility(old => ({\n ...old,\n [column.id]: value != null ? value : !column.getIsVisible()\n }));\n }\n };\n column.getIsVisible = () => {\n var _ref, _table$getState$colum;\n const childColumns = column.columns;\n return (_ref = childColumns.length ? childColumns.some(c => c.getIsVisible()) : (_table$getState$colum = table.getState().columnVisibility) == null ? void 0 : _table$getState$colum[column.id]) != null ? _ref : true;\n };\n column.getCanHide = () => {\n var _column$columnDef$ena, _table$options$enable;\n return ((_column$columnDef$ena = column.columnDef.enableHiding) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableHiding) != null ? _table$options$enable : true);\n };\n column.getToggleVisibilityHandler = () => {\n return e => {\n column.toggleVisibility == null || column.toggleVisibility(e.target.checked);\n };\n };\n },\n createRow: (row, table) => {\n row._getAllVisibleCells = memo(() => [row.getAllCells(), table.getState().columnVisibility], cells => {\n return cells.filter(cell => cell.column.getIsVisible());\n }, getMemoOptions(table.options, 'debugRows', '_getAllVisibleCells'));\n row.getVisibleCells = memo(() => [row.getLeftVisibleCells(), row.getCenterVisibleCells(), row.getRightVisibleCells()], (left, center, right) => [...left, ...center, ...right], getMemoOptions(table.options, 'debugRows', 'getVisibleCells'));\n },\n createTable: table => {\n const makeVisibleColumnsMethod = (key, getColumns) => {\n return memo(() => [getColumns(), getColumns().filter(d => d.getIsVisible()).map(d => d.id).join('_')], columns => {\n return columns.filter(d => d.getIsVisible == null ? void 0 : d.getIsVisible());\n }, getMemoOptions(table.options, 'debugColumns', key));\n };\n table.getVisibleFlatColumns = makeVisibleColumnsMethod('getVisibleFlatColumns', () => table.getAllFlatColumns());\n table.getVisibleLeafColumns = makeVisibleColumnsMethod('getVisibleLeafColumns', () => table.getAllLeafColumns());\n table.getLeftVisibleLeafColumns = makeVisibleColumnsMethod('getLeftVisibleLeafColumns', () => table.getLeftLeafColumns());\n table.getRightVisibleLeafColumns = makeVisibleColumnsMethod('getRightVisibleLeafColumns', () => table.getRightLeafColumns());\n table.getCenterVisibleLeafColumns = makeVisibleColumnsMethod('getCenterVisibleLeafColumns', () => table.getCenterLeafColumns());\n table.setColumnVisibility = updater => table.options.onColumnVisibilityChange == null ? void 0 : table.options.onColumnVisibilityChange(updater);\n table.resetColumnVisibility = defaultState => {\n var _table$initialState$c;\n table.setColumnVisibility(defaultState ? {} : (_table$initialState$c = table.initialState.columnVisibility) != null ? _table$initialState$c : {});\n };\n table.toggleAllColumnsVisible = value => {\n var _value;\n value = (_value = value) != null ? _value : !table.getIsAllColumnsVisible();\n table.setColumnVisibility(table.getAllLeafColumns().reduce((obj, column) => ({\n ...obj,\n [column.id]: !value ? !(column.getCanHide != null && column.getCanHide()) : value\n }), {}));\n };\n table.getIsAllColumnsVisible = () => !table.getAllLeafColumns().some(column => !(column.getIsVisible != null && column.getIsVisible()));\n table.getIsSomeColumnsVisible = () => table.getAllLeafColumns().some(column => column.getIsVisible == null ? void 0 : column.getIsVisible());\n table.getToggleAllColumnsVisibilityHandler = () => {\n return e => {\n var _target;\n table.toggleAllColumnsVisible((_target = e.target) == null ? void 0 : _target.checked);\n };\n };\n }\n};\nfunction _getVisibleLeafColumns(table, position) {\n return !position ? table.getVisibleLeafColumns() : position === 'center' ? table.getCenterVisibleLeafColumns() : position === 'left' ? table.getLeftVisibleLeafColumns() : table.getRightVisibleLeafColumns();\n}\n\n//\n\nconst GlobalFaceting = {\n createTable: table => {\n table._getGlobalFacetedRowModel = table.options.getFacetedRowModel && table.options.getFacetedRowModel(table, '__global__');\n table.getGlobalFacetedRowModel = () => {\n if (table.options.manualFiltering || !table._getGlobalFacetedRowModel) {\n return table.getPreFilteredRowModel();\n }\n return table._getGlobalFacetedRowModel();\n };\n table._getGlobalFacetedUniqueValues = table.options.getFacetedUniqueValues && table.options.getFacetedUniqueValues(table, '__global__');\n table.getGlobalFacetedUniqueValues = () => {\n if (!table._getGlobalFacetedUniqueValues) {\n return new Map();\n }\n return table._getGlobalFacetedUniqueValues();\n };\n table._getGlobalFacetedMinMaxValues = table.options.getFacetedMinMaxValues && table.options.getFacetedMinMaxValues(table, '__global__');\n table.getGlobalFacetedMinMaxValues = () => {\n if (!table._getGlobalFacetedMinMaxValues) {\n return;\n }\n return table._getGlobalFacetedMinMaxValues();\n };\n }\n};\n\n//\n\nconst GlobalFiltering = {\n getInitialState: state => {\n return {\n globalFilter: undefined,\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onGlobalFilterChange: makeStateUpdater('globalFilter', table),\n globalFilterFn: 'auto',\n getColumnCanGlobalFilter: column => {\n var _table$getCoreRowMode;\n const value = (_table$getCoreRowMode = table.getCoreRowModel().flatRows[0]) == null || (_table$getCoreRowMode = _table$getCoreRowMode._getAllCellsByColumnId()[column.id]) == null ? void 0 : _table$getCoreRowMode.getValue();\n return typeof value === 'string' || typeof value === 'number';\n }\n };\n },\n createColumn: (column, table) => {\n column.getCanGlobalFilter = () => {\n var _column$columnDef$ena, _table$options$enable, _table$options$enable2, _table$options$getCol;\n return ((_column$columnDef$ena = column.columnDef.enableGlobalFilter) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableGlobalFilter) != null ? _table$options$enable : true) && ((_table$options$enable2 = table.options.enableFilters) != null ? _table$options$enable2 : true) && ((_table$options$getCol = table.options.getColumnCanGlobalFilter == null ? void 0 : table.options.getColumnCanGlobalFilter(column)) != null ? _table$options$getCol : true) && !!column.accessorFn;\n };\n },\n createTable: table => {\n table.getGlobalAutoFilterFn = () => {\n return filterFns.includesString;\n };\n table.getGlobalFilterFn = () => {\n var _table$options$filter, _table$options$filter2;\n const {\n globalFilterFn: globalFilterFn\n } = table.options;\n return isFunction(globalFilterFn) ? globalFilterFn : globalFilterFn === 'auto' ? table.getGlobalAutoFilterFn() : (_table$options$filter = (_table$options$filter2 = table.options.filterFns) == null ? void 0 : _table$options$filter2[globalFilterFn]) != null ? _table$options$filter : filterFns[globalFilterFn];\n };\n table.setGlobalFilter = updater => {\n table.options.onGlobalFilterChange == null || table.options.onGlobalFilterChange(updater);\n };\n table.resetGlobalFilter = defaultState => {\n table.setGlobalFilter(defaultState ? undefined : table.initialState.globalFilter);\n };\n }\n};\n\n//\n\nconst RowExpanding = {\n getInitialState: state => {\n return {\n expanded: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onExpandedChange: makeStateUpdater('expanded', table),\n paginateExpandedRows: true\n };\n },\n createTable: table => {\n let registered = false;\n let queued = false;\n table._autoResetExpanded = () => {\n var _ref, _table$options$autoRe;\n if (!registered) {\n table._queue(() => {\n registered = true;\n });\n return;\n }\n if ((_ref = (_table$options$autoRe = table.options.autoResetAll) != null ? _table$options$autoRe : table.options.autoResetExpanded) != null ? _ref : !table.options.manualExpanding) {\n if (queued) return;\n queued = true;\n table._queue(() => {\n table.resetExpanded();\n queued = false;\n });\n }\n };\n table.setExpanded = updater => table.options.onExpandedChange == null ? void 0 : table.options.onExpandedChange(updater);\n table.toggleAllRowsExpanded = expanded => {\n if (expanded != null ? expanded : !table.getIsAllRowsExpanded()) {\n table.setExpanded(true);\n } else {\n table.setExpanded({});\n }\n };\n table.resetExpanded = defaultState => {\n var _table$initialState$e, _table$initialState;\n table.setExpanded(defaultState ? {} : (_table$initialState$e = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.expanded) != null ? _table$initialState$e : {});\n };\n table.getCanSomeRowsExpand = () => {\n return table.getPrePaginationRowModel().flatRows.some(row => row.getCanExpand());\n };\n table.getToggleAllRowsExpandedHandler = () => {\n return e => {\n e.persist == null || e.persist();\n table.toggleAllRowsExpanded();\n };\n };\n table.getIsSomeRowsExpanded = () => {\n const expanded = table.getState().expanded;\n return expanded === true || Object.values(expanded).some(Boolean);\n };\n table.getIsAllRowsExpanded = () => {\n const expanded = table.getState().expanded;\n\n // If expanded is true, save some cycles and return true\n if (typeof expanded === 'boolean') {\n return expanded === true;\n }\n if (!Object.keys(expanded).length) {\n return false;\n }\n\n // If any row is not expanded, return false\n if (table.getRowModel().flatRows.some(row => !row.getIsExpanded())) {\n return false;\n }\n\n // They must all be expanded :shrug:\n return true;\n };\n table.getExpandedDepth = () => {\n let maxDepth = 0;\n const rowIds = table.getState().expanded === true ? Object.keys(table.getRowModel().rowsById) : Object.keys(table.getState().expanded);\n rowIds.forEach(id => {\n const splitId = id.split('.');\n maxDepth = Math.max(maxDepth, splitId.length);\n });\n return maxDepth;\n };\n table.getPreExpandedRowModel = () => table.getSortedRowModel();\n table.getExpandedRowModel = () => {\n if (!table._getExpandedRowModel && table.options.getExpandedRowModel) {\n table._getExpandedRowModel = table.options.getExpandedRowModel(table);\n }\n if (table.options.manualExpanding || !table._getExpandedRowModel) {\n return table.getPreExpandedRowModel();\n }\n return table._getExpandedRowModel();\n };\n },\n createRow: (row, table) => {\n row.toggleExpanded = expanded => {\n table.setExpanded(old => {\n var _expanded;\n const exists = old === true ? true : !!(old != null && old[row.id]);\n let oldExpanded = {};\n if (old === true) {\n Object.keys(table.getRowModel().rowsById).forEach(rowId => {\n oldExpanded[rowId] = true;\n });\n } else {\n oldExpanded = old;\n }\n expanded = (_expanded = expanded) != null ? _expanded : !exists;\n if (!exists && expanded) {\n return {\n ...oldExpanded,\n [row.id]: true\n };\n }\n if (exists && !expanded) {\n const {\n [row.id]: _,\n ...rest\n } = oldExpanded;\n return rest;\n }\n return old;\n });\n };\n row.getIsExpanded = () => {\n var _table$options$getIsR;\n const expanded = table.getState().expanded;\n return !!((_table$options$getIsR = table.options.getIsRowExpanded == null ? void 0 : table.options.getIsRowExpanded(row)) != null ? _table$options$getIsR : expanded === true || (expanded == null ? void 0 : expanded[row.id]));\n };\n row.getCanExpand = () => {\n var _table$options$getRow, _table$options$enable, _row$subRows;\n return (_table$options$getRow = table.options.getRowCanExpand == null ? void 0 : table.options.getRowCanExpand(row)) != null ? _table$options$getRow : ((_table$options$enable = table.options.enableExpanding) != null ? _table$options$enable : true) && !!((_row$subRows = row.subRows) != null && _row$subRows.length);\n };\n row.getIsAllParentsExpanded = () => {\n let isFullyExpanded = true;\n let currentRow = row;\n while (isFullyExpanded && currentRow.parentId) {\n currentRow = table.getRow(currentRow.parentId, true);\n isFullyExpanded = currentRow.getIsExpanded();\n }\n return isFullyExpanded;\n };\n row.getToggleExpandedHandler = () => {\n const canExpand = row.getCanExpand();\n return () => {\n if (!canExpand) return;\n row.toggleExpanded();\n };\n };\n }\n};\n\n//\n\nconst defaultPageIndex = 0;\nconst defaultPageSize = 10;\nconst getDefaultPaginationState = () => ({\n pageIndex: defaultPageIndex,\n pageSize: defaultPageSize\n});\nconst RowPagination = {\n getInitialState: state => {\n return {\n ...state,\n pagination: {\n ...getDefaultPaginationState(),\n ...(state == null ? void 0 : state.pagination)\n }\n };\n },\n getDefaultOptions: table => {\n return {\n onPaginationChange: makeStateUpdater('pagination', table)\n };\n },\n createTable: table => {\n let registered = false;\n let queued = false;\n table._autoResetPageIndex = () => {\n var _ref, _table$options$autoRe;\n if (!registered) {\n table._queue(() => {\n registered = true;\n });\n return;\n }\n if ((_ref = (_table$options$autoRe = table.options.autoResetAll) != null ? _table$options$autoRe : table.options.autoResetPageIndex) != null ? _ref : !table.options.manualPagination) {\n if (queued) return;\n queued = true;\n table._queue(() => {\n table.resetPageIndex();\n queued = false;\n });\n }\n };\n table.setPagination = updater => {\n const safeUpdater = old => {\n let newState = functionalUpdate(updater, old);\n return newState;\n };\n return table.options.onPaginationChange == null ? void 0 : table.options.onPaginationChange(safeUpdater);\n };\n table.resetPagination = defaultState => {\n var _table$initialState$p;\n table.setPagination(defaultState ? getDefaultPaginationState() : (_table$initialState$p = table.initialState.pagination) != null ? _table$initialState$p : getDefaultPaginationState());\n };\n table.setPageIndex = updater => {\n table.setPagination(old => {\n let pageIndex = functionalUpdate(updater, old.pageIndex);\n const maxPageIndex = typeof table.options.pageCount === 'undefined' || table.options.pageCount === -1 ? Number.MAX_SAFE_INTEGER : table.options.pageCount - 1;\n pageIndex = Math.max(0, Math.min(pageIndex, maxPageIndex));\n return {\n ...old,\n pageIndex\n };\n });\n };\n table.resetPageIndex = defaultState => {\n var _table$initialState$p2, _table$initialState;\n table.setPageIndex(defaultState ? defaultPageIndex : (_table$initialState$p2 = (_table$initialState = table.initialState) == null || (_table$initialState = _table$initialState.pagination) == null ? void 0 : _table$initialState.pageIndex) != null ? _table$initialState$p2 : defaultPageIndex);\n };\n table.resetPageSize = defaultState => {\n var _table$initialState$p3, _table$initialState2;\n table.setPageSize(defaultState ? defaultPageSize : (_table$initialState$p3 = (_table$initialState2 = table.initialState) == null || (_table$initialState2 = _table$initialState2.pagination) == null ? void 0 : _table$initialState2.pageSize) != null ? _table$initialState$p3 : defaultPageSize);\n };\n table.setPageSize = updater => {\n table.setPagination(old => {\n const pageSize = Math.max(1, functionalUpdate(updater, old.pageSize));\n const topRowIndex = old.pageSize * old.pageIndex;\n const pageIndex = Math.floor(topRowIndex / pageSize);\n return {\n ...old,\n pageIndex,\n pageSize\n };\n });\n };\n //deprecated\n table.setPageCount = updater => table.setPagination(old => {\n var _table$options$pageCo;\n let newPageCount = functionalUpdate(updater, (_table$options$pageCo = table.options.pageCount) != null ? _table$options$pageCo : -1);\n if (typeof newPageCount === 'number') {\n newPageCount = Math.max(-1, newPageCount);\n }\n return {\n ...old,\n pageCount: newPageCount\n };\n });\n table.getPageOptions = memo(() => [table.getPageCount()], pageCount => {\n let pageOptions = [];\n if (pageCount && pageCount > 0) {\n pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i);\n }\n return pageOptions;\n }, getMemoOptions(table.options, 'debugTable', 'getPageOptions'));\n table.getCanPreviousPage = () => table.getState().pagination.pageIndex > 0;\n table.getCanNextPage = () => {\n const {\n pageIndex\n } = table.getState().pagination;\n const pageCount = table.getPageCount();\n if (pageCount === -1) {\n return true;\n }\n if (pageCount === 0) {\n return false;\n }\n return pageIndex < pageCount - 1;\n };\n table.previousPage = () => {\n return table.setPageIndex(old => old - 1);\n };\n table.nextPage = () => {\n return table.setPageIndex(old => {\n return old + 1;\n });\n };\n table.firstPage = () => {\n return table.setPageIndex(0);\n };\n table.lastPage = () => {\n return table.setPageIndex(table.getPageCount() - 1);\n };\n table.getPrePaginationRowModel = () => table.getExpandedRowModel();\n table.getPaginationRowModel = () => {\n if (!table._getPaginationRowModel && table.options.getPaginationRowModel) {\n table._getPaginationRowModel = table.options.getPaginationRowModel(table);\n }\n if (table.options.manualPagination || !table._getPaginationRowModel) {\n return table.getPrePaginationRowModel();\n }\n return table._getPaginationRowModel();\n };\n table.getPageCount = () => {\n var _table$options$pageCo2;\n return (_table$options$pageCo2 = table.options.pageCount) != null ? _table$options$pageCo2 : Math.ceil(table.getRowCount() / table.getState().pagination.pageSize);\n };\n table.getRowCount = () => {\n var _table$options$rowCou;\n return (_table$options$rowCou = table.options.rowCount) != null ? _table$options$rowCou : table.getPrePaginationRowModel().rows.length;\n };\n }\n};\n\n//\n\nconst getDefaultRowPinningState = () => ({\n top: [],\n bottom: []\n});\nconst RowPinning = {\n getInitialState: state => {\n return {\n rowPinning: getDefaultRowPinningState(),\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onRowPinningChange: makeStateUpdater('rowPinning', table)\n };\n },\n createRow: (row, table) => {\n row.pin = (position, includeLeafRows, includeParentRows) => {\n const leafRowIds = includeLeafRows ? row.getLeafRows().map(_ref => {\n let {\n id\n } = _ref;\n return id;\n }) : [];\n const parentRowIds = includeParentRows ? row.getParentRows().map(_ref2 => {\n let {\n id\n } = _ref2;\n return id;\n }) : [];\n const rowIds = new Set([...parentRowIds, row.id, ...leafRowIds]);\n table.setRowPinning(old => {\n var _old$top3, _old$bottom3;\n if (position === 'bottom') {\n var _old$top, _old$bottom;\n return {\n top: ((_old$top = old == null ? void 0 : old.top) != null ? _old$top : []).filter(d => !(rowIds != null && rowIds.has(d))),\n bottom: [...((_old$bottom = old == null ? void 0 : old.bottom) != null ? _old$bottom : []).filter(d => !(rowIds != null && rowIds.has(d))), ...Array.from(rowIds)]\n };\n }\n if (position === 'top') {\n var _old$top2, _old$bottom2;\n return {\n top: [...((_old$top2 = old == null ? void 0 : old.top) != null ? _old$top2 : []).filter(d => !(rowIds != null && rowIds.has(d))), ...Array.from(rowIds)],\n bottom: ((_old$bottom2 = old == null ? void 0 : old.bottom) != null ? _old$bottom2 : []).filter(d => !(rowIds != null && rowIds.has(d)))\n };\n }\n return {\n top: ((_old$top3 = old == null ? void 0 : old.top) != null ? _old$top3 : []).filter(d => !(rowIds != null && rowIds.has(d))),\n bottom: ((_old$bottom3 = old == null ? void 0 : old.bottom) != null ? _old$bottom3 : []).filter(d => !(rowIds != null && rowIds.has(d)))\n };\n });\n };\n row.getCanPin = () => {\n var _ref3;\n const {\n enableRowPinning,\n enablePinning\n } = table.options;\n if (typeof enableRowPinning === 'function') {\n return enableRowPinning(row);\n }\n return (_ref3 = enableRowPinning != null ? enableRowPinning : enablePinning) != null ? _ref3 : true;\n };\n row.getIsPinned = () => {\n const rowIds = [row.id];\n const {\n top,\n bottom\n } = table.getState().rowPinning;\n const isTop = rowIds.some(d => top == null ? void 0 : top.includes(d));\n const isBottom = rowIds.some(d => bottom == null ? void 0 : bottom.includes(d));\n return isTop ? 'top' : isBottom ? 'bottom' : false;\n };\n row.getPinnedIndex = () => {\n var _ref4, _visiblePinnedRowIds$;\n const position = row.getIsPinned();\n if (!position) return -1;\n const visiblePinnedRowIds = (_ref4 = position === 'top' ? table.getTopRows() : table.getBottomRows()) == null ? void 0 : _ref4.map(_ref5 => {\n let {\n id\n } = _ref5;\n return id;\n });\n return (_visiblePinnedRowIds$ = visiblePinnedRowIds == null ? void 0 : visiblePinnedRowIds.indexOf(row.id)) != null ? _visiblePinnedRowIds$ : -1;\n };\n },\n createTable: table => {\n table.setRowPinning = updater => table.options.onRowPinningChange == null ? void 0 : table.options.onRowPinningChange(updater);\n table.resetRowPinning = defaultState => {\n var _table$initialState$r, _table$initialState;\n return table.setRowPinning(defaultState ? getDefaultRowPinningState() : (_table$initialState$r = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.rowPinning) != null ? _table$initialState$r : getDefaultRowPinningState());\n };\n table.getIsSomeRowsPinned = position => {\n var _pinningState$positio;\n const pinningState = table.getState().rowPinning;\n if (!position) {\n var _pinningState$top, _pinningState$bottom;\n return Boolean(((_pinningState$top = pinningState.top) == null ? void 0 : _pinningState$top.length) || ((_pinningState$bottom = pinningState.bottom) == null ? void 0 : _pinningState$bottom.length));\n }\n return Boolean((_pinningState$positio = pinningState[position]) == null ? void 0 : _pinningState$positio.length);\n };\n table._getPinnedRows = (visibleRows, pinnedRowIds, position) => {\n var _table$options$keepPi;\n const rows = ((_table$options$keepPi = table.options.keepPinnedRows) != null ? _table$options$keepPi : true) ?\n //get all rows that are pinned even if they would not be otherwise visible\n //account for expanded parent rows, but not pagination or filtering\n (pinnedRowIds != null ? pinnedRowIds : []).map(rowId => {\n const row = table.getRow(rowId, true);\n return row.getIsAllParentsExpanded() ? row : null;\n }) :\n //else get only visible rows that are pinned\n (pinnedRowIds != null ? pinnedRowIds : []).map(rowId => visibleRows.find(row => row.id === rowId));\n return rows.filter(Boolean).map(d => ({\n ...d,\n position\n }));\n };\n table.getTopRows = memo(() => [table.getRowModel().rows, table.getState().rowPinning.top], (allRows, topPinnedRowIds) => table._getPinnedRows(allRows, topPinnedRowIds, 'top'), getMemoOptions(table.options, 'debugRows', 'getTopRows'));\n table.getBottomRows = memo(() => [table.getRowModel().rows, table.getState().rowPinning.bottom], (allRows, bottomPinnedRowIds) => table._getPinnedRows(allRows, bottomPinnedRowIds, 'bottom'), getMemoOptions(table.options, 'debugRows', 'getBottomRows'));\n table.getCenterRows = memo(() => [table.getRowModel().rows, table.getState().rowPinning.top, table.getState().rowPinning.bottom], (allRows, top, bottom) => {\n const topAndBottom = new Set([...(top != null ? top : []), ...(bottom != null ? bottom : [])]);\n return allRows.filter(d => !topAndBottom.has(d.id));\n }, getMemoOptions(table.options, 'debugRows', 'getCenterRows'));\n }\n};\n\n//\n\nconst RowSelection = {\n getInitialState: state => {\n return {\n rowSelection: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', table),\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true\n // enableGroupingRowSelection: false,\n // isAdditiveSelectEvent: (e: unknown) => !!e.metaKey,\n // isInclusiveSelectEvent: (e: unknown) => !!e.shiftKey,\n };\n },\n createTable: table => {\n table.setRowSelection = updater => table.options.onRowSelectionChange == null ? void 0 : table.options.onRowSelectionChange(updater);\n table.resetRowSelection = defaultState => {\n var _table$initialState$r;\n return table.setRowSelection(defaultState ? {} : (_table$initialState$r = table.initialState.rowSelection) != null ? _table$initialState$r : {});\n };\n table.toggleAllRowsSelected = value => {\n table.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !table.getIsAllRowsSelected();\n const rowSelection = {\n ...old\n };\n const preGroupedFlatRows = table.getPreGroupedRowModel().flatRows;\n\n // We don't use `mutateRowIsSelected` here for performance reasons.\n // All of the rows are flat already, so it wouldn't be worth it\n if (value) {\n preGroupedFlatRows.forEach(row => {\n if (!row.getCanSelect()) {\n return;\n }\n rowSelection[row.id] = true;\n });\n } else {\n preGroupedFlatRows.forEach(row => {\n delete rowSelection[row.id];\n });\n }\n return rowSelection;\n });\n };\n table.toggleAllPageRowsSelected = value => table.setRowSelection(old => {\n const resolvedValue = typeof value !== 'undefined' ? value : !table.getIsAllPageRowsSelected();\n const rowSelection = {\n ...old\n };\n table.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, resolvedValue, true, table);\n });\n return rowSelection;\n });\n\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = table\n\n // const findSelectedRow = (rows: Row[]) => {\n // let found\n // rows.find(d => {\n // if (d.getIsSelected()) {\n // found = d\n // return true\n // }\n // const subFound = findSelectedRow(d.subRows || [])\n // if (subFound) {\n // found = subFound\n // return true\n // }\n // return false\n // })\n // return found\n // }\n\n // const firstRow = findSelectedRow(rows) || rows[0]\n // const lastRow = rowsById[rowId]\n\n // let include = false\n // const selectedRowIds = {}\n\n // const addRow = (row: Row) => {\n // mutateRowIsSelected(selectedRowIds, row.id, true, {\n // rowsById,\n // selectGroupingRows: selectGroupingRows!,\n // selectSubRows: selectSubRows!,\n // })\n // }\n\n // table.rows.forEach(row => {\n // const isFirstRow = row.id === firstRow.id\n // const isLastRow = row.id === lastRow.id\n\n // if (isFirstRow || isLastRow) {\n // if (!include) {\n // include = true\n // } else if (include) {\n // addRow(row)\n // include = false\n // }\n // }\n\n // if (include) {\n // addRow(row)\n // }\n // })\n\n // table.setRowSelection(selectedRowIds)\n // },\n table.getPreSelectedRowModel = () => table.getCoreRowModel();\n table.getSelectedRowModel = memo(() => [table.getState().rowSelection, table.getCoreRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n return selectRowsFn(table, rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getSelectedRowModel'));\n table.getFilteredSelectedRowModel = memo(() => [table.getState().rowSelection, table.getFilteredRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n return selectRowsFn(table, rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getFilteredSelectedRowModel'));\n table.getGroupedSelectedRowModel = memo(() => [table.getState().rowSelection, table.getSortedRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n return selectRowsFn(table, rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getGroupedSelectedRowModel'));\n\n ///\n\n // getGroupingRowCanSelect: rowId => {\n // const row = table.getRow(rowId)\n\n // if (!row) {\n // throw new Error()\n // }\n\n // if (typeof table.options.enableGroupingRowSelection === 'function') {\n // return table.options.enableGroupingRowSelection(row)\n // }\n\n // return table.options.enableGroupingRowSelection ?? false\n // },\n\n table.getIsAllRowsSelected = () => {\n const preGroupedFlatRows = table.getFilteredRowModel().flatRows;\n const {\n rowSelection\n } = table.getState();\n let isAllRowsSelected = Boolean(preGroupedFlatRows.length && Object.keys(rowSelection).length);\n if (isAllRowsSelected) {\n if (preGroupedFlatRows.some(row => row.getCanSelect() && !rowSelection[row.id])) {\n isAllRowsSelected = false;\n }\n }\n return isAllRowsSelected;\n };\n table.getIsAllPageRowsSelected = () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows.filter(row => row.getCanSelect());\n const {\n rowSelection\n } = table.getState();\n let isAllPageRowsSelected = !!paginationFlatRows.length;\n if (isAllPageRowsSelected && paginationFlatRows.some(row => !rowSelection[row.id])) {\n isAllPageRowsSelected = false;\n }\n return isAllPageRowsSelected;\n };\n table.getIsSomeRowsSelected = () => {\n var _table$getState$rowSe;\n const totalSelected = Object.keys((_table$getState$rowSe = table.getState().rowSelection) != null ? _table$getState$rowSe : {}).length;\n return totalSelected > 0 && totalSelected < table.getFilteredRowModel().flatRows.length;\n };\n table.getIsSomePageRowsSelected = () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows;\n return table.getIsAllPageRowsSelected() ? false : paginationFlatRows.filter(row => row.getCanSelect()).some(d => d.getIsSelected() || d.getIsSomeSelected());\n };\n table.getToggleAllRowsSelectedHandler = () => {\n return e => {\n table.toggleAllRowsSelected(e.target.checked);\n };\n };\n table.getToggleAllPageRowsSelectedHandler = () => {\n return e => {\n table.toggleAllPageRowsSelected(e.target.checked);\n };\n };\n },\n createRow: (row, table) => {\n row.toggleSelected = (value, opts) => {\n const isSelected = row.getIsSelected();\n table.setRowSelection(old => {\n var _opts$selectChildren;\n value = typeof value !== 'undefined' ? value : !isSelected;\n if (row.getCanSelect() && isSelected === value) {\n return old;\n }\n const selectedRowIds = {\n ...old\n };\n mutateRowIsSelected(selectedRowIds, row.id, value, (_opts$selectChildren = opts == null ? void 0 : opts.selectChildren) != null ? _opts$selectChildren : true, table);\n return selectedRowIds;\n });\n };\n row.getIsSelected = () => {\n const {\n rowSelection\n } = table.getState();\n return isRowSelected(row, rowSelection);\n };\n row.getIsSomeSelected = () => {\n const {\n rowSelection\n } = table.getState();\n return isSubRowSelected(row, rowSelection) === 'some';\n };\n row.getIsAllSubRowsSelected = () => {\n const {\n rowSelection\n } = table.getState();\n return isSubRowSelected(row, rowSelection) === 'all';\n };\n row.getCanSelect = () => {\n var _table$options$enable;\n if (typeof table.options.enableRowSelection === 'function') {\n return table.options.enableRowSelection(row);\n }\n return (_table$options$enable = table.options.enableRowSelection) != null ? _table$options$enable : true;\n };\n row.getCanSelectSubRows = () => {\n var _table$options$enable2;\n if (typeof table.options.enableSubRowSelection === 'function') {\n return table.options.enableSubRowSelection(row);\n }\n return (_table$options$enable2 = table.options.enableSubRowSelection) != null ? _table$options$enable2 : true;\n };\n row.getCanMultiSelect = () => {\n var _table$options$enable3;\n if (typeof table.options.enableMultiRowSelection === 'function') {\n return table.options.enableMultiRowSelection(row);\n }\n return (_table$options$enable3 = table.options.enableMultiRowSelection) != null ? _table$options$enable3 : true;\n };\n row.getToggleSelectedHandler = () => {\n const canSelect = row.getCanSelect();\n return e => {\n var _target;\n if (!canSelect) return;\n row.toggleSelected((_target = e.target) == null ? void 0 : _target.checked);\n };\n };\n }\n};\nconst mutateRowIsSelected = (selectedRowIds, id, value, includeChildren, table) => {\n var _row$subRows;\n const row = table.getRow(id, true);\n\n // const isGrouped = row.getIsGrouped()\n\n // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && table.options.enableGroupingRowSelection)\n // ) {\n if (value) {\n if (!row.getCanMultiSelect()) {\n Object.keys(selectedRowIds).forEach(key => delete selectedRowIds[key]);\n }\n if (row.getCanSelect()) {\n selectedRowIds[id] = true;\n }\n } else {\n delete selectedRowIds[id];\n }\n // }\n\n if (includeChildren && (_row$subRows = row.subRows) != null && _row$subRows.length && row.getCanSelectSubRows()) {\n row.subRows.forEach(row => mutateRowIsSelected(selectedRowIds, row.id, value, includeChildren, table));\n }\n};\nfunction selectRowsFn(table, rowModel) {\n const rowSelection = table.getState().rowSelection;\n const newSelectedFlatRows = [];\n const newSelectedRowsById = {};\n\n // Filters top level and nested rows\n const recurseRows = function (rows, depth) {\n return rows.map(row => {\n var _row$subRows2;\n const isSelected = isRowSelected(row, rowSelection);\n if (isSelected) {\n newSelectedFlatRows.push(row);\n newSelectedRowsById[row.id] = row;\n }\n if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length) {\n row = {\n ...row,\n subRows: recurseRows(row.subRows)\n };\n }\n if (isSelected) {\n return row;\n }\n }).filter(Boolean);\n };\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById\n };\n}\nfunction isRowSelected(row, selection) {\n var _selection$row$id;\n return (_selection$row$id = selection[row.id]) != null ? _selection$row$id : false;\n}\nfunction isSubRowSelected(row, selection, table) {\n var _row$subRows3;\n if (!((_row$subRows3 = row.subRows) != null && _row$subRows3.length)) return false;\n let allChildrenSelected = true;\n let someSelected = false;\n row.subRows.forEach(subRow => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return;\n }\n if (subRow.getCanSelect()) {\n if (isRowSelected(subRow, selection)) {\n someSelected = true;\n } else {\n allChildrenSelected = false;\n }\n }\n\n // Check row selection of nested subrows\n if (subRow.subRows && subRow.subRows.length) {\n const subRowChildrenSelected = isSubRowSelected(subRow, selection);\n if (subRowChildrenSelected === 'all') {\n someSelected = true;\n } else if (subRowChildrenSelected === 'some') {\n someSelected = true;\n allChildrenSelected = false;\n } else {\n allChildrenSelected = false;\n }\n }\n });\n return allChildrenSelected ? 'all' : someSelected ? 'some' : false;\n}\n\nconst reSplitAlphaNumeric = /([0-9]+)/gm;\nconst alphanumeric = (rowA, rowB, columnId) => {\n return compareAlphanumeric(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());\n};\nconst alphanumericCaseSensitive = (rowA, rowB, columnId) => {\n return compareAlphanumeric(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));\n};\n\n// The text filter is more basic (less numeric support)\n// but is much faster\nconst text = (rowA, rowB, columnId) => {\n return compareBasic(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());\n};\n\n// The text filter is more basic (less numeric support)\n// but is much faster\nconst textCaseSensitive = (rowA, rowB, columnId) => {\n return compareBasic(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));\n};\nconst datetime = (rowA, rowB, columnId) => {\n const a = rowA.getValue(columnId);\n const b = rowB.getValue(columnId);\n\n // Can handle nullish values\n // Use > and < because == (and ===) doesn't work with\n // Date objects (would require calling getTime()).\n return a > b ? 1 : a < b ? -1 : 0;\n};\nconst basic = (rowA, rowB, columnId) => {\n return compareBasic(rowA.getValue(columnId), rowB.getValue(columnId));\n};\n\n// Utils\n\nfunction compareBasic(a, b) {\n return a === b ? 0 : a > b ? 1 : -1;\n}\nfunction toString(a) {\n if (typeof a === 'number') {\n if (isNaN(a) || a === Infinity || a === -Infinity) {\n return '';\n }\n return String(a);\n }\n if (typeof a === 'string') {\n return a;\n }\n return '';\n}\n\n// Mixed sorting is slow, but very inclusive of many edge cases.\n// It handles numbers, mixed alphanumeric combinations, and even\n// null, undefined, and Infinity\nfunction compareAlphanumeric(aStr, bStr) {\n // Split on number groups, but keep the delimiter\n // Then remove falsey split values\n const a = aStr.split(reSplitAlphaNumeric).filter(Boolean);\n const b = bStr.split(reSplitAlphaNumeric).filter(Boolean);\n\n // While\n while (a.length && b.length) {\n const aa = a.shift();\n const bb = b.shift();\n const an = parseInt(aa, 10);\n const bn = parseInt(bb, 10);\n const combo = [an, bn].sort();\n\n // Both are string\n if (isNaN(combo[0])) {\n if (aa > bb) {\n return 1;\n }\n if (bb > aa) {\n return -1;\n }\n continue;\n }\n\n // One is a string, one is a number\n if (isNaN(combo[1])) {\n return isNaN(an) ? -1 : 1;\n }\n\n // Both are numbers\n if (an > bn) {\n return 1;\n }\n if (bn > an) {\n return -1;\n }\n }\n return a.length - b.length;\n}\n\n// Exports\n\nconst sortingFns = {\n alphanumeric,\n alphanumericCaseSensitive,\n text,\n textCaseSensitive,\n datetime,\n basic\n};\n\n//\n\nconst RowSorting = {\n getInitialState: state => {\n return {\n sorting: [],\n ...state\n };\n },\n getDefaultColumnDef: () => {\n return {\n sortingFn: 'auto',\n sortUndefined: 1\n };\n },\n getDefaultOptions: table => {\n return {\n onSortingChange: makeStateUpdater('sorting', table),\n isMultiSortEvent: e => {\n return e.shiftKey;\n }\n };\n },\n createColumn: (column, table) => {\n column.getAutoSortingFn = () => {\n const firstRows = table.getFilteredRowModel().flatRows.slice(10);\n let isString = false;\n for (const row of firstRows) {\n const value = row == null ? void 0 : row.getValue(column.id);\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return sortingFns.datetime;\n }\n if (typeof value === 'string') {\n isString = true;\n if (value.split(reSplitAlphaNumeric).length > 1) {\n return sortingFns.alphanumeric;\n }\n }\n }\n if (isString) {\n return sortingFns.text;\n }\n return sortingFns.basic;\n };\n column.getAutoSortDir = () => {\n const firstRow = table.getFilteredRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n if (typeof value === 'string') {\n return 'asc';\n }\n return 'desc';\n };\n column.getSortingFn = () => {\n var _table$options$sortin, _table$options$sortin2;\n if (!column) {\n throw new Error();\n }\n return isFunction(column.columnDef.sortingFn) ? column.columnDef.sortingFn : column.columnDef.sortingFn === 'auto' ? column.getAutoSortingFn() : (_table$options$sortin = (_table$options$sortin2 = table.options.sortingFns) == null ? void 0 : _table$options$sortin2[column.columnDef.sortingFn]) != null ? _table$options$sortin : sortingFns[column.columnDef.sortingFn];\n };\n column.toggleSorting = (desc, multi) => {\n // if (column.columns.length) {\n // column.columns.forEach((c, i) => {\n // if (c.id) {\n // table.toggleColumnSorting(c.id, undefined, multi || !!i)\n // }\n // })\n // return\n // }\n\n // this needs to be outside of table.setSorting to be in sync with rerender\n const nextSortingOrder = column.getNextSortingOrder();\n const hasManualValue = typeof desc !== 'undefined' && desc !== null;\n table.setSorting(old => {\n // Find any existing sorting for this column\n const existingSorting = old == null ? void 0 : old.find(d => d.id === column.id);\n const existingIndex = old == null ? void 0 : old.findIndex(d => d.id === column.id);\n let newSorting = [];\n\n // What should we do with this sort action?\n let sortAction;\n let nextDesc = hasManualValue ? desc : nextSortingOrder === 'desc';\n\n // Multi-mode\n if (old != null && old.length && column.getCanMultiSort() && multi) {\n if (existingSorting) {\n sortAction = 'toggle';\n } else {\n sortAction = 'add';\n }\n } else {\n // Normal mode\n if (old != null && old.length && existingIndex !== old.length - 1) {\n sortAction = 'replace';\n } else if (existingSorting) {\n sortAction = 'toggle';\n } else {\n sortAction = 'replace';\n }\n }\n\n // Handle toggle states that will remove the sorting\n if (sortAction === 'toggle') {\n // If we are \"actually\" toggling (not a manual set value), should we remove the sorting?\n if (!hasManualValue) {\n // Is our intention to remove?\n if (!nextSortingOrder) {\n sortAction = 'remove';\n }\n }\n }\n if (sortAction === 'add') {\n var _table$options$maxMul;\n newSorting = [...old, {\n id: column.id,\n desc: nextDesc\n }];\n // Take latest n columns\n newSorting.splice(0, newSorting.length - ((_table$options$maxMul = table.options.maxMultiSortColCount) != null ? _table$options$maxMul : Number.MAX_SAFE_INTEGER));\n } else if (sortAction === 'toggle') {\n // This flips (or sets) the\n newSorting = old.map(d => {\n if (d.id === column.id) {\n return {\n ...d,\n desc: nextDesc\n };\n }\n return d;\n });\n } else if (sortAction === 'remove') {\n newSorting = old.filter(d => d.id !== column.id);\n } else {\n newSorting = [{\n id: column.id,\n desc: nextDesc\n }];\n }\n return newSorting;\n });\n };\n column.getFirstSortDir = () => {\n var _ref, _column$columnDef$sor;\n const sortDescFirst = (_ref = (_column$columnDef$sor = column.columnDef.sortDescFirst) != null ? _column$columnDef$sor : table.options.sortDescFirst) != null ? _ref : column.getAutoSortDir() === 'desc';\n return sortDescFirst ? 'desc' : 'asc';\n };\n column.getNextSortingOrder = multi => {\n var _table$options$enable, _table$options$enable2;\n const firstSortDirection = column.getFirstSortDir();\n const isSorted = column.getIsSorted();\n if (!isSorted) {\n return firstSortDirection;\n }\n if (isSorted !== firstSortDirection && ((_table$options$enable = table.options.enableSortingRemoval) != null ? _table$options$enable : true) && (\n // If enableSortRemove, enable in general\n multi ? (_table$options$enable2 = table.options.enableMultiRemove) != null ? _table$options$enable2 : true : true) // If multi, don't allow if enableMultiRemove))\n ) {\n return false;\n }\n return isSorted === 'desc' ? 'asc' : 'desc';\n };\n column.getCanSort = () => {\n var _column$columnDef$ena, _table$options$enable3;\n return ((_column$columnDef$ena = column.columnDef.enableSorting) != null ? _column$columnDef$ena : true) && ((_table$options$enable3 = table.options.enableSorting) != null ? _table$options$enable3 : true) && !!column.accessorFn;\n };\n column.getCanMultiSort = () => {\n var _ref2, _column$columnDef$ena2;\n return (_ref2 = (_column$columnDef$ena2 = column.columnDef.enableMultiSort) != null ? _column$columnDef$ena2 : table.options.enableMultiSort) != null ? _ref2 : !!column.accessorFn;\n };\n column.getIsSorted = () => {\n var _table$getState$sorti;\n const columnSort = (_table$getState$sorti = table.getState().sorting) == null ? void 0 : _table$getState$sorti.find(d => d.id === column.id);\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc';\n };\n column.getSortIndex = () => {\n var _table$getState$sorti2, _table$getState$sorti3;\n return (_table$getState$sorti2 = (_table$getState$sorti3 = table.getState().sorting) == null ? void 0 : _table$getState$sorti3.findIndex(d => d.id === column.id)) != null ? _table$getState$sorti2 : -1;\n };\n column.clearSorting = () => {\n //clear sorting for just 1 column\n table.setSorting(old => old != null && old.length ? old.filter(d => d.id !== column.id) : []);\n };\n column.getToggleSortingHandler = () => {\n const canSort = column.getCanSort();\n return e => {\n if (!canSort) return;\n e.persist == null || e.persist();\n column.toggleSorting == null || column.toggleSorting(undefined, column.getCanMultiSort() ? table.options.isMultiSortEvent == null ? void 0 : table.options.isMultiSortEvent(e) : false);\n };\n };\n },\n createTable: table => {\n table.setSorting = updater => table.options.onSortingChange == null ? void 0 : table.options.onSortingChange(updater);\n table.resetSorting = defaultState => {\n var _table$initialState$s, _table$initialState;\n table.setSorting(defaultState ? [] : (_table$initialState$s = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.sorting) != null ? _table$initialState$s : []);\n };\n table.getPreSortedRowModel = () => table.getGroupedRowModel();\n table.getSortedRowModel = () => {\n if (!table._getSortedRowModel && table.options.getSortedRowModel) {\n table._getSortedRowModel = table.options.getSortedRowModel(table);\n }\n if (table.options.manualSorting || !table._getSortedRowModel) {\n return table.getPreSortedRowModel();\n }\n return table._getSortedRowModel();\n };\n }\n};\n\nconst builtInFeatures = [Headers, ColumnVisibility, ColumnOrdering, ColumnPinning, ColumnFaceting, ColumnFiltering, GlobalFaceting,\n//depends on ColumnFaceting\nGlobalFiltering,\n//depends on ColumnFiltering\nRowSorting, ColumnGrouping,\n//depends on RowSorting\nRowExpanding, RowPagination, RowPinning, RowSelection, ColumnSizing];\n\n//\n\nfunction createTable(options) {\n var _options$_features, _options$initialState;\n if (process.env.NODE_ENV !== 'production' && (options.debugAll || options.debugTable)) {\n console.info('Creating Table Instance...');\n }\n const _features = [...builtInFeatures, ...((_options$_features = options._features) != null ? _options$_features : [])];\n let table = {\n _features\n };\n const defaultOptions = table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultOptions == null ? void 0 : feature.getDefaultOptions(table));\n }, {});\n const mergeOptions = options => {\n if (table.options.mergeOptions) {\n return table.options.mergeOptions(defaultOptions, options);\n }\n return {\n ...defaultOptions,\n ...options\n };\n };\n const coreInitialState = {};\n let initialState = {\n ...coreInitialState,\n ...((_options$initialState = options.initialState) != null ? _options$initialState : {})\n };\n table._features.forEach(feature => {\n var _feature$getInitialSt;\n initialState = (_feature$getInitialSt = feature.getInitialState == null ? void 0 : feature.getInitialState(initialState)) != null ? _feature$getInitialSt : initialState;\n });\n const queued = [];\n let queuedTimeout = false;\n const coreInstance = {\n _features,\n options: {\n ...defaultOptions,\n ...options\n },\n initialState,\n _queue: cb => {\n queued.push(cb);\n if (!queuedTimeout) {\n queuedTimeout = true;\n\n // Schedule a microtask to run the queued callbacks after\n // the current call stack (render, etc) has finished.\n Promise.resolve().then(() => {\n while (queued.length) {\n queued.shift()();\n }\n queuedTimeout = false;\n }).catch(error => setTimeout(() => {\n throw error;\n }));\n }\n },\n reset: () => {\n table.setState(table.initialState);\n },\n setOptions: updater => {\n const newOptions = functionalUpdate(updater, table.options);\n table.options = mergeOptions(newOptions);\n },\n getState: () => {\n return table.options.state;\n },\n setState: updater => {\n table.options.onStateChange == null || table.options.onStateChange(updater);\n },\n _getRowId: (row, index, parent) => {\n var _table$options$getRow;\n return (_table$options$getRow = table.options.getRowId == null ? void 0 : table.options.getRowId(row, index, parent)) != null ? _table$options$getRow : `${parent ? [parent.id, index].join('.') : index}`;\n },\n getCoreRowModel: () => {\n if (!table._getCoreRowModel) {\n table._getCoreRowModel = table.options.getCoreRowModel(table);\n }\n return table._getCoreRowModel();\n },\n // The final calls start at the bottom of the model,\n // expanded rows, which then work their way up\n\n getRowModel: () => {\n return table.getPaginationRowModel();\n },\n //in next version, we should just pass in the row model as the optional 2nd arg\n getRow: (id, searchAll) => {\n let row = (searchAll ? table.getPrePaginationRowModel() : table.getRowModel()).rowsById[id];\n if (!row) {\n row = table.getCoreRowModel().rowsById[id];\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRow could not find row with ID: ${id}`);\n }\n throw new Error();\n }\n }\n return row;\n },\n _getDefaultColumnDef: memo(() => [table.options.defaultColumn], defaultColumn => {\n var _defaultColumn;\n defaultColumn = (_defaultColumn = defaultColumn) != null ? _defaultColumn : {};\n return {\n header: props => {\n const resolvedColumnDef = props.header.column.columnDef;\n if (resolvedColumnDef.accessorKey) {\n return resolvedColumnDef.accessorKey;\n }\n if (resolvedColumnDef.accessorFn) {\n return resolvedColumnDef.id;\n }\n return null;\n },\n // footer: props => props.header.column.id,\n cell: props => {\n var _props$renderValue$to, _props$renderValue;\n return (_props$renderValue$to = (_props$renderValue = props.renderValue()) == null || _props$renderValue.toString == null ? void 0 : _props$renderValue.toString()) != null ? _props$renderValue$to : null;\n },\n ...table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultColumnDef == null ? void 0 : feature.getDefaultColumnDef());\n }, {}),\n ...defaultColumn\n };\n }, getMemoOptions(options, 'debugColumns', '_getDefaultColumnDef')),\n _getColumnDefs: () => table.options.columns,\n getAllColumns: memo(() => [table._getColumnDefs()], columnDefs => {\n const recurseColumns = function (columnDefs, parent, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n return columnDefs.map(columnDef => {\n const column = createColumn(table, columnDef, depth, parent);\n const groupingColumnDef = columnDef;\n column.columns = groupingColumnDef.columns ? recurseColumns(groupingColumnDef.columns, column, depth + 1) : [];\n return column;\n });\n };\n return recurseColumns(columnDefs);\n }, getMemoOptions(options, 'debugColumns', 'getAllColumns')),\n getAllFlatColumns: memo(() => [table.getAllColumns()], allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns();\n });\n }, getMemoOptions(options, 'debugColumns', 'getAllFlatColumns')),\n _getAllFlatColumnsById: memo(() => [table.getAllFlatColumns()], flatColumns => {\n return flatColumns.reduce((acc, column) => {\n acc[column.id] = column;\n return acc;\n }, {});\n }, getMemoOptions(options, 'debugColumns', 'getAllFlatColumnsById')),\n getAllLeafColumns: memo(() => [table.getAllColumns(), table._getOrderColumnsFn()], (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column => column.getLeafColumns());\n return orderColumns(leafColumns);\n }, getMemoOptions(options, 'debugColumns', 'getAllLeafColumns')),\n getColumn: columnId => {\n const column = table._getAllFlatColumnsById()[columnId];\n if (process.env.NODE_ENV !== 'production' && !column) {\n console.error(`[Table] Column with id '${columnId}' does not exist.`);\n }\n return column;\n }\n };\n Object.assign(table, coreInstance);\n for (let index = 0; index < table._features.length; index++) {\n const feature = table._features[index];\n feature == null || feature.createTable == null || feature.createTable(table);\n }\n return table;\n}\n\nfunction getCoreRowModel() {\n return table => memo(() => [table.options.data], data => {\n const rowModel = {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n const accessRows = function (originalRows, depth, parentRow) {\n if (depth === void 0) {\n depth = 0;\n }\n const rows = [];\n for (let i = 0; i < originalRows.length; i++) {\n // This could be an expensive check at scale, so we should move it somewhere else, but where?\n // if (!id) {\n // if (process.env.NODE_ENV !== 'production') {\n // throw new Error(`getRowId expected an ID, but got ${id}`)\n // }\n // }\n\n // Make the row\n const row = createRow(table, table._getRowId(originalRows[i], i, parentRow), originalRows[i], i, depth, undefined, parentRow == null ? void 0 : parentRow.id);\n\n // Keep track of every row in a flat array\n rowModel.flatRows.push(row);\n // Also keep track of every row by its ID\n rowModel.rowsById[row.id] = row;\n // Push table row into parent\n rows.push(row);\n\n // Get the original subrows\n if (table.options.getSubRows) {\n var _row$originalSubRows;\n row.originalSubRows = table.options.getSubRows(originalRows[i], i);\n\n // Then recursively access them\n if ((_row$originalSubRows = row.originalSubRows) != null && _row$originalSubRows.length) {\n row.subRows = accessRows(row.originalSubRows, depth + 1, row);\n }\n }\n }\n return rows;\n };\n rowModel.rows = accessRows(data);\n return rowModel;\n }, getMemoOptions(table.options, 'debugTable', 'getRowModel', () => table._autoResetPageIndex()));\n}\n\nfunction getExpandedRowModel() {\n return table => memo(() => [table.getState().expanded, table.getPreExpandedRowModel(), table.options.paginateExpandedRows], (expanded, rowModel, paginateExpandedRows) => {\n if (!rowModel.rows.length || expanded !== true && !Object.keys(expanded != null ? expanded : {}).length) {\n return rowModel;\n }\n if (!paginateExpandedRows) {\n // Only expand rows at this point if they are being paginated\n return rowModel;\n }\n return expandRows(rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getExpandedRowModel'));\n}\nfunction expandRows(rowModel) {\n const expandedRows = [];\n const handleRow = row => {\n var _row$subRows;\n expandedRows.push(row);\n if ((_row$subRows = row.subRows) != null && _row$subRows.length && row.getIsExpanded()) {\n row.subRows.forEach(handleRow);\n }\n };\n rowModel.rows.forEach(handleRow);\n return {\n rows: expandedRows,\n flatRows: rowModel.flatRows,\n rowsById: rowModel.rowsById\n };\n}\n\nfunction getFacetedMinMaxValues() {\n return (table, columnId) => memo(() => {\n var _table$getColumn;\n return [(_table$getColumn = table.getColumn(columnId)) == null ? void 0 : _table$getColumn.getFacetedRowModel()];\n }, facetedRowModel => {\n if (!facetedRowModel) return undefined;\n const uniqueValues = facetedRowModel.flatRows.flatMap(flatRow => {\n var _flatRow$getUniqueVal;\n return (_flatRow$getUniqueVal = flatRow.getUniqueValues(columnId)) != null ? _flatRow$getUniqueVal : [];\n }).map(Number).filter(value => !Number.isNaN(value));\n if (!uniqueValues.length) return;\n let facetedMinValue = uniqueValues[0];\n let facetedMaxValue = uniqueValues[uniqueValues.length - 1];\n for (const value of uniqueValues) {\n if (value < facetedMinValue) facetedMinValue = value;else if (value > facetedMaxValue) facetedMaxValue = value;\n }\n return [facetedMinValue, facetedMaxValue];\n }, getMemoOptions(table.options, 'debugTable', 'getFacetedMinMaxValues'));\n}\n\nfunction filterRows(rows, filterRowImpl, table) {\n if (table.options.filterFromLeafRows) {\n return filterRowModelFromLeafs(rows, filterRowImpl, table);\n }\n return filterRowModelFromRoot(rows, filterRowImpl, table);\n}\nfunction filterRowModelFromLeafs(rowsToFilter, filterRow, table) {\n var _table$options$maxLea;\n const newFilteredFlatRows = [];\n const newFilteredRowsById = {};\n const maxDepth = (_table$options$maxLea = table.options.maxLeafRowFilterDepth) != null ? _table$options$maxLea : 100;\n const recurseFilterRows = function (rowsToFilter, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n const rows = [];\n\n // Filter from children up first\n for (let i = 0; i < rowsToFilter.length; i++) {\n var _row$subRows;\n let row = rowsToFilter[i];\n const newRow = createRow(table, row.id, row.original, row.index, row.depth, undefined, row.parentId);\n newRow.columnFilters = row.columnFilters;\n if ((_row$subRows = row.subRows) != null && _row$subRows.length && depth < maxDepth) {\n newRow.subRows = recurseFilterRows(row.subRows, depth + 1);\n row = newRow;\n if (filterRow(row) && !newRow.subRows.length) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredFlatRows.push(row);\n continue;\n }\n if (filterRow(row) || newRow.subRows.length) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredFlatRows.push(row);\n continue;\n }\n } else {\n row = newRow;\n if (filterRow(row)) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredFlatRows.push(row);\n }\n }\n }\n return rows;\n };\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById\n };\n}\nfunction filterRowModelFromRoot(rowsToFilter, filterRow, table) {\n var _table$options$maxLea2;\n const newFilteredFlatRows = [];\n const newFilteredRowsById = {};\n const maxDepth = (_table$options$maxLea2 = table.options.maxLeafRowFilterDepth) != null ? _table$options$maxLea2 : 100;\n\n // Filters top level and nested rows\n const recurseFilterRows = function (rowsToFilter, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n // Filter from parents downward first\n\n const rows = [];\n\n // Apply the filter to any subRows\n for (let i = 0; i < rowsToFilter.length; i++) {\n let row = rowsToFilter[i];\n const pass = filterRow(row);\n if (pass) {\n var _row$subRows2;\n if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length && depth < maxDepth) {\n const newRow = createRow(table, row.id, row.original, row.index, row.depth, undefined, row.parentId);\n newRow.subRows = recurseFilterRows(row.subRows, depth + 1);\n row = newRow;\n }\n rows.push(row);\n newFilteredFlatRows.push(row);\n newFilteredRowsById[row.id] = row;\n }\n }\n return rows;\n };\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById\n };\n}\n\nfunction getFacetedRowModel() {\n return (table, columnId) => memo(() => [table.getPreFilteredRowModel(), table.getState().columnFilters, table.getState().globalFilter, table.getFilteredRowModel()], (preRowModel, columnFilters, globalFilter) => {\n if (!preRowModel.rows.length || !(columnFilters != null && columnFilters.length) && !globalFilter) {\n return preRowModel;\n }\n const filterableIds = [...columnFilters.map(d => d.id).filter(d => d !== columnId), globalFilter ? '__global__' : undefined].filter(Boolean);\n const filterRowsImpl = row => {\n // Horizontally filter rows through each column\n for (let i = 0; i < filterableIds.length; i++) {\n if (row.columnFilters[filterableIds[i]] === false) {\n return false;\n }\n }\n return true;\n };\n return filterRows(preRowModel.rows, filterRowsImpl, table);\n }, getMemoOptions(table.options, 'debugTable', 'getFacetedRowModel'));\n}\n\nfunction getFacetedUniqueValues() {\n return (table, columnId) => memo(() => {\n var _table$getColumn;\n return [(_table$getColumn = table.getColumn(columnId)) == null ? void 0 : _table$getColumn.getFacetedRowModel()];\n }, facetedRowModel => {\n if (!facetedRowModel) return new Map();\n let facetedUniqueValues = new Map();\n for (let i = 0; i < facetedRowModel.flatRows.length; i++) {\n const values = facetedRowModel.flatRows[i].getUniqueValues(columnId);\n for (let j = 0; j < values.length; j++) {\n const value = values[j];\n if (facetedUniqueValues.has(value)) {\n var _facetedUniqueValues$;\n facetedUniqueValues.set(value, ((_facetedUniqueValues$ = facetedUniqueValues.get(value)) != null ? _facetedUniqueValues$ : 0) + 1);\n } else {\n facetedUniqueValues.set(value, 1);\n }\n }\n }\n return facetedUniqueValues;\n }, getMemoOptions(table.options, 'debugTable', `getFacetedUniqueValues_${columnId}`));\n}\n\nfunction getFilteredRowModel() {\n return table => memo(() => [table.getPreFilteredRowModel(), table.getState().columnFilters, table.getState().globalFilter], (rowModel, columnFilters, globalFilter) => {\n if (!rowModel.rows.length || !(columnFilters != null && columnFilters.length) && !globalFilter) {\n for (let i = 0; i < rowModel.flatRows.length; i++) {\n rowModel.flatRows[i].columnFilters = {};\n rowModel.flatRows[i].columnFiltersMeta = {};\n }\n return rowModel;\n }\n const resolvedColumnFilters = [];\n const resolvedGlobalFilters = [];\n (columnFilters != null ? columnFilters : []).forEach(d => {\n var _filterFn$resolveFilt;\n const column = table.getColumn(d.id);\n if (!column) {\n return;\n }\n const filterFn = column.getFilterFn();\n if (!filterFn) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`Could not find a valid 'column.filterFn' for column with the ID: ${column.id}.`);\n }\n return;\n }\n resolvedColumnFilters.push({\n id: d.id,\n filterFn,\n resolvedValue: (_filterFn$resolveFilt = filterFn.resolveFilterValue == null ? void 0 : filterFn.resolveFilterValue(d.value)) != null ? _filterFn$resolveFilt : d.value\n });\n });\n const filterableIds = (columnFilters != null ? columnFilters : []).map(d => d.id);\n const globalFilterFn = table.getGlobalFilterFn();\n const globallyFilterableColumns = table.getAllLeafColumns().filter(column => column.getCanGlobalFilter());\n if (globalFilter && globalFilterFn && globallyFilterableColumns.length) {\n filterableIds.push('__global__');\n globallyFilterableColumns.forEach(column => {\n var _globalFilterFn$resol;\n resolvedGlobalFilters.push({\n id: column.id,\n filterFn: globalFilterFn,\n resolvedValue: (_globalFilterFn$resol = globalFilterFn.resolveFilterValue == null ? void 0 : globalFilterFn.resolveFilterValue(globalFilter)) != null ? _globalFilterFn$resol : globalFilter\n });\n });\n }\n let currentColumnFilter;\n let currentGlobalFilter;\n\n // Flag the prefiltered row model with each filter state\n for (let j = 0; j < rowModel.flatRows.length; j++) {\n const row = rowModel.flatRows[j];\n row.columnFilters = {};\n if (resolvedColumnFilters.length) {\n for (let i = 0; i < resolvedColumnFilters.length; i++) {\n currentColumnFilter = resolvedColumnFilters[i];\n const id = currentColumnFilter.id;\n\n // Tag the row with the column filter state\n row.columnFilters[id] = currentColumnFilter.filterFn(row, id, currentColumnFilter.resolvedValue, filterMeta => {\n row.columnFiltersMeta[id] = filterMeta;\n });\n }\n }\n if (resolvedGlobalFilters.length) {\n for (let i = 0; i < resolvedGlobalFilters.length; i++) {\n currentGlobalFilter = resolvedGlobalFilters[i];\n const id = currentGlobalFilter.id;\n // Tag the row with the first truthy global filter state\n if (currentGlobalFilter.filterFn(row, id, currentGlobalFilter.resolvedValue, filterMeta => {\n row.columnFiltersMeta[id] = filterMeta;\n })) {\n row.columnFilters.__global__ = true;\n break;\n }\n }\n if (row.columnFilters.__global__ !== true) {\n row.columnFilters.__global__ = false;\n }\n }\n }\n const filterRowsImpl = row => {\n // Horizontally filter rows through each column\n for (let i = 0; i < filterableIds.length; i++) {\n if (row.columnFilters[filterableIds[i]] === false) {\n return false;\n }\n }\n return true;\n };\n\n // Filter final rows using all of the active filters\n return filterRows(rowModel.rows, filterRowsImpl, table);\n }, getMemoOptions(table.options, 'debugTable', 'getFilteredRowModel', () => table._autoResetPageIndex()));\n}\n\nfunction getGroupedRowModel() {\n return table => memo(() => [table.getState().grouping, table.getPreGroupedRowModel()], (grouping, rowModel) => {\n if (!rowModel.rows.length || !grouping.length) {\n rowModel.rows.forEach(row => {\n row.depth = 0;\n row.parentId = undefined;\n });\n return rowModel;\n }\n\n // Filter the grouping list down to columns that exist\n const existingGrouping = grouping.filter(columnId => table.getColumn(columnId));\n const groupedFlatRows = [];\n const groupedRowsById = {};\n // const onlyGroupedFlatRows: Row[] = [];\n // const onlyGroupedRowsById: Record<RowId, Row> = {};\n // const nonGroupedFlatRows: Row[] = [];\n // const nonGroupedRowsById: Record<RowId, Row> = {};\n\n // Recursively group the data\n const groupUpRecursively = function (rows, depth, parentId) {\n if (depth === void 0) {\n depth = 0;\n }\n // Grouping depth has been been met\n // Stop grouping and simply rewrite thd depth and row relationships\n if (depth >= existingGrouping.length) {\n return rows.map(row => {\n row.depth = depth;\n groupedFlatRows.push(row);\n groupedRowsById[row.id] = row;\n if (row.subRows) {\n row.subRows = groupUpRecursively(row.subRows, depth + 1, row.id);\n }\n return row;\n });\n }\n const columnId = existingGrouping[depth];\n\n // Group the rows together for this level\n const rowGroupsMap = groupBy(rows, columnId);\n\n // Perform aggregations for each group\n const aggregatedGroupedRows = Array.from(rowGroupsMap.entries()).map((_ref, index) => {\n let [groupingValue, groupedRows] = _ref;\n let id = `${columnId}:${groupingValue}`;\n id = parentId ? `${parentId}>${id}` : id;\n\n // First, Recurse to group sub rows before aggregation\n const subRows = groupUpRecursively(groupedRows, depth + 1, id);\n subRows.forEach(subRow => {\n subRow.parentId = id;\n });\n\n // Flatten the leaf rows of the rows in this group\n const leafRows = depth ? flattenBy(groupedRows, row => row.subRows) : groupedRows;\n const row = createRow(table, id, leafRows[0].original, index, depth, undefined, parentId);\n Object.assign(row, {\n groupingColumnId: columnId,\n groupingValue,\n subRows,\n leafRows,\n getValue: columnId => {\n // Don't aggregate columns that are in the grouping\n if (existingGrouping.includes(columnId)) {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId];\n }\n if (groupedRows[0]) {\n var _groupedRows$0$getVal;\n row._valuesCache[columnId] = (_groupedRows$0$getVal = groupedRows[0].getValue(columnId)) != null ? _groupedRows$0$getVal : undefined;\n }\n return row._valuesCache[columnId];\n }\n if (row._groupingValuesCache.hasOwnProperty(columnId)) {\n return row._groupingValuesCache[columnId];\n }\n\n // Aggregate the values\n const column = table.getColumn(columnId);\n const aggregateFn = column == null ? void 0 : column.getAggregationFn();\n if (aggregateFn) {\n row._groupingValuesCache[columnId] = aggregateFn(columnId, leafRows, groupedRows);\n return row._groupingValuesCache[columnId];\n }\n }\n });\n subRows.forEach(subRow => {\n groupedFlatRows.push(subRow);\n groupedRowsById[subRow.id] = subRow;\n // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n });\n return row;\n });\n return aggregatedGroupedRows;\n };\n const groupedRows = groupUpRecursively(rowModel.rows, 0);\n groupedRows.forEach(subRow => {\n groupedFlatRows.push(subRow);\n groupedRowsById[subRow.id] = subRow;\n // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n });\n return {\n rows: groupedRows,\n flatRows: groupedFlatRows,\n rowsById: groupedRowsById\n };\n }, getMemoOptions(table.options, 'debugTable', 'getGroupedRowModel', () => {\n table._queue(() => {\n table._autoResetExpanded();\n table._autoResetPageIndex();\n });\n }));\n}\nfunction groupBy(rows, columnId) {\n const groupMap = new Map();\n return rows.reduce((map, row) => {\n const resKey = `${row.getGroupingValue(columnId)}`;\n const previous = map.get(resKey);\n if (!previous) {\n map.set(resKey, [row]);\n } else {\n previous.push(row);\n }\n return map;\n }, groupMap);\n}\n\nfunction getPaginationRowModel(opts) {\n return table => memo(() => [table.getState().pagination, table.getPrePaginationRowModel(), table.options.paginateExpandedRows ? undefined : table.getState().expanded], (pagination, rowModel) => {\n if (!rowModel.rows.length) {\n return rowModel;\n }\n const {\n pageSize,\n pageIndex\n } = pagination;\n let {\n rows,\n flatRows,\n rowsById\n } = rowModel;\n const pageStart = pageSize * pageIndex;\n const pageEnd = pageStart + pageSize;\n rows = rows.slice(pageStart, pageEnd);\n let paginatedRowModel;\n if (!table.options.paginateExpandedRows) {\n paginatedRowModel = expandRows({\n rows,\n flatRows,\n rowsById\n });\n } else {\n paginatedRowModel = {\n rows,\n flatRows,\n rowsById\n };\n }\n paginatedRowModel.flatRows = [];\n const handleRow = row => {\n paginatedRowModel.flatRows.push(row);\n if (row.subRows.length) {\n row.subRows.forEach(handleRow);\n }\n };\n paginatedRowModel.rows.forEach(handleRow);\n return paginatedRowModel;\n }, getMemoOptions(table.options, 'debugTable', 'getPaginationRowModel'));\n}\n\nfunction getSortedRowModel() {\n return table => memo(() => [table.getState().sorting, table.getPreSortedRowModel()], (sorting, rowModel) => {\n if (!rowModel.rows.length || !(sorting != null && sorting.length)) {\n return rowModel;\n }\n const sortingState = table.getState().sorting;\n const sortedFlatRows = [];\n\n // Filter out sortings that correspond to non existing columns\n const availableSorting = sortingState.filter(sort => {\n var _table$getColumn;\n return (_table$getColumn = table.getColumn(sort.id)) == null ? void 0 : _table$getColumn.getCanSort();\n });\n const columnInfoById = {};\n availableSorting.forEach(sortEntry => {\n const column = table.getColumn(sortEntry.id);\n if (!column) return;\n columnInfoById[sortEntry.id] = {\n sortUndefined: column.columnDef.sortUndefined,\n invertSorting: column.columnDef.invertSorting,\n sortingFn: column.getSortingFn()\n };\n });\n const sortData = rows => {\n // This will also perform a stable sorting using the row index\n // if needed.\n const sortedData = rows.map(row => ({\n ...row\n }));\n sortedData.sort((rowA, rowB) => {\n for (let i = 0; i < availableSorting.length; i += 1) {\n var _sortEntry$desc;\n const sortEntry = availableSorting[i];\n const columnInfo = columnInfoById[sortEntry.id];\n const sortUndefined = columnInfo.sortUndefined;\n const isDesc = (_sortEntry$desc = sortEntry == null ? void 0 : sortEntry.desc) != null ? _sortEntry$desc : false;\n let sortInt = 0;\n\n // All sorting ints should always return in ascending order\n if (sortUndefined) {\n const aValue = rowA.getValue(sortEntry.id);\n const bValue = rowB.getValue(sortEntry.id);\n const aUndefined = aValue === undefined;\n const bUndefined = bValue === undefined;\n if (aUndefined || bUndefined) {\n if (sortUndefined === 'first') return aUndefined ? -1 : 1;\n if (sortUndefined === 'last') return aUndefined ? 1 : -1;\n sortInt = aUndefined && bUndefined ? 0 : aUndefined ? sortUndefined : -sortUndefined;\n }\n }\n if (sortInt === 0) {\n sortInt = columnInfo.sortingFn(rowA, rowB, sortEntry.id);\n }\n\n // If sorting is non-zero, take care of desc and inversion\n if (sortInt !== 0) {\n if (isDesc) {\n sortInt *= -1;\n }\n if (columnInfo.invertSorting) {\n sortInt *= -1;\n }\n return sortInt;\n }\n }\n return rowA.index - rowB.index;\n });\n\n // If there are sub-rows, sort them\n sortedData.forEach(row => {\n var _row$subRows;\n sortedFlatRows.push(row);\n if ((_row$subRows = row.subRows) != null && _row$subRows.length) {\n row.subRows = sortData(row.subRows);\n }\n });\n return sortedData;\n };\n return {\n rows: sortData(rowModel.rows),\n flatRows: sortedFlatRows,\n rowsById: rowModel.rowsById\n };\n }, getMemoOptions(table.options, 'debugTable', 'getSortedRowModel', () => table._autoResetPageIndex()));\n}\n\nexport { ColumnFaceting, ColumnFiltering, ColumnGrouping, ColumnOrdering, ColumnPinning, ColumnSizing, ColumnVisibility, GlobalFaceting, GlobalFiltering, Headers, RowExpanding, RowPagination, RowPinning, RowSelection, RowSorting, _getVisibleLeafColumns, aggregationFns, buildHeaderGroups, createCell, createColumn, createColumnHelper, createRow, createTable, defaultColumnSizing, expandRows, filterFns, flattenBy, functionalUpdate, getCoreRowModel, getExpandedRowModel, getFacetedMinMaxValues, getFacetedRowModel, getFacetedUniqueValues, getFilteredRowModel, getGroupedRowModel, getMemoOptions, getPaginationRowModel, getSortedRowModel, isFunction, isNumberArray, isRowSelected, isSubRowSelected, makeStateUpdater, memo, noop, orderColumns, passiveEventSupported, reSplitAlphaNumeric, selectRowsFn, shouldAutoRemoveFilter, sortingFns };\n//# sourceMappingURL=index.mjs.map\n","/**\n * react-table\n *\n * Copyright (c) TanStack\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport * as React from 'react';\nimport { createTable } from '@tanstack/table-core';\nexport * from '@tanstack/table-core';\n\n//\n\n/**\n * If rendering headers, cells, or footers with custom markup, use flexRender instead of `cell.getValue()` or `cell.renderValue()`.\n */\nfunction flexRender(Comp, props) {\n return !Comp ? null : isReactComponent(Comp) ? /*#__PURE__*/React.createElement(Comp, props) : Comp;\n}\nfunction isReactComponent(component) {\n return isClassComponent(component) || typeof component === 'function' || isExoticComponent(component);\n}\nfunction isClassComponent(component) {\n return typeof component === 'function' && (() => {\n const proto = Object.getPrototypeOf(component);\n return proto.prototype && proto.prototype.isReactComponent;\n })();\n}\nfunction isExoticComponent(component) {\n return typeof component === 'object' && typeof component.$$typeof === 'symbol' && ['react.memo', 'react.forward_ref'].includes(component.$$typeof.description);\n}\nfunction useReactTable(options) {\n // Compose in the generic options to the user options\n const resolvedOptions = {\n state: {},\n // Dummy state\n onStateChange: () => {},\n // noop\n renderFallbackValue: null,\n ...options\n };\n\n // Create a new table and store it in state\n const [tableRef] = React.useState(() => ({\n current: createTable(resolvedOptions)\n }));\n\n // By default, manage table state here using the table's initial state\n const [state, setState] = React.useState(() => tableRef.current.initialState);\n\n // Compose the default state above with any user state. This will allow the user\n // to only control a subset of the state if desired.\n tableRef.current.setOptions(prev => ({\n ...prev,\n ...options,\n state: {\n ...state,\n ...options.state\n },\n // Similarly, we'll maintain both our internal state and any user-provided\n // state.\n onStateChange: updater => {\n setState(updater);\n options.onStateChange == null || options.onStateChange(updater);\n }\n }));\n return tableRef.current;\n}\n\nexport { flexRender, useReactTable };\n//# sourceMappingURL=index.mjs.map\n","function memo(getDeps, fn, opts) {\n let deps = opts.initialDeps ?? [];\n let result;\n let isInitial = true;\n function memoizedFunction() {\n var _a;\n const debugEnabled = process.env.NODE_ENV !== \"production\" && !!opts.key && !!((_a = opts.debug) == null ? void 0 : _a.call(opts));\n let depTime = 0;\n if (debugEnabled) depTime = Date.now();\n const newDeps = getDeps();\n const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep);\n if (!depsChanged) {\n return result;\n }\n deps = newDeps;\n let resultTime = 0;\n if (debugEnabled) resultTime = Date.now();\n result = fn(...newDeps);\n if (debugEnabled) {\n const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;\n const resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;\n const resultFpsPercentage = resultEndTime / 16;\n const pad = (str, num) => {\n str = String(str);\n while (str.length < num) {\n str = \" \" + str;\n }\n return str;\n };\n console.info(\n `%c⏱ ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`,\n `\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(\n 0,\n Math.min(120 - 120 * resultFpsPercentage, 120)\n )}deg 100% 31%);`,\n opts == null ? void 0 : opts.key\n );\n }\n if ((opts == null ? void 0 : opts.onChange) && !(isInitial && opts.skipInitialOnChange)) {\n opts.onChange(result);\n }\n isInitial = false;\n return result;\n }\n memoizedFunction.updateDeps = (newDeps) => {\n deps = newDeps;\n };\n return memoizedFunction;\n}\nfunction notUndefined(value, msg) {\n if (value === void 0) {\n throw new Error(`Unexpected undefined${msg ? `: ${msg}` : \"\"}`);\n } else {\n return value;\n }\n}\nconst approxEqual = (a, b) => Math.abs(a - b) < 1.01;\nconst debounce = (targetWindow, fn, ms) => {\n let timeoutId;\n return Object.assign(\n function(...args) {\n targetWindow.clearTimeout(timeoutId);\n timeoutId = targetWindow.setTimeout(() => fn.apply(this, args), ms);\n },\n {\n // The handle is closure-local, so a caller that has already\n // unsubscribed has no way to stop a queued call. Teardown paths use\n // this to drop the pending invocation instead of letting it land.\n cancel: () => {\n targetWindow.clearTimeout(timeoutId);\n }\n }\n );\n};\nexport {\n approxEqual,\n debounce,\n memo,\n notUndefined\n};\n//# sourceMappingURL=utils.js.map\n","import { createLazyMeasurementsView, getMeasurementKey } from \"./lazy-measurements.js\";\nimport { memo, approxEqual, notUndefined, debounce } from \"./utils.js\";\nlet _isIOSResult;\nconst isIOSWebKit = () => {\n if (_isIOSResult !== void 0) return _isIOSResult;\n if (typeof navigator === \"undefined\") return _isIOSResult = false;\n if (/iP(hone|od|ad)/.test(navigator.userAgent)) return _isIOSResult = true;\n const mtp = navigator.maxTouchPoints;\n return _isIOSResult = navigator.platform === \"MacIntel\" && mtp !== void 0 && mtp > 0;\n};\nconst _resetIOSDetectionForTests = () => {\n _isIOSResult = void 0;\n};\nconst getRect = (element) => {\n const { offsetWidth, offsetHeight } = element;\n return { width: offsetWidth, height: offsetHeight };\n};\nconst defaultKeyExtractor = (index) => index;\nconst defaultRangeExtractor = (range) => {\n const start = Math.max(range.startIndex - range.overscan, 0);\n const end = Math.min(range.endIndex + range.overscan, range.count - 1);\n const len = end - start + 1;\n const arr = new Array(len);\n for (let i = 0; i < len; i++) {\n arr[i] = start + i;\n }\n return arr;\n};\nconst observeElementRect = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n const handler = (rect) => {\n const { width, height } = rect;\n cb({ width: Math.round(width), height: Math.round(height) });\n };\n handler(getRect(element));\n if (!targetWindow.ResizeObserver) {\n return () => {\n };\n }\n const observer = new targetWindow.ResizeObserver((entries) => {\n const run = () => {\n const entry = entries[0];\n if (entry == null ? void 0 : entry.borderBoxSize) {\n const box = entry.borderBoxSize[0];\n if (box) {\n handler({ width: box.inlineSize, height: box.blockSize });\n return;\n }\n }\n handler(getRect(element));\n };\n instance.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run) : run();\n });\n observer.observe(element, { box: \"border-box\" });\n return () => {\n observer.unobserve(element);\n };\n};\nconst addEventListenerOptions = {\n passive: true\n};\nconst observeWindowRect = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const handler = () => {\n cb({ width: element.innerWidth, height: element.innerHeight });\n };\n handler();\n element.addEventListener(\"resize\", handler, addEventListenerOptions);\n return () => {\n element.removeEventListener(\"resize\", handler);\n };\n};\nconst supportsScrollend = typeof window == \"undefined\" ? true : \"onscrollend\" in window;\nconst observeOffset = (instance, cb, readOffset) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n const registerScrollendEvent = instance.options.useScrollendEvent && supportsScrollend;\n let offset = 0;\n const fallback = registerScrollendEvent ? null : debounce(\n targetWindow,\n () => cb(readOffset(element), false),\n instance.options.isScrollingResetDelay\n );\n const createHandler = (isScrolling) => () => {\n offset = readOffset(element);\n fallback == null ? void 0 : fallback();\n cb(offset, isScrolling);\n };\n const handler = createHandler(true);\n const endHandler = createHandler(false);\n element.addEventListener(\"scroll\", handler, addEventListenerOptions);\n if (registerScrollendEvent) {\n element.addEventListener(\"scrollend\", endHandler, addEventListenerOptions);\n }\n return () => {\n element.removeEventListener(\"scroll\", handler);\n if (registerScrollendEvent) {\n element.removeEventListener(\"scrollend\", endHandler);\n }\n fallback == null ? void 0 : fallback.cancel();\n };\n};\nconst observeElementOffset = (instance, cb) => observeOffset(instance, cb, (el) => {\n const { horizontal, isRtl } = instance.options;\n return horizontal ? el.scrollLeft * (isRtl && -1 || 1) : el.scrollTop;\n});\nconst observeWindowOffset = (instance, cb) => observeOffset(\n instance,\n cb,\n (win) => instance.options.horizontal ? win.scrollX : win.scrollY\n);\nconst measureElement = (element, entry, instance) => {\n if (instance.options.useCachedMeasurements) {\n const index = instance.indexFromElement(element);\n const key = instance.options.getItemKey(index);\n return instance.itemSizeCache.get(key) ?? instance.options.estimateSize(index);\n }\n if (entry == null ? void 0 : entry.borderBoxSize) {\n const box = entry.borderBoxSize[0];\n if (box) {\n const size = Math.round(\n box[instance.options.horizontal ? \"inlineSize\" : \"blockSize\"]\n );\n return size;\n }\n }\n if (!entry) {\n const index = instance.indexFromElement(element);\n const key = instance.options.getItemKey(index);\n const cachedSize = instance.itemSizeCache.get(key);\n if (cachedSize !== void 0) {\n return cachedSize;\n }\n }\n return element[instance.options.horizontal ? \"offsetWidth\" : \"offsetHeight\"];\n};\nconst scrollWithAdjustments = (offset, {\n adjustments = 0,\n behavior\n}, instance) => {\n var _a, _b;\n (_b = (_a = instance.scrollElement) == null ? void 0 : _a.scrollTo) == null ? void 0 : _b.call(_a, {\n [instance.options.horizontal ? \"left\" : \"top\"]: offset + adjustments,\n behavior\n });\n};\nconst windowScroll = scrollWithAdjustments;\nconst elementScroll = scrollWithAdjustments;\nfunction isAppendWithTrim(prevCount, nextCount, getPreviousKey, getNextKey) {\n if (nextCount === 0) return false;\n const firstKey = getNextKey(0);\n const removedKeys = /* @__PURE__ */ new Set();\n let removedCount = 0;\n while (removedCount < prevCount) {\n const key = getPreviousKey(removedCount);\n if (key === firstKey) break;\n removedKeys.add(key);\n removedCount++;\n }\n const retainedCount = prevCount - removedCount;\n if (retainedCount === 0 || retainedCount >= nextCount) return false;\n for (let i = 0; i < retainedCount; i++) {\n if (getNextKey(i) !== getPreviousKey(removedCount + i)) return false;\n }\n for (let i = retainedCount; i < nextCount; i++) {\n if (removedKeys.has(getNextKey(i))) return false;\n }\n return true;\n}\nclass Virtualizer {\n constructor(opts) {\n this.unsubs = [];\n this.scrollElement = null;\n this.targetWindow = null;\n this.isScrolling = false;\n this.scrollState = null;\n this.measurementsCache = [];\n this._singleLaneMeasurements = null;\n this.itemSizeCache = /* @__PURE__ */ new Map();\n this.itemSizeCacheVersion = 0;\n this.laneAssignments = /* @__PURE__ */ new Map();\n this.pendingMin = null;\n this.prevLanes = void 0;\n this.lanesChangedFlag = false;\n this.lanesSettling = false;\n this.pendingScrollAnchor = null;\n this.scrollRect = null;\n this.scrollOffset = null;\n this.scrollDirection = null;\n this.scrollAdjustments = 0;\n this._iosDeferredAdjustment = 0;\n this._iosTouching = false;\n this._iosJustTouchEnded = false;\n this._iosTouchEndTimerId = null;\n this._intendedScrollOffset = null;\n this._clampedAdjustment = null;\n this.elementsCache = /* @__PURE__ */ new Map();\n this.now = () => {\n var _a, _b, _c;\n return ((_c = (_b = (_a = this.targetWindow) == null ? void 0 : _a.performance) == null ? void 0 : _b.now) == null ? void 0 : _c.call(_b)) ?? Date.now();\n };\n this.observer = /* @__PURE__ */ (() => {\n let _ro = null;\n const get = () => {\n if (_ro) {\n return _ro;\n }\n if (!this.targetWindow || !this.targetWindow.ResizeObserver) {\n return null;\n }\n return _ro = new this.targetWindow.ResizeObserver((entries) => {\n entries.forEach((entry) => {\n const run = () => {\n const node = entry.target;\n const index = this.indexFromElement(node);\n if (!node.isConnected) {\n this.observer.unobserve(node);\n for (const [cacheKey, cachedNode] of this.elementsCache) {\n if (cachedNode === node) {\n this.elementsCache.delete(cacheKey);\n break;\n }\n }\n return;\n }\n if (!this.isIndexInRange(index)) return;\n if (this.shouldMeasureDuringScroll(index)) {\n this.resizeItem(\n index,\n this.options.measureElement(node, entry, this)\n );\n }\n };\n this.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run) : run();\n });\n });\n };\n return {\n disconnect: () => {\n var _a;\n (_a = get()) == null ? void 0 : _a.disconnect();\n _ro = null;\n },\n observe: (target) => {\n var _a;\n return (_a = get()) == null ? void 0 : _a.observe(target, { box: \"border-box\" });\n },\n unobserve: (target) => {\n var _a;\n return (_a = get()) == null ? void 0 : _a.unobserve(target);\n }\n };\n })();\n this.range = null;\n this.setOptions = (opts2) => {\n var _a;\n const merged = {\n debug: false,\n initialOffset: 0,\n overscan: 1,\n paddingStart: 0,\n paddingEnd: 0,\n scrollPaddingStart: 0,\n scrollPaddingEnd: 0,\n horizontal: false,\n getItemKey: defaultKeyExtractor,\n rangeExtractor: defaultRangeExtractor,\n onChange: () => {\n },\n measureElement,\n initialRect: { width: 0, height: 0 },\n scrollMargin: 0,\n gap: 0,\n indexAttribute: \"data-index\",\n initialMeasurementsCache: [],\n lanes: 1,\n anchorTo: \"start\",\n followOnAppend: false,\n scrollEndThreshold: 1,\n isScrollingResetDelay: 150,\n enabled: true,\n isRtl: false,\n useScrollendEvent: false,\n useAnimationFrameWithResizeObserver: false,\n laneAssignmentMode: \"estimate\",\n useCachedMeasurements: false\n };\n for (const key in opts2) {\n const v = opts2[key];\n if (v !== void 0) merged[key] = v;\n }\n const prevOptions = this.options;\n let anchor = null;\n let followOnAppend = null;\n let edgeKeysChanged = false;\n if (prevOptions !== void 0 && prevOptions.enabled && merged.enabled && merged.anchorTo === \"end\" && this.scrollElement !== null) {\n const prevCount = prevOptions.count;\n const nextCount = merged.count;\n const measurements = this.getMeasurements();\n const previousItems = ((_a = this._singleLaneMeasurements) == null ? void 0 : _a.items) ?? measurements;\n const getPreviousKey = (index) => getMeasurementKey(previousItems[index]);\n const prevFirstKey = prevCount > 0 ? getPreviousKey(0) : null;\n const prevLastKey = prevCount > 0 ? getPreviousKey(prevCount - 1) : null;\n const didCountChange = nextCount !== prevCount;\n const didEdgeKeysChange = didCountChange || prevCount > 0 && nextCount > 0 && (merged.getItemKey(0) !== prevFirstKey || merged.getItemKey(nextCount - 1) !== prevLastKey);\n if (didEdgeKeysChange) {\n edgeKeysChanged = true;\n const item = prevCount > 0 ? this.getVirtualItemForOffset(this.getScrollOffset()) ?? measurements[0] : null;\n if (item) {\n anchor = [item.key, this.getScrollOffset() - item.start];\n }\n const behavior = merged.followOnAppend === true ? \"auto\" : merged.followOnAppend || null;\n if (behavior && nextCount > 0 && this.isAtEnd(prevOptions.scrollEndThreshold) && (prevCount === 0 || merged.getItemKey(nextCount - 1) !== prevLastKey)) {\n if (nextCount > prevCount || isAppendWithTrim(\n prevCount,\n nextCount,\n getPreviousKey,\n merged.getItemKey\n )) {\n followOnAppend = behavior;\n }\n }\n }\n }\n this.options = merged;\n if (edgeKeysChanged) {\n this.pendingMin = 0;\n this.itemSizeCacheVersion++;\n }\n let anchorResolved = false;\n let anchorDelta = 0;\n if (anchor && this.scrollOffset !== null) {\n const [anchorKey, anchorOffset] = anchor;\n const newMeasurements = this.getMeasurements();\n const { count, getItemKey } = this.options;\n let idx = 0;\n while (idx < count && getItemKey(idx) !== anchorKey) {\n idx++;\n }\n if (idx < count) {\n const anchorItem = newMeasurements[idx];\n if (anchorItem) {\n const newOffset = Math.max(0, anchorItem.start + anchorOffset);\n if (!followOnAppend && newOffset !== this.scrollOffset) {\n anchorDelta = newOffset - this.scrollOffset;\n this.scrollOffset = newOffset;\n anchorResolved = true;\n }\n }\n }\n }\n if (anchorResolved || followOnAppend) {\n this.pendingScrollAnchor = [\n anchorResolved ? anchor[0] : null,\n anchorResolved ? anchor[1] : 0,\n followOnAppend,\n anchorDelta\n ];\n }\n };\n this.notify = (sync) => {\n var _a, _b;\n (_b = (_a = this.options).onChange) == null ? void 0 : _b.call(_a, this, sync);\n };\n this.maybeNotify = memo(\n () => {\n this.calculateRange();\n return [\n this.isScrolling,\n this.range ? this.range.startIndex : null,\n this.range ? this.range.endIndex : null\n ];\n },\n (isScrolling) => {\n this.notify(isScrolling);\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"maybeNotify\",\n debug: () => this.options.debug,\n initialDeps: [\n this.isScrolling,\n this.range ? this.range.startIndex : null,\n this.range ? this.range.endIndex : null\n ]\n }\n );\n this.cleanup = () => {\n this.unsubs.filter(Boolean).forEach((d) => d());\n this.unsubs = [];\n this.observer.disconnect();\n if (this.rafId != null && this.targetWindow) {\n this.targetWindow.cancelAnimationFrame(this.rafId);\n this.rafId = null;\n }\n this.scrollState = null;\n this.isScrolling = false;\n this.scrollDirection = null;\n this._iosDeferredAdjustment = 0;\n this._iosTouching = false;\n this._iosJustTouchEnded = false;\n this._clampedAdjustment = null;\n this.scrollElement = null;\n this.targetWindow = null;\n };\n this._didMount = () => {\n return () => {\n this.cleanup();\n };\n };\n this._willUpdate = () => {\n var _a, _b;\n const scrollElement = this.options.enabled ? this.options.getScrollElement() : null;\n if (this.scrollElement !== scrollElement) {\n this.cleanup();\n if (!scrollElement) {\n this.maybeNotify();\n return;\n }\n this.scrollElement = scrollElement;\n if (this.scrollElement && \"ownerDocument\" in this.scrollElement) {\n this.targetWindow = this.scrollElement.ownerDocument.defaultView;\n } else {\n this.targetWindow = ((_a = this.scrollElement) == null ? void 0 : _a.window) ?? null;\n }\n this.elementsCache.forEach((cached) => {\n this.observer.observe(cached);\n });\n this.unsubs.push(\n this.options.observeElementRect(this, (rect) => {\n this.scrollRect = rect;\n this.maybeNotify();\n })\n );\n this.unsubs.push(\n this.options.observeElementOffset(this, (offset, isScrolling) => {\n if (isScrolling && this._intendedScrollOffset === null && offset === this.scrollOffset) {\n return;\n }\n if (this._intendedScrollOffset !== null && Math.abs(offset - this._intendedScrollOffset) < 1.5) {\n offset = this._intendedScrollOffset;\n }\n this._intendedScrollOffset = null;\n if (this._clampedAdjustment !== null && Math.abs(offset - this._clampedAdjustment.maxAtWrite) >= 1.5) {\n this._clampedAdjustment = null;\n }\n this.scrollAdjustments = 0;\n const prevOffset = this.getScrollOffset();\n this.scrollDirection = isScrolling ? prevOffset === offset ? this.scrollDirection : prevOffset < offset ? \"forward\" : \"backward\" : null;\n this.scrollOffset = offset;\n this.isScrolling = isScrolling;\n this._flushIosDeferredIfReady();\n if (this.scrollState) {\n this.scheduleScrollReconcile();\n }\n this.maybeNotify();\n })\n );\n if (\"addEventListener\" in this.scrollElement) {\n const scrollEl = this.scrollElement;\n const onTouchStart = () => {\n this._iosTouching = true;\n this._iosJustTouchEnded = false;\n if (this._iosTouchEndTimerId !== null && this.targetWindow != null) {\n this.targetWindow.clearTimeout(this._iosTouchEndTimerId);\n this._iosTouchEndTimerId = null;\n }\n };\n const onTouchEnd = () => {\n this._iosTouching = false;\n if (!isIOSWebKit() || this.targetWindow == null) {\n return;\n }\n this._iosJustTouchEnded = true;\n this._iosTouchEndTimerId = this.targetWindow.setTimeout(() => {\n this._iosJustTouchEnded = false;\n this._iosTouchEndTimerId = null;\n this._flushIosDeferredIfReady();\n }, 150);\n };\n scrollEl.addEventListener(\n \"touchstart\",\n onTouchStart,\n addEventListenerOptions\n );\n scrollEl.addEventListener(\n \"touchend\",\n onTouchEnd,\n addEventListenerOptions\n );\n this.unsubs.push(() => {\n scrollEl.removeEventListener(\"touchstart\", onTouchStart);\n scrollEl.removeEventListener(\"touchend\", onTouchEnd);\n if (this._iosTouchEndTimerId !== null && this.targetWindow != null) {\n this.targetWindow.clearTimeout(this._iosTouchEndTimerId);\n this._iosTouchEndTimerId = null;\n }\n });\n }\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: void 0,\n behavior: void 0\n });\n }\n const anchor = this.pendingScrollAnchor;\n this.pendingScrollAnchor = null;\n if (anchor && this.scrollElement && this.options.enabled) {\n const [key, _offset, followOnAppend, anchorDelta] = anchor;\n if (key !== null && !followOnAppend) {\n if (isIOSWebKit() && (this.isScrolling || this._iosTouching || this._iosJustTouchEnded)) {\n if (anchorDelta !== 0) {\n this._iosDeferredAdjustment += anchorDelta;\n }\n } else if (((_b = this.scrollState) == null ? void 0 : _b.behavior) === \"smooth\" && !approxEqual(\n this.getScrollOffset() - anchorDelta,\n this.scrollState.lastTargetOffset\n )) ;\n else {\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: void 0,\n behavior: void 0\n });\n }\n }\n if (followOnAppend) {\n this.scrollToEnd({ behavior: followOnAppend });\n }\n }\n this._retryClampedAdjustment();\n };\n this._retryClampedAdjustment = () => {\n if (this._clampedAdjustment === null || !this.scrollElement || !this.options.enabled) {\n return;\n }\n const { target, maxAtWrite } = this._clampedAdjustment;\n const max = this.getMaxScrollOffset();\n if (max > maxAtWrite + 0.5) {\n this._clampedAdjustment = target > max + 0.5 ? { target, maxAtWrite: max } : null;\n this._scrollToOffset(target, {\n adjustments: void 0,\n behavior: void 0\n });\n }\n };\n this._flushIosDeferredIfReady = () => {\n if (this._iosDeferredAdjustment === 0) return;\n if (this.isScrolling) return;\n if (this._iosTouching) return;\n if (this._iosJustTouchEnded) return;\n const cur = this.getScrollOffset();\n const max = this.getMaxScrollOffset();\n if (cur < 0 || cur > max) return;\n if (this._iosDeferredAdjustment < 0 && cur >= max - 1) {\n this._iosDeferredAdjustment = 0;\n return;\n }\n const delta = this._iosDeferredAdjustment;\n this._iosDeferredAdjustment = 0;\n this._scrollToOffset(cur, {\n adjustments: this.scrollAdjustments += delta,\n behavior: void 0\n });\n };\n this.rafId = null;\n this.getSize = () => {\n if (!this.options.enabled) {\n this.scrollRect = null;\n return 0;\n }\n this.scrollRect = this.scrollRect ?? this.options.initialRect;\n return this.scrollRect[this.options.horizontal ? \"width\" : \"height\"];\n };\n this.getScrollOffset = () => {\n if (!this.options.enabled) {\n this.scrollOffset = null;\n return 0;\n }\n this.scrollOffset = this.scrollOffset ?? (typeof this.options.initialOffset === \"function\" ? this.options.initialOffset() : this.options.initialOffset);\n return this.scrollOffset;\n };\n this.getMeasurementOptions = memo(\n () => [\n this.options.count,\n this.options.paddingStart,\n this.options.scrollMargin,\n this.options.getItemKey,\n this.options.enabled,\n this.options.lanes,\n this.options.laneAssignmentMode,\n this.options.gap\n ],\n (count, paddingStart, scrollMargin, getItemKey, enabled, lanes, laneAssignmentMode, gap) => {\n const lanesChanged = this.prevLanes !== void 0 && this.prevLanes !== lanes;\n if (lanesChanged) {\n this.lanesChangedFlag = true;\n }\n this.prevLanes = lanes;\n this.pendingMin = null;\n return {\n count,\n paddingStart,\n scrollMargin,\n getItemKey,\n enabled,\n lanes,\n laneAssignmentMode,\n gap\n };\n },\n {\n key: false\n }\n );\n this.isIndexInRange = (index) => index >= 0 && index < this.options.count;\n this.getMeasurements = memo(\n () => [this.getMeasurementOptions(), this.itemSizeCacheVersion],\n ({\n count,\n paddingStart,\n scrollMargin,\n getItemKey,\n enabled,\n lanes,\n laneAssignmentMode,\n gap\n }, _itemSizeCacheVersion) => {\n var _a;\n const itemSizeCache = this.itemSizeCache;\n if (!enabled) {\n this.measurementsCache = [];\n this._singleLaneMeasurements = null;\n this.itemSizeCache.clear();\n this.laneAssignments.clear();\n return [];\n }\n if (this.laneAssignments.size > count) {\n for (const index of this.laneAssignments.keys()) {\n if (index >= count) {\n this.laneAssignments.delete(index);\n }\n }\n }\n if (this.lanesChangedFlag) {\n this.lanesChangedFlag = false;\n this.lanesSettling = true;\n this.measurementsCache = [];\n this._singleLaneMeasurements = null;\n this.itemSizeCache.clear();\n this.laneAssignments.clear();\n this.pendingMin = null;\n }\n if (this.measurementsCache.length === 0 && !this.lanesSettling) {\n this.measurementsCache = this.options.initialMeasurementsCache;\n this.measurementsCache.forEach((item) => {\n this.itemSizeCache.set(item.key, item.size);\n });\n }\n const min = this.lanesSettling ? 0 : this.pendingMin ?? 0;\n this.pendingMin = null;\n if (this.lanesSettling && this.measurementsCache.length === count) {\n this.lanesSettling = false;\n }\n if (lanes === 1) {\n const need = count * 2;\n let flat = (_a = this._singleLaneMeasurements) == null ? void 0 : _a.flat;\n if (!flat || flat.length < need) {\n const next = new Float64Array(need);\n if (flat && min > 0) next.set(flat.subarray(0, min * 2));\n flat = next;\n }\n const items = min === 0 ? new Array(count) : this._singleLaneMeasurements.items.slice();\n let runningStart;\n if (min === 0) {\n runningStart = paddingStart + scrollMargin;\n } else {\n const prevIdx = min - 1;\n runningStart = flat[prevIdx * 2] + flat[prevIdx * 2 + 1] + gap;\n }\n for (let i = min; i < count; i++) {\n const key = getItemKey(i);\n items[i] = key;\n const measuredSize = itemSizeCache.get(key);\n const size = typeof measuredSize === \"number\" ? measuredSize : this.options.estimateSize(i);\n flat[i * 2] = runningStart;\n flat[i * 2 + 1] = size;\n runningStart += size + gap;\n }\n this._singleLaneMeasurements = { flat, items };\n const view = createLazyMeasurementsView(items, flat);\n this.measurementsCache = view;\n return view;\n }\n const measurements = this.measurementsCache.slice(0, min);\n const laneLastIndex = new Array(lanes).fill(\n void 0\n );\n const laneEnds = new Float64Array(lanes);\n let filledLanes = 0;\n for (let m = 0; m < min; m++) {\n const item = measurements[m];\n if (item) {\n if (laneLastIndex[item.lane] === void 0) filledLanes++;\n laneLastIndex[item.lane] = m;\n laneEnds[item.lane] = item.end;\n }\n }\n for (let i = min; i < count; i++) {\n const key = getItemKey(i);\n const cachedLane = this.laneAssignments.get(i);\n let lane;\n let start;\n const shouldCacheLane = laneAssignmentMode === \"estimate\" || itemSizeCache.has(key);\n if (cachedLane !== void 0 && this.options.lanes > 1) {\n lane = cachedLane;\n const prevIndex = laneLastIndex[lane];\n const prevInLane = prevIndex !== void 0 ? measurements[prevIndex] : void 0;\n start = prevInLane ? prevInLane.end + gap : paddingStart + scrollMargin;\n } else if (filledLanes === lanes) {\n let bestLane = 0;\n let bestEnd = laneEnds[0];\n let bestIdx = laneLastIndex[0];\n for (let l = 1; l < lanes; l++) {\n const e = laneEnds[l];\n if (e < bestEnd || e === bestEnd && laneLastIndex[l] < bestIdx) {\n bestLane = l;\n bestEnd = e;\n bestIdx = laneLastIndex[l];\n }\n }\n lane = bestLane;\n start = bestEnd + gap;\n if (shouldCacheLane) {\n this.laneAssignments.set(i, lane);\n }\n } else {\n lane = i % this.options.lanes;\n start = paddingStart + scrollMargin;\n if (shouldCacheLane) {\n this.laneAssignments.set(i, lane);\n }\n }\n const measuredSize = itemSizeCache.get(key);\n const size = typeof measuredSize === \"number\" ? measuredSize : this.options.estimateSize(i);\n const end = start + size;\n measurements[i] = {\n index: i,\n start,\n size,\n end,\n key,\n lane\n };\n if (laneLastIndex[lane] === void 0) filledLanes++;\n laneLastIndex[lane] = i;\n laneEnds[lane] = end;\n }\n this.measurementsCache = measurements;\n return measurements;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getMeasurements\",\n debug: () => this.options.debug\n }\n );\n this.calculateRange = memo(\n () => [\n this.getMeasurements(),\n this.getSize(),\n this.getScrollOffset(),\n this.options.lanes\n ],\n (measurements, outerSize, scrollOffset, lanes) => {\n if (measurements.length === 0 || outerSize === 0) {\n this.range = null;\n return null;\n }\n this.range = calculateRangeImpl(\n measurements,\n outerSize,\n scrollOffset,\n lanes,\n // Pass the typed array so binary search + forward-walk can read\n // start/end directly from Float64Array, skipping the Proxy traps.\n lanes === 1 && this._singleLaneMeasurements !== null ? this._singleLaneMeasurements.flat : null\n );\n return this.range;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"calculateRange\",\n debug: () => this.options.debug\n }\n );\n this.getVirtualIndexes = memo(\n () => {\n let startIndex = null;\n let endIndex = null;\n const range = this.calculateRange();\n if (range) {\n startIndex = range.startIndex;\n endIndex = range.endIndex;\n }\n this.maybeNotify.updateDeps([this.isScrolling, startIndex, endIndex]);\n return [\n this.options.rangeExtractor,\n this.options.overscan,\n this.options.count,\n startIndex,\n endIndex\n ];\n },\n (rangeExtractor, overscan, count, startIndex, endIndex) => {\n return startIndex === null || endIndex === null ? [] : rangeExtractor({\n startIndex,\n endIndex,\n overscan,\n count\n });\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getVirtualIndexes\",\n debug: () => this.options.debug\n }\n );\n this.indexFromElement = (node) => {\n const attributeName = this.options.indexAttribute;\n const indexStr = node.getAttribute(attributeName);\n if (!indexStr) {\n console.warn(\n `Missing attribute name '${attributeName}={index}' on measured element.`\n );\n return -1;\n }\n return parseInt(indexStr, 10);\n };\n this.shouldMeasureDuringScroll = (index) => {\n var _a;\n if (!this.scrollState || this.scrollState.behavior !== \"smooth\") {\n return true;\n }\n const scrollIndex = this.scrollState.index ?? ((_a = this.getVirtualItemForOffset(this.scrollState.lastTargetOffset)) == null ? void 0 : _a.index);\n if (scrollIndex !== void 0 && this.range) {\n const bufferSize = Math.max(\n this.options.overscan,\n Math.ceil((this.range.endIndex - this.range.startIndex) / 2)\n );\n const minIndex = Math.max(0, scrollIndex - bufferSize);\n const maxIndex = Math.min(\n this.options.count - 1,\n scrollIndex + bufferSize\n );\n return index >= minIndex && index <= maxIndex;\n }\n return true;\n };\n this.measureElement = (node) => {\n if (!node) {\n this.elementsCache.forEach((cached, key2) => {\n if (!cached.isConnected) {\n this.observer.unobserve(cached);\n this.elementsCache.delete(key2);\n }\n });\n return;\n }\n const index = this.indexFromElement(node);\n if (!this.isIndexInRange(index)) return;\n const key = this.options.getItemKey(index);\n const prevNode = this.elementsCache.get(key);\n if (prevNode !== node) {\n if (prevNode) {\n this.observer.unobserve(prevNode);\n }\n this.observer.observe(node);\n this.elementsCache.set(key, node);\n }\n if ((!this.isScrolling || this.scrollState) && this.shouldMeasureDuringScroll(index)) {\n this.resizeItem(index, this.options.measureElement(node, void 0, this));\n }\n };\n this.resizeItem = (index, size) => {\n var _a, _b, _c;\n if (!this.isIndexInRange(index)) return;\n let cachedSize;\n let itemStart;\n let key;\n const flat = (_a = this._singleLaneMeasurements) == null ? void 0 : _a.flat;\n if (this.options.lanes === 1 && flat != null) {\n key = this.options.getItemKey(index);\n itemStart = flat[index * 2];\n cachedSize = flat[index * 2 + 1];\n } else {\n const item = this.measurementsCache[index];\n if (!item) return;\n key = item.key;\n itemStart = item.start;\n cachedSize = item.size;\n }\n const itemSize = this.itemSizeCache.get(key) ?? cachedSize;\n const delta = size - itemSize;\n if (delta !== 0) {\n const wasAtEnd = this.options.anchorTo === \"end\" && ((_b = this.scrollState) == null ? void 0 : _b.behavior) !== \"smooth\" && this.getVirtualDistanceFromEnd() <= this.options.scrollEndThreshold;\n const prevTotalSize = wasAtEnd ? this.getTotalSize() : 0;\n const scrollOffsetWithAdj = this.getScrollOffset() + this.scrollAdjustments;\n const isFirstMeasure = !this.itemSizeCache.has(key);\n const defaultShouldAdjust = isFirstMeasure ? (\n // First measurement: compensate any item whose top sits above the\n // fold — the estimate→actual delta must be corrected regardless of\n // scroll direction, since the whole estimated block was above it.\n itemStart < scrollOffsetWithAdj\n ) : (\n // Re-measurement: only compensate an item that is ENTIRELY above the\n // fold. An item that merely *spans* the fold (top above, bottom\n // below — e.g. a streaming chat message growing at its bottom)\n // changes size *below* the anchor point, so shifting scrollTop by the\n // delta would drag the viewport downward on every growth (#1218).\n // Also skip during backward scroll to avoid the \"items jump while\n // scrolling up\" cascade.\n itemStart + itemSize <= scrollOffsetWithAdj && this.scrollDirection !== \"backward\"\n );\n const shouldAdjustScroll = ((_c = this.scrollState) == null ? void 0 : _c.behavior) !== \"smooth\" && (this.shouldAdjustScrollPositionOnItemSizeChange !== void 0 ? this.shouldAdjustScrollPositionOnItemSizeChange(\n // The callback expects a VirtualItem; build one lazily only\n // when the consumer actually supplied a custom predicate.\n this.measurementsCache[index] ?? {\n index,\n key,\n start: itemStart,\n size: cachedSize,\n end: itemStart + cachedSize,\n lane: 0\n },\n delta,\n this\n ) : defaultShouldAdjust);\n if (this.pendingMin === null || index < this.pendingMin) {\n this.pendingMin = index;\n }\n this.itemSizeCache.set(key, size);\n this.itemSizeCacheVersion++;\n let adjustedSync = false;\n if (wasAtEnd) {\n adjustedSync = this.applyScrollAdjustment(\n this.getTotalSize() - prevTotalSize\n );\n } else if (shouldAdjustScroll) {\n adjustedSync = this.applyScrollAdjustment(delta);\n }\n this.notify(adjustedSync);\n this._retryClampedAdjustment();\n }\n };\n this.getVirtualItems = memo(\n () => [this.getVirtualIndexes(), this.getMeasurements()],\n (indexes, measurements) => {\n const virtualItems = [];\n for (let k = 0, len = indexes.length; k < len; k++) {\n const i = indexes[k];\n const measurement = measurements[i];\n virtualItems.push(measurement);\n }\n return virtualItems;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getVirtualItems\",\n debug: () => this.options.debug\n }\n );\n this.getVirtualItemForOffset = (offset) => {\n var _a;\n const measurements = this.getMeasurements();\n if (measurements.length === 0) {\n return void 0;\n }\n const flat = (_a = this._singleLaneMeasurements) == null ? void 0 : _a.flat;\n const useFlat = this.options.lanes === 1 && flat != null;\n const idx = findNearestBinarySearch(\n 0,\n measurements.length - 1,\n useFlat ? (i) => flat[i * 2] : (i) => notUndefined(measurements[i]).start,\n offset\n );\n return notUndefined(measurements[idx]);\n };\n this.getMaxScrollOffset = () => {\n if (!this.scrollElement) return 0;\n if (\"scrollHeight\" in this.scrollElement) {\n return this.options.horizontal ? this.scrollElement.scrollWidth - this.scrollElement.clientWidth : this.scrollElement.scrollHeight - this.scrollElement.clientHeight;\n } else {\n const doc = this.scrollElement.document.documentElement;\n return this.options.horizontal ? doc.scrollWidth - this.scrollElement.innerWidth : doc.scrollHeight - this.scrollElement.innerHeight;\n }\n };\n this.getVirtualDistanceFromEnd = () => {\n return Math.max(\n this.getTotalSize() - this.getSize() - this.getScrollOffset(),\n 0\n );\n };\n this.getDistanceFromEnd = () => {\n return Math.max(this.getMaxScrollOffset() - this.getScrollOffset(), 0);\n };\n this.isAtEnd = (threshold = this.options.scrollEndThreshold) => {\n return this.getDistanceFromEnd() <= threshold;\n };\n this.getOffsetForAlignment = (toOffset, align, itemSize = 0) => {\n if (!this.scrollElement) return 0;\n const size = this.getSize();\n const scrollOffset = this.getScrollOffset();\n if (align === \"auto\") {\n align = toOffset >= scrollOffset + size ? \"end\" : \"start\";\n }\n if (align === \"center\") {\n toOffset += (itemSize - size) / 2;\n } else if (align === \"end\") {\n toOffset -= size;\n }\n const maxOffset = this.getMaxScrollOffset();\n return Math.max(Math.min(maxOffset, toOffset), 0);\n };\n this.getOffsetForIndex = (index, align = \"auto\") => {\n index = Math.max(0, Math.min(index, this.options.count - 1));\n const size = this.getSize();\n const scrollOffset = this.getScrollOffset();\n const item = this.measurementsCache[index];\n if (!item) return;\n if (align === \"auto\") {\n if (item.end >= scrollOffset + size - this.options.scrollPaddingEnd) {\n align = \"end\";\n } else if (item.start <= scrollOffset + this.options.scrollPaddingStart) {\n align = \"start\";\n } else {\n return [scrollOffset, align];\n }\n }\n if (align === \"end\" && index === this.options.count - 1) {\n return [this.getMaxScrollOffset(), align];\n }\n const toOffset = align === \"end\" ? item.end + this.options.scrollPaddingEnd : item.start - this.options.scrollPaddingStart;\n return [\n this.getOffsetForAlignment(toOffset, align, item.size),\n align\n ];\n };\n this.scrollToOffset = (toOffset, { align = \"start\", behavior = \"auto\" } = {}) => {\n this._iosDeferredAdjustment = 0;\n const offset = this.getOffsetForAlignment(toOffset, align);\n const now = this.now();\n this.scrollState = {\n index: null,\n align,\n behavior,\n startedAt: now,\n lastTargetOffset: offset,\n stableFrames: 0\n };\n this._scrollToOffset(offset, { adjustments: void 0, behavior });\n this.scheduleScrollReconcile();\n };\n this.scrollToIndex = (index, {\n align: initialAlign = \"auto\",\n behavior = \"auto\"\n } = {}) => {\n this._iosDeferredAdjustment = 0;\n index = Math.max(0, Math.min(index, this.options.count - 1));\n const offsetInfo = this.getOffsetForIndex(index, initialAlign);\n if (!offsetInfo) {\n return;\n }\n const [offset, align] = offsetInfo;\n const now = this.now();\n this.scrollState = {\n index,\n align,\n behavior,\n startedAt: now,\n lastTargetOffset: offset,\n stableFrames: 0\n };\n this._scrollToOffset(offset, { adjustments: void 0, behavior });\n this.scheduleScrollReconcile();\n };\n this.scrollBy = (delta, { behavior = \"auto\" } = {}) => {\n const offset = this.getScrollOffset() + delta;\n const now = this.now();\n this.scrollState = {\n index: null,\n align: \"start\",\n behavior,\n startedAt: now,\n lastTargetOffset: offset,\n stableFrames: 0\n };\n this._scrollToOffset(offset, { adjustments: void 0, behavior });\n this.scheduleScrollReconcile();\n };\n this.scrollToEnd = ({ behavior = \"auto\" } = {}) => {\n if (this.options.count > 0) {\n this.scrollToIndex(this.options.count - 1, {\n align: \"end\",\n behavior\n });\n return;\n }\n this.scrollToOffset(Math.max(this.getTotalSize() - this.getSize(), 0), {\n behavior\n });\n };\n this.getTotalSize = () => {\n var _a, _b;\n const measurements = this.getMeasurements();\n let end;\n if (measurements.length === 0) {\n end = this.options.paddingStart;\n } else if (this.options.lanes === 1) {\n const lastIdx = measurements.length - 1;\n const flat = (_a = this._singleLaneMeasurements) == null ? void 0 : _a.flat;\n if (flat != null) {\n end = flat[lastIdx * 2] + flat[lastIdx * 2 + 1];\n } else {\n end = ((_b = measurements[lastIdx]) == null ? void 0 : _b.end) ?? 0;\n }\n } else {\n const endByLane = Array(this.options.lanes).fill(null);\n let endIndex = measurements.length - 1;\n while (endIndex >= 0 && endByLane.some((val) => val === null)) {\n const item = measurements[endIndex];\n if (endByLane[item.lane] === null) {\n endByLane[item.lane] = item.end;\n }\n endIndex--;\n }\n end = Math.max(...endByLane.filter((val) => val !== null));\n }\n return Math.max(\n end - this.options.scrollMargin + this.options.paddingEnd,\n 0\n );\n };\n this.takeSnapshot = () => {\n const snapshot = [];\n if (this.itemSizeCache.size === 0) return snapshot;\n const m = this.getMeasurements();\n for (const item of m) {\n if (item && this.itemSizeCache.has(item.key)) {\n snapshot.push({\n index: item.index,\n key: item.key,\n start: item.start,\n size: item.size,\n end: item.end,\n lane: item.lane\n });\n }\n }\n return snapshot;\n };\n this._scrollToOffset = (offset, {\n adjustments,\n behavior\n }) => {\n this._intendedScrollOffset = offset + (adjustments ?? 0);\n this.options.scrollToFn(offset, { behavior, adjustments }, this);\n };\n this.measure = () => {\n this.pendingMin = null;\n this.itemSizeCache.clear();\n this.laneAssignments.clear();\n this.itemSizeCacheVersion++;\n this.notify(false);\n };\n this.setOptions(opts);\n }\n // Returns `true` when it performed a synchronous `scrollTop` write this\n // tick, `false` when the delta was zero or the write was deferred (iOS).\n // `resizeItem` uses that to decide whether the follow-up `notify` must be\n // synchronous so the grown transforms commit in the same paint (#1227).\n applyScrollAdjustment(delta, behavior) {\n if (delta === 0) return false;\n if (process.env.NODE_ENV !== \"production\" && this.options.debug) {\n console.info(\"correction\", delta);\n }\n if (isIOSWebKit() && (this.isScrolling || this._iosTouching || this._iosJustTouchEnded)) {\n this._iosDeferredAdjustment += delta;\n return false;\n } else {\n const target = this.getScrollOffset() + this.scrollAdjustments + delta;\n const el = this.scrollElement;\n const maxAtWrite = el !== null && (\"scrollHeight\" in el || \"document\" in el) ? this.getMaxScrollOffset() : null;\n this._clampedAdjustment = maxAtWrite !== null && target > maxAtWrite + 0.5 ? { target, maxAtWrite } : null;\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: this.scrollAdjustments += delta,\n behavior\n });\n if (this.scrollOffset !== null) {\n this.scrollOffset += this.scrollAdjustments;\n if (this.scrollOffset < 0) this.scrollOffset = 0;\n this.scrollAdjustments = 0;\n }\n return true;\n }\n }\n scheduleScrollReconcile() {\n if (!this.targetWindow) {\n this.scrollState = null;\n return;\n }\n if (this.rafId != null) return;\n this.rafId = this.targetWindow.requestAnimationFrame(() => {\n this.rafId = null;\n this.reconcileScroll();\n });\n }\n reconcileScroll() {\n if (!this.scrollState) return;\n const el = this.scrollElement;\n if (!el) return;\n const MAX_RECONCILE_MS = 5e3;\n if (this.now() - this.scrollState.startedAt > MAX_RECONCILE_MS) {\n this.scrollState = null;\n return;\n }\n const offsetInfo = this.scrollState.index != null ? this.getOffsetForIndex(this.scrollState.index, this.scrollState.align) : void 0;\n const targetOffset = offsetInfo ? offsetInfo[0] : this.scrollState.lastTargetOffset;\n const STABLE_FRAMES = 1;\n const targetChanged = targetOffset !== this.scrollState.lastTargetOffset;\n if (!targetChanged && approxEqual(targetOffset, this.getScrollOffset())) {\n this.scrollState.stableFrames++;\n if (this.scrollState.stableFrames >= STABLE_FRAMES) {\n if (this.getScrollOffset() !== targetOffset) {\n this._scrollToOffset(targetOffset, {\n adjustments: void 0,\n behavior: \"auto\"\n });\n }\n this.scrollState = null;\n return;\n }\n } else {\n this.scrollState.stableFrames = 0;\n if (targetChanged) {\n const viewport = this.getSize() || 600;\n const distance = Math.abs(targetOffset - this.getScrollOffset());\n const keepSmooth = this.scrollState.behavior === \"smooth\" && distance > viewport;\n this.scrollState.lastTargetOffset = targetOffset;\n if (!keepSmooth) {\n this.scrollState.behavior = \"auto\";\n }\n this._scrollToOffset(targetOffset, {\n adjustments: void 0,\n behavior: keepSmooth ? \"smooth\" : \"auto\"\n });\n }\n }\n this.scheduleScrollReconcile();\n }\n}\nconst findNearestBinarySearch = (low, high, getCurrentValue, value) => {\n while (low <= high) {\n const middle = (low + high) / 2 | 0;\n const currentValue = getCurrentValue(middle);\n if (currentValue < value) {\n low = middle + 1;\n } else if (currentValue > value) {\n high = middle - 1;\n } else {\n return middle;\n }\n }\n if (low > 0) {\n return low - 1;\n } else {\n return 0;\n }\n};\nfunction findNearestBinarySearchFlat(flat, high, value) {\n let low = 0;\n while (low <= high) {\n const middle = (low + high) / 2 | 0;\n const currentValue = flat[middle * 2];\n if (currentValue < value) {\n low = middle + 1;\n } else if (currentValue > value) {\n high = middle - 1;\n } else {\n return middle;\n }\n }\n return low > 0 ? low - 1 : 0;\n}\nfunction calculateRangeImpl(measurements, outerSize, scrollOffset, lanes, flat) {\n const lastIndex = measurements.length - 1;\n if (measurements.length <= lanes) {\n return { startIndex: 0, endIndex: lastIndex };\n }\n if (lanes === 1 && flat !== null) {\n const startIndex2 = findNearestBinarySearchFlat(\n flat,\n lastIndex,\n scrollOffset\n );\n let endIndex2 = startIndex2;\n const limit = scrollOffset + outerSize;\n while (endIndex2 < lastIndex && flat[endIndex2 * 2] + flat[endIndex2 * 2 + 1] < limit) {\n endIndex2++;\n }\n return { startIndex: startIndex2, endIndex: endIndex2 };\n }\n const getStart = (index) => measurements[index].start;\n let startIndex = findNearestBinarySearch(0, lastIndex, getStart, scrollOffset);\n let endIndex = startIndex;\n if (lanes === 1) {\n while (endIndex < lastIndex && measurements[endIndex].end < scrollOffset + outerSize) {\n endIndex++;\n }\n } else if (lanes > 1) {\n const endPerLane = Array(lanes).fill(0);\n while (endIndex < lastIndex && endPerLane.some((pos) => pos < scrollOffset + outerSize)) {\n const item = measurements[endIndex];\n endPerLane[item.lane] = item.end;\n endIndex++;\n }\n const startPerLane = Array(lanes).fill(scrollOffset + outerSize);\n while (startIndex >= 0 && startPerLane.some((pos) => pos >= scrollOffset)) {\n const item = measurements[startIndex];\n startPerLane[item.lane] = item.start;\n startIndex--;\n }\n startIndex = Math.max(0, startIndex - startIndex % lanes);\n endIndex = Math.min(lastIndex, endIndex + (lanes - 1 - endIndex % lanes));\n }\n return { startIndex, endIndex };\n}\nexport {\n Virtualizer,\n _resetIOSDetectionForTests,\n approxEqual,\n debounce,\n defaultKeyExtractor,\n defaultRangeExtractor,\n elementScroll,\n measureElement,\n memo,\n notUndefined,\n observeElementOffset,\n observeElementRect,\n observeWindowOffset,\n observeWindowRect,\n windowScroll\n};\n//# sourceMappingURL=index.js.map\n","function getMeasurementKey(item) {\n return typeof item === \"object\" ? item.key : item;\n}\nfunction createLazyMeasurementsView(cache, flat) {\n const count = cache.length;\n return new Proxy(cache, {\n get(target, prop, receiver) {\n if (typeof prop === \"string\") {\n const c = prop.charCodeAt(0);\n if (c >= 48 && c <= 57) {\n const i = +prop;\n if (Number.isInteger(i) && i >= 0 && i < count) {\n let v = target[i];\n if (typeof v !== \"object\") {\n const s = flat[i * 2];\n v = target[i] = {\n index: i,\n key: v,\n start: s,\n size: flat[i * 2 + 1],\n end: s + flat[i * 2 + 1],\n lane: 0\n };\n }\n return v;\n }\n }\n if (prop === \"length\") return count;\n }\n return Reflect.get(target, prop, receiver);\n }\n });\n}\nexport {\n createLazyMeasurementsView,\n getMeasurementKey\n};\n//# sourceMappingURL=lazy-measurements.js.map\n","import * as React from \"react\";\nimport { flushSync } from \"react-dom\";\nimport { Virtualizer, elementScroll, observeElementOffset, observeElementRect, windowScroll, observeWindowOffset, observeWindowRect } from \"@tanstack/virtual-core\";\nexport * from \"@tanstack/virtual-core\";\nconst useIsomorphicLayoutEffect = typeof document !== \"undefined\" ? React.useLayoutEffect : React.useEffect;\nfunction useVirtualizerBase({\n useFlushSync = true,\n directDomUpdates = false,\n directDomUpdatesMode = \"transform\",\n ...options\n}) {\n const rerender = React.useReducer((x) => x + 1, 0)[1];\n const directRef = React.useRef({\n enabled: directDomUpdates,\n mode: directDomUpdatesMode,\n container: null,\n lastSize: null,\n // Keyed by the element itself so a remounted node (same key, new DOM\n // node — e.g. when `enabled` is toggled off then on) is treated as fresh\n // and gets its style written.\n lastPositions: /* @__PURE__ */ new WeakMap(),\n prevRange: null\n });\n directRef.current.enabled = directDomUpdates;\n directRef.current.mode = directDomUpdatesMode;\n const measuringFromRef = React.useRef(false);\n const applyContainerSize = (instance2) => {\n const state = directRef.current;\n if (!state.enabled || !state.container) return;\n const totalSize = instance2.getTotalSize();\n if (totalSize !== state.lastSize) {\n state.lastSize = totalSize;\n const sizeAxis = instance2.options.horizontal ? \"width\" : \"height\";\n state.container.style[sizeAxis] = `${totalSize}px`;\n }\n };\n const applyDirectStyles = (instance2) => {\n const state = directRef.current;\n if (!state.enabled || !state.container) return;\n applyContainerSize(instance2);\n const horizontal = !!instance2.options.horizontal;\n const useTransform = state.mode === \"transform\";\n const posAxis = horizontal ? \"left\" : \"top\";\n const scrollMargin = instance2.options.scrollMargin;\n const items = instance2.getVirtualItems();\n for (const item of items) {\n const next = item.start - scrollMargin;\n const el = instance2.elementsCache.get(item.key);\n if (!el) continue;\n if (state.lastPositions.get(el) === next) continue;\n state.lastPositions.set(el, next);\n if (useTransform) {\n el.style.transform = horizontal ? `translate3d(${next}px, 0, 0)` : `translate3d(0, ${next}px, 0)`;\n } else {\n el.style[posAxis] = `${next}px`;\n }\n }\n };\n const resolvedOptions = {\n ...options,\n onChange: (instance2, sync) => {\n var _a;\n const state = directRef.current;\n let shouldRerender = true;\n if (state.enabled) {\n applyDirectStyles(instance2);\n const range = instance2.range;\n const prev = state.prevRange;\n shouldRerender = !prev || prev.isScrolling !== instance2.isScrolling || prev.startIndex !== (range == null ? void 0 : range.startIndex) || prev.endIndex !== (range == null ? void 0 : range.endIndex);\n if (shouldRerender) {\n state.prevRange = range ? {\n startIndex: range.startIndex,\n endIndex: range.endIndex,\n isScrolling: instance2.isScrolling\n } : null;\n }\n }\n if (shouldRerender) {\n if (useFlushSync && sync && !measuringFromRef.current) {\n flushSync(rerender);\n } else {\n rerender();\n }\n }\n (_a = options.onChange) == null ? void 0 : _a.call(options, instance2, sync);\n }\n };\n const [instance] = React.useState(() => {\n const v = new Virtualizer(resolvedOptions);\n const measureElement = v.measureElement;\n v.measureElement = (node) => {\n measuringFromRef.current = true;\n try {\n measureElement(node);\n } finally {\n measuringFromRef.current = false;\n }\n };\n return Object.assign(v, {\n containerRef: (node) => {\n const state = directRef.current;\n state.container = node;\n state.lastSize = null;\n if (node && state.enabled) {\n const total = v.getTotalSize();\n state.lastSize = total;\n const axis = v.options.horizontal ? \"width\" : \"height\";\n node.style[axis] = `${total}px`;\n }\n }\n });\n });\n instance.setOptions(resolvedOptions);\n useIsomorphicLayoutEffect(() => {\n return instance._didMount();\n }, []);\n useIsomorphicLayoutEffect(() => {\n applyContainerSize(instance);\n return instance._willUpdate();\n });\n useIsomorphicLayoutEffect(() => {\n applyDirectStyles(instance);\n });\n return instance;\n}\nfunction useVirtualizer(options) {\n return useVirtualizerBase({\n observeElementRect,\n observeElementOffset,\n scrollToFn: elementScroll,\n ...options\n });\n}\nfunction useWindowVirtualizer(options) {\n return useVirtualizerBase({\n getScrollElement: () => typeof document !== \"undefined\" ? window : null,\n observeElementRect: observeWindowRect,\n observeElementOffset: observeWindowOffset,\n scrollToFn: windowScroll,\n initialOffset: () => typeof document !== \"undefined\" ? window.scrollY : 0,\n ...options\n });\n}\nexport {\n useVirtualizer,\n useWindowVirtualizer\n};\n//# sourceMappingURL=index.js.map\n","import classnames from 'classnames';\nimport { HTMLProps, MutableRefObject, PropsWithChildren, forwardRef, useRef } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport { UiProps } from '@models/UiProps';\n\nimport * as styles from './modal.module.css';\n\ninterface Props {\n open: boolean;\n onClose?: () => void;\n root?: HTMLElement | MutableRefObject<HTMLElement | null> | null;\n}\n\nexport const Modal = forwardRef<HTMLDivElement, PropsWithChildren<UiProps<Props> & HTMLProps<HTMLDivElement>>>(\n function Modal({ open, onClose, root = document.body, children, classes, className, onClick, ...rest }, propRef) {\n const overlayRef = useRef<HTMLDivElement>(null);\n const modalRef = useRef<HTMLDivElement | null>(null);\n\n const handleOverlayClick = (e: React.MouseEvent<HTMLDivElement>) => {\n if (e.target === overlayRef.current || !modalRef.current?.contains(e.target as Node)) {\n e.stopPropagation();\n onClose?.();\n }\n };\n\n if (!open || !children) {\n return null;\n }\n\n const modalContent = (\n <div ref={overlayRef} className={styles.overlay} onClick={handleOverlayClick}>\n <div\n {...rest}\n ref={(node) => {\n if (node) {\n modalRef.current = node;\n }\n if (typeof propRef === 'function') {\n propRef(node);\n } else if (propRef) {\n propRef.current = node;\n }\n }}\n className={classnames(styles.modal, className, classes?.root)}\n onClick={(e) => {\n e.stopPropagation();\n onClick?.(e);\n }}\n >\n {children}\n </div>\n </div>\n );\n\n return createPortal(modalContent, root as HTMLElement);\n },\n);\n","// extracted by mini-css-extract-plugin\nvar _1 = \"modal-module__modal__MbFDb\";\nvar _2 = \"modal-module__overlay__jUOz9\";\nexport { _1 as \"modal\", _2 as \"overlay\" }\n","// extracted by mini-css-extract-plugin\nvar _1 = \"surface-module__medium__RDAZM\";\nvar _2 = \"surface-module__modal__CR4M1\";\nvar _3 = \"surface-module__overlay1__mkcgW\";\nvar _4 = \"surface-module__overlay2__SpRc6\";\nvar _5 = \"surface-module__panel___5TWQ\";\nvar _6 = \"surface-module__primary__eubsR\";\nvar _7 = \"surface-module__root__NWwiS\";\nvar _8 = \"surface-module__small__GMEm1\";\nexport { _1 as \"medium\", _2 as \"modal\", _3 as \"overlay1\", _4 as \"overlay2\", _5 as \"panel\", _6 as \"primary\", _7 as \"root\", _8 as \"small\" }\n","import classnames from 'classnames';\nimport { HTMLAttributes, PropsWithChildren, forwardRef } from 'react';\n\nimport { SurfaceSize } from '@models/SurfaceSize';\nimport { SurfaceType } from '@models/SurfaceType';\nimport { UiProps } from '@models/UiProps';\n\nimport * as styles from './surface.module.css';\n\ninterface Props {\n type?: SurfaceType;\n componentSize?: SurfaceSize;\n}\n\nexport const Surface = forwardRef<HTMLDivElement, PropsWithChildren<UiProps<Props>> & HTMLAttributes<HTMLDivElement>>(\n function Surface({ type = 'primary', componentSize = 'medium', children, classes, className, ...rest }, ref) {\n return (\n <div\n ref={ref}\n className={classnames(\n styles.root,\n className,\n classes?.root,\n styles[type as keyof typeof styles],\n styles[componentSize as keyof typeof styles],\n )}\n {...rest}\n >\n {children}\n </div>\n );\n },\n);\n","// extracted by mini-css-extract-plugin\nvar _1 = \"virtualTable-module__align-center__rbiTV\";\nvar _2 = \"virtualTable-module__align-left__h55vl\";\nvar _3 = \"virtualTable-module__align-right__D9XGD\";\nvar _4 = \"virtualTable-module__borders-all__KkNTI\";\nvar _5 = \"virtualTable-module__borders-horizontal__jR33G\";\nvar _6 = \"virtualTable-module__borders-vertical__uEuZ0\";\nvar _7 = \"virtualTable-module__bottom-border__WDi6q\";\nvar _8 = \"virtualTable-module__clickable__e1Fzm\";\nvar _9 = \"virtualTable-module__editable__ykKJ7\";\nvar _a = \"virtualTable-module__error__AlQbz\";\nvar _b = \"virtualTable-module__even-row__G9kZ9\";\nvar _c = \"virtualTable-module__first-th-row__gTB11\";\nvar _d = \"virtualTable-module__input__woZy1\";\nvar _e = \"virtualTable-module__label__MH9F1\";\nvar _f = \"virtualTable-module__margin-left-changing__zOfJs\";\nvar _10 = \"virtualTable-module__medium__ir7ZQ\";\nvar _11 = \"virtualTable-module__modal-content__x3MRE\";\nvar _12 = \"virtualTable-module__right-border__VUcBZ\";\nvar _13 = \"virtualTable-module__root__T5DB8\";\nvar _14 = \"virtualTable-module__row-button-trigger__GOp1L\";\nvar _15 = \"virtualTable-module__rowspan-content__tVYnk\";\nvar _16 = \"virtualTable-module__select-rows___j564\";\nvar _17 = \"virtualTable-module__selected__m1TlO\";\nvar _18 = \"virtualTable-module__show-in-modal__CRX1n\";\nvar _19 = \"virtualTable-module__small__Frhxm\";\nvar _1a = \"virtualTable-module__sticky__IOXhs\";\nvar _1b = \"virtualTable-module__success__xA9vR\";\nvar _1c = \"virtualTable-module__table__DVtV1\";\nvar _1d = \"virtualTable-module__table-container__Mg8RS\";\nvar _1e = \"virtualTable-module__td__xaUJu\";\nvar _1f = \"virtualTable-module__th__e9Feh\";\nvar _20 = \"virtualTable-module__th-cell__p6rQ6\";\nvar _21 = \"virtualTable-module__th-hidden-column__G4mQg\";\nvar _22 = \"virtualTable-module__th-left-border__VLgUr\";\nvar _23 = \"virtualTable-module__th-right-border__bNAS9\";\nvar _24 = \"virtualTable-module__tr__zZyk5\";\nvar _25 = \"virtualTable-module__vertical-align-center__BgJQa\";\nvar _26 = \"virtualTable-module__vertical-align-flex-end__tIx0q\";\nvar _27 = \"virtualTable-module__vertical-align-flex-start___IFqc\";\nvar _28 = \"virtualTable-module__view-cell__eY5xo\";\nvar _29 = \"virtualTable-module__view-span__SezD2\";\nexport { _1 as \"alignCenter\", _2 as \"alignLeft\", _3 as \"alignRight\", _4 as \"bordersAll\", _5 as \"bordersHorizontal\", _6 as \"bordersVertical\", _7 as \"bottomBorder\", _8 as \"clickable\", _9 as \"editable\", _a as \"error\", _b as \"evenRow\", _c as \"firstThRow\", _d as \"input\", _e as \"label\", _f as \"marginLeftChanging\", _10 as \"medium\", _11 as \"modalContent\", _12 as \"rightBorder\", _13 as \"root\", _14 as \"rowButtonTrigger\", _15 as \"rowspanContent\", _16 as \"selectRows\", _17 as \"selected\", _18 as \"showInModal\", _19 as \"small\", _1a as \"sticky\", _1b as \"success\", _1c as \"table\", _1d as \"tableContainer\", _1e as \"td\", _1f as \"th\", _20 as \"thCell\", _21 as \"thHiddenColumn\", _22 as \"thLeftBorder\", _23 as \"thRightBorder\", _24 as \"tr\", _25 as \"verticalAlignCenter\", _26 as \"verticalAlignFlexEnd\", _27 as \"verticalAlignFlexStart\", _28 as \"viewCell\", _29 as \"viewSpan\" }\n","import { ColumnDef } from '@tanstack/react-table';\nimport classnames from 'classnames';\nimport { useEffect, useRef, useState } from 'react';\n\nimport { Tooltip } from '@components/data-display/Tooltip/Tooltip';\nimport { Modal } from '@components/feedback/Modal';\nimport { Input } from '@components/inputs/Input';\nimport { Surface } from '@components/surfaces/Surface/Surface';\n\nimport { TableRow } from '../../models/TableRow';\nimport * as styles from '../../virtualTable.module.css';\n\nexport const DefaultColumn: Partial<ColumnDef<TableRow, unknown>> = {\n cell: ({ getValue, row: { index, original }, column: { id, columnDef }, table }) => {\n const initialValue = getValue<string | number | undefined>();\n const { meta } = columnDef;\n const tableMeta = table.options.meta;\n\n const [value, setValue] = useState<string | undefined>(initialValue as string | undefined);\n const [isEdit, setIsEdit] = useState<boolean>(false);\n const [showModal, setShowModal] = useState<boolean>(false);\n\n const closeModalRef = useRef<() => void>();\n\n closeModalRef.current = () => {\n setShowModal(false);\n };\n\n useEffect(() => {\n setValue(initialValue as string | undefined);\n }, [initialValue]);\n\n const additionalViewResult = tableMeta?.additionalColumnsViews?.(id, initialValue, original[id]?.payload);\n\n if (isEdit && meta?.editable) {\n const onBlur = () => {\n tableMeta?.updateData(index, id, value, original);\n setIsEdit(false);\n };\n\n const onChange = (changeValue?: string, withBlur?: boolean) => {\n setValue(changeValue);\n if (withBlur) {\n tableMeta?.updateData(index, id, changeValue, original);\n setIsEdit(false);\n }\n };\n\n return (\n <Tooltip\n label={original[id]?.tooltip ?? ''}\n alertType={\n original[id]?.fill === 'error' ? 'error' : original[id]?.fill === 'success' ? 'success' : 'default'\n }\n >\n {additionalViewResult?.edit !== null && additionalViewResult?.edit !== undefined ? (\n additionalViewResult.edit(onChange, onBlur)\n ) : (\n <>\n <Input\n classes={{ input: styles.input }}\n componentSize=\"small\"\n variant=\"outlined\"\n onChange={(e) => onChange(e.target.value)}\n onBlur={onBlur}\n value={value ?? ''}\n type={meta.inputType}\n fullWidth\n autoFocus\n />\n </>\n )}\n </Tooltip>\n );\n }\n\n const shownValue =\n additionalViewResult?.view !== null && additionalViewResult?.view !== undefined\n ? additionalViewResult.view\n : meta?.valueFormat\n ? meta.valueFormat(initialValue)\n : meta?.toFixed !== undefined && !Number.isNaN(parseFloat(initialValue as string))\n ? parseFloat(Number(initialValue).toFixed(meta.toFixed))\n : initialValue;\n\n const hasCellAction = Boolean(meta?.editable || meta?.showInModal || (meta?.onClick && original[id]?.payload));\n\n return (\n <Tooltip\n label={original[id]?.tooltip ?? ''}\n alertType={original[id]?.fill === 'error' ? 'error' : original[id]?.fill === 'success' ? 'success' : 'default'}\n >\n <div\n className={classnames(\n styles.viewCell,\n !!meta?.rowsAlign ? styles[`align${meta?.rowsAlign}` as keyof typeof styles] : undefined,\n meta?.showInModal ? styles.showInModal : undefined,\n meta?.onClick && original[id]?.payload ? styles.clickable : undefined,\n !!original[id]?.fill ? styles[original[id].fill as keyof typeof styles] : undefined,\n !!meta?.editable ? styles.editable : undefined,\n !!meta?.verticalAlign ? styles[`verticalAlign${meta?.verticalAlign}` as keyof typeof styles] : undefined,\n )}\n {...(hasCellAction ? { 'data-vt-cell-action': '' } : undefined)}\n onClick={\n hasCellAction\n ? (event) => {\n if (event.ctrlKey || event.metaKey || event.shiftKey) {\n return;\n }\n\n if (meta?.editable) {\n setIsEdit(true);\n return;\n }\n\n if (meta?.showInModal) {\n setShowModal(true);\n return;\n }\n\n if (meta?.onClick && original[id]?.payload) {\n meta.onClick(original[id]?.payload ?? {});\n }\n }\n : undefined\n }\n >\n <span className={styles.viewSpan}>{shownValue}</span>\n {showModal && (\n <Modal\n root={tableMeta?.tableContainerRef?.current}\n open={showModal}\n onClose={() => closeModalRef.current?.()}\n >\n <Surface type=\"panel\">\n <div className={styles.modalContent}>{shownValue}</div>\n </Surface>\n </Modal>\n )}\n </div>\n </Tooltip>\n );\n },\n};\n","export const alphanumericCompare = (a: string, b: string): number => {\n const aParts = a.match(/(\\d+|\\D+)/g) || [];\n const bParts = b.match(/(\\d+|\\D+)/g) || [];\n\n const maxLength = Math.max(aParts.length, bParts.length);\n\n for (let i = 0; i < maxLength; i++) {\n const aPart = aParts[i] || '';\n const bPart = bParts[i] || '';\n\n const aIsNumber = /^\\d+$/.test(aPart);\n const bIsNumber = /^\\d+$/.test(bPart);\n\n if (aIsNumber && bIsNumber) {\n const numA = parseInt(aPart, 10);\n const numB = parseInt(bPart, 10);\n if (numA !== numB) {\n return numA - numB;\n }\n } else {\n const comparison = aPart.localeCompare(bPart);\n if (comparison !== 0) {\n return comparison;\n }\n }\n }\n\n return 0;\n};\n","import classnames from 'classnames';\nimport { useCallback, useEffect, useState } from 'react';\n\nimport { Tooltip } from '@components/data-display/Tooltip';\nimport { Button } from '@components/inputs/Button';\nimport { DateTime } from '@components/inputs/DateTime';\nimport { CloseIcon } from '@icons/CloseIcon';\n\nimport * as styles from './dateFiltration.module.css';\n\ninterface Props {\n defaultValues?: (string | undefined)[];\n actionWithSelected: (values: (string | undefined)[]) => void;\n}\n\nexport function DateFiltration(props: Props) {\n const { defaultValues = [undefined, undefined], actionWithSelected } = props;\n const [values, setValues] = useState<(string | undefined)[]>(defaultValues);\n\n const handleChangeDates = (newValues: (string | undefined)[]) => {\n setValues(newValues);\n };\n\n useEffect(() => {\n actionWithSelected(values);\n }, [values]);\n\n const resetValues = useCallback(() => {\n setValues([undefined, undefined]);\n actionWithSelected([undefined, undefined]);\n }, []);\n\n return (\n <div className={classnames(styles.root)}>\n <DateTime\n isPeriod\n componentSize=\"small\"\n variant=\"outlined\"\n fullWidth\n values={values}\n onValueChange={handleChangeDates}\n tabIndex={-1}\n />\n <Tooltip label=\"Сбросить\">\n <Button\n onClick={resetValues}\n className={classnames(styles.button)}\n variant=\"text\"\n componentSize=\"small\"\n textSecondary\n icon={<CloseIcon />}\n />\n </Tooltip>\n </div>\n );\n}\n","// extracted by mini-css-extract-plugin\nvar _1 = \"dateFiltration-module__button__qR5Az\";\nvar _2 = \"dateFiltration-module__root__q1XLM\";\nexport { _1 as \"button\", _2 as \"root\" }\n","// extracted by mini-css-extract-plugin\nvar _1 = \"numberFiltration-module__button__PJOUL\";\nvar _2 = \"numberFiltration-module__input__a8GyD\";\nvar _3 = \"numberFiltration-module__inputs-container__Eqfwf\";\nvar _4 = \"numberFiltration-module__root__sSnKZ\";\nvar _5 = \"numberFiltration-module__select__KO1Ce\";\nexport { _1 as \"button\", _2 as \"input\", _3 as \"inputsContainer\", _4 as \"root\", _5 as \"select\" }\n","import classnames from 'classnames';\nimport { useCallback, useState } from 'react';\n\nimport { Tooltip } from '@components/data-display/Tooltip';\nimport { Button } from '@components/inputs/Button';\nimport { Input } from '@components/inputs/Input';\nimport { Item, MaybeItem, Select } from '@components/inputs/Select';\nimport { CloseIcon } from '@icons/CloseIcon';\n\nimport * as styles from './numberFiltration.module.css';\n\ninterface Props {\n defaultValues?: number[];\n actionWithSelected: (values: number[]) => void;\n}\n\nconst items: Item[] = [\n { type: 'item', name: 'От — до', value: 'range' },\n { type: 'item', name: 'Больше', value: 'more' },\n { type: 'item', name: 'Меньше', value: 'less' },\n { type: 'item', name: 'Равно', value: 'equal' },\n];\n\nexport function NumberFiltration(props: Props) {\n const { defaultValues = [-Infinity, Infinity], actionWithSelected } = props;\n\n const [selectedItem, setSelectedItem] = useState<Item>(\n defaultValues[0] === -Infinity && defaultValues[1] === Infinity\n ? items[0]\n : defaultValues[0] === defaultValues[1]\n ? items[3]\n : defaultValues[0] === -Infinity\n ? items[2]\n : defaultValues[1] === Infinity\n ? items[1]\n : items[0],\n );\n const [values, setValues] = useState<number[]>(defaultValues);\n\n const handleSelect = (item: MaybeItem) => {\n if (!!item) {\n const newValues = [...values];\n switch (item.value) {\n case 'more':\n newValues[1] = Infinity;\n break;\n case 'less':\n newValues[0] = -Infinity;\n break;\n case 'equal':\n const val = newValues[0] !== -Infinity ? newValues[0] : newValues[1];\n newValues[0] = val;\n newValues[1] = val;\n break;\n default:\n break;\n }\n setValues(newValues);\n actionWithSelected(newValues);\n setSelectedItem(item);\n }\n };\n\n const handleChangeNumber = (type: 'more' | 'less' | 'equal', value: string) => {\n setValues((prev) =>\n type === 'equal'\n ? [value.length ? +value : -Infinity, value.length ? +value : Infinity]\n : type === 'more'\n ? [value.length ? +value : -Infinity, prev[1]]\n : [prev[0], value.length ? +value : Infinity],\n );\n };\n\n const resetValues = useCallback(() => {\n setValues([-Infinity, Infinity]);\n actionWithSelected([-Infinity, Infinity]);\n }, []);\n\n return (\n <div className={classnames(styles.root)}>\n <Select\n items={items}\n componentSize=\"small\"\n variant=\"filled\"\n selected={selectedItem}\n onValueChange={handleSelect}\n classes={{ root: styles.select }}\n tabIndex={-1}\n />\n <div className={classnames(styles.inputsContainer)}>\n {selectedItem.value === 'range' ? (\n <>\n <Input\n componentSize=\"small\"\n variant=\"outlined\"\n type=\"number\"\n classes={{ root: styles.input }}\n value={values[0] > -Infinity && values[0] < Infinity ? values[0] : ''}\n onChange={(e) => {\n handleChangeNumber('more', e.target.value);\n }}\n onBlur={() => actionWithSelected(values)}\n onKeyUp={(e) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n actionWithSelected(values);\n }\n }}\n />\n <Input\n componentSize=\"small\"\n variant=\"outlined\"\n type=\"number\"\n classes={{ root: styles.input }}\n value={values[1] > -Infinity && values[1] < Infinity ? values[1] : ''}\n onChange={(e) => {\n handleChangeNumber('less', e.target.value);\n }}\n onBlur={() => actionWithSelected(values)}\n onKeyUp={(e) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n actionWithSelected(values);\n }\n }}\n />\n </>\n ) : (\n <Input\n componentSize=\"small\"\n variant=\"outlined\"\n type=\"number\"\n classes={{ root: styles.input }}\n value={\n selectedItem.value === 'more'\n ? values[0] > -Infinity && values[0] < Infinity\n ? values[0]\n : ''\n : values[1] > -Infinity && values[1] < Infinity\n ? values[1]\n : ''\n }\n onChange={(e) => {\n handleChangeNumber(selectedItem.value as 'more' | 'less' | 'equal', e.target.value);\n }}\n onBlur={() => actionWithSelected(values)}\n onKeyUp={(e) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n actionWithSelected(values);\n }\n }}\n />\n )}\n </div>\n <Tooltip label=\"Сбросить\">\n <Button\n onClick={resetValues}\n className={classnames(styles.button)}\n variant=\"text\"\n componentSize=\"small\"\n textSecondary\n icon={<CloseIcon />}\n />\n </Tooltip>\n </div>\n );\n}\n","import { ColumnMeta } from '@tanstack/react-table';\nimport classnames from 'classnames';\nimport { Dispatch, MutableRefObject, ReactNode, SetStateAction, useMemo } from 'react';\n\nimport { Tooltip } from '@components/data-display/Tooltip/Tooltip';\nimport { Button } from '@components/inputs/Button';\nimport { Item, SelectedItems } from '@components/inputs/Checklist';\nimport { Checklist } from '@components/inputs/Checklist/Checklist';\nimport { Menu, Divider as MenuDivider, Item as MenuItem } from '@components/navigation/Menu';\nimport { Popover } from '@components/utils/Popover/Popover';\nimport { useTranslation } from '@hooks/useTranslation';\nimport { ArrowDropDownIcon, FilterIcon, SelectUniqueIcon, SortDownIcon, SortUpIcon } from '@icons/index';\n\nimport * as styles from './headerDropdown.module.css';\nimport { FilterBy } from '../../models/FilterBy';\nimport { SortBy } from '../../models/SortBy';\nimport { TableRow } from '../../models/TableRow';\nimport { alphanumericCompare } from '../../utils/alphanumericCompare';\nimport { DateFiltration } from '../DateFiltration';\nimport { NumberFiltration } from '../NumberFiltration';\n\ninterface HeaderDropdownProps {\n headerMeta: ColumnMeta<TableRow, unknown>;\n sortBy: SortBy[];\n setSortBy: Dispatch<SetStateAction<SortBy[]>>;\n filterBy: FilterBy[];\n setFilterBy: Dispatch<SetStateAction<FilterBy[]>>;\n headerName: string;\n rows: TableRow[];\n rowsForUniqueCount?: TableRow[];\n containerRef?: HTMLElement | MutableRefObject<HTMLElement | null> | null;\n showUniqueValuesCount?: boolean;\n leftAdditionalContent?: (headerName: string) => ReactNode;\n rightAdditionalContent?: (headerName: string) => ReactNode;\n children?: (afterNode?: ReactNode) => ReactNode;\n}\n\nexport function HeaderDropdown(props: HeaderDropdownProps) {\n const {\n headerMeta: {\n sortable = false,\n selectUnique = false,\n sortType,\n sortAnotherName,\n filtrationByNumber = false,\n filtrationByDate = false,\n filtrationByValue = false,\n valueFormat,\n toFixed,\n },\n sortBy,\n setSortBy,\n filterBy,\n setFilterBy,\n headerName,\n containerRef,\n showUniqueValuesCount,\n leftAdditionalContent,\n rightAdditionalContent,\n children,\n rows,\n rowsForUniqueCount,\n } = props;\n\n const headerResultName = sortAnotherName ?? headerName;\n\n const filterItems = useMemo(() => {\n // rows приходят из VirtualTable: для колонки без фильтра — все текущие фильтры,\n // для колонки с фильтром — строки «до добавления» фильтра этой колонки (по порядку в filterBy).\n const checklistItems = rows\n .map(\n (i) =>\n ({\n name: i[headerResultName]\n ? valueFormat\n ? valueFormat(i[headerResultName].value)\n : toFixed !== undefined && !Number.isNaN(parseFloat(i[headerResultName].value as string))\n ? parseFloat(Number(i[headerResultName].value).toFixed(toFixed)).toString()\n : i[headerResultName].value?.toString() || '< нет значения >'\n : '< нет значения >',\n value: i[headerResultName]?.value?.toString() || '',\n }) as Item,\n )\n .sort((a, b) => {\n const aName = a.name.toString();\n const bName = b.name.toString();\n const noValue = '< нет значения >';\n\n if (aName === noValue) return -1;\n if (bName === noValue) return 1;\n\n return alphanumericCompare(aName, bName);\n });\n\n const uniqueChecklistItems = [\n ...checklistItems\n .reduce((a, c) => {\n a.set(c.value, c);\n return a;\n }, new Map<string, Item>())\n .values(),\n ];\n\n return uniqueChecklistItems;\n }, [rows, headerResultName, valueFormat, toFixed]);\n\n const uniqueValuesCount = useMemo(() => {\n const sourceRows = rowsForUniqueCount ?? rows;\n const unique = new Set<string>();\n\n sourceRows.forEach((sr) => {\n const cell = sr?.[headerResultName];\n unique.add(cell ? (cell.value ?? '')?.toString() : '');\n });\n\n const valueFilter = filterBy.find((fb) => fb.columnName === headerResultName && fb.type === 'value');\n const selected = (valueFilter?.values ?? []).map((v) => (v ?? '')?.toString());\n\n // Для отфильтрованных по значениям колонок показываем не \"все уникальные\",\n // а только количество выбранных значений, которые реально присутствуют в итоговой выдаче.\n if (selected.length > 0) {\n const selectedSet = new Set(selected);\n let count = 0;\n unique.forEach((u) => {\n if (selectedSet.has(u)) count += 1;\n });\n return count;\n }\n\n return unique.size;\n }, [rowsForUniqueCount, rows, headerResultName, filterBy]);\n\n const filterSelectedItems = useMemo(() => {\n const result: SelectedItems = {};\n filterBy\n .find((fb) => fb.columnName === headerResultName)\n ?.values.forEach((v) => {\n result[v] = true;\n });\n return result;\n }, [filterBy, headerResultName]);\n\n const filterNumbers = useMemo(() => {\n return filterBy.find((fb) => fb.columnName === headerResultName && fb.type === 'numberRange')?.values as\n number[] | undefined;\n }, [filterBy, headerResultName]);\n\n const filterDates = useMemo(() => {\n return filterBy.find((fb) => fb.columnName === headerResultName && fb.type === 'dateRange')?.values as\n string[] | undefined;\n }, [filterBy, headerResultName]);\n\n const handleSortClick = (direction: 'asc' | 'desc') => () => {\n setSortBy((prev) => {\n if (prev.some((p) => p.columnName === headerResultName && p.direction === direction)) {\n return prev.filter((p) => !(p.columnName === headerResultName && p.direction === direction));\n } else {\n if (prev.some((p) => p.columnName === headerResultName)) {\n return prev.map((p) => (p.columnName === headerResultName ? { ...p, direction } : { ...p }));\n } else {\n return prev.concat([{ columnName: headerResultName, direction, sortType }]);\n }\n }\n });\n };\n\n const actionWithSelectedNumbers = (values: number[]) => {\n setFilterBy((prev) => {\n if (values[0] === -Infinity && values[1] === Infinity) {\n return [...prev.filter((p) => !(p.columnName === headerResultName && p.type === 'numberRange'))];\n } else {\n const newResult = [...prev];\n const existIndex = newResult.findIndex((p) => p.columnName === headerResultName && p.type === 'numberRange');\n if (existIndex !== -1) {\n newResult[existIndex] = { ...newResult[existIndex], values };\n } else {\n newResult.push({\n columnName: headerResultName,\n type: 'numberRange',\n values,\n });\n }\n return newResult;\n }\n });\n };\n\n const actionWithSelectedDates = (values: (string | undefined)[]) => {\n setFilterBy((prev) => {\n if (values[0] === undefined || values[1] === undefined) {\n return [...prev.filter((p) => !(p.columnName === headerResultName && p.type === 'dateRange'))];\n } else {\n const newResult = [...prev];\n const existIndex = newResult.findIndex((p) => p.columnName === headerResultName && p.type === 'dateRange');\n if (existIndex !== -1) {\n newResult[existIndex] = { ...newResult[existIndex], values: values as string[] };\n } else {\n newResult.push({\n columnName: headerResultName,\n type: 'dateRange',\n values: values as string[],\n });\n }\n return newResult;\n }\n });\n };\n\n const actionWithSelectedObjects = (selected: SelectedItems) => {\n Object.entries(selected).forEach(([key, value]) => {\n if (!value) {\n delete selected[key];\n }\n });\n const selectedValues = Object.keys(selected);\n setFilterBy((prev) => {\n if (selectedValues.length === 0) {\n return prev\n .map((p) => {\n if (p.columnName !== headerResultName || p.type !== 'value') {\n return p;\n }\n return p.uniqueFirstPerValue ? { ...p, values: [] } : null;\n })\n .filter((p): p is FilterBy => p !== null);\n }\n const newResult = [...prev];\n const existIndex = newResult.findIndex((p) => p.columnName === headerResultName && p.type === 'value');\n if (existIndex !== -1) {\n newResult[existIndex] = { ...newResult[existIndex], values: selectedValues };\n } else {\n newResult.push({ columnName: headerResultName, type: 'value', values: selectedValues });\n }\n return newResult;\n });\n };\n\n const uniqueFirstPerValue = filterBy.some(\n (fb) => fb.columnName === headerResultName && fb.type === 'value' && fb.uniqueFirstPerValue,\n );\n\n const toggleUniqueFirstPerValue = () => {\n setFilterBy((prev) => {\n const existIndex = prev.findIndex((p) => p.columnName === headerResultName && p.type === 'value');\n if (existIndex !== -1) {\n const current = prev[existIndex];\n const nextFlag = !current.uniqueFirstPerValue;\n if (!nextFlag && current.values.length === 0) {\n return prev.filter((_, i) => i !== existIndex);\n }\n return prev.map((p, i) => {\n if (i !== existIndex) {\n return p;\n }\n if (nextFlag) {\n return { ...p, uniqueFirstPerValue: true };\n }\n return { columnName: p.columnName, type: p.type, values: p.values };\n });\n }\n return [...prev, { columnName: headerResultName, type: 'value', values: [], uniqueFirstPerValue: true }];\n });\n };\n\n const hasAnyFilter = Object.keys(filterSelectedItems).length > 0 || uniqueFirstPerValue;\n const sortUp = sortBy.some((sb) => sb.columnName === headerResultName && sb.direction === 'desc');\n const sortDown = sortBy.some((sb) => sb.columnName === headerResultName && sb.direction === 'asc');\n\n const { t } = useTranslation();\n\n const headerActionMenuItems: (MenuItem | MenuDivider)[] = [];\n if (selectUnique) {\n headerActionMenuItems.push({ type: 'divider', name: t('Уникальность значений') });\n headerActionMenuItems.push({\n type: 'item',\n name: t('Только уникальные'),\n icon: <SelectUniqueIcon />,\n selected: uniqueFirstPerValue,\n onClick: toggleUniqueFirstPerValue,\n });\n }\n if (sortable) {\n headerActionMenuItems.push({ type: 'divider', name: t('Сортировка') });\n headerActionMenuItems.push({\n type: 'item',\n name: t('По возрастанию'),\n icon: <SortDownIcon />,\n selected: sortBy.some((sb) => sb.columnName === headerResultName && sb.direction === 'asc'),\n onClick: handleSortClick('asc'),\n });\n headerActionMenuItems.push({\n type: 'item',\n name: t('По убыванию'),\n icon: <SortUpIcon />,\n selected: sortBy.some((sb) => sb.columnName === headerResultName && sb.direction === 'desc'),\n onClick: handleSortClick('desc'),\n });\n }\n\n return (\n <div className={classnames(styles.root)}>\n {leftAdditionalContent?.(headerResultName)}\n {children?.(showUniqueValuesCount && <div>{`(${uniqueValuesCount})`}</div>)}\n {rightAdditionalContent?.(headerResultName)}\n {(sortable || selectUnique || filtrationByValue || filtrationByDate || filtrationByNumber) && (\n <Popover\n placement=\"bottom-end\"\n wrapTrigger\n root={containerRef}\n description={\n <>\n {filtrationByNumber && (\n <NumberFiltration defaultValues={filterNumbers} actionWithSelected={actionWithSelectedNumbers} />\n )}\n {filtrationByDate && (\n <DateFiltration defaultValues={filterDates} actionWithSelected={actionWithSelectedDates} />\n )}\n {filtrationByValue && (\n <div className={classnames(styles.checklistWrap)}>\n <Checklist\n items={filterItems}\n selected={filterSelectedItems}\n actionWithSelected={actionWithSelectedObjects}\n />\n </div>\n )}\n {(sortable || selectUnique) && (\n <div>\n <Menu items={headerActionMenuItems} />\n </div>\n )}\n </>\n }\n >\n <Tooltip label={t('Сортировка и фильтрация')} placement=\"bottom-end\" root={containerRef}>\n <Button\n componentSize=\"small\"\n variant=\"text\"\n textSecondary={!hasAnyFilter && !sortUp && !sortDown}\n icon={\n hasAnyFilter ? (\n <FilterIcon />\n ) : sortUp ? (\n <SortUpIcon />\n ) : sortDown ? (\n <SortDownIcon />\n ) : (\n <ArrowDropDownIcon />\n )\n }\n />\n </Tooltip>\n </Popover>\n )}\n </div>\n );\n}\n","// extracted by mini-css-extract-plugin\nvar _1 = \"headerDropdown-module__checklist-wrap__P7ADR\";\nvar _2 = \"headerDropdown-module__icon-button__rEd6T\";\nvar _3 = \"headerDropdown-module__root__WMUvA\";\nexport { _1 as \"checklistWrap\", _2 as \"iconButton\", _3 as \"root\" }\n","import { TableRow } from '../models/TableRow';\n\nexport function dedupeFirstByColumnValue(rows: TableRow[], columnName: string): TableRow[] {\n const seen = new Set<string>();\n const result: TableRow[] = [];\n\n rows.forEach((row) => {\n const key = row[columnName] ? (row[columnName].value || '')?.toString() : '';\n if (seen.has(key)) {\n return;\n }\n seen.add(key);\n result.push(row);\n });\n\n return result;\n}\n","import { ColumnDef, ColumnMeta } from '@tanstack/react-table';\n\nimport { TableColumn } from '../models/TableColumn';\nimport { TableRow } from '../models/TableRow';\n\nconst createMeta = (column?: TableColumn): ColumnMeta<TableRow, unknown> | undefined => {\n if (column) {\n return {\n editable: column.editable,\n sortable: column.sortable,\n sortType: column.sortType,\n sortAnotherName: column.sortAnotherName,\n filtrationByNumber: column.filtrationByNumber,\n filtrationByDate: column.filtrationByDate,\n filtrationByValue: column.filtrationByValue,\n selectUnique: column.selectUnique,\n width: column.width,\n headerAlign: column.headerAlign,\n rowsAlign: column.rowsAlign,\n valueFormat: column.valueFormat,\n showInModal: column.showInModal,\n onClick: column.onClick,\n label: column.label,\n verticalAlign: column.verticalAlign,\n toFixed: column.toFixed,\n inputType: column.inputType,\n };\n }\n};\n\nexport const getColumns = (columns: TableColumn[], parent?: TableColumn): ColumnDef<TableRow>[] => {\n return columns.map((column) => ({\n id: column.id,\n accessorKey: column.accessorKey,\n accessorFn: column.accessorKey ? (row) => row[column.accessorKey!]?.value : undefined,\n header: () => column.label,\n meta: createMeta(!!parent?.accessorKey ? parent : column),\n columns: column.columns ? getColumns(column.columns, column) : undefined,\n }));\n};\n","import { Header } from '@tanstack/react-table';\n\nimport { TableRow } from '../models/TableRow';\n\nexport const getNextHorizontalHeaders = (\n headers: Header<TableRow, unknown>[],\n currentIndex: number,\n lastVirtualColumnIndex: number,\n): Header<TableRow, unknown>[] => {\n if (\n headers[currentIndex + 1] &&\n headers[currentIndex].column.columnDef.id === headers[currentIndex + 1].column.columnDef.id &&\n currentIndex < lastVirtualColumnIndex\n ) {\n const result: Header<TableRow, unknown>[] = [headers[currentIndex + 1]];\n\n return result.concat(getNextHorizontalHeaders(headers, currentIndex + 1, lastVirtualColumnIndex));\n }\n\n return [];\n};\n","import { Header, HeaderGroup } from '@tanstack/react-table';\n\nimport { TableRow } from '../models/TableRow';\n\nexport const getPrevVerticalHeaders = (\n headersGroups: HeaderGroup<TableRow>[],\n groupIndex: number,\n columnIndex: number,\n): Header<TableRow, unknown>[] => {\n if (\n headersGroups[groupIndex - 1] &&\n !headersGroups[groupIndex - 1].headers[columnIndex].column.columnDef.meta?.label &&\n headersGroups[groupIndex - 1].headers[columnIndex].column.columnDef.id !==\n headersGroups[groupIndex].headers[columnIndex].column.columnDef.id\n ) {\n const result: Header<TableRow, unknown>[] = [headersGroups[groupIndex - 1].headers[columnIndex]];\n\n return result.concat(getPrevVerticalHeaders(headersGroups, groupIndex - 1, columnIndex));\n }\n\n return [];\n};\n","import { Header, HeaderGroup } from '@tanstack/react-table';\n\nimport { getPrevVerticalHeaders } from './getPrevVerticalHeaders';\nimport { TableRow } from '../models/TableRow';\n\nexport const getNextVerticalHeaders = (\n headersGroups: HeaderGroup<TableRow>[],\n groupIndex: number,\n columnIndex: number,\n): Header<TableRow, unknown>[] => {\n if (headersGroups[groupIndex + 1] && getPrevVerticalHeaders(headersGroups, groupIndex + 1, columnIndex).length) {\n const result: Header<TableRow, unknown>[] = [headersGroups[groupIndex + 1].headers[columnIndex]];\n\n return result.concat(getNextVerticalHeaders(headersGroups, groupIndex + 1, columnIndex));\n }\n\n return [];\n};\n","import { Header } from '@tanstack/react-table';\n\nimport { TableRow } from '../models/TableRow';\n\nexport const getPrevHorizontalHeaders = (\n headers: Header<TableRow, unknown>[],\n currentIndex: number,\n): Header<TableRow, unknown>[] => {\n if (\n headers[currentIndex - 1] &&\n headers[currentIndex - 1].column.columnDef.id === headers[currentIndex].column.columnDef.id\n ) {\n const result: Header<TableRow, unknown>[] = [headers[currentIndex - 1]];\n\n return result.concat(getPrevHorizontalHeaders(headers, currentIndex - 1));\n }\n\n return [];\n};\n","import dayjs from 'dayjs';\n\nimport { FilterBy } from '../models/FilterBy';\nimport { TableRow } from '../models/TableRow';\n\nexport function rowMatchesFilter(row: TableRow, filterByItem: FilterBy): boolean {\n const cell = row[filterByItem.columnName];\n const cellValue = cell?.value;\n\n if (filterByItem.type === 'dateRange') {\n const startDate = dayjs((filterByItem.values as string[])[0]);\n const endDate = dayjs((filterByItem.values as string[])[1]);\n\n if (!startDate.isValid() || !endDate.isValid()) {\n return false;\n }\n\n if (cellValue === undefined || cellValue === null || cellValue === '') {\n return false;\n }\n\n const dateValue = dayjs(cellValue as string);\n\n if (!dateValue.isValid()) {\n return false;\n }\n\n return !dateValue.isBefore(startDate, 'day') && !dateValue.isAfter(endDate, 'day');\n }\n\n if (!cell) {\n return filterByItem.values.includes('');\n }\n\n if (filterByItem.type === 'numberRange') {\n return (\n (cellValue as number) >= (filterByItem.values as number[])[0] &&\n (cellValue as number) <= (filterByItem.values as number[])[1]\n );\n }\n\n return filterByItem.values.includes((cellValue || '')?.toString());\n}\n","import { rowMatchesFilter } from './rowMatchesFilter';\nimport { FilterBy } from '../models/FilterBy';\nimport { TableRow } from '../models/TableRow';\n\nexport const recursiveFilter = (rows: TableRow[], filterBy: FilterBy[]): TableRow[] => {\n if (filterBy.length) {\n const filterByItem = filterBy[filterBy.length - 1];\n const filtered = filterByItem.values.length\n ? rows.filter((row) => rowMatchesFilter(row, filterByItem) || row.isNew?.value === 1)\n : rows;\n return recursiveFilter(filtered, filterBy.slice(0, filterBy.length - 1));\n }\n\n return rows;\n};\n","import { alphanumericCompare } from './alphanumericCompare';\nimport { SortBy } from '../models/SortBy';\nimport { TableRow } from '../models/TableRow';\n\nexport const recursiveSort = (items: TableRow[], sortBy: SortBy[]): TableRow[] => {\n if (sortBy.length) {\n const sortByItem = sortBy[sortBy.length - 1];\n const sorted = items.sort((a, b) => {\n const aValue = a[sortByItem.columnName]?.value?.toString() ?? '';\n const bValue = b[sortByItem.columnName]?.value?.toString() ?? '';\n\n if (sortByItem.sortType === 'alphanumeric') {\n const compare = alphanumericCompare(aValue, bValue);\n return sortByItem.direction === 'asc' ? compare : -compare;\n }\n\n const compare = aValue.localeCompare(bValue);\n return sortByItem.direction === 'asc' ? compare : -compare;\n });\n return recursiveSort(sorted, sortBy.slice(0, sortBy.length - 1));\n }\n\n return items;\n};\n","import { TableRow } from '../models/TableRow';\n\nexport interface RowSelectionGesture {\n startIndex: number;\n currentIndex: number;\n ctrl: boolean;\n shift: boolean;\n anchorIndex: number | null;\n baseIndexes: Set<number>;\n isDrag: boolean;\n}\n\nexport const getIndexRange = (from: number, to: number): number[] => {\n const start = Math.min(from, to);\n const end = Math.max(from, to);\n const result: number[] = [];\n\n for (let index = start; index <= end; index += 1) {\n result.push(index);\n }\n\n return result;\n};\n\nexport const computeRowSelection = (gesture: RowSelectionGesture): { indexes: Set<number>; anchor: number | null } => {\n const { startIndex, currentIndex, ctrl, shift, anchorIndex, baseIndexes, isDrag } = gesture;\n\n if (shift && anchorIndex !== null) {\n const range = getIndexRange(anchorIndex, currentIndex);\n\n return {\n indexes: ctrl ? new Set([...baseIndexes, ...range]) : new Set(range),\n anchor: anchorIndex,\n };\n }\n\n if (isDrag) {\n const range = getIndexRange(startIndex, currentIndex);\n\n return {\n indexes: ctrl ? new Set([...baseIndexes, ...range]) : new Set(range),\n anchor: startIndex,\n };\n }\n\n if (ctrl) {\n const next = new Set(baseIndexes);\n\n if (next.has(startIndex)) {\n next.delete(startIndex);\n } else {\n next.add(startIndex);\n }\n\n return { indexes: next, anchor: startIndex };\n }\n\n if (baseIndexes.size === 1 && baseIndexes.has(startIndex)) {\n return { indexes: new Set(), anchor: null };\n }\n\n return { indexes: new Set([startIndex]), anchor: startIndex };\n};\n\nexport const isInteractiveSelectionTarget = (target: EventTarget | null): boolean => {\n if (!(target instanceof Element)) {\n return false;\n }\n\n return Boolean(\n target.closest(\n [\n 'button',\n 'a',\n 'input',\n 'textarea',\n 'select',\n '[role=\"menuitem\"]',\n '[role=\"menu\"]',\n '[role=\"listbox\"]',\n '[role=\"dialog\"]',\n '[data-floating-ui-portal]',\n '[contenteditable=\"true\"]',\n ].join(', '),\n ),\n );\n};\n\nexport const isScrollbarPointerEvent = (event: {\n clientX: number;\n clientY: number;\n target: EventTarget | null;\n currentTarget: EventTarget;\n}): boolean => {\n const container = event.currentTarget;\n if (!(container instanceof HTMLElement) || event.target !== container) {\n return false;\n }\n\n const rect = container.getBoundingClientRect();\n const offsetX = event.clientX - rect.left;\n const offsetY = event.clientY - rect.top;\n const onVerticalScrollbar = container.offsetWidth - container.clientWidth > 0 && offsetX >= container.clientWidth;\n const onHorizontalScrollbar =\n container.offsetHeight - container.clientHeight > 0 && offsetY >= container.clientHeight;\n\n return onVerticalScrollbar || onHorizontalScrollbar;\n};\n\nexport const getSelectedIndexesByRows = (source: TableRow[], selectedRows: TableRow[]): Set<number> => {\n if (selectedRows.length === 0) {\n return new Set();\n }\n\n const selectedSet = new Set(selectedRows);\n const nextIndexes = new Set<number>();\n\n source.forEach((row, index) => {\n if (selectedSet.has(row)) {\n nextIndexes.add(index);\n }\n });\n\n return nextIndexes;\n};\n","import { Header, flexRender, getCoreRowModel, useReactTable } from '@tanstack/react-table';\nimport { Range, defaultRangeExtractor, useVirtualizer } from '@tanstack/react-virtual';\nimport classnames from 'classnames';\nimport dayjs from 'dayjs';\nimport {\n Fragment,\n JSX,\n ReactNode,\n PointerEvent as ReactPointerEvent,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { Tooltip } from '@components/data-display/Tooltip';\nimport { Button } from '@components/inputs/Button';\nimport { ChipSize } from '@models/ChipSize';\nimport { UiProps } from '@models/UiProps';\nimport { toFirstLetterUpperCase } from '@utils/index';\n\nimport { defaultRowHeight } from './constants/defaultRowHeight';\nimport { AdditionalButton } from './models/AdditionalButton';\nimport { FilterBy } from './models/FilterBy';\nimport { SortBy } from './models/SortBy';\nimport { TableCell } from './models/TableCell';\nimport { TableColumn } from './models/TableColumn';\nimport { TableRow } from './models/TableRow';\nimport { VirtualTableBorders } from './models/VirtualTableBorders';\nimport { VirtualTableRef } from './models/VirtualTableRef';\nimport { DefaultColumn } from './ui/DefaultColumn';\nimport { HeaderDropdown } from './ui/HeaderDropdown';\nimport { dedupeFirstByColumnValue } from './utils/dedupeFirstByColumnValue';\nimport { getColumns } from './utils/getColumns';\nimport { getNextHorizontalHeaders } from './utils/getNextHorizontalHeaders';\nimport { getNextVerticalHeaders } from './utils/getNextVerticalHeaders';\nimport { getPrevHorizontalHeaders } from './utils/getPrevHorizontalHeaders';\nimport { getPrevVerticalHeaders } from './utils/getPrevVerticalHeaders';\nimport { recursiveFilter } from './utils/recursiveFilter';\nimport { recursiveSort } from './utils/recursiveSort';\nimport { rowMatchesFilter } from './utils/rowMatchesFilter';\nimport {\n computeRowSelection,\n getSelectedIndexesByRows,\n isInteractiveSelectionTarget,\n isScrollbarPointerEvent,\n} from './utils/rowSelection';\nimport * as styles from './virtualTable.module.css';\n\nconst rowSelectionDragThresholdPx = 4;\nconst rowSelectionScrollEdgePx = 32;\nconst rowSelectionScrollStepPx = 20;\n\ntype Size = ChipSize;\n\ninterface Props {\n /** Строки таблицы */\n rows: TableRow[];\n /** Описание колонок (заголовки, сортировка, фильтрация, форматирование) */\n columns: TableColumn[];\n /** Кастомный рендер ячеек: view — режим просмотра, edit — режим редактирования */\n additionalColumnsViews?: (\n id: string,\n value: string | number | undefined,\n payload: { [key: string]: string } | undefined,\n ) => {\n edit:\n ((onChange: (changeValue?: string, withBlur?: boolean) => void, onBlur: () => void) => JSX.Element | null) | null;\n view: JSX.Element | null;\n };\n /** Колбэк при изменении значения редактируемой ячейки */\n onChangeCell?: (rowIndex: number, columnId: string, value: string | number | undefined, original?: TableRow) => void;\n /** Функция расчёта ширины колонки по индексу; по умолчанию — meta.width колонки или 200 px */\n cellWidth?: (columnIndex: number) => number;\n /** Кнопки действий в правой части каждой строки */\n rowButtons?: ((original: TableRow) => AdditionalButton[]) | undefined;\n /** Количество левых колонок, закреплённых при горизонтальной прокрутке */\n fixedColumnsCount?: number;\n /** Высота строк заголовка в пикселях (по одному значению на уровень вложенности) */\n headerRowHeight?: number[];\n /** Высота строки тела таблицы в пикселях */\n bodyRowHeight?: number;\n /** Ширина колонки с кнопками действий строки */\n rowActionWidth?: number;\n /** Автоматически измерять высоту строк по содержимому (для многострочного текста) */\n dynamicRowHeight?: boolean;\n /** Фиксированная высота контейнера таблицы в пикселях */\n height?: number;\n /** Прокрутить таблицу к последней строке при монтировании/обновлении */\n scrollToBottom?: boolean;\n /** Рендерить попапы фильтрации/сортировки внутри контейнера таблицы (важно для overflow и вкладок) */\n useTableContainerAsRootForPopup?: boolean;\n /** Размер компонента: small | medium | large */\n componentSize?: Size;\n /** Стиль границ ячеек: all | horizontal | vertical | none */\n borders?: VirtualTableBorders;\n /** Показывать в заголовке количество уникальных значений столбца */\n showUniqueValuesCount?: boolean;\n /** Начальные фильтры (управляемый режим — через onFiltersChange) */\n globalFilters?: FilterBy[];\n /** Начальные сортировки (управляемый режим — через onSortsChange) */\n globalSorts?: SortBy[];\n /** Колбэк при изменении активных фильтров пользователем */\n onFiltersChange?: (filters: FilterBy[]) => void;\n /** Колбэк при изменении активных сортировок (без внутренней сортировки по isNew) */\n onSortsChange?: (sorts: SortBy[]) => void;\n /** Дополнительный контент слева от заголовка колонки (например, кнопка синхронизации с картой) */\n leftAdditionalHeaderContent?: (headerName: string) => ReactNode;\n /** Дополнительный контент справа от заголовка колонки, перед кнопкой фильтрации */\n rightAdditionalHeaderContent?: (headerName: string) => ReactNode;\n /** Добавить закреплённую колонку с порядковыми номерами строк */\n showRowsNumbers?: boolean;\n /** Чередовать фон строк (zebra); по умолчанию true */\n stripedRows?: boolean;\n /** Включить выделение строк мышью (Ctrl — точечно, Shift — диапазон, drag — несколько подряд) */\n enableSelectRows?: boolean;\n /** Колбэк при изменении набора выделенных строк; передаются полные данные строк в порядке отображения */\n onSelectRowsChange?: (rows: TableRow[]) => void;\n /** Начальное выделение строк (те же объекты, что в rows; управляемый режим — через onSelectRowsChange) */\n globalSelectedRows?: TableRow[];\n}\n\ninterface SelectionDragState {\n pointerId: number;\n startIndex: number;\n startX: number;\n startY: number;\n baseIndexes: Set<number>;\n ctrl: boolean;\n shift: boolean;\n anchorIndex: number | null;\n isDragCapable: boolean;\n hasDragged: boolean;\n}\n\nexport const VirtualTable = forwardRef<VirtualTableRef, UiProps<Props>>((props, ref) => {\n const {\n rows,\n columns,\n additionalColumnsViews,\n onChangeCell,\n cellWidth,\n rowButtons,\n fixedColumnsCount = 0,\n headerRowHeight = [defaultRowHeight],\n bodyRowHeight = defaultRowHeight,\n rowActionWidth = 77,\n classes,\n dynamicRowHeight = false,\n height,\n scrollToBottom,\n useTableContainerAsRootForPopup,\n componentSize = 'small',\n borders = 'horizontal',\n showUniqueValuesCount = false,\n globalFilters,\n globalSorts,\n onFiltersChange,\n onSortsChange,\n leftAdditionalHeaderContent,\n rightAdditionalHeaderContent,\n showRowsNumbers,\n stripedRows = true,\n enableSelectRows = false,\n onSelectRowsChange,\n globalSelectedRows,\n } = props;\n\n const fixedWithNumbersCount = fixedColumnsCount + (showRowsNumbers ? 1 : 0);\n\n const [filterBy, setFilterBy] = useState<FilterBy[]>(globalFilters ?? []);\n const [sortBy, setSortBy] = useState<SortBy[]>([...(globalSorts ?? []), { columnName: 'isNew', direction: 'desc' }]);\n const [selectedIndexes, setSelectedIndexes] = useState<Set<number>>(() => new Set());\n\n const tableContainerRef = useRef<HTMLDivElement>(null);\n const selectedIndexesRef = useRef(selectedIndexes);\n const selectedRowsRef = useRef<TableRow[]>(enableSelectRows ? (globalSelectedRows ?? []) : []);\n const processedRowsRef = useRef<TableRow[]>([]);\n const lastSelectedIndexRef = useRef<number | null>(null);\n const lastSelectedRowRef = useRef<TableRow | null>(null);\n const selectionDragRef = useRef<SelectionDragState | null>(null);\n const onSelectRowsChangeRef = useRef(onSelectRowsChange);\n const enableSelectRowsRef = useRef(enableSelectRows);\n\n selectedIndexesRef.current = selectedIndexes;\n onSelectRowsChangeRef.current = onSelectRowsChange;\n enableSelectRowsRef.current = enableSelectRows;\n\n const rowNumberColumnId = useMemo(() => (showRowsNumbers ? `rowNumber_${uuidv4()}` : null), [showRowsNumbers]);\n\n const memoizedColumns = useMemo(() => {\n if (!rowNumberColumnId) {\n return getColumns(columns);\n }\n\n const buildRowsNumbersColumn = (template?: TableColumn): TableColumn => ({\n id: rowNumberColumnId,\n ...(!template?.columns?.length ? { accessorKey: rowNumberColumnId } : undefined),\n label: '#',\n columns: template?.columns?.map((child) => buildRowsNumbersColumn(child)),\n });\n\n const nextColumns = [buildRowsNumbersColumn(columns[0]), ...columns];\n const result = getColumns(nextColumns);\n\n return result;\n }, [columns, rowNumberColumnId]);\n\n const processedRows = useMemo(() => {\n const newRows = [...rows];\n // При переключении объета может возникнуть случай, когда у\n // новых строк не будет ранее выбранных значений из фильтра\n const nextFilterBy = filterBy.filter((filterByItem) => {\n if (filterByItem.type === 'value' && filterByItem.uniqueFirstPerValue && filterByItem.values.length === 0) {\n return true;\n }\n\n return rows.some((row) => rowMatchesFilter(row, filterByItem));\n });\n const filtered = nextFilterBy.length\n ? recursiveFilter(newRows, nextFilterBy)\n : filterBy.some(\n (fb) =>\n (fb.type === 'numberRange' && fb.values.some((v) => v !== Infinity && v !== -Infinity)) ||\n (fb.type === 'dateRange' &&\n fb.values.some((v) => !dayjs(v).isSame(dayjs(0)) && !dayjs(v).isSame(dayjs(Number.MAX_SAFE_INTEGER)))),\n )\n ? []\n : newRows;\n let sorted = sortBy.length ? recursiveSort(filtered, sortBy) : filtered;\n\n for (const fb of nextFilterBy) {\n if (fb.type === 'value' && fb.uniqueFirstPerValue) {\n sorted = dedupeFirstByColumnValue(sorted, fb.columnName);\n }\n }\n\n return sorted;\n }, [rows, sortBy, filterBy]);\n\n const memoizedData = useMemo(() => {\n const result = rowNumberColumnId\n ? processedRows.map((row, index) => ({\n ...row,\n [rowNumberColumnId]: {\n value: index + 1,\n },\n }))\n : processedRows;\n\n window.dispatchEvent(\n new CustomEvent('filteringRows', {\n detail: result,\n }),\n );\n return result;\n }, [processedRows, rowNumberColumnId]);\n\n processedRowsRef.current = processedRows;\n\n const emitSelection = useCallback((indexes: Set<number>, anchorIndex: number | null) => {\n const source = processedRowsRef.current;\n const orderedIndexes = [...indexes].filter((index) => index >= 0 && index < source.length).sort((a, b) => a - b);\n const nextIndexes = new Set(orderedIndexes);\n const nextRows = orderedIndexes.map((index) => source[index]);\n const previousIndexes = selectedIndexesRef.current;\n const sameSelection =\n nextIndexes.size === previousIndexes.size && orderedIndexes.every((index) => previousIndexes.has(index));\n\n if (!sameSelection) {\n setSelectedIndexes(nextIndexes);\n selectedIndexesRef.current = nextIndexes;\n selectedRowsRef.current = nextRows;\n onSelectRowsChangeRef.current?.(nextRows);\n }\n\n if (anchorIndex !== null && source[anchorIndex]) {\n lastSelectedIndexRef.current = anchorIndex;\n lastSelectedRowRef.current = source[anchorIndex];\n } else if (anchorIndex === null) {\n lastSelectedIndexRef.current = null;\n lastSelectedRowRef.current = null;\n }\n }, []);\n\n useEffect(() => {\n const lastSelectedRow = lastSelectedRowRef.current;\n if (lastSelectedRow) {\n const nextAnchorIndex = processedRows.indexOf(lastSelectedRow);\n lastSelectedIndexRef.current = nextAnchorIndex === -1 ? null : nextAnchorIndex;\n if (nextAnchorIndex === -1) {\n lastSelectedRowRef.current = null;\n }\n }\n\n if (selectedRowsRef.current.length === 0) {\n if (selectedIndexesRef.current.size > 0) {\n emitSelection(new Set(), lastSelectedIndexRef.current);\n }\n return;\n }\n\n const nextIndexes = getSelectedIndexesByRows(processedRows, selectedRowsRef.current);\n const fallbackAnchor = nextIndexes.size > 0 ? Math.max(...nextIndexes) : null;\n\n emitSelection(nextIndexes, lastSelectedIndexRef.current ?? fallbackAnchor);\n }, [processedRows, emitSelection]);\n\n useEffect(() => {\n if (!enableSelectRows && selectedIndexesRef.current.size > 0) {\n emitSelection(new Set(), null);\n }\n }, [enableSelectRows, emitSelection]);\n\n const partialFiltered = useMemo(() => {\n const newRows = [...rows];\n return Array.from({ length: filterBy.length + 1 }, (_, i) => recursiveFilter(newRows, filterBy.slice(0, i)));\n }, [rows, filterBy]);\n\n const columnsEstimateSize = useMemo(\n () =>\n cellWidth ??\n ((index: number) =>\n rowNumberColumnId && index === 0\n ? memoizedData.length.toString().length * 8 + 24\n : (memoizedColumns[index]?.meta?.width ?? 200)),\n [cellWidth, memoizedColumns, memoizedData, rowNumberColumnId],\n );\n\n const table = useReactTable({\n data: memoizedData,\n columns: memoizedColumns,\n defaultColumn: DefaultColumn,\n manualSorting: true,\n enableColumnPinning: true,\n getCoreRowModel: getCoreRowModel(),\n initialState: {\n columnPinning: {\n left:\n memoizedColumns\n .filter((_, index) => index < fixedWithNumbersCount)\n .map((mc) => mc.id)\n .filter((id) => id)\n .map((id) => id!) ?? [],\n },\n },\n meta: {\n updateData: (rowIndex: number, columnId: string, value: string | number | undefined, original?: TableRow) => {\n onChangeCell?.(rowIndex, columnId, value, original);\n },\n tableContainerRef,\n additionalColumnsViews,\n },\n });\n\n const { rows: rowsFromTable } = table.getRowModel();\n const headerGroups = table.getHeaderGroups();\n\n const rowVirtualizer = useVirtualizer({\n count: rowsFromTable.length,\n getScrollElement: () => tableContainerRef?.current,\n estimateSize: () => bodyRowHeight,\n overscan: 5,\n });\n\n const columnVirtualizer = useVirtualizer({\n horizontal: true,\n count: headerGroups[0]?.headers.length ?? 1,\n rangeExtractor: useCallback((range: Range) => {\n const stickyIndexes = [...Array(fixedWithNumbersCount)].map((_, index) => index);\n const next = new Set([...stickyIndexes, ...defaultRangeExtractor(range)]);\n return [...next].sort((a, b) => a - b);\n }, []),\n getScrollElement: () => tableContainerRef?.current,\n estimateSize: columnsEstimateSize,\n overscan: 5,\n });\n\n const fixedColumnsWidth = useMemo(\n () => [...Array(fixedWithNumbersCount)].reduce((sum: number, _, index) => sum + columnsEstimateSize(index), 0),\n [fixedWithNumbersCount, columnsEstimateSize],\n );\n\n const headerGroupHeight = useMemo(() => {\n const delta = headerGroups.length - headerRowHeight.length;\n const result = [...headerRowHeight];\n if (delta > 0) {\n for (let i = 0; i < delta; i++) {\n result.push(defaultRowHeight);\n }\n }\n\n return result;\n }, [headerRowHeight, headerGroups]);\n\n const summaryHeaderHeight = useMemo(\n () =>\n headerGroupHeight.reduce(\n (sum, current, currentIndex) => (currentIndex < headerGroups.length ? sum + current : sum),\n 0,\n ),\n [headerGroupHeight, headerGroups],\n );\n\n const headerGroupY = useCallback(\n (headerIndex: number) =>\n headerGroupHeight.reduce((sum, current, currentIndex) => (currentIndex < headerIndex ? sum + current : sum), 0),\n [headerGroupHeight, headerGroups],\n );\n\n const rowsTotalSize = rowVirtualizer.getTotalSize();\n const columnsTotalSize = columnVirtualizer.getTotalSize();\n\n const resetFilters = () => {\n setFilterBy([]);\n };\n\n const resetSorts = () => {\n setSortBy([{ columnName: 'isNew', direction: 'desc' }]);\n };\n\n useImperativeHandle(ref, () => ({\n resetFilters,\n resetSorts,\n }));\n\n useEffect(() => {\n if (tableContainerRef?.current) {\n const container = tableContainerRef?.current;\n const rightBorderElement = container.querySelector(`.${styles.rightBorder}`);\n if (rightBorderElement) {\n const containerWidth = container.clientWidth;\n const tableWidth = columnsTotalSize + (!!rowButtons ? rowActionWidth : 0);\n (rightBorderElement as HTMLElement).style.left =\n `${containerWidth > tableWidth ? tableWidth : containerWidth}px`;\n }\n }\n }, [tableContainerRef?.current?.clientWidth, columnsTotalSize, rowButtons, rowActionWidth]);\n\n useEffect(() => {\n if (tableContainerRef?.current) {\n const container = tableContainerRef?.current;\n const bottomBorderElement = container.querySelector(`.${styles.bottomBorder}`);\n if (bottomBorderElement) {\n const containerHeight = container.clientHeight;\n const tableHeight = rowsTotalSize + summaryHeaderHeight;\n (bottomBorderElement as HTMLElement).style.top =\n `${containerHeight > tableHeight ? tableHeight : containerHeight}px`;\n }\n }\n }, [tableContainerRef?.current?.clientHeight, rowsTotalSize]);\n\n useEffect(() => {\n const scrollListener = function (this: HTMLDivElement) {\n const marginLeftChangingElements = this.querySelectorAll(`.${styles.marginLeftChanging}`);\n marginLeftChangingElements?.forEach(\n (element) => ((element as HTMLElement).style.marginLeft = `${this.scrollLeft}px`),\n );\n };\n\n if (tableContainerRef?.current) {\n tableContainerRef.current.addEventListener('scroll', scrollListener);\n if (scrollToBottom) {\n tableContainerRef.current.scrollTo(0, tableContainerRef.current.scrollHeight);\n }\n }\n\n return () => {\n if (tableContainerRef?.current) {\n tableContainerRef.current.removeEventListener('scroll', scrollListener);\n }\n };\n }, [tableContainerRef, scrollToBottom]);\n\n const virtualRows = rowVirtualizer.getVirtualItems();\n const virtualColumns = columnVirtualizer.getVirtualItems();\n const lastVirtualColumnIndex = virtualColumns[virtualColumns.length - 1]?.index;\n const virtualRowsSizeByIndex = useMemo(\n () => new Map(virtualRows.map((item) => [item.index, item.size])),\n [virtualRows],\n );\n\n const getRowSizeByIndex = useCallback(\n (index: number) => virtualRowsSizeByIndex.get(index) ?? bodyRowHeight,\n [bodyRowHeight, virtualRowsSizeByIndex],\n );\n\n const getRowspanHeight = useCallback(\n (rowIndex: number, rowspan: number) => {\n const clampedRowspan = Math.max(1, Math.floor(rowspan));\n const lastRowIndex = Math.min(rowsFromTable.length - 1, rowIndex + clampedRowspan - 1);\n const rowsInRange = lastRowIndex - rowIndex + 1;\n\n let result = 0;\n\n for (let index = rowIndex; index <= lastRowIndex; index += 1) {\n result += getRowSizeByIndex(index);\n }\n\n const bordersCompensation = borders === 'all' || borders === 'horizontal' ? Math.max(0, rowsInRange - 1) : 0;\n\n return Math.max(0, result - bordersCompensation);\n },\n [borders, getRowSizeByIndex, rowsFromTable.length],\n );\n\n const isCellCoveredByRowspan = useCallback(\n (rowIndex: number, columnId: string) => {\n for (let index = rowIndex - 1; index >= 0; index -= 1) {\n const upperCell = rowsFromTable[index]?.original?.[columnId] as TableCell | undefined;\n const upperRowspan = Math.max(1, upperCell?.rowspan ?? 1);\n\n if (index + upperRowspan - 1 >= rowIndex) {\n return true;\n }\n }\n\n return false;\n },\n [rowsFromTable],\n );\n\n const getRowIndexFromTarget = (target: EventTarget | null): number | null => {\n if (!(target instanceof Element)) {\n return null;\n }\n\n const rowElement = target.closest(`.${styles.tr}`);\n if (!rowElement) {\n return null;\n }\n\n const index = Number(rowElement.getAttribute('data-index'));\n return Number.isFinite(index) ? index : null;\n };\n\n const getRowIndexFromClientY = useCallback(\n (clientY: number): number | null => {\n const container = tableContainerRef.current;\n const rowsCount = processedRowsRef.current.length;\n if (!container || rowsCount === 0) {\n return null;\n }\n\n const rect = container.getBoundingClientRect();\n const offset = clientY - rect.top + container.scrollTop - summaryHeaderHeight;\n\n if (offset < 0) {\n return 0;\n }\n\n const totalSize = rowVirtualizer.getTotalSize();\n if (offset >= totalSize) {\n return rowsCount - 1;\n }\n\n const measurements = rowVirtualizer.measurementsCache;\n if (measurements.length > 0) {\n let low = 0;\n let high = measurements.length - 1;\n\n while (low <= high) {\n const mid = (low + high) >> 1;\n const item = measurements[mid];\n\n if (offset < item.start) {\n high = mid - 1;\n } else if (offset >= item.end) {\n low = mid + 1;\n } else {\n return Math.min(rowsCount - 1, item.index);\n }\n }\n }\n\n if (!dynamicRowHeight) {\n return Math.max(0, Math.min(rowsCount - 1, Math.floor(offset / bodyRowHeight)));\n }\n\n const virtualItems = rowVirtualizer.getVirtualItems();\n if (virtualItems.length === 0) {\n return 0;\n }\n\n if (offset < virtualItems[0].start) {\n return virtualItems[0].index;\n }\n\n return virtualItems[virtualItems.length - 1].index;\n },\n [bodyRowHeight, dynamicRowHeight, rowVirtualizer, summaryHeaderHeight],\n );\n\n const scrollContainerWhileSelecting = (clientY: number) => {\n const container = tableContainerRef.current;\n if (!container) {\n return;\n }\n\n const rect = container.getBoundingClientRect();\n const visibleY = clientY - rect.top;\n\n if (visibleY < rowSelectionScrollEdgePx + summaryHeaderHeight) {\n container.scrollTop -= rowSelectionScrollStepPx;\n } else if (visibleY > rect.height - rowSelectionScrollEdgePx) {\n container.scrollTop += rowSelectionScrollStepPx;\n }\n };\n\n const applySelectionGesture = (currentIndex: number, isDrag: boolean) => {\n const drag = selectionDragRef.current;\n if (!drag) {\n return;\n }\n\n const result = computeRowSelection({\n startIndex: drag.startIndex,\n currentIndex,\n ctrl: drag.ctrl,\n shift: drag.shift,\n anchorIndex: drag.anchorIndex,\n baseIndexes: drag.baseIndexes,\n isDrag,\n });\n\n emitSelection(result.indexes, result.anchor);\n };\n\n const handleTablePointerDown = (event: ReactPointerEvent<HTMLDivElement>) => {\n if (!enableSelectRowsRef.current || event.button !== 0) {\n return;\n }\n\n const rowIndex = getRowIndexFromTarget(event.target);\n if (rowIndex === null) {\n if (\n isInteractiveSelectionTarget(event.target) ||\n isScrollbarPointerEvent(event) ||\n (event.target instanceof Element && Boolean(event.target.closest(`.${styles.th}`)))\n ) {\n return;\n }\n\n if (selectedIndexesRef.current.size > 0) {\n emitSelection(new Set(), null);\n }\n\n return;\n }\n\n if (isInteractiveSelectionTarget(event.target)) {\n return;\n }\n\n const isCellActionTarget =\n event.target instanceof Element && event.target.closest('[data-vt-cell-action]') !== null;\n const isModifierClick = event.ctrlKey || event.metaKey || event.shiftKey;\n\n if (isCellActionTarget && !isModifierClick) {\n return;\n }\n\n const isDragCapable = event.pointerType === 'mouse' || event.pointerType === 'pen';\n\n selectionDragRef.current = {\n pointerId: event.pointerId,\n startIndex: rowIndex,\n startX: event.clientX,\n startY: event.clientY,\n baseIndexes: new Set(selectedIndexesRef.current),\n ctrl: event.ctrlKey || event.metaKey,\n shift: event.shiftKey,\n anchorIndex: lastSelectedIndexRef.current,\n isDragCapable: isDragCapable && !isCellActionTarget,\n hasDragged: false,\n };\n\n if (isCellActionTarget) {\n applySelectionGesture(rowIndex, false);\n return;\n }\n\n if (isDragCapable) {\n event.currentTarget.setPointerCapture(event.pointerId);\n applySelectionGesture(rowIndex, false);\n }\n };\n\n const handleTablePointerMove = (event: ReactPointerEvent<HTMLDivElement>) => {\n const drag = selectionDragRef.current;\n if (!drag || !drag.isDragCapable || event.pointerId !== drag.pointerId) {\n return;\n }\n\n const deltaX = event.clientX - drag.startX;\n const deltaY = event.clientY - drag.startY;\n const distanceSquared = deltaX * deltaX + deltaY * deltaY;\n if (!drag.hasDragged && distanceSquared < rowSelectionDragThresholdPx * rowSelectionDragThresholdPx) {\n return;\n }\n\n drag.hasDragged = true;\n event.preventDefault();\n scrollContainerWhileSelecting(event.clientY);\n\n const currentIndex = getRowIndexFromClientY(event.clientY);\n if (currentIndex === null) {\n return;\n }\n\n applySelectionGesture(currentIndex, true);\n };\n\n const clearSelectionDrag = (event: ReactPointerEvent<HTMLDivElement>) => {\n const drag = selectionDragRef.current;\n if (!drag || event.pointerId !== drag.pointerId) {\n return;\n }\n\n if (!drag.isDragCapable && !drag.hasDragged) {\n applySelectionGesture(drag.startIndex, false);\n }\n\n selectionDragRef.current = null;\n\n if (event.currentTarget.hasPointerCapture(event.pointerId)) {\n event.currentTarget.releasePointerCapture(event.pointerId);\n }\n };\n\n const getRowBackgroundColor = useCallback(\n (row: TableRow, rowIndex: number) => {\n if (row?.isNew?.value === 1 || selectedIndexes.has(rowIndex)) {\n return 'var(--theme-table-selected-row)';\n }\n\n return rowIndex % 2 !== 0 ? 'var(--theme-table-even-row)' : 'var(--theme-table-background)';\n },\n [selectedIndexes],\n );\n const rowZIndexByIndex = useMemo(() => {\n const rowsCount = rowsFromTable.length;\n const result = new Map<number, number>();\n\n rowsFromTable.forEach((row, rowIndex) => {\n const maxRowspan = row\n .getAllCells()\n .reduce(\n (maxSpan, cell) =>\n Math.max(maxSpan, Math.max(1, (row.original?.[cell.column.id] as TableCell | undefined)?.rowspan ?? 1)),\n 1,\n );\n\n const spanWeight = maxRowspan - 1;\n const zIndex = spanWeight * (rowsCount + 1) + (rowsCount - rowIndex + 1);\n\n result.set(rowIndex, zIndex);\n });\n\n return result;\n }, [rowsFromTable]);\n const headerBaseZIndex = useMemo(\n () => rowsFromTable.length * rowsFromTable.length + rowsFromTable.length + 10,\n [rowsFromTable.length],\n );\n\n const renderHeaderNode = (header: Header<TableRow, unknown>) => {\n const metaLabel = (header.column.columnDef.meta as { label?: string } | undefined)?.label;\n\n if (typeof metaLabel === 'string') {\n const headerLines = metaLabel.split(/\\r\\n|\\\\r\\\\n|\\n|\\\\n/);\n\n if (headerLines.length > 1) {\n return (\n <>\n {headerLines.map((line, index) => (\n <Fragment key={`${header.id}_${index}`}>\n {line}\n {index < headerLines.length - 1 && <br />}\n </Fragment>\n ))}\n </>\n );\n }\n }\n\n return flexRender(header.column.columnDef.header, header.getContext());\n };\n\n const [before, after] =\n virtualColumns.length > 0\n ? [\n fixedWithNumbersCount && virtualColumns[fixedWithNumbersCount].index !== fixedWithNumbersCount\n ? virtualColumns[fixedWithNumbersCount].start - fixedColumnsWidth\n : virtualColumns[0].start,\n columnsTotalSize - virtualColumns[virtualColumns.length - 1].end,\n ]\n : [0, 0];\n\n useEffect(() => {\n onFiltersChange?.(filterBy);\n }, [filterBy]);\n\n useEffect(() => {\n onSortsChange?.(sortBy.filter((sb) => sb.columnName !== 'isNew'));\n }, [sortBy]);\n\n return (\n <div\n className={classnames(\n styles.root,\n styles[componentSize as keyof typeof styles],\n styles[`borders${toFirstLetterUpperCase(borders)}` as keyof typeof styles],\n classes?.root,\n )}\n style={height ? { height } : undefined}\n >\n <div\n ref={tableContainerRef}\n className={classnames(styles.tableContainer, 'styledScroll', enableSelectRows && styles.selectRows)}\n onPointerDown={enableSelectRows ? handleTablePointerDown : undefined}\n onPointerMove={enableSelectRows ? handleTablePointerMove : undefined}\n onPointerUp={enableSelectRows ? clearSelectionDrag : undefined}\n onPointerCancel={enableSelectRows ? clearSelectionDrag : undefined}\n onDragStart={enableSelectRows ? (event) => event.preventDefault() : undefined}\n >\n <div\n className={styles.table}\n style={{\n height: `${rowsTotalSize + summaryHeaderHeight}px`,\n }}\n >\n <div\n style={{\n position: 'sticky',\n top: 0,\n zIndex: headerBaseZIndex,\n }}\n >\n {headerGroups.map((headerGroup, hgi) => {\n const innerCell = (header: Header<TableRow, unknown>) => {\n const headerMeta = header.column.columnDef.meta;\n const headerResultName =\n (headerMeta as { sortAnotherName?: string } | undefined)?.sortAnotherName ??\n header.column.columnDef.id ??\n header.id;\n const columnFilterIndex = filterBy.findIndex((fb) => fb.columnName === headerResultName);\n const rowsForChecklist = columnFilterIndex === -1 ? memoizedData : partialFiltered[columnFilterIndex];\n\n return (\n <div className={classnames(styles.thCell)}>\n {header.column.columnDef.id ===\n header.column.columnDef['accessorKey' as keyof typeof header.column.columnDef] &&\n header.column.columnDef.id !== rowNumberColumnId &&\n (headerMeta?.sortable ||\n headerMeta?.selectUnique ||\n headerMeta?.filtrationByValue ||\n headerMeta?.filtrationByDate ||\n headerMeta?.filtrationByNumber ||\n (headerMeta && showUniqueValuesCount)) ? (\n <HeaderDropdown\n headerMeta={headerMeta}\n sortBy={sortBy}\n setSortBy={setSortBy}\n filterBy={filterBy}\n setFilterBy={setFilterBy}\n rows={rowsForChecklist}\n rowsForUniqueCount={memoizedData}\n headerName={header.column.columnDef.id ?? header.id}\n containerRef={useTableContainerAsRootForPopup ? tableContainerRef : undefined}\n showUniqueValuesCount={showUniqueValuesCount}\n leftAdditionalContent={leftAdditionalHeaderContent}\n rightAdditionalContent={rightAdditionalHeaderContent}\n children={(afterNode) => (\n <div\n className={classnames(\n styles.label,\n !!headerMeta?.headerAlign\n ? styles[`align${headerMeta?.headerAlign}` as keyof typeof styles]\n : styles.alignLeft,\n )}\n >\n {renderHeaderNode(header)}\n {afterNode}\n </div>\n )}\n ></HeaderDropdown>\n ) : (\n <div\n className={classnames(\n styles.label,\n !!headerMeta?.headerAlign\n ? styles[`align${headerMeta?.headerAlign}` as keyof typeof styles]\n : styles.alignLeft,\n )}\n >\n {renderHeaderNode(header)}\n </div>\n )}\n </div>\n );\n };\n\n return (\n <Fragment key={headerGroup.id}>\n {[...Array(fixedWithNumbersCount)].map((_a, index) => {\n const header = headerGroup.headers[index];\n\n const nextHorizontalHeaders = getNextHorizontalHeaders(\n headerGroup.headers,\n index,\n lastVirtualColumnIndex,\n );\n const nextVerticalHeaders = getNextVerticalHeaders(headerGroups, hgi, index);\n\n return (\n <div\n key={`${headerGroup.id}-${header.id}`}\n className={classnames(\n styles.th,\n hgi === 0 ? styles.firstThRow : undefined,\n !nextVerticalHeaders.length &&\n index !== headerGroup.headers.length - 1 &&\n styles.thRightBorder,\n index === 0 && styles.thLeftBorder,\n nextVerticalHeaders.length && !nextHorizontalHeaders.length && styles.thHiddenColumn,\n styles.marginLeftChanging,\n )}\n style={{\n zIndex: headerBaseZIndex + 1,\n width: `${columnsEstimateSize(index)}px`,\n height: `${headerGroupHeight[hgi]}px`,\n transform:\n `translateX(` +\n `${Array.from({ length: index }, (_, i) => columnsEstimateSize(i)).reduce(\n (sum, w) => sum + w,\n 0,\n )}px` +\n `) ` +\n `translateY(${headerGroupY(hgi)}px)`,\n }}\n >\n {innerCell(header)}\n </div>\n );\n })}\n\n {virtualColumns.map((column) => {\n if (column.index > fixedWithNumbersCount - 1) {\n const header = headerGroup.headers[column.index];\n const nextHorizontalHeaders = getNextHorizontalHeaders(\n headerGroup.headers,\n column.index,\n lastVirtualColumnIndex,\n );\n const prevHorizontalHeaders = getPrevHorizontalHeaders(headerGroup.headers, column.index);\n const nextVerticalHeaders = getNextVerticalHeaders(headerGroups, hgi, column.index);\n const prevVerticalHeaders = getPrevVerticalHeaders(headerGroups, hgi, column.index);\n\n const thWidth =\n !nextHorizontalHeaders.length && !prevHorizontalHeaders.length\n ? column.size\n : column.size +\n nextHorizontalHeaders.reduce(\n (sum, current) => sum + (current.column.columnDef.meta?.width ?? 0),\n 0,\n );\n const zIndex =\n !nextHorizontalHeaders.length && !prevHorizontalHeaders.length\n ? undefined\n : headerBaseZIndex + nextHorizontalHeaders.length + 2;\n const thHeight = !prevVerticalHeaders.length\n ? headerGroupHeight[hgi]\n : headerGroupHeight[hgi] +\n prevVerticalHeaders.reduce(\n (sum, _, index) => sum + (headerGroupHeight[hgi - index - 1] ?? 0),\n 0,\n );\n const translateY = !prevVerticalHeaders.length\n ? headerGroupY(hgi)\n : headerGroupY(hgi) -\n prevVerticalHeaders.reduce(\n (sum, _, index) => sum + (headerGroupHeight[hgi - index - 1] ?? 0),\n 0,\n );\n\n return (\n <div\n key={`${headerGroup.id}-${header.id}`}\n className={classnames(\n styles.th,\n hgi === 0 && styles.firstThRow,\n !nextVerticalHeaders.length &&\n column.index !== headerGroup.headers.length - 1 &&\n styles.thRightBorder,\n column.index === 0 && styles.thLeftBorder,\n nextVerticalHeaders.length && !nextHorizontalHeaders.length && styles.thHiddenColumn,\n )}\n style={{\n width: `${thWidth}px`,\n zIndex,\n height: `${thHeight}px`,\n transform:\n `translateX(${column.start + (!!fixedWithNumbersCount ? -1 : 0)}px)` +\n ` translateY(${translateY}px)`,\n borderTop:\n borders !== 'none' && translateY === 0 ? '1px solid var(--border-color)' : undefined,\n }}\n >\n {innerCell(header)}\n </div>\n );\n }\n return null;\n })}\n\n {!!rowButtons && (\n <div\n className={classnames(styles.th, hgi === 0 ? styles.firstThRow : undefined)}\n style={{\n width: `${rowActionWidth}px`,\n height: `${headerGroupHeight[hgi]}px`,\n transform:\n `translateX(${columnsTotalSize + (!!fixedWithNumbersCount ? -2 : 0)}px)` +\n ` translateY(${headerGroupY(hgi)}px)`,\n }}\n ></div>\n )}\n </Fragment>\n );\n })}\n </div>\n\n {virtualRows.map((virtualRow) => {\n const row = rowsFromTable[virtualRow.index];\n\n return (\n <div\n key={`row-${virtualRow.key}`}\n data-index={virtualRow.index}\n ref={dynamicRowHeight ? rowVirtualizer.measureElement : undefined}\n className={classnames(\n styles.tr,\n stripedRows && virtualRow.index % 2 !== 0 && styles.evenRow,\n (row.original?.isNew?.value === 1 || selectedIndexes.has(virtualRow.index)) && styles.selected,\n )}\n style={{\n zIndex: rowZIndexByIndex.get(virtualRow.index) ?? 1,\n ...(!dynamicRowHeight && {\n height: virtualRow.size,\n }),\n transform:\n `translateY(` +\n `${summaryHeaderHeight + virtualRow.start - rowVirtualizer.options.scrollMargin}` +\n `px)`,\n }}\n >\n <div style={{ width: `${before}px` }} />\n\n {virtualColumns.map((virtualCol) => {\n const cell = row.getAllCells()[virtualCol.index];\n const isSticky = cell.column.getIsPinned() === 'left';\n const currentCell = row.original?.[cell.column.id] as TableCell | undefined;\n const rowspan = Math.max(1, currentCell?.rowspan ?? 1);\n const isCoveredByRowspan = isCellCoveredByRowspan(virtualRow.index, cell.column.id);\n const hasRowspan = rowspan > 1 && !isCoveredByRowspan;\n\n return (\n <div\n key={`cell-${virtualRow.key}-${virtualCol.key}`}\n data-col-index={virtualCol.index}\n className={classnames(styles.td, isSticky && styles.sticky)}\n style={{\n ...(isSticky && {\n left: virtualCol.start,\n marginLeft: virtualCol.index === 0 ? -1 : 0, // чтобы появился левый бордер\n }),\n width: `${virtualCol.size}px`,\n ...(!dynamicRowHeight &&\n !hasRowspan && {\n overflow: 'hidden',\n }),\n }}\n data-index={virtualRow.index}\n >\n {!isCoveredByRowspan &&\n (hasRowspan ? (\n <div\n className={styles.rowspanContent}\n style={{\n height: `${getRowspanHeight(virtualRow.index, rowspan)}px`,\n backgroundColor: getRowBackgroundColor(row.original, virtualRow.index),\n }}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </div>\n ) : (\n flexRender(cell.column.columnDef.cell, cell.getContext())\n ))}\n </div>\n );\n })}\n\n {!!rowButtons && (\n <div\n className={classnames(styles.td)}\n style={{\n width: `${rowActionWidth}px`,\n justifyContent: 'flex-start',\n padding: '4px',\n ...(!dynamicRowHeight && {\n overflow: 'hidden',\n }),\n }}\n >\n {rowButtons?.(row.original)?.map((ab) => (\n <Fragment key={ab.title}>\n {ab.template ? (\n ab.template(ab)\n ) : (\n <Tooltip\n label={ab.title}\n placement=\"top\"\n wrapTrigger\n classes={{ trigger: styles.rowButtonTrigger }}\n >\n <Button\n onClick={() => ab.onClick?.(virtualRow.index, row.original)}\n componentSize=\"small\"\n variant=\"text\"\n icon={ab.icon}\n ></Button>\n </Tooltip>\n )}\n </Fragment>\n ))}\n </div>\n )}\n\n <div style={{ width: `${after}px` }} />\n </div>\n );\n })}\n </div>\n {borders !== 'none' && (\n <>\n <div className={styles.rightBorder} style={{ height: `${rowsTotalSize + summaryHeaderHeight}px` }} />\n <div className={styles.bottomBorder} style={{ width: `${columnsTotalSize}px` }} />\n </>\n )}\n </div>\n </div>\n );\n});\n","export const toFirstLetterUpperCase = (name: string) => {\n return name[0].toUpperCase() + name.substring(1);\n};\n","// extracted by mini-css-extract-plugin\nvar _1 = \"treeView-module__search__dvz4l\";\nexport { _1 as \"search\" }\n","// extracted by mini-css-extract-plugin\nvar _1 = \"treeViewItem-module__children__zgXjR\";\nvar _2 = \"treeViewItem-module__item__x24lD\";\nvar _3 = \"treeViewItem-module__select-icon__Psa6v\";\nvar _4 = \"treeViewItem-module__selectable__ZflaR\";\nvar _5 = \"treeViewItem-module__selected__JQfHF\";\nvar _6 = \"treeViewItem-module__title__LS87U\";\nexport { _1 as \"children\", _2 as \"item\", _3 as \"selectIcon\", _4 as \"selectable\", _5 as \"selected\", _6 as \"title\" }\n","import classNames from 'classnames';\nimport { JSX, memo, useEffect, useState } from 'react';\n\nimport { AddIcon, ChevronDownIcon, DoneIcon } from '@icons/index';\n\nimport * as styles from './treeViewItem.module.css';\nimport { Typography } from '../../../Typography';\nimport { Item } from '../../models/Item';\n\ninterface Props {\n title: string;\n value: string;\n searchValue: string;\n selected: Record<string, boolean>;\n onSelect?: (id: string) => void;\n type?: string;\n isSelectable?: boolean;\n startIcons?: Record<string, JSX.Element>;\n children?: Item[];\n}\n\nexport default memo(function TreeViewItem({\n title,\n value,\n searchValue,\n selected,\n onSelect,\n type,\n isSelectable,\n startIcons,\n children,\n}: Props) {\n const [isOpen, setIsOpen] = useState(false);\n\n useEffect(() => {\n setIsOpen(!!searchValue);\n }, [searchValue]);\n\n const hasChildren = !!children?.length;\n\n const startIcon = type && startIcons?.[type];\n\n const handleClick = () => {\n if (isSelectable && onSelect) {\n onSelect(value);\n } else {\n setIsOpen(!isOpen);\n }\n };\n\n const isSelected = selected[value];\n\n return (\n <div>\n <div className={classNames(styles.item, { [styles.selectable]: isSelectable })} onClick={handleClick}>\n {hasChildren && <ChevronDownIcon />}\n <div className={classNames(styles.title, { [styles.selected]: isSelected })}>\n {startIcon}\n <Typography variant=\"subtitle2\">{title}</Typography>\n\n {isSelectable && <span className={styles.selectIcon}>{isSelected ? <DoneIcon /> : <AddIcon />}</span>}\n </div>\n </div>\n {isOpen && hasChildren && (\n <div className={styles.children}>\n {children.map((c) => (\n <TreeViewItem\n key={c.id}\n title={c.name}\n value={c.id}\n children={c.children}\n selected={selected}\n searchValue={searchValue}\n type={c.type}\n isSelectable={c.isSelectable}\n startIcons={startIcons}\n onSelect={onSelect}\n />\n ))}\n </div>\n )}\n </div>\n );\n});\n","import { Item } from '../models/Item';\n\nexport const getFilteredTree = (tree: Item[], search: string) => {\n const lowerCasedSearch = search.toLowerCase();\n\n const getChildren = (acc: Item[], cur: Item) => {\n if (cur.name.toLowerCase().includes(lowerCasedSearch)) {\n acc.push(cur);\n\n return acc;\n }\n\n if (Array.isArray(cur.children)) {\n const children = cur.children.reduce(getChildren, []);\n\n if (children.length) acc.push({ ...cur, children });\n }\n\n return acc;\n };\n\n return tree.reduce(getChildren, []);\n};\n","import { ChangeEvent, HTMLAttributes, JSX, forwardRef, memo, useCallback, useMemo, useState } from 'react';\n\nimport { Input } from '@components/inputs/Input';\nimport { SearchIcon } from '@icons/SearchIcon';\n\nimport { Item } from './models/Item';\nimport * as styles from './treeView.module.css';\nimport { TreeViewItem } from './ui/TreeViewItem';\nimport { getFilteredTree } from './utils/getFilteredTree';\n\ninterface Props {\n data: Item[];\n selected: string[];\n startIcons?: Record<string, JSX.Element>;\n withSearch?: boolean;\n onSelect?: (id: string) => void;\n}\n\nconst TreeView = forwardRef<HTMLDivElement, Props & HTMLAttributes<HTMLDivElement>>(function TreeView(\n { data, selected, startIcons, onSelect, withSearch = false, className, ...rest },\n ref,\n) {\n const [searchValue, setSearchValue] = useState('');\n\n const onChangeSearchValue = useCallback((e: ChangeEvent<HTMLInputElement>) => setSearchValue(e.target.value), []);\n\n const selectedValues = useMemo(\n () =>\n selected.reduce(\n (acc, cur) => {\n acc[cur] = true;\n\n return acc;\n },\n {} as Record<string, boolean>,\n ),\n [selected],\n );\n\n const filteredData = useMemo(() => {\n return getFilteredTree(data, searchValue);\n }, [data, searchValue]);\n\n return (\n <div ref={ref} className={className} {...rest}>\n {withSearch && (\n <Input\n variant=\"outlined\"\n startIcon={<SearchIcon />}\n value={searchValue}\n fullWidth\n onChange={onChangeSearchValue}\n classes={{ root: styles.search }}\n />\n )}\n <div className=\"styledScroll\">\n {filteredData.map(({ id, name, children }) => {\n return (\n <TreeViewItem\n key={id}\n title={name}\n value={id}\n searchValue={searchValue}\n children={children}\n startIcons={startIcons}\n onSelect={onSelect}\n selected={selectedValues}\n />\n );\n })}\n </div>\n </div>\n );\n});\n\nexport default memo(TreeView);\n","// extracted by mini-css-extract-plugin\nvar _1 = \"pairs-module__dim-typography__WR4xl\";\nvar _2 = \"pairs-module__labels-container__Sr8b_\";\nvar _3 = \"pairs-module__labels-with-borders__R7DHF\";\nvar _4 = \"pairs-module__row-container-borders__aZqF4\";\nvar _5 = \"pairs-module__trimmed-typography__A735h\";\nvar _6 = \"pairs-module__values-container__jB2cJ\";\nvar _7 = \"pairs-module__values-with-borders__IoG1U\";\nexport { _1 as \"dimTypography\", _2 as \"labelsContainer\", _3 as \"labelsWithBorders\", _4 as \"rowContainerBorders\", _5 as \"trimmedTypography\", _6 as \"valuesContainer\", _7 as \"valuesWithBorders\" }\n","import { useState } from 'react';\n\nimport { Tooltip } from '@components/data-display/Tooltip';\nimport { Typography } from '@components/data-display/Typography';\n\ninterface Props {\n label: string | number;\n}\n\nexport function TypographyWithTooltip(props: Props) {\n const { label } = props;\n\n const [tooltip, setTooltip] = useState(label);\n\n return (\n <Tooltip label={tooltip}>\n <Typography\n style={{\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n }}\n onMouseEnter={(e: React.MouseEvent) => {\n setTooltip(e.currentTarget.scrollWidth > e.currentTarget.clientWidth ? label : '');\n }}\n >\n {label}\n </Typography>\n </Tooltip>\n );\n}\n","import classNames from 'classnames';\nimport { HTMLAttributes, forwardRef } from 'react';\n\nimport { UiProps } from '@models/UiProps';\n\nimport { Typography } from '../Typography';\nimport { Pair } from './models/Pair';\nimport * as styles from './pairs.module.css';\nimport { TypographyWithTooltip } from './ui/TypographyWithTooltip';\n\ninterface Props {\n pairs: Pair[];\n column1Width?: string;\n column2Width?: string;\n showBorder?: boolean;\n minRowHeight?: string;\n}\n\nexport const Pairs = forwardRef<HTMLDivElement, UiProps<Props> & HTMLAttributes<HTMLDivElement>>(function Pairs(\n { pairs, column1Width = '50%', column2Width = '50%', showBorder, minRowHeight, classes, className, style, ...rest },\n ref,\n) {\n return (\n <div ref={ref} className={classNames(className, classes?.root)} style={style} {...rest}>\n {pairs.map((pair, i) => (\n <div\n key={i}\n style={{ minHeight: minRowHeight, display: 'flex' }}\n className={classNames(classes?.rowContainer, {\n [styles.rowContainerBorders]: showBorder,\n })}\n >\n {pair && (\n <>\n <div\n className={classNames(styles.labelsContainer, classes?.labelsContainer, {\n [styles.labelsWithBorders]: showBorder,\n })}\n style={{\n width: column1Width,\n minWidth: column1Width,\n }}\n >\n <Typography className={styles.dimTypography}>{pair.label}</Typography>\n </div>\n <div\n style={{\n width: column2Width,\n minWidth: column2Width,\n }}\n className={classNames(styles.valuesContainer, classes?.valuesContainer, {\n [styles.valuesWithBorders]: showBorder,\n })}\n >\n <TypographyWithTooltip label={pair.value} />\n </div>\n </>\n )}\n </div>\n ))}\n </div>\n );\n});\n","// extracted by mini-css-extract-plugin\nvar _1 = \"chip-module__clickable__TUTgS\";\nvar _2 = \"chip-module__filled__EHPO6\";\nvar _3 = \"chip-module__icon__lCVDX\";\nvar _4 = \"chip-module__icon-clickable__pVkQ_\";\nvar _5 = \"chip-module__icon-left__ErNwI\";\nvar _6 = \"chip-module__icon-right__CrocA\";\nvar _7 = \"chip-module__icon-right-slot__wpFIw\";\nvar _8 = \"chip-module__label__zdrBP\";\nvar _9 = \"chip-module__medium__UhEci\";\nvar _a = \"chip-module__outlined__r71l2\";\nvar _b = \"chip-module__root__PRr_w\";\nvar _c = \"chip-module__secondary__A_nQw\";\nvar _d = \"chip-module__small__dtqpK\";\nvar _e = \"chip-module__with-icon__wzJU8\";\nexport { _1 as \"clickable\", _2 as \"filled\", _3 as \"icon\", _4 as \"iconClickable\", _5 as \"iconLeft\", _6 as \"iconRight\", _7 as \"iconRightSlot\", _8 as \"label\", _9 as \"medium\", _a as \"outlined\", _b as \"root\", _c as \"secondary\", _d as \"small\", _e as \"withIcon\" }\n","import classnames from 'classnames';\nimport { HTMLAttributes, PropsWithChildren, ReactNode, forwardRef } from 'react';\n\nimport { ChipSize } from '@models/ChipSize';\nimport { ChipVariant } from '@models/ChipVariant';\nimport { UiProps } from '@models/UiProps';\n\nimport * as styles from './chip.module.css';\n\nexport interface Props {\n variant?: ChipVariant;\n componentSize?: ChipSize;\n icon?: ReactNode;\n iconPlacement?: 'left' | 'right';\n secondary?: boolean;\n onClick?: () => void;\n onIconClick?: () => void;\n}\n\nexport const Chip = forwardRef<\n HTMLDivElement,\n PropsWithChildren<UiProps<Props>> & Omit<HTMLAttributes<HTMLDivElement>, 'onClick'>\n>(function Chip(\n {\n variant = 'filled',\n componentSize = 'medium',\n icon,\n iconPlacement = 'right',\n secondary,\n onClick,\n onIconClick,\n children,\n classes,\n className,\n ...rest\n },\n ref,\n) {\n const handleIconClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n onIconClick?.();\n };\n\n const IconComponent = onIconClick ? 'button' : 'span';\n const isIconLeft = !!icon && iconPlacement === 'left';\n const isIconRight = !!icon && iconPlacement === 'right';\n\n return (\n <div\n ref={ref}\n className={classnames(\n styles.root,\n styles[variant as keyof typeof styles],\n styles[componentSize as keyof typeof styles],\n !!icon && styles.withIcon,\n isIconLeft && styles.iconLeft,\n isIconRight && styles.iconRight,\n secondary && styles.secondary,\n onClick && styles.clickable,\n className,\n classes?.root,\n )}\n tabIndex={onClick ? 0 : undefined}\n role={onClick ? 'button' : undefined}\n {...rest}\n onClick={onClick}\n >\n {isIconLeft && (\n <IconComponent\n className={classnames(styles.icon, onIconClick && styles.iconClickable, classes?.icon)}\n onClick={onIconClick ? handleIconClick : undefined}\n aria-label={onIconClick ? 'Удалить' : undefined}\n >\n {icon}\n </IconComponent>\n )}\n {children && <span className={classnames(styles.label, classes?.label)}>{children}</span>}\n {isIconRight && (\n <IconComponent\n className={classnames(styles.icon, styles.iconRightSlot, onIconClick && styles.iconClickable, classes?.icon)}\n onClick={onIconClick ? handleIconClick : undefined}\n aria-label={onIconClick ? 'Удалить' : undefined}\n >\n {icon}\n </IconComponent>\n )}\n </div>\n );\n});\n","import classnames from 'classnames';\nimport { ImgHTMLAttributes, forwardRef } from 'react';\n\nimport { UiProps } from '@models/UiProps';\n\nimport loader from './loader.gif';\nimport * as styles from './loader.module.css';\n\nexport interface Props {\n width?: number;\n height?: number;\n}\n\nexport const Loader = forwardRef<\n HTMLImageElement,\n UiProps<Props> & Omit<ImgHTMLAttributes<HTMLImageElement>, 'src' | 'width' | 'height'>\n>(function Loader({ width = 60, height = width * 1.5, className, classes, alt = 'loading', ...rest }, ref) {\n return (\n <img\n ref={ref}\n src={loader}\n alt={alt}\n width={width}\n height={height}\n className={classnames(styles.root, className, classes?.root)}\n {...rest}\n />\n );\n});\n","// extracted by mini-css-extract-plugin\nvar _1 = \"loader-module__root__RU8Ov\";\nexport { _1 as \"root\" }\n","// extracted by mini-css-extract-plugin\nvar _1 = \"alert-module__default__Wedqm\";\nvar _2 = \"alert-module__error__hMcQT\";\nvar _3 = \"alert-module__icon__E2Ch1\";\nvar _4 = \"alert-module__info___t4NH\";\nvar _5 = \"alert-module__medium__Z731x\";\nvar _6 = \"alert-module__message__RhPdI\";\nvar _7 = \"alert-module__root__OeAcB\";\nvar _8 = \"alert-module__small__m75_f\";\nvar _9 = \"alert-module__success__frW1w\";\nvar _a = \"alert-module__warning__p4tWV\";\nexport { _1 as \"_default\", _2 as \"error\", _3 as \"icon\", _4 as \"info\", _5 as \"medium\", _6 as \"message\", _7 as \"root\", _8 as \"small\", _9 as \"success\", _a as \"warning\" }\n","import classnames from 'classnames';\nimport { HTMLAttributes, PropsWithChildren, ReactNode, forwardRef } from 'react';\n\nimport { AlertIcon, DoneIcon, ErrorOutlineIcon, InfoIcon } from '@icons/index';\nimport { AlertSize } from '@models/AlertSize';\nimport { AlertType } from '@models/AlertType';\nimport { UiProps } from '@models/UiProps';\n\nimport * as styles from './alert.module.css';\n\ninterface Props {\n alertType?: AlertType;\n componentSize?: AlertSize;\n icon?: ReactNode | false;\n}\n\nconst defaultIcons: Record<NonNullable<Props['alertType']>, ReactNode | null> = {\n success: <DoneIcon />,\n warning: <AlertIcon />,\n error: <ErrorOutlineIcon />,\n info: <InfoIcon />,\n default: null,\n};\n\nexport const Alert = forwardRef<\n HTMLDivElement,\n PropsWithChildren<UiProps<Props>> & Omit<HTMLAttributes<HTMLDivElement>, 'title'>\n>(function Alert(\n { alertType = 'info', componentSize = 'medium', icon, children, classes, className, role, ...rest },\n ref,\n) {\n const resolvedIcon = icon === false ? null : (icon ?? defaultIcons[alertType]);\n\n return (\n <div\n ref={ref}\n role={role ?? 'alert'}\n className={classnames(\n styles.root,\n styles[alertType as keyof typeof styles],\n styles[componentSize as keyof typeof styles],\n className,\n classes?.root,\n )}\n {...rest}\n >\n {resolvedIcon != null && (\n <span className={classnames(styles.icon, classes?.icon)} aria-hidden>\n {resolvedIcon}\n </span>\n )}\n {children != null && children !== false && (\n <div className={classnames(styles.message, classes?.message)}>{children}</div>\n )}\n </div>\n );\n});\n","// extracted by mini-css-extract-plugin\nvar _1 = \"card-module__actions__ZJ6UM\";\nvar _2 = \"card-module__body-full-size__RmpRw\";\nvar _3 = \"card-module__body-padded__l5QS5\";\nvar _4 = \"card-module__body-padded-no-header__ZbnPS\";\nvar _5 = \"card-module__header__n_G4u\";\nvar _6 = \"card-module__header-overlay__uPDfl\";\nvar _7 = \"card-module__medium__pVsKH\";\nvar _8 = \"card-module__root__GQS7Y\";\nvar _9 = \"card-module__small__wzZOs\";\nexport { _1 as \"actions\", _2 as \"bodyFullSize\", _3 as \"bodyPadded\", _4 as \"bodyPaddedNoHeader\", _5 as \"header\", _6 as \"headerOverlay\", _7 as \"medium\", _8 as \"root\", _9 as \"small\" }\n","import classNames from 'classnames';\nimport { HTMLAttributes, PropsWithChildren, ReactNode, forwardRef } from 'react';\n\nimport { Surface } from '@components/surfaces/Surface';\nimport { ChipSize } from '@models/ChipSize';\nimport { SurfaceType } from '@models/SurfaceType';\nimport { UiProps } from '@models/UiProps';\n\nimport * as styles from './card.module.css';\n\ntype Style = keyof typeof styles;\n\ninterface Props {\n surfaceType?: SurfaceType;\n componentSize?: ChipSize;\n title?: ReactNode;\n actions?: ReactNode;\n headerOverlay?: boolean;\n fullSizeBody?: boolean;\n}\n\nexport const Card = forwardRef<\n HTMLDivElement,\n PropsWithChildren<UiProps<Props>> & Omit<HTMLAttributes<HTMLDivElement>, 'title'>\n>(function Card(\n {\n surfaceType = 'primary',\n componentSize = 'medium',\n title,\n actions,\n children,\n classes,\n className,\n headerOverlay = true,\n fullSizeBody = false,\n ...rest\n },\n ref,\n) {\n const hasHeader = !!title || !!actions;\n\n return (\n <Surface\n ref={ref}\n type={surfaceType}\n className={className}\n classes={{ root: classNames(styles.root, styles[componentSize as Style], classes?.root) }}\n {...rest}\n >\n {hasHeader && (\n <div className={classNames(styles.header, headerOverlay && styles.headerOverlay, classes?.header)}>\n {title ?? <div></div>}\n {!!actions && <div className={classNames(styles.actions, classes?.actions)}>{actions}</div>}\n </div>\n )}\n <div\n className={classNames(\n fullSizeBody ? styles.bodyFullSize : hasHeader ? styles.bodyPadded : styles.bodyPaddedNoHeader,\n classes?.body,\n )}\n >\n {children}\n </div>\n </Surface>\n );\n});\n","// extracted by mini-css-extract-plugin\nvar _1 = \"tabs-module__disable-border__Vw9nt\";\nvar _2 = \"tabs-module__disabled__e_X85\";\nvar _3 = \"tabs-module__filled__Kzrnb\";\nvar _4 = \"tabs-module__icon-only__qDPjH\";\nvar _5 = \"tabs-module__medium__dvN0f\";\nvar _6 = \"tabs-module__root__m7YiQ\";\nvar _7 = \"tabs-module__selected__YEXTT\";\nvar _8 = \"tabs-module__selected-filled__MkMIt\";\nvar _9 = \"tabs-module__small__hiwdI\";\nvar _a = \"tabs-module__tab__NoNie\";\nvar _b = \"tabs-module__tab-border__tvFwj\";\nvar _c = \"tabs-module__tab-border-vertical__TVo15\";\nvar _d = \"tabs-module__tab-filled__Gmwpo\";\nvar _e = \"tabs-module__tab-icon__Kj5Oa\";\nvar _f = \"tabs-module__tab-title__XsuJP\";\nvar _10 = \"tabs-module__tab-vertical__WQDkd\";\nvar _11 = \"tabs-module__vertical__sPO6h\";\nexport { _1 as \"disableBorder\", _2 as \"disabled\", _3 as \"filled\", _4 as \"iconOnly\", _5 as \"medium\", _6 as \"root\", _7 as \"selected\", _8 as \"selectedFilled\", _9 as \"small\", _a as \"tab\", _b as \"tabBorder\", _c as \"tabBorderVertical\", _d as \"tabFilled\", _e as \"tabIcon\", _f as \"tabTitle\", _10 as \"tabVertical\", _11 as \"vertical\" }\n","import classnames from 'classnames';\nimport { ForwardedRef, HTMLAttributes, ReactElement, forwardRef, useEffect, useState } from 'react';\n\nimport { Tooltip } from '@components/data-display/Tooltip';\nimport { ChipSize } from '@models/ChipSize';\nimport { UiProps } from '@models/UiProps';\n\nimport { Item } from './models/Item';\nimport * as styles from './tabs.module.css';\n\ninterface Props<T> {\n items: Item<T>[];\n defaultSelected?: T;\n onChange?: (newValue: T) => void;\n componentSize?: ChipSize;\n filled?: boolean;\n isVertical?: boolean;\n disableBorder?: boolean;\n allowDeselect?: boolean;\n showTooltips?: boolean;\n /** Использовать внешнее состояние вместо внутреннего.\n * При включении компонент не управляет состоянием самостоятельно, а использует переданные value и onChange\n * */\n useExternalState?: boolean;\n /** Текущее значение выбранной вкладки. Используется только при useExternalState=true */\n value?: T;\n}\n\ntype TabsProps<T> = UiProps<Props<T>> & Omit<HTMLAttributes<HTMLDivElement>, 'onChange'>;\n\n/**\n * Компонент вкладок с поддержкой как внутреннего, так и внешнего состояния\n * */\nfunction TabsInner<T>(\n {\n items,\n defaultSelected,\n onChange,\n componentSize = 'medium',\n filled = false,\n isVertical = false,\n disableBorder = false,\n allowDeselect = false,\n showTooltips = false,\n useExternalState = false,\n value,\n classes,\n className,\n ...rest\n }: TabsProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const [isMounted, setIsMounted] = useState<boolean>(false);\n const [selectedTab, setSelectedTab] = useState<T | undefined>(defaultSelected);\n\n const currentValue = useExternalState ? value : selectedTab;\n\n const handleClick = (item: Item<T>) => () => {\n if (item.isDisabled) {\n return;\n }\n\n if (item.onClick) {\n item.onClick();\n return;\n }\n\n if (useExternalState) {\n if (allowDeselect && currentValue === item.value) {\n onChange?.(undefined as T);\n } else {\n onChange?.(item.value);\n }\n } else {\n if (allowDeselect && selectedTab === item.value) {\n setSelectedTab(undefined);\n } else {\n setSelectedTab(item.value);\n }\n }\n };\n\n useEffect(() => {\n if (isMounted && !useExternalState) {\n onChange?.(selectedTab as T);\n }\n if (!isMounted) {\n setIsMounted(true);\n }\n }, [selectedTab, useExternalState]);\n\n return (\n <div\n ref={ref}\n className={classnames(\n styles.root,\n filled && styles.filled,\n isVertical && styles.vertical,\n disableBorder && styles.disableBorder,\n styles[componentSize as keyof typeof styles],\n className,\n classes?.root,\n )}\n {...rest}\n >\n {items.map((item) => {\n const isButton = !!item.onClick;\n const isSelected = !isButton && currentValue === item.value;\n\n const tabContent = (\n <div\n key={`tab-${item.value}`}\n className={classnames(\n styles.tab,\n filled && styles.tabFilled,\n isVertical && styles.tabVertical,\n disableBorder && styles.disableBorder,\n isSelected ? styles.selected : undefined,\n isSelected && filled ? styles.selectedFilled : undefined,\n item.isDisabled && styles.disabled,\n classes?.tab,\n isSelected ? classes?.tabSelected : undefined,\n item.isDisabled ? classes?.tabDisabled : undefined,\n )}\n onClick={handleClick(item)}\n >\n <div\n className={classnames(\n styles.tabTitle,\n showTooltips && item.icon && styles.iconOnly,\n classes?.tabTitle,\n isSelected ? classes?.tabSelectedTitle : undefined,\n )}\n >\n {item.icon && (\n <span className={styles.tabIcon}>\n {typeof item.icon === 'string' ? (\n <span className={styles.tabIcon} dangerouslySetInnerHTML={{ __html: item.icon }} />\n ) : (\n item.icon\n )}\n </span>\n )}\n {!showTooltips && item.name && <span title={item.name}>{item.name}</span>}\n </div>\n <div\n className={classnames(\n styles.tabBorder,\n isVertical && styles.tabBorderVertical,\n disableBorder && styles.disableBorder,\n classes?.tabBorder,\n isSelected ? classes?.tabSelectedBorder : undefined,\n )}\n ></div>\n </div>\n );\n\n if (showTooltips && item.name) {\n return (\n <Tooltip key={`tab-${item.value}`} label={item.name} placement={isVertical ? 'right' : 'top'}>\n {tabContent}\n </Tooltip>\n );\n }\n\n return tabContent;\n })}\n </div>\n );\n}\n\nexport const Tabs = forwardRef(TabsInner) as <T>(\n props: TabsProps<T> & { ref?: ForwardedRef<HTMLDivElement> },\n) => ReactElement;\n","import classnames from 'classnames';\nimport { HTMLAttributes, PropsWithChildren, forwardRef } from 'react';\n\nimport { UiProps } from '@models/UiProps';\n\nimport * as styles from './layout.module.css';\n\ninterface Props {\n withoutHeader?: boolean;\n}\n\nexport const Layout = forwardRef<HTMLDivElement, PropsWithChildren<UiProps<Props>> & HTMLAttributes<HTMLDivElement>>(\n function Layout({ withoutHeader, children, classes, className, ...rest }, ref) {\n return (\n <div\n ref={ref}\n className={classnames(styles.root, !withoutHeader ? styles.withHeader : undefined, className, classes?.root)}\n {...rest}\n >\n {children}\n </div>\n );\n },\n);\n","// extracted by mini-css-extract-plugin\nvar _1 = \"layout-module__root__I9KVI\";\nvar _2 = \"layout-module__with-header___aKcB\";\nexport { _1 as \"root\", _2 as \"withHeader\" }\n","import { ReactNode, createContext, useContext, useEffect, useState } from 'react';\n\nimport globalCss from '../styles/global.css?raw';\nimport dark from '../styles/themes/dark.css?raw';\nimport darkBlue from '../styles/themes/darkBlue.css?raw';\nimport light from '../styles/themes/light.css?raw';\n\nconst BASE_STYLE_ID = 'nntc-ui-base-styles';\nconst THEME_STYLE_ID = 'nntc-ui-theme-styles';\n\nexport type Theme = 'light' | 'dark' | 'darkBlue';\nexport type StyleContainer = HTMLElement | ShadowRoot;\n\nfunction isShadowRoot(target: StyleContainer): target is ShadowRoot {\n return typeof ShadowRoot !== 'undefined' && target instanceof ShadowRoot;\n}\n\nfunction scopeCss(css: string, target: StyleContainer): string {\n return isShadowRoot(target) ? css.replace(/:root\\b/g, ':host') : css;\n}\n\nfunction ensureStyleElement(target: StyleContainer, id: string): HTMLStyleElement {\n const existing = target.querySelector<HTMLStyleElement>(`#${id}`);\n if (existing) {\n return existing;\n }\n\n const element = document.createElement('style');\n element.id = id;\n target.appendChild(element);\n return element;\n}\n\nexport interface ThemeContextType {\n theme: Theme;\n toggleTheme: () => void;\n setTheme: (theme: Theme) => void;\n}\n\nconst ThemeContext = createContext<ThemeContextType | undefined>(undefined);\n\nfunction getInitialTheme(): Theme {\n if (typeof window === 'undefined') {\n return 'light';\n }\n\n try {\n const savedTheme = localStorage.getItem('theme');\n if (savedTheme === 'light' || savedTheme === 'dark' || savedTheme === 'darkBlue') {\n return savedTheme;\n }\n } catch {\n // ignore (private mode / blocked storage)\n }\n\n if (window.matchMedia?.('(prefers-color-scheme: dark)')?.matches) {\n return 'dark';\n }\n\n return 'light';\n}\n\nexport function useTheme(): ThemeContextType | null {\n return useContext(ThemeContext) ?? null;\n}\n\nexport function useThemeWithFallback(): ThemeContextType {\n const context = useTheme();\n return (\n context ?? {\n theme: 'light',\n toggleTheme: () => {},\n setTheme: () => {},\n }\n );\n}\n\ninterface ThemeProviderProps {\n children: ReactNode;\n /**\n * Куда добавить глобальные стили и палитру темы.\n * По умолчанию — document.head. Для MFE, отрисовывающихся в Shadow DOM,\n * передайте сюда shadowRoot: стили попадут в теневое дерево (рядом с index.css),\n * а :root будет автоматически заменён на :host.\n */\n styleContainer?: StyleContainer | null;\n}\n\nexport function ThemeProvider({ children, styleContainer }: ThemeProviderProps) {\n const [theme, setThemeState] = useState<Theme>(() => getInitialTheme());\n\n const setTheme = (newTheme: Theme) => {\n setThemeState(newTheme);\n try {\n localStorage.setItem('theme', newTheme);\n } catch {\n // ignore\n }\n };\n\n const toggleTheme = () => {\n setThemeState((prev) => {\n const next = prev === 'light' ? 'dark' : prev === 'dark' ? 'darkBlue' : 'light';\n try {\n localStorage.setItem('theme', next);\n } catch {\n // ignore\n }\n return next;\n });\n };\n\n useEffect(() => {\n const target: StyleContainer = styleContainer ?? document.head;\n const baseStyle = ensureStyleElement(target, BASE_STYLE_ID);\n baseStyle.textContent = scopeCss(globalCss, target);\n }, [styleContainer]);\n\n useEffect(() => {\n const themes: Record<Theme, string> = {\n light,\n dark,\n darkBlue,\n };\n\n const target: StyleContainer = styleContainer ?? document.head;\n const style = ensureStyleElement(target, THEME_STYLE_ID);\n style.textContent = scopeCss(themes[theme] ?? themes.light, target);\n }, [theme, styleContainer]);\n\n useEffect(() => {\n // Auto-sync with system theme only when user hasn't chosen a custom one.\n let savedTheme: string | null = null;\n try {\n savedTheme = localStorage.getItem('theme');\n } catch {\n // ignore\n }\n\n if (savedTheme === 'light' || savedTheme === 'dark' || savedTheme === 'darkBlue') {\n return;\n }\n\n const mediaQuery = window.matchMedia?.('(prefers-color-scheme: dark)');\n if (!mediaQuery) {\n return;\n }\n\n const handleChange = (e: MediaQueryListEvent) => {\n setThemeState(e.matches ? 'dark' : 'light');\n };\n\n mediaQuery.addEventListener('change', handleChange);\n return () => mediaQuery.removeEventListener('change', handleChange);\n }, []);\n\n const value: ThemeContextType = {\n theme,\n toggleTheme,\n setTheme,\n };\n\n return <ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>;\n}\n"],"names":["module","exports","e","n","r","i","s","u","a","o","c","f","h","d","l","$","y","M","name","weekdays","split","months","ordinal","t","m","String","length","Array","join","v","z","utcOffset","Math","abs","floor","date","year","month","clone","add","ceil","p","w","D","ms","Q","toLowerCase","replace","g","S","_","O","args","arguments","b","locale","$L","utc","$u","x","$x","$offset","this","parse","prototype","$d","Date","NaN","test","match","substring","UTC","init","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","toString","isSame","startOf","endOf","isAfter","isBefore","$g","set","unix","valueOf","getTime","toDate","apply","slice","$locale","weekStart","$set","min","daysInMonth","get","Number","round","subtract","format","invalidDate","meridiem","monthsShort","weekdaysMin","weekdaysShort","getTimezoneOffset","diff","toJSON","toISOString","toUTCString","Y","forEach","extend","$i","isDayjs","en","Ls","__WEBPACK_AMD_DEFINE_RESULT__","hasOwn","hasOwnProperty","classNames","classes","arg","appendClass","parseValue","isArray","Object","includes","key","call","value","newClass","default","undefined","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","cw","body","mod","fn","definition","defineProperty","enumerable","obj","prop","Symbol","toStringTag","nc","React","external_react_namespaceObject","objectIs","is","useState","useEffect","useLayoutEffect","useDebugValue","checkIfSnapshotChanged","inst","latestGetSnapshot","getSnapshot","nextValue","error","shim","window","document","createElement","subscribe","_useState","forceUpdate","useSyncExternalStore","use_sync_external_store_shim_production_namespaceFn","__WEBPACK_EXTERNAL_MODULE_react__","_1","_2","_3","_4","_5","_6","_7","_8","_9","_a","_b","_c","_d","_e","_f","_10","_11","Button","forwardRef","_ref","propRef","variant","componentSize","icon","textSecondary","isActive","compact","className","children","buttonProps","_objectWithoutProperties","_excluded","_jsx","_objectSpread","classnames","styles","root","ref","_jsxs","stateLayer","assignRef","current","mergeRefs","parseInt","version","refs","cleanups","cleanup","isCleanup","push","typography_module_1","typography_module_2","typography_module_3","typography_module_4","typography_module_5","typography_module_6","typography_module_7","typography_module_8","typography_module_9","typography_module_a","typography_module_b","typography_module_c","typography_module_d","typography_module_e","typography_module_f","typography_module_10","typography_module_11","_12","_13","Typography","component","typographyProps","useCompatId","react","useId","useMemo","random","Icon","size","color","width","height","viewBox","fill","xmlns","CheckboxDeselectedIcon","props","CheckboxIcon","CheckboxSeveralIcon","checkbox_module_1","checkbox_module_6","Checkbox","label","several","id","inputProps","inputRef","useRef","generatedId","inputId","el","mouseupListener","classList","remove","mousedownListener","addEventListener","removeEventListener","typographyVariant","type","input","title","htmlFor","checkbox","_Fragment","labelText","rnds8","Uint8Array","byteToHex","dist_v4","options","buf","offset","crypto","randomUUID","rnds","rng","getRandomValues","Error","RangeError","arr","unsafeStringify","_v4","tooltip_module_1","tooltip_module_2","tooltip_module_3","tooltip_module_4","tooltip_module_5","tooltip_module_6","tooltip_module_7","tooltip_module_8","tooltip_module_9","tooltip_module_a","tooltip_module_b","hasWindow","getNodeName","node","isNode","nodeName","getWindow","_node$ownerDocument","ownerDocument","defaultView","getDocumentElement","documentElement","Node","isElement","Element","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","isOverflowElement","element","overflow","overflowX","overflowY","display","floating_ui_utils_dom_getComputedStyle","isTableElement","isTopLayer","matches","willChangeRe","containRe","isNotNone","isWebKitValue","isContainingBlock","elementOrCss","css","transform","translate","scale","rotate","perspective","isWebKit","backdropFilter","filter","willChange","contain","CSS","supports","isLastTraversableNode","getComputedStyle","getNodeScroll","scrollLeft","scrollTop","scrollX","scrollY","getParentNode","result","assignedSlot","parentNode","host","getNearestOverflowAncestor","getOverflowAncestors","list","traverseIframes","_node$ownerDocument2","scrollableAncestor","isBody","win","frameElement","getFrameElement","concat","visualViewport","parent","getPrototypeOf","candidateSelector","NoElement","msMatchesSelector","webkitMatchesSelector","getRootNode","_element$getRootNode","_isInert","lookUp","_node$getAttribute","inertAtt","getAttribute","closest","getCandidates","includeContainer","candidates","querySelectorAll","unshift","_getCandidatesIteratively","elements","elementsToCheck","from","shift","tagName","assigned","assignedElements","content","nestedCandidates","flatten","scopeParent","shadowRoot","getShadowRoot","validShadowRoot","shadowRootFilter","_nestedCandidates","hasTabIndex","isNaN","getTabIndex","tabIndex","_node$getAttribute2","attValue","isContentEditable","sortOrderedTabbables","documentOrder","isInput","isZeroArea","_node$getBoundingClie","getBoundingClientRect","isNodeMatchingSelectorFocusable","disabled","isHiddenInput","displayCheck","checkVisibility","checkOpacity","opacityProperty","contentVisibilityAuto","visibilityProperty","checkVisibilityCSS","visibility","nodeUnderDetails","parentElement","originalNode","rootNode","_nodeRoot","_nodeRootHost","_nodeRootHost$ownerDo","nodeRoot","nodeRootHost","attached","contains","_nodeRoot2","_nodeRootHost2","_nodeRootHost2$ownerD","isNodeAttached","getClientRects","isHidden","some","child","isDetailsWithSummary","item","isDisabledFromFieldset","isNodeMatchingSelectorTabbable","isRadio","radioSet","radioScope","form","queryRadios","escape","err","console","message","checked","nodes","getCheckedRadio","isTabbableRadio","isNonTabbableRadio","isShadowRootTabbable","shadowHostNode","_sortByOrder","regularTabbables","orderedTabbables","isScope","candidateTabindex","getSortOrderTabIndex","sort","reduce","acc","sortable","tabbable","container","bind","isTabbable","getPlatform","uaData","navigator","userAgentData","platform","getUserAgent","brands","map","brand","userAgent","isSafari","vendor","isAndroid","re","isJSDOM","FOCUSABLE_ATTRIBUTE","activeElement","doc","_activeElement","next","getTarget","event","composedPath","target","isEventTargetWithin","getDocument","isTypeableElement","isTypeableCombobox","getFloatingFocusElement","floatingElement","hasAttribute","querySelector","getNodeChildren","onlyOpenChildren","_node$context","parentId","context","open","flatMap","getNodeAncestors","_nodes$find","allAncestors","currentParentId","find","currentNode","stopEvent","preventDefault","stopPropagation","isMouseLikePointerType","pointerType","strict","values","index","useLatestRef","useSafeInsertionEffect","useInsertionEffect","useEffectEvent","callback","useCallback","_len","_key","getTabbableOptions","ResizeObserver","getTabbableIn","dir","len","active","indexOf","getNextTabbable","referenceElement","getPreviousTabbable","isOutsideEvent","containerElement","currentTarget","relatedTarget","disableFocusInside","dataset","tabindex","setAttribute","enableFocusInside","removeAttribute","max","floating_ui_utils_floor","createCoords","oppositeSideMap","left","right","bottom","top","clamp","start","end","evaluate","param","getSide","placement","getAlignment","getOppositeAxis","axis","getAxisLength","getSideAxis","firstChar","getAlignmentAxis","getOppositeAlignmentPlacement","lrPlacement","rlPlacement","tbPlacement","btPlacement","getOppositePlacement","side","getPaddingObject","padding","_padding$top","_padding$right","_padding$bottom","_padding$left","expandPaddingObject","rectToClientRect","rect","computeCoordsFromPlacement","rtl","reference","floating","sideAxis","alignmentAxis","alignLength","isVertical","commonX","commonY","commonAlign","coords","alignment","async","detectOverflow","state","_await$platform$isEle","rects","strategy","boundary","rootBoundary","elementContext","altBoundary","paddingObject","clippingClientRect","getClippingRect","contextElement","offsetParent","getOffsetParent","offsetScale","getScale","elementClientRect","convertOffsetParentRelativeRectToViewportRelativeRect","originSides","Set","getCssDimensions","parseFloat","hasOffset","offsetWidth","offsetHeight","shouldFallback","unwrapElement","domElement","isFinite","noOffsets","getVisualOffsets","offsetLeft","offsetTop","includeScale","isFixedStrategy","clientRect","visualOffsets","isFixed","floatingOffsetParent","shouldAddVisualOffsets","offsetWin","currentWin","currentIFrame","iframeScale","iframeRect","clientLeft","paddingLeft","clientTop","paddingTop","getWindowScrollBarX","leftScroll","getHTMLOffset","scroll","htmlRect","getClientRectFromClippingAncestor","clippingAncestor","isLayoutViewport","html","clientWidth","clientHeight","layoutRelativeClientCoords","bodyStyles","bodyMarginInline","compatMode","marginLeft","marginRight","reservedWidth","gutter","scrollbarGutter","getViewportRect","scrollWidth","scrollHeight","direction","getDocumentRect","getInnerBoundingClientRect","getRectRelativeToOffsetParent","isOffsetParentAnElement","offsets","offsetRect","htmlOffset","isStaticPositioned","position","getTrueOffsetParent","polyfill","rawOffsetParent","svgOffsetParent","getContainingBlock","topLayer","clippingAncestors","cache","cachedResult","lastKeptComputedStyle","elementIsFixed","computedStyle","currentNodeIsContaining","lastPosition","ancestor","getClippingElementAncestors","firstRect","getElementRects","data","getOffsetParentFn","getDimensionsFn","getDimensions","floatingDimensions","isRTL","rectsAreEqual","autoUpdate","update","ancestorScroll","ancestorResize","elementResize","layoutShift","IntersectionObserver","animationFrame","referenceEl","ancestors","cleanupIo","onMove","timeoutId","io","_io","clearTimeout","disconnect","refresh","skip","threshold","elementRectForRootMargin","rootMargin","isFirstUpdate","handleObserve","entries","ratio","intersectionRatio","setTimeout","observe","handleResize","observeMove","frameId","reobserveFrame","resizeObserver","firstEntry","unobserve","cancelAnimationFrame","requestAnimationFrame","_resizeObserver","prevRefRect","frameLoop","nextRefRect","_resizeObserver2","floating_ui_dom_flip","_middlewareData$arrow","_middlewareData$flip","middlewareData","initialPlacement","mainAxis","checkMainAxis","crossAxis","checkCrossAxis","fallbackPlacements","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","flipAlignment","detectOverflowOptions","arrow","alignmentOffset","initialSideAxis","isBasePlacement","oppositePlacement","getExpandedPlacements","hasFallbackAxisSideDirection","isStart","getSideList","getOppositeAxisPlacements","placements","overflows","overflowsData","flip","sides","mainAlignmentSide","getAlignmentSides","every","_middlewareData$flip2","_overflowsData$filter","nextIndex","nextPlacement","reset","resetPlacement","_overflowsData$filter2","currentSideAxis","floating_ui_dom_arrow","arrowDimensions","isYAxis","minProp","maxProp","clientProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","largestPossiblePadding","minPadding","maxPadding","center","shouldAddOffset","centerOffset","floating_ui_dom_computePosition","Map","mergedOptions","platformWithCache","config","middleware","platformWithDetectOverflow","statefulPlacement","resetCount","currentMiddleware","nextX","nextY","computePosition","floating_ui_react_dom_index","deepEqual","keys","$$typeof","getDPR","devicePixelRatio","roundByDPR","dpr","floating_ui_react_dom_useLatestRef","floating_ui_react_dom_offset","deps","_middlewareData$offse","diffCoords","mainAxisMulti","has","crossAxisMulti","rawValue","convertValueToCoords","floating_ui_dom_offset","floating_ui_react_dom_shift","limiter","mainAxisCoord","crossAxisCoord","clampCoord","coord","limitedCoords","enabled","floating_ui_dom_shift","floating_ui_react_dom_flip","floating_ui_react_dom_arrow","arrow$1","floating_ui_react_useMergeRefs","cleanupRef","refEffect","instance","refCallback","refCleanup","floating_ui_react_FOCUSABLE_ATTRIBUTE","ACTIVE_KEY","SELECTED_KEY","floating_ui_react_SafeReact","serverHandoffComplete","count","genId","setId","FloatingNodeContext","createContext","FloatingTreeContext","useFloatingParentNodeId","_React$useContext","useContext","useFloatingTree","createAttribute","clearTimeoutIfSet","timeoutRef","safePolygonIdentifier","getDelay","getRestMs","rafId","enqueueFocus","preventScroll","cancelPrevious","sync","exec","focus","counters","inert","WeakMap","none","getCounterMap","control","uncontrolledElementsSet","WeakSet","markerMap","lockCount$1","unwrapHost","correctElements","targets","correctedTarget","markOthers","avoidElements","ariaHidden","uncorrectedAvoidElements","markerName","controlAttribute","elementsToKeep","elementsToStop","hiddenElements","markerCounter","keep","deep","attr","alreadyHidden","counterMap","counterValue","markerValue","clear","delete","applyAttributeToOthers","HIDDEN_STYLES","border","clip","margin","whiteSpace","FocusGuard","role","setRole","restProps","style","__WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_179142b8_jsx__","HIDDEN_OWNER_STYLES","clipPath","PortalContext","FloatingPortal","preserveTabOrder","portalNode","uniqueId","portalContext","usePortalContext","setPortalNode","portalNodeRef","queueMicrotask","existingIdRoot","getElementById","subRoot","appendChild","idWrapper","useFloatingPortalNode","focusManagerState","setFocusManagerState","beforeOutsideRef","afterOutsideRef","beforeInsideRef","afterInsideRef","modal","shouldRenderGuards","onFocus","__WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_179142b8_jsxs__","Provider","_beforeInsideRef$curr","prevTabbable","domReference","__WEBPACK_EXTERNAL_MODULE_react_dom_7dac9eee_createPortal__","_afterInsideRef$curre","nextTabbable","closeOnFocusOut","onOpenChange","nativeEvent","useLiteMergeRefs","previouslyFocusedElements","clearDisconnectedPreviouslyFocusedElements","elementRef","_elementRef$deref","deref","isConnected","getPreviouslyFocusedElement","handleTabIndex","floatingFocusElement","orderRef","_floatingFocusElement","focusableElements","focusable","tabbableContent","dataTabIndex","startsWith","VisuallyHiddenDismiss","FloatingFocusManager","order","guards","_guards","initialFocus","returnFocus","restoreFocus","visuallyHiddenDismiss","outsideElementsInert","getInsideElements","_getInsideElements","events","dataRef","getNodeId","_dataRef$current$floa","floatingContext","nodeId","ignoreInitialFocus","isUntrappedTypeableCombobox","inertSupported","useInert","initialFocusRef","returnFocusRef","tree","startDismissButtonRef","endDismissButtonRef","preventReturnFocusRef","isPointerDownRef","tabbableIndexRef","blurTimeoutRef","isInsidePortal","getTabbableContent","getTabbableElements","Boolean","flat","onKeyDown","els","shiftKey","handleFocusIn","tabbableIndex","handlePointerDown","handleFocusOutside","movedToUnrelatedNode","nodesRef","_node$context2","_node$context3","_node$context4","_node$context5","prevTabbableIndex","nodeToFocus","insideReactTree","shouldHandleBlurCapture","markInsideReactTree","beforeGuardRef","afterGuardRef","mergedBeforeGuardRef","mergedAfterGuardRef","renderDismissButton","location","onClick","_portalContext$portal","_ancestors$find","portalNodes","rootAncestorComboboxDomReference","_node$context6","insideElements","previouslyFocusedElement","initialFocusValue","elToFocus","focusAlreadyInsideFloatingEl","reason","nested","mozInputSource","isTrusted","buttons","detail","isVirtualClick","pressure","isVirtualPointerEvent","isPreventScrollSupported","WeakRef","on","fallbackEl","assign","insertAdjacentElement","off","activeEl","isFocusInsideFloatingTree","_node$context7","returnElement","getReturnElement","tabbableReturnElement","tabbableOptions","getFirstTabbableElement","__WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_179142b8_Fragment__","_portalContext$before","_portalContext$afterO","isButtonTarget","isSpaceIgnored","useClick","eventOption","toggle","ignoreMouse","keyboardHandlers","stickIfOpen","pointerTypeRef","didKeyDownRef","onPointerDown","onMouseDown","button","openEvent","defaultPrevented","isAnchorTarget","onKeyUp","bubbleHandlerKeys","pointerdown","mousedown","click","captureHandlerKeys","normalizeProp","normalizable","_normalizable$escapeK","_normalizable$outside","escapeKey","outsidePress","useDismiss","unstable_outsidePress","outsidePressEvent","referencePress","referencePressEvent","bubbles","capture","outsidePressFn","endedOrStartedInsideRef","escapeKeyBubbles","outsidePressBubbles","escapeKeyCapture","outsidePressCapture","isComposingRef","closeOnEscapeKeyDown","shouldDismiss","_child$context","__escapeKeyBubbles","isReactEvent","closeOnEscapeKeyDownCapture","_getTarget2","_getTarget","closeOnPressOutside","_dataRef$current$floa2","endedOrStartedInside","inertSelector","markers","targetRootAncestor","nextParent","marker","lastTraversableNode","scrollRe","isScrollableX","isScrollableY","canScrollX","canScrollY","pressedVerticalScrollbar","offsetX","pressedHorizontalScrollbar","offsetY","targetIsInsideChildren","_child$context2","__outsidePressBubbles","closeOnPressOutsideCapture","_getTarget4","_getTarget3","compositionTimeout","onScroll","handleCompositionStart","handleCompositionEnd","_doc$defaultView","setMouseDownOrUpInside","onMouseUp","floating_ui_react_useFloating","_temp","_elementsOption$refer","_elementsOption$float","elementsOption","internalRootContext","onOpenChangeProp","elementsProp","floatingId","emit","_map$get","listener","_map$get2","createEventEmitter","positionReference","setPositionReference","useFloatingRootContext","rootContext","computedElements","_domReference","setDomReference","_setPositionReference","domReferenceRef","externalReference","externalFloating","whileElementsMounted","setData","isPositioned","latestMiddleware","setLatestMiddleware","_reference","_setReference","_floating","_setFloating","setReference","referenceRef","setFloating","floatingRef","floatingEl","hasWhileElementsMounted","whileElementsMountedRef","platformRef","openRef","then","fullData","isMountedRef","__WEBPACK_EXTERNAL_MODULE_react_dom_7dac9eee_flushSync__","floatingStyles","initialStyles","useFloating","computedPositionReference","isMacSafari","maxTouchPoints","useFocus","visibleOnly","blockFocusRef","keyboardModalityRef","onBlur","onMouseLeave","matchesFocusVisible","movedToFocusGuard","mergeProps","userProps","propsList","elementKey","isItem","domUserProps","__","validProps","propsOrGetProps","val","useInteractions","referenceDeps","floatingDeps","itemDeps","getReferenceProps","getFloatingProps","getItemProps","componentRoleToAriaRoleMap","useRole","_elements$domReferenc","_componentRoleToAriaR","defaultFloatingId","defaultReferenceId","referenceId","_getFloatingFocusElem","ariaRole","isNested","floatingProps","selected","commonProps","TooltipContext","TooltipContent","otherContext","_excluded2","useMergeRefs","arrowClassName","invertX","invertY","withoutArrow","arrowRef","TooltipProvider","tooltip","initialOpen","controlledOpen","setControlledOpen","uncontrolledOpen","setUncontrolledOpen","setOpen","hover","delay","handleClose","mouseOnly","restMs","move","handleCloseRef","delayRef","restMsRef","handlerRef","restTimeoutRef","blockMouseMoveRef","performedPointerEventsMutationRef","unbindMouseMoveRef","restTimeoutPendingRef","isHoverOpen","_dataRef$current$open","onLeave","closeWithDelay","runElseBranch","closeDelay","cleanupMouseMoveHandler","clearPointerEvents","pointerEvents","isClickLikeOpenEvent","onScrollMouseLeave","onReferenceMouseEnter","once","onReferenceMouseLeave","onFloatingMouseEnter","onFloatingMouseLeave","openDelay","clientX","clientY","onClose","handler","_handleCloseRef$curre","__options","blockPointerEvents","_tree$nodesRef$curren","parentFloating","setPointerRef","onPointerEnter","onMouseMove","handleMouseMove","movementX","movementY","useHover","interactions","useTooltip","TooltipTrigger","wrapTrigger","childrenRef","isValidElement","cloneElement","Tooltip","clickable","alertType","showTooltip","setShowTooltip","prev","trigger","fieldShell_module_1","fieldShell_module_2","fieldShell_module_3","fieldShell_module_7","FieldShell","fullWidth","labelExtra","onLabelClick","hasStartIcon","hasEndIcon","hasDualEndIcon","hasErrorIcon","hasClearButton","hasArrow","chipsMode","rest","labelRow","description","errorName","wrapper","ErrorOutlineIcon","errorIconTooltipLabel","FieldErrorIcon","iconSize","CloseIcon","inputChip_module_1","inputChip_module_2","inputChip_module_3","inputChip_module_4","inputChip_module_5","inputChip_module_6","inputChip_module_7","inputChip_module_8","inputChip_module_9","inputChip_module_a","inputChip_module_b","inputChip_module_c","inputChip_module_d","InputChip","onRemove","text","PopoverContext","PopoverContent","setDescriptionId","descriptionId","PopoverProvider","popover","containerOffset","layoutVersion","_useFloating","usePopover","PopoverTrigger","Popover","contentStyle","AddIcon","ArrowDropDownIcon","ArrowDropUpIcon","AttachIcon","BarChartIcon","DonutIcon","LooksOneIcon","MapIcon","ScatterPlotIcon","cx","cy","RadioDeselectedIcon","RadioSelectedIcon","ChevronLeftIcon","ChevronRightIcon","CircleFilledIcon","DateRangeIcon","DeleteIcon","DoneIcon","DragIcon","fillRule","clipRule","FileUploadIcon","FilterIcon","FilterClearIcon","InfoIcon","AlertIcon","ChevronUpIcon","ChevronDownIcon","ListIcon","MoreVerticalIcon","SearchIcon","SelectUniqueIcon","SettingsIcon","SortDownIcon","SortUpIcon","TableChartIcon","UploadIcon","WellIcon","EditIcon","FullScreenOnIcon","FullScreenOffIcon","BookmarkIcon","BookmarkAddIcon","ExportTableIcon","DownloadIcon","VisibilityIcon","PointIcon","SaveIcon","Arrow","popoverContext","ButtonsGroup","fillEvenly","menu_module_1","menu_module_2","menu_module_3","menu_module_4","menu_module_5","menu_module_6","menu_module_7","menu_module_8","menu_module_9","menu_module_a","menu_module_b","menu_module_c","menu_module_d","menu_module_e","menu_module_f","menu_module_10","Menu","items","descriptionPosition","handleClick","blur","Component","subButtons","itemSelected","itemDisabled","itemIcon","itemSelectedIcon","itemDisabledIcon","itemTitle","itemSelectedTitle","itemDisabledTitle","itemDescription","itemSelectedDescription","itemDisabledDescription","itemActions","itemSelectedActions","itemDisabledActions","sb","sbIndex","divider","SelectPopover","selectedValue","changeSelectedItem","menu","Select","placeholder","defaultValue","onValueChange","chips","isLocalState","localSelectedItem","setlocalSelectedItem","selectedItem","popoverTargetRef","inputClickHandler","uuidv4","showErrorIcon","fieldStyles","onChange","errorIcon","popoverContent","calendarPopover_module_1","calendarPopover_module_2","calendarPopover_module_3","calendarPopover_module_4","calendarPopover_module_5","calendarPopover_module_6","calendarPopover_module_7","calendarPopover_module_8","calendarPopover_module_9","calendarPopover_module_a","calendarPopover_module_b","calendarPopover_module_c","calendarPopover_module_d","calendarPopover_module_e","calendarPopover_module_f","calendarPopover_module_10","calendarPopover_module_11","calendarPopover_module_12","calendarPopover_module_13","_14","_15","_16","_17","_18","_19","_1a","_1b","createCalendarDate","dayjs","day","useUtc","TimeWheelColumn","onSelect","valuesLength","centerPosition","containerRef","cycledValues","repeatedValues","normalizeValue","handleScroll","nearestIndex","scrollToValue","scrollTo","behavior","padStart","CalendarPopover","dayjsFromProps","isPeriod","valueType","initStartDate","initEndDate","changeDates","onClear","defaultDayjs","isDateTimeSingle","viewType","setViewType","currentItem","setCurrentItem","initial","now","startDate","setStartDate","second","millisecond","endDate","setEndDate","selectedHour","setSelectedHour","hour","selectedMinute","setSelectedMinute","minute","hours","minutes","startDateDay","endDateDay","startDateMonth","endDateMonth","startYear","endYear","currentDate","emptyCellsCount","applyTimeToDate","dateValue","nextDate","changeCurrentItem","baseDate","step","unit","tempDate","changeViewType","openMonthView","setYear","cellYear","cellDate","yearsRangeStart","setDate","today","buttonsContainer","navigationContainer","navigationArrow","navigationValue","navigationTitle","cellsContainer","isCircleActive","isYearInRange","isFirstInRange","isLastInRange","cell","cellCircle","cellSelection","cellSelectionFirst","cellSelectionLast","cellData","cellDateValue","isMonthInRange","isFirstMonthInRange","isLastMonthInRange","monthCellSelection","monthCellSelectionFirst","monthCellSelectionLast","DateTime","defaultOpen","defaultValues","stateValues","setStateValues","isPopoverOpen","setIsPopoverOpen","stateValuesRef","effectiveValueType","reactId","inputFocusHandler","inputBlurHandler","popoverOpenChangeHandler","currentValues","inputElement","iconClickHandler","newStartDate","newEndDate","newValues","prevValues","isSameValues","dist_c","self","identifier","touches","pageX","pageXOffset","pageY","pageYOffset","memo","onKey","onEnd","E","C","changedTouches","which","keyCode","H","N","onTouchStart","backgroundColor","pow","PI","L","B","I","dist_y","k","q","K","R","hue","onChangeEnd","hsva","T","P","X","toHsva","equal","fromHsva","U","G","head","innerHTML","J","colorModel","defaultColor","Z","ee","backgroundImage","ne","te","ColorPicker","enableAlpha","disableLabel","setColor","changeColorHandler","newColor","toUpperCase","colorPicker","HexAlphaColorPicker","HexColorPicker","swatch","input_module_2","Input","startIcon","endIcon","fileName","setFileName","isFile","showEndIcon","fileInput","file","files","autoComplete","wrapForLabel_module_1","wrapForLabel_module_2","wrapForLabel_module_3","WrapForLabel","I18nContext","ReportNamespaces","constructor","usedNamespaces","addUsedNamespaces","namespaces","ns","getUsedNamespaces","matchHtmlEntity","htmlEntities","unescapeHtmlEntity","defaultOptions","bindI18n","bindI18nStore","transEmptyNodeValue","transSupportBasicHtmlNodes","transWrapTextNodes","transKeepBasicHtmlNodesFor","useSuspense","unescape","transDefaultProps","alreadyWarned","warnOnce","i18n","code","msg","isString","services","logger","forward","warn","utils_warn","loadedClb","cb","isInitialized","initialized","loadNamespaces","loadLanguages","lng","preload","notReadySnapshot","optsOrDefaultValue","last","ready","dummySubscribe","useTranslation","i18nFromProps","i18nFromContext","defaultNS","defaultNSFromContext","i18nInstance","reportNamespaces","i18nOptions","keyPrefix","nsOrContext","unstableNamespaces","revisionRef","wrappedCallback","store","snapshotRef","calculatedReady","initializedStoreOnce","languages","hasLoadedNamespace","precheck","loadNotPending","backendConnector","backend","isLanguageChangingTo","currentLng","language","currentRevision","lastSnapshot","revision","newSnapshot","getFixedT","nsMode","scopeNs","loadCount","setLoadCount","onLoaded","finalI18n","wrapperRef","wrapperLangRef","createI18nWrapper","original","descriptors","getOwnPropertyDescriptors","__original","create","writable","configurable","ret","lang","resolvedLanguage","i18nWrapper","effectiveT","inDevelopment","Promise","resolve","useTranslationOriginal","currentLanguage","changeLanguage","Checklist","disableSearch","isDisabled","actionWithSelected","onChangeItem","filterSubstring","setFilterSubstring","filteredItems","filterItems","filterText","selectedItems","reduceCallback","selectedItemsList","newSelected","onSelectAll","onUnSelectAll","handleFilterChange","handleCheckboxChange","searchInput","scrolled","actionWrap","typography","onSelectedChange","enableSearch","checklistItems","handleActionWithSelected","isSelected","checklistWrapper","checklistClasses","MultiSelect","titleType","showSelectedCount","popoverInComponent","popoverWidth","setPopoverWidth","popoverLayoutVersion","setPopoverLayoutVersion","activeItems","updateLayout","handleSelectedChange","newItems","getTitle","labelSelectedCount","readOnly","clearHandler","minWidth","maxWidth","selectPopover","radioButton_module_5","radioButton_module_6","RadioButton","canUncheck","onUncheck","wasCheckedRef","radio","functionalUpdate","updater","makeStateUpdater","setState","old","isFunction","Function","getDeps","opts","depArgs","depTime","debug","newDeps","depsChanged","dep","resultTime","depEndTime","resultEndTime","resultFpsPercentage","pad","str","num","info","getMemoOptions","tableOptions","debugLevel","_tableOptions$debugAl","debugAll","createHeader","table","column","_options$id","header","isPlaceholder","placeholderId","depth","subHeaders","colSpan","rowSpan","headerGroup","getLeafHeaders","leafHeaders","recurseHeader","getContext","_features","feature","Headers","createTable","getHeaderGroups","getAllColumns","getVisibleLeafColumns","getState","columnPinning","allColumns","leafColumns","_left$map$filter","_right$map$filter","leftColumns","columnId","rightColumns","buildHeaderGroups","getCenterHeaderGroups","getLeftHeaderGroups","_left$map$filter2","orderedLeafColumns","getRightHeaderGroups","_right$map$filter2","getFooterGroups","headerGroups","reverse","getLeftFooterGroups","getCenterFooterGroups","getRightFooterGroups","getFlatHeaders","headers","getLeftFlatHeaders","getCenterFlatHeaders","getRightFlatHeaders","getCenterLeafHeaders","flatHeaders","_header$subHeaders","getLeftLeafHeaders","_header$subHeaders2","getRightLeafHeaders","_header$subHeaders3","_left$0$headers","_left$","_center$0$headers","_center$","_right$0$headers","_right$","columnsToGroup","headerFamily","_headerGroups$0$heade","_headerGroups$","maxDepth","findMaxDepth","columns","getIsVisible","_column$columns","createHeaderGroup","headersToGroup","pendingParentHeaders","headerToGroup","latestPendingParentHeader","bottomHeaders","recurseHeadersForSpans","childRowSpans","childColSpan","childRowSpan","createRow","rowIndex","subRows","row","_valuesCache","_uniqueValuesCache","getValue","getColumn","accessorFn","getUniqueValues","columnDef","renderValue","_row$getValue","renderFallbackValue","getLeafRows","getChildren","recurse","subArr","flattenBy","getParentRow","getRow","getParentRows","parentRows","currentRow","parentRow","getAllCells","getAllLeafColumns","_cell$getValue","createCell","_getAllCellsByColumnId","allCells","ColumnFaceting","createColumn","_getFacetedRowModel","getFacetedRowModel","getPreFilteredRowModel","_getFacetedUniqueValues","getFacetedUniqueValues","_getFacetedMinMaxValues","getFacetedMinMaxValues","includesString","filterValue","_filterValue$toString","search","autoRemove","testFalsey","includesStringSensitive","_row$getValue2","equalsString","_row$getValue3","arrIncludes","_row$getValue4","arrIncludesAll","_row$getValue5","arrIncludesSome","_row$getValue6","equals","weakEquals","inNumberRange","rowValue","resolveFilterValue","unsafeMin","unsafeMax","parsedMin","parsedMax","Infinity","temp","filterFns","ColumnFiltering","getDefaultColumnDef","filterFn","getInitialState","columnFilters","getDefaultOptions","onColumnFiltersChange","filterFromLeafRows","maxLeafRowFilterDepth","getAutoFilterFn","firstRow","getCoreRowModel","flatRows","getFilterFn","_table$options$filter","_table$options$filter2","getCanFilter","_column$columnDef$ena","_table$options$enable","_table$options$enable2","enableColumnFilter","enableColumnFilters","enableFilters","getIsFiltered","getFilterIndex","getFilterValue","_table$getState$colum","_table$getState$colum2","_table$getState$colum3","findIndex","setFilterValue","setColumnFilters","previousFilter","newFilter","_old$filter","shouldAutoRemoveFilter","newFilterObj","_old$map","_table","columnFiltersMeta","_functionalUpdate","resetColumnFilters","defaultState","_table$initialState$c","_table$initialState","initialState","getFilteredRowModel","_getFilteredRowModel","manualFiltering","aggregationFns","sum","_leafRows","childRows","extent","mean","leafRows","median","isNumberArray","mid","nums","unique","uniqueCount","_columnId","ColumnGrouping","aggregatedCell","_toString","_props$getValue","aggregationFn","grouping","onGroupingChange","groupedColumnMode","toggleGrouping","setGrouping","getCanGroup","enableGrouping","getGroupingValue","getIsGrouped","_table$getState$group","getGroupedIndex","_table$getState$group2","getToggleGroupingHandler","canGroup","getAutoAggregationFn","getAggregationFn","_table$options$aggreg","_table$options$aggreg2","resetGrouping","_table$initialState$g","getPreGroupedRowModel","getGroupedRowModel","_getGroupedRowModel","manualGrouping","groupingColumnId","_groupingValuesCache","getIsPlaceholder","getIsAggregated","_row$subRows","ColumnOrdering","columnOrder","onColumnOrderChange","getIndex","_getVisibleLeafColumns","getIsFirstColumn","_columns$","getIsLastColumn","_columns","setColumnOrder","resetColumnOrder","_getOrderColumnsFn","orderedColumns","columnOrderCopy","columnsCopy","targetColumnId","foundIndex","splice","nonGroupingColumns","col","groupingColumns","orderColumns","ColumnPinning","onColumnPinningChange","pin","columnIds","getLeafColumns","setColumnPinning","_old$left3","_old$right3","_old$left","_old$right","_old$left2","_old$right2","getCanPin","_d$columnDef$enablePi","enablePinning","enableColumnPinning","getIsPinned","leafColumnIds","isLeft","isRight","getPinnedIndex","getCenterVisibleCells","_getAllVisibleCells","leftAndRight","getLeftVisibleCells","cells","getRightVisibleCells","resetColumnPinning","getIsSomeColumnsPinned","_pinningState$positio","pinningState","_pinningState$left","_pinningState$right","getLeftLeafColumns","getRightLeafColumns","getCenterLeafColumns","defaultColumnSizing","minSize","maxSize","MAX_SAFE_INTEGER","ColumnSizing","columnSizing","columnSizingInfo","startOffset","startSize","deltaOffset","deltaPercentage","isResizingColumn","columnSizingStart","columnResizeMode","columnResizeDirection","onColumnSizingChange","onColumnSizingInfoChange","getSize","_column$columnDef$min","_column$columnDef$max","columnSize","getStart","getAfter","resetSize","setColumnSizing","_ref2","getCanResize","enableResizing","enableColumnResizing","getIsResizing","_header$column$getSiz","prevSiblingHeader","getResizeHandler","_contextDocument","canResize","persist","isTouchStartEvent","newColumnSizing","updateOffset","eventType","clientXPos","setColumnSizingInfo","_old$startOffset","_old$startSize","deltaDirection","_ref3","headerSize","contextDocument","mouseEvents","moveHandler","upHandler","touchEvents","cancelable","_e$touches$","passiveIfSupported","passiveSupported","supported","passive","noop","passiveEventSupported","resetColumnSizing","resetHeaderSizeInfo","_table$initialState$c2","getTotalSize","_table$getHeaderGroup","_table$getHeaderGroup2","getLeftTotalSize","_table$getLeftHeaderG","_table$getLeftHeaderG2","getCenterTotalSize","_table$getCenterHeade","_table$getCenterHeade2","getRightTotalSize","_table$getRightHeader","_table$getRightHeader2","ColumnVisibility","columnVisibility","onColumnVisibilityChange","toggleVisibility","getCanHide","setColumnVisibility","childColumns","enableHiding","getToggleVisibilityHandler","getVisibleCells","makeVisibleColumnsMethod","getColumns","getVisibleFlatColumns","getAllFlatColumns","getLeftVisibleLeafColumns","getRightVisibleLeafColumns","getCenterVisibleLeafColumns","resetColumnVisibility","toggleAllColumnsVisible","_value","getIsAllColumnsVisible","getIsSomeColumnsVisible","getToggleAllColumnsVisibilityHandler","_target","RowPagination","pagination","pageIndex","pageSize","onPaginationChange","registered","queued","_autoResetPageIndex","_table$options$autoRe","autoResetAll","autoResetPageIndex","manualPagination","_queue","resetPageIndex","setPagination","resetPagination","_table$initialState$p","setPageIndex","maxPageIndex","pageCount","_table$initialState$p2","resetPageSize","_table$initialState$p3","_table$initialState2","setPageSize","topRowIndex","setPageCount","_table$options$pageCo","newPageCount","getPageOptions","getPageCount","pageOptions","getCanPreviousPage","getCanNextPage","previousPage","nextPage","firstPage","lastPage","getPrePaginationRowModel","getExpandedRowModel","getPaginationRowModel","_getPaginationRowModel","_table$options$pageCo2","getRowCount","_table$options$rowCou","rowCount","rows","RowPinning","rowPinning","onRowPinningChange","includeLeafRows","includeParentRows","leafRowIds","parentRowIds","rowIds","setRowPinning","_old$top3","_old$bottom3","_old$top","_old$bottom","_old$top2","_old$bottom2","enableRowPinning","isTop","isBottom","_ref4","_visiblePinnedRowIds$","visiblePinnedRowIds","getTopRows","getBottomRows","_ref5","resetRowPinning","_table$initialState$r","getIsSomeRowsPinned","_pinningState$top","_pinningState$bottom","_getPinnedRows","visibleRows","pinnedRowIds","_table$options$keepPi","keepPinnedRows","rowId","getIsAllParentsExpanded","getRowModel","allRows","topPinnedRowIds","bottomPinnedRowIds","getCenterRows","topAndBottom","RowSelection","rowSelection","onRowSelectionChange","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","setRowSelection","resetRowSelection","toggleAllRowsSelected","getIsAllRowsSelected","preGroupedFlatRows","getCanSelect","toggleAllPageRowsSelected","resolvedValue","getIsAllPageRowsSelected","mutateRowIsSelected","getPreSelectedRowModel","getSelectedRowModel","rowModel","selectRowsFn","rowsById","getFilteredSelectedRowModel","getGroupedSelectedRowModel","getSortedRowModel","isAllRowsSelected","paginationFlatRows","isAllPageRowsSelected","getIsSomeRowsSelected","_table$getState$rowSe","totalSelected","getIsSomePageRowsSelected","getIsSelected","getIsSomeSelected","getToggleAllRowsSelectedHandler","getToggleAllPageRowsSelectedHandler","toggleSelected","_opts$selectChildren","selectedRowIds","selectChildren","isRowSelected","isSubRowSelected","getIsAllSubRowsSelected","getCanSelectSubRows","getCanMultiSelect","_table$options$enable3","getToggleSelectedHandler","canSelect","includeChildren","newSelectedFlatRows","newSelectedRowsById","recurseRows","_row$subRows2","selection","_selection$row$id","_row$subRows3","allChildrenSelected","someSelected","subRow","subRowChildrenSelected","reSplitAlphaNumeric","compareBasic","lib_toString","compareAlphanumeric","aStr","bStr","aa","bb","an","bn","combo","sortingFns","alphanumeric","rowA","rowB","alphanumericCaseSensitive","textCaseSensitive","datetime","basic","RowSorting","sorting","sortingFn","sortUndefined","onSortingChange","isMultiSortEvent","getAutoSortingFn","firstRows","getAutoSortDir","getSortingFn","_table$options$sortin","_table$options$sortin2","toggleSorting","desc","multi","nextSortingOrder","getNextSortingOrder","hasManualValue","setSorting","existingSorting","existingIndex","sortAction","newSorting","nextDesc","_table$options$maxMul","getCanMultiSort","maxMultiSortColCount","getFirstSortDir","_column$columnDef$sor","sortDescFirst","firstSortDirection","isSorted","getIsSorted","enableSortingRemoval","enableMultiRemove","getCanSort","enableSorting","_column$columnDef$ena2","enableMultiSort","_table$getState$sorti","columnSort","getSortIndex","_table$getState$sorti2","_table$getState$sorti3","clearSorting","getToggleSortingHandler","canSort","resetSorting","_table$initialState$s","getPreSortedRowModel","_getSortedRowModel","manualSorting","builtInFeatures","_getGlobalFacetedRowModel","getGlobalFacetedRowModel","_getGlobalFacetedUniqueValues","getGlobalFacetedUniqueValues","_getGlobalFacetedMinMaxValues","getGlobalFacetedMinMaxValues","globalFilter","onGlobalFilterChange","globalFilterFn","getColumnCanGlobalFilter","_table$getCoreRowMode","getCanGlobalFilter","_table$options$getCol","enableGlobalFilter","getGlobalAutoFilterFn","getGlobalFilterFn","setGlobalFilter","resetGlobalFilter","expanded","onExpandedChange","paginateExpandedRows","_autoResetExpanded","autoResetExpanded","manualExpanding","resetExpanded","setExpanded","toggleAllRowsExpanded","getIsAllRowsExpanded","_table$initialState$e","getCanSomeRowsExpand","getCanExpand","getToggleAllRowsExpandedHandler","getIsSomeRowsExpanded","getIsExpanded","getExpandedDepth","splitId","getPreExpandedRowModel","_getExpandedRowModel","toggleExpanded","_expanded","exists","oldExpanded","_table$options$getIsR","getIsRowExpanded","_table$options$getRow","getRowCanExpand","enableExpanding","isFullyExpanded","getToggleExpandedHandler","canExpand","_options$_features","_options$initialState","_feature$getInitialSt","queuedTimeout","coreInstance","catch","setOptions","newOptions","mergeOptions","onStateChange","_getRowId","getRowId","_getCoreRowModel","searchAll","_getDefaultColumnDef","defaultColumn","_defaultColumn","resolvedColumnDef","accessorKey","_props$renderValue$to","_props$renderValue","_getColumnDefs","columnDefs","recurseColumns","_resolvedColumnDef$id","replaceAll","originalRow","_result","getFlatColumns","_column$columns2","groupingColumnDef","_getAllFlatColumnsById","flatColumns","flexRender","Comp","proto","isReactComponent","isClassComponent","isExoticComponent","utils_memo","initialDeps","isInitial","memoizedFunction","skipInitialOnChange","updateDeps","notUndefined","approxEqual","debounce","targetWindow","cancel","_isIOSResult","isIOSWebKit","mtp","getRect","defaultKeyExtractor","defaultRangeExtractor","range","startIndex","overscan","endIndex","observeElementRect","scrollElement","observer","run","entry","borderBoxSize","box","inlineSize","blockSize","useAnimationFrameWithResizeObserver","addEventListenerOptions","supportsScrollend","observeElementOffset","readOffset","registerScrollendEvent","useScrollendEvent","fallback","isScrollingResetDelay","createHandler","isScrolling","endHandler","observeOffset","horizontal","isRtl","measureElement","useCachedMeasurements","indexFromElement","getItemKey","itemSizeCache","estimateSize","cachedSize","elementScroll","adjustments","Virtualizer","unsubs","scrollState","measurementsCache","_singleLaneMeasurements","itemSizeCacheVersion","laneAssignments","pendingMin","prevLanes","lanesChangedFlag","lanesSettling","pendingScrollAnchor","scrollRect","scrollOffset","scrollDirection","scrollAdjustments","_iosDeferredAdjustment","_iosTouching","_iosJustTouchEnded","_iosTouchEndTimerId","_intendedScrollOffset","_clampedAdjustment","elementsCache","performance","_ro","isIndexInRange","shouldMeasureDuringScroll","resizeItem","cacheKey","cachedNode","opts2","merged","initialOffset","paddingStart","paddingEnd","scrollPaddingStart","scrollPaddingEnd","rangeExtractor","initialRect","scrollMargin","gap","indexAttribute","initialMeasurementsCache","lanes","anchorTo","followOnAppend","scrollEndThreshold","laneAssignmentMode","prevOptions","anchor","edgeKeysChanged","prevCount","nextCount","measurements","getMeasurements","previousItems","getPreviousKey","getMeasurementKey","prevFirstKey","prevLastKey","getVirtualItemForOffset","getScrollOffset","isAtEnd","getNextKey","firstKey","removedKeys","removedCount","retainedCount","isAppendWithTrim","anchorResolved","anchorDelta","anchorKey","anchorOffset","newMeasurements","idx","anchorItem","newOffset","notify","maybeNotify","calculateRange","_didMount","_willUpdate","getScrollElement","cached","maxAtWrite","prevOffset","_flushIosDeferredIfReady","scheduleScrollReconcile","scrollEl","onTouchEnd","_scrollToOffset","_offset","lastTargetOffset","scrollToEnd","_retryClampedAdjustment","getMaxScrollOffset","cur","delta","getMeasurementOptions","_itemSizeCacheVersion","need","Float64Array","subarray","runningStart","prevIdx","measuredSize","view","Proxy","receiver","charCodeAt","isInteger","lane","Reflect","createLazyMeasurementsView","laneLastIndex","laneEnds","filledLanes","cachedLane","shouldCacheLane","prevIndex","prevInLane","bestLane","bestEnd","bestIdx","outerSize","lastIndex","startIndex2","high","low","middle","currentValue","findNearestBinarySearchFlat","endIndex2","limit","findNearestBinarySearch","endPerLane","pos","startPerLane","calculateRangeImpl","getVirtualIndexes","attributeName","indexStr","scrollIndex","bufferSize","minIndex","maxIndex","key2","prevNode","itemStart","itemSize","wasAtEnd","getVirtualDistanceFromEnd","prevTotalSize","scrollOffsetWithAdj","defaultShouldAdjust","shouldAdjustScroll","shouldAdjustScrollPositionOnItemSizeChange","adjustedSync","applyScrollAdjustment","getVirtualItems","indexes","virtualItems","measurement","useFlat","innerWidth","innerHeight","getDistanceFromEnd","getOffsetForAlignment","toOffset","align","maxOffset","getOffsetForIndex","scrollToOffset","startedAt","stableFrames","scrollToIndex","initialAlign","offsetInfo","scrollBy","lastIdx","endByLane","takeSnapshot","snapshot","scrollToFn","measure","reconcileScroll","targetOffset","targetChanged","viewport","distance","keepSmooth","getCurrentValue","useIsomorphicLayoutEffect","useVirtualizer","useFlushSync","directDomUpdates","directDomUpdatesMode","rerender","useReducer","directRef","mode","lastSize","lastPositions","prevRange","measuringFromRef","applyContainerSize","instance2","totalSize","sizeAxis","applyDirectStyles","useTransform","posAxis","resolvedOptions","shouldRerender","total","useVirtualizerBase","Modal","overlayRef","modalRef","modalContent","createPortal","surface_module_1","surface_module_2","surface_module_3","surface_module_4","surface_module_5","surface_module_6","surface_module_7","surface_module_8","Surface","virtualTable_module_1","virtualTable_module_2","virtualTable_module_3","virtualTable_module_4","virtualTable_module_5","virtualTable_module_6","virtualTable_module_7","virtualTable_module_8","virtualTable_module_9","virtualTable_module_a","virtualTable_module_b","virtualTable_module_c","virtualTable_module_d","virtualTable_module_e","virtualTable_module_f","virtualTable_module_10","virtualTable_module_11","virtualTable_module_12","virtualTable_module_13","virtualTable_module_14","virtualTable_module_15","virtualTable_module_16","virtualTable_module_17","virtualTable_module_18","virtualTable_module_19","virtualTable_module_1a","virtualTable_module_1b","_1c","_1d","_1e","_1f","_20","_21","_22","_23","_24","_25","_26","_27","_28","_29","DefaultColumn","initialValue","meta","tableMeta","setValue","isEdit","setIsEdit","showModal","setShowModal","closeModalRef","additionalViewResult","additionalColumnsViews","payload","editable","updateData","changeValue","withBlur","edit","inputType","autoFocus","shownValue","valueFormat","toFixed","hasCellAction","showInModal","rowsAlign","verticalAlign","ctrlKey","metaKey","tableContainerRef","alphanumericCompare","aParts","bParts","maxLength","aPart","bPart","aIsNumber","bIsNumber","numA","numB","comparison","localeCompare","DateFiltration","setValues","resetValues","numberFiltration_module_2","NumberFiltration","setSelectedItem","handleChangeNumber","HeaderDropdown","headerMeta","selectUnique","sortType","sortAnotherName","filtrationByNumber","filtrationByDate","filtrationByValue","sortBy","setSortBy","filterBy","setFilterBy","headerName","showUniqueValuesCount","leftAdditionalContent","rightAdditionalContent","rowsForUniqueCount","headerResultName","aName","bName","noValue","uniqueValuesCount","sourceRows","sr","valueFilter","fb","columnName","selectedSet","filterSelectedItems","filterNumbers","filterDates","handleSortClick","uniqueFirstPerValue","hasAnyFilter","sortUp","sortDown","headerActionMenuItems","toggleUniqueFirstPerValue","existIndex","nextFlag","newResult","selectedValues","dedupeFirstByColumnValue","seen","createMeta","headerAlign","getNextHorizontalHeaders","currentIndex","lastVirtualColumnIndex","getPrevVerticalHeaders","headersGroups","groupIndex","columnIndex","getNextVerticalHeaders","getPrevHorizontalHeaders","rowMatchesFilter","filterByItem","cellValue","recursiveFilter","filtered","isNew","recursiveSort","sortByItem","sorted","aValue","bValue","compare","getIndexRange","to","isInteractiveSelectionTarget","VirtualTable","onChangeCell","cellWidth","rowButtons","fixedColumnsCount","headerRowHeight","defaultRowHeight","bodyRowHeight","rowActionWidth","dynamicRowHeight","scrollToBottom","useTableContainerAsRootForPopup","borders","globalFilters","globalSorts","onFiltersChange","onSortsChange","leftAdditionalHeaderContent","rightAdditionalHeaderContent","showRowsNumbers","stripedRows","enableSelectRows","onSelectRowsChange","globalSelectedRows","fixedWithNumbersCount","selectedIndexes","setSelectedIndexes","selectedIndexesRef","selectedRowsRef","processedRowsRef","lastSelectedIndexRef","lastSelectedRowRef","selectionDragRef","onSelectRowsChangeRef","enableSelectRowsRef","rowNumberColumnId","memoizedColumns","buildRowsNumbersColumn","template","nextColumns","processedRows","newRows","nextFilterBy","memoizedData","dispatchEvent","CustomEvent","emitSelection","anchorIndex","source","orderedIndexes","nextIndexes","nextRows","previousIndexes","sameSelection","lastSelectedRow","nextAnchorIndex","getSelectedIndexesByRows","selectedRows","fallbackAnchor","partialFiltered","columnsEstimateSize","tableRef","useReactTable","accessRows","originalRows","_row$originalSubRows","getSubRows","originalSubRows","mc","rowsFromTable","rowVirtualizer","columnVirtualizer","stickyIndexes","fixedColumnsWidth","headerGroupHeight","summaryHeaderHeight","headerGroupY","headerIndex","rowsTotalSize","columnsTotalSize","resetFilters","resetSorts","useImperativeHandle","rightBorderElement","containerWidth","tableWidth","bottomBorderElement","containerHeight","tableHeight","scrollListener","marginLeftChangingElements","virtualRows","virtualColumns","virtualRowsSizeByIndex","getRowSizeByIndex","getRowspanHeight","rowspan","clampedRowspan","lastRowIndex","rowsInRange","bordersCompensation","isCellCoveredByRowspan","upperCell","getRowIndexFromClientY","rowsCount","applySelectionGesture","isDrag","drag","gesture","ctrl","baseIndexes","computeRowSelection","clearSelectionDrag","pointerId","isDragCapable","hasDragged","hasPointerCapture","releasePointerCapture","getRowBackgroundColor","rowZIndexByIndex","zIndex","maxSpan","headerBaseZIndex","renderHeaderNode","metaLabel","headerLines","line","Fragment","before","after","rowElement","getRowIndexFromTarget","onVerticalScrollbar","onHorizontalScrollbar","isScrollbarPointerEvent","isCellActionTarget","isModifierClick","startX","startY","setPointerCapture","onPointerMove","deltaX","deltaY","distanceSquared","rowSelectionDragThresholdPx","visibleY","scrollContainerWhileSelecting","onPointerUp","onPointerCancel","onDragStart","hgi","innerCell","columnFilterIndex","rowsForChecklist","afterNode","nextHorizontalHeaders","nextVerticalHeaders","prevHorizontalHeaders","prevVerticalHeaders","thWidth","thHeight","translateY","borderTop","virtualRow","virtualCol","isSticky","currentCell","isCoveredByRowspan","hasRowspan","justifyContent","ab","treeViewItem_module_4","treeViewItem_module_5","TreeViewItem","searchValue","isSelectable","startIcons","isOpen","setIsOpen","hasChildren","TreeView","withSearch","setSearchValue","onChangeSearchValue","filteredData","getFilteredTree","lowerCasedSearch","TreeView_TreeView","pairs_module_3","pairs_module_4","pairs_module_7","TypographyWithTooltip","setTooltip","textOverflow","onMouseEnter","Pairs","pairs","column1Width","column2Width","showBorder","minRowHeight","pair","minHeight","rowContainer","labelsContainer","valuesContainer","chip_module_1","chip_module_2","chip_module_3","chip_module_4","chip_module_5","chip_module_6","chip_module_7","chip_module_8","chip_module_9","chip_module_a","chip_module_b","chip_module_c","chip_module_d","chip_module_e","Chip","iconPlacement","secondary","onIconClick","handleIconClick","IconComponent","isIconLeft","isIconRight","Loader","alt","src","alert_module_1","alert_module_2","alert_module_3","alert_module_4","alert_module_5","alert_module_6","alert_module_7","alert_module_8","alert_module_9","alert_module_a","defaultIcons","success","warning","Alert","resolvedIcon","card_module_1","card_module_2","card_module_3","card_module_4","card_module_5","card_module_6","card_module_7","card_module_8","card_module_9","Card","surfaceType","actions","headerOverlay","fullSizeBody","hasHeader","tabs_module_1","tabs_module_2","tabs_module_3","tabs_module_4","tabs_module_5","tabs_module_6","tabs_module_7","tabs_module_8","tabs_module_9","tabs_module_a","tabs_module_b","tabs_module_c","tabs_module_d","tabs_module_e","tabs_module_f","tabs_module_10","tabs_module_11","TabsInner","defaultSelected","filled","disableBorder","allowDeselect","showTooltips","useExternalState","isMounted","setIsMounted","selectedTab","setSelectedTab","tabContent","tab","tabSelected","tabDisabled","tabTitle","tabSelectedTitle","dangerouslySetInnerHTML","__html","tabBorder","tabSelectedBorder","Tabs","Layout","withoutHeader","scopeCss","ensureStyleElement","existing","ThemeContext","useTheme","useThemeWithFallback","theme","toggleTheme","setTheme","ThemeProvider","styleContainer","setThemeState","savedTheme","localStorage","getItem","matchMedia","getInitialTheme","textContent","themes","light","dark","darkBlue","mediaQuery","handleChange","setItem","newTheme"],"sourceRoot":""}