@ryuzaki13/react-foundation-ui 1.5.12 → 1.5.13

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 (209) hide show
  1. package/package.json +2 -1
  2. package/storybook-static/assets/{Badge-BeE_wR-e.js → Badge-Cz9gcxIU.js} +1 -1
  3. package/storybook-static/assets/{Badge.stories-BMLNLp7n.js → Badge.stories-PV88uXCB.js} +1 -1
  4. package/storybook-static/assets/{BadgeList-B1SSw9no.js → BadgeList-BMO51PtO.js} +1 -1
  5. package/storybook-static/assets/{Button-CS7C3s7J.js → Button-BfLxUIid.js} +1 -1
  6. package/storybook-static/assets/{Button-Vi1a4Q0N.js → Button-DQxw6N8K.js} +1 -1
  7. package/storybook-static/assets/{Button.stories-BAyszGDt.js → Button.stories-NlwBLVkf.js} +1 -1
  8. package/storybook-static/assets/{CalendarView-CroQMfFX.js → CalendarView-C_i7clUL.js} +1 -1
  9. package/storybook-static/assets/{CheckBox-BSQDnjGm.js → CheckBox-3WpAVlwd.js} +1 -1
  10. package/storybook-static/assets/{CheckBox-Cj9xdsq2.js → CheckBox-Drc-88GM.js} +1 -1
  11. package/storybook-static/assets/{CheckBox.stories-JSQfqZK5.js → CheckBox.stories-D4IsLr4P.js} +1 -1
  12. package/storybook-static/assets/{Color-6AOWCN3U-D5PnNXqh.js → Color-6AOWCN3U-CPY8DhM_.js} +1 -1
  13. package/storybook-static/assets/{ContextMenu-CocuusYO.js → ContextMenu-BjBW8_sr.js} +1 -1
  14. package/storybook-static/assets/{ContextMenu-rzpDsRZx.js → ContextMenu-D2--kuIS.js} +1 -1
  15. package/storybook-static/assets/{ContextMenu.stories-CO9uACMA.js → ContextMenu.stories-yGhy89Pi.js} +1 -1
  16. package/storybook-static/assets/{DateInput-BFUW6ZnL.js → DateInput-Dex3NjVs.js} +1 -1
  17. package/storybook-static/assets/{DateInput-Du3E2ET_.js → DateInput-G4c2mjqq.js} +1 -1
  18. package/storybook-static/assets/{DateInput.stories-DDa04kSj.js → DateInput.stories-5ciPhgGf.js} +1 -1
  19. package/storybook-static/assets/{DateRangePresetSelect-CSiFT5F5.js → DateRangePresetSelect-C9M3c98a.js} +1 -1
  20. package/storybook-static/assets/{DateRangePresetSelect-D6xM7__Q.js → DateRangePresetSelect-DJ4HV2xU.js} +1 -1
  21. package/storybook-static/assets/{DateRangePresetSelect.stories-eF33IA75.js → DateRangePresetSelect.stories-C8Ohsfia.js} +1 -1
  22. package/storybook-static/assets/{Detail-BE-E18-T.js → Detail-CSPYsUEC.js} +1 -1
  23. package/storybook-static/assets/{Detail.stories-NCvSVTmL.js → Detail.stories-LsOTK5pf.js} +1 -1
  24. package/storybook-static/assets/{Dialog-DSmGfP7k.js → Dialog-BjEcdbGi.js} +1 -1
  25. package/storybook-static/assets/{Dialog-C4HX9Sgs.js → Dialog-C8i0iW4a.js} +1 -1
  26. package/storybook-static/assets/{Dialog.stories-CVtvkV1R.js → Dialog.stories-BnmqXDWO.js} +1 -1
  27. package/storybook-static/assets/{Disclosure-CwhrFXI8.js → Disclosure-Cvsl0gPE.js} +1 -1
  28. package/storybook-static/assets/{Disclosure.stories-DHOMAfuS.js → Disclosure.stories-CFfYWULd.js} +1 -1
  29. package/storybook-static/assets/{DisclosureGroup-Be79LGlr.js → DisclosureGroup-ZnY0phsi.js} +1 -1
  30. package/storybook-static/assets/{DocsRenderer-JROSPFPF-DIVlRluw.js → DocsRenderer-JROSPFPF-8jGqLFb9.js} +1 -1
  31. package/storybook-static/assets/{DropZone-BZCyapHh.js → DropZone-DFqqqipb.js} +1 -1
  32. package/storybook-static/assets/{DropZone-5B0A-vFn.js → DropZone-DvuKp6tN.js} +1 -1
  33. package/storybook-static/assets/{DropZone.stories-BlTy-nE5.js → DropZone.stories-B1xdFmz3.js} +1 -1
  34. package/storybook-static/assets/{DropdownMenu-CqSO4Xln.js → DropdownMenu-BrgLHYbc.js} +1 -1
  35. package/storybook-static/assets/{ExpandableActionPanel-DGK_hHxg.js → ExpandableActionPanel-CBOJ7TTT.js} +1 -1
  36. package/storybook-static/assets/{ExpandableActionPanel.stories-IH6Gcybn.js → ExpandableActionPanel.stories-ColZw5gd.js} +1 -1
  37. package/storybook-static/assets/{Flex-D_Ov-qrX.js → Flex-BT_QGMVX.js} +1 -1
  38. package/storybook-static/assets/{Flex.stories-DyibLGoC.js → Flex.stories-CEgggepS.js} +1 -1
  39. package/storybook-static/assets/{FloatingPopover-Dt0czWS7.js → FloatingPopover-ClEj7JDK.js} +1 -1
  40. package/storybook-static/assets/{FormattedTableCell-BkTdSSLq.js → FormattedTableCell-Cwt_acDE.js} +1 -1
  41. package/storybook-static/assets/{Grid-CwZOkx33.js → Grid-CfILre0m.js} +1 -1
  42. package/storybook-static/assets/{Grid.stories-Dsu31tqi.js → Grid.stories-wQ7jvA5X.js} +1 -1
  43. package/storybook-static/assets/{ImageCropper.stories-BqRshYgd.js → ImageCropper.stories-BMJDf8-2.js} +1 -1
  44. package/storybook-static/assets/{ImageRenderer-DiEaiphg.js → ImageRenderer-COuwgno_.js} +1 -1
  45. package/storybook-static/assets/{ImageRenderer.stories-DXk_A_1N.js → ImageRenderer.stories-DsdXyXKD.js} +1 -1
  46. package/storybook-static/assets/{ImageView.stories-TuZxh1Fr.js → ImageView.stories-iNAQGgcZ.js} +1 -1
  47. package/storybook-static/assets/{ImageViewer.stories-CL796ExX.js → ImageViewer.stories-BYAuiSK7.js} +2 -2
  48. package/storybook-static/assets/{ImageViewerRuntime-CCVrFr6t.js → ImageViewerRuntime-DVlrAVlM.js} +1 -1
  49. package/storybook-static/assets/{Input-CRRkPSmn.js → Input-BhXx34oj.js} +1 -1
  50. package/storybook-static/assets/{Input-Dmum9ojv.js → Input-DCQXBGK4.js} +1 -1
  51. package/storybook-static/assets/{Input.stories-C8y8Gzjn.js → Input.stories-cYqQabmU.js} +1 -1
  52. package/storybook-static/assets/{InputDateTime-DozxwdSK.js → InputDateTime-BqmrEg_Q.js} +1 -1
  53. package/storybook-static/assets/{InputDateTime.stories-Dm86teu7.js → InputDateTime.stories-C3xQIS7z.js} +1 -1
  54. package/storybook-static/assets/{InputFile-Cm1ipP_c.js → InputFile-BCZ1O6Id.js} +1 -1
  55. package/storybook-static/assets/{InputFile-DPYOyrse.js → InputFile-Bth1Jhjf.js} +1 -1
  56. package/storybook-static/assets/{InputFile.stories-A9sXRTPi.js → InputFile.stories-Cn9z-0xo.js} +1 -1
  57. package/storybook-static/assets/{InputFiles-DqYEI0vF.js → InputFiles-CURwAma0.js} +1 -1
  58. package/storybook-static/assets/{InputFiles-D6ibnj3Y.js → InputFiles-c9zsOv2D.js} +1 -1
  59. package/storybook-static/assets/{InputFiles.stories-CTK_G05d.js → InputFiles.stories-m9aTBp1E.js} +1 -1
  60. package/storybook-static/assets/{InputFilesList-Cw2vB_I4.js → InputFilesList-CokmKz6s.js} +1 -1
  61. package/storybook-static/assets/{InputImage-eWMt3Rpi.js → InputImage-ONEbMmSy.js} +1 -1
  62. package/storybook-static/assets/{InputImage-YaDG8UBR.js → InputImage-hzPQOP_G.js} +1 -1
  63. package/storybook-static/assets/{InputImage.stories-Ba5v3XyF.js → InputImage.stories-DtmL7qrl.js} +1 -1
  64. package/storybook-static/assets/{InteractiveComponents-C3WdIF2c.js → InteractiveComponents-D9I5JYap.js} +1 -1
  65. package/storybook-static/assets/{InteractiveComponents.stories-CPqOBcYI.js → InteractiveComponents.stories-Rkp13MQ5.js} +1 -1
  66. package/storybook-static/assets/{LayoutPicker-mQiBJ85c.js → LayoutPicker-BodO442K.js} +1 -1
  67. package/storybook-static/assets/{LayoutPicker-CAIujH3t.js → LayoutPicker-Dy9IvK0b.js} +1 -1
  68. package/storybook-static/assets/{LayoutPicker.stories-BAqhsvOh.js → LayoutPicker.stories-exb5TXXF.js} +1 -1
  69. package/storybook-static/assets/{Listbox-vwKVwC47.js → Listbox-CQ80dSOo.js} +1 -1
  70. package/storybook-static/assets/{Listbox-BCfY4SYB.js → Listbox-CZ1FQQ5X.js} +1 -1
  71. package/storybook-static/assets/{Listbox.stories-CA7VrO6z.js → Listbox.stories-Nfzs72Yd.js} +1 -1
  72. package/storybook-static/assets/{Modal-DvisZoA2.js → Modal--uBl58UW.js} +1 -1
  73. package/storybook-static/assets/{Modal.stories-Dj66uXRY.js → Modal.stories-D77rBBBh.js} +1 -1
  74. package/storybook-static/assets/{ModalManagerProvider-CSsTef9-.js → ModalManagerProvider-Dwn7kE4K.js} +1 -1
  75. package/storybook-static/assets/{MultiSelect-C4uT-lwM.js → MultiSelect-B725mcqy.js} +1 -1
  76. package/storybook-static/assets/{MultiSelect-CpNX4wyD.js → MultiSelect-BlTby36f.js} +1 -1
  77. package/storybook-static/assets/{MultiSelect.stories-CjIw1FBQ.js → MultiSelect.stories-BEHlAAJJ.js} +1 -1
  78. package/storybook-static/assets/{NoData-J6gIe2DW.js → NoData-DLuw3XVk.js} +1 -1
  79. package/storybook-static/assets/{NotificationsHost-B4vBCIUo.js → NotificationsHost-BB5Np8PK.js} +1 -1
  80. package/storybook-static/assets/{NotificationsHost.stories-Btx0-jS4.js → NotificationsHost.stories-DDadi6Mw.js} +1 -1
  81. package/storybook-static/assets/{ODataMultiSelect-BRWRd-T0.js → ODataMultiSelect-XFTdhfCe.js} +1 -1
  82. package/storybook-static/assets/{ODataMultiSelect.stories-AcwmUSqN.js → ODataMultiSelect.stories-V1UHe_oU.js} +1 -1
  83. package/storybook-static/assets/{ODataSelect-DKF1dPMT.js → ODataSelect-C01W8jth.js} +1 -1
  84. package/storybook-static/assets/{ODataSelect.stories-BCCDQvG1.js → ODataSelect.stories-GBg5TBT_.js} +1 -1
  85. package/storybook-static/assets/{ODataTreeMultiSelect-Jmrc7xEO.js → ODataTreeMultiSelect-sGEW_iPs.js} +1 -1
  86. package/storybook-static/assets/{ODataTreeMultiSelect.stories-BWX3TG9B.js → ODataTreeMultiSelect.stories-CKN_SvQU.js} +1 -1
  87. package/storybook-static/assets/{ODataTreeSelect-CGO2HVbN.js → ODataTreeSelect-1hCNPZNo.js} +1 -1
  88. package/storybook-static/assets/{ODataTreeSelect.stories-DSmhE-Li.js → ODataTreeSelect.stories-GDmyjoWv.js} +1 -1
  89. package/storybook-static/assets/{OneStepScroller-pU0sAFEq.js → OneStepScroller-dsU38i0h.js} +1 -1
  90. package/storybook-static/assets/{PeriodSelect-DwozNnWV.js → PeriodSelect-B5IQUCox.js} +1 -1
  91. package/storybook-static/assets/{PeriodSelect-DmogN2kp.js → PeriodSelect-Dar6tgT-.js} +1 -1
  92. package/storybook-static/assets/{PeriodSelect.stories-Cwad_AnS.js → PeriodSelect.stories-s4UcTVBB.js} +1 -1
  93. package/storybook-static/assets/{PickerSelectionToolbar-B3N3Sv51.js → PickerSelectionToolbar-BrUGVuF4.js} +1 -1
  94. package/storybook-static/assets/{PickerTriggerActions-BurXeCTR.js → PickerTriggerActions-CiB7RNtz.js} +1 -1
  95. package/storybook-static/assets/{Popover-DYoRYOJQ.js → Popover-BUpM2SdA.js} +1 -1
  96. package/storybook-static/assets/{Popover-Bi3JzbPI.js → Popover-CElnnd4d.js} +1 -1
  97. package/storybook-static/assets/{Popover.stories-jhxw-37b.js → Popover.stories-CDPYRGg5.js} +1 -1
  98. package/storybook-static/assets/{PresetRangeDateInput-5o-VfEMw.js → PresetRangeDateInput-DKbX277t.js} +1 -1
  99. package/storybook-static/assets/{PresetRangeDateInput-4GkY4C-R.js → PresetRangeDateInput-DWsBB7Xe.js} +1 -1
  100. package/storybook-static/assets/{PresetRangeDateInput.stories-BLrQFysM.js → PresetRangeDateInput.stories-CLnxG1Su.js} +1 -1
  101. package/storybook-static/assets/{PresetSelect-VSLjZIEN.js → PresetSelect-TONMNVox.js} +1 -1
  102. package/storybook-static/assets/{RadioButton-BmDJRjUd.js → RadioButton-C8cdy1c5.js} +1 -1
  103. package/storybook-static/assets/{RadioButton-DtZXxK2y.js → RadioButton-CHp5HFET.js} +1 -1
  104. package/storybook-static/assets/{RadioButton.stories-CnjoSTqx.js → RadioButton.stories-D-wI-ysI.js} +1 -1
  105. package/storybook-static/assets/{RadioGroup-DKQukpG2.js → RadioGroup-Cyzz_ISM.js} +1 -1
  106. package/storybook-static/assets/{RadioGroup-C5avdavC.js → RadioGroup-RnbEh9jf.js} +1 -1
  107. package/storybook-static/assets/{RadioGroup.stories-D2RkFaPs.js → RadioGroup.stories-DAocx-vl.js} +1 -1
  108. package/storybook-static/assets/{Scrollable-BfWwu2om.js → Scrollable-BZwDWzCP.js} +1 -1
  109. package/storybook-static/assets/{Select-wCbHE4lQ.js → Select-BMWvHZb0.js} +1 -1
  110. package/storybook-static/assets/{Select-C8NwIhWM.js → Select-QJmM58Sy.js} +1 -1
  111. package/storybook-static/assets/{Select.stories-a2seNrPn.js → Select.stories-Tt0ajJXV.js} +1 -1
  112. package/storybook-static/assets/{SelectOptionContent-ZSxvUFLm.js → SelectOptionContent-DZcX0XcL.js} +1 -1
  113. package/storybook-static/assets/{SerializableSelect-4Goej9W_.js → SerializableSelect-Cb2eKzWt.js} +1 -1
  114. package/storybook-static/assets/{SerializableSelect.stories-BkCW3jp4.js → SerializableSelect.stories-BMGIdje_.js} +1 -1
  115. package/storybook-static/assets/{SingleDateTimeInput-C2QxXHnT.js → SingleDateTimeInput--8TJ-hnE.js} +1 -1
  116. package/storybook-static/assets/{SingleDateTimeInput-BfG4Wffa.js → SingleDateTimeInput-ByN30Wn3.js} +1 -1
  117. package/storybook-static/assets/{SingleDateTimeInput.stories-D1EHS_Lj.js → SingleDateTimeInput.stories-CrsfwMCv.js} +1 -1
  118. package/storybook-static/assets/{Slider-COfQFgR8.js → Slider-B7Zh8pKd.js} +1 -1
  119. package/storybook-static/assets/{Slider-DutRipBc.js → Slider-eV8LAbRY.js} +1 -1
  120. package/storybook-static/assets/{Slider.stories-DXNQd3RV.js → Slider.stories-2Fh_zSe4.js} +1 -1
  121. package/storybook-static/assets/{SliderInput-D15wYNK7.js → SliderInput-2r2n9oBs.js} +1 -1
  122. package/storybook-static/assets/{SliderInput-CKdp2Gmo.js → SliderInput-BjWQPhW1.js} +1 -1
  123. package/storybook-static/assets/{SliderInput.stories-BHmBapUE.js → SliderInput.stories-RrseFw59.js} +1 -1
  124. package/storybook-static/assets/{Sortable-Cv98zRm4.js → Sortable-DHi8kx5A.js} +1 -1
  125. package/storybook-static/assets/{Sortable.stories-VjnupnmR.js → Sortable.stories-DJoStzvM.js} +1 -1
  126. package/storybook-static/assets/{Splitter-jOqNKtm0.js → Splitter-Dxol4S_V.js} +1 -1
  127. package/storybook-static/assets/{Splitter.stories-BTJf67_i.js → Splitter.stories-BbVOMBqo.js} +1 -1
  128. package/storybook-static/assets/{StateSelect-BNXXcX4c.js → StateSelect-3OnKvOr4.js} +1 -1
  129. package/storybook-static/assets/{StateSelect-D8Zep8nb.js → StateSelect-pbm7Jf8f.js} +1 -1
  130. package/storybook-static/assets/{StateSelect.stories-B0nR14db.js → StateSelect.stories-CgTE3-yP.js} +1 -1
  131. package/storybook-static/assets/{StringToggle.stories-Cat4CWpp.js → StringToggle.stories-BSJLw3CZ.js} +1 -1
  132. package/storybook-static/assets/{Switch-CmxJq-nM.js → Switch-BdBKEluZ.js} +1 -1
  133. package/storybook-static/assets/{Switch-CNbwWtfu.js → Switch-BxBEQCPT.js} +1 -1
  134. package/storybook-static/assets/{Switch.stories-T7MZJAke.js → Switch.stories-D5DDiey7.js} +1 -1
  135. package/storybook-static/assets/{Table-C7D3rt22.js → Table-tNWO7Xkx.js} +1 -1
  136. package/storybook-static/assets/{Table.stories-C0jQhruO.js → Table.stories-Co6W6DfX.js} +1 -1
  137. package/storybook-static/assets/{Tabs-BEO2hPOw.js → Tabs-MhG7k5kZ.js} +1 -1
  138. package/storybook-static/assets/{Tabs.stories-CgVofLQc.js → Tabs.stories-6-cDteqF.js} +1 -1
  139. package/storybook-static/assets/{TabsBox-C4gzhmdB.js → TabsBox-CbcUNOlb.js} +1 -1
  140. package/storybook-static/assets/{TagInput-C_nlfbRh.js → TagInput-BvhI42-e.js} +1 -1
  141. package/storybook-static/assets/{TagInput.stories-BMCmW5eG.js → TagInput.stories-Bh03CP2k.js} +1 -1
  142. package/storybook-static/assets/{Text-BqKrUz4Q.js → Text-CvyKTMrH.js} +1 -1
  143. package/storybook-static/assets/{Textarea-BRstHvhs.js → Textarea-CZORYVJ_.js} +1 -1
  144. package/storybook-static/assets/{Textarea-BbNW9GUS.js → Textarea-JurrghA5.js} +1 -1
  145. package/storybook-static/assets/{Textarea.stories-B_22Qe-e.js → Textarea.stories-BUDqqVKy.js} +1 -1
  146. package/storybook-static/assets/{TimePanel-9AlN21FL.js → TimePanel-DIKKUv5f.js} +1 -1
  147. package/storybook-static/assets/{TimePanel.stories-yxNANrSL.js → TimePanel.stories-B1q_i8WF.js} +1 -1
  148. package/storybook-static/assets/{Toggle-Bl89R1NL.js → Toggle-BGRFjquY.js} +1 -1
  149. package/storybook-static/assets/{Toggle-YLom0uCh.js → Toggle-C3KWroQa.js} +1 -1
  150. package/storybook-static/assets/{Toggle.stories-BGIwKyic.js → Toggle.stories-CqaiA6sq.js} +1 -1
  151. package/storybook-static/assets/{TreeMultiSelect-C9hv75Z0.js → TreeMultiSelect-BJt6pYdc.js} +1 -1
  152. package/storybook-static/assets/{TreeMultiSelect-Dhl8PI6r.js → TreeMultiSelect-BT1UYS2s.js} +1 -1
  153. package/storybook-static/assets/{TreeMultiSelect.stories-DefpU9Nq.js → TreeMultiSelect.stories-B6fswq0n.js} +1 -1
  154. package/storybook-static/assets/{TreePickerBase-B5guKjut.js → TreePickerBase-Ezb14TOv.js} +1 -1
  155. package/storybook-static/assets/{TreeSelect-D1wgUUfD.js → TreeSelect-6ad8aM5F.js} +1 -1
  156. package/storybook-static/assets/{TreeSelect-Cbtl72S2.js → TreeSelect-CdxWhNPr.js} +1 -1
  157. package/storybook-static/assets/{TreeSelect.stories-DK6Z_n2h.js → TreeSelect.stories-BMjSPnlt.js} +1 -1
  158. package/storybook-static/assets/{TreeTable-CC5CA5OL.js → TreeTable-B10lvNT_.js} +1 -1
  159. package/storybook-static/assets/{TreeTable.stories-DVYLy82M.js → TreeTable.stories-BOkFmk-a.js} +1 -1
  160. package/storybook-static/assets/{async-CDaecudw.js → async-Wscr5OK0.js} +1 -1
  161. package/storybook-static/assets/{blocks-DFQ7gHL7.js → blocks-BkGgmJsC.js} +3 -3
  162. package/storybook-static/assets/{browserAndReact-DNd3NO2z.js → browserAndReact-BKmF0BgP.js} +6 -41
  163. package/storybook-static/assets/{check-CDGa2frI.js → check-uBaZUURY.js} +1 -1
  164. package/storybook-static/assets/{chevron-down-B5gF19ie.js → chevron-down-DbISRZCX.js} +1 -1
  165. package/storybook-static/assets/{chevron-left-BhhrtQ5w.js → chevron-left-Cb-kl5mh.js} +1 -1
  166. package/storybook-static/assets/{chevron-right-ULlpFrtQ.js → chevron-right-D99XGTe7.js} +1 -1
  167. package/storybook-static/assets/{chunk-W22LQPXL-bz_jGWFd.js → chunk-W22LQPXL-D3-dGAP5.js} +1 -1
  168. package/storybook-static/assets/{circle-alert-DG_0NWce.js → circle-alert-CxdnePpP.js} +1 -1
  169. package/storybook-static/assets/{circle-check-DKgLpHr-.js → circle-check-DxbzyOrj.js} +1 -1
  170. package/storybook-static/assets/{components-CgxL1hHE.js → components-NKMCS9u_.js} +3 -3
  171. package/storybook-static/assets/{contextMenu-D_apFypV.js → contextMenu-CrE8d-C8.js} +1 -1
  172. package/storybook-static/assets/{defaultRenderers-CK6DySTx.js → defaultRenderers-DLjGcYhl.js} +1 -1
  173. package/storybook-static/assets/{download-BMlQunb2.js → download-B34Dyboo.js} +1 -1
  174. package/storybook-static/assets/{filesAndExcel-BmDCLG9Y.js → filesAndExcel-D0WmBd17.js} +6 -36
  175. package/storybook-static/assets/{floating-ui.react-DaDI6aL_.js → floating-ui.react-CHmsuwKl.js} +1 -1
  176. package/storybook-static/assets/formatters-B5IRTBCO.js +202 -0
  177. package/storybook-static/assets/{formatters-runtime-CsjNRxSG.js → formatters-runtime-DIIzhbds.js} +11 -66
  178. package/storybook-static/assets/foundationLib-CVhEJ6js.js +25 -0
  179. package/storybook-static/assets/{hooks-C9DxdAXO.js → hooks-BDibLnHt.js} +1 -1
  180. package/storybook-static/assets/{iframe-BOYfiRbQ.js → iframe-CD1cMwos.js} +3 -3
  181. package/storybook-static/assets/iframe-CTou9CRA.js +1 -0
  182. package/storybook-static/assets/{iframe-OPLBHfTR.css → iframe-I5gZKSOP.css} +1 -1
  183. package/storybook-static/assets/{info-BuKiC7d0.js → info-YWjqfWxe.js} +1 -1
  184. package/storybook-static/assets/{odata-CGjX6csD.js → odata-D3YkIfXJ.js} +1 -1
  185. package/storybook-static/assets/odataAndTables-C2flJmi6.js +77 -0
  186. package/storybook-static/assets/{odataFetchFn-DQBb33CS.js → odataFetchFn-DHf6YwiM.js} +1 -1
  187. package/storybook-static/assets/{odataStoryFixtures-BYjSHUPv.js → odataStoryFixtures-C7XqnT73.js} +1 -1
  188. package/storybook-static/assets/{persisted-BmsVMmao.js → persisted-CKfZAtRr.js} +1 -1
  189. package/storybook-static/assets/pureUtilities-Bwoj6fXN.js +30 -0
  190. package/storybook-static/assets/{react-CPygFl97.js → react-BONe4qKn.js} +1 -1
  191. package/storybook-static/assets/{refresh-cw-D9xWA1ag.js → refresh-cw-DpHq4LQP.js} +1 -1
  192. package/storybook-static/assets/{runtimeAndState-7kpVxxK8.js → runtimeAndState-DsHleu6Y.js} +4 -28
  193. package/storybook-static/assets/{settings-2-D5vKtCuh.js → settings-2-Dz6u0Wf2.js} +1 -1
  194. package/storybook-static/assets/{sortable-7ZhGDUUH.js → sortable-VOkfa1Z-.js} +1 -1
  195. package/storybook-static/assets/{syntaxhighlighter-T5IQBZDB-BgPG-zNQ.js → syntaxhighlighter-T5IQBZDB-C4OOYkZu.js} +1 -1
  196. package/storybook-static/assets/{trash-2-COVTeKHf.js → trash-2-DTPcXUiI.js} +1 -1
  197. package/storybook-static/assets/{triangle-alert-Dc8CWEGx.js → triangle-alert-DUI5nsd3.js} +1 -1
  198. package/storybook-static/assets/{useODataSelectBase-BllI2D0F.js → useODataSelectBase-BpntR4Iz.js} +1 -1
  199. package/storybook-static/assets/{useODataTreeData-CNVWCnCt.js → useODataTreeData-C2vzjXPp.js} +1 -1
  200. package/storybook-static/assets/{usePickerQuery-C0ti4hti.js → usePickerQuery-BDYoi7Rg.js} +1 -1
  201. package/storybook-static/assets/{usePickerTriggerController-BSWvRSBy.js → usePickerTriggerController-DAUdKKpa.js} +1 -1
  202. package/storybook-static/assets/{x-BVvgKMRp.js → x-B8aXMeuU.js} +1 -1
  203. package/storybook-static/iframe.html +3 -3
  204. package/storybook-static/project.json +1 -1
  205. package/storybook-static/assets/formatters-C5iLXNhs.js +0 -306
  206. package/storybook-static/assets/foundationLib-BcQgD58A.js +0 -82
  207. package/storybook-static/assets/iframe-Dy-1_8OT.js +0 -1
  208. package/storybook-static/assets/odataAndTables-CyGjgcKX.js +0 -126
  209. package/storybook-static/assets/pureUtilities-BbRRZPJI.js +0 -69
