@epic-web/workshop-app 5.28.0 → 5.29.0
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/build/client/assets/_-DTLUa7j2.js +2 -0
- package/build/client/assets/_-DTLUa7j2.js.map +1 -0
- package/build/client/assets/{_basePickBy-lB0X5x6U.js → _basePickBy-Bkju64MX.js} +2 -2
- package/build/client/assets/{_basePickBy-lB0X5x6U.js.map → _basePickBy-Bkju64MX.js.map} +1 -1
- package/build/client/assets/{_baseUniq-BOjGYEEK.js → _baseUniq-Cp1g4BpN.js} +2 -2
- package/build/client/assets/{_baseUniq-BOjGYEEK.js.map → _baseUniq-Cp1g4BpN.js.map} +1 -1
- package/build/client/assets/_exerciseNumber-Co7M7Ztw.js +2 -0
- package/build/client/assets/_exerciseNumber-Co7M7Ztw.js.map +1 -0
- package/build/client/assets/_exerciseNumber_._stepNumber-Don1A9mU.js +2 -0
- package/build/client/assets/_exerciseNumber_._stepNumber-Don1A9mU.js.map +1 -0
- package/build/client/assets/_exerciseNumber_.finished-BqsavTTe.js +2 -0
- package/build/client/assets/_exerciseNumber_.finished-BqsavTTe.js.map +1 -0
- package/build/client/assets/_layout-BFto7KzZ.js +2 -0
- package/build/client/assets/_layout-BFto7KzZ.js.map +1 -0
- package/build/client/assets/_layout-BvOre76Q.js +2 -0
- package/build/client/assets/_layout-BvOre76Q.js.map +1 -0
- package/build/client/assets/_layout-CSP6lWdg.js +2 -0
- package/build/client/assets/_layout-CSP6lWdg.js.map +1 -0
- package/build/client/assets/_layout-DDOZBbUH.js +6 -0
- package/build/client/assets/_layout-DDOZBbUH.js.map +1 -0
- package/build/client/assets/accordion-BNzI0wOK.js +2 -0
- package/build/client/assets/{accordion-CpiLc1m2.js.map → accordion-BNzI0wOK.js.map} +1 -1
- package/build/client/assets/account-2uOW4wHE.js +2 -0
- package/build/client/assets/account-2uOW4wHE.js.map +1 -0
- package/build/client/assets/app-DfAmumll.js +2 -0
- package/build/client/assets/app-DfAmumll.js.map +1 -0
- package/build/client/assets/{arc-DmQZ2TPB.js → arc-BgUWL_JM.js} +2 -2
- package/build/client/assets/{arc-DmQZ2TPB.js.map → arc-BgUWL_JM.js.map} +1 -1
- package/build/client/assets/architectureDiagram-IEHRJDOE-VEDL5YJR.js +37 -0
- package/build/client/assets/{architectureDiagram-IEHRJDOE-BqPvrjLh.js.map → architectureDiagram-IEHRJDOE-VEDL5YJR.js.map} +1 -1
- package/build/client/assets/{blockDiagram-JOT3LUYC-D8OFd78i.js → blockDiagram-JOT3LUYC-CJojWhFE.js} +3 -3
- package/build/client/assets/{blockDiagram-JOT3LUYC-D8OFd78i.js.map → blockDiagram-JOT3LUYC-CJojWhFE.js.map} +1 -1
- package/build/client/assets/button-DRpue1NG.js +2 -0
- package/build/client/assets/button-DRpue1NG.js.map +1 -0
- package/build/client/assets/{c4Diagram-VJAJSXHY-DjROjsr_.js → c4Diagram-VJAJSXHY-CDiBL4DZ.js} +3 -3
- package/build/client/assets/{c4Diagram-VJAJSXHY-DjROjsr_.js.map → c4Diagram-VJAJSXHY-CDiBL4DZ.js.map} +1 -1
- package/build/client/assets/channel-CAodiiwJ.js +2 -0
- package/build/client/assets/{channel-DnqeaSfB.js.map → channel-CAodiiwJ.js.map} +1 -1
- package/build/client/assets/{chunk-4BMEZGHF-CNL-bCj2.js → chunk-4BMEZGHF-Dn8dm6h4.js} +2 -2
- package/build/client/assets/{chunk-4BMEZGHF-CNL-bCj2.js.map → chunk-4BMEZGHF-Dn8dm6h4.js.map} +1 -1
- package/build/client/assets/{chunk-A2AXSNBT-PeSyIKDm.js → chunk-A2AXSNBT-4MnudWit.js} +2 -2
- package/build/client/assets/{chunk-A2AXSNBT-PeSyIKDm.js.map → chunk-A2AXSNBT-4MnudWit.js.map} +1 -1
- package/build/client/assets/{chunk-AEK57VVT-B1JqGB_s.js → chunk-AEK57VVT-CqDnkZ4u.js} +2 -2
- package/build/client/assets/{chunk-AEK57VVT-B1JqGB_s.js.map → chunk-AEK57VVT-CqDnkZ4u.js.map} +1 -1
- package/build/client/assets/{chunk-D6G4REZN-C1e0nCkL.js → chunk-D6G4REZN-Brt3as5d.js} +2 -2
- package/build/client/assets/{chunk-D6G4REZN-C1e0nCkL.js.map → chunk-D6G4REZN-Brt3as5d.js.map} +1 -1
- package/build/client/assets/chunk-QMGIS6GS-CTjj1G71.js +44 -0
- package/build/client/assets/chunk-QMGIS6GS-CTjj1G71.js.map +1 -0
- package/build/client/assets/{chunk-RZ5BOZE2-D5pIwNeA.js → chunk-RZ5BOZE2-DRDeFo9p.js} +2 -2
- package/build/client/assets/{chunk-RZ5BOZE2-D5pIwNeA.js.map → chunk-RZ5BOZE2-DRDeFo9p.js.map} +1 -1
- package/build/client/assets/{chunk-XZIHB7SX-FbrNggxP.js → chunk-XZIHB7SX-jEJwVQJf.js} +2 -2
- package/build/client/assets/{chunk-XZIHB7SX-FbrNggxP.js.map → chunk-XZIHB7SX-jEJwVQJf.js.map} +1 -1
- package/build/client/assets/classDiagram-GIVACNV2-H_7kh---.js +2 -0
- package/build/client/assets/{classDiagram-GIVACNV2-cXWx-aYi.js.map → classDiagram-GIVACNV2-H_7kh---.js.map} +1 -1
- package/build/client/assets/classDiagram-v2-COTLJTTW-H_7kh---.js +2 -0
- package/build/client/assets/{classDiagram-v2-COTLJTTW-cXWx-aYi.js.map → classDiagram-v2-COTLJTTW-H_7kh---.js.map} +1 -1
- package/build/client/assets/clone-DRQ0Dnbp.js +2 -0
- package/build/client/assets/{clone-Bj8ANPCv.js.map → clone-DRQ0Dnbp.js.map} +1 -1
- package/build/client/assets/dagre-OKDRZEBW-BPnUPPO5.js +5 -0
- package/build/client/assets/{dagre-OKDRZEBW-DT9ZQRxf.js.map → dagre-OKDRZEBW-BPnUPPO5.js.map} +1 -1
- package/build/client/assets/diagram-SSKATNLV-Bh_ZXdjr.js +44 -0
- package/build/client/assets/{diagram-SSKATNLV-CcKCni9R.js.map → diagram-SSKATNLV-Bh_ZXdjr.js.map} +1 -1
- package/build/client/assets/diagram-VNBRO52H-D5zqYvJa.js +25 -0
- package/build/client/assets/{diagram-VNBRO52H-DWoRAiqO.js.map → diagram-VNBRO52H-D5zqYvJa.js.map} +1 -1
- package/build/client/assets/diff-CQ7A0nZj.js +2 -0
- package/build/client/assets/diff-CQ7A0nZj.js.map +1 -0
- package/build/client/assets/{diff-D5_VwPLF.js → diff-CtGU9cxI.js} +2 -2
- package/build/client/assets/diff-CtGU9cxI.js.map +1 -0
- package/build/client/assets/discord-91JJKnJ5.js +2 -0
- package/build/client/assets/discord-91JJKnJ5.js.map +1 -0
- package/build/client/assets/discord-D4appJa-.js +2 -0
- package/build/client/assets/discord-D4appJa-.js.map +1 -0
- package/build/client/assets/entry.client-uKxtCCau.js +35 -0
- package/build/client/assets/entry.client-uKxtCCau.js.map +1 -0
- package/build/client/assets/{epic-video-CmlkW6Rw.js → epic-video-D_3otytp.js} +3 -3
- package/build/client/assets/{epic-video-CmlkW6Rw.js.map → epic-video-D_3otytp.js.map} +1 -1
- package/build/client/assets/{erDiagram-Q7BY3M3F-DXkEmvKk.js → erDiagram-Q7BY3M3F-BxueSNDf.js} +3 -3
- package/build/client/assets/{erDiagram-Q7BY3M3F-DXkEmvKk.js.map → erDiagram-Q7BY3M3F-BxueSNDf.js.map} +1 -1
- package/build/client/assets/error-boundary-BLyHIxcu.js +2 -0
- package/build/client/assets/error-boundary-BLyHIxcu.js.map +1 -0
- package/build/client/assets/finished-BiOz59BB.js +2 -0
- package/build/client/assets/finished-BiOz59BB.js.map +1 -0
- package/build/client/assets/{flowDiagram-4HSFHLVR-DCodZaNW.js → flowDiagram-4HSFHLVR-CfL3E-FD.js} +3 -3
- package/build/client/assets/{flowDiagram-4HSFHLVR-DCodZaNW.js.map → flowDiagram-4HSFHLVR-CfL3E-FD.js.map} +1 -1
- package/build/client/assets/ganttDiagram-APWFNJXF-DxEqrjXE.js +258 -0
- package/build/client/assets/{ganttDiagram-APWFNJXF-TfB6wYvN.js.map → ganttDiagram-APWFNJXF-DxEqrjXE.js.map} +1 -1
- package/build/client/assets/gitGraphDiagram-7IBYFJ6S-csni0XOM.js +66 -0
- package/build/client/assets/{gitGraphDiagram-7IBYFJ6S-D2NQnQv2.js.map → gitGraphDiagram-7IBYFJ6S-csni0XOM.js.map} +1 -1
- package/build/client/assets/{graph-eJUngNSH.js → graph-DiSezMy_.js} +2 -2
- package/build/client/assets/{graph-eJUngNSH.js.map → graph-DiSezMy_.js.map} +1 -1
- package/build/client/assets/index-AKpqKc27.js +2 -0
- package/build/client/assets/index-AKpqKc27.js.map +1 -0
- package/build/client/assets/index-BGtlU-cD.js +2 -0
- package/build/client/assets/index-BGtlU-cD.js.map +1 -0
- package/build/client/assets/index-BP1ceC2h.js +10 -0
- package/build/client/assets/index-BP1ceC2h.js.map +1 -0
- package/build/client/assets/index-BSJLLJJ3.js +2 -0
- package/build/client/assets/index-BSJLLJJ3.js.map +1 -0
- package/build/client/assets/index-C0Fh_zu0.js +36 -0
- package/build/client/assets/{index-DLC5u33j.js.map → index-C0Fh_zu0.js.map} +1 -1
- package/build/client/assets/index-Co8qgD4k.js +2 -0
- package/build/client/assets/{index-BmMpCvYx.js.map → index-Co8qgD4k.js.map} +1 -1
- package/build/client/assets/index-D0dQzJhy.js +2 -0
- package/build/client/assets/index-D0dQzJhy.js.map +1 -0
- package/build/client/assets/index-DJsDENYs.js +42 -0
- package/build/client/assets/{index-Do-KWT0a.js.map → index-DJsDENYs.js.map} +1 -1
- package/build/client/assets/index-DWV7tDz3.js +3 -0
- package/build/client/assets/{index-DvQyydjU.js.map → index-DWV7tDz3.js.map} +1 -1
- package/build/client/assets/infoDiagram-PH2N3AL5-Dr2v4fFk.js +3 -0
- package/build/client/assets/{infoDiagram-PH2N3AL5-D-nEozcT.js.map → infoDiagram-PH2N3AL5-Dr2v4fFk.js.map} +1 -1
- package/build/client/assets/{journeyDiagram-U35MCT3I-Dc8g8jIX.js → journeyDiagram-U35MCT3I-iX4x5HVK.js} +3 -3
- package/build/client/assets/{journeyDiagram-U35MCT3I-Dc8g8jIX.js.map → journeyDiagram-U35MCT3I-iX4x5HVK.js.map} +1 -1
- package/build/client/assets/jsx-runtime-BjG_zV1W.js +10 -0
- package/build/client/assets/jsx-runtime-BjG_zV1W.js.map +1 -0
- package/build/client/assets/{kanban-definition-NDS4AKOZ-BwwcaZU2.js → kanban-definition-NDS4AKOZ-BwP5uDj3.js} +3 -3
- package/build/client/assets/{kanban-definition-NDS4AKOZ-BwwcaZU2.js.map → kanban-definition-NDS4AKOZ-BwP5uDj3.js.map} +1 -1
- package/build/client/assets/l-CVlzRdDg.js +2 -0
- package/build/client/assets/l-CVlzRdDg.js.map +1 -0
- package/build/client/assets/{layout-BAeq0-Is.js → layout-X8Y3Cf_B.js} +2 -2
- package/build/client/assets/{layout-BAeq0-Is.js.map → layout-X8Y3Cf_B.js.map} +1 -1
- package/build/client/assets/{linear-LWRPSVMz.js → linear-1DrdUlCY.js} +2 -2
- package/build/client/assets/{linear-LWRPSVMz.js.map → linear-1DrdUlCY.js.map} +1 -1
- package/build/client/assets/loading-CXEQXwx8.js +2 -0
- package/build/client/assets/{loading-b1FV2pQh.js.map → loading-CXEQXwx8.js.map} +1 -1
- package/build/client/assets/login-CaIyI5Cd.js +2 -0
- package/build/client/assets/login-CaIyI5Cd.js.map +1 -0
- package/build/client/assets/manifest-953eedfa.js +1 -0
- package/build/client/assets/mdx-DD5XL3ew.js +3 -0
- package/build/client/assets/mdx-DD5XL3ew.js.map +1 -0
- package/build/client/assets/{mermaid.core-q9C-HfFu.js → mermaid.core-D4QVSd3D.js} +5 -5
- package/build/client/assets/{mermaid.core-q9C-HfFu.js.map → mermaid.core-D4QVSd3D.js.map} +1 -1
- package/build/client/assets/mindmap-definition-ALO5MXBD-tl5KlWaB.js +96 -0
- package/build/client/assets/{mindmap-definition-ALO5MXBD-BhzLy0Zl.js.map → mindmap-definition-ALO5MXBD-tl5KlWaB.js.map} +1 -1
- package/build/client/assets/misc-yfWFSwMN.js +2 -0
- package/build/client/assets/{misc-2sBiisF5.js.map → misc-yfWFSwMN.js.map} +1 -1
- package/build/client/assets/nav-chevrons-CokHxUSB.js +2 -0
- package/build/client/assets/nav-chevrons-CokHxUSB.js.map +1 -0
- package/build/client/assets/onboarding-DyrGJaVn.js +2 -0
- package/build/client/assets/onboarding-DyrGJaVn.js.map +1 -0
- package/build/client/assets/online-CFV79-RX.js +2 -0
- package/build/client/assets/{online-DZKJk3C2.js.map → online-CFV79-RX.js.map} +1 -1
- package/build/client/assets/pe-C53l4u-6.js +2 -0
- package/build/client/assets/{pe-BShc2dvc.js.map → pe-C53l4u-6.js.map} +1 -1
- package/build/client/assets/pieDiagram-IB7DONF6-y5DqPNpS.js +31 -0
- package/build/client/assets/{pieDiagram-IB7DONF6-CaTGj8RH.js.map → pieDiagram-IB7DONF6-y5DqPNpS.js.map} +1 -1
- package/build/client/assets/preferences-C2zlOkAS.js +2 -0
- package/build/client/assets/preferences-C2zlOkAS.js.map +1 -0
- package/build/client/assets/{presence-C9bUSihT.js → presence-BoFXYAd7.js} +3 -3
- package/build/client/assets/{presence-C9bUSihT.js.map → presence-BoFXYAd7.js.map} +1 -1
- package/build/client/assets/preview-CE_VqYU4.js +2 -0
- package/build/client/assets/preview-CE_VqYU4.js.map +1 -0
- package/build/client/assets/product-TKJyOyif.js +2 -0
- package/build/client/assets/{product-DJOWNuL-.js.map → product-TKJyOyif.js.map} +1 -1
- package/build/client/assets/progress-CtGAFS2P.js +2 -0
- package/build/client/assets/{progress-BJ4ADF-s.js.map → progress-CtGAFS2P.js.map} +1 -1
- package/build/client/assets/progress-bar-DTYORRrG.js +2 -0
- package/build/client/assets/progress-bar-DTYORRrG.js.map +1 -0
- package/build/client/assets/{quadrantDiagram-7GDLP6J5-B4Od6z6p.js → quadrantDiagram-7GDLP6J5-ymq7Ot51.js} +3 -3
- package/build/client/assets/{quadrantDiagram-7GDLP6J5-B4Od6z6p.js.map → quadrantDiagram-7GDLP6J5-ymq7Ot51.js.map} +1 -1
- package/build/client/assets/{radar-MK3ICKWK-CENXhI0E.js → radar-MK3ICKWK-B8xuvUo7.js} +2 -2
- package/build/client/assets/{radar-MK3ICKWK-CENXhI0E.js.map → radar-MK3ICKWK-B8xuvUo7.js.map} +1 -1
- package/build/client/assets/{requirementDiagram-KVF5MWMF-_w0WuUxy.js → requirementDiagram-KVF5MWMF-B4D4Pi12.js} +3 -3
- package/build/client/assets/{requirementDiagram-KVF5MWMF-_w0WuUxy.js.map → requirementDiagram-KVF5MWMF-B4D4Pi12.js.map} +1 -1
- package/build/client/assets/revalidation-ws-89FLt73b.js +2 -0
- package/build/client/assets/revalidation-ws-89FLt73b.js.map +1 -0
- package/build/client/assets/root-Dd9--OJ3.js +2 -0
- package/build/client/assets/root-Dd9--OJ3.js.map +1 -0
- package/build/client/assets/sankeyDiagram-QLVOVGJD-BAY-vMZj.js +11 -0
- package/build/client/assets/{sankeyDiagram-QLVOVGJD-Bt8556P1.js.map → sankeyDiagram-QLVOVGJD-BAY-vMZj.js.map} +1 -1
- package/build/client/assets/{sequenceDiagram-X6HHIX6F-y2-oW3Ob.js → sequenceDiagram-X6HHIX6F-CDjFTgBk.js} +3 -3
- package/build/client/assets/{sequenceDiagram-X6HHIX6F-y2-oW3Ob.js.map → sequenceDiagram-X6HHIX6F-CDjFTgBk.js.map} +1 -1
- package/build/client/assets/set-playground-DtZ5ki7i.js +2 -0
- package/build/client/assets/set-playground-DtZ5ki7i.js.map +1 -0
- package/build/client/assets/stateDiagram-DGXRK772-DFekjeUZ.js +2 -0
- package/build/client/assets/{stateDiagram-DGXRK772-B3BuD15b.js.map → stateDiagram-DGXRK772-DFekjeUZ.js.map} +1 -1
- package/build/client/assets/stateDiagram-v2-YXO3MK2T-CSkUdkOW.js +2 -0
- package/build/client/assets/{stateDiagram-v2-YXO3MK2T-BzFxWpqR.js.map → stateDiagram-v2-YXO3MK2T-CSkUdkOW.js.map} +1 -1
- package/build/client/assets/support-drzs9wuf.js +2 -0
- package/build/client/assets/support-drzs9wuf.js.map +1 -0
- package/build/client/assets/test-psaYrMGK.js +2 -0
- package/build/client/assets/test-psaYrMGK.js.map +1 -0
- package/build/client/assets/{tests-B1ak2CDI.js → tests-7juFXgcY.js} +3 -3
- package/build/client/assets/tests-7juFXgcY.js.map +1 -0
- package/build/client/assets/{timeline-definition-BDJGKUSR-DUa2yfAV.js → timeline-definition-BDJGKUSR-1WjIsnZH.js} +3 -3
- package/build/client/assets/{timeline-definition-BDJGKUSR-DUa2yfAV.js.map → timeline-definition-BDJGKUSR-1WjIsnZH.js.map} +1 -1
- package/build/client/assets/tooltip-C6xKzWST.js +2 -0
- package/build/client/assets/{tooltip-Bzd6O8vq.js.map → tooltip-C6xKzWST.js.map} +1 -1
- package/build/client/assets/use-event-source-B411g-uF.js +2 -0
- package/build/client/assets/{use-event-source-Dar8h_B8.js.map → use-event-source-B411g-uF.js.map} +1 -1
- package/build/client/assets/user-Dmcddqge.js +2 -0
- package/build/client/assets/user-Dmcddqge.js.map +1 -0
- package/build/client/assets/version-BAECczgY.js +2 -0
- package/build/client/assets/version-BAECczgY.js.map +1 -0
- package/build/client/assets/workshop-config-gFAnGhSV.js +2 -0
- package/build/client/assets/workshop-config-gFAnGhSV.js.map +1 -0
- package/build/client/assets/{xychartDiagram-VJFVF3MP-JztjcODi.js → xychartDiagram-VJFVF3MP-Cp8GqXc6.js} +3 -3
- package/build/client/assets/{xychartDiagram-VJFVF3MP-JztjcODi.js.map → xychartDiagram-VJFVF3MP-Cp8GqXc6.js.map} +1 -1
- package/build/server/index.js +4439 -4072
- package/build/server/index.js.map +1 -1
- package/dist/server/index.js +2 -2
- package/package.json +13 -13
- package/build/client/assets/_-BaHOmd8F.js +0 -2
- package/build/client/assets/_-BaHOmd8F.js.map +0 -1
- package/build/client/assets/_exerciseNumber-Dqi7TgL9.js +0 -2
- package/build/client/assets/_exerciseNumber-Dqi7TgL9.js.map +0 -1
- package/build/client/assets/_exerciseNumber_._stepNumber-DoOFEk-P.js +0 -2
- package/build/client/assets/_exerciseNumber_._stepNumber-DoOFEk-P.js.map +0 -1
- package/build/client/assets/_exerciseNumber_.finished-C5m6M0gM.js +0 -2
- package/build/client/assets/_exerciseNumber_.finished-C5m6M0gM.js.map +0 -1
- package/build/client/assets/_layout-B_BIIcpM.js +0 -2
- package/build/client/assets/_layout-B_BIIcpM.js.map +0 -1
- package/build/client/assets/_layout-B_NrRv0S.js +0 -6
- package/build/client/assets/_layout-B_NrRv0S.js.map +0 -1
- package/build/client/assets/_layout-D7_F6t3x.js +0 -2
- package/build/client/assets/_layout-D7_F6t3x.js.map +0 -1
- package/build/client/assets/_layout-QRe2q83m.js +0 -2
- package/build/client/assets/_layout-QRe2q83m.js.map +0 -1
- package/build/client/assets/accordion-CpiLc1m2.js +0 -2
- package/build/client/assets/account-CbFDiVNd.js +0 -2
- package/build/client/assets/account-CbFDiVNd.js.map +0 -1
- package/build/client/assets/app-BYSDu0vh.js +0 -2
- package/build/client/assets/app-BYSDu0vh.js.map +0 -1
- package/build/client/assets/architectureDiagram-IEHRJDOE-BqPvrjLh.js +0 -37
- package/build/client/assets/button-Dt4EcDfR.js +0 -2
- package/build/client/assets/button-Dt4EcDfR.js.map +0 -1
- package/build/client/assets/channel-DnqeaSfB.js +0 -2
- package/build/client/assets/classDiagram-GIVACNV2-cXWx-aYi.js +0 -2
- package/build/client/assets/classDiagram-v2-COTLJTTW-cXWx-aYi.js +0 -2
- package/build/client/assets/clone-Bj8ANPCv.js +0 -2
- package/build/client/assets/components-5arJTWsS.js +0 -158
- package/build/client/assets/components-5arJTWsS.js.map +0 -1
- package/build/client/assets/dagre-OKDRZEBW-DT9ZQRxf.js +0 -5
- package/build/client/assets/diagram-SSKATNLV-CcKCni9R.js +0 -44
- package/build/client/assets/diagram-VNBRO52H-DWoRAiqO.js +0 -25
- package/build/client/assets/diff-BKR4usVv.js +0 -2
- package/build/client/assets/diff-BKR4usVv.js.map +0 -1
- package/build/client/assets/diff-D5_VwPLF.js.map +0 -1
- package/build/client/assets/discord-BU7RzE6-.js +0 -2
- package/build/client/assets/discord-BU7RzE6-.js.map +0 -1
- package/build/client/assets/discord-ut4t-aMQ.js +0 -2
- package/build/client/assets/discord-ut4t-aMQ.js.map +0 -1
- package/build/client/assets/entry.client-BLUlgPHE.js +0 -44
- package/build/client/assets/entry.client-BLUlgPHE.js.map +0 -1
- package/build/client/assets/error-boundary-B07cWiEy.js +0 -2
- package/build/client/assets/error-boundary-B07cWiEy.js.map +0 -1
- package/build/client/assets/finished-MrsevkkK.js +0 -2
- package/build/client/assets/finished-MrsevkkK.js.map +0 -1
- package/build/client/assets/ganttDiagram-APWFNJXF-TfB6wYvN.js +0 -258
- package/build/client/assets/gitGraphDiagram-7IBYFJ6S-D2NQnQv2.js +0 -66
- package/build/client/assets/index-9euhNa27.js +0 -2
- package/build/client/assets/index-9euhNa27.js.map +0 -1
- package/build/client/assets/index-B8yUFowV.js +0 -2
- package/build/client/assets/index-B8yUFowV.js.map +0 -1
- package/build/client/assets/index-BmMpCvYx.js +0 -2
- package/build/client/assets/index-DLC5u33j.js +0 -36
- package/build/client/assets/index-DPHVg8Eh.js +0 -2
- package/build/client/assets/index-DPHVg8Eh.js.map +0 -1
- package/build/client/assets/index-Do-KWT0a.js +0 -42
- package/build/client/assets/index-Dsusf_Av.js +0 -38
- package/build/client/assets/index-Dsusf_Av.js.map +0 -1
- package/build/client/assets/index-DvQyydjU.js +0 -3
- package/build/client/assets/index-Fw2eA3AF.js +0 -2
- package/build/client/assets/index-Fw2eA3AF.js.map +0 -1
- package/build/client/assets/infoDiagram-PH2N3AL5-D-nEozcT.js +0 -3
- package/build/client/assets/l-ChG-6rmU.js +0 -2
- package/build/client/assets/l-ChG-6rmU.js.map +0 -1
- package/build/client/assets/loading-b1FV2pQh.js +0 -2
- package/build/client/assets/login-Ci7cdiuj.js +0 -2
- package/build/client/assets/login-Ci7cdiuj.js.map +0 -1
- package/build/client/assets/manifest-f9e2a790.js +0 -1
- package/build/client/assets/mdx-C7imFHZE.js +0 -3
- package/build/client/assets/mdx-C7imFHZE.js.map +0 -1
- package/build/client/assets/mindmap-definition-ALO5MXBD-BhzLy0Zl.js +0 -96
- package/build/client/assets/misc-2sBiisF5.js +0 -2
- package/build/client/assets/nav-chevrons-CV-dpXNR.js +0 -2
- package/build/client/assets/nav-chevrons-CV-dpXNR.js.map +0 -1
- package/build/client/assets/onboarding-c9ZuxLsm.js +0 -2
- package/build/client/assets/onboarding-c9ZuxLsm.js.map +0 -1
- package/build/client/assets/online-DZKJk3C2.js +0 -2
- package/build/client/assets/pe-BShc2dvc.js +0 -2
- package/build/client/assets/pieDiagram-IB7DONF6-CaTGj8RH.js +0 -31
- package/build/client/assets/preferences-BkWQyRCq.js +0 -2
- package/build/client/assets/preferences-BkWQyRCq.js.map +0 -1
- package/build/client/assets/preview-CqZGJtsE.js +0 -2
- package/build/client/assets/preview-CqZGJtsE.js.map +0 -1
- package/build/client/assets/product-DJOWNuL-.js +0 -2
- package/build/client/assets/progress-BJ4ADF-s.js +0 -2
- package/build/client/assets/progress-bar-DgnkQxQw.js +0 -2
- package/build/client/assets/progress-bar-DgnkQxQw.js.map +0 -1
- package/build/client/assets/revalidation-ws-B0skixgr.js +0 -2
- package/build/client/assets/revalidation-ws-B0skixgr.js.map +0 -1
- package/build/client/assets/root-C_WG23OF.js +0 -11
- package/build/client/assets/root-C_WG23OF.js.map +0 -1
- package/build/client/assets/sankeyDiagram-QLVOVGJD-Bt8556P1.js +0 -11
- package/build/client/assets/set-playground-DW2Ys-rV.js +0 -2
- package/build/client/assets/set-playground-DW2Ys-rV.js.map +0 -1
- package/build/client/assets/stateDiagram-DGXRK772-B3BuD15b.js +0 -2
- package/build/client/assets/stateDiagram-v2-YXO3MK2T-BzFxWpqR.js +0 -2
- package/build/client/assets/support-Bg0iSyle.js +0 -2
- package/build/client/assets/support-Bg0iSyle.js.map +0 -1
- package/build/client/assets/test-DdUNKtkF.js +0 -2
- package/build/client/assets/test-DdUNKtkF.js.map +0 -1
- package/build/client/assets/tests-B1ak2CDI.js.map +0 -1
- package/build/client/assets/tooltip-Bzd6O8vq.js +0 -2
- package/build/client/assets/use-event-source-Dar8h_B8.js +0 -2
- package/build/client/assets/user-DNSnhqGn.js +0 -2
- package/build/client/assets/user-DNSnhqGn.js.map +0 -1
- package/build/client/assets/version-DriSvNMy.js +0 -2
- package/build/client/assets/version-DriSvNMy.js.map +0 -1
- package/build/client/assets/workshop-config-DchzGYJM.js +0 -2
- package/build/client/assets/workshop-config-DchzGYJM.js.map +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{R as Q,r as o}from"./chunk-QMGIS6GS-CTjj1G71.js";import{r as _e}from"./index-BP1ceC2h.js";import{d as be,h as D,k as ge,j as Ne,u as Pe,R as st,e as Te,A as lt,P as O,f as _,i as Y,V as ct,m as it,D as at,C as dt,l as ut}from"./tooltip-C6xKzWST.js";import{j as u}from"./jsx-runtime-BjG_zV1W.js";import{P as pt,h as ft,u as mt,R as ht,F as vt}from"./index-DJsDENYs.js";function Ee(t,[n,e]){return Math.min(e,Math.max(n,t))}function St(t){const n=t+"CollectionProvider",[e,i]=be(n),[c,p]=e(n,{collectionRef:{current:null},itemMap:new Map}),l=a=>{const{scope:h,children:g}=a,d=Q.useRef(null),m=Q.useRef(new Map).current;return u.jsx(c,{scope:h,itemMap:m,collectionRef:d,children:g})};l.displayName=n;const r=t+"CollectionSlot",s=ge(r),f=Q.forwardRef((a,h)=>{const{scope:g,children:d}=a,m=p(r,g),E=D(h,m.collectionRef);return u.jsx(s,{ref:E,children:d})});f.displayName=r;const S=t+"CollectionItemSlot",x="data-radix-collection-item",P=ge(S),R=Q.forwardRef((a,h)=>{const{scope:g,children:d,...m}=a,E=Q.useRef(null),N=D(h,E),j=p(S,g);return Q.useEffect(()=>(j.itemMap.set(E,{ref:E,...m}),()=>void j.itemMap.delete(E))),u.jsx(P,{[x]:"",ref:N,children:d})});R.displayName=S;function y(a){const h=p(t+"CollectionConsumer",a);return Q.useCallback(()=>{const d=h.collectionRef.current;if(!d)return[];const m=Array.from(d.querySelectorAll(`[${x}]`));return Array.from(h.itemMap.values()).sort((j,b)=>m.indexOf(j.ref.current)-m.indexOf(b.ref.current))},[h.collectionRef,h.itemMap])}return[{Provider:l,Slot:f,ItemSlot:R},y,i]}var gt=o.createContext(void 0);function xt(t){const n=o.useContext(gt);return t||n||"ltr"}function wt(t){const n=o.useRef({value:t,previous:t});return o.useMemo(()=>(n.current.value!==t&&(n.current.previous=n.current.value,n.current.value=t),n.current.previous),[t])}var Ct=[" ","Enter","ArrowUp","ArrowDown"],It=[" ","Enter"],ee="Select",[ae,de,yt]=St(ee),[ne,Yt]=be(ee,[yt,Ne]),ue=Ne(),[Tt,q]=ne(ee),[Rt,Pt]=ne(ee),Me=t=>{const{__scopeSelect:n,children:e,open:i,defaultOpen:c,onOpenChange:p,value:l,defaultValue:r,onValueChange:s,dir:f,name:S,autoComplete:x,disabled:P,required:R,form:y}=t,a=ue(n),[h,g]=o.useState(null),[d,m]=o.useState(null),[E,N]=o.useState(!1),j=xt(f),[b,k]=Pe({prop:i,defaultProp:c??!1,onChange:p,caller:ee}),[K,X]=Pe({prop:l,defaultProp:r,onChange:s,caller:ee}),B=o.useRef(null),H=h?y||!!h.closest("form"):!0,[G,F]=o.useState(new Set),U=Array.from(G).map(M=>M.props.value).join(";");return u.jsx(st,{...a,children:u.jsxs(Tt,{required:R,scope:n,trigger:h,onTriggerChange:g,valueNode:d,onValueNodeChange:m,valueNodeHasChildren:E,onValueNodeHasChildrenChange:N,contentId:Te(),value:K,onValueChange:X,open:b,onOpenChange:k,dir:j,triggerPointerDownPosRef:B,disabled:P,children:[u.jsx(ae.Provider,{scope:n,children:u.jsx(Rt,{scope:t.__scopeSelect,onNativeOptionAdd:o.useCallback(M=>{F(V=>new Set(V).add(M))},[]),onNativeOptionRemove:o.useCallback(M=>{F(V=>{const W=new Set(V);return W.delete(M),W})},[]),children:e})}),H?u.jsxs(tt,{"aria-hidden":!0,required:R,tabIndex:-1,name:S,autoComplete:x,value:K,onChange:M=>X(M.target.value),disabled:P,form:y,children:[K===void 0?u.jsx("option",{value:""}):null,Array.from(G)]},U):null]})})};Me.displayName=ee;var Ae="SelectTrigger",Oe=o.forwardRef((t,n)=>{const{__scopeSelect:e,disabled:i=!1,...c}=t,p=ue(e),l=q(Ae,e),r=l.disabled||i,s=D(n,l.onTriggerChange),f=de(e),S=o.useRef("touch"),[x,P,R]=nt(a=>{const h=f().filter(m=>!m.disabled),g=h.find(m=>m.value===l.value),d=rt(h,a,g);d!==void 0&&l.onValueChange(d.value)}),y=a=>{r||(l.onOpenChange(!0),R()),a&&(l.triggerPointerDownPosRef.current={x:Math.round(a.pageX),y:Math.round(a.pageY)})};return u.jsx(lt,{asChild:!0,...p,children:u.jsx(O.button,{type:"button",role:"combobox","aria-controls":l.contentId,"aria-expanded":l.open,"aria-required":l.required,"aria-autocomplete":"none",dir:l.dir,"data-state":l.open?"open":"closed",disabled:r,"data-disabled":r?"":void 0,"data-placeholder":ot(l.value)?"":void 0,...c,ref:s,onClick:_(c.onClick,a=>{a.currentTarget.focus(),S.current!=="mouse"&&y(a)}),onPointerDown:_(c.onPointerDown,a=>{S.current=a.pointerType;const h=a.target;h.hasPointerCapture(a.pointerId)&&h.releasePointerCapture(a.pointerId),a.button===0&&a.ctrlKey===!1&&a.pointerType==="mouse"&&(y(a),a.preventDefault())}),onKeyDown:_(c.onKeyDown,a=>{const h=x.current!=="";!(a.ctrlKey||a.altKey||a.metaKey)&&a.key.length===1&&P(a.key),!(h&&a.key===" ")&&Ct.includes(a.key)&&(y(),a.preventDefault())})})})});Oe.displayName=Ae;var De="SelectValue",Le=o.forwardRef((t,n)=>{const{__scopeSelect:e,className:i,style:c,children:p,placeholder:l="",...r}=t,s=q(De,e),{onValueNodeHasChildrenChange:f}=s,S=p!==void 0,x=D(n,s.onValueNodeChange);return Y(()=>{f(S)},[f,S]),u.jsx(O.span,{...r,ref:x,style:{pointerEvents:"none"},children:ot(s.value)?u.jsx(u.Fragment,{children:l}):p})});Le.displayName=De;var Et="SelectIcon",je=o.forwardRef((t,n)=>{const{__scopeSelect:e,children:i,...c}=t;return u.jsx(O.span,{"aria-hidden":!0,...c,ref:n,children:i||"▼"})});je.displayName=Et;var _t="SelectPortal",ke=t=>u.jsx(pt,{asChild:!0,...t});ke.displayName=_t;var te="SelectContent",Ve=o.forwardRef((t,n)=>{const e=q(te,t.__scopeSelect),[i,c]=o.useState();if(Y(()=>{c(new DocumentFragment)},[]),!e.open){const p=i;return p?_e.createPortal(u.jsx(Be,{scope:t.__scopeSelect,children:u.jsx(ae.Slot,{scope:t.__scopeSelect,children:u.jsx("div",{children:t.children})})}),p):null}return u.jsx(He,{...t,ref:n})});Ve.displayName=te;var L=10,[Be,$]=ne(te),bt="SelectContentImpl",Nt=ge("SelectContent.RemoveScroll"),He=o.forwardRef((t,n)=>{const{__scopeSelect:e,position:i="item-aligned",onCloseAutoFocus:c,onEscapeKeyDown:p,onPointerDownOutside:l,side:r,sideOffset:s,align:f,alignOffset:S,arrowPadding:x,collisionBoundary:P,collisionPadding:R,sticky:y,hideWhenDetached:a,avoidCollisions:h,...g}=t,d=q(te,e),[m,E]=o.useState(null),[N,j]=o.useState(null),b=D(n,v=>E(v)),[k,K]=o.useState(null),[X,B]=o.useState(null),H=de(e),[G,F]=o.useState(!1),U=o.useRef(!1);o.useEffect(()=>{if(m)return ft(m)},[m]),mt();const M=o.useCallback(v=>{const[T,...A]=H().map(C=>C.ref.current),[I]=A.slice(-1),w=document.activeElement;for(const C of v)if(C===w||(C==null||C.scrollIntoView({block:"nearest"}),C===T&&N&&(N.scrollTop=0),C===I&&N&&(N.scrollTop=N.scrollHeight),C==null||C.focus(),document.activeElement!==w))return},[H,N]),V=o.useCallback(()=>M([k,m]),[M,k,m]);o.useEffect(()=>{G&&V()},[G,V]);const{onOpenChange:W,triggerPointerDownPosRef:z}=d;o.useEffect(()=>{if(m){let v={x:0,y:0};const T=I=>{var w,C;v={x:Math.abs(Math.round(I.pageX)-(((w=z.current)==null?void 0:w.x)??0)),y:Math.abs(Math.round(I.pageY)-(((C=z.current)==null?void 0:C.y)??0))}},A=I=>{v.x<=10&&v.y<=10?I.preventDefault():m.contains(I.target)||W(!1),document.removeEventListener("pointermove",T),z.current=null};return z.current!==null&&(document.addEventListener("pointermove",T),document.addEventListener("pointerup",A,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",T),document.removeEventListener("pointerup",A,{capture:!0})}}},[m,W,z]),o.useEffect(()=>{const v=()=>W(!1);return window.addEventListener("blur",v),window.addEventListener("resize",v),()=>{window.removeEventListener("blur",v),window.removeEventListener("resize",v)}},[W]);const[pe,le]=nt(v=>{const T=H().filter(w=>!w.disabled),A=T.find(w=>w.ref.current===document.activeElement),I=rt(T,v,A);I&&setTimeout(()=>I.ref.current.focus())}),fe=o.useCallback((v,T,A)=>{const I=!U.current&&!A;(d.value!==void 0&&d.value===T||I)&&(K(v),I&&(U.current=!0))},[d.value]),me=o.useCallback(()=>m==null?void 0:m.focus(),[m]),oe=o.useCallback((v,T,A)=>{const I=!U.current&&!A;(d.value!==void 0&&d.value===T||I)&&B(v)},[d.value]),ce=i==="popper"?xe:Fe,re=ce===xe?{side:r,sideOffset:s,align:f,alignOffset:S,arrowPadding:x,collisionBoundary:P,collisionPadding:R,sticky:y,hideWhenDetached:a,avoidCollisions:h}:{};return u.jsx(Be,{scope:e,content:m,viewport:N,onViewportChange:j,itemRefCallback:fe,selectedItem:k,onItemLeave:me,itemTextRefCallback:oe,focusSelectedItem:V,selectedItemText:X,position:i,isPositioned:G,searchRef:pe,children:u.jsx(ht,{as:Nt,allowPinchZoom:!0,children:u.jsx(vt,{asChild:!0,trapped:d.open,onMountAutoFocus:v=>{v.preventDefault()},onUnmountAutoFocus:_(c,v=>{var T;(T=d.trigger)==null||T.focus({preventScroll:!0}),v.preventDefault()}),children:u.jsx(at,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:p,onPointerDownOutside:l,onFocusOutside:v=>v.preventDefault(),onDismiss:()=>d.onOpenChange(!1),children:u.jsx(ce,{role:"listbox",id:d.contentId,"data-state":d.open?"open":"closed",dir:d.dir,onContextMenu:v=>v.preventDefault(),...g,...re,onPlaced:()=>F(!0),ref:b,style:{display:"flex",flexDirection:"column",outline:"none",...g.style},onKeyDown:_(g.onKeyDown,v=>{const T=v.ctrlKey||v.altKey||v.metaKey;if(v.key==="Tab"&&v.preventDefault(),!T&&v.key.length===1&&le(v.key),["ArrowUp","ArrowDown","Home","End"].includes(v.key)){let I=H().filter(w=>!w.disabled).map(w=>w.ref.current);if(["ArrowUp","End"].includes(v.key)&&(I=I.slice().reverse()),["ArrowUp","ArrowDown"].includes(v.key)){const w=v.target,C=I.indexOf(w);I=I.slice(C+1)}setTimeout(()=>M(I)),v.preventDefault()}})})})})})})});He.displayName=bt;var Mt="SelectItemAlignedPosition",Fe=o.forwardRef((t,n)=>{const{__scopeSelect:e,onPlaced:i,...c}=t,p=q(te,e),l=$(te,e),[r,s]=o.useState(null),[f,S]=o.useState(null),x=D(n,b=>S(b)),P=de(e),R=o.useRef(!1),y=o.useRef(!0),{viewport:a,selectedItem:h,selectedItemText:g,focusSelectedItem:d}=l,m=o.useCallback(()=>{if(p.trigger&&p.valueNode&&r&&f&&a&&h&&g){const b=p.trigger.getBoundingClientRect(),k=f.getBoundingClientRect(),K=p.valueNode.getBoundingClientRect(),X=g.getBoundingClientRect();if(p.dir!=="rtl"){const w=X.left-k.left,C=K.left-w,Z=b.left-C,J=b.width+Z,he=Math.max(J,k.width),ve=window.innerWidth-L,Se=Ee(C,[L,Math.max(L,ve-he)]);r.style.minWidth=J+"px",r.style.left=Se+"px"}else{const w=k.right-X.right,C=window.innerWidth-K.right-w,Z=window.innerWidth-b.right-C,J=b.width+Z,he=Math.max(J,k.width),ve=window.innerWidth-L,Se=Ee(C,[L,Math.max(L,ve-he)]);r.style.minWidth=J+"px",r.style.right=Se+"px"}const B=P(),H=window.innerHeight-L*2,G=a.scrollHeight,F=window.getComputedStyle(f),U=parseInt(F.borderTopWidth,10),M=parseInt(F.paddingTop,10),V=parseInt(F.borderBottomWidth,10),W=parseInt(F.paddingBottom,10),z=U+M+G+W+V,pe=Math.min(h.offsetHeight*5,z),le=window.getComputedStyle(a),fe=parseInt(le.paddingTop,10),me=parseInt(le.paddingBottom,10),oe=b.top+b.height/2-L,ce=H-oe,re=h.offsetHeight/2,v=h.offsetTop+re,T=U+M+v,A=z-T;if(T<=oe){const w=B.length>0&&h===B[B.length-1].ref.current;r.style.bottom="0px";const C=f.clientHeight-a.offsetTop-a.offsetHeight,Z=Math.max(ce,re+(w?me:0)+C+V),J=T+Z;r.style.height=J+"px"}else{const w=B.length>0&&h===B[0].ref.current;r.style.top="0px";const Z=Math.max(oe,U+a.offsetTop+(w?fe:0)+re)+A;r.style.height=Z+"px",a.scrollTop=T-oe+a.offsetTop}r.style.margin=`${L}px 0`,r.style.minHeight=pe+"px",r.style.maxHeight=H+"px",i==null||i(),requestAnimationFrame(()=>R.current=!0)}},[P,p.trigger,p.valueNode,r,f,a,h,g,p.dir,i]);Y(()=>m(),[m]);const[E,N]=o.useState();Y(()=>{f&&N(window.getComputedStyle(f).zIndex)},[f]);const j=o.useCallback(b=>{b&&y.current===!0&&(m(),d==null||d(),y.current=!1)},[m,d]);return u.jsx(Ot,{scope:e,contentWrapper:r,shouldExpandOnScrollRef:R,onScrollButtonChange:j,children:u.jsx("div",{ref:s,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:E},children:u.jsx(O.div,{...c,ref:x,style:{boxSizing:"border-box",maxHeight:"100%",...c.style}})})})});Fe.displayName=Mt;var At="SelectPopperPosition",xe=o.forwardRef((t,n)=>{const{__scopeSelect:e,align:i="start",collisionPadding:c=L,...p}=t,l=ue(e);return u.jsx(dt,{...l,...p,ref:n,align:i,collisionPadding:c,style:{boxSizing:"border-box",...p.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});xe.displayName=At;var[Ot,Re]=ne(te,{}),we="SelectViewport",Ue=o.forwardRef((t,n)=>{const{__scopeSelect:e,nonce:i,...c}=t,p=$(we,e),l=Re(we,e),r=D(n,p.onViewportChange),s=o.useRef(0);return u.jsxs(u.Fragment,{children:[u.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:i}),u.jsx(ae.Slot,{scope:e,children:u.jsx(O.div,{"data-radix-select-viewport":"",role:"presentation",...c,ref:r,style:{position:"relative",flex:1,overflow:"hidden auto",...c.style},onScroll:_(c.onScroll,f=>{const S=f.currentTarget,{contentWrapper:x,shouldExpandOnScrollRef:P}=l;if(P!=null&&P.current&&x){const R=Math.abs(s.current-S.scrollTop);if(R>0){const y=window.innerHeight-L*2,a=parseFloat(x.style.minHeight),h=parseFloat(x.style.height),g=Math.max(a,h);if(g<y){const d=g+R,m=Math.min(y,d),E=d-m;x.style.height=m+"px",x.style.bottom==="0px"&&(S.scrollTop=E>0?E:0,x.style.justifyContent="flex-end")}}}s.current=S.scrollTop})})})]})});Ue.displayName=we;var We="SelectGroup",[Dt,Lt]=ne(We),Ke=o.forwardRef((t,n)=>{const{__scopeSelect:e,...i}=t,c=Te();return u.jsx(Dt,{scope:e,id:c,children:u.jsx(O.div,{role:"group","aria-labelledby":c,...i,ref:n})})});Ke.displayName=We;var Ge="SelectLabel",ze=o.forwardRef((t,n)=>{const{__scopeSelect:e,...i}=t,c=Lt(Ge,e);return u.jsx(O.div,{id:c.id,...i,ref:n})});ze.displayName=Ge;var ie="SelectItem",[jt,Ye]=ne(ie),qe=o.forwardRef((t,n)=>{const{__scopeSelect:e,value:i,disabled:c=!1,textValue:p,...l}=t,r=q(ie,e),s=$(ie,e),f=r.value===i,[S,x]=o.useState(p??""),[P,R]=o.useState(!1),y=D(n,d=>{var m;return(m=s.itemRefCallback)==null?void 0:m.call(s,d,i,c)}),a=Te(),h=o.useRef("touch"),g=()=>{c||(r.onValueChange(i),r.onOpenChange(!1))};if(i==="")throw new Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return u.jsx(jt,{scope:e,value:i,disabled:c,textId:a,isSelected:f,onItemTextChange:o.useCallback(d=>{x(m=>m||((d==null?void 0:d.textContent)??"").trim())},[]),children:u.jsx(ae.ItemSlot,{scope:e,value:i,disabled:c,textValue:S,children:u.jsx(O.div,{role:"option","aria-labelledby":a,"data-highlighted":P?"":void 0,"aria-selected":f&&P,"data-state":f?"checked":"unchecked","aria-disabled":c||void 0,"data-disabled":c?"":void 0,tabIndex:c?void 0:-1,...l,ref:y,onFocus:_(l.onFocus,()=>R(!0)),onBlur:_(l.onBlur,()=>R(!1)),onClick:_(l.onClick,()=>{h.current!=="mouse"&&g()}),onPointerUp:_(l.onPointerUp,()=>{h.current==="mouse"&&g()}),onPointerDown:_(l.onPointerDown,d=>{h.current=d.pointerType}),onPointerMove:_(l.onPointerMove,d=>{var m;h.current=d.pointerType,c?(m=s.onItemLeave)==null||m.call(s):h.current==="mouse"&&d.currentTarget.focus({preventScroll:!0})}),onPointerLeave:_(l.onPointerLeave,d=>{var m;d.currentTarget===document.activeElement&&((m=s.onItemLeave)==null||m.call(s))}),onKeyDown:_(l.onKeyDown,d=>{var E;((E=s.searchRef)==null?void 0:E.current)!==""&&d.key===" "||(It.includes(d.key)&&g(),d.key===" "&&d.preventDefault())})})})})});qe.displayName=ie;var se="SelectItemText",$e=o.forwardRef((t,n)=>{const{__scopeSelect:e,className:i,style:c,...p}=t,l=q(se,e),r=$(se,e),s=Ye(se,e),f=Pt(se,e),[S,x]=o.useState(null),P=D(n,g=>x(g),s.onItemTextChange,g=>{var d;return(d=r.itemTextRefCallback)==null?void 0:d.call(r,g,s.value,s.disabled)}),R=S==null?void 0:S.textContent,y=o.useMemo(()=>u.jsx("option",{value:s.value,disabled:s.disabled,children:R},s.value),[s.disabled,s.value,R]),{onNativeOptionAdd:a,onNativeOptionRemove:h}=f;return Y(()=>(a(y),()=>h(y)),[a,h,y]),u.jsxs(u.Fragment,{children:[u.jsx(O.span,{id:s.textId,...p,ref:P}),s.isSelected&&l.valueNode&&!l.valueNodeHasChildren?_e.createPortal(p.children,l.valueNode):null]})});$e.displayName=se;var Xe="SelectItemIndicator",Ze=o.forwardRef((t,n)=>{const{__scopeSelect:e,...i}=t;return Ye(Xe,e).isSelected?u.jsx(O.span,{"aria-hidden":!0,...i,ref:n}):null});Ze.displayName=Xe;var Ce="SelectScrollUpButton",Je=o.forwardRef((t,n)=>{const e=$(Ce,t.__scopeSelect),i=Re(Ce,t.__scopeSelect),[c,p]=o.useState(!1),l=D(n,i.onScrollButtonChange);return Y(()=>{if(e.viewport&&e.isPositioned){let r=function(){const f=s.scrollTop>0;p(f)};const s=e.viewport;return r(),s.addEventListener("scroll",r),()=>s.removeEventListener("scroll",r)}},[e.viewport,e.isPositioned]),c?u.jsx(et,{...t,ref:l,onAutoScroll:()=>{const{viewport:r,selectedItem:s}=e;r&&s&&(r.scrollTop=r.scrollTop-s.offsetHeight)}}):null});Je.displayName=Ce;var Ie="SelectScrollDownButton",Qe=o.forwardRef((t,n)=>{const e=$(Ie,t.__scopeSelect),i=Re(Ie,t.__scopeSelect),[c,p]=o.useState(!1),l=D(n,i.onScrollButtonChange);return Y(()=>{if(e.viewport&&e.isPositioned){let r=function(){const f=s.scrollHeight-s.clientHeight,S=Math.ceil(s.scrollTop)<f;p(S)};const s=e.viewport;return r(),s.addEventListener("scroll",r),()=>s.removeEventListener("scroll",r)}},[e.viewport,e.isPositioned]),c?u.jsx(et,{...t,ref:l,onAutoScroll:()=>{const{viewport:r,selectedItem:s}=e;r&&s&&(r.scrollTop=r.scrollTop+s.offsetHeight)}}):null});Qe.displayName=Ie;var et=o.forwardRef((t,n)=>{const{__scopeSelect:e,onAutoScroll:i,...c}=t,p=$("SelectScrollButton",e),l=o.useRef(null),r=de(e),s=o.useCallback(()=>{l.current!==null&&(window.clearInterval(l.current),l.current=null)},[]);return o.useEffect(()=>()=>s(),[s]),Y(()=>{var S;const f=r().find(x=>x.ref.current===document.activeElement);(S=f==null?void 0:f.ref.current)==null||S.scrollIntoView({block:"nearest"})},[r]),u.jsx(O.div,{"aria-hidden":!0,...c,ref:n,style:{flexShrink:0,...c.style},onPointerDown:_(c.onPointerDown,()=>{l.current===null&&(l.current=window.setInterval(i,50))}),onPointerMove:_(c.onPointerMove,()=>{var f;(f=p.onItemLeave)==null||f.call(p),l.current===null&&(l.current=window.setInterval(i,50))}),onPointerLeave:_(c.onPointerLeave,()=>{s()})})}),kt="SelectSeparator",Vt=o.forwardRef((t,n)=>{const{__scopeSelect:e,...i}=t;return u.jsx(O.div,{"aria-hidden":!0,...i,ref:n})});Vt.displayName=kt;var ye="SelectArrow",Bt=o.forwardRef((t,n)=>{const{__scopeSelect:e,...i}=t,c=ue(e),p=q(ye,e),l=$(ye,e);return p.open&&l.position==="popper"?u.jsx(ut,{...c,...i,ref:n}):null});Bt.displayName=ye;var Ht="SelectBubbleInput",tt=o.forwardRef(({__scopeSelect:t,value:n,...e},i)=>{const c=o.useRef(null),p=D(i,c),l=wt(n);return o.useEffect(()=>{const r=c.current;if(!r)return;const s=window.HTMLSelectElement.prototype,S=Object.getOwnPropertyDescriptor(s,"value").set;if(l!==n&&S){const x=new Event("change",{bubbles:!0});S.call(r,n),r.dispatchEvent(x)}},[l,n]),u.jsx(O.select,{...e,style:{...ct,...e.style},ref:p,defaultValue:n})});tt.displayName=Ht;function ot(t){return t===""||t===void 0}function nt(t){const n=it(t),e=o.useRef(""),i=o.useRef(0),c=o.useCallback(l=>{const r=e.current+l;n(r),function s(f){e.current=f,window.clearTimeout(i.current),f!==""&&(i.current=window.setTimeout(()=>s(""),1e3))}(r)},[n]),p=o.useCallback(()=>{e.current="",window.clearTimeout(i.current)},[]);return o.useEffect(()=>()=>window.clearTimeout(i.current),[]),[e,c,p]}function rt(t,n,e){const c=n.length>1&&Array.from(n).every(f=>f===n[0])?n[0]:n,p=e?t.indexOf(e):-1;let l=Ft(t,Math.max(p,0));c.length===1&&(l=l.filter(f=>f!==e));const s=l.find(f=>f.textValue.toLowerCase().startsWith(c.toLowerCase()));return s!==e?s:void 0}function Ft(t,n){return t.map((e,i)=>t[(n+i)%t.length])}var qt=Me,$t=Oe,Xt=Le,Zt=je,Jt=ke,Qt=Ve,eo=Ue,to=Ke,oo=ze,no=qe,ro=$e,so=Ze,lo=Je,co=Qe;export{Qt as C,to as G,Zt as I,oo as L,Jt as P,qt as R,lo as S,$t as T,Xt as V,eo as a,co as b,no as c,ro as d,so as e,St as f,xt as u};
|
|
2
|
+
//# sourceMappingURL=index-Co8qgD4k.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-BmMpCvYx.js","sources":["../../../../../node_modules/@radix-ui/number/dist/index.mjs","../../../../../node_modules/@radix-ui/react-collection/dist/index.mjs","../../../../../node_modules/@radix-ui/react-direction/dist/index.mjs","../../../../../node_modules/@radix-ui/react-use-previous/dist/index.mjs","../../../../../node_modules/@radix-ui/react-select/dist/index.mjs"],"sourcesContent":["// packages/core/number/src/number.ts\nfunction clamp(value, [min, max]) {\n return Math.min(max, Math.max(min, value));\n}\nexport {\n clamp\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/collection-legacy.tsx\nimport React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createCollection(name) {\n const PROVIDER_NAME = name + \"CollectionProvider\";\n const [createCollectionContext, createCollectionScope] = createContextScope(PROVIDER_NAME);\n const [CollectionProviderImpl, useCollectionContext] = createCollectionContext(\n PROVIDER_NAME,\n { collectionRef: { current: null }, itemMap: /* @__PURE__ */ new Map() }\n );\n const CollectionProvider = (props) => {\n const { scope, children } = props;\n const ref = React.useRef(null);\n const itemMap = React.useRef(/* @__PURE__ */ new Map()).current;\n return /* @__PURE__ */ jsx(CollectionProviderImpl, { scope, itemMap, collectionRef: ref, children });\n };\n CollectionProvider.displayName = PROVIDER_NAME;\n const COLLECTION_SLOT_NAME = name + \"CollectionSlot\";\n const CollectionSlotImpl = createSlot(COLLECTION_SLOT_NAME);\n const CollectionSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = useComposedRefs(forwardedRef, context.collectionRef);\n return /* @__PURE__ */ jsx(CollectionSlotImpl, { ref: composedRefs, children });\n }\n );\n CollectionSlot.displayName = COLLECTION_SLOT_NAME;\n const ITEM_SLOT_NAME = name + \"CollectionItemSlot\";\n const ITEM_DATA_ATTR = \"data-radix-collection-item\";\n const CollectionItemSlotImpl = createSlot(ITEM_SLOT_NAME);\n const CollectionItemSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children, ...itemData } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n React.useEffect(() => {\n context.itemMap.set(ref, { ref, ...itemData });\n return () => void context.itemMap.delete(ref);\n });\n return /* @__PURE__ */ jsx(CollectionItemSlotImpl, { ...{ [ITEM_DATA_ATTR]: \"\" }, ref: composedRefs, children });\n }\n );\n CollectionItemSlot.displayName = ITEM_SLOT_NAME;\n function useCollection(scope) {\n const context = useCollectionContext(name + \"CollectionConsumer\", scope);\n const getItems = React.useCallback(() => {\n const collectionNode = context.collectionRef.current;\n if (!collectionNode) return [];\n const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));\n const items = Array.from(context.itemMap.values());\n const orderedItems = items.sort(\n (a, b) => orderedNodes.indexOf(a.ref.current) - orderedNodes.indexOf(b.ref.current)\n );\n return orderedItems;\n }, [context.collectionRef, context.itemMap]);\n return getItems;\n }\n return [\n { Provider: CollectionProvider, Slot: CollectionSlot, ItemSlot: CollectionItemSlot },\n useCollection,\n createCollectionScope\n ];\n}\n\n// src/collection.tsx\nimport React2 from \"react\";\nimport { createContextScope as createContextScope2 } from \"@radix-ui/react-context\";\nimport { useComposedRefs as useComposedRefs2 } from \"@radix-ui/react-compose-refs\";\nimport { createSlot as createSlot2 } from \"@radix-ui/react-slot\";\n\n// src/ordered-dictionary.ts\nvar __instanciated = /* @__PURE__ */ new WeakMap();\nvar OrderedDict = class _OrderedDict extends Map {\n #keys;\n constructor(entries) {\n super(entries);\n this.#keys = [...super.keys()];\n __instanciated.set(this, true);\n }\n set(key, value) {\n if (__instanciated.get(this)) {\n if (this.has(key)) {\n this.#keys[this.#keys.indexOf(key)] = key;\n } else {\n this.#keys.push(key);\n }\n }\n super.set(key, value);\n return this;\n }\n insert(index, key, value) {\n const has = this.has(key);\n const length = this.#keys.length;\n const relativeIndex = toSafeInteger(index);\n let actualIndex = relativeIndex >= 0 ? relativeIndex : length + relativeIndex;\n const safeIndex = actualIndex < 0 || actualIndex >= length ? -1 : actualIndex;\n if (safeIndex === this.size || has && safeIndex === this.size - 1 || safeIndex === -1) {\n this.set(key, value);\n return this;\n }\n const size = this.size + (has ? 0 : 1);\n if (relativeIndex < 0) {\n actualIndex++;\n }\n const keys = [...this.#keys];\n let nextValue;\n let shouldSkip = false;\n for (let i = actualIndex; i < size; i++) {\n if (actualIndex === i) {\n let nextKey = keys[i];\n if (keys[i] === key) {\n nextKey = keys[i + 1];\n }\n if (has) {\n this.delete(key);\n }\n nextValue = this.get(nextKey);\n this.set(key, value);\n } else {\n if (!shouldSkip && keys[i - 1] === key) {\n shouldSkip = true;\n }\n const currentKey = keys[shouldSkip ? i : i - 1];\n const currentValue = nextValue;\n nextValue = this.get(currentKey);\n this.delete(currentKey);\n this.set(currentKey, currentValue);\n }\n }\n return this;\n }\n with(index, key, value) {\n const copy = new _OrderedDict(this);\n copy.insert(index, key, value);\n return copy;\n }\n before(key) {\n const index = this.#keys.indexOf(key) - 1;\n if (index < 0) {\n return void 0;\n }\n return this.entryAt(index);\n }\n /**\n * Sets a new key-value pair at the position before the given key.\n */\n setBefore(key, newKey, value) {\n const index = this.#keys.indexOf(key);\n if (index === -1) {\n return this;\n }\n return this.insert(index, newKey, value);\n }\n after(key) {\n let index = this.#keys.indexOf(key);\n index = index === -1 || index === this.size - 1 ? -1 : index + 1;\n if (index === -1) {\n return void 0;\n }\n return this.entryAt(index);\n }\n /**\n * Sets a new key-value pair at the position after the given key.\n */\n setAfter(key, newKey, value) {\n const index = this.#keys.indexOf(key);\n if (index === -1) {\n return this;\n }\n return this.insert(index + 1, newKey, value);\n }\n first() {\n return this.entryAt(0);\n }\n last() {\n return this.entryAt(-1);\n }\n clear() {\n this.#keys = [];\n return super.clear();\n }\n delete(key) {\n const deleted = super.delete(key);\n if (deleted) {\n this.#keys.splice(this.#keys.indexOf(key), 1);\n }\n return deleted;\n }\n deleteAt(index) {\n const key = this.keyAt(index);\n if (key !== void 0) {\n return this.delete(key);\n }\n return false;\n }\n at(index) {\n const key = at(this.#keys, index);\n if (key !== void 0) {\n return this.get(key);\n }\n }\n entryAt(index) {\n const key = at(this.#keys, index);\n if (key !== void 0) {\n return [key, this.get(key)];\n }\n }\n indexOf(key) {\n return this.#keys.indexOf(key);\n }\n keyAt(index) {\n return at(this.#keys, index);\n }\n from(key, offset) {\n const index = this.indexOf(key);\n if (index === -1) {\n return void 0;\n }\n let dest = index + offset;\n if (dest < 0) dest = 0;\n if (dest >= this.size) dest = this.size - 1;\n return this.at(dest);\n }\n keyFrom(key, offset) {\n const index = this.indexOf(key);\n if (index === -1) {\n return void 0;\n }\n let dest = index + offset;\n if (dest < 0) dest = 0;\n if (dest >= this.size) dest = this.size - 1;\n return this.keyAt(dest);\n }\n find(predicate, thisArg) {\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return entry;\n }\n index++;\n }\n return void 0;\n }\n findIndex(predicate, thisArg) {\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return index;\n }\n index++;\n }\n return -1;\n }\n filter(predicate, thisArg) {\n const entries = [];\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n entries.push(entry);\n }\n index++;\n }\n return new _OrderedDict(entries);\n }\n map(callbackfn, thisArg) {\n const entries = [];\n let index = 0;\n for (const entry of this) {\n entries.push([entry[0], Reflect.apply(callbackfn, thisArg, [entry, index, this])]);\n index++;\n }\n return new _OrderedDict(entries);\n }\n reduce(...args) {\n const [callbackfn, initialValue] = args;\n let index = 0;\n let accumulator = initialValue ?? this.at(0);\n for (const entry of this) {\n if (index === 0 && args.length === 1) {\n accumulator = entry;\n } else {\n accumulator = Reflect.apply(callbackfn, this, [accumulator, entry, index, this]);\n }\n index++;\n }\n return accumulator;\n }\n reduceRight(...args) {\n const [callbackfn, initialValue] = args;\n let accumulator = initialValue ?? this.at(-1);\n for (let index = this.size - 1; index >= 0; index--) {\n const entry = this.at(index);\n if (index === this.size - 1 && args.length === 1) {\n accumulator = entry;\n } else {\n accumulator = Reflect.apply(callbackfn, this, [accumulator, entry, index, this]);\n }\n }\n return accumulator;\n }\n toSorted(compareFn) {\n const entries = [...this.entries()].sort(compareFn);\n return new _OrderedDict(entries);\n }\n toReversed() {\n const reversed = new _OrderedDict();\n for (let index = this.size - 1; index >= 0; index--) {\n const key = this.keyAt(index);\n const element = this.get(key);\n reversed.set(key, element);\n }\n return reversed;\n }\n toSpliced(...args) {\n const entries = [...this.entries()];\n entries.splice(...args);\n return new _OrderedDict(entries);\n }\n slice(start, end) {\n const result = new _OrderedDict();\n let stop = this.size - 1;\n if (start === void 0) {\n return result;\n }\n if (start < 0) {\n start = start + this.size;\n }\n if (end !== void 0 && end > 0) {\n stop = end - 1;\n }\n for (let index = start; index <= stop; index++) {\n const key = this.keyAt(index);\n const element = this.get(key);\n result.set(key, element);\n }\n return result;\n }\n every(predicate, thisArg) {\n let index = 0;\n for (const entry of this) {\n if (!Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return false;\n }\n index++;\n }\n return true;\n }\n some(predicate, thisArg) {\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return true;\n }\n index++;\n }\n return false;\n }\n};\nfunction at(array, index) {\n if (\"at\" in Array.prototype) {\n return Array.prototype.at.call(array, index);\n }\n const actualIndex = toSafeIndex(array, index);\n return actualIndex === -1 ? void 0 : array[actualIndex];\n}\nfunction toSafeIndex(array, index) {\n const length = array.length;\n const relativeIndex = toSafeInteger(index);\n const actualIndex = relativeIndex >= 0 ? relativeIndex : length + relativeIndex;\n return actualIndex < 0 || actualIndex >= length ? -1 : actualIndex;\n}\nfunction toSafeInteger(number) {\n return number !== number || number === 0 ? 0 : Math.trunc(number);\n}\n\n// src/collection.tsx\nimport { jsx as jsx2 } from \"react/jsx-runtime\";\nfunction createCollection2(name) {\n const PROVIDER_NAME = name + \"CollectionProvider\";\n const [createCollectionContext, createCollectionScope] = createContextScope2(PROVIDER_NAME);\n const [CollectionContextProvider, useCollectionContext] = createCollectionContext(\n PROVIDER_NAME,\n {\n collectionElement: null,\n collectionRef: { current: null },\n collectionRefObject: { current: null },\n itemMap: new OrderedDict(),\n setItemMap: () => void 0\n }\n );\n const CollectionProvider = ({ state, ...props }) => {\n return state ? /* @__PURE__ */ jsx2(CollectionProviderImpl, { ...props, state }) : /* @__PURE__ */ jsx2(CollectionInit, { ...props });\n };\n CollectionProvider.displayName = PROVIDER_NAME;\n const CollectionInit = (props) => {\n const state = useInitCollection();\n return /* @__PURE__ */ jsx2(CollectionProviderImpl, { ...props, state });\n };\n CollectionInit.displayName = PROVIDER_NAME + \"Init\";\n const CollectionProviderImpl = (props) => {\n const { scope, children, state } = props;\n const ref = React2.useRef(null);\n const [collectionElement, setCollectionElement] = React2.useState(\n null\n );\n const composeRefs = useComposedRefs2(ref, setCollectionElement);\n const [itemMap, setItemMap] = state;\n React2.useEffect(() => {\n if (!collectionElement) return;\n const observer = getChildListObserver(() => {\n });\n observer.observe(collectionElement, {\n childList: true,\n subtree: true\n });\n return () => {\n observer.disconnect();\n };\n }, [collectionElement]);\n return /* @__PURE__ */ jsx2(\n CollectionContextProvider,\n {\n scope,\n itemMap,\n setItemMap,\n collectionRef: composeRefs,\n collectionRefObject: ref,\n collectionElement,\n children\n }\n );\n };\n CollectionProviderImpl.displayName = PROVIDER_NAME + \"Impl\";\n const COLLECTION_SLOT_NAME = name + \"CollectionSlot\";\n const CollectionSlotImpl = createSlot2(COLLECTION_SLOT_NAME);\n const CollectionSlot = React2.forwardRef(\n (props, forwardedRef) => {\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = useComposedRefs2(forwardedRef, context.collectionRef);\n return /* @__PURE__ */ jsx2(CollectionSlotImpl, { ref: composedRefs, children });\n }\n );\n CollectionSlot.displayName = COLLECTION_SLOT_NAME;\n const ITEM_SLOT_NAME = name + \"CollectionItemSlot\";\n const ITEM_DATA_ATTR = \"data-radix-collection-item\";\n const CollectionItemSlotImpl = createSlot2(ITEM_SLOT_NAME);\n const CollectionItemSlot = React2.forwardRef(\n (props, forwardedRef) => {\n const { scope, children, ...itemData } = props;\n const ref = React2.useRef(null);\n const [element, setElement] = React2.useState(null);\n const composedRefs = useComposedRefs2(forwardedRef, ref, setElement);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n const { setItemMap } = context;\n const itemDataRef = React2.useRef(itemData);\n if (!shallowEqual(itemDataRef.current, itemData)) {\n itemDataRef.current = itemData;\n }\n const memoizedItemData = itemDataRef.current;\n React2.useEffect(() => {\n const itemData2 = memoizedItemData;\n setItemMap((map) => {\n if (!element) {\n return map;\n }\n if (!map.has(element)) {\n map.set(element, { ...itemData2, element });\n return map.toSorted(sortByDocumentPosition);\n }\n return map.set(element, { ...itemData2, element }).toSorted(sortByDocumentPosition);\n });\n return () => {\n setItemMap((map) => {\n if (!element || !map.has(element)) {\n return map;\n }\n map.delete(element);\n return new OrderedDict(map);\n });\n };\n }, [element, memoizedItemData, setItemMap]);\n return /* @__PURE__ */ jsx2(CollectionItemSlotImpl, { ...{ [ITEM_DATA_ATTR]: \"\" }, ref: composedRefs, children });\n }\n );\n CollectionItemSlot.displayName = ITEM_SLOT_NAME;\n function useInitCollection() {\n return React2.useState(new OrderedDict());\n }\n function useCollection(scope) {\n const { itemMap } = useCollectionContext(name + \"CollectionConsumer\", scope);\n return itemMap;\n }\n const functions = {\n createCollectionScope,\n useCollection,\n useInitCollection\n };\n return [\n { Provider: CollectionProvider, Slot: CollectionSlot, ItemSlot: CollectionItemSlot },\n functions\n ];\n}\nfunction shallowEqual(a, b) {\n if (a === b) return true;\n if (typeof a !== \"object\" || typeof b !== \"object\") return false;\n if (a == null || b == null) return false;\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n if (keysA.length !== keysB.length) return false;\n for (const key of keysA) {\n if (!Object.prototype.hasOwnProperty.call(b, key)) return false;\n if (a[key] !== b[key]) return false;\n }\n return true;\n}\nfunction isElementPreceding(a, b) {\n return !!(b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_PRECEDING);\n}\nfunction sortByDocumentPosition(a, b) {\n return !a[1].element || !b[1].element ? 0 : isElementPreceding(a[1].element, b[1].element) ? -1 : 1;\n}\nfunction getChildListObserver(callback) {\n const observer = new MutationObserver((mutationsList) => {\n for (const mutation of mutationsList) {\n if (mutation.type === \"childList\") {\n callback();\n return;\n }\n }\n });\n return observer;\n}\nexport {\n createCollection,\n createCollection2 as unstable_createCollection\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/direction/src/direction.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DirectionContext = React.createContext(void 0);\nvar DirectionProvider = (props) => {\n const { dir, children } = props;\n return /* @__PURE__ */ jsx(DirectionContext.Provider, { value: dir, children });\n};\nfunction useDirection(localDir) {\n const globalDir = React.useContext(DirectionContext);\n return localDir || globalDir || \"ltr\";\n}\nvar Provider = DirectionProvider;\nexport {\n DirectionProvider,\n Provider,\n useDirection\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-previous/src/use-previous.tsx\nimport * as React from \"react\";\nfunction usePrevious(value) {\n const ref = React.useRef({ value, previous: value });\n return React.useMemo(() => {\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [value]);\n}\nexport {\n usePrevious\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/select.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { clamp } from \"@radix-ui/number\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { VISUALLY_HIDDEN_STYLES } from \"@radix-ui/react-visually-hidden\";\nimport { hideOthers } from \"aria-hidden\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar OPEN_KEYS = [\" \", \"Enter\", \"ArrowUp\", \"ArrowDown\"];\nvar SELECTION_KEYS = [\" \", \"Enter\"];\nvar SELECT_NAME = \"Select\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(SELECT_NAME);\nvar [createSelectContext, createSelectScope] = createContextScope(SELECT_NAME, [\n createCollectionScope,\n createPopperScope\n]);\nvar usePopperScope = createPopperScope();\nvar [SelectProvider, useSelectContext] = createSelectContext(SELECT_NAME);\nvar [SelectNativeOptionsProvider, useSelectNativeOptionsContext] = createSelectContext(SELECT_NAME);\nvar Select = (props) => {\n const {\n __scopeSelect,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n value: valueProp,\n defaultValue,\n onValueChange,\n dir,\n name,\n autoComplete,\n disabled,\n required,\n form\n } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const [trigger, setTrigger] = React.useState(null);\n const [valueNode, setValueNode] = React.useState(null);\n const [valueNodeHasChildren, setValueNodeHasChildren] = React.useState(false);\n const direction = useDirection(dir);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: SELECT_NAME\n });\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue,\n onChange: onValueChange,\n caller: SELECT_NAME\n });\n const triggerPointerDownPosRef = React.useRef(null);\n const isFormControl = trigger ? form || !!trigger.closest(\"form\") : true;\n const [nativeOptionsSet, setNativeOptionsSet] = React.useState(/* @__PURE__ */ new Set());\n const nativeSelectKey = Array.from(nativeOptionsSet).map((option) => option.props.value).join(\";\");\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsxs(\n SelectProvider,\n {\n required,\n scope: __scopeSelect,\n trigger,\n onTriggerChange: setTrigger,\n valueNode,\n onValueNodeChange: setValueNode,\n valueNodeHasChildren,\n onValueNodeHasChildrenChange: setValueNodeHasChildren,\n contentId: useId(),\n value,\n onValueChange: setValue,\n open,\n onOpenChange: setOpen,\n dir: direction,\n triggerPointerDownPosRef,\n disabled,\n children: [\n /* @__PURE__ */ jsx(Collection.Provider, { scope: __scopeSelect, children: /* @__PURE__ */ jsx(\n SelectNativeOptionsProvider,\n {\n scope: props.__scopeSelect,\n onNativeOptionAdd: React.useCallback((option) => {\n setNativeOptionsSet((prev) => new Set(prev).add(option));\n }, []),\n onNativeOptionRemove: React.useCallback((option) => {\n setNativeOptionsSet((prev) => {\n const optionsSet = new Set(prev);\n optionsSet.delete(option);\n return optionsSet;\n });\n }, []),\n children\n }\n ) }),\n isFormControl ? /* @__PURE__ */ jsxs(\n SelectBubbleInput,\n {\n \"aria-hidden\": true,\n required,\n tabIndex: -1,\n name,\n autoComplete,\n value,\n onChange: (event) => setValue(event.target.value),\n disabled,\n form,\n children: [\n value === void 0 ? /* @__PURE__ */ jsx(\"option\", { value: \"\" }) : null,\n Array.from(nativeOptionsSet)\n ]\n },\n nativeSelectKey\n ) : null\n ]\n }\n ) });\n};\nSelect.displayName = SELECT_NAME;\nvar TRIGGER_NAME = \"SelectTrigger\";\nvar SelectTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, disabled = false, ...triggerProps } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const context = useSelectContext(TRIGGER_NAME, __scopeSelect);\n const isDisabled = context.disabled || disabled;\n const composedRefs = useComposedRefs(forwardedRef, context.onTriggerChange);\n const getItems = useCollection(__scopeSelect);\n const pointerTypeRef = React.useRef(\"touch\");\n const [searchRef, handleTypeaheadSearch, resetTypeahead] = useTypeaheadSearch((search) => {\n const enabledItems = getItems().filter((item) => !item.disabled);\n const currentItem = enabledItems.find((item) => item.value === context.value);\n const nextItem = findNextItem(enabledItems, search, currentItem);\n if (nextItem !== void 0) {\n context.onValueChange(nextItem.value);\n }\n });\n const handleOpen = (pointerEvent) => {\n if (!isDisabled) {\n context.onOpenChange(true);\n resetTypeahead();\n }\n if (pointerEvent) {\n context.triggerPointerDownPosRef.current = {\n x: Math.round(pointerEvent.pageX),\n y: Math.round(pointerEvent.pageY)\n };\n }\n };\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"combobox\",\n \"aria-controls\": context.contentId,\n \"aria-expanded\": context.open,\n \"aria-required\": context.required,\n \"aria-autocomplete\": \"none\",\n dir: context.dir,\n \"data-state\": context.open ? \"open\" : \"closed\",\n disabled: isDisabled,\n \"data-disabled\": isDisabled ? \"\" : void 0,\n \"data-placeholder\": shouldShowPlaceholder(context.value) ? \"\" : void 0,\n ...triggerProps,\n ref: composedRefs,\n onClick: composeEventHandlers(triggerProps.onClick, (event) => {\n event.currentTarget.focus();\n if (pointerTypeRef.current !== \"mouse\") {\n handleOpen(event);\n }\n }),\n onPointerDown: composeEventHandlers(triggerProps.onPointerDown, (event) => {\n pointerTypeRef.current = event.pointerType;\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n }\n if (event.button === 0 && event.ctrlKey === false && event.pointerType === \"mouse\") {\n handleOpen(event);\n event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(triggerProps.onKeyDown, (event) => {\n const isTypingAhead = searchRef.current !== \"\";\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);\n if (isTypingAhead && event.key === \" \") return;\n if (OPEN_KEYS.includes(event.key)) {\n handleOpen();\n event.preventDefault();\n }\n })\n }\n ) });\n }\n);\nSelectTrigger.displayName = TRIGGER_NAME;\nvar VALUE_NAME = \"SelectValue\";\nvar SelectValue = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, className, style, children, placeholder = \"\", ...valueProps } = props;\n const context = useSelectContext(VALUE_NAME, __scopeSelect);\n const { onValueNodeHasChildrenChange } = context;\n const hasChildren = children !== void 0;\n const composedRefs = useComposedRefs(forwardedRef, context.onValueNodeChange);\n useLayoutEffect(() => {\n onValueNodeHasChildrenChange(hasChildren);\n }, [onValueNodeHasChildrenChange, hasChildren]);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...valueProps,\n ref: composedRefs,\n style: { pointerEvents: \"none\" },\n children: shouldShowPlaceholder(context.value) ? /* @__PURE__ */ jsx(Fragment, { children: placeholder }) : children\n }\n );\n }\n);\nSelectValue.displayName = VALUE_NAME;\nvar ICON_NAME = \"SelectIcon\";\nvar SelectIcon = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, children, ...iconProps } = props;\n return /* @__PURE__ */ jsx(Primitive.span, { \"aria-hidden\": true, ...iconProps, ref: forwardedRef, children: children || \"\\u25BC\" });\n }\n);\nSelectIcon.displayName = ICON_NAME;\nvar PORTAL_NAME = \"SelectPortal\";\nvar SelectPortal = (props) => {\n return /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, ...props });\n};\nSelectPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"SelectContent\";\nvar SelectContent = React.forwardRef(\n (props, forwardedRef) => {\n const context = useSelectContext(CONTENT_NAME, props.__scopeSelect);\n const [fragment, setFragment] = React.useState();\n useLayoutEffect(() => {\n setFragment(new DocumentFragment());\n }, []);\n if (!context.open) {\n const frag = fragment;\n return frag ? ReactDOM.createPortal(\n /* @__PURE__ */ jsx(SelectContentProvider, { scope: props.__scopeSelect, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeSelect, children: /* @__PURE__ */ jsx(\"div\", { children: props.children }) }) }),\n frag\n ) : null;\n }\n return /* @__PURE__ */ jsx(SelectContentImpl, { ...props, ref: forwardedRef });\n }\n);\nSelectContent.displayName = CONTENT_NAME;\nvar CONTENT_MARGIN = 10;\nvar [SelectContentProvider, useSelectContentContext] = createSelectContext(CONTENT_NAME);\nvar CONTENT_IMPL_NAME = \"SelectContentImpl\";\nvar Slot = createSlot(\"SelectContent.RemoveScroll\");\nvar SelectContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSelect,\n position = \"item-aligned\",\n onCloseAutoFocus,\n onEscapeKeyDown,\n onPointerDownOutside,\n //\n // PopperContent props\n side,\n sideOffset,\n align,\n alignOffset,\n arrowPadding,\n collisionBoundary,\n collisionPadding,\n sticky,\n hideWhenDetached,\n avoidCollisions,\n //\n ...contentProps\n } = props;\n const context = useSelectContext(CONTENT_NAME, __scopeSelect);\n const [content, setContent] = React.useState(null);\n const [viewport, setViewport] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContent(node));\n const [selectedItem, setSelectedItem] = React.useState(null);\n const [selectedItemText, setSelectedItemText] = React.useState(\n null\n );\n const getItems = useCollection(__scopeSelect);\n const [isPositioned, setIsPositioned] = React.useState(false);\n const firstValidItemFoundRef = React.useRef(false);\n React.useEffect(() => {\n if (content) return hideOthers(content);\n }, [content]);\n useFocusGuards();\n const focusFirst = React.useCallback(\n (candidates) => {\n const [firstItem, ...restItems] = getItems().map((item) => item.ref.current);\n const [lastItem] = restItems.slice(-1);\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate?.scrollIntoView({ block: \"nearest\" });\n if (candidate === firstItem && viewport) viewport.scrollTop = 0;\n if (candidate === lastItem && viewport) viewport.scrollTop = viewport.scrollHeight;\n candidate?.focus();\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n },\n [getItems, viewport]\n );\n const focusSelectedItem = React.useCallback(\n () => focusFirst([selectedItem, content]),\n [focusFirst, selectedItem, content]\n );\n React.useEffect(() => {\n if (isPositioned) {\n focusSelectedItem();\n }\n }, [isPositioned, focusSelectedItem]);\n const { onOpenChange, triggerPointerDownPosRef } = context;\n React.useEffect(() => {\n if (content) {\n let pointerMoveDelta = { x: 0, y: 0 };\n const handlePointerMove = (event) => {\n pointerMoveDelta = {\n x: Math.abs(Math.round(event.pageX) - (triggerPointerDownPosRef.current?.x ?? 0)),\n y: Math.abs(Math.round(event.pageY) - (triggerPointerDownPosRef.current?.y ?? 0))\n };\n };\n const handlePointerUp = (event) => {\n if (pointerMoveDelta.x <= 10 && pointerMoveDelta.y <= 10) {\n event.preventDefault();\n } else {\n if (!content.contains(event.target)) {\n onOpenChange(false);\n }\n }\n document.removeEventListener(\"pointermove\", handlePointerMove);\n triggerPointerDownPosRef.current = null;\n };\n if (triggerPointerDownPosRef.current !== null) {\n document.addEventListener(\"pointermove\", handlePointerMove);\n document.addEventListener(\"pointerup\", handlePointerUp, { capture: true, once: true });\n }\n return () => {\n document.removeEventListener(\"pointermove\", handlePointerMove);\n document.removeEventListener(\"pointerup\", handlePointerUp, { capture: true });\n };\n }\n }, [content, onOpenChange, triggerPointerDownPosRef]);\n React.useEffect(() => {\n const close = () => onOpenChange(false);\n window.addEventListener(\"blur\", close);\n window.addEventListener(\"resize\", close);\n return () => {\n window.removeEventListener(\"blur\", close);\n window.removeEventListener(\"resize\", close);\n };\n }, [onOpenChange]);\n const [searchRef, handleTypeaheadSearch] = useTypeaheadSearch((search) => {\n const enabledItems = getItems().filter((item) => !item.disabled);\n const currentItem = enabledItems.find((item) => item.ref.current === document.activeElement);\n const nextItem = findNextItem(enabledItems, search, currentItem);\n if (nextItem) {\n setTimeout(() => nextItem.ref.current.focus());\n }\n });\n const itemRefCallback = React.useCallback(\n (node, value, disabled) => {\n const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;\n const isSelectedItem = context.value !== void 0 && context.value === value;\n if (isSelectedItem || isFirstValidItem) {\n setSelectedItem(node);\n if (isFirstValidItem) firstValidItemFoundRef.current = true;\n }\n },\n [context.value]\n );\n const handleItemLeave = React.useCallback(() => content?.focus(), [content]);\n const itemTextRefCallback = React.useCallback(\n (node, value, disabled) => {\n const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;\n const isSelectedItem = context.value !== void 0 && context.value === value;\n if (isSelectedItem || isFirstValidItem) {\n setSelectedItemText(node);\n }\n },\n [context.value]\n );\n const SelectPosition = position === \"popper\" ? SelectPopperPosition : SelectItemAlignedPosition;\n const popperContentProps = SelectPosition === SelectPopperPosition ? {\n side,\n sideOffset,\n align,\n alignOffset,\n arrowPadding,\n collisionBoundary,\n collisionPadding,\n sticky,\n hideWhenDetached,\n avoidCollisions\n } : {};\n return /* @__PURE__ */ jsx(\n SelectContentProvider,\n {\n scope: __scopeSelect,\n content,\n viewport,\n onViewportChange: setViewport,\n itemRefCallback,\n selectedItem,\n onItemLeave: handleItemLeave,\n itemTextRefCallback,\n focusSelectedItem,\n selectedItemText,\n position,\n isPositioned,\n searchRef,\n children: /* @__PURE__ */ jsx(RemoveScroll, { as: Slot, allowPinchZoom: true, children: /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n trapped: context.open,\n onMountAutoFocus: (event) => {\n event.preventDefault();\n },\n onUnmountAutoFocus: composeEventHandlers(onCloseAutoFocus, (event) => {\n context.trigger?.focus({ preventScroll: true });\n event.preventDefault();\n }),\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents: true,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside: (event) => event.preventDefault(),\n onDismiss: () => context.onOpenChange(false),\n children: /* @__PURE__ */ jsx(\n SelectPosition,\n {\n role: \"listbox\",\n id: context.contentId,\n \"data-state\": context.open ? \"open\" : \"closed\",\n dir: context.dir,\n onContextMenu: (event) => event.preventDefault(),\n ...contentProps,\n ...popperContentProps,\n onPlaced: () => setIsPositioned(true),\n ref: composedRefs,\n style: {\n // flex layout so we can place the scroll buttons properly\n display: \"flex\",\n flexDirection: \"column\",\n // reset the outline by default as the content MAY get focused\n outline: \"none\",\n ...contentProps.style\n },\n onKeyDown: composeEventHandlers(contentProps.onKeyDown, (event) => {\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n if (event.key === \"Tab\") event.preventDefault();\n if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);\n if ([\"ArrowUp\", \"ArrowDown\", \"Home\", \"End\"].includes(event.key)) {\n const items = getItems().filter((item) => !item.disabled);\n let candidateNodes = items.map((item) => item.ref.current);\n if ([\"ArrowUp\", \"End\"].includes(event.key)) {\n candidateNodes = candidateNodes.slice().reverse();\n }\n if ([\"ArrowUp\", \"ArrowDown\"].includes(event.key)) {\n const currentElement = event.target;\n const currentIndex = candidateNodes.indexOf(currentElement);\n candidateNodes = candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(() => focusFirst(candidateNodes));\n event.preventDefault();\n }\n })\n }\n )\n }\n )\n }\n ) })\n }\n );\n }\n);\nSelectContentImpl.displayName = CONTENT_IMPL_NAME;\nvar ITEM_ALIGNED_POSITION_NAME = \"SelectItemAlignedPosition\";\nvar SelectItemAlignedPosition = React.forwardRef((props, forwardedRef) => {\n const { __scopeSelect, onPlaced, ...popperProps } = props;\n const context = useSelectContext(CONTENT_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(CONTENT_NAME, __scopeSelect);\n const [contentWrapper, setContentWrapper] = React.useState(null);\n const [content, setContent] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContent(node));\n const getItems = useCollection(__scopeSelect);\n const shouldExpandOnScrollRef = React.useRef(false);\n const shouldRepositionRef = React.useRef(true);\n const { viewport, selectedItem, selectedItemText, focusSelectedItem } = contentContext;\n const position = React.useCallback(() => {\n if (context.trigger && context.valueNode && contentWrapper && content && viewport && selectedItem && selectedItemText) {\n const triggerRect = context.trigger.getBoundingClientRect();\n const contentRect = content.getBoundingClientRect();\n const valueNodeRect = context.valueNode.getBoundingClientRect();\n const itemTextRect = selectedItemText.getBoundingClientRect();\n if (context.dir !== \"rtl\") {\n const itemTextOffset = itemTextRect.left - contentRect.left;\n const left = valueNodeRect.left - itemTextOffset;\n const leftDelta = triggerRect.left - left;\n const minContentWidth = triggerRect.width + leftDelta;\n const contentWidth = Math.max(minContentWidth, contentRect.width);\n const rightEdge = window.innerWidth - CONTENT_MARGIN;\n const clampedLeft = clamp(left, [\n CONTENT_MARGIN,\n // Prevents the content from going off the starting edge of the\n // viewport. It may still go off the ending edge, but this can be\n // controlled by the user since they may want to manage overflow in a\n // specific way.\n // https://github.com/radix-ui/primitives/issues/2049\n Math.max(CONTENT_MARGIN, rightEdge - contentWidth)\n ]);\n contentWrapper.style.minWidth = minContentWidth + \"px\";\n contentWrapper.style.left = clampedLeft + \"px\";\n } else {\n const itemTextOffset = contentRect.right - itemTextRect.right;\n const right = window.innerWidth - valueNodeRect.right - itemTextOffset;\n const rightDelta = window.innerWidth - triggerRect.right - right;\n const minContentWidth = triggerRect.width + rightDelta;\n const contentWidth = Math.max(minContentWidth, contentRect.width);\n const leftEdge = window.innerWidth - CONTENT_MARGIN;\n const clampedRight = clamp(right, [\n CONTENT_MARGIN,\n Math.max(CONTENT_MARGIN, leftEdge - contentWidth)\n ]);\n contentWrapper.style.minWidth = minContentWidth + \"px\";\n contentWrapper.style.right = clampedRight + \"px\";\n }\n const items = getItems();\n const availableHeight = window.innerHeight - CONTENT_MARGIN * 2;\n const itemsHeight = viewport.scrollHeight;\n const contentStyles = window.getComputedStyle(content);\n const contentBorderTopWidth = parseInt(contentStyles.borderTopWidth, 10);\n const contentPaddingTop = parseInt(contentStyles.paddingTop, 10);\n const contentBorderBottomWidth = parseInt(contentStyles.borderBottomWidth, 10);\n const contentPaddingBottom = parseInt(contentStyles.paddingBottom, 10);\n const fullContentHeight = contentBorderTopWidth + contentPaddingTop + itemsHeight + contentPaddingBottom + contentBorderBottomWidth;\n const minContentHeight = Math.min(selectedItem.offsetHeight * 5, fullContentHeight);\n const viewportStyles = window.getComputedStyle(viewport);\n const viewportPaddingTop = parseInt(viewportStyles.paddingTop, 10);\n const viewportPaddingBottom = parseInt(viewportStyles.paddingBottom, 10);\n const topEdgeToTriggerMiddle = triggerRect.top + triggerRect.height / 2 - CONTENT_MARGIN;\n const triggerMiddleToBottomEdge = availableHeight - topEdgeToTriggerMiddle;\n const selectedItemHalfHeight = selectedItem.offsetHeight / 2;\n const itemOffsetMiddle = selectedItem.offsetTop + selectedItemHalfHeight;\n const contentTopToItemMiddle = contentBorderTopWidth + contentPaddingTop + itemOffsetMiddle;\n const itemMiddleToContentBottom = fullContentHeight - contentTopToItemMiddle;\n const willAlignWithoutTopOverflow = contentTopToItemMiddle <= topEdgeToTriggerMiddle;\n if (willAlignWithoutTopOverflow) {\n const isLastItem = items.length > 0 && selectedItem === items[items.length - 1].ref.current;\n contentWrapper.style.bottom = \"0px\";\n const viewportOffsetBottom = content.clientHeight - viewport.offsetTop - viewport.offsetHeight;\n const clampedTriggerMiddleToBottomEdge = Math.max(\n triggerMiddleToBottomEdge,\n selectedItemHalfHeight + // viewport might have padding bottom, include it to avoid a scrollable viewport\n (isLastItem ? viewportPaddingBottom : 0) + viewportOffsetBottom + contentBorderBottomWidth\n );\n const height = contentTopToItemMiddle + clampedTriggerMiddleToBottomEdge;\n contentWrapper.style.height = height + \"px\";\n } else {\n const isFirstItem = items.length > 0 && selectedItem === items[0].ref.current;\n contentWrapper.style.top = \"0px\";\n const clampedTopEdgeToTriggerMiddle = Math.max(\n topEdgeToTriggerMiddle,\n contentBorderTopWidth + viewport.offsetTop + // viewport might have padding top, include it to avoid a scrollable viewport\n (isFirstItem ? viewportPaddingTop : 0) + selectedItemHalfHeight\n );\n const height = clampedTopEdgeToTriggerMiddle + itemMiddleToContentBottom;\n contentWrapper.style.height = height + \"px\";\n viewport.scrollTop = contentTopToItemMiddle - topEdgeToTriggerMiddle + viewport.offsetTop;\n }\n contentWrapper.style.margin = `${CONTENT_MARGIN}px 0`;\n contentWrapper.style.minHeight = minContentHeight + \"px\";\n contentWrapper.style.maxHeight = availableHeight + \"px\";\n onPlaced?.();\n requestAnimationFrame(() => shouldExpandOnScrollRef.current = true);\n }\n }, [\n getItems,\n context.trigger,\n context.valueNode,\n contentWrapper,\n content,\n viewport,\n selectedItem,\n selectedItemText,\n context.dir,\n onPlaced\n ]);\n useLayoutEffect(() => position(), [position]);\n const [contentZIndex, setContentZIndex] = React.useState();\n useLayoutEffect(() => {\n if (content) setContentZIndex(window.getComputedStyle(content).zIndex);\n }, [content]);\n const handleScrollButtonChange = React.useCallback(\n (node) => {\n if (node && shouldRepositionRef.current === true) {\n position();\n focusSelectedItem?.();\n shouldRepositionRef.current = false;\n }\n },\n [position, focusSelectedItem]\n );\n return /* @__PURE__ */ jsx(\n SelectViewportProvider,\n {\n scope: __scopeSelect,\n contentWrapper,\n shouldExpandOnScrollRef,\n onScrollButtonChange: handleScrollButtonChange,\n children: /* @__PURE__ */ jsx(\n \"div\",\n {\n ref: setContentWrapper,\n style: {\n display: \"flex\",\n flexDirection: \"column\",\n position: \"fixed\",\n zIndex: contentZIndex\n },\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...popperProps,\n ref: composedRefs,\n style: {\n // When we get the height of the content, it includes borders. If we were to set\n // the height without having `boxSizing: 'border-box'` it would be too big.\n boxSizing: \"border-box\",\n // We need to ensure the content doesn't get taller than the wrapper\n maxHeight: \"100%\",\n ...popperProps.style\n }\n }\n )\n }\n )\n }\n );\n});\nSelectItemAlignedPosition.displayName = ITEM_ALIGNED_POSITION_NAME;\nvar POPPER_POSITION_NAME = \"SelectPopperPosition\";\nvar SelectPopperPosition = React.forwardRef((props, forwardedRef) => {\n const {\n __scopeSelect,\n align = \"start\",\n collisionPadding = CONTENT_MARGIN,\n ...popperProps\n } = props;\n const popperScope = usePopperScope(__scopeSelect);\n return /* @__PURE__ */ jsx(\n PopperPrimitive.Content,\n {\n ...popperScope,\n ...popperProps,\n ref: forwardedRef,\n align,\n collisionPadding,\n style: {\n // Ensure border-box for floating-ui calculations\n boxSizing: \"border-box\",\n ...popperProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-select-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-select-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-select-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-select-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-select-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n );\n});\nSelectPopperPosition.displayName = POPPER_POSITION_NAME;\nvar [SelectViewportProvider, useSelectViewportContext] = createSelectContext(CONTENT_NAME, {});\nvar VIEWPORT_NAME = \"SelectViewport\";\nvar SelectViewport = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, nonce, ...viewportProps } = props;\n const contentContext = useSelectContentContext(VIEWPORT_NAME, __scopeSelect);\n const viewportContext = useSelectViewportContext(VIEWPORT_NAME, __scopeSelect);\n const composedRefs = useComposedRefs(forwardedRef, contentContext.onViewportChange);\n const prevScrollTopRef = React.useRef(0);\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n \"style\",\n {\n dangerouslySetInnerHTML: {\n __html: `[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`\n },\n nonce\n }\n ),\n /* @__PURE__ */ jsx(Collection.Slot, { scope: __scopeSelect, children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-radix-select-viewport\": \"\",\n role: \"presentation\",\n ...viewportProps,\n ref: composedRefs,\n style: {\n // we use position: 'relative' here on the `viewport` so that when we call\n // `selectedItem.offsetTop` in calculations, the offset is relative to the viewport\n // (independent of the scrollUpButton).\n position: \"relative\",\n flex: 1,\n // Viewport should only be scrollable in the vertical direction.\n // This won't work in vertical writing modes, so we'll need to\n // revisit this if/when that is supported\n // https://developer.chrome.com/blog/vertical-form-controls\n overflow: \"hidden auto\",\n ...viewportProps.style\n },\n onScroll: composeEventHandlers(viewportProps.onScroll, (event) => {\n const viewport = event.currentTarget;\n const { contentWrapper, shouldExpandOnScrollRef } = viewportContext;\n if (shouldExpandOnScrollRef?.current && contentWrapper) {\n const scrolledBy = Math.abs(prevScrollTopRef.current - viewport.scrollTop);\n if (scrolledBy > 0) {\n const availableHeight = window.innerHeight - CONTENT_MARGIN * 2;\n const cssMinHeight = parseFloat(contentWrapper.style.minHeight);\n const cssHeight = parseFloat(contentWrapper.style.height);\n const prevHeight = Math.max(cssMinHeight, cssHeight);\n if (prevHeight < availableHeight) {\n const nextHeight = prevHeight + scrolledBy;\n const clampedNextHeight = Math.min(availableHeight, nextHeight);\n const heightDiff = nextHeight - clampedNextHeight;\n contentWrapper.style.height = clampedNextHeight + \"px\";\n if (contentWrapper.style.bottom === \"0px\") {\n viewport.scrollTop = heightDiff > 0 ? heightDiff : 0;\n contentWrapper.style.justifyContent = \"flex-end\";\n }\n }\n }\n }\n prevScrollTopRef.current = viewport.scrollTop;\n })\n }\n ) })\n ] });\n }\n);\nSelectViewport.displayName = VIEWPORT_NAME;\nvar GROUP_NAME = \"SelectGroup\";\nvar [SelectGroupContextProvider, useSelectGroupContext] = createSelectContext(GROUP_NAME);\nvar SelectGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...groupProps } = props;\n const groupId = useId();\n return /* @__PURE__ */ jsx(SelectGroupContextProvider, { scope: __scopeSelect, id: groupId, children: /* @__PURE__ */ jsx(Primitive.div, { role: \"group\", \"aria-labelledby\": groupId, ...groupProps, ref: forwardedRef }) });\n }\n);\nSelectGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"SelectLabel\";\nvar SelectLabel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...labelProps } = props;\n const groupContext = useSelectGroupContext(LABEL_NAME, __scopeSelect);\n return /* @__PURE__ */ jsx(Primitive.div, { id: groupContext.id, ...labelProps, ref: forwardedRef });\n }\n);\nSelectLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"SelectItem\";\nvar [SelectItemContextProvider, useSelectItemContext] = createSelectContext(ITEM_NAME);\nvar SelectItem = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSelect,\n value,\n disabled = false,\n textValue: textValueProp,\n ...itemProps\n } = props;\n const context = useSelectContext(ITEM_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ITEM_NAME, __scopeSelect);\n const isSelected = context.value === value;\n const [textValue, setTextValue] = React.useState(textValueProp ?? \"\");\n const [isFocused, setIsFocused] = React.useState(false);\n const composedRefs = useComposedRefs(\n forwardedRef,\n (node) => contentContext.itemRefCallback?.(node, value, disabled)\n );\n const textId = useId();\n const pointerTypeRef = React.useRef(\"touch\");\n const handleSelect = () => {\n if (!disabled) {\n context.onValueChange(value);\n context.onOpenChange(false);\n }\n };\n if (value === \"\") {\n throw new Error(\n \"A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.\"\n );\n }\n return /* @__PURE__ */ jsx(\n SelectItemContextProvider,\n {\n scope: __scopeSelect,\n value,\n disabled,\n textId,\n isSelected,\n onItemTextChange: React.useCallback((node) => {\n setTextValue((prevTextValue) => prevTextValue || (node?.textContent ?? \"\").trim());\n }, []),\n children: /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeSelect,\n value,\n disabled,\n textValue,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"option\",\n \"aria-labelledby\": textId,\n \"data-highlighted\": isFocused ? \"\" : void 0,\n \"aria-selected\": isSelected && isFocused,\n \"data-state\": isSelected ? \"checked\" : \"unchecked\",\n \"aria-disabled\": disabled || void 0,\n \"data-disabled\": disabled ? \"\" : void 0,\n tabIndex: disabled ? void 0 : -1,\n ...itemProps,\n ref: composedRefs,\n onFocus: composeEventHandlers(itemProps.onFocus, () => setIsFocused(true)),\n onBlur: composeEventHandlers(itemProps.onBlur, () => setIsFocused(false)),\n onClick: composeEventHandlers(itemProps.onClick, () => {\n if (pointerTypeRef.current !== \"mouse\") handleSelect();\n }),\n onPointerUp: composeEventHandlers(itemProps.onPointerUp, () => {\n if (pointerTypeRef.current === \"mouse\") handleSelect();\n }),\n onPointerDown: composeEventHandlers(itemProps.onPointerDown, (event) => {\n pointerTypeRef.current = event.pointerType;\n }),\n onPointerMove: composeEventHandlers(itemProps.onPointerMove, (event) => {\n pointerTypeRef.current = event.pointerType;\n if (disabled) {\n contentContext.onItemLeave?.();\n } else if (pointerTypeRef.current === \"mouse\") {\n event.currentTarget.focus({ preventScroll: true });\n }\n }),\n onPointerLeave: composeEventHandlers(itemProps.onPointerLeave, (event) => {\n if (event.currentTarget === document.activeElement) {\n contentContext.onItemLeave?.();\n }\n }),\n onKeyDown: composeEventHandlers(itemProps.onKeyDown, (event) => {\n const isTypingAhead = contentContext.searchRef?.current !== \"\";\n if (isTypingAhead && event.key === \" \") return;\n if (SELECTION_KEYS.includes(event.key)) handleSelect();\n if (event.key === \" \") event.preventDefault();\n })\n }\n )\n }\n )\n }\n );\n }\n);\nSelectItem.displayName = ITEM_NAME;\nvar ITEM_TEXT_NAME = \"SelectItemText\";\nvar SelectItemText = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, className, style, ...itemTextProps } = props;\n const context = useSelectContext(ITEM_TEXT_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ITEM_TEXT_NAME, __scopeSelect);\n const itemContext = useSelectItemContext(ITEM_TEXT_NAME, __scopeSelect);\n const nativeOptionsContext = useSelectNativeOptionsContext(ITEM_TEXT_NAME, __scopeSelect);\n const [itemTextNode, setItemTextNode] = React.useState(null);\n const composedRefs = useComposedRefs(\n forwardedRef,\n (node) => setItemTextNode(node),\n itemContext.onItemTextChange,\n (node) => contentContext.itemTextRefCallback?.(node, itemContext.value, itemContext.disabled)\n );\n const textContent = itemTextNode?.textContent;\n const nativeOption = React.useMemo(\n () => /* @__PURE__ */ jsx(\"option\", { value: itemContext.value, disabled: itemContext.disabled, children: textContent }, itemContext.value),\n [itemContext.disabled, itemContext.value, textContent]\n );\n const { onNativeOptionAdd, onNativeOptionRemove } = nativeOptionsContext;\n useLayoutEffect(() => {\n onNativeOptionAdd(nativeOption);\n return () => onNativeOptionRemove(nativeOption);\n }, [onNativeOptionAdd, onNativeOptionRemove, nativeOption]);\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(Primitive.span, { id: itemContext.textId, ...itemTextProps, ref: composedRefs }),\n itemContext.isSelected && context.valueNode && !context.valueNodeHasChildren ? ReactDOM.createPortal(itemTextProps.children, context.valueNode) : null\n ] });\n }\n);\nSelectItemText.displayName = ITEM_TEXT_NAME;\nvar ITEM_INDICATOR_NAME = \"SelectItemIndicator\";\nvar SelectItemIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...itemIndicatorProps } = props;\n const itemContext = useSelectItemContext(ITEM_INDICATOR_NAME, __scopeSelect);\n return itemContext.isSelected ? /* @__PURE__ */ jsx(Primitive.span, { \"aria-hidden\": true, ...itemIndicatorProps, ref: forwardedRef }) : null;\n }\n);\nSelectItemIndicator.displayName = ITEM_INDICATOR_NAME;\nvar SCROLL_UP_BUTTON_NAME = \"SelectScrollUpButton\";\nvar SelectScrollUpButton = React.forwardRef((props, forwardedRef) => {\n const contentContext = useSelectContentContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);\n const viewportContext = useSelectViewportContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);\n const [canScrollUp, setCanScrollUp] = React.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, viewportContext.onScrollButtonChange);\n useLayoutEffect(() => {\n if (contentContext.viewport && contentContext.isPositioned) {\n let handleScroll2 = function() {\n const canScrollUp2 = viewport.scrollTop > 0;\n setCanScrollUp(canScrollUp2);\n };\n var handleScroll = handleScroll2;\n const viewport = contentContext.viewport;\n handleScroll2();\n viewport.addEventListener(\"scroll\", handleScroll2);\n return () => viewport.removeEventListener(\"scroll\", handleScroll2);\n }\n }, [contentContext.viewport, contentContext.isPositioned]);\n return canScrollUp ? /* @__PURE__ */ jsx(\n SelectScrollButtonImpl,\n {\n ...props,\n ref: composedRefs,\n onAutoScroll: () => {\n const { viewport, selectedItem } = contentContext;\n if (viewport && selectedItem) {\n viewport.scrollTop = viewport.scrollTop - selectedItem.offsetHeight;\n }\n }\n }\n ) : null;\n});\nSelectScrollUpButton.displayName = SCROLL_UP_BUTTON_NAME;\nvar SCROLL_DOWN_BUTTON_NAME = \"SelectScrollDownButton\";\nvar SelectScrollDownButton = React.forwardRef((props, forwardedRef) => {\n const contentContext = useSelectContentContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);\n const viewportContext = useSelectViewportContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);\n const [canScrollDown, setCanScrollDown] = React.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, viewportContext.onScrollButtonChange);\n useLayoutEffect(() => {\n if (contentContext.viewport && contentContext.isPositioned) {\n let handleScroll2 = function() {\n const maxScroll = viewport.scrollHeight - viewport.clientHeight;\n const canScrollDown2 = Math.ceil(viewport.scrollTop) < maxScroll;\n setCanScrollDown(canScrollDown2);\n };\n var handleScroll = handleScroll2;\n const viewport = contentContext.viewport;\n handleScroll2();\n viewport.addEventListener(\"scroll\", handleScroll2);\n return () => viewport.removeEventListener(\"scroll\", handleScroll2);\n }\n }, [contentContext.viewport, contentContext.isPositioned]);\n return canScrollDown ? /* @__PURE__ */ jsx(\n SelectScrollButtonImpl,\n {\n ...props,\n ref: composedRefs,\n onAutoScroll: () => {\n const { viewport, selectedItem } = contentContext;\n if (viewport && selectedItem) {\n viewport.scrollTop = viewport.scrollTop + selectedItem.offsetHeight;\n }\n }\n }\n ) : null;\n});\nSelectScrollDownButton.displayName = SCROLL_DOWN_BUTTON_NAME;\nvar SelectScrollButtonImpl = React.forwardRef((props, forwardedRef) => {\n const { __scopeSelect, onAutoScroll, ...scrollIndicatorProps } = props;\n const contentContext = useSelectContentContext(\"SelectScrollButton\", __scopeSelect);\n const autoScrollTimerRef = React.useRef(null);\n const getItems = useCollection(__scopeSelect);\n const clearAutoScrollTimer = React.useCallback(() => {\n if (autoScrollTimerRef.current !== null) {\n window.clearInterval(autoScrollTimerRef.current);\n autoScrollTimerRef.current = null;\n }\n }, []);\n React.useEffect(() => {\n return () => clearAutoScrollTimer();\n }, [clearAutoScrollTimer]);\n useLayoutEffect(() => {\n const activeItem = getItems().find((item) => item.ref.current === document.activeElement);\n activeItem?.ref.current?.scrollIntoView({ block: \"nearest\" });\n }, [getItems]);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"aria-hidden\": true,\n ...scrollIndicatorProps,\n ref: forwardedRef,\n style: { flexShrink: 0, ...scrollIndicatorProps.style },\n onPointerDown: composeEventHandlers(scrollIndicatorProps.onPointerDown, () => {\n if (autoScrollTimerRef.current === null) {\n autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);\n }\n }),\n onPointerMove: composeEventHandlers(scrollIndicatorProps.onPointerMove, () => {\n contentContext.onItemLeave?.();\n if (autoScrollTimerRef.current === null) {\n autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);\n }\n }),\n onPointerLeave: composeEventHandlers(scrollIndicatorProps.onPointerLeave, () => {\n clearAutoScrollTimer();\n })\n }\n );\n});\nvar SEPARATOR_NAME = \"SelectSeparator\";\nvar SelectSeparator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...separatorProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { \"aria-hidden\": true, ...separatorProps, ref: forwardedRef });\n }\n);\nSelectSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"SelectArrow\";\nvar SelectArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const context = useSelectContext(ARROW_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ARROW_NAME, __scopeSelect);\n return context.open && contentContext.position === \"popper\" ? /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef }) : null;\n }\n);\nSelectArrow.displayName = ARROW_NAME;\nvar BUBBLE_INPUT_NAME = \"SelectBubbleInput\";\nvar SelectBubbleInput = React.forwardRef(\n ({ __scopeSelect, value, ...props }, forwardedRef) => {\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const prevValue = usePrevious(value);\n React.useEffect(() => {\n const select = ref.current;\n if (!select) return;\n const selectProto = window.HTMLSelectElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n selectProto,\n \"value\"\n );\n const setValue = descriptor.set;\n if (prevValue !== value && setValue) {\n const event = new Event(\"change\", { bubbles: true });\n setValue.call(select, value);\n select.dispatchEvent(event);\n }\n }, [prevValue, value]);\n return /* @__PURE__ */ jsx(\n Primitive.select,\n {\n ...props,\n style: { ...VISUALLY_HIDDEN_STYLES, ...props.style },\n ref: composedRefs,\n defaultValue: value\n }\n );\n }\n);\nSelectBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction shouldShowPlaceholder(value) {\n return value === \"\" || value === void 0;\n}\nfunction useTypeaheadSearch(onSearchChange) {\n const handleSearchChange = useCallbackRef(onSearchChange);\n const searchRef = React.useRef(\"\");\n const timerRef = React.useRef(0);\n const handleTypeaheadSearch = React.useCallback(\n (key) => {\n const search = searchRef.current + key;\n handleSearchChange(search);\n (function updateSearch(value) {\n searchRef.current = value;\n window.clearTimeout(timerRef.current);\n if (value !== \"\") timerRef.current = window.setTimeout(() => updateSearch(\"\"), 1e3);\n })(search);\n },\n [handleSearchChange]\n );\n const resetTypeahead = React.useCallback(() => {\n searchRef.current = \"\";\n window.clearTimeout(timerRef.current);\n }, []);\n React.useEffect(() => {\n return () => window.clearTimeout(timerRef.current);\n }, []);\n return [searchRef, handleTypeaheadSearch, resetTypeahead];\n}\nfunction findNextItem(items, search, currentItem) {\n const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);\n const normalizedSearch = isRepeated ? search[0] : search;\n const currentItemIndex = currentItem ? items.indexOf(currentItem) : -1;\n let wrappedItems = wrapArray(items, Math.max(currentItemIndex, 0));\n const excludeCurrentItem = normalizedSearch.length === 1;\n if (excludeCurrentItem) wrappedItems = wrappedItems.filter((v) => v !== currentItem);\n const nextItem = wrappedItems.find(\n (item) => item.textValue.toLowerCase().startsWith(normalizedSearch.toLowerCase())\n );\n return nextItem !== currentItem ? nextItem : void 0;\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\nvar Root2 = Select;\nvar Trigger = SelectTrigger;\nvar Value = SelectValue;\nvar Icon = SelectIcon;\nvar Portal = SelectPortal;\nvar Content2 = SelectContent;\nvar Viewport = SelectViewport;\nvar Group = SelectGroup;\nvar Label = SelectLabel;\nvar Item = SelectItem;\nvar ItemText = SelectItemText;\nvar ItemIndicator = SelectItemIndicator;\nvar ScrollUpButton = SelectScrollUpButton;\nvar ScrollDownButton = SelectScrollDownButton;\nvar Separator = SelectSeparator;\nvar Arrow2 = SelectArrow;\nexport {\n Arrow2 as Arrow,\n Content2 as Content,\n Group,\n Icon,\n Item,\n ItemIndicator,\n ItemText,\n Label,\n Portal,\n Root2 as Root,\n ScrollDownButton,\n ScrollUpButton,\n Select,\n SelectArrow,\n SelectContent,\n SelectGroup,\n SelectIcon,\n SelectItem,\n SelectItemIndicator,\n SelectItemText,\n SelectLabel,\n SelectPortal,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n SelectViewport,\n Separator,\n Trigger,\n Value,\n Viewport,\n createSelectScope\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":["clamp","value","min","max","createCollection","name","PROVIDER_NAME","createCollectionContext","createCollectionScope","createContextScope","CollectionProviderImpl","useCollectionContext","CollectionProvider","props","scope","children","ref","React","itemMap","jsx","COLLECTION_SLOT_NAME","CollectionSlotImpl","createSlot","CollectionSlot","forwardedRef","context","composedRefs","useComposedRefs","ITEM_SLOT_NAME","ITEM_DATA_ATTR","CollectionItemSlotImpl","CollectionItemSlot","itemData","useCollection","collectionNode","orderedNodes","a","DirectionContext","React.createContext","useDirection","localDir","globalDir","React.useContext","usePrevious","React.useRef","React.useMemo","OPEN_KEYS","SELECTION_KEYS","SELECT_NAME","Collection","createSelectContext","createSelectScope","createPopperScope","usePopperScope","SelectProvider","useSelectContext","SelectNativeOptionsProvider","useSelectNativeOptionsContext","Select","__scopeSelect","openProp","defaultOpen","onOpenChange","valueProp","defaultValue","onValueChange","dir","autoComplete","disabled","required","form","popperScope","trigger","setTrigger","React.useState","valueNode","setValueNode","valueNodeHasChildren","setValueNodeHasChildren","direction","open","setOpen","useControllableState","setValue","triggerPointerDownPosRef","isFormControl","nativeOptionsSet","setNativeOptionsSet","nativeSelectKey","option","PopperPrimitive.Root","jsxs","useId","React.useCallback","prev","optionsSet","SelectBubbleInput","event","TRIGGER_NAME","SelectTrigger","React.forwardRef","triggerProps","isDisabled","getItems","pointerTypeRef","searchRef","handleTypeaheadSearch","resetTypeahead","useTypeaheadSearch","search","enabledItems","item","currentItem","nextItem","findNextItem","handleOpen","pointerEvent","PopperPrimitive.Anchor","Primitive","shouldShowPlaceholder","composeEventHandlers","target","isTypingAhead","VALUE_NAME","SelectValue","className","style","placeholder","valueProps","onValueNodeHasChildrenChange","hasChildren","useLayoutEffect","Fragment","ICON_NAME","SelectIcon","iconProps","PORTAL_NAME","SelectPortal","PortalPrimitive","CONTENT_NAME","SelectContent","fragment","setFragment","frag","ReactDOM.createPortal","SelectContentProvider","SelectContentImpl","CONTENT_MARGIN","useSelectContentContext","CONTENT_IMPL_NAME","Slot","position","onCloseAutoFocus","onEscapeKeyDown","onPointerDownOutside","side","sideOffset","align","alignOffset","arrowPadding","collisionBoundary","collisionPadding","sticky","hideWhenDetached","avoidCollisions","contentProps","content","setContent","viewport","setViewport","node","selectedItem","setSelectedItem","selectedItemText","setSelectedItemText","isPositioned","setIsPositioned","firstValidItemFoundRef","React.useEffect","hideOthers","useFocusGuards","focusFirst","candidates","firstItem","restItems","lastItem","PREVIOUSLY_FOCUSED_ELEMENT","candidate","focusSelectedItem","pointerMoveDelta","handlePointerMove","_a","_b","handlePointerUp","close","itemRefCallback","isFirstValidItem","handleItemLeave","itemTextRefCallback","SelectPosition","SelectPopperPosition","SelectItemAlignedPosition","popperContentProps","RemoveScroll","FocusScope","DismissableLayer","isModifierKey","candidateNodes","currentElement","currentIndex","ITEM_ALIGNED_POSITION_NAME","onPlaced","popperProps","contentContext","contentWrapper","setContentWrapper","shouldExpandOnScrollRef","shouldRepositionRef","triggerRect","contentRect","valueNodeRect","itemTextRect","itemTextOffset","left","leftDelta","minContentWidth","contentWidth","rightEdge","clampedLeft","right","rightDelta","leftEdge","clampedRight","items","availableHeight","itemsHeight","contentStyles","contentBorderTopWidth","contentPaddingTop","contentBorderBottomWidth","contentPaddingBottom","fullContentHeight","minContentHeight","viewportStyles","viewportPaddingTop","viewportPaddingBottom","topEdgeToTriggerMiddle","triggerMiddleToBottomEdge","selectedItemHalfHeight","itemOffsetMiddle","contentTopToItemMiddle","itemMiddleToContentBottom","isLastItem","viewportOffsetBottom","clampedTriggerMiddleToBottomEdge","height","isFirstItem","contentZIndex","setContentZIndex","handleScrollButtonChange","SelectViewportProvider","POPPER_POSITION_NAME","PopperPrimitive.Content","useSelectViewportContext","VIEWPORT_NAME","SelectViewport","nonce","viewportProps","viewportContext","prevScrollTopRef","scrolledBy","cssMinHeight","cssHeight","prevHeight","nextHeight","clampedNextHeight","heightDiff","GROUP_NAME","SelectGroupContextProvider","useSelectGroupContext","SelectGroup","groupProps","groupId","LABEL_NAME","SelectLabel","labelProps","groupContext","ITEM_NAME","SelectItemContextProvider","useSelectItemContext","SelectItem","textValueProp","itemProps","isSelected","textValue","setTextValue","isFocused","setIsFocused","textId","handleSelect","prevTextValue","ITEM_TEXT_NAME","SelectItemText","itemTextProps","itemContext","nativeOptionsContext","itemTextNode","setItemTextNode","textContent","nativeOption","onNativeOptionAdd","onNativeOptionRemove","ITEM_INDICATOR_NAME","SelectItemIndicator","itemIndicatorProps","SCROLL_UP_BUTTON_NAME","SelectScrollUpButton","canScrollUp","setCanScrollUp","handleScroll2","canScrollUp2","SelectScrollButtonImpl","SCROLL_DOWN_BUTTON_NAME","SelectScrollDownButton","canScrollDown","setCanScrollDown","maxScroll","canScrollDown2","onAutoScroll","scrollIndicatorProps","autoScrollTimerRef","clearAutoScrollTimer","activeItem","SEPARATOR_NAME","SelectSeparator","separatorProps","ARROW_NAME","SelectArrow","arrowProps","PopperPrimitive.Arrow","BUBBLE_INPUT_NAME","prevValue","select","selectProto","VISUALLY_HIDDEN_STYLES","onSearchChange","handleSearchChange","useCallbackRef","timerRef","key","updateSearch","normalizedSearch","char","currentItemIndex","wrappedItems","wrapArray","v","array","startIndex","_","index","Root2","Trigger","Value","Icon","Portal","Content2","Viewport","Group","Label","Item","ItemText","ItemIndicator","ScrollUpButton","ScrollDownButton"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]}
|
|
1
|
+
{"version":3,"file":"index-Co8qgD4k.js","sources":["../../../../../node_modules/@radix-ui/number/dist/index.mjs","../../../../../node_modules/@radix-ui/react-collection/dist/index.mjs","../../../../../node_modules/@radix-ui/react-direction/dist/index.mjs","../../../../../node_modules/@radix-ui/react-use-previous/dist/index.mjs","../../../../../node_modules/@radix-ui/react-select/dist/index.mjs"],"sourcesContent":["// packages/core/number/src/number.ts\nfunction clamp(value, [min, max]) {\n return Math.min(max, Math.max(min, value));\n}\nexport {\n clamp\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/collection-legacy.tsx\nimport React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createCollection(name) {\n const PROVIDER_NAME = name + \"CollectionProvider\";\n const [createCollectionContext, createCollectionScope] = createContextScope(PROVIDER_NAME);\n const [CollectionProviderImpl, useCollectionContext] = createCollectionContext(\n PROVIDER_NAME,\n { collectionRef: { current: null }, itemMap: /* @__PURE__ */ new Map() }\n );\n const CollectionProvider = (props) => {\n const { scope, children } = props;\n const ref = React.useRef(null);\n const itemMap = React.useRef(/* @__PURE__ */ new Map()).current;\n return /* @__PURE__ */ jsx(CollectionProviderImpl, { scope, itemMap, collectionRef: ref, children });\n };\n CollectionProvider.displayName = PROVIDER_NAME;\n const COLLECTION_SLOT_NAME = name + \"CollectionSlot\";\n const CollectionSlotImpl = createSlot(COLLECTION_SLOT_NAME);\n const CollectionSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = useComposedRefs(forwardedRef, context.collectionRef);\n return /* @__PURE__ */ jsx(CollectionSlotImpl, { ref: composedRefs, children });\n }\n );\n CollectionSlot.displayName = COLLECTION_SLOT_NAME;\n const ITEM_SLOT_NAME = name + \"CollectionItemSlot\";\n const ITEM_DATA_ATTR = \"data-radix-collection-item\";\n const CollectionItemSlotImpl = createSlot(ITEM_SLOT_NAME);\n const CollectionItemSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children, ...itemData } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n React.useEffect(() => {\n context.itemMap.set(ref, { ref, ...itemData });\n return () => void context.itemMap.delete(ref);\n });\n return /* @__PURE__ */ jsx(CollectionItemSlotImpl, { ...{ [ITEM_DATA_ATTR]: \"\" }, ref: composedRefs, children });\n }\n );\n CollectionItemSlot.displayName = ITEM_SLOT_NAME;\n function useCollection(scope) {\n const context = useCollectionContext(name + \"CollectionConsumer\", scope);\n const getItems = React.useCallback(() => {\n const collectionNode = context.collectionRef.current;\n if (!collectionNode) return [];\n const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));\n const items = Array.from(context.itemMap.values());\n const orderedItems = items.sort(\n (a, b) => orderedNodes.indexOf(a.ref.current) - orderedNodes.indexOf(b.ref.current)\n );\n return orderedItems;\n }, [context.collectionRef, context.itemMap]);\n return getItems;\n }\n return [\n { Provider: CollectionProvider, Slot: CollectionSlot, ItemSlot: CollectionItemSlot },\n useCollection,\n createCollectionScope\n ];\n}\n\n// src/collection.tsx\nimport React2 from \"react\";\nimport { createContextScope as createContextScope2 } from \"@radix-ui/react-context\";\nimport { useComposedRefs as useComposedRefs2 } from \"@radix-ui/react-compose-refs\";\nimport { createSlot as createSlot2 } from \"@radix-ui/react-slot\";\n\n// src/ordered-dictionary.ts\nvar __instanciated = /* @__PURE__ */ new WeakMap();\nvar OrderedDict = class _OrderedDict extends Map {\n #keys;\n constructor(entries) {\n super(entries);\n this.#keys = [...super.keys()];\n __instanciated.set(this, true);\n }\n set(key, value) {\n if (__instanciated.get(this)) {\n if (this.has(key)) {\n this.#keys[this.#keys.indexOf(key)] = key;\n } else {\n this.#keys.push(key);\n }\n }\n super.set(key, value);\n return this;\n }\n insert(index, key, value) {\n const has = this.has(key);\n const length = this.#keys.length;\n const relativeIndex = toSafeInteger(index);\n let actualIndex = relativeIndex >= 0 ? relativeIndex : length + relativeIndex;\n const safeIndex = actualIndex < 0 || actualIndex >= length ? -1 : actualIndex;\n if (safeIndex === this.size || has && safeIndex === this.size - 1 || safeIndex === -1) {\n this.set(key, value);\n return this;\n }\n const size = this.size + (has ? 0 : 1);\n if (relativeIndex < 0) {\n actualIndex++;\n }\n const keys = [...this.#keys];\n let nextValue;\n let shouldSkip = false;\n for (let i = actualIndex; i < size; i++) {\n if (actualIndex === i) {\n let nextKey = keys[i];\n if (keys[i] === key) {\n nextKey = keys[i + 1];\n }\n if (has) {\n this.delete(key);\n }\n nextValue = this.get(nextKey);\n this.set(key, value);\n } else {\n if (!shouldSkip && keys[i - 1] === key) {\n shouldSkip = true;\n }\n const currentKey = keys[shouldSkip ? i : i - 1];\n const currentValue = nextValue;\n nextValue = this.get(currentKey);\n this.delete(currentKey);\n this.set(currentKey, currentValue);\n }\n }\n return this;\n }\n with(index, key, value) {\n const copy = new _OrderedDict(this);\n copy.insert(index, key, value);\n return copy;\n }\n before(key) {\n const index = this.#keys.indexOf(key) - 1;\n if (index < 0) {\n return void 0;\n }\n return this.entryAt(index);\n }\n /**\n * Sets a new key-value pair at the position before the given key.\n */\n setBefore(key, newKey, value) {\n const index = this.#keys.indexOf(key);\n if (index === -1) {\n return this;\n }\n return this.insert(index, newKey, value);\n }\n after(key) {\n let index = this.#keys.indexOf(key);\n index = index === -1 || index === this.size - 1 ? -1 : index + 1;\n if (index === -1) {\n return void 0;\n }\n return this.entryAt(index);\n }\n /**\n * Sets a new key-value pair at the position after the given key.\n */\n setAfter(key, newKey, value) {\n const index = this.#keys.indexOf(key);\n if (index === -1) {\n return this;\n }\n return this.insert(index + 1, newKey, value);\n }\n first() {\n return this.entryAt(0);\n }\n last() {\n return this.entryAt(-1);\n }\n clear() {\n this.#keys = [];\n return super.clear();\n }\n delete(key) {\n const deleted = super.delete(key);\n if (deleted) {\n this.#keys.splice(this.#keys.indexOf(key), 1);\n }\n return deleted;\n }\n deleteAt(index) {\n const key = this.keyAt(index);\n if (key !== void 0) {\n return this.delete(key);\n }\n return false;\n }\n at(index) {\n const key = at(this.#keys, index);\n if (key !== void 0) {\n return this.get(key);\n }\n }\n entryAt(index) {\n const key = at(this.#keys, index);\n if (key !== void 0) {\n return [key, this.get(key)];\n }\n }\n indexOf(key) {\n return this.#keys.indexOf(key);\n }\n keyAt(index) {\n return at(this.#keys, index);\n }\n from(key, offset) {\n const index = this.indexOf(key);\n if (index === -1) {\n return void 0;\n }\n let dest = index + offset;\n if (dest < 0) dest = 0;\n if (dest >= this.size) dest = this.size - 1;\n return this.at(dest);\n }\n keyFrom(key, offset) {\n const index = this.indexOf(key);\n if (index === -1) {\n return void 0;\n }\n let dest = index + offset;\n if (dest < 0) dest = 0;\n if (dest >= this.size) dest = this.size - 1;\n return this.keyAt(dest);\n }\n find(predicate, thisArg) {\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return entry;\n }\n index++;\n }\n return void 0;\n }\n findIndex(predicate, thisArg) {\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return index;\n }\n index++;\n }\n return -1;\n }\n filter(predicate, thisArg) {\n const entries = [];\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n entries.push(entry);\n }\n index++;\n }\n return new _OrderedDict(entries);\n }\n map(callbackfn, thisArg) {\n const entries = [];\n let index = 0;\n for (const entry of this) {\n entries.push([entry[0], Reflect.apply(callbackfn, thisArg, [entry, index, this])]);\n index++;\n }\n return new _OrderedDict(entries);\n }\n reduce(...args) {\n const [callbackfn, initialValue] = args;\n let index = 0;\n let accumulator = initialValue ?? this.at(0);\n for (const entry of this) {\n if (index === 0 && args.length === 1) {\n accumulator = entry;\n } else {\n accumulator = Reflect.apply(callbackfn, this, [accumulator, entry, index, this]);\n }\n index++;\n }\n return accumulator;\n }\n reduceRight(...args) {\n const [callbackfn, initialValue] = args;\n let accumulator = initialValue ?? this.at(-1);\n for (let index = this.size - 1; index >= 0; index--) {\n const entry = this.at(index);\n if (index === this.size - 1 && args.length === 1) {\n accumulator = entry;\n } else {\n accumulator = Reflect.apply(callbackfn, this, [accumulator, entry, index, this]);\n }\n }\n return accumulator;\n }\n toSorted(compareFn) {\n const entries = [...this.entries()].sort(compareFn);\n return new _OrderedDict(entries);\n }\n toReversed() {\n const reversed = new _OrderedDict();\n for (let index = this.size - 1; index >= 0; index--) {\n const key = this.keyAt(index);\n const element = this.get(key);\n reversed.set(key, element);\n }\n return reversed;\n }\n toSpliced(...args) {\n const entries = [...this.entries()];\n entries.splice(...args);\n return new _OrderedDict(entries);\n }\n slice(start, end) {\n const result = new _OrderedDict();\n let stop = this.size - 1;\n if (start === void 0) {\n return result;\n }\n if (start < 0) {\n start = start + this.size;\n }\n if (end !== void 0 && end > 0) {\n stop = end - 1;\n }\n for (let index = start; index <= stop; index++) {\n const key = this.keyAt(index);\n const element = this.get(key);\n result.set(key, element);\n }\n return result;\n }\n every(predicate, thisArg) {\n let index = 0;\n for (const entry of this) {\n if (!Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return false;\n }\n index++;\n }\n return true;\n }\n some(predicate, thisArg) {\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return true;\n }\n index++;\n }\n return false;\n }\n};\nfunction at(array, index) {\n if (\"at\" in Array.prototype) {\n return Array.prototype.at.call(array, index);\n }\n const actualIndex = toSafeIndex(array, index);\n return actualIndex === -1 ? void 0 : array[actualIndex];\n}\nfunction toSafeIndex(array, index) {\n const length = array.length;\n const relativeIndex = toSafeInteger(index);\n const actualIndex = relativeIndex >= 0 ? relativeIndex : length + relativeIndex;\n return actualIndex < 0 || actualIndex >= length ? -1 : actualIndex;\n}\nfunction toSafeInteger(number) {\n return number !== number || number === 0 ? 0 : Math.trunc(number);\n}\n\n// src/collection.tsx\nimport { jsx as jsx2 } from \"react/jsx-runtime\";\nfunction createCollection2(name) {\n const PROVIDER_NAME = name + \"CollectionProvider\";\n const [createCollectionContext, createCollectionScope] = createContextScope2(PROVIDER_NAME);\n const [CollectionContextProvider, useCollectionContext] = createCollectionContext(\n PROVIDER_NAME,\n {\n collectionElement: null,\n collectionRef: { current: null },\n collectionRefObject: { current: null },\n itemMap: new OrderedDict(),\n setItemMap: () => void 0\n }\n );\n const CollectionProvider = ({ state, ...props }) => {\n return state ? /* @__PURE__ */ jsx2(CollectionProviderImpl, { ...props, state }) : /* @__PURE__ */ jsx2(CollectionInit, { ...props });\n };\n CollectionProvider.displayName = PROVIDER_NAME;\n const CollectionInit = (props) => {\n const state = useInitCollection();\n return /* @__PURE__ */ jsx2(CollectionProviderImpl, { ...props, state });\n };\n CollectionInit.displayName = PROVIDER_NAME + \"Init\";\n const CollectionProviderImpl = (props) => {\n const { scope, children, state } = props;\n const ref = React2.useRef(null);\n const [collectionElement, setCollectionElement] = React2.useState(\n null\n );\n const composeRefs = useComposedRefs2(ref, setCollectionElement);\n const [itemMap, setItemMap] = state;\n React2.useEffect(() => {\n if (!collectionElement) return;\n const observer = getChildListObserver(() => {\n });\n observer.observe(collectionElement, {\n childList: true,\n subtree: true\n });\n return () => {\n observer.disconnect();\n };\n }, [collectionElement]);\n return /* @__PURE__ */ jsx2(\n CollectionContextProvider,\n {\n scope,\n itemMap,\n setItemMap,\n collectionRef: composeRefs,\n collectionRefObject: ref,\n collectionElement,\n children\n }\n );\n };\n CollectionProviderImpl.displayName = PROVIDER_NAME + \"Impl\";\n const COLLECTION_SLOT_NAME = name + \"CollectionSlot\";\n const CollectionSlotImpl = createSlot2(COLLECTION_SLOT_NAME);\n const CollectionSlot = React2.forwardRef(\n (props, forwardedRef) => {\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = useComposedRefs2(forwardedRef, context.collectionRef);\n return /* @__PURE__ */ jsx2(CollectionSlotImpl, { ref: composedRefs, children });\n }\n );\n CollectionSlot.displayName = COLLECTION_SLOT_NAME;\n const ITEM_SLOT_NAME = name + \"CollectionItemSlot\";\n const ITEM_DATA_ATTR = \"data-radix-collection-item\";\n const CollectionItemSlotImpl = createSlot2(ITEM_SLOT_NAME);\n const CollectionItemSlot = React2.forwardRef(\n (props, forwardedRef) => {\n const { scope, children, ...itemData } = props;\n const ref = React2.useRef(null);\n const [element, setElement] = React2.useState(null);\n const composedRefs = useComposedRefs2(forwardedRef, ref, setElement);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n const { setItemMap } = context;\n const itemDataRef = React2.useRef(itemData);\n if (!shallowEqual(itemDataRef.current, itemData)) {\n itemDataRef.current = itemData;\n }\n const memoizedItemData = itemDataRef.current;\n React2.useEffect(() => {\n const itemData2 = memoizedItemData;\n setItemMap((map) => {\n if (!element) {\n return map;\n }\n if (!map.has(element)) {\n map.set(element, { ...itemData2, element });\n return map.toSorted(sortByDocumentPosition);\n }\n return map.set(element, { ...itemData2, element }).toSorted(sortByDocumentPosition);\n });\n return () => {\n setItemMap((map) => {\n if (!element || !map.has(element)) {\n return map;\n }\n map.delete(element);\n return new OrderedDict(map);\n });\n };\n }, [element, memoizedItemData, setItemMap]);\n return /* @__PURE__ */ jsx2(CollectionItemSlotImpl, { ...{ [ITEM_DATA_ATTR]: \"\" }, ref: composedRefs, children });\n }\n );\n CollectionItemSlot.displayName = ITEM_SLOT_NAME;\n function useInitCollection() {\n return React2.useState(new OrderedDict());\n }\n function useCollection(scope) {\n const { itemMap } = useCollectionContext(name + \"CollectionConsumer\", scope);\n return itemMap;\n }\n const functions = {\n createCollectionScope,\n useCollection,\n useInitCollection\n };\n return [\n { Provider: CollectionProvider, Slot: CollectionSlot, ItemSlot: CollectionItemSlot },\n functions\n ];\n}\nfunction shallowEqual(a, b) {\n if (a === b) return true;\n if (typeof a !== \"object\" || typeof b !== \"object\") return false;\n if (a == null || b == null) return false;\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n if (keysA.length !== keysB.length) return false;\n for (const key of keysA) {\n if (!Object.prototype.hasOwnProperty.call(b, key)) return false;\n if (a[key] !== b[key]) return false;\n }\n return true;\n}\nfunction isElementPreceding(a, b) {\n return !!(b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_PRECEDING);\n}\nfunction sortByDocumentPosition(a, b) {\n return !a[1].element || !b[1].element ? 0 : isElementPreceding(a[1].element, b[1].element) ? -1 : 1;\n}\nfunction getChildListObserver(callback) {\n const observer = new MutationObserver((mutationsList) => {\n for (const mutation of mutationsList) {\n if (mutation.type === \"childList\") {\n callback();\n return;\n }\n }\n });\n return observer;\n}\nexport {\n createCollection,\n createCollection2 as unstable_createCollection\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/direction/src/direction.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DirectionContext = React.createContext(void 0);\nvar DirectionProvider = (props) => {\n const { dir, children } = props;\n return /* @__PURE__ */ jsx(DirectionContext.Provider, { value: dir, children });\n};\nfunction useDirection(localDir) {\n const globalDir = React.useContext(DirectionContext);\n return localDir || globalDir || \"ltr\";\n}\nvar Provider = DirectionProvider;\nexport {\n DirectionProvider,\n Provider,\n useDirection\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-previous/src/use-previous.tsx\nimport * as React from \"react\";\nfunction usePrevious(value) {\n const ref = React.useRef({ value, previous: value });\n return React.useMemo(() => {\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [value]);\n}\nexport {\n usePrevious\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/select.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { clamp } from \"@radix-ui/number\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { VISUALLY_HIDDEN_STYLES } from \"@radix-ui/react-visually-hidden\";\nimport { hideOthers } from \"aria-hidden\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar OPEN_KEYS = [\" \", \"Enter\", \"ArrowUp\", \"ArrowDown\"];\nvar SELECTION_KEYS = [\" \", \"Enter\"];\nvar SELECT_NAME = \"Select\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(SELECT_NAME);\nvar [createSelectContext, createSelectScope] = createContextScope(SELECT_NAME, [\n createCollectionScope,\n createPopperScope\n]);\nvar usePopperScope = createPopperScope();\nvar [SelectProvider, useSelectContext] = createSelectContext(SELECT_NAME);\nvar [SelectNativeOptionsProvider, useSelectNativeOptionsContext] = createSelectContext(SELECT_NAME);\nvar Select = (props) => {\n const {\n __scopeSelect,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n value: valueProp,\n defaultValue,\n onValueChange,\n dir,\n name,\n autoComplete,\n disabled,\n required,\n form\n } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const [trigger, setTrigger] = React.useState(null);\n const [valueNode, setValueNode] = React.useState(null);\n const [valueNodeHasChildren, setValueNodeHasChildren] = React.useState(false);\n const direction = useDirection(dir);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: SELECT_NAME\n });\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue,\n onChange: onValueChange,\n caller: SELECT_NAME\n });\n const triggerPointerDownPosRef = React.useRef(null);\n const isFormControl = trigger ? form || !!trigger.closest(\"form\") : true;\n const [nativeOptionsSet, setNativeOptionsSet] = React.useState(/* @__PURE__ */ new Set());\n const nativeSelectKey = Array.from(nativeOptionsSet).map((option) => option.props.value).join(\";\");\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsxs(\n SelectProvider,\n {\n required,\n scope: __scopeSelect,\n trigger,\n onTriggerChange: setTrigger,\n valueNode,\n onValueNodeChange: setValueNode,\n valueNodeHasChildren,\n onValueNodeHasChildrenChange: setValueNodeHasChildren,\n contentId: useId(),\n value,\n onValueChange: setValue,\n open,\n onOpenChange: setOpen,\n dir: direction,\n triggerPointerDownPosRef,\n disabled,\n children: [\n /* @__PURE__ */ jsx(Collection.Provider, { scope: __scopeSelect, children: /* @__PURE__ */ jsx(\n SelectNativeOptionsProvider,\n {\n scope: props.__scopeSelect,\n onNativeOptionAdd: React.useCallback((option) => {\n setNativeOptionsSet((prev) => new Set(prev).add(option));\n }, []),\n onNativeOptionRemove: React.useCallback((option) => {\n setNativeOptionsSet((prev) => {\n const optionsSet = new Set(prev);\n optionsSet.delete(option);\n return optionsSet;\n });\n }, []),\n children\n }\n ) }),\n isFormControl ? /* @__PURE__ */ jsxs(\n SelectBubbleInput,\n {\n \"aria-hidden\": true,\n required,\n tabIndex: -1,\n name,\n autoComplete,\n value,\n onChange: (event) => setValue(event.target.value),\n disabled,\n form,\n children: [\n value === void 0 ? /* @__PURE__ */ jsx(\"option\", { value: \"\" }) : null,\n Array.from(nativeOptionsSet)\n ]\n },\n nativeSelectKey\n ) : null\n ]\n }\n ) });\n};\nSelect.displayName = SELECT_NAME;\nvar TRIGGER_NAME = \"SelectTrigger\";\nvar SelectTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, disabled = false, ...triggerProps } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const context = useSelectContext(TRIGGER_NAME, __scopeSelect);\n const isDisabled = context.disabled || disabled;\n const composedRefs = useComposedRefs(forwardedRef, context.onTriggerChange);\n const getItems = useCollection(__scopeSelect);\n const pointerTypeRef = React.useRef(\"touch\");\n const [searchRef, handleTypeaheadSearch, resetTypeahead] = useTypeaheadSearch((search) => {\n const enabledItems = getItems().filter((item) => !item.disabled);\n const currentItem = enabledItems.find((item) => item.value === context.value);\n const nextItem = findNextItem(enabledItems, search, currentItem);\n if (nextItem !== void 0) {\n context.onValueChange(nextItem.value);\n }\n });\n const handleOpen = (pointerEvent) => {\n if (!isDisabled) {\n context.onOpenChange(true);\n resetTypeahead();\n }\n if (pointerEvent) {\n context.triggerPointerDownPosRef.current = {\n x: Math.round(pointerEvent.pageX),\n y: Math.round(pointerEvent.pageY)\n };\n }\n };\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"combobox\",\n \"aria-controls\": context.contentId,\n \"aria-expanded\": context.open,\n \"aria-required\": context.required,\n \"aria-autocomplete\": \"none\",\n dir: context.dir,\n \"data-state\": context.open ? \"open\" : \"closed\",\n disabled: isDisabled,\n \"data-disabled\": isDisabled ? \"\" : void 0,\n \"data-placeholder\": shouldShowPlaceholder(context.value) ? \"\" : void 0,\n ...triggerProps,\n ref: composedRefs,\n onClick: composeEventHandlers(triggerProps.onClick, (event) => {\n event.currentTarget.focus();\n if (pointerTypeRef.current !== \"mouse\") {\n handleOpen(event);\n }\n }),\n onPointerDown: composeEventHandlers(triggerProps.onPointerDown, (event) => {\n pointerTypeRef.current = event.pointerType;\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n }\n if (event.button === 0 && event.ctrlKey === false && event.pointerType === \"mouse\") {\n handleOpen(event);\n event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(triggerProps.onKeyDown, (event) => {\n const isTypingAhead = searchRef.current !== \"\";\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);\n if (isTypingAhead && event.key === \" \") return;\n if (OPEN_KEYS.includes(event.key)) {\n handleOpen();\n event.preventDefault();\n }\n })\n }\n ) });\n }\n);\nSelectTrigger.displayName = TRIGGER_NAME;\nvar VALUE_NAME = \"SelectValue\";\nvar SelectValue = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, className, style, children, placeholder = \"\", ...valueProps } = props;\n const context = useSelectContext(VALUE_NAME, __scopeSelect);\n const { onValueNodeHasChildrenChange } = context;\n const hasChildren = children !== void 0;\n const composedRefs = useComposedRefs(forwardedRef, context.onValueNodeChange);\n useLayoutEffect(() => {\n onValueNodeHasChildrenChange(hasChildren);\n }, [onValueNodeHasChildrenChange, hasChildren]);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...valueProps,\n ref: composedRefs,\n style: { pointerEvents: \"none\" },\n children: shouldShowPlaceholder(context.value) ? /* @__PURE__ */ jsx(Fragment, { children: placeholder }) : children\n }\n );\n }\n);\nSelectValue.displayName = VALUE_NAME;\nvar ICON_NAME = \"SelectIcon\";\nvar SelectIcon = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, children, ...iconProps } = props;\n return /* @__PURE__ */ jsx(Primitive.span, { \"aria-hidden\": true, ...iconProps, ref: forwardedRef, children: children || \"\\u25BC\" });\n }\n);\nSelectIcon.displayName = ICON_NAME;\nvar PORTAL_NAME = \"SelectPortal\";\nvar SelectPortal = (props) => {\n return /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, ...props });\n};\nSelectPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"SelectContent\";\nvar SelectContent = React.forwardRef(\n (props, forwardedRef) => {\n const context = useSelectContext(CONTENT_NAME, props.__scopeSelect);\n const [fragment, setFragment] = React.useState();\n useLayoutEffect(() => {\n setFragment(new DocumentFragment());\n }, []);\n if (!context.open) {\n const frag = fragment;\n return frag ? ReactDOM.createPortal(\n /* @__PURE__ */ jsx(SelectContentProvider, { scope: props.__scopeSelect, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeSelect, children: /* @__PURE__ */ jsx(\"div\", { children: props.children }) }) }),\n frag\n ) : null;\n }\n return /* @__PURE__ */ jsx(SelectContentImpl, { ...props, ref: forwardedRef });\n }\n);\nSelectContent.displayName = CONTENT_NAME;\nvar CONTENT_MARGIN = 10;\nvar [SelectContentProvider, useSelectContentContext] = createSelectContext(CONTENT_NAME);\nvar CONTENT_IMPL_NAME = \"SelectContentImpl\";\nvar Slot = createSlot(\"SelectContent.RemoveScroll\");\nvar SelectContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSelect,\n position = \"item-aligned\",\n onCloseAutoFocus,\n onEscapeKeyDown,\n onPointerDownOutside,\n //\n // PopperContent props\n side,\n sideOffset,\n align,\n alignOffset,\n arrowPadding,\n collisionBoundary,\n collisionPadding,\n sticky,\n hideWhenDetached,\n avoidCollisions,\n //\n ...contentProps\n } = props;\n const context = useSelectContext(CONTENT_NAME, __scopeSelect);\n const [content, setContent] = React.useState(null);\n const [viewport, setViewport] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContent(node));\n const [selectedItem, setSelectedItem] = React.useState(null);\n const [selectedItemText, setSelectedItemText] = React.useState(\n null\n );\n const getItems = useCollection(__scopeSelect);\n const [isPositioned, setIsPositioned] = React.useState(false);\n const firstValidItemFoundRef = React.useRef(false);\n React.useEffect(() => {\n if (content) return hideOthers(content);\n }, [content]);\n useFocusGuards();\n const focusFirst = React.useCallback(\n (candidates) => {\n const [firstItem, ...restItems] = getItems().map((item) => item.ref.current);\n const [lastItem] = restItems.slice(-1);\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate?.scrollIntoView({ block: \"nearest\" });\n if (candidate === firstItem && viewport) viewport.scrollTop = 0;\n if (candidate === lastItem && viewport) viewport.scrollTop = viewport.scrollHeight;\n candidate?.focus();\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n },\n [getItems, viewport]\n );\n const focusSelectedItem = React.useCallback(\n () => focusFirst([selectedItem, content]),\n [focusFirst, selectedItem, content]\n );\n React.useEffect(() => {\n if (isPositioned) {\n focusSelectedItem();\n }\n }, [isPositioned, focusSelectedItem]);\n const { onOpenChange, triggerPointerDownPosRef } = context;\n React.useEffect(() => {\n if (content) {\n let pointerMoveDelta = { x: 0, y: 0 };\n const handlePointerMove = (event) => {\n pointerMoveDelta = {\n x: Math.abs(Math.round(event.pageX) - (triggerPointerDownPosRef.current?.x ?? 0)),\n y: Math.abs(Math.round(event.pageY) - (triggerPointerDownPosRef.current?.y ?? 0))\n };\n };\n const handlePointerUp = (event) => {\n if (pointerMoveDelta.x <= 10 && pointerMoveDelta.y <= 10) {\n event.preventDefault();\n } else {\n if (!content.contains(event.target)) {\n onOpenChange(false);\n }\n }\n document.removeEventListener(\"pointermove\", handlePointerMove);\n triggerPointerDownPosRef.current = null;\n };\n if (triggerPointerDownPosRef.current !== null) {\n document.addEventListener(\"pointermove\", handlePointerMove);\n document.addEventListener(\"pointerup\", handlePointerUp, { capture: true, once: true });\n }\n return () => {\n document.removeEventListener(\"pointermove\", handlePointerMove);\n document.removeEventListener(\"pointerup\", handlePointerUp, { capture: true });\n };\n }\n }, [content, onOpenChange, triggerPointerDownPosRef]);\n React.useEffect(() => {\n const close = () => onOpenChange(false);\n window.addEventListener(\"blur\", close);\n window.addEventListener(\"resize\", close);\n return () => {\n window.removeEventListener(\"blur\", close);\n window.removeEventListener(\"resize\", close);\n };\n }, [onOpenChange]);\n const [searchRef, handleTypeaheadSearch] = useTypeaheadSearch((search) => {\n const enabledItems = getItems().filter((item) => !item.disabled);\n const currentItem = enabledItems.find((item) => item.ref.current === document.activeElement);\n const nextItem = findNextItem(enabledItems, search, currentItem);\n if (nextItem) {\n setTimeout(() => nextItem.ref.current.focus());\n }\n });\n const itemRefCallback = React.useCallback(\n (node, value, disabled) => {\n const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;\n const isSelectedItem = context.value !== void 0 && context.value === value;\n if (isSelectedItem || isFirstValidItem) {\n setSelectedItem(node);\n if (isFirstValidItem) firstValidItemFoundRef.current = true;\n }\n },\n [context.value]\n );\n const handleItemLeave = React.useCallback(() => content?.focus(), [content]);\n const itemTextRefCallback = React.useCallback(\n (node, value, disabled) => {\n const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;\n const isSelectedItem = context.value !== void 0 && context.value === value;\n if (isSelectedItem || isFirstValidItem) {\n setSelectedItemText(node);\n }\n },\n [context.value]\n );\n const SelectPosition = position === \"popper\" ? SelectPopperPosition : SelectItemAlignedPosition;\n const popperContentProps = SelectPosition === SelectPopperPosition ? {\n side,\n sideOffset,\n align,\n alignOffset,\n arrowPadding,\n collisionBoundary,\n collisionPadding,\n sticky,\n hideWhenDetached,\n avoidCollisions\n } : {};\n return /* @__PURE__ */ jsx(\n SelectContentProvider,\n {\n scope: __scopeSelect,\n content,\n viewport,\n onViewportChange: setViewport,\n itemRefCallback,\n selectedItem,\n onItemLeave: handleItemLeave,\n itemTextRefCallback,\n focusSelectedItem,\n selectedItemText,\n position,\n isPositioned,\n searchRef,\n children: /* @__PURE__ */ jsx(RemoveScroll, { as: Slot, allowPinchZoom: true, children: /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n trapped: context.open,\n onMountAutoFocus: (event) => {\n event.preventDefault();\n },\n onUnmountAutoFocus: composeEventHandlers(onCloseAutoFocus, (event) => {\n context.trigger?.focus({ preventScroll: true });\n event.preventDefault();\n }),\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents: true,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside: (event) => event.preventDefault(),\n onDismiss: () => context.onOpenChange(false),\n children: /* @__PURE__ */ jsx(\n SelectPosition,\n {\n role: \"listbox\",\n id: context.contentId,\n \"data-state\": context.open ? \"open\" : \"closed\",\n dir: context.dir,\n onContextMenu: (event) => event.preventDefault(),\n ...contentProps,\n ...popperContentProps,\n onPlaced: () => setIsPositioned(true),\n ref: composedRefs,\n style: {\n // flex layout so we can place the scroll buttons properly\n display: \"flex\",\n flexDirection: \"column\",\n // reset the outline by default as the content MAY get focused\n outline: \"none\",\n ...contentProps.style\n },\n onKeyDown: composeEventHandlers(contentProps.onKeyDown, (event) => {\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n if (event.key === \"Tab\") event.preventDefault();\n if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);\n if ([\"ArrowUp\", \"ArrowDown\", \"Home\", \"End\"].includes(event.key)) {\n const items = getItems().filter((item) => !item.disabled);\n let candidateNodes = items.map((item) => item.ref.current);\n if ([\"ArrowUp\", \"End\"].includes(event.key)) {\n candidateNodes = candidateNodes.slice().reverse();\n }\n if ([\"ArrowUp\", \"ArrowDown\"].includes(event.key)) {\n const currentElement = event.target;\n const currentIndex = candidateNodes.indexOf(currentElement);\n candidateNodes = candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(() => focusFirst(candidateNodes));\n event.preventDefault();\n }\n })\n }\n )\n }\n )\n }\n ) })\n }\n );\n }\n);\nSelectContentImpl.displayName = CONTENT_IMPL_NAME;\nvar ITEM_ALIGNED_POSITION_NAME = \"SelectItemAlignedPosition\";\nvar SelectItemAlignedPosition = React.forwardRef((props, forwardedRef) => {\n const { __scopeSelect, onPlaced, ...popperProps } = props;\n const context = useSelectContext(CONTENT_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(CONTENT_NAME, __scopeSelect);\n const [contentWrapper, setContentWrapper] = React.useState(null);\n const [content, setContent] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContent(node));\n const getItems = useCollection(__scopeSelect);\n const shouldExpandOnScrollRef = React.useRef(false);\n const shouldRepositionRef = React.useRef(true);\n const { viewport, selectedItem, selectedItemText, focusSelectedItem } = contentContext;\n const position = React.useCallback(() => {\n if (context.trigger && context.valueNode && contentWrapper && content && viewport && selectedItem && selectedItemText) {\n const triggerRect = context.trigger.getBoundingClientRect();\n const contentRect = content.getBoundingClientRect();\n const valueNodeRect = context.valueNode.getBoundingClientRect();\n const itemTextRect = selectedItemText.getBoundingClientRect();\n if (context.dir !== \"rtl\") {\n const itemTextOffset = itemTextRect.left - contentRect.left;\n const left = valueNodeRect.left - itemTextOffset;\n const leftDelta = triggerRect.left - left;\n const minContentWidth = triggerRect.width + leftDelta;\n const contentWidth = Math.max(minContentWidth, contentRect.width);\n const rightEdge = window.innerWidth - CONTENT_MARGIN;\n const clampedLeft = clamp(left, [\n CONTENT_MARGIN,\n // Prevents the content from going off the starting edge of the\n // viewport. It may still go off the ending edge, but this can be\n // controlled by the user since they may want to manage overflow in a\n // specific way.\n // https://github.com/radix-ui/primitives/issues/2049\n Math.max(CONTENT_MARGIN, rightEdge - contentWidth)\n ]);\n contentWrapper.style.minWidth = minContentWidth + \"px\";\n contentWrapper.style.left = clampedLeft + \"px\";\n } else {\n const itemTextOffset = contentRect.right - itemTextRect.right;\n const right = window.innerWidth - valueNodeRect.right - itemTextOffset;\n const rightDelta = window.innerWidth - triggerRect.right - right;\n const minContentWidth = triggerRect.width + rightDelta;\n const contentWidth = Math.max(minContentWidth, contentRect.width);\n const leftEdge = window.innerWidth - CONTENT_MARGIN;\n const clampedRight = clamp(right, [\n CONTENT_MARGIN,\n Math.max(CONTENT_MARGIN, leftEdge - contentWidth)\n ]);\n contentWrapper.style.minWidth = minContentWidth + \"px\";\n contentWrapper.style.right = clampedRight + \"px\";\n }\n const items = getItems();\n const availableHeight = window.innerHeight - CONTENT_MARGIN * 2;\n const itemsHeight = viewport.scrollHeight;\n const contentStyles = window.getComputedStyle(content);\n const contentBorderTopWidth = parseInt(contentStyles.borderTopWidth, 10);\n const contentPaddingTop = parseInt(contentStyles.paddingTop, 10);\n const contentBorderBottomWidth = parseInt(contentStyles.borderBottomWidth, 10);\n const contentPaddingBottom = parseInt(contentStyles.paddingBottom, 10);\n const fullContentHeight = contentBorderTopWidth + contentPaddingTop + itemsHeight + contentPaddingBottom + contentBorderBottomWidth;\n const minContentHeight = Math.min(selectedItem.offsetHeight * 5, fullContentHeight);\n const viewportStyles = window.getComputedStyle(viewport);\n const viewportPaddingTop = parseInt(viewportStyles.paddingTop, 10);\n const viewportPaddingBottom = parseInt(viewportStyles.paddingBottom, 10);\n const topEdgeToTriggerMiddle = triggerRect.top + triggerRect.height / 2 - CONTENT_MARGIN;\n const triggerMiddleToBottomEdge = availableHeight - topEdgeToTriggerMiddle;\n const selectedItemHalfHeight = selectedItem.offsetHeight / 2;\n const itemOffsetMiddle = selectedItem.offsetTop + selectedItemHalfHeight;\n const contentTopToItemMiddle = contentBorderTopWidth + contentPaddingTop + itemOffsetMiddle;\n const itemMiddleToContentBottom = fullContentHeight - contentTopToItemMiddle;\n const willAlignWithoutTopOverflow = contentTopToItemMiddle <= topEdgeToTriggerMiddle;\n if (willAlignWithoutTopOverflow) {\n const isLastItem = items.length > 0 && selectedItem === items[items.length - 1].ref.current;\n contentWrapper.style.bottom = \"0px\";\n const viewportOffsetBottom = content.clientHeight - viewport.offsetTop - viewport.offsetHeight;\n const clampedTriggerMiddleToBottomEdge = Math.max(\n triggerMiddleToBottomEdge,\n selectedItemHalfHeight + // viewport might have padding bottom, include it to avoid a scrollable viewport\n (isLastItem ? viewportPaddingBottom : 0) + viewportOffsetBottom + contentBorderBottomWidth\n );\n const height = contentTopToItemMiddle + clampedTriggerMiddleToBottomEdge;\n contentWrapper.style.height = height + \"px\";\n } else {\n const isFirstItem = items.length > 0 && selectedItem === items[0].ref.current;\n contentWrapper.style.top = \"0px\";\n const clampedTopEdgeToTriggerMiddle = Math.max(\n topEdgeToTriggerMiddle,\n contentBorderTopWidth + viewport.offsetTop + // viewport might have padding top, include it to avoid a scrollable viewport\n (isFirstItem ? viewportPaddingTop : 0) + selectedItemHalfHeight\n );\n const height = clampedTopEdgeToTriggerMiddle + itemMiddleToContentBottom;\n contentWrapper.style.height = height + \"px\";\n viewport.scrollTop = contentTopToItemMiddle - topEdgeToTriggerMiddle + viewport.offsetTop;\n }\n contentWrapper.style.margin = `${CONTENT_MARGIN}px 0`;\n contentWrapper.style.minHeight = minContentHeight + \"px\";\n contentWrapper.style.maxHeight = availableHeight + \"px\";\n onPlaced?.();\n requestAnimationFrame(() => shouldExpandOnScrollRef.current = true);\n }\n }, [\n getItems,\n context.trigger,\n context.valueNode,\n contentWrapper,\n content,\n viewport,\n selectedItem,\n selectedItemText,\n context.dir,\n onPlaced\n ]);\n useLayoutEffect(() => position(), [position]);\n const [contentZIndex, setContentZIndex] = React.useState();\n useLayoutEffect(() => {\n if (content) setContentZIndex(window.getComputedStyle(content).zIndex);\n }, [content]);\n const handleScrollButtonChange = React.useCallback(\n (node) => {\n if (node && shouldRepositionRef.current === true) {\n position();\n focusSelectedItem?.();\n shouldRepositionRef.current = false;\n }\n },\n [position, focusSelectedItem]\n );\n return /* @__PURE__ */ jsx(\n SelectViewportProvider,\n {\n scope: __scopeSelect,\n contentWrapper,\n shouldExpandOnScrollRef,\n onScrollButtonChange: handleScrollButtonChange,\n children: /* @__PURE__ */ jsx(\n \"div\",\n {\n ref: setContentWrapper,\n style: {\n display: \"flex\",\n flexDirection: \"column\",\n position: \"fixed\",\n zIndex: contentZIndex\n },\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...popperProps,\n ref: composedRefs,\n style: {\n // When we get the height of the content, it includes borders. If we were to set\n // the height without having `boxSizing: 'border-box'` it would be too big.\n boxSizing: \"border-box\",\n // We need to ensure the content doesn't get taller than the wrapper\n maxHeight: \"100%\",\n ...popperProps.style\n }\n }\n )\n }\n )\n }\n );\n});\nSelectItemAlignedPosition.displayName = ITEM_ALIGNED_POSITION_NAME;\nvar POPPER_POSITION_NAME = \"SelectPopperPosition\";\nvar SelectPopperPosition = React.forwardRef((props, forwardedRef) => {\n const {\n __scopeSelect,\n align = \"start\",\n collisionPadding = CONTENT_MARGIN,\n ...popperProps\n } = props;\n const popperScope = usePopperScope(__scopeSelect);\n return /* @__PURE__ */ jsx(\n PopperPrimitive.Content,\n {\n ...popperScope,\n ...popperProps,\n ref: forwardedRef,\n align,\n collisionPadding,\n style: {\n // Ensure border-box for floating-ui calculations\n boxSizing: \"border-box\",\n ...popperProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-select-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-select-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-select-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-select-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-select-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n );\n});\nSelectPopperPosition.displayName = POPPER_POSITION_NAME;\nvar [SelectViewportProvider, useSelectViewportContext] = createSelectContext(CONTENT_NAME, {});\nvar VIEWPORT_NAME = \"SelectViewport\";\nvar SelectViewport = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, nonce, ...viewportProps } = props;\n const contentContext = useSelectContentContext(VIEWPORT_NAME, __scopeSelect);\n const viewportContext = useSelectViewportContext(VIEWPORT_NAME, __scopeSelect);\n const composedRefs = useComposedRefs(forwardedRef, contentContext.onViewportChange);\n const prevScrollTopRef = React.useRef(0);\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n \"style\",\n {\n dangerouslySetInnerHTML: {\n __html: `[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`\n },\n nonce\n }\n ),\n /* @__PURE__ */ jsx(Collection.Slot, { scope: __scopeSelect, children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-radix-select-viewport\": \"\",\n role: \"presentation\",\n ...viewportProps,\n ref: composedRefs,\n style: {\n // we use position: 'relative' here on the `viewport` so that when we call\n // `selectedItem.offsetTop` in calculations, the offset is relative to the viewport\n // (independent of the scrollUpButton).\n position: \"relative\",\n flex: 1,\n // Viewport should only be scrollable in the vertical direction.\n // This won't work in vertical writing modes, so we'll need to\n // revisit this if/when that is supported\n // https://developer.chrome.com/blog/vertical-form-controls\n overflow: \"hidden auto\",\n ...viewportProps.style\n },\n onScroll: composeEventHandlers(viewportProps.onScroll, (event) => {\n const viewport = event.currentTarget;\n const { contentWrapper, shouldExpandOnScrollRef } = viewportContext;\n if (shouldExpandOnScrollRef?.current && contentWrapper) {\n const scrolledBy = Math.abs(prevScrollTopRef.current - viewport.scrollTop);\n if (scrolledBy > 0) {\n const availableHeight = window.innerHeight - CONTENT_MARGIN * 2;\n const cssMinHeight = parseFloat(contentWrapper.style.minHeight);\n const cssHeight = parseFloat(contentWrapper.style.height);\n const prevHeight = Math.max(cssMinHeight, cssHeight);\n if (prevHeight < availableHeight) {\n const nextHeight = prevHeight + scrolledBy;\n const clampedNextHeight = Math.min(availableHeight, nextHeight);\n const heightDiff = nextHeight - clampedNextHeight;\n contentWrapper.style.height = clampedNextHeight + \"px\";\n if (contentWrapper.style.bottom === \"0px\") {\n viewport.scrollTop = heightDiff > 0 ? heightDiff : 0;\n contentWrapper.style.justifyContent = \"flex-end\";\n }\n }\n }\n }\n prevScrollTopRef.current = viewport.scrollTop;\n })\n }\n ) })\n ] });\n }\n);\nSelectViewport.displayName = VIEWPORT_NAME;\nvar GROUP_NAME = \"SelectGroup\";\nvar [SelectGroupContextProvider, useSelectGroupContext] = createSelectContext(GROUP_NAME);\nvar SelectGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...groupProps } = props;\n const groupId = useId();\n return /* @__PURE__ */ jsx(SelectGroupContextProvider, { scope: __scopeSelect, id: groupId, children: /* @__PURE__ */ jsx(Primitive.div, { role: \"group\", \"aria-labelledby\": groupId, ...groupProps, ref: forwardedRef }) });\n }\n);\nSelectGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"SelectLabel\";\nvar SelectLabel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...labelProps } = props;\n const groupContext = useSelectGroupContext(LABEL_NAME, __scopeSelect);\n return /* @__PURE__ */ jsx(Primitive.div, { id: groupContext.id, ...labelProps, ref: forwardedRef });\n }\n);\nSelectLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"SelectItem\";\nvar [SelectItemContextProvider, useSelectItemContext] = createSelectContext(ITEM_NAME);\nvar SelectItem = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSelect,\n value,\n disabled = false,\n textValue: textValueProp,\n ...itemProps\n } = props;\n const context = useSelectContext(ITEM_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ITEM_NAME, __scopeSelect);\n const isSelected = context.value === value;\n const [textValue, setTextValue] = React.useState(textValueProp ?? \"\");\n const [isFocused, setIsFocused] = React.useState(false);\n const composedRefs = useComposedRefs(\n forwardedRef,\n (node) => contentContext.itemRefCallback?.(node, value, disabled)\n );\n const textId = useId();\n const pointerTypeRef = React.useRef(\"touch\");\n const handleSelect = () => {\n if (!disabled) {\n context.onValueChange(value);\n context.onOpenChange(false);\n }\n };\n if (value === \"\") {\n throw new Error(\n \"A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.\"\n );\n }\n return /* @__PURE__ */ jsx(\n SelectItemContextProvider,\n {\n scope: __scopeSelect,\n value,\n disabled,\n textId,\n isSelected,\n onItemTextChange: React.useCallback((node) => {\n setTextValue((prevTextValue) => prevTextValue || (node?.textContent ?? \"\").trim());\n }, []),\n children: /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeSelect,\n value,\n disabled,\n textValue,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"option\",\n \"aria-labelledby\": textId,\n \"data-highlighted\": isFocused ? \"\" : void 0,\n \"aria-selected\": isSelected && isFocused,\n \"data-state\": isSelected ? \"checked\" : \"unchecked\",\n \"aria-disabled\": disabled || void 0,\n \"data-disabled\": disabled ? \"\" : void 0,\n tabIndex: disabled ? void 0 : -1,\n ...itemProps,\n ref: composedRefs,\n onFocus: composeEventHandlers(itemProps.onFocus, () => setIsFocused(true)),\n onBlur: composeEventHandlers(itemProps.onBlur, () => setIsFocused(false)),\n onClick: composeEventHandlers(itemProps.onClick, () => {\n if (pointerTypeRef.current !== \"mouse\") handleSelect();\n }),\n onPointerUp: composeEventHandlers(itemProps.onPointerUp, () => {\n if (pointerTypeRef.current === \"mouse\") handleSelect();\n }),\n onPointerDown: composeEventHandlers(itemProps.onPointerDown, (event) => {\n pointerTypeRef.current = event.pointerType;\n }),\n onPointerMove: composeEventHandlers(itemProps.onPointerMove, (event) => {\n pointerTypeRef.current = event.pointerType;\n if (disabled) {\n contentContext.onItemLeave?.();\n } else if (pointerTypeRef.current === \"mouse\") {\n event.currentTarget.focus({ preventScroll: true });\n }\n }),\n onPointerLeave: composeEventHandlers(itemProps.onPointerLeave, (event) => {\n if (event.currentTarget === document.activeElement) {\n contentContext.onItemLeave?.();\n }\n }),\n onKeyDown: composeEventHandlers(itemProps.onKeyDown, (event) => {\n const isTypingAhead = contentContext.searchRef?.current !== \"\";\n if (isTypingAhead && event.key === \" \") return;\n if (SELECTION_KEYS.includes(event.key)) handleSelect();\n if (event.key === \" \") event.preventDefault();\n })\n }\n )\n }\n )\n }\n );\n }\n);\nSelectItem.displayName = ITEM_NAME;\nvar ITEM_TEXT_NAME = \"SelectItemText\";\nvar SelectItemText = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, className, style, ...itemTextProps } = props;\n const context = useSelectContext(ITEM_TEXT_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ITEM_TEXT_NAME, __scopeSelect);\n const itemContext = useSelectItemContext(ITEM_TEXT_NAME, __scopeSelect);\n const nativeOptionsContext = useSelectNativeOptionsContext(ITEM_TEXT_NAME, __scopeSelect);\n const [itemTextNode, setItemTextNode] = React.useState(null);\n const composedRefs = useComposedRefs(\n forwardedRef,\n (node) => setItemTextNode(node),\n itemContext.onItemTextChange,\n (node) => contentContext.itemTextRefCallback?.(node, itemContext.value, itemContext.disabled)\n );\n const textContent = itemTextNode?.textContent;\n const nativeOption = React.useMemo(\n () => /* @__PURE__ */ jsx(\"option\", { value: itemContext.value, disabled: itemContext.disabled, children: textContent }, itemContext.value),\n [itemContext.disabled, itemContext.value, textContent]\n );\n const { onNativeOptionAdd, onNativeOptionRemove } = nativeOptionsContext;\n useLayoutEffect(() => {\n onNativeOptionAdd(nativeOption);\n return () => onNativeOptionRemove(nativeOption);\n }, [onNativeOptionAdd, onNativeOptionRemove, nativeOption]);\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(Primitive.span, { id: itemContext.textId, ...itemTextProps, ref: composedRefs }),\n itemContext.isSelected && context.valueNode && !context.valueNodeHasChildren ? ReactDOM.createPortal(itemTextProps.children, context.valueNode) : null\n ] });\n }\n);\nSelectItemText.displayName = ITEM_TEXT_NAME;\nvar ITEM_INDICATOR_NAME = \"SelectItemIndicator\";\nvar SelectItemIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...itemIndicatorProps } = props;\n const itemContext = useSelectItemContext(ITEM_INDICATOR_NAME, __scopeSelect);\n return itemContext.isSelected ? /* @__PURE__ */ jsx(Primitive.span, { \"aria-hidden\": true, ...itemIndicatorProps, ref: forwardedRef }) : null;\n }\n);\nSelectItemIndicator.displayName = ITEM_INDICATOR_NAME;\nvar SCROLL_UP_BUTTON_NAME = \"SelectScrollUpButton\";\nvar SelectScrollUpButton = React.forwardRef((props, forwardedRef) => {\n const contentContext = useSelectContentContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);\n const viewportContext = useSelectViewportContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);\n const [canScrollUp, setCanScrollUp] = React.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, viewportContext.onScrollButtonChange);\n useLayoutEffect(() => {\n if (contentContext.viewport && contentContext.isPositioned) {\n let handleScroll2 = function() {\n const canScrollUp2 = viewport.scrollTop > 0;\n setCanScrollUp(canScrollUp2);\n };\n var handleScroll = handleScroll2;\n const viewport = contentContext.viewport;\n handleScroll2();\n viewport.addEventListener(\"scroll\", handleScroll2);\n return () => viewport.removeEventListener(\"scroll\", handleScroll2);\n }\n }, [contentContext.viewport, contentContext.isPositioned]);\n return canScrollUp ? /* @__PURE__ */ jsx(\n SelectScrollButtonImpl,\n {\n ...props,\n ref: composedRefs,\n onAutoScroll: () => {\n const { viewport, selectedItem } = contentContext;\n if (viewport && selectedItem) {\n viewport.scrollTop = viewport.scrollTop - selectedItem.offsetHeight;\n }\n }\n }\n ) : null;\n});\nSelectScrollUpButton.displayName = SCROLL_UP_BUTTON_NAME;\nvar SCROLL_DOWN_BUTTON_NAME = \"SelectScrollDownButton\";\nvar SelectScrollDownButton = React.forwardRef((props, forwardedRef) => {\n const contentContext = useSelectContentContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);\n const viewportContext = useSelectViewportContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);\n const [canScrollDown, setCanScrollDown] = React.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, viewportContext.onScrollButtonChange);\n useLayoutEffect(() => {\n if (contentContext.viewport && contentContext.isPositioned) {\n let handleScroll2 = function() {\n const maxScroll = viewport.scrollHeight - viewport.clientHeight;\n const canScrollDown2 = Math.ceil(viewport.scrollTop) < maxScroll;\n setCanScrollDown(canScrollDown2);\n };\n var handleScroll = handleScroll2;\n const viewport = contentContext.viewport;\n handleScroll2();\n viewport.addEventListener(\"scroll\", handleScroll2);\n return () => viewport.removeEventListener(\"scroll\", handleScroll2);\n }\n }, [contentContext.viewport, contentContext.isPositioned]);\n return canScrollDown ? /* @__PURE__ */ jsx(\n SelectScrollButtonImpl,\n {\n ...props,\n ref: composedRefs,\n onAutoScroll: () => {\n const { viewport, selectedItem } = contentContext;\n if (viewport && selectedItem) {\n viewport.scrollTop = viewport.scrollTop + selectedItem.offsetHeight;\n }\n }\n }\n ) : null;\n});\nSelectScrollDownButton.displayName = SCROLL_DOWN_BUTTON_NAME;\nvar SelectScrollButtonImpl = React.forwardRef((props, forwardedRef) => {\n const { __scopeSelect, onAutoScroll, ...scrollIndicatorProps } = props;\n const contentContext = useSelectContentContext(\"SelectScrollButton\", __scopeSelect);\n const autoScrollTimerRef = React.useRef(null);\n const getItems = useCollection(__scopeSelect);\n const clearAutoScrollTimer = React.useCallback(() => {\n if (autoScrollTimerRef.current !== null) {\n window.clearInterval(autoScrollTimerRef.current);\n autoScrollTimerRef.current = null;\n }\n }, []);\n React.useEffect(() => {\n return () => clearAutoScrollTimer();\n }, [clearAutoScrollTimer]);\n useLayoutEffect(() => {\n const activeItem = getItems().find((item) => item.ref.current === document.activeElement);\n activeItem?.ref.current?.scrollIntoView({ block: \"nearest\" });\n }, [getItems]);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"aria-hidden\": true,\n ...scrollIndicatorProps,\n ref: forwardedRef,\n style: { flexShrink: 0, ...scrollIndicatorProps.style },\n onPointerDown: composeEventHandlers(scrollIndicatorProps.onPointerDown, () => {\n if (autoScrollTimerRef.current === null) {\n autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);\n }\n }),\n onPointerMove: composeEventHandlers(scrollIndicatorProps.onPointerMove, () => {\n contentContext.onItemLeave?.();\n if (autoScrollTimerRef.current === null) {\n autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);\n }\n }),\n onPointerLeave: composeEventHandlers(scrollIndicatorProps.onPointerLeave, () => {\n clearAutoScrollTimer();\n })\n }\n );\n});\nvar SEPARATOR_NAME = \"SelectSeparator\";\nvar SelectSeparator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...separatorProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { \"aria-hidden\": true, ...separatorProps, ref: forwardedRef });\n }\n);\nSelectSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"SelectArrow\";\nvar SelectArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const context = useSelectContext(ARROW_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ARROW_NAME, __scopeSelect);\n return context.open && contentContext.position === \"popper\" ? /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef }) : null;\n }\n);\nSelectArrow.displayName = ARROW_NAME;\nvar BUBBLE_INPUT_NAME = \"SelectBubbleInput\";\nvar SelectBubbleInput = React.forwardRef(\n ({ __scopeSelect, value, ...props }, forwardedRef) => {\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const prevValue = usePrevious(value);\n React.useEffect(() => {\n const select = ref.current;\n if (!select) return;\n const selectProto = window.HTMLSelectElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n selectProto,\n \"value\"\n );\n const setValue = descriptor.set;\n if (prevValue !== value && setValue) {\n const event = new Event(\"change\", { bubbles: true });\n setValue.call(select, value);\n select.dispatchEvent(event);\n }\n }, [prevValue, value]);\n return /* @__PURE__ */ jsx(\n Primitive.select,\n {\n ...props,\n style: { ...VISUALLY_HIDDEN_STYLES, ...props.style },\n ref: composedRefs,\n defaultValue: value\n }\n );\n }\n);\nSelectBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction shouldShowPlaceholder(value) {\n return value === \"\" || value === void 0;\n}\nfunction useTypeaheadSearch(onSearchChange) {\n const handleSearchChange = useCallbackRef(onSearchChange);\n const searchRef = React.useRef(\"\");\n const timerRef = React.useRef(0);\n const handleTypeaheadSearch = React.useCallback(\n (key) => {\n const search = searchRef.current + key;\n handleSearchChange(search);\n (function updateSearch(value) {\n searchRef.current = value;\n window.clearTimeout(timerRef.current);\n if (value !== \"\") timerRef.current = window.setTimeout(() => updateSearch(\"\"), 1e3);\n })(search);\n },\n [handleSearchChange]\n );\n const resetTypeahead = React.useCallback(() => {\n searchRef.current = \"\";\n window.clearTimeout(timerRef.current);\n }, []);\n React.useEffect(() => {\n return () => window.clearTimeout(timerRef.current);\n }, []);\n return [searchRef, handleTypeaheadSearch, resetTypeahead];\n}\nfunction findNextItem(items, search, currentItem) {\n const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);\n const normalizedSearch = isRepeated ? search[0] : search;\n const currentItemIndex = currentItem ? items.indexOf(currentItem) : -1;\n let wrappedItems = wrapArray(items, Math.max(currentItemIndex, 0));\n const excludeCurrentItem = normalizedSearch.length === 1;\n if (excludeCurrentItem) wrappedItems = wrappedItems.filter((v) => v !== currentItem);\n const nextItem = wrappedItems.find(\n (item) => item.textValue.toLowerCase().startsWith(normalizedSearch.toLowerCase())\n );\n return nextItem !== currentItem ? nextItem : void 0;\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\nvar Root2 = Select;\nvar Trigger = SelectTrigger;\nvar Value = SelectValue;\nvar Icon = SelectIcon;\nvar Portal = SelectPortal;\nvar Content2 = SelectContent;\nvar Viewport = SelectViewport;\nvar Group = SelectGroup;\nvar Label = SelectLabel;\nvar Item = SelectItem;\nvar ItemText = SelectItemText;\nvar ItemIndicator = SelectItemIndicator;\nvar ScrollUpButton = SelectScrollUpButton;\nvar ScrollDownButton = SelectScrollDownButton;\nvar Separator = SelectSeparator;\nvar Arrow2 = SelectArrow;\nexport {\n Arrow2 as Arrow,\n Content2 as Content,\n Group,\n Icon,\n Item,\n ItemIndicator,\n ItemText,\n Label,\n Portal,\n Root2 as Root,\n ScrollDownButton,\n ScrollUpButton,\n Select,\n SelectArrow,\n SelectContent,\n SelectGroup,\n SelectIcon,\n SelectItem,\n SelectItemIndicator,\n SelectItemText,\n SelectLabel,\n SelectPortal,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n SelectViewport,\n Separator,\n Trigger,\n Value,\n Viewport,\n createSelectScope\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":["clamp","value","min","max","createCollection","name","PROVIDER_NAME","createCollectionContext","createCollectionScope","createContextScope","CollectionProviderImpl","useCollectionContext","CollectionProvider","props","scope","children","ref","React","itemMap","jsx","COLLECTION_SLOT_NAME","CollectionSlotImpl","createSlot","CollectionSlot","forwardedRef","context","composedRefs","useComposedRefs","ITEM_SLOT_NAME","ITEM_DATA_ATTR","CollectionItemSlotImpl","CollectionItemSlot","itemData","useCollection","collectionNode","orderedNodes","a","DirectionContext","React.createContext","useDirection","localDir","globalDir","React.useContext","usePrevious","React.useRef","React.useMemo","OPEN_KEYS","SELECTION_KEYS","SELECT_NAME","Collection","createSelectContext","createSelectScope","createPopperScope","usePopperScope","SelectProvider","useSelectContext","SelectNativeOptionsProvider","useSelectNativeOptionsContext","Select","__scopeSelect","openProp","defaultOpen","onOpenChange","valueProp","defaultValue","onValueChange","dir","autoComplete","disabled","required","form","popperScope","trigger","setTrigger","React.useState","valueNode","setValueNode","valueNodeHasChildren","setValueNodeHasChildren","direction","open","setOpen","useControllableState","setValue","triggerPointerDownPosRef","isFormControl","nativeOptionsSet","setNativeOptionsSet","nativeSelectKey","option","PopperPrimitive.Root","jsxs","useId","React.useCallback","prev","optionsSet","SelectBubbleInput","event","TRIGGER_NAME","SelectTrigger","React.forwardRef","triggerProps","isDisabled","getItems","pointerTypeRef","searchRef","handleTypeaheadSearch","resetTypeahead","useTypeaheadSearch","search","enabledItems","item","currentItem","nextItem","findNextItem","handleOpen","pointerEvent","PopperPrimitive.Anchor","Primitive","shouldShowPlaceholder","composeEventHandlers","target","isTypingAhead","VALUE_NAME","SelectValue","className","style","placeholder","valueProps","onValueNodeHasChildrenChange","hasChildren","useLayoutEffect","Fragment","ICON_NAME","SelectIcon","iconProps","PORTAL_NAME","SelectPortal","PortalPrimitive","CONTENT_NAME","SelectContent","fragment","setFragment","frag","ReactDOM.createPortal","SelectContentProvider","SelectContentImpl","CONTENT_MARGIN","useSelectContentContext","CONTENT_IMPL_NAME","Slot","position","onCloseAutoFocus","onEscapeKeyDown","onPointerDownOutside","side","sideOffset","align","alignOffset","arrowPadding","collisionBoundary","collisionPadding","sticky","hideWhenDetached","avoidCollisions","contentProps","content","setContent","viewport","setViewport","node","selectedItem","setSelectedItem","selectedItemText","setSelectedItemText","isPositioned","setIsPositioned","firstValidItemFoundRef","React.useEffect","hideOthers","useFocusGuards","focusFirst","candidates","firstItem","restItems","lastItem","PREVIOUSLY_FOCUSED_ELEMENT","candidate","focusSelectedItem","pointerMoveDelta","handlePointerMove","_a","_b","handlePointerUp","close","itemRefCallback","isFirstValidItem","handleItemLeave","itemTextRefCallback","SelectPosition","SelectPopperPosition","SelectItemAlignedPosition","popperContentProps","RemoveScroll","FocusScope","DismissableLayer","isModifierKey","candidateNodes","currentElement","currentIndex","ITEM_ALIGNED_POSITION_NAME","onPlaced","popperProps","contentContext","contentWrapper","setContentWrapper","shouldExpandOnScrollRef","shouldRepositionRef","triggerRect","contentRect","valueNodeRect","itemTextRect","itemTextOffset","left","leftDelta","minContentWidth","contentWidth","rightEdge","clampedLeft","right","rightDelta","leftEdge","clampedRight","items","availableHeight","itemsHeight","contentStyles","contentBorderTopWidth","contentPaddingTop","contentBorderBottomWidth","contentPaddingBottom","fullContentHeight","minContentHeight","viewportStyles","viewportPaddingTop","viewportPaddingBottom","topEdgeToTriggerMiddle","triggerMiddleToBottomEdge","selectedItemHalfHeight","itemOffsetMiddle","contentTopToItemMiddle","itemMiddleToContentBottom","isLastItem","viewportOffsetBottom","clampedTriggerMiddleToBottomEdge","height","isFirstItem","contentZIndex","setContentZIndex","handleScrollButtonChange","SelectViewportProvider","POPPER_POSITION_NAME","PopperPrimitive.Content","useSelectViewportContext","VIEWPORT_NAME","SelectViewport","nonce","viewportProps","viewportContext","prevScrollTopRef","scrolledBy","cssMinHeight","cssHeight","prevHeight","nextHeight","clampedNextHeight","heightDiff","GROUP_NAME","SelectGroupContextProvider","useSelectGroupContext","SelectGroup","groupProps","groupId","LABEL_NAME","SelectLabel","labelProps","groupContext","ITEM_NAME","SelectItemContextProvider","useSelectItemContext","SelectItem","textValueProp","itemProps","isSelected","textValue","setTextValue","isFocused","setIsFocused","textId","handleSelect","prevTextValue","ITEM_TEXT_NAME","SelectItemText","itemTextProps","itemContext","nativeOptionsContext","itemTextNode","setItemTextNode","textContent","nativeOption","onNativeOptionAdd","onNativeOptionRemove","ITEM_INDICATOR_NAME","SelectItemIndicator","itemIndicatorProps","SCROLL_UP_BUTTON_NAME","SelectScrollUpButton","canScrollUp","setCanScrollUp","handleScroll2","canScrollUp2","SelectScrollButtonImpl","SCROLL_DOWN_BUTTON_NAME","SelectScrollDownButton","canScrollDown","setCanScrollDown","maxScroll","canScrollDown2","onAutoScroll","scrollIndicatorProps","autoScrollTimerRef","clearAutoScrollTimer","activeItem","SEPARATOR_NAME","SelectSeparator","separatorProps","ARROW_NAME","SelectArrow","arrowProps","PopperPrimitive.Arrow","BUBBLE_INPUT_NAME","prevValue","select","selectProto","VISUALLY_HIDDEN_STYLES","onSearchChange","handleSearchChange","useCallbackRef","timerRef","key","updateSearch","normalizedSearch","char","currentItemIndex","wrappedItems","wrapArray","v","array","startIndex","_","index","Root2","Trigger","Value","Icon","Portal","Content2","Viewport","Group","Label","Item","ItemText","ItemIndicator","ScrollUpButton","ScrollDownButton"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as m}from"./jsx-runtime-BjG_zV1W.js";import{f as y,u as w,r as l}from"./chunk-QMGIS6GS-CTjj1G71.js";const h={vertical:"scrollTop",horizontal:"scrollLeft"};function I({elementQuery:r,direction:S="vertical",...d}){const e=`position:${r}`,f=y(),p=w(),a=h[S],i=l.useCallback(()=>{const t=document.querySelector(r);if(!t)return;let o={};try{const s=JSON.parse(sessionStorage.getItem(e)||"{}");typeof s=="object"&&s!==null&&(o=s)}catch(s){console.warn("Error parsing scroll positions from sessionStorage:",s)}const n={...o,[p.key]:t[a]};sessionStorage.setItem(e,JSON.stringify(n))},[e,r,p.key]);l.useEffect(()=>{if(f.state==="idle"){const t=document.querySelector(r);if(!t)return;try{const n=JSON.parse(sessionStorage.getItem(e)||"{}")[window.history.state.key];typeof n=="number"&&(t[a]=n)}catch(o){console.error(o),sessionStorage.removeItem(e)}}else i()},[e,r,f.state,i]),l.useEffect(()=>(window.addEventListener("pagehide",i),()=>{window.removeEventListener("pagehide",i)}),[i]);function g(t,o,n){const s=document.querySelector(o);if(!s){console.warn(`Element not found: ${o}. Cannot restore scroll.`);return}if(!window.history.state||!window.history.state.key){const c=Math.random().toString(32).slice(2);window.history.replaceState({key:c},"")}try{const u=JSON.parse(sessionStorage.getItem(t)||"{}")[window.history.state.key];typeof u=="number"&&(s[n]=u)}catch(c){console.error(c),sessionStorage.removeItem(t)}}return m.jsx("script",{...d,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:`(${g})(${JSON.stringify(e)}, ${JSON.stringify(r)}, ${JSON.stringify(a)})`}})}export{I as E};
|
|
2
|
+
//# sourceMappingURL=index-D0dQzJhy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-D0dQzJhy.js","sources":["../../../../../node_modules/@epic-web/restore-scroll/dist/index.js"],"sourcesContent":["import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useCallback, useEffect } from 'react';\nimport { useLocation, useNavigation } from 'react-router';\nconst DIRECTION = {\n vertical: 'scrollTop',\n horizontal: 'scrollLeft',\n};\nexport function ElementScrollRestoration({ elementQuery, direction = 'vertical', ...props }) {\n const STORAGE_KEY = `position:${elementQuery}`;\n const navigation = useNavigation();\n const location = useLocation();\n const scrollAttribute = DIRECTION[direction];\n const updatePositions = useCallback(() => {\n const element = document.querySelector(elementQuery);\n if (!element)\n return;\n let positions = {};\n try {\n const rawPositions = JSON.parse(sessionStorage.getItem(STORAGE_KEY) || '{}');\n if (typeof rawPositions === 'object' && rawPositions !== null) {\n positions = rawPositions;\n }\n }\n catch (error) {\n console.warn(`Error parsing scroll positions from sessionStorage:`, error);\n }\n const newPositions = {\n ...positions,\n [location.key]: element[scrollAttribute],\n };\n sessionStorage.setItem(STORAGE_KEY, JSON.stringify(newPositions));\n }, [STORAGE_KEY, elementQuery, location.key]);\n useEffect(() => {\n if (navigation.state === 'idle') {\n const element = document.querySelector(elementQuery);\n if (!element)\n return;\n try {\n const positions = JSON.parse(sessionStorage.getItem(STORAGE_KEY) || '{}');\n const stored = positions[window.history.state.key];\n if (typeof stored === 'number') {\n element[scrollAttribute] = stored;\n }\n }\n catch (error) {\n console.error(error);\n sessionStorage.removeItem(STORAGE_KEY);\n }\n }\n else {\n updatePositions();\n }\n }, [STORAGE_KEY, elementQuery, navigation.state, updatePositions]);\n useEffect(() => {\n window.addEventListener('pagehide', updatePositions);\n return () => {\n window.removeEventListener('pagehide', updatePositions);\n };\n }, [updatePositions]);\n function restoreScroll(storageKey, elementQuery, scrollAttribute) {\n const element = document.querySelector(elementQuery);\n if (!element) {\n console.warn(`Element not found: ${elementQuery}. Cannot restore scroll.`);\n return;\n }\n if (!window.history.state || !window.history.state.key) {\n const key = Math.random().toString(32).slice(2);\n window.history.replaceState({ key }, '');\n }\n try {\n const positions = JSON.parse(sessionStorage.getItem(storageKey) || '{}');\n const stored = positions[window.history.state.key];\n if (typeof stored === 'number') {\n element[scrollAttribute] = stored;\n }\n }\n catch (error) {\n console.error(error);\n sessionStorage.removeItem(storageKey);\n }\n }\n return (_jsx(\"script\", { ...props, suppressHydrationWarning: true, dangerouslySetInnerHTML: {\n __html: `(${restoreScroll})(${JSON.stringify(STORAGE_KEY)}, ${JSON.stringify(elementQuery)}, ${JSON.stringify(scrollAttribute)})`,\n } }));\n}\n"],"names":["DIRECTION","ElementScrollRestoration","elementQuery","direction","props","STORAGE_KEY","navigation","useNavigation","location","useLocation","scrollAttribute","updatePositions","useCallback","element","positions","rawPositions","error","newPositions","useEffect","stored","restoreScroll","storageKey","key","_jsx"],"mappings":"6GAGA,MAAMA,EAAY,CACd,SAAU,YACV,WAAY,YAChB,EACO,SAASC,EAAyB,CAAE,aAAAC,EAAc,UAAAC,EAAY,WAAY,GAAGC,CAAK,EAAI,CACzF,MAAMC,EAAc,YAAYH,CAAY,GACtCI,EAAaC,EAAe,EAC5BC,EAAWC,EAAa,EACxBC,EAAkBV,EAAUG,CAAS,EACrCQ,EAAkBC,EAAAA,YAAY,IAAM,CACtC,MAAMC,EAAU,SAAS,cAAcX,CAAY,EACnD,GAAI,CAACW,EACD,OACJ,IAAIC,EAAY,CAAE,EAClB,GAAI,CACA,MAAMC,EAAe,KAAK,MAAM,eAAe,QAAQV,CAAW,GAAK,IAAI,EACvE,OAAOU,GAAiB,UAAYA,IAAiB,OACrDD,EAAYC,EAE5B,OACeC,EAAO,CACV,QAAQ,KAAK,sDAAuDA,CAAK,CACrF,CACQ,MAAMC,EAAe,CACjB,GAAGH,EACH,CAACN,EAAS,GAAG,EAAGK,EAAQH,CAAe,CAC1C,EACD,eAAe,QAAQL,EAAa,KAAK,UAAUY,CAAY,CAAC,CACnE,EAAE,CAACZ,EAAaH,EAAcM,EAAS,GAAG,CAAC,EAC5CU,EAAAA,UAAU,IAAM,CACZ,GAAIZ,EAAW,QAAU,OAAQ,CAC7B,MAAMO,EAAU,SAAS,cAAcX,CAAY,EACnD,GAAI,CAACW,EACD,OACJ,GAAI,CAEA,MAAMM,EADY,KAAK,MAAM,eAAe,QAAQd,CAAW,GAAK,IAAI,EAC/C,OAAO,QAAQ,MAAM,GAAG,EAC7C,OAAOc,GAAW,WAClBN,EAAQH,CAAe,EAAIS,EAE/C,OACmBH,EAAO,CACV,QAAQ,MAAMA,CAAK,EACnB,eAAe,WAAWX,CAAW,CACrD,CACA,MAEYM,EAAiB,CAE7B,EAAO,CAACN,EAAaH,EAAcI,EAAW,MAAOK,CAAe,CAAC,EACjEO,EAAAA,UAAU,KACN,OAAO,iBAAiB,WAAYP,CAAe,EAC5C,IAAM,CACT,OAAO,oBAAoB,WAAYA,CAAe,CACzD,GACF,CAACA,CAAe,CAAC,EACpB,SAASS,EAAcC,EAAYnB,EAAcQ,EAAiB,CAC9D,MAAMG,EAAU,SAAS,cAAcX,CAAY,EACnD,GAAI,CAACW,EAAS,CACV,QAAQ,KAAK,sBAAsBX,CAAY,0BAA0B,EACzE,MACZ,CACQ,GAAI,CAAC,OAAO,QAAQ,OAAS,CAAC,OAAO,QAAQ,MAAM,IAAK,CACpD,MAAMoB,EAAM,KAAK,OAAQ,EAAC,SAAS,EAAE,EAAE,MAAM,CAAC,EAC9C,OAAO,QAAQ,aAAa,CAAE,IAAAA,CAAG,EAAI,EAAE,CACnD,CACQ,GAAI,CAEA,MAAMH,EADY,KAAK,MAAM,eAAe,QAAQE,CAAU,GAAK,IAAI,EAC9C,OAAO,QAAQ,MAAM,GAAG,EAC7C,OAAOF,GAAW,WAClBN,EAAQH,CAAe,EAAIS,EAE3C,OACeH,EAAO,CACV,QAAQ,MAAMA,CAAK,EACnB,eAAe,WAAWK,CAAU,CAChD,CACA,CACI,OAAQE,EAAAA,IAAK,SAAU,CAAE,GAAGnB,EAAO,yBAA0B,GAAM,wBAAyB,CACpF,OAAQ,IAAIgB,CAAa,KAAK,KAAK,UAAUf,CAAW,CAAC,KAAK,KAAK,UAAUH,CAAY,CAAC,KAAK,KAAK,UAAUQ,CAAe,CAAC,GAC1I,EAAW,CACX","x_google_ignoreList":[0]}
|