@ryuzaki13/react-foundation-ui 1.8.5 → 1.8.7
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.
- package/dist/advanced-search/index.js +2 -2
- package/dist/base-table/index.js +1 -1
- package/dist/chunks/{base-table-CsnUiMTe.js → base-table-CYbtifH0.js} +2 -2
- package/dist/chunks/{base-table-CsnUiMTe.js.map → base-table-CYbtifH0.js.map} +1 -1
- package/dist/chunks/{context-menu-C8sA7xCN.js → context-menu-L4KM0FRD.js} +2 -2
- package/dist/chunks/{context-menu-C8sA7xCN.js.map → context-menu-L4KM0FRD.js.map} +1 -1
- package/dist/chunks/date-input-g6l1iDmf.js.map +1 -1
- package/dist/chunks/{multi-select-Cvjz9W07.js → multi-select-CCgoTHWI.js} +2 -2
- package/dist/chunks/{multi-select-Cvjz9W07.js.map → multi-select-CCgoTHWI.js.map} +1 -1
- package/dist/chunks/{picker-0I1yMKIY.js → picker-Cb3D2Hts.js} +6 -2
- package/dist/chunks/picker-Cb3D2Hts.js.map +1 -0
- package/dist/chunks/{select-CUQ91FIc.js → select-Baek-IUe.js} +2 -2
- package/dist/chunks/{select-CUQ91FIc.js.map → select-Baek-IUe.js.map} +1 -1
- package/dist/chunks/{table-z9kyd9U3.js → table-CrQiurtA.js} +2 -2
- package/dist/chunks/{table-z9kyd9U3.js.map → table-CrQiurtA.js.map} +1 -1
- package/dist/context-menu/index.js +1 -1
- package/dist/layout-picker/index.js +1 -1
- package/dist/listbox/index.js +1 -1
- package/dist/multi-select/index.js +1 -1
- package/dist/picker/index.js +1 -1
- package/dist/preset-select/index.js +1 -1
- package/dist/select/index.js +1 -1
- package/dist/simple-table/index.js +1 -1
- package/dist/slider/index.js +1 -1
- package/dist/state-select/index.js +1 -1
- package/dist/styles.css +1 -1
- package/dist/table/index.js +1 -1
- package/dist/table-sorting/index.js +1 -1
- package/dist/tree-select/index.js +1 -1
- package/dist/tree-table/index.js +1 -1
- package/package.json +4 -4
- package/storybook-static/assets/{Badge-CzxxuE7D.js → Badge-C4U4sxtF.js} +1 -1
- package/storybook-static/assets/{Badge.stories-RaI7qvpZ.js → Badge.stories-DHmJTpdf.js} +1 -1
- package/storybook-static/assets/{BadgeList-B7cF3h_F.js → BadgeList-BOs5ycWn.js} +1 -1
- package/storybook-static/assets/{Button-Cjmm8oDV.js → Button-BTtYeCS_.js} +1 -1
- package/storybook-static/assets/{Button-6z1R7ZA8.js → Button-Bkb3wQw6.js} +1 -1
- package/storybook-static/assets/{Button.stories-B5fUA2Gu.js → Button.stories-DgFLAdcg.js} +1 -1
- package/storybook-static/assets/{CalendarView-Dlt0f4Jr.js → CalendarView-BIFHbOTr.js} +1 -1
- package/storybook-static/assets/{CheckBox-L4324ZCs.js → CheckBox-76M-N56J.js} +1 -1
- package/storybook-static/assets/{CheckBox-BOSDcvCd.js → CheckBox-D4u-58g8.js} +1 -1
- package/storybook-static/assets/{CheckBox.module-CoYygdZx.js → CheckBox.module-BOAVN-Ny.js} +1 -1
- package/storybook-static/assets/{CheckBox.stories-DALRNTV0.js → CheckBox.stories-Caw6-hSQ.js} +1 -1
- package/storybook-static/assets/{Color-6AOWCN3U-UmlmbwVs.js → Color-6AOWCN3U-CPYGaU3y.js} +1 -1
- package/storybook-static/assets/{ContextMenu-giZ56GIC.js → ContextMenu-CUWt-eg1.js} +1 -1
- package/storybook-static/assets/{ContextMenu-BOez7LwB.js → ContextMenu-gfYYiVdR.js} +1 -1
- package/storybook-static/assets/{ContextMenu.stories-BnoaSq3Q.js → ContextMenu.stories-BuQS57wW.js} +1 -1
- package/storybook-static/assets/{CustomOptionButton-C1VgtQgI.js → CustomOptionButton-Be7sd0Lb.js} +1 -1
- package/storybook-static/assets/{DateInput-A3468S6P.js → DateInput-B4oviF7J.js} +1 -1
- package/storybook-static/assets/{DateInput-oWtyLo3Q.js → DateInput-BQGUMYsW.js} +1 -1
- package/storybook-static/assets/{DateInput.stories-BeGG7Vzf.js → DateInput.stories-D6q7J1C4.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect--h5MdeWg.js → DateRangePresetSelect-BAxaG0HP.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-DbKRsjNX.js → DateRangePresetSelect-Cq6pOZPu.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect.stories-BS1ll9RK.js → DateRangePresetSelect.stories-d4HFbao6.js} +1 -1
- package/storybook-static/assets/{Detail-FEi6FSkD.js → Detail-DlETcWVp.js} +1 -1
- package/storybook-static/assets/{Detail.stories-Dy2yKBDx.js → Detail.stories-BEwFXEZH.js} +1 -1
- package/storybook-static/assets/{Dialog-C7Zfcyjf.js → Dialog-Bk8aoiOf.js} +1 -1
- package/storybook-static/assets/{Dialog-CXnHtk_h.js → Dialog-D63TJr1M.js} +1 -1
- package/storybook-static/assets/{Dialog.stories-BeUqdA_f.js → Dialog.stories-BR7NqeZj.js} +1 -1
- package/storybook-static/assets/{Disclosure-BqsgTrM0.js → Disclosure-zQK54WKU.js} +1 -1
- package/storybook-static/assets/{Disclosure.stories-D3LzXhet.js → Disclosure.stories-CNLpB5YJ.js} +1 -1
- package/storybook-static/assets/{DisclosureGroup-BAF5Untb.js → DisclosureGroup-C_nZSLZw.js} +1 -1
- package/storybook-static/assets/{DocsRenderer-JROSPFPF-luRRUpJ_.js → DocsRenderer-JROSPFPF-CoU8mWAw.js} +2 -2
- package/storybook-static/assets/{DropZone-B-YA4zyu.js → DropZone-CUz1Q4bA.js} +1 -1
- package/storybook-static/assets/{DropZone-DKrOIaeH.js → DropZone-Y5hvED_x.js} +1 -1
- package/storybook-static/assets/{DropZone.stories-wf2ubfGc.js → DropZone.stories-BH4FSM4P.js} +1 -1
- package/storybook-static/assets/{DropdownMenu-BiWUESj0.js → DropdownMenu-Bi6-5Gqf.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel-Dtfw5TWs.js → ExpandableActionPanel-BfWj887r.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel.stories-BOdw0CLN.js → ExpandableActionPanel.stories-CGxcwRMU.js} +1 -1
- package/storybook-static/assets/{Flex-BaSYiAMD.js → Flex-Dm-Qfvzk.js} +1 -1
- package/storybook-static/assets/{Flex.stories-CD_e9R5B.js → Flex.stories-B3zMz03s.js} +1 -1
- package/storybook-static/assets/{FlexContainer-LmZIdhq2.js → FlexContainer-BWyPlTMB.js} +1 -1
- package/storybook-static/assets/{FlexItem-vkDYa5tA.js → FlexItem-pu3E11Sf.js} +1 -1
- package/storybook-static/assets/{FloatingPopover-C65hSmop.js → FloatingPopover-NMRTnqfo.js} +1 -1
- package/storybook-static/assets/FormattedTableCell-BISjHrBJ.js +15 -0
- package/storybook-static/assets/{Grid-BCzygAqy.js → Grid-CzO0Ae1r.js} +1 -1
- package/storybook-static/assets/{Grid-8eLmW2AB.js → Grid-vZyA-712.js} +1 -1
- package/storybook-static/assets/{Grid.stories-DULQOmbC.js → Grid.stories-BQqK0zom.js} +1 -1
- package/storybook-static/assets/{GridContainer-qDguE1HS.js → GridContainer-fKYgDsLl.js} +1 -1
- package/storybook-static/assets/{ImageCropper.stories-C1O-Zv4X.js → ImageCropper.stories-Ca4MZWOW.js} +3 -3
- package/storybook-static/assets/{ImageRenderer-BOyGnl1v.js → ImageRenderer-BWIk_76e.js} +1 -1
- package/storybook-static/assets/{ImageRenderer.stories-Cms0kMXA.js → ImageRenderer.stories-C1FfOcFD.js} +1 -1
- package/storybook-static/assets/{ImageView.stories-CUR6bAyn.js → ImageView.stories-DyuR7kdq.js} +1 -1
- package/storybook-static/assets/{ImageViewer.stories-BwJKAIT7.js → ImageViewer.stories-PcvOFYqC.js} +2 -2
- package/storybook-static/assets/{ImageViewerRuntime-CzkvEHax.js → ImageViewerRuntime-BiI7Xukq.js} +2 -2
- package/storybook-static/assets/{Input-B2_RznVE.js → Input-CsD-x1BQ.js} +1 -1
- package/storybook-static/assets/{Input-ebp78QN1.js → Input-D_4GoCLl.js} +1 -1
- package/storybook-static/assets/{Input.stories-BKwTRsUL.js → Input.stories-D-1urO1N.js} +1 -1
- package/storybook-static/assets/{InputDateTime-pK4mlxxm.js → InputDateTime-CFQanHxB.js} +1 -1
- package/storybook-static/assets/{InputDateTime.stories-J4Gd0DaU.js → InputDateTime.stories-Q4Ao5Tat.js} +1 -1
- package/storybook-static/assets/{InputFile-D1x1T--f.js → InputFile-Bj8PXGY3.js} +1 -1
- package/storybook-static/assets/{InputFile-BYcgJx2f.js → InputFile-DM6fBXUx.js} +1 -1
- package/storybook-static/assets/{InputFile.stories-DAYDiSFH.js → InputFile.stories-DC27BYoQ.js} +1 -1
- package/storybook-static/assets/{InputFiles-D7kcGvWK.js → InputFiles-D59MGS0Z.js} +1 -1
- package/storybook-static/assets/{InputFiles-C9HH7fIG.js → InputFiles-teFj6f6X.js} +1 -1
- package/storybook-static/assets/{InputFiles.stories-CJTwQutb.js → InputFiles.stories-DX5UEvYR.js} +1 -1
- package/storybook-static/assets/{InputFilesList-ChI0hQ07.js → InputFilesList-BD4Y0gN-.js} +1 -1
- package/storybook-static/assets/{InputImage-B3KFrWqa.js → InputImage-DmsFGNLJ.js} +1 -1
- package/storybook-static/assets/{InputImage-C0-U_QHU.js → InputImage-Du6jGDmY.js} +1 -1
- package/storybook-static/assets/{InputImage.stories-QEtqeok5.js → InputImage.stories-u0hrr-Da.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents-DB71eb-1.js → InteractiveComponents-BLQiSO3p.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents.stories-DdZpmMis.js → InteractiveComponents.stories-BxIVvRz5.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-CicZY4X9.js → LayoutPicker-TecE4x6w.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-DBEYC_LA.js → LayoutPicker-xUooYcbS.js} +1 -1
- package/storybook-static/assets/{LayoutPicker.stories-BFtP0gOy.js → LayoutPicker.stories-YDMnmhJ4.js} +1 -1
- package/storybook-static/assets/{Listbox-B0Nqys9f.js → Listbox-D2k8QfTs.js} +1 -1
- package/storybook-static/assets/{Listbox-CLP0Cpin.js → Listbox-DplAn6ND.js} +1 -1
- package/storybook-static/assets/{Listbox.stories-BHeIn0H8.js → Listbox.stories-Bg3_UQD4.js} +1 -1
- package/storybook-static/assets/{Modal-D4jDp5U4.js → Modal-4OdkCwCv.js} +1 -1
- package/storybook-static/assets/{Modal.stories-CMHJdaj1.js → Modal.stories-BwawDSGR.js} +1 -1
- package/storybook-static/assets/{ModalManagerProvider-D8tCMe07.js → ModalManagerProvider-CYR_xbpx.js} +1 -1
- package/storybook-static/assets/{MultiSelect-Bmb0qTzT.js → MultiSelect-CXn1CY9G.js} +1 -1
- package/storybook-static/assets/{MultiSelect-y6FjtCjy.js → MultiSelect-iwbCRD9H.js} +1 -1
- package/storybook-static/assets/{MultiSelect.stories-B9TZNWng.js → MultiSelect.stories-BSjAL2ua.js} +1 -1
- package/storybook-static/assets/{NoData-CzlhZzHI.js → NoData-6Scjk2OD.js} +1 -1
- package/storybook-static/assets/{NotificationsHost-AE9gk5zq.js → NotificationsHost-DK3A-iq7.js} +1 -1
- package/storybook-static/assets/{NotificationsHost.stories-Bu0__u38.js → NotificationsHost.stories-BRmPf9Q7.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect-DJ6zie6W.js → ODataMultiSelect-CuNGV1QU.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect.stories-BjgJGbWL.js → ODataMultiSelect.stories-CyAonfZC.js} +1 -1
- package/storybook-static/assets/{ODataSelect-V1JJpKB9.js → ODataSelect-vhh4NJS_.js} +1 -1
- package/storybook-static/assets/{ODataSelect.stories-B2INiDvW.js → ODataSelect.stories-aJBFF45H.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect-BKMrgz8e.js → ODataTreeMultiSelect-vPtlTloF.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect.stories-CjLPeqio.js → ODataTreeMultiSelect.stories-DTBAF628.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect-C2iGJdYk.js → ODataTreeSelect-BCVVLB9M.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect.stories-ReyoXlcX.js → ODataTreeSelect.stories-CptC0p6O.js} +1 -1
- package/storybook-static/assets/{OneStepScroller-knlVIvl2.js → OneStepScroller-DerjCiL3.js} +1 -1
- package/storybook-static/assets/{Option-CJBK9i2B.css → Option-CwetjUM8.css} +1 -1
- package/storybook-static/assets/{Option-KVcu4DcX.js → Option-DkAw9S3l.js} +4 -4
- package/storybook-static/assets/{OptionButton-D2ZcZtPU.js → OptionButton-CGurT23Z.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-BsET8TST.js → PeriodSelect-DOO139ke.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-Bm_VPE_5.js → PeriodSelect-TrGTMIid.js} +1 -1
- package/storybook-static/assets/{PeriodSelect.stories-Due2DawD.js → PeriodSelect.stories-B3GEgBZ1.js} +1 -1
- package/storybook-static/assets/{PickerTriggerActions-KgIZBVSt.js → PickerTriggerActions-CKVPuKEC.js} +1 -1
- package/storybook-static/assets/{Popover-Cq1q1mW3.js → Popover-BNItmUQ9.js} +1 -1
- package/storybook-static/assets/{Popover-D38IExq9.js → Popover-DgXqO0PN.js} +1 -1
- package/storybook-static/assets/{Popover.stories-B5MXPFi2.js → Popover.stories-bX5S41pH.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-dWe-Zcrb.js → PresetRangeDateInput-B4FYPy8g.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-C4iOgcKK.js → PresetRangeDateInput-GSnnpZzy.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput.stories-C8JiJCpi.js → PresetRangeDateInput.stories-Ca0mIo33.js} +1 -1
- package/storybook-static/assets/{PresetSelect-CIqamiLP.js → PresetSelect-B_KRl4SQ.js} +1 -1
- package/storybook-static/assets/README-1RIcD7RV.js +694 -0
- package/storybook-static/assets/README-B1XUsXZj.js +334 -0
- package/storybook-static/assets/README-BH78sIZ_.js +288 -0
- package/storybook-static/assets/README-BgeYwR6t.js +347 -0
- package/storybook-static/assets/README-BhsUMTSk.js +860 -0
- package/storybook-static/assets/README-Bj88Ecb7.js +876 -0
- package/storybook-static/assets/README-C9saKIyr.js +417 -0
- package/storybook-static/assets/README-CP1S4LYF.js +1309 -0
- package/storybook-static/assets/README-Cc-guFb0.js +1487 -0
- package/storybook-static/assets/README-CheO0E1A.js +282 -0
- package/storybook-static/assets/README-CiuVVUgE.js +420 -0
- package/storybook-static/assets/README-CvRg9lqh.js +273 -0
- package/storybook-static/assets/README-DCdV2RQL.js +1093 -0
- package/storybook-static/assets/README-DyNQqotW.js +338 -0
- package/storybook-static/assets/README-W1rhe8Sk.js +648 -0
- package/storybook-static/assets/{RadioButton-CTA-WBmG.js → RadioButton-CA9DN5bY.js} +1 -1
- package/storybook-static/assets/{RadioButton-DfRRX6Id.js → RadioButton-DcXbcFW1.js} +1 -1
- package/storybook-static/assets/{RadioButton.stories-D6MO9y2H.js → RadioButton.stories-1_kzxnXY.js} +1 -1
- package/storybook-static/assets/{RadioGroup-CiEUg_Oc.js → RadioGroup-bEwTHCyS.js} +1 -1
- package/storybook-static/assets/{RadioGroup-BAoD6ZDR.js → RadioGroup-mfYgdfXM.js} +1 -1
- package/storybook-static/assets/{RadioGroup.stories-CCjYE-3G.js → RadioGroup.stories-CecdqPms.js} +1 -1
- package/storybook-static/assets/{Scrollable-ns4PHUAk.js → Scrollable-1fdTDJHK.js} +1 -1
- package/storybook-static/assets/{Select-Bj9NxEJa.js → Select-CvQZGS1G.js} +1 -1
- package/storybook-static/assets/{Select-D2aDjIb_.js → Select-Df5Md2Cm.js} +1 -1
- package/storybook-static/assets/{Select.stories-zErlbrrD.js → Select.stories-M4M80KTq.js} +1 -1
- package/storybook-static/assets/{SerializableSelect-P7iNwTbc.js → SerializableSelect-CnsGo9Ep.js} +1 -1
- package/storybook-static/assets/{SerializableSelect.stories-DUAK_mo8.js → SerializableSelect.stories-BJ6MlNDx.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-vvyw15zU.js → SingleDateTimeInput-BCV0gfB9.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-CkMMccYd.js → SingleDateTimeInput-DJH7zSIz.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput.stories-CSW9M9hH.js → SingleDateTimeInput.stories-DgEwAFe8.js} +1 -1
- package/storybook-static/assets/{Slider-Dftgrmfi.js → Slider-D504FPH3.js} +1 -1
- package/storybook-static/assets/{Slider-CkUdrb57.js → Slider-cLRAHPLi.js} +1 -1
- package/storybook-static/assets/{Slider.stories-zVUgi1Wb.js → Slider.stories-EI314Iff.js} +1 -1
- package/storybook-static/assets/{SliderInput-BINdZsru.js → SliderInput-Bt0H8rgN.js} +1 -1
- package/storybook-static/assets/{SliderInput-DnVNzY_q.js → SliderInput-E5p3n3VY.js} +1 -1
- package/storybook-static/assets/{SliderInput.stories-CfY1B4PZ.js → SliderInput.stories-CDYPq7fP.js} +1 -1
- package/storybook-static/assets/{Sortable-BnixGZFs.js → Sortable-Bzd7JK4E.js} +1 -1
- package/storybook-static/assets/{Sortable.stories-DFzv9lnf.js → Sortable.stories-DNGbmn2a.js} +1 -1
- package/storybook-static/assets/{Splitter-BtDFBrQ3.js → Splitter-DSf48AOW.js} +1 -1
- package/storybook-static/assets/{Splitter.stories-CipjzPJH.js → Splitter.stories-DUKsOqNN.js} +1 -1
- package/storybook-static/assets/{StateSelect-DagWIbnr.js → StateSelect-BxuKIsLa.js} +1 -1
- package/storybook-static/assets/{StateSelect-J5sxWYjq.js → StateSelect-HKOT6kq9.js} +1 -1
- package/storybook-static/assets/{StateSelect.stories-DDIqhm2K.js → StateSelect.stories-CbLvq7ou.js} +1 -1
- package/storybook-static/assets/{StringToggle.stories-CkYGiOe-.js → StringToggle.stories-DOKL-aWy.js} +1 -1
- package/storybook-static/assets/{Switch-B5TS1mrR.js → Switch-CLAfhk73.js} +1 -1
- package/storybook-static/assets/{Switch-N-Lxev-q.js → Switch-CVTjSEq1.js} +1 -1
- package/storybook-static/assets/{Switch.stories-HNOx5mPv.js → Switch.stories-CL5Xe_HQ.js} +1 -1
- package/storybook-static/assets/{Table-DTzmRzDD.js → Table-DKc19RME.js} +1 -1
- package/storybook-static/assets/Table.stories-CJ9DR1S-.js +207 -0
- package/storybook-static/assets/{Tabs-Bc5dgtoT.js → Tabs-De_4F0H3.js} +1 -1
- package/storybook-static/assets/{Tabs.stories-BgLnKKFv.js → Tabs.stories-DPAvvkh9.js} +2 -2
- package/storybook-static/assets/{TabsBox-sTVLs8k0.js → TabsBox-Cy5CICcb.js} +1 -1
- package/storybook-static/assets/{TagInput-yPLHo0PJ.js → TagInput-7n98ftvD.js} +1 -1
- package/storybook-static/assets/{TagInput.stories-B4C-230C.js → TagInput.stories-B6JAb3XA.js} +1 -1
- package/storybook-static/assets/{Text-C2-mep6V.js → Text-CjSG8mvD.js} +1 -1
- package/storybook-static/assets/{Textarea-bqvYs13v.js → Textarea-CQqwaJ0Q.js} +1 -1
- package/storybook-static/assets/{Textarea-B7pXYTGv.js → Textarea-Dea29_yQ.js} +1 -1
- package/storybook-static/assets/{Textarea.stories-BSSaqnZI.js → Textarea.stories-BZf3Cu4S.js} +1 -1
- package/storybook-static/assets/{TimePanel-pMBlR0ZN.js → TimePanel-CPZ4jOw2.js} +1 -1
- package/storybook-static/assets/{TimePanel.stories-Cn5IEcsV.js → TimePanel.stories-y5Lp9sMG.js} +1 -1
- package/storybook-static/assets/{Toggle-E4xV63pY.js → Toggle-CJHzo9mB.js} +1 -1
- package/storybook-static/assets/{Toggle-h6ESIcwX.js → Toggle-s7SzQ11W.js} +1 -1
- package/storybook-static/assets/{Toggle.stories-9uqFBAAr.js → Toggle.stories-Dk3C5Le5.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-DBGlliij.js → TreeMultiSelect-CxXF7pQE.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-J8Tlnv3Y.js → TreeMultiSelect-DfeggvLr.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect.stories-CYDuvIk7.js → TreeMultiSelect.stories-DKiHT_6L.js} +1 -1
- package/storybook-static/assets/{TreePickerBase-BswrqgW3.js → TreePickerBase-DKJJDVC_.js} +1 -1
- package/storybook-static/assets/{TreeSelect-B1Buti64.js → TreeSelect-2E1KhJMi.js} +1 -1
- package/storybook-static/assets/{TreeSelect-Jchj-RXf.js → TreeSelect-h23orAoA.js} +1 -1
- package/storybook-static/assets/{TreeSelect.stories-DzCqueCG.js → TreeSelect.stories-DO06yaS0.js} +1 -1
- package/storybook-static/assets/{TreeTable-oYCdUTsS.js → TreeTable-ByV2_E0S.js} +1 -1
- package/storybook-static/assets/{TreeTable.stories-L4FHah8x.js → TreeTable.stories-D4gbQx59.js} +2 -2
- package/storybook-static/assets/{WithTooltip-7X4HQR7L-Cakt_JaX.js → WithTooltip-7X4HQR7L-DQ4Qthn2.js} +1 -1
- package/storybook-static/assets/{array-D-_yMMUK-CIRmlF93.js → array-D-_yMMUK-BQ0uu1hZ.js} +1 -1
- package/storybook-static/assets/{async-Bsdhj8g_.js → async-BI7SlYp0.js} +1 -1
- package/storybook-static/assets/axe-_9eNhXQJ.js +20 -0
- package/storybook-static/assets/{blocks-BA_1CXsr.js → blocks-B8F5vBhs.js} +6 -6
- package/storybook-static/assets/check-mlY_aVEI.js +1 -0
- package/storybook-static/assets/chevron-down-C7c-TcEc.js +1 -0
- package/storybook-static/assets/chevron-left-2LrGBhDY.js +1 -0
- package/storybook-static/assets/chevron-right-D6NN1_UQ.js +1 -0
- package/storybook-static/assets/{chunk-242VQQM5-BMWWiybC.js → chunk-242VQQM5-bHL6qIJq.js} +1 -1
- package/storybook-static/assets/{chunk-DRQKCCAG-CqE-Zrl9.js → chunk-DRQKCCAG-DvsmU7ha.js} +1 -1
- package/storybook-static/assets/{chunk-IMSF75WX-yvVUwIQZ.js → chunk-IMSF75WX-CGYlPTyG.js} +1 -1
- package/storybook-static/assets/{chunk-KJHJLCBK-D-yQfkOi.js → chunk-KJHJLCBK-yRlRMfNs.js} +1 -1
- package/storybook-static/assets/{chunk-QQBDHPVZ-B98qboss.js → chunk-QQBDHPVZ-DC5n6Pix.js} +1 -1
- package/storybook-static/assets/{chunk-W22LQPXL-B40Li12y.js → chunk-W22LQPXL-5sD3hVeE.js} +1 -1
- package/storybook-static/assets/{circle-alert-C855gqBz.js → circle-alert-H_7GSXFp.js} +1 -1
- package/storybook-static/assets/circle-check-B0voRIBT.js +1 -0
- package/storybook-static/assets/{components-DSUjzUVy.js → components-Bw-2TeQP.js} +12 -12
- package/storybook-static/assets/{contextMenu-DCSPTQNQ.js → contextMenu-B8JusItT.js} +1 -1
- package/storybook-static/assets/{createControlledStoryRender-DHsyXc1B.js → createControlledStoryRender-BouhvX-R.js} +1 -1
- package/storybook-static/assets/{date-segments-D3HouZ37.js → date-segments-DeoMkKv9.js} +1 -1
- package/storybook-static/assets/{defaultRenderers-V5HI39JH.js → defaultRenderers-BHXboKuy.js} +1 -1
- package/storybook-static/assets/{dom-B3G_GtJw.js → dom-DBd_DWF8.js} +1 -1
- package/storybook-static/assets/{download-B3oJ9vHV.js → download-CSY7aIz0.js} +1 -1
- package/storybook-static/assets/{error-BZrNlEUO.js → error-De9R4E_F.js} +1 -1
- package/storybook-static/assets/{file-vPGnhPr-.js → file-CwRoWxeB.js} +1 -1
- package/storybook-static/assets/floating-ui.react-D7RwPYeO.js +1 -0
- package/storybook-static/assets/formatter-L2YTDE3Q-CRGuSxAF.js +1 -0
- package/storybook-static/assets/{formatters-CBgrBeSA-DY6OIAc8.js → formatters-CBgrBeSA-CqB1pZxS.js} +1 -1
- package/storybook-static/assets/{foundationLib-BFrQ5jez.js → foundationLib-BoYGVeXe.js} +1 -1
- package/storybook-static/assets/{hooks-_jPrECht.js → hooks-DQXvhAPr.js} +2 -2
- package/storybook-static/assets/iframe-B8PAuhnL.js +1 -0
- package/storybook-static/assets/{iframe-Cq8y-8O_.js → iframe-CViB2sFm.js} +23 -23
- package/storybook-static/assets/{info-CiT6g2aP.js → info-MrQcS8jn.js} +1 -1
- package/storybook-static/assets/{matchers-JIUQ3HVY-DvR2XErZ.js → matchers-JIUQ3HVY-C789_MAK.js} +1 -1
- package/storybook-static/assets/{media-BycWpjAl.js → media-D9cE2tzi.js} +1 -1
- package/storybook-static/assets/odata-CBGaUmRT.js +1 -0
- package/storybook-static/assets/{odata-service-B6TxBSLm-BW9QLSrS.js → odata-service-B6TxBSLm-Bq8Ya67E.js} +1 -1
- package/storybook-static/assets/{odataFetchFn-C6ps_31t.js → odataFetchFn-CPO8XIYX.js} +1 -1
- package/storybook-static/assets/{odataStoryFixtures-BcNo-Wxr.js → odataStoryFixtures--SWu2yC_.js} +2 -2
- package/storybook-static/assets/{persisted-B6h1b3UG.js → persisted-B2dfNRCz.js} +1 -1
- package/storybook-static/assets/{preload-helper-BHmFeTtP.js → preload-helper-wdlQj8DP.js} +1 -1
- package/storybook-static/assets/react-18-D4o7zN8K.js +9 -0
- package/storybook-static/assets/{react-C21x__mS.js → react-BZJXY1be.js} +1 -1
- package/storybook-static/assets/{react-qN2cStNd.js → react-Bl2r1tuC.js} +1 -1
- package/storybook-static/assets/{react-CvkUhHUq.js → react-GkniIHEK.js} +1 -1
- package/storybook-static/assets/{react-dom-2o2phaJG.js → react-dom-BzEl8usk.js} +1 -1
- package/storybook-static/assets/react-iQQwtFPL.js +9 -0
- package/storybook-static/assets/{refresh-cw-DIeuulxV.js → refresh-cw-_wTFfhR2.js} +1 -1
- package/storybook-static/assets/{rolldown-runtime-C0FnF6B9.js → rolldown-runtime-DkW27tQK.js} +1 -1
- package/storybook-static/assets/{settings-2-Gfu_uw21.js → settings-2-BqduNJjJ.js} +1 -1
- package/storybook-static/assets/{shim-BUMlC1GG.js → shim-DlYORV19.js} +1 -1
- package/storybook-static/assets/{sortable-DxRr6Rgq.js → sortable-D-m6SEp7.js} +1 -1
- package/storybook-static/assets/syntaxhighlighter-QEQV7K2Y-CEo9I1qZ.js +6 -0
- package/storybook-static/assets/{theming-mTWhffkp.js → theming-Cvtrnj7n.js} +1 -1
- package/storybook-static/assets/{trash-2-CqKAB1Q0.js → trash-2-65ZF92zp.js} +1 -1
- package/storybook-static/assets/{treeStoryFixtures-Ci7STpiz.js → treeStoryFixtures-DXHh9GL3.js} +1 -1
- package/storybook-static/assets/{triangle-alert-D4omsgZJ.js → triangle-alert-k_CRNi0k.js} +1 -1
- package/storybook-static/assets/{ui.module-D4CuGr8r.js → ui.module-Cat84Nza.js} +1 -1
- package/storybook-static/assets/{uiClasses-CVGbL980.js → uiClasses-B9c6dZuu.js} +1 -1
- package/storybook-static/assets/{useFlexClasses-Gn9spXEB.js → useFlexClasses-SgVG37Bb.js} +1 -1
- package/storybook-static/assets/{useODataSelectBase-DacE6X5d.js → useODataSelectBase-Ck_hduYv.js} +1 -1
- package/storybook-static/assets/{useODataTreeData-BEYyje5V.js → useODataTreeData-DTrxPY_k.js} +1 -1
- package/storybook-static/assets/usePickerDefaultFilter-5Q1pAV4d.js +1 -0
- package/storybook-static/assets/{usePickerQuery-BRsuRnoH.js → usePickerQuery-DdeWtJWc.js} +1 -1
- package/storybook-static/assets/{usePickerTriggerController-DyFq40t1.js → usePickerTriggerController-D8hxWmGo.js} +2 -2
- package/storybook-static/assets/{utils-DUM89eIj.js → utils-tg3ibbzi.js} +1 -1
- package/storybook-static/assets/x-C5XG0bD4.js +1 -0
- package/storybook-static/iframe.html +7 -7
- package/storybook-static/index.json +1 -1
- package/storybook-static/project.json +1 -1
- package/storybook-static/sb-addons/chromatic-com-storybook-1/manager-bundle.js +35 -33
- package/storybook-static/sb-manager/globals-runtime.js +7 -7
- package/storybook-static/sb-manager/globals.js +1 -1
- package/storybook-static/sb-manager/runtime.js +88 -89
- package/storybook-static/vite-inject-mocker-entry.js +2 -2
- package/dist/chunks/picker-0I1yMKIY.js.map +0 -1
- package/storybook-static/assets/FormattedTableCell-BdA15EY1.js +0 -15
- package/storybook-static/assets/Table.stories-DY5NfoVd.js +0 -207
- package/storybook-static/assets/axe-Bq-2xuso.js +0 -20
- package/storybook-static/assets/browserAndReact-fXgh8QfO.js +0 -70
- package/storybook-static/assets/check-wNoLJyvD.js +0 -1
- package/storybook-static/assets/chevron-down-DjM4Yyml.js +0 -1
- package/storybook-static/assets/chevron-left-BT138_KT.js +0 -1
- package/storybook-static/assets/chevron-right-DEvxOiq2.js +0 -1
- package/storybook-static/assets/circle-check-BDVZ6tz8.js +0 -1
- package/storybook-static/assets/filesAndExcel-Bj4tkdkM.js +0 -92
- package/storybook-static/assets/floating-ui.react-BewtdZNK.js +0 -1
- package/storybook-static/assets/formatter-L2YTDE3Q-x0raBH34.js +0 -1
- package/storybook-static/assets/formatters-DYZ7voq3.js +0 -202
- package/storybook-static/assets/formatters-runtime-Ddmbt5yI.js +0 -329
- package/storybook-static/assets/iframe-C7ggO0sY.js +0 -1
- package/storybook-static/assets/odata-ClP2t_-O.js +0 -1
- package/storybook-static/assets/odataAndTables-Cjwl3uWE.js +0 -77
- package/storybook-static/assets/pureUtilities-CO1AJvbl.js +0 -30
- package/storybook-static/assets/react-18-CgkwBzTo.js +0 -9
- package/storybook-static/assets/react-D4nkG-T7.js +0 -9
- package/storybook-static/assets/runtimeAndState-TcnlLgJx.js +0 -93
- package/storybook-static/assets/syntaxhighlighter-T5IQBZDB-BIwIp4cU.js +0 -6
- package/storybook-static/assets/usePickerDefaultFilter-Be420WNF.js +0 -1
- package/storybook-static/assets/x-zmaXH4MN.js +0 -1
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-Cq8y-8O_.js";import{i as n,r}from"./react-qN2cStNd.js";import{l as i,m as a}from"./blocks-BA_1CXsr.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/Browser и React API`}),`
|
|
2
|
-
`,(0,c.jsx)(t.h1,{id:`browser-и-react-api`,children:`Browser и React API`}),`
|
|
3
|
-
`,(0,c.jsxs)(t.p,{children:[`Эти entrypoint работают только после монтирования в браузере. Вызывайте hooks на верхнем уровне React-компонента или custom hook, а императивные действия (скачивание, clipboard, открытие меню) — из event handler. Они не заменяют UI primitives из `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-ui`}),`.`]}),`
|
|
4
|
-
`,(0,c.jsx)(t.h2,{id:`общие-hooks`,children:`Общие hooks`}),`
|
|
5
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import {
|
|
6
|
-
useDebounce,
|
|
7
|
-
useDebouncedCallback,
|
|
8
|
-
useDndSortableSensors,
|
|
9
|
-
useFloatingListbox,
|
|
10
|
-
useSearchLink,
|
|
11
|
-
useSearchParams,
|
|
12
|
-
useThrottledCallback
|
|
13
|
-
} from "@ryuzaki13/react-foundation-lib/hooks";
|
|
14
|
-
`})}),`
|
|
15
|
-
`,(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:`Назначение и lifecycle`})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`useDebounce(value, delay)`})}),(0,c.jsx)(t.td,{children:`Возвращает отложенное значение. Не запускает network запрос сам — используйте результат в owner Query/UI flow.`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`useDebouncedCallback(callback, delay, { flushOnUnmount? })`})}),(0,c.jsxs)(t.td,{children:[`Возвращает debounced callback. Опция `,(0,c.jsx)(t.code,{children:`flushOnUnmount`}),` нужна только когда финальный вызов действительно обязателен.`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`useThrottledCallback(callback, interval, { flushOnUnmount? })`})}),(0,c.jsxs)(t.td,{children:[`Возвращает `,(0,c.jsx)(t.code,{children:`{ call, flush, cancel }`}),`; стратегия last-write-wins. Вызывайте `,(0,c.jsx)(t.code,{children:`flush`}),` на границе сохранения, `,(0,c.jsx)(t.code,{children:`cancel`}),` при смене identity.`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`useDndSortableSensors(distanceOrOptions?)`})}),(0,c.jsxs)(t.td,{children:[`Готовые Pointer/Keyboard sensors для `,(0,c.jsx)(t.code,{children:`@dnd-kit/sortable`}),`; default distance — 6 px.`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`useLazyComponent(loader, ...)`})}),(0,c.jsx)(t.td,{children:`Используйте для lazy UI по устойчивому loader/cache key, а не вызывайте dynamic import во время render.`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`useReferenceTrace(name, value)`})}),(0,c.jsx)(t.td,{children:`Development diagnostic для отслеживания смены ссылок; не часть бизнес-логики.`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`useBlockBrowserZoom(enabled)`})}),(0,c.jsx)(t.td,{children:`Подписывается на browser events для блокировки zoom. Используйте только в явном специализированном UX, не как default.`})]})]})]}),`
|
|
16
|
-
`,(0,c.jsx)(t.h3,{id:`search-и-floating-listbox`,children:`Search и floating listbox`}),`
|
|
17
|
-
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`useSearchParams<K>(allowedKeys?)`}),` и `,(0,c.jsx)(t.code,{children:`useSearchLink<K>()`}),` требуют `,(0,c.jsx)(t.code,{children:`@tanstack/react-router`}),`. Первый возвращает `,(0,c.jsx)(t.code,{children:`{ params, filteredParams, setParams }`}),` и выполняет navigation с `,(0,c.jsx)(t.code,{children:`replace: true`}),`; второй возвращает `,(0,c.jsx)(t.code,{children:`buildLink(params)`}),`. Оба работают с URL state, а не с произвольным Zustand/local store.`]}),`
|
|
18
|
-
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`useFloatingListbox<T>(options)`}),` требует `,(0,c.jsx)(t.code,{children:`@floating-ui/react`}),` и объединяет ref, ARIA-interactions, keyboard navigation и placement. Передавайте:`]}),`
|
|
19
|
-
`,(0,c.jsxs)(t.ul,{children:[`
|
|
20
|
-
`,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`options`}),`, `,(0,c.jsx)(t.code,{children:`selectedIndex`}),`, `,(0,c.jsx)(t.code,{children:`getOptionDisabled`}),` — данные и доступность опций;`]}),`
|
|
21
|
-
`,(0,c.jsxs)(t.li,{children:[`optional controlled `,(0,c.jsx)(t.code,{children:`open`}),` + `,(0,c.jsx)(t.code,{children:`onOpenChange`}),`;`]}),`
|
|
22
|
-
`,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`onSelect`}),`, `,(0,c.jsx)(t.code,{children:`closeOnSelect`}),`, `,(0,c.jsx)(t.code,{children:`focusFloatingOnOpen`}),`, `,(0,c.jsx)(t.code,{children:`restoreFocusOnClose`}),` — interaction policy;`]}),`
|
|
23
|
-
`,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`placement`}),` и `,(0,c.jsx)(t.code,{children:`placementStrategy: "flip" | "auto"`}),` — placement;`]}),`
|
|
24
|
-
`,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`resolveFloatingSize(context)`}),` — только layout/CSS size policy.`]}),`
|
|
25
|
-
`]}),`
|
|
26
|
-
`,(0,c.jsxs)(t.p,{children:[`Hook возвращает Floating UI props/refs и их нужно распространять на reference, floating element и options строго по его контракту. Не заменяйте эти props самодельными keyboard handlers: это нарушит `,(0,c.jsx)(t.code,{children:`aria-activedescendant`}),`, focus restore и cleanup `,(0,c.jsx)(t.code,{children:`autoUpdate`}),`.`]}),`
|
|
27
|
-
`,(0,c.jsx)(t.h2,{id:`dom-и-overlay-helpers`,children:`DOM и overlay helpers`}),`
|
|
28
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import {
|
|
29
|
-
downloadFileFromBlob,
|
|
30
|
-
getOrCreatePortalRoot,
|
|
31
|
-
useClickOutside,
|
|
32
|
-
useEscapeDismiss,
|
|
33
|
-
useFocusTrap,
|
|
34
|
-
useIntersectionObserver,
|
|
35
|
-
useOverlayFocus
|
|
36
|
-
} from "@ryuzaki13/react-foundation-lib/dom";
|
|
37
|
-
`})}),`
|
|
38
|
-
`,(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:`downloadFileFromObjectURL(filename, objectUrl)`})}),(0,c.jsxs)(t.td,{children:[`Инициирует download по готовому object URL; не владеет временем `,(0,c.jsx)(t.code,{children:`URL.revokeObjectURL`}),`.`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`downloadFileFromBlob(filename, blob)`})}),(0,c.jsx)(t.td,{children:`Создаёт временный object URL и инициирует download.`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`downloadFileFromJson(filename, payload)`})}),(0,c.jsx)(t.td,{children:`Сериализует payload в JSON blob и скачивает.`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`getOrCreatePortalRoot(id)`})}),(0,c.jsxs)(t.td,{children:[`Возвращает/создаёт DOM root или `,(0,c.jsx)(t.code,{children:`null`}),`, если `,(0,c.jsx)(t.code,{children:`document`}),` недоступен.`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`useClickOutside(refOrRefs, handler)`})}),(0,c.jsx)(t.td,{children:`Вызывает handler при внешнем pointer interaction; передавайте стабильные refs.`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`useEscapeDismiss(options)`})}),(0,c.jsx)(t.td,{children:`Dismiss только для active/enabled overlay; поддерживает container и целевой document.`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`useFocusTrap(isOpen)`})}),(0,c.jsx)(t.td,{children:`Возвращает ref для trapping focus внутри открытого overlay.`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`useOverlayFocus(options)`})}),(0,c.jsx)(t.td,{children:`Управляет initial focus и restore для overlay; применяйте вместе с accessible dialog/menu.`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`useElementHeightObserver(ref)`})}),(0,c.jsxs)(t.td,{children:[`Следит за высотой через `,(0,c.jsx)(t.code,{children:`ResizeObserver`}),`; результат используйте для layout, не для копирования props в state.`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`useIntersectionObserver(ref, options?)`})}),(0,c.jsx)(t.td,{children:`Возвращает intersection state DOM element.`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`useIsTouchDevice()`})}),(0,c.jsx)(t.td,{children:`Реактивно сообщает touch-capability браузера.`})]})]})]}),`
|
|
39
|
-
`,(0,c.jsxs)(t.p,{children:[`Hooks сами подписываются и очищают observers/listeners при unmount. Не вызывайте `,(0,c.jsx)(t.code,{children:`getOrCreatePortalRoot`}),` или browser API в server render; hook-проверки не делают UI SSR-safe автоматически.`]}),`
|
|
40
|
-
`,(0,c.jsx)(t.h2,{id:`clipboard-media-и-context-menu`,children:`Clipboard, media и context menu`}),`
|
|
41
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { useCopyText, useCopyElementTextWithFeedback } from "@ryuzaki13/react-foundation-lib/copy";
|
|
42
|
-
import { useMediaQuery, useMatchMedia, resolveResponsiveValue } from "@ryuzaki13/react-foundation-lib/media";
|
|
43
|
-
import { createVirtualAnchor, openMenu } from "@ryuzaki13/react-foundation-lib/context-menu";
|
|
44
|
-
`})}),`
|
|
45
|
-
`,(0,c.jsx)(t.h3,{id:`copy`,children:(0,c.jsx)(t.code,{children:`copy`})}),`
|
|
46
|
-
`,(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:`useCopyText()`})}),(0,c.jsx)(t.td,{children:`Возвращает copy action для строки через Clipboard API с fallback.`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`useElementText(ref)`})}),(0,c.jsx)(t.td,{children:`Читает текст из DOM element.`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`useCopyElementText(ref)`})}),(0,c.jsx)(t.td,{children:`Комбинирует чтение элемента и copy.`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`useCopyFeedback()`})}),(0,c.jsx)(t.td,{children:`Локальное временное состояние feedback после успешного copy.`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`useCopyElementTextWithFeedback(ref)`})}),(0,c.jsx)(t.td,{children:`Удобная композиция copy element + feedback.`})]})]})]}),`
|
|
47
|
-
`,(0,c.jsx)(t.p,{children:`Copy может быть отклонён browser permissions; показывайте ожидаемую UI-ошибку, но не считайте clipboard источником истины для сохранения данных.`}),`
|
|
48
|
-
`,(0,c.jsx)(t.h3,{id:`media`,children:(0,c.jsx)(t.code,{children:`media`})}),`
|
|
49
|
-
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`BREAKPOINTS_EM`}),` и `,(0,c.jsx)(t.code,{children:`Breakpoint`}),` задают стандартные breakpoints; `,(0,c.jsx)(t.code,{children:`useMatchMedia()`}),` возвращает `,(0,c.jsx)(t.code,{children:`MediaMatches`}),`. Для конкретного media query используйте `,(0,c.jsx)(t.code,{children:`useMediaQuery(query, { ssrFallback? })`}),`; `,(0,c.jsx)(t.code,{children:`ssrFallback`}),` определяет значение только до browser hydration/в окружении без `,(0,c.jsx)(t.code,{children:`matchMedia`}),`.`]}),`
|
|
50
|
-
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`ResponsiveValue<T>`}),`, `,(0,c.jsx)(t.code,{children:`isResponsiveMap`}),`, `,(0,c.jsx)(t.code,{children:`resolveResponsiveValue`}),` и `,(0,c.jsx)(t.code,{children:`resolveProps`}),` — pure helpers для responsive props. `,(0,c.jsx)(t.code,{children:`getCurrentFontSize`}),`, `,(0,c.jsx)(t.code,{children:`getCurrentLineHeight`}),`, `,(0,c.jsx)(t.code,{children:`getControlHeight`}),`, `,(0,c.jsx)(t.code,{children:`pxToEm`}),` читают layout/DOM: не вызывайте их в render, если результат влияет на state без external synchronization.`]}),`
|
|
51
|
-
`,(0,c.jsx)(t.h3,{id:`context-menu`,children:(0,c.jsx)(t.code,{children:`context-menu`})}),`
|
|
52
|
-
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`MenuAnchor`}),`, `,(0,c.jsx)(t.code,{children:`MenuState`}),`, `,(0,c.jsx)(t.code,{children:`MenuPoint`}),`, `,(0,c.jsx)(t.code,{children:`OpenMenuPayload`}),` — serializable contracts состояния меню. `,(0,c.jsx)(t.code,{children:`openMenu(payload)`}),`, `,(0,c.jsx)(t.code,{children:`closeMenu(state)`}),` и `,(0,c.jsx)(t.code,{children:`toggleMenu(state, payload)`}),` — pure reducers; их можно держать в local/store owner.`]}),`
|
|
53
|
-
`,(0,c.jsxs)(t.p,{children:[`Для pointer menu используйте `,(0,c.jsx)(t.code,{children:`getMenuPointFromEvent(event)`}),` и `,(0,c.jsx)(t.code,{children:`createVirtualAnchor(point, contextElement?)`}),`. Для keyboard anchor используйте `,(0,c.jsx)(t.code,{children:`getMenuPointFromRect(rect)`}),`. API лишь описывает состояние/anchor; отображение и accessibility menu остаются у UI-компонента.`]}),`
|
|
54
|
-
`,(0,c.jsx)(t.h2,{id:`virtualizer-pwa-и-threejs`,children:`Virtualizer, PWA и Three.js`}),`
|
|
55
|
-
`,(0,c.jsx)(t.h3,{id:`infinite-virtualizer`,children:`Infinite virtualizer`}),`
|
|
56
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { useFetchNextPageEffect } from "@ryuzaki13/react-foundation-lib/virtualizer";
|
|
57
|
-
`})}),`
|
|
58
|
-
`,(0,c.jsxs)(t.p,{children:[`Hook принимает `,(0,c.jsx)(t.code,{children:`{ virtualItems, currentItemsCount, hasNextPage, fetchNextPage }`}),`; при достижении последней виртуальной строки запускает один следующий fetch и не создаёт параллельные запросы. `,(0,c.jsx)(t.code,{children:`fetchNextPage`}),` должен быть стабильным Query action. Не передавайте raw `,(0,c.jsx)(t.code,{children:`fetch`}),` и не подменяйте backend state локальным массивом.`]}),`
|
|
59
|
-
`,(0,c.jsx)(t.h3,{id:`service-worker`,children:`Service Worker`}),`
|
|
60
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { parseSwCachePolicy, buildSwCachePolicyValue, useServiceWorkerUpdate } from "@ryuzaki13/react-foundation-lib/pwa";
|
|
61
|
-
`})}),`
|
|
62
|
-
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`useServiceWorkerUpdate()`}),` возвращает `,(0,c.jsx)(t.code,{children:`{ hasUpdate, applyUpdate, dismiss }`}),`. Его задача — UI-поверхность для уже настроенного приложения с Service Worker; hook не публикует и не настраивает private registration API.`]}),`
|
|
63
|
-
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`pwa/sw-cache-policy`}),` — отдельный точечный import того же pure policy API:`]}),`
|
|
64
|
-
`,(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:`parseSwCachePolicy(value)`})}),(0,c.jsxs)(t.td,{children:[`Парсит `,(0,c.jsx)(t.code,{children:`off`}),`, `,(0,c.jsx)(t.code,{children:`ttl=<duration>`}),` или `,(0,c.jsx)(t.code,{children:`bust=<duration>`}),` с `,(0,c.jsx)(t.code,{children:`max`}),`/`,(0,c.jsx)(t.code,{children:`name`}),`; invalid input даёт `,(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:`buildSwCachePolicyValue(draft)`})}),(0,c.jsxs)(t.td,{children:[`Нормализует `,(0,c.jsx)(t.code,{children:`SwCachePolicyDraft`}),` в canonical transport string.`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`normalizeSwCacheName(value)`})}),(0,c.jsxs)(t.td,{children:[`Делает безопасное lower-case cache name или `,(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:`resolveSwCacheCacheNameByPolicy(value)`})}),(0,c.jsxs)(t.td,{children:[`Возвращает вычисленное имя cache только для `,(0,c.jsx)(t.code,{children:`ttl`}),`/`,(0,c.jsx)(t.code,{children:`bust`}),`.`]})]})]})]}),`
|
|
65
|
-
`,(0,c.jsxs)(t.p,{children:[`Пример: `,(0,c.jsx)(t.code,{children:`ttl=24h;max=200;name=reference`}),`. Это policy для transport/Service Worker, а не замена TanStack Query cache. Не включайте в SW cache auth-sensitive responses без отдельной security policy.`]}),`
|
|
66
|
-
`,(0,c.jsx)(t.h3,{id:`доступность-threejs`,children:`Доступность Three.js`}),`
|
|
67
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { useThreeSceneAvailability, disableThreeSceneForSession } from "@ryuzaki13/react-foundation-lib/three-scene";
|
|
68
|
-
`})}),`
|
|
69
|
-
`,(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:`isThreeSceneSupported(options?)`})}),(0,c.jsx)(t.td,{children:`Проверяет browser WebGL/WebGL2 support.`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`isThreeSceneDisabledForSession(key?)`}),`, `,(0,c.jsx)(t.code,{children:`disableThreeSceneForSession(key?)`})]}),(0,c.jsx)(t.td,{children:`Читают/устанавливают opt-out текущей tab session.`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`useThreeSceneAvailability(options?)`})}),(0,c.jsxs)(t.td,{children:[`React state с `,(0,c.jsx)(t.code,{children:`pending`}),`/`,(0,c.jsx)(t.code,{children:`available`}),`/`,(0,c.jsx)(t.code,{children:`unavailable`}),` и причиной (`,(0,c.jsx)(t.code,{children:`sessionDisabled`}),`, `,(0,c.jsx)(t.code,{children:`reducedMotion`}),`, `,(0,c.jsx)(t.code,{children:`webglUnsupported`}),`, `,(0,c.jsx)(t.code,{children:`ssr`}),`).`]})]})]})]}),`
|
|
70
|
-
`,(0,c.jsxs)(t.p,{children:[`Проверка support не заменяет обработку ошибки renderer. При `,(0,c.jsx)(t.code,{children:`unavailable`}),` всегда рендерите семантический non-Three fallback.`]})]})}function s(e={}){let{wrapper:t}={...n(),...e.components};return t?(0,c.jsx)(t,{...e,children:(0,c.jsx)(o,{...e})}):o(e)}var c;function l(){return(l=e((()=>{c=t(),r(),a()})))()}l();export{s as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{i as t,r as n}from"./iframe-Cq8y-8O_.js";var r,i;function a(){return(a=e((()=>{t(),r=[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]],i=n(`check`,r)})))()}export{a as n,i as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{i as t,r as n}from"./iframe-Cq8y-8O_.js";var r,i;function a(){return(a=e((()=>{t(),r=[[`path`,{d:`m6 9 6 6 6-6`,key:`qrunsl`}]],i=n(`chevron-down`,r)})))()}export{a as n,i as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{i as t,r as n}from"./iframe-Cq8y-8O_.js";var r,i;function a(){return(a=e((()=>{t(),r=[[`path`,{d:`m15 18-6-6 6-6`,key:`1wnfg3`}]],i=n(`chevron-left`,r)})))()}export{a as n,i as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{i as t,r as n}from"./iframe-Cq8y-8O_.js";var r,i;function a(){return(a=e((()=>{t(),r=[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]],i=n(`chevron-right`,r)})))()}export{a as n,i as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{i as t,r as n}from"./iframe-Cq8y-8O_.js";var r,i;function a(){return(a=e((()=>{t(),r=[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]],i=n(`circle-check`,r)})))()}export{a as n,i as t};
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-Cq8y-8O_.js";import{i as n,r}from"./react-qN2cStNd.js";import{l as i,m as a}from"./blocks-BA_1CXsr.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
|
-
`,(0,c.jsx)(t.h1,{id:`файлы-бинарные-данные-и-excel`,children:`Файлы, бинарные данные и Excel`}),`
|
|
3
|
-
`,(0,c.jsxs)(t.p,{children:[`Эта страница описывает browser-only API для чтения пользовательских файлов, преобразования base64 и формирования `,(0,c.jsx)(t.code,{children:`.xlsx`}),`. Подготовка бизнес-полей, проверка прав доступа и отправка файла на сервер остаются ответственностью host-приложения.`]}),`
|
|
4
|
-
`,(0,c.jsxs)(t.h2,{id:`file-чтение-файлов-и-http-заголовки`,children:[(0,c.jsx)(t.code,{children:`file`}),`: чтение файлов и HTTP-заголовки`]}),`
|
|
5
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import {
|
|
6
|
-
createContentDispositionHeader,
|
|
7
|
-
readFile,
|
|
8
|
-
readImageFile,
|
|
9
|
-
resolveMimeTypeByExtension,
|
|
10
|
-
type ReadFileError,
|
|
11
|
-
type ReadImageError
|
|
12
|
-
} from "@ryuzaki13/react-foundation-lib/file";
|
|
13
|
-
`})}),`
|
|
14
|
-
`,(0,c.jsx)(t.h3,{id:`когда-использовать`,children:`Когда использовать`}),`
|
|
15
|
-
`,(0,c.jsxs)(t.ul,{children:[`
|
|
16
|
-
`,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`readFile`}),` — получить `,(0,c.jsx)(t.code,{children:`dataUrl`}),` для preview или `,(0,c.jsx)(t.code,{children:`ArrayBuffer`}),` для дальнейшей обработки;`]}),`
|
|
17
|
-
`,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`readImageFile`}),` — то же для изображений с проверкой image MIME и размером изображения;`]}),`
|
|
18
|
-
`,(0,c.jsx)(t.li,{children:`helpers Content-Disposition — сформировать безопасный заголовок в browser-compatible/edge runtime коде;`}),`
|
|
19
|
-
`,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`resolveMimeTypeByExtension`}),` — определить MIME по расширению, если содержимого для sniffing нет.`]}),`
|
|
20
|
-
`]}),`
|
|
21
|
-
`,(0,c.jsx)(t.h3,{id:`readfile`,children:(0,c.jsx)(t.code,{children:`readFile`})}),`
|
|
22
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`readFile(file, options?): Promise<ReadFileResult>
|
|
23
|
-
`})}),`
|
|
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()`}),`.`]})]})]})]}),`
|
|
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`}),`.`]}),`
|
|
26
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const result = await readFile(file, {
|
|
27
|
-
mode: "data-url",
|
|
28
|
-
allowedMime: ["application/pdf"],
|
|
29
|
-
maxBytes: 10 * 1024 * 1024,
|
|
30
|
-
signal
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
if (result.mode === "data-url") {
|
|
34
|
-
previewUrl = result.dataUrl;
|
|
35
|
-
}
|
|
36
|
-
`})}),`
|
|
37
|
-
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`ReadFileError`}),` имеет предсказуемый `,(0,c.jsx)(t.code,{children:`code`}),`: `,(0,c.jsx)(t.code,{children:`NO_FILE`}),`, `,(0,c.jsx)(t.code,{children:`MIME_NOT_ALLOWED`}),`, `,(0,c.jsx)(t.code,{children:`FILE_TOO_LARGE`}),`, `,(0,c.jsx)(t.code,{children:`READ_ABORTED`}),` или `,(0,c.jsx)(t.code,{children:`READ_FAILED`}),`. Обрабатывайте его как ожидаемую ошибку выбора файла, а остальные ошибки не скрывайте.`]}),`
|
|
38
|
-
`,(0,c.jsx)(t.h3,{id:`readimagefile`,children:(0,c.jsx)(t.code,{children:`readImageFile`})}),`
|
|
39
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`readImageFile(image, options?): Promise<ReadImageResult>
|
|
40
|
-
`})}),`
|
|
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`}),` декодирование изображения не выполняется.`]}),`
|
|
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`}),`.`]}),`
|
|
43
|
-
`,(0,c.jsxs)(t.h3,{id:`дополнительный-api-file`,children:[`Дополнительный API `,(0,c.jsx)(t.code,{children:`file`})]}),`
|
|
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*`}),`.`]})]})]})]}),`
|
|
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`})]}),`
|
|
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";
|
|
47
|
-
`})}),`
|
|
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 }`}),`.`]})]})]})]}),`
|
|
49
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const mime = detectMimeType("report.pdf", base64);
|
|
50
|
-
const blob = binaryToBlob(base64, mime);
|
|
51
|
-
const objectUrl = URL.createObjectURL(blob);
|
|
52
|
-
|
|
53
|
-
// Владелец UI обязан освободить URL при смене файла/размонтировании.
|
|
54
|
-
URL.revokeObjectURL(objectUrl);
|
|
55
|
-
`})}),`
|
|
56
|
-
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`useBinaryFile`}),` не создаёт object URL и не освобождает его: это lifecycle конкретного preview-компонента. Hook использует `,(0,c.jsx)(t.code,{children:`Blob`}),` и `,(0,c.jsx)(t.code,{children:`atob`}),`, поэтому не вызывайте его в SSR или worker без совместимого polyfill.`]}),`
|
|
57
|
-
`,(0,c.jsxs)(t.h2,{id:`excel-скачивание-xlsx`,children:[(0,c.jsx)(t.code,{children:`excel`}),`: скачивание `,(0,c.jsx)(t.code,{children:`.xlsx`})]}),`
|
|
58
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import {
|
|
59
|
-
buildExcelAutoFilterRef,
|
|
60
|
-
buildExcelSheetData,
|
|
61
|
-
createTableExcelColumn,
|
|
62
|
-
downloadExcelFile,
|
|
63
|
-
downloadExcelWorkbook,
|
|
64
|
-
downloadResolvedExcelTable,
|
|
65
|
-
downloadResolvedExcelWorkbook,
|
|
66
|
-
resolveExcelCellStyleFromState,
|
|
67
|
-
resolveExcelSheetNames
|
|
68
|
-
} from "@ryuzaki13/react-foundation-lib/excel";
|
|
69
|
-
`})}),`
|
|
70
|
-
`,(0,c.jsx)(t.h3,{id:`базовый-экспорт`,children:`Базовый экспорт`}),`
|
|
71
|
-
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`downloadExcelFile({ fileName, columns, rows, autoFilter?, getCellStyle? })`}),` создаёт один лист; `,(0,c.jsx)(t.code,{children:`downloadExcelWorkbook({ fileName, sheets })`}),` — книгу из нескольких листов. Это asynchronous browser API, который инициирует скачивание через `,(0,c.jsx)(t.code,{children:`write-excel-file`}),`.`]}),`
|
|
72
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`await downloadExcelFile({
|
|
73
|
-
fileName: "users.xlsx",
|
|
74
|
-
columns: [
|
|
75
|
-
{ id: "name", header: "Имя", type: String, width: 28 },
|
|
76
|
-
{ id: "createdAt", header: "Дата", type: Date, format: "dd.mm.yyyy" }
|
|
77
|
-
],
|
|
78
|
-
rows: [{ name: "Анна", createdAt: new Date("2026-07-30") }],
|
|
79
|
-
autoFilter: true
|
|
80
|
-
});
|
|
81
|
-
`})}),`
|
|
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.`]})]})]})]}),`
|
|
83
|
-
`,(0,c.jsx)(t.h3,{id:`экспорт-подготовленной-таблицы`,children:`Экспорт подготовленной таблицы`}),`
|
|
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-форматирования.`]}),`
|
|
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`}),` как листы книги.`]})]})]})]}),`
|
|
86
|
-
`,(0,c.jsxs)(t.p,{children:[`Не передавайте в `,(0,c.jsx)(t.code,{children:`rows`}),` отформатированные через `,(0,c.jsx)(t.code,{children:`Intl`}),` строки для числовых и date-столбцов: Excel потеряет сортировку, формулы и формат. Строки создавайте только для действительно текстовых значений.`]}),`
|
|
87
|
-
`,(0,c.jsx)(t.h2,{id:`ограничения`,children:`Ограничения`}),`
|
|
88
|
-
`,(0,c.jsxs)(t.ul,{children:[`
|
|
89
|
-
`,(0,c.jsx)(t.li,{children:`Все три entrypoint ориентированы на DOM/browser; не вызывайте их в server-only коде.`}),`
|
|
90
|
-
`,(0,c.jsx)(t.li,{children:`MIME по имени/сигнатуре не является проверкой безопасности содержимого. Сервер обязан валидировать загружаемые файлы повторно.`}),`
|
|
91
|
-
`,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`download*`}),` имеет пользовательский side effect. Вызывайте его из event handler, а не из render/effect при монтировании.`]}),`
|
|
92
|
-
`]})]})}function s(e={}){let{wrapper:t}={...n(),...e.components};return t?(0,c.jsx)(t,{...e,children:(0,c.jsx)(o,{...e})}):o(e)}var c;function l(){return(l=e((()=>{c=t(),r(),a()})))()}l();export{s as default};
|
|
@@ -1 +0,0 @@
|
|
|
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-Cq8y-8O_.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 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{a as t,i as n,o as r}from"./chunk-IMSF75WX-yvVUwIQZ.js";import{n as i,t as a}from"./chunk-DRQKCCAG-CqE-Zrl9.js";var o;function s(){return(s=e((()=>{a(),t(),o=(0,n(i(),1).default)(2)(async(e,t)=>e===!1?t:r(t))})))()}s();export{o as formatter};
|