@@ -1,2 +1,2 @@
1
- import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-BOYfiRbQ.js";import{i as n,r}from"./react-qN2cStNd.js";import{c as i,l as a,m as o}from"./blocks-DFQ7gHL7.js";var s;function c(){return(c=e((()=>{s='# Context Menu\n\nУниверсальный модуль меню с двумя сценариями открытия:\n\n- `DropdownMenu` — открытие по обычному клику.\n- `ContextMenu` — открытие строго по событию `contextmenu` (правый клик), также поддержан клавиатурный вызов `Shift+F10` и клавиша `ContextMenu`.\n\nРеализация разделена на:\n\n- функциональный слой в `src/shared/lib/context-menu`;\n- UI-слой в `src/shared/ui/basic/context-menu`.\n\nМодуль готов к production-использованию: поддерживает controlled/uncontrolled режим, позиционирование через `floating-ui`, анимацию через `motion`, базовую a11y-разметку и клавиатурную навигацию.\n\n---\n\n## Быстрый старт\n\n```tsx\nimport { ContextMenu, DropdownMenu } from "@/shared/ui";\n```\n\n### Обычное меню (по клику)\n\n```tsx\n<DropdownMenu>\n <DropdownMenu.Trigger>\n <button type="button">Действия</button>\n </DropdownMenu.Trigger>\n\n <DropdownMenu.Content>\n <DropdownMenu.Item>Редактировать</DropdownMenu.Item>\n <DropdownMenu.Item>Копировать</DropdownMenu.Item>\n <DropdownMenu.Separator />\n <DropdownMenu.Item>Удалить</DropdownMenu.Item>\n </DropdownMenu.Content>\n</DropdownMenu>\n```\n\n### Контекстное меню (по правому клику)\n\n```tsx\n<ContextMenu>\n <ContextMenu.Trigger>\n <div style={{ width: 320, height: 180 }}>Нажмите правой кнопкой мыши</div>\n </ContextMenu.Trigger>\n\n <ContextMenu.Content>\n <ContextMenu.Item>Переименовать</ContextMenu.Item>\n <ContextMenu.Item>Дублировать</ContextMenu.Item>\n <ContextMenu.Separator />\n <ContextMenu.Item>Переместить в корзину</ContextMenu.Item>\n </ContextMenu.Content>\n</ContextMenu>\n```\n\n### Радиальное контекстное меню\n\nРадиальное меню подходит для короткого набора частых действий, которые удобно выбирать вокруг точки вызова. Для длинных списков, групп, разделителей и вложенных сценариев используйте обычный `ContextMenu.Content`.\n\n```tsx\n<ContextMenu>\n <ContextMenu.Trigger>\n <div style={{ width: 320, height: 180 }}>Нажмите правой кнопкой мыши</div>\n </ContextMenu.Trigger>\n\n <ContextMenu.RadialContent>\n <ContextMenu.RadialItem icon={<PencilLine />}>Править</ContextMenu.RadialItem>\n <ContextMenu.RadialItem icon={<Copy />}>Копия</ContextMenu.RadialItem>\n <ContextMenu.RadialItem icon={<Pin />}>Закрепить</ContextMenu.RadialItem>\n <ContextMenu.RadialItem icon={<Eye />}>Просмотр</ContextMenu.RadialItem>\n </ContextMenu.RadialContent>\n</ContextMenu>\n```\n\nВ v1 радиальное меню поддерживает выбор только кликом по пункту. Выбор жестом по направлению движения и отпусканию кнопки мыши не реализован.\n\n---\n\n## API: UI-слой\n\n## `DropdownMenu`\n\nRoot-компонент для меню, открываемого по клику.\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| -------------- | ---------------------------------- | ---------------- | ---------------------------------------------------------------------------------- |\n| `children` | `React.ReactNode` | — | Композиция из `Trigger`, `Content` и опционально `Item`, `Separator`, `GroupLabel` |\n| `placement` | `Placement` (`@floating-ui/react`) | `"bottom-start"` | Позиция меню относительно trigger-элемента |\n| `open` | `boolean` | — | Controlled-состояние открытия |\n| `defaultOpen` | `boolean` | `false` | Начальное состояние в uncontrolled-режиме |\n| `onOpenChange` | `(open: boolean) => void` | — | Колбэк изменения состояния |\n\n---\n\n## `ContextMenu`\n\nRoot-компонент для меню, открываемого по `contextmenu`.\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| -------------- | ---------------------------------- | --------------- | ---------------------------------------------------------------------------------- |\n| `children` | `React.ReactNode` | — | Композиция из `Trigger`, `Content` и опционально `Item`, `Separator`, `GroupLabel` |\n| `placement` | `Placement` (`@floating-ui/react`) | `"right-start"` | Позиция меню относительно точки правого клика |\n| `open` | `boolean` | — | Controlled-состояние открытия |\n| `defaultOpen` | `boolean` | `false` | Начальное состояние в uncontrolled-режиме |\n| `onOpenChange` | `(open: boolean) => void` | — | Колбэк изменения состояния |\n\n---\n\n## `ContextMenu.RadialContent`\n\nКольцевой контейнер для коротких контекстных команд вокруг точки открытия.\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| --------------------- | -------------------------------------------------------------------------- | ------------ | --------------------------------------------- |\n| `children` | `React.ReactNode \\| ((ctx: { closeMenu: () => void }) => React.ReactNode)` | — | Набор `ContextMenu.RadialItem` |\n| `className` | `string` | — | Дополнительный CSS-класс контейнера |\n| `closeOnOutside` | `boolean` | `true` | Закрывать ли меню при клике вне него |\n| `closeOnEscape` | `boolean` | `true` | Закрывать ли меню по клавише `Escape` |\n| `disableOutsideClick` | `boolean` | `false` | Полностью выключить закрытие по клику снаружи |\n| `restoreFocus` | `boolean` | `true` | Возвращать ли фокус в trigger после закрытия |\n| `radius` | `number` | `76` | Радиус раскладки пунктов в пикселях |\n| `itemSize` | `number` | `64` | Размер одного пункта в пикселях |\n| `closeLabel` | `string` | `"Закрыть"` | Текст и `aria-label` центральной кнопки |\n\n### Поведение\n\n- Рендер в `document.body` через портал.\n- Центрируется на точке правого клика или на центре trigger-элемента при `Shift+F10`.\n- Центральная кнопка закрывает меню и не участвует в раскладке `RadialItem`.\n- Не выходит за границы viewport.\n- Навигация с клавиатуры: `ArrowLeft`, `ArrowRight`, `ArrowUp`, `ArrowDown`, `Home`, `End`, `Escape`.\n- Оптимальный диапазон — 4-8 пунктов.\n\n---\n\n## `ContextMenu.RadialItem`\n\nПункт радиального меню.\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| --------------- | ------------------------------------------------------ | ------------ | --------------------------- |\n| `children` | `React.ReactNode` | — | Подпись пункта |\n| `icon` | `React.ReactNode` | — | Иконка над подписью |\n| `className` | `string` | — | Дополнительный CSS-класс |\n| `disabled` | `boolean` | `false` | Блокирует выбор пункта |\n| `closeOnSelect` | `boolean` | `true` | Закрывать меню после выбора |\n| `onSelect` | `(event: React.MouseEvent<HTMLButtonElement>) => void` | — | Обработчик выбора |\n\n---\n\n## `*.Trigger`\n\nКомпоненты-триггеры:\n\n- `DropdownMenu.Trigger`\n- `ContextMenu.Trigger`\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| ---------- | -------------------- | ------------ | ------------------------------------------------------------------- |\n| `children` | `React.ReactElement` | — | Единственный дочерний элемент, в который пробрасываются обработчики |\n\n### Важные детали\n\n- Для `DropdownMenu.Trigger` используется `onClick`.\n- Для `ContextMenu.Trigger` используется `onContextMenu` (с `preventDefault()`).\n- В оба trigger-компонента добавляются `aria-haspopup="menu"` и `aria-expanded`.\n- Вызов через клавиатуру работает в обоих триггерах: `Shift+F10` и `ContextMenu`.\n\n---\n\n## `*.Content`\n\nКомпонент отображения меню:\n\n- `DropdownMenu.Content`\n- `ContextMenu.Content`\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| --------------------- | -------------------------------------------------------------------------- | ------------ | ---------------------------------------------- |\n| `children` | `React.ReactNode \\| ((ctx: { closeMenu: () => void }) => React.ReactNode)` | — | Контент меню или render-function с `closeMenu` |\n| `className` | `string` | — | Дополнительный CSS-класс контейнера меню |\n| `closeOnOutside` | `boolean` | `true` | Закрывать ли меню при клике вне него |\n| `closeOnEscape` | `boolean` | `true` | Закрывать ли меню по клавише `Escape` |\n| `disableOutsideClick` | `boolean` | `false` | Полностью выключить закрытие по клику снаружи |\n\n### Поведение по умолчанию\n\n- Рендер в `document.body` через портал.\n- Роль контейнера: `role="menu"`.\n- Автофокус на первый доступный пункт меню.\n- Навигация с клавиатуры:\n- `ArrowDown`, `ArrowUp`\n- `Home`, `End`\n- `Escape`\n\n---\n\n## `*.Item`\n\nПункт меню:\n\n- `DropdownMenu.Item`\n- `ContextMenu.Item`\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| --------------- | ------------------------------------------------ | ------------ | ---------------------------------- |\n| `children` | `React.ReactNode` | — | Текст/контент пункта |\n| `icon` | `React.ReactNode` | — | Иконка слева |\n| `hotKey` | `string` | — | Подсказка сочетания клавиш справа |\n| `className` | `string` | — | Дополнительный CSS-класс |\n| `disabled` | `boolean` | `false` | Блокирует выбор пункта |\n| `href` | `string` | — | Рендер как `<a>` вместо `<button>` |\n| `target` | `string` | — | Атрибут ссылки |\n| `rel` | `string` | — | Атрибут ссылки |\n| `closeOnSelect` | `boolean` | `true` | Закрывать меню после выбора |\n| `onSelect` | `(event: React.MouseEvent<HTMLElement>) => void` | — | Обработчик выбора |\n\n### Поведение\n\n- Если передан `href`, рендерится ссылка `<a role="menuitem">`.\n- Если `href` не передан, рендерится `<button role="menuitem">`.\n- Если `disabled`, выбор блокируется и закрытие не выполняется.\n\n---\n\n## `*.Separator`\n\nРазделитель группы пунктов.\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| ----------- | -------- | ------------ | ------------------------ |\n| `className` | `string` | — | Дополнительный CSS-класс |\n\n---\n\n## `*.GroupLabel`\n\nЛейбл группы пунктов.\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| ----------- | ----------------- | ------------ | ------------------------ |\n| `children` | `React.ReactNode` | — | Текст группы |\n| `className` | `string` | — | Дополнительный CSS-класс |\n\n---\n\n## API: функциональный слой (`src/shared/lib/context-menu`)\n\nИмпорт:\n\n```ts\nimport {\n initialMenuState,\n openMenu,\n closeMenu,\n toggleMenu,\n getMenuPointFromEvent,\n getMenuPointFromRect,\n createVirtualAnchor\n} from "@/shared/lib/context-menu";\n```\n\n### Типы\n\n```ts\ninterface MenuPoint {\n x: number;\n y: number;\n}\n\ntype MenuOpenSource = "click" | "contextmenu" | "keyboard" | "programmatic";\n\ntype MenuAnchor = { type: "element"; element: HTMLElement } | { type: "point"; point: MenuPoint; contextElement?: Element | null };\n\ninterface MenuState {\n open: boolean;\n source: MenuOpenSource | null;\n anchor: MenuAnchor | null;\n}\n\ninterface OpenMenuPayload {\n source: MenuOpenSource;\n anchor: MenuAnchor;\n}\n```\n\n### Функции состояния\n\n| Функция | Сигнатура | Назначение |\n| ------------------ | ----------------------------------------------------------- | ------------------------------------- |\n| `initialMenuState` | `MenuState` | Начальное состояние закрытого меню |\n| `openMenu` | `(payload: OpenMenuPayload) => MenuState` | Создать состояние открытого меню |\n| `closeMenu` | `(state: MenuState) => MenuState` | Закрыть меню и очистить anchor/source |\n| `toggleMenu` | `(state: MenuState, payload: OpenMenuPayload) => MenuState` | Переключить состояние |\n\n### Функции позиционирования\n\n| Функция | Сигнатура | Назначение |\n| ----------------------- | ------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------- |\n| `getMenuPointFromEvent` | `(event: { clientX: number; clientY: number }) => MenuPoint` | Получить координаты из mouse event |\n| `getMenuPointFromRect` | `(rect: { left: number; top: number; width: number; height: number }) => MenuPoint` | Получить центр прямоугольника |\n| `createVirtualAnchor` | `(point: MenuPoint, contextElement?: Element \\| null) => { getBoundingClientRect(): DOMRect; contextElement?: Element }` | Создать virtual anchor для `floating-ui` |\n\n---\n\n## Примеры использования\n\n## 1) Controlled `DropdownMenu`\n\n```tsx\nconst [open, setOpen] = useState(false);\n\nreturn (\n <DropdownMenu open={open} onOpenChange={setOpen}>\n <DropdownMenu.Trigger>\n <button type="button">{open ? "Скрыть" : "Показать"} меню</button>\n </DropdownMenu.Trigger>\n <DropdownMenu.Content>\n <DropdownMenu.Item onSelect={() => console.log("Edit")}>Редактировать</DropdownMenu.Item>\n <DropdownMenu.Item onSelect={() => setOpen(false)}>Закрыть вручную</DropdownMenu.Item>\n </DropdownMenu.Content>\n </DropdownMenu>\n);\n```\n\n## 2) Controlled `ContextMenu`\n\n```tsx\nconst [open, setOpen] = useState(false);\n\nreturn (\n <ContextMenu open={open} onOpenChange={setOpen}>\n <ContextMenu.Trigger>\n <div tabIndex={0}>Правая кнопка мыши</div>\n </ContextMenu.Trigger>\n <ContextMenu.Content>\n <ContextMenu.Item onSelect={() => alert("Открыть")}>Открыть</ContextMenu.Item>\n </ContextMenu.Content>\n </ContextMenu>\n);\n```\n\n## 3) Группы, иконки, горячие клавиши\n\n```tsx\n<DropdownMenu>\n <DropdownMenu.Trigger>\n <button type="button">Меню</button>\n </DropdownMenu.Trigger>\n <DropdownMenu.Content>\n <DropdownMenu.GroupLabel>Документ</DropdownMenu.GroupLabel>\n <DropdownMenu.Item icon={<FilePenLine size={14} />} hotKey="Ctrl+E">\n Редактировать\n </DropdownMenu.Item>\n <DropdownMenu.Item icon={<Copy size={14} />} hotKey="Ctrl+C">\n Копировать\n </DropdownMenu.Item>\n <DropdownMenu.Separator />\n <DropdownMenu.GroupLabel>Опасные</DropdownMenu.GroupLabel>\n <DropdownMenu.Item icon={<Trash2 size={14} />} hotKey="Del">\n Удалить\n </DropdownMenu.Item>\n </DropdownMenu.Content>\n</DropdownMenu>\n```\n\n## 4) Пункт-ссылка\n\n```tsx\n<ContextMenu.Item href="/docs/123" target="_blank" rel="noreferrer">\n Открыть документацию\n</ContextMenu.Item>\n```\n\n## 5) Оставлять меню открытым после выбора\n\n```tsx\n<DropdownMenu.Item closeOnSelect={false} onSelect={() => setFilter("active")}>\n Только активные\n</DropdownMenu.Item>\n```\n\n## 6) Render-function контента с `closeMenu`\n\n```tsx\n<ContextMenu.Content>\n {({ closeMenu }) => (\n <div>\n <ContextMenu.Item onSelect={() => runCommand("rename")}>Переименовать</ContextMenu.Item>\n <button type="button" onClick={closeMenu}>\n Закрыть\n </button>\n </div>\n )}\n</ContextMenu.Content>\n```\n\n## 7) Асинхронный `onSelect` с ручным закрытием\n\n```tsx\n<DropdownMenu.Item\n closeOnSelect={false}\n onSelect={async () => {\n await saveDraft();\n notify("Черновик сохранен");\n }}>\n Сохранить черновик\n</DropdownMenu.Item>\n```\n\n## 8) Отключить закрытие по клику вне меню\n\n```tsx\n<DropdownMenu.Content disableOutsideClick closeOnEscape>\n <DropdownMenu.Item>Пункт</DropdownMenu.Item>\n</DropdownMenu.Content>\n```\n\n## 9) Кастомные стили контейнера\n\n```tsx\n<ContextMenu.Content className="myContextMenu">\n <ContextMenu.Item>Кастомный пункт</ContextMenu.Item>\n</ContextMenu.Content>\n```\n\n```scss\n.myContextMenu {\n min-width: 18rem;\n max-width: 28rem;\n}\n```\n\n## 10) Использование low-level функций `shared/lib/context-menu`\n\n```ts\nimport { closeMenu, initialMenuState, openMenu, toggleMenu } from "@/shared/lib/context-menu";\n\nlet state = initialMenuState;\n\nstate = openMenu({\n source: "programmatic",\n anchor: {\n type: "point",\n point: { x: 100, y: 200 }\n }\n});\n\nstate = toggleMenu(state, {\n source: "click",\n anchor: {\n type: "point",\n point: { x: 120, y: 220 }\n }\n});\n\nstate = closeMenu(state);\n```\n\n---\n\n## Доступность и клавиатура\n\n- `Trigger` получает `aria-haspopup="menu"` и `aria-expanded`.\n- Контент рендерится с `role="menu"`.\n- Элементы действий рендерятся с `role="menuitem"`.\n- Поддержка клавиш:\n- `Shift+F10` / `ContextMenu` для открытия;\n- `ArrowUp` / `ArrowDown` для перемещения;\n- `Home` / `End` для перехода к первому/последнему пункту;\n- `Escape` для закрытия.\n\n---\n\n## Storybook\n\nИстории находятся в:\n\n- `src/shared/ui/atomic/context-menu/stories/ContextMenu.stories.tsx`\n\nОсновные сценарии:\n\n- `DropdownMenu / Базовый`\n- `ContextMenu / По правому клику`\n- `DropdownMenu / Контролируемый`\n\n---\n\n## Внутренние детали реализации\n\n- Позиционирование: `@floating-ui/react`.\n- Анимация открытия/закрытия: `motion/react` (`AnimatePresence`, `motion.div`).\n- Для совместимости с анимацией позиционирование `floating-ui` переведено на `top/left` (`transform: false`), чтобы исключить конфликт `transform` со стороны `motion`.\n\n---\n\n## Тесты\n\nПокрыты функциональные утилиты слоя `shared/lib/context-menu`:\n\n- `src/shared/lib/context-menu/state.test.ts`\n- `src/shared/lib/context-menu/anchor.test.ts`\n\nЗапуск:\n\n```bash\nnpx vitest run src/shared/lib/context-menu/state.test.ts src/shared/lib/context-menu/anchor.test.ts\n```\n'})))()}function l(e){return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(a,{title:`Документация/shared/ui/contextMenu`}),`
1
+ import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-CD1cMwos.js";import{i as n,r}from"./react-qN2cStNd.js";import{c as i,l as a,m as o}from"./blocks-BkGgmJsC.js";var s;function c(){return(c=e((()=>{s='# Context Menu\n\nУниверсальный модуль меню с двумя сценариями открытия:\n\n- `DropdownMenu` — открытие по обычному клику.\n- `ContextMenu` — открытие строго по событию `contextmenu` (правый клик), также поддержан клавиатурный вызов `Shift+F10` и клавиша `ContextMenu`.\n\nРеализация разделена на:\n\n- функциональный слой в `src/shared/lib/context-menu`;\n- UI-слой в `src/shared/ui/basic/context-menu`.\n\nМодуль готов к production-использованию: поддерживает controlled/uncontrolled режим, позиционирование через `floating-ui`, анимацию через `motion`, базовую a11y-разметку и клавиатурную навигацию.\n\n---\n\n## Быстрый старт\n\n```tsx\nimport { ContextMenu, DropdownMenu } from "@/shared/ui";\n```\n\n### Обычное меню (по клику)\n\n```tsx\n<DropdownMenu>\n <DropdownMenu.Trigger>\n <button type="button">Действия</button>\n </DropdownMenu.Trigger>\n\n <DropdownMenu.Content>\n <DropdownMenu.Item>Редактировать</DropdownMenu.Item>\n <DropdownMenu.Item>Копировать</DropdownMenu.Item>\n <DropdownMenu.Separator />\n <DropdownMenu.Item>Удалить</DropdownMenu.Item>\n </DropdownMenu.Content>\n</DropdownMenu>\n```\n\n### Контекстное меню (по правому клику)\n\n```tsx\n<ContextMenu>\n <ContextMenu.Trigger>\n <div style={{ width: 320, height: 180 }}>Нажмите правой кнопкой мыши</div>\n </ContextMenu.Trigger>\n\n <ContextMenu.Content>\n <ContextMenu.Item>Переименовать</ContextMenu.Item>\n <ContextMenu.Item>Дублировать</ContextMenu.Item>\n <ContextMenu.Separator />\n <ContextMenu.Item>Переместить в корзину</ContextMenu.Item>\n </ContextMenu.Content>\n</ContextMenu>\n```\n\n### Радиальное контекстное меню\n\nРадиальное меню подходит для короткого набора частых действий, которые удобно выбирать вокруг точки вызова. Для длинных списков, групп, разделителей и вложенных сценариев используйте обычный `ContextMenu.Content`.\n\n```tsx\n<ContextMenu>\n <ContextMenu.Trigger>\n <div style={{ width: 320, height: 180 }}>Нажмите правой кнопкой мыши</div>\n </ContextMenu.Trigger>\n\n <ContextMenu.RadialContent>\n <ContextMenu.RadialItem icon={<PencilLine />}>Править</ContextMenu.RadialItem>\n <ContextMenu.RadialItem icon={<Copy />}>Копия</ContextMenu.RadialItem>\n <ContextMenu.RadialItem icon={<Pin />}>Закрепить</ContextMenu.RadialItem>\n <ContextMenu.RadialItem icon={<Eye />}>Просмотр</ContextMenu.RadialItem>\n </ContextMenu.RadialContent>\n</ContextMenu>\n```\n\nВ v1 радиальное меню поддерживает выбор только кликом по пункту. Выбор жестом по направлению движения и отпусканию кнопки мыши не реализован.\n\n---\n\n## API: UI-слой\n\n## `DropdownMenu`\n\nRoot-компонент для меню, открываемого по клику.\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| -------------- | ---------------------------------- | ---------------- | ---------------------------------------------------------------------------------- |\n| `children` | `React.ReactNode` | — | Композиция из `Trigger`, `Content` и опционально `Item`, `Separator`, `GroupLabel` |\n| `placement` | `Placement` (`@floating-ui/react`) | `"bottom-start"` | Позиция меню относительно trigger-элемента |\n| `open` | `boolean` | — | Controlled-состояние открытия |\n| `defaultOpen` | `boolean` | `false` | Начальное состояние в uncontrolled-режиме |\n| `onOpenChange` | `(open: boolean) => void` | — | Колбэк изменения состояния |\n\n---\n\n## `ContextMenu`\n\nRoot-компонент для меню, открываемого по `contextmenu`.\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| -------------- | ---------------------------------- | --------------- | ---------------------------------------------------------------------------------- |\n| `children` | `React.ReactNode` | — | Композиция из `Trigger`, `Content` и опционально `Item`, `Separator`, `GroupLabel` |\n| `placement` | `Placement` (`@floating-ui/react`) | `"right-start"` | Позиция меню относительно точки правого клика |\n| `open` | `boolean` | — | Controlled-состояние открытия |\n| `defaultOpen` | `boolean` | `false` | Начальное состояние в uncontrolled-режиме |\n| `onOpenChange` | `(open: boolean) => void` | — | Колбэк изменения состояния |\n\n---\n\n## `ContextMenu.RadialContent`\n\nКольцевой контейнер для коротких контекстных команд вокруг точки открытия.\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| --------------------- | -------------------------------------------------------------------------- | ------------ | --------------------------------------------- |\n| `children` | `React.ReactNode \\| ((ctx: { closeMenu: () => void }) => React.ReactNode)` | — | Набор `ContextMenu.RadialItem` |\n| `className` | `string` | — | Дополнительный CSS-класс контейнера |\n| `closeOnOutside` | `boolean` | `true` | Закрывать ли меню при клике вне него |\n| `closeOnEscape` | `boolean` | `true` | Закрывать ли меню по клавише `Escape` |\n| `disableOutsideClick` | `boolean` | `false` | Полностью выключить закрытие по клику снаружи |\n| `restoreFocus` | `boolean` | `true` | Возвращать ли фокус в trigger после закрытия |\n| `radius` | `number` | `76` | Радиус раскладки пунктов в пикселях |\n| `itemSize` | `number` | `64` | Размер одного пункта в пикселях |\n| `closeLabel` | `string` | `"Закрыть"` | Текст и `aria-label` центральной кнопки |\n\n### Поведение\n\n- Рендер в `document.body` через портал.\n- Центрируется на точке правого клика или на центре trigger-элемента при `Shift+F10`.\n- Центральная кнопка закрывает меню и не участвует в раскладке `RadialItem`.\n- Не выходит за границы viewport.\n- Навигация с клавиатуры: `ArrowLeft`, `ArrowRight`, `ArrowUp`, `ArrowDown`, `Home`, `End`, `Escape`.\n- Оптимальный диапазон — 4-8 пунктов.\n\n---\n\n## `ContextMenu.RadialItem`\n\nПункт радиального меню.\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| --------------- | ------------------------------------------------------ | ------------ | --------------------------- |\n| `children` | `React.ReactNode` | — | Подпись пункта |\n| `icon` | `React.ReactNode` | — | Иконка над подписью |\n| `className` | `string` | — | Дополнительный CSS-класс |\n| `disabled` | `boolean` | `false` | Блокирует выбор пункта |\n| `closeOnSelect` | `boolean` | `true` | Закрывать меню после выбора |\n| `onSelect` | `(event: React.MouseEvent<HTMLButtonElement>) => void` | — | Обработчик выбора |\n\n---\n\n## `*.Trigger`\n\nКомпоненты-триггеры:\n\n- `DropdownMenu.Trigger`\n- `ContextMenu.Trigger`\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| ---------- | -------------------- | ------------ | ------------------------------------------------------------------- |\n| `children` | `React.ReactElement` | — | Единственный дочерний элемент, в который пробрасываются обработчики |\n\n### Важные детали\n\n- Для `DropdownMenu.Trigger` используется `onClick`.\n- Для `ContextMenu.Trigger` используется `onContextMenu` (с `preventDefault()`).\n- В оба trigger-компонента добавляются `aria-haspopup="menu"` и `aria-expanded`.\n- Вызов через клавиатуру работает в обоих триггерах: `Shift+F10` и `ContextMenu`.\n\n---\n\n## `*.Content`\n\nКомпонент отображения меню:\n\n- `DropdownMenu.Content`\n- `ContextMenu.Content`\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| --------------------- | -------------------------------------------------------------------------- | ------------ | ---------------------------------------------- |\n| `children` | `React.ReactNode \\| ((ctx: { closeMenu: () => void }) => React.ReactNode)` | — | Контент меню или render-function с `closeMenu` |\n| `className` | `string` | — | Дополнительный CSS-класс контейнера меню |\n| `closeOnOutside` | `boolean` | `true` | Закрывать ли меню при клике вне него |\n| `closeOnEscape` | `boolean` | `true` | Закрывать ли меню по клавише `Escape` |\n| `disableOutsideClick` | `boolean` | `false` | Полностью выключить закрытие по клику снаружи |\n\n### Поведение по умолчанию\n\n- Рендер в `document.body` через портал.\n- Роль контейнера: `role="menu"`.\n- Автофокус на первый доступный пункт меню.\n- Навигация с клавиатуры:\n- `ArrowDown`, `ArrowUp`\n- `Home`, `End`\n- `Escape`\n\n---\n\n## `*.Item`\n\nПункт меню:\n\n- `DropdownMenu.Item`\n- `ContextMenu.Item`\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| --------------- | ------------------------------------------------ | ------------ | ---------------------------------- |\n| `children` | `React.ReactNode` | — | Текст/контент пункта |\n| `icon` | `React.ReactNode` | — | Иконка слева |\n| `hotKey` | `string` | — | Подсказка сочетания клавиш справа |\n| `className` | `string` | — | Дополнительный CSS-класс |\n| `disabled` | `boolean` | `false` | Блокирует выбор пункта |\n| `href` | `string` | — | Рендер как `<a>` вместо `<button>` |\n| `target` | `string` | — | Атрибут ссылки |\n| `rel` | `string` | — | Атрибут ссылки |\n| `closeOnSelect` | `boolean` | `true` | Закрывать меню после выбора |\n| `onSelect` | `(event: React.MouseEvent<HTMLElement>) => void` | — | Обработчик выбора |\n\n### Поведение\n\n- Если передан `href`, рендерится ссылка `<a role="menuitem">`.\n- Если `href` не передан, рендерится `<button role="menuitem">`.\n- Если `disabled`, выбор блокируется и закрытие не выполняется.\n\n---\n\n## `*.Separator`\n\nРазделитель группы пунктов.\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| ----------- | -------- | ------------ | ------------------------ |\n| `className` | `string` | — | Дополнительный CSS-класс |\n\n---\n\n## `*.GroupLabel`\n\nЛейбл группы пунктов.\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| ----------- | ----------------- | ------------ | ------------------------ |\n| `children` | `React.ReactNode` | — | Текст группы |\n| `className` | `string` | — | Дополнительный CSS-класс |\n\n---\n\n## API: функциональный слой (`src/shared/lib/context-menu`)\n\nИмпорт:\n\n```ts\nimport {\n initialMenuState,\n openMenu,\n closeMenu,\n toggleMenu,\n getMenuPointFromEvent,\n getMenuPointFromRect,\n createVirtualAnchor\n} from "@/shared/lib/context-menu";\n```\n\n### Типы\n\n```ts\ninterface MenuPoint {\n x: number;\n y: number;\n}\n\ntype MenuOpenSource = "click" | "contextmenu" | "keyboard" | "programmatic";\n\ntype MenuAnchor = { type: "element"; element: HTMLElement } | { type: "point"; point: MenuPoint; contextElement?: Element | null };\n\ninterface MenuState {\n open: boolean;\n source: MenuOpenSource | null;\n anchor: MenuAnchor | null;\n}\n\ninterface OpenMenuPayload {\n source: MenuOpenSource;\n anchor: MenuAnchor;\n}\n```\n\n### Функции состояния\n\n| Функция | Сигнатура | Назначение |\n| ------------------ | ----------------------------------------------------------- | ------------------------------------- |\n| `initialMenuState` | `MenuState` | Начальное состояние закрытого меню |\n| `openMenu` | `(payload: OpenMenuPayload) => MenuState` | Создать состояние открытого меню |\n| `closeMenu` | `(state: MenuState) => MenuState` | Закрыть меню и очистить anchor/source |\n| `toggleMenu` | `(state: MenuState, payload: OpenMenuPayload) => MenuState` | Переключить состояние |\n\n### Функции позиционирования\n\n| Функция | Сигнатура | Назначение |\n| ----------------------- | ------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------- |\n| `getMenuPointFromEvent` | `(event: { clientX: number; clientY: number }) => MenuPoint` | Получить координаты из mouse event |\n| `getMenuPointFromRect` | `(rect: { left: number; top: number; width: number; height: number }) => MenuPoint` | Получить центр прямоугольника |\n| `createVirtualAnchor` | `(point: MenuPoint, contextElement?: Element \\| null) => { getBoundingClientRect(): DOMRect; contextElement?: Element }` | Создать virtual anchor для `floating-ui` |\n\n---\n\n## Примеры использования\n\n## 1) Controlled `DropdownMenu`\n\n```tsx\nconst [open, setOpen] = useState(false);\n\nreturn (\n <DropdownMenu open={open} onOpenChange={setOpen}>\n <DropdownMenu.Trigger>\n <button type="button">{open ? "Скрыть" : "Показать"} меню</button>\n </DropdownMenu.Trigger>\n <DropdownMenu.Content>\n <DropdownMenu.Item onSelect={() => console.log("Edit")}>Редактировать</DropdownMenu.Item>\n <DropdownMenu.Item onSelect={() => setOpen(false)}>Закрыть вручную</DropdownMenu.Item>\n </DropdownMenu.Content>\n </DropdownMenu>\n);\n```\n\n## 2) Controlled `ContextMenu`\n\n```tsx\nconst [open, setOpen] = useState(false);\n\nreturn (\n <ContextMenu open={open} onOpenChange={setOpen}>\n <ContextMenu.Trigger>\n <div tabIndex={0}>Правая кнопка мыши</div>\n </ContextMenu.Trigger>\n <ContextMenu.Content>\n <ContextMenu.Item onSelect={() => alert("Открыть")}>Открыть</ContextMenu.Item>\n </ContextMenu.Content>\n </ContextMenu>\n);\n```\n\n## 3) Группы, иконки, горячие клавиши\n\n```tsx\n<DropdownMenu>\n <DropdownMenu.Trigger>\n <button type="button">Меню</button>\n </DropdownMenu.Trigger>\n <DropdownMenu.Content>\n <DropdownMenu.GroupLabel>Документ</DropdownMenu.GroupLabel>\n <DropdownMenu.Item icon={<FilePenLine size={14} />} hotKey="Ctrl+E">\n Редактировать\n </DropdownMenu.Item>\n <DropdownMenu.Item icon={<Copy size={14} />} hotKey="Ctrl+C">\n Копировать\n </DropdownMenu.Item>\n <DropdownMenu.Separator />\n <DropdownMenu.GroupLabel>Опасные</DropdownMenu.GroupLabel>\n <DropdownMenu.Item icon={<Trash2 size={14} />} hotKey="Del">\n Удалить\n </DropdownMenu.Item>\n </DropdownMenu.Content>\n</DropdownMenu>\n```\n\n## 4) Пункт-ссылка\n\n```tsx\n<ContextMenu.Item href="/docs/123" target="_blank" rel="noreferrer">\n Открыть документацию\n</ContextMenu.Item>\n```\n\n## 5) Оставлять меню открытым после выбора\n\n```tsx\n<DropdownMenu.Item closeOnSelect={false} onSelect={() => setFilter("active")}>\n Только активные\n</DropdownMenu.Item>\n```\n\n## 6) Render-function контента с `closeMenu`\n\n```tsx\n<ContextMenu.Content>\n {({ closeMenu }) => (\n <div>\n <ContextMenu.Item onSelect={() => runCommand("rename")}>Переименовать</ContextMenu.Item>\n <button type="button" onClick={closeMenu}>\n Закрыть\n </button>\n </div>\n )}\n</ContextMenu.Content>\n```\n\n## 7) Асинхронный `onSelect` с ручным закрытием\n\n```tsx\n<DropdownMenu.Item\n closeOnSelect={false}\n onSelect={async () => {\n await saveDraft();\n notify("Черновик сохранен");\n }}>\n Сохранить черновик\n</DropdownMenu.Item>\n```\n\n## 8) Отключить закрытие по клику вне меню\n\n```tsx\n<DropdownMenu.Content disableOutsideClick closeOnEscape>\n <DropdownMenu.Item>Пункт</DropdownMenu.Item>\n</DropdownMenu.Content>\n```\n\n## 9) Кастомные стили контейнера\n\n```tsx\n<ContextMenu.Content className="myContextMenu">\n <ContextMenu.Item>Кастомный пункт</ContextMenu.Item>\n</ContextMenu.Content>\n```\n\n```scss\n.myContextMenu {\n min-width: 18rem;\n max-width: 28rem;\n}\n```\n\n## 10) Использование low-level функций `shared/lib/context-menu`\n\n```ts\nimport { closeMenu, initialMenuState, openMenu, toggleMenu } from "@/shared/lib/context-menu";\n\nlet state = initialMenuState;\n\nstate = openMenu({\n source: "programmatic",\n anchor: {\n type: "point",\n point: { x: 100, y: 200 }\n }\n});\n\nstate = toggleMenu(state, {\n source: "click",\n anchor: {\n type: "point",\n point: { x: 120, y: 220 }\n }\n});\n\nstate = closeMenu(state);\n```\n\n---\n\n## Доступность и клавиатура\n\n- `Trigger` получает `aria-haspopup="menu"` и `aria-expanded`.\n- Контент рендерится с `role="menu"`.\n- Элементы действий рендерятся с `role="menuitem"`.\n- Поддержка клавиш:\n- `Shift+F10` / `ContextMenu` для открытия;\n- `ArrowUp` / `ArrowDown` для перемещения;\n- `Home` / `End` для перехода к первому/последнему пункту;\n- `Escape` для закрытия.\n\n---\n\n## Storybook\n\nИстории находятся в:\n\n- `src/shared/ui/atomic/context-menu/stories/ContextMenu.stories.tsx`\n\nОсновные сценарии:\n\n- `DropdownMenu / Базовый`\n- `ContextMenu / По правому клику`\n- `DropdownMenu / Контролируемый`\n\n---\n\n## Внутренние детали реализации\n\n- Позиционирование: `@floating-ui/react`.\n- Анимация открытия/закрытия: `motion/react` (`AnimatePresence`, `motion.div`).\n- Для совместимости с анимацией позиционирование `floating-ui` переведено на `top/left` (`transform: false`), чтобы исключить конфликт `transform` со стороны `motion`.\n\n---\n\n## Тесты\n\nПокрыты функциональные утилиты слоя `shared/lib/context-menu`:\n\n- `src/shared/lib/context-menu/state.test.ts`\n- `src/shared/lib/context-menu/anchor.test.ts`\n\nЗапуск:\n\n```bash\nnpx vitest run src/shared/lib/context-menu/state.test.ts src/shared/lib/context-menu/anchor.test.ts\n```\n'})))()}function l(e){return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(a,{title:`Документация/shared/ui/contextMenu`}),`
2
2
  `,(0,d.jsx)(i,{children:s})]})}function u(e={}){let{wrapper:t}={...n(),...e.components};return t?(0,d.jsx)(t,{...e,children:(0,d.jsx)(l,{...e})}):l(e)}var d;function f(){return(f=e((()=>{d=t(),r(),o(),c()})))()}f();export{u as default};
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{n}from"./iframe-BOYfiRbQ.js";import{n as r,t as i}from"./SelectOptionContent-ZSxvUFLm.js";import{g as a,y as o}from"./formatters-CVj-3Vn0-BFaHJqZL.js";import{n as s,t as c}from"./PickerSelectionToolbar-B3N3Sv51.js";function l({value:e,open:t,onCommit:n,onOpen:r,onClose:i,isEqual:a}){let o=(0,u.useRef)(!1),[s,c]=(0,u.useState)(e);return(0,u.useEffect)(()=>{o.current&&!t&&(a(s,e)||n(s),i?.(s)),o.current=t},[s,a,i,n,t,e]),{draftValue:s,setDraftValue:c,prepareOpen:()=>{c(e),r?.()}}}var u;function d(){return(d=e((()=>{u=t()})))()}function f({item:e,textKey:t,codeKey:n,highlight:r}){return(0,p.jsx)(i,{label:e[t],code:n&&e[n],highlight:r})}var p;function m(){return(m=e((()=>{r(),p=n(),f.__docgenInfo={description:"Отдельная опция внутри `MultiSelect`. Отрисовывает состояние выбора и подсветку текста для найденных совпадений.",methods:[],displayName:`MultiSelectOption`,props:{item:{required:!0,tsType:{name:`CollectionItem`},description:``},textKey:{required:!0,tsType:{name:`string`},description:``},codeKey:{required:!1,tsType:{name:`string`},description:``},highlight:{required:!1,tsType:{name:`string`},description:``},selected:{required:!0,tsType:{name:`boolean`},description:``}}}})))()}var h,g,_,v;function y(){return(y=e((()=>{h=`_9oSdQi`,g=`iobHig`,_=`yatXso`,v={multiSelect:h,multiSelectTokens:g,multiSelectToken:_}})))()}function b({value:e}){return e?(0,x.jsx)(`div`,{className:v.multiSelectTokens,children:(0,x.jsx)(`div`,{className:v.multiSelectToken,children:e})}):null}var x;function S(){return(S=e((()=>{y(),x=n(),b.__docgenInfo={description:"Токен выбранного значения в `MultiSelect`. Показывает выбранный элемент и кнопку его удаления из текущего набора.",methods:[],displayName:`MultiSelectToken`,props:{value:{required:!0,tsType:{name:`union`,raw:`string | undefined`,elements:[{name:`string`},{name:`undefined`}]},description:``}}}})))()}function C(e){return a(e,A)}function w(e,t,n){if(n)return n;let r=e[0];return r?Object.keys(r).find(e=>e!==t)??t:t}function T(e,t,n){if(e.length===0)return;if(e.length>1)return C(e.length);let r=w(e,t,n);return e[0]?.[r]??e[0]?.[t]}function E(e){return function(t){return(0,k.jsx)(b,{value:T(t.selectedItems,e.codeKey,e.textKey)})}}function D(e){return(0,k.jsx)(c,{onSelectAll:e.selectAll,onDeselectAll:e.deselectAll})}function O(e){return function(t,n){return(0,k.jsx)(f,{item:t,selected:n.selected,highlight:n.highlightQuery,textKey:w([t],e.codeKey,e.textKey),codeKey:e.hideCode?void 0:e.codeKey})}}var k,A;function j(){return(j=e((()=>{o(),s(),m(),S(),k=n(),A={one:`элемент`,few:`элемента`,many:`элементов`},D.__docgenInfo={description:``,methods:[],displayName:`renderDefaultMultiSelectToolbar`,props:{selectedItems:{required:!0,tsType:{name:`Array`,elements:[{name:`CollectionItem`}],raw:`CollectionItem[]`},description:``},committedSelectedItems:{required:!0,tsType:{name:`Array`,elements:[{name:`CollectionItem`}],raw:`CollectionItem[]`},description:``},availableItems:{required:!0,tsType:{name:`Array`,elements:[{name:`CollectionItem`}],raw:`CollectionItem[]`},description:``},query:{required:!0,tsType:{name:`string`},description:``},open:{required:!0,tsType:{name:`boolean`},description:``},clearSelection:{required:!0,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},selectAll:{required:!0,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},deselectAll:{required:!0,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``}}}})))()}export{D as a,S as c,d,l as f,j as i,v as l,E as n,w as o,C as r,b as s,O as t,y as u};
1
+ import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{n}from"./iframe-CD1cMwos.js";import{n as r,t as i}from"./SelectOptionContent-DZcX0XcL.js";import{g as a,y as o}from"./formatters-CVj-3Vn0-BFaHJqZL.js";import{n as s,t as c}from"./PickerSelectionToolbar-BrUGVuF4.js";function l({value:e,open:t,onCommit:n,onOpen:r,onClose:i,isEqual:a}){let o=(0,u.useRef)(!1),[s,c]=(0,u.useState)(e);return(0,u.useEffect)(()=>{o.current&&!t&&(a(s,e)||n(s),i?.(s)),o.current=t},[s,a,i,n,t,e]),{draftValue:s,setDraftValue:c,prepareOpen:()=>{c(e),r?.()}}}var u;function d(){return(d=e((()=>{u=t()})))()}function f({item:e,textKey:t,codeKey:n,highlight:r}){return(0,p.jsx)(i,{label:e[t],code:n&&e[n],highlight:r})}var p;function m(){return(m=e((()=>{r(),p=n(),f.__docgenInfo={description:"Отдельная опция внутри `MultiSelect`. Отрисовывает состояние выбора и подсветку текста для найденных совпадений.",methods:[],displayName:`MultiSelectOption`,props:{item:{required:!0,tsType:{name:`CollectionItem`},description:``},textKey:{required:!0,tsType:{name:`string`},description:``},codeKey:{required:!1,tsType:{name:`string`},description:``},highlight:{required:!1,tsType:{name:`string`},description:``},selected:{required:!0,tsType:{name:`boolean`},description:``}}}})))()}var h,g,_,v;function y(){return(y=e((()=>{h=`_9oSdQi`,g=`iobHig`,_=`yatXso`,v={multiSelect:h,multiSelectTokens:g,multiSelectToken:_}})))()}function b({value:e}){return e?(0,x.jsx)(`div`,{className:v.multiSelectTokens,children:(0,x.jsx)(`div`,{className:v.multiSelectToken,children:e})}):null}var x;function S(){return(S=e((()=>{y(),x=n(),b.__docgenInfo={description:"Токен выбранного значения в `MultiSelect`. Показывает выбранный элемент и кнопку его удаления из текущего набора.",methods:[],displayName:`MultiSelectToken`,props:{value:{required:!0,tsType:{name:`union`,raw:`string | undefined`,elements:[{name:`string`},{name:`undefined`}]},description:``}}}})))()}function C(e){return a(e,A)}function w(e,t,n){if(n)return n;let r=e[0];return r?Object.keys(r).find(e=>e!==t)??t:t}function T(e,t,n){if(e.length===0)return;if(e.length>1)return C(e.length);let r=w(e,t,n);return e[0]?.[r]??e[0]?.[t]}function E(e){return function(t){return(0,k.jsx)(b,{value:T(t.selectedItems,e.codeKey,e.textKey)})}}function D(e){return(0,k.jsx)(c,{onSelectAll:e.selectAll,onDeselectAll:e.deselectAll})}function O(e){return function(t,n){return(0,k.jsx)(f,{item:t,selected:n.selected,highlight:n.highlightQuery,textKey:w([t],e.codeKey,e.textKey),codeKey:e.hideCode?void 0:e.codeKey})}}var k,A;function j(){return(j=e((()=>{o(),s(),m(),S(),k=n(),A={one:`элемент`,few:`элемента`,many:`элементов`},D.__docgenInfo={description:``,methods:[],displayName:`renderDefaultMultiSelectToolbar`,props:{selectedItems:{required:!0,tsType:{name:`Array`,elements:[{name:`CollectionItem`}],raw:`CollectionItem[]`},description:``},committedSelectedItems:{required:!0,tsType:{name:`Array`,elements:[{name:`CollectionItem`}],raw:`CollectionItem[]`},description:``},availableItems:{required:!0,tsType:{name:`Array`,elements:[{name:`CollectionItem`}],raw:`CollectionItem[]`},description:``},query:{required:!0,tsType:{name:`string`},description:``},open:{required:!0,tsType:{name:`boolean`},description:``},clearSelection:{required:!0,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},selectAll:{required:!0,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},deselectAll:{required:!0,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``}}}})))()}export{D as a,S as c,d,l as f,j as i,v as l,E as n,w as o,C as r,b as s,O as t,y as u};
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{i as t,r as n}from"./iframe-BOYfiRbQ.js";var r,i;function a(){return(a=e((()=>{t(),r=[[`path`,{d:`M12 15V3`,key:`m9g1x1`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}],[`path`,{d:`m7 10 5 5 5-5`,key:`brsn70`}]],i=n(`download`,r)})))()}export{a as n,i as t};
1
+ import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{i as t,r as n}from"./iframe-CD1cMwos.js";var r,i;function a(){return(a=e((()=>{t(),r=[[`path`,{d:`M12 15V3`,key:`m9g1x1`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}],[`path`,{d:`m7 10 5 5 5-5`,key:`brsn70`}]],i=n(`download`,r)})))()}export{a as n,i as t};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-BOYfiRbQ.js";import{i as n,r}from"./react-qN2cStNd.js";import{l as i,m as a}from"./blocks-DFQ7gHL7.js";function o(e){let t={code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/Файлы и Excel`}),`
1
+ import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-CD1cMwos.js";import{i as n,r}from"./react-qN2cStNd.js";import{l as i,m as a}from"./blocks-BkGgmJsC.js";function o(e){let t={code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/Файлы и Excel`}),`
2
2
  `,(0,c.jsx)(t.h1,{id:`файлы-бинарные-данные-и-excel`,children:`Файлы, бинарные данные и Excel`}),`
3
3
  `,(0,c.jsxs)(t.p,{children:[`Эта страница описывает browser-only API для чтения пользовательских файлов, преобразования base64 и формирования `,(0,c.jsx)(t.code,{children:`.xlsx`}),`. Подготовка бизнес-полей, проверка прав доступа и отправка файла на сервер остаются ответственностью host-приложения.`]}),`
4
4
  `,(0,c.jsxs)(t.h2,{id:`file-чтение-файлов-и-http-заголовки`,children:[(0,c.jsx)(t.code,{children:`file`}),`: чтение файлов и HTTP-заголовки`]}),`
@@ -21,13 +21,7 @@ import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-B
21
21
  `,(0,c.jsx)(t.h3,{id:`readfile`,children:(0,c.jsx)(t.code,{children:`readFile`})}),`
22
22
  `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`readFile(file, options?): Promise<ReadFileResult>
23
23
  `})}),`
24
- `,(0,c.jsxs)(t.p,{children:[`| Опция | Назначение |
25
- | --------------------------------- | ------------------------------------------------- |
26
- | `,(0,c.jsx)(t.code,{children:`mode?: "data-url"`}),` | Режим по умолчанию. Результат содержит `,(0,c.jsx)(t.code,{children:`dataUrl`}),`. |
27
- | `,(0,c.jsx)(t.code,{children:`mode: "array-buffer"`}),` | Результат содержит `,(0,c.jsx)(t.code,{children:`buffer`}),`. |
28
- | `,(0,c.jsx)(t.code,{children:`allowedMime?: readonly string[]`}),` | Точный список разрешённых MIME. |
29
- | `,(0,c.jsx)(t.code,{children:`maxBytes?: number`}),` | Максимальный размер файла в байтах. |
30
- | `,(0,c.jsx)(t.code,{children:`signal?: AbortSignal`}),` | Отменяет чтение через `,(0,c.jsx)(t.code,{children:`FileReader.abort()`}),`. |`]}),`
24
+ `,(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:`Опция`}),(0,c.jsx)(t.th,{children:`Назначение`})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`mode?: "data-url"`})}),(0,c.jsxs)(t.td,{children:[`Режим по умолчанию. Результат содержит `,(0,c.jsx)(t.code,{children:`dataUrl`}),`.`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`mode: "array-buffer"`})}),(0,c.jsxs)(t.td,{children:[`Результат содержит `,(0,c.jsx)(t.code,{children:`buffer`}),`.`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`allowedMime?: readonly string[]`})}),(0,c.jsx)(t.td,{children:`Точный список разрешённых MIME.`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`maxBytes?: number`})}),(0,c.jsx)(t.td,{children:`Максимальный размер файла в байтах.`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`signal?: AbortSignal`})}),(0,c.jsxs)(t.td,{children:[`Отменяет чтение через `,(0,c.jsx)(t.code,{children:`FileReader.abort()`}),`.`]})]})]})]}),`
31
25
  `,(0,c.jsxs)(t.p,{children:[`Возвращаемый discriminated union всегда содержит `,(0,c.jsx)(t.code,{children:`file`}),` и `,(0,c.jsx)(t.code,{children:`meta`}),` (`,(0,c.jsx)(t.code,{children:`name`}),`, `,(0,c.jsx)(t.code,{children:`mime`}),`, `,(0,c.jsx)(t.code,{children:`size`}),`, `,(0,c.jsx)(t.code,{children:`lastModified`}),`). После проверки `,(0,c.jsx)(t.code,{children:`result.mode`}),` TypeScript раскрывает либо `,(0,c.jsx)(t.code,{children:`dataUrl`}),`, либо `,(0,c.jsx)(t.code,{children:`buffer`}),`.`]}),`
32
26
  `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const result = await readFile(file, {
33
27
  mode: "data-url",
@@ -47,24 +41,11 @@ if (result.mode === "data-url") {
47
41
  `,(0,c.jsxs)(t.p,{children:[`Поддерживаемые `,(0,c.jsx)(t.code,{children:`ImageMime`}),`: `,(0,c.jsx)(t.code,{children:`image/png`}),`, `,(0,c.jsx)(t.code,{children:`image/jpeg`}),`, `,(0,c.jsx)(t.code,{children:`image/webp`}),`, `,(0,c.jsx)(t.code,{children:`image/gif`}),`, `,(0,c.jsx)(t.code,{children:`image/svg+xml`}),`, `,(0,c.jsx)(t.code,{children:`image/avif`}),`. В режиме `,(0,c.jsx)(t.code,{children:`data-url`}),` результат дополнительно включает `,(0,c.jsx)(t.code,{children:`dimensions`}),` (`,(0,c.jsx)(t.code,{children:`width`}),`, `,(0,c.jsx)(t.code,{children:`height`}),`). В режиме `,(0,c.jsx)(t.code,{children:`array-buffer`}),` декодирование изображения не выполняется.`]}),`
48
42
  `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`ReadImageError`}),` расширяет коды `,(0,c.jsx)(t.code,{children:`ReadFileError`}),` значениями `,(0,c.jsx)(t.code,{children:`NOT_AN_IMAGE`}),` и `,(0,c.jsx)(t.code,{children:`IMAGE_DECODE_FAILED`}),`.`]}),`
49
43
  `,(0,c.jsxs)(t.h3,{id:`дополнительный-api-file`,children:[`Дополнительный API `,(0,c.jsx)(t.code,{children:`file`})]}),`
50
- `,(0,c.jsxs)(t.p,{children:[`| API | Контракт |
51
- | ----------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
52
- | `,(0,c.jsx)(t.code,{children:`buildMeta(file)`}),` | Возвращает serializable метаданные `,(0,c.jsx)(t.code,{children:`FileMeta`}),`. |
53
- | `,(0,c.jsx)(t.code,{children:`attachAbort(signal, reader)`}),` | Привязывает отмену к `,(0,c.jsx)(t.code,{children:`FileReader`}),`; возвращённую функцию cleanup вызывают только custom consumers низкоуровневого API. |
54
- | `,(0,c.jsx)(t.code,{children:`assertNotAborted(signal?)`}),` | Бросает `,(0,c.jsx)(t.code,{children:`ReadFileError("READ_ABORTED")`}),`, если сигнал уже отменён. |
55
- | `,(0,c.jsx)(t.code,{children:`assertValidAllowedMime`}),`, `,(0,c.jsx)(t.code,{children:`assertValidAccept`}),` | Проверяют конфигурацию accept/MIME до чтения. |
56
- | `,(0,c.jsx)(t.code,{children:`sanitizeFileName(value, fallback?)`}),` | Удаляет unsafe символы из имени. |
57
- | `,(0,c.jsx)(t.code,{children:`encodeFilenameRFC5987(value)`}),` | Кодирует Unicode filename для HTTP header. |
58
- | `,(0,c.jsx)(t.code,{children:`createAsciiFilenameFallback(value, fallback?)`}),` | Создаёт ASCII fallback для старых consumers заголовка. |
59
- | `,(0,c.jsx)(t.code,{children:`createContentDispositionHeader(options)`}),` | Создаёт `,(0,c.jsx)(t.code,{children:`inline`}),`/`,(0,c.jsx)(t.code,{children:`attachment`}),` Content-Disposition с `,(0,c.jsx)(t.code,{children:`filename`}),` и `,(0,c.jsx)(t.code,{children:`filename*`}),`. |`]}),`
44
+ `,(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:`API`}),(0,c.jsx)(t.th,{children:`Контракт`})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`buildMeta(file)`})}),(0,c.jsxs)(t.td,{children:[`Возвращает serializable метаданные `,(0,c.jsx)(t.code,{children:`FileMeta`}),`.`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`attachAbort(signal, reader)`})}),(0,c.jsxs)(t.td,{children:[`Привязывает отмену к `,(0,c.jsx)(t.code,{children:`FileReader`}),`; возвращённую функцию cleanup вызывают только custom consumers низкоуровневого API.`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`assertNotAborted(signal?)`})}),(0,c.jsxs)(t.td,{children:[`Бросает `,(0,c.jsx)(t.code,{children:`ReadFileError("READ_ABORTED")`}),`, если сигнал уже отменён.`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`assertValidAllowedMime`}),`, `,(0,c.jsx)(t.code,{children:`assertValidAccept`})]}),(0,c.jsx)(t.td,{children:`Проверяют конфигурацию accept/MIME до чтения.`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`sanitizeFileName(value, fallback?)`})}),(0,c.jsx)(t.td,{children:`Удаляет unsafe символы из имени.`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`encodeFilenameRFC5987(value)`})}),(0,c.jsx)(t.td,{children:`Кодирует Unicode filename для HTTP header.`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`createAsciiFilenameFallback(value, fallback?)`})}),(0,c.jsx)(t.td,{children:`Создаёт ASCII fallback для старых consumers заголовка.`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`createContentDispositionHeader(options)`})}),(0,c.jsxs)(t.td,{children:[`Создаёт `,(0,c.jsx)(t.code,{children:`inline`}),`/`,(0,c.jsx)(t.code,{children:`attachment`}),` Content-Disposition с `,(0,c.jsx)(t.code,{children:`filename`}),` и `,(0,c.jsx)(t.code,{children:`filename*`}),`.`]})]})]})]}),`
60
45
  `,(0,c.jsxs)(t.h2,{id:`binary-base64--blob`,children:[(0,c.jsx)(t.code,{children:`binary`}),`: base64 → `,(0,c.jsx)(t.code,{children:`Blob`})]}),`
61
46
  `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { binaryToBlob, detectMimeType, useBinaryFile } from "@ryuzaki13/react-foundation-lib/binary";
62
47
  `})}),`
63
- `,(0,c.jsxs)(t.p,{children:[`| API | Вход и результат |
64
- | ------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------- |
65
- | `,(0,c.jsx)(t.code,{children:`binaryToBlob(binaryData, mimeType?, isBase64?)`}),` | Создаёт `,(0,c.jsx)(t.code,{children:`Blob`}),` из base64/data URL (по умолчанию) или raw binary string (`,(0,c.jsx)(t.code,{children:`false`}),`). Пустые или некорректные данные бросают `,(0,c.jsx)(t.code,{children:`Error`}),`. |
66
- | `,(0,c.jsx)(t.code,{children:`detectMimeType(fileName?, binaryData?)`}),` | Ищет MIME по расширению, data URL, затем сигнатуре base64. Неопределённый документ трактует как `,(0,c.jsx)(t.code,{children:`application/pdf`}),`. |
67
- | `,(0,c.jsx)(t.code,{children:`useBinaryFile(bin)`}),` | React hook, возвращает `,(0,c.jsx)(t.code,{children:`{ data: { blob, mime } \\| null, error: string \\| null }`}),`. |`]}),`
48
+ `,(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:`API`}),(0,c.jsx)(t.th,{children:`Вход и результат`})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`binaryToBlob(binaryData, mimeType?, isBase64?)`})}),(0,c.jsxs)(t.td,{children:[`Создаёт `,(0,c.jsx)(t.code,{children:`Blob`}),` из base64/data URL (по умолчанию) или raw binary string (`,(0,c.jsx)(t.code,{children:`false`}),`). Пустые или некорректные данные бросают `,(0,c.jsx)(t.code,{children:`Error`}),`.`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`detectMimeType(fileName?, binaryData?)`})}),(0,c.jsxs)(t.td,{children:[`Ищет MIME по расширению, data URL, затем сигнатуре base64. Неопределённый документ трактует как `,(0,c.jsx)(t.code,{children:`application/pdf`}),`.`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`useBinaryFile(bin)`})}),(0,c.jsxs)(t.td,{children:[`React hook, возвращает `,(0,c.jsx)(t.code,{children:`{ data: { blob, mime } | null, error: string | null }`}),`.`]})]})]})]}),`
68
49
  `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const mime = detectMimeType("report.pdf", base64);
69
50
  const blob = binaryToBlob(base64, mime);
70
51
  const objectUrl = URL.createObjectURL(blob);
@@ -98,21 +79,10 @@ URL.revokeObjectURL(objectUrl);
98
79
  autoFilter: true
99
80
  });
100
81
  `})}),`
101
- `,(0,c.jsxs)(t.p,{children:[`| Public type/API | Назначение |
102
- | ------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
103
- | `,(0,c.jsx)(t.code,{children:`ExcelColumn`}),`, `,(0,c.jsx)(t.code,{children:`ExcelRow`}),`, `,(0,c.jsx)(t.code,{children:`ExcelCellStyle`}),` | Контракты столбца, строки и стиля ячейки. `,(0,c.jsx)(t.code,{children:`type`}),` передаёт в файл истинные `,(0,c.jsx)(t.code,{children:`Number`}),`/`,(0,c.jsx)(t.code,{children:`Date`}),`/`,(0,c.jsx)(t.code,{children:`Boolean`}),`, а не UI-строку. |
104
- | `,(0,c.jsx)(t.code,{children:`buildExcelSheetData(args)`}),` | Строит данные листа без запуска download; подходит для тестируемой подготовки. |
105
- | `,(0,c.jsx)(t.code,{children:`buildExcelAutoFilterRef(columns, rows)`}),` | Даёт Excel-диапазон или `,(0,c.jsx)(t.code,{children:`undefined`}),` для пустой сетки. |
106
- | `,(0,c.jsx)(t.code,{children:`resolveExcelSheetNames(names)`}),` | Нормализует ограничения Excel (31 символ, forbidden chars) и делает имена уникальными. |
107
- | `,(0,c.jsx)(t.code,{children:`resolveExcelCellStyleFromState(state)`}),` | Преобразует `,(0,c.jsx)(t.code,{children:`State`}),` в базовый цвет текста Excel. |`]}),`
82
+ `,(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:`Public type/API`}),(0,c.jsx)(t.th,{children:`Назначение`})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`ExcelColumn`}),`, `,(0,c.jsx)(t.code,{children:`ExcelRow`}),`, `,(0,c.jsx)(t.code,{children:`ExcelCellStyle`})]}),(0,c.jsxs)(t.td,{children:[`Контракты столбца, строки и стиля ячейки. `,(0,c.jsx)(t.code,{children:`type`}),` передаёт в файл истинные `,(0,c.jsx)(t.code,{children:`Number`}),`/`,(0,c.jsx)(t.code,{children:`Date`}),`/`,(0,c.jsx)(t.code,{children:`Boolean`}),`, а не UI-строку.`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`buildExcelSheetData(args)`})}),(0,c.jsx)(t.td,{children:`Строит данные листа без запуска download; подходит для тестируемой подготовки.`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`buildExcelAutoFilterRef(columns, rows)`})}),(0,c.jsxs)(t.td,{children:[`Даёт Excel-диапазон или `,(0,c.jsx)(t.code,{children:`undefined`}),` для пустой сетки.`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`resolveExcelSheetNames(names)`})}),(0,c.jsx)(t.td,{children:`Нормализует ограничения Excel (31 символ, forbidden chars) и делает имена уникальными.`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`resolveExcelCellStyleFromState(state)`})}),(0,c.jsxs)(t.td,{children:[`Преобразует `,(0,c.jsx)(t.code,{children:`State`}),` в базовый цвет текста Excel.`]})]})]})]}),`
108
83
  `,(0,c.jsx)(t.h3,{id:`экспорт-подготовленной-таблицы`,children:`Экспорт подготовленной таблицы`}),`
109
84
  `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`TableExcelColumnDescriptor`}),` связывает generic Excel column с OData type/role и необязательным `,(0,c.jsx)(t.code,{children:`formattersPipeline`}),`. Используйте `,(0,c.jsx)(t.code,{children:`createTableExcelColumn(descriptor)`}),` для получения типизированного столбца, затем передавайте значения строк без предварительного UI-форматирования.`]}),`
110
- `,(0,c.jsxs)(t.p,{children:[`| API | Назначение |
111
- | -------------------------------------------------------------- | --------------------------------------------------------------------------------- |
112
- | `,(0,c.jsx)(t.code,{children:`resolveTableExcelColumnType(descriptor)`}),` | Выбирает `,(0,c.jsx)(t.code,{children:`String`}),`/`,(0,c.jsx)(t.code,{children:`Number`}),`/`,(0,c.jsx)(t.code,{children:`Date`}),`/`,(0,c.jsx)(t.code,{children:`Boolean`}),` по OData metadata и роли. |
113
- | `,(0,c.jsx)(t.code,{children:`createTableExcelColumn(descriptor)`}),` | Создаёт `,(0,c.jsx)(t.code,{children:`ExcelColumn`}),` с Excel-маской числа/даты из published formatter contracts. |
114
- | `,(0,c.jsx)(t.code,{children:`downloadResolvedExcelTable({ fileName, table, autoFilter? })`}),` | Скачивает одну уже подготовленную таблицу. |
115
- | `,(0,c.jsx)(t.code,{children:`downloadResolvedExcelWorkbook({ fileName, sheets })`}),` | Скачивает несколько `,(0,c.jsx)(t.code,{children:`ResolvedExcelTable`}),` как листы книги. |`]}),`
85
+ `,(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:`API`}),(0,c.jsx)(t.th,{children:`Назначение`})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`resolveTableExcelColumnType(descriptor)`})}),(0,c.jsxs)(t.td,{children:[`Выбирает `,(0,c.jsx)(t.code,{children:`String`}),`/`,(0,c.jsx)(t.code,{children:`Number`}),`/`,(0,c.jsx)(t.code,{children:`Date`}),`/`,(0,c.jsx)(t.code,{children:`Boolean`}),` по OData metadata и роли.`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`createTableExcelColumn(descriptor)`})}),(0,c.jsxs)(t.td,{children:[`Создаёт `,(0,c.jsx)(t.code,{children:`ExcelColumn`}),` с Excel-маской числа/даты из published formatter contracts.`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`downloadResolvedExcelTable({ fileName, table, autoFilter? })`})}),(0,c.jsx)(t.td,{children:`Скачивает одну уже подготовленную таблицу.`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`downloadResolvedExcelWorkbook({ fileName, sheets })`})}),(0,c.jsxs)(t.td,{children:[`Скачивает несколько `,(0,c.jsx)(t.code,{children:`ResolvedExcelTable`}),` как листы книги.`]})]})]})]}),`
116
86
  `,(0,c.jsxs)(t.p,{children:[`Не передавайте в `,(0,c.jsx)(t.code,{children:`rows`}),` отформатированные через `,(0,c.jsx)(t.code,{children:`Intl`}),` строки для числовых и date-столбцов: Excel потеряет сортировку, формулы и формат. Строки создавайте только для действительно текстовых значений.`]}),`
117
87
  `,(0,c.jsx)(t.h2,{id:`ограничения`,children:`Ограничения`}),`
118
88
  `,(0,c.jsxs)(t.ul,{children:[`
@@ -1 +1 @@
1
- import{n as e,o as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r}from"./iframe-BOYfiRbQ.js";import{t as i}from"./react-dom-2o2phaJG.js";function a(){return typeof window<`u`}function o(e){return l(e)?(e.nodeName||``).toLowerCase():`#document`}function s(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function c(e){return((l(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function l(e){return a()?e instanceof Node||e instanceof s(e).Node:!1}function u(e){return a()?e instanceof Element||e instanceof s(e).Element:!1}function d(e){return a()?e instanceof HTMLElement||e instanceof s(e).HTMLElement:!1}function f(e){return!a()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof s(e).ShadowRoot}function p(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=b(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function m(e){return/^(table|td|th)$/.test(o(e))}function h(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}function g(e){let t=u(e)?b(e):e;return O(t.transform)||O(t.translate)||O(t.scale)||O(t.rotate)||O(t.perspective)||!v()&&(O(t.backdropFilter)||O(t.filter))||E.test(t.willChange||``)||D.test(t.contain||``)}function _(e){let t=S(e);for(;d(t)&&!y(t);){if(g(t))return t;if(h(t))return null;t=S(t)}return null}function v(){return k??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),k}function y(e){return/^(html|body|#document)$/.test(o(e))}function b(e){return s(e).getComputedStyle(e)}function x(e){return u(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function S(e){if(o(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||f(e)&&e.host||c(e);return f(t)?t.host:t}function C(e){let t=S(e);return y(t)?(e.ownerDocument||e).body:d(t)&&p(t)?t:C(t)}function w(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=C(e),i=r===e.ownerDocument?.body,a=s(r);if(i){let e=T(a);return t.concat(a,a.visualViewport||[],p(r)?r:[],e&&n?w(e):[])}return t.concat(r,w(r,[],n))}function T(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}var E,D,O,k;function A(){return(A=e((()=>{E=/transform|translate|scale|rotate|perspective|filter/,D=/paint|layout|strict|content/,O=e=>!!e&&e!==`none`})))()}function j(e,t,n){return V(e,B(t,n))}function M(e,t){return typeof e==`function`?e(t):e}function N(e){return e.split(`-`)[0]}function P(e){return e.split(`-`)[1]}function F(e){return e===`x`?`y`:`x`}function I(e){return e===`y`?`height`:`width`}function L(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function ee(e){return F(L(e))}function te(e,t,n){n===void 0&&(n=!1);let r=P(e),i=ee(e),a=I(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=ie(o)),[o,ie(o)]}function R(e){let t=ie(e);return[z(e),t,z(t)]}function z(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}function ne(e,t,n){switch(e){case`top`:case`bottom`:return n?t?he:me:t?me:he;case`left`:case`right`:return t?ge:_e;default:return[]}}function re(e,t,n,r){let i=P(e),a=ne(N(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(z)))),a}function ie(e){let t=N(e);return pe[t]+e.slice(t.length)}function ae(e){return{top:e.top??0,right:e.right??0,bottom:e.bottom??0,left:e.left??0}}function oe(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:ae(e)}function se(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}var ce,le,ue,B,V,de,fe,H,pe,me,he,ge,_e;function ve(){return(ve=e((()=>{ce=[`top`,`right`,`bottom`,`left`],le=[`start`,`end`],ue=ce.reduce((e,t)=>e.concat(t,t+`-`+le[0],t+`-`+le[1]),[]),B=Math.min,V=Math.max,de=Math.round,fe=Math.floor,H=e=>({x:e,y:e}),pe={left:`right`,right:`left`,bottom:`top`,top:`bottom`},me=[`left`,`right`],he=[`right`,`left`],ge=[`top`,`bottom`],_e=[`bottom`,`top`]})))()}var ye,be,xe,Se,Ce,we,Te,Ee,De,Oe,ke,Ae,je,Me,Ne,Pe,Fe,Ie,Le,Re,ze,Be,Ve,He,Ue,We,Ge,Ke,qe,Je,Ye;function Xe(){return(Xe=e((()=>{ye=[`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] *)`],be=ye.join(`,`),xe=typeof Element>`u`,Se=xe?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,Ce=!xe&&Element.prototype.getRootNode?function(e){return e?.getRootNode?.call(e)}:function(e){return e?.ownerDocument},we=function(e,t){t===void 0&&(t=!0);var n=e?.getAttribute?.call(e,`inert`);return n===``||n===`true`||t&&e&&(typeof e.closest==`function`?e.closest(`[inert]`):we(e.parentNode))},Te=function(e){var t=e?.getAttribute?.call(e,`contenteditable`);return t===``||t===`true`},Ee=function(e,t,n){if(we(e))return[];var r=Array.prototype.slice.apply(e.querySelectorAll(be));return t&&Se.call(e,be)&&r.unshift(e),r=r.filter(n),r},De=function(e,t,n){for(var r=[],i=Array.from(e);i.length;){var a=i.shift();if(!we(a,!1))if(a.tagName===`SLOT`){var o=a.assignedElements(),s=De(o.length?o:a.children,!0,n);n.flatten?r.push.apply(r,s):r.push({scopeParent:a,candidates:s})}else{Se.call(a,be)&&n.filter(a)&&(t||!e.includes(a))&&r.push(a);var c=a.shadowRoot||typeof n.getShadowRoot==`function`&&n.getShadowRoot(a),l=!we(c,!1)&&(!n.shadowRootFilter||n.shadowRootFilter(a));if(c&&l){var u=De(c===!0?a.children:c.children,!0,n);n.flatten?r.push.apply(r,u):r.push({scopeParent:a,candidates:u})}else i.unshift.apply(i,a.children)}}return r},Oe=function(e){return!isNaN(parseInt(e.getAttribute(`tabindex`),10))},ke=function(e){if(!e)throw Error(`No node provided`);return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||Te(e))&&!Oe(e)?0:e.tabIndex},Ae=function(e,t){var n=ke(e);return n<0&&t&&!Oe(e)?0:n},je=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},Me=function(e){return e.tagName===`INPUT`},Ne=function(e){return Me(e)&&e.type===`hidden`},Pe=function(e){return e.tagName===`DETAILS`&&Array.prototype.slice.apply(e.children).some(function(e){return e.tagName===`SUMMARY`})},Fe=function(e,t){for(var n=0;n<e.length;n++)if(e[n].checked&&e[n].form===t)return e[n]},Ie=function(e){if(!e.name)return!0;var t=e.form||Ce(e),n=function(e){return t.querySelectorAll(`input[type="radio"][name="`+e+`"]`)},r;if(typeof window<`u`&&window.CSS!==void 0&&typeof window.CSS.escape==`function`)r=n(window.CSS.escape(e.name));else try{r=n(e.name)}catch(e){return 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`,e.message),!1}var i=Fe(r,e.form);return!i||i===e},Le=function(e){return Me(e)&&e.type===`radio`},Re=function(e){return Le(e)&&!Ie(e)},ze=function(e){var t=e&&Ce(e),n=t?.host,r=!1;if(t&&t!==e){var i,a,o;for(r=!!((i=n)!=null&&(a=i.ownerDocument)!=null&&a.contains(n)||e!=null&&(o=e.ownerDocument)!=null&&o.contains(e));!r&&n;){var s,c;t=Ce(n),n=t?.host,r=!!((s=n)!=null&&(c=s.ownerDocument)!=null&&c.contains(n))}}return r},Be=function(e){var t=e.getBoundingClientRect(),n=t.width,r=t.height;return n===0&&r===0},Ve=function(e,t){var n=t.displayCheck,r=t.getShadowRoot;if(n===`full-native`&&`checkVisibility`in e)return!e.checkVisibility({checkOpacity:!1,opacityProperty:!1,contentVisibilityAuto:!0,visibilityProperty:!0,checkVisibilityCSS:!0});var i=getComputedStyle(e).visibility;if(i===`hidden`||i===`collapse`)return!0;var a=Se.call(e,`details>summary:first-of-type`)?e.parentElement:e;if(Se.call(a,`details:not([open]) *`))return!0;if(!n||n===`full`||n===`full-native`||n===`legacy-full`){if(typeof r==`function`){for(var o=e;e;){var s=e.parentElement,c=Ce(e);if(s&&!s.shadowRoot&&r(s)===!0)return Be(e);e=e.assignedSlot?e.assignedSlot:!s&&c!==e.ownerDocument?c.host:s}e=o}if(ze(e))return!e.getClientRects().length;if(n!==`legacy-full`)return!0}else if(n===`non-zero-area`)return Be(e);return!1},He=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(t.tagName===`FIELDSET`&&t.disabled){for(var n=0;n<t.children.length;n++){var r=t.children.item(n);if(r.tagName===`LEGEND`)return Se.call(t,`fieldset[disabled] *`)?!0:!r.contains(e)}return!0}t=t.parentElement}return!1},Ue=function(e,t){return!(t.disabled||Ne(t)||Ve(t,e)||Pe(t)||He(t))},We=function(e,t){return!(Re(t)||ke(t)<0||!Ue(e,t))},Ge=function(e){var t=parseInt(e.getAttribute(`tabindex`),10);return!!(isNaN(t)||t>=0)},Ke=function(e){var t=[],n=[];return e.forEach(function(e,r){var i=!!e.scopeParent,a=i?e.scopeParent:e,o=Ae(a,i),s=i?Ke(e.candidates):a;o===0?i?t.push.apply(t,s):t.push(a):n.push({documentOrder:r,tabIndex:o,item:e,isScope:i,content:s})}),n.sort(je).reduce(function(e,t){return t.isScope?e.push.apply(e,t.content):e.push(t.content),e},[]).concat(t)},qe=function(e,t){t||={};var n=t.getShadowRoot?De([e],t.includeContainer,{filter:We.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:Ge}):Ee(e,t.includeContainer,We.bind(null,t));return Ke(n)},Je=function(e,t){return t||={},t.getShadowRoot?De([e],t.includeContainer,{filter:Ue.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):Ee(e,t.includeContainer,Ue.bind(null,t))},Ye=function(e,t){if(t||={},!e)throw Error(`No node provided`);return Se.call(e,be)!==!1&&We(t,e)}})))()}function Ze(){let e=navigator.userAgentData;return e!=null&&e.platform?e.platform:navigator.platform}function Qe(){let e=navigator.userAgentData;return e&&Array.isArray(e.brands)?e.brands.map(e=>{let{brand:t,version:n}=e;return t+`/`+n}).join(` `):navigator.userAgent}function $e(){return/apple/i.test(navigator.vendor)}function et(){let e=/android/i;return e.test(Ze())||e.test(Qe())}function tt(){return Qe().includes(`jsdom/`)}function nt(e){let t=e.activeElement;for(;((n=t)==null||(n=n.shadowRoot)==null?void 0:n.activeElement)!=null;){var n;t=t.shadowRoot.activeElement}return t}function U(e,t){if(!e||!t)return!1;let n=t.getRootNode==null?void 0:t.getRootNode();if(e.contains(t))return!0;if(n&&f(n)){let n=t;for(;n;){if(e===n)return!0;n=n.parentNode||n.host}}return!1}function W(e){return`composedPath`in e?e.composedPath()[0]:e.target}function rt(e,t){if(t==null)return!1;if(`composedPath`in e)return e.composedPath().includes(t);let n=e;return n.target!=null&&t.contains(n.target)}function it(e){return e.matches(`html,body`)}function G(e){return e?.ownerDocument||document}function at(e){return d(e)&&e.matches(Tt)}function ot(e){return e?e.getAttribute(`role`)===`combobox`&&at(e):!1}function st(e){return e?e.hasAttribute(wt)?e:e.querySelector(`[data-floating-ui-focusable]`)||e:null}function ct(e,t,n){return n===void 0&&(n=!0),e.filter(e=>e.parentId===t&&(!n||e.context?.open)).flatMap(t=>[t,...ct(e,t.id,n)])}function lt(e,t){let n=[],r=e.find(e=>e.id===t)?.parentId;for(;r;){let t=e.find(e=>e.id===r);r=t?.parentId,t&&(n=n.concat(t))}return n}function ut(e){e.preventDefault(),e.stopPropagation()}function dt(e){return`nativeEvent`in e}function ft(e){return e.mozInputSource===0&&e.isTrusted?!0:et()&&e.pointerType?e.type===`click`&&e.buttons===1:e.detail===0&&!e.pointerType}function pt(e){return tt()?!1:!et()&&e.width===0&&e.height===0||et()&&e.width===1&&e.height===1&&e.pressure===0&&e.detail===0&&e.pointerType===`mouse`||e.width<1&&e.height<1&&e.pressure===0&&e.detail===0&&e.pointerType===`touch`}function mt(e,t){let n=[`mouse`,`pen`];return t||n.push(``,void 0),n.includes(e)}function ht(e){let t=St.useRef(e);return q(()=>{t.current=e}),t}function K(e){let t=St.useRef(()=>{});return Dt(()=>{t.current=e}),St.useCallback(function(){var e=[...arguments];return t.current==null?void 0:t.current(...e)},[])}function gt(e,t){let n=qe(e,Ot()),r=n.length;if(r===0)return;let i=nt(G(e)),a=n.indexOf(i);return n[a===-1?t===1?0:r-1:a+t]}function _t(e){return gt(G(e).body,1)||e}function vt(e){return gt(G(e).body,-1)||e}function yt(e,t){let n=t||e.currentTarget,r=e.relatedTarget;return!r||!U(n,r)}function bt(e){qe(e,Ot()).forEach(e=>{e.dataset.tabindex=e.getAttribute(`tabindex`)||``,e.setAttribute(`tabindex`,`-1`)})}function xt(e){e.querySelectorAll(`[data-tabindex]`).forEach(e=>{let t=e.dataset.tabindex;delete e.dataset.tabindex,t?e.setAttribute(`tabindex`,t):e.removeAttribute(`tabindex`)})}var St,Ct,wt,Tt,q,Et,Dt,Ot;function kt(){return(kt=e((()=>{A(),St=t(n(),1),Ct=n(),Xe(),wt=`data-floating-ui-focusable`,Tt=`input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])`,q=typeof document<`u`?Ct.useLayoutEffect:function(){},Et={...St},Dt=Et.useInsertionEffect||(e=>e()),Ot=()=>({getShadowRoot:!0,displayCheck:typeof ResizeObserver==`function`&&ResizeObserver.toString().includes(`[native code]`)?`full`:`none`})})))()}function At(e,t,n){let{reference:r,floating:i}=e,a=L(t),o=ee(t),s=I(o),c=N(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}let m=P(t);return m&&(p[o]+=f*(m===`end`?1:-1)*(n&&l?-1:1)),p}async function jt(e,t){t===void 0&&(t={});let{x:n,y:r,platform:i,rects:a,elements:o,strategy:s}=e,{boundary:c=`clippingAncestors`,rootBoundary:l=`viewport`,elementContext:u=`floating`,altBoundary:d=!1,padding:f=0}=M(t,e),p=oe(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=se(await i.getClippingRect({element:await(i.isElement==null?void 0:i.isElement(m))??!0?m:m.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:c,rootBoundary:l,strategy:s})),g=u===`floating`?{x:n,y:r,width:a.floating.width,height:a.floating.height}:a.reference,_=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),v=await(i.isElement==null?void 0:i.isElement(_))&&await(i.getScale==null?void 0:i.getScale(_))||{x:1,y:1},y=se(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:g,offsetParent:_,strategy:s}):g);return{top:(h.top-y.top+p.top)/v.y,bottom:(y.bottom-h.bottom+p.bottom)/v.y,left:(h.left-y.left+p.left)/v.x,right:(y.right-h.right+p.right)/v.x}}function Mt(e,t,n){return(e?[...n.filter(t=>P(t)===e),...n.filter(t=>P(t)!==e)]:n.filter(e=>N(e)===e)).filter(n=>!e||P(n)===e||(t?z(n)!==n:!1))}async function Nt(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=N(n),s=P(n),c=L(n)===`y`,l=zt.has(o)?-1:1,u=a&&c?-1:1,d=M(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}var Pt,Ft,It,Lt,Rt,zt,Bt,Vt,Ht;function Ut(){return(Ut=e((()=>{ve(),Pt=50,Ft=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:jt},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=At(l,r,c),f=r,p=0,m={};for(let n=0;n<a.length;n++){let h=a[n];if(!h)continue;let{name:g,fn:_}=h,{x:v,y,data:b,reset:x}=await _({x:u,y:d,initialPlacement:r,placement:f,strategy:i,middlewareData:m,rects:l,platform:s,elements:{reference:e,floating:t}});u=v??u,d=y??d,m[g]={...m[g],...b},x&&p<Pt&&(p++,typeof x==`object`&&(x.placement&&(f=x.placement),x.rects&&(l=x.rects===!0?await o.getElementRects({reference:e,floating:t,strategy:i}):x.rects),{x:u,y:d}=At(l,f,c)),n=-1)}return{x:u,y:d,placement:f,strategy:i,middlewareData:m}},It=e=>({name:`arrow`,options:e,async fn(t){let{x:n,y:r,placement:i,rects:a,platform:o,elements:s,middlewareData:c}=t,{element:l,padding:u=0}=M(e,t)||{};if(l==null)return{};let d=oe(u),f={x:n,y:r},p=ee(i),m=I(p),h=await o.getDimensions(l),g=p===`y`,_=g?`top`:`left`,v=g?`bottom`:`right`,y=g?`clientHeight`:`clientWidth`,b=a.reference[m]+a.reference[p]-f[p]-a.floating[m],x=f[p]-a.reference[p],S=await(o.getOffsetParent==null?void 0:o.getOffsetParent(l)),C=S?S[y]:0;(!C||!await(o.isElement==null?void 0:o.isElement(S)))&&(C=s.floating[y]||a.floating[m]);let w=b/2-x/2,T=C/2-h[m]/2-1,E=B(d[_],T),D=B(d[v],T),O=C-h[m]-D,k=C/2-h[m]/2+w,A=j(E,k,O),N=!c.arrow&&P(i)!=null&&k!==A&&a.reference[m]/2-(k<E?E:D)-h[m]/2<0,F=N?k<E?k-E:k-O:0;return{[p]:f[p]+F,data:{[p]:A,centerOffset:k-A-F,...N&&{alignmentOffset:F}},reset:N}}}),Lt=function(e){return e===void 0&&(e={}),{name:`autoPlacement`,options:e,async fn(t){let{rects:n,middlewareData:r,placement:i,platform:a,elements:o}=t,{crossAxis:s=!1,alignment:c,allowedPlacements:l=ue,autoAlignment:u=!0,...d}=M(e,t),f=c!==void 0||l===ue?Mt(c||null,u,l):l,p=r.autoPlacement?.index||0,m=f[p];if(m==null)return{};if(i!==m)return{reset:{placement:f[0]}};let h=await a.detectOverflow(t,d),g=te(m,n,await(a.isRTL==null?void 0:a.isRTL(o.floating))),_=[h[N(m)],h[g[0]],h[g[1]]],v=[...r.autoPlacement?.overflows||[],{placement:m,overflows:_}],y=f[p+1];if(y)return{data:{index:p+1,overflows:v},reset:{placement:y}};let b=v.map(e=>{let t=P(e.placement);return[e.placement,t&&s?e.overflows.slice(0,2).reduce((e,t)=>e+t,0):e.overflows[0],e.overflows]}).sort((e,t)=>e[1]-t[1]),x=b.filter(e=>e[2].slice(0,P(e[0])?2:3).every(e=>e<=0))[0]?.[0]||b[0][0];return x===i?{}:{data:{index:p+1,overflows:v},reset:{placement:x}}}}},Rt=function(e){return e===void 0&&(e={}),{name:`flip`,options:e,async fn(t){var n;let{placement:r,middlewareData:i,rects:a,initialPlacement:o,platform:s,elements:c}=t,{mainAxis:l=!0,crossAxis:u=!0,fallbackPlacements:d,fallbackStrategy:f=`bestFit`,fallbackAxisSideDirection:p=`none`,flipAlignment:m=!0,...h}=M(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};let g=N(r),_=L(o),v=N(o)===o,y=await(s.isRTL==null?void 0:s.isRTL(c.floating)),b=d||(v||!m?[ie(o)]:R(o)),x=p!==`none`;!d&&x&&b.push(...re(o,m,p,y));let S=[o,...b],C=await s.detectOverflow(t,h),w=[],T=i.flip?.overflows||[];if(l&&w.push(C[g]),u){let e=te(r,a,y);w.push(C[e[0]],C[e[1]])}if(T=[...T,{placement:r,overflows:w}],!w.every(e=>e<=0)){let e=(i.flip?.index||0)+1,t=S[e];if(t&&(u!==`alignment`||_===L(t)||T.every(e=>L(e.placement)!==_||e.overflows[0]>0)))return{data:{index:e,overflows:T},reset:{placement:t}};let n=T.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=T.filter(e=>{if(x){let t=L(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o}if(r!==n)return{reset:{placement:n}}}return{}}}},zt=new Set([`left`,`top`]),Bt=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await Nt(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}},Vt=function(e){return e===void 0&&(e={}),{name:`shift`,options:e,async fn(t){let{x:n,y:r,placement:i,platform:a}=t,{mainAxis:o=!0,crossAxis:s=!1,limiter:c={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=M(e,t),u={x:n,y:r},d=await a.detectOverflow(t,l),f=L(i),p=F(f),m=u[p],h=u[f],g=(e,t)=>j(t+d[e===`y`?`top`:`left`],t,t-d[e===`y`?`bottom`:`right`]);o&&(m=g(p,m)),s&&(h=g(f,h));let _=c.fn({...t,[p]:m,[f]:h});return{..._,data:{x:_.x-n,y:_.y-r,enabled:{[p]:o,[f]:s}}}}}},Ht=function(e){return e===void 0&&(e={}),{name:`size`,options:e,async fn(t){let{placement:n,rects:r,platform:i,elements:a}=t,{apply:o=()=>{},...s}=M(e,t),c=await i.detectOverflow(t,s),l=N(n),u=P(n),d=L(n)===`y`,{width:f,height:p}=r.floating,m,h;l===`top`||l===`bottom`?(m=l,h=u===(await(i.isRTL==null?void 0:i.isRTL(a.floating))?`start`:`end`)?`left`:`right`):(h=l,m=u===`end`?`top`:`bottom`);let g=p-c.top-c.bottom,_=f-c.left-c.right,v=B(p-c[m],g),y=B(f-c[h],_),b=t.middlewareData.shift,x=!b,S=v,C=y;b!=null&&b.enabled.x&&(C=_),b!=null&&b.enabled.y&&(S=g),x&&!u&&(d?C=f-2*V(c.left,c.right):S=p-2*V(c.top,c.bottom)),await o({...t,availableWidth:C,availableHeight:S});let w=await i.getDimensions(a.floating);return f!==w.width||p!==w.height?{reset:{rects:!0}}:{}}}}})))()}function Wt(e){let t=b(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=d(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=de(n)!==a||de(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function Gt(e){return u(e)?e:e.contextElement}function Kt(e){let t=Gt(e);if(!d(t))return H(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=Wt(t),o=(a?de(n.width):n.width)/r,s=(a?de(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}function qt(e){let t=s(e);return!v()||!t.visualViewport?gn:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function Jt(e,t,n){return t===void 0&&(t=!1),!!n&&t&&n===s(e)}function Yt(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=Gt(e),o=H(1);t&&(r?u(r)&&(o=Kt(r)):o=Kt(e));let c=Jt(a,n,r)?qt(a):H(0),l=(i.left+c.x)/o.x,d=(i.top+c.y)/o.y,f=i.width/o.x,p=i.height/o.y;if(a&&r){let e=s(a),t=u(r)?s(r):r,n=e,i=T(n);for(;i&&t!==n;){let e=Kt(i),t=i.getBoundingClientRect(),r=b(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;l*=e.x,d*=e.y,f*=e.x,p*=e.y,l+=a,d+=o,n=s(i),i=T(n)}}return se({width:f,height:p,x:l,y:d})}function Xt(e,t){let n=x(e).scrollLeft;return t?t.left+n:Yt(c(e)).left+n}function Zt(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-Xt(e,n),y:n.top+t.scrollTop}}function Qt(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,s=c(r),l=t?h(t.floating):!1;if(r===s||l&&a)return n;let u={scrollLeft:0,scrollTop:0},f=H(1),m=H(0),g=d(r);if((g||!a)&&((o(r)!==`body`||p(s))&&(u=x(r)),g)){let e=Yt(r);f=Kt(r),m.x=e.x+r.clientLeft,m.y=e.y+r.clientTop}let _=s&&!g&&!a?Zt(s,u):H(0);return{width:n.width*f.x,height:n.height*f.y,x:n.x*f.x-u.scrollLeft*f.x+m.x+_.x,y:n.y*f.y-u.scrollTop*f.y+m.y+_.y}}function $t(e){return e.getClientRects?Array.from(e.getClientRects()):[]}function en(e){let t=x(e),n=e.ownerDocument.body,r=V(e.scrollWidth,e.clientWidth,n.scrollWidth,n.clientWidth),i=V(e.scrollHeight,e.clientHeight,n.scrollHeight,n.clientHeight),a=-t.scrollLeft+Xt(e),o=-t.scrollTop;return b(n).direction===`rtl`&&(a+=V(e.clientWidth,n.clientWidth)-r),{width:r,height:i,x:a,y:o}}function tn(e,t,n){n===void 0&&(n=`viewport`);let r=n===`layoutViewport`,i=s(e),a=c(e),o=i.visualViewport,l=a.clientWidth,u=a.clientHeight,d=0,f=0;if(o){let e=!v()||t===`fixed`;r?e||(d=-o.offsetLeft,f=-o.offsetTop):(l=o.width,u=o.height,e&&(d=o.offsetLeft,f=o.offsetTop))}if(Xt(a)<=0){let e=a.ownerDocument,t=e.body,n=getComputedStyle(t),r=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,i=Math.abs(a.clientWidth-t.clientWidth-r),o=getComputedStyle(a).scrollbarGutter===`stable both-edges`?i/2:i;o<=_n&&(l-=o)}return{width:l,height:u,x:d,y:f}}function nn(e,t){let n=Yt(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=Kt(e);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function rn(e,t,n){let r;if(t===`viewport`||t===`layoutViewport`)r=tn(e,n,t);else if(t===`document`)r=en(c(e));else if(u(t))r=nn(t,n);else{let n=qt(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return se(r)}function an(e,t){let n=t.get(e);if(n)return n;let r=w(e,[],!1).filter(e=>u(e)&&o(e)!==`body`),i=null,a=b(e).position===`fixed`,s=a?S(e):e;for(;u(s)&&!y(s);){let e=b(s),t=g(s),n=i?i.position:a?`fixed`:``;!t&&(n===`fixed`||n===`absolute`&&e.position===`static`)?r=r.filter(e=>e!==s):i=e,s=S(s)}return t.set(e,r),r}function on(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?h(t)?[]:an(t,this._c):[].concat(n),r],o=rn(t,a[0],i),s=o.top,c=o.right,l=o.bottom,u=o.left;for(let e=1;e<a.length;e++){let n=rn(t,a[e],i);s=V(n.top,s),c=B(n.right,c),l=B(n.bottom,l),u=V(n.left,u)}return{width:c-u,height:l-s,x:u,y:s}}function sn(e){let{width:t,height:n}=Wt(e);return{width:t,height:n}}function cn(e,t,n){let r=d(t),i=c(t),a=n===`fixed`,s=Yt(e,!0,a,t),l={scrollLeft:0,scrollTop:0},u=H(0);if((r||!a)&&((o(t)!==`body`||p(i))&&(l=x(t)),r)){let e=Yt(t,!0,a,t);u.x=e.x+t.clientLeft,u.y=e.y+t.clientTop}!r&&i&&(u.x=Xt(i));let f=i&&!r&&!a?Zt(i,l):H(0);return{x:s.left+l.scrollLeft-u.x-f.x,y:s.top+l.scrollTop-u.y-f.y,width:s.width,height:s.height}}function ln(e){return b(e).position===`static`}function un(e,t){if(!d(e)||b(e).position===`fixed`)return null;if(t)return t(e);let n=e.offsetParent;return c(e)===n&&(n=n.ownerDocument.body),n}function dn(e,t){let n=s(e);if(h(e))return n;if(!d(e)){let t=S(e);for(;t&&!y(t);){if(u(t)&&!ln(t))return t;t=S(t)}return n}let r=un(e,t);for(;r&&m(r)&&ln(r);)r=un(r,t);return r&&y(r)&&ln(r)&&!g(r)?n:r||_(e)||n}function fn(e){return b(e).direction===`rtl`}function pn(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function mn(e,t,n){let r=null,i,a=c(e);function o(){var e;clearTimeout(i),(e=r)==null||e.disconnect(),r=null}function l(n,s){n===void 0&&(n=!1),s===void 0&&(s=1),o();let c=e.getBoundingClientRect(),{left:u,top:d,width:f,height:p}=c;if(n||t(),!f||!p)return;let m=fe(d),h=fe(a.clientWidth-(u+f)),g=fe(a.clientHeight-(d+p)),_=fe(u),v={rootMargin:-m+`px `+-h+`px `+-g+`px `+-_+`px`,threshold:V(0,B(1,s))||1},y=!0;function b(t){let n=t[0].intersectionRatio;if(!pn(c,e.getBoundingClientRect()))return l();if(n!==s){if(!y)return l();n?l(!1,n):i=setTimeout(()=>{l(!1,1e-7)},1e3)}y=!1}try{r=new IntersectionObserver(b,{...v,root:a.ownerDocument})}catch{r=new IntersectionObserver(b,v)}r.observe(e)}let u=s(e),d=()=>l(n);return u.addEventListener(`resize`,d),l(!0),()=>{u.removeEventListener(`resize`,d),o()}}function hn(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=Gt(e),u=i||a?[...l?w(l):[],...t?w(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n),a&&e.addEventListener(`resize`,n)});let d=l&&s?mn(l,n,a):null,f=-1,p=null;o&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&p&&t&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;(e=p)==null||e.observe(t)})),n()}),l&&!c&&p.observe(l),t&&p.observe(t));let m,h=c?Yt(e):null;c&&g();function g(){let t=Yt(e);h&&!pn(h,t)&&n(),h=t,m=requestAnimationFrame(g)}return n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=p)==null||e.disconnect(),p=null,c&&cancelAnimationFrame(m)}}var gn,_n,vn,yn,bn,xn,Sn,Cn,wn,Tn,En;function Dn(){return(Dn=e((()=>{Ut(),ve(),A(),gn=H(0),_n=25,vn=async function(e){let t=this.getOffsetParent||dn,n=this.getDimensions,r=await n(e.floating);return{reference:cn(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}},yn={convertOffsetParentRelativeRectToViewportRelativeRect:Qt,getDocumentElement:c,getClippingRect:on,getOffsetParent:dn,getElementRects:vn,getClientRects:$t,getDimensions:sn,getScale:Kt,isElement:u,isRTL:fn},bn=Bt,xn=Lt,Sn=Vt,Cn=Rt,wn=Ht,Tn=It,En=(e,t,n)=>{let r=new Map,i=n??{},a={...yn,...i.platform,_c:r};return Ft(e,t,{...i,platform:a})}})))()}function On(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e==`function`&&e.toString()===t.toString())return!0;let n,r,i;if(e&&t&&typeof e==`object`){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!On(e[r],t[r]))return!1;return!0}if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,i[r]))return!1;for(r=n;r--!==0;){let n=i[r];if(!(n===`_owner`&&e.$$typeof)&&!On(e[n],t[n]))return!1}return!0}return e!==e&&t!==t}function kn(e){return typeof window>`u`?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function An(e,t){let n=kn(e);return Math.round(t*n)/n}function jn(e){let t=J.useRef(e);return Fn(()=>{t.current=e}),t}function Mn(e){e===void 0&&(e={});let{placement:t=`bottom`,strategy:n=`absolute`,middleware:r=[],platform:i,elements:{reference:a,floating:o}={},transform:s=!0,whileElementsMounted:c,open:l}=e,[u,d]=J.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[f,p]=J.useState(r);On(f,r)||p(r);let[m,h]=J.useState(null),[g,_]=J.useState(null),v=J.useCallback(e=>{e!==S.current&&(S.current=e,h(e))},[]),y=J.useCallback(e=>{e!==C.current&&(C.current=e,_(e))},[]),b=a||m,x=o||g,S=J.useRef(null),C=J.useRef(null),w=J.useRef(u),T=c!=null,E=jn(c),D=jn(i),O=jn(l),k=J.useCallback(()=>{if(!S.current||!C.current)return;let e={placement:t,strategy:n,middleware:f};D.current&&(e.platform=D.current),En(S.current,C.current,e).then(e=>{let t={...e,isPositioned:O.current!==!1};A.current&&!On(w.current,t)&&(w.current=t,Pn.flushSync(()=>{d(t)}))})},[f,t,n,D,O]);Fn(()=>{l===!1&&w.current.isPositioned&&(w.current.isPositioned=!1,d(e=>({...e,isPositioned:!1})))},[l]);let A=J.useRef(!1);Fn(()=>(A.current=!0,()=>{A.current=!1}),[]),Fn(()=>{if(b&&(S.current=b),x&&(C.current=x),b&&x){if(E.current)return E.current(b,x,k);k()}},[b,x,k,E,T]);let j=J.useMemo(()=>({reference:S,floating:C,setReference:v,setFloating:y}),[v,y]),M=J.useMemo(()=>({reference:b,floating:x}),[b,x]),N=J.useMemo(()=>{let e={position:n,left:0,top:0};if(!M.floating)return e;let t=An(M.floating,u.x),r=An(M.floating,u.y);return s?{...e,transform:`translate(`+t+`px, `+r+`px)`,...kn(M.floating)>=1.5&&{willChange:`transform`}}:{position:n,left:t,top:r}},[n,s,M.floating,u.x,u.y]);return J.useMemo(()=>({...u,update:k,refs:j,elements:M,floatingStyles:N}),[u,k,j,M,N])}var J,Nn,Pn,Fn,In,Ln,Rn,zn,Bn,Vn,Hn;function Un(){return(Un=e((()=>{Dn(),J=t(n(),1),Nn=n(),Pn=t(i(),1),Fn=typeof document<`u`?Nn.useLayoutEffect:function(){},In=e=>{function t(e){return{}.hasOwnProperty.call(e,`current`)}return{name:`arrow`,options:e,fn(n){let{element:r,padding:i}=typeof e==`function`?e(n):e;return r&&t(r)?r.current==null?{}:Tn({element:r.current,padding:i}).fn(n):r?Tn({element:r,padding:i}).fn(n):{}}}},Ln=(e,t)=>{let n=bn(e);return{name:n.name,fn:n.fn,options:[e,t]}},Rn=(e,t)=>{let n=Sn(e);return{name:n.name,fn:n.fn,options:[e,t]}},zn=(e,t)=>{let n=Cn(e);return{name:n.name,fn:n.fn,options:[e,t]}},Bn=(e,t)=>{let n=wn(e);return{name:n.name,fn:n.fn,options:[e,t]}},Vn=(e,t)=>{let n=xn(e);return{name:n.name,fn:n.fn,options:[e,t]}},Hn=(e,t)=>{let n=In(e);return{name:n.name,fn:n.fn,options:[e,t]}}})))()}function Wn(){let[e,t]=X.useState(()=>Or?Ar():void 0);return q(()=>{e??t(Ar())},[]),X.useEffect(()=>{Or=!0},[]),e}function Gn(){let e=new Map;return{emit(t,n){var r;(r=e.get(t))==null||r.forEach(e=>e(n))},on(t,n){e.has(t)||e.set(t,new Set),e.get(t).add(n)},off(t,n){var r;(r=e.get(t))==null||r.delete(n)}}}function Kn(e){return`data-floating-ui-`+e}function Y(e){e.current!==-1&&(clearTimeout(e.current),e.current=-1)}function qn(e,t,n){if(n&&!mt(n))return 0;if(typeof e==`number`)return e;if(typeof e==`function`){let n=e();return typeof n==`number`?n:n?.[t]}return e?.[t]}function Jn(e){return typeof e==`function`?e():e}function Yn(e,t){t===void 0&&(t={});let{open:n,onOpenChange:r,dataRef:i,events:a,elements:o}=e,{enabled:s=!0,delay:c=0,handleClose:l=null,mouseOnly:d=!1,restMs:f=0,move:p=!0}=t,m=Fr(),h=Pr(),g=ht(l),_=ht(c),v=ht(n),y=ht(f),b=X.useRef(),x=X.useRef(-1),S=X.useRef(),C=X.useRef(-1),w=X.useRef(!0),T=X.useRef(!1),E=X.useRef(()=>{}),D=X.useRef(!1),O=K(()=>{let e=i.current.openEvent?.type;return e?.includes(`mouse`)&&e!==`mousedown`});X.useEffect(()=>{if(!s)return;function e(e){let{open:t}=e;t||(Y(x),Y(C),w.current=!0,D.current=!1)}return a.on(`openchange`,e),()=>{a.off(`openchange`,e)}},[s,a]),X.useEffect(()=>{if(!s||!g.current||!n)return;function e(e){O()&&r(!1,e,`hover`)}let t=G(o.floating).documentElement;return t.addEventListener(`mouseleave`,e),()=>{t.removeEventListener(`mouseleave`,e)}},[o.floating,n,r,s,g,O]);let k=X.useCallback(function(e,t,n){t===void 0&&(t=!0),n===void 0&&(n=`hover`);let i=qn(_.current,`close`,b.current);i&&!S.current?(Y(x),x.current=window.setTimeout(()=>r(!1,e,n),i)):t&&(Y(x),r(!1,e,n))},[_,r]),A=K(()=>{E.current(),S.current=void 0}),j=K(()=>{if(T.current){let e=G(o.floating).body;e.style.pointerEvents=``,e.removeAttribute(Ir),T.current=!1}}),M=K(()=>i.current.openEvent?[`click`,`mousedown`].includes(i.current.openEvent.type):!1);X.useEffect(()=>{if(!s)return;function e(e){if(Y(x),w.current=!1,d&&!mt(b.current)||Jn(y.current)>0&&!qn(_.current,`open`))return;let t=qn(_.current,`open`,b.current);t?x.current=window.setTimeout(()=>{v.current||r(!0,e,`hover`)},t):n||r(!0,e,`hover`)}function t(e){if(M()){j();return}E.current();let t=G(o.floating);if(Y(C),D.current=!1,g.current&&i.current.floatingContext){n||Y(x),S.current=g.current({...i.current.floatingContext,tree:m,x:e.clientX,y:e.clientY,onClose(){j(),A(),M()||k(e,!0,`safe-polygon`)}});let r=S.current;t.addEventListener(`mousemove`,r),E.current=()=>{t.removeEventListener(`mousemove`,r)};return}(b.current!==`touch`||!U(o.floating,e.relatedTarget))&&k(e)}function a(e){M()||i.current.floatingContext&&(g.current==null||g.current({...i.current.floatingContext,tree:m,x:e.clientX,y:e.clientY,onClose(){j(),A(),M()||k(e)}})(e))}function c(){Y(x)}function l(e){M()||k(e,!1)}if(u(o.domReference)){let r=o.domReference,i=o.floating;return n&&r.addEventListener(`mouseleave`,a),p&&r.addEventListener(`mousemove`,e,{once:!0}),r.addEventListener(`mouseenter`,e),r.addEventListener(`mouseleave`,t),i&&(i.addEventListener(`mouseleave`,a),i.addEventListener(`mouseenter`,c),i.addEventListener(`mouseleave`,l)),()=>{n&&r.removeEventListener(`mouseleave`,a),p&&r.removeEventListener(`mousemove`,e),r.removeEventListener(`mouseenter`,e),r.removeEventListener(`mouseleave`,t),i&&(i.removeEventListener(`mouseleave`,a),i.removeEventListener(`mouseenter`,c),i.removeEventListener(`mouseleave`,l))}}},[o,s,e,d,p,k,A,j,r,n,v,m,_,g,i,M,y]),q(()=>{var e;if(s&&n&&(e=g.current)!=null&&(e=e.__options)!=null&&e.blockPointerEvents&&O()){T.current=!0;let e=o.floating;if(u(o.domReference)&&e){var t;let n=G(o.floating).body;n.setAttribute(Ir,``);let r=o.domReference,i=m==null||(t=m.nodesRef.current.find(e=>e.id===h))==null||(t=t.context)==null?void 0:t.elements.floating;return i&&(i.style.pointerEvents=``),n.style.pointerEvents=`none`,r.style.pointerEvents=`auto`,e.style.pointerEvents=`auto`,()=>{n.style.pointerEvents=``,r.style.pointerEvents=``,e.style.pointerEvents=``}}}},[s,n,h,o,m,g,O]),q(()=>{n||(b.current=void 0,D.current=!1,A(),j())},[n,A,j]),X.useEffect(()=>()=>{A(),Y(x),Y(C),j()},[s,o.domReference,A,j]);let N=X.useMemo(()=>{function e(e){b.current=e.pointerType}return{onPointerDown:e,onPointerEnter:e,onMouseMove(e){let{nativeEvent:t}=e;function i(){!w.current&&!v.current&&r(!0,t,`hover`)}d&&!mt(b.current)||n||Jn(y.current)===0||D.current&&e.movementX**2+e.movementY**2<2||(Y(C),b.current===`touch`?i():(D.current=!0,C.current=window.setTimeout(i,Jn(y.current))))}}},[d,r,n,v,y]);return X.useMemo(()=>s?{reference:N}:{},[s,N])}function Xn(e,t){t===void 0&&(t={});let{preventScroll:n=!1,cancelPrevious:r=!0,sync:i=!1}=t;r&&cancelAnimationFrame(Lr);let a=()=>e?.focus({preventScroll:n});i?a():Lr=requestAnimationFrame(a)}function Zn(e){return e?.ownerDocument||document}function Qn(e){return e===`inert`?Q.inert:e===`aria-hidden`?Q[`aria-hidden`]:Q.none}function $n(e){return e?f(e)?e.host:$n(e.parentNode):null}function er(e,t,n,r){let i=`data-floating-ui-inert`,a=r?`inert`:n?`aria-hidden`:null,s=Hr(t,e),c=new Set,l=new Set(s),u=[];zr[i]||(zr[i]=new WeakMap);let d=zr[i];s.forEach(f),p(t),c.clear();function f(e){!e||c.has(e)||(c.add(e),e.parentNode&&f(e.parentNode))}function p(e){!e||l.has(e)||[].forEach.call(e.children,e=>{if(o(e)!==`script`)if(c.has(e))p(e);else{let t=a?e.getAttribute(a):null,n=t!==null&&t!==`false`,r=Qn(a),o=(r.get(e)||0)+1,s=(d.get(e)||0)+1;r.set(e,o),d.set(e,s),u.push(e),o===1&&n&&Rr.add(e),s===1&&e.setAttribute(i,``),!n&&a&&e.setAttribute(a,a===`inert`?``:`true`)}})}return Br++,()=>{u.forEach(e=>{let t=Qn(a),n=(t.get(e)||0)-1,r=(d.get(e)||0)-1;t.set(e,n),d.set(e,r),n||(!Rr.has(e)&&a&&e.removeAttribute(a),Rr.delete(e)),r||e.removeAttribute(i)}),Br--,Br||(Q.inert=new WeakMap,Q[`aria-hidden`]=new WeakMap,Q.none=new WeakMap,Rr=new WeakSet,zr={})}}function tr(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);let r=Zn(e[0]).body;return er(e.concat(Array.from(r.querySelectorAll(`[aria-live],[role="status"],output`))),r,t,n)}function nr(e){e===void 0&&(e={});let{id:t,root:n}=e,r=jr(),i=Jr(),[a,o]=X.useState(null),s=X.useRef(null);return q(()=>()=>{a?.remove(),queueMicrotask(()=>{s.current=null})},[a]),q(()=>{if(!r||s.current)return;let e=t?document.getElementById(t):null;if(!e)return;let n=document.createElement(`div`);n.id=r,n.setAttribute(qr,``),e.appendChild(n),s.current=n,o(n)},[t,r]),q(()=>{if(n===null||!r||s.current)return;let e=n||i?.portalNode;e&&!l(e)&&(e=e.current),e||=document.body;let a=null;t&&(a=document.createElement(`div`),a.id=t,e.appendChild(a));let c=document.createElement(`div`);c.id=r,c.setAttribute(qr,``),e=a||e,e.appendChild(c),s.current=c,o(c)},[t,n,r,i]),a}function rr(e){let{children:t,id:n,root:r,preserveTabOrder:i=!0}=e,a=nr({id:n,root:r}),[o,s]=X.useState(null),c=X.useRef(null),l=X.useRef(null),u=X.useRef(null),d=X.useRef(null),f=o?.modal,p=o?.open,m=!!o&&!o.modal&&o.open&&i&&!!(r||a);return X.useEffect(()=>{if(!a||!i||f)return;function e(e){a&&yt(e)&&(e.type===`focusin`?xt:bt)(a)}return a.addEventListener(`focusin`,e,!0),a.addEventListener(`focusout`,e,!0),()=>{a.removeEventListener(`focusin`,e,!0),a.removeEventListener(`focusout`,e,!0)}},[a,i,f]),X.useEffect(()=>{a&&(p||xt(a))},[p,a]),(0,Z.jsxs)(Kr.Provider,{value:X.useMemo(()=>({preserveTabOrder:i,beforeOutsideRef:c,afterOutsideRef:l,beforeInsideRef:u,afterInsideRef:d,portalNode:a,setFocusManagerState:s}),[i,a]),children:[m&&a&&(0,Z.jsx)(Wr,{"data-type":`outside`,ref:c,onFocus:e=>{if(yt(e,a)){var t;(t=u.current)==null||t.focus()}else vt(o?o.domReference:null)?.focus()}}),m&&a&&(0,Z.jsx)(`span`,{"aria-owns":a.id,style:Gr}),a&&_r.createPortal(t,a),m&&a&&(0,Z.jsx)(Wr,{"data-type":`outside`,ref:l,onFocus:e=>{if(yt(e,a)){var t;(t=d.current)==null||t.focus()}else _t(o?o.domReference:null)?.focus(),o!=null&&o.closeOnFocusOut&&o?.onOpenChange(!1,e.nativeEvent,`focus-out`)}})]})}function ir(e){return X.useMemo(()=>t=>{e.forEach(e=>{e&&(e.current=t)})},e)}function ar(){$=$.filter(e=>e.deref()?.isConnected)}function or(e){ar(),e&&o(e)!==`body`&&($.push(new WeakRef(e)),$.length>Yr&&($=$.slice(-20)))}function sr(){return ar(),$[$.length-1]?.deref()}function cr(e){let t=Ot();return Ye(e,t)?e:qe(e,t)[0]||e}function lr(e,t){var n;if(!t.current.includes(`floating`)&&!((n=e.getAttribute(`role`))!=null&&n.includes(`dialog`)))return;let r=Ot(),i=Je(e,r).filter(e=>{let t=e.getAttribute(`data-tabindex`)||``;return Ye(e,r)||e.hasAttribute(`data-tabindex`)&&!t.startsWith(`-`)}),a=e.getAttribute(`tabindex`);t.current.includes(`floating`)||i.length===0?a!==`0`&&e.setAttribute(`tabindex`,`0`):(a!==`-1`||e.hasAttribute(`data-tabindex`)&&e.getAttribute(`data-tabindex`)!==`-1`)&&(e.setAttribute(`tabindex`,`-1`),e.setAttribute(`data-tabindex`,`-1`))}function ur(e){let{context:t,children:n,disabled:r=!1,order:i=[`content`],guards:a=!0,initialFocus:o=0,returnFocus:s=!0,restoreFocus:c=!1,modal:l=!0,visuallyHiddenDismiss:u=!1,closeOnFocusOut:f=!0,outsideElementsInert:p=!1,getInsideElements:m=()=>[]}=e,{open:h,onOpenChange:g,events:_,dataRef:v,elements:{domReference:y,floating:b}}=t,x=K(()=>v.current.floatingContext?.nodeId),S=K(m),C=typeof o==`number`&&o<0,w=ot(y)&&C,T=Vr(),E=!T||a,D=!E||T&&p,O=ht(i),k=ht(o),A=ht(s),j=Fr(),M=Jr(),N=X.useRef(null),P=X.useRef(null),F=X.useRef(!1),I=X.useRef(!1),L=X.useRef(-1),ee=X.useRef(-1),te=M!=null,R=st(b),z=K(function(e){return e===void 0&&(e=R),e?qe(e,Ot()):[]}),ne=K(e=>{let t=z(e);return O.current.map(e=>y&&e===`reference`?y:R&&e===`floating`?R:t).filter(Boolean).flat()});X.useEffect(()=>{if(r||!l)return;function e(e){if(e.key===`Tab`){U(R,nt(G(R)))&&z().length===0&&!w&&ut(e);let t=ne(),n=W(e);O.current[0]===`reference`&&n===y&&(ut(e),e.shiftKey?Xn(t[t.length-1]):Xn(t[1])),O.current[1]===`floating`&&n===R&&e.shiftKey&&(ut(e),Xn(t[0]))}}let t=G(R);return t.addEventListener(`keydown`,e),()=>{t.removeEventListener(`keydown`,e)}},[r,y,R,l,O,w,z,ne]),X.useEffect(()=>{if(r||!b)return;function e(e){let t=W(e),n=z().indexOf(t);n!==-1&&(L.current=n)}return b.addEventListener(`focusin`,e),()=>{b.removeEventListener(`focusin`,e)}},[r,b,z]),X.useEffect(()=>{if(r||!f)return;function e(){I.current=!0,setTimeout(()=>{I.current=!1})}function t(e){let t=e.relatedTarget,n=e.currentTarget,r=W(e);queueMicrotask(()=>{let i=x(),a=!(U(y,t)||U(b,t)||U(t,b)||U(M?.portalNode,t)||t!=null&&t.hasAttribute(Kn(`focus-guard`))||j&&(ct(j.nodesRef.current,i).find(e=>U(e.context?.elements.floating,t)||U(e.context?.elements.domReference,t))||lt(j.nodesRef.current,i).find(e=>[e.context?.elements.floating,st(e.context?.elements.floating)].includes(t)||e.context?.elements.domReference===t)));if(n===y&&R&&lr(R,O),c&&n!==y&&!(r!=null&&r.isConnected)&&nt(G(R))===G(R).body){d(R)&&R.focus();let e=L.current,t=z(),n=t[e]||t[t.length-1]||R;d(n)&&n.focus()}if(v.current.insideReactTree){v.current.insideReactTree=!1;return}(w||!l)&&t&&a&&!I.current&&t!==sr()&&(F.current=!0,g(!1,e,`focus-out`))})}let n=!!(!j&&M);function i(){Y(ee),v.current.insideReactTree=!0,ee.current=window.setTimeout(()=>{v.current.insideReactTree=!1})}if(b&&d(y))return y.addEventListener(`focusout`,t),y.addEventListener(`pointerdown`,e),b.addEventListener(`focusout`,t),n&&b.addEventListener(`focusout`,i,!0),()=>{y.removeEventListener(`focusout`,t),y.removeEventListener(`pointerdown`,e),b.removeEventListener(`focusout`,t),n&&b.removeEventListener(`focusout`,i,!0)}},[r,y,b,R,l,j,M,g,f,c,z,w,x,O,v]);let re=X.useRef(null),ie=X.useRef(null),ae=ir([re,M?.beforeInsideRef]),oe=ir([ie,M?.afterInsideRef]);X.useEffect(()=>{var e,t;if(r||!b)return;let n=Array.from((M==null||(e=M.portalNode)==null?void 0:e.querySelectorAll(`[`+Kn(`portal`)+`]`))||[]),i=(t=(j?lt(j.nodesRef.current,x()):[]).find(e=>ot(e.context?.elements.domReference||null)))==null||(t=t.context)==null?void 0:t.elements.domReference,a=[b,i,...n,...S(),N.current,P.current,re.current,ie.current,M?.beforeOutsideRef.current,M?.afterOutsideRef.current,O.current.includes(`reference`)||w?y:null].filter(e=>e!=null),o=l||w?tr(a,!D,D):tr(a);return()=>{o()}},[r,y,b,l,O,M,w,E,D,j,x,S]),q(()=>{if(r||!d(R))return;let e=nt(G(R));queueMicrotask(()=>{let t=ne(R),n=k.current,r=(typeof n==`number`?t[n]:n.current)||R,i=U(R,e);!C&&!i&&h&&Xn(r,{preventScroll:r===R})})},[r,h,R,C,ne,k]),q(()=>{if(r||!R)return;let e=G(R);or(nt(e));function t(e){let{reason:t,event:n,nested:r}=e;if([`hover`,`safe-polygon`].includes(t)&&n.type===`mouseleave`&&(F.current=!0),t===`outside-press`)if(r)F.current=!1;else if(ft(n)||pt(n))F.current=!1;else{let e=!1;document.createElement(`div`).focus({get preventScroll(){return e=!0,!1}}),e?F.current=!1:F.current=!0}}_.on(`openchange`,t);let n=e.createElement(`span`);n.setAttribute(`tabindex`,`-1`),n.setAttribute(`aria-hidden`,`true`),Object.assign(n.style,Ur),te&&y&&y.insertAdjacentElement(`afterend`,n);function i(){if(typeof A.current==`boolean`){let e=y||sr();return e&&e.isConnected?e:n}return A.current.current||n}return()=>{_.off(`openchange`,t);let r=nt(e),a=U(b,r)||j&&ct(j.nodesRef.current,x(),!1).some(e=>U(e.context?.elements.floating,r)),o=i();queueMicrotask(()=>{let t=cr(o);A.current&&!F.current&&d(t)&&(t===r||r===e.body||a)&&t.focus({preventScroll:!0}),n.remove()})}},[r,b,R,A,v,_,j,te,y,x]),X.useEffect(()=>(queueMicrotask(()=>{F.current=!1}),()=>{queueMicrotask(ar)}),[r]),q(()=>{if(!r&&M)return M.setFocusManagerState({modal:l,closeOnFocusOut:f,open:h,onOpenChange:g,domReference:y}),()=>{M.setFocusManagerState(null)}},[r,M,l,h,g,f,y]),q(()=>{r||R&&lr(R,O)},[r,R,O]);function se(e){return r||!u||!l?null:(0,Z.jsx)(Xr,{ref:e===`start`?N:P,onClick:e=>g(!1,e.nativeEvent),children:typeof u==`string`?u:`Dismiss`})}let ce=!r&&E&&(!l||!w)&&(te||l);return(0,Z.jsxs)(Z.Fragment,{children:[ce&&(0,Z.jsx)(Wr,{"data-type":`inside`,ref:ae,onFocus:e=>{if(l){let e=ne();Xn(i[0]===`reference`?e[0]:e[e.length-1])}else if(M!=null&&M.preserveTabOrder&&M.portalNode)if(F.current=!1,yt(e,M.portalNode))_t(y)?.focus();else{var t;(t=M.beforeOutsideRef.current)==null||t.focus()}}}),!w&&se(`start`),n,se(`end`),ce&&(0,Z.jsx)(Wr,{"data-type":`inside`,ref:oe,onFocus:e=>{if(l)Xn(ne()[0]);else if(M!=null&&M.preserveTabOrder&&M.portalNode)if(f&&(F.current=!0),yt(e,M.portalNode))vt(y)?.focus();else{var t;(t=M.afterOutsideRef.current)==null||t.focus()}}})]})}function dr(e,t){t===void 0&&(t={});let{open:n,onOpenChange:r,elements:i,dataRef:a}=e,{enabled:o=!0,escapeKey:s=!0,outsidePress:c=!0,outsidePressEvent:l=`pointerdown`,referencePress:f=!1,referencePressEvent:p=`pointerdown`,ancestorScroll:m=!1,bubbles:h,capture:g}=t,_=Fr(),x=K(typeof c==`function`?c:()=>!1),C=typeof c==`function`?x:c,T=X.useRef(!1),{escapeKey:E,outsidePress:D}=$r(h),{escapeKey:O,outsidePress:k}=$r(g),A=X.useRef(!1),j=K(e=>{if(!n||!o||!s||e.key!==`Escape`||A.current)return;let t=a.current.floatingContext?.nodeId,i=_?ct(_.nodesRef.current,t):[];if(!E&&(e.stopPropagation(),i.length>0)){let e=!0;if(i.forEach(t=>{var n;if((n=t.context)!=null&&n.open&&!t.context.dataRef.current.__escapeKeyBubbles){e=!1;return}}),!e)return}r(!1,dt(e)?e.nativeEvent:e,`escape-key`)}),M=K(e=>{var t;let n=()=>{var t;j(e),(t=W(e))==null||t.removeEventListener(`keydown`,n)};(t=W(e))==null||t.addEventListener(`keydown`,n)}),N=K(e=>{let t=a.current.insideReactTree;a.current.insideReactTree=!1;let n=T.current;if(T.current=!1,l===`click`&&n||t||typeof C==`function`&&!C(e))return;let o=W(e),s=`[`+Kn(`inert`)+`]`,c=G(i.floating).querySelectorAll(s),f=u(o)?o:null;for(;f&&!y(f);){let e=S(f);if(y(e)||!u(e))break;f=e}if(c.length&&u(o)&&!it(o)&&!U(o,i.floating)&&Array.from(c).every(e=>!U(f,e)))return;if(d(o)&&I){let t=y(o),n=b(o),r=/auto|scroll/,i=t||r.test(n.overflowX),a=t||r.test(n.overflowY),s=i&&o.clientWidth>0&&o.scrollWidth>o.clientWidth,c=a&&o.clientHeight>0&&o.scrollHeight>o.clientHeight,l=n.direction===`rtl`,u=c&&(l?e.offsetX<=o.offsetWidth-o.clientWidth:e.offsetX>o.clientWidth),d=s&&e.offsetY>o.clientHeight;if(u||d)return}let p=a.current.floatingContext?.nodeId,m=_&&ct(_.nodesRef.current,p).some(t=>rt(e,t.context?.elements.floating));if(rt(e,i.floating)||rt(e,i.domReference)||m)return;let h=_?ct(_.nodesRef.current,p):[];if(h.length>0){let e=!0;if(h.forEach(t=>{var n;if((n=t.context)!=null&&n.open&&!t.context.dataRef.current.__outsidePressBubbles){e=!1;return}}),!e)return}r(!1,e,`outside-press`)}),P=K(e=>{var t;let n=()=>{var t;N(e),(t=W(e))==null||t.removeEventListener(l,n)};(t=W(e))==null||t.addEventListener(l,n)});X.useEffect(()=>{if(!n||!o)return;a.current.__escapeKeyBubbles=E,a.current.__outsidePressBubbles=D;let e=-1;function t(e){r(!1,e,`ancestor-scroll`)}function c(){window.clearTimeout(e),A.current=!0}function d(){e=window.setTimeout(()=>{A.current=!1},v()?5:0)}let f=G(i.floating);s&&(f.addEventListener(`keydown`,O?M:j,O),f.addEventListener(`compositionstart`,c),f.addEventListener(`compositionend`,d)),C&&f.addEventListener(l,k?P:N,k);let p=[];return m&&(u(i.domReference)&&(p=w(i.domReference)),u(i.floating)&&(p=p.concat(w(i.floating))),!u(i.reference)&&i.reference&&i.reference.contextElement&&(p=p.concat(w(i.reference.contextElement)))),p=p.filter(e=>e!==f.defaultView?.visualViewport),p.forEach(e=>{e.addEventListener(`scroll`,t)}),()=>{s&&(f.removeEventListener(`keydown`,O?M:j,O),f.removeEventListener(`compositionstart`,c),f.removeEventListener(`compositionend`,d)),C&&f.removeEventListener(l,k?P:N,k),p.forEach(e=>{e.removeEventListener(`scroll`,t)}),window.clearTimeout(e)}},[a,i,s,C,l,n,r,m,o,E,D,j,O,M,N,k,P]),X.useEffect(()=>{a.current.insideReactTree=!1},[a,C,l]);let F=X.useMemo(()=>({onKeyDown:j,...f&&{[Zr[p]]:e=>{r(!1,e.nativeEvent,`reference-press`)},...p!==`click`&&{onClick(e){r(!1,e.nativeEvent,`reference-press`)}}}}),[j,r,f,p]),I=X.useMemo(()=>{function e(e){e.button===0&&(T.current=!0)}return{onKeyDown:j,onMouseDown:e,onMouseUp:e,[Qr[l]]:()=>{a.current.insideReactTree=!0}}},[j,l,a]);return X.useMemo(()=>o?{reference:F,floating:I}:{},[o,F,I])}function fr(e){let{open:t=!1,onOpenChange:n,elements:r}=e,i=jr(),a=X.useRef({}),[o]=X.useState(()=>Gn()),s=Pr()!=null,[c,l]=X.useState(r.reference),u=K((e,t,r)=>{a.current.openEvent=e?t:void 0,o.emit(`openchange`,{open:e,event:t,reason:r,nested:s}),n?.(e,t,r)}),d=X.useMemo(()=>({setPositionReference:l}),[]),f=X.useMemo(()=>({reference:c||r.reference||null,floating:r.floating||null,domReference:r.reference}),[c,r.reference,r.floating]);return X.useMemo(()=>({dataRef:a,open:t,onOpenChange:u,elements:f,events:o,floatingId:i,refs:d}),[t,u,f,o,i,d])}function pr(e){let{elements:t,...n}=e===void 0?{}:e,{nodeId:r}=n,i=fr({...n,elements:{reference:t?.reference??null,floating:t?.floating??null}}),a=n.rootContext||i,o=a.elements,[s,c]=X.useState(null),[l,d]=X.useState(null),f=o?.domReference||s,p=X.useRef(null),m=Fr();q(()=>{f&&(p.current=f)},[f]);let h=Mn({...n,elements:{...o,...l&&{reference:l}}}),g=X.useCallback(e=>{let t=u(e)?{getBoundingClientRect:()=>e.getBoundingClientRect(),getClientRects:()=>e.getClientRects(),contextElement:e}:e;d(t),h.refs.setReference(t)},[h.refs]),_=X.useCallback(e=>{(u(e)||e===null)&&(p.current=e,c(e)),(u(h.refs.reference.current)||h.refs.reference.current===null||e!==null&&!u(e))&&h.refs.setReference(e)},[h.refs]),v=X.useMemo(()=>({...h.refs,setReference:_,setPositionReference:g,domReference:p}),[h.refs,_,g]),y=X.useMemo(()=>({...h.elements,domReference:f}),[h.elements,f]),b=X.useMemo(()=>({...h,...a,refs:v,elements:y,nodeId:r}),[h,v,y,r,a]);return q(()=>{a.dataRef.current.floatingContext=b;let e=m?.nodesRef.current.find(e=>e.id===r);e&&(e.context=b)}),X.useMemo(()=>({...h,context:b,refs:v,elements:y}),[h,v,y,b])}function mr(e,t,n){let r=new Map,i=n===`item`,a=e;if(i&&e){let{[yr]:t,[br]:n,...r}=e;a=r}return{...n===`floating`&&{tabIndex:-1,[vr]:``},...a,...t.map(t=>{let r=t?t[n]:null;return typeof r==`function`?e?r(e):null:r}).concat(e).reduce((e,t)=>(t&&Object.entries(t).forEach(t=>{let[n,a]=t;if(!(i&&[yr,br].includes(n)))if(n.indexOf(`on`)===0){if(r.has(n)||r.set(n,[]),typeof a==`function`){var o;(o=r.get(n))==null||o.push(a),e[n]=function(){var e=[...arguments];return r.get(n)?.map(t=>t(...e)).find(e=>e!==void 0)}}}else e[n]=a}),e),{})}}function hr(e){e===void 0&&(e=[]);let t=e.map(e=>e?.reference),n=e.map(e=>e?.floating),r=e.map(e=>e?.item),i=X.useCallback(t=>mr(t,e,`reference`),t),a=X.useCallback(t=>mr(t,e,`floating`),n),o=X.useCallback(t=>mr(t,e,`item`),r);return X.useMemo(()=>({getReferenceProps:i,getFloatingProps:a,getItemProps:o}),[i,a,o])}function gr(e,t){t===void 0&&(t={});let{open:n,elements:r,floatingId:i}=e,{enabled:a=!0,role:o=`dialog`}=t,s=jr(),c=r.domReference?.id||s,l=X.useMemo(()=>st(r.floating)?.id||i,[r.floating,i]),u=ei.get(o)??o,d=Pr()!=null,f=X.useMemo(()=>u===`tooltip`||o===`label`?{[`aria-`+(o===`label`?`labelledby`:`describedby`)]:n?l:void 0}:{"aria-expanded":n?`true`:`false`,"aria-haspopup":u===`alertdialog`?`dialog`:u,"aria-controls":n?l:void 0,...u===`listbox`&&{role:`combobox`},...u===`menu`&&{id:c},...u===`menu`&&d&&{role:`menuitem`},...o===`select`&&{"aria-autocomplete":`none`},...o===`combobox`&&{"aria-autocomplete":`list`}},[u,l,d,n,c,o]),p=X.useMemo(()=>{let e={id:l,...u&&{role:u}};return u===`tooltip`||o===`label`?e:{...e,...u===`menu`&&{"aria-labelledby":c}}},[u,l,c,o]),m=X.useCallback(e=>{let{active:t,selected:n}=e,r={role:`option`,...t&&{id:l+`-fui-option`}};switch(o){case`select`:case`combobox`:return{...r,"aria-selected":n}}return{}},[l,o]);return X.useMemo(()=>a?{reference:f,floating:p,item:m}:{},[a,f,p,m])}var X,Z,_r,vr,yr,br,xr,Sr,Cr,wr,Tr,Er,Dr,Or,kr,Ar,jr,Mr,Nr,Pr,Fr,Ir,Lr,Q,Rr,zr,Br,Vr,Hr,Ur,Wr,Gr,Kr,qr,Jr,Yr,$,Xr,Zr,Qr,$r,ei;function ti(){return(ti=e((()=>{X=t(n(),1),kt(),Z=r(),A(),Xe(),_r=t(i(),1),Un(),vr=`data-floating-ui-focusable`,yr=`active`,br=`selected`,xr=`ArrowLeft`,Sr=`ArrowRight`,Cr=`ArrowUp`,wr=`ArrowDown`,Tr=[xr,Sr],Er=[Cr,wr],[...Tr,...Er],Dr={...X},Or=!1,kr=0,Ar=()=>`floating-ui-`+Math.random().toString(36).slice(2,6)+kr++,jr=Dr.useId||Wn,Mr=X.createContext(null),Nr=X.createContext(null),Pr=()=>X.useContext(Mr)?.id||null,Fr=()=>X.useContext(Nr),Ir=Kn(`safe-polygon`),Lr=0,Q={inert:new WeakMap,"aria-hidden":new WeakMap,none:new WeakMap},Rr=new WeakSet,zr={},Br=0,Vr=()=>typeof HTMLElement<`u`&&`inert`in HTMLElement.prototype,Hr=(e,t)=>t.map(t=>{if(e.contains(t))return t;let n=$n(t);return e.contains(n)?n:null}).filter(e=>e!=null),Ur={border:0,clip:`rect(0 0 0 0)`,height:`1px`,margin:`-1px`,overflow:`hidden`,padding:0,position:`fixed`,whiteSpace:`nowrap`,width:`1px`,top:0,left:0},Wr=X.forwardRef(function(e,t){let[n,r]=X.useState();q(()=>{$e()&&r(`button`)},[]);let i={ref:t,tabIndex:0,role:n,"aria-hidden":!n||void 0,[Kn(`focus-guard`)]:``,style:Ur};return(0,Z.jsx)(`span`,{...e,...i})}),Gr={clipPath:`inset(50%)`,position:`fixed`,top:0,left:0},Kr=X.createContext(null),qr=Kn(`portal`),Jr=()=>X.useContext(Kr),Yr=20,$=[],Xr=X.forwardRef(function(e,t){return(0,Z.jsx)(`button`,{...e,type:`button`,ref:t,tabIndex:-1,style:Ur})}),Zr={pointerdown:`onPointerDown`,mousedown:`onMouseDown`,click:`onClick`},Qr={pointerdown:`onPointerDownCapture`,mousedown:`onMouseDownCapture`,click:`onClickCapture`},$r=e=>({escapeKey:typeof e==`boolean`?e:e?.escapeKey??!1,outsidePress:typeof e==`boolean`?e:e?.outsidePress??!0}),ei=new Map([[`select`,`listbox`],[`combobox`,`listbox`],[`label`,!1]])})))()}export{Dn as _,pr as a,gr as c,zn as d,Un as f,hn as g,Bn as h,dr as i,Hn as l,Rn as m,rr as n,Yn as o,Ln as p,ti as r,hr as s,ur as t,Vn as u};
1
+ import{n as e,o as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r}from"./iframe-CD1cMwos.js";import{t as i}from"./react-dom-2o2phaJG.js";function a(){return typeof window<`u`}function o(e){return l(e)?(e.nodeName||``).toLowerCase():`#document`}function s(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function c(e){return((l(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function l(e){return a()?e instanceof Node||e instanceof s(e).Node:!1}function u(e){return a()?e instanceof Element||e instanceof s(e).Element:!1}function d(e){return a()?e instanceof HTMLElement||e instanceof s(e).HTMLElement:!1}function f(e){return!a()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof s(e).ShadowRoot}function p(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=b(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function m(e){return/^(table|td|th)$/.test(o(e))}function h(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}function g(e){let t=u(e)?b(e):e;return O(t.transform)||O(t.translate)||O(t.scale)||O(t.rotate)||O(t.perspective)||!v()&&(O(t.backdropFilter)||O(t.filter))||E.test(t.willChange||``)||D.test(t.contain||``)}function _(e){let t=S(e);for(;d(t)&&!y(t);){if(g(t))return t;if(h(t))return null;t=S(t)}return null}function v(){return k??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),k}function y(e){return/^(html|body|#document)$/.test(o(e))}function b(e){return s(e).getComputedStyle(e)}function x(e){return u(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function S(e){if(o(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||f(e)&&e.host||c(e);return f(t)?t.host:t}function C(e){let t=S(e);return y(t)?(e.ownerDocument||e).body:d(t)&&p(t)?t:C(t)}function w(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=C(e),i=r===e.ownerDocument?.body,a=s(r);if(i){let e=T(a);return t.concat(a,a.visualViewport||[],p(r)?r:[],e&&n?w(e):[])}return t.concat(r,w(r,[],n))}function T(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}var E,D,O,k;function A(){return(A=e((()=>{E=/transform|translate|scale|rotate|perspective|filter/,D=/paint|layout|strict|content/,O=e=>!!e&&e!==`none`})))()}function j(e,t,n){return V(e,B(t,n))}function M(e,t){return typeof e==`function`?e(t):e}function N(e){return e.split(`-`)[0]}function P(e){return e.split(`-`)[1]}function F(e){return e===`x`?`y`:`x`}function I(e){return e===`y`?`height`:`width`}function L(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function ee(e){return F(L(e))}function te(e,t,n){n===void 0&&(n=!1);let r=P(e),i=ee(e),a=I(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=ie(o)),[o,ie(o)]}function R(e){let t=ie(e);return[z(e),t,z(t)]}function z(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}function ne(e,t,n){switch(e){case`top`:case`bottom`:return n?t?he:me:t?me:he;case`left`:case`right`:return t?ge:_e;default:return[]}}function re(e,t,n,r){let i=P(e),a=ne(N(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(z)))),a}function ie(e){let t=N(e);return pe[t]+e.slice(t.length)}function ae(e){return{top:e.top??0,right:e.right??0,bottom:e.bottom??0,left:e.left??0}}function oe(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:ae(e)}function se(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}var ce,le,ue,B,V,de,fe,H,pe,me,he,ge,_e;function ve(){return(ve=e((()=>{ce=[`top`,`right`,`bottom`,`left`],le=[`start`,`end`],ue=ce.reduce((e,t)=>e.concat(t,t+`-`+le[0],t+`-`+le[1]),[]),B=Math.min,V=Math.max,de=Math.round,fe=Math.floor,H=e=>({x:e,y:e}),pe={left:`right`,right:`left`,bottom:`top`,top:`bottom`},me=[`left`,`right`],he=[`right`,`left`],ge=[`top`,`bottom`],_e=[`bottom`,`top`]})))()}var ye,be,xe,Se,Ce,we,Te,Ee,De,Oe,ke,Ae,je,Me,Ne,Pe,Fe,Ie,Le,Re,ze,Be,Ve,He,Ue,We,Ge,Ke,qe,Je,Ye;function Xe(){return(Xe=e((()=>{ye=[`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] *)`],be=ye.join(`,`),xe=typeof Element>`u`,Se=xe?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,Ce=!xe&&Element.prototype.getRootNode?function(e){return e?.getRootNode?.call(e)}:function(e){return e?.ownerDocument},we=function(e,t){t===void 0&&(t=!0);var n=e?.getAttribute?.call(e,`inert`);return n===``||n===`true`||t&&e&&(typeof e.closest==`function`?e.closest(`[inert]`):we(e.parentNode))},Te=function(e){var t=e?.getAttribute?.call(e,`contenteditable`);return t===``||t===`true`},Ee=function(e,t,n){if(we(e))return[];var r=Array.prototype.slice.apply(e.querySelectorAll(be));return t&&Se.call(e,be)&&r.unshift(e),r=r.filter(n),r},De=function(e,t,n){for(var r=[],i=Array.from(e);i.length;){var a=i.shift();if(!we(a,!1))if(a.tagName===`SLOT`){var o=a.assignedElements(),s=De(o.length?o:a.children,!0,n);n.flatten?r.push.apply(r,s):r.push({scopeParent:a,candidates:s})}else{Se.call(a,be)&&n.filter(a)&&(t||!e.includes(a))&&r.push(a);var c=a.shadowRoot||typeof n.getShadowRoot==`function`&&n.getShadowRoot(a),l=!we(c,!1)&&(!n.shadowRootFilter||n.shadowRootFilter(a));if(c&&l){var u=De(c===!0?a.children:c.children,!0,n);n.flatten?r.push.apply(r,u):r.push({scopeParent:a,candidates:u})}else i.unshift.apply(i,a.children)}}return r},Oe=function(e){return!isNaN(parseInt(e.getAttribute(`tabindex`),10))},ke=function(e){if(!e)throw Error(`No node provided`);return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||Te(e))&&!Oe(e)?0:e.tabIndex},Ae=function(e,t){var n=ke(e);return n<0&&t&&!Oe(e)?0:n},je=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},Me=function(e){return e.tagName===`INPUT`},Ne=function(e){return Me(e)&&e.type===`hidden`},Pe=function(e){return e.tagName===`DETAILS`&&Array.prototype.slice.apply(e.children).some(function(e){return e.tagName===`SUMMARY`})},Fe=function(e,t){for(var n=0;n<e.length;n++)if(e[n].checked&&e[n].form===t)return e[n]},Ie=function(e){if(!e.name)return!0;var t=e.form||Ce(e),n=function(e){return t.querySelectorAll(`input[type="radio"][name="`+e+`"]`)},r;if(typeof window<`u`&&window.CSS!==void 0&&typeof window.CSS.escape==`function`)r=n(window.CSS.escape(e.name));else try{r=n(e.name)}catch(e){return 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`,e.message),!1}var i=Fe(r,e.form);return!i||i===e},Le=function(e){return Me(e)&&e.type===`radio`},Re=function(e){return Le(e)&&!Ie(e)},ze=function(e){var t=e&&Ce(e),n=t?.host,r=!1;if(t&&t!==e){var i,a,o;for(r=!!((i=n)!=null&&(a=i.ownerDocument)!=null&&a.contains(n)||e!=null&&(o=e.ownerDocument)!=null&&o.contains(e));!r&&n;){var s,c;t=Ce(n),n=t?.host,r=!!((s=n)!=null&&(c=s.ownerDocument)!=null&&c.contains(n))}}return r},Be=function(e){var t=e.getBoundingClientRect(),n=t.width,r=t.height;return n===0&&r===0},Ve=function(e,t){var n=t.displayCheck,r=t.getShadowRoot;if(n===`full-native`&&`checkVisibility`in e)return!e.checkVisibility({checkOpacity:!1,opacityProperty:!1,contentVisibilityAuto:!0,visibilityProperty:!0,checkVisibilityCSS:!0});var i=getComputedStyle(e).visibility;if(i===`hidden`||i===`collapse`)return!0;var a=Se.call(e,`details>summary:first-of-type`)?e.parentElement:e;if(Se.call(a,`details:not([open]) *`))return!0;if(!n||n===`full`||n===`full-native`||n===`legacy-full`){if(typeof r==`function`){for(var o=e;e;){var s=e.parentElement,c=Ce(e);if(s&&!s.shadowRoot&&r(s)===!0)return Be(e);e=e.assignedSlot?e.assignedSlot:!s&&c!==e.ownerDocument?c.host:s}e=o}if(ze(e))return!e.getClientRects().length;if(n!==`legacy-full`)return!0}else if(n===`non-zero-area`)return Be(e);return!1},He=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(t.tagName===`FIELDSET`&&t.disabled){for(var n=0;n<t.children.length;n++){var r=t.children.item(n);if(r.tagName===`LEGEND`)return Se.call(t,`fieldset[disabled] *`)?!0:!r.contains(e)}return!0}t=t.parentElement}return!1},Ue=function(e,t){return!(t.disabled||Ne(t)||Ve(t,e)||Pe(t)||He(t))},We=function(e,t){return!(Re(t)||ke(t)<0||!Ue(e,t))},Ge=function(e){var t=parseInt(e.getAttribute(`tabindex`),10);return!!(isNaN(t)||t>=0)},Ke=function(e){var t=[],n=[];return e.forEach(function(e,r){var i=!!e.scopeParent,a=i?e.scopeParent:e,o=Ae(a,i),s=i?Ke(e.candidates):a;o===0?i?t.push.apply(t,s):t.push(a):n.push({documentOrder:r,tabIndex:o,item:e,isScope:i,content:s})}),n.sort(je).reduce(function(e,t){return t.isScope?e.push.apply(e,t.content):e.push(t.content),e},[]).concat(t)},qe=function(e,t){t||={};var n=t.getShadowRoot?De([e],t.includeContainer,{filter:We.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:Ge}):Ee(e,t.includeContainer,We.bind(null,t));return Ke(n)},Je=function(e,t){return t||={},t.getShadowRoot?De([e],t.includeContainer,{filter:Ue.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):Ee(e,t.includeContainer,Ue.bind(null,t))},Ye=function(e,t){if(t||={},!e)throw Error(`No node provided`);return Se.call(e,be)!==!1&&We(t,e)}})))()}function Ze(){let e=navigator.userAgentData;return e!=null&&e.platform?e.platform:navigator.platform}function Qe(){let e=navigator.userAgentData;return e&&Array.isArray(e.brands)?e.brands.map(e=>{let{brand:t,version:n}=e;return t+`/`+n}).join(` `):navigator.userAgent}function $e(){return/apple/i.test(navigator.vendor)}function et(){let e=/android/i;return e.test(Ze())||e.test(Qe())}function tt(){return Qe().includes(`jsdom/`)}function nt(e){let t=e.activeElement;for(;((n=t)==null||(n=n.shadowRoot)==null?void 0:n.activeElement)!=null;){var n;t=t.shadowRoot.activeElement}return t}function U(e,t){if(!e||!t)return!1;let n=t.getRootNode==null?void 0:t.getRootNode();if(e.contains(t))return!0;if(n&&f(n)){let n=t;for(;n;){if(e===n)return!0;n=n.parentNode||n.host}}return!1}function W(e){return`composedPath`in e?e.composedPath()[0]:e.target}function rt(e,t){if(t==null)return!1;if(`composedPath`in e)return e.composedPath().includes(t);let n=e;return n.target!=null&&t.contains(n.target)}function it(e){return e.matches(`html,body`)}function G(e){return e?.ownerDocument||document}function at(e){return d(e)&&e.matches(Tt)}function ot(e){return e?e.getAttribute(`role`)===`combobox`&&at(e):!1}function st(e){return e?e.hasAttribute(wt)?e:e.querySelector(`[data-floating-ui-focusable]`)||e:null}function ct(e,t,n){return n===void 0&&(n=!0),e.filter(e=>e.parentId===t&&(!n||e.context?.open)).flatMap(t=>[t,...ct(e,t.id,n)])}function lt(e,t){let n=[],r=e.find(e=>e.id===t)?.parentId;for(;r;){let t=e.find(e=>e.id===r);r=t?.parentId,t&&(n=n.concat(t))}return n}function ut(e){e.preventDefault(),e.stopPropagation()}function dt(e){return`nativeEvent`in e}function ft(e){return e.mozInputSource===0&&e.isTrusted?!0:et()&&e.pointerType?e.type===`click`&&e.buttons===1:e.detail===0&&!e.pointerType}function pt(e){return tt()?!1:!et()&&e.width===0&&e.height===0||et()&&e.width===1&&e.height===1&&e.pressure===0&&e.detail===0&&e.pointerType===`mouse`||e.width<1&&e.height<1&&e.pressure===0&&e.detail===0&&e.pointerType===`touch`}function mt(e,t){let n=[`mouse`,`pen`];return t||n.push(``,void 0),n.includes(e)}function ht(e){let t=St.useRef(e);return q(()=>{t.current=e}),t}function K(e){let t=St.useRef(()=>{});return Dt(()=>{t.current=e}),St.useCallback(function(){var e=[...arguments];return t.current==null?void 0:t.current(...e)},[])}function gt(e,t){let n=qe(e,Ot()),r=n.length;if(r===0)return;let i=nt(G(e)),a=n.indexOf(i);return n[a===-1?t===1?0:r-1:a+t]}function _t(e){return gt(G(e).body,1)||e}function vt(e){return gt(G(e).body,-1)||e}function yt(e,t){let n=t||e.currentTarget,r=e.relatedTarget;return!r||!U(n,r)}function bt(e){qe(e,Ot()).forEach(e=>{e.dataset.tabindex=e.getAttribute(`tabindex`)||``,e.setAttribute(`tabindex`,`-1`)})}function xt(e){e.querySelectorAll(`[data-tabindex]`).forEach(e=>{let t=e.dataset.tabindex;delete e.dataset.tabindex,t?e.setAttribute(`tabindex`,t):e.removeAttribute(`tabindex`)})}var St,Ct,wt,Tt,q,Et,Dt,Ot;function kt(){return(kt=e((()=>{A(),St=t(n(),1),Ct=n(),Xe(),wt=`data-floating-ui-focusable`,Tt=`input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])`,q=typeof document<`u`?Ct.useLayoutEffect:function(){},Et={...St},Dt=Et.useInsertionEffect||(e=>e()),Ot=()=>({getShadowRoot:!0,displayCheck:typeof ResizeObserver==`function`&&ResizeObserver.toString().includes(`[native code]`)?`full`:`none`})})))()}function At(e,t,n){let{reference:r,floating:i}=e,a=L(t),o=ee(t),s=I(o),c=N(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}let m=P(t);return m&&(p[o]+=f*(m===`end`?1:-1)*(n&&l?-1:1)),p}async function jt(e,t){t===void 0&&(t={});let{x:n,y:r,platform:i,rects:a,elements:o,strategy:s}=e,{boundary:c=`clippingAncestors`,rootBoundary:l=`viewport`,elementContext:u=`floating`,altBoundary:d=!1,padding:f=0}=M(t,e),p=oe(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=se(await i.getClippingRect({element:await(i.isElement==null?void 0:i.isElement(m))??!0?m:m.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:c,rootBoundary:l,strategy:s})),g=u===`floating`?{x:n,y:r,width:a.floating.width,height:a.floating.height}:a.reference,_=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),v=await(i.isElement==null?void 0:i.isElement(_))&&await(i.getScale==null?void 0:i.getScale(_))||{x:1,y:1},y=se(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:g,offsetParent:_,strategy:s}):g);return{top:(h.top-y.top+p.top)/v.y,bottom:(y.bottom-h.bottom+p.bottom)/v.y,left:(h.left-y.left+p.left)/v.x,right:(y.right-h.right+p.right)/v.x}}function Mt(e,t,n){return(e?[...n.filter(t=>P(t)===e),...n.filter(t=>P(t)!==e)]:n.filter(e=>N(e)===e)).filter(n=>!e||P(n)===e||(t?z(n)!==n:!1))}async function Nt(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=N(n),s=P(n),c=L(n)===`y`,l=zt.has(o)?-1:1,u=a&&c?-1:1,d=M(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}var Pt,Ft,It,Lt,Rt,zt,Bt,Vt,Ht;function Ut(){return(Ut=e((()=>{ve(),Pt=50,Ft=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:jt},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=At(l,r,c),f=r,p=0,m={};for(let n=0;n<a.length;n++){let h=a[n];if(!h)continue;let{name:g,fn:_}=h,{x:v,y,data:b,reset:x}=await _({x:u,y:d,initialPlacement:r,placement:f,strategy:i,middlewareData:m,rects:l,platform:s,elements:{reference:e,floating:t}});u=v??u,d=y??d,m[g]={...m[g],...b},x&&p<Pt&&(p++,typeof x==`object`&&(x.placement&&(f=x.placement),x.rects&&(l=x.rects===!0?await o.getElementRects({reference:e,floating:t,strategy:i}):x.rects),{x:u,y:d}=At(l,f,c)),n=-1)}return{x:u,y:d,placement:f,strategy:i,middlewareData:m}},It=e=>({name:`arrow`,options:e,async fn(t){let{x:n,y:r,placement:i,rects:a,platform:o,elements:s,middlewareData:c}=t,{element:l,padding:u=0}=M(e,t)||{};if(l==null)return{};let d=oe(u),f={x:n,y:r},p=ee(i),m=I(p),h=await o.getDimensions(l),g=p===`y`,_=g?`top`:`left`,v=g?`bottom`:`right`,y=g?`clientHeight`:`clientWidth`,b=a.reference[m]+a.reference[p]-f[p]-a.floating[m],x=f[p]-a.reference[p],S=await(o.getOffsetParent==null?void 0:o.getOffsetParent(l)),C=S?S[y]:0;(!C||!await(o.isElement==null?void 0:o.isElement(S)))&&(C=s.floating[y]||a.floating[m]);let w=b/2-x/2,T=C/2-h[m]/2-1,E=B(d[_],T),D=B(d[v],T),O=C-h[m]-D,k=C/2-h[m]/2+w,A=j(E,k,O),N=!c.arrow&&P(i)!=null&&k!==A&&a.reference[m]/2-(k<E?E:D)-h[m]/2<0,F=N?k<E?k-E:k-O:0;return{[p]:f[p]+F,data:{[p]:A,centerOffset:k-A-F,...N&&{alignmentOffset:F}},reset:N}}}),Lt=function(e){return e===void 0&&(e={}),{name:`autoPlacement`,options:e,async fn(t){let{rects:n,middlewareData:r,placement:i,platform:a,elements:o}=t,{crossAxis:s=!1,alignment:c,allowedPlacements:l=ue,autoAlignment:u=!0,...d}=M(e,t),f=c!==void 0||l===ue?Mt(c||null,u,l):l,p=r.autoPlacement?.index||0,m=f[p];if(m==null)return{};if(i!==m)return{reset:{placement:f[0]}};let h=await a.detectOverflow(t,d),g=te(m,n,await(a.isRTL==null?void 0:a.isRTL(o.floating))),_=[h[N(m)],h[g[0]],h[g[1]]],v=[...r.autoPlacement?.overflows||[],{placement:m,overflows:_}],y=f[p+1];if(y)return{data:{index:p+1,overflows:v},reset:{placement:y}};let b=v.map(e=>{let t=P(e.placement);return[e.placement,t&&s?e.overflows.slice(0,2).reduce((e,t)=>e+t,0):e.overflows[0],e.overflows]}).sort((e,t)=>e[1]-t[1]),x=b.filter(e=>e[2].slice(0,P(e[0])?2:3).every(e=>e<=0))[0]?.[0]||b[0][0];return x===i?{}:{data:{index:p+1,overflows:v},reset:{placement:x}}}}},Rt=function(e){return e===void 0&&(e={}),{name:`flip`,options:e,async fn(t){var n;let{placement:r,middlewareData:i,rects:a,initialPlacement:o,platform:s,elements:c}=t,{mainAxis:l=!0,crossAxis:u=!0,fallbackPlacements:d,fallbackStrategy:f=`bestFit`,fallbackAxisSideDirection:p=`none`,flipAlignment:m=!0,...h}=M(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};let g=N(r),_=L(o),v=N(o)===o,y=await(s.isRTL==null?void 0:s.isRTL(c.floating)),b=d||(v||!m?[ie(o)]:R(o)),x=p!==`none`;!d&&x&&b.push(...re(o,m,p,y));let S=[o,...b],C=await s.detectOverflow(t,h),w=[],T=i.flip?.overflows||[];if(l&&w.push(C[g]),u){let e=te(r,a,y);w.push(C[e[0]],C[e[1]])}if(T=[...T,{placement:r,overflows:w}],!w.every(e=>e<=0)){let e=(i.flip?.index||0)+1,t=S[e];if(t&&(u!==`alignment`||_===L(t)||T.every(e=>L(e.placement)!==_||e.overflows[0]>0)))return{data:{index:e,overflows:T},reset:{placement:t}};let n=T.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=T.filter(e=>{if(x){let t=L(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o}if(r!==n)return{reset:{placement:n}}}return{}}}},zt=new Set([`left`,`top`]),Bt=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await Nt(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}},Vt=function(e){return e===void 0&&(e={}),{name:`shift`,options:e,async fn(t){let{x:n,y:r,placement:i,platform:a}=t,{mainAxis:o=!0,crossAxis:s=!1,limiter:c={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=M(e,t),u={x:n,y:r},d=await a.detectOverflow(t,l),f=L(i),p=F(f),m=u[p],h=u[f],g=(e,t)=>j(t+d[e===`y`?`top`:`left`],t,t-d[e===`y`?`bottom`:`right`]);o&&(m=g(p,m)),s&&(h=g(f,h));let _=c.fn({...t,[p]:m,[f]:h});return{..._,data:{x:_.x-n,y:_.y-r,enabled:{[p]:o,[f]:s}}}}}},Ht=function(e){return e===void 0&&(e={}),{name:`size`,options:e,async fn(t){let{placement:n,rects:r,platform:i,elements:a}=t,{apply:o=()=>{},...s}=M(e,t),c=await i.detectOverflow(t,s),l=N(n),u=P(n),d=L(n)===`y`,{width:f,height:p}=r.floating,m,h;l===`top`||l===`bottom`?(m=l,h=u===(await(i.isRTL==null?void 0:i.isRTL(a.floating))?`start`:`end`)?`left`:`right`):(h=l,m=u===`end`?`top`:`bottom`);let g=p-c.top-c.bottom,_=f-c.left-c.right,v=B(p-c[m],g),y=B(f-c[h],_),b=t.middlewareData.shift,x=!b,S=v,C=y;b!=null&&b.enabled.x&&(C=_),b!=null&&b.enabled.y&&(S=g),x&&!u&&(d?C=f-2*V(c.left,c.right):S=p-2*V(c.top,c.bottom)),await o({...t,availableWidth:C,availableHeight:S});let w=await i.getDimensions(a.floating);return f!==w.width||p!==w.height?{reset:{rects:!0}}:{}}}}})))()}function Wt(e){let t=b(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=d(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=de(n)!==a||de(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function Gt(e){return u(e)?e:e.contextElement}function Kt(e){let t=Gt(e);if(!d(t))return H(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=Wt(t),o=(a?de(n.width):n.width)/r,s=(a?de(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}function qt(e){let t=s(e);return!v()||!t.visualViewport?gn:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function Jt(e,t,n){return t===void 0&&(t=!1),!!n&&t&&n===s(e)}function Yt(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=Gt(e),o=H(1);t&&(r?u(r)&&(o=Kt(r)):o=Kt(e));let c=Jt(a,n,r)?qt(a):H(0),l=(i.left+c.x)/o.x,d=(i.top+c.y)/o.y,f=i.width/o.x,p=i.height/o.y;if(a&&r){let e=s(a),t=u(r)?s(r):r,n=e,i=T(n);for(;i&&t!==n;){let e=Kt(i),t=i.getBoundingClientRect(),r=b(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;l*=e.x,d*=e.y,f*=e.x,p*=e.y,l+=a,d+=o,n=s(i),i=T(n)}}return se({width:f,height:p,x:l,y:d})}function Xt(e,t){let n=x(e).scrollLeft;return t?t.left+n:Yt(c(e)).left+n}function Zt(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-Xt(e,n),y:n.top+t.scrollTop}}function Qt(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,s=c(r),l=t?h(t.floating):!1;if(r===s||l&&a)return n;let u={scrollLeft:0,scrollTop:0},f=H(1),m=H(0),g=d(r);if((g||!a)&&((o(r)!==`body`||p(s))&&(u=x(r)),g)){let e=Yt(r);f=Kt(r),m.x=e.x+r.clientLeft,m.y=e.y+r.clientTop}let _=s&&!g&&!a?Zt(s,u):H(0);return{width:n.width*f.x,height:n.height*f.y,x:n.x*f.x-u.scrollLeft*f.x+m.x+_.x,y:n.y*f.y-u.scrollTop*f.y+m.y+_.y}}function $t(e){return e.getClientRects?Array.from(e.getClientRects()):[]}function en(e){let t=x(e),n=e.ownerDocument.body,r=V(e.scrollWidth,e.clientWidth,n.scrollWidth,n.clientWidth),i=V(e.scrollHeight,e.clientHeight,n.scrollHeight,n.clientHeight),a=-t.scrollLeft+Xt(e),o=-t.scrollTop;return b(n).direction===`rtl`&&(a+=V(e.clientWidth,n.clientWidth)-r),{width:r,height:i,x:a,y:o}}function tn(e,t,n){n===void 0&&(n=`viewport`);let r=n===`layoutViewport`,i=s(e),a=c(e),o=i.visualViewport,l=a.clientWidth,u=a.clientHeight,d=0,f=0;if(o){let e=!v()||t===`fixed`;r?e||(d=-o.offsetLeft,f=-o.offsetTop):(l=o.width,u=o.height,e&&(d=o.offsetLeft,f=o.offsetTop))}if(Xt(a)<=0){let e=a.ownerDocument,t=e.body,n=getComputedStyle(t),r=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,i=Math.abs(a.clientWidth-t.clientWidth-r),o=getComputedStyle(a).scrollbarGutter===`stable both-edges`?i/2:i;o<=_n&&(l-=o)}return{width:l,height:u,x:d,y:f}}function nn(e,t){let n=Yt(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=Kt(e);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function rn(e,t,n){let r;if(t===`viewport`||t===`layoutViewport`)r=tn(e,n,t);else if(t===`document`)r=en(c(e));else if(u(t))r=nn(t,n);else{let n=qt(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return se(r)}function an(e,t){let n=t.get(e);if(n)return n;let r=w(e,[],!1).filter(e=>u(e)&&o(e)!==`body`),i=null,a=b(e).position===`fixed`,s=a?S(e):e;for(;u(s)&&!y(s);){let e=b(s),t=g(s),n=i?i.position:a?`fixed`:``;!t&&(n===`fixed`||n===`absolute`&&e.position===`static`)?r=r.filter(e=>e!==s):i=e,s=S(s)}return t.set(e,r),r}function on(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?h(t)?[]:an(t,this._c):[].concat(n),r],o=rn(t,a[0],i),s=o.top,c=o.right,l=o.bottom,u=o.left;for(let e=1;e<a.length;e++){let n=rn(t,a[e],i);s=V(n.top,s),c=B(n.right,c),l=B(n.bottom,l),u=V(n.left,u)}return{width:c-u,height:l-s,x:u,y:s}}function sn(e){let{width:t,height:n}=Wt(e);return{width:t,height:n}}function cn(e,t,n){let r=d(t),i=c(t),a=n===`fixed`,s=Yt(e,!0,a,t),l={scrollLeft:0,scrollTop:0},u=H(0);if((r||!a)&&((o(t)!==`body`||p(i))&&(l=x(t)),r)){let e=Yt(t,!0,a,t);u.x=e.x+t.clientLeft,u.y=e.y+t.clientTop}!r&&i&&(u.x=Xt(i));let f=i&&!r&&!a?Zt(i,l):H(0);return{x:s.left+l.scrollLeft-u.x-f.x,y:s.top+l.scrollTop-u.y-f.y,width:s.width,height:s.height}}function ln(e){return b(e).position===`static`}function un(e,t){if(!d(e)||b(e).position===`fixed`)return null;if(t)return t(e);let n=e.offsetParent;return c(e)===n&&(n=n.ownerDocument.body),n}function dn(e,t){let n=s(e);if(h(e))return n;if(!d(e)){let t=S(e);for(;t&&!y(t);){if(u(t)&&!ln(t))return t;t=S(t)}return n}let r=un(e,t);for(;r&&m(r)&&ln(r);)r=un(r,t);return r&&y(r)&&ln(r)&&!g(r)?n:r||_(e)||n}function fn(e){return b(e).direction===`rtl`}function pn(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function mn(e,t,n){let r=null,i,a=c(e);function o(){var e;clearTimeout(i),(e=r)==null||e.disconnect(),r=null}function l(n,s){n===void 0&&(n=!1),s===void 0&&(s=1),o();let c=e.getBoundingClientRect(),{left:u,top:d,width:f,height:p}=c;if(n||t(),!f||!p)return;let m=fe(d),h=fe(a.clientWidth-(u+f)),g=fe(a.clientHeight-(d+p)),_=fe(u),v={rootMargin:-m+`px `+-h+`px `+-g+`px `+-_+`px`,threshold:V(0,B(1,s))||1},y=!0;function b(t){let n=t[0].intersectionRatio;if(!pn(c,e.getBoundingClientRect()))return l();if(n!==s){if(!y)return l();n?l(!1,n):i=setTimeout(()=>{l(!1,1e-7)},1e3)}y=!1}try{r=new IntersectionObserver(b,{...v,root:a.ownerDocument})}catch{r=new IntersectionObserver(b,v)}r.observe(e)}let u=s(e),d=()=>l(n);return u.addEventListener(`resize`,d),l(!0),()=>{u.removeEventListener(`resize`,d),o()}}function hn(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=Gt(e),u=i||a?[...l?w(l):[],...t?w(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n),a&&e.addEventListener(`resize`,n)});let d=l&&s?mn(l,n,a):null,f=-1,p=null;o&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&p&&t&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;(e=p)==null||e.observe(t)})),n()}),l&&!c&&p.observe(l),t&&p.observe(t));let m,h=c?Yt(e):null;c&&g();function g(){let t=Yt(e);h&&!pn(h,t)&&n(),h=t,m=requestAnimationFrame(g)}return n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=p)==null||e.disconnect(),p=null,c&&cancelAnimationFrame(m)}}var gn,_n,vn,yn,bn,xn,Sn,Cn,wn,Tn,En;function Dn(){return(Dn=e((()=>{Ut(),ve(),A(),gn=H(0),_n=25,vn=async function(e){let t=this.getOffsetParent||dn,n=this.getDimensions,r=await n(e.floating);return{reference:cn(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}},yn={convertOffsetParentRelativeRectToViewportRelativeRect:Qt,getDocumentElement:c,getClippingRect:on,getOffsetParent:dn,getElementRects:vn,getClientRects:$t,getDimensions:sn,getScale:Kt,isElement:u,isRTL:fn},bn=Bt,xn=Lt,Sn=Vt,Cn=Rt,wn=Ht,Tn=It,En=(e,t,n)=>{let r=new Map,i=n??{},a={...yn,...i.platform,_c:r};return Ft(e,t,{...i,platform:a})}})))()}function On(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e==`function`&&e.toString()===t.toString())return!0;let n,r,i;if(e&&t&&typeof e==`object`){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!On(e[r],t[r]))return!1;return!0}if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,i[r]))return!1;for(r=n;r--!==0;){let n=i[r];if(!(n===`_owner`&&e.$$typeof)&&!On(e[n],t[n]))return!1}return!0}return e!==e&&t!==t}function kn(e){return typeof window>`u`?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function An(e,t){let n=kn(e);return Math.round(t*n)/n}function jn(e){let t=J.useRef(e);return Fn(()=>{t.current=e}),t}function Mn(e){e===void 0&&(e={});let{placement:t=`bottom`,strategy:n=`absolute`,middleware:r=[],platform:i,elements:{reference:a,floating:o}={},transform:s=!0,whileElementsMounted:c,open:l}=e,[u,d]=J.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[f,p]=J.useState(r);On(f,r)||p(r);let[m,h]=J.useState(null),[g,_]=J.useState(null),v=J.useCallback(e=>{e!==S.current&&(S.current=e,h(e))},[]),y=J.useCallback(e=>{e!==C.current&&(C.current=e,_(e))},[]),b=a||m,x=o||g,S=J.useRef(null),C=J.useRef(null),w=J.useRef(u),T=c!=null,E=jn(c),D=jn(i),O=jn(l),k=J.useCallback(()=>{if(!S.current||!C.current)return;let e={placement:t,strategy:n,middleware:f};D.current&&(e.platform=D.current),En(S.current,C.current,e).then(e=>{let t={...e,isPositioned:O.current!==!1};A.current&&!On(w.current,t)&&(w.current=t,Pn.flushSync(()=>{d(t)}))})},[f,t,n,D,O]);Fn(()=>{l===!1&&w.current.isPositioned&&(w.current.isPositioned=!1,d(e=>({...e,isPositioned:!1})))},[l]);let A=J.useRef(!1);Fn(()=>(A.current=!0,()=>{A.current=!1}),[]),Fn(()=>{if(b&&(S.current=b),x&&(C.current=x),b&&x){if(E.current)return E.current(b,x,k);k()}},[b,x,k,E,T]);let j=J.useMemo(()=>({reference:S,floating:C,setReference:v,setFloating:y}),[v,y]),M=J.useMemo(()=>({reference:b,floating:x}),[b,x]),N=J.useMemo(()=>{let e={position:n,left:0,top:0};if(!M.floating)return e;let t=An(M.floating,u.x),r=An(M.floating,u.y);return s?{...e,transform:`translate(`+t+`px, `+r+`px)`,...kn(M.floating)>=1.5&&{willChange:`transform`}}:{position:n,left:t,top:r}},[n,s,M.floating,u.x,u.y]);return J.useMemo(()=>({...u,update:k,refs:j,elements:M,floatingStyles:N}),[u,k,j,M,N])}var J,Nn,Pn,Fn,In,Ln,Rn,zn,Bn,Vn,Hn;function Un(){return(Un=e((()=>{Dn(),J=t(n(),1),Nn=n(),Pn=t(i(),1),Fn=typeof document<`u`?Nn.useLayoutEffect:function(){},In=e=>{function t(e){return{}.hasOwnProperty.call(e,`current`)}return{name:`arrow`,options:e,fn(n){let{element:r,padding:i}=typeof e==`function`?e(n):e;return r&&t(r)?r.current==null?{}:Tn({element:r.current,padding:i}).fn(n):r?Tn({element:r,padding:i}).fn(n):{}}}},Ln=(e,t)=>{let n=bn(e);return{name:n.name,fn:n.fn,options:[e,t]}},Rn=(e,t)=>{let n=Sn(e);return{name:n.name,fn:n.fn,options:[e,t]}},zn=(e,t)=>{let n=Cn(e);return{name:n.name,fn:n.fn,options:[e,t]}},Bn=(e,t)=>{let n=wn(e);return{name:n.name,fn:n.fn,options:[e,t]}},Vn=(e,t)=>{let n=xn(e);return{name:n.name,fn:n.fn,options:[e,t]}},Hn=(e,t)=>{let n=In(e);return{name:n.name,fn:n.fn,options:[e,t]}}})))()}function Wn(){let[e,t]=X.useState(()=>Or?Ar():void 0);return q(()=>{e??t(Ar())},[]),X.useEffect(()=>{Or=!0},[]),e}function Gn(){let e=new Map;return{emit(t,n){var r;(r=e.get(t))==null||r.forEach(e=>e(n))},on(t,n){e.has(t)||e.set(t,new Set),e.get(t).add(n)},off(t,n){var r;(r=e.get(t))==null||r.delete(n)}}}function Kn(e){return`data-floating-ui-`+e}function Y(e){e.current!==-1&&(clearTimeout(e.current),e.current=-1)}function qn(e,t,n){if(n&&!mt(n))return 0;if(typeof e==`number`)return e;if(typeof e==`function`){let n=e();return typeof n==`number`?n:n?.[t]}return e?.[t]}function Jn(e){return typeof e==`function`?e():e}function Yn(e,t){t===void 0&&(t={});let{open:n,onOpenChange:r,dataRef:i,events:a,elements:o}=e,{enabled:s=!0,delay:c=0,handleClose:l=null,mouseOnly:d=!1,restMs:f=0,move:p=!0}=t,m=Fr(),h=Pr(),g=ht(l),_=ht(c),v=ht(n),y=ht(f),b=X.useRef(),x=X.useRef(-1),S=X.useRef(),C=X.useRef(-1),w=X.useRef(!0),T=X.useRef(!1),E=X.useRef(()=>{}),D=X.useRef(!1),O=K(()=>{let e=i.current.openEvent?.type;return e?.includes(`mouse`)&&e!==`mousedown`});X.useEffect(()=>{if(!s)return;function e(e){let{open:t}=e;t||(Y(x),Y(C),w.current=!0,D.current=!1)}return a.on(`openchange`,e),()=>{a.off(`openchange`,e)}},[s,a]),X.useEffect(()=>{if(!s||!g.current||!n)return;function e(e){O()&&r(!1,e,`hover`)}let t=G(o.floating).documentElement;return t.addEventListener(`mouseleave`,e),()=>{t.removeEventListener(`mouseleave`,e)}},[o.floating,n,r,s,g,O]);let k=X.useCallback(function(e,t,n){t===void 0&&(t=!0),n===void 0&&(n=`hover`);let i=qn(_.current,`close`,b.current);i&&!S.current?(Y(x),x.current=window.setTimeout(()=>r(!1,e,n),i)):t&&(Y(x),r(!1,e,n))},[_,r]),A=K(()=>{E.current(),S.current=void 0}),j=K(()=>{if(T.current){let e=G(o.floating).body;e.style.pointerEvents=``,e.removeAttribute(Ir),T.current=!1}}),M=K(()=>i.current.openEvent?[`click`,`mousedown`].includes(i.current.openEvent.type):!1);X.useEffect(()=>{if(!s)return;function e(e){if(Y(x),w.current=!1,d&&!mt(b.current)||Jn(y.current)>0&&!qn(_.current,`open`))return;let t=qn(_.current,`open`,b.current);t?x.current=window.setTimeout(()=>{v.current||r(!0,e,`hover`)},t):n||r(!0,e,`hover`)}function t(e){if(M()){j();return}E.current();let t=G(o.floating);if(Y(C),D.current=!1,g.current&&i.current.floatingContext){n||Y(x),S.current=g.current({...i.current.floatingContext,tree:m,x:e.clientX,y:e.clientY,onClose(){j(),A(),M()||k(e,!0,`safe-polygon`)}});let r=S.current;t.addEventListener(`mousemove`,r),E.current=()=>{t.removeEventListener(`mousemove`,r)};return}(b.current!==`touch`||!U(o.floating,e.relatedTarget))&&k(e)}function a(e){M()||i.current.floatingContext&&(g.current==null||g.current({...i.current.floatingContext,tree:m,x:e.clientX,y:e.clientY,onClose(){j(),A(),M()||k(e)}})(e))}function c(){Y(x)}function l(e){M()||k(e,!1)}if(u(o.domReference)){let r=o.domReference,i=o.floating;return n&&r.addEventListener(`mouseleave`,a),p&&r.addEventListener(`mousemove`,e,{once:!0}),r.addEventListener(`mouseenter`,e),r.addEventListener(`mouseleave`,t),i&&(i.addEventListener(`mouseleave`,a),i.addEventListener(`mouseenter`,c),i.addEventListener(`mouseleave`,l)),()=>{n&&r.removeEventListener(`mouseleave`,a),p&&r.removeEventListener(`mousemove`,e),r.removeEventListener(`mouseenter`,e),r.removeEventListener(`mouseleave`,t),i&&(i.removeEventListener(`mouseleave`,a),i.removeEventListener(`mouseenter`,c),i.removeEventListener(`mouseleave`,l))}}},[o,s,e,d,p,k,A,j,r,n,v,m,_,g,i,M,y]),q(()=>{var e;if(s&&n&&(e=g.current)!=null&&(e=e.__options)!=null&&e.blockPointerEvents&&O()){T.current=!0;let e=o.floating;if(u(o.domReference)&&e){var t;let n=G(o.floating).body;n.setAttribute(Ir,``);let r=o.domReference,i=m==null||(t=m.nodesRef.current.find(e=>e.id===h))==null||(t=t.context)==null?void 0:t.elements.floating;return i&&(i.style.pointerEvents=``),n.style.pointerEvents=`none`,r.style.pointerEvents=`auto`,e.style.pointerEvents=`auto`,()=>{n.style.pointerEvents=``,r.style.pointerEvents=``,e.style.pointerEvents=``}}}},[s,n,h,o,m,g,O]),q(()=>{n||(b.current=void 0,D.current=!1,A(),j())},[n,A,j]),X.useEffect(()=>()=>{A(),Y(x),Y(C),j()},[s,o.domReference,A,j]);let N=X.useMemo(()=>{function e(e){b.current=e.pointerType}return{onPointerDown:e,onPointerEnter:e,onMouseMove(e){let{nativeEvent:t}=e;function i(){!w.current&&!v.current&&r(!0,t,`hover`)}d&&!mt(b.current)||n||Jn(y.current)===0||D.current&&e.movementX**2+e.movementY**2<2||(Y(C),b.current===`touch`?i():(D.current=!0,C.current=window.setTimeout(i,Jn(y.current))))}}},[d,r,n,v,y]);return X.useMemo(()=>s?{reference:N}:{},[s,N])}function Xn(e,t){t===void 0&&(t={});let{preventScroll:n=!1,cancelPrevious:r=!0,sync:i=!1}=t;r&&cancelAnimationFrame(Lr);let a=()=>e?.focus({preventScroll:n});i?a():Lr=requestAnimationFrame(a)}function Zn(e){return e?.ownerDocument||document}function Qn(e){return e===`inert`?Q.inert:e===`aria-hidden`?Q[`aria-hidden`]:Q.none}function $n(e){return e?f(e)?e.host:$n(e.parentNode):null}function er(e,t,n,r){let i=`data-floating-ui-inert`,a=r?`inert`:n?`aria-hidden`:null,s=Hr(t,e),c=new Set,l=new Set(s),u=[];zr[i]||(zr[i]=new WeakMap);let d=zr[i];s.forEach(f),p(t),c.clear();function f(e){!e||c.has(e)||(c.add(e),e.parentNode&&f(e.parentNode))}function p(e){!e||l.has(e)||[].forEach.call(e.children,e=>{if(o(e)!==`script`)if(c.has(e))p(e);else{let t=a?e.getAttribute(a):null,n=t!==null&&t!==`false`,r=Qn(a),o=(r.get(e)||0)+1,s=(d.get(e)||0)+1;r.set(e,o),d.set(e,s),u.push(e),o===1&&n&&Rr.add(e),s===1&&e.setAttribute(i,``),!n&&a&&e.setAttribute(a,a===`inert`?``:`true`)}})}return Br++,()=>{u.forEach(e=>{let t=Qn(a),n=(t.get(e)||0)-1,r=(d.get(e)||0)-1;t.set(e,n),d.set(e,r),n||(!Rr.has(e)&&a&&e.removeAttribute(a),Rr.delete(e)),r||e.removeAttribute(i)}),Br--,Br||(Q.inert=new WeakMap,Q[`aria-hidden`]=new WeakMap,Q.none=new WeakMap,Rr=new WeakSet,zr={})}}function tr(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);let r=Zn(e[0]).body;return er(e.concat(Array.from(r.querySelectorAll(`[aria-live],[role="status"],output`))),r,t,n)}function nr(e){e===void 0&&(e={});let{id:t,root:n}=e,r=jr(),i=Jr(),[a,o]=X.useState(null),s=X.useRef(null);return q(()=>()=>{a?.remove(),queueMicrotask(()=>{s.current=null})},[a]),q(()=>{if(!r||s.current)return;let e=t?document.getElementById(t):null;if(!e)return;let n=document.createElement(`div`);n.id=r,n.setAttribute(qr,``),e.appendChild(n),s.current=n,o(n)},[t,r]),q(()=>{if(n===null||!r||s.current)return;let e=n||i?.portalNode;e&&!l(e)&&(e=e.current),e||=document.body;let a=null;t&&(a=document.createElement(`div`),a.id=t,e.appendChild(a));let c=document.createElement(`div`);c.id=r,c.setAttribute(qr,``),e=a||e,e.appendChild(c),s.current=c,o(c)},[t,n,r,i]),a}function rr(e){let{children:t,id:n,root:r,preserveTabOrder:i=!0}=e,a=nr({id:n,root:r}),[o,s]=X.useState(null),c=X.useRef(null),l=X.useRef(null),u=X.useRef(null),d=X.useRef(null),f=o?.modal,p=o?.open,m=!!o&&!o.modal&&o.open&&i&&!!(r||a);return X.useEffect(()=>{if(!a||!i||f)return;function e(e){a&&yt(e)&&(e.type===`focusin`?xt:bt)(a)}return a.addEventListener(`focusin`,e,!0),a.addEventListener(`focusout`,e,!0),()=>{a.removeEventListener(`focusin`,e,!0),a.removeEventListener(`focusout`,e,!0)}},[a,i,f]),X.useEffect(()=>{a&&(p||xt(a))},[p,a]),(0,Z.jsxs)(Kr.Provider,{value:X.useMemo(()=>({preserveTabOrder:i,beforeOutsideRef:c,afterOutsideRef:l,beforeInsideRef:u,afterInsideRef:d,portalNode:a,setFocusManagerState:s}),[i,a]),children:[m&&a&&(0,Z.jsx)(Wr,{"data-type":`outside`,ref:c,onFocus:e=>{if(yt(e,a)){var t;(t=u.current)==null||t.focus()}else vt(o?o.domReference:null)?.focus()}}),m&&a&&(0,Z.jsx)(`span`,{"aria-owns":a.id,style:Gr}),a&&_r.createPortal(t,a),m&&a&&(0,Z.jsx)(Wr,{"data-type":`outside`,ref:l,onFocus:e=>{if(yt(e,a)){var t;(t=d.current)==null||t.focus()}else _t(o?o.domReference:null)?.focus(),o!=null&&o.closeOnFocusOut&&o?.onOpenChange(!1,e.nativeEvent,`focus-out`)}})]})}function ir(e){return X.useMemo(()=>t=>{e.forEach(e=>{e&&(e.current=t)})},e)}function ar(){$=$.filter(e=>e.deref()?.isConnected)}function or(e){ar(),e&&o(e)!==`body`&&($.push(new WeakRef(e)),$.length>Yr&&($=$.slice(-20)))}function sr(){return ar(),$[$.length-1]?.deref()}function cr(e){let t=Ot();return Ye(e,t)?e:qe(e,t)[0]||e}function lr(e,t){var n;if(!t.current.includes(`floating`)&&!((n=e.getAttribute(`role`))!=null&&n.includes(`dialog`)))return;let r=Ot(),i=Je(e,r).filter(e=>{let t=e.getAttribute(`data-tabindex`)||``;return Ye(e,r)||e.hasAttribute(`data-tabindex`)&&!t.startsWith(`-`)}),a=e.getAttribute(`tabindex`);t.current.includes(`floating`)||i.length===0?a!==`0`&&e.setAttribute(`tabindex`,`0`):(a!==`-1`||e.hasAttribute(`data-tabindex`)&&e.getAttribute(`data-tabindex`)!==`-1`)&&(e.setAttribute(`tabindex`,`-1`),e.setAttribute(`data-tabindex`,`-1`))}function ur(e){let{context:t,children:n,disabled:r=!1,order:i=[`content`],guards:a=!0,initialFocus:o=0,returnFocus:s=!0,restoreFocus:c=!1,modal:l=!0,visuallyHiddenDismiss:u=!1,closeOnFocusOut:f=!0,outsideElementsInert:p=!1,getInsideElements:m=()=>[]}=e,{open:h,onOpenChange:g,events:_,dataRef:v,elements:{domReference:y,floating:b}}=t,x=K(()=>v.current.floatingContext?.nodeId),S=K(m),C=typeof o==`number`&&o<0,w=ot(y)&&C,T=Vr(),E=!T||a,D=!E||T&&p,O=ht(i),k=ht(o),A=ht(s),j=Fr(),M=Jr(),N=X.useRef(null),P=X.useRef(null),F=X.useRef(!1),I=X.useRef(!1),L=X.useRef(-1),ee=X.useRef(-1),te=M!=null,R=st(b),z=K(function(e){return e===void 0&&(e=R),e?qe(e,Ot()):[]}),ne=K(e=>{let t=z(e);return O.current.map(e=>y&&e===`reference`?y:R&&e===`floating`?R:t).filter(Boolean).flat()});X.useEffect(()=>{if(r||!l)return;function e(e){if(e.key===`Tab`){U(R,nt(G(R)))&&z().length===0&&!w&&ut(e);let t=ne(),n=W(e);O.current[0]===`reference`&&n===y&&(ut(e),e.shiftKey?Xn(t[t.length-1]):Xn(t[1])),O.current[1]===`floating`&&n===R&&e.shiftKey&&(ut(e),Xn(t[0]))}}let t=G(R);return t.addEventListener(`keydown`,e),()=>{t.removeEventListener(`keydown`,e)}},[r,y,R,l,O,w,z,ne]),X.useEffect(()=>{if(r||!b)return;function e(e){let t=W(e),n=z().indexOf(t);n!==-1&&(L.current=n)}return b.addEventListener(`focusin`,e),()=>{b.removeEventListener(`focusin`,e)}},[r,b,z]),X.useEffect(()=>{if(r||!f)return;function e(){I.current=!0,setTimeout(()=>{I.current=!1})}function t(e){let t=e.relatedTarget,n=e.currentTarget,r=W(e);queueMicrotask(()=>{let i=x(),a=!(U(y,t)||U(b,t)||U(t,b)||U(M?.portalNode,t)||t!=null&&t.hasAttribute(Kn(`focus-guard`))||j&&(ct(j.nodesRef.current,i).find(e=>U(e.context?.elements.floating,t)||U(e.context?.elements.domReference,t))||lt(j.nodesRef.current,i).find(e=>[e.context?.elements.floating,st(e.context?.elements.floating)].includes(t)||e.context?.elements.domReference===t)));if(n===y&&R&&lr(R,O),c&&n!==y&&!(r!=null&&r.isConnected)&&nt(G(R))===G(R).body){d(R)&&R.focus();let e=L.current,t=z(),n=t[e]||t[t.length-1]||R;d(n)&&n.focus()}if(v.current.insideReactTree){v.current.insideReactTree=!1;return}(w||!l)&&t&&a&&!I.current&&t!==sr()&&(F.current=!0,g(!1,e,`focus-out`))})}let n=!!(!j&&M);function i(){Y(ee),v.current.insideReactTree=!0,ee.current=window.setTimeout(()=>{v.current.insideReactTree=!1})}if(b&&d(y))return y.addEventListener(`focusout`,t),y.addEventListener(`pointerdown`,e),b.addEventListener(`focusout`,t),n&&b.addEventListener(`focusout`,i,!0),()=>{y.removeEventListener(`focusout`,t),y.removeEventListener(`pointerdown`,e),b.removeEventListener(`focusout`,t),n&&b.removeEventListener(`focusout`,i,!0)}},[r,y,b,R,l,j,M,g,f,c,z,w,x,O,v]);let re=X.useRef(null),ie=X.useRef(null),ae=ir([re,M?.beforeInsideRef]),oe=ir([ie,M?.afterInsideRef]);X.useEffect(()=>{var e,t;if(r||!b)return;let n=Array.from((M==null||(e=M.portalNode)==null?void 0:e.querySelectorAll(`[`+Kn(`portal`)+`]`))||[]),i=(t=(j?lt(j.nodesRef.current,x()):[]).find(e=>ot(e.context?.elements.domReference||null)))==null||(t=t.context)==null?void 0:t.elements.domReference,a=[b,i,...n,...S(),N.current,P.current,re.current,ie.current,M?.beforeOutsideRef.current,M?.afterOutsideRef.current,O.current.includes(`reference`)||w?y:null].filter(e=>e!=null),o=l||w?tr(a,!D,D):tr(a);return()=>{o()}},[r,y,b,l,O,M,w,E,D,j,x,S]),q(()=>{if(r||!d(R))return;let e=nt(G(R));queueMicrotask(()=>{let t=ne(R),n=k.current,r=(typeof n==`number`?t[n]:n.current)||R,i=U(R,e);!C&&!i&&h&&Xn(r,{preventScroll:r===R})})},[r,h,R,C,ne,k]),q(()=>{if(r||!R)return;let e=G(R);or(nt(e));function t(e){let{reason:t,event:n,nested:r}=e;if([`hover`,`safe-polygon`].includes(t)&&n.type===`mouseleave`&&(F.current=!0),t===`outside-press`)if(r)F.current=!1;else if(ft(n)||pt(n))F.current=!1;else{let e=!1;document.createElement(`div`).focus({get preventScroll(){return e=!0,!1}}),e?F.current=!1:F.current=!0}}_.on(`openchange`,t);let n=e.createElement(`span`);n.setAttribute(`tabindex`,`-1`),n.setAttribute(`aria-hidden`,`true`),Object.assign(n.style,Ur),te&&y&&y.insertAdjacentElement(`afterend`,n);function i(){if(typeof A.current==`boolean`){let e=y||sr();return e&&e.isConnected?e:n}return A.current.current||n}return()=>{_.off(`openchange`,t);let r=nt(e),a=U(b,r)||j&&ct(j.nodesRef.current,x(),!1).some(e=>U(e.context?.elements.floating,r)),o=i();queueMicrotask(()=>{let t=cr(o);A.current&&!F.current&&d(t)&&(t===r||r===e.body||a)&&t.focus({preventScroll:!0}),n.remove()})}},[r,b,R,A,v,_,j,te,y,x]),X.useEffect(()=>(queueMicrotask(()=>{F.current=!1}),()=>{queueMicrotask(ar)}),[r]),q(()=>{if(!r&&M)return M.setFocusManagerState({modal:l,closeOnFocusOut:f,open:h,onOpenChange:g,domReference:y}),()=>{M.setFocusManagerState(null)}},[r,M,l,h,g,f,y]),q(()=>{r||R&&lr(R,O)},[r,R,O]);function se(e){return r||!u||!l?null:(0,Z.jsx)(Xr,{ref:e===`start`?N:P,onClick:e=>g(!1,e.nativeEvent),children:typeof u==`string`?u:`Dismiss`})}let ce=!r&&E&&(!l||!w)&&(te||l);return(0,Z.jsxs)(Z.Fragment,{children:[ce&&(0,Z.jsx)(Wr,{"data-type":`inside`,ref:ae,onFocus:e=>{if(l){let e=ne();Xn(i[0]===`reference`?e[0]:e[e.length-1])}else if(M!=null&&M.preserveTabOrder&&M.portalNode)if(F.current=!1,yt(e,M.portalNode))_t(y)?.focus();else{var t;(t=M.beforeOutsideRef.current)==null||t.focus()}}}),!w&&se(`start`),n,se(`end`),ce&&(0,Z.jsx)(Wr,{"data-type":`inside`,ref:oe,onFocus:e=>{if(l)Xn(ne()[0]);else if(M!=null&&M.preserveTabOrder&&M.portalNode)if(f&&(F.current=!0),yt(e,M.portalNode))vt(y)?.focus();else{var t;(t=M.afterOutsideRef.current)==null||t.focus()}}})]})}function dr(e,t){t===void 0&&(t={});let{open:n,onOpenChange:r,elements:i,dataRef:a}=e,{enabled:o=!0,escapeKey:s=!0,outsidePress:c=!0,outsidePressEvent:l=`pointerdown`,referencePress:f=!1,referencePressEvent:p=`pointerdown`,ancestorScroll:m=!1,bubbles:h,capture:g}=t,_=Fr(),x=K(typeof c==`function`?c:()=>!1),C=typeof c==`function`?x:c,T=X.useRef(!1),{escapeKey:E,outsidePress:D}=$r(h),{escapeKey:O,outsidePress:k}=$r(g),A=X.useRef(!1),j=K(e=>{if(!n||!o||!s||e.key!==`Escape`||A.current)return;let t=a.current.floatingContext?.nodeId,i=_?ct(_.nodesRef.current,t):[];if(!E&&(e.stopPropagation(),i.length>0)){let e=!0;if(i.forEach(t=>{var n;if((n=t.context)!=null&&n.open&&!t.context.dataRef.current.__escapeKeyBubbles){e=!1;return}}),!e)return}r(!1,dt(e)?e.nativeEvent:e,`escape-key`)}),M=K(e=>{var t;let n=()=>{var t;j(e),(t=W(e))==null||t.removeEventListener(`keydown`,n)};(t=W(e))==null||t.addEventListener(`keydown`,n)}),N=K(e=>{let t=a.current.insideReactTree;a.current.insideReactTree=!1;let n=T.current;if(T.current=!1,l===`click`&&n||t||typeof C==`function`&&!C(e))return;let o=W(e),s=`[`+Kn(`inert`)+`]`,c=G(i.floating).querySelectorAll(s),f=u(o)?o:null;for(;f&&!y(f);){let e=S(f);if(y(e)||!u(e))break;f=e}if(c.length&&u(o)&&!it(o)&&!U(o,i.floating)&&Array.from(c).every(e=>!U(f,e)))return;if(d(o)&&I){let t=y(o),n=b(o),r=/auto|scroll/,i=t||r.test(n.overflowX),a=t||r.test(n.overflowY),s=i&&o.clientWidth>0&&o.scrollWidth>o.clientWidth,c=a&&o.clientHeight>0&&o.scrollHeight>o.clientHeight,l=n.direction===`rtl`,u=c&&(l?e.offsetX<=o.offsetWidth-o.clientWidth:e.offsetX>o.clientWidth),d=s&&e.offsetY>o.clientHeight;if(u||d)return}let p=a.current.floatingContext?.nodeId,m=_&&ct(_.nodesRef.current,p).some(t=>rt(e,t.context?.elements.floating));if(rt(e,i.floating)||rt(e,i.domReference)||m)return;let h=_?ct(_.nodesRef.current,p):[];if(h.length>0){let e=!0;if(h.forEach(t=>{var n;if((n=t.context)!=null&&n.open&&!t.context.dataRef.current.__outsidePressBubbles){e=!1;return}}),!e)return}r(!1,e,`outside-press`)}),P=K(e=>{var t;let n=()=>{var t;N(e),(t=W(e))==null||t.removeEventListener(l,n)};(t=W(e))==null||t.addEventListener(l,n)});X.useEffect(()=>{if(!n||!o)return;a.current.__escapeKeyBubbles=E,a.current.__outsidePressBubbles=D;let e=-1;function t(e){r(!1,e,`ancestor-scroll`)}function c(){window.clearTimeout(e),A.current=!0}function d(){e=window.setTimeout(()=>{A.current=!1},v()?5:0)}let f=G(i.floating);s&&(f.addEventListener(`keydown`,O?M:j,O),f.addEventListener(`compositionstart`,c),f.addEventListener(`compositionend`,d)),C&&f.addEventListener(l,k?P:N,k);let p=[];return m&&(u(i.domReference)&&(p=w(i.domReference)),u(i.floating)&&(p=p.concat(w(i.floating))),!u(i.reference)&&i.reference&&i.reference.contextElement&&(p=p.concat(w(i.reference.contextElement)))),p=p.filter(e=>e!==f.defaultView?.visualViewport),p.forEach(e=>{e.addEventListener(`scroll`,t)}),()=>{s&&(f.removeEventListener(`keydown`,O?M:j,O),f.removeEventListener(`compositionstart`,c),f.removeEventListener(`compositionend`,d)),C&&f.removeEventListener(l,k?P:N,k),p.forEach(e=>{e.removeEventListener(`scroll`,t)}),window.clearTimeout(e)}},[a,i,s,C,l,n,r,m,o,E,D,j,O,M,N,k,P]),X.useEffect(()=>{a.current.insideReactTree=!1},[a,C,l]);let F=X.useMemo(()=>({onKeyDown:j,...f&&{[Zr[p]]:e=>{r(!1,e.nativeEvent,`reference-press`)},...p!==`click`&&{onClick(e){r(!1,e.nativeEvent,`reference-press`)}}}}),[j,r,f,p]),I=X.useMemo(()=>{function e(e){e.button===0&&(T.current=!0)}return{onKeyDown:j,onMouseDown:e,onMouseUp:e,[Qr[l]]:()=>{a.current.insideReactTree=!0}}},[j,l,a]);return X.useMemo(()=>o?{reference:F,floating:I}:{},[o,F,I])}function fr(e){let{open:t=!1,onOpenChange:n,elements:r}=e,i=jr(),a=X.useRef({}),[o]=X.useState(()=>Gn()),s=Pr()!=null,[c,l]=X.useState(r.reference),u=K((e,t,r)=>{a.current.openEvent=e?t:void 0,o.emit(`openchange`,{open:e,event:t,reason:r,nested:s}),n?.(e,t,r)}),d=X.useMemo(()=>({setPositionReference:l}),[]),f=X.useMemo(()=>({reference:c||r.reference||null,floating:r.floating||null,domReference:r.reference}),[c,r.reference,r.floating]);return X.useMemo(()=>({dataRef:a,open:t,onOpenChange:u,elements:f,events:o,floatingId:i,refs:d}),[t,u,f,o,i,d])}function pr(e){let{elements:t,...n}=e===void 0?{}:e,{nodeId:r}=n,i=fr({...n,elements:{reference:t?.reference??null,floating:t?.floating??null}}),a=n.rootContext||i,o=a.elements,[s,c]=X.useState(null),[l,d]=X.useState(null),f=o?.domReference||s,p=X.useRef(null),m=Fr();q(()=>{f&&(p.current=f)},[f]);let h=Mn({...n,elements:{...o,...l&&{reference:l}}}),g=X.useCallback(e=>{let t=u(e)?{getBoundingClientRect:()=>e.getBoundingClientRect(),getClientRects:()=>e.getClientRects(),contextElement:e}:e;d(t),h.refs.setReference(t)},[h.refs]),_=X.useCallback(e=>{(u(e)||e===null)&&(p.current=e,c(e)),(u(h.refs.reference.current)||h.refs.reference.current===null||e!==null&&!u(e))&&h.refs.setReference(e)},[h.refs]),v=X.useMemo(()=>({...h.refs,setReference:_,setPositionReference:g,domReference:p}),[h.refs,_,g]),y=X.useMemo(()=>({...h.elements,domReference:f}),[h.elements,f]),b=X.useMemo(()=>({...h,...a,refs:v,elements:y,nodeId:r}),[h,v,y,r,a]);return q(()=>{a.dataRef.current.floatingContext=b;let e=m?.nodesRef.current.find(e=>e.id===r);e&&(e.context=b)}),X.useMemo(()=>({...h,context:b,refs:v,elements:y}),[h,v,y,b])}function mr(e,t,n){let r=new Map,i=n===`item`,a=e;if(i&&e){let{[yr]:t,[br]:n,...r}=e;a=r}return{...n===`floating`&&{tabIndex:-1,[vr]:``},...a,...t.map(t=>{let r=t?t[n]:null;return typeof r==`function`?e?r(e):null:r}).concat(e).reduce((e,t)=>(t&&Object.entries(t).forEach(t=>{let[n,a]=t;if(!(i&&[yr,br].includes(n)))if(n.indexOf(`on`)===0){if(r.has(n)||r.set(n,[]),typeof a==`function`){var o;(o=r.get(n))==null||o.push(a),e[n]=function(){var e=[...arguments];return r.get(n)?.map(t=>t(...e)).find(e=>e!==void 0)}}}else e[n]=a}),e),{})}}function hr(e){e===void 0&&(e=[]);let t=e.map(e=>e?.reference),n=e.map(e=>e?.floating),r=e.map(e=>e?.item),i=X.useCallback(t=>mr(t,e,`reference`),t),a=X.useCallback(t=>mr(t,e,`floating`),n),o=X.useCallback(t=>mr(t,e,`item`),r);return X.useMemo(()=>({getReferenceProps:i,getFloatingProps:a,getItemProps:o}),[i,a,o])}function gr(e,t){t===void 0&&(t={});let{open:n,elements:r,floatingId:i}=e,{enabled:a=!0,role:o=`dialog`}=t,s=jr(),c=r.domReference?.id||s,l=X.useMemo(()=>st(r.floating)?.id||i,[r.floating,i]),u=ei.get(o)??o,d=Pr()!=null,f=X.useMemo(()=>u===`tooltip`||o===`label`?{[`aria-`+(o===`label`?`labelledby`:`describedby`)]:n?l:void 0}:{"aria-expanded":n?`true`:`false`,"aria-haspopup":u===`alertdialog`?`dialog`:u,"aria-controls":n?l:void 0,...u===`listbox`&&{role:`combobox`},...u===`menu`&&{id:c},...u===`menu`&&d&&{role:`menuitem`},...o===`select`&&{"aria-autocomplete":`none`},...o===`combobox`&&{"aria-autocomplete":`list`}},[u,l,d,n,c,o]),p=X.useMemo(()=>{let e={id:l,...u&&{role:u}};return u===`tooltip`||o===`label`?e:{...e,...u===`menu`&&{"aria-labelledby":c}}},[u,l,c,o]),m=X.useCallback(e=>{let{active:t,selected:n}=e,r={role:`option`,...t&&{id:l+`-fui-option`}};switch(o){case`select`:case`combobox`:return{...r,"aria-selected":n}}return{}},[l,o]);return X.useMemo(()=>a?{reference:f,floating:p,item:m}:{},[a,f,p,m])}var X,Z,_r,vr,yr,br,xr,Sr,Cr,wr,Tr,Er,Dr,Or,kr,Ar,jr,Mr,Nr,Pr,Fr,Ir,Lr,Q,Rr,zr,Br,Vr,Hr,Ur,Wr,Gr,Kr,qr,Jr,Yr,$,Xr,Zr,Qr,$r,ei;function ti(){return(ti=e((()=>{X=t(n(),1),kt(),Z=r(),A(),Xe(),_r=t(i(),1),Un(),vr=`data-floating-ui-focusable`,yr=`active`,br=`selected`,xr=`ArrowLeft`,Sr=`ArrowRight`,Cr=`ArrowUp`,wr=`ArrowDown`,Tr=[xr,Sr],Er=[Cr,wr],[...Tr,...Er],Dr={...X},Or=!1,kr=0,Ar=()=>`floating-ui-`+Math.random().toString(36).slice(2,6)+kr++,jr=Dr.useId||Wn,Mr=X.createContext(null),Nr=X.createContext(null),Pr=()=>X.useContext(Mr)?.id||null,Fr=()=>X.useContext(Nr),Ir=Kn(`safe-polygon`),Lr=0,Q={inert:new WeakMap,"aria-hidden":new WeakMap,none:new WeakMap},Rr=new WeakSet,zr={},Br=0,Vr=()=>typeof HTMLElement<`u`&&`inert`in HTMLElement.prototype,Hr=(e,t)=>t.map(t=>{if(e.contains(t))return t;let n=$n(t);return e.contains(n)?n:null}).filter(e=>e!=null),Ur={border:0,clip:`rect(0 0 0 0)`,height:`1px`,margin:`-1px`,overflow:`hidden`,padding:0,position:`fixed`,whiteSpace:`nowrap`,width:`1px`,top:0,left:0},Wr=X.forwardRef(function(e,t){let[n,r]=X.useState();q(()=>{$e()&&r(`button`)},[]);let i={ref:t,tabIndex:0,role:n,"aria-hidden":!n||void 0,[Kn(`focus-guard`)]:``,style:Ur};return(0,Z.jsx)(`span`,{...e,...i})}),Gr={clipPath:`inset(50%)`,position:`fixed`,top:0,left:0},Kr=X.createContext(null),qr=Kn(`portal`),Jr=()=>X.useContext(Kr),Yr=20,$=[],Xr=X.forwardRef(function(e,t){return(0,Z.jsx)(`button`,{...e,type:`button`,ref:t,tabIndex:-1,style:Ur})}),Zr={pointerdown:`onPointerDown`,mousedown:`onMouseDown`,click:`onClick`},Qr={pointerdown:`onPointerDownCapture`,mousedown:`onMouseDownCapture`,click:`onClickCapture`},$r=e=>({escapeKey:typeof e==`boolean`?e:e?.escapeKey??!1,outsidePress:typeof e==`boolean`?e:e?.outsidePress??!0}),ei=new Map([[`select`,`listbox`],[`combobox`,`listbox`],[`label`,!1]])})))()}export{Dn as _,pr as a,gr as c,zn as d,Un as f,hn as g,Bn as h,dr as i,Hn as l,Rn as m,rr as n,Yn as o,Ln as p,ti as r,hr as s,ur as t,Vn as u};